Blame SOURCES/lvm2-2_03_03-man-initial-man-page-for-VDO-support.patch

146ac4
 man/Makefile.in   |   3 +-
146ac4
 man/lvmvdo.7_main | 241 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
146ac4
 2 files changed, 243 insertions(+), 1 deletion(-)
146ac4
 create mode 100644 man/lvmvdo.7_main
146ac4
146ac4
diff --git a/man/Makefile.in b/man/Makefile.in
146ac4
index e73f834..114e92b 100644
146ac4
--- a/man/Makefile.in
146ac4
+++ b/man/Makefile.in
146ac4
@@ -33,6 +33,7 @@ LVMCACHEMAN = lvmcache.7
146ac4
 LVMTHINMAN = lvmthin.7
146ac4
 LVMDBUSDMAN = lvmdbusd.8
146ac4
 LVMRAIDMAN = lvmraid.7
146ac4
+LVMVDOMAN = lvmvdo.7
146ac4
 
146ac4
 MAN5=lvm.conf.5
146ac4
 MAN7=lvmsystemid.7 lvmreport.7 
146ac4
@@ -96,7 +97,7 @@ else
146ac4
   endif
146ac4
 endif
146ac4
 
146ac4
-MAN7+=$(LVMCACHEMAN) $(LVMTHINMAN) $(LVMRAIDMAN)
146ac4
+MAN7+=$(LVMCACHEMAN) $(LVMTHINMAN) $(LVMRAIDMAN) $(LVMVDOMAN)
146ac4
 MAN5DIR=$(mandir)/man5
146ac4
 MAN7DIR=$(mandir)/man7
146ac4
 MAN8DIR=$(mandir)/man8
