There is a lot of buzz going around in topics like SOA, Virtualization, Cloud Computing these days across all organizations, and if you haven't had any discussion with your senior management in exploring possibilities of adopting some of these in your organization then perhaps I should say you are not working for an IT enabled organization. In any case, I was stumped once when I was told software licensing cost may go down when systems are virtualized; not knowing why, I decided to dig under the hood and based on my findings here are some basic stuff on Virtualization.
Virtualization functions and external interfaces as their counterparts, but that differ in attributes, such as size, performance, and cost. These substitutes are called virtual resources, and their users are typically unaware of the substitution. Virtualization is commonly applied to physical hardware resources by combining multiple physical resources into shared pools from which users receive virtual resources. With virtualization, you can make one physical resource look like multiple virtual resources. Virtualization has been here for quite a while in different forms like, storage, VLAN, VIP, JVM, etc., but of late it has entered at the system level (OS).
Virtualization functions and external interfaces as their counterparts, but that differ in attributes, such as size, performance, and cost. These substitutes are called virtual resources, and their users are typically unaware of the substitution. Virtualization is commonly applied to physical hardware resources by combining multiple physical resources into shared pools from which users receive virtual resources. With virtualization, you can make one physical resource look like multiple virtual resources. Virtualization has been here for quite a while in different forms like, storage, VLAN, VIP, JVM, etc., but of late it has entered at the system level (OS).
System virtualization independent operating environments that use virtual resources. System virtualization can be approached through hardware partitioning or hypervisor technology. Hardware partitioning subdivides a physical server into fractions, each of which can run an operating system, our old dual boot systems. These fractions are typically created with coarse units of allocation, such as whole processors or physical boards. This type of virtualization allows for hardware consolidation, but does not have the full benefits of resource sharing and emulation offered by "hypervisors". To better understand hypervisors one need to understand the existing and most widely used x86 architecture below,
All these configurations have the ability to virutalize not just CPU's but also memory and I/O devices.
X86 operating systems are designed to run directly on the bare-metal hardware, so they naturally assume they fully ‘own’ the computer hardware. As shown in Figure, the x86 architecture offers four levels of privilege known as Ring 0, 1, 2 and 3 to operating systems and applications to manage access to the computer hardware. While user level applications typically run in Ring 3, the operating system needs to have direct access to the memory and hardware and must execute its privileged instructions in Ring 0. Virtualizing the x86 architecture requires placing a virtualization layer under the operating system (which expects to be in the most privileged Ring 0) to create and manage the virtual machines that deliver shared resources. This brings additional complexity while running/translating sensitive machine instructions which are specific to hardware vendor that cannot be generalized across. Three techniques were introduced to resolve this
- Virtualization using binary translation
- OS assisted virtualization or paravirtualization
- Bare Metal virtualization
Virtualization via transalation is process intensive but involves no changes to OS or hardware, the hypervisor or virtual machine monitor (VMM) is installed on top of host computer OS as another application; to all user applications the hypervisor emulates as an operating system, consuming, and evaluating instructions and presenting results. The main advantage is OS sitting on top of VMM aka Guest OS can use CPU's from different host, the VMM abstracts these details.
OS assisted or paravirtualization involves installing OS that is aware of being virtualized and is mostly associated with open source like Linux. This is little faster than the previous one, but requires re-building your system with modified OS.
Bare Metal or Full Virtualization (below) involves the guest operating system running on top of a hypervisor that sits on the bare metal. The guest is unaware that it is being virtualized and assumes it is the only OS installed on the hardware. To install additional OS, VM Kernel would spawn additional VMM instance. This perhaps has the fastest performance of all other types.
All these techniques support not just CPU virutalization but also memory, device and I/O virtualization.
All these techniques support not just CPU virutalization but also memory, device and I/O virtualization.


No comments:
Post a Comment