- 1 00 - Introduction
- 2 01 - Xen: A high-level overview
- 3 02 - Xen quickstart
- 4 03 - Installing domUs
- 5 04 - Storage
- 6 05 - Networking
- 7 06 - Managing domUs
- 8 07 - Xen with shared hosting
- 9 08 - Xen with non-Linux UNIX-like OSes
- 10 09 - Migration
- 11 10 - Profiling with Xen
- 12 11 - Xensource
- 13 12 - HVM and Xen
- 14 13 - Windows
- 15 14 - Tips
- 16 15 - Troubleshooting
- 17 Appendix A - Xen tools reference
- 18 Appendix B - Annotated configuration files
- 19 Glossary
- 20 Index
00 - Introduction
OK II Being an account of the struggles and travails encountered by OUR HERO in his zealous quest for performance: In which there is brief confusion and a beginning.
Virtualization: a brief history What's Xen? And why do I care? So why should I use Xen? Overview of the book Suggestions for the impatient Some conventions
01 - Xen: A high-level overview
OK II In which a speedy tour of the virtualized lands is undertaken, and tales related of these strange countries and their noble peoples.
Virtualization Principles Virtualization techniques: Full virtualization Virtualization techniques: OS virtualization Paravirtualization -- Xen's Approach How paravirtualization works Xen's implementation of paravirtualization Scheduling Interrupts Physical memory (Memory sidebar) I/O devices (Ring buffer sidebar) Networking Block devices In conclusion. . .
02 - Xen quickstart
OK I? Wherein OUR HEROES determine that nothing should do but that they immediately embark on an ADVENTURE: Professional aid is sought.
Introduction Necessary steps If you have FC6, RHEL4, or CentOS4. . . (Distro sidebar) Hardware compatibility Install dom0 OS Install various packages Download Xen source with Mercurial (liveCD sidebar) Build Xen Make initrd Rationale Procedure Install compiled Xen source Test Xend Adjust GRUB Modify init scripts Make a domU jailtime.org Configure domU Make it go.
03 - Installing domUs
OK An investigation of geologic features of the virtualized countryside:
Beyond jailtime.org images A basic domU configuration Selecting a kernel Quick-and-dirty install via tar(1) Why this is not the best idea Stuff to watch out for using the packagemanagement system with alternate roots. Red Hat et al. (Yum) Debian and friends (Debootstrap) QEMU install sidebar: QEMU's relation to Xen virt-install Converting other disk formats sidebar: rPath's rBuilder Mass deployment Manual deployment QEMU and systemimager sidebar: installing pypxeboot The Redhat way: Kickstart, Cobbler, and Koan and then. . .
04 - Storage
OK II Melancholy elephants.
The importance of a robust storage layer Various options Recommendations File-backed VBDs: basic setup QCOW Creating a QCOW image [Sidebar: files with subpartitions] Configuring the domU LVM: basic setup LVM Creating a Volume Group Check versions pvcreate vgcreate lvcreate Apply filesystem Configure domU Growing and shrinking backing devices Copy-on-Write and snapshots QCOW LVM Storage and migration Network storage NFS AoE
05 - Networking
OK II In which the services of carrier pigeons and diverse other couriers are retained.
Overview Xen's network init process Virtual interfaces Naming virtual interfaces Box: re-indexing names Box: truncating names Manipulating vifs with xm Securing Xen networking Network-route Network-bridge Network-nat Configuration variables Autoconfiguration Stuff you might want to specify Custom network scripts Multiple bridges Bridged and routed Further thoughts
06 - Managing domUs
OK Bare-metal management with xm The value of a frontend libvirt - an abstraction layer for vitualization virt-manager gplhost xen-tools Enomalism deb-bootstrap / rpm-bootstrap Multiple OS support Xenolinux NetBSD OpenSolaris OpenBSD Windows
OK Advantages for the users Tuning CPU usage Scheduler options Configuring the credit scheduler Pygrub Useful features of Pygrub Stuff to watch for Storage in a shared-hosting environment cLVM Shared images Console access Emulated serial console Securing it Console server Shared resources and protecting them from the users Memory Network Balancing I/O Timing attacks
08 - Xen with non-Linux UNIX-like OSes
OK I Solaris NetBSD
09 - Migration
OK Migration and its application The most basic possible way of moving a domU xm save and xm restore Cold migration Live migration How live migration works (Sidebar: not-quite-so-live migration) Configure Xen for migration Live migration and storage AoE NFS root LVM/cLVM Some general notes on troubleshooting
10 - Profiling with Xen
Need to analyze application performance in VM Xenoprof Xen's robust profiling support Enabling it Setting up oprofile Userspace tools Xen configuration Active v. passive Multiple domains in concert Xentrace A sample workload Running the experiment Kexec and kdump
11 - Xensource
OK I The Xensource product and the open source version Admin console product Benefits "Xen in ten minutes" Disadvantages Cost Creating domU images with P2V Getting started Configuration Installing domU images Linux Windows install
12 - HVM and Xen
OK I Overview and theory Supported processors Supported guests Linux Windows BSD? [FIXME is it still broken?] Virtual BIOS Compatibility between dom0 and domU kernels Paravirtualized v. non-virtualized drivers QEMU-dm Interacting with the machine -- VNC and SDL
13 - Windows
OK I If pigs had wings they'd be pigeons.
Why run Windows under Xen? Security Windows on Xen: Prerequisites Windows on Xen: Installation Installing manually A discussion of HALs Installing the RedHat way Windows with the virtual framebuffer Success! . . . with caveats Windows Activation Graphics cards Memory Paravirtualized drivers Proprietary options GPL PV drivers Ongoing development
14 - Tips
Compile-time tuning For debug To build alternate kernels (dom0 and domU) Configuring the kernels Memory Dom0 memory issues The balloon driver /lib/tls issues The config file auto-generation scheme Remote domU consoles [more tips as we think of them
15 - Troubleshooting
The importance of a debug build Logs and what Xen writes to them /var/log /var/log/xend.log /var/log/xen-debug.log /var/log/syslog dmesg and xm dmesg Common error messages virt-installer quirks Memory dom0 memory issues PAE Troubleshooting network brctl check the logs Troubleshooting disk Serial output
Appendix A - Xen tools reference
xm xentop xend