您可以配置特定实例和映像元数据允许 SR-IOV 或 DirectPath I/O 直通,然后创建使用物理硬件接口的 OpenStack 实例。

重要:

此功能仅在 VMware Integrated OpenStack 运营商版本 中提供。有关详细信息,请参见 VMware Integrated OpenStack 许可

此过程使用 OpenStack Nova 为非网络设备启用直通。对于网络设备,请参见为网络设备配置直通

前提条件

  • vSphere 中启用 SR-IOV 或 DirectPath I/O:

  • 为 SR-IOV 设备创建专用计算群集。DRS 规则不适用于这些设备。

  • 要保留物理设备的 MAC 地址,在设备上启用直接直通之前先将其群集添加为计算节点。如果已启用直接直通,可以将其禁用,重新启动群集,然后再启用直接直通。

过程

  1. viouser 用户身份登录到 OpenStack 管理服务器
  2. 如果您的部署未使用 custom.yml 文件,请将模板 custom.yml 文件复制到 /opt/vmware/vio/custom 目录。
    sudo mkdir -p /opt/vmware/vio/custom
    sudo cp /var/lib/vio/ansible/custom/custom.yml.sample /opt/vmware/vio/custom/custom.yml
  3. 在文本编辑器中打开 /opt/vmware/vio/custom/custom.yml 文件。
  4. 取消对 nova_pci_alias 参数的注释并修改其值以与您的设备相匹配。
    nova_pci_alias: [{"device_type": "type-VF", "name": "virtual-device-name"}, {"vendor_id":"vid", "product_id":"pid", "device_type": "type-PF", "name":"physical-device-name"}]

    其中:

    • name(第一次出现)是虚拟设备的别名

    • vendor_id 是物理设备供应商的四位数标识符

    • device_id 是物理设备的四位数标识符

    • name(第二次出现)是物理设备的别名

  5. 部署更新的配置。
    sudo viocli deployment configure

    部署此配置会短暂中断 OpenStack 服务。

  6. 以云管理员身份登录 VMware Integrated OpenStack 仪表板。
  7. 从标题栏中的下拉菜单选择管理项目。
  8. 创建启用直通的特定实例。
    1. 选择管理 > 计算 > 特定实例
    2. 创建新的特定实例或者选择现有特定实例用于直通。
    3. 选择要使用的特定实例旁边的更新元数据
    4. 可用元数据窗格中,展开特定实例的 VMware 驱动程序选项,然后单击 PCI 直通别名旁边的添加(加号)图标。
    5. pci_passthrough:alias 的值设置为 virtual-device-name:device-count,然后单击保存

      选项

      说明

      virtual-device-name

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

      device-count

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

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

  9. 创建启用直通的映像。
    1. 选择管理 > 计算 > 映像
    2. 创建新映像或者选择现有映像用于直通。
    3. 单击要使用的映像旁边的向下箭头,然后选择更新元数据
    4. 可用元数据窗格中,展开 VMware 驱动程序选项,然后单击虚拟网络接口旁边的添加(加号)图标。
    5. hw_vif_model 参数旁边的下拉列表中选择您的设备,然后单击保存

结果

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