欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

更新方法、服務器系統(tǒng)以及非瞬態(tài)計算機可讀取介質與流程

文檔序號:12270964閱讀:274來源:國知局
更新方法、服務器系統(tǒng)以及非瞬態(tài)計算機可讀取介質與流程

本發(fā)明涉及一種服務器裝置內儲存節(jié)點固件的管理。



背景技術:

儲存節(jié)點,例如磁盤簇(JBOD),其通常是由數個儲存裝置與一個控制器所組成,例如串行連接小型計算機系統(tǒng)接口(SAS)擴張器或其他元件。儲存節(jié)點通常也需要各種的固件來操縱各種的元件,為了改善各種元件的功能,其每個元件可能被新的固件更新。固件的更新可以在儲存節(jié)點執(zhí)行或是通過連結到儲存節(jié)點的更新服務器來執(zhí)行(例如:一對一更新)。在一對一更新的情況下,更新服務器可包含固件更新工具,例如擴張固件工具或磁盤(HDD)固件工具。為了在儲存節(jié)點更新固件,儲存節(jié)點會與更新服務器做連結(例如:通過串行連接小型計算機系統(tǒng)接口線路),授權程序將會被執(zhí)行,更新即開始。

然而,當數據儲存的需求增加,在單一儲存節(jié)點中的儲存裝置數量也可能增加至數千個。再者,儲存節(jié)點需求的數量也可能增加。當儲存節(jié)點的數量增加,在每一儲存節(jié)點中的儲存裝置的數量也會增加,其中該儲存裝置需要定期的固件更新,而通過傳統(tǒng)的一對一更新程序,來維持儲存節(jié)點中的固件的最新狀態(tài)也會變得困難。



技術實現要素:

可以通過本發(fā)明權利要求書中特別提到的手段以及組合,來了解且達成本發(fā)明的額外特征與優(yōu)勢,或者可以藉由發(fā)明原理的實施來進一步知悉。

現今的技術是藉由不同的裝置來執(zhí)行管理固件的系統(tǒng)與方法,例如儲存節(jié)點。在操作中,一個與主控裝置溝通的管理控制器,可以針對一服務器系統(tǒng)內的儲存節(jié)點,來動態(tài)地管理固件更新。例如,主控裝置可以判斷儲存裝置、儲存裝置控制器(例如:一串行連接小型計算機系統(tǒng)接口擴張器)或儲存節(jié)點內的其他原件的最新固件版本。然后,主控裝置傳送更新的固件映射文 件至管理控制器。其后,管理控制器傳送更新的固件映射文件至與儲存裝置或存儲器裝置連結的儲存裝置控制器,來達成更新。然后,儲存裝置控制器可以判斷更新的固件映射文件是針對儲存裝置,或者是儲存裝置控制器本身。藉由判斷哪個裝置與固件更新連結,則該指定裝置的固件更新便可以執(zhí)行。在一些狀態(tài)下,指示固件更新程序成功或失敗的記錄文件會提供給管理控制器。然后,此管理控制器可以傳輸此文件案至主控裝置或其他元件。

更多實施例的細節(jié)會伴隨著附圖與接下來的描述闡明。其他的特征以及潛在的優(yōu)勢將會通過說明書的描述、附圖與權利要求書而變得更加明了。

附圖說明

圖1繪示在儲存點上執(zhí)行固件更新的示范性系統(tǒng)的方塊圖。

圖2A與圖2B繪示執(zhí)行與一串行連接小型計算機系統(tǒng)接口擴張器相連結的存儲器裝置其固件更新的示范性系統(tǒng)的方塊圖。

圖3繪示傳輸一來自管理控制器的固件映射文件至一串行連接小型計算機系統(tǒng)接口擴張器的示范性程序的流程圖。

圖4繪示更新與串行連接小型計算機系統(tǒng)接口擴張器連結的儲存裝置上的固件的示范性程序的流程圖。

圖5繪示更新在儲存裝置上的固件的示范性程序的流程圖。

圖6繪示執(zhí)行圖1~5的特征與程序的一運算裝置的示范性系統(tǒng)的方塊圖。

不同附圖中的相同的附圖標記表示同樣的元件。

【附圖符號說明】

100:儲存節(jié)點

110:儲存控制器

120:串行連接小型計算機系統(tǒng)接口擴張器

130:管理控制器

140:儲存裝置

142:存儲器

150:網絡

160:主控裝置

201、202、203:存儲器

600:系統(tǒng)結構

602:處理器

604:輸入裝置

606:顯示裝置

608:網絡接口

610:計算機可讀取介質

612:總線

614:操作系統(tǒng)

616:網絡溝通

618:圖形處理系統(tǒng)

620:應用程序

622:系統(tǒng)控制器

具體實施方式

以下為本發(fā)明各種不同實施例的討論,當討論特定實施例時,應當了解這僅是為了舉例說明。本領域技術人員,在不背離本發(fā)明的精神與范圍下,可以使用其他元件與結構。

現今的技術藉由不同的裝置來執(zhí)行管理固件的系統(tǒng)與方法,例如儲存節(jié)點。在操作中,一個與主控裝置溝通的管理控制器,可以針對一服務器系統(tǒng)內的儲存節(jié)點,來動態(tài)地管理固件更新。以下圖1為該程序的描述。圖1為一例示性系統(tǒng)的方塊圖,用以解釋根據現今的技術,在儲存節(jié)點100上所執(zhí)行的固件更新。如同圖1的說明,儲存節(jié)點100可包含儲存控制器110、串行連接小型計算機系統(tǒng)接口擴張器120、管理控制器130以及單一或多個儲存裝置140。儲存節(jié)點100可以藉由網絡150(例如,區(qū)域網絡、廣域網絡、網際網絡等),與主控裝置160(例如,筆記型計算機、平板計算機、智能手機等)通信連接,其中,儲存節(jié)點100通過管理控制器130與網絡150通信連接。

