2.4. 在虚拟机上启用 QEMU 客户机代理功能
要在 RHEL 9 系统上托管的虚拟机(VM)上使用某些功能,您必须首先配置虚拟机,以使用 QEMU 客户机代理(GA)。
有关这些功能的完整列表,请参阅 需要 QEMU 客户机代理的虚拟化功能。
在虚拟机上配置 QEMU GA 所需的具体步骤因虚拟机使用的客户机操作系统而异:
- 对于 Linux 虚拟机,请参阅 在 Linux 客户机上启用 QEMU 客户机代理。
- 对于 Windows 虚拟机,请参阅 在 Windows 客户机上启用 QEMU 客户机代理。
2.4.1. 在 Linux 客户机上启用 QEMU 客户机代理
要允许 RHEL 主机在 Linux 虚拟机(VM)上执行 某些操作的子集,您必须启用 QEMU 客户机代理(GA)。
您可以在运行和关闭的虚拟机上启用 QEMU GA。
流程
为 QEMU GA 创建一个 XML 配置文件,例如
qemuga.xml
:# touch qemuga.xml
在文件中添加以下行:
<channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
使用 XML 文件将 QEMU GA 添加导虚拟机的配置中。
如果虚拟机正在运行,请使用以下命令:
# virsh attach-device <vm-name> qemuga.xml --live --config
如果虚拟机已关闭,请使用以下命令:
# virsh attach-device <vm-name> qemuga.xml --config
在 Linux 客户机操作系统中,安装 QEMU GA:
# dnf install qemu-guest-agent
在客户机上启动 QEMU GA 服务:
# systemctl start qemu-guest-agent
验证
要确保 QEMU GA 已启用并在 Linux 虚拟机上运行,请执行以下操作之一:
-
在客户机操作系统中,请使用
systemctl status qemu-guest-agent | grep Loaded
命令。如果输出包括enabled
,则 QEMU GA 在虚拟机上处于活跃状态。 -
在主机上使用
virsh domfsinfo <vm-name>
命令。如果其显示任何输出,则 QEMU GA 在指定虚拟机上处于活跃状态。
其他资源
2.4.2. 在 Windows 客户机上启用 QEMU 客户机代理
要允许 RHEL 主机在 Windows 虚拟机(VM)上执行 某些操作的子集,您必须启用 QEMU 客户机代理(GA)。要做到这一点,将包含 QEMU 客户机代理安装程序的存储设备添加到现有虚拟机上或在创建新虚拟机时,在 Windows 客户机操作系统上安装驱动程序。
要使用图形界面安装客户机代理(GA),请参阅以下流程 。要在命令行界面中安装 GA,请使用 Microsoft Windows 安装程序(MSI)。
先决条件
- 带有客户机代理的安装介质被附加到虚拟机。有关准备该介质的步骤,请参考在主机中准备 virtio 驱动程序安装介质。
流程
-
在 Windows 客户机操作系统中,打开
File Explorer
应用程序。 -
单击
This PC
。 -
在
Devices and drives
窗格中,打开virtio-win
介质。 -
打开
guest-agent
文件夹。 根据虚拟机上安装的操作系统,运行以下安装程序之一:
-
如果使用 32 位操作系统,请运行
qemu-ga-i386.msi
安装程序。 -
如果使用 64 位操作系统,请运行
qemu-ga-x86_64.msi
安装程序。
-
如果使用 32 位操作系统,请运行
-
可选:如果要使用半虚拟化的串行驱动程序(
virtio-serial
)作为主机和 Windows 客户机之间的通信接口,请验证 Windows 客户机上是否安装了virtio-serial
驱动程序。有关安装virtio
驱动程序的更多信息,请参阅: 在 Windows 客户机上安装 virtio 驱动程序。
验证
在 Windows 虚拟机上,进入到 Services 窗口。
computer Management > Services
-
确保
QEMU 客户机代理
服务的状态为Running
。
其它资源
2.4.3. 需要 QEMU 客户机代理的虚拟化功能
如果您在虚拟机(VM)上启用了 QEMU 客户机代理(GA),您可以在主机上使用以下命令来管理虚拟机:
virsh shutdown --mode=agent
-
这个关闭方法比
virsh shutdown --mode=acpi
更可靠,因为与 QEMU GA 一起使用的virsh shutdown
可以保证在干净的状态下关闭合作客户机。
virsh domfsfreeze
和virsh domfsthaw
- 冻结处于隔离状态的客户机文件系统。
virsh domfstrim
指示客户机修剪其文件系统,这有助于减少迁移期间需要传输的数据。
重要如果要使用这个命令管理 Linux 虚拟机,您还必须在客户机操作系统中设置以下 SELinux 布尔值:
# setsebool virt_qemu_ga_read_nonsecurity_files on
virsh domtime
- 查询或设置客户机时钟。
virsh setvcpus --guest
- 指示客户机将 CPU 离线,这在无法热拔 CPU 时非常有用。
virsh domifaddr --source agent
- 使用 QEMU GA 查询客户机操作系统的 IP 地址。例如,当客户机接口直接连接到主机接口时,这非常有用。
virsh domfsinfo
- 显示正在运行的客户机中挂载的文件系统的列表。
virsh set-user-password
- 在客户机中设置给定用户帐户的密码。
virsh set-user-sshkeys
客户机中编辑给定用户的授权的 SSH 密钥文件。
重要如果要使用这个命令管理 Linux 虚拟机,您还必须在客户机操作系统中设置以下 SELinux 布尔值:
# setsebool virt_qemu_ga_manage_ssh on