mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
Signed-off-by: Wei Liu <wei.liu2@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
1107 lines
29 KiB
Groff
1107 lines
29 KiB
Groff
=head1 NAME
|
|
|
|
XL - Xen management tool, based on LibXenlight
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
B<xl> I<subcommand> [I<args>]
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
The B<xl> program is the new tool for managing Xen guest
|
|
domains. 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 old B<xm> tool is deprecated and should not be used.
|
|
|
|
The basic structure of every B<xl> command is almost always:
|
|
|
|
=over 2
|
|
|
|
B<xl> I<subcommand> [I<OPTIONS>] I<domain-id>
|
|
|
|
=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
|
|
|
|
=over 4
|
|
|
|
=item start the script B</etc/init.d/xencommons> at boot time
|
|
|
|
Most B<xl> operations rely upon B<xenstored> and B<xenconsoled>: make
|
|
sure you start the script B</etc/init.d/xencommons> at boot time to
|
|
initialize all the daemons needed by B<xl>.
|
|
|
|
=item setup a B<xenbr0> bridge in dom0
|
|
|
|
In the most common network configuration, you need to setup a bridge in dom0
|
|
named B<xenbr0> in order to have a working network in the guest domains.
|
|
Please refer to the documentation of your Linux distribution to know how to
|
|
setup the bridge.
|
|
|
|
=item B<autoballoon>
|
|
|
|
If you specify the amount of memory dom0 has, passing B<dom0_mem> to
|
|
Xen, it is highly reccomended to disable B<autoballoon>. Edit
|
|
B</etc/xen/xl.conf> and set it to 0.
|
|
|
|
=item run xl as B<root>
|
|
|
|
Most B<xl> 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.
|
|
|
|
=back
|
|
|
|
=head1 GLOBAL OPTIONS
|
|
|
|
Some global options are always available:
|
|
|
|
=over 4
|
|
|
|
=item B<-v>
|
|
|
|
Verbose.
|
|
|
|
=item B<-N>
|
|
|
|
Dry run: do not actually execute the command.
|
|
|
|
=back
|
|
|
|
=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<button-press> I<domain-id> I<button>
|
|
|
|
I<This command is deprecated. Please use C<xl trigger> in preference>
|
|
|
|
Indicate an ACPI button press to the domain. I<button> is may be 'power' or
|
|
'sleep'. This command is only available for HVM domains.
|
|
|
|
=item B<create> [I<configfile>] [I<OPTIONS>]
|
|
|
|
The create subcommand takes a config file as first argument: see
|
|
L<xl.cfg> for full details of that file format and possible options.
|
|
If I<configfile> is missing B<XL> creates the domain starting from the
|
|
default value for every option.
|
|
|
|
I<configfile> has to be an absolute path to a file.
|
|
|
|
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<-q>, B<--quiet>
|
|
|
|
No console output.
|
|
|
|
=item B<-f=FILE>, B<--defconfig=FILE>
|
|
|
|
Use the given configuration file.
|
|
|
|
=item B<-p>
|
|
|
|
Leave the domain paused after it is created.
|
|
|
|
=item B<-c>
|
|
|
|
Attach console to the domain as soon as it has started. This is
|
|
useful for determining issues with crashing domains and just as a
|
|
general convenience since you often want to watch the
|
|
domain boot.
|
|
|
|
=item B<key=value>
|
|
|
|
It is possible to pass I<key=value> pairs on the command line to provide
|
|
options as if they were written in the configuration file; these override
|
|
whatever is in the I<configfile>.
|
|
|
|
=back
|
|
|
|
B<EXAMPLES>
|
|
|
|
=over 4
|
|
|
|
=item I<with config file>
|
|
|
|
xl create DebianLenny
|
|
|
|
This creates a domain with the file /etc/xen/DebianLenny, and returns as
|
|
soon as it is run.
|
|
|
|
=back
|
|
|
|
=item B<console> [I<OPTIONS>] 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.
|
|
|
|
Use the key combination Ctrl+] to detach the domain console.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item I<-t [pv|serial]>
|
|
|
|
Connect to a PV console or connect to an emulated serial console.
|
|
PV consoles are the only consoles available for PV domains while HVM
|
|
domains can have both. If this option is not specified it defaults to
|
|
emulated serial for HVM guests and PV console for PV guests.
|
|
|
|
=item I<-n NUM>
|
|
|
|
Connect to console number I<NUM>. Console numbers start from 0.
|
|
|
|
=back
|
|
|
|
=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.
|
|
|
|
=item B<domname> I<domain-id>
|
|
|
|
Converts a domain id to a domain name.
|
|
|
|
=item B<rename> I<domain-id> I<new-name>
|
|
|
|
Change the domain name of I<domain-id> to I<new-name>.
|
|
|
|
=item B<dump-core> I<domain-id> [I<filename>]
|
|
|
|
Dumps the virtual machine's memory for the specified domain to the
|
|
I<filename> specified, without pausing the domain. The dump file will
|
|
be written to a distribution specific directory for dump files. Such
|
|
as: /var/lib/xen/dump or /var/xen/dump.
|
|
|
|
=item B<help> [I<--long>]
|
|
|
|
Displays the short help message (i.e. common commands).
|
|
|
|
The I<--long> option prints out the complete set of B<xl> 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<xl list> is not the table view shown below, but
|
|
instead presents the data in as a JSON data structure.
|
|
|
|
=item B<-Z>, B<--context>
|
|
Also prints the security labels.
|
|
|
|
=item B<-v>, B<--verbose>
|
|
|
|
Also prints the domain UUIDs, the shutdown reason and security labels.
|
|
|
|
=back
|
|
|
|
B<EXAMPLE>
|
|
|
|
An example format for the list is as follows:
|
|
|
|
Name ID Mem VCPUs State Time(s)
|
|
Domain-0 0 750 4 r----- 11794.3
|
|
win 1 1019 1 r----- 0.3
|
|
linux 2 2048 2 r----- 5624.2
|
|
|
|
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<xl 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>
|
|
|
|
The guest OS has shut down (SCHEDOP_shutdown has been called) but the
|
|
domain is not dying yet.
|
|
|
|
=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<xl.cfg(5)> for more info.
|
|
|
|
=item B<d - dying>
|
|
|
|
The domain is in process of dying, but hasn't completely shutdown or
|
|
crashed.
|
|
|
|
=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, appending 't'
|
|
for terabytes, 'g' for gigabytes, 'm' for megabytes, 'k' for kilobytes and 'b'
|
|
for bytes.
|
|
|
|
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; append 't' for
|
|
terabytes, 'g' for gigabytes, 'm' for megabytes, 'k' for kilobytes and 'b' for
|
|
bytes.
|
|
|
|
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<OPTIONS>] I<domain-id> I<host>
|
|
|
|
Migrate a domain to another host machine. By default B<xl> relies on ssh as a
|
|
transport mechanism between the two hosts.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-s> I<sshcommand>
|
|
|
|
Use <sshcommand> instead of ssh. String will be passed to sh. If empty, run
|
|
<host> instead of ssh <host> xl migrate-receive [-d -e].
|
|
|
|
=item B<-e>
|
|
|
|
On the new host, do not wait in the background (on <host>) for the death of the
|
|
domain. See the corresponding option of the I<create> subcommand.
|
|
|
|
=item B<-C> I<config>
|
|
|
|
Send <config> instead of config file from creation.
|
|
|
|
=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.
|
|
|
|
For HVM domains this requires PV drivers to be installed in your guest
|
|
OS. If PV drivers are not present but you have configured the guest OS
|
|
to behave appropriately you may be able to use the I<-F> option
|
|
trigger a reset button press.
|
|
|
|
The behavior of what happens to a domain when it reboots is set by the
|
|
B<on_reboot> parameter of the domain configuration file when the
|
|
domain was created.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-F>
|
|
|
|
If the guest does not support PV reboot control then fallback to
|
|
sending an ACPI power event (equivalent to the I<reset> option to
|
|
I<trigger>.
|
|
|
|
You should ensure that the guest is configured to behave as expected
|
|
in response to this event.
|
|
|
|
=back
|
|
|
|
=item B<restore> [I<OPTIONS>] [I<ConfigFile>] I<CheckpointFile>
|
|
|
|
Build a domain from an B<xl save> state file. See B<save> for more info.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-p>
|
|
|
|
Do not unpause domain after restoring it.
|
|
|
|
=item B<-e>
|
|
|
|
Do not wait in the background for the death of the domain on the new host.
|
|
See the corresponding option of the I<create> subcommand.
|
|
|
|
=item B<-d>
|
|
|
|
Enable debug messages.
|
|
|
|
=back
|
|
|
|
=item B<save> [I<OPTIONS>] I<domain-id> I<CheckpointFile> [I<ConfigFile>]
|
|
|
|
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, unless the -c option is used.
|
|
B<xl restore> restores from this checkpoint file.
|
|
Passing a config file argument allows the user to manually select the VM config
|
|
file used to create the domain.
|
|
|
|
=over 4
|
|
|
|
=item B<-c>
|
|
|
|
Leave domain running after creating the snapshot.
|
|
|
|
=back
|
|
|
|
=item B<sharing> [I<domain-id>]
|
|
|
|
List count of shared pages.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item I<domain_id>
|
|
|
|
List specifically for that domain. Otherwise, list for all domains.
|
|
|
|
=back
|
|
|
|
=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.
|
|
|
|
For HVM domains this requires PV drivers to be installed in your guest
|
|
OS. If PV drivers are not present but you have configured the guest OS
|
|
to behave appropriately you may be able to use the I<-F> option
|
|
trigger a power button press.
|
|
|
|
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 domain configuration file when the
|
|
domain was created.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-w>
|
|
|
|
Wait for the domain to complete shutdown before returning.
|
|
|
|
=item B<-F>
|
|
|
|
If the guest does not support PV shutdown control then fallback to
|
|
sending an ACPI power event (equivalent to the I<power> option to
|
|
I<trigger>.
|
|
|
|
You should ensure that the guest is configured to behave as expected
|
|
in response to this event.
|
|
|
|
=back
|
|
|
|
=item B<sysrq> I<domain-id> I<letter>
|
|
|
|
Send a <Magic System Request> to the domain, each type of request is
|
|
represented by a different letter.
|
|
It can be used to send SysRq requests to Linux guests, see sysrq.txt in
|
|
your Linux Kernel sources for more information.
|
|
It requires PV drivers to be installed in your guest OS.
|
|
|
|
=item B<trigger> I<domain-id> I<nmi|reset|init|power|sleep|s3resume> [I<VCPU>]
|
|
|
|
Send a trigger to a domain, where the trigger can be: nmi, reset, init, power
|
|
or sleep. Optionally a specific vcpu number can be passed as an argument.
|
|
This command is only available for HVM domains.
|
|
|
|
=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.
|
|
|
|
Some guests may need to actually bring the newly added CPU online
|
|
after B<vcpu-set>, go to B<SEE ALSO> section for information.
|
|
|
|
=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 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.
|
|
|
|
=item B<vncviewer> [I<OPTIONS>] I<domain-id>
|
|
|
|
Attach to domain's VNC server, forking a vncviewer process.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item I<--autopass>
|
|
|
|
Pass VNC password to vncviewer via stdin.
|
|
|
|
=back
|
|
|
|
=back
|
|
|
|
=head1 XEN HOST SUBCOMMANDS
|
|
|
|
=over 4
|
|
|
|
=item B<debug-keys> I<keys>
|
|
|
|
Send debug I<keys> to Xen. It is the same as pressing the Xen
|
|
"conswitch" (Ctrl-A by default) three times and then pressing "keys".
|
|
|
|
=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> [B<-n>, B<--numa>]
|
|
|
|
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. See I<http://wiki.xen.org/xenwiki/ReportingBugs> on how to
|
|
report Xen bugs.
|
|
|
|
Sample output looks as follows:
|
|
|
|
host : scarlett
|
|
release : 3.1.0-rc4+
|
|
version : #1001 SMP Wed Oct 19 11:09:54 UTC 2011
|
|
machine : x86_64
|
|
nr_cpus : 4
|
|
nr_nodes : 1
|
|
cores_per_socket : 4
|
|
threads_per_core : 1
|
|
cpu_mhz : 2266
|
|
hw_caps : bfebfbff:28100800:00000000:00003b40:009ce3bd:00000000:00000001:00000000
|
|
virt_caps : hvm hvm_directio
|
|
total_memory : 6141
|
|
free_memory : 4274
|
|
free_cpus : 0
|
|
xen_major : 4
|
|
xen_minor : 2
|
|
xen_extra : -unstable
|
|
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
|
|
xen_scheduler : credit
|
|
xen_pagesize : 4096
|
|
platform_params : virt_start=0xffff800000000000
|
|
xen_changeset : Wed Nov 02 17:09:09 2011 +0000 24066:54a5e994a241
|
|
xen_commandline : com1=115200,8n1 guest_loglvl=all dom0_mem=750M console=com1
|
|
cc_compiler : gcc version 4.4.5 (Debian 4.4.5-8)
|
|
cc_compile_by : sstabellini
|
|
cc_compile_domain : uk.xensource.com
|
|
cc_compile_date : Tue Nov 8 12:03:05 UTC 2011
|
|
xend_config_format : 4
|
|
|
|
|
|
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: they both derive from
|
|
the feature bits returned by the cpuid command on x86 platforms.
|
|
|
|
=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
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-n>, B<--numa>
|
|
|
|
List host NUMA topology information
|
|
|
|
=back
|
|
|
|
=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.
|
|
|
|
=item B<pci-list-assignable-devices>
|
|
|
|
List all the assignable PCI devices.
|
|
These are devices in the system which are configured to be
|
|
available for passthrough and are bound to a suitable PCI
|
|
backend driver in domain 0 rather than a real driver.
|
|
|
|
=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.
|
|
|
|
=over 4
|
|
|
|
=item B<sched-credit> [I<OPTIONS>]
|
|
|
|
Set or get 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<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-d DOMAIN>, B<--domain=DOMAIN>
|
|
|
|
Specify domain for which scheduler parameters are to be modified or retrieved.
|
|
Mandatory for modifying scheduler parameters.
|
|
|
|
=item B<-w WEIGHT>, B<--weight=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 B<-c CAP>, B<--cap=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.
|
|
|
|
=item B<-p CPUPOOL>, B<--cpupool=CPUPOOL>
|
|
|
|
Restrict output to domains in the specified cpupool.
|
|
|
|
=back
|
|
|
|
=item B<sched-credit2> [I<OPTIONS>]
|
|
|
|
Set or get credit2 scheduler parameters. The credit2 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.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-d DOMAIN>, B<--domain=DOMAIN>
|
|
|
|
Specify domain for which scheduler parameters are to be modified or retrieved.
|
|
Mandatory for modifying scheduler parameters.
|
|
|
|
=item B<-w WEIGHT>, B<--weight=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 B<-p CPUPOOL>, B<--cpupool=CPUPOOL>
|
|
|
|
Restrict output to domains in the specified cpupool.
|
|
|
|
=back
|
|
|
|
=item B<sched-sedf> [I<OPTIONS>]
|
|
|
|
Set or get 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<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-d DOMAIN>, B<--domain=DOMAIN>
|
|
|
|
Specify domain for which scheduler parameters are to be modified or retrieved.
|
|
Mandatory for modifying scheduler parameters.
|
|
|
|
=item B<-p PERIOD>, B<--period=PERIOD>
|
|
|
|
The normal EDF scheduling usage in milliseconds.
|
|
|
|
=item B<-s SLICE>, B<--slice=SLICE>
|
|
|
|
The normal EDF scheduling usage in milliseconds.
|
|
|
|
=item B<-l LATENCY>, B<--latency=LATENCY>
|
|
|
|
Scaled period if domain is doing heavy I/O.
|
|
|
|
=item B<-e EXTRA>, B<--extra=EXTRA>
|
|
|
|
Flag for allowing domain to run in extra time (0 or 1).
|
|
|
|
=item B<-w WEIGHT>, B<--weight=WEIGHT>
|
|
|
|
Another way of setting CPU slice.
|
|
|
|
=item B<-c CPUPOOL>, B<--cpupool=CPUPOOL>
|
|
|
|
Restrict output to domains in the specified cpupool.
|
|
|
|
=back
|
|
|
|
=back
|
|
|
|
=head1 CPUPOOLS COMMANDS
|
|
|
|
Xen can group the physical cpus of a server in cpu-pools. Each physical CPU is
|
|
assigned at most to one cpu-pool. Domains are each restricted to a single
|
|
cpu-pool. Scheduling does not cross cpu-pool boundaries, so each cpu-pool has
|
|
an own scheduler.
|
|
Physical cpus and domains can be moved from one cpu-pool to another only by an
|
|
explicit command.
|
|
Cpu-pools can be specified either by name or by id.
|
|
|
|
=over 4
|
|
|
|
=item B<cpupool-create> [I<OPTIONS>] I<ConfigFile> [I<Variable=Value> ...]
|
|
|
|
Create a cpu pool based an I<ConfigFile>.
|
|
Variable settings from the I<ConfigFile> may be altered by specifying new
|
|
or additional assignments on the command line.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-f=FILE>, B<--defconfig=FILE>
|
|
|
|
Use the given configuration file.
|
|
|
|
=back
|
|
|
|
=item B<cpupool-list> [I<-c|--cpus>] [I<cpu-pool>]
|
|
|
|
List CPU pools on the host.
|
|
If I<-c> is specified, B<xl> prints a list of CPUs used by I<cpu-pool>.
|
|
|
|
=item B<cpupool-destroy> I<cpu-pool>
|
|
|
|
Deactivates a cpu pool.
|
|
This is possible only if no domain is active in the cpu-pool.
|
|
|
|
=item B<cpupool-rename> I<cpu-pool> <newname>
|
|
|
|
Renames a cpu-pool to I<newname>.
|
|
|
|
=item B<cpupool-cpu-add> I<cpu-pool> I<cpu-nr|node:node-nr>
|
|
|
|
Adds a cpu or all cpus of a numa node to a cpu-pool.
|
|
|
|
=item B<cpupool-cpu-remove> I<cpu-nr|node:node-nr>
|
|
|
|
Removes a cpu or all cpus of a numa node from a cpu-pool.
|
|
|
|
=item B<cpupool-migrate> I<domain> I<cpu-pool>
|
|
|
|
Moves a domain specified by domain-id or domain-name into a cpu-pool.
|
|
|
|
=item B<cpupool-numa-split>
|
|
|
|
Splits up the machine into one cpu-pool per numa node.
|
|
|
|
=back
|
|
|
|
=head1 VIRTUAL DEVICE COMMANDS
|
|
|
|
Most virtual devices can be added and removed while guests are
|
|
running, assuming that the necessary support exists in the guest. 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<disc-spec-component(s)> ...
|
|
|
|
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<disc-spec-component>
|
|
|
|
A disc specification in the same format used for the B<disk> variable in
|
|
the domain config file. See
|
|
L<http://xenbits.xen.org/docs/unstable/misc/xl-disk-configuration.txt>.
|
|
|
|
=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<xl 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> I<domain-id>
|
|
|
|
List virtual block devices for a domain.
|
|
|
|
=item B<cd-insert> I<domain-id> I<VirtualDevice> I<be-dev>
|
|
|
|
Insert a cdrom into a guest domain's cd drive. Only works with HVM domains.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item I<VirtualDevice>
|
|
|
|
How the device should be presented to the guest domain; for example /dev/hdc.
|
|
|
|
=item I<be-dev>
|
|
|
|
the device in the backend domain (usually domain 0) to be exported; it
|
|
can be a path to a file (file://path/to/file.iso). See B<disk> in
|
|
L<xl.cfg(5)> for the details.
|
|
|
|
=back
|
|
|
|
=item B<cd-eject> I<domain-id> I<VirtualDevice>
|
|
|
|
Eject a cdrom from a guest's cd drive. Only works with HVM domains.
|
|
I<VirtualDevice> is the cdrom device in the guest to eject.
|
|
|
|
=back
|
|
|
|
=head2 NETWORK DEVICES
|
|
|
|
=over 4
|
|
|
|
=item B<network-attach> I<domain-id> I<network-device>
|
|
|
|
Creates a new network device in the domain specified by I<domain-id>.
|
|
I<network-device> describes the device to attach, using the same format as the
|
|
B<vif> string in the domain config file. See L<xl.cfg> and
|
|
L<http://xenbits.xen.org/docs/unstable/misc/xl-network-configuration.html>
|
|
for more informations.
|
|
|
|
=item B<network-detach> I<domain-id> I<devid|mac>
|
|
|
|
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). Alternatively the I<mac> address can be used to
|
|
select the virtual interface to detach.
|
|
|
|
=item B<network-list> I<domain-id>
|
|
|
|
List virtual network interfaces for a domain.
|
|
|
|
=back
|
|
|
|
=head1 PCI PASS-THROUGH
|
|
|
|
=over 4
|
|
|
|
=item B<pci-attach> I<domain-id> I<BDF>
|
|
|
|
Hot-plug a new pass-through pci device to the specified domain.
|
|
B<BDF> is the PCI Bus/Device/Function of the physical device to pass-through.
|
|
|
|
=item B<pci-detach> [I<-f>] I<domain-id> I<BDF>
|
|
|
|
Hot-unplug a previously assigned pci device from a domain. B<BDF> is the PCI
|
|
Bus/Device/Function of the physical device to be removed from the guest domain.
|
|
|
|
If B<-f> is specified, B<xl> is going to forcefully remove the device even
|
|
without guest's collaboration.
|
|
|
|
=item B<pci-list> I<domain-id>
|
|
|
|
List pass-through pci devices for a domain.
|
|
|
|
=back
|
|
|
|
=head1 TMEM
|
|
|
|
=over 4
|
|
|
|
=item B<tmem-list> I[<-l>] I<domain-id>
|
|
|
|
List tmem pools. If I<-l> is specified, also list tmem stats.
|
|
|
|
=item B<tmem-freeze> I<domain-id>
|
|
|
|
Freeze tmem pools.
|
|
|
|
=item B<tmem-destroy> I<domain-id>
|
|
|
|
Destroy tmem pools.
|
|
|
|
=item B<tmem-thaw> I<domain-id>
|
|
|
|
Thaw tmem pools.
|
|
|
|
=item B<tmem-set> I<domain-id> [I<OPTIONS>]
|
|
|
|
Change tmem settings.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-w> I<WEIGHT>
|
|
|
|
Weight (int)
|
|
|
|
=item B<-c> I<CAP>
|
|
|
|
Cap (int)
|
|
|
|
=item B<-p> I<COMPRESS>
|
|
|
|
Compress (int)
|
|
|
|
=back
|
|
|
|
=item B<tmem-shared-auth> I<domain-id> [I<OPTIONS>]
|
|
|
|
De/authenticate shared tmem pool.
|
|
|
|
B<OPTIONS>
|
|
|
|
=over 4
|
|
|
|
=item B<-u> I<UUID>
|
|
|
|
Specify uuid (abcdef01-2345-6789-1234-567890abcdef)
|
|
|
|
=item B<-a> I<AUTH>
|
|
|
|
0=auth,1=deauth
|
|
|
|
=back
|
|
|
|
=item B<tmem-freeable>
|
|
|
|
Get information about how much freeable memory (MB) is in-use by tmem.
|
|
|
|
=back
|
|
|
|
=head1 FLASK
|
|
|
|
B<FLASK> is a security framework that defines a mandatory access control policy
|
|
providing fine-grained controls over Xen domains, allowing the policy writer
|
|
to define what interactions between domains, devices, and the hypervisor are
|
|
permitted. Some example of what you can do using XSM/FLASK:
|
|
- Prevent two domains from communicating via event channels or grants
|
|
- Control which domains can use device passthrough (and which devices)
|
|
- Restrict or audit operations performed by privileged domains
|
|
- Prevent a privileged domain from arbitrarily mapping pages from other
|
|
domains.
|
|
|
|
You can find more details on how to use FLASK and an example security
|
|
policy here: L<http://xenbits.xen.org/docs/unstable/misc/xsm-flask.txt>
|
|
|
|
=over 4
|
|
|
|
=item B<getenforce>
|
|
|
|
Determine if the FLASK security module is loaded and enforcing its policy.
|
|
|
|
=item B<setenforce> I<1|0|Enforcing|Permissive>
|
|
|
|
Enable or disable enforcing of the FLASK access controls. The default is
|
|
permissive and can be changed using the flask_enforcing option on the
|
|
hypervisor's command line.
|
|
|
|
=item B<loadpolicy> I<policy-file>
|
|
|
|
Load FLASK policy from the given policy file. The initial policy is provided to
|
|
the hypervisor as a multiboot module; this command allows runtime updates to the
|
|
policy. Loading new security policy will reset runtime changes to device labels.
|
|
|
|
=back
|
|
|
|
=head1 TO BE DOCUMENTED
|
|
|
|
We need better documentation for:
|
|
|
|
=over 4
|
|
|
|
=item B<tmem>
|
|
|
|
Trascendent Memory.
|
|
|
|
=back
|
|
|
|
=head1 SEE ALSO
|
|
|
|
The following man pages:
|
|
|
|
L<xl.cfg>(5), L<xlcpupool.cfg>(5), B<xentop>(1)
|
|
|
|
And the following documents on the xen.org website:
|
|
|
|
L<http://xenbits.xen.org/docs/unstable/misc/xl-network-configuration.html>
|
|
L<http://xenbits.xen.org/docs/unstable/misc/xl-disk-configuration.txt>
|
|
L<http://xenbits.xen.org/docs/unstable/misc/xsm-flask.txt>
|
|
|
|
For systems that don't automatically bring CPU online:
|
|
|
|
L<http://wiki.xen.org/wiki/Paravirt_Linux_CPU_Hotplug>
|
|
|
|
=head1 BUGS
|
|
|
|
Send bugs to xen-devel@lists.xensource.com, see
|
|
http://wiki.xen.org/xenwiki/ReportingBugs on how to send bug reports.
|