儲存節(jié)點100可以是一管理服務器裝置,其中該管理服務器裝置包括管理控制器130,是用來執(zhí)行儲存節(jié)點100的頻外管理。例如,此管理控制器可以是一基板管理控制器(BMC),用來與智能平臺管理接口(IPMI)或應用程 序接口(API)搭配使用。此基板管理控制器可以獨立于儲存節(jié)點100的中央處理單元之外運作,或者也可獨立于儲存節(jié)點100的操作系統(tǒng)之外運作。可以使用操作程序或計算機可讀取指令來裝配管理控制器130,用以從遠端執(zhí)行儲存裝置140的運作(例如:在主控裝置160),如在此所述。在運作中,管理控制器130可以藉由網絡150,從主控裝置160取得儲存節(jié)點100的服務器配置信息。然后,管理控制器130可通過串行連接小型計算機系統(tǒng)接口擴張器120或其他元件與儲存裝置140溝通。管理控制器130可以藉由各種不同方法與串行連接小型計算機系統(tǒng)接口擴張器120溝通。例如,提供內部整合電路排流接口(I2C/SMbus)。

串行連接小型計算機系統(tǒng)接口擴張器120可以與管理控制器130溝通,用以支持儲存裝置140的遠端管理,包含儲存裝置140的固件更新。在操作中,配置串行連接小型計算機系統(tǒng)接口擴張器120,用來接收來自管理控制器130的更新固件映射文件,并且判斷此為儲存裝置140的固件更新。然后,串行連接小型計算機系統(tǒng)接口擴張器120儲存固件映射文件,并更新固件。例如,串行連接小型計算機系統(tǒng)接口擴張器120可以儲存固件映射文件于單一或多個儲存裝置140,以待后續(xù)串行連接小型計算機系統(tǒng)接口擴張器120的使用來更新儲存裝置140的固件。

雖然在此將串行連接小型計算機系統(tǒng)接口擴張器120與管理控制器130描述成分開的元件,但各種不同的實施例不限定于此。反之,目前本發(fā)明考慮,在一些實施例中,具有網絡能力的串行連接小型計算機系統(tǒng)接口擴張器也可以當成儲存節(jié)點的管理控制器來運作。

雖然各種不同的實施例是根據串行連接小型計算機系統(tǒng)接口擴張器來描述,目前本發(fā)明考慮在此描述的方法,可以與其他種類的儲存裝置控制器或其他元件一起使用,包含這樣的控制器。例如,在此所述的方法也可以更新運算裝置的固件,其中該運算裝置使用互連架構(PCIe)橋接器/開關將NMVe固態(tài)硬盤連接到一運算節(jié)點。然而,各種實施例并未限制在串行連接小型計算機系統(tǒng)接口擴張器與互連架構(PCIe)橋接器/開關技術,各種實施例是可以與其他技術一起利用。

如圖1所繪示,儲存節(jié)點100可以包含數個個別的儲存裝置140。例如,每一個儲存裝置140可為一硬盤(HDD),用來儲存數據或計算機程序指令。然而,在一些實施例當中,儲存裝置140可以配置在容錯式磁盤陣列(RAID), 而該容錯式磁盤陣列分配數據,以及與平行傳輸和數據讀取相連接。在其他實施例中,磁盤簇(JBOD)的配置可以用來避免需要冗余廉價的磁盤陣列(RAID)的功能。然而,目前的公開考慮在此所述的方法可以與其他儲存裝置一起使用。

圖1還繪示,儲存節(jié)點100也可以包含與串行連接小型計算機系統(tǒng)接口擴張器120溝通的儲存控制器110。例如,儲存控制器110可以是串行高級技術附件(SATA)主機總線適配器(HBA)。儲存控制器110也可以具有通過串行連接端口的乙太網絡連結,用來與其他裝置溝通。

如同上述所說,主控裝置160,例如一服務器管理系統(tǒng)(SMS),可以用來監(jiān)控并遠端操控儲存節(jié)點100的運作。再者,主控裝置160可以用來判斷何時有更新的固件,可以應用在儲存節(jié)點100上的任何儲存裝置140。例如,主控裝置160可以對管理控制器130發(fā)送一查詢指令,用以要求有關儲存裝置140或其他儲存節(jié)點100的元件的固件當前版本的信息。管理控制器130依次查詢儲存節(jié)點100的元件的固件版本信息,例如,當前正在儲存裝置140上運作的固件版本。然后,管理控制器130便可采集固件信息,并藉由網絡150將它傳送回主控裝置160。

根據接收當前儲存裝置140的固件版本信息(或儲存節(jié)點100上的其他元件),主控裝置160便可以判斷任何在儲存節(jié)點100的固件,例如,任一儲存裝置140的固件是否需要更新。假如有任何一元件需要更新,主控裝置160便取回所需的固件,并通過網絡150,將其提供給管理控制器130。然后,管理控制器130將該固件提供給串行連接小型計算機系統(tǒng)接口擴張器,用來安裝在對應的儲存裝置140或儲存節(jié)點100的其他元件。

