0% found this document useful (0 votes)
7 views53 pages

Cloud Resource Virtualization

The document discusses cloud resource virtualization, highlighting its importance in simplifying resource management, enhancing security, and improving performance. It explains various virtualization types, including full virtualization, para-virtualization, and OS-level virtualization, along with their respective functionalities and use cases. Additionally, it covers different levels of virtualization, such as ISA, HAL, and application-level virtualization, detailing tools and technologies like JVM and WINE that facilitate these processes.

Uploaded by

honeykanna2024
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views53 pages

Cloud Resource Virtualization

The document discusses cloud resource virtualization, highlighting its importance in simplifying resource management, enhancing security, and improving performance. It explains various virtualization types, including full virtualization, para-virtualization, and OS-level virtualization, along with their respective functionalities and use cases. Additionally, it covers different levels of virtualization, such as ISA, HAL, and application-level virtualization, detailing tools and technologies like JVM and WINE that facilitate these processes.

Uploaded by

honeykanna2024
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Cloud Resource Virtualization

Abstraction, Layering, and


Virtualization Concepts
Motivation
• There are many physical realizations of the fundamental
abstractions necessary to describe the operation of a computing
systems.
– Interpreters.
– Memory.
– Communications links.
• Virtualization is a basic tenet of cloud computing, it simplifies the
management of physical resources for the three abstractions.
• The state of a virtual machine (VM) running under a virtual machine
monitor (VMM) can de saved and migrated to another server to
balance the load.
• Virtualization allows users to operate in environments they are
• familiar with, rather than forcing them.
• Cloud resource virtualization is important for:
– System security, as it allows isolation of services running on
the same hardware.
– Performance and reliability, as it allows applications to migrate
from one platform to another.
– The development and management of services offered by a
provider.
– Performance isolation
What is Virtualization?
• Virtualization is the process of creating a virtual version of resources such
as servers, storage, networks, or applications, allowing multiple workloads
to share the same physical resources.
Why Virtualization Matters
• Optimizes hardware usage
• Improves scalability
• Reduces cost
• Enables cloud computing
• Isolates environments securely
Virtualization
 Simulates the interface to a physical object by:
 Multiplexing: creates multiple virtual objects from one instance
of a physical object. Example - a processor is multiplexed
among a number of processes or threads.
 Aggregation: creates one virtual object from multiple physical
objects. Example - a number of physical disks are aggregated
into a RAID disk.
 Emulation: constructs a virtual object from a different type of a
physical object. Example - a physical disk emulates a Random
Access Memory (RAM).
 Multiplexing and emulation. Examples - virtual memory with
paging multiplexes real memory and disk; a virtual address
emulates a real address.
Layering
 Layering – a common approach to manage system complexity.
 Minimizes the interactions among the subsystems of a complex system.
 Simplifies the description of the subsystems; each subsystem is
abstracted through its interfaces with the other subsystems.
 We are able to design, implement, and modify the individual
subsystems independently.
 Layering in a computer system.
 Hardware.
 Software.
 Operating system.

 Libraries.

 Applications
Interfaces
 Instruction Set Architecture (ISA) – at the
boundary between hardware and software.

 Application Binary Interface (ABI) – allows the


ensemble consisting of the application and the library
modules to access the hardware; the ABI does not
include privileged system instructions, instead it
invokes system calls.

 Application Program Interface (API) - defines the set


