Saturday, August 7, 2010

What is Virtualization?

Virtualization is the abstraction of a resource from its physical environment.  There are different types of virtualization including:  hardware, operating system, network, storage, application server, management and services.

For most users they see virtualization through a virtual machine (VM).  A VM is a software environment that runs an operating system and applications while abstracting the surrounding hardware, networking, storage, etc.  When an operating system runs in a virtual machine, it is not even aware that it running in virtual environment.  For example:
  • You can't take the C:\ drive from a Dell system and copy it to an IBM system and get it to work.  There are tons of compatibility issues with hardware, drivers, etc.  Yet if you are working with VMware virtualization and you loaded VMware's ESXi (hypervisor - bare metal) on a Dell system, then you are using VMware drivers, VM SCSI definitions, etc.  You can very easily move the Virtual Machine to different hardware, because the Virtual Machine (its operating system and applications) keeps hardware transparent to the operating system.  You could use VMotion to move the guest OS to different hardware with no downtime.  Virtualization solutions like VMware "take hardware out of the equation".
The x86 architecture runs different levels of authorization.  Operating systems have traditionally run in level 0 (to get access to hardware) and applications usually run in level 3.   With virtual machines, they run in level 0 so they can manage access to hardware.  Full virtualization uses binary translation and direct executing techniques for performance. The VM supports direct execution of the processors for performance.    This fully abstracts the OS from the hardware.  Allowing the guest operating system to be decoupled from the hardware provides tremendous portability and flexibility.


VMs are servers and desktops that work like physical servers and desktops except they run in a  software environment instead of a hardware environment.  This abstraction layer is very thin and very high performing.  VMs can have:
  • CPU, memory, hard disks, NICs, parallel/serial ports, SCSI controllers, USB controllers and a video card.

Most of the IT industry does not realize the blazing speed of these VM environments and the tremendous advantages they bring to IT environments and cloud computing infrastructures.

No comments:

Post a Comment