- Virtualization typically refers to the creation of a virtual machine that can virtualize all of the hardware resources, including processors, memory, storage, and network connectivity.
- With virtualization, physical hardware resources can be shared by one or more virtual machines.
- According to the requirements from Popek and Goldberg, there are three aspects to satisfy the virtualization.
- First, virtualization should provide an equivalent environment to run a program compared to a native system.
- If the program shows a different behavior under virtualization, it may not be eligible as a virtualized environment.
- Virtualization also needs to provide secure control of virtualized resources.
- Having full control of resources is important to protect data and resources on each virtual environment from any threats or performance interference in sharing physical resources.
- Virtualization often expects performance degradation due to the additional tasks for virtualization, but good performance should be achieved with software or hardware support in handling privileged instructions.
- With these requirements, efficient virtualization is guaranteed.
- In the following section, different types of hypervisors are explained with the implementation level of virtualization.
- Virtualized resource is also presented in CPU, memory, and I/O transactions.
Diagrammatic representation of Virtualization
It contains three layers they are,
- layer I comprising of network
- layer II virtual infrastructures
- layer III contain virtual machines
A virtual infrastructure consists of the components, such as,
- Virtual infrastructure services
- Automated solutions to optimize the IT process.
Reasons for using virtualization are,
- consolidate the workloads of under-utilized servers.
- provides a secured and sandbox for running an untrusted application.
- helps in building a secured computing platform.
- provides an illusion of hardware.
- simulates networks of independent computers.
- for performance monitoring.
- provides fault and error containment.
- tools are good for research and academic experiments.
- To understand virtualization, the hypervisor should be addressed first.
- The hypervisor enables the communication between hardware and a virtual machine so that the virtualization accomplishes with this abstraction layer (hypervisor).
- The hypervisor is originally called a virtual machine monitor (VMM).
- These two terms (Hypervisor and VMM) are typically treated as synonyms.
- A virtual machine monitor (VMM) is a software that manages CPU, memory, I/O data transfer, interrupt, and the instruction set on a given virtualized environment.
- A hypervisor may refer to an operating system (OS) with the VMM.
- Type 2 hypervisor is on the operating system to manage virtual machines easily with the support of hardware configuration from the operating system.
- The extra layer between the hardware and virtual machine in the type 2 hypervisor causes inefficiency compared to the type 1 hypervisor.
- VirtualBox and VMware Workstation are in this category.
- The terms of Host or Guest machine (or domain) are used in the hypervisor to describe different roles.
- The host machine (domain) contains a hypervisor to manage virtual machines, and
- Guest machine (domain) means each virtual machine sitting on a hosted machine in a secure and isolated environment with its own logical domain.
- With these separated roles, the hypervisor is able to offer resource boundaries to multiple virtual machines on the same physical machine.
In other words, the hypervisor is a software layer that creates a virtual environment with virtualized CPU, memory, and I/O (storage and network) devices by abstracting away the underlying physical hardware.
- Virtual machine (VM) typically refers to an encapsulated entity including the operating system and the applications running in it as well.
Types of virtualization
- Server virtualization is a kind of virtualization, used for masking of server resources,
- Network virtualization combines all the resources in a network into channels
- Storage virtualization is a pool of physical storage from a different network of storage devices that appears as a single storage device.
- Desktop Virtualization supports various computing such as utility and dynamism, testing, development, and security.
- Application Virtualization allows server consolidation, application and desktop deployment, business continuity.