我为什么喜欢使用LVM作为Xen/KVM的存储方式
02 Apr 2013一、提升整体虚拟机的性能,特别是I/O性能
具体有人测试过,结果如下:(1.)
测试命令
dd if=/dev/zero of=test.bin bs=4K count=512K ;dd if=/dev/zero of=test.bin bs=4K count=512K ;dd if=/dev/zero of=test.bin bs=4K count=512K
Xen 使用 LVM 作为 os tap:
母机写速度 331M/s
2147483648 bytes (2.1 GB) copied, 6.17998 seconds, 347 MB/s
2147483648 bytes (2.1 GB) copied, 6.56825 seconds, 327 MB/s
2147483648 bytes (2.1 GB) copied, 6.67982 seconds, 321 MB/s
虚拟机(linux)写速度 292M/s 相当于母机的88%
2147483648 bytes (2.1 GB) copied, 7.34302 seconds, 292 MB/s
2147483648 bytes (2.1 GB) copied, 7.91667 seconds, 271 MB/s
2147483648 bytes (2.1 GB) copied, 6.86898 seconds, 313 MB/s
Xen 使用 file 作为 os tap:
母机写速度 171M/s
2147483648 bytes (2.1 GB) copied, 13.8047 seconds, 156 MB/s
2147483648 bytes (2.1 GB) copied, 11.737 seconds, 183 MB/s
2147483648 bytes (2.1 GB) copied, 12.2207 seconds, 176 MB/s
虚拟机(linux)写速度57.2M/s 相当于母机的33%
2147483648 bytes (2.1 GB) copied, 43.2957 seconds, 49.6 MB/s
2147483648 bytes (2.1 GB) copied, 36.5314 seconds, 58.8 MB/s
2147483648 bytes (2.1 GB) copied, 33.9732 seconds, 63.2 MB/s
二、可以快速的建立虚拟机的快照
在Linux里,Logical Volume Manager(LVM)也能用于创建快照,它比先前的磁盘文件方法节省了许多时间。这种方法意味着你的虚拟机使用LVM逻辑卷作为存储后端,与使用虚拟磁盘文件形成对比。由于这个逻辑卷,你接下来需要创建快照。这个快照是一种备份,只包含当时进行快照时所改变的元数据和块。当你通过元数据使用dd制作快照副本时,你通常在原始卷上制作原始块的快照,不需要重新激活原始卷。通过这种方式,能大幅度减少创建快照的时间。步骤如下:
1.使用virsh save命令保存虚拟机当前状态,并写入磁盘文件:
virsh save linux01 linux01.sav
2.假定你已经有一个LVM逻辑卷用来作为你虚拟机的存储后端,使用下面的命令对这个卷进行快照。比较好的准则是使用在原始逻辑卷里所分配磁盘空间的10%作为快照卷的大小:
lvcreate -s -L 1G -n linux01-snap /dev/xenvols/linux01
3.由于现在你已经在LVM快照里保存了虚拟机的状态,你能重新启动虚拟机,显著减少虚拟机的停机时间:
virsh restore linux01-sav
4.使用dd创建虚拟机快照并写入一个镜像文件。由于要使用快照复制所有虚拟机分配的磁盘块,这将花费很长时间:
dd if=/dev/xenvols/linux01-snap of=/data/xen01.img
5.不要忘记在最后一步移除快照。这很重要,因为快照最终将被完全覆盖而导致快照不能用。这样的问题是将阻止你从原始卷重新启动,因此不要忘记这最后一步:
lvremove /dev/xenvols/linux01-snap