我在多路径存储池中有一个KVM和一些LUN(Compellent SAN)。所有文件系统都是xfs。
> # virsh vol-list --pool multipath
dm-3 /dev/mapper/maildata-store-2-repl
dm-4 /dev/mapper/maildata-store-1-back
dm-5 /dev/mapper/metadata-store-2-repl
dm-6 /dev/mapper/metadata-store-1-back
dm-7 /dev/mapper/images
一个LUN专用于存储VM(/ var / lib / libvirt / images),其他LUN将直接安装在VM中,以便将来存储邮件和相关元数据。
# df /dev/mapper/images1
Sys. de fichiers blocs de 1K Utilisé Disponible Uti% Monté sur
/dev/mapper/images1 209611780 18752452 190859328 9% /var/lib/libvirt/images
fio用于比较随机写入时的IOP:
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=/tmp/10g.file --bs=4k --iodepth=64 --size=4G --readwrite=randwrite
所以我在VM的tmp文件夹(/ dev / mapper / images)中编写fio测试时得到了这个结果,非常好!
写:IOPS = 66.1k,BW = 258MiB / s
现在,我使用此xml文件将LUN附加到此VM:
<disk type='block' device='lun'>
<driver name='qemu' type='raw'/>
<source dev='/dev/mapper/maildata-store-1-back'/>
<target dev='sda' bus='scsi'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
这个命令:
virsh attach-device VM_TEST --file lun.xml --persistent
然后,在VM_TEST上:
#fdisk /dev/sda
#mkfs.xfs /dev/sda1
#mount /dev/sda1 /test
并在新创建的分区上重新运行fio测试:
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=/test/10g.file --bs=4k --iodepth=64 --size=4G --readwrite=randwrite
结果非常糟糕:
写:IOPS = 17.6k,BW = 68.7MiB / s
我在xml文件中使用了不同的选项,比如cache = none,bus = virtio,..,但我没有设法真正增加这些措施。
现在我被卡住了。我真的不在哪里寻找。
谢谢。
因此,我设法通过此调整在主机和来宾上获得相同的IOP:
<driver name='qemu' type='raw' cache='directsync' io='native'/>
我也尝试将块设备挂载为磁盘或lun:
<disk type='block' device='lun'>
<target dev='sda' bus='scsi'/>
和
<disk type='block' device='disk'>
<target dev='sda' bus='virtio'/>
结果完全相同。