mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
bitkeeper revision 1.1159.1.351 (4188f393nZSy-C7Sn46WkZ8BpaZuTw)
doc updates (and new ignores)
This commit is contained in:
1 parent
129eeeb235
commit
ef4355234b
3 files changed
+419
-209
No files matched your search
@@ -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
|
||||
@@ -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
|
||||
|
||||
+222
-201
@@ -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.
|
||||
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
|
||||
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}
|
||||
\part{User Reference Documentation}
|
||||
|
||||
\chapter{Domain Configuration Files}
|
||||
\label{cha:config}
|
||||
\chapter{Control Software}
|
||||
|
||||
Xen configuration files contain the following standard variables.
|
||||
Unless otherwise stated, configuration items should be enclosed in
|
||||
quotes (i.e. {\tt '...'} or {\tt ``....''})):
|
||||
\section{\Xend (Node control daemon)}
|
||||
\label{s:xend}
|
||||
|
||||
\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}
|
||||
|
||||
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{Xend (Node control daemon)}
|
||||
\label{cha: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}
|
||||
|
||||
\chapter{Domain Configuration}
|
||||
\label{cha:config}
|
||||
|
||||
|
||||
\section{Configuration Files}
|
||||
\label{s:cfiles}
|
||||
|
||||
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[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.
|
||||
|
||||
\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{Advanced Topics}
|
||||
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{Advanced Network Configuration}
|
||||
|
||||
%\part{Advanced Topics}
|
||||
|
||||
\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}
|
||||
|
||||
|
||||
|
||||