2.4. 在虚拟机上启用 QEMU 客户机代理功能
要在 RHEL 10 系统上托管的虚拟机(VM)上使用某些功能,您必须首先配置虚拟机,以使用 QEMU 客户机代理(GA)。
有关这些功能的完整列表,请参阅 需要 QEMU 客户机代理的虚拟化功能。
2.4.1. 在 Linux 客户机上启用 QEMU 客户机代理
要允许 RHEL 主机在 Linux 虚拟机(VM)上执行 操作的某些子集,您必须启用 QEMU 客户机代理(GA)。
您可以在运行和关闭的虚拟机上启用 QEMU GA。
流程
- 为 QEMU GA 创建一个 XML 配置文件,例如 - qemuga.xml:- touch qemuga.xml - # touch qemuga.xml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在文件中添加以下行: - <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel> - <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/f16x86_64.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 XML 文件将 QEMU GA 添加导虚拟机的配置中。 - 如果虚拟机正在运行,请使用以下命令: - virsh attach-device <vm-name> qemuga.xml --live --config - # virsh attach-device <vm-name> qemuga.xml --live --config- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果虚拟机已关闭,请使用以下命令: - virsh attach-device <vm-name> qemuga.xml --config - # virsh attach-device <vm-name> qemuga.xml --config- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 在 Linux 客户机操作系统中,安装 QEMU GA: - dnf install qemu-guest-agent - # dnf install qemu-guest-agent- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在客户机上启动 QEMU GA 服务: - systemctl start qemu-guest-agent - # systemctl start qemu-guest-agent- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
要确保 QEMU GA 已启用并在 Linux 虚拟机上运行,请执行以下操作之一:
- 
							在客户机操作系统中,请使用 systemctl status qemu-guest-agent | grep Loaded命令。如果输出包括enabled,则 QEMU GA 在虚拟机上处于活跃状态。
- 
							在主机上使用 virsh domfsinfo <vm-name>命令。如果其显示任何输出,则 QEMU GA 在指定虚拟机上处于活跃状态。
2.4.2. 需要 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 - # setsebool virt_qemu_ga_read_nonsecurity_files on- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 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 - # setsebool virt_qemu_ga_manage_ssh on- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow