跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / XM、XL 工具堆栈和 Libvirt 框架
适用范围 SUSE Linux Enterprise Server 15 SP2

C XM、XL 工具堆栈和 Libvirt 框架

C.1 Xen 工具堆栈

从早期发行版 Xen 2.x 开始,xend 就一直是事实上用于管理 Xen 安装的工具堆栈。Xen 4.1 中引入了一个处于技术预览状态的新工具堆栈 libxenlight(又称为 libxl)。libxl 是以 C 编写的小型低级别库,旨在为所有客户端工具堆栈(XAPIlibvirt、xl)提供简单的 API。Xen 4.2 中将 libxl 提升为受官方支持状态,而将 xend 标记为弃用。Xen 4.3 和 4.4 系列中包含了 xend,以使用户有充足的时间将其工具过渡到 libxl。上游 Xen 项目中已去除 xend,从 Xen 4.5 系列和 SUSE Linux Enterprise Server 12 SP1 开始,将不再提供该工具堆栈。

尽管 SLES 11 SP3 包含了 Xen 4.2,但 SUSE 仍保留了 xend 工具堆栈,因为在服务包中进行这种有创性更改会给 SUSE Linux Enterprise 客户造成过大干扰。不过,SLES 12 将提供适当的机会让客户迁移到新的 libxl 工具堆栈,并去除已弃用且不再保留的 xend 堆栈。从 SUSE Linux Enterprise Server 12 SP1 开始,xend 将不再受支持。

xend 与 libxl 之间的主要差别之一是,前者是有状态的,而后者是无状态的。使用 xend 时,所有客户端应用程序(例如 xmlibvirt)都会看到相同的系统状态。xend 负责维护整个 Xen 主机的状态。在 libxl 中,xllibvirt 等客户端应用程序必须维护状态。因此,使用 xl 创建的域对于 libvirt 等其他 libxl 应用程序是不可见或不可知的。一般情况下,我们建议不要混用多个 libxl 应用程序,而是使用单个 libxl 应用程序来管理 Xen 主机。在 SUSE Linux Enterprise Server 中,我们建议使用 libvirt 来管理 Xen 主机。这样,便可以通过 virt-managervirt-installvirt-viewer、libguestfs 等 libvirt 应用程序来管理 Xen 系统。如果使用 xl 管理 Xen 主机,libvirt 将无法访问由 xl 管理的任何虚拟机。因此,任何 libvirt 应用程序也无法访问这些虚拟机。

C.1.1 从 xend/xm to xl/libxl 升级

xl 应用程序及其配置格式(请参见 man xl.cfg)可以向后兼容 xm 应用程序及其配置格式(请参见 man xm.cfg)。使用 xl 应该可以利用现有的 xm 配置。由于 libxl 是无状态的,并且 xl 不支持受管域的表示法,因此 SUSE 建议使用 libvirt 来管理 Xen 主机。SUSE 提供了一个名为 xen2libvirt 的工具,用于提供简单的机制来将以前由 xend 管理的域导入 libvirt。有关 xen2libvirt 的详细信息,请参见第 C.2 节 “将 Xen 域配置导入 libvirt

C.1.2 XL 设计

每个 xl 命令的基本结构如下:

xl subcommand OPTIONS DOMAIN

DOMAIN 是域 ID 编号或者域名(在内部转换为域 ID),OPTIONS 是特定于子命令的选项。

尽管 xl/libxl 可以向后兼容 xm/xend,但您应该注意两者之间的几项差别:

  • 受管域或持久域。libvirt 现在提供此项功能。

  • xl/libxl 不支持在域配置文件中使用 Python 代码。

  • xl/libxl 不支持基于 SXP 格式配置文件创建域 (xm create -F)。

  • xl/libxl 不支持通过域配置文件中的 w! 在 DomU 之间共享储存。

xl/libxl 相对较新且尚在大力开发之中,因此相比 xm/xend 工具堆栈仍然缺少一些功能。

  • SCSI LUN/主机直通 (PVSCSI)

  • USB 直通 (PVUSB)

  • Xen 全虚拟化 Linux Guest 的直接内核引导

C.1.3 升级前的核对清单

在将 SLES 11 SP4 Xen 主机升级到 SLES 15 之前:

  • 必须从 xm 域配置文件中去除任何 Python 代码。

  • 建议使用 virsh dumpxml DOMAIN_NAME DOMAIN_NAME.xml 捕获所有现有虚拟机中的 libvirt 域 XML。

  • 建议备份 /etc/xen/xend-config.sxp/boot/grub/menu.lst 文件,以保留以前用于 Xen 的参数的参考信息。

