Parallels (formerly SWsoft) has a 'bare-metal' server hypervisor in development, but this remains in beta testing and is only properly available for the Apple Mac. However, it does have a hypervisor alternative, in the form of Parallels Virtuozzo Containers which takes a somewhat different approach to compared to VMware, Microsoft and Citrix products, yet delivers very similar results.
The most obvious difference is the need for a host operating system on which to run Virtuozzo Containers. This can be Windows Server 2003, Red Hat Enterprise Linux or one of several other Linux distros, with support for both 32-bit and 64-bit implementations in each case. However, unlike most hosted virtualisation products (and hypervisors, for that matter), the Parallels software doesn’t attempt to emulate the physical machine. Rather it virtualises the host OS, creating multiple virtual environments — referred to as 'containers' or 'virtual environments' (VEs) — within which applications can be run independently of each other.
There's only ever the one operating system on the server, and many of the files are shared, but each container gets its own memory space together with registry, user and other settings. The end result is what, from the application perspective, appears to be a separate and self-contained instance of either Windows or Linux.
Unlike hardware virtualisation, you can’t mix different platforms together, but the virtualised OS approach does deliver similar levels of performance with no need for custom drivers. There are a number of other advantages. Because many of the supporting files and libraries are shared, for example, storage overheads are much lower. This in turn enables Virtuozzo Containers to host a lot more VEs per server (hundreds) than you can virtual machines (VMs). Containers can also be deployed a lot more quickly with no need to install a new OS every time. Added to which by patching the host you can immediately patch all of the containers, with clear benefits in terms of both security and the amount of management required.
The Virtuozzo package also features dynamic resource allocation and load balancing facilities, with no limits on the number of resources that can be allocated to a VE. There's also built-in support for high-availability failover, through integration with Microsoft Cluster Service (MSCS) or Red Hat Clustering, along with live migration of containers between host servers for maintenance and load balancing.
Installation & setup
Virtuozzo Containers installs much like an ordinary server application. Following Parallels' recommendation, we loaded it onto a system running Windows Server 2003 R2 and using a new install with no patches or other applications installed — the idea being to avoid potential conflicts with non-standard DLLs and other components.
The setup routine took about 30 minutes and was pretty painless, after which we had a choice of two management tools: the bundled Parallels Management Console, which we ran locally to manage the newly installed server; and an optional web-based Parallels Infrastructure Manager, which can be used to manage multiple Virtuozzo servers and other Parallels products remotely.
An integrated console is bundled as part of the Virtuozzo Containers package to manage the local server and its containers.
The web-based Parallels Infrastructure Manager can be used to manage Virtuozzo Containers server and other Parallels products remotely.
We preferred the latter, but both proved straightforward to understand and navigate. In practice, we found creating and managing containers very similar to working with virtual machines except that, because you don't need to install an OS every time, it's a lot quicker. Processor, disk and networking resources can be allocated as required, with OS and application templates to further help speed up and simplify the process. Indeed, if required, end users can be left to create and manage containers themselves using another web-based tool — the Parallels Power Panel.
There's no guest OS to install, so containers can be created very quickly with minimal disk overheads.
Delegated management via the Parallels Power Panel enables users to manage containers themselves.
Containers can be started on demand or when the server boots, and to all intents and purposes look and feel like separate instances of the host OS. On our Windows server, for example, we were able to connect using remote desktop and install and run applications just as though we were connecting to a 'real' server. You can even hook into Terminal Services and Citrix add-ons to virtualise application delivery within the Container environment.
Tools are provided to keep an eye on container status and monitor how resources are being consumed, with email alerts for when thresholds are breached. Container backup is built in as standard, along with tools to help migrate physical and virtual workloads to the container environment.
Although we couldn't generate enough load to stress-test the software, there seemed to be little difference in performance terms compared to the various hypervisor alternatives and we were very impressed at how well it all worked. On the price front, the Parallels product does initially seem a little expensive with no giveaways like VMWare's ESXi, for example, or the free Hyper-V and Xen servers. But by the time you factor in all the management, high availability and other extras needed to make best use of those products there's not much in it, with Virtuozzo Containers a much more complete solution.
Finally it's worth mentioning that the company has plans to release a hybrid implementation that will integrate its new hypervisor and enable workloads to be migrated between containers and virtual machines to suit different demands.