7 Uses for a Virtual Machine
VMWare has announced the release of VMWare Server 1.0 for FREE. Formerly known as GSX server, this product allows you to take a reasonably powerful server (say a box with two processors and 4 GB of memory) and lets you serve up virtual machines. Virtual machines, by the way, are best thought of as little instances of a computer, acting as if it’s a whole computer with network IP and everything, running on a bigger box. So, you can load the software, build virtual machines, and those machines (software) will act like they’re full-fledged computers in their own right.
This isn’t dual-booting or partitioning. You can access these all at the same time. (The more running at one time, the slower things will eventually get). You can network them together with a virtual network switch.
Who cares? Too techy! Stick with me, kids.
Uses for Virtual Machines
- Try new operating systems- Want to try out Ubuntu? Put together a VM (shorthand for virtual machine) and build Ubuntu on it. Suddenly, you can launch and try dozens of operating systems without much hassle.
- Test your software- Are you the next 37Signals? You can use VMs to try your software or web app or even site design on a variety of boxes by just building virtual machines and running the tests there. Because the “machines” boil down to a couple of files, the cool thing is, you can copy them, you can back them up. You can burn them to a DVD and ship a fully configured system to someone across the globe.
- Set up an office quickly- Imagine you’re gearing up for a political campaign, or you’re going to build a retail store in a new town. You need an office with a mail server, a print server, a file server, and some desktop systems. You could have your people on the ground go buy a server from the local computer store (or ship one, whatever), and ship them the DVD with your images on it (or a hard drive). About a half hour later, you could have everything configured and running. Imagine emergency management logistics with this in place?
- Small Biz disaster recovery- This isn’t highly recommended, but it’d work if you’re bootstrapping. Say you’re hosting a few webservers with your amazing app on them. Your house gets hit by lightning. Your site is off the air. Now, imagine that scenario but you’ve got virtual backups of the latest build and configuration ready to install and deploy wherever else you’ve got a point of presence. Poof. You’re online again.
- Build kid boxes- Build Edubuntu (a kid flavored Ubuntu) on a virtual machine for the kids (the specs I mention above are for heavy users, but you could get away with a lot less if you only ran ONE VM). If (when) things go sour from one too many “tweaks,” just drop the VM and restore from your pristine copy. Talk about easy. You can get them back on the net in under 10 minutes.
- Backup your system- When you get ready to move from XP to Vista, you can use VMWare to make a backup of your old system. If things go horribly sour, you could have the VM version up and running in short order. By the way, you can have TWO servers, and have a copy of the VM on both. This would give you even more business continuity, should something happen to the server.
- Save Legacy Systems- Offices and data centers often have an old box around that just can’t be mucked with. There’s additional software you can use to do what’s called a P2V switch, a physical-to-virtual conversion, where the old box’s “image” gets copied onto the virtual machine files, and thus, gives you a hopefully-operational clone of the old grandpa box in the corner.
This is on the techier end of life hacking, I admit, but you might be able to glean some ideas from this that translate to what you’re doing in your own world. And believe me, virtual machines do make your life easier, if you have to work with lots of moving parts. I use the big daddy version of this software in our enterprise systems, and it’s a lifesaver.
And not for nothing, the people who WORK for VMWare (owned by EMC), and who represent them in sales and in customer service, are really nice and helpful. The community around the product is really good. The documentation and forum support is good. This is a robust software you can really put to some good uses.
Download Squad is where I saw this first, so I’ll give them the link. VMWare.com is where you get this software, but read Download Squad’s thoughts first:
VMWare Server 1.0 Now Free – [via Download Squad]
–Chris Brogan has 16 years experience in telecommunications and wireless technologies. He attempts to forget about it from time to time by writing for Lifehack.org, and also at [chrisbrogan.com]. For whatever reason, he wants to be a podcaster when he grows up, and does that kind of stuff out of Grasshopper Factory.




Comments
Marc P says on July 14th, 2006 at 9:06 am
I think there’s something a bit unclear in what you’ve described. Though all of your uses are accurate, it should be pointed out that you can’t create a VM, then install that image onto a non-VM PC. So in your example of creating server images in VMWare, then sending them to be installed onto new physical servers, the only way that would work is if the new servers were already running and configured with vmware themselves.
Leon says on July 14th, 2006 at 12:25 pm
You could dump the image directly to a physical disk using a utility like dd in Linux. For instance, there are Mac developers on the Net who install Mac OSX into their vmware VM, and then dump it into a real partition for testing.
Marc P says on July 14th, 2006 at 1:33 pm
Perhaps it’s my misunderstanding then — but doesn’t the virtual machine created have a predefined set of hardware, not based on any actual actual physical machine? What would happen when your configured image finds itself on all new hardware?
Chris Brogan... says on July 14th, 2006 at 1:53 pm
Virtualizing abstracts the physical, but you raised a point. If you cook a VM in ESX server, it won’t play in GSX (now VM Server 1) necessarily. Likewise, you maybe can’t use a VM built on ESX or GSX on VM Player.
However, if you set up a machine in the virtual world to have 2GB of memory, and 4GB of disk or something, if you’ve got reasonably similar hardware alotted underneath, I suspect it’ll work the same way. That’s the point, after all.
Network configuration in the VM space is practically a math. I won’t go there. But there are some swell helpers. My piece was mostly for small biz types who won’t feel that pain.
Scott Brison - enforcement consultant says on December 13th, 2006 at 5:31 am
Recognizing the need to provide a smooth transition for current users of the Microsoft® Java Virtual Machine (MSJVM), Sun Microsystems and Microsoft have agreed to extend Microsoft’s license to use Sun’s Java source code and compatibility test suites. This extension allows Microsoft to support the MSJVM until December 31, 2007, providing customers with the ability to transition from the MSJVM on a schedule and plan that is most effective for them.
Thomas Cooper >> Money Making Stories says on January 18th, 2007 at 3:37 pm
The Java virtual machine is designed to support the Java programming language. Sun’s JDK releases and Java 2 SDK contain both a compiler from source code written in the Java programming language to the instruction set of the Java virtual machine, and a runtime system that implements the Java virtual machine itself. Understanding how one compiler utilizes the Java virtual machine is useful to the prospective compiler writer, as well as to one trying to understand the Java virtual machine itself.
Although this chapter concentrates on compiling source code written in the Java programming language, the Java virtual machine does not assume that the instructions it executes were generated from such code. While there have been a number of efforts aimed at compiling other languages to the Java virtual machine, the current version of the Java virtual machine was not designed to support a wide range of languages. Some languages may be hosted fairly directly by the Java virtual machine. Other languages may be implemented only inefficiently.