支持 Napatech LinkVirtualization SmartNIC

https://blueprints.launchpad.net/nova/+spec/support-napatech-linkvirtualization-smartnic

Napatech LinkVirtualization SmartNIC 将网络流量交换、QoS 和隧道封装/解封装功能从 hypervisor 上运行的 OVS 卸载到板载硅芯片上。本规范建议更新 Nova 和 Neutron 源代码,以包含对 LinkVirtualization SmartNIC 暴露的虚拟设备对应的新 VIF 类型支持。

问题描述

Napatech SmartNIC 可以卸载多种计算资源密集型任务,例如数据包交换、QoS 强制执行以及 V(x)LAN 隧道封装/解封装。通过 DPDK 端口 representors (https://docs.openvswitch.org/en/latest/topics/dpdk/phy/#representors) 使用 dpdk 时,上游和树外 OVS 实现可以利用这些卸载。

在软件中执行加密和压缩等数据处理可能非常密集,需要大量的 CPU 核心。通过将这些功能卸载到加速 NIC 硬件,可以显著提高性能并释放 CPU 核心以支持同一服务器上的更多虚拟功能。

为了实现这些目标,Napatech 提供了 SmartNIC Solution Virtual Switch Acceleration

Napatech Getting Started Guide 将提供有关 Napatech SmartNIC 硬件卸载解决方案的详细信息:* 操作系统准备 * 使用 Napatech PMD 编译和安装 DPDK * 运行 OVS-DPDK * OVS-DPDK 配置示例

Nova 和 os-vif 当前支持基于内核的 VF representors,但不支持利用 vhost-user socket 的 DPDK VF representors。本规范旨在解决这一差距。

用例

  • Napatech SmartNIC 的最终用户应该能够开箱即用地支持 Napatech SmartNIC。

  • 使用 OvS-DPDK representor 端口的其他 SmartNIC 也应该可以工作。

提议的变更

  • 我们建议通过新的 VNIC 类型 VNIC_VIRTIO_FORWARDER 和相关的 VIF 处理函数 nova_to_osvif_vif() 扩展 OpenvSwitch 驱动程序。处理 vhostuser VIF 类型的方法应通过设置适当的数据路径、representor 端口配置文件、vhostuser vif 类型、OVS 插件和数据路径卸载设置来处理新的 VNIC 类型。OpenvSwitch 驱动程序应该能够为 virtio-forwarder vnic 类型设置 DPDK representor socket 路径:https://docs.openvswitch.org/en/latest/topics/dpdk/phy/#representors

  • 我们建议将 vif 类型 OVS 属性 OVS_DPDK_PORT_TYPES 扩展为新的端口类型 dpdk

  • 我们建议更新 OvsPlugin 类以支持 OVS DPDK representor 端口的插拔 os_vif OVSPlugin 代码

适当的方法 plug()unplug() 应该扩展为能够插拔 VF,如果 vif 具有 VIFPortProfileOVSRepresentor 端口配置文件的 VIFVHostUser

  • _plug_vf() 方法应该扩展为公式 VF_NUM=ID*8+VF,以根据输入的 PCI 插槽计算 VF 编号。

  • update_device_mtu() 方法将扩展为 OVS_DPDK_INTERFACE_TYPE 接口支持,以便能够更新 OVS 层上端口的 MTU 配置。

  • 我们建议对提议的更改进行单元/功能测试。

  • 配备 Link-Virtualization™ 软件的 NT200A02NT50B01 SmartNics 将提供基于硬件的解决方案,以完全卸载 Open vSwitch (OVS)。

  • Napatech 将提供一份文档,其中包含 OpenStack 中 NT NIC 硬件卸载配置。该文档将包括配置步骤、要求、指向 Napatech 门户的链接以及软件和额外的特定文档。该文档将在 Neutron 项目下创建。

备选方案

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

与内核-ovs 和传统的 vhost-user 相比,在硬件卸载的数据平面上运行时,用户将看到显著的网络性能提升。

其他部署者影响

与其他 SmartNIC 产品一样,部署者必须按照 SmartNIC 制造商的指南配置 OVS-DPDK 并更新 PCI 设备规范配置。https://docs.openstack.org/nova/latest/configuration/config.html#pci.device_spec

开发人员影响

升级影响

实现

负责人

  • Oleksii Butenko (obu-plv)

  • Danylo Vodopianov (dvo-plv)

  • Justas Poderys (justas_napa on IRC and Gerrit)

功能联络人

  • Sean Mooney (sean-k-mooney)

工作项

  • 扩展 Openvswitch 驱动程序以支持 Virtio-Forwarder VIF 类型

  • 为 Qos 支持添加 Virtio-Forwarder VIF 类型

  • 添加新的 OVS 数据路径端口类型 dpdk

  • 添加为 dpdk representor potr 类型设置 MTU 的能力

  • 添加使用 VIFPortProfileOVSRepresentor vif 配置文件的 VIFVHostUser 的 vf 的插拔能力

  • 添加/更新单元和功能测试

依赖项

  • 此蓝图是更新 Neutron 中的代码以支持 LinkVirtualization SmartNIC 的先决条件。这与支持其他 SmartNIC 一致。工作项部分给出了所有四个组件的更改链接。

测试

代码更改需要额外的测试覆盖范围:* 将实现新的单元测试或更新现有的单元测试。* 将实现新的功能测试。* Napatech 将提供第三方 ci 以在 NT 硬件上进行测试。

文档影响

我们没有引入任何新的 VNIC 类型,因此不应影响文档。

参考资料

历史

修订

发布名称

描述

2023.2 Bobcat

引入