关于高性能:高性能网络-SIG-月度动态ANCK-首次支持-SMCv21virtio-规范支持隧道报文内头部哈希

42次阅读

共计 3585 个字符,预计需要花费 9 分钟才能阅读完成。

高性能网络 SIG(Special Interest Group):在云计算时代,软硬件高速倒退,云原生、微服务等新的利用状态衰亡,让更多的数据在过程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演着前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络趣味组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,联合软硬件一体化的思维,打造高性能网络协议栈,晋升云计算时代数据中心利用的网络的性能。

01 SIG 整体停顿

本月要害停顿:

1、SIG 本月实现 SMC 在 ANCK 5.10-015 内核的集成和公布,ANCK 成为社区首个实现 SMCv2.1 的内核。ANCK 中 SMC 反对 SMCv2.1 协定新增的链路数量协商、链路承载连贯数量协商、Vendor 能力拓展等个性,反对通过 AF_INET 协定族应用 SMC,反对局部场景基于 eBPF 的替换策略,以及其余多个优化与稳定性修复。

2、SIG 推动的对于隧道内头部哈希的 virtio 标准规范,通过 8 个月 445 封邮件的沟通,在本月终于胜利进入 virtio SPEC 主线。该提案基于特色协商的机制,为 virtio 提供了隧道报文内头部哈希的能力。

02 ANCK 内核网络

修复

ANCK 5.10-015 版本回合多个 SIG 提交至上游的修复补丁:

  • net/smc: Reset connection when trying to use SMCRv2 fails
  • net/smc: Scan from current RMB list when no position specified
  • net/smc: Dont use RMBs not mapped to new link in SMCRv2 ADD LINK
  • net/smc: Avoid to access invalid RMBs MRs in SMCRv1 ADD LINK CONT

平安

本月网络方向共计修复 13 个 CVE,笼罩 sched/iscsi_tcp/rxrpc/netfilter/tap 等模块,CVE 列表:ANCK-5.10:CVE-2023-3610,CVE-2023-2006,CVE-2023-2162,CVE-2023-35001,CVE-2023-31248,CVE-2023-3117,CVE-2023-1382。

ANCK-4.19:CVE-2023-35001,CVE-2023-3117,CVE-2023-1077,CVE-2023-1076,CVE-2023-35788,CVE-2023-1829。

个性

  • ANCK 5.10-015 版本网络局部减少多个 SMC 相干新个性,具体可见下方 SMC 一节。
  • ANCK 5.10-015 引入了 devlink 中 SF (Scalable Function) 治理的反对:!1827 devlink 反对 subfunction

03 SMC

本月高性能网络 SIG 在 SMC 畛域的工作次要聚焦在:

  • 实现 SMC 在 ANCK 5.10-015 内核的集成和公布,提供生产级别可用性。
  • 推动上游 SMCv2.1 协定的公布并确定 SMC-D 协定拓展的根本计划。

版本公布

本次在 ANCK 5.10-015 内核公布的 SMC 次要蕴含以下劣势:

  1. 更强的性能,E2E 测试中 SMC + ERDMA 场景下,Redis 单过程 SMC 比照 TCP 有 40% 以上的性能晋升,雷同 PPS 下比照 TCP 节俭 20% 以上 CPU。
  2. 更高的稳定性:通过大规模和 CI 测试,涵盖了大部分的典型 E2E 网络通信场景,共实现 22 个上游或自研个性修复,已合入上游 4 个修复补丁。
  3. 更灵便、高效的应用形式:局部场景提供基于 eBPF 通明策略抉择以及基于 AF_INET 的高效回退的能力,具备判断利用连贯模型并主动减速的能力。

具体的公布日志包含:

  1. 社区首个 SMCv2.1 协定的实现,SIG 提出的 SMC 协定扩大从白皮书公布到实现曾经全副实现,蕴含:
  • 在云上 eRDMA 场景下默认应用 SMCv2 协定。
  • 反对 SMCv2.1 版本协定的协商,包含 LGR 连接数、Link 数量和 vendor ID。
  • 提供 vendor 扩大的 RDMA write with IMM 个性反对。
  • 提供 vendor 扩大的基于 credit 流控算法。
  1. 反对按 AF_INET 协定簇创立 SMC 套接字,使 fallback 后的性能达到 TCP 的 95%+。
  2. 反对局部场景基于 eBPF 的替换策略,反对依据流量模型的连贯维度替换。
  3. 其余优化,包含反对 RDMA 资源诊断、高阶内存拆分、共享内存扩充等。
  4. 大量修复,包含因各类竞争导致的 hung、UAF、memory leak、panic 等问题。

