可编程交换芯片在数据中心的应用及价值

发布时间:2023-08-21 作者:中兴通讯 陈志伟

        云计算、大数据、大规模AI的持续发展,对数据中心网络提出了很多新的技术需求,对应以太网数据中心交换机也需要在带宽不变的情况下,提供更多的新功能。但传统交换机的转发平面使用不可编程的ASIC芯片,转发逻辑完全固化到芯片中,芯片发布后无法修改芯片逻辑,任何涉及芯片硬件逻辑修改的新功能都无法支持。芯片迭代和产品迭代的时间一般是3年左右,这个周期无法满足网络快速迭代的需求。所以,新一代可编程交换芯片应运而生。

        可编程交换芯片由通用的逻辑单元和流水线组成,能够通过编程实现各种自定义的数据包处理。利用可编程交换机芯片,用户能在不升级设备的情况下,通过更新软件就能提供新型网络服务,满足新业务快速部署需求。

 

可编程交换芯片架构

        芯片可编程能力包括一系列的可编程特性。其中报文字段解析可编程,意味着芯片能够基于用户设定的字段特征灵活提取报文头的关键信息;转发表可编程,意味着用户可以自定义转发表项的组成,包括key值,可以指定不同转发表项的条目数量;转发行为可编程,意味着用户可以自定义多种转发行为,包括正常转发、修改报文、丢弃、镜像等;业务流水可编程,意味着用户可以编排业务流程,确定不同转发表之间的顺序。

        实现芯片的可编程能力有三种不同的架构:增强型可编程架构,在原有不可编程芯片的基础上,增加部分可编程能力,例如报文字段解析可编程和报文修改可编程,对传统交换芯片架构修改较小,实现简单,但可编程能力最弱;RTC可编程架构,采用多个微处理器和多个硬件协处理器来实现全部报文的接收、关键字段解析、表项查找、报文内容修改的能力,可编程能力最强,但性能和功耗偏大;基于Match-Actions的可编程架构,在标准流水线上采用多级可编程单元来实现,每级可编程单元都是基于可编程的key值、可编程的转发行为,这种架构很好地平衡了可编程能力和性能,是数据中心网络设备比较好的选择。

 

多场景应用和价值

        增加可编程能力后,一方面,数据中心交换机在传统DCN内部网络中,能够提供更好的性能和功能,另一方面,也把交换机的能力扩展到数据中心一些新应用场景,包括多业务网关、超融合TOR等,为客户提供新的应用和新的价值。

 

DCN增强Telemetry和OAM

        随着业务的发展,单DC超万台服务器,DCN网络规模也随之扩大,交换机超百台。在业务出现问题的时候,需要找到出问题的交换机和业务链路,传统方案构造特定的探测报文来做链路质量检测,spine-leaf架构决定了网络存在大量的ECMP(equal-cost multi-path)路径,这会导致探测报文的转发路径和真实业务报文的转发路径不一样,从而无法找到问题设备和链路。

        采用可编程芯片,可支持随流检测技术,通过可编程芯片,把检测信息直接封装在要检测的业务报文头部,转发节点及尾节点基于检测信息进行统计、计算,从而得到相关检测信息。

        具体的路径探测方式如下(见图1):

        - 在入节点交换机采用TCP五元组、RDMA QP等信息区分流,为业务流分配Flow ID,通过可编程芯片,对特定报文头进行修改,包括flow id设置和染色等操作。

        - 每个转发设备匹配flow ID,收集各个报文对应的转发信息,基于Telemetry上送管控系统。上送信息包括报文特征、设备信息、接收和发送物理的端口等。与其它技术不同的是,需要收集的信息(option)是在各个设备上通过配置指定,并不携带在报文内部。

        - 管控平台静态订阅相关信息并处理,给出统计结果。

        采用可编程芯片的增强telemetry和OAM功能,可以更好地支持自动化运维,极大缩短云数据中心网络问题的定位、解决、隔离时间,更好地做到业务对网络故障的无感知和无影响。

多种云网关的加速

        在数据中心网络里,云网关是各种云流量的中心枢纽。因为业务的复杂,存在多种不同的云网关,基于X86 NFV架构的云网关是大型互联网的主要方案。但随着业务规模的持续增长,基于DPDK(data plane development kit)优化的X86架构在性能上有很大挑战,单服务器最大峰值100Gbps,对于大象流的处理可能超过了单核的能力造成系统整体复杂性提高,X86架构本身对流的处理也存在很大的抖动,报文时延随X86的资源利用率和报文处理流程的变化有很大的变化,在Tbps级别的需求下,需要几十台甚至几百台X86集群来实现,这些X86集群的管理、控制面的同步都带来了额外的成本。

        采用可编程芯片+P4编程的方案,可以针对每个云网关的功能定制P4转发代码,通过P4 runtime控制面下发对应表项,从而实现硬件加速的NFV功能(见图2)。

        采用可编程芯片的多种云网关加速,可以用一台设备取代20台X86设备,大大降低了云网关集群的设备成本和功耗,同时降低了集群的管理复杂度,提高了控制面的收敛速度,基于pipeline的可编程芯片保证了时延,提高了云用户的满意度。

 

        数据中心的快速演进使得可编程芯片越来越有价值,基于Match-Actions架构的可编程很好地平衡了可编程性、成本、功耗,是DC内部比较好的选择,可以用于多种DCN场景,以及DC云网关的加速。