diff options
author | smh22@tempest.cl.cam.ac.uk <smh22@tempest.cl.cam.ac.uk> | 2004-11-03 15:04:51 +0000 |
---|---|---|
committer | smh22@tempest.cl.cam.ac.uk <smh22@tempest.cl.cam.ac.uk> | 2004-11-03 15:04:51 +0000 |
commit | ef4355234b819275e98401bf3915fbda76b161c8 (patch) | |
tree | a7ddff1f17f4c96385a9cc679c9797d13d1c966a | |
parent | 129eeeb2355df53999040179046df7cc79f637bd (diff) | |
download | xen-ef4355234b819275e98401bf3915fbda76b161c8.tar.gz xen-ef4355234b819275e98401bf3915fbda76b161c8.tar.bz2 xen-ef4355234b819275e98401bf3915fbda76b161c8.zip |
bitkeeper revision 1.1159.1.351 (4188f393nZSy-C7Sn46WkZ8BpaZuTw)
doc updates (and new ignores)
-rw-r--r-- | BitKeeper/etc/ignore | 188 | ||||
-rw-r--r-- | docs/src/interface.tex | 17 | ||||
-rw-r--r-- | docs/src/user.tex | 417 |
3 files changed, 416 insertions, 206 deletions
diff --git a/BitKeeper/etc/ignore b/BitKeeper/etc/ignore index a7f0698899..625b3699ae 100644 --- a/BitKeeper/etc/ignore +++ b/BitKeeper/etc/ignore @@ -75,3 +75,191 @@ xen/tools/figlet/figlet xen/xen xen/xen-syms xen/xen.* +install/boot/System.map-2.6.9-xen0 +install/boot/System.map-2.6.9-xenU +install/boot/config-2.6.9-xen0 +install/boot/config-2.6.9-xenU +install/boot/vmlinux-syms-2.6.9-xen0 +install/boot/vmlinux-syms-2.6.9-xenU +install/boot/vmlinuz-2.6.9-xen0 +install/boot/vmlinuz-2.6.9-xenU +install/boot/xen-syms +install/boot/xen.gz +install/etc/xen/scripts/block-enbd +install/etc/xen/scripts/block-file +install/etc/xen/scripts/network +install/etc/xen/scripts/vif-bridge +install/etc/xen/xend-config.sxp +install/etc/xen/xmexample1 +install/etc/xen/xmexample2 +install/lib/modules/2.6.9-xen0/build +install/lib/modules/2.6.9-xen0/kernel/crypto/crc32c.ko +install/lib/modules/2.6.9-xen0/kernel/crypto/des.ko +install/lib/modules/2.6.9-xen0/kernel/crypto/md5.ko +install/lib/modules/2.6.9-xen0/kernel/crypto/sha1.ko +install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/ds.ko +install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/pcmcia_core.ko +install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/yenta_socket.ko +install/lib/modules/2.6.9-xen0/kernel/fs/exportfs/exportfs.ko +install/lib/modules/2.6.9-xen0/kernel/fs/fat/fat.ko +install/lib/modules/2.6.9-xen0/kernel/fs/msdos/msdos.ko +install/lib/modules/2.6.9-xen0/kernel/fs/nfsd/nfsd.ko +install/lib/modules/2.6.9-xen0/kernel/fs/vfat/vfat.ko +install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_conntrack.ko +install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko +install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_tables.ko +install/lib/modules/2.6.9-xen0/modules.alias +install/lib/modules/2.6.9-xen0/modules.ccwmap +install/lib/modules/2.6.9-xen0/modules.dep +install/lib/modules/2.6.9-xen0/modules.ieee1394map +install/lib/modules/2.6.9-xen0/modules.inputmap +install/lib/modules/2.6.9-xen0/modules.isapnpmap +install/lib/modules/2.6.9-xen0/modules.pcimap +install/lib/modules/2.6.9-xen0/modules.symbols +install/lib/modules/2.6.9-xen0/modules.usbmap +install/lib/modules/2.6.9-xen0/source +install/lib/modules/2.6.9-xenU/build +install/lib/modules/2.6.9-xenU/kernel/crypto/crc32c.ko +install/lib/modules/2.6.9-xenU/kernel/crypto/md5.ko +install/lib/modules/2.6.9-xenU/kernel/drivers/block/loop.ko +install/lib/modules/2.6.9-xenU/kernel/drivers/block/nbd.ko +install/lib/modules/2.6.9-xenU/kernel/drivers/scsi/scsi_mod.ko +install/lib/modules/2.6.9-xenU/kernel/drivers/scsi/sd_mod.ko +install/lib/modules/2.6.9-xenU/kernel/fs/fat/fat.ko +install/lib/modules/2.6.9-xenU/kernel/fs/msdos/msdos.ko +install/lib/modules/2.6.9-xenU/kernel/fs/vfat/vfat.ko +install/lib/modules/2.6.9-xenU/kernel/lib/libcrc32c.ko +install/lib/modules/2.6.9-xenU/source +install/lib/python/xen/__init__.py +install/lib/python/xen/lowlevel/__init__.py +install/lib/python/xen/sv/CreateDomain.py +install/lib/python/xen/sv/Daemon.py +install/lib/python/xen/sv/DomInfo.py +install/lib/python/xen/sv/DomList.py +install/lib/python/xen/sv/GenTabbed.py +install/lib/python/xen/sv/HTMLBase.py +install/lib/python/xen/sv/Main.py +install/lib/python/xen/sv/MigrateDomain.py +install/lib/python/xen/sv/NodeInfo.py +install/lib/python/xen/sv/RestoreDomain.py +install/lib/python/xen/sv/SaveDomain.py +install/lib/python/xen/sv/TabView.py +install/lib/python/xen/sv/Wizard.py +install/lib/python/xen/sv/__init__.py +install/lib/python/xen/sv/params.py +install/lib/python/xen/sv/util.py +install/lib/python/xen/util/Brctl.py +install/lib/python/xen/util/__init__.py +install/lib/python/xen/util/console_client.py +install/lib/python/xen/util/ip.py +install/lib/python/xen/util/tempfile.py +install/lib/python/xen/xend/Args.py +install/lib/python/xen/xend/Blkctl.py +install/lib/python/xen/xend/EventServer.py +install/lib/python/xen/xend/EventTypes.py +install/lib/python/xen/xend/PrettyPrint.py +install/lib/python/xen/xend/Vifctl.py +install/lib/python/xen/xend/XendAsynchProtocol.py +install/lib/python/xen/xend/XendClient.py +install/lib/python/xen/xend/XendConsole.py +install/lib/python/xen/xend/XendDB.py +install/lib/python/xen/xend/XendDmesg.py +install/lib/python/xen/xend/XendDomain.py +install/lib/python/xen/xend/XendDomainConfig.py +install/lib/python/xen/xend/XendDomainInfo.py +install/lib/python/xen/xend/XendError.py +install/lib/python/xen/xend/XendLogging.py +install/lib/python/xen/xend/XendMigrate.py +install/lib/python/xen/xend/XendNode.py +install/lib/python/xen/xend/XendProtocol.py +install/lib/python/xen/xend/XendRoot.py +install/lib/python/xen/xend/XendVnet.py +install/lib/python/xen/xend/__init__.py +install/lib/python/xen/xend/encode.py +install/lib/python/xen/xend/server/SrvBase.py +install/lib/python/xen/xend/server/SrvConsole.py +install/lib/python/xen/xend/server/SrvConsoleDir.py +install/lib/python/xen/xend/server/SrvDaemon.py +install/lib/python/xen/xend/server/SrvDeviceDir.py +install/lib/python/xen/xend/server/SrvDir.py +install/lib/python/xen/xend/server/SrvDmesg.py +install/lib/python/xen/xend/server/SrvDomain.py +install/lib/python/xen/xend/server/SrvDomainDir.py +install/lib/python/xen/xend/server/SrvEventDir.py +install/lib/python/xen/xend/server/SrvNode.py +install/lib/python/xen/xend/server/SrvRoot.py +install/lib/python/xen/xend/server/SrvServer.py +install/lib/python/xen/xend/server/SrvVnetDir.py +install/lib/python/xen/xend/server/SrvXendLog.py +install/lib/python/xen/xend/server/__init__.py +install/lib/python/xen/xend/server/blkif.py +install/lib/python/xen/xend/server/channel.py +install/lib/python/xen/xend/server/console.py +install/lib/python/xen/xend/server/controller.py +install/lib/python/xen/xend/server/domain.py +install/lib/python/xen/xend/server/messages.py +install/lib/python/xen/xend/server/netif.py +install/lib/python/xen/xend/server/params.py +install/lib/python/xen/xend/sxp.py +install/lib/python/xen/xm/__init__.py +install/lib/python/xen/xm/create.py +install/lib/python/xen/xm/destroy.py +install/lib/python/xen/xm/help.py +install/lib/python/xen/xm/main.py +install/lib/python/xen/xm/migrate.py +install/lib/python/xen/xm/opts.py +install/lib/python/xen/xm/shutdown.py +install/usr/bin/miniterm +install/usr/bin/xen_cpuperf +install/usr/bin/xencons +install/usr/bin/xentrace +install/usr/bin/xentrace_format +install/usr/include/xc.h +install/usr/include/xen/COPYING +install/usr/include/xen/arch-x86_32.h +install/usr/include/xen/arch-x86_64.h +install/usr/include/xen/dom0_ops.h +install/usr/include/xen/event_channel.h +install/usr/include/xen/grant_table.h +install/usr/include/xen/io/blkif.h +install/usr/include/xen/io/domain_controller.h +install/usr/include/xen/io/netif.h +install/usr/include/xen/linux/privcmd.h +install/usr/include/xen/linux/suspend.h +install/usr/include/xen/physdev.h +install/usr/include/xen/sched_ctl.h +install/usr/include/xen/trace.h +install/usr/include/xen/xen.h +install/usr/man/man1/xentrace_format.1 +install/usr/man/man8/xentrace.8 +install/usr/sbin/netfix +install/usr/sbin/xend +install/usr/sbin/xensv +install/usr/sbin/xfrd +install/usr/sbin/xm +install/var/xen/sv/Main.rpy +install/var/xen/sv/images/destroy.png +install/var/xen/sv/images/finish.png +install/var/xen/sv/images/left-end-highlight.jpg +install/var/xen/sv/images/left-end-no-highlight.jpg +install/var/xen/sv/images/middle-highlight.jpg +install/var/xen/sv/images/middle-no-highlight.jpg +install/var/xen/sv/images/next.png +install/var/xen/sv/images/orb_01.jpg +install/var/xen/sv/images/orb_02.jpg +install/var/xen/sv/images/pause.png +install/var/xen/sv/images/previous.png +install/var/xen/sv/images/reboot.png +install/var/xen/sv/images/right-end-highlight.jpg +install/var/xen/sv/images/right-end-no-highlight.jpg +install/var/xen/sv/images/seperator-left-highlight.jpg +install/var/xen/sv/images/seperator-right-highlight.jpg +install/var/xen/sv/images/seperator.jpg +install/var/xen/sv/images/shutdown.png +install/var/xen/sv/images/small-destroy.png +install/var/xen/sv/images/small-pause.png +install/var/xen/sv/images/small-unpause.png +install/var/xen/sv/images/unpause.png +install/var/xen/sv/images/xen.png +install/var/xen/sv/inc/script.js +install/var/xen/sv/inc/style.css diff --git a/docs/src/interface.tex b/docs/src/interface.tex index 1e3b14e6e0..1d5ede64bd 100644 --- a/docs/src/interface.tex +++ b/docs/src/interface.tex @@ -79,10 +79,10 @@ In addition to exporting virtualized instances of CPU, memory, network and block devices, Xen exposes a control interface to manage how these resources are shared between the running domains. Access to the control interface is restricted: it may only be used by one -specially-privileged VM, known as {\em domain-0}. This domain is a +specially-privileged VM, known as {\em domain 0}. This domain is a required part of any Xen-based server and runs the application software that manages the control-plane aspects of the platform. Running the -control software in {\it domain-0}, distinct from the hypervisor +control software in {\it domain 0}, distinct from the hypervisor itself, allows the Xen framework to separate the notions of mechanism and policy within the system. @@ -132,6 +132,7 @@ is responsible for determining the target domain that will handle each physical interrupt source. + \section{Time} Guest operating systems need to be aware of the passage of both real @@ -159,7 +160,7 @@ have elapsed since system boot. This is the time of day in a Unix-style {\tt struct timeval} (seconds and microseconds since 1 January 1970, adjusted by leap seconds). An -NTP client hosted by {\it domain-0} can keep this value accurate. +NTP client hosted by {\it domain 0} can keep this value accurate. \item[Domain virtual time.] @@ -343,9 +344,9 @@ different to that provided by the underlying hardware. In particular, the processor is already executing in protected mode with paging enabled. -{\it Domain-0} is created and booted by Xen itself. For all subsequent +{\it Domain 0} is created and booted by Xen itself. For all subsequent donains, the analogue of the boot-loader is the {\it domain builder}, -user-space software running in {\it domain-0}. The domain builder +user-space software running in {\it domain 0}. The domain builder is responsible for building the initial page tables for a domain and loading its kernel image at the appropriate virtual address. @@ -615,7 +616,7 @@ to {\tt set\_trap\_table()}). \section{Scheduling and Timer} Domains are premptively scheduled by Xen according to the -parameters installed by Domain-0 (see Section~\ref{s:dom0ops}). +parameters installed by domain 0 (see Section~\ref{s:dom0ops}). In addition, however, a domain may choose to explicitly control certain behaviour with the following hypercall: @@ -900,7 +901,7 @@ XXX SMH: damn, found some more calls - needs little bit more yet. \label{s:dom0ops} A large number of control operations are available to a sufficiently -privileged domain (typically domain-0). These allow the creation and +privileged domain (typically domain 0). These allow the creation and management of new domains, for example. A complete list is given below: for more details on any or all of these, please see {\tt xen/include/public/dom0\_ops.h} @@ -1349,7 +1350,7 @@ buffers will be disabled. When running a trace buffer build of Xen, trace data are written continuously into the buffer data areas, with newer data overwriting older data. This data -can be captured using the {\tt xentrace} program in Domain 0. +can be captured using the {\tt xentrace} program in domain 0. The {\tt xentrace} tool uses {\tt /dev/mem} in domain 0 to map the trace buffers into its address space. It then periodically polls all the buffers for diff --git a/docs/src/user.tex b/docs/src/user.tex index dae6ac9b59..f0be341112 100644 --- a/docs/src/user.tex +++ b/docs/src/user.tex @@ -1,7 +1,12 @@ \documentclass[11pt,twoside,final,openright]{xenstyle} -\usepackage{a4,graphicx,parskip,setspace,times} +\usepackage{a4,graphicx,parskip,setspace,times,xspace} \setstretch{1.1} + +\def\Xend{{Xend}\xspace} +\def\xend{{xend}\xspace} + + \begin{document} % TITLE PAGE @@ -53,6 +58,7 @@ Contributions of material, suggestions and corrections are welcome. \newcommand{\path}[1]{{\tt #1}} + \part{Introduction and Tutorial} \chapter{Introduction} @@ -108,22 +114,23 @@ Possible usage scenarios for Xen include: \section{Structure of a Xen-Based System} A Xen system has multiple layers, the lowest and most privileged of -which is Xen itself. Xen in turn may host multiple {\em guest} -operating systems, each of which is executed within a secure virtual -machine (in Xen terminology, a {\em domain}). Domains are scheduled by -Xen to make effective use of the available physical CPUs. Each guest -OS manages its own applications, which includes responsibility for -scheduling each application within the time allotted to the VM by Xen. - -The first domain, {\em Domain 0}, is created automatically when the +which is Xen itself. +Xen in turn may host multiple {\em guest} operating systems, each of +which is executed within a secure virtual machine (in Xen terminology, +a {\em domain}). Domains are scheduled by Xen to make effective use of +the available physical CPUs. Each guest OS manages its own +applications, which includes responsibility for scheduling each +application within the time allotted to the VM by Xen. + +The first domain, {\em domain 0}, is created automatically when the system boots and has special management privileges. Domain 0 builds other domains and manages their virtual devices. It also performs administrative tasks such as suspending, resuming and migrating other virtual machines. -Within domain 0, a process called `xend' runs to manage the system. -Xend is responsible for managing virtual machines and providing access -to their consoles. Commands are issued to Xend over an HTTP +Within domain 0, a process called \xend runs to manage the system. +\Xend is responsible for managing virtual machines and providing access +to their consoles. Commands are issued to \xend over an HTTP interface, either from a command-line tool or from a web browser. \section{Hardware Support} @@ -276,7 +283,7 @@ following: \begin{itemize} \item Build Xen -\item Build the control tools, including Xend +\item Build the control tools, including \xend \item Download (if necessary) and unpack the Linux 2.6 source code, and patch it for use with Xen \item Build a Linux kernel to use in domain 0 and a smaller @@ -464,10 +471,10 @@ the tools subdirectory of the repository and typing \\ To start the control daemon, type \\ \verb!# xend start! \\ If you wish to start the daemon automatically, see the instructions in -Chapter~\ref{cha:xend}. Once the daemon is running, you can use the +Section~\ref{s:xend}. Once the daemon is running, you can use the {\tt xm} tool to monitor and maintain the domains running on your system. This chapter provides only a brief tutorial: we provide full -details of the {\tt xm} tool in Chapter~\ref{cha:xm}. +details of the {\tt xm} tool in Section~\ref{s:xm}. %\section{From the web interface} % @@ -518,7 +525,7 @@ receive its IP address from a DHCP server. [i.e. {\tt dhcp='dhcp'}] You may also want to edit the {\bf vif} variable in order to choose the MAC address of the virtual ethernet interface yourself. For example: \\ \verb_vif = ['mac=00:06:AA:F6:BB:B3']_\\ If you do not set -this variable, Xend will automatically generate a random MAC address +this variable, \xend will automatically generate a random MAC address from an unused range. If you don't have a \path{xmdefconfig} file, simply create your own @@ -643,7 +650,7 @@ The output of {\tt xm list} is in rows of the following format:\\ The {\tt xm list} command also supports a long output format when the {\tt -l} switch is used. This outputs the fulls details of the -running domains in Xend's SXP configuration format. +running domains in \xend's SXP configuration format. For example, suppose the system is running the ttylinux domain as described earlier. The list command should produce output somewhat @@ -700,7 +707,7 @@ Live migration is used to transfer a domain between physical hosts whilst that domain continues to perform its usual activities --- from the user's perspective, the migration should be imperceptible. -To perform a live migration, both hosts must be running Xen / Xend and +To perform a live migration, both hosts must be running Xen / \xend and the destination host must have sufficient resources (e.g. memory capacity) to accommodate the domain after the move. @@ -876,93 +883,41 @@ XXX Put some simple examples here - would be nice if an LVM user could contribute some, although obviously users would have to read the LVM docs to do advanced stuff. -\part{Quick Reference} - -\chapter{Domain Configuration Files} -\label{cha:config} - -Xen configuration files contain the following standard variables. -Unless otherwise stated, configuration items should be enclosed in -quotes (i.e. {\tt '...'} or {\tt ``....''})): - -\begin{description} -\item[kernel] Path to the kernel image (on the server). -\item[ramdisk] Path to a ramdisk image (optional). -% \item[builder] The name of the domain build function (e.g. {\tt'linux'} or {\tt'netbsd'}. -\item[memory] Memory size in megabytes. -\item[cpu] CPU to assign this domain to. -\item[nics] Number of virtual network interfaces. -\item[vif] List of MAC addresses (random addresses are assigned if not - given) and / or bridges to use for the domains network - interfaces. e.g. -\begin{verbatim} -vif = [ 'mac=aa:00:00:00:00:11, bridge=xen-br0', - 'bridge=xen-br1' ] -\end{verbatim} - to assign a MAC address and bridge to the first interface and assign - a different bridge to the second interface, leaving Xend to choose - the MAC address. -\item[disk] List of block devices to export to the domain. e.g. \\ - \verb_disk = [ 'phy:hda1,sda1,r' ]_ \\ - exports device \path{/dev/hda1} to the domain, as \path{/dev/sda1} with - readonly access being allowed. \\ - \verb_disk = [ 'phy:hda7,sda2,w', 'phy:hdb2,sda,w!' ]_ \\ - exports device \path{/dev/hda7} to the domain as \path{/dev/sda2} with - write access enabled and \path{/dev/hdb2} as \path{/dev/sda} with write access - force enabled (bypassing safety checks, as indicated by the {\tt !}). -\item[dhcp] Set to {\tt 'dhcp'} if you want to DHCP allocate the IP -address. -\item[netmask] IP netmask. -\item[gateway] IP address for the gateway (if any). -\item[hostname] Set the hostname for the virtual machine. -\item[root] Set the root device. -\item[nfs\_server] IP address for the NFS server. -\item[nfs\_root] Path of the root filesystem on the NFS server. -\item[extra] Extra string to append to the kernel command line. -\item[restart] Three possible options: - \begin{description} - \item[always] Always restart the domain, no matter what - its exit code is. - \item[never] Never restart the domain. - \item[onreboot] (restart the domain if it requests reboot). - \end{description} -\end{description} +\part{User Reference Documentation} -For additional flexibility, it is also possible to include Python -scripting commands in configuration files. An example of this is the -\path{xmexample} file in order to handle the {\tt vmid} variable. +\chapter{Control Software} -\chapter{Xend (Node control daemon)} -\label{cha:xend} +\section{\Xend (Node control daemon)} +\label{s:xend} -The Xen Daemon (Xend) performs system management functions related to +The Xen Daemon (\Xend) performs system management functions related to virtual machines. It forms a central point of control for a machine -and can be controlled using an HTTP-based protocol. Xend must be +and can be controlled using an HTTP-based protocol. \Xend must be running in order to start and manage virtual machines. -Xend must be run as root because it needs access to privileged system +\Xend must be run as root because it needs access to privileged system management functions. A small set of commands may be issued on the -Xend command line: +\xend command line: \begin{tabular}{ll} -\verb!# xend start! & start Xend, if not already running \\ -\verb!# xend stop! & stop Xend if already running \\ -\verb!# xend restart! & restart Xend if running, otherwise start it \\ -\verb!# xend trace_start! & start Xend, with very detailed debug logging \\ -\verb!# xend status! & indicates Xend status by its return code +\verb!# xend start! & start \xend, if not already running \\ +\verb!# xend stop! & stop \xend if already running \\ +\verb!# xend restart! & restart \xend if running, otherwise start it \\ +\verb!# xend trace_start! & start \xend, with very detailed debug logging \\ +\verb!# xend status! & indicates \xend status by its return code \end{tabular} -A SysV init script called {\tt xend} is provided to start Xend at boot +A SysV init script called {\tt xend} is provided to start \xend at boot time. {\tt make install} installs this script in {\path{/etc/init.d}. To enable it, you have to make symbolic links in the appropriate runlevel directories or use the {\tt chkconfig} tool, where available. -Once Xend is running, more sophisticated administration can be done -using the xm tool (see Chapter~\ref{cha:xm}) and the experimental -Xensv web interface (see Chapter~\ref{cha:xensv}). +Once \xend is running, more sophisticated administration can be done +using the xm tool (see Section~\ref{s:xm}) and the experimental +Xensv web interface (see Section~\ref{s:xensv}). -\chapter{The xm tool} -\label{cha:xm} +\section{The xm tool} +\label{s:xm} The xm tool is the primary tool for managing Xen from the console. The general format of an xm command line is: @@ -1001,7 +956,7 @@ The available commands are as follows: \item[atropos] Set the atropos parameters for a domain. \item[rrobin] Set the round robin time slice for the system. \item[info] Get information about the Xen host. -\item[call] Call a Xend HTTP API function directly. +\item[call] Call a \xend HTTP API function directly. \end{description} For a detailed overview of switches, arguments and variables to each command @@ -1010,15 +965,16 @@ try # xm help command \end{verbatim} -\chapter{Xensv (Web control interface)} -\label{cha:xensv} + +\section{Xensv (Web control interface)} +\label{s:xensv} Xensv is the experimental web control interface for managing a Xen machine. It can be used to perform some (but not yet all) of the management tasks that can be done using the xm tool. It can be started using:\\ \verb_# xensv start_ \\ and -stopped using: \verb_# xensv stop_ \\ It will automatically start Xend +stopped using: \verb_# xensv stop_ \\ It will automatically start \xend if it is not already running. By default, Xensv will serve out the web interface on port 8080. This @@ -1030,108 +986,69 @@ manage running domains. -\chapter{Glossary} - -\begin{description} -\item[Atropos] One of the CPU schedulers provided by Xen. - Atropos provides domains with absolute shares - of the CPU, with timeliness guarantees and a - mechanism for sharing out `slack time'. - -\item[BVT] The BVT scheduler is used to give proportional - fair shares of the CPU to domains. - -\item[Exokernel] A minimal piece of privileged code, similar to - a {\bf microkernel} but providing a more - `hardware-like' interface to the tasks it - manages. This is similar to a paravirtualising - VMM like {\bf Xen} but was designed as a new - operating system structure, rather than - specifically to run multiple conventional OSs. - -\item[Domain] A domain is the execution context that - contains a running { \bf virtual machine }. - The relationship between virtual machines - and domains on Xen is similar to that between - programs and processes in an operating - system: a virtual machine is a persistent - entity that resides on disk (somewhat like - a program). When it is loaded for execution, - it runs in a domain. Each domain has a - { \bf domain ID }. - -\item[Domain 0] The first domain to be started on a Xen - machine. Domain 0 is responsible for managing - the system. - -\item[Domain ID] A unique identifier for a { \bf domain }, - analogous to a process ID in an operating - system. Apart from domain - -\item[Full virtualisation] An approach to virtualisation which - requires no modifications to the hosted - operating system, providing the illusion of - a complete system of real hardware devices. - -\item[Hypervisor] An alternative term for { \bf VMM }, used - because it means `beyond supervisor', - since it is responsible for managing multiple - `supervisor' kernels. - -\item[Live migration] A technique for moving a running virtual - machine to another physical host, without - stopping it or the services running on it. - -\item[Microkernel] A small base of code running at the highest - hardware privilege level. A microkernel is - responsible for sharing CPU and memory (and - sometimes other devices) between less - privileged tasks running on the system. - This is similar to a VMM, particularly a - {\bf paravirtualising} VMM but typically - addressing a different problem space and - providing different kind of interface. - -\item[NetBSD/Xen] A port of NetBSD to the Xen architecture. -\item[Paravirtualisation] An approach to virtualisation which requires - modifications to the operating system in - order to run in a virtual machine. Xen - uses paravirtualisation but preserves - binary compatibility for user space - applications. +\chapter{Domain Configuration} +\label{cha:config} -\item[Shadow pagetables] A technique for hiding the layout of machine - memory from a virtual machine's operating - system. Used in some {\bf VMM}s to provide - the illusion of contiguous physical memory, - in Xen this is used during - {\bf live migration}. -\item[Virtual Machine] The environment in which a hosted operating - system runs, providing the abstraction of a - dedicated machine. A virtual machine may - be identical to the underlying hardware (as - in { \bf full virtualisation }, or it may - differ, as in { \bf paravirtualisation }. +\section{Configuration Files} +\label{s:cfiles} -\item[VMM] Virtual Machine Monitor - the software that - allows multiple virtual machines to be - multiplexed on a single physical machine. +Xen configuration files contain the following standard variables. +Unless otherwise stated, configuration items should be enclosed in +quotes (i.e. {\tt '...'} or {\tt ``....''})): -\item[Xen] Xen is a paravirtualising virtual machine - monitor, developed primarily by the - Systems Research Group at the University - of Cambridge Computer Laboratory. +\begin{description} +\item[kernel] Path to the kernel image (on the server). +\item[ramdisk] Path to a ramdisk image (optional). +% \item[builder] The name of the domain build function (e.g. {\tt'linux'} or {\tt'netbsd'}. +\item[memory] Memory size in megabytes. +\item[cpu] CPU to assign this domain to. +\item[nics] Number of virtual network interfaces. +\item[vif] List of MAC addresses (random addresses are assigned if not + given) and / or bridges to use for the domains network + interfaces. e.g. +\begin{verbatim} +vif = [ 'mac=aa:00:00:00:00:11, bridge=xen-br0', + 'bridge=xen-br1' ] +\end{verbatim} + to assign a MAC address and bridge to the first interface and assign + a different bridge to the second interface, leaving \xend to choose + the MAC address. +\item[disk] List of block devices to export to the domain. e.g. \\ + \verb_disk = [ 'phy:hda1,sda1,r' ]_ \\ + exports device \path{/dev/hda1} to the domain, as \path{/dev/sda1} with + readonly access being allowed. \\ + \verb_disk = [ 'phy:hda7,sda2,w', 'phy:hdb2,sda,w!' ]_ \\ + exports device \path{/dev/hda7} to the domain as \path{/dev/sda2} with + write access enabled and \path{/dev/hdb2} as \path{/dev/sda} with write access + force enabled (bypassing safety checks, as indicated by the {\tt !}). +\item[dhcp] Set to {\tt 'dhcp'} if you want to DHCP allocate the IP +address. +\item[netmask] IP netmask. +\item[gateway] IP address for the gateway (if any). +\item[hostname] Set the hostname for the virtual machine. +\item[root] Set the root device. +\item[nfs\_server] IP address for the NFS server. +\item[nfs\_root] Path of the root filesystem on the NFS server. +\item[extra] Extra string to append to the kernel command line. +\item[restart] Three possible options: + \begin{description} + \item[always] Always restart the domain, no matter what + its exit code is. + \item[never] Never restart the domain. + \item[onreboot] (restart the domain if it requests reboot). + \end{description} +\end{description} -\item[XenLinux] Official name for the port of the Linux kernel - that runs on Xen. +For additional flexibility, it is also possible to include Python +scripting commands in configuration files. An example of this is the +\path{xmexample} file in order to handle the {\tt vmid} variable. -\end{description} -\part{Advanced Topics} +%\part{Advanced Topics} -\chapter{Advanced Network Configuration} +\chapter{Network Configuration} For simple systems with a single ethernet interface with a simple configuration, the default installation should work `out of the @@ -1140,22 +1057,22 @@ ethernet interfaces and / or existing bridging setups will require some special configuration. The purpose of this chapter is to describe the mechanisms provided by -xend to allow a flexible configuration for Xen's virtual networking. +\xend to allow a flexible configuration for Xen's virtual networking. \section{Xen networking scripts} Xen's virtual networking is configured by 3 shell scripts. These are -called automatically by Xend when certain events occur, with arguments +called automatically by \xend when certain events occur, with arguments to the scripts providing further contextual information. These scripts are found by default in \path{/etc/xen}. The names and locations of the scripts can be configured in \path{xend-config.sxp}. \subsection{\path{network}} -This script is called once when Xend is started and once when Xend is +This script is called once when \xend is started and once when \xend is stopped. Its job is to do any advance preparation required for the -Xen virtual network when Xend starts and to do any corresponding -cleanup when Xend exits. +Xen virtual network when \xend starts and to do any corresponding +cleanup when \xend exits. In the default configuration, this script creates the bridge `xen-br0' and moves eth0 onto that bridge, modifying the routing @@ -1164,7 +1081,7 @@ accordingly. In configurations where the bridge already exists, this script could be replaced with a link to \path{/bin/true} (for instance). -When Xend exits, this script is called with the {\tt stop} argument, +When \xend exits, this script is called with the {\tt stop} argument, which causes it to delete the Xen bridge and remove {\tt eth0} from it, restoring the normal IP and routing configuration. @@ -1178,7 +1095,7 @@ By default, this adds and removes VIFs on the default Xen bridge. This script can be customized to properly deal with more complicated bridging setups. -\chapter{Advanced Scheduling Configuration} +\chapter{Scheduler Configuration} \section{Scheduler selection} @@ -1288,10 +1205,10 @@ higher throughput. %% There are two possible types of privileges: IO privileges and %% administration privileges. -\section{Driver domains (IO Privileges)} +\section{Driver domains (I/O Privileges)} -IO privileges can be assigned to allow a domain to drive PCI devices -itself. This is used to support driver domains. +I/O privileges can be assigned to allow a domain to directly access +PCI devices itself. This is used to support driver domains. Setting backend privileges is currently only supported in SXP format config files. To allow a domain to function as a backend for others, @@ -1299,7 +1216,7 @@ somewhere within the {\tt vm} element of its configuration file must be a {\tt backend} element of the form {\tt (backend ({\em type}))} where {\tt \em type} may be either {\tt netif} or {\tt blkif}, according to the type of virtual device this domain will service. -After this domain has been built, Xend will connect all new and +After this domain has been built, \xend will connect all new and existing {\em virtual} devices (of the appropriate type) to that backend. @@ -1509,7 +1426,7 @@ domain). Device IDs should be given in hex format. Bridge devices do not need to be hidden --- they are hidden implicitly, since guest OSes do not need to configure them. -\section{XenLinux Options} +\section{XenLinux Boot Options} {\bf xencons=xxx} Specify the device node to @@ -1760,6 +1677,8 @@ this was to have a \path{/linuxrc} script run ahead of exec /sbin/init "$@" <>/dev/console 2>&1 \end{verbatim} +%$ XXX SMH: font lock fix :-) + The one slight complication with the above is that \path{/sbin/portmap} is dynamically linked against \path{/usr/lib/libwrap.so.0} Since this is in \path{/usr}, it won't @@ -1778,6 +1697,108 @@ shared libraries to be copied below the mount point - a little statically linked C program would solve this problem. + + +\chapter{Glossary of Terms} + +\begin{description} +\item[Atropos] One of the CPU schedulers provided by Xen. + Atropos provides domains with absolute shares + of the CPU, with timeliness guarantees and a + mechanism for sharing out `slack time'. + +\item[BVT] The BVT scheduler is used to give proportional + fair shares of the CPU to domains. + +\item[Exokernel] A minimal piece of privileged code, similar to + a {\bf microkernel} but providing a more + `hardware-like' interface to the tasks it + manages. This is similar to a paravirtualising + VMM like {\bf Xen} but was designed as a new + operating system structure, rather than + specifically to run multiple conventional OSs. + +\item[Domain] A domain is the execution context that + contains a running { \bf virtual machine }. + The relationship between virtual machines + and domains on Xen is similar to that between + programs and processes in an operating + system: a virtual machine is a persistent + entity that resides on disk (somewhat like + a program). When it is loaded for execution, + it runs in a domain. Each domain has a + { \bf domain ID }. + +\item[Domain 0] The first domain to be started on a Xen + machine. Domain 0 is responsible for managing + the system. + +\item[Domain ID] A unique identifier for a { \bf domain }, + analogous to a process ID in an operating + system. Apart from domain + +\item[Full virtualisation] An approach to virtualisation which + requires no modifications to the hosted + operating system, providing the illusion of + a complete system of real hardware devices. + +\item[Hypervisor] An alternative term for { \bf VMM }, used + because it means `beyond supervisor', + since it is responsible for managing multiple + `supervisor' kernels. + +\item[Live migration] A technique for moving a running virtual + machine to another physical host, without + stopping it or the services running on it. + +\item[Microkernel] A small base of code running at the highest + hardware privilege level. A microkernel is + responsible for sharing CPU and memory (and + sometimes other devices) between less + privileged tasks running on the system. + This is similar to a VMM, particularly a + {\bf paravirtualising} VMM but typically + addressing a different problem space and + providing different kind of interface. + +\item[NetBSD/Xen] A port of NetBSD to the Xen architecture. + +\item[Paravirtualisation] An approach to virtualisation which requires + modifications to the operating system in + order to run in a virtual machine. Xen + uses paravirtualisation but preserves + binary compatibility for user space + applications. + +\item[Shadow pagetables] A technique for hiding the layout of machine + memory from a virtual machine's operating + system. Used in some {\bf VMM}s to provide + the illusion of contiguous physical memory, + in Xen this is used during + {\bf live migration}. + +\item[Virtual Machine] The environment in which a hosted operating + system runs, providing the abstraction of a + dedicated machine. A virtual machine may + be identical to the underlying hardware (as + in { \bf full virtualisation }, or it may + differ, as in { \bf paravirtualisation }. + +\item[VMM] Virtual Machine Monitor - the software that + allows multiple virtual machines to be + multiplexed on a single physical machine. + +\item[Xen] Xen is a paravirtualising virtual machine + monitor, developed primarily by the + Systems Research Group at the University + of Cambridge Computer Laboratory. + +\item[XenLinux] Official name for the port of the Linux kernel + that runs on Xen. + +\end{description} + + \end{document} |