可以将特定实例配置为允许直通,然后创建使用物理硬件接口的 OpenStack 实例。

此过程不适用于 NVIDIA GRID vGPU。要配置 NVIDIA GRID vGPU,请参见NVIDIA GRID vGPU

前提条件

  • vSphere 中启用 SR-IOV 或 DirectPath I/O:
  • 为 SR-IOV 设备创建专用计算集群。DRS 规则不适用于这些设备。
  • 确认未在要用于直通的映像上配置 vmware_extra_config 元数据。
  • 要保留物理设备的 MAC 地址,在设备上启用直接直通之前先将其集群添加为计算节点。如果已启用直接直通,可以将其禁用,重新启动集群,然后再启用直接直通。

过程

  1. root 用户身份登录到 Integrated OpenStack Manager
    ssh root@mgmt-server-ip
  2. 编辑 Nova 配置。
    viocli update nova
  3. nova 部分中,创建 pci 部分。
  4. pci 部分中,创建 alias 部分,添加 type 参数并将其值设置为 multistring
  5. 添加 values 参数并将其值设置为与设备相匹配。

    使用以下格式:

    values:
    - '{"device_type": "type-PF", "vendor_id": "vendor-id", "name": "physical-name"}'
    - '{"device_type": "type-VF", "vendor_id": "vendor-id", "name": "virtual-name"}'
    选项 说明

    vendor-id

    输入设备的四字符供应商 ID。以小写形式输入所有字母。

    physical-name

    输入物理设备的别名。

    virtual-name

    输入虚拟设备的别名。

  6. vmware 部分中,添加 generic_passthrough 参数并将其值设置为 true
    现在,配置文件看起来类似于以下内容。
    conf:
      nova:
        vmware:
          [...]
          generic_passthrough: true
        pci:
          alias:
            type: multistring
            values:
            - '{"device_type": "type-PF", "vendor_id": "vendor-id", "name": "physical-name"}'
            - '{"device_type": "type-VF", "vendor_id": "vendor-id", "name": "virtual-name"}'
  7. 编辑 Nova 计算配置。
    viocli update nova-compute
  8. vmware 部分中,添加 generic_passthrough 参数并将其值设置为 true
    现在,配置文件看起来类似于以下内容。
    conf:
      nova_compute:
        DEFAULT:
          [...]
        vmware:
          [...]
          generic_passthrough: true
  9. 以云管理员身份登录 VMware Integrated OpenStack 仪表板。
  10. 从标题栏中的下拉菜单选择管理项目。
  11. 选择管理 > 计算 > 特定实例
  12. 创建新的特定实例或者选择现有特定实例用于直通。
  13. 选择要使用的特定实例旁边的更新元数据
  14. 可用元数据下的自定义字段中,键入 vmware_extra_config,然后单击添加(加号)图标。
  15. vmware:extra_config 的值设置为 {"pciPassthru.use64bitMMIO":"TRUE"}
  16. 可用元数据下的自定义字段中,键入 pci_passthrough:alias,然后单击添加(加号)图标。
  17. pci_passthrough:alias 的值设置为 virtual-device-name:device-count
    选项 说明
    virtual-device-name

    输入在此过程中指定的虚拟设备名称。

    device-count

    指定可在一个请求中调用的虚拟函数数。

    此值的范围可以是从 1 到 10。

  18. 展开 VMware 配额,然后单击Quota: Memory Reservation旁边的添加(加号)图标。
  19. quota:memory_reservation 的值设置为 100,然后单击保存

结果

现在,您可以部署启用直通的虚拟机,方法是使用在此过程中修改的特定实例对它们进行配置。