相比传统商业交换机,白盒交换机具有更好的开放性和灵活性,解决了运维管理方面的诸多痛点,随着SONiC的不断完善和白盒交换机市场的成熟,京东基于SONiC研发了自己的白盒交换机,更加适合京东数据中心的应用场景,为整体基础设施提供更好的服务和支持。
自从软件定义网络(SDN)出现以后,市场对白盒交换机的需求越来越大,特别是超大规模云服务提供商的出现,其自建云数据中心将需要大量的白盒交换机。白盒交换是SDN的副产品,它是将物理网络交换机硬件和网络操作系统(NOS)进行解耦的结果。
白盒交换机主要可分为支持OpenFlow协议的OpenFlow白盒交换机和裸白盒交换机。其中,OpenFlow白盒交换硬件开放程度并不高,其网络操作系统往往也被厂商绑定,相对比较封闭,该类交换机通过支持主流的OpenFlow协议如OpenFlow1.3版本,连接控制器实现SDN网络的转发与控制分离。OpenFlow交换机只负责根据OpenFlow流表进行匹配转发,本身没有控制功能,所以也可以被称为白盒。
目前,白盒交换机产业打造出了一个相对完整的生态圈。通过通用的硬件设备,消除对特定厂商的依赖,降低成本。通过开放的软件,增强网络的灵活性与敏捷性。
SONiC(Software for Open Networking in the Cloud),是由微软主导的一款开源交换机操作系统。该系统由多个容器化组件组成,这样一种创新方案使得增加新的组件和功能变得非常方便。
SONiC引入了Redis数据库,存储配置数据及运行状态,提高了数据的可视化,大大降低了定位解决问题的难度。进程故障的时候,交换芯片继续保持转发,进程恢复后从数据库重新获取状态继续运行,不但可以保障系统的稳定运行,还可以实现单进程升级功能。
SONiC定义了SAI(Switch Abstraction Interface),这是一套独立于硬件平台的交换机芯片控制抽象接口。SAI的存在使得SONiC可以支持多个厂商的芯片,只需关注上层网络应用,不需要考虑各芯片SDK的差异性。
京东云基于SONiC架构,开发了适用于京东数据中心场景的交换机操作系统JDNOS。
在网络中运行的交换机,通常是设备商提供的,专有且闭源。由于不同商业交换机的命令行和配置方式都不相同,监控接口标准不统一等因素,给网络运维带来了很大的复杂性,而且不便于管理。
针对以上问题,JDNOS自研统一配置平台定义了统一的配置模型,实现了配置管理的统一化和标准化,大大提升了运维效率。
针对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等;对于京东,自研交换机属于起步阶段,我们也在不断尝试和探索,积累储备,为技术的标准化和降低运维成本做出自己的贡献,努力做出更好的产品, 通过技术驱动和创新,为业务带来更大的价值。