# 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 # 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 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 [] # 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
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. # - Exactly 1 NVMe directive specifying an NVMe device by PCI BDF. The # PCI domain:bus:device.function can be replaced by "*" to indicate # any PCI device. # Namespaces backed by physical NVMe devices [Subsystem1] NQN nqn.2016-06.io.spdk:cnode1 Core 0 Listen RDMA 15.15.15.2:4420 Host nqn.2016-06.io.spdk:init SN SPDK00000000000001 Namespace Nvme0n1 Namespace Nvme1n1 # 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 Host nqn.2016-06.io.spdk:init SN SPDK00000000000002 Namespace Malloc0 Namespace Malloc1 Namespace AIO0 Namespace AIO1