doc: Minor updates to bdev user guide
Signed-off-by: Monica Kenguva <monica.kenguva@intel.com> Change-Id: I28047e71535046b898fa14bfb210ec4019614554 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3465 Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
b68d89bcc2
commit
802fd5bf41
81
doc/bdev.md
81
doc/bdev.md
@ -1,5 +1,9 @@
|
|||||||
# Block Device User Guide {#bdev}
|
# Block Device User Guide {#bdev}
|
||||||
|
|
||||||
|
# Target Audience {#bdev_ug_targetaudience}
|
||||||
|
|
||||||
|
This user guide is intended for software developers who have knowledge of block storage, storage drivers, issuing JSON-RPC commands and storage services such as RAID, compression, crypto, and others.
|
||||||
|
|
||||||
# Introduction {#bdev_ug_introduction}
|
# Introduction {#bdev_ug_introduction}
|
||||||
|
|
||||||
The SPDK block device layer, often simply called *bdev*, is a C library
|
The SPDK block device layer, often simply called *bdev*, is a C library
|
||||||
@ -35,72 +39,12 @@ directly from SPDK application by running `scripts/rpc.py rpc_get_methods`.
|
|||||||
Detailed help for each command can be displayed by adding `-h` flag as a
|
Detailed help for each command can be displayed by adding `-h` flag as a
|
||||||
command parameter.
|
command parameter.
|
||||||
|
|
||||||
# General Purpose RPCs {#bdev_ug_general_rpcs}
|
# Configuring Block Device Modules {#bdev_ug_general_rpcs}
|
||||||
|
|
||||||
## bdev_get_bdevs {#bdev_ug_get_bdevs}
|
Block devices can be configured using JSON RPCs. A complete list of available RPC commands
|
||||||
|
with detailed information can be found on the @ref jsonrpc_components_bdev page.
|
||||||
|
|
||||||
List of currently available block devices including detailed information about
|
# Common Block Device Configuration Examples
|
||||||
them can be get by using `bdev_get_bdevs` RPC command. User can add optional
|
|
||||||
parameter `name` to get details about specified by that name bdev.
|
|
||||||
|
|
||||||
Example response
|
|
||||||
|
|
||||||
~~~
|
|
||||||
{
|
|
||||||
"num_blocks": 32768,
|
|
||||||
"assigned_rate_limits": {
|
|
||||||
"rw_ios_per_sec": 10000,
|
|
||||||
"rw_mbytes_per_sec": 20
|
|
||||||
},
|
|
||||||
"supported_io_types": {
|
|
||||||
"reset": true,
|
|
||||||
"nvme_admin": false,
|
|
||||||
"unmap": true,
|
|
||||||
"read": true,
|
|
||||||
"write_zeroes": true,
|
|
||||||
"write": true,
|
|
||||||
"flush": true,
|
|
||||||
"nvme_io": false
|
|
||||||
},
|
|
||||||
"driver_specific": {},
|
|
||||||
"claimed": false,
|
|
||||||
"block_size": 4096,
|
|
||||||
"product_name": "Malloc disk",
|
|
||||||
"name": "Malloc0"
|
|
||||||
}
|
|
||||||
~~~
|
|
||||||
|
|
||||||
## bdev_set_qos_limit {#bdev_set_qos_limit}
|
|
||||||
|
|
||||||
Users can use the `bdev_set_qos_limit` RPC command to enable, adjust, and disable
|
|
||||||
rate limits on an existing bdev. Two types of rate limits are supported:
|
|
||||||
IOPS and bandwidth. The rate limits can be enabled, adjusted, and disabled at any
|
|
||||||
time for the specified bdev. The bdev name is a required parameter for this
|
|
||||||
RPC command and at least one of `rw_ios_per_sec` and `rw_mbytes_per_sec` must be
|
|
||||||
specified. When both rate limits are enabled, the first met limit will
|
|
||||||
take effect. The value 0 may be specified to disable the corresponding rate
|
|
||||||
limit. Users can run this command with `-h` or `--help` for more information.
|
|
||||||
|
|
||||||
## Histograms {#rpc_bdev_histogram}
|
|
||||||
|
|
||||||
The `bdev_enable_histogram` RPC command allows to enable or disable gathering
|
|
||||||
latency data for specified bdev. Histogram can be downloaded by the user by
|
|
||||||
calling `bdev_get_histogram` and parsed using scripts/histogram.py script.
|
|
||||||
|
|
||||||
Example command
|
|
||||||
|
|
||||||
`rpc.py bdev_enable_histogram Nvme0n1 --enable`
|
|
||||||
|
|
||||||
The command will enable gathering data for histogram on Nvme0n1 device.
|
|
||||||
|
|
||||||
`rpc.py bdev_get_histogram Nvme0n1 | histogram.py`
|
|
||||||
|
|
||||||
The command will download gathered histogram data. The script will parse
|
|
||||||
the data and show table containing IO count for latency ranges.
|
|
||||||
|
|
||||||
`rpc.py bdev_enable_histogram Nvme0n1 --disable`
|
|
||||||
|
|
||||||
The command will disable histogram on Nvme0n1 device.
|
|
||||||
|
|
||||||
# Ceph RBD {#bdev_config_rbd}
|
# Ceph RBD {#bdev_config_rbd}
|
||||||
|
|
||||||
@ -378,6 +322,14 @@ please visit [OCF documentation](https://open-cas.github.io/).
|
|||||||
Malloc bdevs are ramdisks. Because of its nature they are volatile. They are created from hugepage memory given to SPDK
|
Malloc bdevs are ramdisks. Because of its nature they are volatile. They are created from hugepage memory given to SPDK
|
||||||
application.
|
application.
|
||||||
|
|
||||||
|
Example command for creating malloc bdev:
|
||||||
|
|
||||||
|
`rpc.py bdev_malloc_create -b Malloc0 64 512`
|
||||||
|
|
||||||
|
Example command for removing malloc bdev:
|
||||||
|
|
||||||
|
`rpc.py bdev_malloc_delete Malloc0`
|
||||||
|
|
||||||
# Null {#bdev_config_null}
|
# Null {#bdev_config_null}
|
||||||
|
|
||||||
The SPDK null bdev driver is a dummy block I/O target that discards all writes and returns undefined
|
The SPDK null bdev driver is a dummy block I/O target that discards all writes and returns undefined
|
||||||
@ -460,7 +412,6 @@ User can get list of available lvol stores using `bdev_lvol_get_lvstores` RPC co
|
|||||||
parameters available).
|
parameters available).
|
||||||
|
|
||||||
Example response
|
Example response
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
{
|
{
|
||||||
"uuid": "330a6ab2-f468-11e7-983e-001e67edf35d",
|
"uuid": "330a6ab2-f468-11e7-983e-001e67edf35d",
|
||||||
|
Loading…
Reference in New Issue
Block a user