目前的公開考慮到在一些例子當中,可能無法取得儲存裝置140或其他元件的固件版本。例如,儲存裝置140可能已經破壞固件、串行連接小型計算機系統(tǒng)接口擴張器120可能有缺陷且無法正常讀取儲存裝置140上的固件版本,或者是管理控制器130或主控裝置160存在著無法正常讀取特定元件的固件版本的問題。或者是,這種類型元件的固件版本信息可能是無效的或不正常的。為了解決主控裝置160無法判斷單一或多個儲存裝置140的固件版本或其他有關固件的問題,在主控裝置160上執(zhí)行一手段便可使得固件自動更新。例如,假設儲存裝置140的當前固件版本無法識別,主控裝置160上的一個手段可以命令儲存裝置140的固件自動更新至最新可利用的版本。 然而,在一些實施例中,此手段可以命令固件更新至一特定版本,此特定版本可能是最新也可能不是最新版本。提供這樣的配置可以確保儲存裝置140或其他儲存節(jié)點100的元件更新至可信賴的版本。同樣地,對于儲存節(jié)點100的其他元件來說,手段是可以具體指定的。

在各種的實施例中,固件以不同形式呈現。例如,在一些實施例中,固件映射文件可以是更新的固件漸進式的復制,此更新固件是直接寫入元件來達到更新。在其他實施例中,根據數據壓縮算法,可以儲存固件映射文件,藉由單一或多個儲存節(jié)點100及主控裝置160,需要一些固件的預先的程序。

在操作中,主控裝置160可以通過網絡150發(fā)送固件映射文件至管理控制器130。在一些實施例中,管理控制器130藉由直接應用固件更新,可以管理儲存節(jié)點100的固件更新。或者,管理控制器130可以引導串行連接小型計算機系統(tǒng)接口擴張器120或儲存控制器110執(zhí)行更新。

圖2A與圖2B為圖1的簡化版本,用來說明存儲器裝置142的固件更新程序,而其中在儲存節(jié)點100中,存儲器裝置142與串行連接小型計算機系統(tǒng)接口擴張器120連結。在操作中,主控裝置160發(fā)送一查詢指令至主控裝置控制器130,而該主控裝置控制器130需要一個與串行連接小型計算機系統(tǒng)接口擴張器120連接的當前固件版本的識別。例如,儲存于存儲器裝置142的致動區(qū)的版本可以回報至主控裝置控制器130。主控裝置控制器130接收查詢的結果并采集目前正在存儲器裝置142上運作的固件版本信息。這可以包括主控裝置控制器130通過串行連接小型計算機系統(tǒng)接口擴張器120,直接存取存儲器裝置142,或者,指示串行連接小型計算機系統(tǒng)接口擴張器去采集這些信息并將它傳送回管理控制器130。然后,主控裝置130藉由網絡150,將存儲器裝置142的固件信息傳送到主控裝置160。

當接收到存儲器裝置142的當前固件版本信息,主控裝置160判斷串行連接小型計算機系統(tǒng)接口擴張器120是否有最新的固件。例如,主控裝置160可以存取遠端數據庫(例如,存儲器裝置供應者的網站或者是數據中心的中央固件數據庫),來獲得最新固件版本的信息,并且將該信息與存儲器裝置的固件信息做比較,來判斷是否需要更新。假如需要更新,主控裝置可以取回最新版本的固件給串行連接小型計算機系統(tǒng)接口擴張器120。

當前的公開考慮到,判斷是否更新一特殊元件的固件可能很復雜且需要考慮一些變數。例如,因為各種不同的原因,可能不需要將固件更新至最新 版本。在一些情況下,最新版本的固件可能與儲存節(jié)點100中的其他元件不相容。在其他情況下,直到經過完全的測試后,才會更新固件。因此,在一些實施例中,判斷是否更新固件,可能需要確認單一或多個額外的數據庫,來證明一特殊固件是否核準安裝。因此,有些例子可能是有可利用的更新固件,但卻沒有安裝。

在需要更新的情形下,主控裝置160可以取回并提供一固件映射文件給更新程序。此固件映射文件是一個包含固件內容及結構的映射文件。如同上述所說,固件映射文件可以是片段的固件復制,因此,完整地復制固件儲存于記體裝置142的結構。然而,如上述所說,可以以壓縮格式或其他格式來提供固件映射文件,其中該壓縮格式或其他格式需要一些固件映射文件的預先處理。

不論固件映射文件的格式為何,主控裝置160可以藉由網絡150,發(fā)送更新的固件映射文件至主控裝置控制器130。固件映射文件可以通過一格式發(fā)送至管理控制器130,而其中該格式允許整個固件無誤地傳輸。再者,固件映射文件可以以單一或多個部分提出。然后,管理控制器130接收來自主控裝置160的更新固件,并且轉送該映射文件到串行連接小型計算機系統(tǒng)接口擴張器120。該串行連接小型計算機系統(tǒng)接口擴張器120可以儲存該映射文件于與串行連接小型計算機系統(tǒng)接口擴張器120相連的存儲器裝置142,用以執(zhí)行更新程序。

串行連接小型計算機系統(tǒng)接口擴張器的固件更新程序可以用各種不同方法來實現。該方法的一個例子繪示于圖2A與圖2B。如圖2A所繪示,串行連接小型計算機系統(tǒng)接口擴張器可以包含存儲器裝置142,用以儲存該串行連接小型計算機系統(tǒng)接口擴張器的固件。例如,串行連接小型計算機系統(tǒng)接口擴張器可以包含一閃存或其他永久儲存裝置,用以儲存固件。如圖2A所繪示,存儲器裝置142可以包含至少一致動區(qū)及一非致動區(qū)。該非致動區(qū)(例如,安裝更新固件的區(qū)塊)可以是空白的或是已經安裝固件在內。然后,該更新固件安裝于該非致動區(qū)并且啟動,得以讓串行連接小型計算機系統(tǒng)接口擴張器依靠該非致動區(qū)(現在為致動區(qū))讓固件運作。該示范的過程在圖2A與圖2B有詳細的描述。

