
This commmit introduces a new bdev type backed up by DAOS DFS. Design wise this bdev is a file named as the bdev itself in the DAOS POSIX container that uses daos event queue per io channel. Having an event queue per io channel is showing the best IO throughput. The implementation uses the independent pool and container connections per device's channel for the best IO throughput. The semantic of usage is the same as any other bdev type. To build SPDK with daos support, daos-devel package has to be installed. The current supported DAOS version is v2.X, please see the installatoin and setup guide here: https://docs.daos.io/v2.0/ $ ./configure --with-daos To run it, the target machine should have daos_agent up and running, as well as the pool and POSIX container ready to use, please see the detailed requirements here: https://docs.daos.io/v2.0/admin/hardware/. To export bdev over tcp: $ ./nvmf_tgt & $ ./scripts/rpc.py nvmf_create_transport -t TCP -u 2097152 -i 2097152 $ ./scripts/rpc.py bdev_daos_create daosdev0 <pool-label> <cont-label> 1048576 4096 $ ./scripts/rpc.py nvmf_create_subsystem nqn.2016-06.io.spdk1:cnode1 -a -s SPDK00000000000001 -d SPDK_Virtual_Controller_1 $ ./scripts/rpc.py nvmf_subsystem_add_ns nqn.2016-06.io.spdk1:cnode1 daosdev0 $ ./scripts/rpc.py nvmf_subsystem_add_listener nqn.2016-06.io.spdk1:cnode1 -t tcp -a <IP> -s 4420 On the initiator side, make sure that `nvme-tcp` module is loaded then connect drives, for instance: $ nvme connect-all -t tcp -a 172.31.91.61 -s 4420 $ nvme list Signed-off-by: Denis Barakhtanov <denis.barahtanov@croit.io> Change-Id: I51945465122e0fb96de4326db742169419966806 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12260 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
198 lines
4.2 KiB
Plaintext
198 lines
4.2 KiB
Plaintext
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright (c) Intel Corporation.
|
|
# All rights reserved.
|
|
# Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
#
|
|
|
|
# Installation prefix
|
|
CONFIG_PREFIX="/usr/local"
|
|
|
|
# Target architecture
|
|
CONFIG_ARCH=native
|
|
|
|
# Destination directory for the libraries
|
|
CONFIG_LIBDIR=
|
|
|
|
# Prefix for cross compilation
|
|
CONFIG_CROSS_PREFIX=
|
|
|
|
# Build with debug logging. Turn off for performance testing and normal usage
|
|
CONFIG_DEBUG=n
|
|
|
|
# Treat warnings as errors (fail the build on any warning).
|
|
CONFIG_WERROR=n
|
|
|
|
# Build with link-time optimization.
|
|
CONFIG_LTO=n
|
|
|
|
# Generate profile guided optimization data.
|
|
CONFIG_PGO_CAPTURE=n
|
|
|
|
# Use profile guided optimization data.
|
|
CONFIG_PGO_USE=n
|
|
|
|
# Build with code coverage instrumentation.
|
|
CONFIG_COVERAGE=n
|
|
|
|
# Build with Address Sanitizer enabled
|
|
CONFIG_ASAN=n
|
|
|
|
# Build with Undefined Behavior Sanitizer enabled
|
|
CONFIG_UBSAN=n
|
|
|
|
# Build with LLVM fuzzing enabled
|
|
CONFIG_FUZZER=n
|
|
CONFIG_FUZZER_LIB=
|
|
|
|
# Build with Thread Sanitizer enabled
|
|
CONFIG_TSAN=n
|
|
|
|
# Build functional tests
|
|
CONFIG_TESTS=y
|
|
|
|
# Build unit tests
|
|
CONFIG_UNIT_TESTS=y
|
|
|
|
# Build examples
|
|
CONFIG_EXAMPLES=y
|
|
|
|
# Build apps
|
|
CONFIG_APPS=y
|
|
|
|
# Build with Control-flow Enforcement Technology (CET)
|
|
CONFIG_CET=n
|
|
|
|
# Directory that contains the desired SPDK environment library.
|
|
# By default, this is implemented using DPDK.
|
|
CONFIG_ENV=
|
|
|
|
# This directory should contain 'include' and 'lib' directories for your DPDK
|
|
# installation.
|
|
CONFIG_DPDK_DIR=
|
|
# Automatically set via pkg-config when bare --with-dpdk is set
|
|
CONFIG_DPDK_LIB_DIR=
|
|
CONFIG_DPDK_INC_DIR=
|
|
CONFIG_DPDK_PKG_CONFIG=n
|
|
|
|
# This directory should contain 'include' and 'lib' directories for WPDK.
|
|
CONFIG_WPDK_DIR=
|
|
|
|
# Build SPDK FIO plugin. Requires CONFIG_FIO_SOURCE_DIR set to a valid
|
|
# fio source code directory.
|
|
CONFIG_FIO_PLUGIN=n
|
|
|
|
# This directory should contain the source code directory for fio
|
|
# which is required for building the SPDK FIO plugin.
|
|
CONFIG_FIO_SOURCE_DIR=/usr/src/fio
|
|
|
|
# Enable RDMA support for the NVMf target.
|
|
# Requires ibverbs development libraries.
|
|
CONFIG_RDMA=n
|
|
CONFIG_RDMA_SEND_WITH_INVAL=n
|
|
CONFIG_RDMA_SET_ACK_TIMEOUT=n
|
|
CONFIG_RDMA_PROV=verbs
|
|
|
|
# Enable NVMe Character Devices.
|
|
CONFIG_NVME_CUSE=n
|
|
|
|
# Enable FC support for the NVMf target.
|
|
# Requires FC low level driver (from FC vendor)
|
|
CONFIG_FC=n
|
|
CONFIG_FC_PATH=
|
|
|
|
# Build Ceph RBD support in bdev modules
|
|
# Requires librbd development libraries
|
|
CONFIG_RBD=n
|
|
|
|
# Build DAOS support in bdev modules
|
|
# Requires daos development libraries
|
|
CONFIG_DAOS=n
|
|
|
|
# Build vhost library.
|
|
CONFIG_VHOST=y
|
|
|
|
# Build vhost initiator (Virtio) driver.
|
|
CONFIG_VIRTIO=y
|
|
|
|
# Build custom vfio-user transport for NVMf target and NVMe initiator.
|
|
CONFIG_VFIO_USER=n
|
|
CONFIG_VFIO_USER_DIR=
|
|
|
|
# Build with PMDK backends
|
|
CONFIG_PMDK=n
|
|
CONFIG_PMDK_DIR=
|
|
|
|
# Build with xNVMe
|
|
CONFIG_XNVME=n
|
|
|
|
# Enable the dependencies for building the compress vbdev
|
|
CONFIG_REDUCE=n
|
|
|
|
# Enable mlx5_pci dpdk compress PMD, enabled automatically if CONFIG_REDUCE=y and libmlx5 exists
|
|
CONFIG_REDUCE_MLX5=n
|
|
|
|
# Enable mlx5_pci dpdk crypto PMD, enabled automatically if CONFIG_CRYPTO=y and libmlx5 exists
|
|
CONFIG_CRYPTO_MLX5=n
|
|
|
|
# Requires libiscsi development libraries.
|
|
CONFIG_ISCSI_INITIATOR=n
|
|
|
|
# Enable the dependencies for building the crypto vbdev
|
|
CONFIG_CRYPTO=n
|
|
|
|
# Build spdk shared libraries in addition to the static ones.
|
|
CONFIG_SHARED=n
|
|
|
|
# Build with VTune suport.
|
|
CONFIG_VTUNE=n
|
|
CONFIG_VTUNE_DIR=
|
|
|
|
# Build Intel IPSEC_MB library
|
|
CONFIG_IPSEC_MB=n
|
|
|
|
# Enable OCF module
|
|
CONFIG_OCF=n
|
|
CONFIG_OCF_PATH=
|
|
CONFIG_CUSTOMOCF=n
|
|
|
|
# Build ISA-L library
|
|
CONFIG_ISAL=y
|
|
|
|
# Build with IO_URING support
|
|
CONFIG_URING=n
|
|
|
|
# Path to custom built IO_URING library
|
|
CONFIG_URING_PATH=
|
|
|
|
# Path to custom built OPENSSL library
|
|
CONFIG_OPENSSL_PATH=
|
|
|
|
# Build with FUSE support
|
|
CONFIG_FUSE=n
|
|
|
|
# Build with RAID5f support
|
|
CONFIG_RAID5F=n
|
|
|
|
# Build with IDXD support
|
|
# In this mode, SPDK fully controls the DSA device.
|
|
CONFIG_IDXD=n
|
|
|
|
# Build with USDT support
|
|
CONFIG_USDT=n
|
|
|
|
# Build with IDXD kernel support.
|
|
# In this mode, SPDK shares the DSA device with the kernel.
|
|
CONFIG_IDXD_KERNEL=n
|
|
|
|
# arc4random is available in stdlib.h
|
|
CONFIG_HAVE_ARC4RANDOM=n
|
|
|
|
# Is DPDK using libbsd?
|
|
CONFIG_HAVE_LIBBSD=n
|
|
|
|
# Path to IPSEC_MB used by DPDK
|
|
CONFIG_IPSEC_MB_DIR=
|
|
|
|
# Generate Storage Management Agent's protobuf interface
|
|
CONFIG_SMA=n
|