of instructions the hardware was designed to execute
and gives the application access to the ISA; it includes
HLL library calls which often invoke system calls.
Type of Virtualization
• Full Virtualization
• Para-Virtualization
• OS-Level Virtualization
Full virtualization
• Full virtualization uses a specific software called a
hypervisor. The hypervisor interacts straight with the
physical server’s CPU and disk space and serves as a
virtual server’s operating systems program.
• Hence, the hypervisor keeps each virtual server wholly
independent and unaware of the separate virtual
servers working on the physical machine.
• The hypervisor observes the physical server’s
resources. As virtual servers run applications, the
hypervisor sends resources from the physical machine
to the relevant virtual server.
Para-virtualization
• The para-virtualization program is a little
different. Unlike the full virtualization technique,
the guest servers in a para-virtualization system
are aware of one another.
• Therefore, a para-virtualization hypervisor
doesn’t require as much processing power to
control the guest operating systems.
• Each OS is already conscious of the demands the
other operating systems are setting on the
physical server. The entire system works
collectively as a cohesive unit.
OS-Level Virtualization
• An OS-level virtualization program doesn’t use a
hypervisor at all. Instead, the virtualization ability
is part of the host OS, which fulfills all the
functions of a fully virtualized hypervisor.
• The most unusual limitation of this approach is
that all the guest servers must work on the same
OS. Hence, each virtual server remains free from
all the others, but you can’t mix-match operating
systems between them.
• As all the guest operating systems must be the
same, this is called a homogeneous environment.
Five levels of virtualization
• Instruction set architecture (ISA) level
• Hardware Abstraction level (HAL)
• Operating system level
• Library support level
• Application level
Instruction Set Architecture Level
• In ISA, virtualization works through an ISA emulation. This is
helpful to run heaps of legacy code which was originally
written for different hardware configurations.
• These codes can be run on the virtual machine through an
ISA.
• A binary code that might need additional layers to run can
now run on an x86 machine or with some tweaking, even
on x64 machines. ISA helps make this a hardware-agnostic
virtual machine.
• The basic emulation, though, requires an interpreter. This
interpreter interprets the source code and converts it to a
hardware readable format for processing.
BIRD
• Type: Binary Instrumentation Runtime Decoder
• Purpose: Analyzes and modifies binaries at
runtime
• ISA-Level Role: Monitors instruction execution
without modifying source code
• Features: Performance profiling, debugging,
security testing
• Use Case: Optimizing code execution and
monitoring low-level instructions
Dynamo
• Type: Dynamic Optimization System (by HP Labs)
• Purpose: Optimizes binary execution at runtime
• ISA-Level Role: Uses Dynamic Binary Translation
to recompile optimized code paths
• Features: Trace-based optimization, improves
performance transparently
• Use Case: Speeding up applications without
modifying them
Hardware Abstraction Level
• As the name suggests, this level helps perform virtualization at the
hardware level. It uses a bare hypervisor for its functioning.
• This level helps form the virtual machine and manages the
hardware through virtualization.
• It enables virtualization of each hardware component such as I/O
devices, processors, memory, etc.
• This way multiple users can use the same hardware with numerous
instances of virtualization at the same time.
• IBM had first implemented this on the IBM VM/370 back in 1960. It
is more usable for cloud-based infrastructure.
• Thus, it is no surprise that currently, Xen hypervisors are using HAL
to run Linux and other OS on x86 based machines.
VMware (HAL Hypervisor)
• Type: Type 1 & Type 2 hypervisor
• Function: Abstracts hardware resources for
virtual machines
• Key Products: ESXi (bare-metal), Workstation,
Fusion
• Features: Efficient virtualization, supports
multiple OS environments
• Use Case: Enterprise virtualization, desktop
virtualization, cloud infrastructure
Microsoft Virtual PC
• Type: Type 2 (hosted) hypervisor
• Function: Runs multiple OS instances within
Windows
• Features: Easy setup, supports older Windows
environments
• Use Case: Legacy app testing, multi-OS
development
• Status: Replaced by Hyper-V in modern
Windows systems
Xen
• Type: Open-source Type 1 (bare-metal)
hypervisor
• Function: Uses para-virtualization for better
performance
• Features: Low overhead, high scalability,
supports hypercalls
• Use Case: Cloud environments, server
consolidation, multi-tenant systems
Operating System Level
• At the operating system level, the virtualization model
creates an abstract layer between the applications and the
OS.
• It is like an isolated container on the physical server and
operating system that utilizes hardware and software. Each
of these containers functions like servers.
• When the number of users is high, and no one is willing to
share hardware, this level of virtualization comes in handy.
• Here, every user gets their own virtual environment with
dedicated virtual hardware resources. This way, no conflicts
arise.
Virtual Environment
• OS-level virtualization is a technique that allows
multiple isolated user-space environments
(often called containers, jails, or zones) to run on
a single operating system kernel.
• Unlike hypervisor-based virtualization (e.g.,
VMware, Xen), OS-level virtualization does not
virtualize hardware.
• Instead, it shares the same kernel but isolates
user-space environments.
• Each environment behaves like a separate virtual
machine but is lighter and faster.
Virtual Environment
• Key Features
– Single Kernel → All containers share the same OS
kernel.
– Lightweight → Less overhead compared to full
virtualization.
– Fast Start-up → Containers boot almost instantly.
– Resource Isolation → Uses control groups (cgroups)
and namespaces to separate processes, memory, and
network.
– Better Performance → Near-native execution speed
since there is no hardware emulation.
Virtual Environment
• Examples
– Docker → The most popular OS-level virtualization
platform.
– LXC (Linux Containers) → Lightweight Linux
containers.
– OpenVZ → Container-based virtualization for Linux.
– FreeBSD Jails → Isolated environments for FreeBSD.
– Solaris Zones → OS-level virtualization for Solaris
systems.
Virtual Environment
• Use Cases
– Hosting multiple isolated applications.
– Microservices and DevOps environments.
– Testing and development environments.
– Cloud-native platforms (e.g., Kubernetes uses OS-
level containers)
FVM
• Feather-weight Virtual Machine (FVM) is a
specialized OS-level virtualization technique
designed for Windows platforms.
It creates multiple isolated virtual environments
within the same Windows kernel.
• Unlike Docker (mainly Linux-based), FVM
virtualizes the Windows OS environment.
• It intercepts system calls at the OS API level to
provide isolated virtual environments.
• Multiple applications can run concurrently
without interfering with each other.
FVM
• Key Features
– Fast Deployment → Starts instantly since no OS
booting is needed.
– Lightweight → Less resource consumption than
hypervisor-based VMs.
– Shared Kernel → Similar to containers, but Windows-
specific.
– Application Isolation → Each app gets its own isolated
file system, registry, and process space.
– Security → Prevents apps in one FVM from accessing
resources in another.
FVM
• Advantages
– No need to install separate guest operating systems.
– High density — can run hundreds of isolated environments
on a single Windows host.
– Ideal for application testing and malware analysis.
• Use Cases
– Running multiple versions of the same application in
isolation.
– Testing Windows-based applications safely.
– Sandboxing suspicious software.
– Enterprise environments requiring multiple isolated
Windows environments.
Library Level
• OS system calls are lengthy and cumbersome. Which is
why applications opt for APIs from user-level libraries.
• Most of the APIs provided by systems are rather well
documented. Hence, library level virtualization is
preferred in such scenarios.
• Library interfacing virtualization is made possible by
API hooks. These API hooks control the communication
link from the system to the applications.
• Some tools available today, such as vCUDA and WINE,
have successfully demonstrated this technique.
WINE
• Type: Library-level compatibility layer
• Purpose: Allows Windows applications to run on Linux, macOS,
BSD, and other POSIX-compliant systems.
• Working:
– Intercepts Windows API calls from the application.
– Translates them into equivalent POSIX system calls for the host OS.
• Features:
– No need to install Windows OS.
– Supports thousands of Windows apps and games.
– Faster than running a full Windows VM.
• Use Cases:
– Running MS Office on Linux.
– Playing Windows games on Linux.
– Cross-platform software testing.
Windows App

