
Virtuozzo virtualizes the OS by using an efficient shared file-based model to manage applications and resources. Essentially, it eliminates the translation layer required for emulating instruction sets of x86 machines and ultimately the emulation of CPUs.
Virtuozzo's host OS creates isolated partitions that act like virtual environments (VEs) on a single physical server. Unlike hypervisor-based VMs, Virtuozzo can build hundreds of VEs on a single physical server, each with the same properties of a physical machine.
Virtuozzo's VE advantage over VMs becomes clear when designing large-scale virtual infrastructures. Organizations that use VMs to consolidate a large number of physical servers into just a few physical servers will still need to use the same number of OS instances to run the same applications. Because VMs are fairly easy to create, the number of OS instances often can end up exceeding the original number of physical servers.
In contrast, Virtuozzo eliminates the need to maintain all of these OS instances because VEs work on top of single-host OSes. Organizations that use VEs only need to use one OS per consolidated physical server. The simpler architecture of the VE also has less performance overhead, so software engineers are more inclined to use it when running critical systems and enterprise-packaged applications.
Essentially, Virtuozzo extends multitasking and multithreading capabilities already included in modern OSes to create and control virtual environments. A unique CPU scheduler maintains execution priority based on the weight given to each environment. Unlike the encapsulated architecture used by VMs, VEs are simply a collection of processes that are managed from the native scheduler of a host OS.
Virtuozzo's host OS uses a dynamic resource-management technology that's not available on hypervisor-based products. Administrators can change the memory of a VE in realtime, while the environment and applications are running. With hypervisors, administrators have to reboot a VM to add more virtual memory.
Having the ability to allocate memory dynamically is extremely useful when running applications that have an unpredictable memory bandwidth. For instance, environments that are running databases and are not clustered can easily start lacking memory whenever large numbers of transactions surpass predefined settings. With Virtuozzo, the database environments can automatically receive memory in realtime once they reach a threshold.
Setting memory dynamically is quite simple in Virtuozzo. The software also provides a command-line interface and an XML API, which allows developers to integrate VEs with third-party monitoring tools. Setting up development environments inside VEs is only useful when working with a small group of developers and testers. Managing large-scale projects would require direct access to single physical machines, which is not easy to arrange in large organizations.
Like the other tools in this review, Virtuozzo can perform live migrations. But unlike the others, Virtuozzo does not require a SAN to transfer environments. Virtuozzo's live migrations will work on stand-alone servers with local disks.
In addition, Virtuozzo can perform large application updates and mass provisions across multiple environments at once.
Because Virtuozzo works with a single OS, CPU and file system caches are managed efficiently between VEs. Virtuozzo also uses a copy-on-write file system, which maintains all memory pages, OS files and application files as single instances. OS files are shared among environments using pointers to those files, instead of using copies.
Next: Virtual Iron Enterprise Edition
