After completing this section, students should be able to describe new storage driver enhancements that include run time compression and deduplication.
RHEL 8 includes the virtual data optimizer (VDO) driver, which optimizes the data footprint on block devices. VDO includes two utilities, vdo to manage and configure VDO volumes, and vdostats to display the usage and block I/O for a VDO volume.
Reducing Data Footprint with VDO
Virtual data optimizer (VDO) is a Linux device mapper driver to reduces disk space usage on block devices, and minimize replication bandwidth.
VDO includes two kernel modules, the kvdo module to control data compression, and the uds module for deduplication.
VDO supports both inline data deduplication and compression.
Persistent VDO mounts in /etc/fstab require using the x-systemd.requires=vdo.service mount option.
Virtual Data Optimization Phases
VDO reduces the data footprint on storage in three phases: zero-block elimination, deduplication of redundant blocks, and data compression.
VDO removes blocks which only include zeros, and keeps their metadata.
The universal deduplication service (UDS) kernel module reviews the available VDO metadata to detect duplicated blocks. If a duplicated block is found, this block points to the metadata of the already available block.
When done with zero-block elimination and deduplication, the kvdo kernel module compresses blocks using LZ4 compression and groups them on 4 KB blocks.
Structure of a VDO volume
A VDO volume contains two parts: UDS and VDO
The UDS part includes the name and location of each block to support the block deduplication
The VDO part includes the VDO volume data and metadata
For more information, refer to the Deploying VDO chapter in the Red Hat Enterprise Linux 8 Deduplicating and Compressing Storage Guide at https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/deduplicating_and_compressing_storage/deploying-vdo_deduplicating-and-compressing-storage