Virtualization - What is it?

Virtualization - What is it?

Chances are, if you have been on the internet, and are interested in tech, that you have heard of virtualization. Virtualization has been around for quite a while now (the first virtualization projects were started by IBM in 1964!), but a lot of people that aren't involved in IT or technical fields, know little, if nothing at all about it. So, what is virtualization?

As defined by Red Hat:

"Virtualization is technology that lets you create useful IT services using resources that are traditionally bound to hardware. It allows you to use a physical machine’s full capacity by distributing its capabilities among many users or environments."

Well, that's nice, but what does it mean?

Essentially, think of virtualization like a city bus, but for computers. The bus is your main computer, it is a physical piece of equipment, with specific hardware configured inside it (RAM, HDD/SSD space, Graphics power, and Processing power), and the passengers of this "bus" are "virtual computers". The benefit of a city bus, is that multiple people can use it's resources at one time (Engine, Fuel, Seating, etc.) to get where they need to go. Virtualization allows your computer to do the same thing, but for other computers. 

Here's an example:

Let's say that you have recently become interested in Linux. You have heard cool things, and done some research, and decided that you would like to try Ubuntu Linux. You are ready to try it out, but you only have one computer available to you. You may have one of two things running through your mind:

- You don't want to attempt installing Ubuntu on your already functional system (even though you know that it supports installing along side other Operating Systems, such as Windows, without interfering), because you are afraid that you might mess something up, and you can't justify the risk.

- You can't justify the time to install Ubuntu on your system, not knowing if you are going to like it or not, and then possibly have to take the time to remove it, or install something back over the top of it.

In comes virtualization. With Virtualization, you can use some of the resources from your main computer (called the Host in this situation), to run a "virtual computer" (called a Virtual Machine, or VM) along side your main system, simultaneously.

This is what is known as "Type 2 Virtualization". To do this, a piece of software is needed called a "hypervisor".

There are many type 2 hypervisors. Oracle VirtualBox, VMWare Fusion, VMWare Workstation, and Parallels Desktop are some of the most well known Type 2 hypervisors. 

Ok, now we have an idea of what virtualization is, but if there is a "type 2 hypervisor", then there must be a "type 1 hypervisor", right? Right!

A type 1 hypervisor accomplishes the same task as a type 2 hypervisor, but in a different way. With a type 2 hypervisor, a piece of software is installed, and ran, over an existing operating system (like Microsoft Windows). For example, to use Oracle VirtualBox, a computer running a compatible operating system (Microsoft Windows, Apple MacOS, or various versions of Linux) is required. Then, the VirtualBox software is downloaded, and installed (like any other piece of software). Whenever a virtual machine needs to be ran with this software, the software must first be opened, and must remain open while the virtual machine is running.

This is not a problem for individual use cases, or hobbyists, but several problems arise with a type 2 hypervisor when needing to use virtualization in an enterprise environment (like hosting VM servers).

  1. Ease of use: Having to always launch an extra piece of software in order to start your VMs is time consuming, and can cause issues when running certain server types, like DNS servers (as remote access without DNS can sometimes be an issue).
  2. System overhead: Often times, when enterprises setup virtual servers, they use a very powerful server as the host system. Often, they would like all of the main servers for the organization to be virtual (for various reasons such as failover, backups, redundancy, etc). When using a type 2 hypervisor, you are still using some of the system resources to run the operating system on the host system. This can take away from the resources that you are available to use on the VMs.
  3. Scalability: Most type 2 hypervisors are designed to be used on workstation computers, or end user systems. They aren't designed to be used for servers, and because of that, they tend to lack features that are necessary in an enterprise setup. Features like: Live system migration (this allows for a VM running on one host, to be moved to another host while still running, without any down-time), Scheduled snapshot backups, enterprise support, and advanced storage locations (like NAS - network attached storage).

Because of these limitations, most enterprise solutions utilize type 1 hypervisors. These are specialized hypervisors that install directly on the computer hardware, and serve 1 specific purpose - to virtualize. Often times these hypervisor solutions are completely command line based, offering little to no graphical interface, and they usually offer a very basic version of an operating system, that includes exactly what is needed to make VMs.

Some examples of type 1 hypervisors are:

Xen/Citrix XenServer, VMWare vSphere/ESXi, Microsoft Hyper-V, KVM, RHEV (Red Hat Enterprise Virtualization).

Microsoft Hyper-V is actually a unique hypervisor in this list, as it operates as a type 1 hypervisor, running directly on top of the hardware, but inside a full version of Microsoft Windows Server. It is installed as a role using the "Add Roles/Features" wizard, just like any other Microsoft Server role.

Hopefully you now have a better understanding of virtualization, and might even play around with it a little bit. I would recommend installing either VirtualBox (which is free to use), or VMWare Workstation Player (which has a free trial), and downloading a copy of Ubuntu, or Mint Linux to get started with.

Written By: Micah Robichaux

Author

Micah Robichaux  Micah Robichaux

Share this post