KVM专题(3)存储

  

KVM存储模式

  

基于文件系统的存储

  

<强> dir:目录格式的存储
fs:磁盘分区存储
neyfs:网络共享文件存储

  

基于设备的存储

  

<强>磁盘:物理硬盘存储
Iscsi: iSCSITarget后端存储
逻辑:逻辑卷的存储

  

<强> KVM支持的虚拟磁盘类型

  
 <代码>生
  这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像
  他并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案。不支持快照和压缩等高级特性
  格式简但,容易转换成为其它的格式。需要文件系统用的支持才能使用稀疏文件
  牛:即写即拷格式,昙花一现
  即写即拷格qcow: QEMU早期的式
  qcow2
  按需分配磁盘空间,不管文件系统是否支持
  支持快照
  支持zlib的磁盘压缩
  支持AES的加密
  vmdk
  VMware环境当中默认使用的磁盘格式
  vhd \ vhdx
  微软默认采用的文件格式 
  

使用qemu-imgg管理虚拟磁盘

  
 <代码> qemu-img是一个功能强制性磁盘镜像管理工具
  检查检查完整性
  创建创建镜像
  提交提交更该
  比较比较
  把转换
  信息获得信息
  snopshot快照管理
  调整调整大小 
  
 <代码>例如:
  创建一块生格式1 g大小的虚拟磁盘
  qemu-img创建t1。img 1 g//默认磁盘会存放在当前目录下
  创建一块qcow2格式10 g大小的虚拟磁盘
  qemu-img创建t2。img - f qcow2 10 g
  查看t2.img虚拟磁盘的具体信息
  qemu-img信息t2.img
  检测t1.img磁盘的运行状态
  qemu-img检查t1.img
  调整oa-disk.qcow2虚拟磁盘的大小,增加5个g
  qemu-img调整oa-disk。qcow2 + 5 g//注意磁盘扩容完毕之后需要在虚拟机的操作系统层面进行文件系统的创建
  为oa-disk.qcow2创建快照
  ——s1 oa-disk.qcow2 qemu-img快照
  查看刚刚创建的快照
  qemu-img快照- l oa-disk.qcow2
  回滚快照
  qemu-img快照——s1 oa-disk.qcow2  
  

<强>当我们把这些虚拟磁盘文件创建出来就可以添加到虚拟机中,称为虚拟机中的一块磁盘使用

  
 <代码>使用一个具体的示例来演示:
  qemu-img创建- f qcow2 vm1-disk1。qcow2 10克
  virt-install \
  - - - name=vm1 \
  ——=/tmp/vm1-disk1磁盘路径。qcow2 \//指定安装到的磁盘文件路径
  ram——个vcpu=1=1024 \//设置虚拟内存大小
  ——cdrom=/tmp/centos - 7 - x86_64 dvd - 1708。iso \//指定启动文件
  也可以是——位置/tmp/centos 1708. - 7 - x86_64 dvd - - iso
  ——网络网络=默认\
  ——图形vnc,听=0.0.0.0 \
  ——linux os类型=\
  ——os-variant=Centos7.0  
  

<强>后备差异虚拟硬盘
在实际生产环境中可以将一个backing_file基础镜像作为父镜像,然后让多个虚拟机使用同一个父镜像,这样只需要为虚拟机提供一个基础镜像即可
对于父镜像来说,可以是原始或者是qcow2文件格式,但是使用父镜像的虚拟机来说必须使用qcow2
准备模板

  
 <代码> qemu-img创建- f qcow2 \
  比;- o backing_file=vm1-disk1。qcow2 \//磁盘镜像为安装过操作系统的镜像
  比;oa-disk。qcow2//关联基础磁盘跟父磁盘镜像
  创建虚拟机
  virt-install——进口\
  比;——name=oa \
  比;——个vcpu=1 \
  比;——内存=1024 \
  比;——=/tmp/oa-disk磁盘路径。qcow2 \
  比;——网络网络=默认\
  比;——图形vnc,听=0.0.0.0  
  

<强>注意当使用指定磁盘创建虚拟机之后,虚拟机磁盘文件属主属组变成qemu
如果我们此时移除或者是更改父镜像磁盘(基础镜像)则虚拟机无法启动

  

存储池:

  

<强>存储池的基本概念
Libvirt可以以存储池的形式对存储进行统一管理,简化操作
对于虚拟机操作来说,存储池和卷并不是必须的
 KVM专题(3)存储”> <br/> <img src=

  

例如我们创建一个基于目录的存储池

  
 <代码> mkdir/guest_images//创建目录
  乔恩根:根/guest_images///更改目录属主属组
  chmod 700/guest_images///更改权限
  virsh pool-define-as guest_images dir -目标”/guest_images”//创建存储池 

KVM专题(3)存储