Commit b269b0ed authored by Damiano Cipriani's avatar Damiano Cipriani Committed by Tomasz Zawadzki
Browse files

doc: add lvol/blob shallow copy descriptions



CHANGELOG.md, lvol.md and blob.md have been updated with
informations about the shallow copy functionality.

Change-Id: I9ecd306bc93fb9347c74bd0d7f178a3fc8f241b3
Signed-off-by: default avatarDamiano Cipriani <damiano.cipriani@suse.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22570


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 5daa8791
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -10,6 +10,17 @@ spdk_accel_get/set_opts() has changed to act more like spdk_bdev's variant.

Added `spdk_bdev_get_nvme_ctratt()` API to get controller attributes of bdev.

### lvol

Added `bdev_lvol_start_shallow_copy` RPC to start a shallow copy of an lvol over a given bdev and
`bdev_lvol_check_shallow_copy` RPC to get the status of the operation.
These RPCs use the new API `spdk_lvol_shallow_copy`.

### blobstore

Added new API `spdk_bs_blob_shallow_copy` to make a shallow copy from a blob to a blobstore device. Only clusters
allocated to the blob will be written on the device.

### event

SPDK applications can now start with `--wait-for-rpc` and JSON configuration provided at the same time.
+8 −0
Original line number Diff line number Diff line
@@ -438,6 +438,14 @@ An esnap clone can be recognized in various ways:
  is set to `SPDK_BLOBID_EXTERNAL_SNAPSHOT`, and `blob->back_bs_dev` references a blobstore device
  which is not a blob in the same blobstore nor a zeroes device.

#### Shallow Copy {#blob_shallow_copy}

A read only blob can be copied over a blob store device in a way that only clusters
allocated to the blob will be written on the device. This device must have a size equal or greater
than blob's size and blob store's block size must be an integer multiple of device's block size.
This functionality can be used to recreate the entire snapshot stack of a blob into a different blob
store.

#### Copy-on-write {#blob_pg_copy_on_write}

A copy-on-write operation is somewhat expensive, with the cost being proportional to the cluster
+10 −0
Original line number Diff line number Diff line
@@ -197,4 +197,14 @@ bdev_lvol_decouple_parent [-h] name
    Decouple parent of a logical volume
    optional arguments:
    -h, --help  show help
bdev_lvol_start_shallow_copy [-h] src_lvol_name dst_bdev_name
    Make a shallow copy of lvol over a given bdev
    This RPC starts the operation and returns an identifier that can be used to query the status
    of the operation with the RPC bdev_lvol_check_shallow_copy.
    optional arguments:
    -h, --help  show help
bdev_lvol_check_shallow_copy [-h] operation_id
    Get shallow copy status
    optional arguments:
    -h, --help  show help
```