網路設備公司 - Arista Network
摘自: https://eos.arista.com/linux-as-a-switch-operating-system-five-lessons-learned/
Linux as a Switch Operating System: Five Lessons Learned
Arista spent the last nine years building a switch operating system based on Linux, including nearly six years of field experience. Here are five lessons we learned along the way.
~
可擴展作業系統[編輯]
EOS是Arista的網絡作業系統,是一個可以在所有Arista設備[12]和虛擬機上運行的獨立鏡像[13]。EOS通過一個基於Fedora的用戶空間在未經修改的Linux 核心上運行[14],並通常擁有超過100個的獨立進程,稱為代理程序。這些代理程序負責控制交換器的各種特性和功能,包括管理集成電路(ASIC)的轉換,命令行界面(CLI),網絡管理標淮(SNMP),生成樹算法的網橋協議(STP),以及各種路由協議的驅動程序。交換器的不同狀態以及它的各種協議都記錄在另一個名為Sysdb的進程中。把交換器的狀態(存儲於Sysdb中)和相應的處理進程(由代理程序負責)分隔開來使得EOS擁有了兩個重要的特性:第一是軟體的故障隔離,如果出現錯誤,相應的損壞會被限制在某一個獨立的代理程序[15][16];第二是保持交換器的延續性,由於代理程序的狀態被存儲在Sysdb中,當一個代理重新啟動時, 它可以讀取之前的狀態[16]。由於代理程序是獨立的進程,他們可以在交換機運行時進行升級。這個特點叫做ISSU,全稱為In-Service Software Upgrade。 EOS在Linux上運行使得交換器可以利用常見的Linux工具,比如tcpdump和通常的配置管理系統。 EOS提供了大量的應用程式編程接口(API)來實現與交換器的通訊和全方位掌控。因此,它的命令行界面是通過Python腳本去調用這些API的命令集合, 提供類似於IOS的一個達到行業標淮的CLI服務。為了展示EOS的可擴展性, Arista創造了雲視界(CloudVision)模塊[17],它擴展了交換器的命令行界面使得其能夠使用一種以XML為基礎的開放式實時通訊協議(XMPP)作為管理和配置的消息共享線路[18]。這個特點是通過在命令行界面中利用開源的XMPP Python庫實現的。
可程式性[編輯]
除了所有在Linux環境中原來就支持的標淮編程和添加腳本的能力以外,EOS還可以使用不同的方法進行編程: 高級事件管理[19]可以用來應對各種事件,並自動觸發CLI命令。當轉換器改變狀態時,執行任意腳本或發送警報,例如一個接口斷開或虛擬機遷移到另一台主機。 事件監視器跟蹤對硬體位址(MAC),地址解析協議(ARP)以及路由表在本地SQLite資料庫作出的變化,以應對之後的基礎Sql數據查詢[20]。 EAPI(外部API)[21]提供了特殊版本的JSON-RPC接口來執行CLI命令以及獲得相應生成的JSON對象輸出。
乙太網交換器[編輯]
Arista的產品線可分為七系列:...
留言
張貼留言