doc/jsonrpc: Add RPCs for logical volume block devices
Change-Id: Id6f3e28646be9cb6ce46ed12a200551715b78da7 Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/417237 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
3ae39bd495
commit
d1aa8f622d
302
doc/jsonrpc.md
302
doc/jsonrpc.md
@ -1079,13 +1079,19 @@ Example response:
|
||||
|
||||
# Logical Volume {#jsonrpc_components_lvol}
|
||||
|
||||
Identification of logical volume store is explained first.
|
||||
Identification of logical volume store and logical volume is explained first.
|
||||
|
||||
A logical volume store has a UUID and a name for its identification.
|
||||
The UUID is generated on creation and it can be used as a unique identifier.
|
||||
The name is specified on creation and can be renamed.
|
||||
Either UUID or name is used to access logical volume store in RPCs.
|
||||
|
||||
A logical volume has a UUID and a name for its identification.
|
||||
The UUID of the logical volume is generated on creation and it can be unique identifier.
|
||||
The alias of the logical volume takes the format _lvs_name/lvol_name_ where:
|
||||
* _lvs_name_ is the name of the logical volume store.
|
||||
* _lvol_name_ is specified on creation and can be renamed.
|
||||
|
||||
## construct_lvol_store {#rpc_construct_lvol_store}
|
||||
|
||||
Construct a logical volume store.
|
||||
@ -1243,3 +1249,297 @@ Example response:
|
||||
"result": true
|
||||
}
|
||||
~~~
|
||||
|
||||
## construct_lvol_bdev {#rpc_construct_lvol_bdev}
|
||||
|
||||
Create a logical volume on a logical volume store.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
lvol_name | Required | string | Name of logical volume to create
|
||||
size | Required | number | Desired size of logical volume in bytes
|
||||
thin_provision | Optional | boolean | True to enable thin provisioning
|
||||
uuid | Optional | string | UUID of logical volume store to create logical volume on
|
||||
lvs_name | Optional | string | Name of logical volume store to create logical volume on
|
||||
|
||||
Size will be rounded up to a multiple of cluster size. Either uuid or lvs_name must be specified, but not both.
|
||||
lvol_name will be used in the alias of the created logical volume.
|
||||
|
||||
### Response
|
||||
|
||||
UUID of the created logical volume is returned.
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "construct_lvol_bdev",
|
||||
"id": 1,
|
||||
"params": {
|
||||
"lvol_name": "LVOL0",
|
||||
"size": 1048576,
|
||||
"lvs_name": "LVS0",
|
||||
"thin_provision": true
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": "1b38702c-7f0c-411e-a962-92c6a5a8a602"
|
||||
}
|
||||
~~~
|
||||
|
||||
## snapshot_lvol_bdev {#rpc_snapshot_lvol_bdev}
|
||||
|
||||
Capture a snapshot of the current state of a logical volume.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
lvol_name | Required | string | UUID or alias of the logical volume to create a snapshot from
|
||||
snapshot_name | Required | string | Name for the newly created snapshot
|
||||
|
||||
### Response
|
||||
|
||||
UUID of the created logical volume snapshot is returned.
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "snapshot_lvol_bdev",
|
||||
"id": 1,
|
||||
"params": {
|
||||
"lvol_name": "1b38702c-7f0c-411e-a962-92c6a5a8a602",
|
||||
"snapshot_name": "SNAP1"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": "cc8d7fdf-7865-4d1f-9fc6-35da8e368670"
|
||||
}
|
||||
~~~
|
||||
|
||||
## clone_lvol_bdev {#rpc_clone_lvol_bdev}
|
||||
|
||||
Create a logical volume based on a snapshot.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
snapshot_name | Required | string | UUID or alias of the snapshot to clone
|
||||
clone_name | Required | string | Name for the logical volume to create
|
||||
|
||||
### Response
|
||||
|
||||
UUID of the created logical volume clone is returned.
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0"
|
||||
"method": "clone_lvol_bdev",
|
||||
"id": 1,
|
||||
"params": {
|
||||
"snapshot_name": "cc8d7fdf-7865-4d1f-9fc6-35da8e368670",
|
||||
"clone_name": "CLONE1"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": "8d87fccc-c278-49f0-9d4c-6237951aca09"
|
||||
}
|
||||
~~~
|
||||
|
||||
## rename_lvol_bdev {#rpc_rename_lvol_bdev}
|
||||
|
||||
Rename a logical volume. New name will rename only the alias of the logical volume.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
old_name | Required | string | UUID or alias of the existing logical volume
|
||||
new_name | Required | string | New logical volume name
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "rename_lvol_bdev",
|
||||
"id": 1,
|
||||
"params": {
|
||||
"old_name": "067df606-6dbc-4143-a499-0d05855cb3b8",
|
||||
"new_name": "LVOL2"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": true
|
||||
}
|
||||
~~~
|
||||
|
||||
## resize_lvol_bdev {#rpc_resize_lvol_bdev}
|
||||
|
||||
Resize a logical volume.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
name | Required | string | UUID or alias of the logical volume to resize
|
||||
size | Required | number | Desired size of the logical volume in bytes
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "resize_lvol_bdev",
|
||||
"id": 1,
|
||||
"params": {
|
||||
"name": "51638754-ca16-43a7-9f8f-294a0805ab0a",
|
||||
"size": 2097152
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": true
|
||||
}
|
||||
~~~
|
||||
|
||||
## destroy_lvol_bdev {#rpc_destroy_lvol_bdev}
|
||||
|
||||
Destroy a logical volume.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
name | Required | string | UUID or alias of the logical volume to destroy
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "destroy_lvol_bdev",
|
||||
"id": 1,
|
||||
"params": {
|
||||
"name": "51638754-ca16-43a7-9f8f-294a0805ab0a"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": true
|
||||
}
|
||||
~~~
|
||||
|
||||
## inflate_lvol_bdev {#rpc_inflate_lvol_bdev}
|
||||
|
||||
Inflate a logical volume. All unallocated clusters are allocated and copied from the parent or zero filled if not allocated in the parent. Then all dependencies on the parent are removed.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
name | Required | string | UUID or alias of the logical volume to inflate
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "inflate_lvol_bdev",
|
||||
"id": 1,
|
||||
"params": {
|
||||
"name": "8d87fccc-c278-49f0-9d4c-6237951aca09"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": true
|
||||
}
|
||||
~~~
|
||||
|
||||
## decouple_parent_lvol_bdev {#rpc_decouple_parent_lvol_bdev}
|
||||
|
||||
Decouple the parent of a logical volume. For unallocated clusters which is allocated in the parent, they are allocated and copied from the parent, but for unallocated clusters which is thin provisioned in the parent, they are kept thin provisioned. Then all dependencies on the parent are removed.
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Optional | Type | Description
|
||||
----------------------- | -------- | ----------- | -----------
|
||||
name | Required | string | UUID or alias of the logical volume to decouple the parent of it
|
||||
|
||||
### Example
|
||||
|
||||
Example request:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "decouple_parent_lvol_bdev",
|
||||
"id": 1.
|
||||
"params": {
|
||||
"name": "8d87fccc-c278-49f0-9d4c-6237951aca09"
|
||||
}
|
||||
}
|
||||
~~~
|
||||
|
||||
Example response:
|
||||
~~~
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"result": true
|
||||
}
|
||||
~~~
|
||||
|
Loading…
Reference in New Issue
Block a user