嗨我最近做了一个关于rbd到qemu目标的virtio-scsi实验(用于它的DISCARD/TRIM支持),并将吞吐量和iops与同一台机器上的rbd设置中的virtio-blk进行了比较,在客户端使用fio .连续读写的吞吐量小7倍(42.3MB/s vs 309MB/s),随机读写中的iops小10倍(546 vs 5705).
我所做的是使用OpenStack Juno设置一个虚拟机,它给了我rbd设置的virtio-blk.然后我修改了libvirt configure xml中的相关部分,由此:
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<auth username='cinder'>
<secret type='ceph' uuid='482b83f9-be95-448e-87cc-9fa602196590'/>
</auth>
<source protocol='rbd' name='vms/c504ea8b-18e6-491e-9470-41c60aa50b81_disk'>
<host name='192.168.20.105' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)
对此:
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writeback' discard='unmap'/>
<auth username='cinder'>
<secret type='ceph' uuid='482b83f9-be95-448e-87cc-9fa602196590'/>
</auth>
<source protocol='rbd' name='vms/c504ea8b-18e6-491e-9470-41c60aa50b81_disk'>
<host name='192.168.20.105' port='6789'/>
</source>
<target dev='vda' bus='scsi'/>
<controller type='scsi' model='virtio-scsi' index='0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)
软件版本是:
qemu 2.5.1
libvirt 1.2.2
内核 3.18.0-031800-generic#201412071935 SMP Mon Dec …