行稳致远:腾讯自研DPU商用情况与技术演进

2022-09-14 10:13:57 浏览数 (1)

前言

2022年9月2日,第二届SmartNIC & DPU技术创新峰会在北京成功举办。

去年在第一届峰会上,腾讯以《从SmartNIC到DPU,腾讯自研智能网卡的“小才大用”》为分享主题,介绍了腾讯云为解决单服务器“核爆炸”,CVM和Bare metal统一算力底座,降低总体成本为目的,自研了水杉和银杉两代DPU。

今年在水杉和银杉已经历长时间上线和运营挑战的背景下,腾讯在第二届峰会上做了《行稳致远:腾讯自研DPU商用情况与技术演进》为主题的分享,以“行稳”和“致远”两个部分,介绍了腾讯自研DPU如何应对上线稳定运营,以及腾讯对未来长期演进的技术创新和思考。

图1 峰会分享现场

行稳:腾讯自研DPU上线和运营

腾讯自研DPU上线情况

2020年水杉在公有云上线,支持2x50G网络接口,核心目标是提升网络/云盘性能;2021年银杉在公有云上线,支持2x100G网络接口,核心目标是通过硬件加速,大幅提升网络和存储的性能。目前,腾讯自研DPU已经支撑公有云外部客户,以及微信、QQ、腾讯会议等自研业务上云 。

图2 腾讯自研DPU公有云批量上线

腾讯自研DPU,对自研星星海服务器的多种CPU进行了全量适配。通过引入严苛的intel Ltloop,AMDXIO测试工具,建立网卡与服务器的PCIE硬件兼容性测试流程,避免问题流入线上。基于腾讯自研的Smart EP技术,全量适配不同CPU架构服务器的BIOS扫描流程,包括Intel CPX/ICX/SPR, AMD Rome/Milan, Ampere等服务器架构。

腾讯自研DPU,针对腾讯云不同OS镜像进行了全量的适配,包括腾讯自研TecentOS,Linux,Windows,FreeBSD等。在适配过程中进行大量的性能调优工作,最大限度的减少对客户操作系统限制和迁移感知。

图3 腾讯云服务器和OS镜像全量适配

腾讯自研DPU如何应对海量运营

腾讯自研DPU实现了从DPU卡硬件生产到上线售卖全生命周期的高可靠设计和流程保障:

A.DPU卡生产阶段,建立了严苛的出厂测试流程

通过腾讯自研的装机软件,对DPU卡进行了板载CPU测试,PCIe、100G、DDR等高速接口测试,保障出厂的DPU卡硬件可靠。

B.DPU卡上架后,引入烤机流程

对DPU卡同服务器CPU之间的PCIe,DPU卡同TOR交换机之间的高速以太网接口,以及内部的高速DDR接口,进行长时间压测,防止硬件缺陷DPU卡上线。

C.上线运行时,通过故障预防、故障隔离和故障恢复来应对运营挑战。在这里重点介绍一下芯片软失效,热迁移,热升级和自动化运维工具。

1.芯片软失效

软失效会导致逻辑功能异常或则芯片内部RAM数据串改。由于单母机服务器子机密度越来越高,因此DPU软失效导致的芯片功能异常,会影响众多的客户。腾讯自研DPU通过主动保护和被动保护两大措施,来最大限度减低软失效带来的负面影响:

  • A.主动保护措施,芯片逻辑与业务软件联动,采用软硬件结合的方式支持业务端到端错误校验,达到系统级主动保护的目的。
  • B.被动保护措施,通过系统层面背景探测报文,检查芯片功能是否异常,出现异常时联动运维系统尽快备份云盘数据,迁移子机,保障SLA。

2. 热迁移

腾讯自研DPU卡虚机需要支持同腾讯标卡机型虚机互迁,主要因为:

  • A.腾讯的标卡已经在现网稳定运行,但是自研DPU卡在灰度放量阶段功能稳定性还需要长时间打磨。为了避免自研DPU卡出现共性问题后,不能热升级,导致所有自研DPU卡都有出问题的风险,需要支持从自研DPU卡虚机迁移到标卡机型虚机的能力。
  • B.为了能更多的将客户子机迁移到自研DPU卡上,加大灰度测试的压力,需要支持标卡到DPU卡母机的热迁移。
  • C.支持标卡和DPU卡之间的相互迁移,才能最大限度共享母机资源。

图4 腾讯云标卡和DPU卡虚机互迁

支持DPU卡虚机和标卡虚机互迁,面临2个挑战:

A.功能零损失

标卡场景下软件模拟virtio后端,比硬件DPU卡实现virtio 后端的feature要全。在自研DPU卡上,控制面通过vPDA屏蔽features差异。

腾讯云有不少客户子机是windows系统,windows下的virtio驱动不够友好,不完全按协议实现,DPU卡硬件做了很多针对windows的适配优化。

B.性能零损耗

软件模拟virtio 后端与子机前端有聚合特性,可以减少VM exit的次数,从而提高性能。DPU卡卸载的virtio 后端轮询速度比软件快,带来的副作用是打破了聚合状态,反而使得子机整体性能下降。腾讯自研DPU通过硬件virtio后端实现特殊算法,来达到减少VM exit的次数,达到性能零损耗的目的。

