doc/nvmf: add description of virtual mode
Added a section that describes the steps to configure a virtual controller. Also update the CPU core affinity section to remove the section numbers. Change-Id: Ide519c31d8653477ea9d9b65b03fe3ea37f78e61 Signed-off-by: John Kariuki <John.K.Kariuki@intel.com>
This commit is contained in:
parent
50cc397d6f
commit
e2d0d9799c
@ -134,14 +134,14 @@ To ensure the SPDK NVMe-oF target has the best performance, configure the RNICs,
|
|||||||
devices, and the core assigned to the NVMe-oF subsystem to all be located on the same NUMA node.
|
devices, and the core assigned to the NVMe-oF subsystem to all be located on the same NUMA node.
|
||||||
The following parameters are used to control which CPU cores SPDK executes on:
|
The following parameters are used to control which CPU cores SPDK executes on:
|
||||||
|
|
||||||
1. **ReactorMask** A hexadecimal bit mask of the CPU cores that SPDK is allowed to execute work
|
**ReactorMask:** A hexadecimal bit mask of the CPU cores that SPDK is allowed to execute work
|
||||||
items on. The ReactorMask is located in the [Global] section of the configuration file. For example,
|
items on. The ReactorMask is located in the [Global] section of the configuration file. For example,
|
||||||
to assign lcores 24,25,26 and 27 to NVMe-oF work items, set the ReactorMask to:
|
to assign lcores 24,25,26 and 27 to NVMe-oF work items, set the ReactorMask to:
|
||||||
~~~{.sh}
|
~~~{.sh}
|
||||||
ReactorMask 0xF000000
|
ReactorMask 0xF000000
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
2. **Assign each Subsystem to a CPU core** This is accomplished by specifying the "Core" value in
|
**Assign each Subsystem to a CPU core:** This is accomplished by specifying the "Core" value in
|
||||||
the [Subsystem] section of the configuration file. For example,
|
the [Subsystem] section of the configuration file. For example,
|
||||||
to assign the Subsystems to lcores 25 and 26:
|
to assign the Subsystems to lcores 25 and 26:
|
||||||
~~~{.sh}
|
~~~{.sh}
|
||||||
@ -161,8 +161,32 @@ Listen RDMA 192.168.100.9:4420
|
|||||||
Host nqn.2016-06.io.spdk:init
|
Host nqn.2016-06.io.spdk:init
|
||||||
NVMe 0000:86:00.0
|
NVMe 0000:86:00.0
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
SPDK executes all code for an NVMe-oF subsystem on a single thread. Different subsystems may execute
|
SPDK executes all code for an NVMe-oF subsystem on a single thread. Different subsystems may execute
|
||||||
on different threads. SPDK gives the user maximum control to determine how many CPU cores are used
|
on different threads. SPDK gives the user maximum control to determine how many CPU cores are used
|
||||||
to execute subsystems. Configuring different subsystems to execute on different CPU cores prevents
|
to execute subsystems. Configuring different subsystems to execute on different CPU cores prevents
|
||||||
the subsystem data from being evicted from limited CPU cache space.
|
the subsystem data from being evicted from limited CPU cache space.
|
||||||
|
|
||||||
|
# Emulating an NVMe controller {#nvmf_config_virtual_controller}
|
||||||
|
|
||||||
|
The SPDK NVMe-oF target provides the capability to emulate an NVMe controller using a virtual
|
||||||
|
controller. Using virtual controllers allows storage software developers to run the NVMe-oF target
|
||||||
|
on a system that does not have NVMe devices. You can configure a virtual controller in the configuration
|
||||||
|
file as follows:
|
||||||
|
|
||||||
|
**Create malloc LUNs:** See @ref bdev_getting_started for details on creating Malloc block devices.
|
||||||
|
|
||||||
|
**Create a virtual controller:** Virtual mode allows any SPDK block device to be presented as an
|
||||||
|
NVMe-oF namespace. These block devices don't need to be NVMe devices. For example, to create a
|
||||||
|
virtual controller for malloc LUNs named Malloc0 and Malloc1:
|
||||||
|
~~~{.sh}
|
||||||
|
# Virtual controller
|
||||||
|
[Subsystem2]
|
||||||
|
NQN nqn.2016-06.io.spdk:cnode2
|
||||||
|
Core 0
|
||||||
|
Mode Virtual
|
||||||
|
Listen RDMA 192.168.2.21:4420
|
||||||
|
Host nqn.2016-06.io.spdk:init
|
||||||
|
SN SPDK00000000000001
|
||||||
|
Namespace Malloc0
|
||||||
|
Namespace Malloc1
|
||||||
|
~~~
|
||||||
|
Loading…
Reference in New Issue
Block a user