跳转到内容跳转到页面导航:上一页 [访问键 p]/下一页 [访问键 n]
适用于 openSUSE Leap 15.5

24 管理虚拟化环境 编辑源文件

除了使用推荐的 libvirt 库(第 II 部分,“使用 libvirt 管理虚拟机”)之外,您还可以使用命令行中的 xl 工具来管理 Xen 客户域。

24.1 XL—Xen 管理工具 编辑源文件

xl 程序是一个用于管理 Xen 客户域的工具。它是 xen-tools 包的一部分。xl 基于 LibXenlight 库,可用于常规域管理,例如域创建、列出、暂停或关闭。您需要是 root 用户才能执行 xl 命令。

Note
注意

xl 只能管理由其配置文件指定的正在运行的客户域。如果客户域未运行,则无法使用 xl 管理它。

Tip
提示

为了允许用户继续以过时的 xm 命令允许的方式管理客户域,我们现在建议使用 libvirtvirshvirt-manager 工具。有关更多信息,请参阅 第 II 部分,“使用 libvirt 管理虚拟机”

xl 操作依赖于 xenstoredxenconsoled 服务。请确保您启动

> systemctl start xencommons

在启动时初始化 xl 所需的所有守护程序。

Tip
提示:在主机域中设置 xenbr0 网络桥接

在最常见的网络配置中,您需要在主机域中设置一个名为 xenbr0 的桥接,以便客户域具有可用的网络。

每个 xl 命令的基本结构是

xl <subcommand> [options] domain_id

其中 <subcommand> 是要运行的 xl 命令,domain_id 是分配给域的 ID 号或虚拟机的名称,而 OPTIONS 表示特定于子命令的选项。

要获取可用的 xl 子命令的完整列表,请运行 xl help。对于每个命令,可以使用额外的参数 --help 获取更详细的帮助信息。有关各个子命令的更多信息,请参阅 xl 的手册页。

例如,xl list --help 显示可用于 list 命令的所有选项。作为一个例子,xl list 命令显示所有虚拟机的状态。

> sudo xl list
Name                                 ID    Mem VCPUs        State   Time(s)
Domain-0                              0    457     2       r-----   2712.9
sles12                                7    512     1       -b----     16.3
opensuse                                   512     1                  12.9

State 信息指示机器是否正在运行以及其所处的状态。最常见的标志是 r(正在运行)和 b(已阻止),其中阻止表示它正在等待 I/O,或者由于没有要做的事情而处于睡眠状态。有关状态标志的更多详细信息,请参阅 man 1 xl

其他有用的 xl 命令包括

  • xl create 从给定的配置文件创建虚拟机。

  • xl reboot 重新启动虚拟机。

  • xl destroy 立即终止虚拟机。

  • xl block-list 显示附加到虚拟机的所有虚拟块设备。

24.1.1 客户域配置文件 编辑源文件

在操作域时,xl 需要每个域的域配置文件。存储这些配置文件的默认目录是 /etc/xen/

域配置文件是一个纯文本文件。它由几个 KEY=VALUE 对组成。某些键是必需的。常规键适用于任何客户,而特定键仅适用于特定的客户类型(para 或完全虚拟化)。值可以是 "string"(用单引号或双引号括起来)、数字、布尔值或用方括号括起来的多个值列表 [ value1, value2, ... ]

示例 24.1:SLED 12 的客户域配置文件:/etc/xen/sled12.cfg
name= "sled12"
builder = "hvm"
vncviewer = 1
memory = 512
disk = [ '/var/lib/xen/images/sled12.raw,,hda', '/dev/cdrom,,hdc,cdrom' ]
vif = [ 'mac=00:16:3e:5f:48:e4,model=rtl8139,bridge=br0' ]
boot = "n"

要启动此类域,请运行 xl create /etc/xen/sled12.cfg

24.2 客户域的自动启动 编辑源文件

要使客户域在主机系统启动后自动启动,请执行以下步骤

  1. 如果不存在,请创建域配置文件并将其保存在 /etc/xen/ 目录中,例如 /etc/xen/domain_name.cfg

  2. auto/ 子目录中创建域配置文件的符号链接。

    > sudo ln -s /etc/xen/domain_name.cfg /etc/xen/auto/domain_name.cfg
  3. 在下次系统启动时,在 domain_name.cfg 中定义的客户域将启动。

