XEN – The Art of Virtualisation
So what is Virtualisation? ● Makes use of spare capacity ● Run multiple instances of OSes simultaneously ● Multitasking at the OS level ● May also offer guarantees – Guarantee isolation between OSes – Provide controlled resources sharing
What use is it to me? ● Consolidate under-utilized servers, reduce CapEx and OpEx – Co-location services – Infrastructure services e.g. DNS, DHCP, Printing – Development, QA & Testing ● Improve application SLAs through dynamic workload balancing ● Enforce consistent policies (build, security) across estates easily
Types of Virtualisation ● Single OS image: Microsoft Vservers, Solaris Zones – Group user processes into resource containers – May be hard to get strong isolation ● Full virtualisation: VMware, VirtualPC, QEMU – Run multiple unmodified guest OSes – Hard to efficiently virtualize x86 and peripherals ● Para-virtualisation: UML, Xen – Run multiple guest OSes ported to special arch – Arch Xen/x86 is very close to normal x86
So what is XEN? ● XEN is an OpenSource Virtualisation platform ● Per VM Resource Guarantees – Isolation of Oses from each other – Guarantees on available resources CPU, memory, and block and network I/O ● Live Relocation of apps across XEN clusters ● Requires Para-virtualisation aware Oses – Already Linux, NetBSD, FreeBSD, Plan9 images around – Solaris and MacOSX expected later
Hows it work? Hypervisor Domain 1 Domain N.. Underlying Hardware Hardware Emulation Domain 0 (Mgmt Domain) Hardware Hypervisor Operating Systems Applications Mgmt Software User Software User Software User Software
Domain 0 ● Domain 0 provides: – Hypervisor providing access between Guests and hardware – Management interfaces to control allocated resources, and Guests ● Uses user space tools and daemon to provide mgmt: – xend – Daemon controlling Hypervisor – xm – userspace tool
Other Domains ● Currently requires an OS that supports para-virtualisation ● Supports Linux, NetBSD, FreeBSD, Plan9 already ● Runs OS and applications without any modification ● Unlike Full virtualisation runs at near hardware performance
Native and VM technique Comparison Relative performance on native Linux (L), Xen/Linux (X), VMware Workstation 3.2 (V), and User Mode Linux (U).
Problems ● Still very much work in progress – Greater uptake by community and market should help here ● Para-virtualisation slows market penetration into other operating systems – Hardware virtualisation should help here
Futures ● Xen3 – Support for hardware virtualisation – Intel® VT-x and AMD Pacifica hardware virtualization support – Supports unmodified Guest OSes e.g. Windows ● Xen3 - Support for SMP guests ● Xen3 - x86_64 support
Conclusions ● Xen is a complete GPL Virtualisation system ● Outstanding performance and scalability ● Excellent resource control and protection between deployed guests ● Live relocation makes seamless migration possible for many real-time workloads (Xen3) ● Can only get better with hardware virtualisation support
More information ● ● ● ●
Demo