Wednesday, January 2, 2013

Virtualization Basics

Virtualization??? No clue?? I don't blame you, the word has not made it to the dictionary yet. It is the next most revolutionizing thing after Microsoft Windows, I think. Of course, its gonna take a while to see its effects in daily computing needs of an average user.

What is Virtualization?In simple words it is a way of putting more than one operating system into one server (hardware) machine. We will still follow the tradition of installing one enterprise software in one OS. But when we host multiple OS's on one hardware we are in effect hosting multiple applications also on the same machine. This OS along with its software is called a "Virtual Machine" and the thin layer of software that sits on the hardware and enables these Virtual Machines is called the Hypervisor.
Virtualization is not simulation - simulation is something that looks like the real thing but it is not e.g. flight simulator. In this case, the actual OS is installed on virtual hardware.
Virtualization is not emulation - emulation requires translation of commands of emulated hardware into language understood by the physical hardware. In this case there is no translation happening.
Both Simulation and emulation approaches are slow and prone to errors while Virtualization gives up to 95% of native performance. Depending on what applications you are running on the Virtual Machine and of course which vendor you are using, the performance varies slightly. But with the vast number of features and cost savings, the little loss in performance is acceptable.

Data centers will be the first to be benefited, then it would be the turn of Desktops in Enterprises and ultimately all the desktops and laptop used by you and me. I think before I jump into the technical details, I should throw some light on the entities involved more so because this post is targeted towards the average Joe who may not be working in the IT field.

Lets start with some jargon:
Data center - place where all the servers (hardware/machines) are kept . These machines are generally much more powerful and costly than our regular desk tops.
IT (Information Technology): Although IT field refers to computer world, but within the computer world IT means the team responsible for setting up of the enterprise servers, desktop, network, basically people who deal with hardware and make the machines available for the users. E.g. System Administrator etc.

A little background story about Data centers:
Generally depending on the size of the enterprise there might be multiple data centers. And every enterprise will have a number of enterprise software like Microsoft Exchange for emails, web servers, application server and scores of such software for every department in the enterprise. As a rule of thumb on one physical server you can put one Operating system and only one enterprise software. Traditionally it is not at all a good idea to have more than one enterprise applications on a single server due to a lot of reasons, it could be a lot of things that could conflict and also if one application is down for some reason it would break the other software also if it is on the same machine. So as the company grows, the number of enterprise applications it needs, keep growing too. That translates into more physical machines in the data center. That means more real estate, more cooling is required- in other words more power is required. Of course more machines running means more carbon emissions. Yes IT is a contributor to global warming. Green IT is one of the benefits of Virtualization - we are going to talk about it more later.

Hardware maintenance/upgrade or applying patches to the OS esp. windows is nothing less than a daunting task. You need to schedule time for maintenance based on the users of that machine, then stay late of work on weekends so that bringing down the server will have a minimal impact. And after applying the patch you need to test it. Also ordering/setting up the machines with required software and testing it, is a pain in the neck for IT. Well more machines means more spending on IT for the space, cooling, power, people to maintain them. Well all these problems are about to become passe very soon. It already has for most of the fortune 1000 companies. Having said that it is not at all confined to big enterprises, many small and medium enterprises have already embraced Virtualization. Before we proceed, one important thing worth mentioning here is the capacity of the hardware has been increasing over time. Meaning the CPU speed, the number of CPUs, the number of cores per CPU (number of logical processing units in a processor, the more cores per processor the more powerful it is), the memory the hardware boxes can handle has considerably increased over the years. And generally keeping future requirements in view the hardware procured is much larger than needed. As a result the utilization on the servers is much much lower than its capacity. Not to mention the off peak hours where utilization is all time low or even zero.

Lets sum up some of the problems with traditional IT:
1. Under-utilization of hardware
2. Increasing requirement for space, cooling, power
3. Increasing carbon footprint
4. Resources required to manage the servers
5. Security - need to keep track of all the different versions of operating systems and keep them updated with the latest patches and service packs.

Virtualization addresses all the above problems and a lot more.
Lets look at of the advantages of Virtualization:

Server Consolidation - To host say 10 OS (along with their enterprise software of course) you will not need 10 physical machines. You would just need one virtualized server. And 10 is just an example, based on the capacity of the hardware you can stack up a whole lot more virtual machines without much of a performance impact.
Infrastructure cost reduction - Since less number of physical servers are required, the cost of space, power and cooling
IT responsiveness increases - due to the ease of provisioning new servers or maintaining them, the response time of IT team will increase dramatically.
Improvement in application availability - features like High Availability ensure min. down time. Without the cost of traditional redundant systems.
Back up and recovery - With ability to back up the whole VM and to recover at the VM Virtualisation takes these features to new heights.
Disaster recovery - provides disaster recovery at a fraction of the cost of traditional disaster recovery approaches that needed exact replication of the existing hardware set up.
Above all makes earth a cleaner and greener place by reducing carbon emissions be it from computers or cooling systems required.

Well the list goes on, but that discussion would be an item for another topic.

I hope you got a basic idea of Virtualization.
I am sure you must be thinking what you can to lay your hands on it to get a first hand experience. No you need not be an IT admin to experience that. Already there is stuff that you can play with and that too for FREE:
Hosted products (Run as a program on an OS) :

VMware Player - Runs an already created VM on Windows platform. E.g. you can download already created Ubuntu VM on your Windows Vista.
VMware Server - Dont be afraid of the word Server, it also runs on any windows OS but along with running any pre-existing VMs (Virtual Machines) it can also create any new VMs. And the options are endless, you can probably create a VM of any OS that you can possibly find.

Server products (Run on the hardware and enable VM running on top of it):
ESXi hypervisor - this is the smaller version of ESX (commercial Hypervisor from VMware) with foot print of 32 MB with all the functionalities of ESX but remember this is for server level hardware only.

Commertial Products:
Hosted:
VMware Workstation: This is similar to VMware Server discussed above but it has VMware Tools and other pieces of software that are designed for use of a typical Software Developer.
VMware Fusion: You own a Mac and want to use windows applications, not a problem. VMware Fusion is the tool for you.

Server:

ESX: the most mature hypervisor in the market.

There are lot of other products in both Desktop and Datacenter areas. But its not possible to put all the related topics under one title. Lets keep the details for another article. But for more details you can certainly  visit www.VMware.com


P.S. These are entirely my personal views and do not reflect the opinion of my employer VMware Inc.

~Kiran Malla
Resistance is futile...you will be Virtualized


2 comments:

  1. This turned out to be a great help to me,since i ve been planning to use virtualization to work on other Operating systems..please keep posting such interesting blogs so that we can learn new things and use them regularly. :)

    ReplyDelete
  2. I might have written this blog a couple of years ago, but forgot to publish. Happened finally today when a new joiner in my team was asking for information on Virtualization. Better late than never :)

    ReplyDelete