The advent of ubiquitous server virtualization is one of a relatively small number of technologies that can be extremely useful to companies of any size–even a company of a single employee. While full-blown virtual server farms can cost big bucks, the barrier to entry for smaller projects is virtually nonexistent.
There are plenty of free virtualization frameworks available that offer a surprising array of features for no cost other than the time required to find and install them. They’re not at the same level as the expensive big boys, but you might find that they’re perfectly suited to a specific project or can be leveraged to perform testing or proof-of-concept tasks without hitting the budget.
Back-Room Virtualization
The main thrust of the virtualization movement is to virtualize server resources. There are a variety of reasons for moving in this direction, including the availability of cheap multi-core servers, greater levels of redundancy, ease of management, and faster backups, to name a few.
Some of the higher-end features of server virtualization are only available with commercial solutions, but there are very capable free solutions that can be of significant benefit in any organization.
VMWare ESXi
ESXi is a great way to run several production virtual servers on a single physical server, as long as it’s understood that if the physical server fails, those virtual servers will be down until it is fixed. The upside of that is that you can boot the virtual servers on a different physical server at any time.
Microsoft Hyper-V
Microsoft’s Hyper-V solution isn’t technically free, even though it’s offered as part of Windows Server 2008. In order to run Hyper-V as intended, you must purchase the underlying server OS first. However, by buying a copy of Windows Server 2008 R2 Enterprise, you can legally run up to four virtual servers with Hyper-V on that physical host with a single license.
Linux Options
More advanced users, or those comfortable with Linux may want to investigate the Xen open-source server virtualization project at xen.org. Xen runs on Linux and the configuration and maintenance is more involved than other free solutions, but Xen offers features more inline with expensive commercial products than most other packages, such as live migrations of running virtual servers from one host to another. It also supports Windows, Linux, and FreeBSD virtual servers.
And for those that are looking to do Linux-only virtualization, open-source tools like OpenVZ are available that can run dozens of paravirtualized Linux servers on a single host. Paravirtualization differs from “normal” virtualization in that it does not emulate hardware to the virtual server, but rather runs the virtual server in a walled-off subset of the physical server. In this way, you can build many virtual servers with little performance loss, but those virtual servers must be running Linux as well.
As with any server, it’s okay to test and experiment with desktop-class hardware initially, but for production use, you should use a server-class system that has redundant hard drives and, ideally, redundant power supplies. While server virtualization has many advantages, without the enhanced reliability features found in commercial offerings, it’s possible that the failure of a single physical server can result in an outage that takes down many virtual servers.
Two Sides of the Coin
While the main focus of corporate virtualization plans focus on the server side of things, there’s plenty of action happening on the desktop virtualization end as well. Desktop virtualization in this sense is represented by software that runs on a desktop or workstation system, and is generally used to run other operating systems as desktops or workstations.
An example might be using a desktop virtualization application to run several copies of Windows XP, all running on Windows 7 installed on a physical desktop machine. Of course, you also can run Linux, Windows Vista, or any number of other operating systems the same way. This is not the same as server virtualization, though it’s technically possible to run server operating systems in this manner.
The uses for this technology vary widely. One popular example is to house several different installations of Windows XP or Windows 7 as virtual systems on a desktop machine, each of which may represent a desktop system in use by a subset of the users in the organization. The virtual systems are loaded with the applications found on the actual user’s systems, and configured similarly. As security patches and software upgrades are released, they can be tested in this ”sandbox’ environment to make sure that there are no problems encountered with applications or other proper operation of the desktop.
By using the snapshot features, multiple tests can be conducted quickly and easily, without the need to rebuild the machine to a clean slate every time. This can be an immense time saver all by itself.
Another potential benefit of a desktop virtualization application might be testing new operating system versions, such as in a planned migration from Windows XP to Windows 7. Using the same snapshot technology, it’s easier to test application support and installation when you can click a single button and reset to a clean installation at a whim.
Another common scenario is to provide a place to run and maintain legacy software that cannot run on more modern operating systems and may have been replaced, but is still required for some reporting tasks, or any number of other reasons. Rather than keep that application installed on a physical system that could develop problems, you can install it on a virtual desktop machine that can be run on any number of systems and easily backed up to tape.
There are commercially-available desktop virtualization applications available, such as VMware Workstation for Windows and Linux, and Parallels for Mac and Linux. Both offer a bevy of features and options, but also come with licensing fees. On the open-source side, there are projects like VirtualBox that have many of the most useful features available for no cost.
Never Too Late to Start
The first stage of any virtualization project is to familiarize yourself with the available concepts and tools. Many of these freely-available options can go a long way towards that goal with no capital outlay. There are few physical resources required to take the initial steps–in many cases, a spare laptop or desktop might be perfect for the job, or even a recently-retired server. If you do take these steps, note that RAM is very important to any virtualization scenario, so add as much as you can to whatever hardware you choose.
Whether you’re interested in desktop or server virtualization, there’s no time like the present to dip the proverbial toe in the water. With a bevy of feature-packed free solutions readily available, you’ll find that getting into the virtualization game has never been easier.