Professional Documents
Culture Documents
Virtualization
Virtualization
symeonidis.m@unic.ac.cy
Cloud Computing
Course Timeline
● Basic Concepts and Models
○ Cloud Computing Introduction
○ Deployment & Service Models
○ Pricing, Threats, and Programming Models
● Virtualization and Elasticity
○ Virtualization Concepts, VMs & Containers
○ Monitoring & Elasticity
○ Docker tutorial
Moysis Symeonidis
symeonidis.m@unic.ac.cy 2
Cloud Computing
Course Timeline
● Basic Concepts and Models
○ Cloud Computing Introduction
○ Deployment & Service Models
○ Pricing, Threats, and Programming Models
● Virtualization and Elasticity
○ Virtualization Concepts, VMs & Containers
○ Monitoring & Elasticity
○ Docker tutorial
Moysis Symeonidis
symeonidis.m@unic.ac.cy 3
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 4
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 6
Cloud Computing
Virtualization!!!
Moysis Symeonidis
symeonidis.m@unic.ac.cy 7
Cloud Computing
Virtualization
Refers to the act of creating a virtual (rather than actual) version of some
computing resource…
Virtualization:
● abstracts the underlying resources;
● simplifies their use;
● isolates users from one another; and
● supports replication which increases the elasticity of a system
https://en.wikipedia.org/wiki/Virtualization
Moysis Symeonidis
symeonidis.m@unic.ac.cy 8
Cloud Computing
Virtualization
Moysis Symeonidis
symeonidis.m@unic.ac.cy 9
Cloud Computing
https://aws.amazon.com/what-is/virtualization/
Moysis Symeonidis
symeonidis.m@unic.ac.cy 10
Cloud Computing
Virtualization Requirements
● VM should behave identically to the real machine
○ Programs cannot distinguish between execution on real or virtual hardware with only
difference to be the fewer resources available (potentially different between executions)
Moysis Symeonidis
symeonidis.m@unic.ac.cy 13
Cloud Computing
Virtualization Preliminaries
Moysis Symeonidis
symeonidis.m@unic.ac.cy 14
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 15
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 16
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 17
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 18
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 19
Cloud Computing
Execution Layering
An application uses library functions (A1), makes system calls (A2), and executes
machine instructions (A3)
Moysis Symeonidis
symeonidis.m@unic.ac.cy 20
Cloud Computing
OS Kernel
● Operating System Kernel: lowest level of software running on system, with full
access to all hardware
○ fully trusted code, runs in kernel mode
○ implements OS protection, i.e., reliability, security, privacy, resource
sharing, etc.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 21
Cloud Computing
OS Kernel
● Operating System Kernel: lowest level of software running on system, with full
access to all hardware
○ fully trusted code, runs in kernel mode
○ implements OS protection, i.e., reliability, security, privacy, resource
sharing, etc.
● User process: execute privileged instructions via well-defined interfaces
supported by kernel (system calls)
Moysis Symeonidis
symeonidis.m@unic.ac.cy 22
Cloud Computing
Hardware Virtualization
Moysis Symeonidis
symeonidis.m@unic.ac.cy 23
Cloud Computing
Hardware Virtualization
The process of multiple virtual machines creation in the
same machine.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 24
Cloud Computing
Hypervisors
● Hypervisors (also known as virtual machine monitor (VMM)) allocate
hardware-resources to allow you to have several virtual machines all working
optimally on a single piece of the computer hardware.
● The hypervisor translates all operating system instructions on the fly and
caches the results for future use, while user level instructions run
unmodified at native speed.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 25
Cloud Computing
Hypervisors
● A Hypervisor:
○ Interacts and monitors directly with the physical server's resources.
○ Keeps each virtual server completely independent and unaware of the
other virtual servers running on the physical machine.
● Hypervisors have their own processing needs, which means that the physical
server must reserve some processing power and resources to run the
hypervisor application.
○ This can impact overall server performance and slow down applications.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 26
Cloud Computing
Binary Translation
● Binary translation is a form of binary recompilation where sequences of
instructions are translated from a source instruction set to the target instruction
set [wikipedia]
● In binary translation: User Apps
○ The VMM monitors the execution of guest OS
Guest OS
○ Non-virtualizable instructions executed by a
guest OS are replaced with (translated to) other Hypervisor
Binary
instructions. Host Computer
Translation
System Hardware
○ The OS runs unchanged, and this ensures that
this direct execution mode is efficient.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 27
Cloud Computing
Type 1
Moysis Symeonidis
symeonidis.m@unic.ac.cy 28
Cloud Computing
Type 1
Type 1 (bare metal, native): run directly on the hardware (as a lightweight OS) and
support multiple virtual machines and OS.
Type 1
Type 2 (hosted VM): runs the virtualization layer as an application on top of a host
operating system (e.g., user-mode Linux)
● Microsoft Virtual PC, Oracle Virtual Box, VMware Workstation, Oracle Solaris Zones,
VMware Fusion, Oracle VM Server for x86.
● Ideal option for personal use due to low cost and ease of installation.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 30
Cloud Computing
Virtual Machines
A Virtual Machine (VM):
https://aws.amazon.com/what-is/virtualization/
Moysis Symeonidis
symeonidis.m@unic.ac.cy 31
Cloud Computing
[wikipedia]
Moysis Symeonidis
symeonidis.m@unic.ac.cy 32
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 33
Cloud Computing
Para-virtualization
● The guest operating system is modified to work
closely with the hypervisor or host system.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 34
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 35
Cloud Computing
Server consolidation
● Virtualizing servers involves converting one physical server
into multiple virtual machines (VMs).
https://cloud.google.com/learn/what-is-a-virtual-server
Moysis Symeonidis
symeonidis.m@unic.ac.cy 36
Cloud Computing
● The virtual servers are called guests and behave like physical machines.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 37
Cloud Computing
Overcommitting
Via virtualization, Cloud providers can split
and share physical resources that far
exceed their capacity.
● Why?
Moysis Symeonidis
symeonidis.m@unic.ac.cy 39
Cloud Computing
Overcommitting
Via virtualization, Cloud providers can split
and share physical resources that far
exceed their capacity.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 40
Cloud Computing
Overcommitting Example
Suppose a host has 12 GB or RAM
Moysis Symeonidis
symeonidis.m@unic.ac.cy 41
Cloud Computing
Overcommitting Example
If all VMs want at the same time ALL of
their memory then delays will be
experienced… or in other words… an SLA
violation…
Moysis Symeonidis
symeonidis.m@unic.ac.cy 42
Cloud Computing
Overcommitting Example
If all VMs want at the same time ALL of
their memory then delays will be
experienced… or in other words… an SLA
violation…
VM Snapshots
● A snapshot is a state of a virtual machine, and generally its storage
devices, at an exact point in time.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 45
Cloud Computing
VM Migration
● Cloud provider chooses the optimal physical
servers within a resource pool
Moysis Symeonidis
symeonidis.m@unic.ac.cy 46
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 47
Cloud Computing
Types of Virtualization
History of Virtualization…
Moysis Symeonidis
symeonidis.m@unic.ac.cy 49
Cloud Computing
History of Virtualization…
Hardware
Virtualization era
Moysis Symeonidis
symeonidis.m@unic.ac.cy 50
Cloud Computing
History of Virtualization…
Hardware Software
Virtualization era Virtualization era
Moysis Symeonidis
symeonidis.m@unic.ac.cy 51
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 53
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 54
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 55
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 56
Cloud Computing
Containers Execution
● Each container (in general) has shared resources
Moysis Symeonidis
symeonidis.m@unic.ac.cy 57
Cloud Computing
● Hardware Resources such as CPU and memory are shared between host
machine and containers, consequently, the resource utilization is increasing.
● While the resources are shared between them, one can install many more
containers on a host machine compared to VMs.
● Much faster startup and shutdown since the kernel and hardware resources
are shared.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 58
Cloud Computing
What is Docker?
The most popular Software Containerization Platform
● Initially, it was based on LXC’s capabilities but then replaced LXC with libcontainer
● Docker platform is utilized for packaging and running applications inside software
containers
In a nutshell:
● Docker is a command-line program, a background daemon, and a set of remote
services that take a logistical approach to solving common software problems and
simplifying your experience installing, running, publishing, and removing software.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 59
Cloud Computing
Docker Basics
Image
The basis of a Docker container. Represents a full application.
Container
The image when it is “running”. The standard unit for app service.
Docker Engine
Creates, ships and runs Docker containers deployable on a physical or
virtual host locally, in a datacenter or cloud service provider
Registry
Stores, distributes and manages Docker Images
Moysis Symeonidis
symeonidis.m@unic.ac.cy 60
Cloud Computing
Docker daemon
● Lives on the host
● Responds to docker
commands
● Instantiates images
and creates containers
Moysis Symeonidis
symeonidis.m@unic.ac.cy 61
Cloud Computing
Writing a Dockerfile
Define the base image
FROM node
RUN git clone -q https://github.com/docker-in-practice/todo.git
Clone the todoapp code
WORKDIR todo
Move to the new cloned directory
RUN npm install > /dev/null
EXPOSE 8000 Run the node package manager’s install
CMD ["npm","start"] command
Specify that containers from the built image
should listen on this port
Moysis Symeonidis
symeonidis.m@unic.ac.cy 62
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 63
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 65
Cloud Computing
However, programs running inside of a container can only see the container's
contents and devices assigned to the container.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 66
Cloud Computing
However, programs running inside of a container can only see the container's
contents and devices assigned to the container.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 67
Cloud Computing
However, programs running inside of a container can only see the container's
contents and devices assigned to the container.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 68
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 69
Cloud Computing
Each virtual machine (VM) includes the app, the necessary binaries and libraries and
an entire guest operating system. Containers are NOT VMs because:
● Use the host kernel
● Can not boot a different OS (only if the host OS has pre-installed external kernel eg windows)
● Do not have strict resource isolation (only on cgroups and namespace level)
Moysis Symeonidis
symeonidis.m@unic.ac.cy 70
Cloud Computing
Process in one VM has not access to processes Process in one container has not access to
in other VMs processes in other containers
Each VM has own root filesystem Each container has its own root file system
(not Kernel)
Each VM gets its own virtual network adapter Each container has its own virtual network
adapter(s)
VMs run instances of physical files (.VMX and Containers run instances of Images.
.VMDK)
Host OS can be different from guest OS Host OS distribution can be different from
container OS distribution
Moysis Symeonidis
symeonidis.m@unic.ac.cy 71
Cloud Computing
Each VM runs its own OS All containers share the same Kernel of the
host
VMs snapshots are used sparingly Images are built incrementally on top of
another like layers. Lots of images/snapshots
Cannot run more than couple of VMs on a PC Can run many containers on a PC
Moysis Symeonidis
symeonidis.m@unic.ac.cy 72
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 73
Cloud Computing
Desktop Virtualization
● Allows a central administrator (or automated
administration tool) to deploy simulated desktop
environments to hundreds of physical machines at once.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 74
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 75
Cloud Computing
Data Virtualization
● Data virtualization:
○ brings together data from multiple sources
○ easily accommodates new data sources
○ transforms data according to user needs
Moysis Symeonidis
symeonidis.m@unic.ac.cy 76
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 77
Cloud Computing
Cloud Orchestrators!!!
Moysis Symeonidis
symeonidis.m@unic.ac.cy 78
Cloud Computing
Cloud Orchestrators
Different types of virtualization technologies have orchestration frameworks that
enable VMs, containers, and applications to be deployed and managed at data
center scale:
Moysis Symeonidis
symeonidis.m@unic.ac.cy 79
Cloud Computing
VM Orchestrators
A cloud operating system controls large pools of
compute, storage, and networking resources
throughout a datacenter, all managed and
provisioned through APIs with common
authentication mechanisms.
Moysis Symeonidis
symeonidis.m@unic.ac.cy 80
Cloud Computing
VM Orchestrators
A cloud operating system controls large pools of
compute, storage, and networking resources
throughout a datacenter, all managed and
provisioned through APIs with common
authentication mechanisms.
Public Cloud providers have their closed source systems (e.g., EC2)
https://www.openstack.org
Moysis Symeonidis
symeonidis.m@unic.ac.cy 81
Cloud Computing
Container Orchestrators
● Orchestrators abstract away the hardware infrastructure and expose a whole
datacenter as a single enormous computational resource
Moysis Symeonidis
symeonidis.m@unic.ac.cy 82
Cloud Computing
Moysis Symeonidis
symeonidis.m@unic.ac.cy 83
Cloud Computing
Key Takeaways
● What is Virtualization?
○ Virtualization Requirements and Benefits
○ Interfaces, Layering and Virtualization on Abstractions
● Hardware Virtualization
○ Virtual Machines & Virtual Disk Images
○ Hypervisors: Definition, Binary Translation, and Types
● Virtualization Concepts
○ Server consolidation
○ Overcommitting
○ VM Snapshots
○ High Availability & VM Migration
Moysis Symeonidis
symeonidis.m@unic.ac.cy 84
Cloud Computing
Key Takeaways
● Software Virtualization (Containerization)
○ Definition
○ Benefits of Containers
● What is Docker?
○ Concepts
○ Resources Isolation & Restriction
● VM - Containers – Differences & Similarities
● Virtualization of Other Resources
○ Desktop, Network , and Data Virtualization
● Cluster Orchestrators
○ Virtual Machines Orchestrators
○ Containers Orchestrators
Moysis Symeonidis
symeonidis.m@unic.ac.cy 85
Cloud Computing
Questions???
Thank you
Moysis Symeonidis
symeonidis.m@unic.ac.cy 86