在圖2A與圖2B的示范過程中,存儲器裝置具有一致動區(qū)(ACT),該致動區(qū)儲存了使用中的固件(FW.V1),且具有非致動區(qū)(INACT),而該非致動區(qū) 為空白或包含一些較舊的固件版本(見圖2B 201)。然后,該主控裝置130提供固件映射文件給串行連接小型計算機系統(tǒng)接口擴張器120,而該串行連接小型計算機系統(tǒng)接口擴張器120判斷是否為串行連接小型計算機系統(tǒng)接口擴張器120的更新固件映射文件,或是儲存節(jié)點上的儲存裝置140的更新固件映射文件。假如串行連接小型計算機系統(tǒng)接口擴張器120判斷是串行連接小型計算機系統(tǒng)接口擴張器120的更新固件,該串行連接小型計算機系統(tǒng)接口擴張器會將更新固件(例如,FW.V2)儲存于存儲器裝置142的非致動區(qū)塊(見圖圖2B 202)。因此,該非致動區(qū)現在包含從管理控制器130獲得的固件(FW.V2)。之后,該非致動區(qū)與致動區(qū)可以互相交換,(見圖2B 203)讓擁有最新固件的非致動區(qū)變成致動區(qū),擁有舊固件的致動區(qū)變成非致動區(qū)。然后,藉由存取目前的致動區(qū),使用最新固件(FW.V2),讓該串行連接小型計算機系統(tǒng)接口擴張器120可以運作。

致動區(qū)與非致動區(qū)的設定可以用不同方式來實施。在一些實施例中,存儲器裝置142的致動區(qū)以及非致動區(qū)可以通過一組致動標志或致動值來設定。例如,致動區(qū)可以與致動值1結合,非致動區(qū)可以與致動值0結合。為了使儲存裝置142交換固件(在寫入存儲器裝置142后),可以藉由使用串行連接小型計算機系統(tǒng)接口擴張器來交換該些區(qū)塊的致動標志或致動值,讓該致動標志或致動值可以改變。例如,串行連接小型計算機系統(tǒng)接口擴張器可以設定非致動區(qū)的致動值為1,且設定致動區(qū)的致動值為0,用來交換這兩個區(qū)塊并且使更新固件映射文件(FW.V)有效,如圖2B 202與203說明。一旦致動區(qū)與非致動區(qū)的致動標志或致動值相互交換,串行連接小型計算機系統(tǒng)接口擴張器便可以重新啟動,而且非致動區(qū)變成致動區(qū),致動區(qū)變成非致動區(qū)。

圖3為一方塊圖,用來說明傳輸固件映射文件至串行連接小型計算機系統(tǒng)接口擴張器的過程。該過程可以用來提供固件映射文件給儲存裝置、串行連接小型計算機系統(tǒng)接口擴張器或儲存節(jié)點上的其他元件。在步驟300中,開始傳送固件映射文件至串行連接小型計算機系統(tǒng)接口擴張器。在步驟310中,管理控制器判斷串行連接小型計算機系統(tǒng)接口擴張器是否可以運作。也就是說,判斷串行連接小型計算機系統(tǒng)接口擴張器是否正常運作且是否準備好接收一更新固件映射文件。假如串行連接小型計算機系統(tǒng)接口擴張器無法運作或是失效,在步驟380中,失敗的結果會記錄起來且管理控制器會傳送 該失敗的結果給系統(tǒng)管理服務器(例如,主控裝置)。特別的是,該失敗的結果可以通過管理控制器指出串行連接小型計算機系統(tǒng)接口擴張器沒有正常運作或無法支持儲存節(jié)點的遠端管理。

在步驟310中,當判斷該串行連接小型計算機系統(tǒng)接口擴張器正常運作且準備好接收固件映射文件時,管理控制器可以開始傳送固件映射文件至串行連接小型計算機系統(tǒng)接口擴張器。例如,在步驟320中,管理控制器可以傳送至少一第一部分的固件映射文件至串行連接小型計算機系統(tǒng)接口擴張器。例如,第一部分的固件可以是串行連接小型計算機系統(tǒng)接口擴張器的固件映射文件或是儲存節(jié)點上特殊的儲存裝置的固件映射文件。在管理控制器、系統(tǒng)管理服務器或其他地方,該固件映射文件可以劃分成幾個部分,來加快傳輸至串行連接小型計算機系統(tǒng)接口擴張器。

步驟320中發(fā)送第一部分的固件映射文件,步驟330中,管理控制器可以判斷串行連接小型計算機系統(tǒng)接口擴張器對于第一部分的固件映射文件的接收的響應。例如,該串行連接小型計算機系統(tǒng)接口擴張器可以判斷是否該第一部分的固件映射文件的接收是全面且無誤的。假如步驟330中,串行連接小型計算機系統(tǒng)接口擴張器的響應是傳送至串行連接小型計算機系統(tǒng)接口擴張器的固件映射文件有錯誤或是沒有適當地由串行連接小型計算機系統(tǒng)接口擴張器來接收,在步驟380中,該管理控制器可以記錄失敗的結果。在一些實施例中,失敗的結果可以記錄于管理控制器的存儲器當中。在其他實施例中,該失敗的結果可以記錄于串行連接小型計算機系統(tǒng)接口擴張器或其他元件中。在步驟360中,該結果可以傳送至該系統(tǒng)管理服務器(例如,主控裝置)。

