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.
Follow instructions available on https://spdk.io/doc/nvmf.html to install and configure environment with SPDK NVMe-oF target application.
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.
Use the following options to configure for the SPDK NVMe-oF transport:
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
Configuration option = Default value | Description |
---|---|
spdk_rpc_ip = None |
(String) The NVMe target remote configuration IP address. |
spdk_rpc_password = None |
(String) The NVMe target remote configuration password. |
spdk_rpc_port = 8000 |
(Port(min=0, max=65535)) The NVMe target remote configuration port. |
spdk_rpc_username = None |
(String) The NVMe target remote configuration username. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.