Taxonomy of Virtualization Techniques in Cloud Computing
Virtualization techniques can be categorized into several types based on the level of abstraction and the components involved.
- Hardware Virtualization
- Operating System Virtualization
- Application Virtualization
- Storage Virtualization
- Network Virtualization
- Memory Virtualization
- Hardware-Assisted Virtualization
Hardware Virtualization
1. Full Virtualization
- In full virtualization, a hypervisor (also known as a Virtual Machine Monitor)
- Virtual machines (VMs) run independent operating systems, unaware of the underlying hardware.
- Examples include VMware ESXi and Microsoft Hyper-V.
2. Para-Virtualization
- Para-virtualization involves modifying the guest operating system to make it aware of the virtualization layer.
- This collaboration between the hypervisor and the operating system results in improved performance compared to full virtualization.
- Xen is a common example of a para-virtualization hypervisor.
What is Hypervisor?
- A hypervisor, also known as a virtual machine monitor (VMN), is a crucial component in the field of virtualization.
- It is a software of firmware that enables the creation and management of virtual machines (VMs) on a physical host machine.
- The primary purpose of a hypervisor is to abstract and allocate the physical hardware resources.
Types of Hypervisors
- Type 1 Hypervisor (Bare-Metal Hypervisor)
- Installs directly on the hardware and operates without the need for a host operating system.
- Examples: VMware ESXi, Microsoft Hyper-V Server, and Xen.
- Type 2 Hypervisor (Hosted Hypervisor)
- Installs on top of a host operating system and relies on it to manage hardware resources
- Examples: VMware Workstation, Oracle VirtualBox, and Parallel Desktop.
Operating System Virtualization
Containerization
- Containerization provides lightweight virtualization at the application level.
- Containers share the host operating system's kernel but maintain separate user spaces, allowing for efficient resource utilization and rapid application deployment.
- Docker and Kubernetes are popular containerization technologies.
What is Docker?
Docker is a containerization platform that empowers developers to bundle applications and their dependencies into containers.
What is Kubernetes?
- Kubernetes is an open-source container orchestration tool.
- It automates the process of deploying, scaling, and managing applications stored in containers.
- Kubernetes works seamlessly with container technologies like Docker.
Application Virtualization
- Presentation virtualization, also known as application virtualization, separates the execution of software from the end-user device.
- The application runs on a server, and only the user interface is transmitted to the client.
- Example: Citrix XenApp is a presentation virtualization solution.
Storage Virtualization
Block level Virtualization
- Block-level virtualization abstracts storage devices into virtual blocks, allowing them to be managed independently.
- Example: Storage Area Networks (SANs) often use block-level virtualization.
File-level Virtualization
- File-level virtualization operates at the file system level, abstracting physical file locations.
- Examples: Network Attached Storage (NAS) systems leverage file-level virtualization.
Network Virtualization
- Network virtualization abstracts networking resources, allowing the creation of virtual networks within a physical network infrastructure.
- VMware NSX and Open vSwitch are examples of technologies that provide network virtualization, ending the isolation and segmentation of network traffic.
What is VMware NSX?
VMware NSX is a network virtualization platform that abstracts networking resources.
What is Open vSwitch?
Open vSwitch is an open-source software switch designed to be used as a virtual switch in virtualized server environments.
Memory Virtualization
- Memory virtualization allows the allocation of more virtual memory than physically available.
- Memory overcommitment techniques, such as page sharing and compression, optimize memory usage.
- Example: VMware ESXi uses memory overcommitment for efficient resource utilization.
Hardware-Assisted Virtualization
- Hardware-assisted virtualization utilizes specific features in modern processors to enhance virtualization performance.
- Intel VT-x and AMD-V are examples of hardware virtualization extensions that improve the efficiency of virtualized environments.
Conclusion
Understanding the taxonomy of virtualization techniques is crucial for making informed decisions about resource allocation and system architecture.