注意
注意

目前不支持将 SLES 11 SP4 Xen 主机上运行的虚拟机实时迁移到 SLES 15 Xen 主机。xend 与 libxl 工具堆栈两者的运行时环境不兼容。需要关闭虚拟机才能进行迁移。

C.2 将 Xen 域配置导入 libvirt

xen2libvirt 是用于将旧式 Xen 域配置导入 libvirt 虚拟化库的命令行工具。有关 libvirt 的详细信息,请参见《The Virtualization》(虚拟化)一书。使用 xen2libvirt 可以轻松将已弃用的 xm/xend 工具堆栈所管理的域导入新的 libvirt/libxl 工具堆栈中。使用此工具的 --recursive 模式可以一次性导入多个域

xen2libvirt 包含在 xen-tools 软件包中。如果需要,请使用以下命令安装该软件包

tux > sudo zypper install xen-tools

xen2libvirt 的一般语法为

xen2libvirt <options> /path/to/domain/config

其中 options 可以是:

-h--help

列显有关 xen2libvirt 用法的简短信息。

-c--convert-only

将域配置转换为 libvirt XML 格式,但不将配置导入 libvirt

-r--recursive

从指定的路径开始,以递归方式转换并/或导入所有域配置。

-f--format

指定源域配置的格式。可以是 xmsexpr(S 表达式格式)。

-v--verbose

列显有关导入过程的更详细的信息。

例 C.1︰ 将 Xen 域配置转换为 libvirt

假设您有一个通过 xm 管理的 Xen 域,/etc/xen/sle12.xm 中保存了该域的以下配置:

kernel = "/boot/vmlinuz-2.6-xenU"
  memory = 128
  name = "SLE12"
  root = "/dev/hda1 ro"
  disk = [ "file:/var/xen/sle12.img,hda1,w" ]

将此配置转换为 libvirt XML 而不导入,然后查看其内容:

tux > sudo xen2libvirt -f xm -c /etc/xen/sle12.xm > /etc/libvirt/qemu/sles12.xml
  # cat /etc/libvirt/qemu/sles12.xml
  <domain type='xen'>
  <name>SLE12</name>
  <uuid>43e1863c-8116-469c-a253-83d8be09aa1d</uuid>
  <memory unit='KiB'>131072</memory>
  <currentMemory unit='KiB'>131072</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
  <type arch='x86_64' machine='xenpv'>linux</type>
  <kernel>/boot/vmlinuz-2.6-xenU</kernel>
  </os>
  <clock offset='utc' adjustment='reset'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
  <disk type='file' device='disk'>
  <driver name='file'/>
  <source file='/var/xen/sle12.img'/>
  <target dev='hda1' bus='xen'/>
  </disk>
  <console type='pty'>
  <target type='xen' port='0'/>
  </console>
  </devices>
  </domain>

要将域导入 libvirt,可以运行不带 -c 选项的相同 xen2libvirt 命令,或者使用导出的 /etc/libvirt/qemu/sles12.xml 文件并通过 virsh 定义新的 Xen 域:

tux > sudo virsh define /etc/libvirt/qemu/sles12.xml

C.3 xmxl 应用程序之间的差异

本节罗列了 xmxl 应用程序之间的所有差异。一般情况下,xl 可以与 xm 兼容。通常,用户只需在自定义脚本或工具中将 xm 替换为 xl

您还可以通过 virsh 命令使用 libvirt 框架。本文档中只会显示 virsh 的第一个 OPTION。要获取有关此选项的更多帮助,请执行:

virsh help OPTION

C.3.1 表示法约定

为了让您轻松了解 xlxm 命令之间的差异,本节使用了以下表示法:

表 C.1︰ 表示法约定

表示法

含义

(-) minus

选项在 xm 中存在,但未包含在 xl 中。

(+) plus

选项在 xl 中存在,但未包含在 xm 中。

C.3.2 新的全局选项

表 C.2︰ 新的全局选项

选项

任务

(+) -v

详细,提高输出的详细程度

(+) -N

试运行,不实际执行命令

(+) -f

强制执行。如果 xl 检测到 xend 也在运行,将会拒绝运行某些命令。此选项会强制执行这些命令,即使这样做不安全

