Unit-2
Cloud Resource Virtualization
Hypervisors
• A hypervisor (or Virtual Machine Monitor, VMM) is software that lets multiple operating
systems run on a single physical machine.
• It manages hardware resources (CPU, memory, storage) and allocates them to virtual machines
(VMs) without interference.
• This improves hardware utilization, reduces costs, and provides flexibility in cloud and server
environments.
• The hypervisor pools and allocates physical computing resources as needed by the VM, enabling
efficiency, flexibility and scalability
• Before hypervisors hit the mainstream, most physical computers could only run one operating
system at a time.
Hypervisors
How it works
• A hypervisor runs on hardware or a host OS to create and manage virtual machines (VMs),
each with its own virtual CPU, memory, storage, and network.
• It intercepts guest OS requests and translates them to physical hardware, ensuring
isolation, security, and stability.
Hypervisors
Types of Hypervisor
• There are two main types of hypervisors, each with a different architecture:
1. Type 1 Hypervisor
2. Type 2 Hypervisor
Hypervisors
Type 1 hypervisor
• A Type 1 hypervisor runs directly on the host's hardware.
• It doesn't rely on a host operating system.
• This architecture offers better performance and security because there is no intermediary OS.
• It's the standard for enterprise-level data centers and cloud providers like Amazon Web Services
(AWS) and Microsoft Azure.
Examples: VMware ESXi, Microsoft Hyper-V, KVM (Kernel-based Virtual Machine), and Xen.
Pros:
• High performance (direct hardware access).
• Strong security (no intermediate OS layer).
• Suitable for mission-critical workloads.
Cons:
• Requires dedicated hardware.
• Setup and management are complex compared to Type-2.
Hypervisors
Type 2 hypervisor
• A Type 2 hypervisor runs on top of a conventional operating system (like Windows, macOS, or
Linux).
• It's essentially an application within the host OS.
• This type is generally used for desktop virtualization, development, and testing environments
where a user needs to run multiple OSs on their personal computer.
• Performance is slightly lower than Type 1 due to the overhead of the host OS.
Examples: Oracle VM VirtualBox, VMware Workstation, and Parallels Desktop.
Pros:
• Easy to install and use.
• Useful for development, testing, and malware analysis.
• Provides good host–guest integration features.
Cons:
• Slower performance (no direct hardware access).
• Security depends on the host OS; compromise of host may affect guests.
Virtualizations
Application Virtualization
Concept: Encapsulating an application so it runs independently of the underlying OS. The user accesses the
app remotely without installing it.
Example: Using Microsoft App-V or Citrix to run Microsoft Excel on an iPad. The app runs on a server, but
the user sees it on their tablet.
Network Virtualization
•Decoupling the network functions (routing, switching, firewalls) from the physical cables and switches. It
creates a "Software-Defined Network" (SDN).
•Example: AWS VPC (Virtual Private Cloud). You create subnets and route tables in software, without
touching a physical router.
Virtualizations
Desktop Virtualization
Concept: Hosting a user's desktop environment on a centralized server. The user connects via a
"thin client" (a basic PC).
Example: Amazon WorkSpaces. An employee logs in from a Chromebook, but sees a full high-
power Windows 11 desktop running in the cloud
Storage Virtualization
Concept: Pooling physical storage from multiple network storage devices into what appears to be a single
storage device managed from a central console.
Example: SAN (Storage Area Network) or Amazon S3. You see a single "bucket" or drive, but the data is
physically spread across hundreds of hard drives.
Virtualizations
Server Virtualization
Concept: Partitioning one physical server into multiple virtual servers.
Example: Running a Web Server (Linux), a Database (Windows), and a Mail Server (Linux) all on one
physical machine using VMware vSphere
Data Virtualization
Concept: An abstract layer that allows you to access data from multiple different sources (databases, files,
cloud) as if it were in a single place, without moving the data.
Example: Denodo or Oracle Data Service. A dashboard queries "Sales Data," and the virtualization layer
pulls it from both an old SQL database and a new Cloud Data Lake instantly.
Implementation Levels of Virtualization
• The main function of the software layer for virtualization is to virtualize the physical
hardware of a host machine into virtual resources to be used by the VMs, exclusively.
• This can be implemented at various operational levels, as we will discuss shortly.
• The virtualization software creates the abstraction of VMs by interposing a
virtualization layer at various levels of a computer system.
• Common virtualization layers include:
• Instruction set architecture (ISA) level
• Hardware level,
• Operating system level
• Library support level
• Application level
Implementation Levels of Virtualization
Virtualizations
Implementation Levels of Virtualization
Instruction Set Architecture Level (ISA)
• At the ISA level, virtualisation is performed by emulating a given ISA on the host
machine.
• For example, MIPS binary code can run on an x86-based host machine with the help
of ISA emulation.
• With this approach, it is possible to run a large amount of legacy binary code written
for various processors on any given new hardware host machine.
• Instruction set emulation leads to virtual ISAs created on any hardware machine.
• The basic emulation method is through code interpretation.
• An interpreter program interprets the source instructions to target instructions one by
one.
• One source instruction may require tens or hundreds of native target instructions to
perform its function.
Implementation Levels of Virtualization
Hardware Abstraction Level
• Hardware-level virtualization is performed right on top of the bare hardware.
• On the one hand, this approach generates a virtual hardware environment for a VM and
process manages the underlying hardware through virtualization.
• The idea is to virtualize a computer’s resources, such as its processors, memory, and I/O
devices.
Operating System Level
• This refers to an abstraction layer between the traditional OS and user applications.
• OS-level virtualization creates isolated containers on a single physical server and the OS
instances utilize the hardware and software in data centers.
• The containers behave like real servers.
• OS-level virtualization is commonly used in creating virtual hosting environments to
allocate hardware resources among a large number of mutually distrusting users.
• It is also used, to a lesser extent, in consolidating server hardware by moving services on
separate hosts into containers or VMs on one server.
Implementation Levels of Virtualization
Library Support Level
• Most applications use APIs exported by user-level libraries rather than using lengthy
system calls by the OS.
• Since most systems provide well-documented APIs, such an interface becomes another
candidate for virtualization.
• Virtualization with library interfaces is possible by controlling the communication link
between applications and the rest of a system through API hooks.
• The software tool WINE has implemented this approach to support Windows applications
on top of UNIX hosts.
User-Application Level
• Virtualization at the application level virtualizes an application as a VM.
• On a traditional OS, an application often runs as a process.
• Therefore, application-level virtualization is also known as process-level virtualization.
• The most popular approach is to deploy separate hosts into containers or VMs on one
server.