|
virtual machines
Virtualization is an abstraction layer that decouples the physical hardware from the operating system to deliver greater IT resource utilization and flexibility.
Virtualization allows multiple virtual machines, with heterogeneous operating systems to run in isolation, side-by-side on the same physical machine. Each virtual machine has its own set of virtual hardware (e.g., RAM, CPU, NIC, etc.) upon which an operating system and applications are loaded. The operating system sees a consistent, normalized set of hardware regardless of the actual physical hardware components.
Building a machine using Virtualization
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 Webserving 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.
Virtualization allows multiple virtual machines
|