ia64/xen-unstable

changeset 2822:73fcd80b5d6c

bitkeeper revision 1.1159.1.333 (41878b8eK_5emfkJROmNT7PeNqSU5w)

More doc changes.
author kaf24@freefall.cl.cam.ac.uk
date Tue Nov 02 13:28:46 2004 +0000 (2004-11-02)
parents 724449a888fe
children 3772ff7c4023
files docs/src/user.tex
line diff
     1.1 --- a/docs/src/user.tex	Tue Nov 02 09:08:37 2004 +0000
     1.2 +++ b/docs/src/user.tex	Tue Nov 02 13:28:46 2004 +0000
     1.3 @@ -65,19 +65,17 @@ facilitates enterprise-grade functionali
     1.4  \begin{itemize}
     1.5  \item Virtual machines with performance nearly identical to native
     1.6    hardware.
     1.7 -\item Live migration of running virtual machines.
     1.8 +\item Live migration of running virtual machines between physical hosts.
     1.9  \item Excellent hardware support (supports most Linux device drivers).
    1.10 -\item Suspend to disk / resume from disk of running virtual machines.
    1.11 -\item Transparent copy-on-write disks for simple sharing across VMs.
    1.12  \item Sandboxed, restartable device drivers.
    1.13  \end{itemize}
    1.14  
    1.15 -Paravirtualisation allows very high performance virtual machine
    1.16 -technology, even on architectures like x86 that are traditionally
    1.17 -hard to virtualise.
    1.18 +Paravirtualisation permits very high performance virtualisation,
    1.19 +even on architectures like x86 that are traditionally
    1.20 +very hard to virtualise.
    1.21  The drawback of this approach is that it requires operating systems to
    1.22 -be {\em ported} to run on Xen.  This process is similar to a port of
    1.23 -an operating system to a new hardware platform, although the process
    1.24 +be {\em ported} to run on Xen.  Porting an OS to run on Xen is similar
    1.25 +to supporting a new hardware platform, however the process
    1.26  is simplified because the paravirtual machine architecture is very
    1.27  similar to the underlying native hardware. Even though operating system
    1.28  kernels must explicitly support Xen, a key feature is that user space
    1.29 @@ -96,18 +94,15 @@ Possible usage scenarios for Xen include
    1.30        machine.
    1.31  \item [Multiple OS configurations.] Run multiple operating systems
    1.32        simultaneously, for instance for compatibility or QA purposes.
    1.33 -\item [Server consolidation.] Move multiple servers onto one box
    1.34 -      with performance and fault isolation provided at virtual machine
    1.35 -      boundaries. 
    1.36 -\item [Cluster computing.] Improve manageability and efficiency by
    1.37 -      running services in virtual machines, isolated from
    1.38 -      machine-specifics; load balance using live migration.
    1.39 -\item [High availability computing.] Run device drivers in sandboxed
    1.40 -      domains for increased robustness.
    1.41 -\item [Hardware support for custom OSes.] Export drivers from a
    1.42 -      mainstream OS (e.g. Linux) with wide-ranging hardware support
    1.43 -      to your custom OS, avoiding the need for you to port existing
    1.44 -      drivers.
    1.45 +\item [Server consolidation.] Move multiple servers onto a single
    1.46 +      physical host with performance and fault isolation provided at
    1.47 +      virtual machine boundaries. 
    1.48 +\item [Cluster computing.] Management at VM granularity provides more
    1.49 +      flexibility than separately managing each physical host, but
    1.50 +      better control and isolation than single-system image solutions.
    1.51 +\item [Hardware support for custom OSes.] Allow devlopment of new OSes
    1.52 +      while benefitting from the wide-ranging hardware support of
    1.53 +      existing OSes such as Linux.
    1.54  \end{description}
    1.55  
    1.56  \section{Structure of a Xen-Based System}
    1.57 @@ -123,45 +118,42 @@ scheduling each application within the t
    1.58  The first domain, {\em Domain 0}, is created automatically when the
    1.59  system boots and has special management privileges. Domain 0 builds
    1.60  other domains and manages their virtual devices. It also performs
    1.61 -suspend, resume and migration of virtual machines. Where one is
    1.62 -required, the X server is also run in domain 0.
    1.63 +administrative tasks such as suspending, resuming and migrating other
    1.64 +virtual machines.
    1.65  
    1.66 -Within Domain 0, a process called `xend' runs to manage the system.
    1.67 +Within domain 0, a process called `xend' runs to manage the system.
    1.68  Xend is responsible for managing virtual machines and providing access
    1.69  to their consoles.  Commands are issued to Xend over an HTTP
    1.70  interface, either from a command-line tool or from a web browser.
    1.71  
    1.72  \section{Hardware Support}
    1.73  
    1.74 -Xen currently runs only on the x86 architecture, although ports to other
    1.75 -architectures, including x86/64 and IA64, are in progress.
    1.76 -Xen requires a `P6' or newer processor (e.g. Pentium Pro, Celeron,
    1.77 +Xen currently runs only on the x86 architecture,
    1.78 +requiring a `P6' or newer processor (e.g. Pentium Pro, Celeron,
    1.79  Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron).
    1.80  Multiprocessor machines are supported, and we also have basic support
    1.81  for HyperThreading (SMT), although this remains a topic for ongoing
    1.82 -research.  As mentioned above, a port specifically for x86/64 is in
    1.83 +research. A port specifically for x86/64 is in
    1.84  progress, although Xen already runs on such systems in 32-bit legacy
    1.85  mode.
    1.86  
    1.87  Xen can currently use up to 4GB of memory.  It is possible for x86
    1.88  machines to address up to 64GB of physical memory but there are no
    1.89 -plans to support these systems.  The x86\_64 port is the planned route
    1.90 +plans to support these systems.  The x86/64 port is the planned route
    1.91  to supporting larger memory sizes. 
    1.92  
    1.93  Xen offloads most of the hardware support issues to the guest OS
    1.94 -running in Domain 0.  Xen itself only contains code to detect and
    1.95 -start additional processors, set up interrupt routing and perform PCI
    1.96 -bus enumeration.  Device drivers run within a privileged guest OS
    1.97 -rather than within Xen itself, meaning that we should be
    1.98 -compatible with the majority of device hardware supported by Linux.
    1.99 +running in Domain 0.  Xen itself contains only the code required to
   1.100 +detect and start secondary processors, set up interrupt routing, and
   1.101 +perform PCI bus enumeration.  Device drivers run within a privileged
   1.102 +guest OS rather than within Xen itself. This approach provides
   1.103 +compatibility with the majority of device hardware supported by Linux.
   1.104  The default XenLinux build contains support for relatively modern
   1.105  server-class network and disk hardware, but you can add support for
   1.106 -other hardware by configuring your XenLinux kernel in the normal way
   1.107 -(e.g. \verb_# make ARCH=xen menuconfig_).
   1.108 +other hardware by configuring your XenLinux kernel in the normal way.
   1.109  
   1.110  \section{History}
   1.111  
   1.112 -
   1.113  Xen was originally developed by the Systems Research Group at the
   1.114  University of Cambridge Computer Laboratory as part of the XenoServers
   1.115  project, funded by UK-EPSRC.
   1.116 @@ -174,17 +166,19 @@ isolation and accounting.  The project w
   1.117  information along with pointers to papers and technical reports:
   1.118  {\tt http://www.cl.cam.ac.uk/xeno}
   1.119  
   1.120 -Xen has since grown into a project in its own right, enabling us to
   1.121 -investigate interesting research issues regarding the best techniques
   1.122 -for virtualising resources such as the CPU, memory, disk and network.
   1.123 -The project has been bolstered by support from Intel Research
   1.124 -Cambridge, and HP Labs, who are now working closely with us.
   1.125 +Xen has since grown into a fully-fledgd project in its own right,
   1.126 +enabling us to investigate interesting research issues regarding the
   1.127 +best techniques for virtualising resources such as the CPU, memory,
   1.128 +disk and network.  The project has been bolstered by support from
   1.129 +Intel Research Cambridge, and HP Labs, who are now working closely
   1.130 +with us.
   1.131  
   1.132 -Xen was first described in the 2003 paper at SOSP\footnote{\tt
   1.133 -http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf}, and the
   1.134 -first public release (1.0) was made in October 2003.  Since
   1.135 -then, Xen has been extensively developed and is now used in production
   1.136 -scenarios on multiple sites.
   1.137 +Xen was first described in a paper presented at SOSP in
   1.138 +2003\footnote{\tt
   1.139 +http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf}, and the first
   1.140 +public release (1.0) was made that October.  Since then, Xen has
   1.141 +significantly matured and is now used in production scenarios on
   1.142 +multiple sites.
   1.143  
   1.144  Xen 2.0 features greatly enhanced hardware support, configuration
   1.145  flexibility, usability and a larger complement of supported operating
   1.146 @@ -193,55 +187,50 @@ definitive open source solution for virt
   1.147  
   1.148  \chapter{Installation}
   1.149  
   1.150 -The Xen distribution includes three main components:  Xen itself,
   1.151 -utilities to convert a standard Linux tree to run on Xen, and the
   1.152 -userspace tools required to operate a Xen-based system.
   1.153 -
   1.154 -This manual describes how to install the Xen 2.0 distribution from
   1.155 -source.  Alternatively, there may be packages available for your
   1.156 -operating system distribution.
   1.157 +The Xen distribution includes three main components: Xen itself, ports
   1.158 +of Linux and NetBSD to run on Xen, and the user-space tools required
   1.159 +to manage a Xen-based system.  This chapter describes how to install
   1.160 +the Xen 2.0 distribution from source.  Alternatively, there may be
   1.161 +pre-built packages available as part of your operating system
   1.162 +distribution.
   1.163  
   1.164  \section{Prerequisites}
   1.165  \label{sec:prerequisites}
   1.166  \begin{itemize}
   1.167 -\item i686-class CPU or newer
   1.168 -\item A working installation of your favourite Linux distribution.
   1.169 -\item A working installation of the GRUB bootloader.
   1.170 -\item An installation of Twisted v1.3 or above (see {\tt
   1.171 -http://www.twistedmatrix.com}).  There may be a package available for
   1.172 -your distribution; alternatively it can be installed by running {\tt
   1.173 -make install-twisted} in the root of the Xen source tree.
   1.174 -\item Python logging package (see {\tt http://www.red-dove.com/})
   1.175 -\item The Linux bridge control tools (see {\tt
   1.176 -http://bridge.sourceforge.net}).  There may be packages of these tools
   1.177 -available for your distribution.
   1.178 -\item Linux IP Routing Tools
   1.179 -\item make
   1.180 -\item gcc
   1.181 -\item libcurl
   1.182 -\item zlib-dev
   1.183 -\item python-dev
   1.184 -\item python2.3-pycurl
   1.185 -\item python2.3-twisted
   1.186 +\item A working Linux distribution using the GRUB bootloader and
   1.187 +running on a P6-class (or newer) CPU.
   1.188 +\item An installation of Twisted v1.3 or above\footnote{{\tt
   1.189 +http://www.twistedmatrix.com}}. There may be a binary package
   1.190 +available for your distribution; alternatively it can be installed by
   1.191 +running `{\sl make install-twisted}' in the root of the Xen source tree.
   1.192 +\item The Linux bridge control tools\footnote{{\tt
   1.193 +http://bridge.sourceforge.net}}.
   1.194 +\item Build tools (gcc v3.2.x or v3.3.x, binutils, GNU make).
   1.195 +\item Development installation of libcurl.
   1.196 +\item Development installation of zlib (e.g., zlib-dev).
   1.197 +\item Development installation of Python v2.2 or later (e.g., python-dev).
   1.198  \end{itemize}
   1.199  
   1.200 -\section{Install Bitkeeper (Optional)}
   1.201 +\section{Download the Xen source code}
   1.202 +
   1.203 +\subsection{Tarball}
   1.204  
   1.205 -To fetch a local copy, first download the BitKeeper tools.
   1.206 -Download instructions can be obtained by filling out the provided
   1.207 -form at: 
   1.208 +The Xen source tree is available as a compressed tarball from the
   1.209 +Xen download page (pre-built tarballs are also available from this page):
   1.210 +\begin{quote} 
   1.211 +{\tt http://xen.sf.net}
   1.212 +\end{quote} 
   1.213 +
   1.214 +\subsection{Using Bitkeeper}
   1.215 +
   1.216 +If you wish to install Xen from a clone of our latest BitKeeper
   1.217 +repository then you will need to install the BitKeeper tools.
   1.218 +Download instructions for BitKeeper can be obtained by filling out the
   1.219 +form at:
   1.220  \begin{quote} 
   1.221  {\tt http://www.bitmover.com/cgi-bin/download.cgi}
   1.222  \end{quote}
   1.223  
   1.224 -The BitKeeper install program is designed to be run with X.  If X is
   1.225 -not available, you can specify the install directory on the command
   1.226 -line.
   1.227 -
   1.228 -\section{Download the Xen source code}
   1.229 -
   1.230 -\subsection{Using Bitkeeper}
   1.231 -
   1.232  The public master BK repository for the 2.0 release lives at: 
   1.233  \begin{quote}
   1.234  {\tt bk://xen.bkbits.net/xen-2.0.bk}  
   1.235 @@ -257,41 +246,28 @@ run:
   1.236  
   1.237  
   1.238  Under your current directory, a new directory named `xen-2.0.bk' has
   1.239 -been created, which contains all the source code for the Xen
   1.240 -hypervisor and the Xen tools.  The directory also contains `sparse' OS
   1.241 -source trees, containing only the files that require changes to allow
   1.242 -the OS to run on Xen.
   1.243 -
   1.244 -Once you have cloned the repository, you can update to the newest
   1.245 -changes to the repository by running:
   1.246 +been created, which contains all the source code for Xen, the OS
   1.247 +ports, and the control tools. You can update your repository with the
   1.248 +latest changes at any time by running:
   1.249  \begin{verbatim}
   1.250  # cd xen-2.0.bk # to change into the local repository
   1.251  # bk pull       # to update the repository
   1.252  \end{verbatim}
   1.253  
   1.254 -\subsection{Without Bitkeeper}
   1.255 -
   1.256 -The Xen source tree is also available in gzipped tarball form from the
   1.257 -Xen downloads page:\\
   1.258 -{\tt http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads.html}.
   1.259 -Prebuilt tarballs are also available from this page but are relatively
   1.260 - large.
   1.261 -
   1.262 -\section{The distribution}
   1.263 -
   1.264 -The Xen source code repository is structured as follows:
   1.265 -
   1.266 -\begin{description}
   1.267 -\item[\path{tools/}] Xen node controller daemon (Xend), command line tools, 
   1.268 -  control libraries
   1.269 -\item[\path{xen/}] The Xen hypervisor itself.
   1.270 -\item[\path{linux-2.4.27-xen-sparse/}] Xen support for Linux 2.4
   1.271 -\item[\path{linux-2.6.9-xen-sparse/}] Xen support for Linux 2.6
   1.272 -\item[\path{linux-2.6.9-patches/}] Experimental patches for Linux 2.6
   1.273 -\item[\path{netbsd-2.0-xen-sparse/}] Xen support for NetBSD 2.0
   1.274 -\item[\path{docs/}] various documentation files for users and developers
   1.275 -\item[\path{extras/}] currently this contains the Mini OS, aimed at developers
   1.276 -\end{description}
   1.277 +%\section{The distribution}
   1.278 +%
   1.279 +%The Xen source code repository is structured as follows:
   1.280 +%
   1.281 +%\begin{description}
   1.282 +%\item[\path{tools/}] Xen node controller daemon (Xend), command line tools, 
   1.283 +%  control libraries
   1.284 +%\item[\path{xen/}] The Xen VMM.
   1.285 +%\item[\path{linux-*-xen-sparse/}] Xen support for Linux.
   1.286 +%\item[\path{linux-*-patches/}] Experimental patches for Linux.
   1.287 +%\item[\path{netbsd-*-xen-sparse/}] Xen support for NetBSD.
   1.288 +%\item[\path{docs/}] Various documentation files for users and developers.
   1.289 +%\item[\path{extras/}] Bonus extras.
   1.290 +%\end{description}
   1.291  
   1.292  \section{Build and install}
   1.293