摘要:作者浪潮信息技術研發部吳海波背景月日,字節跳動宣布全球首批基于云固件的服務器實現批量化上線運行。指是提出的對目前固件的開源優化解決方案。已被基金會接受。
作者: 浪潮信息技術研發部 吳海波
背景
9 月 15 日,字節跳動宣布全球首批基于LinuxBoot云固件的x86服務器實現批量化上線運行【1】。該產品固件由字節跳動系統技術與工程團隊(STE團隊)、浪潮信息技術研發團隊以及Intel聯合開發實現。
產品采用UEFI Minplatform(Minimum?Platform的縮寫)進行芯片初始化和最小化的平臺初始化功能,將其它大部分傳統UEFI固件初始化的流程代碼移植到LinuxBoot模塊中進行實現。通過精簡UEFI 功能模塊,在底層固件模塊中引入Linux軟件生態,面向云平臺原生需求開發云固件解決方案,使得服務器系統固件更易于開發和維護。
將Linux生態引入到系統固件中是目前開源固件技術發展的一種趨勢,本文簡單介紹了浪潮服務器在開源系統固件方面的創新實踐。
目前系統固件問題
在服務器領域,經常會聽到“固件”這個名詞,什么是固件呢?
“固件”就是存儲在EEPROM或者FLASH中的程序。它是在電子硬件系統最基礎最底層的軟件,在系統上電后,首先要執行的程序就是固件。固件負責完成硬件的初始化,讓電子設備系統處于一個正常的狀態,然后才能讓上層的操作系統或者應用軟件正常使用。
對于服務器領域,BIOS是服務器最重要的固件,BIOS負責完成CPU、內存和外設的初始化,將硬件系統的抽象信息報告給操作系統,操作系統才能正常使用硬件。
目前服務器的BIOS均采用UEFI/Tiano的方案[2],但是隨著目前云服務和數據中心的快速發展,UEFI BIOS也逐漸顯露了一些問題:
(1)隨著技術的發展,UEFI越來越復雜,門檻高,在UEFI專業領域的開發人員相比其他軟件開發而言非常稀少。
(2)目前大多都是服務器廠商在購買BIOS軟件廠商的UEFI BIOS代碼基礎上進行增強開發。 不同BIOS軟件廠商提供代碼風格和架構差別很大,一個服務器廠商的UEFI BIOS開發人員需要熟悉多套代碼;另外,UEFI BIOS代碼結構和內容有時還會隨著服務器CPU的更新升級發生較大變動;這些都增加了BIOS固件的開發難度。
(3)由于UEFI BIOS固件中包含了服務器廠商和IBV(獨立BIOS)廠商的知識產權,所以大部分BIOS代碼都是閉源的,通過二進制的形式分發給服務器廠商使用。閉源會帶來三方面的問題:i) 如果BIOS固件出現問題,只能讓廠商來解決,這可能延長故障處理時間。ii) 由于代碼是閉源的,對客戶而言也隱藏著一些安全風險。Iii) 代碼閉源,也將導致用戶難以增添定制化功能,無法滿足當前云環境下的快速迭代更新的需求。
綜上所述,目前UEFI生態環境面臨著開發人員短缺,代碼不夠開放,開發難度大,隱藏著安全風險等問題。
開源固件解決方案
為解決當前UEFI BIOS固件的問題,尤其是針對當前云環境下的應用,目前開源社區提出了多種優化解決方案,包括Minplatform[3,4],CoreBoot[5]和LinuxBoot[6]等;主要是希望通過引入開源的方式來解決和優化目前UEFI BIOS固件遇到的問題。下面分別簡單介紹下這些方案的內容。
Minplatform
Minplatform指Mininum Platform, 是Intel 提出的對目前UEFI固件的開源優化解決方案。如下圖1所示,Minplatform定義了平臺啟動的多個BootStage,通過BootStage的配置實現了UEFI BIOS開發過程中依據不同需求選擇配置相應的功能模塊實現完整UEFI BIOS的最終解決方案。
圖1 Minplaform定義的多個BootStage
在具體的實現上,如圖2所示,Minplatform是依賴于UEFI Tiano EDK2[7]的開源代碼,以搭積木的方式逐漸添加系統固件的功能,最終實現完整的BIOS固件。Minplatfom相比當前全功能的UEFI BIOS而言,先是一個做減法的操作,能快速啟動。它定義了UEFI BIOS的最小平臺代碼;然后才做加法,根據不同需求來增加功能,繼而實現較完整的UEFI BIOS。通過這種方式有效的減少了UEFI固件開發難度,增加功能代碼的復用,是對當前UEFI BIOS固件開發的一種優化方案。
圖2 MinPlatform實現
由于Minplatform是基于UEFI Tiano EDK2的開源實現,從BIOS代碼廠商那購買UEFI BIOS,服務器廠商可以直接將功能代碼做簡單移植就可以作為Minplatform。這種方案對目前服務器廠商而言影響最小,因為已經積累了豐富的UEFI開發經驗。
CoreBoot
CoreBoot的前身是LinuxBios,是Ron Minnich于上世紀發起的項目,一種Linux代碼風格的開源固件解決方案,跟UEFI固件架構完全不同。CoreBoot的目標是做最小的操作來完成硬件功能初始化,盡快的啟動到操作系統中。
圖3 CoreBoot的發展
UEFI的平臺啟動初始化流程為SEC->PEI->DXE->BDS->TLS->RT這幾個階段,其中SEC是指安全驗證階段,PEI是指EFI前期初始化階段,DXE是驅動執行環境階段,BDS是指啟動設備選擇階段,TSL是指操作系統加載前期階段,RT是指運行時階段。
而CoreBoot將啟動流程分為bootblock->romstage->ramstage->payload這幾個主要階段, 如下圖4所示。其中booblock是匯編編寫的,主要為C運行環境做準備;romstage階段主要是來初始化內存和一些早期初始化操作;ramstage階段主要執行系統設備的初始化,比如pcie初始化,創建ACPI表等;到了payload階段CoreBoot的初始化操作實際上已經完成,payload可以作為最終的Bootloader來加載操作系統。
圖4 CoreBoot平臺初始化流程
相比UEFI架構的代碼,CoreBoot代碼跟Linux風格類似,完全開源, 它結合CPU廠商的芯片初始化二進制包(FSP/ATF/AGASA等)一起使用,來完成封閉的芯片初始化功能,同時可以集成Tianocore、LinuxBoot等各種payload,來滿足各種需求。
目前CoreBoot主要在Chromebook等PC機器上應用,由于CoreBoot的開源以及Linux風格的代碼架構的原因, 以及在Linux領域的人才優勢,也在推進支持使用CoreBoot作為服務器的UEFI BIOS的替代選擇。
LinuxBoot
LinuxBoot來源于NERF(Non-Extensible Reduced Firmware)項目,是用Linux作為固件的一部分的解決方案,它不是一個完整的固件方案,無法獨立完成所有的硬件初始化功能,必須依賴于UEFI 、CoreBoot等完成CPU和內存初始化,然后使用Linux Kernel來完成外設初始化和啟動操作系統的功能。
圖5 LinuxBoot架構圖
對于當前服務器固件解決方案UEFI BIOS而言,LinuxBoot主要是通過開源的Linux Kernel來取代UEFI DXE和BDS階段的功能,比如通過Linux下的開源driver來取代UEFI下的設備驅動,用Linux完備的網絡功能取代UEFI的。UEFI結合LinuxBoot可以減少UEFI代碼和開發難度。
LinuxBoot已被 Linux 基金會接受。目前在服務器領域,它作為固件部分的方案得到了許多廠商的支持,但是這種方案要求有較強的Linux開發能力,否則難以享受LinuxBoot帶來的優勢。
固件發展趨勢
雖然目前基于UEFI的BIOS系統固件還是絕對的主流,但是UEFI BIOS面臨的閉源、安全和開發難問題也是無法回避的問題。尤其是對于具有大型數據中心的大型互聯網服務提供商來說,如何將符合自己業務場景需求的功能添加到固件中,如何實現系統固件的快速開發和維護,從而減少因為固件維護導致的停機時間,如何保證固件代碼的安全可靠, 如何具備系統固件開發能力和掌控能力,都需要考慮。
相比服務器廠商,大型互聯網服務提供商,擁有大量的Linux方面的開發人才,所以希望引入LinuxBoot和CoreBoot這些基于Linux或類似的固件方案來增加在服務器固件上的技術掌控能力。另外通過開源的固件解決方案,也能夠減少UEFI代碼中隱藏的代碼安全風險,加快服務器固件開發,減少服務器系統固件的維護時間。
圖6 服務器固件 Bootloader各方案對比(引自字節跳動STE團隊)
這也要求服務器廠商需要提前了解這些客戶的需求,并與之深入合作來保持在未來固件發展中重要地位。在構建智慧時代的“新基建”-智算中心的過程中,浪潮秉承著開放標準、集約高效和普適普惠的理念,以穩健、實干的態度,積極主動地與用戶、以及上下游合作伙伴一道,共同推動開放計算生態健康有序的發展。
感謝黃家明、吳安、葉毓睿等對本篇文章的貢獻。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/122478.html
摘要:華為云華為云在云原生這場游戲中,最具競爭力的玩家之一。年,金山云在云原生領域推出了三款重磅產品星曜裸金屬服務器云服務器和云盤。在線上智博會上,浪潮云發布了經過全新迭代升級的浪潮云,進一步提升平臺云原生服務能力。面對數字時代復雜系統的不確定性,傳統的 IT 應用架構研發交付周期長、維護成本高、創新升級難,煙囪式架構,開放性差、組件復用度低,這些都成為了企業業務快速增長的瓶頸。而云原生以其敏捷、...
摘要:月日,在風云際會百度云計算戰略發布會上,百度云計算事業部總經理劉煬正式發布智能物聯網平臺天工。為解決上述問題,百度云計算推出了天工智能物聯網平臺,助力行業跨越鴻溝,實現產業升級。? 《天工開物》是世界上第一部關于農業和手工業生產的綜合性著作,強調人類與自然的協調。7月13日,在2016風云際會百度云計算戰略發布會上,百度云計算事業部總經理劉煬正式發布智能物聯網平臺——天工。秉承天工之理念,...
摘要:德邦快遞創始于年,從專于傳統零擔業務到現在全面發力大件快遞,業務量正處于高速增長中。網易云輕舟微服務是圍繞應用和微服務打造的一站式平臺,幫助用戶快速實現易接入易運維的微服務解決方案。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 2018年7月31日,由杭州市政府、賽迪以及網易主辦的2018中國杭州云創大會于杭州國際博覽中心如期舉辦,大會以開放·生態·賦能為主題,匯聚行業領袖、技...
摘要:在德國漢諾威舉行的國際消費電子信息及通信博覽會期間,華為展示了基于分布式云存儲的技術創新,旨在讓更多企業享受到云帶來的高效便捷,加速數字化轉型。自年發布第一款分布式存儲以來,華為分布式存儲已經規模應用于全球超過家行業客戶。在德國漢諾威舉行的2018國際消費電子信息及通信博覽會(CEBIT 2018)期間,華為展示了基于分布式云存儲的技術創新,旨在讓更多企業享受到云帶來的高效便捷,加速數字化轉...
閱讀 2784·2021-10-14 09:42
閱讀 839·2021-10-11 10:57
閱讀 786·2019-08-30 15:54
閱讀 1928·2019-08-30 13:50
閱讀 1694·2019-08-30 11:19
閱讀 945·2019-08-29 12:38
閱讀 1437·2019-08-26 11:51
閱讀 1402·2019-08-26 10:48