Cloud Computing Notes
Unit -4th
Virtualization for Cloud
What is Virtualization?
Virtualization is the process of creating virtual instances of computing resources
like servers, storage, and networks. Virtualization is the "creation of a virtual
(rather than actual) version of something, such as a server, a desktop, a storage
device, an operating system or network resources". In other words,
Virtualization is a technique, which allows to share a single physical instance of
a resource or an application among multiple customers and organizations. It
does by assigning a logical name to a physical storage and providing a pointer to
that physical resource when demanded.
Types of Virtualization
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization
Server Virtualization:This splits a physical server into multiple virtual servers,
each functioning independently. It helps improve performance, cut costs and
makes tasks like server migration and energy management easier.Divides a
single physical server into multiple virtual servers.
Example: VMware vSphere, Microsoft Hyper-V.
Network Virtualization: This allows multiple virtual networks to run on the same
physical network, each operating independently. You can quickly set up virtual
switches, routers, firewalls, and VPNs, making network management more
flexible and efficient. Creates virtual networks over physical infrastructure.
Example: VLANs (Virtual Local Area Networks), SDN (Software-Defined
Networking).
Desktop Virtualization: With desktop virtualization, your operating system is
stored on a server and can be accessed from anywhere on any device. It’s great
for users who need flexibility, as it simplifies software updates and provides
portability.Allows remote access to desktop environments.
Example: VDI (Virtual Desktop Infrastructure).
Application Virtualization: This lets you use an application on your local device
while it’s actually hosted on a remote server. Your personal data and the app’s
settings are stored on the server, but you can still run it locally via the internet.
It’s useful if you need to work with multiple versions of the same software.
Common examples include hosted or packaged apps. Runs applications in a
virtual environment instead of directly on an OS.
Example: Windows App-V, Citrix XenApp.
Data Virtualization: This brings data from different sources together in one
place without needing to know where or how it’s stored. It creates a unified view
of the data, which can be accessed remotely via cloud services. Companies like
Oracle and IBM offer solutions for this.
History and Evolution of Virtualization
Time
Milestone
Period
IBM introduced the first virtualization concept with IBM CP-40 and CP-67. It
1960s
allowed multiple OS to run on a mainframe.
1970s -
Virtualization was mainly used in large enterprises and research labs.
1980s
1990s VMware introduced virtualization on x86 architecture (Intel-based systems).
2000s Virtualization became popular in businesses for server consolidation.
2010s– Virtualization is the backbone of Cloud Computing and is widely used in data
Now centers, desktop computing, and mobile platforms.
Importance of Virtualization in Cloud Computing
Virtualization plays a core role in building and managing cloud environments.
Key Benefits:
1. Resource Optimization:
o It allows multiple virtual servers to run on a single physical server.
o Better use of hardware resources like CPU, memory, and storage.
2. Cost Reduction:
o Reduces the need for physical hardware.
o Saves on power, cooling, and maintenance.
3. Scalability:
o Easy to create, clone, or remove virtual machines based on
demand.
4. Isolation:
o Each VM works independently; if one crashes, others are not
affected.
5. Flexibility & Portability:
o VMs can be moved from one server to another easily.
o Helps in backup, disaster recovery, and system migration.
6. Foundation of Cloud:
o Public, private, and hybrid clouds all use virtualization to provide
services like IaaS (Infrastructure as a Service).
Need for Virtualization in Cloud
Why Virtualization is Essential in Cloud
Cloud computing provides on-demand resources like storage, CPU, memory,
etc., to users over the internet. To make this possible efficiently and affordably,
virtualization is necessary.
Key Reasons:
Efficient Resource Sharing:
Virtualization allows multiple users or applications to share the same physical
hardware.
Isolation:
Each user or application runs in a separate virtual machine (VM), which increases
security and stability.
Scalability and Flexibility:
Cloud providers can quickly create or destroy VMs based on user demand.
Cost-Effective:
Reduces the need for buying more physical hardware.
Disaster Recovery & Backup:
VMs can be easily backed up, restored, or migrated across servers.
Automation:
Virtual machines can be deployed automatically using scripts or tools,
supporting DevOps and CI/CD pipelines.
Role of Virtualization in Resource Optimization
Virtualization helps cloud providers and businesses to maximize the use of
physical hardware and minimize wastage.
How it Optimizes Resources:
Physical Environment Virtualized Environment
One OS per server Multiple VMs on one server
Idle resources Shared resources among VMs
High cost & underuse Better utilization, lower cost
Key Techniques:
CPU Virtualization: Divide CPU cores among virtual machines.
Memory Virtualization: Share and dynamically allocate RAM to VMs.
Storage Virtualization: Pool physical disks and allocate storage as needed.
Network Virtualization: Create virtual networks (VLANs) within the same
physical hardware.
3. Real-World Cloud Scenarios Using Virtualization
Example 1: Amazon Web Services (AWS)
AWS uses virtualization (Xen and Nitro Hypervisor) to run EC2 instances (virtual
servers).
Users can launch any OS (Linux, Windows) without worrying about hardware.
Example 2: Microsoft Azure
Azure uses Hyper-V to create virtual machines and virtual networks.
Virtualization helps offer services like VM scale sets and containers.
Example 3: Google Cloud Platform (GCP)
GCP runs Compute Engine using KVM-based virtualization for secure and
isolated VMs.
Example 4: Virtual Desktop Infrastructure (VDI)
Businesses use virtualization to run employee desktops on virtual machines
hosted in the cloud.
Increases security, control, and remote access.
Pros of Virtualization
1. Efficient Resource Utilization
Physical servers are often underutilized.
Virtualization allows multiple virtual machines (VMs) to run on a single physical
machine.
This maximizes the use of CPU, memory, and storage resources.
2. Cost-Effectiveness
Reduces the need for purchasing multiple physical servers.
Saves on hardware cost, electricity, cooling, and space.
Ideal for small businesses and startups.
3. Scalability
Easily add or remove virtual machines based on workload.
Helps manage dynamic resource demands efficiently.
4. Flexibility
VMs can run different operating systems (Windows, Linux) on the same host.
Easy to clone, snapshot, or move VMs to other machines or locations.
5. Isolation
Each VM runs independently.
If one VM fails or gets attacked, others remain safe.
6. Security and Easy Testing
Safe environment for testing software or updates without affecting the main
system.
Ideal for development, testing, and training purposes.
Cons of Virtualization
1. Performance Overhead
VMs don’t perform exactly like real hardware.
Some CPU and memory is used by the hypervisor, reducing overall performance.
2. Complexity
Setting up and managing virtual environments requires skilled IT staff.
Backup, storage management, and networking need careful planning.
3. Security Risks
If not configured properly, one compromised VM can become a security threat.
Hypervisor attacks (e.g., escape attacks) can affect all VMs.
4. Licensing and Cost Concerns
Some hypervisors (like VMware) have licensing fees.
Managing large virtual environments may require paid tools and enterprise
solutions.
Comparison Between System-Level and Process-Level Virtual Machines
Aspect System-Level Virtual Machine Process-Level Virtual Machine
Emulates a complete physical computer, Provides a platform to run a single
Definition
including hardware and OS. application or process.
To run multiple operating systems on a To execute a specific program
Purpose
single physical machine. independently from OS.
Allows full OS installation inside VM (e.g., Runs on host OS, does not need a
OS Support
Windows/Linux). separate OS.
High — as it needs resources to run full OS Low — only runs a single process,
Resource Usage
and apps. so less resource usage.
Full isolation from host and other VMs Limited isolation — only isolates
Isolation
(secure and separate). the process, not the OS.
JVM (Java Virtual Machine), .NET
Examples VMware, VirtualBox, Hyper-V, KVM, Xen
CLR, Python Interpreter
Used in cloud infrastructure, server Used to run language-specific
Use Case
virtualization, testing OS. programs across platforms.
Slightly slower due to full system Faster for single app execution,
Performance
emulation. lightweight.
Management More complex to manage due to full OS
Easier to manage and maintain.
Complexity handling.
Architecture
A System Virtual Machine provides a complete system platform that supports
the execution of a full operating system (OS). It simulates a physical computer.
Architecture:
markdown
CopyEdit
Hardware
↓
Hypervisor (Virtual Machine Monitor)
↓
Multiple System VMs
Each VM has:
- Virtual CPU
- Virtual Memory
- Virtual Storage
- Virtual Network Interface
- Guest OS
- Applications
Hypervisor Types:
Type 1 (Bare-metal): Runs directly on hardware (e.g., VMware ESXi,
Hyper-V)
Type 2 (Hosted): Runs on host OS (e.g., VirtualBox, VMware Workstation)
Examples:
VMware ESXi
Oracle VirtualBox
Microsoft Hyper-V
KVM (Kernel-based Virtual Machine)
Xen
Use Cases:
Running multiple OS on a single machine
Server consolidation in data centers
OS testing and development
Disaster recovery environments
Cloud Infrastructure (e.g., AWS EC2)
System VM vs Physical Systems
Feature System Virtual Machine Physical System
Hardware
Indirect (through hypervisor) Direct
Access
OS Installation Multiple OS in VMs Only one OS
High (VMs can be moved
Portability Low
easily)
Cost-effective (shared Expensive (multiple servers
Cost
hardware) needed)
Isolation Strong (each VM isolated) Depends on system security
Process Virtual Machines (Process VM)
Concept and Working
A Process Virtual Machine is designed to run a single program or application,
providing a platform-independent execution environment.
How it Works:
Application code is compiled into intermediate code (bytecode).
The Process VM (like JVM) interprets or compiles this code into native
machine code during execution.
Examples
Process VM Platform
JVM (Java Virtual Machine) Runs Java bytecode across OSs
.NET CLR (Common Language Runtime) Runs .NET applications
Python Interpreter Executes Python code
Ruby VM (YARV) Executes Ruby programs
Advantages:
Platform independence (write once, run anywhere)
Easier debugging and development
Safer execution (sandboxing)
Automatic memory management (Garbage Collection)
Limitations:
Slower than native code execution
Limited to specific programming languages
Less control over hardware
Not suitable for full OS virtualization
Virtual Machine Monitor (VMM)
What is VMM / Hypervisor?
Virtual Machine Monitor (VMM) or Hypervisor is a software layer that
enables virtualization.
It sits between the hardware and virtual machines (VMs).
Responsible for creating, running, and managing VMs.
Functions of VMM
Resource Allocation: Distributes CPU, memory, storage to VMs.
Isolation: Ensures VMs do not interfere with each other.
Monitoring: Tracks VM usage, performance, and status.
Security: Prevents unauthorized access and VM attacks.
Migration: Enables moving VMs between hosts (live migration).
Hardware Abstraction: Provides a standard interface for VMs.
Virtual Machine Properties
Encapsulation
A VM is stored as a single file or set of files.
Easy to copy, move, backup, or restore a VM.
Useful for disaster recovery and testing environments.
Isolation
Each VM operates independently.
Fault or crash in one VM doesn’t affect others.
Improves security and system stability.
Portability
VMs can run on different hardware or hypervisors.
Helps in migration and load balancing across data centers.
Performance
Virtualization introduces some overhead.
Modern VMMs use hardware-assisted virtualization to improve
performance.
Balance between isolation and speed is critical.
Manageability
VMs can be easily started, stopped, cloned, or migrated.
Integration with cloud platforms (e.g., AWS, Azure) improves automation.
Security Aspects
VMs are isolated environments, reducing attack spread.
Hypervisors manage access control and firewalling between VMs.
Snapshot and rollback features help recover from malware attacks.
Interpretation and Binary Translation
Interpretation vs Binary Translation
Feature Interpretation Binary Translation
Execution Line-by-line execution of Converts code blocks to native
Style code machine code
Speed Slower Faster than interpretation
Complexity Simple to implement More complex
Techniques in Virtualization
Dynamic Binary Translation (DBT): Converts guest OS instructions at
runtime.
Paravirtualization: Guest OS modified to work efficiently with VMM.
Hardware-assisted Virtualization: Uses CPU features (Intel VT-x, AMD-V).
Impact on Performance
Interpretation is easier but slower.
Binary Translation offers better speed, especially with DBT.
Hardware support further boosts virtualization efficiency.
High-Level Language Virtual Machines (HLL VM)
An HLL VM runs programs written in high-level programming languages.
Provides an abstract platform between source code and machine.
Examples
HLL VM Language Supported
JVM Java
.NET CLR C#, VB.NET
Python Interpreter Python
Role in Cross-Platform Execution
Programs compiled into intermediate code (e.g., bytecode).
This code runs on any platform that supports the HLL VM.
Ensures platform independence.
Benefits in Cloud-Based Applications
Easy deployment across platforms (Windows, Linux, etc.).
Enables microservices, containerization, and serverless computing.
Enhances portability and flexibility in cloud environments.
Supervisors in Virtualization
What Are Supervisors?
A Supervisor in virtualization refers to the lowest-level software
component that controls and manages the execution environment of
virtual machines.
It is another term often used for Hypervisor or Virtual Machine Monitor
(VMM), especially in older or low-level system contexts.
Supervisors operate in kernel mode with privileged access to hardware
resources.
Role of Supervisors in Managing Virtual Machines
VM Creation & Deletion: Allocate resources to new VMs or remove
unused ones.
Resource Allocation: Distribute CPU, memory, storage, and network
among VMs.
Isolation: Ensure VMs do not interfere with each other’s operations.
Monitoring & Control: Track VM performance, errors, and status.
Security Enforcement: Protect VMs from unauthorized access or
malicious code.
Fault Tolerance: Recover or restart crashed VMs to maintain uptime.
Example Architectures Using Supervisors
Architecture Supervisor Role
Xen Hypervisor acts as the supervisor, managing guest OSes
Xen
through Dom0.
KVM The Linux kernel becomes the supervisor through KVM modules.
VMware
Bare-metal hypervisor with built-in supervisor to manage VMs.
ESXi
Popular Virtualization Platforms –
1. Xen – Open-Source Hypervisor
Type: Bare-metal (Type 1)
Architecture:
o Uses Dom0 (privileged domain) for managing other VMs (DomU).
Advantages:
o Lightweight, fast boot time, good performance.
o Supports paravirtualization and hardware virtualization.
Use Cases:
o Amazon Web Services (AWS)
o Citrix XenServer
2. KVM – Kernel-based Virtual Machine
Type: Hosted (Type 2, but integrated in Linux)
Architecture:
o Built into Linux kernel as a module.
o Uses QEMU for device emulation.
Advantages:
o Directly uses Linux security features (SELinux, cgroups).
o Good for integrating with open-source tools like OpenStack.
Use Cases:
o Enterprise Linux distributions (RHEL, Ubuntu)
o Public and private clouds
Popular Virtualization Platforms –
🔹 1. VMware
Type: Offers both Type 1 (ESXi) and Type 2 (Workstation)
Features:
o Advanced VM management
o High availability, fault tolerance, and vMotion
Use Cases:
o Data centers
o Cloud infrastructure (VMware Cloud)
🔹 2. Oracle VirtualBox
Type: Type 2 Hypervisor
Features:
o Cross-platform (Windows/Linux/Mac)
o Easy to use GUI for students and developers
Use Cases:
o Personal use, testing labs, learning environments
🔹 3. Microsoft Hyper-V
Type: Type 1 (Bare-metal for Windows Server) and Type 2 (Windows 10+)
Features:
o Integrated with Windows OS
o Good for Windows-based enterprise environments
Use Cases:
o Windows server virtualization
o Azure cloud support
🔹 Performance Comparison
Feature VMware VirtualBox Hyper-V
Speed Very High Moderate High
GUI User-Friendliness Moderate High Moderate
Cloud Integration Yes (vSphere) No Yes (Azure)
Cost Paid (ESXi) Free Free (with Windows)