September 2nd, 2009

There is a lot of buzz about “virtualization” these days, typically in the context of discussions concerning huge server farms. Virtualization can refer to many different things- the Wikipedia Entry offers a nice summary. It’s by no means a new concept and provides benefits at all scales, right down to the personal machine you’re using to read this blog.

The basic idea of a virtual resource- a virtual web server, virtual memory, a virtual machine- is that you use your existing hardware and software resources to create a new resource that you need. In a typical operating system, space on a disk drive is used to create the illusion that the system has more memory- virtual memory. On my web server, a single installation of apache software is home to six or seven different websites- virtual web servers. If you host your website and email with a provider like Cruzio, chances are that your “host” is a virtual machine on a server that is running a dozen or more virtual machines quite similar to yours. Kind of like the Matrix…

OK, so why do this? In the case of virtual memory it’s fairly obvious- we want to be able to have a whole bunch of applications running more or less simultaneously on our machines, and each of those apps wants memory. Fire up enough of them and eventually even your laptop with 4 GB of RAM needs to resort to using space on your disk drive to provide virtual memory. How about virtual web servers? Having a single, centrally maintained apache process that provides multiple virtual web servers allows me to share many common configuration settings and resources across all my servers while still letting me fully customize each web site. In the case of ISPs, virtual machines are a way for ISP’s to give their customers a “machine of their own” without having to install new hardware in a rack, and give it power, and a network connection, and air conditioning and so on. In this case virtualization can be a huge money saver and a fairly sound green strategy.

So, why am I particularly happy about virtualization recently?

I love my Ubuntu-based laptop. When I first got the laptop I immediately installed Ubuntu Linux alongside of Windows in a dual boot configuration. I figured I would occasionally need to boot windows for something. Well, it turns out that just about the only thing I find I need to boot Windows for is Adobe DreamWeaver, and I use DreamWeaver alot. Even if booting Windows were quick, that few minutes it takes to change environments can prove to be a real momentum killer.

A while back I had installed VirtualBox, a program that allows you to run virtual PC’s on your computer, to experiment with various Linux distributions. Once VirtualBox is installed, you use its control panel to create virtual machines, then install the operating systems on them from CD or whatever, almost exactly as you would with real machines. The installed OS’s are called “Guests”. Last week while I was waiting for Windows to boot so that I could run DreamWeaver, I decided I should try Windows Vista as a VirtualBox guest. I installed it from CD and it’s been working like a charm. I deactivated my “real” copy of DreamWeaver, installed and activated it on my “virtual” Windows laptop. Now when I need DreamWeaver I start my virtual Vista laptop, fire up DreamWeaver on it and do what I need. When I’m done I use the VirtualBox control panel to pause my virtual Windows machine. If I need it again I just resume it. I haven’t had to reboot to change operating systems since, which makes me (virtually?) happy.

If there’s virtually anything that Loon Systems can do for you- whether it’s fine tuning the virtual memory settings on your database server’s kernel to optimize performance, creating multiple virtual machines to support both your development and production environments, or setting up your web host to support multiple virtual servers- we’d enjoy hearing from you.

-Arch

Go to the Blog