2263701157
In addition, moving specs from Kilo into Liberty that belong to blueprints that were not completed. Change-Id: Ibabce077579742b237a8cdb577414cc26228ec08
124 lines
2.3 KiB
ReStructuredText
124 lines
2.3 KiB
ReStructuredText
..
|
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
|
License.
|
|
|
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
|
|
==========================================
|
|
Add vHost Executor
|
|
==========================================
|
|
|
|
https://blueprints.launchpad.net/cinder/+spec/vhost-support
|
|
|
|
The vHost driver was added in the 3.6 Linux kernel. The Linux-IO Target vHost
|
|
fabric module implements I/O processing based on the Linux virtio mechanism. It
|
|
provides virtually bare-metal local storage performance for KVM guests.
|
|
Currently Linux guest VMs are supported.
|
|
|
|
Problem description
|
|
===================
|
|
|
|
The vHost driver is not a self-contained virtio device, as it depends on
|
|
userspace to handle the control plane while the data plane is done in kernel.
|
|
This means the data plane does not go through emulations, which can slow down
|
|
I/O performance. Cinder today does not provide an option for taking advantage
|
|
of the Linux vHost driver.
|
|
|
|
Use Cases
|
|
=========
|
|
|
|
Proposed change
|
|
===============
|
|
|
|
Add an additional brick executor that knows how to work with vHost. The
|
|
executor will have a first pass implementation of creating, deleting, listing
|
|
vHost endpoints through LIO.
|
|
|
|
Creating the endpoint requires a block device to be available on the machine
|
|
that is creating the vHost target. The vHost executor would pass the block
|
|
device path to to rtstools, and rtstools will create vHost endpoint with a lun
|
|
to the block device.
|
|
|
|
Alternatives
|
|
------------
|
|
|
|
n/a
|
|
|
|
Data model impact
|
|
-----------------
|
|
|
|
n/a
|
|
|
|
REST API impact
|
|
---------------
|
|
|
|
n/a
|
|
|
|
Security impact
|
|
---------------
|
|
|
|
n/a
|
|
|
|
Notifications impact
|
|
--------------------
|
|
|
|
n/a
|
|
|
|
Other end user impact
|
|
---------------------
|
|
|
|
n/a
|
|
|
|
Performance Impact
|
|
------------------
|
|
|
|
Cinder itself being the control plane will not experience any different
|
|
performance. The data plane should experience a greater deal of performance
|
|
[1].
|
|
|
|
Other deployer impact
|
|
---------------------
|
|
|
|
n/a
|
|
|
|
Developer impact
|
|
----------------
|
|
|
|
n/a
|
|
|
|
|
|
Implementation
|
|
==============
|
|
|
|
Assignee(s)
|
|
-----------
|
|
|
|
Primary assignee:
|
|
thingee
|
|
|
|
Work Items
|
|
----------
|
|
|
|
* Add vHost executor to brick
|
|
|
|
Dependencies
|
|
============
|
|
|
|
n/a
|
|
|
|
Testing
|
|
=======
|
|
|
|
There will be appropriate unit tests available making sure target creation,
|
|
deletion, listing works.
|
|
|
|
Documentation Impact
|
|
====================
|
|
|
|
n/a
|
|
|
|
References
|
|
==========
|
|
|
|
[1] - http://linux-iscsi.org/wiki/VHost#Linux_performance
|