Spdk/doc
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
..
img spdk_top: update spdk_top docs for spdk.io 2021-03-08 10:48:47 +00:00
.gitignore doc: add output directory to .gitignore 2018-06-19 07:15:50 +00:00
about.md Fix Markdown MD026 linter warnings - trailing punctuation in header 2020-02-17 10:07:21 +00:00
accel_fw.md accel: Rename public header to accel.h 2022-08-16 10:22:55 +00:00
applications.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
bdev_module.md doc: remove mentions of legacy config 2020-10-22 17:08:41 +00:00
bdev_pg.md bdev: Add spdk_for_each_bdev/bdev_leaf for clean up and further improvements 2022-04-05 07:30:47 +00:00
bdev.md bdev/daos: introduction of daos bdev 2022-08-23 07:15:13 +00:00
bdevperf.md doc: cleanup bdevperf.py 2022-06-20 09:56:52 +00:00
blob.md doc/blob: replace htmlonly graphic with ASCII art 2022-02-02 08:25:02 +00:00
blobfs.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
ci_tools.md doc: Add page describing OS distros used by the CI 2021-09-20 10:48:56 +00:00
compression.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
concepts.md doc: Add concept page on submitting I/O to an NVMe device 2019-05-09 04:33:19 +00:00
concurrency.md markdownlint: enable rule MD046 2021-09-08 21:53:48 +00:00
containers.md doc/container: display spdk-docker-suite in doc 2022-03-09 08:01:38 +00:00
distributions.md doc/distributions: update doc according to the recent changes 2022-07-22 06:44:32 +00:00
Doxyfile doc: describe storage management agent 2022-05-20 09:16:54 +00:00
driver_modules.md doc: add IDXD docs and changelog entry 2020-04-23 15:48:32 +00:00
event.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
footer.html doc: simplify HTML header and stylesheet 2017-04-28 13:13:48 -07:00
ftl.md markdownlint: enable rule MD046 2021-09-08 21:53:48 +00:00
gdb_macros.md spelling: doc 2021-11-30 09:05:19 +00:00
general.md doc: added scheduler framework documentation 2021-01-29 18:21:13 +00:00
getting_started.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
header.html doc: Remove mobile responsiveness 2018-12-10 15:56:50 +00:00
idxd.md doc/idxd: update idxd docs regarding configs 2022-05-23 19:51:23 +00:00
index.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
intro.md deprecation: add a file to gather all deprecation notices 2021-04-26 06:55:03 +00:00
ioat.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
iscsi.md spelling: doc 2021-11-30 09:05:19 +00:00
jsonrpc_proxy.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
jsonrpc.md bdev/daos: introduction of daos bdev 2022-08-23 07:15:13 +00:00
libraries.md spelling: doc 2021-11-30 09:05:19 +00:00
lvol.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
Makefile doc/Makefile: include mk/spdk.common.mk 2018-06-19 17:29:06 +00:00
memory.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
misc.md doc/rpms: add reference to rpms doc page 2021-06-22 23:47:52 +00:00
notify.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
nvme_multipath.md bdev/nvme: Disable automatic failback in multipath mode 2022-05-17 12:54:45 +00:00
nvme_spec.md doc: correct explanation of NVMe SQ command submission 2021-01-25 12:52:08 +00:00
nvme.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
nvmf_tgt_pg.md lib/nvmf: remove deprecated API 2021-03-18 14:43:08 +00:00
nvmf_tracing.md nvmf_tracing.md: explain how extended -e option works 2022-01-05 08:52:40 +00:00
nvmf.md doc/nvmf: Update nvmf_create_transport example 2022-02-28 11:06:32 +00:00
overview.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
peer_2_peer.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
performance_reports.md doc: add Vhost 22.05 performance report link 2022-08-05 08:28:54 +00:00
pkgconfig.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
porting.md markdownlint: enable rule MD046 2021-09-08 21:53:48 +00:00
prog_guides.md doc/notify: add missing links about notify 2019-05-07 06:11:45 +00:00
README.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
rpm.md doc/rpm: Add information about new functionality 2022-01-05 09:24:59 +00:00
scheduler.md docs: update scheduler documentation 2022-03-17 17:41:51 +00:00
shfmt.md doc/shfmt: Add note about minimal version of Bash 2021-11-10 23:11:41 +00:00
sma.md doc: describe storage management agent 2022-05-20 09:16:54 +00:00
spdk_top.md markdownlint: enable rule MD032 2021-08-26 19:27:22 +00:00
spdkcli.md doc: cleanup spdkcli.py 2022-06-20 09:56:52 +00:00
ssd_internals.md doc: Rename directory_structure.md to overview.md 2019-05-09 04:33:19 +00:00
stylesheet.css doc: Remove mobile responsiveness 2018-12-10 15:56:50 +00:00
system_configuration.md spelling: doc 2021-11-30 09:05:19 +00:00
template_pg.md spelling: doc 2021-11-30 09:05:19 +00:00
tools.md test: remove spdk/nvme-cli references 2021-01-04 16:28:01 +00:00
two.min.js doc: Add license header to two.js source 2018-08-06 16:27:58 +00:00
usdt.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
user_guides.md doc: describe storage management agent 2022-05-20 09:16:54 +00:00
userspace.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
vagrant.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
vhost_processing.md doc/vhost: update Vhost-user link and terminology 2022-08-16 07:21:00 +00:00
vhost.md doc/vhost: remove vhost-nvme description 2021-12-23 08:33:24 +00:00
virtio.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
vmd.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00

SPDK Documentation

The current version of the SPDK documentation can be found online at http://www.spdk.io/doc/

Building the Documentation

To convert the documentation into HTML run make in the doc directory. The output will be located in doc/output/html. Before running make ensure all pre-requisites are installed. See Installing Prerequisites for more details.