In Red Hat Enterprise Linux 7.5, we’ve introduced virtual data optimizer (VDO). VDO allows you to save disk space and reduce replication bandwidth with the help of data compression and data deduplication.

In this blog post I want to walk you through how you can use the cockpit Web admin console that comes with Red Hat Enterprise Linux, to set up VDO and save substantial amount of space for your virtual machine images.

If you run a lot of VMs of the same OS, then you typically have a lot of bits that are the same, over and over again. A lot of the data that makes up the operating system is identical between the hosts. As your deployment grows with new VMs, the more storage you need to buy, even though a lot of the bits in the VMs are the same.

As you can see, I run a couple of Virtual Machines on this host.

If we go over to the storage page, we see that we’re using 100 GiB gigabytes to store these images. Running short on disk space.

So let’s try and see what happens if we move the VM images to a VDO device instead.

We create a new VDO device and select a empty block device.

We set both compression and deduplication.  Most of the time this is the best choice, but  both of these features have overhead. For example, compression consumes extra CPU resources.  If data being stored is already compressed, as is the case with multimedia file formats (jpg, gif, mp3, mp4, etc..) , then the compression option should be disabled.  Similarly textual database content (such as XML data) compresses well, but there aren’t likely to be duplicate 4K blocks in a single database instance. For the primary database application server, turning dedupe off and enabling compression can boost performance.

We then create the filesystem, and mount it on the temporary location /media/temporary/.

Then we copy the files from /media/images to /media/images2/.

Then unmount /media/temporary and mount the disk on /var/lib/libvirt instead.

On the filesystem level, the logical space is still 100 GiB, but if we dive in to the VDO details page, we see that the physical size only takes up 2.6 GiB, making a space saving of 97%.

In this case, it’s possible to grow the logical size up to 600 GiB.

You can try this yourself on a Red Hat Enterprise Linux 7.5 server, by installing the package cockpit, that gives you the web console, and log in to it with your web browser at https://<ip-address>:9090.

Learn more about cockpit administrator console and four troubleshooting tasks for Linux experts and beginners in this webinar April 19th: REGISTER.