首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >行稳致远:腾讯自研DPU商用情况与技术演进

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

作者头像
SDNLAB
发布2022-09-14 10:13:57
2.6K0
发布2022-09-14 10:13:57
举报
文章被收录于专栏:SDNLABSDNLAB

前言

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系列产品。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云硬盘
云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档