通过实践kvm的存储机制及功能
kvm存储的2个概念
- 存储池:存储真实的载体
- 存储卷:逻辑的单个载体,可以理解为虚拟硬盘
存储池的分类(载体)
- 基于文件系统存储
- 基于存储设备
–基于文件系统存储–
dir:directory,目录方式存储
指的是具体的某个文件下存储卷,默认存储在/var/lib/libvirt/images
fs:formatted block storage,分区方式存储
指的是某个格式化的分区,机制其实就是mount挂载分区,在分区下存储卷
区别:路径依赖,dir固定目录路径,fs可以挂载到任何文件路径下
netfs:network exported directory,网络文件方式(远程存储)
指的是利用网络系统目录存储卷,比如Samba文件系统,NFS网络文件系统等远程方式
使用这个方式作为KVM的存储是比较方便的,因为这中方式能比较方便的从另外一台服务器上去访问,同样也允许你在多台主机上去访问同一个磁盘文件
上述的各种类型的基于文件系统的KVM存储方式都存在一些缺点:文件系统。由于KVM的虚拟机对于硬盘的操作都不是直接写入到KVM的存储介质,而是在宿主主机上的文件系统。这就意味这访问文件系统的时候都需要经过一个不必要经过的中间访问层,这通常会降低性能。
如果想要追求KVM虚拟化的性能,基于设备的存储可能是更好的选择
–基于存储设备–
常用为4种,设备存储都是不支持kvm的快照方式
- disk:直接对硬盘读写
- iSCSI:InternetSmallComputerSystemInterface,基于TCP/IP的协议,通过ip网络创建存储区域网络
- SCSI:Small Computer System Interface,基于硬件智能设备,提供计算机与外部设备之间的接口标准
- LVM:Logical Volume Manager,基于系统对磁盘分区进行管理的一种机制,LVM的优势在于可以使用快照,而快照并不是KVM虚拟化自带的功能
前三种都是基于访问磁盘的方式也存在缺点:不灵活,比较僵化。
如果使用此种类型的存储,那么基本上没有办法修改虚拟磁盘的大小,或者针对虚拟机进行快照功能
LVM是KVM存储方式中,提升灵活性的最佳方式,满足上面的缺点,还可以实现lvm的快照,针对存储卷删除,扩展等操作
参考:iSCSI和SCSI
参考:详细LVM
虚拟磁盘类型(存储卷)
-
raw:代表虚拟机所使用的原始镜像
- 他并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案。
- 不支持快照和压缩等高级特性(缺点)
- 存储卷创建多大,就会占用真实硬盘多大(缺点)
- 寻址简单,访问效率较高(优点)
- 可以通过格式转换工具方便地转换为其他格式(优点)
-
cow : copy-on-write格式,跟raw一样简单
- cow有一个bitmap表记录当前哪些扇区被使用,所以cow可以使用增量镜像,支持快照
-
qcow : QEMU早期的cow
- 增加了动态增加文件大小的功能,并且支持加密,压缩
-
qcow2
- 按需分配磁盘空间,不管文件系统是否支持
- 支持快照
- 支持zlib的磁盘压缩
- 支持AES的加密
-
vmdk:VMware环境当中默认使用的磁盘格式
-
vhd\vhdx:微软默认采用的文件格式
默认创建都是qcow2,基本选择qcow2格式
通过Webvirtmgr看下真实的样子
一个硬盘的情况下,只能采用dir或fs
dir
非常简便,直接指定一个目录即可
fs
前提是创建好了一个单独的分区,格式化后才能使用,开启存储池后默认就mount到指定目录下
disk
直接就读取到我之前的分区,格式是NONE也就不支持任何的高级特性
LVM
首先需要创建好LVM分区
可以根据需求操作几个硬盘或几个分区来创建LVM
同样本身也不支持kvm的快照功能,但是可以使用LVM进行快照,提高传输等特性