10.3. 在 Windows 虚拟客户机中运行 QEMU 客户机代理
Red Hat Enterprise Linux 主机机器可以通过在客户机中运行 QEMU 客户机代理向 Windows 客户机发出命令。它支持运行 Red Hat Enterprise Linux 6.5 及更新版本的主机,并在以下 Windows 客户机操作系统中受支持:
- Windows XP Service Pack 3(不支持VSS)
- Windows Server 2003 R2 - x86 和 AMD64(不支持VSS)
- Windows Server 2008
- Windows Server 2008 R2
- Windows 7 - x86 和 AMD64
- Windows Server 2012
- Windows Server 2012 R2
- Windows 8 - x86 和 AMD64
- Windows 8.1 - x86 和 AMD64
注意
Windows 客户机虚拟机需要 QEMU 客户机代理软件包用于 Windows,qemu-guest-agent-win。对于在 Red Hat Enterprise Linux 上运行的 Windows 客户机虚拟机,VSS(Volume Shadow Copy Service)需要此代理。有关更多信息,请参见 http://msdn.microsoft.com/en-us/library/windows/desktop/bb968832%28v=vs.85%29.aspx。
过程 10.2. 在 Windows 客户端中配置 QEMU 客户机代理
针对在 Red Hat Enterprise Linux 主机机器中运行的 Windows 客户机,请按照以下步骤操作。
准备 Red Hat Enterprise Linux 主机机器
确保在 Red Hat Enterprise Linux 主机物理机器上安装了以下软件包:- virtio-win,位于
/usr/share/virtio-win/
要在 Windows 客户端中复制驱动程序,请使用以下命令为 qxl 驱动程序生成*.iso
文件:# mkisofs -o /var/lib/libvirt/images/virtiowin.iso /usr/share/virtio-win/drivers
准备 Windows 客户机
通过将*.iso
挂载到 Windows guest 以更新驱动程序,在客户机中安装 virtio-serial driver。启动 guest,然后将驱动程序 .iso 文件连接到 guest(使用名为 hdb的磁盘):# virsh attach-disk guest /var/lib/libvirt/images/virtiowin.iso hdb
要使用 Windows来安装驱动程序,请导航到以下菜单:- 要安装 virtio-win 驱动程序 - Select> > 。
更新 Windows 客户机 XML 配置文件
Windows 客户机的客户机 XML 文件位于 Red Hat Enterprise Linux 主机中。要获取这个文件的访问权限,您需要 Windows 虚拟客户机名称。在主机机器上使用 # virsh list 命令,列出它可识别的客户机。在本例中,guest 的名称是 win7x86。使用 # virsh edit win7x86 命令在 XML 文件中添加以下元素并保存更改。请注意,源套接字名称在主机中必须是唯一的,本例中为 win7x86.agent :图 10.2. 编辑 Windows 客户机 XML 以配置 QEMU 客户机代理
... <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/win7x86.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <channel type='spicevmc'> <target type='virtio' name='com.redhat.spice.0'/> <address type='virtio-serial' controller='0' bus='0' port='2'/> </channel> ...
重启 Windows 客户机
重启 Windows 客户机以应用更改:# virsh reboot win7x86
在 Windows 客户端中准备 QEMU 客户机代理
在 Windows 客户端中准备客户机代理:安装最新的 virtio-win 软件包
在 Red Hat Enterprise Linux 主机物理机器终端窗口中运行以下命令,以查找要安装的文件。请注意,下面显示的 文件可能与系统找到的文件完全相同,但应为最新的官方版本。# rpm -qa|grep virtio-win virtio-win-1.6.8-5.el6.noarch # rpm -iv virtio-win-1.6.8-5.el6.noarch
确认安装已完成
在 virtio-win 软件包完成安装后,检查/usr/share/virtio-win/guest-agent/
文件夹,并找到名为 qemu-ga-x64.msi 的文件或 qemu-ga-x86.msi,如下所示:# ls -l /usr/share/virtio-win/guest-agent/ total 1544 -rw-r--r--. 1 root root 856064 Oct 23 04:58 qemu-ga-x64.msi -rw-r--r--. 1 root root 724992 Oct 23 04:58 qemu-ga-x86.msi
安装 .msi 文件
从 Windows 客户机(例如,win7x86)通过双击 文件来安装 qemu-ga-x64.msi 或 qemu-ga-x86.msi。安装后,它将在 System Manager 中的 Windows guest 中显示为 qemu-ga 服务。此管理器可用于监控服务的状态。
10.3.1. 在 Windows Guests 上使用带有 QEMU 客户机代理的 libvirt 命令
QEMU 客户机代理可在 Windows 客户机中使用以下 virsh 命令:
- virsh shutdown --mode=agent - 此关闭方法比 virsh shutdown --mode=acpi 更为可靠,因为与 QEMU 客户机代理一起使用的 virsh shutdown 保证可保证以干净状态关闭合作客户机。如果没有代理,libvirt 需要依赖注入 ACPI 关闭事件,但有些客户机会忽略该事件,因此不会关闭。可用于 virsh reboot 的相同语法。
- virsh snapshot-create --quiesce - 允许 guest 在创建快照之前将其 I/O 刷新到稳定状态,这样就允许在不执行 fsck 或丢失部分数据库交易的情况下使用快照。客户机代理通过提供客户机协作,实现高水平的磁盘内容稳定性。
- virsh dompmsuspend - 使用客户机操作系统的电源管理功能安全暂停正在运行的 guest。