Some 14 years ago, a company called SWSoft — the one behind the Parallels Windows virtualization technology so often associated with Mac — developed a virtual private server technology. It predated the deployment of VM-based servers in the cloud by several years, and was one of the first to be offered to customers as a hosting service rather than a stack of licensed software. It was called Virtuozzo, and deserves a measure of credit for giving rise to the cloud.
There’s something else Virtuozzo would like to receive some credit for: containers. Certainly, it did present an early framework for compartmentalizing and isolating Linux processes — they weren’t control groups (cgroup) yet, but it had the same goal in mind.
Back in May, after Parallels spun off Virtuozzo as a company unto itself, it announced its intention to join the Open Container Initiative (OCI), and to broaden its focus to incorporate more modern technologies. Now, with the release of version 7 of its staging platform, Virtuozzo is aiming to address one of the key integration issues facing infrastructure specialists: integrating virtual machines with modern, Docker-style containers, while at the same time integrating the storage volumes that both will utilize simultaneously.
“Container users can leverage dozens of Linux distributions in a container, and most Linux applications work fine and even faster in containers in comparison with VMs,” writes Virtuozzo Senior Program Manager Vladimir Porokhov, in a company blog post this week. “However, for an application that needs to use a custom kernel module depends on a kernel feature that isn’t in the host kernel, or simply designed for a different OS (like Windows), it won’t work in a Linux container. In these cases, one can use virtual machines and avoid any OS or application compatibility issues.”
Virtuozzo 7 is not an orchestrator, like Docker Swarm, Kubernetes, or Mesosphere DC/OS — that is to say, it does not schedule workloads, oversee their operation, and migrate them from place to place. What it does offer is a common platform for staging both KVM hypervisor-based workloads and OCI container workloads on capacity that has been pooled together from bare metal servers. Those workloads may run on their own operating systems. Virtuozzo has not certified minimalistic operating systems yet, such as CoreOS or Microsoft Nano Server, although it has certified several 64-bit Linux distributions, along with their associated Linux containers (CentOS 7.x and 6.x; Debian 8.x and 7.x; Ubuntu 16.04 LTS, 15.10, and 14.04 LTS; OpenSUSE 42.x; Fedora 23; and its own Virtuozzo Linux 7.x and 6.x), as well as Windows Server 2012, 2012 R2 and 2008 R2 SP1.
Container staging takes place on Virtuozzo’s own container platform, called OpenVZ. This is the evolved form of the original platform for virtual private servers. As such, OpenVZ treats the context of a Virtuozzo container differently from a Docker or an appc container (CoreOS), and that might make a difference in whether data centers care to try out Virtuozzo’s co-existence plan. Specifically, a container and a VM are both servers in the OpenVZ environment, whereas with Docker, a container represents an application.
So Virtuozzo treats both with equal respect, so long as you’re willing to concede that a container is a complete server image, rather than the minimum dependencies needed to run an application — what Docker enabled it to be. According to Virtuozzo 7’s documentation [PDF], unlike Docker, Virtuozzo containers truly are virtual machines, rather than virtualized resources hosted by the underlying operating system that’s also hosting the container engine.
Still, this does enable one feature that Docker containers — as well as any format that’s hosted by a container daemon — had some difficulty in implementing, even now: persistent storage volumes. In Virtuozzo, there are simple storage devices that are networked together in clusters, and addressable using NFS.
This methodology could conceivably change over time, as Virtuozzo adopts more modern processes. What it has yet to demonstrate is scalability — the virtue displayed by more microservice-oriented container systems of replicating services on-demand, and eliminating them from the system when no longer needed. Conventional virtual machine environments are scalable, but only by replicating whole servers and employing load balancing, which does not always bode well for driving up utilization.
The company uses the term “hyper-converged” a bit loosely. Certainly Virtuozzo 7 is far from an orchestrator that pools compute, storage, and networking fabric at an infrastructural level, like Cisco’s concept of hyper-convergence, or HPE’s “composable infrastructure.”
But the more that is seen on Docker’s playground, this could change in short order, making it a viable option in a world where integration is first and foremost on the CIO’s priority list.