Virtualization has recently become a hot topic in the information technology domain. Virtualization can be done at any level – hardware, software and network or desktop layer. In technical terms, virtualization is the process in which virtual (not actual) versions of resources are created out of another resource. This resource could be any one of the following:
- Operating system
- Server
- Storage device
- Network resource
Virtualization is the process of decoupling the application and the resources that are required to execute it. It is important to note that multiple resources can be accessed from a single server, which yields the following benefits:
- Fewer servers
- Less energy consumption
- Less maintenance
Virtualization Vs Cloud Computing
In the IT industry, virtualization and cloud computing are often used as synonyms. The basic difference between these two is that virtualization is a part of physical infrastructure, while cloud computing is nothing but a service. Following the virtualization approach, we incur higher costs initially, but save money in the longer run. However, in the cloud computing approach we, as subscribers, have to pay based on usage. In short, we can say every cloud infrastructure is a virtual infrastructure, although the is not always true.
What Is a Hypervisor?
The machine/system, on which the virtual environment is created is known as a host system, while the virtual machine is known as a guest system. Hypervisor can be defined as a low-level software program, or firmware, used to control the virtual machine. It basically acts as a virtual machine manager. There are two types of hypervisors:
- Type 1: Runs on bare systems
- Type 2: Is a software interface emulating the devices with which systems normally interact
Categories of Virtualization
The concept of virtualization spans a wide range of software and hardware fields. Let's discuss the categories one by one.
Hardware Virtualization
In this category we have a server that has multiple operating systems installed and executing at the same time. As a result, the number of servers is reduced. This provides circuits in a processor and memory controller, which supports multiple operating systems on a single computer. In hardware virtualization, we have a virtual machine manager, or hypervisor, which is embedded in the hardware circuits rather than being called from third-party software. The hypervisor’s job is to control the processor, memory and other resources. It is similar to traffic police, whose job is to allow multiple operating systems to run on the same hardware device. Each operating system has its own processor, memory and other firmware resources.
The hypervisor not only controls the processor and its resources, but also allocates these resources whenever required. Hardware virtualization has the ability to facilitate the consolidation of several workloads on a single server. The advantage of hardware virtualization is that the cost is reduced several-fold. In addition to cost and energy savings (because of more efficient use of hardware resources), we get high availability of resources, better management, and disaster-recovery mechanisms in a virtual infrastructure. In total, we save the following in this approach:
- Physical space
- Power consumption
- Rapid scalability
Client Virtualization
This is also called desktop virtualization. In this category of virtualization we have a client, possibly a desktop or a laptop, which can also be called an end-user machine. Here, the job of the system administrator or the network administrator is quite difficult, as it is very challenging to manage machines that are in a client’s environment. Machines that reside within the company’s premises need to follow the guidelines and procedures formulated by the company. But if the machines are not within the company’s premises, we can’t have any control over them. Apart from this, these machines are more susceptible to malware or virus attacks. Client virtualization can be applied by following any of the three models described below:
- Remote Desktop Virtualization: In this approach the operating system environment is hosted on one server in the data center and is accessed from the end-user desktop or laptop over a network.
- Local Desktop Virtualization: In this approach, the operating system runs locally on the client’s desktop and has different flavors of virtualization, which can monitor and protect the execution of the end-user system.
- Application Virtualization: In this approach, a specific application is made available on the end-user desktop operating system, which is not installed in the traditional manner. Applications are installed and executed within a container. This container has control of how the application interacts with other systems and components. Applications can be isolated within their own sandbox to prevent interference from other applications. In this model, applications can be streamed across a network, or can be delivered via Web browser with most of the processing done at the Web server or application server level.
Storage Virtualization
Storage virtualization is a concept in which the logical storage (e.g. virtual partitions) is separated or abstracted from the physical storage (e.g. storage devices where the actual data resides). This may be any one or more of the following:
- Optical disk
- Hard disk
- Magnetic storage device
Storage virtualization helps to achieve location independence, since it abstracts the physical storage of data. The user is presented a logical space to store data while the actual mapping to the physical data is handled by the virtualization system itself. Data storage follows the these approaches:
- Direct Attached Storage: This is the traditional approach where the hard drives are attached to physical servers. This method is easy to use but hard to manage. In fact, the drawbacks of this approach are motivating organizations to move toward virtualization.
- Network Attached Storage: In this approach we have a machine which resides on the network and provides data storage to other machines. This is considered to be the first step toward achieving storage virtualization. In this approach, we have a single source of data, making data backup very important.
- Storage Area Network: In this approach, we deploy specific hardware and software, which are used to transform ordinary disk drives into data storage that transforms data into a high-performance network. It is a well-accepted fact that data is a key resource which should be available 24/7. At the same time, data should be managed conveniently.
Presentation Virtualization
This category is mainly followed in the Microsoft technology domain, commonly known as terminal services or Remote Desktop Services. Via Remote Desktop Services we get remote Windows desktop on a system that is connected over any network. The remote session interacts with an underlying physical system using the local keyboard, mouse and monitor as if on the remote system.
A Virtual Overview
Virtualization has become a hot topic of discussion. Here we have covered all the major areas of virtualization and their implementation. In the coming years, virtualization concepts will spread to other areas as well. Let us conclude our discussion with the following points:
- Virtualization is the process of creating virtual instances (of resources) from any resource. This resource could be any one of the following:
-
- Operating system
- Server
- Storage device
- Network resource
- Virtualization has the following benefits:
-
- Fewer number of servers
- Less energy consumption
- Less maintenance
- Virtualization is often inappropriately used as a substitute for cloud computing and vice versa, but there are major differences which are apparent when we do an in-depth study of the two.
- We have identified the following categories of virtualization:
-
- Hardware virtualization or server virtualization
- Client virtualization
- Storage virtualization
- Presentation virtualization