在2015年3月举行的OCP(Open Compute Project,开放计算项目)峰会上, 微软向OCP贡献SAI (Switch Abstraction Interface,交换机抽象接口)。当年7月,OCP正式接纳了SAI 。

2016年3月9日,微软在这届OCP峰会上,正式发布了SONiC ( Software for Open Networking in the Cloud)。SONiC的所有软件功能模块都是开源的,推动了OCP社区以及其他厂商在开放网络方面的创新。

SONiC是构建网络设备(如交换机)所需功能的软件集合。它可以通过交换机换抽象接口(SAI)运行在不同的ASIC平台。正是由于SAI的存在,SONiC的的app(网络功能)才能够支持多个厂家的ASIC。

需要注意的是,SAI没有公开源代码,ASIC厂家只提供二进制格式的SAI文件。虽然SAI没有开源,但是SAI向上给SONiC提供了一套统一的API 接口,向下则对接不同的ASIC。


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


 
SONiC是一个将传统交换机操作系统软件分解成多个容器化组件的创新方案,这使得增加新的组件和功能变得非常方便。(SONiC路线图 :https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning )

SONiC大量使用了现有的开源项目和开源技术,如Docker,Redis,Quagga和LLDPD 以及自动化配置工具Ansible、Puppet和Chef等。

OCP接纳SONiC和SAI,很重要的一点就是看重SONiC能够完善白盒交换机的生态链 。试想一下,如果没有SAI,那么就需要白盒交换机厂商自行适配不同的ASIC。有了SAI之后,适配ASIC的工作就由芯片厂商完成,使得白盒交换机厂商推出一款新产品所花费的时间大大缩短。


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

将SONiC和Base OS、SAI、ASIC平台对应的驱动打包制作成为一个文件,这个文件才是可直接安装到白盒交换机的NOS镜像 。SONiC目前已经可以运行在Accton/EdgeCore 、Dell和Mellanox等厂商的白盒交换机上。SONiC社区提供一些制作好的NOS镜像 : https://github.com/Azure/SONiC/wiki/Supported-Devices-and-Platforms

由于SONiC的网络应用都是基于容器构建的,可以非常方便的在生产环境实现不停机部署或升级应用,这一点也吸引了不少的互联网公司的目光。百度、阿里、腾讯等公司于2017年8月成立的“凤凰项目”主要就是细化这个打包工作,并兼容更多白盒交换机,未来还会做LTS模式的版本管理工作。(凤凰项目相关介绍:http://www.opendatacenter.cn/work-group/p-958516783572459522.html)

SONiC项目的发展及其介绍相关推荐

  1. 开源项目与J2EE架构介绍

    2 开源项目与J2EE架构介绍 2.1.1开源软件简介   什么是开源软件: 开源软件的英文为Open Source Software,简称为OSS.开放源代码软件就是在开放源代码许可证下发布的软件, ...

  2. Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍

    Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍 轻拍标签栏中的About标签,进入关于页面,如图1.8和图1.9所示.它是对应用程序介绍的页面. 该页面源自Views文 ...

  3. Interview:算法岗位面试—10.31下午上海某银行总部公司(二面,四大行之一)之项目简介、比赛介绍、某个比赛的过程

    Interview:算法岗位面试-10.31下午上海某银行总部公司(二面,四大行之一)之项目简介.比赛介绍.某个比赛的过程 导读:明天还有事,更多详细内容后期再更新哈 目录 项目简介.比赛介绍.某个比 ...

  4. ASP.NET Core分布式项目实战(业务介绍,架构设计,oAuth2,IdentityServer4)--学习笔记...

    任务4:第一章计划与目录 敏捷产品开发流程 原型预览与业务介绍 整体架构设计 API 接口设计 / swagger Identity Server 4 搭建登录 账号 API 实现 配置中心 任务5: ...

  5. SpringMVC+Maven开发项目源码详细介绍

    代码地址如下: http://www.demodashi.com/demo/11638.html Spring MVC概述 Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的 ...

  6. 【Vue】—项目的目录结构介绍

    [Vue]-项目的目录结构介绍

  7. 湖仓一体电商项目(一):项目背景和架构介绍

    文章目录 项目背景和架构介绍 一.​​​​​​​项目背景介绍

  8. 【人工智能项目】ImageNet数据集介绍以及数字图像处理技术

    [人工智能项目]ImageNet数据集介绍以及数字图像处理技术 本次介绍一下imagenet数据集,并对imagenet数据集中的图片做一些数字图像处理预处理操作.那话不多说,搞起来!!! Image ...

  9. 文旅融合助力沉浸式夜游体验项目的发展

    2022上半年,受国内疫情形势影响,文化消费市场整体收紧.上海.广州.吉林.北京等多地爆发的疫情打乱了旅游市场的复苏节奏,国内居民的出游意愿与消费受到影响.国家统计局数据显示,2022上半年,全国居民 ...

  10. 大话卫星导航中的信号处理系列文章——北斗导航系统发展的介绍

    大话卫星导航中的信号处理系列文章--北斗导航系统发展的介绍 北斗的发展步骤 北斗一代 有源定位的原理 北斗二代 无源定位的原理 北斗三代 总结 ) 北斗的发展步骤 北斗一代 在海湾战争之后,导航系统的 ...

最新文章

  1. STL容器存储的内容动态分配情况下的内存管理
  2. 线性代数的本质与几何意义 02. 线性组合、张成的空间、基(3blue1brown 咪博士 图文注解版)...
  3. 百兆以太网传输距离_罗森伯格陪你做车载——汽车以太网(三)
  4. Selenium3自动化测试——16. 处理HTML5视频播放
  5. 像烟灰一样松散(毕淑敏)
  6. SpringMVC第一个例子
  7. 如果你还不了解GBDT,不妨看看这篇文章
  8. 通信教程 | 串口丢数据常见的原因
  9. spring IOC 装配一个bean
  10. 电商如何做企业总体架构?
  11. vscode调试时几个常用参数的含义和设置总结
  12. GB28181协议--GB28181协议简介
  13. Latex |解决缺少.sty文件的问题和引用显示不出来的问题
  14. 财务会计科目与预算会计科目关联对照表
  15. 《矛盾论》与《实践论》
  16. outlook邮箱显示一直启动中_Outlook发送邮件一直停留在发件箱的解决办法
  17. [从头读历史] 第265节 诗经 周南
  18. 早年黑网吧特供游戏《血战上海滩》如何在Win10运行?
  19. Ubuntu18.04中如何更换为清华的镜像源
  20. 微信相框plus详细体验

热门文章

  1. (qsf文件 、 tcl文件 和 csv(txt)文件的区别) FPGA管脚分配文件保存、导入导出方法...
  2. C#处理Json文件
  3. [翻译]Scott Mitchell的ASP.NET2.0数据教程中文版索引(Canceled!!)
  4. mysql bing logo_mysqlbing log
  5. Spark的简介和在大数据领域的地位
  6. 修正 Mui 下拉上拉刷新功能
  7. PlayWidget
  8. [20160325]bbed是否有4G的限制.txt
  9. 六神不安,生死命悬一线
  10. 某大型银行某系统性能调优过程跟踪记录