The Whats and Whys of Whole System Virtualization Peter A. Dinda Prescience Lab Department of Computer Science Northwestern University Virtuoso Project: Peter A. Dinda Prescience Lab Department of Computer Science Northwestern University Virtuoso Project:
Whole System Virtualization “Many problems in computer science can be solved by adding a layer of indirection” (bad paraphrase) Virtualized X X is a semantically invisible layer of the software stack Exports exactly the interface it builds on Adds functionality and/or solves problems Whole system: span the stack horizontally “Many problems in computer science can be solved by adding a layer of indirection” (bad paraphrase) Virtualized X X is a semantically invisible layer of the software stack Exports exactly the interface it builds on Adds functionality and/or solves problems Whole system: span the stack horizontally
OS Virtual Machines Traditional (Goldberg types I and II) Run off-the-shelf operating systems Very low computational overhead but some I/O overheads (arguable how far it can be reduced) VMware, Microsoft (and VM from the early ‘70s) Paravirtualized OS kernels must be ported to them Very low computational and I/O overhead Xen, User Mode Linux Virtual servers OS kernel extensions (one OS, many instances) Negligible computational and I/O overhead Vserver, BSD Jails Traditional (Goldberg types I and II) Run off-the-shelf operating systems Very low computational overhead but some I/O overheads (arguable how far it can be reduced) VMware, Microsoft (and VM from the early ‘70s) Paravirtualized OS kernels must be ported to them Very low computational and I/O overhead Xen, User Mode Linux Virtual servers OS kernel extensions (one OS, many instances) Negligible computational and I/O overhead Vserver, BSD Jails
Language Virtual Machines Compiler targets abstract machine Usually stack machine Run-time interprets and dynamically translates to base ISA Large standard library for I/O JVM, CLR, (and p-System from late ‘70s) Arguably also Lisp, Scheme, Perl, Python, … Compiler targets abstract machine Usually stack machine Run-time interprets and dynamically translates to base ISA Large standard library for I/O JVM, CLR, (and p-System from late ‘70s) Arguably also Lisp, Scheme, Perl, Python, …
Overlay Networks and P2P VPNs and VLANs Multisource multicast (ESM, etc) Distributed hash tables (Chord, etc) Resilient routing (RON, etc) Anonymous routing (Tor, etc) VM-specialized (VNET, VIOLIN) VPNs and VLANs Multisource multicast (ESM, etc) Distributed hash tables (Chord, etc) Resilient routing (RON, etc) Anonymous routing (Tor, etc) VM-specialized (VNET, VIOLIN)
Virtual Storage And Devices Storage Area Networks iSCSI Remote device support Network block device Storage Area Networks iSCSI Remote device support Network block device
Virtualized Services Tunneling ssh Virtual file systems System-call interposition Tunneling ssh Virtual file systems System-call interposition
Reducing Complexity Ownership Give the user the parallel/distributed systems analogue of a PC Deployment and distribution Whole system image See Potter’s snapshots for a very nice example Automatic policy avoidance^Wnavigation Route through the diverse security policies in a multi-site computing environment Ownership Give the user the parallel/distributed systems analogue of a PC Deployment and distribution Whole system image See Potter’s snapshots for a very nice example Automatic policy avoidance^Wnavigation Route through the diverse security policies in a multi-site computing environment
Adaptive Systems Bring automatic adaptation and resource reservations to existing, unmodified applications Virtualization as a layer for observation, a provider of adaptation mechanisms, and an impedance matcher to reservations Bring automatic adaptation and resource reservations to existing, unmodified applications Virtualization as a layer for observation, a provider of adaptation mechanisms, and an impedance matcher to reservations VM Layer Virtualization Layer Physical Layer
Making High-end Computing A Commodity Virtualization for fungibility Provider’s perspective Simple, straightforward abstraction to sell User’s perspective Maximum flexibility “Giant PC” Virtualization for fungibility Provider’s perspective Simple, straightforward abstraction to sell User’s perspective Maximum flexibility “Giant PC”
Open-source Virtual Machine Monitor Type-I OS VMM for modern architectures Intel’s VT extension to IA32 and IA32e, and AMD’s Pacifica extension to AMD64 Make these commodity architectures virtualizable in the Goldberg sense VT/Pacifica VMM can be MUCH simpler than existing VMMs for these architectures Think 50K lines of code (VAX Secure VMM example) Potentially a very high impact project from this community Type-I OS VMM for modern architectures Intel’s VT extension to IA32 and IA32e, and AMD’s Pacifica extension to AMD64 Make these commodity architectures virtualizable in the Goldberg sense VT/Pacifica VMM can be MUCH simpler than existing VMMs for these architectures Think 50K lines of code (VAX Secure VMM example) Potentially a very high impact project from this community
Trustless Computing and Language VMs Trust asymmetry problem in grid and utility computing Encrypted computation to the rescue Language VMs are perfect place to implement Translate binary to binary Portable Trust asymmetry problem in grid and utility computing Encrypted computation to the rescue Language VMs are perfect place to implement Translate binary to binary Portable