您可以配置端口允许 SR-IOV 或 DirectPath I/O 直通,然后创建使用物理硬件接口的 OpenStack 实例。

重要:

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

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

前提条件

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

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

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

过程

  1. viouser 用户身份登录到 OpenStack 管理服务器
  2. 如果使用的是 NSX-T Data Center 部署,请为启用 SR-IOV 的每个计算群集指定一个分布式交换机。
    1. 如果您的部署未使用 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
    2. 在文本编辑器中打开 /opt/vmware/vio/custom/custom.yml 文件。
    3. 取消对 nova_dvs_moid 参数的注释。
    4. 指定部署中每个计算驱动程序的 DNS 名称及与其关联的 VDS 的受管对象标识符 (MOID)。

      例如:

      nova_dvs_moid:
         compute01: dvs-35
         compute02: dvs-36

      请注意,每个计算驱动程序名称的前面有三个空格。

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

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

  3. 切换到 root 用户并加载云管理员凭据文件。
    sudo su -
    source ~/cloudadmin.rc
  4. 为 SR-IOV 设备创建提供商网络。
    • 对于 NSX Data Center for vSphere 部署,请创建 VLAN 或端口组网络。

    • 对于 NSX-T Data Center 部署,请创建 VLAN 或含糊网络。

    neutron net-create network-name --tenant-id project-uuid --provider:network_type {vlan | portgroup | nsx-net} --provider:physical_network physical-id [--provider:segmentation_id vlan-id]

    选项

    说明

    network-name

    为网络输入一个名称。

    --tenant-id

    指定要为其创建端口的项目的 UUID。您可以通过运行 openstack project list 命令查找项目的 UUID。

    --provider:network_type

    为 VLAN 网络输入 vlan,为端口组网络输入 portgroup,或为含糊网络输入 nsx-net

    --provider:physical_network

    • 对于 NSX Data Center for vSphere 中的 VLAN 网络,请指定分布式交换机的受管对象标识符 (MOID)。

    • 对于 NSX-T Data Center 中的 VLAN 网络,请指定 VLAN 传输区域的 UUID。

    • 对于端口组网络,请指定端口组的 MOID。

    • 对于含糊网络,请指定逻辑交换机的 UUID。

    --provider:segmentation_id

    如果要创建基于 VLAN 的网络,请输入 VLAN ID。

  5. 创建启用直通的端口。
    neutron port-create network-id --tenant-id project-uuid --name port-name --vnic_type {direct | direct-physical}

    选项

    说明

    network-id

    指定要在其上创建端口的网络的 UUID。您可以通过运行 openstack network list 命令查找网络的 UUID。

    --tenant-id

    指定要为其创建端口的项目的 UUID。

    --name

    输入端口的名称。

    --vnic_type

    为 SR-IOV 输入 direct,或者为直接直通输入 direct-physical

    注:

    directdirect-physical 端口不支持端口安全,将为创建的端口自动禁用该功能。

结果

现在,您可以部署启用直通的虚拟机,方法是使用在此过程中创建的端口对它们进行配置。