C.3.3 未更改的选项

xlxm 的常用选项列表,及其等效的 libvirt 选项。

表 C.3︰ 通用选项

选项

任务

libvirt 等效选项

destroy DOMAIN

立即终止域。

virsh destroy

domid DOMAIN_NAME

将域名转换为 DOMAIN_ID

virsh domid

domname DOMAIN_ID

DOMAIN_ID 转换为 DOMAIN_NAME

virsh domname

help

显示简短的帮助消息(即常用命令)。

virsh help

pause DOMAIN_ID

暂停域。处于暂停状态的域仍会消耗分配的资源(例如内存),但不符合由 Xen 超级管理程序调度的条件。

virsh suspend

unpause DOMAIN_ID

使域脱离暂停状态。这样以前暂停的域便符合由 Xen 超级管理程序调度的条件。

virsh resume

rename DOMAIN_ID NEW_DOMAIN_NAME

DOMAIN_ID 的域名更改为 NEW_DOMAIN_NAME

  1. tux > virsh dumpxml DOMAINNAME >
              DOMXML
  2. 修改 DOMXML 中的域名

  3. tux > virsh undefine DOMAINNAME
  4. tux > virsh define DOMAINNAME

sysrq DOMAIN <letter>

向域发送魔术系统请求,每种类型的请求由一个不同的字母表示。可以使用此选项向 Linux Guest 发送 SysRq 请求,有关详细信息,请参见 https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html。需要在 Guest 操作系统中安装 PV 驱动程序。

virsh send-keys 只能针对 KVM 发送魔术系统请求

vncviewer OPTIONS DOMAIN

挂接到域的 VNC 服务器,并派生 vncviewer 进程。

virt-viewer DOMAIN_ID

virsh VNCDISPLAY

vcpu-set DOMAIN_ID VCPUS

为相关的域设置虚拟 CPU 数量。与 mem-set 一样,此命令最多只能分配引导时为域配置的最大虚拟 CPU 数量。

virsh setvcpus

vcpu-list DOMAIN_ID

列出特定域的 VCPU 信息。如果未指定域,将提供所有域的 VCPU 信息。

virsh vcpuinfo

vcpu-pin DOMAIN_ID <VCPU|all> <CPUs|all>

固定 VCPU,使其仅在特定的 CPU 上运行。可以使用关键字 all 向域中的所有 VCPU 应用 CPU 列表。

virsh vcpupin

dmesg [-c]

读取 Xen 消息缓冲区,与 Linux 系统上的 dmesg 类似。该缓冲区包含 Xen 引导过程中创建的信息性、警告和错误消息。

top

执行 xentop 命令,该命令提供域的实时监视。xentop 是一个 curses 接口。

virsh nodecpustats

virsh nodememstats

uptime [-s] DOMAIN

列显正在运行的域的当前运行时间。使用 xl 命令时,必须指定 DOMAIN 参数。

debug-keys KEYS

将调试键发送到 Xen。等同于按 Xen conswitch(默认为 Ctrl-A)三次,然后按“keys”。

cpupool-migrate DOMAIN CPU_POOL

DOMAIN_IDDOMAIN 指定的域移到 CPU_POOL 中。

cpupool-destroy CPU_POOL

停用 CPU 池。仅当该 CPU 池中没有任何处于活动状态的域时,才可执行此操作。

block-detach DOMAIN_ID DevId

分离域的虚拟块设备。devid 可以是 Dom0 为设备指定的符号名称或设备数字 ID。需要运行 xl block-list 来确定该编号。

virsh detach-disk

network-attach DOMAIN_ID NETWORK_DEVICE

DOMAIN_ID 所指定的域中创建新网络设备。network_device 描述要挂接的设备,使用与域配置文件中 vif 字符串相同的格式

virsh attach-interface

virsh attach-device

pci-attach DOMAIN <BDF> [Virtual Slot]

将新的直通 PCI 设备热插入到指定的域。BDF 是要直通的物理设备的 PCI 总线/设备/功能。

virsh attach-device

pci-list DOMAIN_ID

列出域的直通 PCI 设备

getenforce

确定 FLASK 安全模块是否已装载并正在强制实施其策略。

setenforce <1|0|Enforcing|Permissive>

启用或禁用强制实施 FLASK 访问控制的功能。默认值为 permissive,您可以在超级管理程序的命令行上使用 flask_enforcing 选项更改默认值。

