Virtualization
Abstraction, Virtualization of Computer System • Levels of Abstraction – Allows implementation details at lower levels of design to be ignored or simplified – Each level is seperated by well-defined interfaces • Design of a higher level can be decoupled from the lower levels
Abstraction, Virtualization of Computer System • Disadvantage – Components designed to specification for one interface will not work with those designed for another. Component A
Component A
Interface A Interface A
Interface B
Component A Interface B
Abstraction, Virtualization of Computer System • Virtualization – Similar to Abstraction but doesn’t always hide low layer’s details – Real system is transformed so that it appears to be different
Resource AA
BB
BB’
isomorphism Resource A
B
B’
– Virtualization can be applied not only to subsystem, but to an Entire Machine → Virtual Machine
Abstraction, Virtualization of Computer System
Applications or OS Application uses virtual disk as Real disk Virtualized Disk
Virtualization
File
File
Abstraction Real Disk
Virtualization, Why? • • • • • • • •
Server consolidation Multiple execution environments Virtual hardware Debugging Software migration (Mobility) Appliance (software) Testing/Quality Assurance Maintenance – Live Migration – Balancing Resources
Architecture, Implementation Layers • Architecture – Level of Abstraction= = Implementation layer • ISA, ABI, API
ABI
Application Programs
Libraries
Operating System Drivers
API
Memory Scheduler Manager
Execution Hardware
ISA Memory Translation
System Interconnect (Bus) Controllers
Controllers
IO Devices, Networking
Main Memory
Architecture, Implementation Layers • ISA – Divides hardware and software – User ISA and System ISA
• ABI – Provides a program with access to the hardware resource and services available in a system – Consists of User ISA and System Call Interfaces
• API – Key element is Standard Library ( or Libraries ) – clib in Unix environment : supports the UNIX/C programming
Virtualization Properties • Isolation – Fault Isolation – Software Isolation – Performance Isolation
• Encapsulation – All VM state can be captured into a file. – mv , cp, rm
• Interposition – All guests goes through a monitor. – Monitor can inspect, modify, deny operations.
Process VM vs. System VM • Process VM at the ABI level – Virtualization of individual processes – E.g., running x86 applications on Alpha CPU
• System VM at the ISA level – Virtualization of complete systems – E.g., running Linux (and its applications) on Windows
Process Virtualization • Multiprogramming • Emulators and Dynamic Binary Translators • High-Level Language Virtual Machines : Platform Independence
High-Level Language VM
Hardware emulation • A hardware VM is created on a host system to emulate the hardware of interest. • Run an unmodified operating – system intended for a PowerPC® on an ARM processor host.
• Multiple virtual machines. Each simulating a different processor.
Hypervisor •
Full virtualization • Certain protected instructions must be trapped and handled within the hypervisor because the underlying hardware shared by it through the hypervisor. • An operating system can run unmodified.
Paravirtualization • Virtualization-aware code into the operating system itself.
• Paravirtualization offers performance near that of an unvirtualized system.
• • • • •
Virtualization technologies available for Linux XEN KVM UML QEMU http://virt.kernelnewbies.org/TechComparison
KVM • Turns a Linux kernel into a hypervisor. • The kernel module exports a device called /dev/kvm, which enables a guest mode of the kernel. • With /dev/kvm, a VM has its own address space separate from that of the kernel or any other VM that's running. • Devices in the device tree (/dev) are common to all user-space processes. • But /dev/kvm is different in that each process that opens it sees a different map (to support isolation of the VMs).
KVM • Each guest OS is a single process • Hardware platform that is virtualization capable.(currently, this means an Intel VT or AMDSVM processor). • Performing I/O from a guest operating system is provided with QEMU. • QEMU is a platform virtualization solution that allows virtualization of an entire PC environment including disks, graphic adapters, and network devices.
References • • • •
http://www1.cs.columbia.edu/~nieh/teaching/e6998 http://www.ibm.com/developerworks/library/l-linuxv http://www.ibm.com/developerworks/linux/library/l-l http://www.kernelthread.com/publications/virtualiza
Q&A
THANKS!!!