SWSoft offers an innovative, low-overhead approach to server virtualization
If you think of server virtualization in terms of VMware, SWSoft Virtuozzo will turn that thinking around.
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.
Ease of use (25.0%)
Overall Score (100%)
|SWSoft Virtuozzo for Linux 3.0 (32-bit)||9.0||9.0||10.0||9.0||9.0||9.0|
Looking for the missing free copy icon? It's been replaced. There's a new direct link that works like a...
Supreme Court's decision is bad news for developers targeting the U.S. market, who will now have to...
The transition from command line to line-of-command requires a new mind-set -- and a thick skin
Windows diehards take note: Win10 is more than a misguided mash-up of Win7 and Win8
Windows 10 isn't all Cortana and the Start menu, you know. Follow the ninjacat to find the best stuff...
Windows 10 is what Windows 8 should have been, but it has too many rough edges to attract Windows 7...
In the wake of the OPM data breach, another grim reminder of the folly of hobbling encryption