..
 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

Add blueprint for vHost connector support
Add blueprint for vHost connector support

Change-Id: Ia0c6488c7867bf1dbb92d0ba76b2a99da186619c