然而,當判斷固件映射文件已經適當且毫無錯誤或失真地傳送至串行連接小型計算機系統(tǒng)接口擴張器,在步驟340中,管理控制器判斷是否有剩余固件映射文件的部分需要傳送至串行連接小型計算機系統(tǒng)接口擴張器。假如在步驟340中,有其他部分需要傳送至串行連接小型計算機系統(tǒng)接口擴張器,在步驟370中,該管理控制器就可以傳送下一個或剩余的固件映射文件至串行連接小型計算機系統(tǒng)接口擴張器。管理控制器可以重復步驟330,340以及370,直到所有的固件映射文件都成功地傳送至串行連接小型計算機系統(tǒng)接口擴張器,或者是直到有錯誤的消息出現。在后面的情況中,步驟380可以記錄錯誤的消息并且于步驟360中,將錯誤的消息傳送至系統(tǒng)管理服務器, 如上述所描述的。

一旦在步驟340中判斷所有的固件映射文件都已經傳送至串行連接小型計算機系統(tǒng)接口擴張器,管理控制器可以在步驟350中記錄成功的結果。在步驟360中,該成功的消息傳送至系統(tǒng)管理服務器。然后,管理控制器可以繼續(xù)之前的程序,包含重復圖3的方法。另外,在串行連接小型計算機系統(tǒng)接口擴張器或儲存節(jié)點中的儲存裝置中,串行連接小型計算機系統(tǒng)接口擴張器可以開始固件的更新。

圖4中有一方塊圖,用來說明一示范程序,該示范程序是通過一管理控制器,來更新串行連接小型計算機系統(tǒng)接口擴張器的固件映射文件。在步驟400中,程序初始化來執(zhí)行串行連接小型計算機系統(tǒng)接口擴張器的固件更新。這可以包含配置管理控制器,用以串行連接小型計算機系統(tǒng)接口擴張器的固件更新,其中該更新方式是將串行連接小型計算機系統(tǒng)接口擴張器設定在一更新模式。在一些實施例中,這可能需要將該串行連接小型計算機系統(tǒng)接口擴張器置于離線狀態(tài)或是將該串行連接小型計算機系統(tǒng)接口擴張器從儲存節(jié)點裝置移除。然而,不同的實施例并不限定于此,在此所述的步驟與程序可以與固件更新程序一起利用,其中該固件更新程序可以讓串行連接小型計算機系統(tǒng)接口擴張器進行線上的維護。在步驟400中一旦固件更新初始化,該程序便可以在步驟410中繼續(xù)進行。

在步驟410當中,串行連接小型計算機系統(tǒng)接口擴張器的固件更新可以寫入該串行連接小型計算機系統(tǒng)接口擴張器。例如,如圖2A與圖2B所描述的存儲器裝置,串行連接小型計算機系統(tǒng)接口擴張器也可以包含致動區(qū)與一非致動區(qū),用以儲存固件。如上述所說,該致動區(qū)可以包含正在運作中的固件版(例如,圖中的FW.V1)。而該非致動區(qū)可能是空白的,如同201所說明的,或是可能有之前安裝的固件版本。再者,也如同上述圖2B所描述的,該致動區(qū)可以與第一致動值連結,其中該致動值表示該致動區(qū)保留串行連接小型計算機系統(tǒng)接口擴張器所使用的固件(例如"1"),而該非致動區(qū)可以與第二致動值連結,其中該非致動值表示該非致動區(qū)沒有保留串行連接小型計算機系統(tǒng)接口擴張器所使用的固件(例如"0")。在步驟410中,來自該管理控制器的固件映射文件(FW.V2)可以寫入非致動區(qū)。在一些實施例中,可以藉由管理控制器直接將固件寫入該非致動區(qū)。在其他實施例中,管理控制器可以將固件映射文件傳輸給串行連接小型計算機系統(tǒng)接口擴張器,并且由串 行連接小型計算機系統(tǒng)接口擴張器將固件寫入該非致動區(qū)。然而,固件的寫入也可以通過其他元件來完成。

在步驟410中,將固件映射文件寫入非致動區(qū)后,在步驟420中,串行連接小型計算機系統(tǒng)接口擴張器判斷寫入非致動區(qū)的固件映射文件是否是有效的。例如,串行連接小型計算機系統(tǒng)接口擴張器可以分析非致動區(qū)的固件,用以判斷該固件映射文件的寫入是否為完整且無錯誤的。

假如在步驟420中,串行連接小型計算機系統(tǒng)接口擴張器判斷固件已經適當地寫入非致動區(qū),則在非致動固件區(qū)塊設定一有效標志或一有效值,其中該有效標志或該有效值指示出寫入非致動區(qū)的固件是否為有效并且是可以使用的。例如,如同步驟430所指出的,在固件封裝標頭中可以設定一有效值。或是串行連接小型計算機系統(tǒng)接口擴張器可以讓該有效值或該有效標志設定于一工作臺或其他地方的數據庫。在一些實施例中,在設定或改變一有效標志之前,可以通過分析固件的完善性,來確認該映射是有效且可以使用的。例如,藉由循環(huán)冗余校驗(cyclic redundancy check,CRC)或校驗和(Checksum)來確認固件的完善性。此外,該有效值或有效標志可以回傳至該管理控制器或甚至監(jiān)控固件更新程序。

