Difference between revisions of "Virtio-scsi-for-bdm"
Trump.Zhang (talk | contribs) (Created page with "== Add virtio-scsi bus support for block device mapping == The corresponding BP is https://blueprints.launchpad.net/nova/+spec/add-virtio-scsi-bus-for-bdm ===Virtio SCSI===...") |
Trump.Zhang (talk | contribs) |
||
Line 10: | Line 10: | ||
# Boot from a cinder volume with virtio-scsi bus type | # Boot from a cinder volume with virtio-scsi bus type | ||
− | |||
=== Use cases === | === Use cases === | ||
# Improve performance in I/O-intensive applications | # Improve performance in I/O-intensive applications | ||
− | |||
===Libvirt Driver Support=== | ===Libvirt Driver Support=== | ||
Line 24: | Line 22: | ||
<controller type='scsi' index='0' model='virtio-scsi'/> | <controller type='scsi' index='0' model='virtio-scsi'/> | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
===Related works=== | ===Related works=== | ||
# Block-device-mapping-v2 extension has already support attach or boot from a volume which is connected to Instance via scsi bus type and multiple disk types. But cannot generate a virtio-scsi controller. | # Block-device-mapping-v2 extension has already support attach or boot from a volume which is connected to Instance via scsi bus type and multiple disk types. But cannot generate a virtio-scsi controller. | ||
− | # Libvirt-virtio-scsi-driver BP ([2]) whose milestone target is icehouse-3 is aim to support generate a virtio-scsi controller when using an image with virtio-scsi property. But it seems not to take boot-from | + | # Libvirt-virtio-scsi-driver BP ([2]) whose milestone target is icehouse-3 is aim to support generate a virtio-scsi controller when using an image with virtio-scsi property. But it seems not to take boot-from-volume into account. |
===Implementation=== | ===Implementation=== | ||
Line 46: | Line 40: | ||
In libvirt driver, append the virtio-scsi controller (will be introduced by libvirt-virtio-scsi-driver BP [1]) if we booting from a volume with "virtio-scsi" bus type. | In libvirt driver, append the virtio-scsi controller (will be introduced by libvirt-virtio-scsi-driver BP [1]) if we booting from a volume with "virtio-scsi" bus type. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=== References === | === References === |
Latest revision as of 16:27, 1 April 2014
Contents
Add virtio-scsi bus support for block device mapping
The corresponding BP is https://blueprints.launchpad.net/nova/+spec/add-virtio-scsi-bus-for-bdm
Virtio SCSI
VirtIO SCSI is a new para-virtualized SCSI controller device for KVM instances. It has been designed to replace virtio-blk, increase it's performance and improve scalability. The interface is capable of handling multiple block devices per virtual SCSI adapter, keeps the standard scsi device naming in the guests (e.x /dev/sda) and support SCSI devices passthrough.
Goals
- Boot from a cinder volume with virtio-scsi bus type
Use cases
- Improve performance in I/O-intensive applications
Libvirt Driver Support
When using a volume with "scsi" bus type and not specify a scsi controller explicitly in the domain xml, libvirt will automatically generate a "lsi" controller. Virtio-Scsi controller can be specified as follows:
<controller type='scsi' index='0' model='virtio-scsi'/>
Related works
- Block-device-mapping-v2 extension has already support attach or boot from a volume which is connected to Instance via scsi bus type and multiple disk types. But cannot generate a virtio-scsi controller.
- Libvirt-virtio-scsi-driver BP ([2]) whose milestone target is icehouse-3 is aim to support generate a virtio-scsi controller when using an image with virtio-scsi property. But it seems not to take boot-from-volume into account.
Implementation
API support
Add "virtio-scsi" bus type to block-device-mapping-v2 extension, as follows:
--block-device id=xxx,source=volume,dest=volume,bus=virtio-scsi,type=lun
Boot from Virtio-scsi Passthrough volume
In libvirt driver, append the virtio-scsi controller (will be introduced by libvirt-virtio-scsi-driver BP [1]) if we booting from a volume with "virtio-scsi" bus type.
References
[1] https://blueprints.launchpad.net/cinder/+spec/multi-attach-volume [2] https://blueprints.launchpad.net/nova/+spec/libvirt-virtio-scsi-driver