跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 使用 Xen 管理虚拟机 / 管理虚拟化环境
适用范围 SUSE Linux Enterprise Server 15 SP2

23 管理虚拟化环境

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

23.1 XL — Xen 管理工具

xl 程序是用于管理 Xen Guest 域的工具。它包含在 xen-tools 软件包中。xl 基于 LibXenlight 库,可用于执行一般的域管理工作,例如创建、监听、暂停或关闭域。通常只有 root 用户才能执行 xl 命令。

注意
注意

xl 只能管理域配置文件指定的运行中 Guest 域。如果某个 Guest 域未运行,则您无法使用 xl 来管理它。

提示
提示

为了允许用户继续像使用已过时的 xm 命令那样来使用受管 Guest 域,目前我们建议使用 libvirtvirshvirt-manager 工具。有关更多信息,请参见第 II 部分 “使用 libvirt 管理虚拟机”

xl 操作依赖于 xenstoredxenconsoled 服务。请确保在引导时启动

tux > systemctl start xencommons

以初始化 xl 所需的所有守护程序。

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

在最常用的网络配置中,需在主机域中设置一个名为 xenbr0 的网桥,以便为 Guest 域提供正常工作的网络。

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

xl <subcommand> [options] domain_id

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

如需可用 xl 子命令的完整列表,请运行 xl help。对于每个命令,您都可以使用附加参数 --help 获取更详细的帮助。xl 的手册页中提供了有关相应子命令的详细信息。

例如,xl list --help 会显示 list 命令可用的所有选项。举例来说,xl list 命令可显示所有虚拟机的状态。

tux > 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(受阻),其中“受阻”的意思是该计算机正在等待 IO,或者由于无需执行任何操作而处于休眠状态。有关状态标志的更多细节,请参见 man 1 xl

其他有用的 xl 命令包括:

  • xl create,可基于给定的配置文件创建虚拟机。

  • xl reboot,可重引导虚拟机。

  • xl destroy,可立即终止虚拟机。

  • xl block-list,可显示挂接到虚拟机的所有虚拟块设备。

23.1.1 Guest 域配置文件

使用 xl 操作域时,每个域都需有相应的域配置文件。用于储存此类配置文件的默认目录为 /etc/xen/

域配置文件是一个纯文本文件。它包含多个“=”对。有些键是必需的,有些键是通用的且适用于任何 Guest,还有些键只适用于特定的 Guest 类型(半虚拟化或全虚拟化)。值可以是括在单引号或双引号中的字符串("string" 形式)、数字、布尔值,或者括在方括号中的多个值的列表([ value1, value2, ... ] 形式)。

例 23.1︰ SLED 12 的 Guest 域配置文件:/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

23.2 自动启动 Guest 域

要使 Guest 域在主机系统引导后自动启动,请执行以下步骤:

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

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

    tux > sudo ln -s /etc/xen/domain_name.cfg /etc/xen/auto/domain_name.cfg
  3. 系统下次引导时,domain_name.cfg 中定义的 Guest 域将会启动。

23.3 事件操作

在 Guest 域配置文件中,您可以定义在发生一组预定义的事件时要执行的操作。例如,要告知域在其关机后自行重启动,请在其配置文件中包含下面一行:

on_poweroff="restart"

下面是 Guest 域的预定义事件列表:

事件列表
on_poweroff

指定在域自行关机后应执行什么操作。

on_reboot

当域关机并提供了请求重引导的原因代码时要执行的操作。

on_watchdog

当域由于 Xen 看门狗超时而关机时要执行的操作。

on_crash

当域崩溃时要执行的操作。

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

相关操作列表
destroy

销毁域。

restart

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

rename-restart

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

preserve

保留域。可以检查该域,以后再使用 xl destroy 将它销毁。

coredump-destroy

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

coredump-restart

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

23.4 时戳计数器

您可以为 Guest 域配置文件中的每个域指定时戳计数器 (TSC)(有关详细信息,请参见第 23.1.1 节 “Guest 域配置文件”)。

使用 tsc_mode 设置可以指定是要本机执行 rdtsc 指令(速度较快,但 TSC 敏感型应用程序有时无法正常运行),还是模拟这些指令(始终可正常运行,但性能可能受到影响)。

tsc_mode=0(默认设置)

使用此设置可确保正常运行,同时提供可以实现的最佳性能 — 有关详细信息,请参见 https://xenbits.xen.org/docs/4.3-testing/misc/tscmode.txt

tsc_mode=1(始终模拟)

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

tsc_mode=2(永不模拟)

如果此 VM 中运行的所有应用程序都能够灵活适应 TSC 并且需要最高性能,请使用此设置。

tsc_mode=3 (PVRDTSCP)

可以半虚拟化(修改)高 TSC 频率应用程序,以同时兼顾正常运行和最高性能 — 任何未经修改的应用程序都必须能够灵活适应 TSC。

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

23.5 保存虚拟机

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

  2. 在主机环境中输入

    tux > sudo xl save ID STATE-FILE

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

23.6 恢复虚拟机

过程 23.2︰ 恢复虚拟机的当前状态
  1. 确保要恢复的虚拟机自您运行保存操作后始终未启动。

  2. 在主机环境中输入

    tux > sudo xl restore STATE-FILE

    其中,STATE-FILE 是先前保存的内存状态文件。域在恢复后默认将处于运行状态。要在恢复后暂停域,请使用 -p

23.7 虚拟机状态

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

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

  • b - 受阻 - 虚拟机的处理器未运行,且无法运行。虚拟机正在等待 I/O 或已停止工作。

  • p - 已暂停 - 虚拟机已暂停。虚拟机不会与超级管理程序交互,但仍保有为其分配的资源,例如内存。

  • s - 已关闭 - Guest 操作系统正在关闭、已重引导或已挂起,并且虚拟机正在停止。

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

  • d - 即将死机 - 虚拟机正在关机或崩溃。