Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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 客户机,请按照以下步骤操作。
  1. 准备 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
  2. 准备 Windows 客户机

    通过将 *.iso 挂载到 Windows guest 以更新驱动程序,在客户机中安装 virtio-serial driver。启动 guest,然后将驱动程序 .iso 文件连接到 guest(使用名为 hdb的磁盘):
    # virsh attach-disk guest /var/lib/libvirt/images/virtiowin.iso hdb
    要使用 Windows Control Panel 来安装驱动程序,请导航到以下菜单:
    • 要安装 virtio-win 驱动程序 - Select Hardware and Sound > Device manager > virtio-serial driver
  3. 更新 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>
       ...
    
    
    
  4. 重启 Windows 客户机

    重启 Windows 客户机以应用更改:
    # virsh reboot win7x86
  5. 在 Windows 客户端中准备 QEMU 客户机代理

    在 Windows 客户端中准备客户机代理:
    1. 安装最新的 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
    2. 确认安装已完成

      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
      
      
    3. 安装 .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。