天天看點

SONiC:為Microsoft全球雲提供支援的網絡交換機軟體

微軟運作着全球最大的公有雲之一,在建構和管理全球性、高性能、高可用性和安全網絡方面又寶貴的經驗。經驗告訴我們,運作書包個資料中心和數萬台交換機,我們需要:

在網絡的各層都使用最佳的交換機硬體在不影響最終使用者使用的情況下部署新功能在幾個小時内安全可靠地推出更新,而不再是需要數月的周期利用雲端深度遙測和全自動化解決故障讓我們的軟體定義網絡軟體能夠使用統一的結構輕松控制網絡中的所有硬體元素,以消除重複并減少故障。

為了滿足這些需求,微軟率先開發了開放式交換機軟體sonic,這是網絡交換機操作和管理上的突破。微軟将這一創新貢獻給開源社群,使得它能夠在sonic github存儲庫上下載下傳使用。sonic是一個獨特的可擴充平台,擁有一個大型的且不斷增長的硬體和軟體合作夥伴生态系統,提供多個交換平台和各種軟體元件。

交換機抽象接口(sai)加速硬體創新

sonic是建立在交換機抽象接口(sai)的基礎上,它定義了一個标準化的api。網絡硬體供應商可以通過它來開發創新的硬體平台,可以在保持與asic的程式設計接口一緻的前提下,提升速度,微軟在2015年将sai進行開源。這種方式使得營運商能夠在晶片、cpu、功率、端口密度、光、速度等方面快速創新,同時保持其在多個平台上實作統一的軟體解決方案。

figure 1. sonic: one investment to unblock hardware innovation

帶有容器的子產品化設計加速軟體演進

sonic是首個将單片交換機軟體拆分為多個容器化元件的解決方案。sonic支援細粒度故障恢複和線上更新,且不會當機。它與交換機狀态服務(swss)結合使用,交換機狀态服務利用開源鍵值存儲的優勢來管理所有交換機狀态并促進交換機向其目标狀态服務轉變。使用者可以使用新代碼(包括邊界網關協定(bgp)之類的協定)更新有缺陷的容器,而不需要更換整個交換機的鏡像,也不需要資料平面停機。這種性能是sonic平台的可服務性和可擴充性的關鍵因素。

容器化還使得sonic具有極高的可擴充性,sonic的核心是針對雲網絡場景,其中簡化和規模化管理是最優先需要考慮的。營運人員以最小的工作量插入新元件、第三方、專有或開源軟體,并根據其特定場景定制sonic.

figure 2. sonic: plug and play extensibility

監控和診斷功能是大規模網絡管理的關鍵,微軟在諸如早期檢測故障、故障相關和自動恢複機制等領域不斷創新。這些創新如netbouncer和everflow,都在sonic中提供,它們代表着微軟多年營運經驗的巅峰。

快速發展的生态系統

sonic和sai在過去的一年中獲得了業界廣泛的支援,大多數主要網絡晶片供應商都在其asic上支援sai:

barefoot networks: tofino博通: trident and tomahawkcavium: xpliant盛科: goldengatemellanox: spectrummarvell: presteranephos: taurus

社群在積極地為sai版本添加新的功能和擴充:

博通、marvell、barefoot、微軟正在推動sai的監控和遙測功能發展,以深入了解asic和強大的分析功能。mellanox、cavium、戴爾、盛科為sai提供協定通知,以支援更豐富的協定支援和大規模網絡場景,例如mpls、增強acl模式、橋接模式、l2/l3多點傳播、分段路由和802.1br。戴爾和metaswitch通過添加l3快速重路由和bfd,為sai帶來了故障彈性和性能。由mellanox和博通推動的管道模型以及戴爾的多npu豐富了sai和建立在頂層的網絡協定棧應用的基礎設施。

在開放計算項目峰會2017(ocp 2017)上,微軟示範了來自多個交換機嘗試的100 gbit交換機,sonic已經啟用了最新最快的sku。支援sonic的平台包括:

arista: 7050和7060系列centec: e580和e582系列dell: s6000 on, s6100-on以及z9100-on系列edgecore: as7512 series, wedge-100bfacebook: wedge-100ingrasys: s9100系列marvell: rd-bc3-4825g6cg-a4和rd-arm-48xg6cg-a4系列mellanox: sn2700系列

通過使用sonic,雲計算社群有了多樣化的選擇,他們可以選擇最好的解決方案。合作夥伴正在加入sonic生态系統,使得生态系統更加豐富:

arista的容器化eos元件(如eos bgp)能夠在sonic上運作,sonic社群現在可以輕松通路arista豐富的eos軟體套件。canonical使用sonic作為ubuntu的快照。它使得maas能夠将sonic部署到哦交換機以及使用sonic來部署伺服器。統一的網絡和服務部署将顯著提高營運商的靈活性。docker通過swarm來管理sonic容器,憑借其簡單的服務模型,swarm可以大規模管理和更新sonic。mellanox使用sonic來釋放spectrum asic中基于硬體的資料包生成功能,該功能有助于故障診斷和故障排除。

通過社群和我們的合作夥伴生态系統合作,微軟正在尋求徹底改變當今和未來網絡的方式。

sonic完全在github上開源,以供業界同仁、研究人員、學生和創新者使用。借助sonic容器化方式和軟體仿真工具,開發人員可以體驗在microsoft azure中使用的交換機軟體,并提供惠及數百萬使用者的元件。sonic将使整個雲計算社群受益,我們對此平台背後日益強大的合作夥伴關系感到高興。

本文轉自d1net(轉載)

繼續閱讀