KVM虚拟化存储管理(4)

一、KVM存储虚拟化介绍

KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的。
  Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种型;
  Volume 是在 Storage Pool 中划分出的一块空间,宿主机将 Volume 分配给虚拟机,Volume 在虚拟机中看到的就是一块硬盘。

厚置备:厚置备是传统存储置备模型。对于厚置备,预先提供大量存储空间以满足未来的存储需要。但是,空间可能一直未被使用,这样会导致无法充分利用存储容量。
  精简置备:此方法与厚置备相反,通过以灵活的按需方式分配存储空间,可帮助您消除无法充分利用存储的问题。可以通过 ESXi,使用两种模型的精简置备(阵列级别和虚拟磁盘级别)。

二、目录类型的 Storage Pool

文件目录是最常用的 Storage Pool 类型。KVM 将宿主机目录 /var/lib/libvirt/images/ 作为默认的 Storage Pool
  Volume 是该目录下面的文件了,一个文件就是一个 Volume。

KVM虚拟化存储管理(4)
  那 KVM 是怎么知道要把 /var/lib/libvirt/images 这个目录当做默认 Storage Pool 的呢?
实际上 KVM 所有可以使用的 Storage Pool 都定义在宿主机的 /etc/libvirt/storage 目录下,每个 Pool 一个 xml 文件,如下:

KVM虚拟化存储管理(4)
  默认有一个 default.xml,其内容如下:注意:Storage Pool 的类型是 “dir”,目录的路径就是/var/lib/libvirt/images

KVM虚拟化存储管理(4)

三、创建 Stotage Pool

(1)在 virt-manager 中打开一台虚拟机,为其添加硬盘,执行如下:

KVM虚拟化存储管理(4)
(2)选择管理,弹出如下对话框,点击左侧“+”后弹出添加新存储池,随意起一个名称,点击“前进”

KVM虚拟化存储管理(4)
(3)在“目标路径”中写入准备新建存储池的路径,点击“完成”:

KVM虚拟化存储管理(4)
(4)之后新建出一个名为kem-storage的存储池,其路径为/kvm-storag

KVM虚拟化存储管理(4)

KVM虚拟化存储管理(4)
(5)删除存储池:首先停止存储池,再进行删除

KVM虚拟化存储管理(4)

KVM虚拟化存储管理(4)

四、虚拟机添加volume

(1)上一节我们创建了路径为/kvm-storage的Storage-Pool,在此Pool中添加volume,取名并设置大小:

KVM虚拟化存储管理(4)

KVM虚拟化存储管理(4)
(2)点击“完成”后,在kvm-storage中新建了一个volume的文件,点击“选择卷”:

KVM虚拟化存储管理(4)
(3)点击“完成”后,虚机中多了一个“磁盘2”

KVM虚拟化存储管理(4)

KVM虚拟化存储管理(4)

KVM虚拟化存储管理(4)
  

以上创建的卷 volume01.qcow2 是一个文件,路径在/kvm-storage。使用文件做 Volume 有很多优点:存储方便、移植性好、可复制
  KVM 支持多种 Volume 文件格式:
  raw:是默认格式,即原始磁盘镜像格式,移植性好,性能好,但大小固定,不能节省磁盘空间。
  qcow2:是推荐使用的格式,cow 表示 copy on write,能够节省磁盘空间,支持 AES 加密,支持 zlib 压缩,支持多快照,功能很多。
  vmdk:是 VMWare 的虚拟磁盘格式,也就是说 VMWare 虚机可以直接在 KVM上 运行。