嵌入式交换机 SR-IOV 网卡的 ML2 机制驱动¶
Launchpad蓝图
https://blueprints.launchpad.net/neutron/+spec/ml2-sriov-nic-switch
此蓝图旨在添加基于 SR-IOV 功能网卡的 ML2 机制驱动(硬件 VEB),例如 Mellanox ConnectX 系列。
问题描述¶
SR-IOV 功能网卡,例如 Mellanox ConnectX 系列卡,提供嵌入式交换功能。作为 nova 和 neutron 增强功能的一部分,以支持 SR-IOV 端口,此蓝图提出的机制驱动程序最初将支持 VLAN 网络类型。Nova VIF 驱动程序将负责通过 libvirt 网络接口 XML 设置 VLAN ID。机制驱动程序需要 L2 代理来对 SR-IOV 端口进行运行时网络设置更新。
提议的变更¶
Ml2 机制驱动程序将基于简单代理机制驱动程序。Ml2 机制驱动程序能够绑定符合以下支持标准的端口。它将支持 DIRECT 和 MACVTAP vnic 类型。它将最初支持 PCI VENDOR INFO,匹配 Mellanox ConnectX 系列。将提供一个选项,可以从配置文件加载支持的 PCI VENDOR INFO 列表。机制驱动程序将在 port vif_details 字典中包含 vlan_id 属性,以便为 nova vif 驱动程序提供 vlan id 详细信息。机制驱动程序期望 port binding:profile 填充 physical_network 和 pci_vendor_info,以识别是否应绑定端口以及绑定到哪个物理网络。为了支持 L2 代理 rpc 调用,ml2 rpc 模块的 _device_to_port_id 方法应修改为服务于未以 tap 为前缀的设备。
备选方案¶
另一种解决方案是开发一个单体插件。由于 SR-IOV 资源有限且支持的虚拟端口配置选项较少,因此将 SR-IOV 端口与虚拟端口并存是有意义的。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
尝试绑定端口期间的 pci_vendor_info 匹配检查可能会对性能产生潜在影响。
其他部署者影响¶
部署者必须配置以下配置变量
OpenStack 要使用的 VLAN 命名空间和范围。
如果与默认列表不同,则支持的 pci vendor info 记录。
开发人员影响¶
无
实现¶
负责人¶
主要负责人:Irena Berezovsky <irenab>
工作项¶
基于网卡交换机的 Ml2 机制驱动程序
基于网卡交换机的 Ml2 代理
L2 代理所需的 ML2 RPC 支持 SR-IOV 设备
依赖项¶
Nova vif 驱动程序需要支持基于 SR-IOV 网卡的虚拟接口。此功能是在以下 nova 蓝图之后添加的:https://blueprints.launchpad.net/nova/+spec/pci-passthrough-sriov
测试¶
代码将涵盖单元测试。对于 tempest 测试覆盖,提供第三方测试。测试在配备 SR-IOV ConnectX 系列卡的物理服务器上的 devstack 设置中运行。
文档影响¶
配置参考指南将从代码中更新。
参考资料¶
SR-IOV 支持讨论详情如下