Lecture 018 - Virtualization

Different Scalability

  1. load scalability (How easy to add more concurrent users?)
  2. content scalability (How easy to add content? aka “data scalability”)
  3. geographic scalability (Tolerance for high-latency WANs?)
  4. functional scalability (How easy to add new capabilities?)
  5. evolutionary scalability (How easy to add new hardware/software?)
  6. administrative scalability (How hard to manage?)

Virtual Machine

Virtual Machine: abstraction of OS-visible hardware

Virtual Machine Monitor (VMM, hypervisor): implements VM abstraction

Reasons for Virtualization

Reasons for Virtualization

Purpose:

History

Hardware Virtualization

Legacy World Can Easily Depend on New Innovation

Legacy World Can Easily Depend on New Innovation

Hardware virtualization: easier to implement than software processes virtualization

System Virtualization

Types of System Virtualization

Types of System Virtualization

Types of System Virtualization

CPU Virtualization

Difference Between Trap and Interrupt

Difference Between Trap and Interrupt

Privileged instructions (e.g., IO requests, Update CPU state, Manipulate page table):

Non-privileged instructions (e.g., Load from mem):

Memory Virtualization

Mmeory Virtualization

Mmeory Virtualization

3 layers of memory

I/O Virtualization

Direct Access vs Shared Access

Direct Access vs Shared Access

I/O Virtualization:

Live Migration: When cycle of steps 4 and 5 become very short, source VMM freezes guest, sends VCPU’s final state, sends final dirty pages and tells target to start running the guest

Live Migration: When cycle of steps 4 and 5 become very short, source VMM freezes guest, sends VCPU’s final state, sends final dirty pages and tells target to start running the guest

Live migration: migrate OS to a different place without guest OS notice

Container Virtualization

Monolithic

Monolithic

Microservices

Microservices

Containers:

Implementation: each process is assigned with a "namespace" per resource type (PIDs, UIDs, networks, IPC)

Resource Isolation: usage counters for groups of processes (cgroups, kernfs)

Filesystem Isolation

LayerFS: containers fork actual content in filesystem

LayerFS: containers fork actual content in filesystem

Layering of Filesystem: copy on write

Container in Practice

Docker

Docker

Fast Boot: 100 milliseconds

High Density: 1000 containers per machine

Limitation of Container

In practice, we use VMs to isolate between different users, and containers to isolate different applications/services of a single user

Table of Content