Virtual Data Optimizer (VDO)

djzort

Member
Aug 8, 2013
29
1
23
So VDO is a kernel module that RedHat made open source and is now including in rhel. Its github is at github dot com/dm-vdo/kvdo

Looks very interesting, and likely a great addition to proxmox ve.

Thats all :)
 
  • Like
Reactions: Fabricio Ferrari
Hi,

looks interesting but I think we have to wait until it is in the upstream kernel, so everything will work properly together.
 
Found about this yesterday with the announcement of RHEL 7.5, tried to build the kernel module on Debian but it fails with an error similar to the one posted at github for opensuse.
So, I created a Fedora 27 VM, built there, created a volume and I must say I'm impressed!
I've been trying to reduce the space required for my backups, with ayufan's patch (gone?), with zfs on both proxmox and a freenas vm (needs too much ram), with the opendedup appliance (promising but really unstable) and with btrfs and offline deduping (ok but why work twice?)
Can't wait to see this in proxmox, I'm seeing huge saving so far, and I've only assigned 2GB of RAM to the VM.

This is the nfs exported volume, my backup target
Code:
[faber@dedup1 ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vdo1        1007G   22G  934G   3% /mnt/vdo

And its contents:
Code:
faber@sys01:~$ sudo ls -lh /mnt/pve/dedup1/dump/
total 22G
-rw-r--r-- 1 root root 8.5K Apr 11 01:31 vzdump-qemu-100-2018_04_11-01_26_04.log
-rw-r--r-- 1 root root 4.6G Apr 11 01:31 vzdump-qemu-100-2018_04_11-01_26_04.vma
-rw-r--r-- 1 root root 8.5K Apr 11 01:39 vzdump-qemu-100-2018_04_11-01_33_58.log
-rw-r--r-- 1 root root 4.6G Apr 11 01:39 vzdump-qemu-100-2018_04_11-01_33_58.vma
-rw-r--r-- 1 root root 8.5K Apr 11 01:45 vzdump-qemu-100-2018_04_11-01_41_24.log
-rw-r--r-- 1 root root 4.6G Apr 11 01:45 vzdump-qemu-100-2018_04_11-01_41_24.vma
-rw-r--r-- 1 root root 8.0K Apr 11 01:52 vzdump-qemu-101-2018_04_11-01_47_05.log
-rw-r--r-- 1 root root 2.8G Apr 11 01:52 vzdump-qemu-101-2018_04_11-01_47_05.vma
-rw-r--r-- 1 root root 8.2K Apr 11 01:58 vzdump-qemu-101-2018_04_11-01_53_45.log
-rw-r--r-- 1 root root 2.8G Apr 11 01:58 vzdump-qemu-101-2018_04_11-01_53_45.vma
-rw-r--r-- 1 root root  11K Apr 11 02:35 vzdump-qemu-101-2018_04_11-02_25_26.log
-rw-r--r-- 1 root root 2.8G Apr 11 02:34 vzdump-qemu-101-2018_04_11-02_25_26.vma

How it looks inside the VM:
Code:
[faber@dedup1 ~]$ sudo vdostats --human-readable
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1        256.0G      8.5G    247.5G   3%           89%

And the real space used :
Code:
faber@sys01:~$ sudo ls -lsh /var/lib/vz/images/120
total 4.8G
4.8G -rw-r----- 1 root root 256G Apr 11 02:36 vm-120-disk-1.raw

I know as the backups are really close in time, they should be almost equal, and both VMs run Debian 9.1 so even more to dedup, but still, this is the best results I've had on all my tests with the lowest resources needed.
 
  • Like
Reactions: morph027
Updating on this, after a week of backups on the vdo target:

Code:
[faber@dedup1 ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
...
/dev/mapper/vdo1        1007G  608G  349G  64% /mnt/vdo

Code:
faber@sys01:~$ sudo ls -lh /mnt/pve/dedup1/dump
total 608G
-rw-r--r-- 1 root root  12K Apr 13 04:13 vzdump-qemu-100-2018_04_13-04_00_02.log
-rw-r--r-- 1 root root 4.7G Apr 13 04:13 vzdump-qemu-100-2018_04_13-04_00_02.vma
-rw-r--r-- 1 root root  12K Apr 15 05:17 vzdump-qemu-100-2018_04_15-05_00_06.log
-rw-r--r-- 1 root root 4.8G Apr 15 05:17 vzdump-qemu-100-2018_04_15-05_00_06.vma
-rw-r--r-- 1 root root  12K Apr 16 05:17 vzdump-qemu-100-2018_04_16-05_00_05.log
-rw-r--r-- 1 root root 4.8G Apr 16 05:17 vzdump-qemu-100-2018_04_16-05_00_05.vma
-rw-r--r-- 1 root root  12K Apr 17 05:18 vzdump-qemu-100-2018_04_17-05_00_04.log
-rw-r--r-- 1 root root 4.8G Apr 17 05:18 vzdump-qemu-100-2018_04_17-05_00_04.vma
-rw-r--r-- 1 root root  12K Apr 18 05:19 vzdump-qemu-100-2018_04_18-05_00_04.log
-rw-r--r-- 1 root root 4.8G Apr 18 05:18 vzdump-qemu-100-2018_04_18-05_00_04.vma
-rw-r--r-- 1 root root  12K Apr 19 05:18 vzdump-qemu-100-2018_04_19-05_00_03.log
-rw-r--r-- 1 root root 4.8G Apr 19 05:18 vzdump-qemu-100-2018_04_19-05_00_03.vma
-rw-r--r-- 1 root root  12K Apr 13 04:13 vzdump-qemu-101-2018_04_13-04_00_02.log
-rw-r--r-- 1 root root 2.8G Apr 13 04:13 vzdump-qemu-101-2018_04_13-04_00_02.vma
-rw-r--r-- 1 root root  12K Apr 15 05:16 vzdump-qemu-101-2018_04_15-05_00_02.log
-rw-r--r-- 1 root root 2.9G Apr 15 05:16 vzdump-qemu-101-2018_04_15-05_00_02.vma
-rw-r--r-- 1 root root  12K Apr 16 05:16 vzdump-qemu-101-2018_04_16-05_00_02.log
-rw-r--r-- 1 root root 3.0G Apr 16 05:16 vzdump-qemu-101-2018_04_16-05_00_02.vma
-rw-r--r-- 1 root root  12K Apr 17 05:17 vzdump-qemu-101-2018_04_17-05_00_02.log
-rw-r--r-- 1 root root 3.1G Apr 17 05:17 vzdump-qemu-101-2018_04_17-05_00_02.vma
-rw-r--r-- 1 root root  12K Apr 18 05:18 vzdump-qemu-101-2018_04_18-05_00_02.log
-rw-r--r-- 1 root root 3.1G Apr 18 05:18 vzdump-qemu-101-2018_04_18-05_00_02.vma
-rw-r--r-- 1 root root  12K Apr 19 05:18 vzdump-qemu-101-2018_04_19-05_00_01.log
-rw-r--r-- 1 root root 3.2G Apr 19 05:18 vzdump-qemu-101-2018_04_19-05_00_01.vma
-rw-r--r-- 1 root root  12K Apr 13 05:07 vzdump-qemu-102-2018_04_13-04_13_53.log
-rw-r--r-- 1 root root  64G Apr 13 05:07 vzdump-qemu-102-2018_04_13-04_13_53.vma
-rw-r--r-- 1 root root  12K Apr 15 06:57 vzdump-qemu-102-2018_04_15-05_17_06.log
-rw-r--r-- 1 root root  64G Apr 15 06:57 vzdump-qemu-102-2018_04_15-05_17_06.vma
-rw-r--r-- 1 root root  12K Apr 16 07:18 vzdump-qemu-102-2018_04_16-05_17_06.log
-rw-r--r-- 1 root root  64G Apr 16 07:18 vzdump-qemu-102-2018_04_16-05_17_06.vma
-rw-r--r-- 1 root root  12K Apr 17 07:20 vzdump-qemu-102-2018_04_17-05_18_19.log
-rw-r--r-- 1 root root  64G Apr 17 07:20 vzdump-qemu-102-2018_04_17-05_18_19.vma
-rw-r--r-- 1 root root  12K Apr 18 07:26 vzdump-qemu-102-2018_04_18-05_19_01.log
-rw-r--r-- 1 root root  64G Apr 18 07:26 vzdump-qemu-102-2018_04_18-05_19_01.vma
-rw-r--r-- 1 root root  12K Apr 19 07:28 vzdump-qemu-102-2018_04_19-05_18_46.log
-rw-r--r-- 1 root root  64G Apr 19 07:27 vzdump-qemu-102-2018_04_19-05_18_46.vma
-rw-r--r-- 1 root root  12K Apr 13 04:43 vzdump-qemu-154-2018_04_13-04_13_45.log
-rw-r--r-- 1 root root 4.6G Apr 13 04:43 vzdump-qemu-154-2018_04_13-04_13_45.vma
-rw-r--r-- 1 root root  12K Apr 15 05:52 vzdump-qemu-154-2018_04_15-05_16_17.log
-rw-r--r-- 1 root root 4.6G Apr 15 05:52 vzdump-qemu-154-2018_04_15-05_16_17.vma
-rw-r--r-- 1 root root  12K Apr 16 05:56 vzdump-qemu-154-2018_04_16-05_16_31.log
-rw-r--r-- 1 root root 4.6G Apr 16 05:56 vzdump-qemu-154-2018_04_16-05_16_31.vma
-rw-r--r-- 1 root root  12K Apr 17 05:58 vzdump-qemu-154-2018_04_17-05_17_42.log
-rw-r--r-- 1 root root 4.6G Apr 17 05:58 vzdump-qemu-154-2018_04_17-05_17_42.vma
-rw-r--r-- 1 root root  12K Apr 18 06:00 vzdump-qemu-154-2018_04_18-05_18_21.log
-rw-r--r-- 1 root root 4.6G Apr 18 06:00 vzdump-qemu-154-2018_04_18-05_18_21.vma
-rw-r--r-- 1 root root  12K Apr 19 06:00 vzdump-qemu-154-2018_04_19-05_18_13.log
-rw-r--r-- 1 root root 4.6G Apr 19 06:00 vzdump-qemu-154-2018_04_19-05_18_13.vma
-rw-r--r-- 1 root root  12K Apr 13 05:07 vzdump-qemu-162-2018_04_13-04_43_50.log
-rw-r--r-- 1 root root  13G Apr 13 05:07 vzdump-qemu-162-2018_04_13-04_43_50.vma
-rw-r--r-- 1 root root  12K Apr 15 06:33 vzdump-qemu-162-2018_04_15-05_52_35.log
-rw-r--r-- 1 root root  13G Apr 15 06:33 vzdump-qemu-162-2018_04_15-05_52_35.vma
-rw-r--r-- 1 root root  12K Apr 16 06:41 vzdump-qemu-162-2018_04_16-05_56_49.log
-rw-r--r-- 1 root root  13G Apr 16 06:41 vzdump-qemu-162-2018_04_16-05_56_49.vma
-rw-r--r-- 1 root root  12K Apr 17 06:44 vzdump-qemu-162-2018_04_17-05_58_50.log
-rw-r--r-- 1 root root  13G Apr 17 06:44 vzdump-qemu-162-2018_04_17-05_58_50.vma
-rw-r--r-- 1 root root  12K Apr 18 06:49 vzdump-qemu-162-2018_04_18-06_00_48.log
-rw-r--r-- 1 root root  13G Apr 18 06:49 vzdump-qemu-162-2018_04_18-06_00_48.vma
-rw-r--r-- 1 root root  12K Apr 19 06:49 vzdump-qemu-162-2018_04_19-06_00_52.log
-rw-r--r-- 1 root root  13G Apr 19 06:49 vzdump-qemu-162-2018_04_19-06_00_52.vma
-rw-r--r-- 1 root root 9.7K Apr 13 05:20 vzdump-qemu-170-2018_04_13-05_07_05.log
-rw-r--r-- 1 root root 7.4G Apr 13 05:20 vzdump-qemu-170-2018_04_13-05_07_05.vma
-rw-r--r-- 1 root root  11K Apr 15 07:01 vzdump-qemu-170-2018_04_15-06_33_21.log
-rw-r--r-- 1 root root 7.5G Apr 15 07:01 vzdump-qemu-170-2018_04_15-06_33_21.vma
-rw-r--r-- 1 root root  12K Apr 16 07:12 vzdump-qemu-170-2018_04_16-06_41_23.log
-rw-r--r-- 1 root root 7.5G Apr 16 07:12 vzdump-qemu-170-2018_04_16-06_41_23.vma
-rw-r--r-- 1 root root  12K Apr 17 07:15 vzdump-qemu-170-2018_04_17-06_44_11.log
-rw-r--r-- 1 root root 7.5G Apr 17 07:15 vzdump-qemu-170-2018_04_17-06_44_11.vma
-rw-r--r-- 1 root root  12K Apr 18 07:22 vzdump-qemu-170-2018_04_18-06_49_44.log
-rw-r--r-- 1 root root 7.5G Apr 18 07:22 vzdump-qemu-170-2018_04_18-06_49_44.vma
-rw-r--r-- 1 root root  12K Apr 19 07:21 vzdump-qemu-170-2018_04_19-06_49_11.log
-rw-r--r-- 1 root root 7.5G Apr 19 07:21 vzdump-qemu-170-2018_04_19-06_49_11.vma
-rw-r--r-- 1 root root  12K Apr 13 05:53 vzdump-qemu-180-2018_04_13-05_20_52.log
-rw-r--r-- 1 root root 5.0G Apr 13 05:53 vzdump-qemu-180-2018_04_13-05_20_52.vma
-rw-r--r-- 1 root root  12K Apr 15 07:37 vzdump-qemu-180-2018_04_15-07_01_07.log
-rw-r--r-- 1 root root 5.0G Apr 15 07:37 vzdump-qemu-180-2018_04_15-07_01_07.vma
-rw-r--r-- 1 root root  12K Apr 16 07:52 vzdump-qemu-180-2018_04_16-07_12_49.log
-rw-r--r-- 1 root root 5.0G Apr 16 07:52 vzdump-qemu-180-2018_04_16-07_12_49.vma
-rw-r--r-- 1 root root  12K Apr 17 07:54 vzdump-qemu-180-2018_04_17-07_15_41.log
-rw-r--r-- 1 root root 5.0G Apr 17 07:54 vzdump-qemu-180-2018_04_17-07_15_41.vma
-rw-r--r-- 1 root root  12K Apr 18 08:01 vzdump-qemu-180-2018_04_18-07_22_25.log
-rw-r--r-- 1 root root 5.0G Apr 18 08:01 vzdump-qemu-180-2018_04_18-07_22_25.vma
-rw-r--r-- 1 root root  12K Apr 19 08:01 vzdump-qemu-180-2018_04_19-07_21_23.log
-rw-r--r-- 1 root root 5.0G Apr 19 08:01 vzdump-qemu-180-2018_04_19-07_21_23.vma

Code:
[faber@dedup1 ~]$ sudo vdostats --human-readable
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo1        256.0G    166.4G     89.6G  65%           74%

Code:
faber@sys01:~$ sudo ls -lsh /vz/images/120
total 170G
170G -rw-r----- 1 root root 256G Apr 19 13:48 vm-120-disk-1.raw

I'll have to grow the reported size, as I'll hit my initial 1TB soon but so far, I'm loving VDO. I'll do some more tests, using .raw disks mounted via nfs, so I can run the vm on sys01 with the disk on sys02 and the other way around, using two target volumes but a single VM, migrating it from one host to the other when the backup is done. My idea with this is to minimize cluster network traffic, as this cluster is on soyoustart with my single network ports capped at 250Mb/s.
 
Hi.

Anybody trying ZFS (with compressing is OFF - just for CRC only) on VDO (compressing and dedup is ON )? Is it possible?
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!