Server Virtualization - Concepts

Over the past couple of years, I have been visiting customers ranging  from enterprise to small and mid size web-tier companies and any  customer in between except Telco customers in an attempt to understand  how Virtualization can help them. I find several use cases and some  confusion.

Why Deploy Virtualization?

  • It can be deployed in a way to meet employee desktop requirement, thereby reducing the administrative overhead of managing lot of single systems
  • CPUs have become faster with more cores per socket; many  application are unable to take advantage of all the cores on these  powerful chips. So customers want to run multiple applications on  these systems without affecting specialized and some times conflicting configuration requirements needed for each application. 
  • Data centers with lot of client facing servers are consuming too much power distorting the power-throughput ratio significantly. Hence customers want to collapse these servers in to few large systems
  • It should be able to run old applications on newer hardware

The term Virtualization span several technologies that the industry has offered so far. At a very basic level, I would classify Virtualization Technology as a way to share the resources of a single server system across multiple users. The users can be human beings and or application software. The resources are generally the components that make up a computer viz. CPU, Memory, IO and Display/Input devices. Hence at a very basic level, the Virtualization technology must actively participate in share-management of these resources.

I should make a distinction here between Partitioning a large system (for eg. Domains of a Sun Fire 6900) into Domains, where  none of the above resources are shared (also sometime referred to as Hard Partitioning), and, Server Virtualization (the term Domain is also used in this context) where at least some or all of the resources are shared with active share-management in place. The term Domain encompasses the above set of resources with some settings viz. OS, patches, tunables, software - that can be different from another Domain and yet co-exist in the same Physical system.

While Virtualization is just one way of doing Server Consolidation, the availability of so many Virtualization Technologies with so many options  have created some mis-conceptions and confusions.

  • Can I really re-deploy my application on a new domain without affecting the end-user experience. The short answer is no, unless it was also possible to do so in a non-Virtualized environment.
  • I can create lot of domains in a single system creating a situation where CPU and Memory can be over-subscribed. What about performance?
  • Can I move my Guest from one Virtualization technology to another? The answer depends on several factors
    • The Instruction Set supported by the Source system and target system should be same, unless the Virtualization technology on the target system can emulate Source System Instruction Set.
    • If the Guest Operating system is un-aware that it is running in a virtualized environment, then it should be possible to do such migrations.
  • I can setup or move domains around and bring up my application in no time. Some times that is true; it will depend on how complex the IO environment is.
  • I can use the same Disk device or Boot Image to boot all my domains. Sharing a Boot Image is not possible in Virtualization. Sharing a Physical Disk is possible with some caveats.
Next, I plan to write about some  Virtualization technologies that are available today. It should help clear some confusions and mis-conceptions.
Comments:

Post a Comment:
Comments are closed for this entry.
About

pallab

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
Bookmarks