C.3.4 已去除的选项

不再可用于 XL 工具堆栈的 xm options 列表,以及替代解决方法(如果有)。

C.3.4.1 域管理

已去除的域管理命令及其替代命令列表。

表 C.4︰ 已去除的域管理选项

已去除的域管理选项

选项

任务

等效选项

(-) log

列显 Xend 日志。

可在 /var/log/xend.log 中找到此日志文件

(-) delete

从 Xend 域管理中去除域。list 选项显示域名。

virsh undefine

(-) new

将域添加到 Xend 域管理

virsh define

(-) start

启动使用 xm new 命令添加的 Xend 受管域

virsh start

(-) dryrun

试运行 - 列显 SXP 中生成的配置,但不创建域

xl -N

(-) reset

重设置域

virsh reset

(-) domstate

显示域状态

virsh domstate

(-) serve

通过 stdio 代理 Xend XMLRPC

(-) resume DOMAIN OPTIONS

使域脱离挂起状态,并将其移回到内存中

virsh resume

(-) suspend DOMAIN

在状态文件中挂起域,以便稍后可以使用 resume 子命令将其恢复。与 save 子命令类似,但不能指定状态文件

virsh managedsave

virsh suspend

C.3.4.2 USB 设备

USB options 不可用于 xl/libxl 工具堆栈。virsh 提供 attach-devicedetach-device 选项,但尚不适用于 USB

表 C.5︰ 已去除的 USB 设备管理选项

已去除的 USB 设备管理选项

选项

任务

(-) usb-add

将新 USB 物理总线添加到域

(-) usb-del

从域中删除 USB 物理总线

(-) usb-attach

将新 USB 物理总线挂接到域的虚拟端口

(-) usb-detach

从域的虚拟端口分离 USB 物理总线

(-) usb-list

列出域的所有虚拟端口挂接状态

(-) usb-list-assignable-devices

列出所有可指派的 USB 设备

(-) usb-hc-create

创建域的新虚拟 USB 主机控制器

(-) usb-hc-destroy

销毁域的虚拟 USB 主机控制器

C.3.4.3 CPU 管理

CPU 管理选项发生了变化。我们提供了一些新选项,请参见:第 C.3.5.10 节 “xl cpupool-*

表 C.6︰ 已去除的 CPU 管理选项

已去除的 CPU 管理选项

选项

任务

(-) cpupool-new

将 CPU 池添加到 Xend CPU 池管理

(-) cpupool-start

启动 Xend CPU 池

(-) cpupool-delete

从 Xend 管理中去除 CPU 池

C.3.4.4 其他选项

表 C.7︰ 其他选项

其他已去除的选项

选项

任务

(-) shell

启动交互式外壳

(-) change-vnc-passwd

更改 vnc 口令

(-) vtpm-list

列出虚拟 TPM 设备

(-) block-configure

更改块设备配置

C.3.5 已更改的选项

C.3.5.1 create

xl create CONFIG_FILE OPTIONS VARS

注意
注意:libvirt 等效选项:

virsh create

表 C.8︰ 已更改的 xl create 选项

已更改的 create 选项

选项

任务

(*) -f=FILE、--defconfig=FILE

使用给定的配置文件

表 C.9︰ 已去除的 xm create 选项

已去除的 create 选项

选项

任务

(-) -s--skipdtd

跳过 DTD 检查 - 创建之前跳过 XML 检查

(-) -x--xmldryrun

XML 试运行

(-) -F=FILE、--config=FILE

使用给定的 SXP 格式配置脚本

(-) --path

在路径中搜索配置脚本

(-) --help_config

列显配置脚本的可用配置变量 (var)

(-) -n--dryrun

试运行 — 列显 SXP 中的配置,但不创建域

(-) -c--console_autoconnect

创建域后连接到控制台

(-) -q--quiet

安静模式

(-) -p--paused

创建域后使其保持暂停状态

表 C.10︰ 添加的 xl create 选项

添加的 create 选项

选项

任务

(+) -V--vncviewer

挂接到域的 VNC 服务器,并派生 vncviewer 进程

(+) -A--vncviewer-autopass

通过 stdin 将 VNC 口令传递给 vncviewer

C.3.5.2 console

xl console OPTIONS DOMAIN

注意
注意:libvirt 等效选项

virsh console

表 C.11︰ 添加的 xl console 选项

添加的 console 选项

选项

任务

