F22 Cloud Virtualization
F22 Cloud Virtualization
1. Hypervisor based –
virtualization
2. Containers
3. Uni-kernel
Key concepts
1. On operating systems
4. Examples of benefits
Operating systems
Some of the motivations
Only one single tread of CPU can run at a time on any single
core consumer machine
Multiplexing
Hypervisor
Software environment that enables operations on virtual
machines (e.g. XEN, VMWare) and ensures isolation
virtual machines, hypervisors
Types of hypervisor
Types of hypervisor
Type 2 – hosted
Runs on top of host operating system
Examples:
VMWare workstation
VirtualBox
Type I vs Type II Hypervisor
Type II - Hosted
Hypervisor installed on top of host operating system
Full virtualization
Hypervisor enables virtual machines identical to real machine
Problematic for architectures such as Intel x86
Full virtualization vs. Para-virtualization
Definitions
Para-virtualization
Hypervisor enables virtual machine that are similar but not identical
to real machine
A solution to the problem of CPU architectures that cannot be
virtualized
Prevents user programs from executing sensitive instructions
Note:
Para-virtualization is not the only solution to the problem
Full virtualization vs. Para-virtualization
Full virtualization
Advantages
Possibility to host guest operating systems with no change since
virtual machines are identical to real machines
Disadvantages
Not always feasible (e.g. Intel x86)
There are work around (e.g. binary translation)
Some guest operating systems might need to see both virtual
resources and real resources for real time applications
Full virtualization vs. Para-virtualization
Para - virtualization
Advantages
Feasible for all CPU architectures
Performance – Compared to:
Full virtualization
Other approaches to architectures that could not be
virtualized (e.g. binary translation)
Disadvantages
Need to modify guest operating systems
Full virtualization vs. Para-virtualization
Para - virtualization
Alternatives to para-virtualization
Binary translation (e.g. VMWare ESX server)
Leads to full virtualization
No need to re-write “statically” guest operating systems
i.e. guest OS can be installed without change
Interpretation of guest code (OS + application)
“Rewrites” dynamically guest code and insert traps when
necessary
Full virtualization vs. Para-virtualization
Para - virtualization
Alternatives to para-virtualization
Binary translation
Disadvantages / penalties
Performance
However, optimization is possible, e.g.
» Adaptive translation (i.e. optimize the code being
translated)
Full virtualization vs. Para-virtualization
Para – virtualization
Librairies
Set of higher level functions accessible to programs via
system calls
Enable function like create / read / delete file while hiding
the low level operations on the hard disk
Alternatives
VM vs container vs Unikernel
Containers
» Applications packaged with their run time
environment that run on a same kernel
Containers
» Hosted by container engine (e.g. Docker Engine)
» Need to be deployed, managed and
orchestrated (e.g. Kubernetes)
On containers
Operating system (Kernel) virtualization:
Smaller footprint
Boot up faster
Less flexible
Addition / removal of functionality requires re-compilation
Virtualization and Serverless Computing
Server-less computing
Server-less Computing
(Function as a Service)
Introduction
Architecture
Pros / Cons
Introduction
Server-less does not mean there is no server !!!
Front end:
- End user interface
Front end:
- End user interface
Storage sub-system:
- States
- Persistent data
Pros (Examples)
- Built-in scalability
Cons (Examples)
- Most cited:
- Start up latency
- Others: