OpenSwitch

概述

在9月M$發(fā)布了其首個 Linux 網絡操作系統(tǒng) ACS 之后胚嘲,HP 也不甘寂寞地在 2015/10/5 發(fā)布了其基于 Linux 的開源網絡操作系統(tǒng) OpenSwitch椿胯,主要參與者包括 Accton, Arista, Broadcom, Intel周荐,QOSMOS, Vmware,參與者相對于其他的開源項目而言甚淡,略顯不足蜕青,特別是 ODM 廠商只有 Accton 一家钧敞。

OpenSwitch NOS 聚焦于數據中心交換機,支持 OCP 兼容交換機谅阿,通過 ONIE 安裝/卸載半哟,系統(tǒng)提供完備的 L2 與 L3 層網絡協(xié)議。

OpenSwitch 與著名的 Open vSwitch 只差了個v签餐,說明這兩者是頗有淵源的镜沽,具體的見后文描述。

開發(fā)環(huán)境需求

最低硬件要求
  • 2 core CPU
  • 4 GB 內存
  • 30 GB 硬盤空間
推薦硬件要求
  • 4 core CPU
  • 8 GB 內存
  • 50 GB 硬盤空間
開發(fā)環(huán)境

官網提供了基于 Vagrant 的開發(fā)環(huán)境安裝指導贱田,如果沒有使用過 Vagrant缅茉,官方推薦在 Ubuntu 平臺上部署開發(fā)環(huán)境。

OpenSwitch 還支持在主流的 Linux 平臺上部署開發(fā)環(huán)境男摧,包括 Debian, Fedora, Suse 等蔬墩,具體見官網的部署指導

OpenSwtich 的源碼可以從官網下載耗拓,代碼并沒有托管在官方的 github 上拇颅,這個在當下的開源社區(qū)中略顯得有點非主流,估計后續(xù)會遷過去乔询。 源碼中包含了多個工程樟插,如果只想編譯出 image 的話,不需要 clone 源碼竿刁,只需要 clone openswitch/ops-build 庫即可黄锤。

具體的開發(fā)環(huán)境配置指導可以參看官網的 Step-by-step Guide.

軟件架構

系統(tǒng)狀態(tài)數據庫(System state database)

System state database 即系統(tǒng)級的 OVSDB,是集中式的數據庫食拜,用于存儲所有用戶進程的配置鸵熟、狀態(tài)以及統(tǒng)計數據等信息。

狀態(tài)數據庫雖然簡化了配置以及數據存儲的實現负甸,但其主要的目標并非如此流强,集中式的數據庫是被設計來用于各個功能進程間信息交互,各功能進程不允許通過其他的方式交互呻待,只能夠使用狀態(tài)數據庫打月。

OpenSwtich 通過狀態(tài)數據庫以及功能進程業(yè)務交互的實現約束,解決多業(yè)務進程間的控制時序依賴的問題蚕捉。

OVSDB-Server 是個成熟的內存數據庫奏篙,其實現遵從于 OVSDB 協(xié)議(RFC 7047),數據庫實現提供一套完善的事務處理機制以及靈活數據變化的訂閱功能鱼冀。

OVSDB作為系統(tǒng)的基礎架構报破,還提供了數據一致性管理以及垃圾回收機制悠就。

系統(tǒng)中的各業(yè)務進程均通過 OVSDB 協(xié)議與 OVSDB-Server 進行通訊,同時也支持外部系統(tǒng)通過 OVSDB 協(xié)議與 OVSDB-Server 進行數據交互充易。

ops-switchd

ops-switchd 是系統(tǒng)中唯一允許訪問 SDK 的進程梗脾,其主要作用是將 OVSDB 的數據模型轉換為 ASIC 的數據并調用相應的 API,其為 Open vSwitch 中的 ovs-switchd 的擴展盹靴,SDK-Ind 層與 SDK-Spec 層之間的接口按 Open vSwitch 的 OFProto ProviderNetDev Provider 接口擴展設計炸茧,API 定義參看源文件 netdev-provider.hofproto-provider.h .

ops-switchd 的內部設計需求是為適配不同的芯片廠商的 SDK 服務,對于非 Broadcom 方案的硬件平臺上稿静,只需要移植 ops-switchd 中 SDK-Spec Plugin 即可梭冠,當前已實現的 SDK-Spec Plugin 支持:

  • OpenNSL plugin: 基于 OpenNSL SDK 接口,支持 Broadcom Trident II 系列芯片
  • Docker container plugin: 支持在 Docker 容器中運行 OpenSwtich改备。