(+) -t [pv|serial]

连接到 PV 控制台,或连接到模拟的串行控制台。PV 域只能使用 PV 控制台,而 HVM 域可以使用上述两种控制台

C.3.5.3 info

xl info

表 C.12︰ 已去除的 xm info 选项

已去除的 info 选项

选项

任务

(-) -n--numa

Numa 信息

(-) -c--config

列出 Xend 配置参数

C.3.5.4 dump-core

xl dump-core DOMAIN FILENAME

注意
注意:libvirt 等效选项

virsh dump

表 C.13︰ 已去除的 xm dump-core 选项

已去除的 dump-core 选项

选项

任务

(-) -L--live

在不暂停域的情况下转储核心

(-) -C--crash

转储核心后使域崩溃

(-) -R--reset

转储核心后重设置域

C.3.5.5 list

xl list options DOMAIN

注意
注意:libvirt 等效选项

virsh list --all

表 C.14︰ 已去除的 xm list 选项

已去除的 list 选项

选项

任务

(-) -l--long

xm list 的输出以 SXP 格式呈现数据

(-) --state==STATE

输出处于指定状态的 VM 的信息

表 C.15︰ 添加的 xl list 选项

添加的 list 选项

选项

任务

(+) -Z--context

同时列显安全标签

(+) -v--verbose

同时列显域 UUID、关机原因和安全标签

C.3.5.6 mem-*

注意
注意:libvirt 等效选项

virsh setmem

virsh setmaxmem

表 C.16︰ 已更改的 xl mem-* 选项

已更改的 mem-* 选项

选项

任务

mem-max DOMAIN_ID MEM

追加 t(表示 TB)、g(表示 GB)、m(表示 MB)、k(表示 KB)和 b(表示字节)。指定域可以使用的最大内存量。

mem-set DOMAIN_ID MEM

使用气球驱动程序设置域的已用内存

C.3.5.7 migrate

xl migrate OPTIONS DOMAIN HOST

注意
注意:libvirt 等效选项

virsh migrate --live hvm-sles11-qcow2 xen+ CONNECTOR://USER@IP_ADDRESS/

表 C.17︰ 已去除的 xm migrate 选项

已去除的 migrate 选项

选项

任务

(-) -l--live

使用实时迁移。这会在不关闭域的情况下在主机之间迁移域

(-) -r--resource Mbs

设置迁移域时允许达到的最大迁移速度 (Mbs)

(-) -c--change_home_server

更改受管域的宿主服务器

(-) --max_iters=MAX_ITERS

在最终挂起之前的迭代次数(默认值为 30)

(-) --max_factor=MAX_FACTOR

在最终挂起之前要传送的最大内存量(默认值为 3*RAM)。

(-) --min_remaining=MIN_REMAINING

在最终挂起之前的未写入页数(默认值为 50)

(-) --abort_if_busy

中止迁移,而不是执行最终挂起

(-) --log_progress

xend.log 中记录迁移进度

(-) -s--ssl

使用 SSL 连接进行迁移

表 C.18︰ 添加的 xl migrate 选项

添加的 migrate 选项

选项

任务

(+) -s SSHCOMMAND

使用 <sshcommand> 而不是 ssh

(+) -e

在新主机上,不要在后台(在 <host> 上) 等待域死机

(+) -C CONFIG

发送 <config> 而不是创建域时使用的配置文件

C.3.5.8 域管理

xl reboot OPTIONS DOMAIN

注意
注意:libvirt 等效选项

virsh reboot

表 C.19︰ 已去除的 xm reboot 选项

已去除的 reboot 选项

选项

任务

(-) -a--all

重引导所有域

(-) -w--wait

等待重引导完成后再返回。这可能需要一段时间,因为需要干净地关闭域中的所有服务

表 C.20︰ 添加的 xl reboot 选项

添加的 reboot 选项

选项

任务

(+) -F

对于没有 PV 驱动程序的 HVM Guest,回退到 ACPI 重设置事件

xl save OPTIONS DOMAIN CHECK_POINT_FILE CONFIG_FILE

注意
注意:libvirt 等效选项

virsh save

表 C.21︰ 添加的 xl save 选项

添加的 save 选项

选项

任务

(+) -c

创建快照后使域保持运行状态

xl restore OPTIONS CONFIG_FILE CHECK_POINT_FILE

注意
注意:libvirt 等效选项

virsh restore

