Bmc固件自動更新系統(tǒng)及方法
【專利摘要】一種BMC固件自動更新系統(tǒng)及方法,應(yīng)用于服務(wù)器中,該服務(wù)器包括BMC芯片,該服務(wù)器通過網(wǎng)絡(luò)與監(jiān)控端設(shè)備和數(shù)據(jù)庫相連接。該方法包括步驟:開啟服務(wù)器的BMC自動更新功能,并通過服務(wù)器的操作系統(tǒng)設(shè)置一個監(jiān)聽狗的監(jiān)聽時間周期;啟動監(jiān)聽狗對監(jiān)聽時間周期進行計時;當(dāng)監(jiān)聽時間周期結(jié)束時,將監(jiān)聽時間周期重新設(shè)置為初始值;當(dāng)存儲器中的當(dāng)前BMC固件需要更新時,從數(shù)據(jù)庫中下載最新版本的BMC固件資料,并將最新版本的BMC固件資料自動更新至BMC芯片的存儲器相應(yīng)的存儲區(qū)域中。實施本發(fā)明,能夠自動更新存儲在所有服務(wù)器的BMC芯片中的BMC固件資料,降低手動刷新BMC固件資料的工作復(fù)雜度,減少刷新過程中出錯的概率。
【專利說明】BMC固件自動更新系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種服務(wù)器資料更新系統(tǒng)及方法,特別是關(guān)于一種服務(wù)器的BMC(基板管理控制器,Baseboard Management Controller)固件(Firmware)自動更新系統(tǒng)及方法。
【背景技術(shù)】
[0002]服務(wù)器的應(yīng)用在當(dāng)今信息社會應(yīng)用的越來越廣泛,其性能好,安全性高,從而得到了用戶的好評。大型公司或企業(yè)都少不了服務(wù)器的存在,而且數(shù)量很大。一個公司中的數(shù)據(jù)中心(Data Center)中有很多服務(wù)器,如果每一個服務(wù)器的資料需要更新十分麻煩,而且資料量非常大。例如,需要進行服務(wù)器的BMC固件(Firmware)的刷新工作,可以通過Web瀏覽器或者網(wǎng)絡(luò)來更新。然而,數(shù)據(jù)中心的服務(wù)器數(shù)量龐大,如果有了新版本的BMC固件,需要要一臺一臺的服務(wù)器來更新,而且需要工作人員來進行手動操作,其工程量大,效率也不是很高,工作人員易產(chǎn)生疲勞,從而發(fā)生不必要的錯誤。
【發(fā)明內(nèi)容】
[0003]鑒于以上內(nèi)容,有必要提供一種BMC固件自動更新系統(tǒng)及方法,能夠自動更新存儲在所有服務(wù)器的BMC芯片中的BMC固件資料,降低工作人員手動刷新BMC固件資料的工作復(fù)雜度與繁瑣程度,以及減少刷新BMC固件資料過程中出錯的概率。
[0004]所述的BMC固件自動更新系統(tǒng)運行于服務(wù)器中,該服務(wù)器包括BMC芯片,該服務(wù)器通過網(wǎng)絡(luò)與監(jiān)控端設(shè)備和數(shù)據(jù)庫相連接。該BMC固件自動更新系統(tǒng)包括:設(shè)置模塊,用于根據(jù)BMC更新指令開啟服務(wù)器的BMC自動更新功能,以及通過服務(wù)器的操作系統(tǒng)設(shè)置一個監(jiān)聽狗的監(jiān)聽時間周期;監(jiān)聽模塊,用于啟動監(jiān)聽狗對監(jiān)聽時間周期進行計時,判斷監(jiān)聽狗的監(jiān)聽時間周期是否結(jié)束,當(dāng)監(jiān)聽時間周期結(jié)束時,將監(jiān)聽時間周期重新設(shè)置為初始值;更新模塊,用于判斷BMC芯片的存儲器中的當(dāng)前BMC固件是否需要更新,當(dāng)存儲器中的當(dāng)前BMC固件需要更新時,從數(shù)據(jù)庫中下載最新版本的BMC固件資料,以及將最新版本的BMC固件資料自動更新至BMC芯片的存儲器相應(yīng)的存儲區(qū)域中。
[0005]所述的BMC固件自動更新方法應(yīng)用于服務(wù)器中,該服務(wù)器包括BMC芯片,該服務(wù)器通過網(wǎng)絡(luò)與監(jiān)控端設(shè)備和數(shù)據(jù)庫相連接。該方法包括步驟:根據(jù)BMC更新指令開啟服務(wù)器的BMC自動更新功能,并通過服務(wù)器的操作系統(tǒng)設(shè)置一個監(jiān)聽狗的監(jiān)聽時間周期;啟動監(jiān)聽狗對監(jiān)聽時間周期進行計時;判斷監(jiān)聽狗的監(jiān)聽時間周期是否結(jié)束;當(dāng)監(jiān)聽時間周期結(jié)束時,將監(jiān)聽時間周期重新設(shè)置為初始值;判斷BMC芯片的存儲器中的當(dāng)前BMC固件是否需要更新;當(dāng)存儲器中的當(dāng)前BMC固件需要更新時,從數(shù)據(jù)庫中下載最新版本的BMC固件資料,以及將最新版本的BMC固件資料自動更新至BMC芯片的存儲器相應(yīng)的存儲區(qū)域中。
[0006]相較于現(xiàn)有技術(shù),本發(fā)明所述的BMC固件自動更新系統(tǒng)及方法,能夠自動更新數(shù)據(jù)中心的所有服務(wù)器的BMC固件資料,實現(xiàn)無人管理自動化更新的操作,大大縮短了工作時間。工作人員只需要提前設(shè)置更周期就可以不需要在對服務(wù)器一臺一臺的進行手動刷新,降低了工作人員的工作復(fù)雜度與繁瑣程度,并減少刷新過程中出錯的概率。
【專利附圖】
【附圖說明】
[0007]圖1是本發(fā)明BMC固件自動更新系統(tǒng)較佳實施例的運行環(huán)境示意圖。
[0008]圖2是本發(fā)明BMC固件自動更新方法較佳實施例的流程圖。
[0009]主要元件符號說明
[0010]服務(wù)器I
[0011]BMC 芯片10
[0012]BMC固件自動更新系統(tǒng)11
[0013]設(shè)置模塊111
[0014]監(jiān)聽模塊112
[0015]更新模塊103
[0016]存儲器12
[0017]微處理器13
[0018]監(jiān)控端設(shè)備2
[0019]數(shù)據(jù)庫3
[0020]網(wǎng)絡(luò)4
【具體實施方式】
[0021]參閱圖1所示,是本發(fā)明BMC固件自動更新系統(tǒng)11較佳實施例的運行環(huán)境示意圖。在本實施例中,所述的BMC固件自動更新系統(tǒng)11安裝并運行于服務(wù)器I中,該服務(wù)器I還包括,但不僅限于,基板管理控制器(Baseboard Management Controller, BMC芯片)10。該BMC芯片10包括,但不僅限于,存儲器12以及微處理器13。該服務(wù)器I通過網(wǎng)絡(luò)4與監(jiān)控端設(shè)備2和數(shù)據(jù)庫3連接,所述的監(jiān)控端設(shè)備2可以為一種個人計算機(PC)、工作站計算機(workstat1n computer)或其他電子裝置,用于用戶輸入監(jiān)控服務(wù)器I的各種指令,包括BMC更新指令等。所述的數(shù)據(jù)庫3可以為一種本地數(shù)據(jù)庫(Local database),也可以為一種網(wǎng)絡(luò)數(shù)據(jù)庫(Web database)或文件服務(wù)器(File server),用于存儲最新版本的BMC固件(Firmware)資料以供服務(wù)器I下載使用。
[0022]所述的存儲器12為一種內(nèi)置于BMC芯片10中的Flash存儲器或者EEPROM存儲器,用于存儲服服務(wù)I所需的BMC固件資料。該BMC固件是一種管理服務(wù)器I的軟件系統(tǒng)程序,包括服務(wù)器I的硬件配置參數(shù)、服務(wù)器I的管理程序等。所述的微處理器13是一種微控制器或其他具備數(shù)據(jù)處理能力的處理器。
[0023]在本實施例中,所述的BMC固件自動更新系統(tǒng)11包括設(shè)置模塊111、監(jiān)聽模塊112以及更新模塊113。本發(fā)明所稱的功能模塊是指一種能夠被微處理器13所執(zhí)行并且能夠完成固定功能的一系列程序指令段,其存儲在存儲器12中。關(guān)于各功能模塊111-113將在圖2的流程圖中作具體描述。
[0024]參閱圖2所示,是本發(fā)明BMC固件自動更新方法較佳實施例的流程圖。在本實施例中,所述的方法應(yīng)用在服務(wù)器I中,能夠通過自動更新存儲在服務(wù)器I的BMC芯片10中的BMC固件資料,降低工作人員手動刷新BMC固件資料的工作復(fù)雜度與繁瑣程度,以及減少刷新BMC固件資料過程中出錯的概率。
[0025]步驟S21,服務(wù)器I通過網(wǎng)絡(luò)4接收監(jiān)控端設(shè)備2發(fā)送的BMC更新指令。在本實施例中,用戶可以在監(jiān)控端設(shè)備2輸入監(jiān)控服務(wù)器I的各種指令,包括BMC更新指令等,監(jiān)控端設(shè)備2通過網(wǎng)絡(luò)4將BMC更新指令發(fā)送至服務(wù)器I。
[0026]步驟S22,設(shè)置模塊111根據(jù)所述BMC更新指令開啟服務(wù)器的BMC自動更新功能,并通過服務(wù)器I的操作系統(tǒng)設(shè)置一個監(jiān)聽狗(Watchdog)的監(jiān)聽時間周期的初始值。在本實施例中,所述的監(jiān)聽狗是由服務(wù)器I的操作系統(tǒng)啟動的一種監(jiān)聽線程,用于監(jiān)聽BMC固件自動更新的過程。所述的監(jiān)聽時間周期可以根據(jù)用戶需求設(shè)置一天、一周或一月等為一個時間周期。
[0027]步驟S23,設(shè)置模塊111啟動所述監(jiān)聽狗對監(jiān)聽時間周期進行計時。在本實施例中,所述監(jiān)聽狗利用操作系統(tǒng)的時鐘對監(jiān)聽時間周期進行倒計時。
[0028]步驟S24,監(jiān)聽模塊112判斷監(jiān)聽狗的監(jiān)聽時間周期是否結(jié)束。若監(jiān)聽狗的監(jiān)聽時間周期沒有結(jié)束,則流程返回步驟S23繼續(xù)計時;若監(jiān)聽狗的監(jiān)聽時間周期結(jié)束,則流程執(zhí)行步驟S25。
[0029]步驟S25,監(jiān)聽模塊112將監(jiān)聽狗的監(jiān)聽時間周期重新設(shè)置為初始值。在本實施例中,監(jiān)聽模塊112利用操作系統(tǒng)中的系統(tǒng)自動恢復(fù)功能(automatic system recovery, ASR機制)來定期清除監(jiān)聽狗的監(jiān)聽時間周期的計時時間,以防止錯誤的BMC系統(tǒng)狀態(tài)被監(jiān)聽模塊112所偵測到,從而做出不正確的錯誤處理。
[0030]步驟S26,更新模塊103從BMC芯片10的存儲器12中獲取當(dāng)前BMC固件的版本信息。在本實施例中,更新模塊103會按照用戶設(shè)定好的監(jiān)聽時間周期來結(jié)束時,發(fā)送一個IPMI命令從BMC芯片10的存儲器12中獲取當(dāng)前BMC固件的版本信息,并反饋給監(jiān)控端設(shè)備2告知用戶是否需要更新服務(wù)器I中的BMC固件資料。
[0031]步驟S27,更新模塊103判斷存儲器12中的當(dāng)前BMC固件是否需要更新。在本實施例中,所述更新模塊103通過網(wǎng)絡(luò)4從數(shù)據(jù)庫3中獲取最新BMC固件的版本信息,并將最新BMC固件的版本信息與存儲器12中的當(dāng)前BMC固件的版本信息進行比較。當(dāng)最新BMC固件的版本高于當(dāng)前BMC固件的版本時,更新模塊103確定存儲器12中的當(dāng)前BMC固件需要更新;當(dāng)最新BMC固件的版本沒有高于當(dāng)前BMC固件的版本時,更新模塊103確定存儲器12中的當(dāng)前BMC固件不需要更新。
[0032]若存儲器12中的當(dāng)前BMC固件不需要更新,則流程返回步驟S23繼續(xù)進行下一個監(jiān)聽時間周期計時;若存儲器12中的當(dāng)前BMC固件需要更新時,則流程執(zhí)行步驟S28。
[0033]步驟S28,更新模塊103通過網(wǎng)絡(luò)4從數(shù)據(jù)庫3中下載最新版本的BMC固件資料,并將最新版本的BMC固件資料自動更新至BMC的存儲器12相應(yīng)的存儲區(qū)域中。在本實施例中,更新模塊103將數(shù)據(jù)庫3中最新版本的BMC固件資料下載到BMC芯片10的存儲器12相應(yīng)的存儲區(qū)域中。假如128M的存儲器12,更新模塊103將16M作為存儲最新版本的BMC固件資料的存儲區(qū)域。
[0034]步驟S29,更新模塊103將BMC固件的更新時間記錄在系統(tǒng)日志表(Log)中。當(dāng)每次服務(wù)器I中的BMC固件刷新完成后,更新模塊103會將BMC固件刷新的更新時間通過系統(tǒng)日志表的形式記錄下來,方便用戶后續(xù)對服務(wù)器I的監(jiān)控記錄進行查看。
[0035]以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照以上較佳實施例對本發(fā)明進行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換都不應(yīng)脫離本發(fā)明技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種BMC固件自動更新系統(tǒng),運行于服務(wù)器中,該服務(wù)器包括BMC芯片,該服務(wù)器通過網(wǎng)絡(luò)與監(jiān)控端設(shè)備和數(shù)據(jù)庫相連接,其特征在于,所述的BMC固件自動更新系統(tǒng)包括: 設(shè)置模塊,用于根據(jù)BMC更新指令開啟服務(wù)器的BMC自動更新功能,以及通過服務(wù)器的操作系統(tǒng)設(shè)置一個監(jiān)聽狗的監(jiān)聽時間周期; 監(jiān)聽模塊,用于啟動監(jiān)聽狗對監(jiān)聽時間周期進行計時,判斷監(jiān)聽狗的監(jiān)聽時間周期是否結(jié)束,當(dāng)監(jiān)聽時間周期結(jié)束時,將監(jiān)聽時間周期重新設(shè)置為初始值; 更新模塊,用于判斷BMC芯片的存儲器中的當(dāng)前BMC固件是否需要更新,當(dāng)存儲器中的當(dāng)前BMC固件需要更新時,從數(shù)據(jù)庫中下載最新版本的BMC固件資料,以及將最新版本的BMC固件資料自動更新至BMC芯片的存儲器相應(yīng)的存儲區(qū)域中。
2.如權(quán)利要求1所述的BMC固件自動更新系統(tǒng),其特征在于,所述的BMC更新指令是由監(jiān)控端設(shè)備通過網(wǎng)絡(luò)發(fā)送至服務(wù)器。
3.如權(quán)利要求1所述的BMC固件自動更新系統(tǒng),其特征在于,所述的判斷存儲器中的當(dāng)前BMC固件是否需要更新包括步驟: 從BMC芯片的存儲器中獲取當(dāng)前BMC固件的版本信息; 通過網(wǎng)絡(luò)從數(shù)據(jù)庫中獲取最新BMC固件的版本信息; 將最新BMC固件的版本信息與存儲器中的當(dāng)前BMC固件的版本信息進行比較; 當(dāng)最新BMC固件的版本高于當(dāng)前BMC固件的版本時,確定存儲器中的當(dāng)前BMC固件需要更新; 當(dāng)最新BMC固件的版本沒有高于當(dāng)前BMC固件的版本時,確定存儲器中的當(dāng)前BMC固件不需要更新。
4.如權(quán)利要求1所述的BMC固件自動更新系統(tǒng),其特征在于,所述的更新模塊還用于將BMC固件的更新時間記錄在系統(tǒng)日志表中。
5.如權(quán)利要求1所述的BMC固件自動更新系統(tǒng),其特征在于,所述的監(jiān)聽狗是由服務(wù)器的操作系統(tǒng)啟動的一種監(jiān)聽線程,用于監(jiān)聽BMC固件自動更新的過程。
6.一種BMC固件自動更新方法,應(yīng)用于服務(wù)器中,該服務(wù)器包括BMC芯片,該服務(wù)器通過網(wǎng)絡(luò)與監(jiān)控端設(shè)備和數(shù)據(jù)庫相連接,其特征在于,該方法包括步驟: 根據(jù)BMC更新指令開啟服務(wù)器的BMC自動更新功能,并通過服務(wù)器的操作系統(tǒng)設(shè)置一個監(jiān)聽狗的監(jiān)聽時間周期; 啟動監(jiān)聽狗對監(jiān)聽時間周期進行計時; 判斷監(jiān)聽狗的監(jiān)聽時間周期是否結(jié)束; 當(dāng)監(jiān)聽時間周期結(jié)束時,將監(jiān)聽時間周期重新設(shè)置為初始值; 判斷BMC芯片的存儲器中的當(dāng)前BMC固件是否需要更新; 當(dāng)存儲器中的當(dāng)前BMC固件需要更新時,從數(shù)據(jù)庫中下載最新版本的BMC固件資料,并將最新版本的BMC固件資料自動更新至BMC芯片的存儲器相應(yīng)的存儲區(qū)域中。
7.如權(quán)利要求6所述的BMC固件自動更新方法,其特征在于,所述的BMC更新指令是由監(jiān)控端設(shè)備通過網(wǎng)絡(luò)發(fā)送至服務(wù)器。
8.如權(quán)利要求6所述的BMC固件自動更新方法,其特征在于,所述的判斷存儲器中的當(dāng)前BMC固件是否需要更新包括步驟: 從BMC芯片的存儲器中獲取當(dāng)前BMC固件的版本信息; 通過網(wǎng)絡(luò)從數(shù)據(jù)庫中獲取最新BMC固件的版本信息; 將最新BMC固件的版本信息與存儲器中的當(dāng)前BMC固件的版本信息進行比較; 當(dāng)最新BMC固件的版本高于當(dāng)前BMC固件的版本時,確定存儲器中的當(dāng)前BMC固件需要更新; 當(dāng)最新BMC固件的版本沒有高于當(dāng)前BMC固件的版本時,確定存儲器中的當(dāng)前BMC固件不需要更新。
9.如權(quán)利要求6所述的BMC固件自動更新方法,其特征在于,該方法還包括步驟:將BMC固件的更新時間記錄在系統(tǒng)日志表中。
10.如權(quán)利要求6所述的BMC固件自動更新方法,其特征在于,所述的監(jiān)聽狗是由服務(wù)器的操作系統(tǒng)啟動的一種監(jiān)聽線程,用于監(jiān)聽BMC固件自動更新的過程。
【文檔編號】G06F9/445GK104423981SQ201310375867
【公開日】2015年3月18日 申請日期:2013年8月26日 優(yōu)先權(quán)日:2013年8月26日
【發(fā)明者】馬淞, 張文杰 申請人:鴻富錦精密電子(天津)有限公司, 鴻海精密工業(yè)股份有限公司