一旦在步驟430中設定有效值或有效標志,該致動的固件可以在步驟440中開始設定。首先,在步驟440中,該致動標志或致動值可以在非致動區(qū)與致動區(qū)之間相互交換。在一些實施中,步驟440的程序可以包含,在相互交換之前,判定該有效的固件包括一有效值或標志,用來確認該串行連接小型計算機系統(tǒng)接口擴張器與有效固件開始運作。這可以讓一啟動碼使用,來決定在哪里啟動該映射文件。在步驟440中,無論是否有確認有效值或有效標志,步驟440也包含設定致動區(qū)以及非致動區(qū)兩者的致動標志與致動值,非致動區(qū)當中儲存有最近寫入的固件,此一固件被標示為暫時保留給串行連接小型計算機系統(tǒng)接口擴張器所使用的固件,致動區(qū)標示為不保留存儲器裝置所使用的固件。例如,串行連接小型計算機系統(tǒng)接口擴張器可以設定非致動區(qū)的致動值為1,且設定致動區(qū)的致動值為0,用以交換這兩個區(qū)域。因此,非致動區(qū)內的固件變成致動的固件,而致動區(qū)內的固件變成非致動的固件,如同上述圖2B。

在步驟440中,一旦致動區(qū)與非致動區(qū)的標志相互交換,串行連接小型計算機系統(tǒng)接口擴張器便可以在步驟450中重新啟動。藉由重新啟動串行連 接小型計算機系統(tǒng)接口擴張器,該非致動區(qū)變成該致動區(qū),而該致動區(qū)變成該非致動區(qū)。該新致動區(qū)包含新寫入的固件(例如,FW.V2),該新的非致動區(qū)包含先前的運作的舊固件(FW.V1)。在步驟460中,一串行連接小型計算機系統(tǒng)接口擴張器初始化程序開始,通過新寫入的固件,使該串行連接小型計算機系統(tǒng)接口擴張器運作。

如上述步驟420所述,寫入非致動區(qū)的固件可能是無效的。也就是說,該非致動區(qū)的固件可能是不完整的或是帶有一些錯誤。當在步驟420中檢測到該固件是無效的,在步驟470中,位于非致動區(qū)的有效標志或有效值便會指示出無效固件。例如寫入非致動區(qū)的固件可以與有效值0聯系在一起,因此表示該無效的固件不該使用。在步驟480中,錯誤的消息會回傳至管理控制器或更遠處的元件。然后,先前的程序可以繼續(xù),包含重復圖4的方法或是其他在此描述的程序。

圖5為一方塊圖,用來說明儲存裝置的固件更新的示范程序,其中該儲存裝置是通過管理控制器,與串行連接小型計算機系統(tǒng)接口擴張器相連結。例如,圖5的示范程序可以用來更新圖1中儲存節(jié)點的儲存裝置。

在步驟500中,儲存裝置的更新工作階段開始。在步驟500中,管理控制器讓儲存裝置的更新工作階段開始。這個步驟可以包含如圖1所描述的,系統(tǒng)管理服務器傳送一查詢消息至該管理控制器,其中該管理控制器需要正在儲存節(jié)點的儲存裝置上運作的固件版本。主控裝置接收查詢的結果并且采集與固件版本相關的信息,其中該固件版本正在儲存裝置上運作。之后,管理控制器可以獲得該儲存裝置所需的固件并且轉送該固件至串行連接小型計算機系統(tǒng)接口擴張器。如同上述,通過網絡,該固件可以由系統(tǒng)管理服務器或其他裝置來利用。

一旦更新工作階段在步驟500中初始化,在步驟510當中,串行連接小型計算機系統(tǒng)接口擴張器判斷更新的儲存裝置固件映射文件是否是有效的。類似于圖4的程序,這可以包含有效標志或有效值的設定,其中該有效標志或有效值用以指示該固件是有效的。假如在步驟510中,該固件映射文件是無效的,該程序繼續(xù)進行步驟570。在步驟570中,錯誤消息會傳送至管理控制器,其中該管理控制器是有關于無效固件映射文件的記錄與后續(xù)的處理。假如在步驟510中,該固件映射文件是有效的,圖5的程序將繼續(xù)進行步驟520。

在步驟520當中,串行連接小型計算機系統(tǒng)接口擴張器可以進一步判斷該固件是否與已經儲存于儲存裝置的固件有所不同。假如在步驟520中,固件并無不同,該程序再一次繼續(xù)進行步驟570。在步驟570中,錯誤消息可以傳送至管理控制器用來記錄或是進行更進一步的處理,其中該錯誤消息指示出該固件映射文件已經安裝。假如在步驟520中,該固件映射文件是不同的,圖5的程序會繼續(xù)進行步驟530。在步驟530中,該儲存裝置的固件更新開始執(zhí)行。

一旦儲存裝置的固件在步驟530中更新,在步驟540中,串行連接小型計算機系統(tǒng)接口擴張器會判斷在固件更新過程中是否有錯誤發(fā)生。例如,在固件于單一或多個儲存裝置上更新前或更新后,可能檢測到該固件有失真或是訛誤的情況。在另一例子中,該儲存裝置的固件可能不是一漸進式的固件重制。在該更新的過程中,可能檢測到其他不同的錯誤,包含:

映射文件種類的錯誤,尺寸的錯誤,完整性(循環(huán)冗余校驗或檢驗和)的錯誤,映射文件超時錯誤,或更新映射文件超時錯誤。

假如在步驟540中檢測到錯誤,該程序會再一次繼續(xù)進行步驟570。在步驟570中,錯誤消息可以傳送至管理控制器,其中該管理控制器是有關于該錯誤消息的記錄以及后續(xù)的處理。假如在更新過程中沒有錯誤發(fā)生,則該程序會繼續(xù)進行步驟550。

