view docs/src/user/control_software.tex @ 7176:0e1838de9db8

Move XendDomainInfo.{create,recreate,parseConfig} to the top level of the
domain. This allows us to refer to them using an import statement, rather than
a from .. import. This is a step towards getting rid of the xroot hack. All
other references to XendDomainInfo methods need to be doubly qualified (once
for the module, once for the class).

Remove XendDomainDict, replacing it with a simple dictionary, folding the
get_by_name method into XendDomain.

Replace XendDomain.refresh_lock with a domains_lock which goes around any
reference to XendDomain.domains or anything that will create or destroy a
domain. This serialises most accesses through XendDomain, ensuring that we will
not return stale state when racing against the watches fired in separate
threads. This should have fixed bugs #270 and #234.

Added a number of domain_get_xyz methods. Those named xyz_nr are to allow
components internal to XendDomain (XendDomainInfo, XendCheckpoint) to call back
into XendDomain without triggering further calls to XendDomain.refresh. The
other methods simply make it clear which fallback behaviour is expected.

Replace XendDomainInfo.domain_exists with XendDomainInfo.domain_by_name; the
internals of this method needed to change to match those changes above, and it
has been a misnomer for some time.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
author emellor@ewan
date Tue Oct 04 02:21:28 2005 +0100 (2005-10-04)
parents 06d84bf87159
children 07b5b3e2ff45
line source
1 \chapter{Control Software}
3 The Xen control software includes the \xend\ node control daemon
4 (which must be running), the xm command line tools, and the prototype
5 xensv web interface.
7 \section{\Xend\ (node control daemon)}
8 \label{s:xend}
10 The Xen Daemon (\Xend) performs system management functions related to
11 virtual machines. It forms a central point of control for a machine
12 and can be controlled using an HTTP-based protocol. \Xend\ must be
13 running in order to start and manage virtual machines.
15 \Xend\ must be run as root because it needs access to privileged
16 system management functions. A small set of commands may be issued on
17 the \xend\ command line:
19 \begin{tabular}{ll}
20 \verb!# xend start! & start \xend, if not already running \\
21 \verb!# xend stop! & stop \xend\ if already running \\
22 \verb!# xend restart! & restart \xend\ if running, otherwise start it \\
23 % \verb!# xend trace_start! & start \xend, with very detailed debug logging \\
24 \verb!# xend status! & indicates \xend\ status by its return code
25 \end{tabular}
27 A SysV init script called {\tt xend} is provided to start \xend\ at
28 boot time. {\tt make install} installs this script in
29 \path{/etc/init.d}. To enable it, you have to make symbolic links in
30 the appropriate runlevel directories or use the {\tt chkconfig} tool,
31 where available.
33 Once \xend\ is running, more sophisticated administration can be done
34 using the xm tool (see Section~\ref{s:xm}) and the experimental Xensv
35 web interface (see Section~\ref{s:xensv}).
37 As \xend\ runs, events will be logged to \path{/var/log/xend.log} and,
38 if the migration assistant daemon (\path{xfrd}) has been started,
39 \path{/var/log/xfrd.log}. These may be of use for troubleshooting
40 problems.
42 \section{Xm (command line interface)}
43 \label{s:xm}
45 The xm tool is the primary tool for managing Xen from the console.
46 The general format of an xm command line is:
48 \begin{verbatim}
49 # xm command [switches] [arguments] [variables]
50 \end{verbatim}
52 The available \emph{switches} and \emph{arguments} are dependent on
53 the \emph{command} chosen. The \emph{variables} may be set using
54 declarations of the form {\tt variable=value} and command line
55 declarations override any of the values in the configuration file
56 being used, including the standard variables described above and any
57 custom variables (for instance, the \path{xmdefconfig} file uses a
58 {\tt vmid} variable).
60 The available commands are as follows:
62 \begin{description}
63 \item[set-mem] Request a domain to adjust its memory footprint.
64 \item[create] Create a new domain.
65 \item[destroy] Kill a domain immediately.
66 \item[list] List running domains.
67 \item[shutdown] Ask a domain to shutdown.
68 \item[dmesg] Fetch the Xen (not Linux!) boot output.
69 \item[consoles] Lists the available consoles.
70 \item[console] Connect to the console for a domain.
71 \item[help] Get help on xm commands.
72 \item[save] Suspend a domain to disk.
73 \item[restore] Restore a domain from disk.
74 \item[pause] Pause a domain's execution.
75 \item[unpause] Un-pause a domain.
76 \item[pincpu] Pin a domain to a CPU.
77 \item[bvt] Set BVT scheduler parameters for a domain.
78 \item[bvt\_ctxallow] Set the BVT context switching allowance for the
79 system.
80 \item[atropos] Set the atropos parameters for a domain.
81 \item[rrobin] Set the round robin time slice for the system.
82 \item[info] Get information about the Xen host.
83 \item[call] Call a \xend\ HTTP API function directly.
84 \end{description}
86 For a detailed overview of switches, arguments and variables to each
87 command try
88 \begin{quote}
89 \begin{verbatim}
90 # xm help command
91 \end{verbatim}
92 \end{quote}
94 \section{Xensv (web control interface)}
95 \label{s:xensv}
97 Xensv is the experimental web control interface for managing a Xen
98 machine. It can be used to perform some (but not yet all) of the
99 management tasks that can be done using the xm tool.
101 It can be started using:
102 \begin{quote}
103 \verb_# xensv start_
104 \end{quote}
105 and stopped using:
106 \begin{quote}
107 \verb_# xensv stop_
108 \end{quote}
110 By default, Xensv will serve out the web interface on port 8080. This
111 can be changed by editing
112 \path{/usr/lib/python2.3/site-packages/xen/sv/params.py}.
114 Once Xensv is running, the web interface can be used to create and
115 manage running domains.