Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
33 views34 pages

Chapter 4 Virtualization

Virtualization in cloud computing allows multiple operating systems to run on a single physical system, enhancing resource utilization and reducing costs. It employs hypervisors to manage virtual machines, offering benefits like isolation, encapsulation, and hardware independence, while also presenting challenges such as performance overhead and security concerns. The document also discusses various types of virtualization, including server, storage, network, and desktop virtualization, along with emerging trends like containerization and serverless computing.

Uploaded by

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

Chapter 4 Virtualization

Virtualization in cloud computing allows multiple operating systems to run on a single physical system, enhancing resource utilization and reducing costs. It employs hypervisors to manage virtual machines, offering benefits like isolation, encapsulation, and hardware independence, while also presenting challenges such as performance overhead and security concerns. The document also discusses various types of virtualization, including server, storage, network, and desktop virtualization, along with emerging trends like containerization and serverless computing.

Uploaded by

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

Virtualization in Cloud

Computing
Definition
• Virtualization is the ability to run multiple
operating systems on a single physical system
and share the underlying hardware resources*
• It is the process by which one computer hosts
the appearance of many computers.
• Virtualization is used to improve IT throughput
and costs by using physical resources as a pool
from which virtual resources can be allocated.
Virtualization Architecture
• A Virtual machine (VM) is an isolated runtime
environment (guest OS and applications)
• Multiple virtual systems (VMs) can run on a single
physical system
Hypervisor
• A hypervisor, a.k.a. a virtual machine
manager/monitor (VMM), or virtualization
manager, is a program that allows multiple
operating systems to share a single hardware host.
• Each guest operating system appears to have the
host's processor, memory, and other resources all
to itself. However, the hypervisor is controlling the
host processor and resources, allocating what is
needed to each operating system in turn and
making sure that the guest operating systems
(called virtual machines) cannot disrupt each other.
Benefits of Virtualization
• Sharing of resources helps cost reduction
• Isolation: Virtual machines are isolated from
each other as if they are physically separated
• Encapsulation: Virtual machines encapsulate a
complete computing environment
• Hardware Independence: Virtual machines run
independently of underlying hardware
• Portability: Virtual machines can be migrated
between different hosts.
Virtualization in Cloud Computing
Cloud computing takes virtualization one step
further:
• You don’t need to own the hardware
• Resources are rented as needed from a cloud
• Various providers allow creating virtual servers:
– Choose the OS and software each instance will have
– The chosen OS will run on a large server farm
– Can instantiate more virtual servers or shut down
existing ones within minutes
• You get billed only for what you used
Virtualization Architecture
Hypervisor:
A key component of virtualization, the hypervisor manages and
allocates physical hardware to virtual machines (VMs).
• Type 1 Hypervisor (Bare Metal):
 Runs directly on the hardware without a host OS.
 Examples: VMware ESXi, Microsoft Hyper-V, KVM.
 Benefit: Lower latency and overhead, better performance.

• Type 2 Hypervisor (Hosted):


 Runs on top of a host operating system.
 Examples: VMware Workstation, Oracle VirtualBox.
 Benefit: Easier to set up, more suitable for development and testing.
Challenges of Virtualization in the Cloud

 Performance Overhead:
Virtualization introduces some overhead because of resource
sharing, which can lead to performance bottlenecks.
 Security and Multi-Tenancy:
Although VMs are isolated, security challenges arise in shared
infrastructure environments, particularly in public cloud.
 Resource Contention:
When multiple VMs share the same hardware, they might compete
for CPU, memory, or I/O resources, leading to slowdowns.
 Complex Management:
Managing and monitoring virtualized environments can become
complex as workloads and user's scale.
Virtualization Categories
 Server Virtualization
Divides physical servers into multiple virtual machines (VMs), each running its own OS
and applications.
Hosting multiple web servers, databases, or applications on a single physical server,
reducing hardware costs and improving server efficiency.
Use Case: Maximizing resource utilization by hosting multiple workloads on a single
server. Example: VMware, Hyper-V.
Types of Server Virtualization:
 Full Virtualization: Allows any operating system to run without modification by
fully emulating the hardware environment. It is widely compatible but can
introduce performance overhead without hardware assistance.
VMware Workstation, VMware ESXi, and Microsoft Hyper-V use full virtualization.
 Paravirtualization: Requires modifying the guest operating system so that it
interacts directly with the hypervisor. This reduces the overhead and improves
performance but limits the types of operating systems that can be used.
Xen (an open-source hypervisor) is a well-known example of a system that
supports paravirtualization. Initially, Xen only supported paravirtualization, but
it later added support for full virtualization with hardware assistance (HVM).
Virtualization Categories (Cont)
 Storage Virtualization
Abstracts physical storage into a virtual pool for easier
management.
Use Case: Combining storage from multiple devices for better
scalability and flexibility.
Example: SAN, NAS.
• Types of Storage Virtualization:
Block-level Virtualization: Abstracts physical storage blocks
into logical blocks that can be assigned and managed independently.
File-level Virtualization: Abstracts files from their physical
storage locations to create a global namespace for easier
management.
Virtualization Categories (Cont)
 Network Virtualization