表 C.22︰ 添加的 xl restore 选项

添加的 restore 选项

选项

任务

(+) -p

恢复域后不将其取消暂停

(+) -e

在新主机上不在后台等待域死机

(+) -d

启用调试消息

(+) -V--vncviewer

挂接到域的 VNC 服务器,并派生 vncviewer 进程

(+) -A--vncviewer-autopass

通过 stdin 将 VNC 口令传递给 vncviewer

xl shutdown OPTIONS DOMAIN

注意
注意:libvirt 等效选项

virsh shutdown

表 C.23︰ 已去除的 xm shutdown 选项

已去除的 shutdown 选项

选项

任务

(-) -w--wait

等待域完成关机后再返回

(-) -a

关闭所有 Guest 域

(-) -R

(-) -H

表 C.24︰ 添加的 xl shutdown 选项

添加的 shutdown 选项

选项

任务

(+) -F

如果 Guest 不支持 PV 关机控制,则回退为发送 ACPI 电源事件

表 C.25︰ 已更改的 xl trigger 选项

已更改的 trigger 选项

选项

任务

trigger DOMAIN <nmi|reset|init|power|sleep|s3resume> VCPU

向域发送触发器。仅适用于 HVM 域

C.3.5.9 xl sched-*

xl sched-credit OPTIONS

注意
注意:libvirt 等效选项

virsh schedinfo

表 C.26︰ 已去除的 xm sched-credit 选项

已去除的 sched-credit 选项

选项

任务

-d DOMAIN--domain=DOMAIN

-w WEIGHT--weight=WEIGHT

权重为 512 的域将获得的 CPU 是所争用的主机上权重为 256 的域的两倍。合法权重范围为 1 到 65535,默认值为 256

-c CAP--cap=CAP

CAP 可选择性修复域能够消耗的最大 CPU 数量

表 C.27︰ 添加的 xl sched-credit 选项

添加的 sched-credit 选项

选项

任务

(+) -p CPUPOOL--cpupool=CPUPOOL

将输出内容限制为指定 CPU 池中的域

(+) -s--schedparam

指定此选项可列出或设置池范围的调度程序参数

(+) -t TSLICE--tslice_ms=TSLICE

时间片 (TSLICE) 告知调度程序要允许 VM 运行多长时间后再开始抢占模式

(+) -r RLIMIT--ratelimit_us=RLIMIT

Ratelimit 会尝试限制每秒调度次数

xl sched-credit2 OPTIONS

注意
注意:libvirt 状态

virsh 仅支持 credit 调度程序,不支持 credit2 调度程序

表 C.28︰ 已去除的 xm sched-credit2 选项

已去除的 sched-credit2 选项

选项

任务

-d DOMAIN--domain=DOMAIN

-w WEIGHT--weight=WEIGHT

合法权重范围为 1 到 65535,默认值为 256

表 C.29︰ 添加的 xl sched-credit2 选项

添加的 sched-credit2 选项

选项

任务

(+) -p CPUPOOL--cpupool=CPUPOOL

将输出内容限制为指定 CPU 池中的域

xl sched-sedf OPTIONS

表 C.30︰ 已去除的 xm sched-sedf 选项

已去除的 sched-sedf 选项

选项

任务

-p PERIOD--period=PERIOD

常规 EDF 调度用法,以毫秒为单位

-s SLICE--slice=SLICE

常规 EDF 调度用法,以毫秒为单位

-l LATENCY--latency=LATENCY

域执行大量 I/O 时延长的时段

-e EXTRA--extra=EXTRA

允许域额外运行一段时间的标志(0 或 1)

-w WEIGHT--weight=WEIGHT

另一种设置 CPU 片的方式

表 C.31︰ 添加的 xl sched-sedf 选项

添加的 sched-sedf 选项

选项

任务

(+) -c CPUPOOL--cpupool=CPUPOOL

将输出内容限制为指定 CPU 池中的域

(+) -d DOMAIN--domain=DOMAIN

C.3.5.10 xl cpupool-*

xl cpupool-cpu-remove CPU_POOL <CPU nr>|node:<node nr>

xl cpupool-list [-c|--cpus] CPU_POOL

表 C.32︰ 已去除的 xm cpupool-list 选项

已去除的 cpupool-* 选项

选项

任务

(-) -l--long

SXP 格式输出所有 CPU 池细节

xl cpupool-cpu-add CPU_POOL cpu-nr|node:node-nr

