Deploying VDO Data Reduction on Red Hat Atomic Host
All of the buzz about containers is a bit surprising to many people who’ve watched operating system technology evolve over the years. After all, many of the core concepts behind running isolated applications on a shared OS has been around on UNIX for over 20 years. So what’s so exciting? Well, to understand the container revolution you first have to look at Virtual Machines (VMs) and their impact on the data center.
VMs give you the ability to quickly and easily spin up complete virtual instances of an OS and applications. This can be extremely convenient, since you can quickly and effectively spin up isolated systems for test and deployment. VMs also provide excellent advantages in terms of load balancing and disaster recovery. Not enough juice on one server to handle all your VMs? Simply migrate some to a different server – you can do this transparently while the VMs continue to run! Need to recover from a hardware failure? Simply boot up a recent snapshot of your VM on a different host. It’s really that easy!
That brings us back to containers. Containers really stand out for situations where you want the isolation provided by VMs, but you don’t want the overhead. Consider when you need multiple instances of the same service — for example; it may make sense to have a pool of web servers that have load balancing between them. Because you’re just deploying services instead of full-blown virtual servers, there is less bandwidth required for deployment and less overhead in terms of hardware required to run the services. With containers what has changed in comparison to VMs is not the core underlying technology of isolating software on a single system, but rather the reduced footprint and easy of deployment .
So which should you use? Often, the best answer is to use both. This is why popular container hosting platforms such as Red Hat Atomic Host offer support for bare metal and VM install formats. This type of production deployment combines many of the advantages of both the VM and container infrastructures. Also, running containers within VMs is way to deploy software in public cloud services such as those provided by Amazon, Google, and Microsoft.
Both systems are fundamentally managing multiple copies of software. In the case of VMs, this includes the Operating System and applications. In the container case, it’s just the application content. But either way, by their very nature there is redundancy of data in these environments, and Permabit’s Virtual Data Optimizer (VDO) has built in deduplication and HIOPS Compression that allow it to eliminate that redundancy.
This is why, when I went to try out a VM and container configuration, I first installed Red Hat Enterprise Linux 7.3 along with the latest release of VDO 6 from Permabit. I then configured VDO on top of a storage device. From there it was a simple matter to use the virt-manager utility to configure an LVM volume for use with VDO. Now I was ready to install the Red Hat Atomic Host virtual machines, so I downloaded the appropriate image and loaded two instances of it as virtual machines into the volume group with virt-manager. Within the first Red Hat Atomic Host VM, I installed 10 containerized instances of MariaDB. Within the second VM, I installed 100 containerized apache webservers. Here’s a diagram of my deployment.
If I’d tried this with 110 VMs on my server, there is no way I could have gotten it all to run on my test machine, as it simply doesn’t have the resources needed. But because I was using containers, which consume fewer resources than a VM, I was able to fully make use of the available system resources.
Because of the deduplication and compression that VDO provides, I can add additional container instances or even additional VMs without having to consume additional storage. In over a week testing in my new environment, I consistently saw greater than 90% space savings. In the end, regardless of whether you deploy VMs, containers, or both, you can utilize your infrastructure more efficiently when Permabit’s VDO data reduction for Linux is installed.