As discussed at our nova meetings, reorganize the juno specs into three directories: - proposed: things proposed which weren't approved - approved: things we approved but didn't implement - implemented: things approved and implemented The first I suspect is the most controversial. I've done this because I worry about the case where a future developer wants to pick up something dropped by a previous developer, but has trouble finding previous proposed specifications on the topic. Note that the actual proposed specs for Juno are adding in a later commit. Change-Id: Idcf55ca37a83d7098dcb7c2971240c4e8fd23dc8
140 lines
3.0 KiB
ReStructuredText
140 lines
3.0 KiB
ReStructuredText
..
|
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
|
License.
|
|
|
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
|
|
=====================================================
|
|
Add virtio-scsi bus support for block device mapping
|
|
=====================================================
|
|
|
|
https://blueprints.launchpad.net/nova/+spec/add-virtio-scsi-bus-for-bdm
|
|
|
|
|
|
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. Currently, using virtio-scsi bus is not supported when
|
|
booting from volume.
|
|
|
|
|
|
|
|
Problem description
|
|
===================
|
|
|
|
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.
|
|
|
|
Currently, virtio-scsi bus has been supported when booting from glance image,
|
|
which is implemented by BP ([1]) aimed to Icehouse.
|
|
|
|
However, when we create a cinder volume from this image, and then booting
|
|
from this volume and specify the bus_type as "scsi", the guest will still
|
|
use lsi controller instead of virtio-scsi controller.
|
|
|
|
The aim of this BP as follows:
|
|
|
|
When booting from volume with "scsi" bus type, use virtio-scsi controller
|
|
for volume which was created from glance image, which is set with
|
|
"virtio-scsi" hw_scsi_model property.
|
|
|
|
The main use case is to improve performance in I/O-intensive applications.
|
|
|
|
|
|
Proposed change
|
|
===============
|
|
|
|
* Nova retrieve "hw_scsi_model" property from volume's glance_image_metadata
|
|
when booting from cinder volume
|
|
|
|
* Libvirt driver will create the "virtio-scsi" controller if "hw_scsi_model"
|
|
property is "virtio-scsi" and the bus_type specified for volume is "scsi"
|
|
|
|
Alternatives
|
|
------------
|
|
|
|
None
|
|
|
|
Data model impact
|
|
-----------------
|
|
|
|
None
|
|
|
|
REST API impact
|
|
---------------
|
|
|
|
None
|
|
|
|
Security impact
|
|
---------------
|
|
|
|
None
|
|
|
|
Notifications impact
|
|
--------------------
|
|
|
|
None
|
|
|
|
Other end user impact
|
|
---------------------
|
|
|
|
None
|
|
|
|
Performance Impact
|
|
------------------
|
|
|
|
Will improve guest's performance.
|
|
|
|
Other deployer impact
|
|
---------------------
|
|
|
|
None
|
|
|
|
Developer impact
|
|
----------------
|
|
|
|
None
|
|
|
|
|
|
Implementation
|
|
==============
|
|
|
|
Assignee(s)
|
|
-----------
|
|
|
|
Primary assignee:
|
|
<zhangleiqiang@huawei.com>
|
|
|
|
|
|
Work Items
|
|
----------
|
|
|
|
* Nova retrieve "hw_scsi_model" property from volume's glance_image_metadata
|
|
when booting from cinder volume
|
|
|
|
* Libvirt driver will create the "virtio-scsi" controller if "hw_scsi_model"
|
|
property is "virtio-scsi" and the bus_type specified for volume is "scsi"
|
|
|
|
|
|
Dependencies
|
|
============
|
|
|
|
* Depend on the BP [1], which will provide the virtio-scsi-controller object
|
|
|
|
Testing
|
|
=======
|
|
|
|
None
|
|
|
|
Documentation Impact
|
|
====================
|
|
|
|
None
|
|
|
|
References
|
|
==========
|
|
|
|
* [1] https://blueprints.launchpad.net/nova/+spec/libvirt-virtio-scsi-driver
|