Spdk/scripts
0xe0f 2e283fcb67 bdev/daos: introduction of daos bdev
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>
2022-08-23 07:15:13 +00:00
..
bash-completion accel module: remove support for deprecated RPC names 2022-05-23 16:14:41 +00:00
bpf nvme/pcie, nvme/tcp: add cb_arg context tracepoint argument 2022-08-19 11:06:31 +00:00
ceph spelling: scripts 2021-12-03 08:13:04 +00:00
perf scripts/nvmf_perf: add core_limit option to framework_set_scheduler. 2022-05-25 07:39:20 +00:00
pkgdep scripts/pkgdep: DAOS dependency repository has changed 2022-07-22 07:28:20 +00:00
vagrant bdev/daos: introduction of daos bdev 2022-08-23 07:15:13 +00:00
arm_cross_compile.sh scripts: ARM64 Cross-Compilation Support 2021-09-09 20:26:59 +00:00
bpftrace.sh scripts/bpftrace: use SO names in bpftrace scripts 2021-10-20 23:39:59 +00:00
check_format.sh configure: add CONFIG_HAVE_ARC4RANDOM 2022-08-16 10:25:17 +00:00
common.sh scripts/common: Adjust handling of the pciconf output under FreeBSD 13.x 2022-06-10 07:56:27 +00:00
core-collector.sh test/common: don't specify output dir for core_pattern in command line 2022-06-08 17:29:08 +00:00
detect_cc.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
dpdk_mem_info.py scripts: add a parser for the dpdk memory stats. 2020-01-24 05:46:43 +00:00
eofnl scripts/check_format: check trailing whitespace 2017-10-24 17:35:23 -04:00
fio-wrapper scripts/fio-wrapper: Simplify check for bdev devices 2022-07-18 13:00:17 +00:00
gdb_macros.py scripts: Use range instead of xrange 2019-02-13 22:54:15 +00:00
gen_ftl.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
gen_nvme.sh scripts/gen_nvme: Add option to define number of local bdevs to use 2022-07-28 06:56:05 +00:00
genconfig.py genconfig.py: allow numbers in config option names 2020-02-20 14:40:19 +00:00
get-pmr pkgdep/git: Bump vanilla qemu to v6.0.0 2021-05-11 11:51:01 +00:00
histogram.py histograms: add script for parsing histogram data 2019-01-24 14:14:32 +00:00
iostat.py scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
lspci scripts/rpc: option to format framework_get_pci_devices for use with lspci 2021-12-14 09:08:59 +00:00
pc_libs.sh build: generate pkg-config files for SPDK 2021-01-21 09:46:32 +00:00
pc_modules.sh build: generate pkg-config files for SPDK 2021-01-21 09:46:32 +00:00
pc.sh configure: Allow to define custom libdir location 2022-07-04 07:25:39 +00:00
pkgdep.sh scripts/pkgdep.sh: install DAOS bdev build dependencies 2022-06-21 07:53:12 +00:00
posix.txt build: Automatically detect use of POSIX includes 2017-05-08 13:20:37 -07:00
prep_benchmarks.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
qat_setup.sh qat_setup: Don't use absolute path to igb_uio driver 2021-12-02 08:08:10 +00:00
rpc_http_proxy.py scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
rpc.py bdev/daos: introduction of daos bdev 2022-08-23 07:15:13 +00:00
rxe_cfg_small.sh test/nvmf: Use rxe_cfg to get rxe-enabled net devices 2021-04-12 09:41:20 +00:00
setup.sh setup.sh: add some more app names to the shm cleanup list 2022-08-05 10:48:42 +00:00
sma-client.py sma: loading out-of-tree plugins in sma-client 2022-05-18 07:24:06 +00:00
sma.py sma: nvmf/vfiouser device manager implementation 2022-08-01 08:45:58 +00:00
spdk-gpt.py scripts/spdk-gpt: Fix path lookup of the target device 2022-01-25 08:13:40 +00:00
spdkcli.py scripts: move python modules to python directory 2022-04-05 14:40:47 +00:00
spdx.sh Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
sync_dev_uevents.sh sync_dev_uevents: Break from the loop if kernel seqnum matches mdev's 2021-02-04 16:10:49 +00:00