微軟運(yùn)行著全球最大的公有云之一,在構(gòu)建和管理全球性、高性能、高可用性和安全網(wǎng)絡(luò)方面又寶貴的經(jīng)驗(yàn)。經(jīng)驗(yàn)告訴我們,運(yùn)行書包個(gè)數(shù)據(jù)中心和數(shù)萬臺(tái)交換機(jī),我們需要:
在網(wǎng)絡(luò)的各層都使用最佳的交換機(jī)硬件在不影響最終用戶使用的情況下部署新功能在幾個(gè)小時(shí)內(nèi)安全可靠地推出更新,而不再是需要數(shù)月的周期利用云端深度遙測(cè)和全自動(dòng)化解決故障讓我們的軟件定義網(wǎng)絡(luò)軟件能夠使用統(tǒng)一的結(jié)構(gòu)輕松控制網(wǎng)絡(luò)中的所有硬件元素,以消除重復(fù)并減少故障。為了滿足這些需求,微軟率先開發(fā)了開放式交換機(jī)軟件SONiC,這是網(wǎng)絡(luò)交換機(jī)操作和管理上的突破。微軟將這一創(chuàng)新貢獻(xiàn)給開源社區(qū),使得它能夠在SONiC GitHub存儲(chǔ)庫(kù)上下載使用。SONiC是一個(gè)獨(dú)特的可擴(kuò)展平臺(tái),擁有一個(gè)大型的且不斷增長(zhǎng)的硬件和軟件合作伙伴生態(tài)系統(tǒng),提供多個(gè)交換平臺(tái)和各種軟件組件。
交換機(jī)抽象接口(SAI)加速硬件創(chuàng)新SONiC是建立在交換機(jī)抽象接口(SAI)的基礎(chǔ)上,它定義了一個(gè)標(biāo)準(zhǔn)化的API。網(wǎng)絡(luò)硬件供應(yīng)商可以通過它來開發(fā)創(chuàng)新的硬件平臺(tái),可以在保持與ASIC的編程接口一致的前提下,提升速度,微軟在2015年將SAI進(jìn)行開源。這種方式使得運(yùn)營(yíng)商能夠在芯片、CPU、功率、端口密度、光、速度等方面快速創(chuàng)新,同時(shí)保持其在多個(gè)平臺(tái)上實(shí)現(xiàn)統(tǒng)一的軟件解決方案。
Figure 1. SONiC: one investment to unblock hardware innovation
帶有容器的模塊化設(shè)計(jì)加速軟件演進(jìn)SONiC是首個(gè)將單片交換機(jī)軟件拆分為多個(gè)容器化組件的解決方案。SONiC支持細(xì)粒度故障恢復(fù)和在線升級(jí),且不會(huì)宕機(jī)。它與交換機(jī)狀態(tài)服務(wù)(SWSS)結(jié)合使用,交換機(jī)狀態(tài)服務(wù)利用開源鍵值存儲(chǔ)的優(yōu)勢(shì)來管理所有交換機(jī)狀態(tài)并促進(jìn)交換機(jī)向其目標(biāo)狀態(tài)服務(wù)轉(zhuǎn)變。用戶可以使用新代碼(包括邊界網(wǎng)關(guān)協(xié)議(BGP)之類的協(xié)議)升級(jí)有缺陷的容器,而不需要更換整個(gè)交換機(jī)的鏡像,也不需要數(shù)據(jù)平面停機(jī)。這種性能是SONiC平臺(tái)的可服務(wù)性和可擴(kuò)展性的關(guān)鍵因素。
容器化還使得SONiC具有極高的可擴(kuò)展性,SONiC的核心是針對(duì)云網(wǎng)絡(luò)場(chǎng)景,其中簡(jiǎn)化和規(guī)?;芾硎亲顑?yōu)先需要考慮的。運(yùn)營(yíng)人員以最小的工作量插入新組件、第三方、專有或開源軟件,并根據(jù)其特定場(chǎng)景定制SONiC.
Figure 2. SONiC: plug and play extensibility監(jiān)控和診斷功能是大規(guī)模網(wǎng)絡(luò)管理的關(guān)鍵,微軟在諸如早期檢測(cè)故障、故障相關(guān)和自動(dòng)恢復(fù)機(jī)制等領(lǐng)域不斷創(chuàng)新。這些創(chuàng)新如Netbouncer和Everflow,都在SONiC中提供,它們代表著微軟多年運(yùn)營(yíng)經(jīng)驗(yàn)的巔峰。
快速發(fā)展的生態(tài)系統(tǒng)SONiC和SAI在過去的一年中獲得了業(yè)界廣泛的支持,大多數(shù)主要網(wǎng)絡(luò)芯片供應(yīng)商都在其ASIC上支持SAI:
Barefoot Networks: Tofino博通: Trident and TomahawkCavium: XPliant盛科: GoldengateMellanox: SpectrumMarvell: PresteraNephos: Taurus社區(qū)在積極地為SAI版本添加新的功能和擴(kuò)展:
博通、Marvell、Barefoot、微軟正在推動(dòng)SAI的監(jiān)控和遙測(cè)功能發(fā)展,以深入了解ASIC和強(qiáng)大的分析功能。Mellanox、Cavium、戴爾、盛科為SAI提供協(xié)議通知,以支持更豐富的協(xié)議支持和大規(guī)模網(wǎng)絡(luò)場(chǎng)景,例如MPLS、增強(qiáng)ACL模式、橋接模式、L2/L3組播、分段路由和802.1BR。戴爾和Metaswitch通過添加L3快速重路由和BFD,為SAI帶來了故障彈性和性能。由Mellanox和博通推動(dòng)的管道模型以及戴爾的多NPU豐富了SAI和建立在頂層的網(wǎng)絡(luò)協(xié)議棧應(yīng)用的基礎(chǔ)設(shè)施。在開放計(jì)算項(xiàng)目峰會(huì)2017(OCP 2017)上,微軟演示了來自多個(gè)交換機(jī)嘗試的100 Gbit交換機(jī),SONiC已經(jīng)啟用了最新最快的SKU。支持SONiC的平臺(tái)包括:
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,云計(jì)算社區(qū)有了多樣化的選擇,他們可以選擇最好的解決方案。合作伙伴正在加入SONiC生態(tài)系統(tǒng),使得生態(tài)系統(tǒng)更加豐富:
Arista的容器化EOS組件(如EOS BGP)能夠在SONiC上運(yùn)行,SONiC社區(qū)現(xiàn)在可以輕松訪問Arista豐富的EOS軟件套件。Canonical使用SONiC作為Ubuntu的快照。它使得MAAS能夠?qū)ONiC部署到哦交換機(jī)以及使用SONiC來部署服務(wù)器。統(tǒng)一的網(wǎng)絡(luò)和服務(wù)部署將顯著提高運(yùn)營(yíng)商的敏捷性。Docker通過Swarm來管理SONiC容器,憑借其簡(jiǎn)單的服務(wù)模型,Swarm可以大規(guī)模管理和更新SONiC。Mellanox使用SONiC來釋放Spectrum ASIC中基于硬件的數(shù)據(jù)包生成功能,該功能有助于故障診斷和故障排除。通過社區(qū)和我們的合作伙伴生態(tài)系統(tǒng)合作,微軟正在尋求徹底改變當(dāng)今和未來網(wǎng)絡(luò)的方式。
SONiC完全在GitHub上開源,以供業(yè)界同仁、研究人員、學(xué)生和創(chuàng)新者使用。借助SONiC容器化方式和軟件仿真工具,開發(fā)人員可以體驗(yàn)在Microsoft Azure中使用的交換機(jī)軟件,并提供惠及數(shù)百萬用戶的組件。SONiC將使整個(gè)云計(jì)算社區(qū)受益,我們對(duì)此平臺(tái)背后日益強(qiáng)大的合作伙伴關(guān)系感到高興。