KVM 存储虚拟化 - 天天5分钟玩转 OpenStack(7)

KVM 的存储虚拟化是经过存储池(Storage Pool)和卷(Volume)来管理的。shell

Storage Pool 是宿主机上能够看到的一片存储空间,能够是多种类型,后面会详细讨论。Volume 是在 Storage Pool 中划分出的一块空间,宿主机将 Volume 分配给虚拟机,Volume 在虚拟机中看到的就是一块硬盘。ubuntu

下面咱们学习不一样类型的 Storage Pool网络

目录类型的 Storage Pool

文件目录是最经常使用的 Storage Pool 类型。 
KVM 将宿主机目录 /var/lib/libvirt/images/ 做为默认的 Storage Pool。
分布式

那么 Volume 是什么呢? 
答案就是该目录下面的文件了,一个文件就是一个 Volume。
性能

你们是否还记得咱们以前建立第一个虚机 kvm1 的时候,就是将镜像文件 cirros-0.3.3-x86_64-disk.img 放到了这个目录下。文件 cirros-0.3.3-x86_64-disk.img 也就是Volume,对于 kvm1 来讲,就是它的启动磁盘了。学习

那 KVM 是怎么知道要把 /var/lib/libvirt/images 这个目录当作默认 Storage Pool 的呢? 
实际上 KVM 全部可使用的 Storage Pool 都定义在宿主机的 /etc/libvirt/storage 目录下,每一个 Pool 一个 xml 文件,默认有一个 default.xml,其内容以下:
加密

注意:Storage Pool 的类型是 “dir”,目录的路径就是 /var/lib/libvirt/imagesspa

下面咱们为虚机 kvm1 添加一个新的磁盘,看看有什么变化。 
在 virt-manager 中打开 kvm1 的配置页面,右键添加新硬件
code

在默认 Pool 中建立一个 8G 的卷。orm

点击 “Finish”,能够看到新磁盘的信息。

在 /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

使用文件作 Volume 有不少优势:存储方便、移植性好、可复制、可远程访问。 

前面几个优势都很好理解,这里对“可远程访问”多解释一下。

远程访问的意思是镜像文件不必定都放置到宿主机本地文件系统中,也能够存储在经过网络链接的远程文件系统,好比 NFS,或者是分布式文件系统中,好比 GlusterFS。

这样镜像文件就能够在多个宿主机之间共享,便于虚机在不一样宿主机之间作 Live Migration;若是是分布式文件系统,多副本的特性还能够保证镜像文件的高可用。

KVM 支持多种 Volume 文件格式,在添加 Volume 时能够选择

raw 是默认格式,即原始磁盘镜像格式,移植性好,性能好,但大小固定,不能节省磁盘空间。

qcow2 是推荐使用的格式,cow 表示 copy on write,可以节省磁盘空间,支持 AES 加密,支持 zlib 压缩,支持多快照,功能不少。

vmdk 是 VMWare 的虚拟磁盘格式,也就是说 VMWare 虚机能够直接在 KVM上 运行。

下一节介绍 LVM 类型的 Storage Pool。

相关文章
相关标签/搜索