Introduction to Virtual Machines

Virtual Machines (VMs) can help you cut costs, extend the lifetime of your existing software investments, and improve security.

713 4
713 4

In this post, I want to make you aware of the basics of a technology known as Virtual Machines (VMs). I’ll show you how it can help you cut costs, extend the lifetime of your existing software investments, and improve security.

For those unfamiliar with the terms, a Virtual Machine or VM is a method of using software to enable you to run one or more “guest” operating systems (OS) within a “host” OS. The host OS is the one that you see when you start your computer. In my case, I use Ubuntu Linux as the host OS but I could just as well use Windows or any one of a number of different flavors of Windows, Unix, Linux, etc. You have similar flexibility in choosing the guest OS provided you don’t try to do something like run a 64-bit guest OS from within a 32-bit host OS. Other limitations may also apply depending on specifics of your hardware and the software you’re using.

Note that a VM should not be confused with emulation software like the Wine program that lets you run some Windows applications natively in Linux. Further, a VM is not the same as what is known as dual-booting where more than one OS resides on the disk. With dual-booting you can only run one OS at a time. With a VM you actually run one two or more OS on a single computer at the same time.

My favorite program for creating and running VMs is known as VMWare. Other similar programs include VirtualBox, XEN, Microsoft Virtual PC, and Parallels for Mac. I chose to standardize on VMWare back in 2007. At that time, the other options weren’t nearly as mature as they are now and VMWare was the only obvious choice for someone making use of VMs in a production environment. Things are likely considerably different now and I may take up the pro’s and con’s of each in a future post.

By now, I’m sure some of you are wondering why you’d ever need to run more than one OS on your computer. Indeed, this is a fair question as we have all had days when keeping a computer working with just one OS has seemed to be enough of a challenge! The answers to this are numerous as you will see below:

Compatibility – Even if you’re completely happy with everything your current OS offers, your co-workers or clients may use software that only runs on a different OS. To be compatible you can either purchase a separate computer or you can use the VM approach to save yourself the cost of the additional hardware and the headache of maintaining it.

Legacy Software – Another scenario is that you have just purchased a new computer with the latest version of your favorite OS. Later you discover, much to your chagrin, that your favorite software doesn’t work with the new OS! You have two choices:

A. You can continue to maintain the old computer with its now outdated and potentially insecure OS .

B. You can try the VM approach and run the old OS within the new OS.

With option B. you gain the advantage of the speed and reliability of new hardware while preserving your investment (both cash and training) in the legacy software.

Consolidation of Machines – At one time in my business I had 9 separate computers running various flavors of Windows. Each machine had a specific software load so that I could test software that I was developing on various configurations before shipping it to users. Needless to say, the overhead of maintaining the 9 separate machines was a huge time sink and there were days when it seemed all I did was work to keep the machines working. Later however, I converted all of these physical machines to VMs. Now I can easily maintain and run all the different OS and software loads on just one physical machine! This saves me time, frees up a lot of office space, and even cuts my power bill!

Flexibility – One of the great parts about working with VMs is that they once they are setup it is easy to move them from one physical computer to another. If you like, you can put your VMs on an external USB drive and then run them on any machine where you’ve got the VM software (e.g. VMWare)  installed. This means that if one of your physical machines goes down you can simply move your VMs to a backup computer and keep working until the first machine is repaired or replaced!

Easy Backup – There are a number of ways to configure the disk on a VM. By far the most common method however is to simply use a single large file as a space for the virtual disk. The advantage of this is that backing up the VM disk is a simple file copy! There’s no need for complicated disk imaging software and other overhead. If you want to make changes to your VM software load you simply drag and drop to create a second copy so you can easily go back to something that you know works. It can’t get any easier than that!

Security – Running a legacy OS can be a real security hazard. Since they are not updated they often have serious security problems; especially when networking is enabled. If you run the legacy OS in a VM however, you can configure the networking in such a way that the legacy OS cannot access the network, or if it does access it, that it is properly filtered and fire walled by the host OS. Another big disadvantage of many legacy OS is that it is impossible to properly encrypt a disk. If you run the legacy OS as a VM guest on a host OS that uses Full Disk Encryption (FDE) the disk on the legacy OS is naturally and safely encrypted. This is something you could never get running the legacy OS directly on the hardware! Lastly, you can also configure the virtual disk in such a way that changes to the system drive are not saved when you close the guest OS. This can prevent viruses from ever taking over a VM!

Even though my list just scratches the surface it should now be clear that there are very compelling reasons to consider adopting and using a VM type strategy in your home and business computing. I’m planning to delve into the specifics of creating and using VMs in the coming weeks and months so please check back often. Thanks for reading!

 Updates:

I’ve posted an article here on how to install Ubuntu 11.04 in a VM, and another here that shows how to convert your existing Windows XP computer to a VM.

In this article

Join the Conversation