|
|
8ddfc2 |
man/lvmvdo.7_main | 321 +++++++++++++++++++++++++++++-------------------------
|
|
|
8ddfc2 |
1 file changed, 173 insertions(+), 148 deletions(-)
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
diff --git a/man/lvmvdo.7_main b/man/lvmvdo.7_main
|
|
|
8ddfc2 |
index 582f7a8..39dee39 100644
|
|
|
8ddfc2 |
--- a/man/lvmvdo.7_main
|
|
|
8ddfc2 |
+++ b/man/lvmvdo.7_main
|
|
|
8ddfc2 |
@@ -1,32 +1,29 @@
|
|
|
8ddfc2 |
.TH "LVMVDO" "7" "LVM TOOLS #VERSION#" "Red Hat, Inc" "\""
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.SH NAME
|
|
|
8ddfc2 |
-lvmvdo \(em EXPERIMENTAL LVM Virtual Data Optimizer support
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
+lvmvdo \(em Support for Virtual Data Optimizer in LVM
|
|
|
8ddfc2 |
.SH DESCRIPTION
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-VDO (which includes kvdo and vdo) is software that provides inline
|
|
|
8ddfc2 |
+VDO is software that provides inline
|
|
|
8ddfc2 |
block-level deduplication, compression, and thin provisioning capabilities
|
|
|
8ddfc2 |
for primary storage.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
Deduplication is a technique for reducing the consumption of storage
|
|
|
8ddfc2 |
resources by eliminating multiple copies of duplicate blocks. Compression
|
|
|
8ddfc2 |
-takes the individual unique blocks and shrinks them with coding
|
|
|
8ddfc2 |
-algorithms; these reduced blocks are then efficiently packed together into
|
|
|
8ddfc2 |
-physical blocks. Thin provisioning manages the mapping from LBAs presented
|
|
|
8ddfc2 |
-by VDO to where the data has actually been stored, and also eliminates any
|
|
|
8ddfc2 |
-blocks of all zeroes.
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-With deduplication, instead of writing the same data more than once each
|
|
|
8ddfc2 |
-duplicate block is detected and recorded as a reference to the original
|
|
|
8ddfc2 |
+takes the individual unique blocks and shrinks them. These reduced blocks are then efficiently packed together into
|
|
|
8ddfc2 |
+physical blocks. Thin provisioning manages the mapping from logical blocks
|
|
|
8ddfc2 |
+presented by VDO to where the data has actually been physically stored,
|
|
|
8ddfc2 |
+and also eliminates any blocks of all zeroes.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+With deduplication, instead of writing the same data more than once, VDO detects and records each
|
|
|
8ddfc2 |
+duplicate block as a reference to the original
|
|
|
8ddfc2 |
block. VDO maintains a mapping from logical block addresses (used by the
|
|
|
8ddfc2 |
storage layer above VDO) to physical block addresses (used by the storage
|
|
|
8ddfc2 |
layer under VDO). After deduplication, multiple logical block addresses
|
|
|
8ddfc2 |
may be mapped to the same physical block address; these are called shared
|
|
|
8ddfc2 |
blocks and are reference-counted by the software.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-With VDO's compression, multiple blocks (or shared blocks) are compressed
|
|
|
8ddfc2 |
-with the fast LZ4 algorithm, and binned together where possible so that
|
|
|
8ddfc2 |
+With compression, VDO compresses multiple blocks (or shared blocks)
|
|
|
8ddfc2 |
+with the fast LZ4 algorithm, and bins them together where possible so that
|
|
|
8ddfc2 |
multiple compressed blocks fit within a 4 KB block on the underlying
|
|
|
8ddfc2 |
storage. Mapping from LBA is to a physical block address and index within
|
|
|
8ddfc2 |
it for the desired compressed data. All compressed blocks are individually
|
|
|
8ddfc2 |
@@ -39,65 +36,55 @@ allocated for storing the new block data to ensure that other logical
|
|
|
8ddfc2 |
block addresses that are mapped to the shared physical block are not
|
|
|
8ddfc2 |
modified.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-For usage of VDO with \fBlvm\fP(8) standard VDO userspace tools
|
|
|
8ddfc2 |
-\fBvdoformat\fP(8) and currently non-standard kernel VDO module
|
|
|
8ddfc2 |
-"\fIkvdo\fP" needs to be installed on the system.
|
|
|
8ddfc2 |
+To use VDO with \fBlvm\fP(8), you must install the standard VDO user-space tools
|
|
|
8ddfc2 |
+\fBvdoformat\fP(8) and the currently non-standard kernel VDO module
|
|
|
8ddfc2 |
+"\fIkvdo\fP".
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
The "\fIkvdo\fP" module implements fine-grained storage virtualization,
|
|
|
8ddfc2 |
-thin provisioning, block sharing, and compression;
|
|
|
8ddfc2 |
-the "\fIuds\fP" module provides memory-efficient duplicate
|
|
|
8ddfc2 |
-identification. The userspace tools include \fBvdostats\fP(8)
|
|
|
8ddfc2 |
-for extracting statistics from those volumes.
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SH VDO Terms
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
+thin provisioning, block sharing, and compression.
|
|
|
8ddfc2 |
+The "\fIuds\fP" module provides memory-efficient duplicate
|
|
|
8ddfc2 |
+identification. The user-space tools include \fBvdostats\fP(8)
|
|
|
8ddfc2 |
+for extracting statistics from VDO volumes.
|
|
|
8ddfc2 |
+.SH VDO TERMS
|
|
|
8ddfc2 |
.TP
|
|
|
8ddfc2 |
VDODataLV
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
VDO data LV
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
-large hidden LV with suffix _vdata created in a VG.
|
|
|
8ddfc2 |
+A large hidden LV with the _vdata suffix. It is created in a VG
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
-used by VDO target to store all data and metadata blocks.
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
+used by the VDO kernel target to store all data and metadata blocks.
|
|
|
8ddfc2 |
.TP
|
|
|
8ddfc2 |
VDOPoolLV
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
VDO pool LV
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
-maintains virtual for LV(s) stored in attached VDO data LV
|
|
|
8ddfc2 |
-and it has same size.
|
|
|
8ddfc2 |
+A pool for virtual VDOLV(s) with the size of used VDODataLV.
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
-contains VDOLV(s) (currently supports only a single VDOLV).
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
+Only a single VDOLV is currently supported.
|
|
|
8ddfc2 |
.TP
|
|
|
8ddfc2 |
VDOLV
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
VDO LV
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
-created from VDOPoolLV
|
|
|
8ddfc2 |
+Created from VDOPoolLV.
|
|
|
8ddfc2 |
.br
|
|
|
8ddfc2 |
-appears blank after creation
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SH VDO Usage
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
+Appears blank after creation.
|
|
|
8ddfc2 |
+.SH VDO USAGE
|
|
|
8ddfc2 |
The primary methods for using VDO with lvm2:
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
.SS 1. Create VDOPoolLV with VDOLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Create an VDOPoolLV that will holds VDO data together with
|
|
|
8ddfc2 |
-virtual size VDOLV, that user can use. When the virtual size
|
|
|
8ddfc2 |
-is not specified, then such LV is created with maximum size that
|
|
|
8ddfc2 |
-always fits into data volume even if there cannot happen any
|
|
|
8ddfc2 |
-deduplication and compression
|
|
|
8ddfc2 |
-(i.e. it can hold uncompressible content of /dev/urandom).
|
|
|
8ddfc2 |
-When the name of VDOPoolLV is not specified, it tales name from
|
|
|
8ddfc2 |
-sequence of vpool0, vpool1 ...
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Note: As the performance of TRIM/Discard operation is slow for large
|
|
|
8ddfc2 |
-volumes of VDO type, please try to avoid sending discard requests unless
|
|
|
8ddfc2 |
-necessary as it may take considerable amount of time to finish discard
|
|
|
8ddfc2 |
+Create a VDOPoolLV that will hold VDO data, and a
|
|
|
8ddfc2 |
+virtual size VDOLV that the user can use. If you do not specify the virtual size,
|
|
|
8ddfc2 |
+then the VDOLV is created with the maximum size that
|
|
|
8ddfc2 |
+always fits into data volume even if no
|
|
|
8ddfc2 |
+deduplication or compression can happen
|
|
|
8ddfc2 |
+(i.e. it can hold the incompressible content of /dev/urandom).
|
|
|
8ddfc2 |
+If you do not specify the name of VDOPoolLV, it is taken from
|
|
|
8ddfc2 |
+the sequence of vpool0, vpool1 ...
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+Note: The performance of TRIM/Discard operations is slow for large
|
|
|
8ddfc2 |
+volumes of VDO type. Please try to avoid sending discard requests unless
|
|
|
8ddfc2 |
+necessary because it might take considerable amount of time to finish the discard
|
|
|
8ddfc2 |
operation.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
@@ -106,22 +93,19 @@ operation.
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
# lvcreate --type vdo -n vdo0 -L 10G -V 100G vg/vdopool0
|
|
|
8ddfc2 |
# mkfs.ext4 -E nodiscard /dev/vg/vdo0
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SS 2. Create VDOPoolLV and convert existing LV into VDODataLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Convert an already created/existing LV into a volume that can hold
|
|
|
8ddfc2 |
-VDO data and metadata (a volume reference by VDOPoolLV).
|
|
|
8ddfc2 |
-User will be prompted to confirm such conversion as it is \fBIRREVERSIBLY
|
|
|
8ddfc2 |
-DESTROYING\fP content of such volume, as it's being immediately
|
|
|
8ddfc2 |
-formatted by \fBvdoformat\fP(8) as VDO pool data volume. User can
|
|
|
8ddfc2 |
-specify virtual size of associated VDOLV with this VDOPoolLV.
|
|
|
8ddfc2 |
-When the virtual size is not specified, it will set to the maximum size
|
|
|
8ddfc2 |
-that can keep 100% uncompressible data there.
|
|
|
8ddfc2 |
+.SS 2. Create VDOPoolLV from conversion of an existing LV into VDODataLV
|
|
|
8ddfc2 |
+Convert an already created or existing LV into a volume that can hold
|
|
|
8ddfc2 |
+VDO data and metadata (volume referenced by VDOPoolLV).
|
|
|
8ddfc2 |
+You will be prompted to confirm such conversion because it \fBIRREVERSIBLY
|
|
|
8ddfc2 |
+DESTROYS\fP the content of such volume and the volume is immediately
|
|
|
8ddfc2 |
+formatted by \fBvdoformat\fP(8) as a VDO pool data volume. You can
|
|
|
8ddfc2 |
+specify the virtual size of the VDOLV associated with this VDOPoolLV.
|
|
|
8ddfc2 |
+If you do not specify the virtual size, it will be set to the maximum size
|
|
|
8ddfc2 |
+that can keep 100% incompressible data there.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
.B lvconvert --type vdo-pool -n VDOLV -V VirtualSize VG/VDOPoolLV
|
|
|
8ddfc2 |
@@ -129,23 +113,20 @@ that can keep 100% uncompressible data there.
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
-# lvconvert --type vdo-pool -n vdo0 -V10G vg/existinglv
|
|
|
8ddfc2 |
+# lvconvert --type vdo-pool -n vdo0 -V10G vg/ExistingLV
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SS 3. Change default setting used for creating VDOPoolLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-VDO allows to set large variety of option. Lots of these setting
|
|
|
8ddfc2 |
-can be specified by lvm.conf or profile settings. User can prepare
|
|
|
8ddfc2 |
-number of different profiles and just specify profile file name.
|
|
|
8ddfc2 |
-Check output of \fBlvmconfig --type full\fP for detailed description
|
|
|
8ddfc2 |
-of all individual vdo settings.
|
|
|
8ddfc2 |
+.SS 3. Change the default settings used for creating a VDOPoolLV
|
|
|
8ddfc2 |
+VDO allows to set a large variety of options. Lots of these settings
|
|
|
8ddfc2 |
+can be specified in lvm.conf or profile settings. You can prepare
|
|
|
8ddfc2 |
+a number of different profiles in the #DEFAULT_SYS_DIR#/profile directory
|
|
|
8ddfc2 |
+and just specify the profile file name.
|
|
|
8ddfc2 |
+Check the output of \fBlvmconfig --type full\fP for a detailed description
|
|
|
8ddfc2 |
+of all individual VDO settings.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
-# cat <<EOF > vdo.profile
|
|
|
8ddfc2 |
+# cat <<EOF > #DEFAULT_SYS_DIR#/profile/vdo_create.profile
|
|
|
8ddfc2 |
allocation {
|
|
|
8ddfc2 |
vdo_use_compression=1
|
|
|
8ddfc2 |
vdo_use_deduplication=1
|
|
|
8ddfc2 |
@@ -169,13 +150,11 @@ allocation {
|
|
|
8ddfc2 |
}
|
|
|
8ddfc2 |
EOF
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-# lvcreate --vdo -L10G --metadataprofile vdo.profile vg/vdopool0
|
|
|
8ddfc2 |
+# lvcreate --vdo -L10G --metadataprofile vdo_create vg/vdopool0
|
|
|
8ddfc2 |
# lvcreate --vdo -L10G --config 'allocation/vdo_cpu_threads=4' vg/vdopool1
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SS 4. Change compression and deduplication of VDOPoolLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Disable or enable compression and deduplication for VDO pool LV
|
|
|
8ddfc2 |
+.SS 4. Change the compression and deduplication of a VDOPoolLV
|
|
|
8ddfc2 |
+Disable or enable the compression and deduplication for VDOPoolLV
|
|
|
8ddfc2 |
(the volume that maintains all VDO LV(s) associated with it).
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
@@ -183,24 +162,20 @@ Disable or enable compression and deduplication for VDO pool LV
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
-# lvchange --compression n vg/vdpool0
|
|
|
8ddfc2 |
-# lvchange --deduplication y vg/vdpool1
|
|
|
8ddfc2 |
+# lvchange --compression n vg/vdopool0
|
|
|
8ddfc2 |
+# lvchange --deduplication y vg/vdopool1
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SS 4. Checking usage of VDOPoolLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-To quickly check how much data of VDOPoolLV are already consumed
|
|
|
8ddfc2 |
-use \fBlvs\fP(8). Field Data% will report how much data occupies
|
|
|
8ddfc2 |
-content of virtual data for VDOLV and how much space is already
|
|
|
8ddfc2 |
-consumed with all the data and metadata blocks in VDOPoolLV.
|
|
|
8ddfc2 |
-For a detailed description use \fBvdostats\fP(8) command.
|
|
|
8ddfc2 |
+.SS 5. Checking the usage of VDOPoolLV
|
|
|
8ddfc2 |
+To quickly check how much data on a VDOPoolLV is already consumed,
|
|
|
8ddfc2 |
+use \fBlvs\fP(8). The Data% field reports how much data is occupied
|
|
|
8ddfc2 |
+in the content of the virtual data for the VDOLV and how much space is already
|
|
|
8ddfc2 |
+consumed with all the data and metadata blocks in the VDOPoolLV.
|
|
|
8ddfc2 |
+For a detailed description, use the \fBvdostats\fP(8) command.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
Note: \fBvdostats\fP(8) currently understands only /dev/mapper device names.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
# lvcreate --type vdo -L10G -V20G -n vdo0 vg/vdopool0
|
|
|
8ddfc2 |
# mkfs.ext4 -E nodiscard /dev/vg/vdo0
|
|
|
8ddfc2 |
@@ -211,40 +186,43 @@ Note: \fBvdostats\fP(8) currently understands only /dev/mapper device names.
|
|
|
8ddfc2 |
vdopool0 vg dwi-ao---- 10.00g 30.16
|
|
|
8ddfc2 |
[vdopool0_vdata] vg Dwi-ao---- 10.00g
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-# vdostats --all /dev/mapper/vg-vdopool0
|
|
|
8ddfc2 |
+# vdostats --all /dev/mapper/vg-vdopool0-vpool
|
|
|
8ddfc2 |
/dev/mapper/vg-vdopool0 :
|
|
|
8ddfc2 |
version : 30
|
|
|
8ddfc2 |
release version : 133524
|
|
|
8ddfc2 |
data blocks used : 79
|
|
|
8ddfc2 |
...
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
+.SS 6. Extending the VDOPoolLV size
|
|
|
8ddfc2 |
+You can add more space to hold VDO data and metadata by
|
|
|
8ddfc2 |
+extending the VDODataLV using the commands
|
|
|
8ddfc2 |
+\fBlvresize\fP(8) and \fBlvextend\fP(8).
|
|
|
8ddfc2 |
+The extension needs to add at least one new VDO slab. You can configure
|
|
|
8ddfc2 |
+the slab size with the \fBallocation/vdo_slab_size_mb\fP setting.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-.SS 4. Extending VDOPoolLV size
|
|
|
8ddfc2 |
+You can also enable automatic size extension of a monitored VDOPoolLV
|
|
|
8ddfc2 |
+with the \fBactivation/vdo_pool_autoextend_percent\fP and
|
|
|
8ddfc2 |
+\fBactivation/vdo_pool_autoextend_threshold\fP settings.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-Adding more space to hold VDO data and metadata can be made via
|
|
|
8ddfc2 |
-extension of VDODataLV with commands
|
|
|
8ddfc2 |
-\fBlvresize\fP(8), \fBlvextend\fP(8).
|
|
|
8ddfc2 |
+Note: You cannot reduce the size of a VDOPoolLV.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-Note: Size of VDOPoolLV cannot be reduced.
|
|
|
8ddfc2 |
+Note: You cannot change the size of a cached VDOPoolLV.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
.B lvextend -L+AddingSize VG/VDOPoolLV
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
# lvextend -L+50G vg/vdopool0
|
|
|
8ddfc2 |
# lvresize -L300G vg/vdopool1
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
+.SS 7. Extending or reducing the VDOLV size
|
|
|
8ddfc2 |
+You can extend or reduce a virtual VDO LV as a standard LV with the
|
|
|
8ddfc2 |
+\fBlvresize\fP(8), \fBlvextend\fP(8), and \fBlvreduce\fP(8) commands.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-.SS 4. Extending or reducing VDOLV size
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-VDO LV can be extended or reduced as standard LV with commands
|
|
|
8ddfc2 |
-\fBlvresize\fP(8), \fBlvextend\fP(8), \fBlvreduce\fP(8).
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Note: Reduction needs to process TRIM for reduced disk area
|
|
|
8ddfc2 |
-to unmap used data blocks from VDOPoolLV and it may take
|
|
|
8ddfc2 |
+Note: The reduction needs to process TRIM for reduced disk area
|
|
|
8ddfc2 |
+to unmap used data blocks from the VDOPoolLV, which might take
|
|
|
8ddfc2 |
a long time.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
@@ -253,74 +231,121 @@ a long time.
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
# lvextend -L+50G vg/vdo0
|
|
|
8ddfc2 |
# lvreduce -L-50G vg/vdo1
|
|
|
8ddfc2 |
# lvresize -L200G vg/vdo2
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SS 5. Component activation of VDODataLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-VDODataLV can be activated separately as component LV for examination
|
|
|
8ddfc2 |
-purposes. It activates data LV in read-only mode and cannot be modified.
|
|
|
8ddfc2 |
-If the VDODataLV is active as component, any upper LV using this volume CANNOT
|
|
|
8ddfc2 |
-be activated. User has to deactivate VDODataLV first to continue to use VDOPoolLV.
|
|
|
8ddfc2 |
+.SS 8. Component activation of a VDODataLV
|
|
|
8ddfc2 |
+You can activate a VDODataLV separately as a component LV for examination
|
|
|
8ddfc2 |
+purposes. It activates the data LV in read-only mode, and the data LV cannot be modified.
|
|
|
8ddfc2 |
+If the VDODataLV is active as a component, any upper LV using this volume CANNOT
|
|
|
8ddfc2 |
+be activated. You have to deactivate the VDODataLV first to continue to use the VDOPoolLV.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
# lvchange -ay vg/vpool0_vdata
|
|
|
8ddfc2 |
# lvchange -an vg/vpool0_vdata
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SH VDO Topics
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
+.SH VDO TOPICS
|
|
|
8ddfc2 |
.SS 1. Stacking VDO
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-User can convert/stack VDO with existing volumes.
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SS 2. VDO on top of raid
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Using Raid type LV for VDO Data LV.
|
|
|
8ddfc2 |
+You can convert or stack a VDOPooLV with these currently supported
|
|
|
8ddfc2 |
+volume types: linear, stripe, raid, and cache with cachepool.
|
|
|
8ddfc2 |
+.SS 2. VDOPoolLV on top of raid
|
|
|
8ddfc2 |
+Using a raid type LV for a VDODataLV.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
-# lvcreate --type raid1 -L 5G -n vpool vg
|
|
|
8ddfc2 |
-# lvconvert --type vdo-pool -V 10G vg/vpool
|
|
|
8ddfc2 |
+# lvcreate --type raid1 -L 5G -n vdopool vg
|
|
|
8ddfc2 |
+# lvconvert --type vdo-pool -V 10G vg/vdopool
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
+.SS 3. Caching a VDODataLV or a VDOPoolLV
|
|
|
8ddfc2 |
+VDODataLV (accepts also VDOPoolLV) caching provides a mechanism
|
|
|
8ddfc2 |
+to accelerate reads and writes of already compressed and deduplicated
|
|
|
8ddfc2 |
+data blocks together with VDO metadata.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
-.SS 3. Caching VDODataLV, VDOPoolLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Cache VDO Data LV (accepts also VDOPoolLV.
|
|
|
8ddfc2 |
+A cached VDO data LV cannot be currently resized. Also, the threshold
|
|
|
8ddfc2 |
+based automatic resize will not work.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
-# lvcreate -L 5G -V 10G -n vdo1 vg/vpool
|
|
|
8ddfc2 |
-# lvcreate --type cache-pool -L 1G -n cpool vg
|
|
|
8ddfc2 |
-# lvconvert --cache --cachepool vg/cpool vg/vpool
|
|
|
8ddfc2 |
-# lvconvert --uncache vg/vpool
|
|
|
8ddfc2 |
+# lvcreate --type vdo -L 5G -V 10G -n vdo1 vg/vdopool
|
|
|
8ddfc2 |
+# lvcreate --type cache-pool -L 1G -n cachepool vg
|
|
|
8ddfc2 |
+# lvconvert --cache --cachepool vg/cachepool vg/vdopool
|
|
|
8ddfc2 |
+# lvconvert --uncache vg/vdopool
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.SS 3. Caching VDOLV
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-Cache VDO LV.
|
|
|
8ddfc2 |
+.SS 4. Caching a VDOLV
|
|
|
8ddfc2 |
+VDO LV cache allow you to 'cache' a device for better performance before
|
|
|
8ddfc2 |
+it hits the processing of the VDO Pool LV layer.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.I Example
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
.nf
|
|
|
8ddfc2 |
-# lvcreate -L 5G -V 10G -n vdo1 vg/vpool
|
|
|
8ddfc2 |
-# lvcreate --type cache-pool -L 1G -n cpool vg
|
|
|
8ddfc2 |
-# lvconvert --cache --cachepool vg/cpool vg/vdo1
|
|
|
8ddfc2 |
+# lvcreate -L 5G -V 10G -n vdo1 vg/vdopool
|
|
|
8ddfc2 |
+# lvcreate --type cache-pool -L 1G -n cachepool vg
|
|
|
8ddfc2 |
+# lvconvert --cache --cachepool vg/cachepool vg/vdo1
|
|
|
8ddfc2 |
# lvconvert --uncache vg/vdo1
|
|
|
8ddfc2 |
.fi
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-.br
|
|
|
8ddfc2 |
-
|
|
|
8ddfc2 |
-\&
|
|
|
8ddfc2 |
+.SS 5. Usage of Discard/TRIM with a VDOLV
|
|
|
8ddfc2 |
+You can discard data on a VDO LV and reduce used blocks on a VDOPoolLV.
|
|
|
8ddfc2 |
+However, the current performance of discard operations is still not optimal
|
|
|
8ddfc2 |
+and takes a considerable amount of time and CPU.
|
|
|
8ddfc2 |
+Unless you really need it, you should avoid using discard.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+When a block device is going to be rewritten,
|
|
|
8ddfc2 |
+block will be automatically reused for new data.
|
|
|
8ddfc2 |
+Discard is useful in situations when it is known that the given portion of a VDO LV
|
|
|
8ddfc2 |
+is not going to be used and the discarded space can be used for block
|
|
|
8ddfc2 |
+provisioning in other regions of the VDO LV.
|
|
|
8ddfc2 |
+For the same reason, you should avoid using mkfs with discard for
|
|
|
8ddfc2 |
+a freshly created VDO LV to save a lot of time that this operation would
|
|
|
8ddfc2 |
+take otherwise as device after create empty.
|
|
|
8ddfc2 |
+.SS 6. Memory usage
|
|
|
8ddfc2 |
+The VDO target requires 370 MiB of RAM plus an additional 268 MiB
|
|
|
8ddfc2 |
+per each 1 TiB of physical storage managed by the volume.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+UDS requires a minimum of 250 MiB of RAM,
|
|
|
8ddfc2 |
+which is also the default amount that deduplication uses.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+The memory required for the UDS index is determined by the index type
|
|
|
8ddfc2 |
+and the required size of the deduplication window and
|
|
|
8ddfc2 |
+is controlled by the \fBallocation/vdo_use_sparse_index\fP setting.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+With enabled UDS sparse indexing, it relies on the temporal locality of data
|
|
|
8ddfc2 |
+and attempts to retain only the most relevant index entries in memory and
|
|
|
8ddfc2 |
+can maintain a deduplication window that is ten times larger
|
|
|
8ddfc2 |
+than with dense while using the same amount of memory.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+Although the sparse index provides the greatest coverage,
|
|
|
8ddfc2 |
+the dense index provides more deduplication advice.
|
|
|
8ddfc2 |
+For most workloads, given the same amount of memory,
|
|
|
8ddfc2 |
+the difference in deduplication rates between dense
|
|
|
8ddfc2 |
+and sparse indexes is negligible.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+A dense index with 1 GiB of RAM maintains a 1 TiB deduplication window,
|
|
|
8ddfc2 |
+while a sparse index with 1 GiB of RAM maintains a 10 TiB deduplication window.
|
|
|
8ddfc2 |
+In general, 1 GiB is sufficient for 4 TiB of physical space with
|
|
|
8ddfc2 |
+a dense index and 40 TiB with a sparse index.
|
|
|
8ddfc2 |
+.SS 7. Storage space requirements
|
|
|
8ddfc2 |
+You can configure a VDOPoolLV to use up to 256 TiB of physical storage.
|
|
|
8ddfc2 |
+Only a certain part of the physical storage is usable to store data.
|
|
|
8ddfc2 |
+This section provides the calculations to determine the usable size
|
|
|
8ddfc2 |
+of a VDO-managed volume.
|
|
|
8ddfc2 |
+
|
|
|
8ddfc2 |
+The VDO target requires storage for two types of VDO metadata and for the UDS index:
|
|
|
8ddfc2 |
+.TP
|
|
|
8ddfc2 |
+\(bu
|
|
|
8ddfc2 |
+The first type of VDO metadata uses approximately 1 MiB for each 4 GiB
|
|
|
8ddfc2 |
+of physical storage plus an additional 1 MiB per slab.
|
|
|
8ddfc2 |
+.TP
|
|
|
8ddfc2 |
+\(bu
|
|
|
8ddfc2 |
+The second type of VDO metadata consumes approximately 1.25 MiB
|
|
|
8ddfc2 |
+for each 1 GiB of logical storage, rounded up to the nearest slab.
|
|
|
8ddfc2 |
+.TP
|
|
|
8ddfc2 |
+\(bu
|
|
|
8ddfc2 |
+The amount of storage required for the UDS index depends on the type of index
|
|
|
8ddfc2 |
+and the amount of RAM allocated to the index. For each 1 GiB of RAM,
|
|
|
8ddfc2 |
+a dense UDS index uses 17 GiB of storage and a sparse UDS index will use
|
|
|
8ddfc2 |
+170 GiB of storage.
|
|
|
8ddfc2 |
|
|
|
8ddfc2 |
.SH SEE ALSO
|
|
|
8ddfc2 |
.BR lvm (8),
|