Xen Presentation
Xen
Tracy Reed Copilot Consulting October 13, 2005
Xen is a virtual machine monitor/hypervisor (VMM) for x86-compatible computers. Xen can securely execute multiple virtual machines, each running its own OS, on a single physical system with close-to-native performance.
Xen is a hypervisor. Not an emulator. It is open source's answer to IBM's VM
Supported by: Novell, Sun, RedHat, Veritas, HP, IBM, Cisco, Intel, AMD
Originally received funding in a grant from MS
Licensed under GPL
Currently only supports x86 as the technology is intimately tied to the hardware.
Any free OS will run under it, Windows very soon with new chips from Intel/AMD
Virtualization overview
Single OS image: Virtuozo, Vservers, Zones
- Group user processes into resource containers
- Hard to get strong isolation
Full virtualization: VMware, VirtualPC, QEMU
- Run multiple unmodified guest operating systems
- Hard to efficiently virtualize x86
- Slow due to emulating the hardware
Para-virtualization: UML, Xen
- Run multiple guest operating systems ported to special architecture
- Xen/x86 is very close to normal x86 architecture
What is it good for? - Consolidate under-utilized servers. - 99% of CPU time is wasted. - CPU's and RAM are cheap, can fit a lot in one box now - Avoid downtime with VM relocation - Dynamically re-balance workload - Enforce security policy - Ease of management: reduce dependencies on overloaded boxes - Whole network in one box
Xen 2.0
- Secure isolation between VM's
- Resource control and QoS
- Guest kernel currently needs to be ported to Xen architecture (minor changes)
- Linux, NetBSD, FreeBSD, Plan 9
- Execution performance is close to native
- Live relocation of VM's between Xen nodes
Para-virtualization in Xen
xen_x86 architecture is like x86 but uses Xen hypercalls for privileged operations
- No changes to system binaries
- Minimize number of privilege transitions into Xen
- Wall-clock time vs virtual process time, Xen provides both
- Expose real resource availability so OS can optimize behavior
- Xen runs in ring 0
- Ring 1/2 are for guest OS
- 3 is for user-space
- segfault if guest attempts to use privileged instruction
- Xen lives in top 64MV of address space
- segmentation used to protect Xen
- Hypercalls jump to Xen in ring 0
- Physical hardware devices are virtualized and exported to the VM's
Xen 3.0
- AGP/DRM graphics support
- Improved ACPI platform support
- Support for SMP guests
- x86_64 support
- Intel VT-x support for unmodified guests
- Enhanced control and management tools
VT-X/Pacifica
- Will enable OS's (Windows) to be run without modifications
- Install paravirtualized drivers after booting for high-performance IO
VM relocation:
- pre-migration, setup space on remote machine
- Copy contents of RAM
- Trickle updates
- Stop, copy, commit, done
- Downtime typically 10's of milliseconds
- They cut over a Quake server and none of the players noticed anything
- Networked storage
- SAN, iSCSI, drdb, AoE
- Requires common layer 2 network
Cheap RAM and SMP machines make this very effective.
Xen has a demo CD
- Demo CD is a fast and easy way to play with Xen
- Boots FreeBSD, Debian, and various others simultaneously off the CD
Features:
Multiple OS domains
Create/destroy domains on the fly
Grow and shrink memory on the fly
Can use LVM for disk
Save and restore domains to disk
Process migration
- With a SAN backend and a gigabit Network Xen can be used to build a powerful and reliable computing infrastructure for hosting
Future of Xen
- Software fault tolerance, exploit deterministic replay
- Debugging, lightweight checkpoint and replay
- Secure virtualization, multi-level secure Xen