|
Virtual Machines are becoming more prevelent in the market place in a number of different areas. Virtual machines allow a user to have multiple "computers" running on a single computer, keeps data segregated and allows for the implementation of specialized environments for development.
Uses of virtual machines
- Custom Development Environments - we use virtual machines for environments that require cross compilers or specialized tools. This allows us to keep our customer data clean and our development environments uncontaminated by "other" needs.
- Multiple Operating Systems - as a primarily Linux shop, we still have customers who need windows development or testing of windows platforms, including older Windows 98/ME/2k platforms. Virtual Machines give us the ability to run windows Virtual Machines on our linux host systems efficiently.
- Containment of novice users - Short and sweet, have you ever let your kids play with your computer and come back to find things are just not the way you left them? Well, virtual machines make a great tool for containing them, allowing them to install whatever software they want and NOT impacting your host system. Beyond the containment, VMWare has the ability to create a snapshot of the system. If your child crashes his virtual machine (or contracts malware), you can simply restore it back to the last snapshot and s/he is back to a stable state.
- Containment of functionality - if you are running a webserver, mailserver and fileserver on one system, VMs make it possible to compartmentalize the functionality. If someone hacks your webserver VM, they don't have free roam over your local files.
- System Migration - ever moved someone from one computer to another only to discover 5 minutes after you wipe the drive they had some files in a secret spot they forgot about until "just then" - most of the time it really is not where they think it is but since you just blasted their drive, well you shouldn't have yet. Using P2V tools, you can virtualize their old computer and save the virtual disk. When they come looking for the data, you start up the virtual system.
- System Stability - Windows does many things very well, but the general complaint is stability. One way to gain enhanced stability with Windows is to install it as a Virtual machine running in a linux host. The Host can monitor the windows install via a heartbeat, if it should fail, the host can kill it and start a new instance.
Virtual Machine Tools
- VMServer - free server application from VMware, allows a single computer to run your virtual machines. My VMServer is a dual core 4400 with 2GB RAM and runs a virtual appliance of bugzilla, apache2 etc. My VMserver runs on Red Hat Fedora Core 6.
- VMPlayer - a free application from VMware that allows a user to run a virtual machine in a standalone fashion on any computer: windows, linux, Mac OS X. This makes VMs very portable. If I going to an ARM development client, I copy the VM from my server to my laptop and start VMPlayer to do my development on site.
- VMOptimizer - VMOptimizer (http://www.invirtus.com) is a utility developed by an extremely Windows savvy technologist who knows the inner workings of Windows extensively. He developed a utility that removes extraneous stuff from your Virtual Machine and makes it significantly smaller (many report a 50% or greater reduction in Virtual Machine size). Unfortunately, it is only for Windows Virtual Machines.
- P2V conversion - there are a couple utilities for conversion of Physical computer to Virtual Systems. If you have an existing computer and you want to virtualize, this is the way to go. For "desktops", look at VMWare's free conversion tool. For Enterprise systems, check out Invirtus' Conversion package which makes the conversion process on a large network extremely simple.
Informationally, based upon experience with competing virtual technologies, I would strongly encourage anyone desiring to use Virtual Machines to focus on VMware solutions as they are by far the most mature. |