Preparing systems to use VDO
As mentioned earlier, VDO is a driver, specifically a Linux device-mapper driver, that uses two kernel modules:
kvdo
: This does data compression.uds
: This is in charge of deduplication.
Regular storage devices such as local disks, Redundant Array of Inexpensive Disks (RAID), and so on are the final backend where data is stored; the VDO layer on top reduces disk usage via the following:
- The removal of zeroed blocks, only storing them in the metadata.
- Deduplication: Duplicate data blocks are referenced in the metadata but stored only once.
- Compression, using 4 KB data blocks with a lossless compression algorithm (LZ4: https://lz4.github.io/lz4/).
These techniques have been used in the past in other solutions, such as in thin-provisioned VMs that only kept the differences between VMs, but VDO makes this happen transparently.
Similar to thin-provisioning, VDO can mean faster data throughput, as data can be cached...