KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的。
Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种型;
Volume 是在 Storage Pool 中划分出的一块空间,宿主机将 Volume 分配给虚拟机,Volume 在虚拟机中看到的就是一块硬盘。
二、目录类型的 Storage Pool
文件目录是最常用的 Storage Pool 类型。KVM 将宿主机目录 /var/lib/libvirt/images/ 作为默认的 Storage Pool
Volume 是该目录下面的文件了,一个文件就是一个 Volume。
那 KVM 是怎么知道要把 /var/lib/libvirt/images 这个目录当做默认 Storage Pool 的呢?
实际上 KVM 所有可以使用的 Storage Pool 都定义在宿主机的 /etc/libvirt/storage 目录下,每个 Pool 一个 xml 文件,如下:
默认有一个 default.xml,其内容如下:注意:Storage Pool 的类型是 “dir”,目录的路径就是/var/lib/libvirt/images
三、创建Storage Pool
(1)在 virt-manager 中打开一台虚拟机,为其添加硬盘,执行如下:
(2)选择管理,弹出如下对话框,点击左侧“+”后弹出添加新存储池,随意起一个名称,点击“前进”
(3)在“目标路径”中写入准备新建存储池的路径,点击“完成”:
(4)之后新建出一个名为kem-storage的存储池,其路径为/kvm-storag
(5)删除存储池:首先停止存储池,再进行删除
四、虚机添加volume
(1)上一节我们创建了路径为/kvm-storage的Storage-Pool,在此Pool中添加volume,取名并设置大小:
(2)点击“完成”后,在kvm-storage中新建了一个volume的文件,点击“选择卷”:
(3)点击“完成”后,虚机中多了一个“磁盘2”
以上创建的卷 volume01.qcow2 是一个文件,路径在/kvm-storage。使用文件做 Volume 有很多优点:存储方便、移植性好、可复制。
KVM 支持多种 Volume 文件格式:
raw:是默认格式,即原始磁盘镜像格式,移植性好,性能好,但大小固定,不能节省磁盘空间。
qcow2:是推荐使用的格式,cow 表示 copy on write,能够节省磁盘空间,支持 AES 加密,支持 zlib 压缩,支持多快照,功能很多。
vmdk:是 VMWare 的虚拟磁盘格式,也就是说 VMWare 虚机可以直接在 KVM上 运行。