Why use a Virtual Machine?

September 30, 2012


I am building a virtual machine that will run the open-source network simulation tools that I want to research. There are good reasons to use a virtual machine for these experiments, even if software running inside a virtual machine may run slightly slower than software running on a native host. Below, I list the benefits of using a virtual machine for this research project.

Reason #1: Isolation from the host operating system.

We want to do all of our experimentation inside a virtual machine (VM) so that we can install experimental software in the VM without risking the stability of our host computer. Using a VM also allows the researcher to experiment with open-source network simulation tools that run on various operating systems such as different version of Linux or BSD without actually having to install these new systems onto his or her computer. The researcher may also run his or her usual operating system and productivity software on the host computer while experimenting with open-source network simulation tools that are running on a guest operating system inside the VM.

Reason #2: Easy to stop and start testing

VM applications allow the user to suspend the virtual machine and save its state. This allows the researcher to save their work in a specific state before shutting down the VM. For busy professionals or students this is very useful. One can switch to another task or shut down one’s host computer and then, when it is time to start experimenting with the Open-source network simulation tools again, one can start the VM in the same state it was in when it was stopped, with the guest operating system and all programs running as they were before the VM was stopped or suspended.

Reason #3: Quick recovery using snapshots

VM applications allow the researcher to take a “snapshot” of the current configuration of the VM. If the researcher causes an unrecoverable problem in the VM by making a mistake installing or patching software, he or she can easily revert to a previous snapshot of the VM.

When evaluating and experimenting with potentially unstable software there is a good chance a researcher will do something that causes their system to become unstable and that might require significant time to resolve. In these cases, it would be nice to be able to go back in time and start again from a known stable configuration. The snapshot functionality in the VM application, combined with a regimen of taking snapshots before installing or modifying software, will reduce time spent recovering from problems caused by errors or software defects.

Reason #4: VM Appliances are easy to replicate

Once a guest operating system has been installed in a VM and all the applications and configurations are completed, the VM can be saved as an “appliance”. This appliance can be used later by another researcher, or a student, and can be easily copied and used on another computer.

For example, a researcher might create a complex configuration in a virtual machine that allows him or her to experiment with a particular networking technology in a complex environment. After completing the hard work of setting up and debugging this configuration, the researcher can save the VM appliance for future use or for use by another researcher.

As another example, if someone wants to use open-source network simulation tools to teach IP networking to students, one could package a study lab environment, complete with scripts and prepared lab scenarios and provide a copy of the VM appliance to each student, who could run it in A compatible VM Application on his or her own computer. This simplifies lab set up in educational environments.

Which Virtual Machine Application?

There are three major virtual machine applications that run on all three major computer operating systems (Windows, Mac OS, and Linux). The three virtual machine applications are: Parallels, VMWare, and VirtualBox.

We will use VirtualBox because for the purpose of this experiment we prefer open-source software that is free of charge, and VirtualBox has all the performace and functionality we need. We’ll also use VirtualBox as a command-line tool in some of our future experiments so we should get used to using it as our virtual machine application.

Parallels and VMWare are also very good and, on a computer running Mac OS or Windows as the host operating system, they offer slightly superior performance and more functionality than VirtualBox. Personally, I prefer to use Parallels on my iMac.

For this project, I will use VirtualBox because it is free and it has all the functionality we need.

5 responses to Why use a Virtual Machine?

  1. Very helpful indeed, Thank you for the information…

  2. Very useful article….thank you for authors

  3. this is a very nice article thanks for sharing this.

Trackbacks and Pingbacks:

  1. One million virtual machines on the march | Open-Source Routing and Network Simulation Blog - October 10, 2012

    […] One complication I introduced, different from what the Sandia researchers did, is to build this network of many virtual machines inside one virtual machine that runs on my computer’s native operating system. Some would say this is an unnecessary complication, but I think it offers benefits in small-scale simulations, such as a simple way to save the state of a project, that outweigh the costs, such as slower overall performance as I already outlined in an earlier blog post. […]

  2. Virtual Machines | computersciencerevisionblog - October 19, 2015

    […] Reasons to use a virtual machine include can be found, here. […]