跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 独立于超级管理程序的功能 / QEMU Guest 代理
适用范围 SUSE Linux Enterprise Server 15 SP6

20 QEMU Guest 代理

QEMU Guest 代理 (GA) 在 VM Guest 中运行,使 VM 主机服务器能够通过 libvirt 在 Guest 操作系统中运行命令。它支持许多功能 — 例如,获取有关 Guest 文件系统的细节、冻结和解冻文件系统,或者挂起或重引导 Guest。

QEMU GA 包含在 qemu-guest-agent 软件包中,默认已在 KVM 虚拟机上安装、配置并激活。

QEMU GA 安装在 Xen 虚拟机中,但默认未激活。尽管可以将 QEMU GA 与 Xen 虚拟机配合使用,但无法使用如下所述的适用于 KVM 虚拟机的 libvirt 命令来实现集成。要将 QEMU GA 与 Xen 配合使用,必须将一个通道设备添加到 VM Guest 配置。该通道设备包含 VM 主机服务器上用来与 QEMU GA 通讯的的 Unix 域套接字路径。

<channel type='unix'>
  <source mode='bind' path='/example/path'/>
  <target type='xen' name='org.qemu.guest_agent.0'/>
</channel>

20.1 运行 QEMU GA 命令

QEMU GA 包含的许多内置命令没有直接对应的 libvirt 命令。请参见第 20.4 节 “更多信息”查看完整列表。您可以使用 libvirt 的通用命令 qemu-agent-command 来运行所有 QEMU GA 命令:

virsh qemu-agent-command DOMAIN_NAME '{"execute":"QEMU_GA_COMMAND"}'

例如:

> sudo virsh qemu-agent-command sle15sp2 '{"execute":"guest-info"}' --pretty
{
"return": {
  "version": "4.2.0",
  "supported_commands": [
    {
      "enabled": true,
      "name": "guest-get-osinfo",
      "success-response": true
    },
[...]

20.2 需要 QEMU GA 的 virsh 命令

有多个 virsh 命令需要 QEMU GA 才能实现其功能。例如,以下命令:

virsh guestinfo

从 Guest 的角度列显有关该 Guest 的信息。

virsh guestvcpus

从 Guest 的角度查询或更改虚拟 CPU 的状态。

virsh set-user-password

为 Guest 中的用户帐户设置口令。

virsh domfsinfo

显示正在运行的域中挂载的文件系统列表。

virsh dompmsuspend

挂起正在运行的 Guest。

20.3 增强 libvirt 命令

如果在 Guest 中启用了 QEMU GA,多个 virsh 子命令在以代理模式运行时,其功能会得到增强。以下列表仅包含其中某些子命令的示例。有关完整列表,请参见 virsh 手册页并搜索 agent 字符串。

virsh shutdown --mode agentvirsh reboot --mode agent

这种关机或重引导方法类似于 ACPI 方法,可让 Guest 为下次运行保持干净状态。

virsh domfsfreezevirsh domfsthaw

指示 Guest 将其文件系统保持静止状态 — 刷新缓存中的所有 I/O 操作并将卷保持一致状态,以便在重新挂载卷时无需进行任何检查。

virsh setvcpus --guest

更改分配给 Guest 的 CPU 数量。

virsh domifaddr --source agent

在 QEMU GA 中查询 Guest 的 IP 地址。

virsh vcpucount --guest

从 Guest 的角度列显有关虚拟 CPU 计数的信息。

20.4 更多信息