專利名稱::系統(tǒng)固件更新方法與使用該方法的服務(wù)器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種固件更新方法,特別涉及一種系統(tǒng)固件更新方法與使用該方法的服務(wù)器系統(tǒng)。
背景技術(shù):
:隨著科技的發(fā)展,通過因特網(wǎng)能夠使得世界各地的計算機(jī)進(jìn)行連接。一臺計算機(jī)通過網(wǎng)絡(luò)連線便能夠與另一臺計算機(jī)進(jìn)行數(shù)據(jù)的交換、存取等動作。在客戶端與服務(wù)器系統(tǒng)架構(gòu)上,客戶端與服務(wù)器便是通過網(wǎng)絡(luò)來進(jìn)行溝通。一般來說,服務(wù)器系統(tǒng)可配置有多個節(jié)點(diǎn),且每一個節(jié)點(diǎn)同時運(yùn)行多個虛擬機(jī)器(VirtualMachine,VM),藉以提供給每一使用者獨(dú)立的運(yùn)作環(huán)境。并且,每個節(jié)點(diǎn)可視為各自獨(dú)立的計算機(jī),也即各節(jié)點(diǎn)具有記憶體、儲存空間、運(yùn)算能力與網(wǎng)絡(luò)連接功能。因此,各節(jié)點(diǎn)可以運(yùn)行獨(dú)自的操作系統(tǒng),且各節(jié)點(diǎn)之間也可以通過網(wǎng)絡(luò)交換器(Switch)進(jìn)行溝通與數(shù)據(jù)傳輸。在服務(wù)器系統(tǒng)運(yùn)行后,會因?yàn)橛行碌墓碳姹径枰獙?jié)點(diǎn)進(jìn)行固件的更新。在現(xiàn)有技術(shù)中,服務(wù)器系統(tǒng)在接收到固件更新時,便會對需要更新的節(jié)點(diǎn)進(jìn)行固件更新,并且固件更新的方式為在某一節(jié)點(diǎn)進(jìn)行固件更新時,會先將此節(jié)點(diǎn)由服務(wù)器系統(tǒng)的運(yùn)作中隔離出來,且于固件更新完成后再將此節(jié)點(diǎn)加入服務(wù)器系統(tǒng)的運(yùn)作。然而,若服務(wù)器系統(tǒng)進(jìn)行大量節(jié)點(diǎn)的固件更新,或是于節(jié)點(diǎn)的負(fù)載較大的情況下進(jìn)行固件更新,將會影響服務(wù)器系統(tǒng)的運(yùn)作性能,而造成使用的不便利性。
發(fā)明內(nèi)容鑒于以上的問題,本發(fā)明的目的在于提供一種系統(tǒng)固件更新方法與使用其的服務(wù)器系統(tǒng),藉以避免影響服務(wù)器系統(tǒng)的運(yùn)作效率的情況下,對服務(wù)器系統(tǒng)完成所需的固件更新。本發(fā)明的一種系統(tǒng)固件更新方法,適于一服務(wù)器系統(tǒng),此服務(wù)器系統(tǒng)具有多個節(jié)點(diǎn),例如為提供基礎(chǔ)設(shè)施即服務(wù)(InfrastructureasaService,IaaS)的貨柜式(Container)數(shù)據(jù)中心(DataCenter)。此系統(tǒng)固件更新方法包括下列步驟。接收固件更新封裝數(shù)據(jù)。依據(jù)固件更新封裝數(shù)據(jù)與前述多個節(jié)點(diǎn)各自對應(yīng)的節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的節(jié)點(diǎn)。依據(jù)更新順序策略,排列出節(jié)點(diǎn)各自對應(yīng)的優(yōu)先順序,并以優(yōu)先順序建立更新列表。依據(jù)更新列表,依序?qū)?jié)點(diǎn)進(jìn)行固件更新,并更新節(jié)點(diǎn)各自對應(yīng)的節(jié)點(diǎn)信息與更新列表。在一實(shí)施例中,前述依序?qū)?jié)點(diǎn)進(jìn)行固件更新的步驟包括下列步驟。依據(jù)更新列表,由多個節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn)。對更新節(jié)點(diǎn)進(jìn)行更新,并更新更新節(jié)點(diǎn)所對應(yīng)的節(jié)點(diǎn)信息,將更新節(jié)點(diǎn)由更新列表中移除。依據(jù)更新列表,檢測所有節(jié)點(diǎn)是否更新完成。若檢測所有節(jié)點(diǎn)未更新完成,判斷節(jié)點(diǎn)更新的數(shù)量是否達(dá)到臨界值。若判斷節(jié)點(diǎn)的更新數(shù)量未達(dá)到臨界值,則回到依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn)的步驟。若判斷節(jié)點(diǎn)的更新數(shù)量達(dá)到臨界值,等待預(yù)定時間,再回到依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn)的步驟。在一實(shí)施例中,前述系統(tǒng)固件更新方法。判斷更新節(jié)點(diǎn)的負(fù)載量是否超過預(yù)設(shè)值。若判斷更新節(jié)點(diǎn)的負(fù)載量超過預(yù)設(shè)值,則回到依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn)的步驟。若判斷更新節(jié)點(diǎn)的負(fù)載量未超過預(yù)設(shè)值,則進(jìn)入對更新節(jié)點(diǎn)進(jìn)行更新的步驟。在一實(shí)施例中,前述對更新節(jié)點(diǎn)進(jìn)行更新的步驟包括下列步驟。判斷更新節(jié)點(diǎn)是否運(yùn)行操作系統(tǒng)。若判斷更新節(jié)點(diǎn)運(yùn)行操作系統(tǒng),利用固件更新封裝數(shù)據(jù)的固件更新數(shù)據(jù)執(zhí)行線上固件更新,以對更新節(jié)點(diǎn)進(jìn)行更新。若判斷更新節(jié)點(diǎn)未運(yùn)行操作系統(tǒng),利用固件更新封裝數(shù)據(jù)的映像文件開啟操作系統(tǒng),以執(zhí)行離線固件更新來對更新節(jié)點(diǎn)進(jìn)行更新。本發(fā)明的一種服務(wù)器系統(tǒng),包括多個節(jié)點(diǎn)、數(shù)據(jù)庫與更新模塊。前述多個節(jié)點(diǎn)各自具有節(jié)點(diǎn)信息。數(shù)據(jù)庫用于儲存前述節(jié)點(diǎn)信息。更新模塊耦接前述多個節(jié)點(diǎn)與數(shù)據(jù)庫,用以接收固件更新封裝數(shù)據(jù),并依據(jù)固件更新封裝數(shù)據(jù)與節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的節(jié)點(diǎn),再依據(jù)更新順序策略,排列出節(jié)點(diǎn)各自對應(yīng)的優(yōu)先順序,且以優(yōu)先順序建立更新列表,并將更新列表儲存于數(shù)據(jù)庫,以及依據(jù)更新列表,依序?qū)?jié)點(diǎn)進(jìn)行固件更新,并更新節(jié)點(diǎn)信息與更新列表。在一實(shí)施例中,前述更新模塊更依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn),以對更新節(jié)點(diǎn)進(jìn)行更新,并更新更新節(jié)點(diǎn)所對應(yīng)的節(jié)點(diǎn)信息以及將更新節(jié)點(diǎn)由更新列表中移除,且更新模塊再依據(jù)更新列表,檢測所有節(jié)點(diǎn)是否更新完成,其中若檢測所有節(jié)點(diǎn)未更新完成,更新模塊則判斷節(jié)點(diǎn)更新的數(shù)量是否達(dá)到臨界值,若判斷節(jié)點(diǎn)的更新數(shù)量未達(dá)到臨界值,更新模塊則再次依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn),以對更新節(jié)點(diǎn)進(jìn)行更新,直到所有節(jié)點(diǎn)更新完成為止,而若判斷節(jié)點(diǎn)的更新數(shù)量達(dá)到臨界值時,更新模塊等待預(yù)定時間,再依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn),以對更新節(jié)點(diǎn)進(jìn)行更新,直到所有節(jié)點(diǎn)更新完成為止。在一實(shí)施例中,前述更新模塊判斷更新節(jié)點(diǎn)的負(fù)載量是否超過預(yù)設(shè)值,若判斷更新節(jié)點(diǎn)的負(fù)載量超過預(yù)設(shè)值,更新模塊再次依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn),而若判斷更新節(jié)點(diǎn)的負(fù)載量未超過預(yù)設(shè)值時,則更新模塊對更新節(jié)點(diǎn)進(jìn)行更新。在一實(shí)施例中,前述更新模塊判斷更新節(jié)點(diǎn)是否運(yùn)行操作系統(tǒng),若判斷更新節(jié)點(diǎn)運(yùn)行操作系統(tǒng),更新模塊利用固件更新封裝數(shù)據(jù)的固件更新數(shù)據(jù)執(zhí)行線上固件更新,以對更新節(jié)點(diǎn)進(jìn)行更新,而若判斷更新節(jié)點(diǎn)未運(yùn)行操作系統(tǒng)時,更新模塊利用固件更新封裝數(shù)據(jù)的映像文件開啟操作系統(tǒng),以執(zhí)行離線固件更新來對更新節(jié)點(diǎn)進(jìn)行更新。本發(fā)明的一種系統(tǒng)固件更新方法與使用該方法的服務(wù)器系統(tǒng),通過接收使用者上載固件更新封裝數(shù)據(jù),并據(jù)以搜尋出需要更新的節(jié)點(diǎn)且排列出這節(jié)點(diǎn)的更新順序,以自動完成節(jié)點(diǎn)的線上更新或離線更新。如此一來,可有效增加服務(wù)器系統(tǒng)的使用便利性。另外,還可依據(jù)更新節(jié)點(diǎn)的負(fù)載量以及已完成更新的節(jié)點(diǎn)的數(shù)量而決定是否更新,以避免影響服務(wù)器系統(tǒng)的運(yùn)作效能。以下結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的限定。圖1為本發(fā)明的服務(wù)器系統(tǒng)的方框圖2為本發(fā)明的系統(tǒng)固件更新方法的流程圖3為本發(fā)明的另一系統(tǒng)固件更新方法的流程圖。其中,附圖標(biāo)記100服務(wù)器系統(tǒng)110_1110_N節(jié)點(diǎn)120數(shù)據(jù)庫130更新模塊具體實(shí)施方式下面結(jié)合附圖對本發(fā)明的結(jié)構(gòu)原理和工作原理作具體的描述:請參考圖1所示,其為本發(fā)明的服務(wù)器系統(tǒng)的方框圖。服務(wù)器系統(tǒng)100包括多個節(jié)點(diǎn)110_1110_N、數(shù)據(jù)庫120與更新模塊130,其中N為大于I的正整數(shù)。服務(wù)器系統(tǒng)100例如為提供基礎(chǔ)設(shè)施即服務(wù)(InfrastructureasaService,IaaS)的貨柜式(Container)數(shù)據(jù)中心(DataCenter)。節(jié)點(diǎn)110_1110_N各自具有節(jié)點(diǎn)信息。其中,節(jié)點(diǎn)信息例如包括節(jié)點(diǎn)的產(chǎn)品編號,例如通用唯一識別碼(UniversallyUniqueIdentifier,UUID)、節(jié)點(diǎn)的基本輸入輸出系統(tǒng)(BasicInputOutputSystem,BIOS)的固件版本與節(jié)點(diǎn)的基板管理控制器(BaseboardManagementController,BMC)的固件版本。舉例來說,節(jié)點(diǎn)110_1的節(jié)點(diǎn)信息例如以「110_1、版本1、版本2」表示,其余節(jié)點(diǎn)110_2110_N則類推。數(shù)據(jù)庫120用于儲存節(jié)點(diǎn)110_1110_N的節(jié)點(diǎn)信息。在本實(shí)施例中,例如可通過基板管理控制器取得各節(jié)點(diǎn)110_1110_N的節(jié)點(diǎn)信息,并將各節(jié)點(diǎn)信息儲存于數(shù)據(jù)庫120。更新模塊130耦接節(jié)點(diǎn)110_1110_N與數(shù)據(jù)庫120,用以接收固件更新封裝數(shù)據(jù)。其中,固件更新封裝數(shù)據(jù)可由客戶端通過網(wǎng)絡(luò)上載至服務(wù)器系統(tǒng)100的更新模塊,以使更新模塊可利用固件更新封裝數(shù)據(jù)對服務(wù)器系統(tǒng)100進(jìn)行固件更新。接著,更新模塊130會依據(jù)固件更新封裝數(shù)據(jù)與前述節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的節(jié)點(diǎn)。其中,固件更新封裝數(shù)據(jù)例如具有更新數(shù)據(jù)列表,而更新數(shù)據(jù)列表中包括有欲更新的節(jié)點(diǎn)的產(chǎn)品編號與其固件版本。因此,更新模塊則可依據(jù)前述的更新數(shù)據(jù)列表與節(jié)點(diǎn)信息,而搜尋出需要更新的節(jié)點(diǎn)。為了方便說明,需要更新的節(jié)點(diǎn)以節(jié)點(diǎn)110_1、110_2與110_3為例。在找到需要更新的節(jié)點(diǎn)后,更新模塊130依據(jù)更新順序策略,排列出節(jié)點(diǎn)110_1110_3各自對應(yīng)的優(yōu)先順序,且以優(yōu)先順序建立更新列表并將更新列表儲存于數(shù)據(jù)庫120。在本實(shí)施例中,節(jié)點(diǎn)110_1110_1^可分為服務(wù)節(jié)點(diǎn)(ServiceNode)、運(yùn)算節(jié)點(diǎn)(ComputingNode)與儲存節(jié)點(diǎn)(StorageNode),其中服務(wù)節(jié)點(diǎn)用以提供相關(guān)服務(wù)與數(shù)據(jù)給客戶端,運(yùn)算節(jié)點(diǎn)用以進(jìn)行數(shù)據(jù)運(yùn)算,儲存節(jié)點(diǎn)用以儲存數(shù)據(jù)。舉例來說,前述的更新順序策略例如依序?yàn)榉?wù)節(jié)點(diǎn)、儲存節(jié)點(diǎn)與計算節(jié)點(diǎn),并且節(jié)點(diǎn)110_1例如為儲存節(jié)點(diǎn),節(jié)點(diǎn)110_2例如為運(yùn)算節(jié)點(diǎn),節(jié)點(diǎn)110_3例如為服務(wù)節(jié)點(diǎn)。因此,通過上述的更新順序策略,更新模塊130所排列出的更新順序?yàn)楣?jié)點(diǎn)110_3、110_1與110_2,并以此更新順序建立于更新列表中。之后,更新模塊130再依據(jù)更新列表,依序?qū)?jié)點(diǎn)110_3、110_1與110_2進(jìn)行固件更新,并更新節(jié)點(diǎn)110_3、110_1與110_2的節(jié)點(diǎn)信息以及更新更新列表。如此一來,本實(shí)施例的服務(wù)器系統(tǒng)100可在效率影響較小的情況下,自動對需要進(jìn)行固件更新的節(jié)點(diǎn)完成固件更新。以下,將進(jìn)一步說明本實(shí)施例的更新模塊130進(jìn)行固件更新的詳細(xì)操作。首先,更新模塊130會依據(jù)更新列表,由節(jié)點(diǎn)110_1110_3中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn),以對更新節(jié)點(diǎn)進(jìn)行更新。由于節(jié)點(diǎn)110_3的優(yōu)先順序?yàn)樽罡?,故更新模塊130會優(yōu)先選擇節(jié)點(diǎn)110_3作為更新節(jié)點(diǎn),以對更新節(jié)點(diǎn)110_3進(jìn)行更新。并且,于固件更新完成后,更新模塊130會更新節(jié)點(diǎn)110_3的節(jié)點(diǎn)信息,例如「110_3、版本1、版本3」。并且,將更新節(jié)點(diǎn)110_3由更新列表中移除,因此,更新列表中只剩節(jié)點(diǎn)110_1、110_2。接著,更新模塊130依據(jù)更新列表,檢測所有節(jié)點(diǎn)是否更新完成。由于更新列表中仍存有節(jié)點(diǎn)110_1、110_2,因此更新模塊130會檢測所有節(jié)點(diǎn)未更新完成,則更新模塊130會進(jìn)一步判斷節(jié)點(diǎn)更新的數(shù)量是否達(dá)到臨界值。由于在節(jié)點(diǎn)進(jìn)行固件更新時,必須將更新節(jié)點(diǎn)從服務(wù)器系統(tǒng)100的運(yùn)作中隔離出來,并于固件更新完成后再將更新節(jié)點(diǎn)加入服務(wù)器系統(tǒng)的運(yùn)作,如此將可能會降低服務(wù)器系統(tǒng)100的運(yùn)作效率。由此可知,大量進(jìn)行節(jié)點(diǎn)的固件更新,可能會大幅降低服務(wù)器系統(tǒng)100的運(yùn)作效率。因此,使用者可設(shè)定每次固件更新的節(jié)點(diǎn)的數(shù)量(即臨界值),藉以避免影響服務(wù)器系統(tǒng)100的運(yùn)作效率。假設(shè)臨界值設(shè)定為2,表示每此固件更新的節(jié)點(diǎn)的數(shù)量上限為2個,但本發(fā)明不以此為限。由于前述僅進(jìn)行節(jié)點(diǎn)110_3的固件更新,故更新模塊130會判斷節(jié)點(diǎn)的更新數(shù)量并未達(dá)到臨界值。接著,更新模塊130再次依據(jù)更新列表,由節(jié)點(diǎn)110_1110_2中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn)。由于更新列表中僅剩節(jié)點(diǎn)110_1、110_2,且節(jié)點(diǎn)110_1的優(yōu)先順序高于節(jié)點(diǎn)110_2,故更新模塊130會選擇節(jié)點(diǎn)110_1作為更新節(jié)點(diǎn),以對節(jié)點(diǎn)110_1進(jìn)行更新。之后,更新模塊110會更新節(jié)點(diǎn)110_1的節(jié)點(diǎn)信息,例如「110_1、版本1、版本3」。之后,更新模塊130會持續(xù)依據(jù)更新列表,選擇需要更新的節(jié)點(diǎn)中優(yōu)先順序最高的節(jié)點(diǎn),以進(jìn)行固件更新,直到所有節(jié)點(diǎn)更新完成為止。另一方面,當(dāng)更新模塊130更新完節(jié)點(diǎn)110_3、110_1時,則節(jié)點(diǎn)完成更新的數(shù)量已達(dá)到2個。此時,更新模塊130會判斷出節(jié)點(diǎn)的更新數(shù)量達(dá)到臨界值,故更新模塊130會等待預(yù)定時間,再依據(jù)更新列表,由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn),以對更新節(jié)點(diǎn)進(jìn)行更新,直到所有節(jié)點(diǎn)更新完成為止。其中,前述預(yù)定時間可由使用者自行調(diào)整,例如6小時、半天或一天,藉以避免大量進(jìn)行節(jié)點(diǎn)的固件更新而降低服務(wù)器系統(tǒng)100的運(yùn)作效率。更新模塊130更可判斷更新節(jié)點(diǎn)的負(fù)載量是否超過預(yù)設(shè)值。其中,前述預(yù)設(shè)值例如設(shè)定為節(jié)點(diǎn)滿負(fù)載量的60%。也就是說,更新節(jié)點(diǎn)的負(fù)載量要低于其滿負(fù)載量的60%,更新模塊130才予以對更新節(jié)點(diǎn)進(jìn)行固件更新,進(jìn)而減少對服務(wù)器系統(tǒng)100的運(yùn)作效率的影響。若判斷更新節(jié)點(diǎn)的負(fù)載量超過預(yù)設(shè)值,表示此節(jié)點(diǎn)在進(jìn)行大量數(shù)據(jù)的運(yùn)算或傳輸。為了不影響服務(wù)器系統(tǒng)100的運(yùn)作效率,因此更新模塊130再次依據(jù)更新列表,繼續(xù)由節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn)。另一方面,若判斷更新節(jié)點(diǎn)的負(fù)載量未超過預(yù)設(shè)值,則更新模塊130便可對更新節(jié)點(diǎn)進(jìn)行更新。如此一來,可避免節(jié)點(diǎn)于高負(fù)載的情況下進(jìn)行固件更新,而降低服務(wù)器系統(tǒng)100的運(yùn)作效率。此外,在對更新節(jié)點(diǎn)進(jìn)行固件更新時,更新模塊130更可判斷更新節(jié)點(diǎn)是否運(yùn)行操作系統(tǒng)(OS),也即判斷更新節(jié)點(diǎn)為正常運(yùn)作模式或?yàn)榇龣C(jī)模式。若判斷更新節(jié)點(diǎn)運(yùn)行操作系統(tǒng),表示更新節(jié)點(diǎn)為正常運(yùn)作模式,更新模塊130利用固件更新封裝數(shù)據(jù)的固件更新數(shù)據(jù)執(zhí)行線上固件更新,以對更新節(jié)點(diǎn)進(jìn)行更新。舉例來說,更新模塊130還可進(jìn)一步判斷更新固件的版本的種類,例如基本輸入輸出系統(tǒng)或基板管理控制器的固件更新。若判斷出固件更新的種類為基本輸入輸出系統(tǒng)或基板管理控制器,更新模塊130會將固件更新封裝數(shù)據(jù)解開為固件數(shù)據(jù)更新工具,以便將基本輸入輸出系統(tǒng)或基板管理控制器的固件更新數(shù)據(jù)更新至更新節(jié)點(diǎn)。并且,于固件更新完成后,將更新節(jié)點(diǎn)重啟動(Reboot),并重置(Reset)基板管理控制器,以便更新節(jié)點(diǎn)的基本輸入輸出系統(tǒng)或基板管理控制器利用新的固件進(jìn)行運(yùn)作。另外,基本輸入輸出系統(tǒng)更新完成后,會傳送智能平臺管理界面(IntelligentPlatformManagementInterface,IPMI)指令給基板管理控制器以告知其更新狀態(tài),以便更新更新節(jié)點(diǎn)的節(jié)點(diǎn)信息以及更新列表。若判斷出固件更新的種類為基板管理控制器,更新模塊130會由固件更新封裝數(shù)據(jù)中取出基板管理控制器的固件更新數(shù)據(jù),再利用智能平臺管理界面指令去執(zhí)行基板管理控制器的固件更新。并且,于固件更新完成后,重置更新節(jié)點(diǎn)的基板管理控制器,以便更新節(jié)點(diǎn)的基板管理控制器運(yùn)用新的固件進(jìn)行運(yùn)作。另一方面,若判斷更新節(jié)點(diǎn)未運(yùn)行操作系統(tǒng),表示更新節(jié)點(diǎn)為待機(jī)模式,此時更新模塊利用固件更新封裝數(shù)據(jù)的映像文件(isofile)開啟操作系統(tǒng),以執(zhí)行離線固件更新來對更新節(jié)點(diǎn)進(jìn)行更新。其中,前述映像文件可包括可開機(jī)操作系統(tǒng)(BootableOS)與自動執(zhí)行文件,而更新節(jié)點(diǎn)可運(yùn)行前述操作系統(tǒng)。舉例來說,更新模塊130更可進(jìn)一步判斷更新固件的版本的種類,例如基本輸入輸出系統(tǒng)或基板管理控制器的固件更新。若判斷出固件更新的種類為基本輸入輸出系統(tǒng),更新模塊130會掛載固件更新封裝數(shù)據(jù)的映像文件給更新節(jié)點(diǎn),以進(jìn)行更新節(jié)點(diǎn)由此映像文件開機(jī),并于開機(jī)的過程中執(zhí)行前述自動執(zhí)行文件,以更新基本輸入輸出系統(tǒng)或基板管理控制器的固件(就實(shí)作而言,例如,更新模塊130會通過更新節(jié)點(diǎn)的基板管理控制器將固件更新封裝數(shù)據(jù)的映像文件設(shè)成作基板管理控制器的虛擬光盤機(jī)的光盤片,并通過更新節(jié)點(diǎn)的基板管理控制器令更新節(jié)點(diǎn)由此虛擬光盤機(jī)啟動操作系統(tǒng),但并不以此為限)。并且,于固件更新完成后,將更新節(jié)點(diǎn)重啟動(Reboot),并重置(Reset)基板管理控制器,以便更新節(jié)點(diǎn)的基本輸入輸出系統(tǒng)或基板管理控制器利用新的固件進(jìn)行運(yùn)作。另夕卜,基本輸入輸出系統(tǒng)更新完成后,會傳送智能平臺管理界面指令給基板管理控制器以告知其更新狀態(tài),以便更新更新節(jié)點(diǎn)的節(jié)點(diǎn)信息以及更新列表。若判斷出固件更新的種類為基板管理控制器,更新模塊130會由固件更新封裝數(shù)據(jù)中取出基板管理控制器的固件更新數(shù)據(jù),再利用智能平臺管理界面指令去執(zhí)行基板管理控制器的固件更新。并且,于固件更新完成后,重置更新節(jié)點(diǎn)的基板管理控制器,以便更新節(jié)點(diǎn)的基板管理控制器運(yùn)用新的固件進(jìn)行運(yùn)作。請參考圖2所示,其為本發(fā)明的系統(tǒng)固件更新方法的流程圖。本實(shí)施例的系統(tǒng)固件更新方法適于一服務(wù)器系統(tǒng),且此服務(wù)器系統(tǒng)具有多個節(jié)點(diǎn)。在步驟S210中,接收固件更新封裝數(shù)據(jù)。在步驟S220中,依據(jù)固件更新封裝數(shù)據(jù)與多個節(jié)點(diǎn)各自對應(yīng)的節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的多個節(jié)點(diǎn)。在步驟S230中,依據(jù)更新順序策略,排列出多個節(jié)點(diǎn)各自對應(yīng)的優(yōu)先順序,并以優(yōu)先順序建立更新列表。在步驟S240中,依據(jù)更新列表,依序?qū)Χ鄠€節(jié)點(diǎn)進(jìn)行固件更新,并更新多個節(jié)點(diǎn)各自對應(yīng)的節(jié)點(diǎn)信息與更新列表。請參考圖3所示,其為本發(fā)明的另一系統(tǒng)固件更新方法的流程圖。本實(shí)施例的系統(tǒng)固件更新方法適于一服務(wù)器系統(tǒng),且此服務(wù)器系統(tǒng)具有多個節(jié)點(diǎn)。在步驟S302中,接收固件更新封裝數(shù)據(jù)。在步驟S304中,依據(jù)固件更新封裝數(shù)據(jù)與多個節(jié)點(diǎn)各自對應(yīng)的節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的多個節(jié)點(diǎn)。在步驟S306中,依據(jù)更新順序策略,排列出多個節(jié)點(diǎn)各自對應(yīng)的優(yōu)先順序,并以優(yōu)先順序建立更新列表。在步驟S308中,依據(jù)更新列表,由多個節(jié)點(diǎn)中選擇優(yōu)先順序最高的節(jié)點(diǎn)作為更新節(jié)點(diǎn)。在步驟S310中,判斷更新節(jié)點(diǎn)的負(fù)載量是否超過預(yù)設(shè)值。若判斷更新節(jié)點(diǎn)的負(fù)載量超過預(yù)設(shè)值,則回到步驟S308,直到判斷更新節(jié)點(diǎn)的負(fù)載量未超過預(yù)設(shè)值為止。另一方面,若判斷更新節(jié)點(diǎn)的負(fù)載量未超過預(yù)設(shè)值,則進(jìn)入步驟S312,對更新節(jié)點(diǎn)進(jìn)行更新。在步驟S314,更新更新節(jié)點(diǎn)所對應(yīng)的節(jié)點(diǎn)信息,將更新節(jié)點(diǎn)由更新列表中移除。在步驟S316中,依據(jù)更新列表,檢測所有節(jié)點(diǎn)是否更新完成。若檢測所有節(jié)點(diǎn)都已更新完成,則結(jié)束此系統(tǒng)固件更新的流程。另一方面,若檢測所有節(jié)點(diǎn)未更新完成,則進(jìn)入步驟S318,判斷節(jié)點(diǎn)更新的數(shù)量是否達(dá)到臨界值。若判斷節(jié)點(diǎn)的更新數(shù)量未達(dá)到臨界值,則回到步驟S308。若判斷節(jié)點(diǎn)的更新數(shù)量達(dá)到該臨界值,則進(jìn)入步驟S320中,等待預(yù)定時間。接著,再回到步驟S308。另外,在步驟S312對更新節(jié)點(diǎn)進(jìn)行更新還包括下列步驟S322S326。在步驟S322中,判斷更新節(jié)點(diǎn)是否運(yùn)行操作系統(tǒng)。若判斷更新節(jié)點(diǎn)運(yùn)行操作系統(tǒng),則進(jìn)入步驟S324,利用固件更新封裝數(shù)據(jù)的固件更新數(shù)據(jù)執(zhí)行線上固件更新,以對更新節(jié)點(diǎn)進(jìn)行更新。若判斷更新節(jié)點(diǎn)未運(yùn)行操作系統(tǒng),則進(jìn)入步驟S326,利用固件更新封裝數(shù)據(jù)的映像文件開啟操作系統(tǒng),以執(zhí)行離線固件更新來對更新節(jié)點(diǎn)進(jìn)行更新。本發(fā)明的實(shí)施例的系統(tǒng)固件更新方法與使用該方法的服務(wù)器系統(tǒng),其通過接收使用者上載固件更新封裝數(shù)據(jù)(具有線上更新的數(shù)據(jù)與離線更新的映像文件),并據(jù)以搜尋出需要更新的節(jié)點(diǎn)且排列出這節(jié)點(diǎn)的更新順序,以自動完成節(jié)點(diǎn)的線上更新或離線更新。如此一來,可有效增加服務(wù)器系統(tǒng)的使用便利性。另外,還可依據(jù)更新節(jié)點(diǎn)的負(fù)載量以及已完成更新的節(jié)點(diǎn)的數(shù)量而決定是否更新,以避免影響服務(wù)器系統(tǒng)的運(yùn)作效能。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。權(quán)利要求1.一種系統(tǒng)固件更新方法,適于一服務(wù)器系統(tǒng),該服務(wù)器系統(tǒng)具有多個節(jié)點(diǎn),其特征在于,該系統(tǒng)固件更新方法包括:接收一固件更新封裝數(shù)據(jù);依據(jù)該固件更新封裝數(shù)據(jù)與該些節(jié)點(diǎn)各自對應(yīng)的一節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的該些節(jié)點(diǎn);依據(jù)一更新順序策略,排列出該些節(jié)點(diǎn)各自對應(yīng)的一優(yōu)先順序,并以該優(yōu)先順序建立一更新列表;以及依據(jù)該更新列表,依序?qū)υ撔┕?jié)點(diǎn)進(jìn)行固件更新,并更新該些節(jié)點(diǎn)各自對應(yīng)的該節(jié)點(diǎn)信息與該更新列表。2.根據(jù)權(quán)利要求1所述的系統(tǒng)固件更新方法,其特征在于,依序?qū)υ撔┕?jié)點(diǎn)進(jìn)行固件更新的步驟包括:依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為一更新節(jié)點(diǎn);對該更新節(jié)點(diǎn)進(jìn)行更新,并更新該更新節(jié)點(diǎn)所對應(yīng)的該節(jié)點(diǎn)信息,將該更新節(jié)點(diǎn)由該更新列表中移除;依據(jù)該更新列表,檢測所有該些節(jié)點(diǎn)是否更新完成;若檢測所有該些節(jié)點(diǎn)未更新完成,判斷該些節(jié)點(diǎn)更新的數(shù)量是否達(dá)到一臨界值;若判斷該些節(jié)點(diǎn)的更新數(shù)量未達(dá)到該臨界值,則回到依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為該更新節(jié)點(diǎn)的步驟;以及若判斷該些節(jié)點(diǎn)的更新數(shù)量達(dá)到該臨界值,等待一預(yù)定時間,再回到依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為該更新節(jié)點(diǎn)的步驟。3.根據(jù)權(quán)利要求2所述的系統(tǒng)固件更新方法,其特征在于,還包括:判斷該更新節(jié)點(diǎn)的負(fù)載量是否超過一預(yù)設(shè)值;若判斷該更新節(jié)點(diǎn)的負(fù)載量超過該預(yù)設(shè)值,則回到依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為該更新節(jié)點(diǎn)的步驟;以及若判斷該更新節(jié)點(diǎn)的負(fù)載量未超過該預(yù)設(shè)值,則進(jìn)入對該更新節(jié)點(diǎn)進(jìn)行更新的步驟。4.根據(jù)權(quán)利要求2所述的系統(tǒng)固件更新方法,其特征在于,對該更新節(jié)點(diǎn)進(jìn)行更新的步驟包括:判斷該更新節(jié)點(diǎn)是否運(yùn)行一操作系統(tǒng);若判斷該更新節(jié)點(diǎn)運(yùn)行該操作系統(tǒng),利用該固件更新封裝數(shù)據(jù)的一固件更新數(shù)據(jù)執(zhí)行一線上固件更新,以對該更新節(jié)點(diǎn)進(jìn)行更新;以及若判斷該更新節(jié)點(diǎn)未運(yùn)行該操作系統(tǒng),利用該固件更新封裝數(shù)據(jù)的一映像文件開啟該操作系統(tǒng),以執(zhí)行一離線固件更新來對該更新節(jié)點(diǎn)進(jìn)行更新。5.一種服務(wù)器系統(tǒng),其特征在于,包括:多個節(jié)點(diǎn),該些節(jié)點(diǎn)各自具有一節(jié)點(diǎn)信息;一數(shù)據(jù)庫,用于儲存該些節(jié)點(diǎn)信息;以及一更新模塊,耦接該些節(jié)點(diǎn)與該數(shù)據(jù)庫,用以接收一固件更新封裝數(shù)據(jù),并依據(jù)該固件更新封裝數(shù)據(jù)與該些節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的該些節(jié)點(diǎn),再依據(jù)一更新順序策略,排列出該些節(jié)點(diǎn)各自對應(yīng)的一優(yōu)先順序,且以該優(yōu)先順序建立一更新列表并將該更新列表儲存于該數(shù)據(jù)庫,以及依據(jù)該更新列表,依序?qū)υ撔┕?jié)點(diǎn)進(jìn)行固件更新,并更新該些節(jié)點(diǎn)信息與該更新列表。6.根據(jù)權(quán)利要求5所述的服務(wù)器系統(tǒng),其特征在于,該更新模塊還依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為一更新節(jié)點(diǎn),以對該更新節(jié)點(diǎn)進(jìn)行更新,并更新該更新節(jié)點(diǎn)所對應(yīng)的該節(jié)點(diǎn)信息以及將該更新節(jié)點(diǎn)由該更新列表中移除,且該更新模塊再依據(jù)該更新列表,檢測所有該些節(jié)點(diǎn)是否更新完成,其中若檢測所有該些節(jié)點(diǎn)未更新完成,該更新模塊則判斷該些節(jié)點(diǎn)更新的數(shù)量是否達(dá)到一臨界值,若判斷該些節(jié)點(diǎn)的更新數(shù)量未達(dá)到該臨界值,該更新模塊則再次依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為該更新節(jié)點(diǎn),以對該更新節(jié)點(diǎn)進(jìn)行更新,直到所有該些節(jié)點(diǎn)更新完成為止,而當(dāng)判斷該些節(jié)點(diǎn)的更新數(shù)量達(dá)到該臨界值時,該更新模塊等待一預(yù)定時間,再依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為該更新節(jié)點(diǎn),以對該更新節(jié)點(diǎn)進(jìn)行更新,直到所有該些節(jié)點(diǎn)更新完成為止。7.根據(jù)權(quán)利要求6所述的服務(wù)器系統(tǒng),其特征在于,該更新模塊判斷該更新節(jié)點(diǎn)的負(fù)載量是否超過一預(yù)設(shè)值,若判斷該更新節(jié)點(diǎn)的負(fù)載量超過該預(yù)設(shè)值,該更新模塊再次依據(jù)該更新列表,由該些節(jié)點(diǎn)中選擇優(yōu)先順序最高的該節(jié)點(diǎn)作為該更新節(jié)點(diǎn),而若判斷該更新節(jié)點(diǎn)的負(fù)載量未超過該預(yù)設(shè)值時,則該更新模塊對該更新節(jié)點(diǎn)進(jìn)行更新。8.根據(jù)權(quán)利要求6所述的服務(wù)器系統(tǒng),其特征在于,該更新模塊判斷該更新節(jié)點(diǎn)是否運(yùn)行一操作系統(tǒng),若判斷該更新節(jié)點(diǎn)運(yùn)行該操作系統(tǒng),該更新模塊利用該固件更新封裝數(shù)據(jù)的一固件更新數(shù)據(jù)執(zhí)行一線上固件更新,以對該更新節(jié)點(diǎn)進(jìn)行更新,而若判斷該更新節(jié)點(diǎn)未運(yùn)行該操作系統(tǒng)時,該更新模塊利用該固件更新封裝數(shù)據(jù)的一映像文件啟動該操作系統(tǒng),以執(zhí)行一離線固件更新來對該更新節(jié)點(diǎn)進(jìn)行更新。全文摘要一種系統(tǒng)固件更新方法與使用該方法的服務(wù)器系統(tǒng),系統(tǒng)固件更新方法適于服務(wù)器系統(tǒng),此服務(wù)器系統(tǒng)具有多個節(jié)點(diǎn)。此系統(tǒng)固件更新方法包括下列步驟。接收固件更新封裝數(shù)據(jù)。依據(jù)固件更新封裝數(shù)據(jù)與前述節(jié)點(diǎn)各自對應(yīng)的節(jié)點(diǎn)信息,以查表的方式搜尋出需要更新的節(jié)點(diǎn)。依據(jù)更新順序策略,排列出節(jié)點(diǎn)各自對應(yīng)的優(yōu)先順序,并以優(yōu)先順序建立更新列表。依據(jù)更新列表,依序?qū)?jié)點(diǎn)進(jìn)行固件更新,并更新節(jié)點(diǎn)各自對應(yīng)的節(jié)點(diǎn)信息與更新列表。文檔編號G06F9/445GK103186404SQ201110461358公開日2013年7月3日申請日期2011年12月28日優(yōu)先權(quán)日2011年12月28日發(fā)明者盧盈志申請人:英業(yè)達(dá)股份有限公司