Red Hat Training

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

11.3. SPICE 代理

SPICE 代理有助于通过帮助将客户机操作系统与 SPICE 客户端集成,从而更加顺利地运行图形应用程序。
例如,当在 virt-manager 中重新定义窗口大小时,SPICE 代理允许自动 X 会话解析调整客户端解析。SPICE 代理也支持在主机和客户机之间进行复制和粘贴,并防止鼠标光标放大。
有关 SPICE 代理功能的系统特定信息,请参阅 spice-vdagent 软件包的 README 文件。

11.3.1. 设置 SPICE 代理和主机之间的通信

可以在正在运行或关闭虚拟机上配置 SPICE 代理。如果在正在运行的虚拟客户机中配置了,客户机将立即开始使用客户机代理。如果 guest 关闭,则将在下次引导时启用 SPICE 代理。
virshvirt-manager 可用于配置客户机和 SPICE 代理之间的通信。下面的说明描述了如何在 Linux 虚拟机上配置 SPICE 代理。

过程 11.4. 在 Linux 客户机中使用 virsh 设置客户机代理与主机之间的通信

  1. 关闭虚拟机

    在配置 SPICE 代理前,请确定虚拟机(本例中为 rhel 7)被关闭:
    # virsh shutdown rhel7 
  2. 在客户机 XML 配置中添加 SPICE 代理频道

    编辑客户端的 XML 文件以添加 SPICE 代理详情:
    # virsh edit rhel7
    在客户机的 XML 文件中添加以下内容并保存更改:
    <channel type='spicevmc'>
       <target type='virtio' name='com.redhat.spice.0'/>
    </channel>
  3. 启动虚拟机

    # virsh start rhel7
  4. 在客户端中安装 SPICE 代理

    如果尚未在客户机虚拟机中安装 SPICE 代理:
    # yum install spice-vdagent
  5. 在客户机中启动 SPICE 代理

    在客户机中启动 SPICE 代理服务:
    # systemctl start spice-vdagent
或者,可使用以下步骤在运行的客户机中配置 SPICE 代理:

过程 11.5. 在正在运行的 Linux 客户机中设置 SPICE 代理与主机之间的通信

  1. 为 SPICE 代理创建 XML 文件

    # cat agent.xml
    <channel type='spicevmc'>
       <target type='virtio' name='com.redhat.spice.0'/>
    </channel>
  2. 将 SPICE 代理附加到虚拟机

    用这个命令将 SPICE 代理附加到正在运行的虚拟机(本例中为 rhel7 ):
    # virsh attach-device rhel7 agent.xml
  3. 在客户端中安装 SPICE 代理

    如果尚未在客户机虚拟机中安装 SPICE 代理:
    # yum install spice-vdagent
  4. 在客户机中启动 SPICE 代理

    在客户机中启动 SPICE 代理服务:
    # systemctl start spice-vdagent

过程 11.6. 使用 virt-manager在 SPICE 代理和主机间设置通信

  1. 关闭虚拟机

    在配置 SPICE 代理前,确保虚拟机已关闭。
    要关闭虚拟机,请从 Virtual Machine Manager 中的虚拟机列表中选择,然后单击菜单栏中的 light 开关图标。
  2. 将 SPICE 代理频道添加到客户端

    单击 guest 窗口顶部的 lightbulb 图标,打开虚拟机的硬件详细信息。
    点击 Add Hardware 按钮,打开 Add New Virtual Hardware 窗口,然后选择 Channel
    名称 下拉列表中选择 SPICE 代理,编辑频道地址,然后点 Finish:

    图 11.2. 选择 SPICE 代理频道设备

    选择 SPICE 代理频道设备
  3. 启动虚拟机

    要启动虚拟机,请从 Virtual Machine Manager 中的虚拟机列表中选择,然后点击
  4. 在客户端中安装 SPICE 代理

    使用 virt-manager 打开客户机,并在客户机虚拟机上尚未安装 SPICE 代理:
    # yum install spice-vdagent
  5. 在客户机中启动 SPICE 代理

    在客户机中启动 SPICE 代理服务:
    # systemctl start spice-vdagent
SPICE 代理现在已在 rhel7 虚拟机上配置。