c322751769
We already support in rpc and we also need the support in conf file. Signed-off-by: Ziye Yang <ziye.yang@intel.com> Change-Id: Ic0d64c48c21954d913ef7345ce35a767e8e285bd Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/476186 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
296 lines
10 KiB
Plaintext
296 lines
10 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]
|
|
# Tracepoint group mask for spdk trace buffers
|
|
# Default: 0x0 (all tracepoint groups disabled)
|
|
# Set to 0xFFFF to enable all tracepoint groups.
|
|
#TpointGroupMask 0x0
|
|
|
|
# PciBlacklist and PciWhitelist cannot be used at the same time
|
|
#PciBlacklist 0000:01:00.0
|
|
#PciBlacklist 0000:02:00.0
|
|
#PciWhitelist 0000:03:00.0
|
|
#PciWhitelist 0000:04:00.0
|
|
|
|
# Users may activate entries in this section to override default values for
|
|
# global parameters in the block device (bdev) subsystem.
|
|
[Bdev]
|
|
# Number of spdk_bdev_io structures allocated in the global bdev subsystem pool.
|
|
#BdevIoPoolSize 65536
|
|
|
|
# Maximum number of spdk_bdev_io structures to cache per thread.
|
|
#BdevIoCacheSize 256
|
|
|
|
# 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
|
|
|
|
# PMDK libpmemblk-based block device
|
|
[Pmem]
|
|
# Syntax:
|
|
# Blk <pmemblk pool file name> <bdev name>
|
|
Blk /path/to/pmem-pool Pmem0
|
|
|
|
# Define NVMf protocol global options
|
|
[Nvmf]
|
|
# 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
|
|
|
|
# Set how the connection is scheduled among multiple threads, current supported string value are
|
|
# "RoundRobin", "Host", "Transport".
|
|
# RoundRobin: Schedule the connection with roundrobin manner.
|
|
# Host: Schedule the connection according to host IP.
|
|
# Transport: Schedule the connection according to the transport characteristics.
|
|
# For example, for TCP transport, we can schedule the connection according to socket NAPI_ID info.
|
|
# The connection which has the same socket NAPI_ID info will be grouped in the same polling group.
|
|
ConnectionScheduler RoundRobin
|
|
|
|
# One valid transport type must be set in each [Transport].
|
|
# The first is the case of RDMA transport and the second is the case of TCP transport.
|
|
[Transport]
|
|
# Set RDMA transport type.
|
|
Type RDMA
|
|
|
|
# Set the maximum number of outstanding I/O per queue.
|
|
#MaxQueueDepth 128
|
|
|
|
# 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 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 I/O unit size, and this value should not be larger than MaxIOSize
|
|
#IOUnitSize 131072
|
|
|
|
# Set the maximum number of IO for admin queue
|
|
#MaxAQDepth 32
|
|
|
|
# Set the number of pooled data buffers available to the transport
|
|
# It is used to provide the read/write data buffers for the qpairs on this transport.
|
|
#NumSharedBuffers 512
|
|
|
|
# Set the number of shared buffers to be cached per poll group
|
|
#BufCacheSize 32
|
|
|
|
# Set the maximum number outstanding I/O per shared receive queue. Relevant only for RDMA transport
|
|
#MaxSRQDepth 4096
|
|
|
|
[Transport]
|
|
# Set TCP transport type.
|
|
Type TCP
|
|
|
|
# Set the maximum number of outstanding I/O per queue.
|
|
#MaxQueueDepth 128
|
|
|
|
# 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 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 I/O unit size, and this value should not be larger than MaxIOSize
|
|
#IOUnitSize 131072
|
|
|
|
# Set the maximum number of IO for admin queue
|
|
#MaxAQDepth 32
|
|
|
|
# Set the number of pooled data buffers available to the transport
|
|
# It is used to provide the read/write data buffers for the qpairs on this transport.
|
|
#NumSharedBuffers 512
|
|
|
|
# Set the number of shared buffers to be cached per poll group
|
|
#BufCacheSize 32
|
|
|
|
# Set whether to use the C2H Success optimization, only used for TCP transport.
|
|
# C2HSuccess true
|
|
|
|
# Set whether to use different priority for socket, only used for TCP transport.
|
|
# SockPriority 0
|
|
|
|
# Define FC transport
|
|
#[Transport]
|
|
# Set FC transport type.
|
|
#Type FC
|
|
|
|
# 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 5
|
|
|
|
# Set the maximum number of outstanding I/O per queue.
|
|
#MaxQueueDepth 128
|
|
|
|
# Set the maximum I/O size. Must be a multiple of 4096.
|
|
#MaxIOSize 65536
|
|
|
|
[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
|
|
TransportID "trtype:PCIe traddr:0000:02:00.0" Nvme2
|
|
TransportID "trtype:PCIe traddr:0000:03:00.0" Nvme3
|
|
TransportID "trtype:RDMA adrfam:IPv4 traddr:192.168.100.8 trsvcid:4420 hostaddr:192.168.100.9 subnqn:nqn.2016-06.io.spdk:cnode1" Nvme4
|
|
TransportID "trtype:TCP adrfam:IPv4 traddr:192.168.100.3 trsvcid:4420 hostaddr:192.168.100.4 subnqn:nqn.2016-06.io.spdk:cnode2" Nvme5
|
|
|
|
# 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 microseconds. If 0, don't track timeouts.
|
|
TimeoutUsec 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
|
|
# Set how often I/O queues are polled from completions.
|
|
# Units in microseconds.
|
|
IOPollRate 0
|
|
|
|
# Disable handling of hotplug (runtime insert and remove) events,
|
|
# users can set to Yes if want to enable it.
|
|
# Default: No
|
|
HotplugEnable No
|
|
|
|
# Enable/disable delayed NVMe command submission.
|
|
# Default: True.
|
|
DelayCmdSubmit True
|
|
|
|
# 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
|
|
|
|
# The RAID virtual block device based on pre-configured block device.
|
|
[RAID1]
|
|
# Unique name of this RAID device.
|
|
Name Raid0
|
|
# RAID level, only raid level 0 is supported.
|
|
RaidLevel 0
|
|
# Strip size in KB.
|
|
StripSize 64
|
|
# Number of pre-configured bdevs.
|
|
NumDevices 2
|
|
# Pre-configured bdevs name with Nvme.
|
|
Devices Nvme2n1 Nvme3n1
|
|
# Pre-configured bdevs name with Malloc.
|
|
#Devices Malloc0 Malloc1
|
|
# Pre-configured bdevs name with AIO.
|
|
#Devices AIO0 AIO1
|
|
|
|
# Define an NVMf Subsystem.
|
|
# - NQN is required and must be unique.
|
|
# - 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 can be RDMA, TCP or FC.
|
|
# - 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 MaxNamespaces to allow for adding namespaces
|
|
# during active connection. By default it is 0
|
|
# 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. An optional namespace UUID may also be specified.
|
|
# Syntax:
|
|
# Namespace <bdev_name> [<nsid> [<uuid>]]
|
|
|
|
# Namespaces backed by physical NVMe devices
|
|
[Subsystem1]
|
|
NQN nqn.2016-06.io.spdk:cnode1
|
|
Listen TCP 15.15.15.2:4420
|
|
AllowAnyHost No
|
|
Host nqn.2016-06.io.spdk:init
|
|
SN SPDK00000000000001
|
|
MN SPDK_Controller1
|
|
MaxNamespaces 20
|
|
Namespace Nvme0n1 1
|
|
Namespace Nvme1n1 2
|
|
Namespace Raid0
|
|
|
|
# Multiple subsystems are allowed.
|
|
# Namespaces backed by non-NVMe devices
|
|
[Subsystem2]
|
|
NQN nqn.2016-06.io.spdk:cnode2
|
|
Listen RDMA 192.168.2.21:4420
|
|
AllowAnyHost No
|
|
Host nqn.2016-06.io.spdk:init
|
|
SN SPDK00000000000002
|
|
MN SPDK_Controller2
|
|
Namespace Malloc0
|
|
Namespace Malloc1
|
|
Namespace AIO0
|
|
Namespace AIO1
|
|
|
|
# Subsystem with FC listen address directive
|
|
# - Listen option allows subsystem access on specific FC ports identified
|
|
# by WWNN-WWPN. Each subsystem allows 0 - 255 listen directives.
|
|
# If no listen directive is provided, subsystem can be accessed on all
|
|
# avialable FC links permitted by FC zoning rules.
|
|
#
|
|
# [Subsystem3]
|
|
#NQN nqn.2016-06.io.spdk:cnode3
|
|
#Listen FC "nn-0x20000090fac7ca5c:pn-0x10000090fac7ca5c"
|
|
#AllowAnyHost Yes
|
|
#SN SPDK00000000000003
|
|
#Namespace Malloc4
|