京东网络开放之路自研交换机探索与实践

38次阅读

共计 1886 个字符,预计需要花费 5 分钟才能阅读完成。

相比传统商业交换机,白盒交换机具有更好的开放性和灵活性,解决了运维管理方面的诸多痛点,随着 SONiC 的不断完善和白盒交换机市场的成熟,京东基于 SONiC 研发了自己的白盒交换机,更加适合京东数据中心的应用场景,为整体基础设施提供更好的服务和支持。

白盒交换机的出现

自从软件定义网络(SDN)出现以后,市场对白盒交换机的需求越来越大,特别是超大规模云服务提供商的出现,其自建云数据中心将需要大量的白盒交换机。白盒交换是 SDN 的副产品,它是将物理网络交换机硬件和网络操作系统 (NOS) 进行解耦的结果。

白盒交换机主要可分为支持 OpenFlow 协议的 OpenFlow 白盒交换机和裸白盒交换机。其中,OpenFlow 白盒交换硬件开放程度并不高,其网络操作系统往往也被厂商绑定,相对比较封闭,该类交换机通过支持主流的 OpenFlow 协议如 OpenFlow1.3 版本,连接控制器实现 SDN 网络的转发与控制分离。OpenFlow 交换机只负责根据 OpenFlow 流表进行匹配转发,本身没有控制功能,所以也可以被称为白盒。

目前,白盒交换机产业打造出了一个相对完整的生态圈。通过通用的硬件设备,消除对特定厂商的依赖,降低成本。通过开放的软件,增强网络的灵活性与敏捷性。

自研交换机探索与实践——JDNOS

SONiC(Software for Open Networking in the Cloud),是由微软主导的一款开源交换机操作系统。该系统由多个容器化组件组成,这样一种创新方案使得增加新的组件和功能变得非常方便。

SONiC 引入了 Redis 数据库,存储配置数据及运行状态,提高了数据的可视化,大大降低了定位解决问题的难度。进程故障的时候,交换芯片继续保持转发,进程恢复后从数据库重新获取状态继续运行,不但可以保障系统的稳定运行,还可以实现单进程升级功能。

SONiC 定义了 SAI(Switch Abstraction Interface),这是一套独立于硬件平台的交换机芯片控制抽象接口。SAI 的存在使得 SONiC 可以支持多个厂商的芯片,只需关注上层网络应用,不需要考虑各芯片 SDK 的差异性。

京东云基于 SONiC 架构,开发了适用于京东数据中心场景的交换机操作系统 JDNOS。

配置平台优化

在网络中运行的交换机,通常是设备商提供的,专有且闭源。由于不同商业交换机的命令行和配置方式都不相同,监控接口标准不统一等因素,给网络运维带来了很大的复杂性,而且不便于管理。

针对以上问题,JDNOS 自研统一配置平台定义了统一的配置模型,实现了配置管理的统一化和标准化,大大提升了运维效率。

ARP 协议

针对 TOR 的应用场景,尤其是去堆叠方案,JDNOS 改进了原 SONiC 的 ARP 实现,增加了 ARP 探测,可以做到秒级的 ARP 探活。SONiC 中上层软件 ARP 表项是从 kernel 中获取,JDNOS 的方案中,上层 ARP 表项状态是单独维护的,并反过来控制 kernel 中的 ARP 状态。对链路异常,MAC 老化等事件,可以做到 ARP 快速探测,转发快速收敛。

上线策略

JDNOS 的上线采用了异构去堆叠方案(具体方案可参考《异构去堆叠 | 一种完美提升网络高可用 SLA 的方案》)

  • 交换机完全独立,支持异构,完全解耦
  • 降低上线风险,增强可靠性
  • 推动自研交换机快速上线

硬件组件接口标准化

JDNOS 需要适配多家 ODM/OEM 硬件厂商的白盒交换机。针对每家厂商硬件各组件驱动实现方式的差异性,JDNOS 定义了统一的 sysfs 接口,监控并控制各硬件组件。针对数据中心对光模块的高规格监控需求,JDNOS 定义了详细的光模块信息接口,如电源、电压、温度、功率以及各项阈值等,以及风扇、电源、各传感器温度等相关接口,实时监控其状态,出现异常的情况下能及时告警,并上报监控系统。

自主研发监控内容

JDNOS 支持 Telemetry,由于 Telemetry 可以实现主动推送任何需要监控的系统运行状态到监控服务器,因此代替了原有的 SNMP、日志等的方式,实现监控的统一化,同时也带来了更高的效率。JDNOS 将更多的监控内容写入数据库,供 telemetry 实时采集并推送,给监控提供更精细的诊断探测。

结语

未来我们即将上线自动化部署服务,更好提升效率;支持 warm reboot,软件升级不中断业务;继续丰富完善监控内容,支持网络可视化;对 LEAF 交换机的研发部署;对特定场景的功能支持,例如 RDMA,EVPN,SR 等;对于京东,自研交换机属于起步阶段,我们也在不断尝试和探索,积累储备,为技术的标准化和降低运维成本做出自己的贡献,努力做出更好的产品,通过技术驱动和创新,为业务带来更大的价值。

正文完
 0