diff options
Diffstat (limited to 'src/spdk/etc')
-rw-r--r-- | src/spdk/etc/spdk/iscsi.conf.in | 214 | ||||
-rw-r--r-- | src/spdk/etc/spdk/nvmf.conf.in | 182 | ||||
-rw-r--r-- | src/spdk/etc/spdk/vhost.conf.in | 161 |
3 files changed, 557 insertions, 0 deletions
diff --git a/src/spdk/etc/spdk/iscsi.conf.in b/src/spdk/etc/spdk/iscsi.conf.in new file mode 100644 index 00000000..768d2264 --- /dev/null +++ b/src/spdk/etc/spdk/iscsi.conf.in @@ -0,0 +1,214 @@ +# iSCSI 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] + # Shared Memory Group ID. SPDK applications with the same ID will share memory. + # Default: <the process PID> + #SharedMemoryID 0 + + # Disable PCI access. PCI is enabled by default. Setting this + # option will hide any PCI device from all SPDK modules, making + # SPDK act as if they don't exist. + #NoPci Yes + + # Tracepoint group mask for spdk trace buffers + # Default: 0x0 (all tracepoint groups disabled) + # Set to 0xFFFF to enable all tracepoint groups. + #TpointGroupMask 0x0 + +# 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 + +[iSCSI] + # node name (not include optional part) + # Users can optionally change this to fit their environment. + NodeBase "iqn.2016-06.io.spdk" + + AuthFile /usr/local/etc/spdk/auth.conf + + MinConnectionsPerCore 4 + + # Socket I/O timeout sec. (0 is infinite) + Timeout 30 + + # authentication information for discovery session + # Options: + # None, Auto, CHAP and Mutual. Note that Mutual infers CHAP. + DiscoveryAuthMethod Auto + + #MaxSessions 128 + #MaxConnectionsPerSession 2 + + # iSCSI initial parameters negotiate with initiators + # NOTE: incorrect values might crash + DefaultTime2Wait 2 + DefaultTime2Retain 60 + + # Maximum amount in bytes of unsolicited data the iSCSI + # initiator may send to the target during the execution of + # a single SCSI command. + FirstBurstLength 8192 + + ImmediateData Yes + ErrorRecoveryLevel 0 + +# Users must change the PortalGroup section(s) to match the IP addresses +# for their environment. +# PortalGroup sections define which network portals the iSCSI target +# will use to listen for incoming connections. These are also used to +# determine which targets are accessible over each portal group. +# Up to 1024 portal directives are allowed. These define the network +# portals of the portal group. The user must specify a IP address +# for each network portal, and may optionally specify a port and +# a cpumask. If the port is omitted, 3260 will be used. Cpumask will +# be used to set the processor affinity of the iSCSI connection +# through the portal. If the cpumask is omitted, cpumask will be +# set to all available processors. +# Syntax: +# Portal <Name> <IP address>[:<port>[@<cpumask>]] +[PortalGroup1] + Portal DA1 192.168.2.21:3260 + Portal DA2 192.168.2.22:3260@0xF + +# Users must change the InitiatorGroup section(s) to match the IP +# addresses and initiator configuration in their environment. +# Netmask can be used to specify a single IP address or a range of IP addresses +# Netmask 192.168.1.20 <== single IP address +# Netmask 192.168.1.0/24 <== IP range 192.168.1.* +[InitiatorGroup1] + InitiatorName ANY + Netmask 192.168.2.0/24 + +# NVMe configuration options +[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 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 + + # Disable handling of hotplug (runtime insert and remove) events, + # users can set to Yes if want to enable it. + # Default: No + HotplugEnable No + + # Set how often the hotplug is processed for insert and remove events. + # Units in microseconds. + HotplugPollRate 0 + +# Users may change this section to create a different number or size of +# malloc LUNs. +# If the system has hardware DMA engine, it can use an IOAT +# (i.e. Crystal Beach DMA) channel to do the copy instead of memcpy +# by specifying "Enable Yes" in [Ioat] section. +# Offload is disabled by default even it is available. +[Malloc] + # Number of Malloc targets + NumberOfLuns 3 + # Malloc targets are 128M + LunSizeInMB 128 + # Block size. Default is 512 bytes. + BlockSize 4096 + +# Users can use offload by specifying "Enable Yes" in this section +# if it is available. +# Users may use the whitelist to initialize specified devices, IDS +# uses BUS:DEVICE.FUNCTION to identify each Ioat channel. +[Ioat] + Enable No + Whitelist 00:04.0 + Whitelist 00:04.1 + +# 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> [<block size>] +# 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 + +# The Split virtual block device slices block devices into multiple smaller bdevs. +[Split] + # Syntax: + # Split <bdev> <count> [<size_in_megabytes>] + + # Split Malloc1 into two equally-sized portions, Malloc1p0 and Malloc1p1 + Split Malloc1 2 + + # Split Malloc2 into eight 1-megabyte portions, Malloc2p0 ... Malloc2p7, + # leaving the rest of the device inaccessible + Split Malloc2 8 1 + +# Users should change the TargetNode section(s) below to match the +# desired iSCSI target node configuration. +# TargetName, Mapping, LUN0 are minimum required +[TargetNode1] + TargetName disk1 + TargetAlias "Data Disk1" + Mapping PortalGroup1 InitiatorGroup1 + AuthMethod Auto + AuthGroup AuthGroup1 + # Enable header and data digest + # UseDigest Header Data + UseDigest Auto + # Use the first malloc target + LUN0 Malloc0 + # Using the first AIO target + LUN1 AIO0 + # Using the second storage target + LUN2 AIO1 + # Using the third storage target + LUN3 AIO2 + QueueDepth 128 + +[TargetNode2] + TargetName disk2 + TargetAlias "Data Disk2" + Mapping PortalGroup1 InitiatorGroup1 + AuthMethod Auto + AuthGroup AuthGroup1 + UseDigest Auto + LUN0 Nvme0n1 + QueueDepth 32 diff --git a/src/spdk/etc/spdk/nvmf.conf.in b/src/spdk/etc/spdk/nvmf.conf.in new file mode 100644 index 00000000..f39c3283 --- /dev/null +++ b/src/spdk/etc/spdk/nvmf.conf.in @@ -0,0 +1,182 @@ +# 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 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 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 + TransportID "trtype:PCIe traddr:0000:02:00.0" Nvme2 + TransportID "trtype:PCIe traddr:0000:03:00.0" Nvme3 + + # 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 + + # 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 + +# 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. + Devices Nvme2n1 Nvme3n1 + +# 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 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 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 RDMA 15.15.15.2:4420 + AllowAnyHost No + Host nqn.2016-06.io.spdk:init + SN SPDK00000000000001 + 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 + Namespace Malloc0 + Namespace Malloc1 + Namespace AIO0 + Namespace AIO1 diff --git a/src/spdk/etc/spdk/vhost.conf.in b/src/spdk/etc/spdk/vhost.conf.in new file mode 100644 index 00000000..11abdcf1 --- /dev/null +++ b/src/spdk/etc/spdk/vhost.conf.in @@ -0,0 +1,161 @@ +# SPDK vhost 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] + # Instance ID for multi-process support + # Default: 0 + #InstanceID 0 + + # Disable PCI access. PCI is enabled by default. Setting this + # option will hide any PCI device from all SPDK modules, making + # SPDK act as if they don't exist. + #NoPci Yes + + # Tracepoint group mask for spdk trace buffers + # Default: 0x0 (all tracepoint groups disabled) + # Set to 0xFFFF to enable all tracepoint groups. + #TpointGroupMask 0x0 + +# 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 not want to use offload even it is available. +# Users can use offload by specifying "Enable Yes" in this section +# if it is available. +# Users may use the whitelist to initialize specified devices, IDS +# uses BUS:DEVICE.FUNCTION to identify each Ioat channel. +[Ioat] + Enable No + #Whitelist 00:04.0 + #Whitelist 00:04.1 + +# Users must change this section to match the /dev/sdX devices to be +# exported as vhost scsi drives. The devices are accessed using Linux AIO. +[AIO] + #AIO /dev/sdb AIO0 + #AIO /dev/sdc AIO1 + +# PMDK libpmemblk-based block device +[Pmem] + # Syntax: + # Blk <pmemblk pool file name> <bdev name> + Blk /path/to/pmem-pool Pmem0 + +# Users may change this section to create a different number or size of +# malloc LUNs. +# If the system has hardware DMA engine, it can use an IOAT +# (i.e. Crystal Beach DMA) channel to do the copy instead of memcpy +# by specifying "Enable Yes" in [Ioat] section. +# Offload is disabled by default even it is available. +[Malloc] + # Number of Malloc targets + NumberOfLuns 3 + # Malloc targets are 128M + LunSizeInMB 128 + # Block size. Default is 512 bytes. + BlockSize 4096 + +# NVMe configuration options +[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 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 + +# The Split virtual block device slices block devices into multiple smaller bdevs. +[Split] + # Syntax: + # Split <bdev> <count> [<size_in_megabytes>] + # + # Split Nvme1n1 into two equally-sized portions, Nvme1n1p0 and Nvme1n1p1 + #Split Nvme1n1 2 + + # Split Malloc2 into eight 1-megabyte portions, Malloc2p0 ... Malloc2p7, + # leaving the rest of the device inaccessible + #Split Malloc2 8 1 + +# Vhost scsi controller configuration +# Users should change the VhostScsi section(s) below to match the desired +# vhost configuration. +# Name is minimum required +[VhostScsi0] + # Define name for controller + Name vhost.0 + # Assign devices from backend + # Use the first malloc device + Target 0 Malloc0 + # Use the first AIO device + #Target 1 AIO0 + # Use the frist Nvme device + #Target 2 Nvme0n1 + # Use the third partition from second Nvme device + #Target 3 Nvme1n1p2 + + # Start the poller for this vhost controller on one of the cores in + # this cpumask. By default, it not specified, will use any core in the + # SPDK process. + #Cpumask 0x1 + +#[VhostScsi1] +# Name vhost.1 +# Target 0 AIO1 +# Cpumask 0x1 + +#[VhostBlk0] + # Define name for controller + #Name vhost.2 + # Use first partition from the second Malloc device + #Dev Malloc2p0 + # Put controller in read-only mode + #ReadOnly no + # Start the poller for this vhost controller on one of the cores in + # this cpumask. By default, it not specified, will use any core in the + # SPDK process. + #Cpumask 0x1 + +#[VhostNvme0] + # Define name for controller + #Name vhost.0 + #NumberOfQueues 2 + # Use first partition from the first NVMe device + #Namespace Nvme0n1p0 + # Use first partition from the first NVMe device + #Namespace Nvme0n1p1 + + # Start the poller for this vhost controller on one of the cores in + # this cpumask. By default, it not specified, will use any core in the + # SPDK process. + #Cpumask 0x1 |