24.3 事件操作 编辑源文件

在客户域配置文件中,您可以定义要在预定义的事件集上执行的操作。例如,要告诉域在关电后自行重新启动,请在配置文件中包含以下行

on_poweroff="restart"

客户域的预定义事件列表如下

事件列表
on_poweroff

指定如果域自行关闭应执行什么操作。

on_reboot

如果域使用请求重新启动的代码关闭,则要执行的操作。

on_watchdog

如果域因 Xen 看门狗超时而关闭,则要执行的操作。

on_crash

如果域崩溃,则要执行的操作。

对于这些事件,您可以定义以下操作之一

相关操作列表
destroy

销毁域。

重新启动

销毁域并立即使用相同的配置创建新的域。

rename-restart

重命名已终止的域,然后立即使用与原始域相同的配置创建新的域。

preserve

保留域。可以对其进行检查,稍后使用 xl destroy 销毁它。

coredump-destroy

将域的核心转储写入 /var/xen/dump/NAME,然后销毁域。

coredump-restart

将域的核心转储写入 /var/xen/dump/NAME,然后重新启动域。

24.4 时间戳计数器 编辑源文件

时间戳计数器 (TSC) 可以为每个域在客户域配置文件中指定(有关更多信息,请参阅 第 24.1.1 节,“客户域配置文件”)。

使用 tsc_mode 设置,您可以指定是否本机(快速,但对 TSC 敏感的应用程序有时可能运行不正确)或模拟(始终正确运行,但性能可能会下降)执行 rdtsc 指令。

tsc_mode=0(默认值)

使用此设置以确保正确性,同时提供最佳性能—有关更多信息,请参阅 https://xenbits.xen.org/docs/4.3-testing/misc/tscmode.txt

tsc_mode=1(始终模拟)

当正在运行对 TSC 敏感的应用程序并且已知最坏情况的性能下降是可以接受时,请使用此设置。

tsc_mode=2(从不模拟)

当正在运行的应用程序都是对 TSC 具有弹性的应用程序并且需要最高性能时,请使用此设置。

tsc_mode=3(PVRDTSCP)

高 TSC 频率的应用程序可以被修改(paravirtualized)以同时获得正确性和最高性能—任何未修改的应用程序都必须对 TSC 具有弹性。

有关背景信息,请参阅 https://xenbits.xen.org/docs/4.3-testing/misc/tscmode.txt

24.5 保存虚拟机 编辑源文件

过程 24.1:保存虚拟机的当前状态
  1. 确保要保存的虚拟机正在运行。

  2. 在主机环境中,输入

    > sudo xl save ID STATE-FILE

    其中 ID 是要保存的虚拟机的 ID,STATE-FILE 是您为内存状态文件指定的名称。默认情况下,域在创建其快照后不再运行。使用 -c 即使在创建快照后也使其保持运行。

24.6 恢复虚拟机 编辑源文件

过程 24.2:恢复虚拟机的当前状态
  1. 确保要恢复的虚拟机自您运行保存操作以来未启动。

  2. 在主机环境中,输入

    > sudo xl restore STATE-FILE

    其中 STATE-FILE 是之前保存的内存状态文件。默认情况下,域在恢复后正在运行。要暂停它在恢复之后,请使用 -p

24.7 虚拟机状态 编辑源文件

可以通过查看 xl list 命令的结果来显示虚拟机的状态,该命令使用单个字符缩写状态。

  • r - 正在运行 - 虚拟机当前正在运行并消耗分配的资源。

  • b - 已阻止 - 虚拟机的处理器未运行且无法运行。它要么正在等待 I/O,要么因为没有要做的事情而停止工作。

  • p - 已暂停 - 虚拟机已暂停。它不会与超visor 交互,但仍保留其分配的资源,例如内存。

  • s - 关闭 - 客户操作系统正在关闭、重新启动或暂停过程中,并且虚拟机正在停止。

  • c - 崩溃 - 虚拟机已崩溃且未运行。

  • d - 正在死亡 - 虚拟机正在关闭或崩溃。

打印此页面