Add blueprint for vHost connector support
Change-Id: Ia0c6488c7867bf1dbb92d0ba76b2a99da186619c
This commit is contained in:
parent
1b109582b5
commit
f7ccfbfed0
121
specs/juno/vhost-support.rst
Normal file
121
specs/juno/vhost-support.rst
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
..
|
||||||
|
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.
|
||||||
|
|
||||||
|
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
|
Loading…
Reference in New Issue
Block a user