Virtualization Techniques - BunksAllowed

BunksAllowed is an effort to facilitate Self Learning process through the provision of quality tutorials.

Community

Virtualization Techniques

Share This

From a purely academic standpoint, virtualization is little more than a layer of abstraction between two other layers

What do we mean by “layer of abstraction?” Here, we’re talking about modifying the way we think about an item or refer to it by not referring to it directly. In the “real world,” we always deal with layers of abstraction. We do this to hide the physical characteristics of complicated items or concepts.

Virtualization is mainly used to emulate execution environments, storage, and networks. Among these categories, execution virtualization constitutes the oldest, most popular, and most developed area.

In particular, we can divide these execution virtualization techniques into two major categories by considering the type of host they require. Process-level techniques are implemented on top of an existing operating system, which has full control of the hardware. System-level techniques are implemented directly on hardware and do not require—or require a minimum of support from—an existing operating system.

Within these two categories, we can list various techniques that offer the guest a different type of virtual computation environment: bare hardware, operating system resources, low-level programming language, and application libraries.


Execution virtualization



Execution virtualization includes all techniques that aim to emulate an execution environment that is separate from the one hosting the virtualization layer. All these techniques concentrate their interest on providing support for the execution of programs, whether these are the operating system, a binary specification of a program compiled against an abstract machine model, or an application.

Categories of Virtualization


In this section, we’ll talk about four of the current categories of virtualization. Each of these categories is designed to add that layer of abstraction on top of one where complexity exists.


Hardware Virtualization



Hardware Virtualization involves incorporating virtualization at a layer below even the OS. With Hardware Virtualization, this virtualization layer—often called a hypervisor—acts as a sort of proxy between individual virtual systems that sit above it and the physical resources that sit below it.



Examples of Hardware Virtualization architecture: Microsoft Virtual Server, VMware Server, VMware ESX, etc.


OS Virtualization



If we move the layer of abstraction atop the host’s OS, we alter dramatically how virtualization within the system works. With OS Virtualization, our virtualization layer gains some dramatic improvements in terms of performance but loses the ability to be agnostic regarding its hosted virtual machines.

As with Hardware Virtualization, OS Virtualization includes a host OS and residing virtual machines are completely and wholly segregated from each other. What’s different is that host’s OS becomes the base OS from which all its hosted virtual machines start their existence. Each hosted virtual machine is almost like a virtual “snapshot” of the software that makes up the host. Like snapshotting technology incorporated into high-end storage systems, each hosted virtual machine’s snapshot can then be modified to personalize its configuration. Automation components within the OS Virtualization layer can be incorporated to rapidly deploy additional servers or applications within each virtual machine.

Example: Parallels Virtuozzo Containers


Paravirtualization



Paravirtualization is an oft-misunderstood branch of virtualization software. Paravirtualization works similarly to Virtual Machines in that it enables the hosting of numerous machines on top of an existing host. 

Paravirtualization differs because it does not simulate hardware resources but offers a special Application Programming Interface (API) to hosted virtual machines. In order to use that API, the OS must be specifically coded to support it. 

Paravirtualization benefits from significant performance improvements over other virtualization solutions, but the special coding requirement limits its usefulness in the marketplace when OS vendors choose not to provide the necessary modifications. As an example, Xen is one market solution that incorporates a paravirtualization architecture.

For example, Xen is a paravirtualization architecture.


Application Virtualization



Moving away from the concept of entire-system virtualization is the idea of Application Virtualization. Like the title suggests, Application Virtualization encapsulates the files, registry keys, and other configurations of an individual application into a construct - often a single file - that can be easily installed on computers, removed from computers, and updated as necessary.

Application Virtualization solutions are typically coupled with tools that enable the “streaming” of the application down to the client. This streaming process copies the necessary components of the bubble to the client system in a just-in-time manner as the operator needs those components.

Examples: Microsoft SoftGrid, Citrix Streaming Server, Thinstall Virtualization Suite, etc.



Happy Exploring!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.