Network virtualization abstracts and combines physical network resources, such
as switches, routers, and firewalls, into a single, logical network that can be
dynamically configured and managed.
Use Case: Isolating and managing multiple virtual networks on shared infrastructure.
Example: VLAN, SDN.
 Desktop Virtualization
Use Desktop virtualization separates the desktop environment and applications
from the physical hardware, allowing users to access their desktop from remote
devices.
Use Case: Remote access to corporate desktops, providing a centralized and secure
desktop environment for employees, particularly in BYOD (Bring Your Own Device) or
remote work scenarios.
Example: Virtual Desktop Infrastructure (VDI), Remote Desktop Services (RDS), Desktop-
as-a-Service (DaaS).
Types of Desktop Virtualization
• Virtual Desktop Infrastructure (VDI):
 VDI hosts desktop operating systems (usually Windows or Linux) on virtual
machines (VMs) in a centralized data center or cloud.
 End-users connect to these virtual desktops remotely using thin clients,
laptops, or desktops. The desktop environment runs on a VM, and the user
interacts with it over a network.
 Ideal for organizations that need centralized management and control over
desktop environments.
 Suitable for remote workers, call centers, and scenarios requiring high security
and centralized desktop control.
Examples: VMware Horizon, Citrix Virtual Apps and Desktops.
Types of Desktop Virtualization (Cont)
Remote Desktop Services (RDS)
 In RDS, multiple users share a single operating system instance, usually a
Windows Server, while each user gets their own desktop session.
 Applications and desktop sessions run on a central server, and users
access them remotely using Remote Desktop Protocol (RDP) or other
protocols.
 Cost-effective for businesses that need to provide multiple users with
access to the same set of applications.
 Works well for task-based workers and in environments with simple
application requirements.
 Examples: Microsoft Remote Desktop Services (RDS), Citrix Virtual Apps.
Types of Desktop Virtualization (Cont)
• Desktop-as-a-Service (DaaS)
 DaaS is a cloud-based service where a third-party provider hosts the
virtual desktop infrastructure (VDI) for customers. It’s essentially VDI
delivered as a service from the cloud.
 End-users access their virtual desktops via an internet connection, while
the service provider manages the infrastructure, updates, and security.
 Ideal for businesses looking to reduce IT overhead and infrastructure
costs.
 Perfect for remote and distributed teams needing scalable desktop
environments.
 Examples: Amazon WorkSpaces, Microsoft Windows 365, Citrix DaaS.
Virtualization Categories (Cont)
• Application Virtualization
Runs applications in isolated virtual environments without
installation on the host OS.
Use Case: Simplifies app deployment and eliminates software
conflicts.
Example: VMware ThinApp, Microsoft App-V.
• OS Virtualization
Uses containers to run isolated applications sharing the same
OS kernel.
Use Case: Deploying microservices in cloud environments.
Example: Docker, Kubernetes.
Hypervisor Vulnerabilities
Malicious software can run on the same server:
– Attack hypervisor
– Access/Obstruct other VMs

Guest VM1 Guest VM2

Apps Apps

OS OS

Hypervisor
servers
Physical Hardware
17
Virtualization Tools and Platforms
• VMware
• Microsoft Hyper-V: Windows-native hypervisor, ideal for enterprises
using Microsoft ecosystems.
• KVM (Kernel-based Virtual Machine): Open-source hypervisor built
into Linux, widely used in public clouds.

Cloud-Based Virtualization Platforms:


• Amazon Web Services (AWS): EC2 instances use Xen and Nitro
hypervisors.
• Microsoft Azure: VMs run on Hyper-V-based infrastructure.
• Google Cloud: Uses KVM for its Compute Engine instances.
Roles of the Hypervisor
• Isolating/Emulating resources
– CPU: Scheduling virtual machines
– Memory: Managing memory
– I/O: Emulating I/O devices
• Networking
• Managing virtual machines
Removing the Hypervisor
• Scheduling virtual machines
– One VM per core
• Managing memory
– Pre-allocate memory with processor support
• Emulating I/O devices
– Direct access to virtualized devices
• Networking
– Utilize hardware Ethernet switches
• Managing virtual machines
– Decouple the management from operation
Containers vs. Virtual Machines
• Virtual Machines (VMs):
Full OS with its own kernel, applications, and
libraries.
Heavier, more resource-intensive, but more
isolated.
• Containers:
Share the same OS kernel but run isolated
applications.
Lightweight, faster startup times, and consume
fewer resources.
Future Trends in Virtualization

• Containerization:
Kubernetes and Docker are revolutionizing cloud deployments,
offering lightweight virtualization at the application level.

• Serverless Computing:
Takes virtualization a step further by abstracting infrastructure
management completely.
Example: AWS Lambda, Google Cloud Functions.

• Edge Computing & Virtualization:


Virtualization at the network edge to support IoT and low-latency
applications, enabling faster data processing near the source.
What is Container?
• A container is a lightweight, standalone, and
executable software package that includes
everything an application needs to run, such as
the application code, libraries, dependencies,
and configuration files. Containers provide an
isolated environment in which applications can
run, but they share the host operating system's
kernel, making them much more efficient than
virtual machines (VMs).
History of Containers
• First experimentations
• IBM VM/370 (1972)
• Linux VServers (2001)
• Solaris Containers (2004)
• FreeBSD jails (1999-2000)
• Containers have been around for
a very long time indeed.
History
 dotCloud was a company offering PaaS, which provides developers with an
environment to deploy and run their applications without needing to manage
the underlying infrastructure.
 One of their key technologies, or "secret weapons," was their use of
containers, a way to package and isolate applications along with their
dependencies so they could run reliably across different environments.
 dotCloud developed their own container engine to manage and run these
containers. that allow for multiple isolated Linux systems (containers) on a
single host.
 They also used AUFS (Another Union File System), which is a file system for
managing layered file systems, crucial for creating lightweight containers
where only the differences are stored rather than duplicating entire systems.
 Around 2008, the container engine that dotCloud used started as a simple,
single Python script. This script handled the core functionality of running
containers.
 By 2012, the system had grown in complexity. The container engine now had
around 10 Python components, and dotCloud had roughly 100
microservices running to support its PaaS offering.
 At the end of 2012, dotCloud decided to refactor (restructure and optimize)
their container engine to improve it. This refactoring project was internally
codenamed Docker.
 What started as an internal tool for dotCloud became the standalone Docker
project, which was later open-sourced and grew into one of the most
influential technologies in cloud computing and software development.
 March 2013, "Docker" is shown to a public audience for the
first time.
 Very positive reactions and feedback!
 The dotCloud team progressively shifts to Docker development.
 The same year, dotCloud changes name to Docker.
Docker’s Significance
• Docker made containers easy to use and
accessible to developers, enabling applications
to be packaged with all their dependencies
into portable containers. This revolutionized
how software is developed, shipped, and
deployed, making it a key tool in DevOps and
cloud environments.
What is Docker?

• "Installing Docker" really means "Installing the


Docker Engine and CLI".
• The Docker Engine is a daemon (a service running
in the background).
• This daemon manages containers, the same way
that a hypervisor manages VMs.
• We interact with the Docker Engine by using the
Docker CLI.
• The Docker CLI and the Docker Engine
communicate through an API.
• There are many other programs and client libraries
which use that API.
What is Docker?
 Made using containers easy.
 Originally Linux centric but runs on many
platforms today.
 Includes tools for defining a container and
distributing them (the registry).
 Has become widely used standard for building
and packaging applications as containers.
Challenges of Virtual Machines (VMs)
 Resource Overhead:

VMs require a full guest OS to be run for each instance, which consumes significant
CPU, memory, and storage resources. This makes VMs heavier in terms of resource usage
compared to containers.
 Slow Boot Time:
Since VMs need to start an entire operating system, the boot-up process is much
slower compared to the lightweight nature of containers, which start almost instantly.
 Inefficient Resource Allocation:

Virtual machines often have predefined resource allocations (e.g., fixed RAM, CPU),
and unused resources cannot easily be shared with other VMs, leading to potential inefficiency.
 Limited Scalability:
Due to their resource-intensive nature, scaling virtual machines is slower and more complex
compared to container-based environments where scaling can be done rapidly.
 Maintenance and Updates:
VMs need frequent maintenance such as OS patching and updates, which can lead to
downtime, especially if a VM has several software dependencies.
Characteristics of Containers:
 Lightweight:
Containers are much lighter than VMs since they share the host OS’s kernel.
They only contain the application and its dependencies, making them quick to
start and use fewer resources.
 Fast Startup and Shutdown:
Containers can start and stop within seconds (or even milliseconds) because
they don’t need to boot up a full OS. This makes them ideal for tasks that require
fast scaling or frequent updates.
 Portability:
Containers are highly portable across different environments. Since they package
the application and its dependencies, a container can run consistently across
various platforms (development, testing, production) as long as the container
engine (e.g., Docker) is available.
 Efficient Resource Utilization:
Containers can share resources with other containers and the host system,
making them more efficient. They consume only the necessary CPU, memory,
and storage as needed.
Characteristics of Containers:
 Simplified Deployment:
Containers simplify the deployment process by allowing developers to
package everything an application needs (code, libraries, environment) into
a single unit. This helps prevent the "it works on my machine" problem by
ensuring that the container runs the same way everywhere.
 Immutability:
Once a container image is created, it doesn’t change. This immutability
ensures consistency in deployments, making it easy to roll back to a
previous version or quickly apply fixes by redeploying containers.
 Isolation:
Containers provide process-level isolation. While multiple containers share
the same OS kernel, they remain isolated from each other in terms of
process space, networking, and file systems.

You might also like