在步驟550中,儲存裝置可以重新設定,來使得固件映射文件有效。在一些實施例中,該儲存裝置使用存儲器裝置來儲存串行連接小型計算機系統(tǒng)接口擴張器的固件,如圖2A與圖2B所述。例如,步驟550也可以包含,藉由串行連接小型計算機系統(tǒng)接口擴張器來設定致動標志或致動值,用以指示預期的固件,其中該致動標志或致動值與儲存裝置聯系。再者,步驟550可以包含藉由串行連接小型計算機系統(tǒng)接口擴張器來使更新的儲存裝置重新啟動或重新設定,令儲存裝置可以識別重新寫入的固件。之后,在步驟560中,儲存裝置的初始化程序開始,讓該儲存裝置通過重新寫入的固件來運作。

圖6為一示范性系統(tǒng)結構600的方塊圖,其中該范性系統(tǒng)結構600執(zhí)行圖1-5的特征及程序。該結構600可以在任何電子裝置上執(zhí)行,包含但不限于:個人計算機,服務器,智能手機,多媒體播放器,電子平板,游戲主機,電子郵件裝置等,而其中該電子裝置執(zhí)行來自編輯指令的軟件應用程序。在一些實施例中,結構600包含:單一或多個處理器602、單一或多個輸入裝 置604、單一或多個顯示裝置606、單一或多個網絡接口608及單一或多個計算機可讀取的介質610。每一個元件可以藉由總線612來連結。

顯示裝置606可以是任何已知的顯示技術,包含但不限于使用液晶顯示(LCD)或發(fā)光二極體(LED)技術的顯示裝置。處理器602可以用任何已知處理器技術,包含但不限于圖文處理器以及多核心處理器。輸入裝置604可以是任何已知的輸入裝置技術,包含但不限于;一鍵盤(包含虛擬鍵盤),鼠標,軌跡球及觸控平板或顯示器??偩€612可以是任何已知內部或外部的總線技術,包含但不限于工業(yè)標準結構(ISA),擴展工業(yè)標準結構(EISA),外部聯結標準(PCI),快捷外設互聯標準(PCI Express),新總線(NuBus),通用串行總線(USB),串行高級技術附件(Serial ATA)或傳輸壓縮影像文件的標準(FireWire)。

計算機可讀取介質610可以是任何介質,其中介質參與提供指令給處理器602來執(zhí)行,包含但不限于永久性儲存介質(例如,光盤,磁盤,移動存儲器等)或非永久性儲存器(例如,同步動態(tài)隨機存取存儲器,只讀存儲器等)。計算機可讀取介質(例如,儲存裝置,介質和存儲器)可以包含,例如,包含比特流的有線或無線信號及其類似物。然而,當提到非暫時性的計算機可讀取儲存裝置,明確地排除介質例如,能量,載波信號,電磁波及信號本身。

計算機可讀取介質610可以包含不同的指令614用來執(zhí)行操作程序(例如,MacLinux)。操作程序可以是多用戶,多重處理,多工操作,多執(zhí)行與即時性等。操作程序執(zhí)行基本操作,包含但不限于識別來自輸入裝置604的輸入;傳送輸出至顯示裝置606;保存文件的路徑及目錄于計算機可讀取介質610;控制外部裝置(例如,磁盤機,打印機等),其中外部裝置可以直接控制或通過一輸入/輸出控制器(I/O controller);以及管理總線612的流量。網絡溝通指令616可以建立且維護網絡的連結(例如,執(zhí)行通信協(xié)定的軟件,諸如網絡通信協(xié)議(TCP/IP),超文件傳送協(xié)定(HTTP),乙太網絡(Ethernet)等)。

一圖文處理系統(tǒng)618包含指令,其中指令提供圖像以及映射文件處理能力。應用程序620可以使用或執(zhí)行圖1-5中所描述的程序。程序也可以在操作程序614來執(zhí)行。

系統(tǒng)控制器622包含至少一儲存控制器,一管理控制器,或一串行連接小型計算機系統(tǒng)接口擴張器。該管理控制器可以獨立操作處理器或操作程序 614。在一些實施例中,在處理器602啟動前與操作系統(tǒng)614載入處理器602前,該管理控制器是可以啟動且運作的。例如,通過一專用的網絡接口或他輸入裝置,管理控制器可以供給運算裝置的pre-OS管理。一管理控制器可以是一基板管理控制器,其中該基板管理控制器監(jiān)控儲存節(jié)點固件以及執(zhí)行低階的儲存節(jié)點管理,或者是藉由一智能平臺管理接口(IPMI),切換器(KVM),區(qū)域網絡串行,或其他接口,來提供遠端管理能力。一管理控制器可以在上述圖1-5的程序中執(zhí)行。

串行連接小型計算機系統(tǒng)接口擴張器為一控制器,該控制器藉由內部集成電路/系統(tǒng)管理總線(12C/SMbus)或SGPIO控制接口,來控制儲存節(jié)點的固件,以及提供遠端管理能力。為了支持遠端管理能力,該串行連接小型計算機系統(tǒng)接口擴張器配置用來與該管理控制器溝通。在這個例子中,該串行連接小型計算機系統(tǒng)接口擴張器可以取代串行高級技術附件主機總線配置器。

