zoukankan      html  css  js  c++  java
  • 11.11 应对海量访问的网络基石 京东智联云自研交换机发展之路

    京东11.11全球热爱季累计下单金额超 2715亿元 ,再次突破历史最高下单金额,实现完美收官!要应对不断增长的网络带宽增长及海量访问请求,网络稳定性显得尤其重要。京东智联云作为京东11.11坚实的技术基石,经过长期的积累在2020年推出 自主研发的白盒交换机 ,并在2020年下半年逐步开始线上部署,在11.11大促期间稳定运行,提高了网络的可运维及可监控性,有力地保障了大促期间网络的稳定性。

    一、为什么自研交换机?

    交换机是数据中心必不可少的网络设备,过去京东数据中心往往会采购多个品牌的交换机。传统的交换机是一台封闭的设备,无论软硬件对用户来说都是封闭的领域。各厂商产品从硬件到软件,从配置到监控,从部署到管理,没有统一的技术标准,运维、监控平台需要分别适配各种产品。

    相比传统商业交换机封闭式的黑盒模式,京东自研交换机做到软硬件解耦,直接从硬件厂商订制硬件,芯片厂商选择交换芯片,根据自己的需求来设计软件系统,对外提供统一的接口。京东自研交换机系统JDNOS,基于开源SONiC,专注于京东网络需求,为各应用场景提供网络解决方案,与网络平台无缝对接, 提供统一的自动化部署及管理,高效精细化的监控。

    二、自动化部署及管理

    数据中心网络管理周期从网络建设开始,到设备交付,部署,变更,一直到下线。为了能够提高全周期效率,提供高可靠管理服务,京东自研交换机与网络管理平台一起,实现了网络设备上电以后自动远程获取并安装版本,加载配置,系统自检,并上报平台;针对网络设备的日常变更,网络管理平台通过自研交换机提供的统一接口,自动完成网络割接;为了版本的快速迭代并实施应用,自研交换机实现了热重启功能,进程级、docker级以及整个系统级的版本升级都可以做到转发面的流量不中断。

    1,统一的管理平台

    除了提供传统的CLI配置方式,京东自研交换机提供了_GRPC接口_,定义了yang配置模型,管理平台可以通过GRPC,对网络设备进行批量配置变更。

    传统的网络变更时,运维人员需要通过SSH登陆到设备的CLI,进行命令行的逐条配置,效率很是低下,即使通过程序进行自动化配置,但面对大规模数据中心超量级设备,效率上也无法很好的满足。

    京东自研交换机通过GRPC接口,接受yang模型对应的json格式的配置,并使其生效,提高了网络变更的效率,并最大程度保证正确性。

    2,ZTP

    ZTP(Zero Touch Provisioning)功能提供了网络设备的自动化部署服务,省去了设备上架以后,人工手动安装系统版本,导入配置的繁琐重复操作,节省了人力成本,大大提高网络部署工作效率。京东自研交换机设备上电以后,自动通过管理网络,访问管理平台,下载系统版本并安装,下载配置文件并加载,并对网络状态进行自检,确保部署完成并上报平台。

    3,版本升级

    自研交换机的灵活可控,可以大大缩短数据中心网络新业务落地实施的周期。面对网络功能新的需求,自研交换机可以快速给出解决方案并上线。JDNOS提供_warm reboot即热重启功能_,能够做到转发平面状态保持不变的情况下,对控制平面的系统进行重启。无论是进程级、docker级、系统级的重启都可以在流量不中断的情况下进行。通过warm reboot功能,京东自研交换机可以在业务不感知情况下,进行版本的迭代升级。

    京东数据中心使用 BGP路由协议 ,设备版本升级并warm reboot时,控制面会中断,BGP session也会down掉。但此时转发层面是工作正常的,所以对端设备不需要撤销路由,这样流量还可以经由正在重启的设备转发。所以BGP两端设备需要开启GR特性,这样即使对端设备BGP session down掉,路由也会一直保持,流量正常转发。

    但开启了BGP GR功能之后,会导致某些异常情况(比如链路单通)下,路由不能快速收敛,即使BGP session已经变down,但在GR timer超时前,路由会一直保持,从而导致路由不能快速切换,引起网络丢包。针对于此,京东自研交换机给出了 BGP+BFD的解决方案 ,BFD功能保证了在发生一些异常情况时,可以绕过BGP GR路由保持特性,做到低于秒级的路由快速收敛。

    三、高效精细化监控

    传统的网络监控方式有snmp get,CLI以及syslog,这些也是京东网络之前一直在使用的监控手段。但snmp get和CLI都是主动去get的方式,即一问一答的交互方式,效率低下。为了达到更低的时间精度,只能加大查询频率,这样又会导致设备CPU利用率变高,网络负载增大。JDNOS通过Telemetry的方式进行网络监控,支持通过推送模式主动向监控平台上送设备数据。监控平台可以订阅监控内容,包括 接口流量统计CPU或内存数据电源风扇光模块 等信息,设置推送的周期,等等。相对传统的拉模式,提供了更实时高效的数据采集功能,尤其是网络规模不断增大的情况下。

    1,状态监控

    JDNOS系统架构是基于database的,监控平台可以通过telemetry订阅监控database中的任何数据,因此可以自定义更多的监控内容,包括光模块各属性(收发光功率,温度,电压等),BGP邻居状态,交换机buffer的状态(使用率,阈值)等等,监控平台可以实时得获取到网络设备的状态。

    流量统计是网络监控很重要的一项监控内容,传统的流量监控是粗粒度的,基于分级的监控,对于瞬间突发性的流量可能无法感知。尤其是对于京东商城每年618或者双11的大促活动,这种粗粒度的统计,监控平台无法监控到某一时间点的瞬时流量波动。JDNOS开发了 基于毫秒级的流量监控,在监控数据的颗粒度上,从分钟级提升到秒级甚至到毫秒级,可以看到任何一秒的流量数据,使监控进入了毫秒级时代。  JDNOS以毫秒级的粒度获取ASIC的端口流量统计,并存入database中。为了减小网络负载,减轻监控平台压力,使用Telemetry的方式以秒级的频率向监控平台推送统计数据。这样监控平台可以得到基于毫秒级粒度的流量波动图。

    2,关键事件监控

    网络异常状态的监控是一项重要的监控内容,运维人员需要实时看到网络到底发生了什么事情,会对业务流量产生什么样的影响。JDNOS实现了 对网络丢包,队列拥塞,转发时延等的监控,并能够跟踪流量路径,尽可能的提供流量的可视化。 针对芯片级一些异常,比如IO总线问题、寄存器访问出错、DOS攻击、表项出错等能够及时上报,给出报警。

    3,故障预测及修复

    网络运维中,如果能够及早发现潜在隐患,进行排除修复,将大大减少网络故障,减少对业务层面的影响。

    光模块作为25G/100G网络中的重要一环,与交换机有较强的耦合性,光模块的可靠性将很大程度上影响整个网络的稳定程度。JDNOS通过 对光模块的实时监控,对电压、电流、收发光功率、温度等参数进行分析,预测光模块是否存则故障风险,并给出预警。 运维人员可以尽早采取措施,以减小对业务的影响。链路的抖动也是网络中常见的问题,JDNOS对此也做了监控,并结合模块参数分析,给出预警。

    为了保证交换机系统软硬件状态的一致性,JDNOS定期对 接口状态vlanARP路由ACL 等进行匹配性检查,如果发现问题,及时给出告警。针对进程级的监控,及时发现出错的进程,在不影响系统运行的情况下,自动进行进程修复。

    传统交换机作为一个黑盒产品,只能对流量及协议方面进行监控。自研设备可以做到系统层面的监控,对设备的运行状态进行全方位的监控,及时发现设备运行中的问题及隐患。通过更精细化的监控,对设备及链路的预警,自研交换机稳定性得到了很大提高,至今保持着0故障的记录。

    四、总结

    区别于传统的通用型交换机,京东智联云自研交换机结合京东数据中心网络需求,聚焦于自身业务场景,把运维经验与设备系统结合,_提供高可靠灵活可扩展的网络服务。_未来京东智联云将继续丰富自研交换机功能,拓展应用场景,提供更加高效智能化的网络管理及监控方案,满足京东集团及京东智联云用户带宽日益增长、功能愈加复杂的网络需求。

    推荐阅读:

    欢迎点击京东智联云,了解开发者社区

    更多精彩技术实践与独家干货解析

    欢迎关注【京东智联云开发者】公众号

  • 相关阅读:
    POJ2778 DNA Sequence AC自动机上dp
    codeforces732F Tourist Reform 边双联通分量
    codeforces786B Legacy 线段树优化建图
    洛谷P3588 PUS 线段树优化建图
    codeforces1301D Time to Run 模拟
    codeforces1303B National Project 二分或直接计算
    codeforces1303C Perfect Keyboard 模拟或判断欧拉路
    codeforces1303D Fill The Bag 二进制应用+贪心
    python之路——使用python操作mysql数据库
    python之路——mysql索引原理
  • 原文地址:https://www.cnblogs.com/jdclouddeveloper/p/14003810.html
Copyright © 2011-2022 走看看