腾讯网络硬件验证中心——打造“硬核”技术基石

  近几年,腾讯云业务的迅猛发展让基础网络设施的“大规模”成为了一直绕不开的话题,这给网络建设、运营都带来巨大挑战,因此需要一个快速迭代、智能运营、场景丰富、成本节约的网络产品。于是,我们坚定地走在了网络产品自研的道路中,从单纯的软件自研,再到如今的大规模软硬皆自研,“网络硬件验证中心”便是这一盛况的“幕后英雄”。打一块好铁,除了需要具备“自身硬”的基本条件外,最重要的是要懂得客户怎么用的顺手。对此,“网络硬件验证中心”结合腾讯业务需求,全方位地打通DCN(Data Center Network)、DCI(Network Center Interconnection)、OTN (Optical Transport Network)的全链路网络硬件技术。

  腾讯云业务的增长和用户需求的变化驱动网络技术的迭代,过去5年腾讯基础网络经历几次关键的演进。

  2018年,腾讯云业务开始井喷式增长,基础网络开始大规模建设。为优化网络设备的采购成本,我们对互联硬件和网络设备进行解耦。解耦后网络设备和互联硬件均存在多厂家、多型号、多版本,兼容性验证需要遍历N种组合,当时只能依赖设备商进行兼容性适配验证,适配周期长,并且基本上没有设备商能做到全场景的组合验证。这导致网络建设和现网运营中存在各种适配问题,我们当时扮演的是“网络消防员”角色,在生产环境线上debug,到处“救火”。对于简单问题,比如设备配置异常、模块收发光异常、版本不匹配等,可以快速定位,但对于复杂问题,比如链路单通、抖动、丢包、端口批量不linkup等,生产环境根本不具备debug条件,问题定位周期长。

  随着移动互联网的快速发展,用户对网络服务的定制化要求越来越高,希望网络服务灵活多变,一张网络可以满足不同的业务需求,并且质量高,成本低。为此,我们开始定制网络产品,在硬件上做减法,打造符合云网络的硬件,在软件上做差异化,打造运维智能化、应用场景化的网络应用。这有点像“盖浇饭”,焖煮一锅大米饭,根据顾客的需求烹饪浇头即可,但大米饭的质量直接影响顾客的体验。同样,定制一款满足不同用户需求的网络硬件,对性能、质量有很大挑战。由于定制的网络硬件,测试验证在设备商完成,无法覆盖所有云应用场景。这导致定制化的网络硬件,现网运行一段时间后,开始出现一些内存异常访问、端口I2C异常等问题,由于定位手段有限,导致硬件问题定位周期长,严重影响网络质量,运营压力大。

  为此,我们对网络演进过程中遇到的问题进行详细的复盘,总结出“打铁还需自身硬”的道理,想要打造一把“宝剑”,需要经过反复的捶打、锻造。打造一款质量、性能过硬的网络硬件,需要对技术方案、应用场景充分验证。基于此,2018年底,我们开始规划建造网络硬件验证中心,经过几年的建设和发展逐渐成熟,如图1-1所示,如今的网络硬件验证中心总面积超过150平方米,由高速信号实验室、兼容性验证实验室、系统验证实验室和环境实验室组成。我们在不同的实验室配置了不同的仪表和设备,网络硬件验证中心具备从信号层面到系统层面全链路验证能力,并且可以快速定位分析现网问题。

  在高速信号实验室,我们配备了信号测量必备的仪表,如图1-2所示,比如高速采样示波器、高速误码仪、矢量网络分析仪VNA(Vector Network Analyzers)、不同带宽的CDR(Clock Data Recovery)、不同封装类型的MCB / HCB(Host / Module Compliance Board )、低速示波器、光功率计、可调光衰、I2C 通信板、光开关、稳压电源等。对自研网络产品进行信号级别的评估,如以太网端口发端电眼一致性、光模块发端光眼、SI信号完整性、I2C信号一致性等,如图1-2所示。

  在兼容性验证实验室,我们配置现网所有型号的网卡、接入线缆、LEAF/SPINE/CORE交换机、光模块、数通仪表TestCenter,如图1-3,可以充分且快速地验证各部件之间兼容性,比如验证同型号不同厂家光模块互联互通,不同型号网卡与不同厂家线缆、交换机互联之间通信链路是否正常。

  系统验证实验室配置现网中所有型号的DCI交换机、开放光产品、光模块,如图1-4所示。在系统验证实验室可以1:1还原现网真实网络拓扑,进行DCI交换机、传输设备、互联模块之间系统适配,验证端到端系统运行稳定性以及波分保护倒换成功率。

  环境实验室配置了两个不同级别的温箱,如图1-5所示,设备热流仪(左)和温箱(右),热流仪用于评估芯片和光模块,温箱用于评估网络交换机。主要是模拟恶劣的工作环境,研发阶段将网络产品暴露在高温高湿、变温、低温、温循等不同环境下,评估:1)光模块工作稳定性。高低温环境加速光模块激光器老化,排除早期老化风险。2)设备端口参数的健壮性。在不同温湿度环境下,验网络产品物理端口参数设定margin是否充足。3)系统工作稳定性:验证产品自身系统在不同温度环境下工作是否稳定性。

  随着网络硬件验证中心基础设施建设完成,我们不光拥有了从交换机硬件,到互联硬件,再到传输硬件的全方位“地利”条件。更是结合“人和”,通过腾讯的网管系统,更好地贴合了腾讯现网产品的快速迭代验证需求,将大量重复性工作进行自动化处理,尽量减少重复劳动。分别对部件级、设备级和系统级不同层面测试进行自动化实现。

  自研网络产品研发过程中有很多通用部件需要对其性能信号的一致性进行评估,比如说交换机、波分、光模块端口收端电眼,光模块的发端光眼、I2C Timing等高低速信号,这类测试具备通用的测试流程,但每个产品上指标的协议规范是不同的,通过实现测试流程自动化,来提高效率。

  以光模块光电指标测试为例进行说明,腾讯当前现网使用的不同厂商不同型号的互联模块超过100种,在光模块产品准入测试或者产品迭代过程,全靠人工按测试用例进行测试,测试的工作量是巨大的,并且人工测试结果记录存在误差。为了满足效率和准确度的要求,我们建设光模块指标自动化测试能力,减少人为重复操作。通过开发自动化测试脚本,对光模块测试所用到仪表进行集中控制,实现测试自动化。

  如图2-1所示,光模块光学指标测试组网关系图,把测试仪表高速采样示波器,误码仪,光开关和I2C Adapter分别通过USB数据线接入到同一台控制主机(controller)。这里需要人工参与的点只有更换模块样品和触发测试流程,自动化脚本会自动输出光眼并保存测试结果,如图2-2所示。针对一款模块8只样品的测试工作,手动测试与自动化测试对比,由5天/人提高到2天/人。

  系统级兼容性测试按测试场景,可分为接入线缆兼容性测试和互联模块兼容性测试。接入线缆兼容性是测试接入线缆与交换机、网卡整条链路的兼容性,互联模块兼容性是测试同种型号不同厂家模块之间对接兼容性和模块与交换机之间的兼容性。这部分自动化测试组网如图2-3所示,将所有网络设备包括都接入同一个管理网内,待测网络设备接入同一个智能PDU上,对设备供电进行统一化管理。完成基本的测试组网后,在controller上触发对应的兼容性适配测试程序,程序自动完成对网络设备配置下发,然后开始跑常规的测试用例,最后自动保存测试报告,并给出测试结果分析。

  光模块兼容性适配可以自动完成以下4个测试用例。1)测试仪打流;2)交换机冷、热重启;3)端口震荡;4)I2C压力访问;执行完测试流程后。

  接入线缆兼容性适配可以自动完成以下6个测试用例:1)服务器对打iperf流量;2)交换机/服务器冷、热重启;3)交换机端口震荡;4)服务器端口震荡;5)I2C压力访问;6)服务器错包分析。

  保护倒换是系统专项测试之一,通过模拟光纤故障,反复触发系统倒换,通过仪表监测倒换动作发生时,流量中断时长。每个设备版本迭代,需进行上千次保护倒换测试,常规方式是手动拔纤触发倒换,测试周期需1周,自动化倒换使测试周期缩短至8小时。同时人工拔纤方式不稳定,人工操作次数过多容易动作变形,会将设备超时误判为拔纤操作问题,不利于偶发问题的发现,自动化倒换测试触发动作稳定,结果采集规范,易发现低概率偶发缺陷。

  保护倒换测试依托OXC光交叉平台、网络测试仪、智研平台等,将上万次的拔纤倒换测试自动化。倒换触发方面,通过OXC制造单芯中断、双芯中断场景,节约了人力。结果监控方面,如图2-4,测试仪表、设备性能、设备告警均全面分析,更易暴露偶发问题。保护倒换自动化测试,可覆盖8种倒换方式,累计测试10万次量级,推动7次版本迭代,保障了项目高质量交付。

  光网络系统测试自动化平台能力已经构建完成,如图2-5,设备层通过OXC实现动态拓扑调整,接口层打通各类仪表、设备,顶层接入公司级公共服务平台,应用层依据测试用例逐步实现中。

  基础设施建设完成之后,各方面能力是否符合预期,实战是做好的检验方式。让我们一起看看网络硬件验证中心如何利刃出鞘,在解决实际问题中发挥其独特的优势。

  借助于网络硬件验证中心,我们把系统后端验证前置到网络产品研发阶段,网络硬件DVT阶段开始进行系统兼容性验证和端到端系统验证。这样做到好处是,系统后端验证与网络硬件研发并行,系统适配的问题在研发阶段暴露并解决。

  典型的例子是100G PAM4接入网络产品研发项目,涉及的网络硬件包括TCS840接入交换机,200G Y-ACC/AOC 接入线所示。在DVT阶段后期,网络产品功能验证完成之后,我们直接进入互联兼容性适配,验证网卡、线缆、交换机整条链路互联互通性,链路性能是否满足现网使用标准。整个项目的研发周期至少缩短3个月。

  腾讯100G PAM4接入网络提供200G Y-AOC / DAC / ACC光电共存的互联方案。由于100G接入网络采用高阶PAM4调制技术,并且腾讯是业内最早尝试使用PAM4网卡、线缆、交换机的互联网厂商,没有成熟的经验参考,经过我们几个月的调试,网卡和交换机的固件版本先后迭代十几个,修复问题近20项,成功研发出200G 接入线缆、完成网卡、交换机的物理层参数并批量上线网卡。

  回顾调试过程,我们攻克了两大阻塞问题: 1)200G Y-AOC互联linkup时间长。最初使用200G Y-AOC进行网卡和交换机互联时,链路linkup时间比较长并且不稳定,时间从30s到3min不等。通过分析网卡端口物理层状态机发现,网卡和交换机之间自协商(AN, auto-negotiation,参考IEEE802.3 Clause 73)过程长,导致linkup超时。结合腾讯自研硬件特征参数及应用场景的需求,对网卡的AN过程状态机进行优化,最终把linkup时间稳定控制在15s以内。2)200G Y-DAC/ACC互联链路性能不符合预期。在200G Y-DAC/ACC进行互联适配时发现链路性能严重不符合预期,pre fec ber 1E-4,pre fec margin=0,超出fec纠错能力,最直接的表现就是会有丢包。通过系统分析,该问题有2种方面原因:a)200G Y-ACC链路长,信号严重失真,收端系统无法识别。b)网卡和交换机系统之间Link Training算法有缺陷。针对以上2个因素,分别从线缆、系统端寻找解决方案。寻找最优的re-driver IC参数设定,保证整条链路的线性度和高频特性。系统端link Training算法优化,详细link training机制参见IEEE 802.3 Clause 72。经过以上两种方向的优化,链路性能最终符合预设标准,pre fec ber 1E-7, fec margin 50%。

  借助于网络硬件验证中心,我们可以对现网问题快速复现,进一步分析出故障根因,并提出有效的解决措施。另外,针对同类的问题,我们可以在实验室进行全场景充分验证,输出有效的指导方案给到现网运营团队。

  典型的现网故障处理案例是:21年腾讯两个数据中心之间光纤链路抖动,传输保护倒换完成之后,数通交换机仍有部分链路不通,导致两个数据中心内网质量出现严重丢包,影响腾讯重要业务。现网故障网络拓扑如图3-2所示。

  接到现网报障后,我们在系统验证实验室搭建和现网同样的网络环境进行定位复现,经分析,主要原因是Switch-1交换机聚合链路的抖动,触发了上层协议的重新收敛。逻辑聚合口linkup时间长,现网Switch-1交换机的配置不能稳定滤除物理层up/down对上层协议的影响。对此,我们在系统验证实验室充分验证合理的网络配置,并把配置提供给现网运营团队,2天之内找到根因并解决问题。另外,针对现网中相同的场景,我们在系统实验室充分验证波分保护倒换成功率,通过遍历互联关系、设备型号、设备版本,累计测试120个场景,发现20多个缺陷,最终将现网波分保护倒换成功率提升至99.9%。

  腾讯硬件验证中心的一个重要功能是对网络新技术进行快速验证。随着网络产品的迭代,网络技术也在不断演进,当前网络物理通道单通道速率正从56G向112G/224G演进。结合56G研发过程的经验和教训,首次尝试新技术面临的挑战是巨大的,为了降低研发期间试错成本,因此需要在研初期对光电芯片的性能进行全面评估,判断是否符合产品设计要求。为此,我们对下一代112G主流Serdes IP能力进行评估,如图3-3所示,选择满足腾讯应用场景的芯片,从而在产品设计上达到质量、效率、成本上的平衡。

  腾讯网络硬件验证中心具备丰富的网络设备资源,灵活多样的验证能力,不仅可以进行信号层面的评估验证,还可以进行全场景的端到端系统验证,在腾讯网络产品研发、现网问题定位、新技术评估方面发挥着重要作用。另外,随着网络技术的演进,网络硬件验证中心也在不断提升各项技术能力,更好地服务腾讯网络产品研发和现网质量维护,为腾讯自研网络质量保驾护航。