智能网卡原生分叉:实现内核和DPDK的优势结合

随着服务器网络带宽快速增长,Linux内核网络协议栈逐渐成为性能瓶颈。在需要高性能报文处理的场景,用户态DPDK得到越来越多的应用。DPDK通过bypass内核、大页等机制,实现了高性能、低时延的网络IO能力。


尽管 Linux 内核网络协议栈的处理性能低于 DPDK,但其支持的网络协议类型更为丰富,且配套的调试、监控工具链成熟完善,在兼容性与可运维性上具备显著优势。为充分结合两者的核心价值,智能网卡通常会提供流量分叉机制:目前多数网卡厂商的方案基于SR-IOV技术的分叉,即PF通过ethtool配置Flow Director将流量分流到VF。




这种方式存在如下问题:

  1. 需要配置的管理SR-IOV,使用较为复杂

  2. 在不使能OVS流卸载情况下,SR-IOV与bonding互斥,需要牺牲bonding带来的高可用性。


为了解决这些问题,星云智联推出智能网卡原生分叉技术(Native Bifurcation)。

原生:指的是内核空间和用户态空间(DPDK),共用同一个PCI设备(PF)。通过PF的共存技术,支持PF在内核驱动与DPDK驱动共享。


原生分叉的常见使用方法:DPDK配置为isolated mode,流量默认到内核。通过配置rte flow将选出的流量引到DPDK。ARP、路由等表项仍然通过内核维护。


原生分叉的优势在于

  1. 简化运维管理:不需要开启SR-IOV。且对外报文的源MAC地址是固定的MAC,不像VF通常为随机MAC,需用户在额外分配MAC地址

  2. 高可用:支持bonding。不需要因为SR-IOV而关闭bonding。

  3. 工具丰富:可以继续使用内核ethtool/ifconfig等工具,以及成熟稳定的协议栈

  4. 降成本:支持流量默认在内核,只过滤部分流量到DPDK,可以节省一个管理网卡


为了更好地支持原生分叉,星云智联网卡中进行了专门技术设计:

  • 数据通道:具备较多硬件队列、并且支持一个PCIe设备多协议栈的队列调度

  • 硬件DMA引擎:支持多协议栈地址隔离

  • eswitch引擎:支持客户的精细化引流


已经有较多优秀的项目,在使用原生分叉技术:

  • 用户态协议栈:如字节跳动基于原生分叉开发libtpa

  • 高性能存储Fabric应用:星云智联与客户联合开发,实现替代传统的内核协议栈


订购信息

想要了解更多订购信息,请联系星云智联销售代表

sales@nebula-matrix.com 或致电400-8936-986

类型
订购型号
最高速率
GbE
以太接口
类型
PCIe
HHHL
S1205CQ-A00CHT
2x100
QSFP56/28
S1105AS-A00CHT
4x25
SFP28
S1055AS-A00CHT
2x25
SFP28
S1051AS-A00CHT
2x25
SFP28
S1045XS-A00CHT
4x10
SFP+
OCP3.0
SFF
S1205CQ-A00CSP
2x100
QSFP56/28
S1055AS-A00CSP
2x25
SFP28




新闻中心

 

获取星云智联最新动态和新闻资讯