What is a virtual machine?

It sounds like a rather straightforward question, but in terms of bloggers and the circles we keep, it may be overlooked. It may not be an easy answer to find for someone who is new to virtualization. This is oddly in line with a project I am working on at work for people whom are new to data protection and virtualization in general, but hey more on that to come later.

Simply put, a virtual machine is a computer represented via software. Specifically, an operating system exists in a software space rather than explicitly on a dedicated machine. The operating system is a good way to represent virtualization in my opinion. Let’s follow this reference through this blog post.

Let’s start with a video

I made this quick video to identify the core resources of a computer. This is easy to explain for physical systems, and is a good preface for explaining it for virtual systems.

Non-virtualized systems

Servers and other computers that are not virtualized have the operating system (say Windows Server) installed directly on them. The basic components of any computer are a processor (CPU), memory (RAM) resources, network interfaces and one or more hard drives. These four categories (CPU, RAM, network and disk) are what I refer to as the “Core Four” resources. In all compute platforms, these exist (and are potential bottlenecks!). Officially, the network resources are optional; but in most situations are used. So, simply put one computer or server has one operating system. 1:1

Unless you are doing “fancy stuff” at home, this is pretty much what your computer at home is doing. One piece of hardware providing one operating system. This applies to both computers at home as well as computers in the data center, or servers. This can be for file servers, email servers, database servers, application servers and more.

For simplicity reasons, I’ve left out other components like USB ports, power supplies, video adapters and more. They all still apply, but are beyond the basics of understanding “What is a virtual machine?”

Virtualized systems

This is where it gets cool and fancy! A virtualized system will simply provide the same Core Four resources, but it is done via a software layer. The fundamental concept here is a hypervisor. This is where the VMware, Xen, Oracle and Microsoft virtualization options come into play. There are a number of ways to make a virtualized system. I’ll start with VMware vSphere. It is not necessarily the first place people start, but it is the place you should end up.

VMware ESXi is a Type I (Type one) hypervisor. This means that ESXi runs directly on the hardware of the server. I like this way to represent a Type I hypervisor from IBM:


So in this image there are three different operating systems running on three different virtual machines.  They are running on an SMP Server (SMP stands for symmetric multiprocessing server). Don’t let that tech mumbo jumbo confuse you, that just means a server with two or more CPUs.

Each operating system has its own disk, network, CPU and RAM resources; though they are provisioned and managed by the hypervisor. Using VMware ESXi, you can add a logical resource, such as a CPU. This is shown in the figure below:


Here I can add CPUs to the virtual machine through the VMware vSphere Client. In the case of the vSphere Client, this is the software that we use to manage virtual machines running on ESXi. There can be other components in place, such as VMware vCenter Server (which is a management solution). But you can see in this example we are at the decision point to add (or remove) CPUs from the virtual machine in question. To the example illustrated in the video, we would NOT have to add additional hardware (in most situations) to provide resources to the virtual machine. So, if the operating system (Windows for example) required more CPU or memory, we could do it right here in this console; not have to order parts or open up the system.

The other type of virtualization software would be the Type II (type 2) hypervisors. These are installed on top of an existing operating system. So, take a laptop, desktop or server running some form of a Windows operating system. That system can run additional Windows (and Linux) operating systems as virtual machines as well. This is popular for mobile labs and demonstrations. It is rare that a business would virtualize their infrastructure to a Type II hypervisor. Examples of Type II hypervisors include VMware Workstation, Microsoft Virtual Server, Oracle VirtualBox, VMware Fusion and others.

Does this make sense?

I hope so, it’s tough to start at zero, but there is really a need to explain what a virtual machine is.

Have a question, email me and let me know: b4real@usa.net

Related Links:

Type 1 and Type 2 hypervisors explained, My Virtualization Review blog: http://virtualizationreview.com/blogs/everyday-virtualization/2009/06/type-1-and-type-2-hypervisors-explained.aspx


4 responses to this post.

  1. Posted by Wil Travesty on September 7, 2011 at 11:40 am

    Video seems to be trying to make the point that in a hardware machine you have to spend money to add additional resources, implying that you don’t for a virtual machine. That is true but only to a point, as for a virtual machine you had to spend the money a while ago when you bought the original platform or else you won’t have it to provision it to an existing virtual machine. You’re gonna spend the money either way, but virtual machines give you the flexibility to move the resources around as needed.


  2. Hi Will, true there is an initial investment in the virtual platform. I’ll communicate that in the next post. I’m doing a series of Virtualization basics. There’s not too much out there it seems for it.


  3. […] Blogger Disclosure Information « What is a virtual machine? […]


  4. Hey Will, I added another post explaining how the base inventory needs to be in place to make sense with the video: https://rickvanover.wordpress.com/2011/09/07/what-came-first-the-vm-or-the-host/


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: