Commit 5226e908 authored by Piotr Pelplinski's avatar Piotr Pelplinski Committed by Jim Harris
Browse files

lvol: Documentation



Signed-off-by: default avatarPiotr Pelplinski <piotr.pelplinski@intel.com>
Change-Id: I23e14bd1568dade96e5503598a3e360c951d6d78
Reviewed-on: https://review.gerrithub.io/369250


Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
parent 27f44662
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -793,6 +793,7 @@ INPUT = ../include/spdk \
                         event.md \
                         ioat.md \
                         iscsi.md \
                         lvol.md \
                         nvme.md \
                         nvme-cli.md \
                         nvmf.md \
+5 −0
Original line number Diff line number Diff line
@@ -155,3 +155,8 @@ kill $nbd_pid
# the first partition will be automatically exposed as
# Nvme0n1p1 in SPDK applications.
~~~

## Logical Volumes

The SPDK lvol driver allows to dynamically partition other SPDK backends.
No static configuration for this driver. Refer to @ref lvol for detailed RPC configuration.

doc/lvol.md

0 → 100644
+28 −0
Original line number Diff line number Diff line
# Logical volume store {#lvolstore}

A logical volume store is an SPDK blobstore with a special super blob denoting the blobstore.
This super blob is to different from SPDK blobstores used for BlobFS.

# Logical volume {#lvol}

A logical volume is an SPDK blob created from an lvolstore.

An lvol is uniquely identified by its blob ID and the UUID of the lvolstore from which it was created.

# Logical volume block device {#vdev_lvol}

Representation of an SPDK block device (spdk_bdev) with an lvol implementation. A logical volume block device translates generic SPDK block device I/O (spdk_bdev_io) operations into the equivalent SPDK blob operations.

# RPC overview
There are few logical volumes specific calls.

- construct_lvol_store bdev_name
	Constructs lvolstore on specified bdev
- destroy_lvol_store bdev_name
	Destroy lvolstore on specified bdev
- construct_lvol_bdev uuid size
	Constructs lvol bdev on lvolstore specified by uuid with specified size
- resize_lvol_bdev bdev_name size
	Resizes specified lvol bdev

Note that destroying lvol store requires using call destroy_lvol_store, while deleting single lvol requires using delete_bdev rpc call.