SMC V2.1 协定白皮书

本月 SIG 推动的 SMCv2.1 新个性已随 IBM SMC V2.1 协定白皮书公布,具体内容可见 IBM 白皮书,白皮书蕴含 SIG 提议的如下个性:

  • 基于 Vendor ID 的协定拓展,反对云厂商提供定制 SMC 个性。
  • 反对容灾链路数量的协商,以优化单链路场景的握手流程,晋升建连效率。
  • 反对链路组中连贯数量的协商,以适应不同的场景。

SMC-D 计划探讨

本月 SIG 与 IBM 探讨并确定了 SMC-D 设施拓展计划。为反对将来可能呈现的 SMC-D 虚构设施,如 SMC-D loopback 设施,SMC-D 协定将拓展现有 64bits GID 到 128 bits,并打算为虚构设施预留最高位为 1 的 VCHID。通过这种形式,SMC-D 在齐全保留现有 CLC 握手协商流程的前提下,提供了向前兼容的 SMC-D 虚构设施反对。

04 Virtio

本月高性能网络 SIG 在 virtio 畛域的工作,次要聚焦在推动动静中断调节和隧道内部源端口哈希的实现计划上,SIG 推动的对于隧道内头部哈希的 virtio 标准规范,通过 8 个月 445 封邮件的沟通,终于胜利进入 virtio spec 主线。

隧道报文内头部哈希

传统隧道协定因为在外头部中短少足够的熵,导致收包时报文容器汇聚到单个队列上,无奈施展多队列收包的劣势;同时,古代隧道协定在某些场景须要通过将同一条流接管在同一个队列上以取得性能收益,而外头部不容易做到此。

基于上述目标,龙蜥社区发动了针对隧道报文进行内头部哈希的提案 [PATCH v21] virtio-net: support inner header hash](),目前该提案获得 OASIS Open: Committees 14 票(14/16)通过票,进入标准主线。该提案基于特色协商的机制,为 virtio 提供了隧道报文内头部哈希的能力。该提案中,设施能够通过配置空间为驱动提供设施反对内头部哈希的隧道类型,驱动能够动静配置使能的隧道类型。同时,内头部哈希与 RSS 收包机制相互正交,晋升了内头部哈希的扩大灵活性。最初,为了避免应用该个性带来的可能的平安问题,本标准也给出了一些防护的介绍和倡议,具体请参见标准补丁。

动静中断调节

Net DIM 动静中断调节算法算法通过统计以后网络中单个队列的流量信息和中断次数,自适应计算中断调整方向和步长,并将后果配置下发到设施,以达到晋升网络吞吐量的目标。

SIG 为了让 virtio 获益到动静中断调节算法带来的性能晋升,推动了曾经进入 virtio 标准规范的 [PATCH v14] virtio-net: support the virtqueue coalescing moderation](),以反对 virtio driver 基于单个队列配置中断汇聚参数。同时正在推动 Linux 社区代码实现的补丁汇合:[RFC PATCH 0/6] virtio-net: support dynamic coalescing moderation – Heng Qi]()。

内部源端口号哈希

针对不分利用场景在应用隧道协定时存在对称哈希的需要,咱们既能够通过上述的隧道报文内头部哈希解决,也能够通过隧道内部源端口号哈希解决。然而因为某些 virtio 设施的实现可能存在解析资源受限的问题(例如可能最高反对 200B 的 header),例如 GENEVE 这种 Option 字段就长达 256B 的隧道报文,这种 virtio 设施的实现就无奈应用内头部哈希。侥幸的是,存在内部传输头的隧道协定,其标准规范会“举荐”应用内部源端口号来惟一的标记一条外部流(因为是“举荐”,而不是“必须”,会存在不牢靠的问题),因而,应用内部源端口号计算哈希能够达到对称哈希的目标。高性能网络小组推动了内部源端口号哈希的 virtio 标准提案:[PATCH] virtio-net: support the outer source port hash for UDP-encapsulated packets](),该提案旨在扩大 RSS (Receive Side Scaling) 的能力,让有对称哈希需要且解析资源受限的 virtio 设施能够轻易的达到同一条流散列到同一接管队列的目标。

相干链接:

高性能网络 SIG 主页:https://openanolis.cn/sig/high-perf-network

注:更多龙蜥 SIG 月度动静可点击这里查看。

—— 完 ——

正文完
 0