這些所描述的特征可以在單一或多個計算機程序中執(zhí)行,其中該計算機程序在可程序化的系統(tǒng)中是可以執(zhí)行的。這樣的可程序化的系統(tǒng)可以包含至少一可程序化處理器,其中該可程序化處理器由數據儲存系統(tǒng)、至少一輸入裝置以及至少一輸出裝置接收數據與指令,以及將數據與指令發(fā)送至數據儲存系統(tǒng)、至少一輸入裝置以及至少一輸出裝置。一計算機程序是一組指令,該指令可以直接或間接地在一計算機上使用,用來執(zhí)行某一活動或產生某一結果。一計算機程序可以用任何形式的程序語言(例如,Objective-C,Java)來編寫,包含編輯與解釋語言,以及它可以用任何形式配置,包含像一單機程序或一模塊,元件,子程序或者是其他適用在一運算環(huán)境的單元。

適合用來執(zhí)行一指令程序的處理器包含,例如,一般用途與特殊用途的微型處理器,以及單一處理器或多重處理器或多核心,各種計算機,一般而言,一處理器接收指令與數據,其中該指令與數據來自一只讀存儲器,一隨機存取存儲器或是來自兩者。計算機的必要元件是一處理器及單一或多個存儲器,其中該處理器用來執(zhí)行指令,而該存儲器是用來儲存指令與數據。一般而言,計算機也包含:單一或多個大量儲存裝置,用來儲存數據文件。這樣的裝置包含:磁盤,例如內部硬盤與可移動磁盤;以及磁光盤。適合用來體現計算機程序與數據的儲存裝置包含所有形式的非永久性存儲器,包含半導體存儲器裝置,例如可擦除程序化只讀存儲器(EPROM),電子可抹除可程序化只讀存儲器(EEPROM),以及閃存;磁盤,例如內部硬盤與可移動磁盤;磁 光盤;以及光盤只讀存儲器(CD-ROM)與數字多功能影音光盤只讀存儲器(DVD-ROM)。處理器與存儲器可以藉由特定功能集成電路(ASICs)補充或是在特定功能集成電路(ASICs)上合并。

為了與使用者互動,這些功能可以在一有顯示裝置的計算機上執(zhí)行,例如,陰極射線管(CRT)或液晶顯示器(LCD),用來顯示信息給使用者與鍵盤,以及指向裝置,例如,鼠標或軌跡球,讓使用者可以提供輸入進計算機。

這些功能可以在一計算機系統(tǒng)上執(zhí)行,其中該計算機系統(tǒng)包含后端元件,例如,數據服務器,或者是包含中介平臺元件,例如,應用服務器或網際網絡服務器,或是包含,前端元件,例如,配置圖像使用者接口的用戶端計算機或網際網絡瀏覽器,或是任何組合。該系統(tǒng)的元件可以藉由任何形式的數字數據傳輸來連結,例如,通信網絡。通信網絡的例子包含,例如,區(qū)域網絡,廣域網絡,以及形成網際網絡的計算機與網絡。

計算機系統(tǒng)包含用戶與服務器,用戶與服務器通常是互相遠距離分開,并且通過一網絡來互動。用戶與服務器的關系的產生,是通過計算機程序在各自的計算機上運作所產生的效能,以及互相的主從式架構關系。

這些已公開的實施例的單一或多個功能或步驟可以通過應用程序接口(API)來執(zhí)行。應用程序接口(API)可以定義單一或多個參數,其中這些參數在呼叫程序與其他軟件碼之間傳遞(例如,操作程序,庫存程序,系統(tǒng)函數),其中軟件碼提供服務或數據,或者是執(zhí)行一運作或運算。

應用程序接口(API)在程序碼上,可以以單一或多個呼叫來執(zhí)行,其中該應用程序接口(API)發(fā)送或接收單一或多個參數,其中發(fā)送或接收是通過參數清單或其他結構,而其中該結構建立在一應用程序接口(API)說明文件所定義的呼叫協(xié)議上。參數可以是常數、密鑰、數據結構、物件、物件類、變數、數據類型、指標、陣列、目錄或是其他呼叫。應用程序接口(API)的呼叫與參數可以用任何可程序化語言來執(zhí)行。可程序化語言可以定義字匯與呼叫協(xié)議,其中編程人員用來存取支持應用程序接口(API)的函數。

在一些實施例中,應用程序接口(API)將執(zhí)行該應用程序的裝置能力回報給應用程序,例如,輸入能力,輸出能力,處理能力,功率,通信能力等。

一些實施例已經描述。不過,不同改良的出現是可以理解的。例如,在描述的流程圖當中,其他步驟可能出現,或是可能刪除,以及其他元件可能從已描述的系統(tǒng)中加入或移除。因此,其他實施例在以下的權利要求書內。

雖然各種不同的例子與其他信息已經用來解釋權利要求,但是當本領域技術人員可以用這些例子去獲得廣泛的實施,就不能以該些例子的特殊特征或協(xié)議來對權利要求加以限制。再者,雖然一些主題是用特定例子的結構特征或方法步驟來描述,但權利要求書內的這些主題不需要被限定在這些特征或步驟中。例如,除了這些特定之外,該功能性可以不同地來分配或在元件上執(zhí)行。更確切地說,這些已經公開在例子中的系統(tǒng)元件及方法落在權利要求書之內。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
安达市| 昌都县| 南汇区| 灵武市| 安陆市| 辉南县| 沙田区| 天台县| 扎囊县| 五华县| 景德镇市| 宝坻区| 视频| 宜州市| 故城县| 东乌珠穆沁旗| 开平市| 视频| 湖南省| 棋牌| 海口市| 越西县| 密云县| 永平县| 刚察县| 文成县| 宁津县| 西峡县| 德清县| 伊宁市| 丁青县| 卢湾区| 高雄县| 浠水县| 出国| 勐海县| 伊吾县| 康马县| 桂阳县| 龙泉市| 永登县|