# 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 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 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 # Set how often I/O queues are polled from completions. # Units in microseconds. IOPollRate 0 # The Split virtual block device slices block devices into multiple smaller bdevs. [Split] # Syntax: # Split [] # # 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 # 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 Nvme0n1 Nvme1n1 # Pre-configured bdevs name with Malloc. Devices Malloc1 Malloc2 # Pre-configured bdevs name with AIO. #Devices AIO0 AIO1 # 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 #[VhostBlk1] # Define name for controller #Name vhost.2 # Use device which named Raid0 #Dev Raid0 #[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