xl cpupool-create OPTIONS CONFIG_FILE [Variable=Value ...]

表 C.33︰ 已去除的 xm cpupool-create 选项

已去除的 cpupool-create 选项

选项

任务

(-) -f FILE、--defconfig=FILE

使用给定的 Python 配置脚本。处理参数后会装载该配置文件

(-) -n--dryrun

试运行 - 列显 SXP 中生成的配置,但不创建 CPU 池

(-) --help_config

列显配置脚本的可用配置变量 (var)

(-) --path=PATH

在路径中搜索配置脚本。PATH 的值是冒号分隔的目录列表

(-) -F=FILE、--config=FILE

要使用的 CPU 池配置 (SXP)

C.3.5.11 PCI 和块设备

xl pci-detach [-f] DOMAIN_ID <BDF>

注意
注意:libvirt 等效选项

virsh detach-device

表 C.34︰ 添加的 xl pci-detach 选项

添加的 pci-detach 选项

选项

任务

(+) -f

如果指定了 -f,即使在没有 Guest 协作的情况下,xl 也会强制去除设备

表 C.35︰ 已去除的 xm block-list 选项

已去除的 block-list 选项

选项

任务

(-) -l--long

列出域的虚拟块设备

表 C.36︰ 其他选项

选项

libvirt 等效选项

xl block-attach DOMAIN <disk-spec-component(s)>

virsh attach-disk/attach-device

xl block-list DOMAIN_ID

virsh domblklist

C.3.5.12 网络

表 C.37︰ 网络选项

选项

libvirt 等效选项

xl network-list DOMAIN(s)

virsh domiflist

xl network-detach DOMAIN_ID devid|mac

virsh detach-interface

xl network-attach DOMAIN(s)

virsh attach-interface/attach-device

表 C.38︰ 已去除的 xl network-attach 选项

已去除的选项

选项

任务

(-) -l--long

C.3.6 新选项

表 C.39︰ 新选项

选项

任务

config-update DOMAIN CONFIG_FILE OPTIONS VARS

更新为运行中的域保存的配置。此更新不会立即生效,而是在 Guest 下次重启动时应用。此命令可用于确保在 Guest 重启动时保留对 Guest 进行的运行时修改

migrate-receive

sharing DOMAIN

列出共享页的计数。专门列出指定的域的该信息。如果未指定域,则列出所有域的该信息

vm-list

列显有关 Guest 的信息。此列表不包括有关 Dom0 和存根域等服务或辅助域的信息

cpupool-rename CPU_POOL NEWNAME

将 CPU 池重命名为 newname

cpupool-numa-split

将计算机分割为在每个 numa 节点一个 CPU 池

cd-insert DOMAIN <VirtualDevice> <type:path>

将 CD-ROM 插入 Guest 域的现有虚拟 CD 驱动器。该虚拟驱动器必须已存在,但当前可以是空的

cd-eject DOMAIN <VirtualDevice>

从 Guest 的虚拟 CD 驱动器中弹出 CD-ROM。仅适用于 HVM 域

pci-assignable-list

列出所有可指派的 PCI 设备。它们是系统中配置为可直通且已绑定到 Dom0 中的适当 PCI 后端驱动程序(而不是真实驱动程序)的设备

pci-assignable-add <BDF>

使 PCI 总线/设备/功能 BDF 中的设备可指派到 Guest。这会将该设备绑定到 pciback 驱动程序

pci-assignable-remove OPTIONS <BDF>

使 PCI 总线/设备/功能 BDF 中的设备可指派到 Guest。这至少会从 pciback 取消绑定该设备

loadpolicy POLICY_FILE

从给定的策略文件装载 FLASK 策略。初始策略将以多重引导模块的形式提供给超级管理程序;此命令允许对策略进行运行时更新。装载新安全策略会重设置对设备标签进行的运行时更改

C.5 xm 兼容的格式保存 Xen Guest 配置

尽管 xl是当前用于管理 Xen Guest 的工具集(此外还有首选的 libvirt),但您可能需要将 Guest 配置导出为过去使用的 xm 格式。要实现此目的,请执行以下步骤:

  1. 首先将 Guest 配置导出到某个文件中:

    tux > virsh dumpxml guest_id > guest_cfg.xml
  2. 然后将配置转换为 xm 格式:

    tux > virsh domxml-to-native xen-xm guest_cfg.xml > guest_xm_cfg