OpenBMC:開源的下一代系統(tǒng)管理軟件架構(gòu)

https://code.facebook.com/posts/1601610310055392/introducing-openbmc-an-open-software-framework-for-next-generation-system-management/
國外博文系列

OpenBMC的誕生

在Facebook碎赢,可靠性和快速迭代是兩個重要原則起便。這使得我們在構(gòu)建基礎(chǔ)架構(gòu)時砸抛,可以快速查詢特征,并且可以對自己的系統(tǒng)重要項目進行故障定位衅谷。最近锡足,我們發(fā)現(xiàn)底板管理控制器(BMC)一系列相關(guān)的軟件(Software Stack)太封閉了别洪,無法滿足這些需求飘弧,所以我們建立了自己的版本榄笙,我們是開源的邪狞。我們?nèi)绾螌崿F(xiàn)這個開源的軟件解決方案,是對Facebook黑客文化的一個很好的研究 - 這里將介紹背后故事茅撞。

考慮應用場景帆卓,BMC是嵌入在服務器中的專用控制器。它通常以片上系統(tǒng)(SoC)的形式出現(xiàn)米丘,具有自己的CPU剑令,內(nèi)存和存儲以及大量的IO。BMC連接到許多傳感器以讀取環(huán)境條件并通過風扇控制溫度拄查。它還提供了其他系統(tǒng)管理功能吁津,包括遠程電源控制,Serial Over LAN堕扶,服務器主機CPU和內(nèi)存的監(jiān)視及錯誤記錄碍脏。

直到目前,在軟件方面稍算,完整的BMC軟件都是閉源的典尾。BMC軟件通常由硬件制造商在硬件開發(fā)階段開發(fā)。由于BMC軟件的閉源特性糊探,現(xiàn)有硬件所開發(fā)的任何軟件都無法在下一代中重復使用急黎。BMC軟件的開發(fā)周期進度直接影響到新的硬件開發(fā)。當硬件開發(fā)結(jié)束后侧到,BMC軟件開發(fā)也停止了。更進一步的錯誤修復或新功能則必須等待硬件制造商淤击。

當我們開發(fā)Facebook的ToR交換機“Wedge”時匠抗,一開始是按照慣例, 由我們的合作伙伴負責開發(fā)BMC軟件污抬。然而汞贸,在項目的頭幾個月,BMC軟件出現(xiàn)了許多需求印机,給BMC軟件開發(fā)過程帶來了額外的復雜性矢腻,協(xié)調(diào)性和項目延遲。

為了應對這些挑戰(zhàn)射赛,在Facebook舉辦的一個編程馬拉松活動中多柑,有四位工程師努力創(chuàng)建了自己的BMC軟件。在24小時內(nèi)楣责,我們能夠建立一個最小的BMC軟件映像竣灌,其中包括一個SSH服務器聂沙,能夠改變風扇的速度,啟動主機CPU初嘹,閃爍一些LED及汉。雖然這遠遠未達到一個生產(chǎn)的鏡像水準,但是它給了我們一個強大的信心屯烦,我們最終可以為自己的“Wedge”開發(fā)處BMC軟件坷随。

八個月后,我們已經(jīng)將代號為“OpenBMC”的解決方案與Wedge一起投入生產(chǎn)驻龟。今天温眉,我們與開源社區(qū)共享OpenBMC,希望我們能夠基于這個開放的軟件框架進行協(xié)作迅脐,進行下一代系統(tǒng)管理芍殖。

底層的OpenBMC

BMC硬件本身就是一個計算機系統(tǒng)。與現(xiàn)代計算機系統(tǒng)相比谴蔑,BMC的硬件資源非常有限豌骏。在BMC中,CPU速度較慢隐锭,閃存少于32 MB窃躲,存儲空間少于256 MB都是很常見的。正因為如此钦睡,OpenBMC被設(shè)計成一個完整的Linux發(fā)行版蒂窒,可靈活定制以支持不同的BMC SoC或主板。

OpenBMC映像包括引導加載程序(u-boot)荞怒,Linux內(nèi)核洒琢,開源軟件包和特定于板卡的軟件包:

  • u-boot和Linux內(nèi)核都包含用于BMC SoC的各種硬件驅(qū)動程序,包括i2c驅(qū)動程序褐桌,USB驅(qū)動程序衰抑,PWM驅(qū)動程序和SPI驅(qū)動程序。
  • 開源軟件包包括常用的應用程序荧嵌,例如BusyBox呛踊,i2c-tools,lm-sensors啦撮,OpenSSH和Python谭网。
  • 特定于電路板的軟件包包括用于特定電路板的初始化腳本和工具。例如赃春,它包含一個工具來轉(zhuǎn)儲來自EEPROM的告警信息和一個風扇控制器守護進程愉择,以根據(jù)環(huán)境讀數(shù)控制風扇速度。

下圖展示了在“Wedge”內(nèi)BMC上運行的“OpenBMC”軟件包。
bmc-software-packages

OpenBMC中的所有軟件包都是使用源碼通過Yocto構(gòu)建的薄辅。通過Yocto要拂,軟件包被組合在一起成為recipes,然后不同的recipes被組合成不同圖層站楚。

