專利名稱:不間斷更新冗余硬件控制器上的固件的裝置、系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及這樣的主要硬件控制器,其被配置為與硬件更新相關(guān)聯(lián)的路由模塊;特別涉及向冗余硬件控制器轉(zhuǎn)發(fā)固件更新,以便避免中斷主要硬件控制器的運行。
背景技術(shù):
在采用共用單個點到點連接的冗余硬件控制器的服務(wù)器環(huán)境中,一個控制器可被稱為主要硬件控制器,另一個控制器可被稱為輔助硬件控制器。主要硬件控制器和輔助硬件控制器可經(jīng)由共用的串行連接連接到服務(wù)處理器。
主要硬件控制器執(zhí)行與冗余硬件控制器相關(guān)聯(lián)的所有操作,而輔助硬件控制器保持為空閑。專用的點到點連接被配置為從主要硬件控制器向輔助硬件控制器復制和傳送狀態(tài)信息和狀態(tài)變化。換言之,在正常運行模式下,對主要硬件控制器的存儲器的所有寫入經(jīng)由專用點到點連接被發(fā)送到輔助硬件控制器的存儲器,由此保持輔助硬件控制器的存儲器和寄存器為最新,使得輔助硬件控制器在需要時可立即承擔控制。
共用的串行連接是由主要硬件控制器與輔助硬件控制器共用的連接。然而,到服務(wù)處理器的共用串行連接在任何給定時間通??捎梢粋€硬件控制器控制。有效控制到服務(wù)處理器的共用串行連接的硬件控制器為主要硬件控制器。
在刀片服務(wù)器環(huán)境,例如IBMBladeCenter刀片服務(wù)器中,主要硬件控制器和輔助硬件控制器可以基本類似于BMC(基板管理控制器),這是一種與許多計算機的、特別是服務(wù)器的主板通信的專用微控制器。并且服務(wù)處理器可基本類似于MM(管理模塊)。
輕薄、可熱替換的刀片服務(wù)器像書架上的書一樣裝在單個機架上,每個刀片服務(wù)器為一獨立的服務(wù)器,具有自己的處理器、存儲器、存儲設(shè)備、網(wǎng)絡(luò)控制器、操作系統(tǒng)和應(yīng)用。刀片服務(wù)器滑進機架中的槽位之中,并插到中間背板(mid-plane)或背板(backplane)中,與其他刀片服務(wù)器共用電源、風扇、軟驅(qū)、開關(guān)以及端口。刀片服務(wù)器被設(shè)計為產(chǎn)生較少的熱,因此節(jié)約能量成本。由于共享開關(guān)和電源單元,釋放出空間、且刀片服務(wù)器使更高的計算資源密度成為可能。
刀片服務(wù)器有時稱作高密度服務(wù)器,并典型地用于專用于單個任務(wù)的服務(wù)器集群中,所述單個任務(wù)例如文件共享、網(wǎng)頁服務(wù)和高速緩存、web通信的SSL加密、用于較小顯示器的網(wǎng)頁內(nèi)容譯碼以及音頻與視頻內(nèi)容的流式傳輸?shù)鹊取5镀?wù)器可具有安裝在板上的操作系統(tǒng)以及主要應(yīng)用程序。
BMC經(jīng)由共用串行連接管理MM的系統(tǒng)管理軟件與服務(wù)器平臺硬件之間的接口。內(nèi)置在計算機系統(tǒng)中的不同類型的傳感器向BMC報告例如溫度、冷卻風扇速度、電源模式、操作系統(tǒng)(OS)狀態(tài)等參數(shù)。BMC監(jiān)測傳感器,并且如果任何參數(shù)沒有保持在預設(shè)置界限內(nèi),從而指示系統(tǒng)的潛在故障,則經(jīng)由通信網(wǎng)絡(luò)向系統(tǒng)管理員發(fā)送警報。系統(tǒng)管理員還可遠程與BMC通信,以便采取例如對系統(tǒng)進行重置或重新加電(power-cycling)等改正措施來使掛起(hung)的OS重新運行。這些能力節(jié)省了系統(tǒng)的總體擁有成本。
服務(wù)處理器或MM的功能之一是在主要硬件控制器上啟動閃速更新(flash update)。為了啟動閃速更新,服務(wù)處理器通過連接—實質(zhì)上為共用的串行連接—向主要硬件控制器發(fā)送閃速開始命令。按照慣例,所有的閃速更新是通過共用的串行連接或更新連接下載的。響應(yīng)于接收到來自服務(wù)處理器的閃速開始命令,主要硬件控制器停止執(zhí)行例行的硬件控制器代碼并開始執(zhí)行引導塊代碼,所述引導塊代碼是對發(fā)送自服務(wù)處理器的、與閃速更新相關(guān)的所有閃速命令進行響應(yīng)和處理的一段代碼。主要硬件控制器可完成或暫停所有當前任務(wù),而所有未來的任務(wù)可被堆積在隊列中。
在固件覆蓋過程期間中,更新連接必須保持為由目標控制器獨占式擁有,以便傳送固件映像。在下載或覆蓋過程中,更新連接不能被共用或中斷。使問題復雜的是,在固件映像下載時,由于固件覆蓋過程需要主要硬件控制器執(zhí)行引導塊代碼,主要硬件控制器不能用于執(zhí)行其他任務(wù)。因此,由于主要硬件控制器代碼停止,所有硬件控制器操作停下來。
因此,在固件覆蓋過程過程中,服務(wù)器設(shè)備失去有效的硬件控制器,這限制了具有冗余控制器的好處。除了失去冗余性以外,由于直到硬件覆蓋處理完成時所有任務(wù)被排入隊列,服務(wù)器管理正常運行時間以及硬件控制器可用性受到損害。
在日益進步的信息時代,有一件事是不變的對任務(wù)關(guān)鍵性數(shù)據(jù)與應(yīng)用100%可用性的需求。無論是對于證券市場、公司工資單、電子商務(wù)、企業(yè)數(shù)據(jù)庫、醫(yī)療記錄、網(wǎng)上銀行或國家安全的原因,這些任務(wù)關(guān)鍵性資源的可用性直接取決于系統(tǒng)正常運行時間。當前,沒有一種傳統(tǒng)的過程能夠適當?shù)亟鉀Q固件覆蓋過程過程中硬件控制器冗余性的喪失。
從上面的討論可見,顯然存在對克服傳統(tǒng)閃速更新方法局限性的裝置、系統(tǒng)和方法的需求。特別地,這樣裝置、系統(tǒng)和方法將有利地減少管理工作負荷,由此降低總體擁有成本。這種裝置、系統(tǒng)和方法也將有利地將管理性干預減到最小,并保持對任務(wù)關(guān)鍵性數(shù)據(jù)與應(yīng)用的高度可用性。
發(fā)明內(nèi)容響應(yīng)于本技術(shù)領(lǐng)域:
的當前狀態(tài)、特別是響應(yīng)于本技術(shù)中通過當前可用的閃速更新方法未能完全解決的問題和需求開發(fā)出本發(fā)明的幾個實施例。因此,開發(fā)本發(fā)明以提供一種用于不間斷更新冗余硬件控制器上的固件的裝置、系統(tǒng)和方法,其克服了本技術(shù)領(lǐng)域:
中的上述許多或所有缺點。
對固件進行更新的裝置具有包含多個模塊的邏輯單元,所述多個模塊被配置為在功能上與其他任務(wù)和操作并行地執(zhí)行用于不間斷固件更新的必要操作。所介紹的實施例中的這些模塊包含路由模塊、接收模塊和轉(zhuǎn)發(fā)模塊。進一步的實施例包含判定模塊、實現(xiàn)模塊、驗證模塊、確認模塊和寫入模塊。
路由模塊在服務(wù)處理器與輔助硬件控制器之間路由與閃速更新相關(guān)的通信。路由模塊包含接收模塊、轉(zhuǎn)發(fā)模塊以及判定模塊。接收模塊可經(jīng)由硬件控制接口接收來自服務(wù)處理器的、與固件覆蓋過程相關(guān)聯(lián)的閃速更新命令。在一個實施例中,接收模塊可經(jīng)由狀態(tài)同步接口接收從主要硬件控制器轉(zhuǎn)發(fā)到輔助硬件控制器的閃速命令。本領(lǐng)域技術(shù)人員將認識到,在本發(fā)明的范圍內(nèi),除與閃速更新相關(guān)的通信和命令以外,路由模塊可路由其他類型的通信和命令。
轉(zhuǎn)發(fā)模塊從服務(wù)處理器向輔助硬件控制器轉(zhuǎn)發(fā)例如閃速命令的命令。當接收模塊接收到例如來自服務(wù)控制器的閃速命令的命令時,接收模塊信號通知轉(zhuǎn)發(fā)模塊,以經(jīng)由狀態(tài)同步接口向輔助硬件控制器轉(zhuǎn)發(fā)閃速命令。
判定模塊根據(jù)主要硬件控制器控制(或擁有)硬件控制接口而判定第一硬件控制器為主要硬件控制器。在另一實施例中,判定模塊可響應(yīng)于接收到例如來自服務(wù)處理器的閃速命令的命令判定輔助硬件控制器是否可運行。
實現(xiàn)模塊可響應(yīng)于經(jīng)由狀態(tài)同步接口接收到閃速開始命令執(zhí)行引導塊代碼。當接收模塊接收到來自主要硬件控制器的閃速命令時,接收模塊信號通知實現(xiàn)模塊在輔助硬件控制器上實現(xiàn)和執(zhí)行引導塊代碼。實現(xiàn)模塊包含驗證模塊、確認模塊和寫入模塊。
驗證模塊驗證與固件覆蓋過程相關(guān)聯(lián)的閃速命令。驗證模塊可在閃速命令和/或與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊上執(zhí)行一個或多個循環(huán)冗余校驗或校驗和算法、重復校驗法、奇偶校驗法或任何其他類似的錯誤檢測方法。
一旦驗證模塊驗證了閃速命令以及任何相關(guān)聯(lián)的數(shù)據(jù)塊,確認模塊可向服務(wù)處理器確認接收到驗證的閃速命令。在一個實施例中,確認模塊可請求服務(wù)處理器重新發(fā)送無效的閃速命令。
寫入模塊向存儲裝置寫入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。在一個實施例中,寫入模塊循序地將數(shù)據(jù)塊寫入緩沖器,在緩沖器中完整的固件映像被組裝起來并在其后被裝載到固件中。
故障模塊可向服務(wù)處理器發(fā)送與閃速更新命令相關(guān)的故障消息。當判定模塊判定輔助硬件控制器不可運行時,故障模塊舍棄閃速更新命令。當驗證模塊判定閃速更新命令無效時,故障模塊可經(jīng)由狀態(tài)同步接口向服務(wù)處理器發(fā)送否定確認。
終止模塊可響應(yīng)于輔助硬件控制器經(jīng)由狀態(tài)同步接口接收到閃速結(jié)束命令,完成固件覆蓋過程。在一個實施例中,終止模塊可將硬件控制接口的控制從主要硬件控制器切換到輔助硬件控制器,從而主要硬件控制器102與輔助硬件控制器102切換角色。
還提出了本發(fā)明的一種在冗余硬件控制器上不間斷地更新固件的系統(tǒng)。該系統(tǒng)可在一冗余硬件控制器中實現(xiàn),該冗余硬件控制器被配置為執(zhí)行固件覆蓋過程。
特別地,在一個實施例中,該系統(tǒng)可包含管理模塊,其被配置為執(zhí)行固件覆蓋過程;主要基板管理控制器,其被配置為響應(yīng)于管理模塊執(zhí)行固件覆蓋過程路由閃速更新并向冗余硬件控制器轉(zhuǎn)發(fā)閃速更新;輔助基板管理控制器,其被配置為通過點到點連接接收來自主要基板管理控制器的閃速更新。
該系統(tǒng)還包含與主要基板管理控制器以及輔助基板管理控制器通信的更新模塊,該更新模塊被配置為不間斷地用閃速更新替換存儲在輔助基板管理控制器上的當前固件映像。
在進一步的實施例中,該系統(tǒng)可包含存儲裝置,該存儲裝置可被配置為存儲與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。該系統(tǒng)還可包含連接管理模塊、主要基板管理控制器以及輔助基板管理控制器的間接路由連接,該間接路由連接被配置為通過主要基板管理控制器在管理模塊與輔助基板管理控制器之間發(fā)送和接收閃速命令。
還提出了一種信號承載介質(zhì),用于存儲在被執(zhí)行時實現(xiàn)不間斷地更新冗余硬件控制器上的固件的操作、或向冗余硬件控制器發(fā)出控制命令的操作的程序。在一個實施例中,所述操作包括經(jīng)由間接路由連接從服務(wù)處理器接收閃速命令,響應(yīng)于接收到閃速命令判定輔助硬件控制器是否可運行,以及經(jīng)由間接路由連接將閃速命令從服務(wù)處理器轉(zhuǎn)發(fā)到輔助硬件控制器。
在另一實施例中,所述操作可包括響應(yīng)于經(jīng)由間接路由連接接收到包括閃速開始命令的閃速命令執(zhí)行引導塊代碼,響應(yīng)于接收到閃速命令向服務(wù)處理器轉(zhuǎn)發(fā)來自輔助硬件控制器的確認,以及響應(yīng)于接收到包括閃速結(jié)束命令的閃速命令完成輔助硬件控制器的固件覆蓋過程。
在進一步的實施例中,操作可包括響應(yīng)于主要硬件控制器控制到服務(wù)處理器的共用串行連接判定一冗余硬件控制器為主要硬件控制器,驗證閃速命令,向輔助硬件控制器上的固件存儲位置寫入與閃速命令相關(guān)聯(lián)的、已驗證的數(shù)據(jù)塊,確認接收到閃速命令,響應(yīng)于確認輔助硬件控制器不可運行向服務(wù)處理器發(fā)送故障消息,以及響應(yīng)于判定閃速命令無效向服務(wù)處理器發(fā)送否定確認。
貫穿本說明書談到的特征、優(yōu)點或類似的措辭并非暗示著采用本發(fā)明可實現(xiàn)的所有這些特征和優(yōu)點應(yīng)當在或就是在本發(fā)明的任何單個實施例中。相反,提到特征和優(yōu)點的措辭應(yīng)被理解為意味著與一實施例相關(guān)聯(lián)地介紹的特定特征、優(yōu)點或特性被包括在本發(fā)明的至少一個實施例中。因此,貫穿本說明書對特征和優(yōu)點的討論以及類似的措辭可以但不是必須指同一實施例。
另外,所介紹的本發(fā)明的特征、優(yōu)點和特性可以用任何適當?shù)姆绞皆谝粋€或多個實施例中結(jié)合。相關(guān)領(lǐng)域的技術(shù)人員將想到,可以實踐本發(fā)明而沒有特定實施例的一個或多個特定特征或優(yōu)點。在其他的情況中,可以想到某些實施例中的額外特征和優(yōu)點可不在本發(fā)明的全部實施例中存在。
通過下面的介紹和所附權(quán)利要求
可充分明了本發(fā)明的這些特征和優(yōu)點,或者通過下面給出的本發(fā)明的實踐,可以獲知本發(fā)明的這些特征和優(yōu)點。
為容易理解本發(fā)明的優(yōu)點,參照附圖中示出的具體實施例將給出對上面簡單介紹的本發(fā)明的詳細介紹。附圖僅示出了本發(fā)明的典型實施例,因此不應(yīng)被認為是對其范圍的限制,將通過使用附圖更加具體詳細地介紹和闡釋本發(fā)明。在附圖中圖1為示出了計算機管理系統(tǒng)的一個實施例的原理框圖;圖2為示出了基板管理控制器的一個實施例的原理框圖;圖3為示出了更新模塊的一個實施例的原理框圖;圖4為示出了固件路由方法的一個實施例的原理流程圖;以及圖5為示出了固件更新方法的一個實施例的原理流程圖。
具體實施方式本說明書中介紹的許多功能單元被標識為模塊,以便更為特別地強調(diào)其實施獨立性。例如,模塊可被實現(xiàn)為硬件電路,包括定制的VLSI電路或門陣列、例如邏輯芯片、晶體管或其他分立部件等成品半導體。模塊還可在可編程硬件裝置例如現(xiàn)場可編程門陣列、可編程陣列邏輯、可編程邏輯裝置等中實現(xiàn)。
模塊還可在由不同類型的處理器執(zhí)行的軟件中實現(xiàn)。例如,可執(zhí)行代碼的被標識模塊可包括計算機指令的一個或多個物理或邏輯塊,所述計算機指令例如可被組織為例如對象、過程或函數(shù)。然而,一被標識模塊的可執(zhí)行代碼不需要物理地位于一起,而是可包含存儲在不同位置上的不同指令,這些指令在被邏輯地連接在一起時構(gòu)成該模塊并實現(xiàn)該模塊的規(guī)定目的。
事實上,可執(zhí)行代碼的模塊可以是單個指令或者是許多個指令,甚至可以分布在幾個不同的代碼片段上、不同的程序中以及幾個存儲裝置上。類似地,在這里操作數(shù)據(jù)可在模塊中被識別和說明,并可以用任何合適的形式實現(xiàn)以及組織在任何合適類型的數(shù)據(jù)結(jié)構(gòu)中。運行數(shù)據(jù)可被收集為單個數(shù)據(jù)集或分布在不同的位置包括不同的存儲裝置上,并可至少部分地僅作為系統(tǒng)或網(wǎng)絡(luò)上的電子信號存在。
圖1示出了計算機管理系統(tǒng)100的一個實施例的原理框圖。計算機管理系統(tǒng)100監(jiān)測平臺硬件的狀態(tài),并提供遠程訪問以控制平臺硬件,檢索狀態(tài)信息以及接收關(guān)于關(guān)鍵錯誤其他硬件狀態(tài)變化的通知。計算機管理系統(tǒng)100包含主要硬件控制器102、輔助硬件控制器104、服務(wù)處理器106、狀態(tài)同步接口108、硬件控制接口110以及間接路由連接116。計算機管理系統(tǒng)100可根據(jù)主要硬件控制器102、輔助硬件控制器104以及服務(wù)處理器106的管理操作來管理硬件部件的狀態(tài)。在一個實施例中,計算機管理系統(tǒng)100可包括兩個或兩個以上的硬件控制器。
主要硬件控制器102經(jīng)由硬件控制接口110管理服務(wù)處理器106的系統(tǒng)管理軟件與平臺硬件之間的接口。主要硬件控制器102可監(jiān)測刀片服務(wù)器(未示出)的平臺硬件和系統(tǒng)參數(shù)。在一個實施例中,主要硬件控制器102可經(jīng)由狀態(tài)同步接口108路由閃速更新到輔助硬件控制器104。
在一個實施例中,輔助硬件控制器104是主要硬件控制器102的冗余硬件控制器。輔助硬件控制器104可被配置為主要硬件控制器102的熱備份。或者,輔助硬件控制器104可被配置為與主要硬件控制器102分擔工作負荷的對等控制器。輔助硬件控制器104可以為被配置為主控制器的主要硬件控制器102的從控制器,輔助硬件控制器104執(zhí)行來自主要硬件控制器102的命令。在一個實施例中,輔助硬件控制器104經(jīng)由狀態(tài)同步接口108接收來自主要硬件控制器102的閃速更新。
服務(wù)處理器106處理來自計算機管理系統(tǒng)100的請求。服務(wù)處理器106包括系統(tǒng)管理軟件,該系統(tǒng)管理軟件允許系統(tǒng)管理員經(jīng)由主要硬件控制器102和/或輔助硬件控制器104管理平臺硬件的運行和狀態(tài)。服務(wù)處理器106可被配置為控制平臺硬件的管理以及計算機管理系統(tǒng)100的系統(tǒng)參數(shù)的監(jiān)測。
在一個實施例中,服務(wù)處理器106可以為在遠程計算機系統(tǒng)上執(zhí)行的命令行接口(CLI)應(yīng)用。優(yōu)選地,系統(tǒng)管理員可經(jīng)由服務(wù)處理器106啟動閃速更新。服務(wù)處理器106可以對主要硬件控制器102以及輔助硬件控制器104來說為本地的,或者可經(jīng)由硬件控制接口110遠程連接。
狀態(tài)同步接口108將計算機管理系統(tǒng)100的狀態(tài)信息和狀態(tài)變化從主要硬件控制器102復制和傳送到輔助硬件控制器104。狀態(tài)同步接口108將主要硬件控制器102互連到輔助硬件控制器104。在一個實施例中,狀態(tài)同步接口108可以為專用點到點連接。
硬件控制接口110在主要硬件控制器102和/或輔助硬件控制器104以及服務(wù)處理器106之間傳送狀態(tài)管理消息。硬件控制接口110為在主要硬件控制器102與輔助硬件控制器104之間共享的共用連接。硬件控制接口110可包含串行或并行通信路徑。在某些實施例中,硬件控制接口110包含將服務(wù)處理器106物理連接到主要硬件控制器102以及輔助硬件控制器104的單條線。優(yōu)選地,服務(wù)處理器106與主要硬件控制器102或輔助硬件控制器104之間的通信遵循允許一個控制器擁有對硬件控制接口110的擁有權(quán)、同時另一控制器同意除非其為擁有者否則不通過硬件控制接口110發(fā)送任何消息的協(xié)議。以這種方式,主要硬件控制器102和輔助硬件控制器104可協(xié)同共享單個連接。
硬件控制接口110包含主要硬件控制鏈路112和輔助硬件控制鏈路114。在一個實施例中,當前控制硬件控制接口110的硬件控制器為主要硬件控制器112。主要硬件控制鏈路112示出了硬件控制器102、104中的哪一個當前為主要硬件控制器102。輔助硬件控制鏈路114(用虛線示出)示出了硬件控制器102、104中的哪一個當前為輔助硬件控制器104。
主要硬件控制鏈路112經(jīng)由硬件控制接口110在主要硬件控制器102與服務(wù)處理器106之間傳送狀態(tài)管理消息。輔助硬件控制鏈路114提供到硬件控制器102、104的冗余路徑,從而輔助硬件控制器104在主要硬件控制器102發(fā)生故障時可接管。
在某些實施例中,狀態(tài)同步接口108和/或硬件控制接口110可被實現(xiàn)為串行連接,例如集成電路間(I2C)總線、推薦標準232(RS232)、推薦標準422(RS422)、推薦標準423(RS423)、推薦標準485(RS485)、通用串行總線(USB)、電氣及電子工程師協(xié)會標準1394(IEEE 1394)或任何其它類似的接口。如本領(lǐng)域技術(shù)人員將會想到的那樣,狀態(tài)同步接口108和/或硬件控制接口110可在主機總線環(huán)境中實現(xiàn),所述主機總線環(huán)境例如小型計算機系統(tǒng)接口(SCSI)、互聯(lián)網(wǎng)小型計算機系統(tǒng)接口(iSCSI)、串行高級技術(shù)附件(SATA)、通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS)、網(wǎng)絡(luò)文件系統(tǒng)(NFS/NetWFS)、光纖連接(FICON)、企業(yè)系統(tǒng)連接(ESCON)或任何其它類似的接口。
傳統(tǒng)上,閃速更新通過硬件控制接口110被直接發(fā)送到主要硬件控制器102。然而,直接向主要硬件控制器102發(fā)送閃速更新具有使主要硬件控制器102離線、并在固件覆蓋過程持續(xù)時間內(nèi)中斷主要硬件控制器102的當前以及未來任務(wù)的不利影響。間接路由連接116允許主要硬件控制器102在從服務(wù)處理器106向輔助硬件控制器104路由閃速更新的同時保持在線并處理其他任務(wù)。
間接路由連接116為計算機管理系統(tǒng)100提供在輔助硬件控制器104與服務(wù)處理器106之間的間接連接。在一個實施例中,間接路由連接116可以為包含硬件控制接口110、主要硬件控制鏈路112、主要硬件控制器102、和狀態(tài)同步接口108的路徑。在一個實施例中,主要硬件控制器102可以經(jīng)由間接路由連接116從服務(wù)處理器106向輔助硬件控制器104路由與閃速更新相關(guān)聯(lián)的閃速命令。在某些實施例中,計算機管理系統(tǒng)100可將間接路由連接116用于輔助硬件控制器104的重新啟動(power-cycling)或防護(fencing)以及除閃速更新以外的其它類似的管理過程。間接路由連接116允許服務(wù)處理器106并行地與主要硬件控制器102交互并在輔助硬件控制器104上執(zhí)行某些功能,盡管輔助硬件控制器104不擁有硬件控制接口110。
通過間接路由連接116在控制器之一上進行閃速更新的一個好處在于可在不改變裝載在服務(wù)處理器106上的當前管理軟件的情況下執(zhí)行固件覆蓋過程。系統(tǒng)管理員可簡單地需要知道發(fā)送到主要硬件控制器102的固件更新命令由該主要硬件控制器102動態(tài)地再次路由到輔助硬件控制器104。因此,系統(tǒng)管理員可在輔助硬件控制器104上進行閃速更新,接著切換硬件控制接口110的擁有權(quán),并在主要硬件控制器102—其由于切換已成為輔助硬件控制器104—上執(zhí)行閃速更新。
與傳統(tǒng)更新路徑相比,間接路由連接116可以為到目標硬件控制器的間接的、更長的路徑。然而,間接路由連接116利用了主要硬件控制器102與輔助硬件控制器104的固有冗余性,從而允許計算機管理系統(tǒng)100保持狀態(tài)管理正常運行時間,并釋放主要硬件控制器102以根據(jù)需要執(zhí)行其他任務(wù)。
圖2示出了基板管理控制器200的一個實施例?;骞芾砜刂破?00包含存儲裝置202?;骞芾砜刂破?00可基本類似于圖1中的主要硬件控制器102與輔助硬件控制器104。存儲裝置202擔當任務(wù)緩沖器以提高基板管理控制器200的任務(wù)執(zhí)行能力,并存儲被編程為運行基板管理控制器200的微代碼。
存儲裝置202包含固件204,其可被存儲在非易失性半導體或其它類似的存儲裝置上。存儲裝置202可包括一個或多個非易失性半導體裝置,例如閃存、靜態(tài)隨機讀取存儲器(SRAM)、非易失性隨機讀取存儲器(NVRAM)、電可擦除可編程只讀存儲器(EEPROM)、可擦除可編程只讀存儲器(EPROM)、NAND/AND、NOR、分裂位線NOR(DINOR)或任何其他類似的存儲裝置。
基板管理控制器200的許多操作由固件204的執(zhí)行決定。固件204包含固件映像206、引導塊代碼208、和更新模塊210。通常,更新模塊210可實現(xiàn)固件覆蓋過程。參照圖3示出并更詳細介紹更新模塊210的一個示例。
固件映像206可以為包含機器指令和數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其可被裝載到基板管理控制器200上并被執(zhí)行。在一個實施例中,基板管理控制器200的正常操作功能由引導基板管理控制器200上的固件映像206得來。
與固件映像206一樣,引導塊代碼208可以為包含機器指令和數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其也可被裝載到基板管理控制器200上并被執(zhí)行。然而,固件映像包含用于基板管理控制器200的正常操作功能的機器指令和數(shù)據(jù),而引導塊代碼208可包含用于響應(yīng)和處理與發(fā)送自服務(wù)處理器106的閃速更新相關(guān)聯(lián)的閃速命令的專用機器指令和數(shù)據(jù)。
服務(wù)處理器106可發(fā)送多個閃速命令。為了啟動閃速更新,服務(wù)處理器106可發(fā)送閃速開始命令。閃速開始命令通知主要硬件控制器102新的固件映像206有待被下載并被閃速存儲到存儲器202上。在某些實施例中,新的固件映像206可以為當前固件映像206的完整替代物,或者可以為當前固件映像206的塊的補丁。在一個實施例中,服務(wù)處理器106可判定目標基板管理控制器是否已裝載了最新的固件映像206。
為了從管理控制器102向目標基板管理控制器傳送數(shù)據(jù)塊,管理控制器102可發(fā)送閃速數(shù)據(jù)命令。數(shù)據(jù)塊是完整的固件映像206的一個可傳送部分。為了終止閃速更新,服務(wù)處理器106可發(fā)送閃速結(jié)束命令。閃速結(jié)束命令是通知主要硬件控制器102新固件映像206的最后數(shù)據(jù)塊已發(fā)送且固件覆蓋過程完成的命令。
在一個實施例中,不是當接收到來自服務(wù)處理器106的閃速開始命令時主要硬件控制器102執(zhí)行引導塊代碼208,而是主要硬件控制器102可將來自服務(wù)處理器106的閃速命令發(fā)送到輔助硬件控制器104。以這種方式,主要硬件控制器102用作服務(wù)處理器106在向輔助硬件控制器104傳送或路由閃速更新時的代理。當經(jīng)由狀態(tài)同步接口108接收到來自主要硬件控制器102的閃速命令時,輔助硬件控制器104開始執(zhí)行引導塊代碼208。
一旦輔助硬件控制器104經(jīng)由狀態(tài)同步接口108接收到來自主要硬件控制器102的閃速結(jié)束命令,固件覆蓋過程完成,且輔助硬件控制器104確認成功的閃速更新。于是,輔助硬件控制器104重新引導,并開始執(zhí)行新的固件映像206。
于是,可進行主要硬件控制器102與輔助硬件控制器104之間的切換。切換是主要硬件控制器102與輔助硬件控制器104之間在角色上的互換。這樣,硬件控制接口110的控制和利用可從主要硬件控制器102切換到輔助硬件控制器104。
輔助硬件控制器104接管運行以及主要硬件控制器102的其它任務(wù),并被給予對硬件控制接口110的有效擁有權(quán)。因此,輔助硬件控制器104成為主要硬件控制器102。主要硬件控制器102開始經(jīng)由狀態(tài)同步接口108維持和接收冗余狀態(tài)管理,并因此成為輔助硬件控制器104。在一個實施例中,在輔助硬件控制器104上固件映像206成功的閃速更新完成之后,系統(tǒng)管理員可切換主要硬件控制器102與輔助硬件控制器104。
一旦切換完成,新的輔助硬件控制器104可接收來自新的主要硬件控制器102的閃速開始命令,其中,可用新的固件映像206替代新的輔助硬件控制器104中的固件映像206。這樣,完成兩個硬件控制器的閃速更新,同時,主要硬件控制器102在固件覆蓋過程的整個過程中始終保持有效的狀態(tài)管理并且并行地執(zhí)行其他任務(wù)。一旦新輔助硬件控制器104的固件覆蓋過程完成,在一個實施例中,可再次執(zhí)行主要硬件控制器102與輔助硬件控制器104之間的切換,從而原始主要硬件控制器102于是可以在不中斷工作負荷或工作流的情況下用更新后的固件映像206運行,并重新獲得對硬件控制接口110的控制。
圖3示出了更新模塊300的一個實施例,其可以與圖2中的更新模塊210基本類似。更新模塊300包含路由模塊302,其在服務(wù)處理器106與輔助硬件控制器104之間路由通信;接收模塊303,其接收閃速更新命令;實現(xiàn)模塊304,其實現(xiàn)與輔助硬件控制器104相關(guān)的固件覆蓋過程;故障模塊306,其可信號通知與閃速更新命令相關(guān)的故障;以及終止模塊308,其終止固件覆蓋過程。
可根據(jù)代理更新協(xié)議激活更新模塊300。代理更新協(xié)議可建立主要硬件控制器102可從服務(wù)處理器106接收和轉(zhuǎn)發(fā)閃速命令的方式、以及輔助硬件控制器104從主要硬件控制器102接收和執(zhí)行閃速命令的方式。
路由模塊302在服務(wù)處理器106與輔助硬件控制器104之間路由與閃速更新相關(guān)聯(lián)的通信。路由模塊302包括轉(zhuǎn)發(fā)模塊312,其轉(zhuǎn)發(fā)閃速更新命令;以及判定模塊314,其判定是否可開始閃速覆蓋處理。路由模塊302可在輔助硬件控制器104和服務(wù)處理器106之間路由與閃速更新相關(guān)的通信。
接收模塊303經(jīng)由硬件控制接口110從服務(wù)處理器106接收與固件更新覆蓋處理相關(guān)聯(lián)的閃速更新命令。接收模塊303可經(jīng)由硬件控制接口110接收從服務(wù)處理器106發(fā)送到主要硬件控制器102的閃速命令。接收模塊303還可經(jīng)由狀態(tài)同步接口108接收從主要硬件控制器102轉(zhuǎn)發(fā)到輔助硬件控制器104的閃速命令。優(yōu)選地,接收模塊303被配置為監(jiān)聽或響應(yīng)經(jīng)由硬件控制接口110或狀態(tài)同步接口108接收的閃速命令或其他類型的控制命令。
轉(zhuǎn)發(fā)模塊312將來自服務(wù)處理器106的例如閃速命令的命令轉(zhuǎn)發(fā)給輔助硬件控制器104。當接收模塊303經(jīng)由硬件控制接口110接收到來自服務(wù)處理器106的閃速命令時,接收模塊303信號通知轉(zhuǎn)發(fā)模塊312,以便經(jīng)由狀態(tài)同步接口108向輔助硬件控制器104轉(zhuǎn)發(fā)閃速命令。輔助硬件控制器104的接收模塊303可通過狀態(tài)同步接口108識別和接收閃速命令。這樣,通過間接路由連接116,主要硬件控制器102將由服務(wù)處理器106發(fā)起的閃速命令接收和轉(zhuǎn)發(fā)到輔助硬件控制器104。
判定模塊314響應(yīng)于主要硬件控制器102控制硬件控制接口110判定第一硬件控制器為主要硬件控制器102。在另一實施例中,判定模塊314可響應(yīng)于從服務(wù)處理器106接收到閃速命令判定輔助硬件控制器104是否可運行。判定模塊314與轉(zhuǎn)發(fā)模塊312協(xié)作。在一個實施例中,如果包含判定模塊314的硬件控制器為主要硬件控制器102且輔助硬件控制器104可運行,則判定模塊314信號通知轉(zhuǎn)發(fā)模塊312,以使例如閃速命令的命令被轉(zhuǎn)發(fā)。在某些實施例中,判定模塊314可簡單地預期輔助硬件控制器104可運行。
實現(xiàn)模塊304響應(yīng)于經(jīng)由狀態(tài)同步接口108接收到閃速開始命令實現(xiàn)引導塊代碼208。當接收模塊303接收到來自主要硬件控制器102的閃速開始命令時,接收模塊303信號通知實現(xiàn)模塊304在輔助硬件控制器104上實現(xiàn)和執(zhí)行引導塊代碼208。實現(xiàn)模塊304可包含驗證模塊316,其驗證閃速更新命令;確認模塊318,其確認閃速更新命令;寫入模塊320,其向存儲器寫入與閃速更新命令相關(guān)聯(lián)的數(shù)據(jù)塊。
驗證模塊316驗證與固件覆蓋過程相關(guān)聯(lián)的閃速命令。在一個實施例中,驗證模塊316驗證與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。驗證模塊316可在閃速命令和/或與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊上執(zhí)行循環(huán)冗余校驗或校驗和算法、重復校驗法、奇偶校驗法或任何其他類似的錯誤檢測方法中的一個或多個。
一旦驗證模塊316驗證了例如閃速命令的命令或相關(guān)聯(lián)的數(shù)據(jù)塊,確認模塊318可向服務(wù)處理器106確認接收到已驗證的閃速命令。在一個實施例中,確認模塊318可確認與閃速更新相關(guān)聯(lián)的每一閃速命令。在進一步的實施例中,確認模塊318可請求服務(wù)處理器106重新發(fā)送被發(fā)現(xiàn)為無效的閃速命令。
在一個實施例中,寫入模塊320寫入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。在一個實施例中,寫入模塊320向存儲裝置202寫入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。在另一實施例中,寫入模塊320循序地向緩沖器(未示出)寫入數(shù)據(jù)塊,在緩沖器中,完整的固件映像206被組裝,并在之后被裝載到固件204中。
故障模塊306可向服務(wù)處理器106發(fā)送與閃速更新命令相關(guān)的故障消息。當判定模塊314判定為輔助硬件控制器104不可運行時,故障模塊306通過向服務(wù)處理器106發(fā)送故障消息來舍棄該閃速命令。主要硬件控制器102于是可等待輔助硬件控制器104恢復在線或者可舍棄該固件覆蓋過程。當驗證模塊316判定閃速更新命令無效時,故障模塊306可經(jīng)由狀態(tài)同步接口108向服務(wù)處理器106發(fā)送否定確認。服務(wù)處理器106于是可重新發(fā)送被舍棄的閃速更新命令。
終止模塊308可響應(yīng)于輔助硬件控制器104經(jīng)由狀態(tài)同步接口108接收到閃速結(jié)束命令完成固件覆蓋過程。在一個實施例中,終止模塊308可將硬件控制接口110的控制從主要硬件控制器102切換到輔助硬件控制器104,從而主要硬件控制器102與輔助硬件控制器104切換角色。
圖4為一原理流程圖,其示出了可由圖3中的更新模塊300實現(xiàn)的固件路由方法400的一個實施例。在這里參照圖1中的計算機管理系統(tǒng)100介紹固件路由方法400。盡管為清楚起見以某種循序的順序示出固件路由方法400,計算機管理系統(tǒng)100可并行地和/或不必以所示出的順序執(zhí)行操作。在一個實施例中,與主要硬件控制器102相關(guān)地執(zhí)行固件路由方法400。
固件路由方法400開始,接收模塊303經(jīng)由硬件控制接口110從服務(wù)處理器106接收402閃速開始命令。優(yōu)選地,硬件控制接口110是由主要硬件控制器102以及輔助硬件控制器104共用的接口。接著,判定模塊314判定404輔助硬件控制器104是否可運行。如果判定模塊314判定404輔助硬件控制器104不可運行,故障模塊306進行到信號通知閃速開始命令的故障406。
反之,如果判定模塊314判定404輔助硬件控制器104可運行,則轉(zhuǎn)發(fā)模塊312經(jīng)由狀態(tài)同步接口108向輔助硬件控制器104轉(zhuǎn)發(fā)408閃速開始命令以及所有相關(guān)的參數(shù)。接著,接收模塊303接收410來自服務(wù)處理器106的下一閃速命令。
響應(yīng)于接收模塊303接收到410下一閃速命令,判定模塊314可判定412閃速命令是否包含閃速結(jié)束命令。如果判定模塊314判定412閃速命令不包含閃速結(jié)束命令,轉(zhuǎn)發(fā)模塊312向輔助硬件控制器104轉(zhuǎn)發(fā)414閃速命令。相反,如果判定模塊314判定412閃速命令包含閃速結(jié)束命令,轉(zhuǎn)發(fā)模塊312向輔助硬件控制器104轉(zhuǎn)發(fā)416閃速結(jié)束命令。主要硬件控制器102于是可等待來自服務(wù)處理器106的另一命令。
在一個實施例中,在輔助硬件控制器104接收到閃速結(jié)束命令之后,可將主要硬件控制器102與輔助硬件控制器104切換。換言之,從主要硬件控制器102取走硬件控制接口110的控制并將之給予輔助硬件控制器104。這樣,可重復固件覆蓋過程以更新主要硬件控制器102。
圖5為一原理流程圖,其示出了可由圖3中的更新模塊300實現(xiàn)的固件更新方法500的一個實施例。這里參照圖1中的計算機管理系統(tǒng)100介紹固件更新方法500。
固件更新方法500包含以下操作接收502閃速開始命令,實現(xiàn)504引導塊代碼208,接收506下一個閃速命令,判定508閃速命令是否有效,信號通知閃速命令的故障510,發(fā)送512確認,判定514閃速命令是否包含閃速結(jié)束命令,寫入516與固件覆蓋過程相關(guān)聯(lián)的數(shù)據(jù)塊。
固件更新方法500啟動與輔助硬件控制器104相關(guān)聯(lián)的更新模塊300的固件更新能力。盡管為清楚起見以某種循序的順序示出固件更新方法500,計算機管理系統(tǒng)100可并行地和/或不必以所示出的順序執(zhí)行操作。在一個實施例中,與輔助硬件控制器104相關(guān)聯(lián)地執(zhí)行固件更新方法500。
固件更新方法500開始,且接收模塊303經(jīng)由狀態(tài)同步接口108接收閃速開始命令。接著,實現(xiàn)模塊304在輔助硬件控制器104上執(zhí)行504引導塊代碼208。在一個實施例中,輔助硬件控制器104停止當前執(zhí)行的被引導固件映像206,并開始執(zhí)行引導塊代碼208。
在引導塊代碼208的啟動之后,接收模塊303經(jīng)由狀態(tài)同步接口108接收506下一個閃速命令。驗證模塊316于是判定508閃速命令是否無效。如果固件更新方法500判定508閃速命令為無效,則故障模塊306信號通知510當前閃速命令的故障。在一個實施例中,故障模塊306可發(fā)出請求,請求服務(wù)處理器106重新發(fā)送被驗證模塊316判定508為無效的閃速命令。
相反,如果固件更新方法500判定508閃速命令為有效,則確認模塊318可發(fā)送512接收到有效閃速命令的確認。
接著,判定模塊314可判定514閃速命令是否包含閃速結(jié)束命令。如果判定模塊314判定514閃速命令不包含閃速結(jié)束命令,則寫入模塊320向存儲裝置202寫入516與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。
相反,如果判定模塊314判定514閃速命令包含閃速結(jié)束命令,則終止模塊308可完成固件覆蓋過程。如上所述,在某些實施例中,終止模塊308于是可自動將硬件控制接口110的控制從主要硬件控制器102切換到輔助硬件控制器104,以便對主要硬件控制器102重復固件覆蓋過程。
本發(fā)明公開的固件覆蓋過程可對總體系統(tǒng)性能具有正面影響。在某些實施例中,本發(fā)明改善了正常運行時間、應(yīng)用可用性以及實時業(yè)務(wù)性能,所有這些引起總體擁有成本的降低。除了在冗余硬件控制器上更新固件映像206以外,本發(fā)明的實施例使系統(tǒng)管理員能夠更新固件映像206而不中斷主要硬件控制器102的任務(wù)。
這里包含的原理流程圖通常作為邏輯流程圖給出。因此,所示出的順序和所標識的操作表示本方法的一個實施例??梢韵氲皆诠δ堋⑦壿嫽蜃饔蒙吓c所示出的方法的一個或多個操作或其部分等同的其他操作和方法。另外,所采用的格式和符號用于闡釋本方法的邏輯操作,并可被理解為并非對本方法的范圍進行限制。盡管在流程圖中可采用多種箭頭類型和線條類型,它們被理解為并非限制相應(yīng)的方法的范圍。事實上,某些箭頭或其他連接符可用于僅僅表示方法的邏輯流程。例如,箭頭可表示所述方法的所列操作之間未指定持續(xù)時間的等待或監(jiān)測期間。另外,特定方法發(fā)生的順序可嚴格按照或者不按照所示對應(yīng)操作的順序。
貫穿本說明書提及“一個實施例”、“一實施例”或類似的措辭意味著聯(lián)系實施例介紹的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個實施例中。因此,貫穿本說明書的短語“在一個實施例中”、“在一實施例中”以及類似的措辭的出現(xiàn)可以但不必全部指同一實施例。
所提及的信號承載介質(zhì)可以采用能夠產(chǎn)生信號、使信號被產(chǎn)生或使機器可讀指令的程序在數(shù)字處理裝置上執(zhí)行的任何形式。信號承載介質(zhì)可由傳輸線、光盤、數(shù)字視頻盤、磁帶、伯努利驅(qū)動器、磁盤、穿孔卡片、閃存、集成電路、或其他數(shù)字處理設(shè)備存儲裝置實現(xiàn)。
另外,所介紹的本發(fā)明特征、結(jié)構(gòu)或特性可以用任何合適的方式結(jié)合在一個或多個實施例中。在下面的介紹中,為提供對本發(fā)明實施例的充分理解,提供了大量具體細節(jié),例如編程、軟件模塊、用戶選擇、網(wǎng)絡(luò)事務(wù)、數(shù)據(jù)庫查詢、數(shù)據(jù)庫結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等等的示例。然而,相關(guān)領(lǐng)域技術(shù)人員將明了,可實踐本發(fā)明而沒有一個或多個具體細節(jié),或具有其他方法、部件、材料等等。在其他的情況中,為了避免遮掩本發(fā)明的方面,沒有示出或介紹公知的結(jié)構(gòu)、材料或操作。
本發(fā)明還可用其他特定形式實現(xiàn),而不脫離本發(fā)明的精神或?qū)嵸|(zhì)特性。所介紹的實施例將在任何方面應(yīng)被看作說明性而不是限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求
而不是前面的說明書表示。屬于權(quán)利要求
的等同物的含義以及范圍的所有改變應(yīng)被看作屬于權(quán)利要求
的范圍。
權(quán)利要求
1.一種用于不間斷更新冗余硬件控制器上的固件的裝置,該裝置包含路由模塊,其被配置為從服務(wù)處理器向冗余硬件控制器路由通信;接收模塊,其被連接到所述路由模塊,所述接收模塊被配置為經(jīng)由共用的串行連接接收來自所述服務(wù)處理器的命令;以及轉(zhuǎn)發(fā)模塊,其被連接到所述接收模塊,所述轉(zhuǎn)發(fā)模塊被配置為經(jīng)由專用點到點連接向所述冗余硬件控制器轉(zhuǎn)發(fā)所述命令,所述冗余硬件控制器被配置為通過所述點到點連接接收所述命令。
2.根據(jù)權(quán)利要求
1的裝置,其中,所述命令和通信與閃速更新相關(guān),該裝置還包含判定模塊,所述判定模塊被配置為響應(yīng)于主要硬件控制器控制所述共用串行連接判定第一硬件控制器為所述主要硬件控制器,并響應(yīng)于從所述服務(wù)處理器接收到所述閃速命令判定輔助硬件控制器是否可運行。
3.根據(jù)權(quán)利要求
2的裝置,還包含實現(xiàn)模塊,所述實現(xiàn)模塊被配置為響應(yīng)于經(jīng)由所述專用點到點連接接收到包含閃速開始命令的所述閃速命令執(zhí)行引導塊代碼。
4.根據(jù)權(quán)利要求
3的裝置,還包含連接到所述實現(xiàn)模塊的驗證模塊,所述驗證模塊被配置為驗證所述閃速命令。
5.根據(jù)權(quán)利要求
4的裝置,還包含連接到所述驗證模塊的寫入模塊,所述寫入模塊被配置為寫入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。
6.根據(jù)權(quán)利要求
5的裝置,還包含連接到所述寫入模塊的確認模塊,所述確認模塊被配置為確認接收到所述閃速命令。
7.根據(jù)權(quán)利要求
1的裝置,還包含故障模塊,所述故障模塊被配置為響應(yīng)于判定所述輔助硬件控制器不可運行向所述服務(wù)處理器發(fā)送故障消息,以及響應(yīng)于判定所述命令無效向所述服務(wù)處理器發(fā)送否定確認。
8.根據(jù)權(quán)利要求
2的裝置,還包含終止模塊,所述終止模塊被配置為響應(yīng)于接收到包含閃速結(jié)束命令的所述閃速命令完成固件覆蓋過程。
9.一種用于不間斷更新冗余硬件控制器上的固件的系統(tǒng),該系統(tǒng)包含管理模塊,所述管理模塊被配置為執(zhí)行固件覆蓋過程;連接到所述管理模塊的主要基板管理控制器,該主要基板管理控制器被配置為響應(yīng)于所述管理模塊執(zhí)行所述固件覆蓋過程路由閃速更新,以及向冗余硬件控制器轉(zhuǎn)發(fā)所述閃速更新;連接到所述主要基板管理控制器的輔助基板管理控制器,所述輔助基板管理控制器被配置為通過點到點連接接收來自所述主要基板管理控制器的所述閃速更新;以及與所述主要基板管理控制器以及所述輔助基板管理控制器通信的更新模塊,所述更新模塊被配置為用所述閃速更新不間斷地替換存儲在所述輔助基板管理控制器上的當前固件映像。
10.根據(jù)權(quán)利要求
9的系統(tǒng),其中,所述主要基板管理控制器和所述輔助基板管理控制器包含存儲裝置,所述存儲裝置被配置為存儲與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。
11.根據(jù)權(quán)利要求
9的系統(tǒng),其中,所述更新模塊包含連接所述管理模塊、所述主要基板管理控制器以及所述輔助基板管理控制器的間接路由連接,所述間接路由連接被配置為在所述管理模塊與所述輔助基板管理控制器之間通過所述主要基板管理控制器發(fā)送和接收閃速命令。
12.一種用于不間斷更新冗余硬件控制器上的固件的方法,包括經(jīng)由間接路由連接接收來自服務(wù)處理器的閃速命令;響應(yīng)于接收到所述閃速命令判定輔助硬件控制器是否可運行;經(jīng)由所述間接路由連接向所述輔助硬件控制器轉(zhuǎn)發(fā)來自所述服務(wù)處理器的所述閃速命令;響應(yīng)于經(jīng)由所述間接路由連接接收到包含閃速開始命令的所述閃速命令執(zhí)行引導塊代碼;響應(yīng)于接收到所述閃速命令從所述輔助硬件控制器向所述服務(wù)處理器轉(zhuǎn)發(fā)確認;以及響應(yīng)于接收到包含閃速結(jié)束命令的閃速命令完成所述輔助硬件控制器的固件覆蓋過程。
13.根據(jù)權(quán)利要求
12的方法,還包括響應(yīng)于主要硬件控制器控制到所述服務(wù)處理器的共用串行連接判定第一硬件控制器為所述主要硬件控制器。
14.根據(jù)權(quán)利要求
12的方法,還包括驗證所述閃速命令。
15.根據(jù)權(quán)利要求
14的方法,還包括向所述輔助硬件控制器上的固件存儲位置寫入與所述閃速命令相關(guān)聯(lián)的、驗證后的數(shù)據(jù)塊。
16.根據(jù)權(quán)利要求
12的方法,還包括確認接收到所述閃速命令。
17.根據(jù)權(quán)利要求
12的方法,還包括響應(yīng)于判定所述輔助硬件控制器不可運行向所述服務(wù)處理器發(fā)送故障消息,以及響應(yīng)于判定所述閃速命令無效向所述服務(wù)處理器發(fā)送否定確認。
18.根據(jù)權(quán)利要求
12的方法,其中,所述間接路由連接包含狀態(tài)同步接口,其經(jīng)由專用點到點連接將所述主要硬件控制器互連到所述輔助硬件控制器,并被配置為在所述主要硬件控制器與所述輔助硬件控制器之間傳送狀態(tài)信息;以及硬件控制接口,其經(jīng)由共用串行連接將所述主要硬件控制器以及所述輔助硬件控制器互連到所述服務(wù)處理器。
19.根據(jù)權(quán)利要求
12的方法,其中,所述固件覆蓋過程包括經(jīng)由所述主要硬件控制器與所述輔助硬件控制器之間的專用點到點連接,更新存儲在所述輔助硬件控制器上的固件映像;將共用串行連接的控制從所述主要硬件控制器切換到所述輔助硬件控制器;以及經(jīng)由所述主要硬件控制器與所述輔助硬件控制器之間的專用點到點連接,更新存儲在所述主要硬件控制器上的固件映像。
20.一種用于部署計算基礎(chǔ)設(shè)施的方法,其包括將計算機可讀代碼集成在計算系統(tǒng)中,其中,結(jié)合所述計算系統(tǒng)的所述代碼能夠執(zhí)行以下操作確定包含以下各項的客戶端硬件配置;被配置為轉(zhuǎn)發(fā)閃速命令的主要硬件控制器;被配置為經(jīng)由到所述主要硬件控制器的專用點到點連接接收所述閃速命令的輔助硬件控制器;間接路由連接,其包含將所述主要硬件控制器以及所述輔助硬件控制器互連到服務(wù)處理器的共用串行連接以及將所述主要硬件控制器互連到所述輔助硬件控制器的專用點到點通信;以及對所述硬件配置執(zhí)行固件覆蓋過程,所述固件覆蓋過程被配置為執(zhí)行以下操作接收來自所述服務(wù)處理器的所述閃速命令;經(jīng)由所述間接路由連接向所述輔助硬件控制器轉(zhuǎn)發(fā)所述閃速命令;以及響應(yīng)于接收到所述閃速命令向所述服務(wù)處理器轉(zhuǎn)發(fā)確認。
專利摘要
公開了一種用于不間斷更新冗余硬件控制器上的固件的裝置、系統(tǒng)和方法。該裝置包含路由模塊、接收模塊和轉(zhuǎn)發(fā)模塊。路由模塊在與閃速更新相關(guān)聯(lián)的服務(wù)處理器與冗余硬件控制器之間路由通信。接收模塊經(jīng)由共用串行連接接收來自服務(wù)處理器的、用于閃速更新的閃速命令。轉(zhuǎn)發(fā)模塊經(jīng)由專用點到點連接向被配置為通過所述點到點連接接收閃速命令的冗余硬件控制器轉(zhuǎn)發(fā)閃速命令。這種裝置、系統(tǒng)和方法提供了對冗余硬件控制器上的固件映像的不間斷覆蓋,從而使系統(tǒng)停機時間和用戶干預減到最少。
文檔編號H04L29/08GK1996253SQ200710001509
公開日2007年7月11日 申請日期2007年1月4日
發(fā)明者D·C·道格拉斯, 劉磊, D·M·莫頓, J·J·格拉維斯 申請人:國際商業(yè)機器公司導出引文BiBTeX, EndNote, RefMan