LIA Large Installation Administration Virtualization
2 Virtualization What is Virtualization "a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources." Virtualization is the process of making things more abstract in order to make them easier to use.
Examples? 3
4 Storage virtualization Files Linear sequence of bytes Instead of blocks on a disk (or magnetic particles) Disk partitioning LBA RAID - redundant array of independent disks Logical Volume management Combines disks and partitions into logical disks.
5 Network virtualization VLAN Multiple logical networks on same physical wires Channel bonding multiple links combined offered a single, higherbandwidth link Computer clusters multiple discrete computers into larger metacomputers e.g. Hadoop Virtual NICs and bridges for VM communication
6 Resource virtualization Multiprogramming Each process thinks it has CPU to itself Virtual memory Present linear address space composed of nonconsecutive blocks of: Physical memory Disk space
Virtual Machines 7
8 Credits Slides largely based on:
9 Why Virtual Machines? Isolate applications in separate VMs Sandbox applications for security Support different OSes concurrently Legacy applications on legacy OSes Application testing using VMs with known state Testing OS upgrades, training OS development
10 Why Virtual Machines? LIA context: Resource utilization Server consolidation Facilitate maintenance Basis for cloud computing
12 Computer Architecture Recap
13 Instruction Set Architecture Software ISA Hardware E.g. x86_64
14 User + System ISA Application Programs System ISA Operating System User ISA Hardware
15 User ISA = For doing computations Simple Memory Instructions Move data from memory to registers and v.v. Integer Instructions Floating-Point Instructions Branch instructions Jump to address Jump to address if... Part of SHA1 in assembly: addl %esi, %e; movl %c, %esi; xorl %d, %esi; andl %b, %esi; xorl %d, %esi;
16 System ISA (1/2) = Management of system resources System Resources: Main memory Storage Other I/O devices Management: Fair allocation between user programs Prevent concurrent/unauthorized access Role of the Operating System
17 System ISA (2/2) OS requires special privileges over user programs OS runs in CPU Kernel mode Apps run in CPU User Mode x86: Implemented via 2 privilege levels / rings User Mode Kernel Mode Ring 0 1 2 3
18 System ISA Instructions Processor Management Change to user mode + run application Timer interrupt gives control back to OS Memory Management Manage page table, TLB: virtual memory I/O Management load and store to/from device Traps Change to kernel mode from application On purpose (system call) or on exception
19 System Call Instruction Application Programs I/O instructions Operating System System call Handler System call: read(file) E.g. syscall on x86 or svc on ARM. Hardware Disk
20 System Call = Mechanism for User Mode code to request services from Kernel Mode What services? Read/write to files and devices Create processes i.e. use Operating System abstractions: File abstraction for storing blocks on disk Process abstraction for running different code in parallel
21 System Call Interface (1/2) Application Programs System calls Operating System ISA Hardware
22 System Call Interface (2/2) Read/write files or devices: open(filename, ) CreateFile(...) read(fd,data, ) ReadFile(...) write(fd,data, ) WriteFile(...) ioctl() SetConsoleMode(...) Manipulate processes fork() CreateProcess( ) exit() ExitProcess( ) More...
23 System calls via libraries Application Programs Operating System System calls Libraries E.g. libc Hardware
24 Architecture Model Application Programs User Mode Run Libraries Kernel Mode Operating System System calls Interrupts, Traps, faults Privileged instructions Hardware
Virtual Machines 25
26 Virtualize the machine? What is the machine? Machine is defined by an interface 3 interfaces that can be virtualized: 1. Instruction Set Architecture (ISA) 2. Application Binary Interface (ABI) 3. Application Programming Interface (API)
27 Interface 1: ISA Application Programs Libraries Operating System System calls ISA Hardware Virtualize a complete machine, running an OS supporting multiple processes = System VM
28 Interface 2: ABI Application Programs Libraries Operating System System calls Hardware ABI = System calls + user ISA Virtualize the environment of a single process = Process VM
29 Interface 3: API Application Programs Libraries Operating System System calls Hardware API = Libraries + user ISA
30 Example Virtualizing ISA Support a machine's complete ISA VM/370 Xen* KVM*
31 Example Virtualizing ABI Run binaries unmodified on different platform Sun WABI Run Win32-x86 binaries on Solaris-SPARC Digital FX!32 Run Win32-x86 binaries on Win32-Alpha
32 Example Virtualizing API Recompile applications from source Runs on any platform with same API E.g. Linux-x86 and Linux-ARM (Assuming platform-independent code)
33 VM Implementations Application Programs Application Programs Libraries Guest OS Virtual Machine Monitor Virtual Machine Monitor Host OS Hardware Hardware (a) System VM (b) Process VM
34 What ISA? Same or different Same: Run Win32-x86 on Linux-x86 Diff: Run Linux-ARM on Win32-x86 Application Programs Libraries OS Virtual Machine Monitor Hardware Source ISA Target ISA
35 Taxonomy Process VMs System VMs Same ISA Different ISA Same ISA Different ISA Multiprogrammed Systems Emulators/ Translators Classic-System VMs Whole-System VMs High-level Language VMs Hosted VMs Codesigned VMs
Example: Windows Multiprogramming 36 Win32 native Win32 native Process Win32 API Windows OS One CPU, illusion of processes running in parallel X86 Hardware
37 Example: Android Java High-level Language VM (HLL-VM) Java VM + Libs Linux OS ARM Hardware Different ISA: Java vs. ARM
38 Example: Android Emulation Java Java VM Whole- System VM Linux OS ARM VM Runtime Win32 API Win32 native Process Windows OS X86 Hardware
39 Example: Android Emulation on Xen Java Java VM Linux OS Win32 Native Linux Native Linux Native ARM VM Runtime Windows OS Linux OS Xen domain Xen Hypervisor = Hosted VM X86 Hardware
40 Example: VMWare Applications Guest OS VMApp VMMonitor VM Driver Host OS X86 Hardware = Hosted VM
41 Example: AS/400 Application Programs Higher level ISA Allow evolution of hardware ISA OS Virtual Machine Monitor Hardware Source ISA Target ISA = Co-designed VM
42 Taxonomy Examples Process VMs System VMs Same ISA Different ISA Same ISA Different ISA Multiprogrammed Systems UNIX Emulators/ Translators FX!32, WABI Classic-System VMs VM/370 Whole-System VMs ARM VM runtime High-level Language VMs Java VM, MS CLR Hosted VMs VMware, Xen, Docker* Codesigned VMs AS/400