在OpenBMC中脱惰,有三組圖層:

  1. 通用層,包含可用于不同電路板和BMC SoC的軟件包窿春。
  2. SoC層拉一,包含特定于BMC SoC的軟件包,例如由Aspeed貢獻的用于AST2300/ AST2400 SoC的代碼旧乞,以及來自Facebook的增強功能蔚润。u-boot和kernel都在SoC層中定義。
  3. 電路板層尺栖,包括不同電路板的軟件包嫡纠。具體來說,例如我們正在發(fā)布的特定于Wedge的硬件配置延赌,初始化腳本和工具除盏。


    bmc-source-dir

為特定的電路板構(gòu)建定制的OpenBMC映像需要將公共層,用于電路板中使用的BMC SoC的SoC層以及電路板特定的電路板層相結(jié)合挫以。

我們通過GitHub 發(fā)布了OpenBMC庫者蠕。

下一階段

OpenBMC目前處于早期階段,但我們旨在建立一個強大的OpenBMC生態(tài)系統(tǒng)掐松,所以我們已經(jīng)提前并分享了這個早期的工作代碼踱侣。

我們最近重構(gòu)了代碼以更好地支持不同的SoC和電路板。有一些為“Wedge”開發(fā)的應用程序可以用于其他板子大磺。為此抡句,我們需要在應用程序和硬件之間添加一個硬件抽象。

隨著Wedge發(fā)布于OCP杠愧,應用程序開發(fā)人員可以使用開放硬件作為OpenBMC的開發(fā)平臺待榔。我們可以在OpenBMC的所有不同層面上做出貢獻:

  1. 系統(tǒng)管理應用程序的創(chuàng)新可以發(fā)布于通用層。例如殴蹄,一個可以改變系統(tǒng)管理方向的新應用程序可能會被貢獻給公用層,從而使所有由OpenBMC驅(qū)動的電路板受益猾担。
  2. BMC SoC供應商可以通過SoC層發(fā)布自己的SoC支持袭灯,這有助于采用BMC SoC。
  3. 通過電路板層绑嘹,板卡制造商可以與社區(qū)合作稽荧,不斷完善板卡上運行的BMC軟件。

Wedge是第一個由OpenBMC驅(qū)動的硬件工腋,6-pack將是第二個姨丈。我們很高興與社區(qū)分享OpenBMC并致力于下一代系統(tǒng)管理畅卓。

許多人為這個項目的工作做出了貢獻。Credit should go to: Kevin Lahey, Sai Dasari, Aaron Miller, Adam Simpkins, and Tian Fang.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蟋恬,一起剝皮案震驚了整個濱河市翁潘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌歼争,老刑警劉巖拜马,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沐绒,居然都是意外死亡俩莽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門乔遮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扮超,“玉大人,你說我怎么就攤上這事蹋肮〕鏊ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵括尸,是天一觀的道長巷蚪。 經(jīng)常有香客問我,道長濒翻,這世上最難降的妖魔是什么屁柏? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮有送,結(jié)果婚禮上淌喻,老公的妹妹穿的比我還像新娘。我一直安慰自己雀摘,他們只是感情好裸删,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阵赠,像睡著了一般涯塔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上清蚀,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天匕荸,我揣著相機與錄音,去河邊找鬼枷邪。 笑死榛搔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播践惑,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腹泌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尔觉?” 一聲冷哼從身側(cè)響起凉袱,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎穷娱,沒想到半個月后绑蔫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡泵额,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年配深,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫁盲。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡篓叶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羞秤,到底是詐尸還是另有隱情缸托,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布瘾蛋,位于F島的核電站俐镐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哺哼。R本人自食惡果不足惜佩抹,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望取董。 院中可真熱鬧棍苹,春花似錦、人聲如沸茵汰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹂午。三九已至栏豺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豆胸,已是汗流浹背奥洼。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留配乱,地道東北人溉卓。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像搬泥,于是被迫代替她去往敵國和親桑寨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評論 25 707
  • 在這里忿檩,每天早晨6點半他的手機鬧鈴準時響起尉尾,他馬上起床為我打豆?jié){。過一會兒燥透,窗外的起床號也響起沙咏,新的一天開始! 喜...
    紫藤姑娘閱讀 167評論 1 0
  • 我天生性格孤僻班套,與大多數(shù)人八字不合肢藐,雖然沒有嚴重到病態(tài),但是女票還是時常提醒我吱韭,別太不合群吆豹,多交點朋友,對你以后也...
    peter_yuan_93閱讀 268評論 0 4
  • 能看懂的可以來我們這里生活了哈理盆! 場景一 一位外地學生來永州市讀書痘煤,第一次:搭公交,他就感覺到了國外/或者說原始...
    梁木純閱讀 184評論 7 1
  • 一路勞累人憔悴猿规,天涯海角追尋你衷快; 一路眼淚過不去,南北東西呼喊她姨俩。 鄭源有歌蘸拔,“算了吧,忘了吧哼勇,讓過去成為過...
    塵渺凡閱讀 232評論 0 1