WINE Layer

POSIX API

Linux/Unix Kernel
vCUDA
• Type: Library-level GPU Virtualization
• Purpose: Allows application that use NVIDIA CUDA libraries to run
on virtualized or remote GPUs.
• Working:
– Intercepts CUDA API calls.
– Redirects them to remote or virtual GPU resources.
• Features:
– Supports GPU sharing among multiple virtual machines.
– Improves GPU resource utilization in cloud environments.
– No modification needed in CUDA applications.
• Use Cases:
– GPU virtualization in cloud computing.
– High-performance computing (HPC) clusters.
– Running GPU-intensive workloads on virtual environments.
CUDA App

vCUDA Layer

Virtual CUDA Driver

Physical GPU

NVIDIA Driver
Application Level
• Application-level virtualization comes handy when you wish
to virtualize only an application. It does not virtualize an
entire platform or environment.
• On an operating system, applications work as one process.
Hence it is also known as process-level virtualization.
• It is generally useful when running virtual machines with
high-level languages. Here, the application sits on top of
the virtualization layer, which is above the application
program.
• The application program is, in turn, residing in the
operating system.
• Programs written in high-level languages and compiled for
an application-level virtual machine can run fluently here.
JVM
• The Java Virtual Machine (JVM) is an application-level
virtualization environment that allows Java bytecode
to run on any device or operating system without
modification.
• How JVM Works
– Java source code (.java) → Compiled into bytecode (.class)
using javac.
– Bytecode is executed by the JVM.
– JVM translates bytecode into machine code using an
Interpreter or Just-In-Time (JIT) compiler.
– The host OS and hardware execute the machine
instructions.
JVM
• Key Features of JVM
– Write Once, Run Anywhere (WORA): Java code runs
on any OS.
– Automatic Memory Management: Uses Garbage
Collection (GC).
– Security: Uses a sandboxed environment to prevent
malicious operations.
– Multithreading: Built-in support for concurrent
execution.
– Portability: JVM implementations exist for Windows,
Linux, macOS, Android, etc
JVM
• Use Cases of JVM
– Android app development.
– Enterprise applications (banking, ERP, CRM).
– Web development (Spring, Hibernate).
– Big Data frameworks (Hadoop, Spark).
.NET Common Language Runtime (CLR)
• The .NET CLR is an application-level virtual machine
developed by Microsoft that allows programs written
in multiple languages (C#, VB.NET, F#, etc.) to run on
different platforms using the .NET ecosystem.
• How CLR Works
– .NET source code (C#, VB.NET, F#) → Compiled into
Intermediate Language (IL) using the .NET compiler.
– IL is executed by the CLR.
– CLR converts IL into native machine code via the Just-In-
Time (JIT) compiler.
– The native code runs on the host OS.
CLR
• Key Features of CLR
– Multi-language Support: Works with C#, VB.NET, F#,
Python, and more.
– Automatic Memory Management: Garbage
Collection (GC).
– Exception Handling: Robust runtime error
management.
– Cross-Platform: With .NET Core and .NET 5+, runs on
Windows, Linux, and macOS.
– Security: Provides code access security and
verification.
• Use Cases of CLR
– Web applications (ASP.NET, Blazor).
– Windows desktop apps (WinForms, WPF).
– Cross-platform mobile apps (Xamarin, MAUI).
– Cloud-native apps on Azure.

You might also like