mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
1003 lines
28 KiB
Groff
1003 lines
28 KiB
Groff
=head1 NAME
|
|
|
|
xm - Obsolete xen management user interface
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
B<xm> I<subcommand> [I<args>]
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This program is now superseded by B<xl>, which should be largely
|
|
backwards-compatible with B<xm>.
|
|
|
|
The B<xm> program is the main interface for managing Xen guest domains
|
|
when the obsolete Xend toolstack is in use. The program can be used to
|
|
create, pause, and shutdown domains. It can also be used to list
|
|
current domains, enable or pin VCPUs, and attach or detach virtual
|
|
block devices.
|
|
|
|
The basic structure of every B<xm> command is almost always:
|
|
|
|
=over 2
|
|
|
|
B<xm> I<subcommand> I<domain-id> [I<OPTIONS>]
|
|
|
|
=back
|
|
|
|
Where I<subcommand> is one of the subcommands listed below, I<domain-id>
|
|
is the numeric domain id, or the domain name (which will be internally
|
|
translated to domain id), and I<OPTIONS> are subcommand specific
|
|
options. There are a few exceptions to this rule in the cases where
|
|
the subcommand in question acts on all domains, the entire machine,
|
|
or directly on the Xen hypervisor. Those exceptions will be clear for
|
|
each of those subcommands.
|
|
|
|
=head1 NOTES
|
|
|
|
All B<xm> operations rely upon the Xen control daemon, aka B<xend>.
|
|
For any B<xm> commands to run, xend must also be running. For this
|
|
reason you should start xend as a service when your system first boots
|
|
using Xen.
|
|
|
|
Most B<xm> commands require root privileges to run due to the
|
|
communications channels used to talk to the hypervisor. Running as
|
|
non root will return an error.
|
|
|
|
Most B<xm> commands act synchronously, except maybe create, shutdown,
|
|
mem-set and vcpu-set. The fact that the B<xm> command returned doesn't
|
|
necessarily mean that the action is complete and you must poll through
|
|
xm list periodically to detect that the operation completed.
|
|
|
|
=head1 DOMAIN SUBCOMMANDS
|
|
|
|
The following subcommands manipulate domains directly. As stated
|
|
previously, most commands take I<domain-id> as the first parameter.
|
|
|
|
=over 4
|
|
|
|
=item B<console> I<domain-id>
|
|
|
|
Attach to domain I<domain-id>'s console. If you've set up your domains to
|
|
have a traditional log in console this will look much like a normal
|
|
text log in screen.
|
|
|
|
This uses the back end xenconsole service which currently only
|
|
works for para-virtual domains.
|
|
|
|
The attached console will perform much like a standard serial console,
|
|
so running curses based interfaces over the console B<is not
|
|
advised>. Vi tends to get very odd when using it over this interface.
|
|
|
|
Use the key combination Ctrl+] to detach the domain console.
|
|
|
|
=item B<create> I<configfile> [I<OPTIONS>] [I<vars>]..
|
|
|
|
The create subcommand requires a config file and can optionally take a
|
|
series of I<vars> that add to or override variables defined
|
|
in the config file. See L<xmdomain.cfg> for full details of that file
|
|
format, and possible options used in either the configfile or for I<vars>.
|
|
|
|
I<configfile> can either be an absolute path to a file, or a relative
|
|
path to a file located in /etc/xen.
|
|
|
|
Create will return B<as soon> as the domain is started. This B<does
|
|
not> mean the guest OS in the domain has actually booted, or is
|
|
available for input.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<--help_config>
|
|
|
|
Print the available configuration variables I<vars>. These variables may be
|
|
used on the command line or in the configuration file I<configfile>.
|
|
|
|
=item B<-q>, B<--quiet>
|
|
|
|
No console output.
|
|
|
|
=item B<--path>
|
|
|
|
Search path for configuration scripts. The value of PATH is a
|
|
colon-separated directory list.
|
|
|
|
=item B<-f=FILE>, B<--defconfig=FILE>
|
|
|
|
Use the given Python configuration script. The configuration
|
|
script is loaded after arguments have been processed. Each
|
|
command-line option sets a configuration variable named after
|
|
its long option name, and these variables are placed in the
|
|
environment of the script before it is loaded. Variables
|
|
for options that may be repeated have list values. Other
|
|
variables can be set using name=value on the command line.
|
|
After the script is loaded, option values that were not set
|
|
on the command line are replaced by the values set in the script.
|
|
|
|
=item B<-F=FILE>, B<--config=FILE>
|
|
|
|
Use the given SXP formated configuration script.
|
|
SXP is the underlying configuration format used by Xen.
|
|
SXP configuration scripts can be hand-written or generated
|
|
from Python configuration scripts, using the -n
|
|
(dryrun) option to print the configuration. An SXP formatted
|
|
configuration file may also be generated for a given I<domain-id> by
|
|
redirecting the output from the the B<xm list --long I<domain-id>>
|
|
to a file.
|
|
|
|
=item B<-n>, B<--dryrun>
|
|
|
|
Dry run - prints the resulting configuration in SXP
|
|
but does not create the domain.
|
|
|
|
=item B<-x>, B<--xmldryrun>
|
|
|
|
XML dry run - prints the resulting configuration in
|
|
XML but does not create the domain.
|
|
|
|
=item B<-s>, B<--skipdtd>
|
|
|
|
Skip DTD checking - skips checks on XML before
|
|
creating. Experimental. Can decrease create time.
|
|
|
|
=item B<-p>, B<--paused>
|
|
|
|
Leave the domain paused after it is created.
|
|
|
|
=item B<-c>, B<--console_autoconnect>
|
|
|
|
Attach console to the domain as soon as it has started. This is
|
|
useful for determining issues with crashing domains.
|
|
|
|
=back
|
|
|
|
B<EXAMPLES>
|
|
|
|
=over 4
|
|
|
|
=item I<with config file>
|
|
|
|
xm create Fedora4
|
|
|
|
This creates a domain with the file /etc/xen/Fedora4, and returns as
|
|
soon as it is run.
|
|
|
|
=item I<without config file>
|
|
|
|
xm create /dev/null ramdisk=initrd.img \
|
|
kernel=/boot/vmlinuz-2.6.12.6-xenU \
|
|
name=ramdisk vif='' vcpus=1 \
|
|
memory=64 root=/dev/ram0
|
|
|
|
This creates the domain without using a config file (more specifically
|
|
using /dev/null as an empty config file), kernel and ramdisk as
|
|
specified, setting the name of the domain to "ramdisk", also disabling
|
|
virtual networking. (This example comes from the xm-test test suite.)
|
|
|
|
=back
|
|
|
|
=item B<delete>
|
|
|
|
Remove a domain from Xend domain management. The B<xm list> command
|
|
shows the domain names.
|
|
|
|
=item B<destroy> I<domain-id>
|
|
|
|
Immediately terminate the domain I<domain-id>. This doesn't give the
|
|
domain OS any chance to react, and is the equivalent of ripping the
|
|
power cord out on a physical machine. In most cases you will want to
|
|
use the B<shutdown> command instead.
|
|
|
|
=item B<domid> I<domain-name>
|
|
|
|
Converts a domain name to a domain id using xend's internal mapping.
|
|
|
|
=item B<domname> I<domain-id>
|
|
|
|
Converts a domain id to a domain name using xend's internal mapping.
|
|
|
|
=item B<dump-core> [I<OPTIONS>] I<domain-id> [I<filename>]
|
|
|
|
Dumps the virtual machine's memory for the specified domain to the
|
|
I<filename> specified. The dump file will be written to a distribution
|
|
specific directory for dump files. Such as: /var/lib/xen/dump or
|
|
/var/xen/dump Defaults to dumping the core without pausing the domain
|
|
if no I<OPTIONS> are specified.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-L>, B<--live>
|
|
|
|
Dump core without pausing the domain.
|
|
|
|
=item B<-C>, B<--crash>
|
|
|
|
Crash domain after dumping core.
|
|
|
|
=back
|
|
|
|
=item B<help> [B<--long>]
|
|
|
|
Displays the short help message (i.e. common commands).
|
|
|
|
The B<--long> option prints out the complete set of B<xm> subcommands,
|
|
grouped by function.
|
|
|
|
=item B<list> [I<OPTIONS>] [I<domain-id> ...]
|
|
|
|
Prints information about one or more domains. If no domains are
|
|
specified it prints out information about all domains.
|
|
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-l>, B<--long>
|
|
|
|
The output for B<xm list> is not the table view shown below, but
|
|
instead presents the data in SXP format.
|
|
|
|
=item B<--label>
|
|
|
|
Security labels are added to the output of xm list and the lines
|
|
are sorted by the labels (ignoring case).
|
|
See the ACCESS CONTROL SUBCOMMAND section of this man page for more
|
|
information about labels.
|
|
|
|
=item B<--state=<state>>
|
|
|
|
Output information for VMs in the specified state.
|
|
|
|
=back
|
|
|
|
B<EXAMPLE>
|
|
|
|
An example format for the list is as follows:
|
|
|
|
Name ID Mem(MiB) VCPUs State Time(s)
|
|
Domain-0 0 98 1 r----- 5068.6
|
|
Fedora3 164 128 1 r----- 7.6
|
|
Fedora4 165 128 1 ------ 0.6
|
|
Mandrake2006 166 128 1 -b---- 3.6
|
|
Mandrake10.2 167 128 1 ------ 2.5
|
|
Suse9.2 168 100 1 ------ 1.8
|
|
|
|
Name is the name of the domain. ID the numeric domain id. Mem is the
|
|
desired amount of memory to allocate to the domain (although it may
|
|
not be the currently allocated amount). VCPUs is the number of
|
|
virtual CPUs allocated to the domain. State is the run state (see
|
|
below). Time is the total run time of the domain as accounted for by
|
|
Xen.
|
|
|
|
B<STATES>
|
|
|
|
The State field lists 6 states for a Xen domain, and which ones the
|
|
current domain is in.
|
|
|
|
=over 4
|
|
|
|
=item B<r - running>
|
|
|
|
The domain is currently running on a CPU.
|
|
|
|
=item B<b - blocked>
|
|
|
|
The domain is blocked, and not running or runnable. This can be caused
|
|
because the domain is waiting on IO (a traditional wait state) or has
|
|
gone to sleep because there was nothing else for it to do.
|
|
|
|
=item B<p - paused>
|
|
|
|
The domain has been paused, usually occurring through the administrator
|
|
running B<xm pause>. When in a paused state the domain will still
|
|
consume allocated resources like memory, but will not be eligible for
|
|
scheduling by the Xen hypervisor.
|
|
|
|
=item B<s - shutdown>
|
|
|
|
FIXME: Why would you ever see this state?
|
|
|
|
=item B<c - crashed>
|
|
|
|
The domain has crashed, which is always a violent ending. Usually
|
|
this state can only occur if the domain has been configured not to
|
|
restart on crash. See L<xmdomain.cfg> for more info.
|
|
|
|
=item B<d - dying>
|
|
|
|
The domain is in process of dying, but hasn't completely shutdown or
|
|
crashed.
|
|
|
|
FIXME: Is this right?
|
|
|
|
=back
|
|
|
|
B<NOTES>
|
|
|
|
=over 4
|
|
|
|
The Time column is deceptive. Virtual IO (network and block devices)
|
|
used by domains requires coordination by Domain0, which means that
|
|
Domain0 is actually charged for much of the time that a DomainU is
|
|
doing IO. Use of this time value to determine relative utilizations
|
|
by domains is thus very suspect, as a high IO workload may show as
|
|
less utilized than a high CPU workload. Consider yourself warned.
|
|
|
|
=back
|
|
|
|
=item B<mem-max> I<domain-id> I<mem>
|
|
|
|
Specify the maximum amount of memory the domain is able to use. I<mem>
|
|
is specified in megabytes.
|
|
|
|
The mem-max value may not correspond to the actual memory used in the
|
|
domain, as it may balloon down its memory to give more back to the OS.
|
|
|
|
=item B<mem-set> I<domain-id> I<mem>
|
|
|
|
Set the domain's used memory using the balloon driver.
|
|
|
|
Because this operation requires cooperation from the domain operating
|
|
system, there is no guarantee that it will succeed. This command will
|
|
definitely not work unless the domain has the required paravirt
|
|
driver.
|
|
|
|
B<Warning:> There is no good way to know in advance how small of a
|
|
mem-set will make a domain unstable and cause it to crash. Be very
|
|
careful when using this command on running domains.
|
|
|
|
=item B<migrate> I<domain-id> I<host> [I<OPTIONS>]
|
|
|
|
Migrate a domain to another host machine. Xend must be running on
|
|
other host machine, it must be running the same version of Xen, it
|
|
must have the migration TCP port open and accepting connections from
|
|
the source host, and there must be sufficient resources for the domain
|
|
to run (memory, disk, etc).
|
|
|
|
Migration is pretty complicated, and has many security implications.
|
|
Please read the Xen User's Guide to ensure you understand the
|
|
ramifications and limitations on migration before attempting it in
|
|
production.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-l>, B<--live>
|
|
|
|
Use live migration. This will migrate the domain between hosts
|
|
without shutting down the domain. See the Xen User's Guide for more
|
|
information.
|
|
|
|
=item B<-r>, B<--resource> I<Mbs>
|
|
|
|
Set maximum Mbs allowed for migrating the domain. This ensures that
|
|
the network link is not saturated with migration traffic while
|
|
attempting to do other useful work.
|
|
|
|
=back
|
|
|
|
=item B<new> I<configfile> [I<OPTIONS>] [I<vars>]...
|
|
|
|
Adds a domain to Xend domain management.
|
|
|
|
The new subcommand requires a config file and can optionally
|
|
take a series of I<vars> that add to or override variables
|
|
defined in the config file. See xmdomain.cfg for full details of that
|
|
file format, and possible options used in either the configfile or for
|
|
I<vars>.
|
|
|
|
I<configfile> can either be an absolute path to a file, or a relative
|
|
path to a file located in /etc/xen.
|
|
|
|
The new subcommand will return without starting the domain. The
|
|
domain needs to be started using the B<xm start> command.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<--help_config>
|
|
|
|
Print the available configuration variables I<vars>. These variables may be
|
|
used on the command line or in the configuration file I<configfile>.
|
|
|
|
=item B<-q>, B<--quiet>
|
|
|
|
No console output.
|
|
|
|
=item B<--path>
|
|
|
|
Search path for configuration scripts. The value of PATH is a
|
|
colon-separated directory list.
|
|
|
|
=item B<-f=FILE>, B<--defconfig=FILE>
|
|
|
|
|
|
Use the given Python configuration script. The configuration
|
|
script is loaded after arguments have been processed. Each
|
|
command-line option sets a configuration variable named after
|
|
its long option name, and these variables are placed in the
|
|
environment of the script before it is loaded. Variables
|
|
for options that may be repeated have list values. Other
|
|
variables can be set using name=value on the command line.
|
|
After the script is loaded, option values that were not set
|
|
on the command line are replaced by the values set in the script.
|
|
|
|
=item B<-F=FILE>, B<--config=FILE>
|
|
|
|
Use the given SXP formated configuration script.
|
|
SXP is the underlying configuration format used by Xen.
|
|
SXP configuration scripts can be hand-written or generated
|
|
from Python configuration scripts, using the -n
|
|
(dryrun) option to print the configuration. An SXP formatted
|
|
configuration file may also be generated for a given I<domain-id> by
|
|
redirecting the output from the the B<xm list --long I<domain-id>>
|
|
to a file.
|
|
|
|
=item B<-n>, B<--dryrun>
|
|
|
|
Dry run - prints the resulting configuration in SXP
|
|
but does not create the domain.
|
|
|
|
=item B<-x>, B<--xmldryrun>
|
|
|
|
XML dry run - prints the resulting configuration in
|
|
XML but does not create the domain.
|
|
|
|
=item B<-s>, B<--skipdtd>
|
|
|
|
Skip DTD checking - skips checks on XML before
|
|
creating. Experimental. Can decrease create time.
|
|
|
|
=item B<-p>, B<--paused>
|
|
|
|
Leave the domain paused after it is created.
|
|
|
|
=item B<-c>, B<--console_autoconnect>
|
|
|
|
Attach console to the domain as soon as it has started. This is
|
|
useful for determining issues with crashing domains.
|
|
|
|
=back
|
|
|
|
=item B<pause> I<domain-id>
|
|
|
|
Pause a domain. When in a paused state the domain will still consume
|
|
allocated resources such as memory, but will not be eligible for
|
|
scheduling by the Xen hypervisor.
|
|
|
|
=item B<reboot> [I<OPTIONS>] I<domain-id>
|
|
|
|
Reboot a domain. This acts just as if the domain had the B<reboot>
|
|
command run from the console. The command returns as soon as it has
|
|
executed the reboot action, which may be significantly before the
|
|
domain actually reboots.
|
|
|
|
The behavior of what happens to a domain when it reboots is set by the
|
|
B<on_reboot> parameter of the xmdomain.cfg file when the domain was
|
|
created.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-a>, B<--all>
|
|
|
|
Reboot all domains.
|
|
|
|
=item B<-w>, B<--wait>
|
|
|
|
Wait for reboot to complete before returning. This may take a while,
|
|
as all services in the domain will have to be shut down cleanly.
|
|
|
|
=back
|
|
|
|
=item B<restore> I<state-file>
|
|
|
|
Build a domain from an B<xm save> state file. See B<save> for more info.
|
|
|
|
=item B<resume> I<domain-name> [I<OPTIONS>]
|
|
|
|
Moves a domain out of the suspended state and back into memory.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-p>, <--paused>
|
|
|
|
Moves a domain back into memory but leaves the domain in a paused state.
|
|
The B<xm unpause> subcommand may then be used to bring it out of the
|
|
paused state.
|
|
|
|
=back
|
|
|
|
=item B<save> I<domain-id> I<state-file>
|
|
|
|
Saves a running domain to a state file so that it can be restored
|
|
later. Once saved, the domain will no longer be running on the
|
|
system, thus the memory allocated for the domain will be free for
|
|
other domains to use. B<xm restore> restores from this state file.
|
|
|
|
This is roughly equivalent to doing a hibernate on a running computer,
|
|
with all the same limitations. Open network connections may be
|
|
severed upon restore, as TCP timeouts may have expired.
|
|
|
|
=item B<shutdown> [I<OPTIONS>] I<domain-id>
|
|
|
|
Gracefully shuts down a domain. This coordinates with the domain OS
|
|
to perform graceful shutdown, so there is no guarantee that it will
|
|
succeed, and may take a variable length of time depending on what
|
|
services must be shutdown in the domain. The command returns
|
|
immediately after signally the domain unless that B<-w> flag is used.
|
|
|
|
The behavior of what happens to a domain when it reboots is set by the
|
|
B<on_shutdown> parameter of the xmdomain.cfg file when the domain was
|
|
created.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-a>
|
|
|
|
Shutdown B<all> domains. Often used when doing a complete shutdown of
|
|
a Xen system.
|
|
|
|
=item B<-w>
|
|
|
|
Wait for the domain to complete shutdown before returning.
|
|
|
|
=back
|
|
|
|
=item B<start> I<domain-name> [I<OPTIONS>]
|
|
|
|
Start a Xend managed domain that was added using the B<xm new> command.
|
|
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-p>, B<--paused>
|
|
|
|
Do not unpause domain after starting it.
|
|
|
|
=item B<-c>, B<--console_autoconnect>
|
|
|
|
Connect to the console after the domain is created.
|
|
|
|
=back
|
|
|
|
=item B<suspend> I<domain-name>
|
|
|
|
Suspend a domain to a state file so that it can be later
|
|
resumed using the B<xm resume> subcommand. Similar to the B<xm save>
|
|
subcommand although the state file may not be specified.
|
|
|
|
=item B<sysrq> I<domain-id> I<letter>
|
|
|
|
Send a I<Magic System Request> signal to the domain. For more
|
|
information on available magic sys req operations, see sysrq.txt in
|
|
your Linux Kernel sources.
|
|
|
|
=item B<unpause> I<domain-id>
|
|
|
|
Moves a domain out of the paused state. This will allow a previously
|
|
paused domain to now be eligible for scheduling by the Xen hypervisor.
|
|
|
|
=item B<vcpu-set> I<domain-id> I<vcpu-count>
|
|
|
|
Enables the I<vcpu-count> virtual CPUs for the domain in question.
|
|
Like mem-set, this command can only allocate up to the maximum virtual
|
|
CPU count configured at boot for the domain.
|
|
|
|
If the I<vcpu-count> is smaller than the current number of active
|
|
VCPUs, the highest number VCPUs will be hotplug removed. This may be
|
|
important for pinning purposes.
|
|
|
|
Attempting to set the VCPUs to a number larger than the initially
|
|
configured VCPU count is an error. Trying to set VCPUs to < 1 will be
|
|
quietly ignored.
|
|
|
|
Because this operation requires cooperation from the domain operating
|
|
system, there is no guarantee that it will succeed. This command will
|
|
not work with a full virt domain.
|
|
|
|
=item B<vcpu-list> [I<domain-id>]
|
|
|
|
Lists VCPU information for a specific domain. If no domain is
|
|
specified, VCPU information for all domains will be provided.
|
|
|
|
=item B<vcpu-pin> I<domain-id> I<vcpu> I<cpus>
|
|
|
|
Pins the the VCPU to only run on the specific CPUs. The keyword
|
|
B<all> can be used to apply the I<cpus> list to all VCPUs in the
|
|
domain.
|
|
|
|
Normally VCPUs can float between available CPUs whenever Xen deems a
|
|
different run state is appropriate. Pinning can be used to restrict
|
|
this, by ensuring certain VCPUs can only run on certain physical
|
|
CPUs.
|
|
|
|
=back
|
|
|
|
=head1 XEN HOST SUBCOMMANDS
|
|
|
|
=over 4
|
|
|
|
=item B<dmesg> [B<-c>]
|
|
|
|
Reads the Xen message buffer, similar to dmesg on a Linux system. The
|
|
buffer contains informational, warning, and error messages created
|
|
during Xen's boot process. If you are having problems with Xen, this
|
|
is one of the first places to look as part of problem determination.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-c>, B<--clear>
|
|
|
|
Clears Xen's message buffer.
|
|
|
|
=back
|
|
|
|
=item B<info>
|
|
|
|
Print information about the Xen host in I<name : value> format. When
|
|
reporting a Xen bug, please provide this information as part of the
|
|
bug report.
|
|
|
|
Sample output looks as follows (lines wrapped manually to make the man
|
|
page more readable):
|
|
|
|
host : talon
|
|
release : 2.6.12.6-xen0
|
|
version : #1 Mon Nov 14 14:26:26 EST 2005
|
|
machine : i686
|
|
nr_cpus : 2
|
|
nr_nodes : 1
|
|
cores_per_socket : 1
|
|
threads_per_core : 1
|
|
cpu_mhz : 696
|
|
hw_caps : 0383fbff:00000000:00000000:00000040
|
|
total_memory : 767
|
|
free_memory : 37
|
|
xen_major : 3
|
|
xen_minor : 0
|
|
xen_extra : -devel
|
|
xen_caps : xen-3.0-x86_32
|
|
xen_scheduler : credit
|
|
xen_pagesize : 4096
|
|
platform_params : virt_start=0xfc000000
|
|
xen_changeset : Mon Nov 14 18:13:38 2005 +0100
|
|
7793:090e44133d40
|
|
cc_compiler : gcc version 3.4.3 (Mandrakelinux
|
|
10.2 3.4.3-7mdk)
|
|
cc_compile_by : sdague
|
|
cc_compile_domain : (none)
|
|
cc_compile_date : Mon Nov 14 14:16:48 EST 2005
|
|
xend_config_format : 3
|
|
|
|
B<FIELDS>
|
|
|
|
Not all fields will be explained here, but some of the less obvious
|
|
ones deserve explanation:
|
|
|
|
=over 4
|
|
|
|
=item B<hw_caps>
|
|
|
|
A vector showing what hardware capabilities are supported by your
|
|
processor. This is equivalent to, though more cryptic, the flags
|
|
field in /proc/cpuinfo on a normal Linux machine.
|
|
|
|
=item B<free_memory>
|
|
|
|
Available memory (in MB) not allocated to Xen, or any other domains.
|
|
|
|
=item B<xen_caps>
|
|
|
|
The Xen version and architecture. Architecture values can be one of:
|
|
x86_32, x86_32p (i.e. PAE enabled), x86_64, ia64.
|
|
|
|
=item B<xen_changeset>
|
|
|
|
The Xen mercurial changeset id. Very useful for determining exactly
|
|
what version of code your Xen system was built from.
|
|
|
|
=back
|
|
|
|
=item B<log>
|
|
|
|
Print out the xend log. This log file can be found in
|
|
/var/log/xend.log.
|
|
|
|
=item B<top>
|
|
|
|
Executes the B<xentop> command, which provides real time monitoring of
|
|
domains. Xentop is a curses interface, and reasonably self
|
|
explanatory.
|
|
|
|
=item B<uptime>
|
|
|
|
Prints the current uptime of the domains running.
|
|
|
|
=back
|
|
|
|
=head1 SCHEDULER SUBCOMMANDS
|
|
|
|
Xen ships with a number of domain schedulers, which can be set at boot
|
|
time with the B<sched=> parameter on the Xen command line. By
|
|
default B<credit> is used for scheduling.
|
|
|
|
FIXME: we really need a scheduler expert to write up this section.
|
|
|
|
=over 4
|
|
|
|
=item B<sched-credit> [ B<-d> I<domain-id> [ B<-w>[B<=>I<WEIGHT>] | B<-c>[B<=>I<CAP>] ] ]
|
|
|
|
Set credit scheduler parameters. The credit scheduler is a
|
|
proportional fair share CPU scheduler built from the ground up to be
|
|
work conserving on SMP hosts.
|
|
|
|
Each domain (including Domain0) is assigned a weight and a cap.
|
|
|
|
B<PARAMETERS>
|
|
|
|
=over 4
|
|
|
|
=item I<WEIGHT>
|
|
|
|
A domain with a weight of 512 will get twice as much CPU as a domain
|
|
with a weight of 256 on a contended host. Legal weights range from 1
|
|
to 65535 and the default is 256.
|
|
|
|
=item I<CAP>
|
|
|
|
The cap optionally fixes the maximum amount of CPU a domain will be
|
|
able to consume, even if the host system has idle CPU cycles. The cap
|
|
is expressed in percentage of one physical CPU: 100 is 1 physical CPU,
|
|
50 is half a CPU, 400 is 4 CPUs, etc. The default, 0, means there is
|
|
no upper cap.
|
|
|
|
=back
|
|
|
|
=item B<sched-sedf> I<period> I<slice> I<latency-hint> I<extratime> I<weight>
|
|
|
|
Set Simple EDF (Earliest Deadline First) scheduler parameters. This
|
|
scheduler provides weighted CPU sharing in an intuitive way and uses
|
|
realtime-algorithms to ensure time guarantees. For more information
|
|
see docs/misc/sedf_scheduler_mini-HOWTO.txt in the Xen distribution.
|
|
|
|
B<PARAMETERS>
|
|
|
|
=over 4
|
|
|
|
=item I<period>
|
|
|
|
The normal EDF scheduling usage in nanoseconds
|
|
|
|
=item I<slice>
|
|
|
|
The normal EDF scheduling usage in nanoseconds
|
|
|
|
FIXME: these are lame, should explain more.
|
|
|
|
=item I<latency-hint>
|
|
|
|
Scaled period if domain is doing heavy I/O.
|
|
|
|
=item I<extratime>
|
|
|
|
Flag for allowing domain to run in extra time.
|
|
|
|
=item I<weight>
|
|
|
|
Another way of setting CPU slice.
|
|
|
|
=back
|
|
|
|
B<EXAMPLES>
|
|
|
|
I<normal EDF (20ms/5ms):>
|
|
|
|
xm sched-sedf <dom-id> 20000000 5000000 0 0 0
|
|
|
|
I<best-effort domains (i.e. non-realtime):>
|
|
|
|
xm sched-sedf <dom-id> 20000000 0 0 1 0
|
|
|
|
I<normal EDF (20ms/5ms) + share of extra-time:>
|
|
|
|
xm sched-sedf <dom-id> 20000000 5000000 0 1 0
|
|
|
|
I<4 domains with weights 2:3:4:2>
|
|
|
|
xm sched-sedf <d1> 0 0 0 0 2
|
|
xm sched-sedf <d2> 0 0 0 0 3
|
|
xm sched-sedf <d3> 0 0 0 0 4
|
|
xm sched-sedf <d4> 0 0 0 0 2
|
|
|
|
I<1 fully-specified (10ms/3ms) domain, 3 other domains share available
|
|
rest in 2:7:3 ratio:>
|
|
|
|
xm sched-sedf <d1> 10000000 3000000 0 0 0
|
|
xm sched-sedf <d2> 0 0 0 0 2
|
|
xm sched-sedf <d3> 0 0 0 0 7
|
|
xm sched-sedf <d4> 0 0 0 0 3
|
|
|
|
=back
|
|
|
|
=head1 VIRTUAL DEVICE COMMANDS
|
|
|
|
Most virtual devices can be added and removed while guests are
|
|
running. The effect to the guest OS is much the same as any hotplug
|
|
event.
|
|
|
|
=head2 BLOCK DEVICES
|
|
|
|
=over 4
|
|
|
|
=item B<block-attach> I<domain-id> I<be-dev> I<fe-dev> I<mode> [I<bedomain-id>]
|
|
|
|
Create a new virtual block device. This will trigger a hotplug event
|
|
for the guest.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item I<domain-id>
|
|
|
|
The domain id of the guest domain that the device will be attached to.
|
|
|
|
=item I<be-dev>
|
|
|
|
The device in the backend domain (usually domain 0) to be exported.
|
|
This can be specified as a physical partition (phy:sda7) or as a file
|
|
mounted as loopback (file://path/to/loop.iso).
|
|
|
|
=item I<fe-dev>
|
|
|
|
How the device should be presented to the guest domain. It can be
|
|
specified as either a symbolic name, such as /dev/hdc, for common
|
|
devices, or by device id, such as 0x1400 (/dev/hdc device id in hex).
|
|
|
|
=item I<mode>
|
|
|
|
The access mode for the device from the guest domain. Supported modes
|
|
are B<w> (read/write) or B<r> (read-only).
|
|
|
|
=item I<bedomain-id>
|
|
|
|
The back end domain hosting the device. This defaults to domain 0.
|
|
|
|
=back
|
|
|
|
B<EXAMPLES>
|
|
|
|
=over 4
|
|
|
|
=item I<Mount an ISO as a Disk>
|
|
|
|
xm block-attach guestdomain file://path/to/dsl-2.0RC2.iso /dev/hdc ro
|
|
|
|
This will mount the dsl ISO as /dev/hdc in the guestdomain as a read
|
|
only device. This will probably not be detected as a CD-ROM by the
|
|
guest, but mounting /dev/hdc manually will work.
|
|
|
|
=back
|
|
|
|
=item B<block-detach> I<domain-id> I<devid> [B<--force>]
|
|
|
|
Detach a domain's virtual block device. I<devid> may be the symbolic
|
|
name or the numeric device id given to the device by domain 0. You
|
|
will need to run B<xm block-list> to determine that number.
|
|
|
|
Detaching the device requires the cooperation of the domain. If the
|
|
domain fails to release the device (perhaps because the domain is hung
|
|
or is still using the device), the detach will fail. The B<--force>
|
|
parameter will forcefully detach the device, but may cause IO errors
|
|
in the domain.
|
|
|
|
=item B<block-list> [B<-l>|B<--long>] I<domain-id>
|
|
|
|
List virtual block devices for a domain. The returned output is
|
|
formatted as a list or as an S-Expression if the B<--long> option was given.
|
|
|
|
=back
|
|
|
|
=head2 NETWORK DEVICES
|
|
|
|
=over 4
|
|
|
|
=item B<network-attach> I<domain-id> [B<script=>I<scriptname>] [B<ip=>I<ipaddr>]
|
|
[B<mac=>I<macaddr>] [B<bridge=>I<bridge-name>] [B<backend=>I<bedomain-id>]
|
|
|
|
Creates a new network device in the domain specified by I<domain-id>. It
|
|
takes the following optional options:
|
|
|
|
=back
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<script=>I<scriptname>
|
|
|
|
Use the specified script name to bring up the network. Defaults to
|
|
the default setting in xend-config.sxp for B<vif-script>.
|
|
|
|
=item B<ip=>I<ipaddr>
|
|
|
|
Passes the specified IP Address to the adapter on creation.
|
|
|
|
FIXME: this currently appears to be B<broken>. I'm not sure under what
|
|
circumstances this should actually work.
|
|
|
|
=item B<mac=>I<macaddr>
|
|
|
|
The MAC address that the domain will see on its Ethernet device. If
|
|
the device is not specified it will be randomly generated with the
|
|
00:16:3e vendor id prefix.
|
|
|
|
=item B<bridge=>I<bridge-name>
|
|
|
|
The name of the bridge to attach the vif to, in case you have more
|
|
than one. This defaults to xenbr0.
|
|
|
|
=item B<backend=>I<bedomain-id>
|
|
|
|
The backend domain id. By default this is domain 0.
|
|
|
|
=back
|
|
|
|
=over 4
|
|
|
|
=item B<network-detach> I<domain-id> I<devid>
|
|
|
|
Removes the network device from the domain specified by I<domain-id>.
|
|
I<devid> is the virtual interface device number within the domain
|
|
(i.e. the 3 in vif22.3).
|
|
|
|
FIXME: this is currently B<broken>. Network devices aren't completely
|
|
removed from domain 0.
|
|
|
|
=item B<network-list> [B<-l>|B<--long>]> I<domain-id>
|
|
|
|
List virtual network interfaces for a domain. The returned output is
|
|
formatted as a list or as an S-Expression if the B<--long> option was given.
|
|
|
|
=back
|
|
|
|
=head2 VIRTUAL TPM DEVICES
|
|
|
|
=over 4
|
|
|
|
=item B<vtpm-list> [B<-l>|B<--long>] I<domain-id>
|
|
|
|
Show the virtual TPM device for a domain. The returned output is
|
|
formatted as a list or as an S-Expression if the B<--long> option was given.
|
|
|
|
=back
|
|
|
|
=head1 SEE ALSO
|
|
|
|
B<xmdomain.cfg>(5), B<xentop>(1)
|
|
|
|
=head1 AUTHOR
|
|
|
|
Sean Dague <sean at dague dot net>
|
|
Daniel Stekloff <dsteklof at us dot ibm dot com>
|
|
Reiner Sailer <sailer at us dot ibm dot com>
|
|
Stefan Berger <stefanb at us dot ibm dot com>
|
|
|
|
=head1 BUGS
|