玩转OpenStack--7>KVM 存储虚拟化
KVM的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的。
存储池是宿主机上可以看到的一片存储空间,可以是多种类型,后面会详细讨论存储池.Volume是在中划分出的一块空间,宿主机将卷分配给虚拟机,卷在虚拟机中看到的就是一块硬盘。
同我们学习不同类型的存储池
目录类型的存储池
存储目录是最常用的存储池类型
.KVM将宿主机目录/ var / lib / libvirt / images /作为默认的存储池。
那么卷是什么呢?
答案就是该目录下面的文件了,一个文件就是一个卷。
大家是否还记得我们之前创建第一个虚机kvm1的时候,就是将镜像文件的Cirrus-0.3.3-x8664-disk.img放到了这个目录下。文件的Cirrus-0.3.3-x8664-disk.img也就是音量,对于kvm1来说,就是它的启动磁盘了。
那是怎么知道要把KVM的/ var / lib中/ libvirt的/图像这个目录当做默认的呢存储池?实际上KVM所有可以使用的存储池都定义在宿主机的的/ etc / libvirt的/存储目录下,每个池一个xml文件,默认有一个default.xml,其内容如下:
注意:存储池的类型是“dir”,目录的路径就是/ var / lib / libvirt / images
下面我们为虚机kvm1添加一个新的磁盘,看看有什么变化。在virt-manager中中打开kvm1的配置页面,右键添加新硬件
在默认Pool中创建一个8G的卷。
点击“完成”,可以看到新磁盘的信息。
Var / var / lib / libvirt / images /下多了一个8G的文件kvm1.img
root @ ubuntu:〜#ls -l / var / lib / libvirt / images /
total 14044-rw-r - r-- 1 root root 14417920 Sep 4 11:24 cirros-0.3.3-x86_64-disk.img
-rw ------- 1 root root 8589934592 Sep 4 21:39 kvm1.img
卷使用文件做有很多优点:存储方便,移植性好,可复制,可远程访问前面几个优点都很好理解,这里对 “可远程访问” 多解释一下..
远程访问的意思是镜像文件不一定都放置到宿主机本地文件系统中,也可以存储在通过网络连接的远程文件系统,比如NFS,或者是分布式文件系统中,比如GlusterFS。
这样镜像文件就可以在多个宿主机之间共享,便于虚机在不同宿主机之间做实时迁移;如果是分布式文件系统,多副本的特性还可以保证镜像文件的高可用。
KVM支持多种Volume文件格式,在添加Volume时可以选择
raw是默认格式,即原始磁盘镜像格式,移植性好,性能好,但大小固定,不能节省磁盘空间。
qcow2是推荐使用的格式,牛表示上写副本,能够节省磁盘空间,支持AES加密,支持zlib的压缩,支持多快照,功能很多。
vmdk是VMWare的虚拟磁盘格式,也就是说VMWare虚机可以直接在KVM上运行。
点击阅读上一节玩转 OpenStack--6>CPU 和内存虚拟化原理