Virtualization: All that you need to know!
Tags: showdev, beginners, tutorial, codenewbie
Published: 2020-03-17 16:14:00

Virtualization refers to the creation of virtual resources such as a server, desktop, operating system, file, storage, or network.

![](https://miro.medium.com/max/1250/0*yS_K8Fo3A5WYAqQE)


## Virtualization

Virtualization = Virtual + Realization . In other words, virtualization means to realize something virtually. A simple definition of virtualization is the formation of a virtual computer inside the real computer. It is an abstraction layer above the hardware layer. It is hardware reducing, memory saving, and cost & energy saving technology that is rapidly transforming the IT landscape. In computing,  **_virtualization refers to the creation of a virtual (rather than a real) version of something, including virtual computer hardware platforms, storage devices, and computer resources._**In other words, virtualization can also be perceived as a technique that allows us to share a physical instance of a resource or an application among multiple customers and organizations.

![](https://miro.medium.com/proxy/0*FEKQYXztSbv2R4Vc.jpg)

The idea of virtualization is not new. It was introduced by IBM in 1960 when mainframe computers were in use. Mainframe computers were underutilized most of the time, hence to amplify the resource utilization of these mainframe computers, the virtualization technology was introduced which allows running multiple OS(Operating Systems) simultaneously.

Due to invention of desktop and reduction in hardware prices this technology become dormant for a long time.

But over the past few decades with the invention of new technologies like utility computing and cloud computing, virtualization has regained its importance.

![](https://miro.medium.com/proxy/0*wrmLS6q6rQisgBgq.png)

## **Server Virtualization**

Server virtualization allows multiple servers to be installed on one or more existing servers. This saves floor space and money since you don’t have to purchase new servers or expand the square footage of your server room.

![](https://miro.medium.com/max/38/0*E12XuIKU2JLfoA7Z.png?q=20)

![](https://miro.medium.com/max/575/0*E12XuIKU2JLfoA7Z.png)

_The benefits of server virtualization include:_

· Multiple operating systems can be run on a single physical server(host)

· Many physical servers can often be consolidated into one or two physical servers, saving your small business money that would have been spent on physical servers.

· Your small business’s electricity requirements will decrease—fewer servers run on less power and will also generate less heat which will reduce your server room cooling bill

· Virtualizing most servers onto one or two physical servers reduces server maintenance costs.

· Additional RAM, processor power or storage space can be quickly and easily allocated to any virtual server.

· In case of virtual server error, quick restores can be done from locally stored backups.

· Virtual servers are easily moved between host servers, allowing maximum use of available processing power.

## **Desktop Virtualization**

Desktop virtualization removes the need for a CPU at each computer station. Each user will still have a monitor and mouse but will have their desktop CPU virtually stored on a local server.

![](https://miro.medium.com/max/38/0*Y6zpQkQOJJGfNNXl.jpg?q=20)

![](https://miro.medium.com/max/804/0*Y6zpQkQOJJGfNNXl.jpg)

Benefits of desktop virtualization include:

· Virtual Desktops can run on multiple types of hardware such as workstations, Thin Clients, laptops, and some smartphones.

· Centralizing the virtualized “CPUs” of desktops provides increased stability through better administration of workstations and increased security because the host system keeps all workstations up to date with patches and hotfixes.

· Virtual desktops can be quickly created after an initial “original” virtual machine has been produced—anytime a new desktop computer is needed, copy the original, give it a name and it is ready for immediate use.

· Users love it because their machine is “never down” and they always have access to their customization on their virtual machines. Virtual desktops also reduce the carbon footprint and increase Total Cost Ownership when compared to maintaining physical machines.

## **Application Virtualization**

This is a process where applications get virtualized and are delivered from a server to the end user’s device, such as laptops, smartphones, and tablets. So instead of logging into their computers at work, users will be able to gain access to the application virtually from anywhere, provided an Internet connection is available.

Application virtualization separates individual software applications from the operating system allowing the user to run almost any application on most of the operating systems.

![](https://miro.medium.com/max/38/0*UvDaS9KMH5-1EJpU.jpg?q=20)

![](https://miro.medium.com/max/846/0*UvDaS9KMH5-1EJpU.jpg)

Other benefits of Application virtualization include:

· Application virtualization separates applications from the operating systems and can run the applications on work stations, thin clients, laptops, and some smartphones.

· Applications are run centrally so you don’t have to worry about having enough storage space on the local desktop hard drive

· Multiple applications can run at the same time without bogging down the system or conflicting with other apps.

· Virtualized applications can be installed, maintained, and patched as soon as updates are available.

## **Network Virtualization**

Network virtualization is a method of combining available resources in a network by splitting up the available bandwidth into channels, each of which is independent of the others, and each of which can be assigned (or reassigned)  to a particular server or device in real-time. Each channel is independently secured. Every subscriber has shared access to all the resources on the network from a single computer.

![](https://miro.medium.com/max/38/0*c7FTR_nSTXrXz1dV.png?q=20)

![](https://miro.medium.com/max/960/0*c7FTR_nSTXrXz1dV.png)

Network virtualization is intended to optimize network speed, reliability, flexibility, scalability, and security. Network virtualization is said to be especially effective in networks that experience sudden, large, and unforeseen surges in usage.

Businesses that would benefit from network virtualization are the ones that have a large number of users and need to keep their systems up and running all the time. With the distributed channels, your network speed will increase dramatically, allowing you to deliver services and applications faster than ever before.

## **Storage Virtualization**

Storage virtualization is the process of grouping the physical storage from multiple network storage devices so that it looks like a single storage device. This concept is used in Storage Area Network (SAN) environment.

Through storage virtualization, a new layer of software and/or hardware is created in between the storage system and the server and so the applications will no longer be in the need of knowing the information regarding which drives or storage subsystems their data is residing on.

The management of storage and data is becoming difficult and time-consuming. Storage virtualization helps to address this problem by facilitating easy backup, archiving, and recovery tasks by consuming less time. Storage virtualization aggregates the functions and hides the actual complexity of the Storage Area Network.

![](https://miro.medium.com/max/38/0*wYSnfEsWK73wJsRy.jpg?q=20)

![](https://miro.medium.com/max/906/0*wYSnfEsWK73wJsRy.jpg)

_Benefits of Storage Virtualization:_

· One of the major benefits of abstracting the host or server from the actual storage is the ability to migrate data while maintaining concurrent I/O access.

· Availability factor gets enriched as the applications are not restricted to specific storage resources and also can be shielded from all kinds of disruptions.

· Disaster Recovery option is offered by the management of data replication at the virtualization layer. This can be achieved as soon as the primary source is kept as free and is managed by the common interface.

· Automation of storage capacity provisioning can be eliminated.

# Hypervisor

![](https://miro.medium.com/max/38/0*hfnF35JgKalJ-kwb.png?q=20)

![](https://miro.medium.com/max/723/0*hfnF35JgKalJ-kwb.png)

A Hypervisor or Virtual Machine Monitor(VMM) is computer software, firmware or hardware that creates and runs virtual machines.  A computer on which a hypervisor runs one or more virtual machines is called a  _host machine,_  and each virtual machine is called  _guest machine._ The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and mac OS instances can all run on a single physical x86 machines.

-   A hypervisor is a program that would enable you to host several different virtual machines on a single hardware.
-   Each one of these virtual machines or operating systems you have will be able to run its programs, as it will appear that the system has the host hardware’s processor, memory, and resources. In reality, however, it is actually the hypervisor that is allocating those resources to the virtual machines.
-   In effect, a hypervisor allows you to have several virtual machines all working optimally on a single piece of computer hardware.
-   Now, hypervisors are fundamental components of any virtualization effort. You can think of it as the operating system for virtualized systems. It can access all physical devices residing on a server. It can also access the memory and disk. It can control all aspects and parts of a virtual machine.

# Virtual Machines

VM technology allows multiple virtual machines to run on a single physical machine

![](https://miro.medium.com/max/38/0*QiIlZaQFXSEXskWQ.png?q=20)

![](https://miro.medium.com/max/2500/0*QiIlZaQFXSEXskWQ.png)

_A virtual machine is a software program or an operating system that possesses the characteristic behavior of an independent computer system and is capable of performing various tasks like running applications and programs like a computer. A virtual machine is also known as a guest._

The main aim of virtualization is to reduce workloads by transforming conventional computing to make it more scalable. Virtualization has been a part of the IT landscape for decades and today can be applied to wide-range layers, including operating system-level virtualization, hardware-level virtualization, server-level virtualization.

# Types of Hypervisors

![](https://miro.medium.com/freeze/max/38/0*wc5JTAaBcylrPPm0.gif?q=20)

![](https://miro.medium.com/max/719/0*wc5JTAaBcylrPPm0.gif)

## **Bare-Metal  _or_  Native  _or_  Type-I Hypervisor:**

![](https://miro.medium.com/max/38/0*aqDX42l9RagNUZld.png?q=20)

![](https://miro.medium.com/max/1875/0*aqDX42l9RagNUZld.png)

These hypervisors run on the top of the physical hardware of the system. Guest OS and applications run on the hypervisor.

-   Example: Microsoft Hyper-V hypervisor, VMware ESX/ESXi, Oracle VM Server for x86, KVM, or Citrix XenServer.
-   _A major advantage is that any problem in one of the virtual machine or guest operating system does not affect the other guest operating systems running on the hardware_.

## **Embedded or Hosted or Type-II Hypervisor:**

![](https://miro.medium.com/max/38/0*e9Hh6dCFvZ6eGpi2.png?q=20)

![](https://miro.medium.com/max/1875/0*e9Hh6dCFvZ6eGpi2.png)

These hypervisors run within a host OS. That means Type-II Hypervisor runs as an application on the host OS.

-   It is completely dependent on the Host Operating System for its operations. While having a base operating system allows better specification of policies,  _any problem in the base operating system affects the entire system even if the hypervisor running above the base OS is secure._
-   Example: VMware Workstation, Microsoft Virtual PC, Oracle Virtual Box

## Hosted v/s Native Hypervisor

-   So, native hypervisors run directly on the hardware while a hosted hypervisor needs an operating system to do its work. Which one is better? It depends on what you are after!
-   Bare metal hypervisors are faster and more efficient as they do not need to go through the operating system and other layers that usually make hosted hypervisor slower. Type-I Hypervisors are also more secure than Type-II Hypervisors.
-   Hosted Hypervisors, on the other hand, are much easier to set-up than Bare metal Hypervisors because you have an OS to work with. These are also compatible with a broad range of hardware.
-   A Hypervisor is a natural target for hackers because of its design control all the resources of the hardware while managing all the virtual machines residing on it. The bad news is that a hypervisor is vulnerable to a lot of malicious code, especially those coming from a rogue virtual machine.