From PrgmrWiki
Revision as of 10:21, 28 May 2008 by Lsc (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 Configure domU Make it go.

03 - Installing domUs

OK An investigation of geologic features of the virtualized countryside:

Beyond 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

07 - Xen with shared hosting

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

Appendix B - Annotated configuration files