3.热升级

通过热迁移可以实现各种母机资源并池,以及用户无感的软硬件系统维护升级,从而提高了服务的高可用性。但是热迁移的代价较大,同时受用户程序运行状态限制,不能保证100%热迁成功,因此对于业务迭代,当前腾讯自研DPU是通过在线热升级来支持。

DPU热升级目的主要是业务特性迭代和在线Bug修复,DPU热升级需要满足:

  • A.主机不感知或轻感知,无异常重启
  • B.主机云盘不丢IO
  • C.主机网卡零感知

图5 支持软、硬件分层次的单独热升级

腾讯自研DPU实现了软、硬件分层次的单独热升级能力,既支持软件组件单独热升级,也支持硬件组件单独热升级:

  • A.支持SOC软件热升级,主要由于业务迭代热升级软件。
  • B.硬件Framework热升级,主要由于bug修复热升级硬件通道基础组件。
  • C.硬件业务引擎升级,主要由于业务迭代热升级业务处理引擎。

腾讯自研DPU在支持硬件热升级的开发过程中,通过软硬件结合的方法解决了热升级前流量热切换和硬件状态获取,热升级后硬件状态/配置恢复和校验等多个关键挑战,最终实现主机用户无感知或轻感知的硬件热升级。

4.自动运维工具

为了应对海量运营,基于全自研软/硬件DPU架构,在底层提供了丰富的工具。通过这些底层工具,可以构建各种海量运营需要的自动化运维工具,例如自动监控报警工具,自动网络排障工具,全链路时延探测工具,全链路网络连通工具等等。

  • A.HW checking包括:DPU芯片内部状态巡检;配置表项巡检;高速接口巡检等
  • B.Capture功能包括:关键接口抓包,加速引擎Pipeline快照,TCPDump等
  • C.Trace功能包括:连通探测Ping trace,时延抖动探测Fltrace,全链路VPC网络流量诊断vTrace等

致远:腾讯自研DPU新技术方向和思考

全量支持Socket Direct

水杉适配的copper lake机型,实测DPU内部DMA读时延,跨NUMA是不跨NUMA的访问的10倍,包速率因为latency增加下降了20%左右。AMD机型和ARM机型,跨NUMA的性能损失更大。

银杉卡适配的服务器都进行了相关硬件改造,支持Socket Direct架构,每个Socket都有直通的PCIe到DPU上。这样可以支持虚机的网络/存储流量走所在Socket的PCIe,避免跨NUMA流量。

图6 银杉改造支持Socket Direct架构

自研HARP多路径可靠传输协议

CBS前端处理性能有Scale up和Scale out两方面的需求:

  • A.Scale up需求:随着单母机CPU Core密度的增加,CBS Client需要的总处理性能也随之增加;在CBS云盘前端处理中,前端网络的TCP传输协议耗费较大比重的CPU资源。CBS前端网络最初采用内核态TCP协议;目前已经升级到用户态TCP协议,单core性能提升2倍;接下来将采用自研Harp可靠传输协议取代TCP,Harp协议支持卸载到硬件,可实现3倍的性能提升。
  • B.Scale out需求:云盘大IO的流量模型,容易导致单路径拥塞排队,造成云盘延迟、抖动大;同时前端网络属于单点故障,出问题时云盘恢复时间慢。

Harp自研协议利用IDC多条路径延迟差小、乱序少的特点,通过多路径负载分担,增加突发带宽;同时通过与自研交换机配合的多路径拥塞控制算法,减少网络排队延迟和丢包。采用自研Harp协议后,多路径避免单路径故障,故障链接流量会自动切换到其它路径;同时采用与交换机的路径算法HASH一致,保证切换成功率和收敛时间,最终可以实现上层业务零感知。

图7 CBS前端网络采用HARP自研多路径可靠传输协议

对下一代可编程虚拟化和云IO数据面加速的思考

智能网卡核心价值是虚拟化资源的管理,当前腾讯自研DPU已经把Hypervisor和QEMU的IO工作下沉到智能网卡上,把更多计算资源留给子机/容器;未来还需要支持RDMA、NVMe等设备,做到统一硬件底座。为了支持不同子机网卡设备的混部和迁移,就需要硬件支持可编程能力,包括控制面的Smart Endpoint和数据面的Smart DMA;当前腾讯自研DPU主机网络/存储下沉到智能网卡,获得了硬件的高性能,低延迟,对子机网络隔离性好,抖动小。下一代面临的挑战是用户的个性化需求,例如自定义NFV、安全等需求,这些都是场景驱动的,对可编程性要求很高。当前我们是利用芯片硬件可编程能力,通过热升级来支撑;下一代需要演进到更灵活的软件定义可编程架构,需要考虑在高性能可编程Pipeline和灵活的软件可编程轻核间做平衡。

图8 下一代可编程虚拟化和云IO数据面

总 结

腾讯自研DPU在水杉、银杉两代产品的跌代中,紧密服务于腾讯自研上云和公有云战略,在腾讯云实现了海量部署和稳定运营。行稳才能致远,未来腾讯DPU团队会继续扎根于腾讯云业务,通过不断跌代,打造高性能、低延迟、高可靠、强运营的DPU系列产品。

0 人点赞