If you think of server virtualization in terms of VMware, SWSoft Virtuozzo will turn that thinking around.

SWSoft Virtuozzo for Linux 3.0 (32-bit)
SWSoft, swsoft.com/
|
Excellent 9.3 |
 |
| criteria |
score |
weight |
| Ease-of-use |
10 |
25% |
 |
| Manageability |
9 |
25% |
 |
| Performance |
9 |
15% |
 |
| Setup |
9 |
15% |
 |
| Configuration |
9 |
10% |
 |
| Value |
9 |
10% |
 |
|
 |
Platforms: Red Hat, Fedora, Suse, and CentOS
Cost: $1,000 per CPU and per management station
Bottom Line: SWSoft really has its ducks in a row with Virtuozzo for Linux 3.0. It’s a well-designed and well-implemented virtualization
solution that comes at a surprisingly low cost. Because it’s not true hardware virtualization and relies heavily on the host
OS, it’s not for everyone, but it’s an outstanding choice for companies such as hosting providers and large infrastructures.
|
 |
About our Reviews and Scoring Methodology
|
|
|
|
Whereas VMware virtualizes and emulates the hardware layer, Virtuozzo runs with the native OS on the host server and creates
VPSes (virtual private servers), by generating chroot jails for the host. It then tightly controls the network and kernel
layers to deliver packets correctly and to handle disk, memory, and CPU quotas.
I looked at Version 3.0 of SWSoft’s Virtuozzo for Linux. First released in 2001, Virtuozzo for Linux has come a long way,
and this version has a lot to offer, not the least of which is the v2.6 kernel base -- better late than never.
SWSoft’s approach to server virtualization has some definite benefits over VMWare’s. Among them, it requires much less overhead,
so more virtual servers can be run from a single server without noticeable performance degradation. Further, the management
of the servers is simpler.
On the other hand, it’s impossible to run Windows virtual servers on a Linux host with this version of Virtuozzo -- and vice
versa -- and each VPS is much more dependent on the underlying host OS than with VMware.
Also, all VPSes running on a single host platform must run the host kernel, which is a highly customized Linux v2.6.8. This
reliance on the host OS renders Virtuozzo much less attractive for some QA and development work. It makes the solution more
alluring to hosting providers and large infrastructures, however, as a single server can handle more VPSes, and the management
tools are quite good. OS and app templating features alone make Virtuozzo a big time-saver.
Virtuozzo is capable of running different Linux distributions on a single host. Thus, for example, it’s possible to run CentOS,
Red Hat, and Suse VPSes on a Fedora Core 4 (FC4) host. A lot of low-level masking makes that possible. For instance, SWSoft
has customized the host OS kernel to function with each of the supported OS distributions, and installing a new distribution
template really installs a complete distribution under the /vz partition.
Subsequent VPS builds of that distribution are then created in chroot-like jails with almost every file created as a symlink
to the base distribution path. Thus, a brand-new VPS consumes only 100MB of disk, whereas each virtual server under VMware
requires a full, generally multigigabyte, installation.
When any file is added to or modified within a VPS, the change is made locally, not globally, and any altered files are first
unlinked from the base distribution. To prevent tampering with the host OS, certain tools such as lsmod -- which normally
shows all kernel modules within the running kernel -- are symlinked to the true executable, which simply returns a successful
exit code.
The templates Virtuozzo provides are broad in range, though by no means complete. Fortunately, SWSoft has provided plenty
of tools for admins to roll their own templates, which is generally as simple as providing a pointer to a standard RPM (Red
Hat Package Manager) for any given distribution, or simply a directory of files. After the template is created, it can be
applied to one or more VPSes in a single command.
Also present in the management console are control panels for quickly modifying Apache and Sendmail configurations on a per-VPS
basis, and monitoring panels for each VPS, complete with Windows Performance Monitor-style live-utilization graphing. Very
cool.
Building the box
A likely scenario for production use of Virtuozzo is on quite high-end hardware, so I did my tests on an HP ProLiant DL585
with four dual-core Opteron 852 2.4GHz CPUs, 16GB of RAM, and 100GB of local RAID5 storage. (I tested the 32-bit version of
Virtuozzo, as the 64-bit wasn’t available.)
I built the server with a stripped-down 32-bit installation of FC4, assigning disk partitions as described by the install
guide. This essentially boils down to a small root partition, no boot partition, and a large /vz partition to hold the VPS
data.
Next, I updated the OS to current and ran through the Virtuozzo installer. This update is a relatively simple affair that
installs the custom kernels for both SMP (symmetric multiprocessing) and UP (uniprocessing) support, as well as an enterprise
kernel that conforms to the bigmem-based kernels available from Red Hat. The installer also prepared the /vz partition to
host the servers, installed the various OS and application templates, and prepared the required management VPS.
I then installed the management console on my Fedora Core 3 workstation and connected to the management VPS. The console is
delightfully usable, offering an intuitive interface for managing dozens or hundreds of VPSes. Host clustering management
is supported. Creating a new VPS proved very simple. Nearly every VPS option can be preconfigured in a template, and VPS creation
can be fully automated. .
All the GUI commands have their roots in the CLI, and an XML API is available, so custom front-end application interaction
with Virtuozzo is very straightforward.
I then created 100 VPSes on the DL585. First selecting a VPS template for FC4, and then specifying that I wanted to create
two VPSes with the base FC4 distribution, all the development tools, and php4, I was able to determine the CPU, disk, network,
and RAM quotas for these servers, their network addresses, and root passwords.
When I was finished with the wizard, it took approximately two minutes for each VPS to get up and running. Next, I created
16 CentOS 4 VPSes in the same fashion, followed by 32 Red Hat AS 4 VPSes. All told, I easily reached the 100 VPS goal. In
fact, by the end of my testing, the four-way DL585 was running more than 300 VPSes. Impressive.
Running the numbers
In the Virtuozzo world, all VPSes run processes natively on the host, which means even though you’ll find the VPS’s processes
only in the local process table, the host OS will show them all. Thus, if each VPS is running Apache, the host OS will show
all those processes. In terms of performance, I found Virtuozzo introduced very little overhead. In a pure static Web-serving
test, I reached about 97 percent of the host systems’ throughput scores when running the same test against 100 VPSes simultaneously.
Virtuozzo isn’t a VMware-killer; it’s an entirely different approach to virtualization, and a very well-engineered solution.
Even the small shell-script tools provided with the solution are extremely well written, which is generally an indicator of
solid code overall. I could say a lot more about the product, were it not for lack of space. Suffice to say I’m quite impressed
with the new version from stem to stern.