VDO – Virtual Data Optimizer RHEL 8 De-Duplication capable

Virtual Data optimizer – manage kernel VDO devices and related configuration information.  VDO in RHEL 8 will provide much data savings.

VDO config is written in /etc/vdoconf.yml

  1. 1:10 ratio for VDO logical size Virtual machines, containers
  2. 1:3 for object storage
  3. Its Virtual disk optimizer
  4. Thin-provisioned storage
  5. Provides ultimate de-duplication and compression for storage space savings
  6. Best for cloud storage / container environments
  7. UDS index runs inside the kernel as the uds kernel module

VDO – Virtual Data Optimizer RHEL 8

# yum install vd0 kmod-kvdo

# vdo create --name=vdtest --device=/dev/sdb --vdoLogicalSize=200G
Creating VDO vdtest
Starting VDO vdtest
Starting compression on VDO vdtest
VDO instance 0 volume is ready at /dev/mapper/vdtest
# mkfs.xfs -K /dev/mapper/vdtest
meta-data=/dev/mapper/vdtest isize=512 agcount=4, agsize=13107200 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=52428800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=25600, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mkfs.ext4 -E nodiscard /dev/mapper/vdo-name
# udevadm settle

In Case of EXT4: /dev/mapper/vdotest /media ext4 defaults,_netdev,x-systemd.device-timeout=0,x-systemd.requires=vdo.service 0 0

Monitoring VDO FS

# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdtest 20.0G 4.0G 16.0G 20% 99%

Discard unused blocks regularly by starting below service

# systemctl enable --now fstrim.timer
Created symlink /etc/systemd/system/timers.target.wants/fstrim.timer → /usr/lib/systemd/system/fstrim.timer.

To start & stop particular VDO volumes

vdo start --name=vdotest
vdo stop --name=vdotest

To activate/De-activate VDO volumes

vdo activate --name=vdotest
vdo deactivate --name=vdotest

Check status of vdo

vdo status --name=vdotest

Enable / Disable De-duplication

vdo enableDeduplication --name=vdotest
vdo disableDeduplication --name=vdotest


vdo enableCompression --name=vdotest
vdo disableCompression --name=vdotest

To increase logical size of the VDO volume

# vdo growLogical --name=vdotest --vdoLogicalSize=new-logical-size

To increase Physical size of the VD0 volume

vdo growPhysical --name=vdotest

Remove VDO volumes

umount -f /dev/mapper/vdotest
udevadm settle
dmsetup remove vdotest
vdo remove --force --name=vdotest

run discard unused blocks manually

fstrim /media

Related Articles

Create & remove AWS keypair using ansible playbook

How hackers steal passwords

Monitoring web site URL using Nagios

More Linux tutorial

Thanks for your wonderful Support and Encouragement