当前位置: 首页 > Web前端 > HTML

全网首次揭秘:微秒级“复活”网络的HARP协议及其关键技术

时间:2023-03-28 18:13:22 HTML

全网首次揭晓:微秒级“复活”网络的HARP协议及其关键技术将影响上层业务。而当单个交换机出现故障时,腾讯云新一代高性能网络可以在100微秒内找到新路径,实现零掉线,实现高可用、高扩展、高性能,保证业务不中断被影响。本文邀请腾讯云资深网络专家金峰及其IaaS前沿技术研究团队,为大家揭秘其背后的利器——高性能网络传输协议HARP。希望通过本文,带大家了解传统网络传输协议面临的困难和挑战,HARP如何应对,并在全网第一时间剖析四大关键技术。腾讯云一直在研发高性能网络协议——HARP(HighlyAvailableandReliableProtocol)。目前,HARP已逐步落地于腾讯云的块存储等业务,并成为腾讯自研银山智能网卡和玄灵芯片的标准化能力。当单个交换机发生故障时,腾讯云新一代高性能网络可在100微秒内找到新路径,实现链路零断线,保证上层业务不受影响。在本文中,我们团队将回顾云时代数据中心网络面临的困境,提出高性能传输协议HARP解决方案,并首次对全网四个关键技术点进行剖析。数据中心网络面临的问题与挑战为满足数据中心应用规模和性能需求不断增长的需求,数据中心的网络传输面临着巨大的挑战:1)无法保证数据中心交换机的可靠性。忽略其亚健康(设备软硬件故障或网络异常变化)的概率。例如,在我们的一个生产环境中,每年的交换机硬件故障率约为0.15%。交换机的亚健康状态将直接影响通过交换机的业务应用的服务质量。轻则业务吞吐量下降,响应延时增加。最坏的情况下,连接会中断,导致业务超时或失败。在一些对可靠性有严格要求的应用中,如高性能网络存储,提高网络传输的可靠性迫在眉睫。2)性能瓶颈近年来,数据中心出现了很多对性能要求很高的应用。这些性能需求主要体现在高网络带宽、超低且一致的通信延迟、超大网络规模等方面。大规模AI训练、高性能网络存储、分布式大数据应用等高带宽需求的应用,正在推动数据中心网络基础设施快速进入100Gbps甚至400Gbps时代。然而,要充分稳定地发挥这些基础能力,网络传输在软硬件设计和成本控制上都面临着巨大的挑战。同时,内存数据库、传统HPC等数据中心对时延敏感的应用对时延有着极高的要求,这对拥塞控制提出了严峻的挑战。最后,大规模数据中心应用(如分布式大数据应用、HPC)带来的大量并发数据传输也对网络传输协议的可扩展性提出了更高的要求。常用传输协议存在的问题目前,TCP和RoCEv2(RDMAoverConvergedEthernetv2)是数据中心网络的主流传输协议。面对上述挑战,传统的TCP和RoCEv2传输协议已经无力应对。首先,为了充分利用100Gbps甚至400Gbps的网络带宽能力,基于软件的通用协议栈(如内核TCP协议栈)往往会占用过高的CPU负载。而且还会受到操作系统和其他运行软件的大内核机制的影响,导致性能不稳定。其次,虽然硬件卸载的网络协议栈(如RoCEv2)可以在降低CPU开销的同时实现更好的传输性能,但由于成本限制,可用于存储连接状态的片上资源非常有限。这意味着实现RoCEv2的网卡往往存在并发连接数小的问题,极大地限制了其部署规模和使用场景。此外,TCP和现有的RoCEv2实现都存在拥塞控制性能不足(动态和尾延迟大)和可靠性差的问题。RoCEv2作为RDMA技术在数据中心的应用,已经在生产系统中大量部署。但其可靠性和连接故障恢复能力仍难以满足应用需求。一方面,RoCEv2的多路径解决方案MP-RDMA(Multi-pathRDMA)目前仅处于学术界的研究阶段,距离实际落地还有很长的路要走。另一方面,智能网卡有限的片上资源一直限制着单卡RoCEv2的并发连接数,即在大规模并发连接的场景下其传输性能会急剧下降,而增加多径传输只会使其雪上加霜。为了提高TCP对网络故障的容忍度,近年来业界一直关注MPTCP(MultipathTCP)解决方案。虽然应用部署在广域网,但数据中心网络中的MPTCP应用在路径切换、选择、汇聚等方面存在明显的性能瓶颈。同时,由于基于TCP内核工作,在可扩展性上也存在比较大的缺陷。另外,TCP协议栈较为复杂,难以在智能网卡上稳定实现全部功能,这也导致在内网场景下无法获得极致的性能。因此,我们需要设计一套新的网络传输协议,既能满足上层应用对高可靠网络传输的要求,又能提供高带宽、低时延的数据传输服务,维护大规模部署下的网络。表现。HARP、TCP和RoCEv2特性比较注意:MPTCP(多路径TCP)解决方案尚未被广泛采用。MP-RDMA(Multi-pathRDMA)解决方案还处于实验室阶段。HARP既有智能网卡版,也有用户态库版。TCP是指最常用的内核TCP协议栈。竖琴是什么?HARP是腾讯云完全自主研发的数据中心高性能传输协议。主要解决上述可靠性、软硬件设计、拥塞控制、可扩展性等难点。HARP在保证端到端数据包可靠传输的同时,可以为上层应用提供高可靠、高性能(高带宽、低时延)、高扩展性的网络传输服务。就目前的公共传输协议而言,HARP是第一个能够同时提供高可用性和高可扩展性的高性能传输协议。为实现高可靠传输,HARP采用确定性多路径出站传输,利用物理路径不重叠的多个通道进行并行传输,提高了对网络故障的抵抗力。同时,为实现高带宽和低延迟的性能,HARP采用软硬件分层设计提高传输效率,并采用自主研发的拥塞控制算法(PEAD)保证出色的数据流公平性和超低的网络队列。最后,为了获得大规模网络的高可扩展性,HARP采用了粒度可控的连接共享模式。通过复用一个HARP连接来承担多个应用连接的流量,HARP可以轻松支持大规模的网络应用。HARP的关键技术点HARP主要有以下四个关键技术点:1)事务分离和软硬件能力组合HARP采用分层的事务层和可靠的软硬件传输层设计,兼顾硬件的可实现性。以及可靠传输的可靠性。消息交易的效率和灵活性,如图所示。软硬件分离的架构设计为高效传输和低成本实施引入了新的可能。在该架构下,可靠传输层可以专注于实现端到端的消息粒度的可靠传输,将较粗粒度的事务处理划分到软件事务层。特别是,HARP采用自主研发的数据包编号方案跟踪每个数据包的发送和接收状态,并以极低的开销支持乱序接收和选择性重传。同时,软件事务层可以在不占用昂贵的硬件资源的情况下,提供高度灵活(适合业务特点)的消息处理。得益于这种架构,HARP的硬件和软件系统可以提供业界领先的网络和服务性能,同时保持成本竞争力。最终,HARP可以支持10000个节点网络规模的业务,提供最高的性能输出。2)粒度可配置的共享连接为了满足各种业务环境(裸机、VM、CBS等)的使用需求和大规模组网需求,HARP支持裸连接、VM级共享等粒度连接方式,和主机级共享。.HARP通过共享连接,可以大大减少连接数,降低硬件资源消耗,实现高扩展性,轻松支持10K+节点的大规模组网。在有N台服务器的大型网络中,HARP可以工作在主机级(IP对)共享模式,如图2所示。假设每台服务器的通信进程数为P,为了处理最严重的进程fullmesh通信,传统的TCP或者RoCEv2在单台服务器上需要N*P*P个连接,而HARP需要的连接数是N。可见HARP的连接规模与连接数无关通信过程,在大规模网络中具有极好的扩展性。比如有100台服务器,每台服务器运行100个进程的场景,TCP/RoCEv2需要的连接数为100*100*100=1000K,远远超出了高效能硬件网卡所能达到的范围支持高性能。我们注意到业界最先进的RoCEv2网卡在接近10K连接数时已经出现了严重的吞吐量损失。在这种情况下,HARP只需要N=100个连接。在大规模场景下,比如10K个节点,每个节点100个进程,HARP需要的连接数只有10K(不考虑进程数)。对于这个连接数,HARP基于硬件的网卡在分离优化架构和共享连接的支持下,仍然可以达到最高的吞吐量。由上可见,HARP在大规模高性能计算场景下将支持的网络规模提升了两个数量级。3)自研的高性能拥塞控制针对现有的拥塞控制难以满足我们多样化、高性能的业务需求,HARP采用了深度自研的拥塞控制算法PEAD。PEAD基于交换机普遍支持的概率ECN(ExplicitCongestionNotification)功能,通过自定义配置,可以准确感知网络拥塞,在保持高吞吐量感知的同时,带来更公平的流量吞吐、更流畅的网络和更准确的网络状态感知。与TCP相比,PEAD的消息完成时间FCT的中位数降低了35%(高带宽体现),p99分位数降低了70%(公平性体现)。同时,PEAD网络排队延迟的p99分位数值降低了90%(以网络流畅度为代表),如图所示。此外,HARP还支持使用自主研发的基于网卡RTT检测的算法DARC,可以在没有任何交换机功能支持的网络中完成高性能的拥塞控制。4)确定性多路径并行传输和快速故障路径切换为了提高连接避开网络热点的能力,减少网络负载不平衡的影响,增强连接对网络故障的抵抗力,HARP采用多路径传输,如图图4.在HARP中,每条路径都有独立的拥塞检测能力,连接会根据路径的传输能力(拥塞状态)调度发送数据包。当某个设备在某条路径上发生故障时,连接仍然可以通过其他路径继续传输。同时,得益于自主研发的拥塞控制算法出色的网络控制和感知能力,连接路径管理模块能够快速可靠地检测路径故障,并在百微秒内重新检测到新的可用路径。例如,当单个spine交换机发生故障时,其网络中TCP连接断开的概率为24%,而HARP连接断开的概率为0。当单个Edge交换机发生故障时,其TCP连接断开的概率为其所在机架为75%,而HARP连接断开概率仍为0。同时,典型的TCP重连恢复时间约为1s,即使HARP路径出现故障,可在数百微秒内检测到新路径并恢复正常,恢复时间较TCP减少99.9%以上。HARP的快速故障检测主要得益于自主研发的拥塞控制算法,可以将网络排队控制在很低的水平。因此,我们可以在数百微秒内高置信度地判断网络发生故障,进而触发路径切换。不同于传统的基于ECMP(equal-costmultipath)hash的多路径方案,HARP采用确定性多路径传输。究其原因,虽然基于ECMP的随机生成的多路径可以在一定程度上避开网络热点,但其不可控的路径方向无法最大限度发挥多条物理路径带来的高带宽和高可靠性潜力。准确地说,一方面,在ECMP多路径方案下,一个连接的多条路径可能会在网络中的一条或多条链路上重叠,这会降低该连接的有效可用带宽;另一方面,如果具有重叠路径的节点发生故障,则可能会导致所有连接的路径发生故障(部分路径的数据传输和其他路径的ACK传输都经过同一个故障设备),如图所示。为了避免ECMP多路径的缺陷,在腾讯网络团队带来的自研路径控制能力的支持下,HARP的确定性多路径最大限度地利用了非重叠路径的聚合带宽及其带来的独立冗余。在4台spine交换机的网络测试中,当单个spine交换机出现故障时,相比于基于ECMP的随机多路径96%的连接存活率,HARP可以达到100%的连接存活率,如图5所示。当两个spine交换机发生故障时,HARP与ECMP多路径相比可以提高55%的连接存活率。HARP特性与优势“高可用”:主要针对服务可靠性高的存储服务(如腾讯的云硬盘服务(CBS,CloudBlockStorage)),当网络出现故障时,上层业务仍然可用,其性能抖动是小。“HighScalability”:主要针对传统的高性能计算服务(如汽车厂商对汽车流体动力学的仿真)。当参与计算的处理器核数不断增加时,系统的性能可以保持近似线性增长。“高性能”:这是协议的基本目标,主要体现在尽可能避免网络拥塞,在各种负载下获得极高的传输带宽和最小延迟(包括平均延迟和尾延迟)。腾讯云独创的“确定性多路径传输”、“自适应连接复用”、“自研拥塞控制算法”、“协议栈卸载”等技术,是HARP实现“高可用”、“高扩展性”的关键达到诸如“高性能”之类的目标。HARP的典型应用不仅仅针对云存储(CBS)、高性能计算(HPC)等基础场景,作为高性能的通信基础,HARP也可以应用于对网络要求高的数据中心的服务HARP发展展望目前,腾讯云正在不断完善HARP的高性能通信库,包括使用Socket、IBVerbs、libfabric、UCX接入HARP传输协议,扩大HARP生态。在硬件层面,腾讯云不仅可以基于竞争对手的标准以太网卡实现HARP的高可用和高扩展特性,还可以在自研的银山和玄灵智能网卡上运行HARP全协议栈。硬件卸载,以获得最佳性能。此外,在虚拟化场景中,类似于AWS在SRD上构建EFA,HARP也会作为虚拟服务器之间的高性能网络传输基地。随着HARP生态的不断完善,“HARPforEverything”的目标终将实现。腾讯工程师直接技术干货:1.H5开屏从龟速到闪电,奇伟是怎么做到的2.开发一款足球射击游戏只用了2小时3.闰秒终于要取消了!一篇文章详细解释了它的来源和影响4.变更的发布是否快速稳定?腾讯运维工程师经验发布