OpenBMC 是 Linux Foundation 組織里的一個(gè)項(xiàng)目,也是目前開源 BMC 里方案最成熟、社區(qū)最活躍的項(xiàng)目。日前,我們得知字節(jié)跳動(dòng)系統(tǒng)部 STE 團(tuán)隊(duì)自研的 OpenBMC,已在內(nèi)部成功上線,并穩(wěn)定運(yùn)行了兩個(gè)多月。這也是字節(jié)跳動(dòng)首次正式上線并初步產(chǎn)品化的 OpenBMC 方案。
為此,我們專訪了字節(jié)跳動(dòng)系統(tǒng)部 STE 團(tuán)隊(duì)工程師,他為我們分享了字節(jié)跳動(dòng)自研 OpenBMC 的布局和推進(jìn)過程。
傳統(tǒng) BMC 生態(tài)封閉,及時(shí)響應(yīng)困難重重
BMC 是服務(wù)器上的管理模塊,它包含獨(dú)立的 SoC 以及 SoC 上運(yùn)行的系統(tǒng),完成對服務(wù)器的管理、監(jiān)控、并對外提供服務(wù)。對于服務(wù)器來說是不可或缺的重要組成部分。
目前服務(wù)器 BMC 的方案里,部分廠商有完全自研的方案,部分廠商則會(huì)基于 IBV (Independent BMC Vendor) 的商業(yè) BMC 進(jìn)行定制化開發(fā),但這些都是閉源的,服務(wù)器使用者無法掌控 BMC 的完整功能。
同時(shí),商業(yè) BMC 也具有諸多局限,比如一些不必要的功能,可能影響網(wǎng)絡(luò)和系統(tǒng)穩(wěn)定性;修復(fù) bug、漏洞往往需要反饋 ODM 廠商,甚至需要 IBV 支持,這使得修復(fù)時(shí)間過長;部分 bug 只在特定環(huán)境下復(fù)現(xiàn),更增加了修復(fù)的難度。
隨著互聯(lián)網(wǎng)的不斷發(fā)展,數(shù)據(jù)中心的不斷壯大,對數(shù)據(jù)中心服務(wù)的運(yùn)維需求,也越來越呈現(xiàn)出精細(xì)化、定制化的趨勢。
嚴(yán)重依賴各 ODM 廠商、IBV 的傳統(tǒng) BMC 開發(fā)模式,開發(fā)周期長,無法實(shí)時(shí)響應(yīng)互聯(lián)網(wǎng)多變的需求。一個(gè)更加開放、更加現(xiàn)代的 BMC 方案,成為當(dāng)務(wù)之急。
功能新架構(gòu)優(yōu),OpenBMC 成字節(jié)跳動(dòng)首選
OpenBMC 是 Linux Foundation 里的一個(gè)開源項(xiàng)目,它方案成熟、社區(qū)活躍,受到 IBM、Google、Facebook、Intel、Inspur 等國內(nèi)外各大廠商的支持。
在架構(gòu)方面,OpenBMC 支持 Aspeed、Nuvoton 等多種 BMC 芯片,以及 x86、ARM、OpenPOWER 等多種服務(wù)器架構(gòu),更是采用 Linux kernel 5.15、SySTEmd 249 (249.4 )、GCC 11.2.0、C 20 等最新的現(xiàn)代化技術(shù)架構(gòu)。
OpenBMC 解決方案流程一覽
但是 OpenBMC 最初是為了解決國外企業(yè)的數(shù)據(jù)中心需求設(shè)計(jì)開發(fā)的,無法完全適配國內(nèi)互聯(lián)網(wǎng)數(shù)據(jù)中心需求?;?OpenBMC,結(jié)合字節(jié)跳動(dòng)服務(wù)器管理和運(yùn)維,開發(fā)自研版本,成為更理想的選擇。
從社區(qū)版本到落地應(yīng)用,OpenBMC 在字節(jié)跳動(dòng)產(chǎn)品化
為了加快 OpenBMC 與字節(jié)跳動(dòng)內(nèi)部業(yè)務(wù)的適配,STE 團(tuán)隊(duì)調(diào)研了 OpenBMC 社區(qū)里,各個(gè)模塊的技術(shù)方案,對比字節(jié)跳動(dòng)內(nèi)部對服務(wù)器的管理和運(yùn)維,挑選出適用的方案。
OpenBMC 在字節(jié)跳動(dòng)產(chǎn)品化過程示意圖
對于能滿足字節(jié)跳動(dòng)內(nèi)部需求的模塊,STE 團(tuán)隊(duì)決定直接使用社區(qū)版本;對于額外的需求,則會(huì)基于社區(qū)模塊,添加并增強(qiáng)功能,最終形成一個(gè)完整的解決方案,進(jìn)行深度測試。
STE 團(tuán)隊(duì)工程師,為我們分享了具體的方案:
- 對于 x86 specfic 的模塊,復(fù)用 Intel 的模塊,例如 PECI,node-manager
- 對于 power control,復(fù)用x86-power-control
- 對于各類傳感器,基于現(xiàn)有的entity-manager/dbus-sensors/virtual-sensor,添加 yaml 來定義需要的 sensor
- 對于風(fēng)扇控制,復(fù)用phosphor-pid-control并添加了單、雙轉(zhuǎn)子的檢測和適配
- 對于 FRU,根據(jù)硬件情況改造相關(guān)代碼,使其支持非標(biāo)準(zhǔn) FRU 格式
- 對于 SEL,實(shí)現(xiàn)新的統(tǒng)一的 logging 方式,把 log entry 轉(zhuǎn)化為標(biāo)準(zhǔn) SEL
- 對于 code-update,基于phopsphor-bmc-code-mgmt添加了 BIOS、CPLD、FPGA 等模塊的支持
- 對于字節(jié)跳動(dòng)內(nèi)部的管理、運(yùn)維,新增了代碼來完成線上的適配工作
此外, STE 團(tuán)隊(duì)也在字節(jié)跳動(dòng)內(nèi)部搭建了 CI 服務(wù)器,完成了自動(dòng)化的編譯和測試,并且與開源社區(qū)的 Gerrit 打通:
- 對于內(nèi)部的每一個(gè) Push/MergeRequest,會(huì)跑 CI
- 對于每一次編譯,都會(huì)通過 QEMU 來跑基本的測試
- 對于重要的 release tag,還會(huì)通過 HW CI 在實(shí)際服務(wù)器上驗(yàn)證
- 對于開源社區(qū)里meta-bytedance的每一個(gè)改動(dòng),也會(huì)跑編譯和 QEMU CI
積極呼吁行業(yè)合作,共同參與社區(qū)共建
據(jù) STE 團(tuán)隊(duì)工程師介紹,OpenBMC 項(xiàng)目目前已經(jīng)在兩種不同配置的機(jī)器上順利完成上線,并持續(xù)穩(wěn)定運(yùn)行了兩個(gè)多月。
同時(shí),STE 團(tuán)隊(duì)的工程師們,也在 OpenBMC 開源社區(qū)里提交了涉及新 feature 及 bug fix 的諸多 commits,目前已經(jīng)成為了 OpenBMC Technical Oversight Forum (TOF) 的一員。
- https://github.com/search?p=1&q=org:openbmc bytedance.com&type=Commits
- https://github.com/openbmc/docs/blob/master/tof/contract.md
未來,字節(jié)跳動(dòng)系統(tǒng)部 STE 團(tuán)隊(duì)將在更多的平臺(tái)上持續(xù)研發(fā) OpenBMC,來更好、更快速地支持服務(wù)器的管理和運(yùn)維。工程師還表示,在后續(xù)開發(fā)中,STE 團(tuán)隊(duì)希望能與更多廠商進(jìn)行全方位、多維度的緊密合作共建,共同開發(fā)更符合國內(nèi)互聯(lián)網(wǎng)數(shù)據(jù)中心需求的開源 BMC 方案。
專訪最后,STE 團(tuán)隊(duì)的工程師也充分表達(dá)了對于優(yōu)秀人才的渴求,歡迎對新技術(shù)、開源感興趣的小伙伴加入字節(jié)跳動(dòng)系統(tǒng)部 STE 團(tuán)隊(duì),用最新的 kernel、最新的編譯器,寫最 modern 的 C 。
關(guān)于字節(jié)跳動(dòng)系統(tǒng)部 STE 團(tuán)隊(duì):
字節(jié)跳動(dòng)系統(tǒng)部 STE 團(tuán)隊(duì) (STE=System Technologies & Engineering,系統(tǒng)技術(shù)與工程) 一直致力于操作系統(tǒng)內(nèi)核與虛擬化、系統(tǒng)基礎(chǔ)軟件與基礎(chǔ)庫的構(gòu)建和性能優(yōu)化、超大規(guī)模數(shù)據(jù)中心的系統(tǒng)穩(wěn)定性和可靠性建設(shè)、新硬件與軟件的協(xié)同設(shè)計(jì)等基礎(chǔ)技術(shù)領(lǐng)域的研發(fā)與工程化落地,具備全面的基礎(chǔ)軟件工程能力,為字節(jié)上層業(yè)務(wù)保駕護(hù)航。同時(shí),團(tuán)隊(duì)積極關(guān)注社區(qū)技術(shù)動(dòng)向,擁抱開源和標(biāo)準(zhǔn)。
更多招聘信息,可聯(lián)系 chenziying@bytedance.com 獲取。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。