Sandbox-style virtualization and process separation runs only so deep. To gain more independent operating system instances and run, for example, Windows, Linux and Solaris 10 on a single box, youll need to turn to full-machine virtualization.
The biggest name in this space is VMware Inc. The company sells a variety of virtualization options ranging from VMware ESX Server, a Linux distribution tailored to run operating system instances, to VMware GSX Server, which enables the same thing but does so from atop Windows or Linux distributions.
Microsoft Corp.s Virtual Server 2005 works in much the same way, although it requires Windows as a host operating system and does not specifically support non-Microsoft operating systems as guests.
Qemu is an open-source emulator project that does the same thing, but its quite a bit slower than all VMware products.
User Mode Linux, a port of the Linux kernel that makes it possible to run a Linux guest as a process on a Linux host, provides a level of separation similar to what VMware offers but is limited to Linux guests running on Linux .
Xen, an open-source project, also allows separate operating systems to run on a host x86 system, although, currently, the kernel of the guest operating system must be modified to run with Xen.
Virtualizing the entire machine provides great flexibility—you can pair services with your choice of operating system and application stack, and everything can be optimized to best suit the service youre deploying.
Virtual machines present applications with an abstracted hardware layer, which makes it possible to build an operating system instance that can then be run on different types of hardware without driver issues.
Because virtual machine partitions exist as files on the host machine, they can be moved and copied easily, which makes them a good fit for disaster recovery or for deploying multiple instances for service failover.
The biggest downside of this approach is performance. Emulating a whole machine contributes significant processor overhead, and complete operating system instances require more storage and memory than does something such as a Solaris Container.
Also, fuller virtualization renders the guest instance less transparent and less subject to close management by its host.
Although operating system virtualization brings definite management benefits, including potentially fewer physical systems to care for, these technologies present management challenges as well. Virtualized operating system instances and application instances still require care and feeding, such as security updates and bug fixes.
For these chores, good software management tools that are accessible from a command line make life much easier. Weve had success using Debian GNU/ Linux and its APT (Advanced Packaging Tool), which works well over SSH (Secure Shell) sessions for providing remote access to virtual instances.