FPGA用于数据中心的网络加速

      没在BAT这些数据中心的大厂工作过哈,从看过的论文以及逻辑推理,推测在数据中心,FPGA可以做哪些网络加速。

1. OVS的在数据中心的应用场景

        一种应该主要解决服务器中VM间的通信问题,包括服务器内部VM通信以及VM与外部VM间通信,实现后可以让VM迁移时比较方便,而且VxLAN支持的标签数比VLAN大很多,可以让逻辑网络overlay在物理网络上。不过这个事情现在支持VxLAN的交换芯片或者支持P4可编程的barefoot芯片也能支持。但有一类问题中间的交换设备很难解决,那就是端到端的QoS,在流量未拥塞时就减少流量发送。

数据中心的网络加速可以考虑解决3类问题:

      1)VxLAN的交换实现。

      2)QoS相关的问题(延时、延时抖动、及带宽分配),流量统计,以及根据统计结果控制整网的数据流向。

      3)虚拟化支持,这个是数据中心最大的特点,每个节点或者整网都在做虚拟化的事情。

2. FPGA在里面做什么

        因为FPGA本质上是实现某种场景的芯片方案,所以他主要处理数据面的事情。在OVS中主要就是快路径的处理。

主要功能

1)接口:物理口及虚拟口(对应虚拟机或者容器);

2)OVS快速路径的表项cache, 掩码表、流表、组播出口表;

3)QoS:物理口入口支持PFC,出口支持ETS;虚拟口支持限速;如果做的好,可以支持基于流的限速。

4)隧道封装解封装:VXLAN/NVGRE/GENEVE隧道封装、解封装;

5) Action动作支持因为是报文处理,所以需要支持各种报文头字段修改,替换等,语义可以参考openflow。

3. 设计上要解决的一些问题

    大体可以分为缓存管理和业务处理。

    1)PCIE/DMA:支持SR-IOV,控制器要支持VF功能,逻辑要做VF配置寄存器的应答。支持虚拟化不仅仅是PCIE配置空间支持VF,还要考虑其他公共资源的通道隔离,可以方便进行虚拟机对应虚拟网卡的建立和拆解。除此之外还要考虑通道间的调度是否公平以及对延时的影响

    2)OVS快路径卸载

        其实就是parser、Match、Action的设计:

         Parser就是根据支持的报文做解析。

        Match其实就是哈希算法以及Match表项中数据结构的设计,匹配字段、Action动作入口、QoS相关策略等(FPGA缺少TCAM这类资源)。提升性能的关键就是:减少每个条目数的长度;可以通过索引到内部RAM的方式来做;减少DDR的访问次数。

         Action就是根据要求进行报文修改了。(避免Action后报文分片行为)

    3)QoS及流量统计,相关调度算法实现

         这个要结合缓存管理。简单的就是端口上的PFC。复杂的可以做基于流的带宽限制。

        难点:流的条目数增加时如何设计。

   4)缓存设计

        如何配合使用内部RAM和外部DDR,以及表项和报文如何使用内部RAM和DDR,这个牵涉到延迟大小、峰值带宽。

         批量及随机访问:比如DDR4,批量读写时性能很好,随机短包性能很差

         缓存在内部RAM,要考虑会不会太小,比如报文的处理周期长,内部缓存会溢出,但放在DDR4中要查表,又要存报文,             一 进一出,可能带宽不足。

         DDR的地址分配:存储空间分配到不同bank,实现interleave,可能性能会好些。

猜你喜欢

转载自blog.csdn.net/weixin_38712697/article/details/82726159