Lines Matching +full:storage +full:- +full:target

1 # Storage Management Agent {#sma}
3 Storage Management Agent (SMA) is a service providing a gRPC interface for
5 users to create and manage various types of devices (e.g. NVMe, virtio-blk,
6 etc.). The major difference between SMA's API and the existing SPDK-RPC
8 SPDK-RPCs, which enables it to be more easily consumed by orchestration
11 lot of hardware-specific options.
17 `sma.proto` file, while device-specific options are defined in their separate
22 some storage media. It is equivalent to a SPDK bdev and/or an NVMe namespace
28 The following sections provide a high-level description of each method. For
34 it becomes a no-op and returns a handle to that device.
38 - `volume`: Volume parameters describing a volume to immediately attach to the
40 while it may be required for others (e.g. virtio-blk). Extending parameters with
43 to use under `crypto` section in config. It is also possible to register out-of-tree
45 - `params`: Device-specific parameters. The type of this structure determines
50 - `handle`: Opaque handle identifying the device.
59 - `handle`: Device handle obtained from `CreateDevice`.
64 host. It might lead to establishing a connection to remote storage target.
68 unsupported by some types of devices (e.g. virtio-blk).
72 - `volume`: Parameters describing the volume to attach. The type of this
73 structure determines the method to create it (e.g. direct NVMe-oF connection,
74 NVMe-oF through discovery service, iSCSI, etc.). Extending parameters with
77 `crypto` section in config. It is also possible to register out-of-tree crypto engines
79 - `device_handle`: Device handle obtained from `CreateDevice`.
84 It may be unsupported by some types of devices (e.g. virtio-blk).
88 - `volume_id`: Volume UUID/GUID.
89 - `device_handle`: Device handle obtained from `CreateDevice`.
93 This method configures QoS on a per-device or per-volume level.
99 - `handle`: Device handle obtained from `CreateDevice`.
100 - `volume_id`: Volume UUID/GUID. If this parameter is omitted, the QoS will be set up
102 Some device types might only support configuring QoS on per-device
103 (volume_id must be empty) or per-volume level (volume_id cannot be empty).
105 - `maximum`: Maximum allowed IOPS/bandwidth values.
113 - `device_type`: Type of a device to query for QoS capabilities.
117 - `capabilities`: QoS capabilities response including device/volume
123 In order to run SMA, SPDK needs to be configured with the `--with-sma` flag.
126 service, as well as several other options (e.g. listen address, SPDK-RPC socket,
129 two device types (NVMe/vfiouser and vhost-blk):
136 - name: 'vfiouser'
142 - name: 'vhost-blk'
160 - 'plugin1'
161 - 'plugin2'
163 - name: 'device-from-plugin1'
164 - name: 'device-from-plugin2'
165 $ scripts/sma.py -c sma.yaml