146ac4
diff --git a/man/lvmvdo.7_main b/man/lvmvdo.7_main
146ac4
new file mode 100644
146ac4
index 0000000..e789f7f
146ac4
--- /dev/null
146ac4
+++ b/man/lvmvdo.7_main
146ac4
@@ -0,0 +1,241 @@
146ac4
+.TH "LVMVDO" "7" "LVM TOOLS #VERSION#" "Red Hat, Inc" "\""
146ac4
+
146ac4
+.SH NAME
146ac4
+lvmvdo \(em EXPERIMENTAL LVM Virtual Data Optimizer support
146ac4
+
146ac4
+.SH DESCRIPTION
146ac4
+
146ac4
+
146ac4
+VDO (which includes kvdo and vdo) is software that provides inline
146ac4
+block-level deduplication, compression, and thin provisioning capabilities
146ac4
+for primary storage.
146ac4
+
146ac4
+Deduplication is a technique for reducing the consumption of storage
146ac4
+resources by eliminating multiple copies of duplicate blocks. Compression
146ac4
+takes the individual unique blocks and shrinks them with coding
146ac4
+algorithms; these reduced blocks are then efficiently packed together into
146ac4
+physical blocks. Thin provisioning manages the mapping from LBAs presented
146ac4
+by VDO to where the data has actually been stored, and also eliminates any
146ac4
+blocks of all zeroes.
146ac4
+
146ac4
+With deduplication, instead of writing the same data more than once each
146ac4
+duplicate block is detected and recorded as a reference to the original
146ac4
+block. VDO maintains a mapping from logical block addresses (used by the
146ac4
+storage layer above VDO) to physical block addresses (used by the storage
146ac4
+layer under VDO). After deduplication, multiple logical block addresses
146ac4
+may be mapped to the same physical block address; these are called shared
146ac4
+blocks and are reference-counted by the software.
146ac4
+
146ac4
+With VDO's compression, multiple blocks (or shared blocks) are compressed
146ac4
+with the fast LZ4 algorithm, and binned together where possible so that
146ac4
+multiple compressed blocks fit within a 4 KB block on the underlying
146ac4
+storage. Mapping from LBA is to a physical block address and index within
146ac4
+it for the desired compressed data. All compressed blocks are individually
146ac4
+reference counted for correctness.
146ac4
+
146ac4
+Block sharing and block compression are invisible to applications using
146ac4
+the storage, which read and write blocks as they would if VDO were not
146ac4
+present. When a shared block is overwritten, a new physical block is
146ac4
+allocated for storing the new block data to ensure that other logical
146ac4
+block addresses that are mapped to the shared physical block are not
146ac4
+modified.
146ac4
+
146ac4
+For usage of VDO with \fBlvm\fP(8) standard VDO userspace tools
146ac4
+\fBvdoformat\fP(8) and currently non-standard kernel VDO module
146ac4
+"\fIkvdo\fP" needs to be installed on the system.
146ac4
+
146ac4
+The "\fIkvdo\fP" module implements fine-grained storage virtualization,
146ac4
+thin provisioning, block sharing, and compression;
146ac4
+the "\fIuds\fP" module provides memory-efficient duplicate
146ac4
+identification. The userspace tools include \fBvdostats\fP(8)
146ac4
+for extracting statistics from those volumes.
146ac4
+
146ac4
+
146ac4
+.SH VDO Terms
146ac4
+
146ac4
+.TP
146ac4
+VDODataLV
146ac4
+.br
146ac4
+VDO data LV
146ac4
+.br
146ac4
+large hidden LV with suffix _vdata created in a VG.
146ac4
+.br
146ac4
+used by VDO target to store all data and metadata blocks.
146ac4
+
146ac4
+.TP
146ac4
+VDOPoolLV
146ac4
+.br
146ac4
+VDO pool LV
146ac4
+.br
146ac4
+maintains virtual for LV(s) stored in attached VDO data LV
146ac4
+and it has same size.
146ac4
+.br
146ac4
+contains VDOLV(s) (currently supports only a single VDOLV).
146ac4
+
146ac4
+.TP
146ac4
+VDOLV
146ac4
+.br
146ac4
+VDO LV
146ac4
+.br
146ac4
+created from VDOPoolLV
146ac4
+.br
146ac4
+appears blank after creation
146ac4
+
146ac4
+.SH VDO Usage
146ac4
+
146ac4
+The primary methods for using VDO with lvm2:
146ac4
+
146ac4
+.SS 1. Create VDOPoolLV with VDOLV
146ac4
+
146ac4
+Create an VDOPoolLV that will holds VDO data togehther with
146ac4
+virtual size VDOLV, that user can use. When the virtual size
146ac4
+is not specified, then such LV is created with maximum size that
146ac4
+always fits into data volume even if there cannot happen any
146ac4
+deduplication and compression
146ac4
+(i.e. it can hold uncompressible content of /dev/urandom).
146ac4
+When the name of VDOPoolLV is not specified, it tales name from
146ac4
+sequence of vpool0, vpool1 ...
146ac4
+
146ac4
+Note: As the performance of TRIM/Discard operation is slow for large
146ac4
+volumes of VDO type, please try to avoid sending discard requests unless
146ac4
+necessary as it may take considerable amount of time to finish discard
146ac4
+operation.
146ac4
+
146ac4
+.nf
146ac4
+.B lvcreate --type vdo -n VDOLV -L DataSize -V LargeVirtualSize VG/VDOPoolLV
146ac4
+.B lvcreate --vdo -L DataSize VG
146ac4
+.fi
146ac4
+
146ac4
+.I Example
146ac4
+.br
146ac4
+.nf
146ac4
+# lvcreate --type vdo -n vdo0 -L 10G -V 100G vg/vdopool0
146ac4
+# mkfs.ext4 -E nodiscard /dev/vg/vdo0
146ac4
+.fi
146ac4
+
146ac4
+.SS 2. Create VDOPoolLV and convert existing LV into VDODataLV
146ac4
+
146ac4
+Convert an already created/existing LV into a volume that can hold
146ac4
+VDO data and metadata (a volume reference by VDOPoolLV).
146ac4
+User will be prompted to confirm such conversion as it is \fBIRREVERSIBLY
146ac4
+DESTROYING\fP content of such volume, as it's being immediatelly
146ac4
+formated by \fBvdoformat\fP(8) as VDO pool data volume. User can
146ac4
+specify virtual size of associated VDOLV with this VDOPoolLV.
146ac4
+When the virtual size is not specified, it will set to the maximum size
146ac4
+that can keep 100% uncompressible data there.
146ac4
+
146ac4
+.nf
146ac4
+.B lvconvert --type vdo-pool -n VDOLV -V VirtualSize VG/VDOPoolLV
146ac4
+.B lvconvert --vdopool VG/VDOPoolLV
146ac4
+.fi
146ac4
+
146ac4
+.I Example
146ac4
+.br
146ac4
+.nf
146ac4
+# lvconvert --type vdo-pool -n vdo0 -V10G vg/existinglv
146ac4
+.fi
146ac4
+
146ac4
+.SS 3. Change default setting used for creating VDOPoolLV
146ac4
+
146ac4
+VDO allows to set large variety of option. Lots of these setting
146ac4
+can be specified by lvm.conf or profile settings. User can prepare
146ac4
+number of different profiles and just specify profile file name.
146ac4
+Check output of \fBlvmconfig --type full\fP for detailed description
146ac4
+of all individual vdo settings.
146ac4
+
146ac4
+.I Example
146ac4
+.br
146ac4
+.nf
146ac4
+# cat <<EOF > vdo.profile
146ac4
+allocation {
146ac4
+	vdo_use_compression=1
146ac4
+	vdo_use_deduplication=1
146ac4
+	vdo_use_metadata_hints=1
146ac4
+	vdo_minimum_io_size=4096
146ac4
+	vdo_block_map_cache_size_mb=128
146ac4
+	vdo_block_map_period=16380
146ac4
+	vdo_check_point_frequency=0
146ac4
+	vdo_use_sparse_index=0
146ac4
+	vdo_index_memory_size_mb=256
146ac4
+	vdo_slab_size_mb=2048
146ac4
+	vdo_ack_threads=1
146ac4
+	vdo_bio_threads=1
146ac4
+	vdo_bio_rotation=64
146ac4
+	vdo_cpu_threads=2
146ac4
+	vdo_hash_zone_threads=1
146ac4
+	vdo_logical_threads=1
146ac4
+	vdo_physical_threads=1
146ac4
+	vdo_write_policy="auto"
146ac4
+	vdo_max_discard=1
146ac4
+}
146ac4
+EOF
146ac4
+
146ac4
+# lvcreate --vdo -L10G --metadataprofile vdo.profile vg/vdopool0
146ac4
+# lvcreate --vdo -L10G --config 'allocation/vdo_cpu_threads=4' vg/vdopool1
146ac4
+.fi
146ac4
+
146ac4
+.SS 4. Change compression and deduplication of VDOPoolLV
146ac4
+
146ac4
+Disable or enable compression and deduplication for VDO pool LV
146ac4
+(the volume that maintains all VDO LV(s) associated with it).
146ac4
+
146ac4
+.B lvchange --compression [y|n] --deduplication [y|n] VG/VDOPoolLV
146ac4
+
146ac4
+.I Example
146ac4
+.br
146ac4
+.nf
146ac4
+# lvchange --compression n  vg/vdpool0
146ac4
+# lvchange --deduplication y vg/vdpool1
146ac4
+.fi
146ac4
+
146ac4
+.SS 4. Checking usage of VDOPoolLV
146ac4
+
146ac4
+To quickly check how much data of VDOPoolLV are already consumed
146ac4
+use \fBlvs\fP(8). Field Data% will report how much data occupies
146ac4
+content of virtual data for VDOLV and how much space is already
146ac4
+consumed with all the data and metadata blocks in VDOPoolLV.
146ac4
+For a detailed description use \fBvdostats\fP(8) command.
146ac4
+
146ac4
+Note: vdostats currently understands only /dev/mapper device names.
146ac4
+
146ac4
+.I Example
146ac4
+.br
146ac4
+.nf
146ac4
+# lvcreate --type vdo -L10G -V20G -n vdo0 vg/vdopool0
146ac4
+# mkfs.ext4 -E nodiscard /dev/vg/vdo0
146ac4
+# lvs -a vg
146ac4
+
146ac4
+  LV               VG Attr       LSize  Pool     Origin Data%
146ac4
+  vdo0             vg vwi-a-v--- 20.00g vdopool0        0.01
146ac4
+  vdopool0         vg dwi-ao---- 10.00g                 30.16
146ac4
+  [vdopool0_vdata] vg Dwi-ao---- 10.00g
146ac4
+
146ac4
+# vdostats --all /dev/mapper/vg-vdopool0
146ac4
+/dev/mapper/vg-vdopool0 :
146ac4
+  version                             : 30
146ac4
+  release version                     : 133524
146ac4
+  data blocks used                    : 79
146ac4
+  ...
146ac4
+
146ac4
+.fi
146ac4
+
146ac4
+.SH VDO Topics
146ac4
+
146ac4
+.br
146ac4
+
146ac4
+\&
146ac4
+
146ac4
+.SH SEE ALSO
146ac4
+.BR lvm (8),
146ac4
+.BR lvm.conf (5),
146ac4
+.BR lvmconfig (8),
146ac4
+.BR lvcreate (8),
146ac4
+.BR lvconvert (8),
146ac4
+.BR lvchange (8),
146ac4
+.BR lvextend (8),
146ac4
+.BR lvremove (8),
146ac4
+.BR lvs (8),
146ac4
+.BR vdo (8),
146ac4
+.BR vdoformat (8)
146ac4
+.BR vdostats (8)
146ac4
+