LinkedIn SONiC 采用情况总结
背景与挑战
LinkedIn 每年基础设施增长 34%,高带宽需求导致东向流量远超西向流量(每字节数千字节),主要应用包括应用调用图、Kafka 追踪、Hadoop 离线处理和机器学习等。
自建 NOS 与 SONiC 的选择
选择自建 NOS 的原因:
- Linux 基础:复用网络栈,利用相同工具和经验。
- 容器化:按需选择各层最佳组件,支持增量升级。
- 平台无关:通过 SAI 实现交换机抽象,拥有大型社区支持。
LinkedIn SONiC 开发贡献
LinkedIn 在 SONiC 上的主要开发贡献:
- FRR 协议栈集成
- 完全 IPv6 支持(ACL、链路本地等)
- BGP 收敛优化(FIB 加速、SAI 改进)
- BGP 容器热重启
- SONiC 系统和 SWSS 热重启
- 白盒设备上电
- AAA 服务化管理交换机
- ZTP 集成
- Open19 上电支持
- 容器和包的增量升级
- LinkedIn 工具集成(遥测等)
- 绿色通道代码已回馈社区
SONiC 经验与测试
- 路由安装收敛:优化 BGP 收敛时间。
- 测试:涵盖功能、性能、稳定性等方面。
- 规模化升级:实现大规模部署的升级方案。
SONiC 监控体系
- Collector:通过 gRPC 收集所有遥测数据(轮询、流式、拨入/拨出)。
- 数据存储:存入时序数据库(无模式、保留历史)。
- 展示:通过 GUI 展示数据,规则触发告警。
- 数据处理:支持数据加工(ML)和设备反向操作。
SONiC 遥测演示
- 规则示例:发送邮件告警。
- 功能展示:实时监控和告警机制。
SONiC 开发中功能
- 配置管理:
- 基于 Yang 的自定义模式,无后端转换。
- 语法和依赖验证。
- 数据存储和回滚。
- 插件即用。
- 可编程北向接口(gNMI)。
- 动态端口拆分:
- 运行时灵活增删端口。
- 平台化定义命名和验证。
- 配置管理系统保证完整性。
- 自动处理依赖关系。
- 支持开放 19 平台极致灵活性。
联系方式
- 网站:https://azure.github.io/SONiC
- 邮件列表:sonicproject@googlegroups.com
- 源代码:https://github.com/Azure/SONiC
- 维基:https://github.com/Azure/SONiC/wiki