cinder/doc/source/configuration/block-storage/drivers/spdk-volume-driver.rst
Maciej Szwed 01d8401d14 SPDK drivers: Update RPC calls to match latest SPDK changes
With latest SPDK release most of the old RPC calls has been
deprecated and soon will be obsolete. This patch updates
relevant calls to the latest version.

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: I615e34f2f8df60eaea09e32b15437deb36f441c0
2019-11-12 15:20:20 +01:00

62 lines
2.2 KiB
ReStructuredText

==========================================
Storage Performance Development Kit driver
==========================================
Storage Performance Development Kit (SPDK) is a user space, polled-mode,
asynchronous, lockless NVMe driver. It provides zero-copy, highly
parallel access directly to an SSD from a user space application.
SPDK provides NVMe-oF target that is capable of serving disks over
the network or to other processes.
Preparation
~~~~~~~~~~~
SPDK NVMe-oF target installation
--------------------------------
Follow instructions available on https://spdk.io/doc/nvmf.html to install
and configure environment with SPDK NVMe-oF target application. Starting
from Ussuri release SPDK release v19.10 or higher is required.
Storage pools configuration
---------------------------
SPDK Cinder driver requires storage pools to be configured upfront
in SPDK NVMe-oF target application. SPDK driver uses Logical Volume
Stores (LVS) as storage pools. Details on configuring LVS are available
on https://spdk.io/doc/logical_volumes.html. After storage pools are
configured remote access has to be enabled. Launch
``scripts/rpc_http_proxy.py`` script from SPDK directory to start an http
server that will manage requests from volume driver.
Supported operations
~~~~~~~~~~~~~~~~~~~~
* Create, delete, attach, and detach volumes.
* Create, list, and delete volume snapshots.
* Create a volume from a snapshot.
* Copy an image to a volume.
* Copy a volume to an image.
* Clone a volume.
* Extend a volume.
* Get volume statistics.
Configuration
~~~~~~~~~~~~~
Use the following options to configure for the SPDK NVMe-oF transport:
.. code-block:: ini
volume_driver = cinder.volume.drivers.spdk.SPDKDriver
target_protocol = nvmet_rdma # SPDK driver supports only nvmet_rdma target protocol
target_helper = spdk-nvmeof # SPDK volume driver requires SPDK NVMe-oF target driver
target_ip_address = 192.168.0.1 # NVMe-oF target IP address
target_port = 4260 # NVMe-oF target port
target_prefix = nqn.2014-08.org.spdk # NVMe-oF target nqn prefix
.. config-table::
:config-target: SPDK
cinder.volume.targets.spdknvmf