Virtualization | QEmu | VMWare | Virtualbox
Virtualization makes so many things possible. One of these things is running Windows applications within another operating system, but it isn’t limited to that. Virtualization can be a great tool to consolidate needed services from several machines onto single machines. One physical machine can host many virtual machines. This can save money and space. Additionally, certain network services that are needed can be hosted in a quarantine of sorts, their own virtual sandbox. In other words your webserver and mailserver can be hosted in separate virtual machines without being exposed to each other. So, the vulnerabilities of one server platform doesn’t have to put your entire infrastructure at risk.
Cut IT costs and improve efficiency with data center virtualization.
Another reason I’m a big fan of virtualization is the ability to quickly get a new machine setup and prototype or test a new configuration. I’ve made use of virtual machines to test out ideas with openvpn configurations, opengroupware, among other custom server stack configurations. It’s possible to test out the new bleeding edge of software versions without risking your primary system and it’s data and settings with a virtual machine. I’ve used this to test out new versions of Ubuntu Linux as they come out. I’ve also made use of virtual machines to test booting live cds without having to reboot the entire system. Simply, boot up the virtual machine with the livecd (or live cd iso image) in the virtual cd drive and you can test out your live cd. This is one approach I made use of when I was working on my own custom live cd.
So, now that I’ve told you all of the fun benefits of server virtualization, let’s talk about the different ways it can be done and the advantages of each.
Xen virtualization. This is built into the Linux kernel these days and allows one Linux host to have many different Linux guest operating systems. Advantages are high performance and freely available. It can be tricky to configure although that is improving. Linux only guests. (Slicehost uses Xen virtualization, as does vps.net.)
VMWare virtualization. VMware has sold virtualization software for many years and they have a variety of different types of Virtualization software. Some is now available for free (free of cost, but not necessarily free as in open source.) Each of their free options have advantages and disadvantages. To chose one, you need to evaluate the goals of your project and see which set of features best fits. I’ve made use of VMWare in my own projects for my own equipment and for some of my clients.
VMWare Server – This is my current favorite for the features of all of VMWares free options. I’ll give a broad overview of what it allows you to do. You can have multiple guest virtual machines. Many supported operating systems, linux, unix (*nix as they say) as well as bsd’s are supported guests and the various flavors of Windows that are available. I have run Windows 98/95/xp/Vista/2000 all under vmware virtual machines. I’ve also run various linux distributions as well as FreeBSD, Netbsd and Open BSD all under the same host operating system. My current server setup is an Ubuntu 8.04 Hardy server host with VMWare Server version 1 and a NetBSD time server running as a guest as well as an old Mandrake install as a second guest. Both of those virtual machines run at bootup. This is something that VMWare server allows you to configure. Each of the virtual machines have their own address on the local network and appear to any other machine as if they were running on their own dedicated hardware. I also have a few testing Virtual Machines on this system, but they are not configured to run at boot. One of the disadvantages of VMWare server is that it is not geared as much towards desktop use. You can make use of VMWare server virtual machines to interact with as a desktop, even running the VM in a full screen mode that can make you forget the supporting host operating system. However, 3d acceleration is not going to be accessible, the entire structure is tuned more towards network and server applications, so the desktop experience may be a little slower than some of the other approaches. It’s easy to install and setup, and VMWare server let’s you create new Virtual Machines fairly easily. The latest version is VMware server 2.0.
VMWare Player – VMWare player is a great light, free Virtual Machine player that is tuned a bit more for desktop usage. I believe 3d acceleration may be possible with VMWare Player. The same range of operating systems are supported under Player as Server. One of the biggest limitations is that you cannot create virtual machines easily with VMWare Player. (It’s possible to create a new virtual machine, but it’s involved and not for beginners.) The second big limitation is that there isn’t an easy way to run a virtual machine at system boot. It more or less requires someone to click and launch the virtual machine. In other words, if you want to setup a Virtual Machine as a “service” that just always comes on with the computer, then this is not your choice. The benefit is better desktop responsiveness.
VMWare ESXi – This is the latest free offering from VMWare and installs from a CD onto bare metal hardware. The biggest catch is that it’s limited to server class hardware and you will need to check the requirements to see if you have compatible hardware. It provides you an Enterprise Class virtualization platform. I haven’t tested VMWare ESXi out yet.
VMWare Workstation – VMWare Workstation is a non free option from VMWare that combines some of the best of the options from the free releases. You can easily create Virtual Machines, there is the same list of supported operating systems as Guests. 3d acceleration (hardware) is possible in the most recent release and although it is tuned more for desktop use, networking is certainly possible. Running a guest operating system at bootup is a bit easier with Workstation.
QEMU – Qemu is a light cross platform emulation and virtual machine software. Qemu is open source and in spite of it’s relatively small size it can give some quite good results for virtualization. I have pretty much used qemu just for demonstrating live cds on various systems and a bit of in house testing.
Virtualbox – Virtualbox is a nice light cross platform emulation and virtual machine software. It started out as a project by Innotek, then was purchased by Sun and now Oracle owns the code. Now, there is an open source edition and a binary only edition. The main differences are the binary only edition supports usb int he virtual guest and also usb devices over rdp. The binary only version is freely available for download although there is a personal use/evaluation use license. Unfortunately at this moment there appears no pathway to purchase a licensed version. The open source version does not have usb support. Windows XP runs quite well in virtualbox (very snappy in fact.) It compares quite favorably to something like vmware server. I have found that older Windows releases do not work as well within virtual box (not optimized as well.)
Virtual machines within virtualbox can be accessed via rdp on their host machine or through the gui. It’s possible to launch virtual machines in headless mode as well.