Lately, for a spare project, I have been tinkering with a technology known as OpenVZ. It is (based on my limited understanding) a container-style virtualization technology. A bit of the background is available at various places (http://en.wikipedia.org/wiki/OpenVZ) online (http://wiki.openvz.org/) found via Google, but in a nutshell it is OS virtualization which is different from machine virtualization. One difference is that instead of virtualizing the entire box in the rack (meaning the hardware on up) it virtualizes ONLY the software which has some large benefits, a big one being the footprint of the VM itself. Instead of requiring resources (monetary as well as computer cycles) to virtualize the entire machine’s low level hardware processes the virtual machine is simply a collection of processes within the host itself.
A booted SLES 10 VE/VPS (the abbreviations synonymous with VM for our purposes, but we’re not virtualizing a machine so the ‘M’ in VM doesn’t make much sense; thus, VE/VPS are abbreviations used instead) takes a whopping 4.5 MB…. yes, four and one half megabytes. Feel free to build yourself a full VM or a full SLES 10 box and compare that and see the immediate benefits. The full template from which the VE is created downloads in (typically) less than 200 MB and SLES 10′s template extracts to less-than 300 MB on the hard drive. Adding in software to the VE increases its size dramatically because the software that actually needs to run (the point of the box being built in the first place) is a large proportion of the size of the VE instead of a few megabytes among gigabytes of OS.
The downside to this arrangement is the difficulty in virtualizing things that are not compatible with the host…. so on a Linux-based host you run Linux-based VEs though not necessarily the same Linux distribution in those VEs (SUSE, Debian, Ubuntu, CentOS, etc…. all on the same host). All in all that doesn’t seem like a huge tradeoff, especially since most companies would rather standardize somewhat than spend resources learning every OS or distribution under the sun. Also the lightweight nature of this setup means you can do VE migration, while the VE is running, from one box to another (similar to Xen migration or vmware VMotion stuff); HOWEVER, you can do it WITHOUT shared storage via the wonders of SSH. I’ll get into that more in another article but on to the point of this one.
What are the requirements for virtualization? What is the business case for most people? Is the desire an environment made for web serving, another for mail serving, another for eDirectory installations, another for file sharing? In a business case is there much desire to virtualize an entire machine (hardware, drivers, etc. etc. etc.) or is the desire to virtualize services?
Please chime in and let me know. I’ll be doing a few more articles on OpenVZ in the near future which I think will be interesting to anybody currently doing virtualization (the OpenVZ performance is awesome…. you literally will not believe me until I show you the numbers). The more information I get before I continue the better I can tailor it to the interests of those who respond; the squeaky computer fan will get the grease as always.