您可以配置端口允许 SR-IOV 或 DirectPath I/O 直通,然后创建使用物理硬件接口的 OpenStack 实例。
此过程使用 OpenStack Neutron 为网络设备启用直通。对于非网络设备,请参见为非网络设备配置直通。
前提条件
在 vSphere 中启用 SR-IOV 或 DirectPath I/O:
为 SR-IOV 设备创建专用计算群集。DRS 规则不适用于这些设备。
要保留物理设备的 MAC 地址,在设备上启用直接直通之前先将其群集添加为计算节点。如果已启用直接直通,可以将其禁用,重新启动群集,然后再启用直接直通。
过程
- 以
viouser
用户身份登录到 OpenStack 管理服务器。
- 如果使用的是 NSX-T Data Center 部署,请为启用 SR-IOV 的每个计算群集指定一个分布式交换机。
- 如果您的部署未使用 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
- 在文本编辑器中打开 /opt/vmware/vio/custom/custom.yml 文件。
- 取消对 nova_dvs_moid 参数的注释。
- 指定部署中每个计算驱动程序的 DNS 名称及与其关联的 VDS 的受管对象标识符 (MOID)。
例如:
nova_dvs_moid:
compute01: dvs-35
compute02: dvs-36
请注意,每个计算驱动程序名称的前面有三个空格。
- 部署更新的配置。
sudo viocli deployment configure
部署此配置会短暂中断 OpenStack 服务。
- 切换到
root
用户并加载云管理员凭据文件。
sudo su -
source ~/cloudadmin.rc
- 为 SR-IOV 设备创建提供商网络。
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 |
|
--provider:segmentation_id |
如果要创建基于 VLAN 的网络,请输入 VLAN ID。 |
- 创建启用直通的端口。
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。 |
注:
direct 和 direct-physical 端口不支持端口安全,将为创建的端口自动禁用该功能。
结果
现在,您可以部署启用直通的虚拟机,方法是使用在此过程中创建的端口对它们进行配置。