Friday, December 15, 2006

Fun with Virtualization

No, I'm not talking about some aspect of the Matrix, or anything influenced by William Gibson. A few weeks ago, I installed the vmware server on my Ubuntu Linux box to see what was possible. Installation was painless, as vmware is available from the repositories. Thus, installation was only a simple `apt-get' away.

What does vmware allow you to do? In simple terms, it allows you to host one or more different operating systems (OS) while running the host OS. In my case, the host OS is Ubuntu Linux, but it could be Windows system as well. To download the vmware server, visit this page.

Once you install the virtual server software, the next thing to do is to decide exactly what you'd like to run. I decided that creating a Windows XP virtual machine (VM) would be a good first step. To do so, you specify a few options including what type of network interface the virtual machine will use (I chose to give the virtual machine its own specific ip address), hardware availability, and the size of the virtual machine's hard drive.

Once this is done, slip your Windows XP installation media in the CD-ROM drive and `boot' the virtual machine. If you haven't screwed up anything too badly, installation of the OS should proceed as normal.

I then went on to install Apache on the XP VM, and setup an ISAPI application which is normally deployed on IIS to see how it would perform. Everything worked as expected, and the performance of both systems was pretty respectable. My linux box only has 1 gigabyte of RAM, and I think that another gigabyte would be most helpful if I were to leave the VM up and running full time.

Once you are done working with your VM, you can suspend it (like hibernating a laptop) and when you restart the VM next, everything will be as you left it. Pretty slick!

So, what are practical applications for vmware? As in my example above, I could see people installing a VM of a different OS on a host OS to get functionality not currently available without installing another box.

Also, since the VMs are simple files in the filesystem, it makes backups and restores trivial. The VM sees identical hardware, no matter what actual hardware is used in the host OS. Thus, if one server goes down, simply copy a backup VM to another machine, and you would be up and running in no time.

Testing is another area where I can see VMs playing a prominent role. Instead of having 5+ boxes that take up a lot of space, energy costs, and maintenance, you instead have one sysem which hosts the other test environments. Start up one VM, test, and shut it down. Move to the next VM, etc.

Finally, there are already many vmware appliances available. Examples include a Windows 2003 server trial edition, various linux distributions, mail server suites, LAMP stacks, etc. It makes trying a new linux distro trivial, which is another bonus.

Are any of you using them in innovative ways?

No comments:

Post a Comment