本申請涉及計算機技術領域,具體涉及服務器技術領域,尤其涉及用于更新服務器的服務器固件的方法和裝置以及服務器。
背景技術:
固件(firmware),是指固化在硬件中的軟件。它存儲著計算機系統(tǒng)中硬件設備最基本的參數(shù),為系統(tǒng)提供最底層、最直接的硬件控制。在服務器中,也需要通過固件為系統(tǒng)提供硬件控制。為了使服務器固件能提供新的功能或者解決了以前的版本的一些問題,需要對服務器固件進行更新,以使得服務器處于更加穩(wěn)定和安全的狀態(tài)。
現(xiàn)有的固件更新方式可以參考圖1和圖2對應的結構示意圖。其中,圖1和圖2中所示的bmc為基板管理控制器(baseboardmanagementcontroller),其是一個專門的服務處理機,通常用來監(jiān)控一臺服務器的溫度、濕度、電源電壓、風扇速度、通信參數(shù)和操作系統(tǒng)函數(shù)等物理變量,以實現(xiàn)診斷、控制臺支持、配置管理、硬件管理和故障排除等功能。在圖1所示的架構中,用于更新固件的鏡像文件存儲在bmc存儲器104中,必須通過bmc103以及南橋芯片101運行時將鏡像文件加載到固件存儲器102上才能完成固件更新,這使得更新過程必須依賴于服務器的運行才能完成,而服務器運行時進行固件更新可能會影響到服務器執(zhí)行時的其他功能。圖2所示的架構中,用于更新固件的鏡像文件存放在bmc存儲器203中,未進行固件更新時切換電路204與南橋芯片201連接。在需要進行固件更新時,切換電路204切換為與bmc202連接,此時,可以通過切換電路204將存儲在bmc存儲器203中的鏡像文件加載到固件主存儲器205以及固件備份存儲器206中,已完成服務器固件的更新過程。該方式必須在依賴于將切換電路204所連接的部件在南橋芯片201與bmc202之間的切換完成,依賴于額外的切換電路,需要提高硬件成本。因此,存在提高對現(xiàn)有的服務器固件更新方案進行改進的需求。
技術實現(xiàn)要素:
本申請的目的在于提出一種改進的用于更新服務器的服務器固件的方法和裝置,來解決以上背景技術部分提到的技術問題。
第一方面,本申請實施例提供了一種用于更新服務器的服務器固件的方法,服務器基于purley平臺,服務器的南橋芯片通過espi總線與bmc電連接,bmc分別通過espi總線與存儲服務器固件的固件存儲器以及bmc存儲器電連接,該方法包括:在預先設置的升級條件滿足時,使用bmc執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作;根據(jù)讀取操作讀取到的信息對固件存儲器中存儲的服務器固件進行更新。
在一些實施例中,在使用bmc執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作之前,該方法還包括:使用bmc的網(wǎng)口和串口接收用戶遠程上傳的服務器固件更新用鏡像文件并存儲在bmc存儲器上。
在一些實施例中,升級條件包括服務器重啟時。
第二方面,本申請實施例提供了一種用于更新服務器的服務器固件的裝置,其特征在于,服務器基于purley平臺,服務器的南橋芯片通過espi總線與bmc電連接,bmc分別通過espi總線與存儲服務器固件的固件存儲器以及bmc存儲器電連接,該裝置包括:讀取單元,用于在預先設置的升級條件滿足時,使用bmc執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作;更新單元,用于根據(jù)讀取操作讀取到的信息對固件存儲器中存儲的服務器固件進行更新。
在一些實施例中,上述裝置還包括:接收單元,用于使用bmc的網(wǎng)口和串口接收用戶遠程上傳的服務器固件更新用鏡像文件并存儲在bmc存儲器上。
在一些實施例中,升級條件包括服務器重啟時。
第三方面,本申請實施例提供了一種服務器,該服務器基于purley平臺,服務器包括南橋芯片、bmc、存儲服務器固件的固件存儲器以及bmc存儲器,南橋芯片通過espi總線與bmc電連接,bmc分別通過espi總線與固件存儲器以及bmc存儲器電連接,其中:bmc存儲器用于存儲服務器固件更新用鏡像文件;bmc用于在預先設置的升級條件滿足時,執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作,以及根據(jù)讀取操作讀取到的信息對固件存儲器中存儲的服務器固件進行更新。
在一些實施例中,該bmc還用于:使用bmc的網(wǎng)口和串口接收用戶遠程上傳的服務器固件更新用鏡像文件并存儲在bmc存儲器上。
在一些實施例中,升級條件包括服務器重啟時。
第三方面,本申請實施例提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)如第一方面中任一項所描述的方法。
本申請?zhí)峁┑挠糜诟路掌鞯姆掌鞴碳姆椒ê脱b置,由于選用purley平臺作為服務器架構并使用espi總線作為部件之間連接的總線,使得bmc只需要直接掛載在服務器的南橋芯片上并同時與存儲服務器固件的固件存儲器以及bmc存儲器電連接,就可以在升級條件滿足時利用固件存儲器中的服務器固件更新用鏡像文件對固件存儲器中的服務器固件進行更新,不需要使用額外的硬件電路即可實現(xiàn)對服務器固件的帶外升級,成本較低。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1、圖2是現(xiàn)有技術中進行服務器固件升級的兩種系統(tǒng)架構圖;
圖3是本申請可以應用于其中的示例性系統(tǒng)架構圖;
圖4是根據(jù)本申請的用于更新服務器的服務器固件的方法的一個實施例的流程圖;
圖5是根據(jù)本申請的用于更新服務器的服務器固件的裝置的一個實施例的結構示意圖;
圖6是適于用來實現(xiàn)本申請實施例的服務器的結構示意圖。
具體實施方式
下面結合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關發(fā)明相關的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
圖3示出了可以應用本申請的用于更新服務器的服務器固件的方法或用于更新服務器的服務器固件的裝置的實施例的示例性系統(tǒng)架構300。
如圖3所示,系統(tǒng)架構300可以包括待更新固件的服務器301,網(wǎng)絡302和固件服務器303。網(wǎng)絡302用以在待更新固件的服務器301和固件服務器303之間提供通信鏈路的介質。網(wǎng)絡302可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
待更新固件的服務器301可以通過網(wǎng)絡302與固件服務器303交互,以接收服務器固件更新用鏡像文件。固件服務器303可以是提供固件服務的服務器,例如對待更新固件的服務器所需要的更新用鏡像文件提供支持的后臺服務器。后臺服務器可以基于請求或自動將更新用鏡像文件發(fā)送給待更新固件的服務器301。
需要說明的是,本申請實施例所提供的用于更新服務器的服務器固件的方法一般由待更新固件的服務器301執(zhí)行,相應地,用于更新服務器的服務器固件的裝置一般設置于待更新固件的服務器301中。
應該理解,圖3中的待更新固件的服務器、網(wǎng)絡和固件服務器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的待更新固件的服務器、網(wǎng)絡和固件服務器。
繼續(xù)參考圖4,示出了根據(jù)本申請的用于更新服務器的服務器固件的方法的一個實施例的流程400。該服務器基于purley平臺,服務器的南橋芯片通過espi總線與bmc電連接,bmc分別通過espi總線與固件存儲器以及bmc存儲器電連接。其中,purley平臺是英特爾公司新推出的服務器平臺,其具有6通道12槽的ddr4以及48通道的pcie。此外,purley平臺也支持qat(quickassist技術)。固件存儲器可以是為上述服務器存儲所使用的固件的存儲器。實踐中,固件存儲器可以是只讀存儲器rom,也可以是閃存flash,還可以是其他類型的存儲器。bmc(baseboardmanagementcontroller,基板管理控制器),是一個專門的服務處理機,它通常用來監(jiān)控一臺服務器的溫度、濕度、電源電壓、風扇速度、通信參數(shù)和操作系統(tǒng)函數(shù)等物理變量,以實現(xiàn)診斷、控制臺支持、配置管理、硬件管理和故障排除等功能。bmc存儲器則是用于對bmc提供存儲支持的存儲器,bmc存儲器的類型也可以包括但不限于rom、flash等。該用于更新服務器的服務器固件的方法,包括以下步驟:
步驟401,在預先設置的升級條件滿足時,使用bmc執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作。
在本實施例中,其中,bmc存儲器中可以預先存儲有的服務器更新用鏡像文件,該服務器更新用鏡像文件可以是bmc通過圖3所示的網(wǎng)絡架構圖從遠程設備處接收到的。
此外,電子設備可以預先設置一定的升級條件。在執(zhí)行步驟401時,電子設備可以不斷檢測該升級條件是否滿足,并在滿足該升級條件時執(zhí)行后續(xù)步驟。其中,該后續(xù)步驟為使用bmc執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作。上述升級條件可以根據(jù)需要進行設置。
步驟402,根據(jù)讀取操作讀取到的信息對固件存儲器中存儲的服務器固件進行更新。
在本實施例中,基于步驟401中對服務器固件更新用鏡像文件執(zhí)行讀取操作所讀取到的信息,電子設備使用該信息對固件存儲器中存儲的服務器固件進行更新。
在本實施例的一些可選的實現(xiàn)方式中,在步驟401之前,上述方法還包括:使用bmc的網(wǎng)口和串口接收用戶遠程上傳的服務器固件更新用鏡像文件并存儲在bmc存儲器上。在該實現(xiàn)方式中,更新用的鏡像文件可以預先通過bmc的網(wǎng)口和串口進行遠程獲取,從而使得后續(xù)固件更新過程得以順利執(zhí)行。
在本實施例的一些可選實現(xiàn)方式中,升級條件包括服務器重啟時。在該實現(xiàn)方式中,將升級條件設置為服務器重啟時,從而可以在服務器尚未完全運行時進行固件更新,即可避免服務器運行過程中升級固件對其他功能的影響,也不需要使用單獨的時間來進行固件更新。
本申請的上述實施例提供的方法中,由于選用purley平臺作為服務器架構并使用espi總線作為部件之間連接的總線,使得bmc只需要直接掛載在服務器的南橋芯片上并同時與存儲服務器固件的固件存儲器以及bmc存儲器電連接,就可以在升級條件滿足時利用固件存儲器中的服務器固件更新用鏡像文件對固件存儲器中的服務器固件進行更新,不需要使用額外的硬件電路即可實現(xiàn)對服務器固件的帶外升級,成本較低。
進一步參考圖5,作為對上述圖2所示方法的實現(xiàn),本申請?zhí)峁┝艘环N用于更新服務器的服務器固件的裝置的一個實施例,該裝置實施例與圖2所示的方法實施例相對應,該裝置具體可以應用于各種帶升級固件的服務器中。該服務器基于purley平臺,服務器的南橋芯片通過espi總線與bmc電連接,bmc分別通過espi總線與存儲服務器固件的固件存儲器以及bmc存儲器電連接。其中,固件存儲器是服務器中用于存儲服務器固件的存儲器。固件存儲器是包括但不限于biosflash。
如圖5所示,本實施例的用于更新服務器的服務器固件的裝置500包括:讀取單元501和更新單元502。其中,讀取單元501用于在預先設置的升級條件滿足時,使用bmc執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作;更新單元502用于根據(jù)讀取操作讀取到的信息對固件存儲器中存儲的服務器固件進行更新。
在本實施例中,讀取單元501和更新單元502的具體處理可以參考圖4對應實施例中的步驟401、步驟402,這里不再贅述。
在本實施例的一些可選實現(xiàn)方式中,裝置500還包括:接收單元(未示出),用于使用bmc的網(wǎng)口和串口接收用戶遠程上傳的服務器固件更新用鏡像文件并存儲在bmc存儲器上。該實現(xiàn)方式的具體處理可以參考圖4對應實施例中相應的實現(xiàn)方式,這里不再贅述。
在本實施例的一些可選實現(xiàn)方式中,升級條件包括服務器重啟時。該實現(xiàn)方式的具體處理可以參考圖4對應實施例中相應的實現(xiàn)方式,這里不再贅述。
本申請還提供一種服務器。下面參考圖6,其示出了適于用來實現(xiàn)本申請實施例的服務器600的結構示意圖。圖6示出的服務器僅僅是一個示例,不應對本申請實施例的功能和使用范圍帶來任何限制。
如圖6所示,該服務器600基于purley平臺,服務器600包括南橋芯片601、bmc603、固件存儲器以及bmc存儲器,該南橋芯片通過espi總線與bmc電連接,bmc分別通過espi總線與固件存儲器以及bmc存儲器電連接,其中:bmc存儲器用于存儲服務器固件更新用鏡像文件;bmc用于在預先設置的升級條件滿足時,執(zhí)行對bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作,以及根據(jù)讀取操作讀取到的信息對固件存儲器中存儲的服務器固件進行更新。
特別地,根據(jù)本公開的實施例,上文參考流程圖描述的過程可以被實現(xiàn)為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產(chǎn)品,其包括承載在計算機可讀介質上的計算機程序,該計算機程序包含用于執(zhí)行流程圖所示的方法的程序代碼。需要說明的是,本申請所描述的計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質或者是上述兩者的任意組合。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子可以包括但不限于:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機訪問存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本申請中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。而在本申請中,計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質上包含的程序代碼可以用任何適當?shù)慕橘|傳輸,包括但不限于:無線、電線、光纜、rf等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,該模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個接連地表示的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的單元也可以設置在處理器中,例如,可以描述為:一種處理器包括讀取單元和更新單元。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定,例如,接收單元還可以被描述為“根據(jù)讀取操作讀取到的信息對固件存儲器中存儲的服務器固件進行更新的單元”。
作為另一方面,本申請還提供了一種計算機可讀介質,該計算機可讀介質可以是上述實施例中描述的裝置中所包含的;也可以是單獨存在,而未裝配入該裝置中。上述計算機可讀介質承載有一個或者多個程序,當上述一個或者多個程序被該裝置執(zhí)行時,使得該裝置:在預先設置的升級條件滿足時,使用所述bmc執(zhí)行對所述bmc存儲器中所存儲的服務器固件更新用鏡像文件的讀取操作;根據(jù)所述讀取操作讀取到的信息對所述固件存儲器中存儲的服務器固件進行更新。
以上描述僅為本申請的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離上述發(fā)明構思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。