From ac34a2dfeda0ec5dd35c1f7579f7adbd556fe31a Mon Sep 17 00:00:00 2001 From: Tomasz Kulasek Date: Thu, 14 Jun 2018 11:40:20 +0200 Subject: [PATCH] doc/lvol: add thin-provisioning section Signed-off-by: Change-Id: Ib3516b85a721363526deab14170da87a8d9232f1 Reviewed-on: https://review.gerrithub.io/415298 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Jim Harris --- doc/img/lvol_thin_provisioning.svg | 3 +++ doc/img/lvol_thin_provisioning_write.svg | 3 +++ doc/lvol.md | 12 ++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 doc/img/lvol_thin_provisioning.svg create mode 100644 doc/img/lvol_thin_provisioning_write.svg diff --git a/doc/img/lvol_thin_provisioning.svg b/doc/img/lvol_thin_provisioning.svg new file mode 100644 index 000000000..1d95d1b08 --- /dev/null +++ b/doc/img/lvol_thin_provisioning.svg @@ -0,0 +1,3 @@ + + +Thin Provisioningimage/svg+xmlThin Provisioning00000...00000...00000...00000...00000...00000...zeroes_devThin-provisionedvolumeactive clustersreadallocate and copy clusterunallocated clusterallocated cluster diff --git a/doc/img/lvol_thin_provisioning_write.svg b/doc/img/lvol_thin_provisioning_write.svg new file mode 100644 index 000000000..37cf6af93 --- /dev/null +++ b/doc/img/lvol_thin_provisioning_write.svg @@ -0,0 +1,3 @@ + + +Thin Provisioning Writeimage/svg+xmlThin Provisioning Write00000...00000...00000...00000...00000...00000...zeroes_devwriteactive clusterswriteallocate and copy clusterunallocated cluster before writeallocated cluster diff --git a/doc/lvol.md b/doc/lvol.md index ad39cdbe7..ba5b6ea9a 100644 --- a/doc/lvol.md +++ b/doc/lvol.md @@ -28,6 +28,18 @@ A logical volume block device translates generic SPDK block device I/O (spdk_bde Size of the new bdev will be rounded up to nearest multiple of cluster_size. By default lvol bdevs claim part of lvol store equal to their set size. When thin provision option is enabled, no space is taken from lvol store until data is written to lvol bdev. +## Thin provisioning {#lvol_thin_provisioning} + +Thin provisioned lvols rely on dynamic cluster allocation (e.g. when the first write operation on a cluster is performed), only space required to store data is used and unallocated clusters are obtained from underlying device (e.g. zeroes_dev). + +Sample write operations of thin provisioned blob are shown on the diagram below: + +![Writing clusters to the thin provisioned blob](lvol_thin_provisioning_write.svg) + +Sample read operations and the structure of thin provisioned blob are shown on the diagram below: + +![Reading clusters from thin provisioned blob](lvol_thin_provisioning.svg) + ## Snapshots and clone {#lvol_snapshots} Logical volumes support snapshots and clones functionality. User may at any given time create snapshot of existing logical volume to save a backup of current volume state.