硬件管理進程

OpenSwitch 提供了一系列硬件管理相關的進程控漠,其中工作在內核外設驅動與 OVSDB 之間,主要包括:

  • 風扇管理進程
  • 溫度管理進程
  • 電源管理進程
  • LED 管理進程
  • 模塊熱插拔管理進程
虛接口管理進程

交換的每個物理端口以及邏輯接口(VLAN悬钳、LAG盐捷、Tunnel)等在內核中都有對應的虛接口(virtual port),通過這種實現默勾,控制面的協(xié)議收包時(如L2 BPDU碉渡、L3 協(xié)議報文)不需要遍歷 OVSDB 中的信息。

對于交換機的物理端口是通過 SDK 驅動的方式在內核中創(chuàng)建接口母剥,之后交換機即可以在這些接口上進行報文的收發(fā)滞诺。

L2/L3協(xié)議進程

每個協(xié)議都有自己獨立的守護進程(daemon),守護進程通過raw,UDP或TCP的sock從內核中相應的接口上收幀环疼。

OpenSwitch的LLDP組件源于 Vincent Bernat习霹, LACP 組件則是由 HP 自行開發(fā)。

OpenSwitch的L3協(xié)議來源于開源項目 Quagga 秦爆。

系統(tǒng)進程

OpenSwitch 中還存在許多與外部業(yè)務無關的進程序愚,其主要工作是管理 OVSDB 中的相關數據信息,主要包括:

  • 初始化以及部署子系統(tǒng)的 ops-sysd
  • 保存并加載配置文件的 ops-cfgd
  • 管理系統(tǒng)接口速率/雙工/流控的 ops-intfd
  • 等等
管理/監(jiān)控進程

雖然 OVSDB 是個強大的協(xié)議等限,通過此協(xié)議也能夠對系統(tǒng)的狀態(tài)進行管理與監(jiān)控,但 OVSDB 協(xié)議當前并未被廣泛使用芬膝,OpenSwitch 提供了多種的用戶管理代理進程,主要包括:CLI、REST API挠铲、Ansible甜橱、Chef 等等。

硬件設計

OpenSwitch 官網提供 硬件設計指導 的鏈接癣缅,不過當前打開里頭沒有內容(也有可能是我打開的姿勢不對吧 -_-!)厨剪。

最后

在交換機的開源硬件哄酝、軟件項目中 Broadcom 玩得不亦樂乎,但始終沒有見到 Marvell 身影祷膳,這位同學在 DC 領域失蹤很久了陶衅,目測再出現的可能性也不大了。

[end]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末直晨,一起剝皮案震驚了整個濱河市搀军,隨后出現的幾起案子,更是在濱河造成了極大的恐慌勇皇,老刑警劉巖罩句,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異敛摘,居然都是意外死亡门烂,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門兄淫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屯远,“玉大人,你說我怎么就攤上這事拖叙∶ト螅” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵薯鳍,是天一觀的道長咖气。 經常有香客問我,道長挖滤,這世上最難降的妖魔是什么崩溪? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮斩松,結果婚禮上伶唯,老公的妹妹穿的比我還像新娘。我一直安慰自己惧盹,他們只是感情好乳幸,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钧椰,像睡著了一般粹断。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嫡霞,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天瓶埋,我揣著相機與錄音,去河邊找鬼。 笑死养筒,一個胖子當著我的面吹牛曾撤,可吹牛的內容都是我干的。 我是一名探鬼主播晕粪,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼挤悉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了兵多?” 一聲冷哼從身側響起尖啡,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剩膘,沒想到半個月后衅斩,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡怠褐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年畏梆,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奈懒。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡奠涌,死狀恐怖,靈堂內的尸體忽然破棺而出磷杏,到底是詐尸還是另有隱情溜畅,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布极祸,位于F島的核電站慈格,受9級特大地震影響,放射性物質發(fā)生泄漏遥金。R本人自食惡果不足惜浴捆,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稿械。 院中可真熱鬧选泻,春花似錦、人聲如沸美莫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厢呵。三九已至餐茵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間述吸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝌矛,地道東北人道批。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像入撒,于是被迫代替她去往敵國和親隆豹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內容