我有一个DOM0,包含两个configuration为软件RAID1的3TB硬盘驱动器,也有16GB的内存。 DOM0的Linux发行版是CentOS 6.3,pipe理程序是libvirtpipe理的KVM。
DOM0和DOMU之间的性能下降,DOMU写入吞吐量约为DOM0的40%。 我使用以下简单的dd命令testing了性能:
dd bs = 1M count = 1024 oflag = direct if = / dev / zero of = testb conv = fdatasync
我为DOM0configuration了DEADLINE电梯,为DOMUconfiguration了NOOP电梯,而这又是一个Debian Unstable:
Linux vm1 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux root@vm1:/home/paris# cat /etc/debian_version 6.0.6
至于libvirt中的DOMUconfiguration,下面是其中一个虚拟驱动器的XML片段,它们实际上是纯原始的崩溃文件:
<disk type='file' device='disk'> <driver name='qemu' type='raw' cache='none' io='native'/> <source file='/mnt/vmstore2/disks/vm1/boot.img'/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk>
我还注意到在libvirt生成的命令行中,-drive命令行开关的“if”参数被设置为“none”而不是“virtio”:
-drive file=/mnt/vmstore2/disks/vm1/root.img,if=none,id=drive-virtio-disk2,format=raw,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk2,id=virtio-disk2
我不知道这种性能下降是否正常,但我读到VIRTIO应该能够保证DOM0和DOMU之间的吞吐量几乎相同。
感谢您的任何帮助。
即使使用virtio,为访客磁盘使用映像文件也会产生一定的相关开销。 根据映像文件所在的同一物理设备上的其他I / O活动,这可能会有很大的不同。
如果使用virtio驱动程序将物理磁盘作为块设备传递给KVM guest虚拟机,则会看到更接近本地吞吐量的情况。 分区或LVM卷也是如此,具有与上述相同的I / O警告(尽pipe这些通常都会比磁盘映像文件更好)。
我们确实使用映像文件作为我们的某些KVM guest虚拟机的磁盘,但是我们会尽可能将映像保存在与主机不同的物理驱动器或arrays上。