Привет, Недавно я провел эксперимент virtio-scsi через rbd через цель qemu (для поддержки DISCARD/TRIM) и сравнил пропускную способность и iops с настройкой virtio-blk over rbd на той же машине, используя fio в Гость. Показатель пропускной способности при последовательной записи чтения в 7 раз меньше (42,3 МБ/с против 309 МБ/с), а iops в случайной записи чтения в 10 раз меньше (546 против 5705).Почему в моем эксперименте virtio-scsi намного медленнее, чем virtio-blk (поверх и ceph rbd-изображение)?
Что я делаю, это создать виртуальную машину с помощью OpenStack Juno, которая даст мне настройку virtio-blk over rbd. Затем я изменил соответствующую часть в Libvirt конфигурационного 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>
к этому:
<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>
версии программного обеспечения являются:
QEMU 2.5.1
libvirt 1.2.2
ядро 3.18.0-031800-родовое # 201412071935 SMP пн 8 декабря 00:36:34 UTC 2014 x86_64 (а Ubuntu 14,04 ядро)
И гипервизор KVM.
Я не думаю, что разница в производительности может быть такой большой между virtio-scsi и virtio-blk. Поэтому, пожалуйста, укажите, что я сделал неправильно, и как добиться разумной производительности.
Ограничение в том, что я хочу решение, которое работает для OpenStack (идеально, если работает для Juno) без большого количества исправлений или кодирования. Например, я слышал о virtio-scsi + vhost-scsi + scsi-mq, но это кажется недоступным в OpenStack прямо сейчас.
И это отвечает на вопрос, потому что ...? – rustyx
Нет, это не так. Он, конечно же, не делает никаких изменений, пока вы не вызываете 'fstrim' в гостевой системе, или, если вы монтируете с опцией' discard', 'rm'. –