691912ef44
The nvmf library now supports the ability to assign arbitrary NSIDs, rather than automatically assigning the next one in line. Expose this functionality to the user via the configuration file and RPC interfaces. Change-Id: Ia85a9a6dfe31a2cd0605c7a6c098eec0c1b7de68 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-on: https://review.gerrithub.io/376463 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
166 lines
6.0 KiB
Plaintext
166 lines
6.0 KiB
Plaintext
# NVMf Target Configuration File
|
|
#
|
|
# Please write all parameters using ASCII.
|
|
# The parameter must be quoted if it includes whitespace.
|
|
#
|
|
# Configuration syntax:
|
|
# Leading whitespace is ignored.
|
|
# Lines starting with '#' are comments.
|
|
# Lines ending with '\' are concatenated with the next line.
|
|
# Bracketed ([]) names define sections
|
|
|
|
[Global]
|
|
# Users can restrict work items to only run on certain cores by
|
|
# specifying a ReactorMask. Default ReactorMask mask is defined as
|
|
# -c option in the 'ealargs' setting at beginning of file nvmf_tgt.c.
|
|
#ReactorMask 0x00FF
|
|
|
|
# Tracepoint group mask for spdk trace buffers
|
|
# Default: 0x0 (all tracepoint groups disabled)
|
|
# Set to 0xFFFFFFFFFFFFFFFF to enable all tracepoint groups.
|
|
#TpointGroupMask 0x0
|
|
|
|
[Rpc]
|
|
# Defines whether to enable configuration via RPC.
|
|
# Default is disabled. Note that the RPC interface is not
|
|
# authenticated, so users should be careful about enabling
|
|
# RPC in non-trusted environments.
|
|
Enable No
|
|
# Listen address for the RPC service.
|
|
# May be an IP address or an absolute path to a Unix socket.
|
|
Listen 127.0.0.1
|
|
|
|
# Users may change this section to create a different number or size of
|
|
# malloc LUNs.
|
|
# This will generate 8 LUNs with a malloc-allocated backend.
|
|
# Each LUN will be size 64MB and these will be named
|
|
# Malloc0 through Malloc7. Not all LUNs defined here are necessarily
|
|
# used below.
|
|
[Malloc]
|
|
NumberOfLuns 8
|
|
LunSizeInMB 64
|
|
|
|
# Users must change this section to match the /dev/sdX devices to be
|
|
# exported as iSCSI LUNs. The devices are accessed using Linux AIO.
|
|
# The format is:
|
|
# AIO <file name> <bdev name>
|
|
# The file name is the backing device
|
|
# The bdev name can be referenced from elsewhere in the configuration file.
|
|
# Block size may be omitted to automatically detect the block size of a disk.
|
|
[AIO]
|
|
AIO /dev/sdb AIO0
|
|
AIO /dev/sdc AIO1
|
|
AIO /tmp/myfile AIO2 4096
|
|
|
|
# Define NVMf protocol global options
|
|
[Nvmf]
|
|
# Set the maximum number of submission and completion queues per session.
|
|
# Setting this to '8', for example, allows for 8 submission and 8 completion queues
|
|
# per session.
|
|
MaxQueuesPerSession 4
|
|
|
|
# Set the maximum number of outstanding I/O per queue.
|
|
#MaxQueueDepth 128
|
|
|
|
# Set the maximum in-capsule data size. Must be a multiple of 16.
|
|
# 0 is a valid choice.
|
|
#InCapsuleDataSize 4096
|
|
|
|
# Set the maximum I/O size. Must be a multiple of 4096.
|
|
#MaxIOSize 131072
|
|
|
|
# Set the global acceptor lcore ID, lcores are numbered starting at 0.
|
|
#AcceptorCore 0
|
|
|
|
# Set how often the acceptor polls for incoming connections. The acceptor is also
|
|
# responsible for polling existing connections that have gone idle. 0 means continuously
|
|
# poll. Units in microseconds.
|
|
AcceptorPollRate 10000
|
|
|
|
[Nvme]
|
|
# NVMe Device Whitelist
|
|
# Users may specify which NVMe devices to claim by their transport id.
|
|
# See spdk_nvme_transport_id_parse() in spdk/nvme.h for the correct format.
|
|
# The second argument is the assigned name, which can be referenced from
|
|
# other sections in the configuration file. For NVMe devices, a namespace
|
|
# is automatically appended to each name in the format <YourName>nY, where
|
|
# Y is the NSID (starts at 1).
|
|
TransportId "trtype:PCIe traddr:0000:00:00.0" Nvme0
|
|
TransportId "trtype:PCIe traddr:0000:01:00.0" Nvme1
|
|
|
|
# The number of attempts per I/O when an I/O fails. Do not include
|
|
# this key to get the default behavior.
|
|
RetryCount 4
|
|
# Timeout for each command, in seconds. If 0, don't track timeouts.
|
|
Timeout 0
|
|
# Action to take on command time out. Only valid when Timeout is greater
|
|
# than 0. This may be 'Reset' to reset the controller, 'Abort' to abort
|
|
# the command, or 'None' to just print a message but do nothing.
|
|
# Admin command timeouts will always result in a reset.
|
|
ActionOnTimeout None
|
|
# Set how often the admin queue is polled for asynchronous events.
|
|
# Units in microseconds.
|
|
AdminPollRate 100000
|
|
|
|
# Disable handling of hotplug (runtime insert and remove) events,
|
|
# users can set to Yes if want to enable it.
|
|
# Default: No
|
|
HotplugEnable No
|
|
|
|
# The Split virtual block device slices block devices into multiple smaller bdevs.
|
|
[Split]
|
|
# Syntax:
|
|
# Split <bdev> <count> [<size_in_megabytes>]
|
|
|
|
# Split Malloc2 into two equally-sized portions, Malloc2p0 and Malloc2p1
|
|
Split Malloc2 2
|
|
|
|
# Split Malloc3 into eight 1-megabyte portions, Malloc3p0 ... Malloc3p7,
|
|
# leaving the rest of the device inaccessible
|
|
Split Malloc3 8 1
|
|
|
|
# Define an NVMf Subsystem.
|
|
# - NQN is required and must be unique.
|
|
# - Core may be set or not. If set, the specified subsystem will run on
|
|
# it, otherwise each subsystem will use a round-robin method to allocate
|
|
# core from available cores, lcores are numbered starting at 0.
|
|
# - Between 1 and 255 Listen directives are allowed. This defines
|
|
# the addresses on which new connections may be accepted. The format
|
|
# is Listen <type> <address> where type currently can only be RDMA.
|
|
# - Between 0 and 255 Host directives are allowed. This defines the
|
|
# NQNs of allowed hosts. If no Host directive is specified, all hosts
|
|
# are allowed to connect.
|
|
# - Between 0 and 255 Namespace directives are allowed. These define the
|
|
# namespaces accessible from this subsystem.
|
|
# The user must specify a bdev name for each namespace, and may optionally
|
|
# specify a namespace ID. If nsid is omitted, the namespace will be
|
|
# assigned the next available NSID. The NSID must be unique within the
|
|
# subsystem.
|
|
# Syntax:
|
|
# Namespace <bdev_name> [<nsid>]
|
|
|
|
# Namespaces backed by physical NVMe devices
|
|
[Subsystem1]
|
|
NQN nqn.2016-06.io.spdk:cnode1
|
|
Core 0
|
|
Listen RDMA 15.15.15.2:4420
|
|
AllowAnyHost No
|
|
Host nqn.2016-06.io.spdk:init
|
|
SN SPDK00000000000001
|
|
Namespace Nvme0n1 1
|
|
Namespace Nvme1n1 2
|
|
|
|
# Multiple subsystems are allowed.
|
|
# Namespaces backed by non-NVMe devices
|
|
[Subsystem2]
|
|
NQN nqn.2016-06.io.spdk:cnode2
|
|
Core 0
|
|
Listen RDMA 192.168.2.21:4420
|
|
AllowAnyHost No
|
|
Host nqn.2016-06.io.spdk:init
|
|
SN SPDK00000000000002
|
|
Namespace Malloc0
|
|
Namespace Malloc1
|
|
Namespace AIO0
|
|
Namespace AIO1
|