部署 。FBOSS不使用像Chef或Jenkins这样的现有自动化软件部署框架,而是使用自研的名为fbossdeploy的部署软件 。开发我们自己的部署软件的主要原因之一是允许与现有外部监视器进行更紧密的反馈循环 。我们有几个现有的外部监视器,可以持续检查网络的健康状况 。这些监视器检查链路故障、BGP收敛时间、网络可达性等属性 。虽然为部署通用软件而构建的现有部署框架可以很好地防止软件相关错误的传播,例如死锁或内存泄漏,但它们不是为了检测和防止整个网络范围的故障而构建的,因为这些故障可能很难从单个节点检测出来 。因此,构建fbossdeploy可以快速响应部署期间可能发生的整个网络范围的故障,例如可达性故障 。FBOSS部署过程(代号叫金丝雀)与其他持续部署过程非常相似,并分为三个不同的部分:持续部署、每日部署和分阶段部署 。这三个部分中的每一个都是为了可靠部署这个目的 。我们目前是大体按月的部署周期,按月的部署周期包含“持续部署”、“每日部署”和“分阶段部署”,以确保高度的运营稳定性 。
配置设计 。网络设备的配置在数据中心环境中高度标准化 。给定一个特定拓扑,每个设备都使用模板和自动生成的配置数据进行自动配置 。例如,交换机的IP地址配置由交换机的类型(例如,ToR或aggregation),还有集群中的交换机上游/下游邻居确定 。
配置生成和部署 。配置数据由我们的网络管理系统Robotron生成,并分发给每个交换机 。然后,FBOSS代理中的本地配置生成器使用配置数据并创建活动配置文件 。如果对数据文件进行了任何修改,则会生成新的活动配置文件,并将旧配置存储为分阶段配置文件 。这种配置过程有许多优点 。首先,它不允许多个实体并发修改配置,这避免了配置出现不一致 。其次,它使配置可重现且确定,因为配置是版本化的,并且FBOSS代理总是在重新启动时读取最新配置 。最后,它避免了人为配置错误 。另一方面,我们的全自动配置系统也存在缺点 – 它缺乏功能强大的人机交互式CLI,使得手动调试错误变得困难;此外,不支持增量配置更改,这又使得每次配置更改都需要重新启动FBOSS代理 。
监控和故障处理 。传统上,数据中心运营商使用标准化的网络管理协议(如SNMP)从供应商网络设备收集交换机统计信息,例如CPU/内存利用率、链路负载、数据包丢包情况和其他系统运行健康状态 。相比之下,FBOSS允许外部系统通过两种不同的接口收集交换机统计信息:Thrift管理接口和Linux系统日志 。Thrift管理接口以Thrift模型中指定的形式提供查询 。该接口主要用于监控交换机上层的使用情况和链路统计信息 。鉴于FBOSS作为Linux进程运行,我们也可以直接访问交换机微服务器的系统日志 。这些日志专门用于记录事件类别和失败事件 。这允许管理系统监视底层系统运行状况和硬件故障 。对于收集的统计数据,我们的监控系统FbFlow 根据数据类型将数据存储到Scuba或Gorilla数据库中 。存储数据后,我们的工程师可以在很长一段时间内在高层次查询和分析数据 。监控系统可以轻松获得监控数据 。
ONIE+ONL+SAI+SONICSONiC由微软提供,SONiC是构建网络设备(如交换机)所需功能的软件集合 。它可以通过交换机换抽象接口(SAI)运行在不同的ASIC平台 。正是由于SAI的存在,SONiC的的App(网络功能)才能够支持多个厂家的ASIC 。SONiC的网络应用都是基于容器构建的,可以非常方便的在生产环境实现不停机部署或升级应用 。需要注意的是,SAI没有公开源代码,ASIC厂家只提供二进制格式的SAI文件 。虽然SAI没有开源,但是SAI向上给SONiC提供了一套统一的API 接口,向下则对接不同的ASIC 。

文章插图
SONiC得到了交换机芯片厂家、系统厂商、应用等的广泛支持 。

文章插图
SONiC和SAI支持的ASIC芯片厂商及其对应产品为:

文章插图
SONiC是构建交换机网络功能的软件集合,需要运行在Base OS上 。SONiC所使用的Base OS 是ONL (Open Network Linux )。ONL是一款为白盒交换机而设计的开源Linux操作系统,ONL中包括了许多硬件(温度传感器、风扇、电源、CPLD控制器等)的驱动程序 。

文章插图
推荐阅读
- 计算机网络安全知识点
- 交换机链路聚合最常用场景分析,记住一张表格即可
- cisco思科交换机命令参考大全,分享给个别需要的盆友们
- CPU处理器|打破x86/ARM垄断!中科院RISC-V开源处理器“香山”新归属敲定
- 开源免费的多功能数据库管理软件DBeaver
- 使用Linux操作系统的网络安全:您需要知道的一切
- 解决64位操作系统为Oracle服务器配置ODBC的问题
- 9大顶级开源云管理平台
- 如何实现交换机不同VLAN、不同网段之间互访?
- Deepin-linux操作系统下的tex文件的常用的编辑器介绍和安装
