Spdk/module/bdev
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
..
aio aio: aio rescan rpc response is sent incorrectly. 2022-07-22 07:28:49 +00:00
compress bdev/compress: make lb_size optional in bdev_compress_create 2022-07-04 07:23:26 +00:00
crypto check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
daos bdev/daos: introduction of daos bdev 2022-08-23 07:15:13 +00:00
delay check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
error Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
ftl FTL: Add read path 2022-08-19 17:37:14 +00:00
gpt check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
iscsi check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
lvol blobstore: implement spdk_bs_grow and bdev_lvol_grow_lvstore RPC 2022-06-28 17:55:43 +00:00
malloc accel: Rename public header to accel.h 2022-08-16 10:22:55 +00:00
null Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
nvme nvme/pcie, nvme/tcp: add cb_arg context tracepoint argument 2022-08-19 11:06:31 +00:00
ocf check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
passthru check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
pmem Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
raid module/raid: raid5: rename to raid5f 2022-07-27 08:51:21 +00:00
rbd Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
split check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
uring check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
virtio module/bdev_virtio_scsi: use the correct num_queues value 2022-08-04 11:24:40 +00:00
xnvme bdev : xNVMe BDEV module performance fix 2022-08-15 19:11:14 +00:00
zone_block Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
Makefile bdev/daos: introduction of daos bdev 2022-08-23 07:15:13 +00:00