TW201706836A - 更新方法、伺服器系統以及非暫態電腦可讀取媒體 - Google Patents

更新方法、伺服器系統以及非暫態電腦可讀取媒體 Download PDF

Info

Publication number
TW201706836A
TW201706836A TW104133891A TW104133891A TW201706836A TW 201706836 A TW201706836 A TW 201706836A TW 104133891 A TW104133891 A TW 104133891A TW 104133891 A TW104133891 A TW 104133891A TW 201706836 A TW201706836 A TW 201706836A
Authority
TW
Taiwan
Prior art keywords
firmware
storage device
controller
block
image file
Prior art date
Application number
TW104133891A
Other languages
English (en)
Other versions
TWI562070B (en
Inventor
施青志
邱揚理
Original Assignee
廣達電腦股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 廣達電腦股份有限公司 filed Critical 廣達電腦股份有限公司
Application granted granted Critical
Publication of TWI562070B publication Critical patent/TWI562070B/zh
Publication of TW201706836A publication Critical patent/TW201706836A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

一管理控制器可以在一伺服器系統上動態地管理儲存節點的韌體更新。例如,一主控裝置可以決定儲存裝置或記憶體裝置的最新韌體版本,其中儲存裝置以及記憶體裝置與儲存裝置控制器相連結,例如,一串列附加小型計算機介面擴張器。主控裝置可以傳送更新的韌體映象檔至一管理控制器。該韌體映象檔是漸進式的更新韌體的複製。該管理控制器可以傳送更新的韌體映像至儲存裝置控制器。該儲存裝置控制器可以判斷該韌體映像是屬於儲存裝置或是記憶體裝置,其中儲存裝置以及記憶體裝置與儲存裝置控制器相連結。依據判斷,可以在特定的裝置上執行韌體映像更新。成功以及失敗的紀錄會傳回至管理控制器。

Description

更新方法、伺服器系統以及非暫態電腦 可讀取媒體
本發明是有關於一種伺服器裝置內儲存節點韌體的管理。
儲存節點,例如集束磁碟(JBOD),其通常係由數個儲存裝置與一個控制器所組成,例如 串列附加小型計算機介面(SAS)擴張器或其他元件。儲存節點通常也需要各種的韌體來操縱各種的元件,為了改善各種元件的功能,其每個元件可能被新的韌體更新。韌體的更新可以在儲存節點執行或是透過連結到儲存節點的更新伺服器來執行(例如:一對一更新)。在一對一更新的情況下,更新伺服器可包含韌體更新工具,例如擴張韌體工具或磁碟(HDD)韌體工具。為了在儲存節點更新韌體,儲存節點會與更新伺服器做連結(例如:透過串列附加小型計算機介面線路),授權程序將會被執行,更新即開始。
然而,當數據儲存的需求增加,在單一儲存節 點中的儲存裝置數量也可能增加至數千個。再者,儲存節點需求的數量也可能增加。當儲存節點的數量增加,在每一儲存節點中的儲存裝置的數量也會增加,其中該儲存裝置需要定期的韌體更新,而透過傳統的一對一更新程序,來維持儲存節點中的韌體的最新狀態也會變得困難。
可以透過附件的專利申請範圍中特別提到的手段以及組合,來了解且達成本發明的額外特徵與優勢,或者可以藉由發明原理的實施來進一步知悉。
現今的技術是藉由不同的裝置來執行管理韌體的系統與方法,例如儲存節點。在操作中,一個與主控裝置溝通的管理控制器,可以針對一伺服器系統內的儲存節點,來動態地管理韌體更新。例如,主控裝置可以判斷儲存裝置、儲存裝置控制器(例如:一串列附加小型計算機介面擴張器)或儲存節點內的其他原件的最新韌體版本。然後,主控裝置傳送更新的韌體映象檔至管理控制器。其後,管理控制器傳送更新的韌體映象檔至與儲存裝置或記憶體裝置連結的儲存裝置控制器,來達成更新。然後,儲存裝置控制器可以判斷更新的韌體映象檔是針對儲存裝置,或者是儲存裝置控制器本身。藉由判斷哪個裝置與韌體更新連結,則該指定裝置的韌體更新便可以執行。在一些狀態下,指示韌體更新程序成功或失敗的記錄檔會提供給管理控制器。然後,此管理控制器可以傳輸此檔案至主控裝置或其他元件。
更多實施例的細節會伴隨著圖示與接下來的描述闡明。其他的特徵,面向,以及潛在的優勢將會透過描述,圖式與申請專利範圍變得明瞭。
100‧‧‧儲存節點
110‧‧‧儲存控制器
120‧‧‧串列附加小型計算機介面擴張器
130‧‧‧管理控制器
140‧‧‧儲存裝置
142‧‧‧記憶體
150‧‧‧網路
160‧‧‧主控裝置
201、202、203‧‧‧記憶體
600‧‧‧系統結構
602‧‧‧處理器
604‧‧‧輸入裝置
606‧‧‧顯示裝置
608‧‧‧網路介面
610‧‧‧電腦可讀取媒體
612‧‧‧匯流排
614‧‧‧作業系統
616‧‧‧網路溝通
618‧‧‧圖形處理系統
620‧‧‧應用程式
622‧‧‧系統控制器
第1圖繪示在儲存點上執行韌體更新的示範性系統的方塊圖。
第2A圖與第2B圖繪示執行與一串列附加小型計算機介面擴張器相連結之記憶體裝置其韌體更新的示範性系統的方塊圖。
第3圖繪示傳輸一來自管理控制器的韌體映象檔至一串列附加小型計算機介面擴張器的示範性程序的流程圖。
第4圖繪示更新與串列附加小型計算機介面擴張器連結的儲存裝置上的韌體的示範性程序之流程圖。
第5圖繪示更新在儲存裝置上的韌體的示範性程序之流程圖。
第6圖繪示執行第1~5圖的特徵與程序的一運算裝置的示範性系統之方塊圖。
不同圖式中的同樣的引證代號表示同樣的元件。
以下為本案各種不同實施例的討論,當討論特定實施例時,應當了解這僅是為了舉例說明。相關領域具有 通常知識者將知悉,在不背離本發明之精神與範圍下,可以使用其他元件與結構。
現今的技術藉由不同的裝置來執行管理韌體的系統與方法,例如儲存節點。在操作中,一個與主控裝置溝通的管理控制器,可以針對一伺服器系統內的儲存節點,來動態地管理韌體更新。以下第1圖為該程序之描述。第1圖為一例示性系統之方塊圖,用以解釋根據現今的技術,在儲存節點100上所執行之韌體更新。如同第1圖的說明,儲存節點100可包含儲存控制器110、串列附加小型計算機介面擴張器120、管理控制器130以及單一或複數個儲存裝置140。儲存節點100可以藉由網路150(例如,區域網路、廣域網路、網際網路等),與主控裝置160(例如,筆記型電腦、平板電腦、智慧型手機等)通訊連接,其中,儲存節點100透過管理控制器130與網路150通訊連接。
儲存節點100可以是一管理伺服器裝置,其中該管理伺服器裝置包括管理控制器130,是用來執行儲存節點100的頻外管理。例如,此管理控制器可以是一基板管理控制器(BMC),用來與智慧平台管理介面(IPMI)或應用程序接口(API)搭配使用。此基板管理控制器可以獨立於儲存節點100的中央處理單元之外運作,或者也可獨立於儲存節點100的作業系統之外運作。可以使用作業程式或電腦可讀取指令來裝配管理控制器130,用以從遠端執行儲存裝置140之運作(例如:在主控裝置160),如在此所述。在運作中,管理控制器130可以藉由網路150,從主控裝置160取 得儲存節點100的伺服器配置資訊。然後,管理控制器130可透過串列附加小型計算機介面擴張器120或其他元件與儲存裝置140溝通。管理控制器130可以藉由各種不同方法與串列附加小型計算機介面擴張器120溝通。例如,提供內部整合電路排流介面(I2C/SMbus)。
串列附加小型計算機介面擴張器120可以與管理控制器130溝通,用以支援儲存裝置140之遠端管理,包含儲存裝置140的韌體更新。在操作中,配置串列附加小型計算機介面擴張器120,用來接收來自管理控制器130的更新韌體映象檔,並且判斷此為儲存裝置140的韌體更新。然後,串列附加小型計算機介面擴張器120儲存韌體映象檔,並更新韌體。例如,串列附加小型計算機介面擴張器120可以儲存韌體映象檔於單一或複數個儲存裝置140,以待後續串列附加小型計算機介面擴張器120的使用來更新儲存裝置140之韌體。
雖然在此將串列附加小型計算機介面擴張器120與管理控制器130描述成分開的元件,但各種不同的實施例不限定於此。反之,目前本案考量,在一些實施例中,具有網路能力的串列附加小型計算機介面擴張器也可以當成儲存節點之管理控制器來運作。
雖然各種不同的實施例是根據串列附加小型計算機介面擴張器來描述,目前本案考量在此描述的方法,可以與其他種類的儲存裝置控制器或其他元件一起使用,包含這樣的控制器。例如,在此所述之方法也可以更新運算裝置 的韌體,其中該運算裝置使用互連架構(PCIe)橋接器/開關將NMVe固態硬碟連接到一運算節點。然而,各種實施例並未限制在串列附加小型計算機介面擴張器與互連架構(PCIe)橋接器/開關技術,各種實施例是可以與其他技術一起利用。
如第1圖所繪示,儲存節點100可以包含數個個別的儲存裝置140。例如,每一個儲存裝置140可為一硬碟(HDD),用來儲存數據資料或電腦程式指令。然而,在一些實施例當中,儲存裝置140可以配置在容錯式磁碟陣列(RAID),而該容錯式磁碟陣列分配數據,以及與平行傳輸和資料讀取相連接。在其他實施例中,集束磁碟(JBOD)的配置可以用來避免需要冗餘廉價的磁碟陣列(RAID)的功能。然而,目前的揭露考慮在此所述之方法可以與其他儲存裝置一起使用。
第1圖更繪示,儲存節點100也可以包含與串列附加小型計算機介面擴張器120溝通的儲存控制器110。例如,儲存控制器110可以是序列先進技術附件(SATA)主機匯流排配接器(HBA)。儲存控制器110也可以具有透過串列連接埠的乙太網路連結,用來與其他裝置溝通。
如同上述所說,主控裝置160,例如一伺服器管理系統(SMS),可以用來監控並遠端操控儲存節點100的運作。再者,主控裝置160可以用來判斷何時有更新的韌體,可以應用在儲存節點100上的任何儲存裝置140。例如,主控裝置160可以對管理控制器130發送一查詢指令,用以 要求有關儲存裝置140或其他儲存節點100的元件之韌體當前版本的資訊。管理控制器130依次查詢儲存節點100的元件的韌體版本資訊,例如,當前正在儲存裝置140上運作的韌體版本。然後,管理控制器130便可蒐集韌體資訊,並藉由網路150將它傳送回主控裝置160。
根據接收當前儲存裝置140的韌體版本資訊(或儲存節點100上的其他元件),主控裝置160便可以判斷任何在儲存節點100的韌體,例如,任一儲存裝置140之韌體是否需要更新。假如有任何一元件需要更新,主控裝置160便取回所需之韌體,並透過網路150,將其提供給管理控制器130。然後,管理控制器130將該韌體提供給串列附加小型計算機介面擴張器,用來安裝在對應的儲存裝置140或儲存節點100的其他元件。
目前的揭露考量到在一些例子當中,可能無法取得儲存裝置140或其他元件的韌體版本。例如,儲存裝置140可能已經破壞韌體、串列附加小型計算機介面擴張器120可能有缺陷且無法正常讀取儲存裝置140上的韌體版本,或者是管理控制器130或主控裝置160存在著無法正常讀取特定元件的韌體版本的問題。或者是,這種類型元件的韌體版本資訊可能是無效的或不正常的。為了解決主控裝置160無法判斷單一或複數個儲存裝置140的韌體版本或其他有關韌體的問題,在主控裝置160上執行一手段便可使得韌體自動更新。例如,假設儲存裝置140的當前韌體版本無法辨識,主控裝置160上的一個手段可以命令儲存裝置140的 韌體自動更新至最新可利用之版本。然而,在一些實施例中,此手段可以命令韌體更新至一特定版本,此特定版本可能是最新也可能不是最新版本。提供這樣的配置可以確保儲存裝置140或其他儲存節點100的元件更新至可信賴的版本。同樣地,對於儲存節點100之其他元件來說,手段是可以具體指定的。
在各種的實施例中,韌體以不同形式呈現。例如,在一些實施例中,韌體映象檔可以是更新的韌體漸進式的複製,此更新韌體是直接寫入元件來達到更新。在其他實施例中,根據數據壓縮演算法,可以儲存韌體映象檔,藉由單一或多個儲存節點100及主控裝置160,需要一些韌體的預先的程序。
在操作中,主控裝置160可以透過網路150發送韌體映象檔至管理控制器130。在一些實施例中,管理控制器130藉由直接應用韌體更新,可以在管理儲存節點100的韌體更新。或者,管理控制器130可以引導串列附加小型計算機介面擴張器120或儲存控制器110執行更新。
第2A圖與第2B圖為第1圖的簡化版本,用來說明記憶體裝置142的韌體更新程序,而其中在儲存節點100中,記憶體裝置142與串列附加小型計算機介面擴張器120連結。在操作中,主控裝置160發送一查詢指令至主控裝置控制器130,而該主控裝置控制器130需要一個與串列附加小型計算機介面擴張器120連接的當前韌體版本的辨識。例如,儲存於記憶體裝置142的作動區的版本可以回報至主 控裝置控制器130。主控裝置控制器130接收查詢的結果並蒐集目前正在記憶體裝置142上運作的韌體版本資訊。這可以包括主控裝置控制器130透過串列附加小型計算機介面擴張器120,直接存取記憶體裝置142,或者,指示串列附加小型計算機介面擴張器去蒐集這些資訊並將它傳送回管理控制器130。然後,主控裝置130藉由網路150,將記憶體裝置142的韌體資訊傳送到主控裝置160。
當接收到記憶體裝置142的當前韌體版本資訊,主控裝置160判斷串列附加小型計算機介面擴張器120是否有最新的韌體。例如,主控裝置160可以存取遠端資料庫(例如,記憶體裝置供應者的網站或者是資料中心的中央韌體資料庫),來獲得最新韌體版本的資訊,並且將該資訊與記憶體裝置的韌體資訊做比較,來判斷是否需要更新。假如需要更新,主控裝置可以取回最新版本的韌體給串列附加小型計算機介面擴張器120。
當前的揭露考量到,判斷是否更新一特殊元件之韌體可能很複雜且需要考量一些變數。例如,因為各種不同的原因,可能不需要將韌體更新至最新版本。在一些情況下,最新版本的韌體可能與儲存節點100中的其他元件不相容。在其他情況下,直到經過完全的測試後,才會更新韌體。因此,在一些實施例中,判斷是否更新韌體,可能需要確認單一或複數個額外的資料庫,來證明一特殊韌體是否核准安裝。因此,有些例子可能是有可利用的更新韌體,但卻沒有安裝。
在需要更新的情形下,主控裝置160可以取回並提供一韌體映象檔給更新程序。此韌體映象檔是一個包含韌體內容及結構的映象檔。如同上述所說,韌體映象檔可以是片段的韌體複製,因此,完整地複製韌體儲存於記體裝置142的結構。然而,如上述所說,可以以壓縮格式或其他格式來提供韌體映象檔,其中該壓縮格式或其他格式需要一些韌體映象檔的預先處理。
不論韌體映象檔的格式為何,主控裝置160可以藉由網路150,發送更新的韌體映象檔至主控裝置控制器130。韌體映象檔可以透過一格式發送至管理控制器130,而其中該格式允許整個韌體無誤地傳輸。再者,韌體映象檔可以以單一或複數個部分提出。然後,管理控制器130接收來自主控裝置160的更新韌體,並且轉送該映象檔到串列附加小型計算機介面擴張器120。該串列附加小型計算機介面擴張器120可以儲存該映象檔於與串列附加小型計算機介面擴張器120相連的記憶體裝置142,用以執行更新程序。
串列附加小型計算機介面擴張器的韌體更新程序可以用各種不同方法來實現。該方法的一個例子繪示於第2A圖與第2B圖。如第2A圖所繪示,串列附加小型計算機介面擴張器可以包含記憶體裝置142,用以儲存該串列附加小型計算機介面擴張器的韌體。例如,串列附加小型計算機介面擴張器可以包含一快閃記憶體或其他永久儲存裝置,用以儲存韌體。如第2A圖所繪示,記憶體裝置142可以包含至少一作動區及一非作動區。該非作動區(例如,安裝更新韌體 的區塊)可以是空白的或是已經安裝韌體在內。然後,該更新韌體安裝於該非作動區並且啟動,得以讓串列附加小型計算機介面擴張器依靠該非作動區(現在為作動區)讓韌體運作。該示範的過程在第2A圖與第2B圖有詳細的描述。
在第2A圖與第2B圖的示範過程中,記憶體裝置具有一作動區(ACT),該作動區儲存了使用中的韌體(FW.V1),且具有非作動區(INACT),而該非作動區為空白或包含一些較舊的韌體版本(見第2B圖201)。然後,該主控裝置130提供韌體映象檔給串列附加小型計算機介面擴張器120,而該串列附加小型計算機介面擴張器120判斷是否為串列附加小型計算機介面擴張器120的更新韌體映象檔,或是儲存節點上的儲存裝置140的更新韌體映象檔。假如串列附加小型計算機介面擴張器120判斷是串列附加小型計算機介面擴張器120的更新韌體,該串列附加小型計算機介面擴張器會將更新韌體(例如,FW.V2)儲存於記憶體裝置142的非作動區塊(見圖第2B圖202)。因此,該非作動區現在包含從管理控制器130獲得的韌體(FW.V2)。之後,該非作動區與作動區可以互相交換,(見第2B圖203)讓擁有最新韌體的非作動區變成作動區,擁有舊韌體的作動區變成非作動區。然後,藉由存取目前的作動區,使用最新韌體(FW.V2),讓該串列附加小型計算機介面擴張器120可以運作。
作動區與非作動區的設定可以用不同方式來實施。在一些實施例中,記憶體裝置142的作動區以及非作動 區可以透過一組作動標誌或作動值來設定。例如,作動區可以與作動值1結合,非作動區可以與作動值0結合。為了使儲存裝置142交換韌體(在寫入記憶體裝置142後),可以藉由使用串列附加小型計算機介面擴張器來交換該些區塊的作動標誌或作動值,讓該作動標誌或作動值可以改變。例如,串列附加小型計算機介面擴張器可以設定非作動區的作動值為1,且設定作動區的作動值為0,用來交換這兩個區塊並且使更新韌體映象檔(FW.V)有效,如第2B圖202與203說明。一旦作動區與非作動區的作動標誌或作動值相互交換,串列附加小型計算機介面擴張器便可以重新啟動,而且非作動區變成作動區,作動區變成非作動區。
第3圖為一方塊圖,用來說明傳輸韌體映象檔至串列附加小型計算機介面擴張器的過程。該過程可以用來提供韌體映象檔給儲存裝置、串列附加小型計算機介面擴張器或儲存節點上的其他元件。在步驟300中,開始傳送韌體映象檔至串列附加小型計算機介面擴張器。在步驟310中,管理控制器判斷串列附加小型計算機介面擴張器是否可以運作。也就是說,判斷串列附加小型計算機介面擴張器是否正常運作且是否準備好接收一更新韌體映象檔。假如串列附加小型計算機介面擴張器無法運作或是失效,在步驟380中,失敗的結果會記錄起來且管理控制器會傳送該失敗的結果給系統管理伺服器(例如,主控裝置)。特別的是,該失敗的結果可以透過管理控制器指出串列附加小型計算機介面擴張器沒有正常運作或無法支援儲存節點的遠端管理。
在步驟310中,當判斷該串列附加小型計算機介面擴張器正常運作且準備好接收韌體映象檔時,管理控制器可以開始傳送韌體映象檔至串列附加小型計算機介面擴張器。例如,在步驟320中,管理控制器可以傳送至少一第一部分的韌體映象檔至串列附加小型計算機介面擴張器。例如,第一部分的韌體可以是串列附加小型計算機介面擴張器的韌體映象檔或是儲存節點上特殊的儲存裝置的韌體映象檔。在管理控制器、系統管理伺服器或其他地方,該韌體映象檔可以劃分成幾個部分,來加快傳輸至串列附加小型計算機介面擴張器。
步驟320中發送第一部分的韌體映象檔,步驟330中,管理控制器可以判斷串列附加小型計算機介面擴張器對於第一部分的韌體映象檔的接收的回應。例如,該串列附加小型計算機介面擴張器可以判斷是否該第一部分的韌體映象檔的接收是全面且無誤的。假如步驟330中,串列附加小型計算機介面擴張器的回應是傳送至串列附加小型計算機介面擴張器的韌體映象檔有錯誤或是沒有適當地由串列附加小型計算機介面擴張器來接收,在步驟380中,該管理控制器可以記錄失敗的結果。在一些實施例中,失敗的結果可以記錄於管理控制器的記憶體當中。在其他實施例中,該失敗的結果可以記錄於串列附加小型計算機介面擴張器或其他元件中。在步驟360中,該結果可以傳送至該系統管理伺服器(例如,主控裝置)。
然而,當判斷韌體映象檔已經適當且毫無錯誤 或失真地傳送至串列附加小型計算機介面擴張器,在步驟340中,管理控制器判斷是否有剩餘韌體映象檔的部分需要傳送至串列附加小型計算機介面擴張器。假如在步驟340中,有其他部分需要傳送至串列附加小型計算機介面擴張器,在步驟370中,該管理控制器就可以傳送下一個或剩餘的韌體映象檔至串列附加小型計算機介面擴張器。管理控制器可以重複步驟330,340以及370,直到所有的韌體映象檔都成功地傳送至串列附加小型計算機介面擴張器,或者是直到有錯誤的訊息出現。在後面的情況中,步驟380可以記錄錯誤的訊息並且於步驟360中,將錯誤的訊息傳送至系統管理伺服器,如上述所描述的。
一旦在步驟340中判斷所有的韌體映象檔都已經傳送至串列附加小型計算機介面擴張器,管理控制器可以在步驟350中記錄成功的結果。在步驟360中,該成功的訊息傳送至系統管理伺服器。然後,管理控制器可以繼續之前的程序,包含重複圖式3的方法。另外,在串列附加小型計算機介面擴張器或儲存節點中的儲存裝置中,串列附加小型計算機介面擴張器可以開始韌體的更新。
第4圖中有一方塊圖,用來說明一示範程序,該示範程序是透過一管理控制器,來更新串列附加小型計算機介面擴張器的韌體映象檔。在步驟400中,程序初始化來執行串列附加小型計算機介面擴張器的韌體更新。這可以包含配置管理控制器,用以串列附加小型計算機介面擴張器的韌體更新,其中該更新方式是將串列附加小型計算機介面擴 張器設定在一更新模式。在一些實施例中,這可能需要將該串列附加小型計算機介面擴張器置於離線狀態或是將該串列附加小型計算機介面擴張器從儲存節點裝置移除。然而,不同的實施例並不限定於此,在此所述的步驟與程序可以與韌體更新程序一起利用,其中該韌體更新程序可以讓串列附加小型計算機介面擴張器進行線上的維護。在步驟400中一旦韌體更新初始化,該程序便可以在步驟410中繼續進行。
在步驟410當中,串列附加小型計算機介面擴張器的韌體更新可以寫入該串列附加小型計算機介面擴張器。例如,如第2A圖與第2B圖所描述之記憶體裝置,串列附加小型計算機介面擴張器也可以包含作一動區與一非作動區,用以儲存韌體。如上述所說,該作動區可以包含正在運作中的韌體版(例如,圖中的FW.V1)。而該非作動區可能是空白的,如同201所說明的,或是可能有之前安裝的韌體版本。再者,也如同上述第2B圖所描述的,該作動區可以與第一作動值連結,其中該作動值表示該作動區保留串列附加小型計算機介面擴張器所使用的韌體(例如"1"),而該非作動區可以與第二作動值連結,其中該非作動值表示該非作動區沒有保留串列附加小型計算機介面擴張器所使用的韌體(例如"0")。在步驟410中,來自該管理控制器的韌體映象檔(FW.V2)可以寫入非作動區。在一些實施例中,可以藉由管理控制器直接將韌體寫入該非作動區。在其他實施例中,管理控制器可以將韌體映象檔傳輸給串列附加小型計算機介面擴張器,並且由串列附加小型計算機介面擴張器將韌 體寫入該非作動區。然而,韌體的寫入也可以透過其他元件來完成。
在步驟410中,將韌體映象檔寫入非作動區後,在步驟420中,串列附加小型計算機介面擴張器判斷寫入非作動區的韌體映象檔是否是有效的。例如,串列附加小型計算機介面擴張器可以分析非作動區的韌體,用以判斷該韌體映象檔的寫入是否為完整且無錯誤的。
假如在步驟420中,串列附加小型計算機介面擴張器判斷韌體已經適當地寫入非作動區,則在非作動韌體區塊設定一有效標誌或一有效值,其中該有效標誌或該有效值指示出寫入非作動區之韌體是否為有效並且是可以使用的。例如,如同步驟430所指出的,在韌體封裝標頭中可以設定一有效值。或是串列附加小型計算機介面擴張器可以讓該有效值或該有效標誌設定於一工作檯或其他地方的數據庫。在一些實施例中,在設定或改變一有效標誌之前,可以透過分析韌體的完善性,來確認該映象是有效且可以使用的。例如,藉由循環冗餘校驗(cyclic redundancy check,CRC)或校驗和(Checksum)來確認韌體的完善性。此外,該有效值或有效標誌可以回傳至該管理控制器或甚至監控韌體更新程序。
一旦在步驟430中設定有效值或有效標誌,該作動的韌體可以在步驟440中開始設定。首先,在步驟440中,該作動標誌或作動值可以在非作動區與作動區之間相互交換。在一些實施中,步驟440的程序可以包含,在相互交 換之前,判定該有效的韌體包括一有效值或標誌,用來確認該串列附加小型計算機介面擴張器與有效韌體開始運作。這可以讓一啟動碼使用,來決定在哪裡啟動該映象檔。在步驟440中,無論是否有確認有效值或有效標誌,步驟440也包含設定作動區以及非作動區兩者的作動標誌與作動值,非作動區當中儲存有最近寫入的軔體,此一韌體被標示為暫時保留給列附加小型計算機介面擴張器所使用的韌體,作動區標示為不保留記憶體裝置所使用的韌體。例如,串列附加小型計算機介面擴張器可以設定非作動區的作動值為1,且設定作動區的作動值為0,用以交換這兩個區域。因此,非作動區內的韌體變成作動的韌體,而作動區內的韌體變成非作動的韌體,如同上述第2B圖。
在步驟440中,一旦作動區與非作動區的標誌相互交換,串列附加小型計算機介面擴張器便可以在步驟450中重新啟動。藉由重新啟動串列附加小型計算機介面擴張器,該非作動區變成該作動區,而該作動區變成該非作動區。該新作動區包含新寫入的韌體(例如,FW.V2),該新的非作動區包含先前的運作的舊韌體(FW.V1)。在步驟460中,一串列附加小型計算機介面擴張器初始化程序開始,透過新寫入的韌體,使該串列附加小型計算機介面擴張器運作。
如上述步驟420所述,寫入非作動區的韌體可能是無效的。也就是說,該非作動區的韌體可能是不完整的或是帶有一些錯誤。當在步驟420中偵測到該韌體是無效 的,在步驟470中,位於非作動區的有效標誌或有效值便會指示出無效韌體。例如寫入非作動區的韌體可以與有效值0連繫再一起,因此表示該無效的韌體不該使用。在步驟480中,錯誤的訊息會回傳至管理控制器或更遠處的元件。然後,先前的程序可以繼續,包含重複圖示4的方法或是其他在此描述的程序。
第5圖為一方塊圖,用來說明儲存裝置的韌體更新的示範程序,其中該儲存裝置是透過管理控制器,與串列附加小型計算機介面擴張器相連結。例如,第5圖的示範程序可以用來更新第1圖中儲存節點的儲存裝置。
在步驟500中,儲存裝置的更新工作階段開始。在步驟500中,管理控制器讓儲存裝置的更新工作階段開始。這個步驟可以包含如第1圖所描述的,系統管理伺服器傳送一查詢訊息至該管理控制器,其中該管理控制器需要正在儲存節點的儲存裝置上運作的韌體版本。主控裝置接收查詢的結果並且蒐集與韌體版本相關的資訊,其中該韌體版本正在儲存裝置上運作。之後,管理控制器可以獲得該儲存裝置所需的韌體並且轉送該韌體至串列附加小型計算機介面擴張器。如同上述,透過網路,該韌體可以由系統管理伺服器或其他裝置來利用。
一旦更新工作階段在步驟500中初始化,在步驟510當中,串列附加小型計算機介面擴張器判斷更新的儲存裝置韌體映象檔是否是有效的。類似於第4圖的程序,這可以包含有效標誌或有效值的設定,其中該有效標誌或有 效值用以指示該韌體是有效的。假如在步驟510中,該韌體映象檔是無效的,該程序繼續進行步驟570。在步驟570中,錯誤訊息會傳送至管理控制器,其中該管理控制器是有關於無效韌體映象檔的紀錄與後續的處理。假如在步驟510中,該韌體映象檔是有效的,第5圖的程序將繼續進行步驟520。
在步驟520當中,串列附加小型計算機介面擴張器可以進一步判斷該韌體是否與已經儲存於儲存裝置的韌體有所不同。假如在步驟520中,韌體並無不同,該程序再一次繼續進行步驟570。在步驟570中,錯誤訊息可以傳送至管理控制器用來記錄或是進行更進一步的處理,其中該錯誤訊息指示出該韌體映象檔已經安裝,。假如在步驟520中,該韌體映象檔是不同的,第5圖的程序會繼續進行步驟530。在步驟530中,該儲存裝置的韌體更新開始執行。
一旦儲存裝置的韌體在步驟530中更新,在步驟540中,串列附加小型計算機介面擴張器會判斷在韌體更新過程中是否有錯誤發生。例如,在韌體於單一或複數個儲存裝置上更新前或更新後,可能偵測到該韌體有失真或是訛誤的情況。在另一例子中,該儲存裝置的韌體可能不是一漸進式的韌體重製。在該更新的過程中,可能偵測到其他不同的錯誤,包含:映象檔種類的錯誤,尺吋的錯誤,完整性(循環冗餘校驗或檢驗和)的錯誤,映象檔逾時錯誤,或更新映象檔逾時錯誤。
假如在步驟540中偵測到錯誤,該程序會再一 次繼續進行步驟570。在步驟570中,錯誤訊息可以傳送至管理控制器,其中該管理控制器是有關於該錯誤訊息的紀錄以及後續的處理。假如在更新過程中沒有錯誤發生,則該程序會繼續進行步驟550。
在步驟550中,儲存裝置可以重新設定,來使得韌體映象檔有效。在一些實施例中,該儲存裝置使用記憶體裝置來儲存串列附加小型計算機介面擴張器的韌體,如第2A圖與第2B圖所述。例如,步驟550也可以包含,藉由串列附加小型計算機介面擴張器來設定作動標誌或作動值,用以指示預期的韌體,其中該作動標誌或作動值與儲存裝置連繫。再者,步驟550可以包含藉由串列附加小型計算機介面擴張器來使更新的儲存裝置重新啟動或重新設定,令儲存裝置可以辨識重新寫入的韌體。之後,在步驟560中,儲存裝置的初始化程序開始,讓該儲存裝置透過重新寫入的韌體來運作。
第6圖為一示範性系統結構600的方塊圖,其中該範性系統結構600執行圖式1-5的特徵及程序。該結構600可以在任何電子裝置上執行,包含但不限於:個人電腦,伺服器,智慧型手機,多媒體撥放器,電子平板,遊戲主機,電子郵件裝置等,而其中該電子裝置執行來自編輯指令的軟體應用程式。在一些實施例中,結構600包含:單一或複數個處理器602、單一或複數個輸入裝置604、單一或複數個顯示裝置606、單一或複數個網路介面608及單一或複數個電腦可讀取的媒體610。每一個元件可以藉由匯流排 612來連結。
顯示裝置606可以是任何已知的顯示技術,包含但不限於使用液晶顯示(LCD)或發光二極體(LED)技術的顯示裝置。處理器602可以用任何已知處理器技術,包含但不限於圖文處理器以及多核心處理器。輸入裝置604可以是任何已知的輸入裝置技術,包含但不限於;一鍵盤(包含虛擬鍵盤),滑鼠,軌跡球及觸控平板或顯示器。匯流排612可以是任何已知內部或外部的匯流排技術,包含但不限於工業標準結構(ISA),擴展工業標準結構(EISA),外部聯結標準(PCI),快捷外設互聯標準(PCI Express),新總線(NuBus),通用串列匯流排(USB),序列先進技術附件(Serial ATA)或傳輸壓縮影像檔的標準(FireWire)。
電腦可讀取媒體610可以是任何媒體,其中媒體參與提供指令給處理器602來執行,包含但不限於永久性儲存媒體(例如,光碟,磁碟,隨身碟等)或非永久性儲存器(例如,同步動態隨機存取記憶體,唯讀記憶體等)。電腦可讀取媒體(例如,儲存裝置,媒體和記憶體)可以包含,例如,包含位元流的有線或無線訊號及其類似物。然而,當提到非暫時性的電腦可讀取儲存裝置,明確地排除媒體例如。能量,載波訊號,電磁波及訊號本身。
電腦可讀取媒體610可以包含不同的指令614用來執行作業程式(例如,Mac OS®、Windows®、Linux)。作業程式可以是多用戶,多重處理,多工作業,多執行緒與即時性等。作業程式執行基本作業,包含但不限 於辨識來自輸入裝置604的輸入;傳送輸出至顯示裝置606;保存檔案的路徑及目錄於電腦可讀取媒體610;控制外部裝置(例如,磁碟機,印表機等),其中外部裝置可以直接控制或透過一輸入/輸出控制器(I/O controller);以及管理匯流排612的流量。網路溝通指令616可以建立且維護網路的連結(例如,執行通訊協定的軟體,諸如網路通訊協議(TCP/IP),超文件傳送協定(HTTP),乙太網路(Ethernet)等)。
一圖文處理系統618包含指令,其中指令提供圖像以及映象檔處理能力。應用程式620可以使用或執行圖式1-5中所描述的程序。程序也可以在作業程式614來執行。
系統控制器622包含至少一儲存控制器,依管理控制器,或一串列附加小型計算機介面擴張器。該管理控制器可以獨立操作處理器或作業程式614。在一些實施例中,在處理器602啟動前與作業系統614載入處理器602前,該管理控制器是可以啟動且運作的。例如,透過一專用的網路介面或他輸入裝置,管理控制器可以供給運算裝置的pre-OS管理。一管理控制器可以是一基板管理控制器,其中該基板管理控制器監控儲存節點韌體以及執行低階的儲存節點管理,或者是藉由一智慧平台管理介面(IPMI),切換器(KVM),區域網路串行,或其他介面,來提供遠端管理能力。一管理控制器可以在上述圖式1-5的程序中執行。
串列附加小型計算機介面擴張器為一控制器,該控制器藉由內部積體電路/系統管理匯流排 (12C/SMbus)或SGPIO控制介面,來控制儲存節點的韌體,以及提供遠端管理能力。為了支援遠端管理能力,該串列附加小型計算機介面擴張器配置用來與該管理控制器溝通。在這個例子中,該串列附加小型計算機介面擴張器可以取代序列先進技術附件主機總線配置器。
這些所描述的特徵可以在單一或複數個電腦程式中執行,其中該電腦程式在可程式化的系統中是可以執行的。這樣的可程式化的系統可以包含至少一可程式化處理器,其中該可程式化處理器由數據儲存系統、至少一輸入裝置以及至少一輸出裝置接收數據與指令,以及將數據與指令發送至數據儲存系統、至少一輸入裝置以及至少一輸出裝置。一電腦程式是一組指令,該指令可以直接或間接地在一電腦上使用,用來執行某一活動或產生某一結果。一電腦程式可以用任何形式的程式語言(例如,Objective-C,Java)來編寫,包含編輯與解釋語言,以及它可以用任何形式配置,包含像一單機程式或一模組,元件,子程序或者是其他適用在一運算環境的單元。
適合用來執行一指令程式的處理器包含,例如,一般用途與特殊用途的微型處理器,以及單一處理器或多重處理器或多核心,各種電腦,一般而言,一處理器接收指令與數據,其中該指令與數據來自一唯讀記憶體,一隨機存取記憶體或是來自兩者。電腦的必要元件是一處理器及單一或複數個記憶體,其中該處理器用來執行指令,而該記憶體是用來儲存指令與數據。一般而言,電腦也包含:單一或 複數個大量儲存裝置,用來儲存資料檔案。這樣的裝置包含:磁碟,例如內部硬碟與可移動磁碟;以及磁光碟。適合用來體現電腦程式與數據的儲存裝置包含所有形式的非永久性記體,包含半導體記憶體裝置,例如可消除程式化唯讀記憶體(EPROM),電子可抹除可程式化唯讀記憶體(EEPROM),以及快閃記憶體;磁碟,例如內部硬碟與可移動磁碟;磁光碟;以及光碟唯讀記憶體(CD-ROM)與數位多功能影音光碟唯讀記憶體(DVD-ROM)。處理器與記憶體可以藉由特定功能積體電路(ASICs)補充或是在特定功能積體電路(ASICs)上合併。
為了與使用者互動,這些功能可以在一有顯示裝置的電腦上執行,例如,陰極射線管(CRT)或液晶顯示器(LCD),用來顯示資訊給使用者與鍵盤,以及指向裝置,例如,滑鼠或軌跡球,讓使用者可以提供輸入進電腦。
這些功能可以在一電腦系統上執行,其中該電腦系統包含後端元件,例如,資料伺服器,或者是包含中介平台元件,例如,應用伺服器或網際網路伺服器,或是包含,前端元件,例如,配置圖像使用者介面的用戶端電腦或網際網路瀏覽器,或是任何組合。該系統的元件可以藉由任何形式的數位資料傳輸來連結,例如,通訊網络。通訊網络的例子包含,例如,區域網路,廣域網路,以及形成網際網路的電腦與網路。
電腦系統包含用戶與伺服器,用戶與伺服器通常是互相遠距離分開,並且透過一網路來互動。用戶與伺服 器的關係的產生,是透過電腦程式在各自的電腦上運作所產生的效能,以及互相的主從式架構關係。
這些已揭露的實施例的單一或複數個功能或步驟可以透過應用程式介面(API)來執行。應用程式介面(API)可以定義單一或複數個參數,其中這些參數在呼叫程式與其他軟體碼之傳遞(例如,作業程式,庫存程序,系統函數),其中軟體碼提供服務或資料,或者是執行一運作或運算。
應用程式介面(API)在程式碼上,可以以單一或複數個呼叫來執行,其中該應用程式介面(API)發送或接收單一或複數個參數,其中發送或接收是透過參數清單或其他結構,而其中該結構建立在一應用程式介面(API)說明檔所定義的呼叫協議上。參數可以是定數、密鑰、資料結構、物件、物件類、變數、資料類型、指標、陣列、目錄或是其他呼叫。應用程式介面(API)的呼叫與參數可以用任何可程式化語言來執行。可程式化語言可以定義字彙與呼叫協議,其中編程人員用來存取支援應用程式介面(API)的函數。
在一些實施例中,應用程式介面(API)將執行該應用程式的裝置能力回報給應用程式,例如,輸入能力,輸出能力,處理能力,功率,通訊能力等。
一些實施例已經描述。不過,不同改良的出現是可以理解的。例如,在描述的流程圖當中,其他步驟可能出現,或是可能刪除,以及其他元件可能從已描述的系統中加入或移除。因此,其他實施例在以下的申請專利範圍內。
雖然各種不同的例子與其他資訊已經用來解釋申請專利範圍,但是當一通常的技藝可以用這些例子去獲得廣泛的實施,就不能以該些例子的特殊特徵或協議來對申請專利範圍加以限制。再者,雖然一些主題是用特定例子的結構特徵或方法步驟來描述,但申請專利範圍內的這些主題不需要被限定在這些特徵或步驟中。例如,除了這些特定之外,該功能性可以不同地來分配或在元件上執行。更確切地說,這些已經揭露在例子中的系統元件及方法落在申請專利範圍之內。
100‧‧‧儲存節點
110‧‧‧儲存控制器
120‧‧‧串列附加小型計算機介面擴張器
130‧‧‧管理控制器
140‧‧‧儲存裝置
150‧‧‧網路
160‧‧‧主控裝置

Claims (20)

  1. 一種更新方法,適用於更新一運算裝置中的一儲存裝置控制器,該更新方法包含:以該儲存裝置控制器接收一韌體映象檔,該韌體映象檔是來自該運算裝置所使用之一管理控制器;以該儲存裝置控制器判斷該韌體映象檔是否適用於該儲存裝置控制器;當判定該韌體映象檔適用於該儲存裝置控制器時,透過該儲存裝置控制器將基於該韌體映象檔之一新韌體儲存於與該儲存裝置控制器相連結之一記憶體中;以及以該新韌體重新啟動該儲存裝置控制器。
  2. 如請求項1所述之更新方法,更包含:儲存該新韌體於該記憶體的一第一區塊,該記憶體包含該第一區塊及一第二區塊,其中該第二區塊包含該儲存裝置控制器所使用的一當前的韌體;以及當該新韌體儲存在該第一區塊後,以該第一區塊重新啟動該儲存裝置控制器。
  3. 如請求項2所述之更新方法,其中該第一區塊為一非作動區塊,該第二區塊為一作動區塊。
  4. 如請求項1所述之更新方法,其中該管理控制器為一基板管理控制器(baseboard management controller,BMC)。
  5. 如請求項1所述之更新方法,更包含:利用該記憶體之一作動區塊中的一當前的韌體操作該儲存裝置控制器;將該新韌體儲存於該記憶體之一非作動區塊;當該新韌體儲存於該記憶體之該非作動區塊後,使該記憶體之一第一區塊轉變為該作動區塊;重新啟動該儲存裝置控制器,使該儲存裝置控制器由該作動區塊所運作。
  6. 如請求項5所述之更新方法,其中該作動區塊與該非作動區塊是由一組作動值而設定。
  7. 如請求項1所述之更新方法,其中該儲存裝置控制器為一串列附加小型計算機介面(serial attached small computer interface,SAS)擴張器。
  8. 一種非暫態電腦可讀取媒體,儲存有複數程式序列以驅使一儲存節點的一管理控制器執行一方法,該方法包含:由正常運作之該儲存節點中辨視一儲存裝置控制器;傳輸一韌體映象檔至該儲存裝置控制器;判斷該儲存裝置控制器所接收到之該韌體映象檔是否無誤;產生一成功紀錄,其表示該儲存裝置控制器所接收到之該韌體映象檔無誤;以及 傳送該成功紀錄至該管理控制器。
  9. 如請求項1所述之非暫態電腦可讀取媒體,更包含複數程式序列以驅使該管理控制器執行下列步驟:判定該儲存裝置控制器所接收到之該韌體映象檔內容有誤;產生一失敗紀錄,其表示該儲存裝置控制器所接收到之該韌體映象檔有誤;以及傳送該失敗紀錄至該管理控制器。
  10. 一種伺服器系統,包含:一儲存裝置控制器;一管理控制器,通訊連接至該儲存裝置控制器以及一通訊網路;至少一儲存裝置,通訊連接至該儲存裝置控制器;其中,該管理控制器用以透過該通訊網路由一主管裝置接收一韌體映象檔並將更新之該韌體映象檔傳送該儲存裝置控制器,該儲存裝置控制器用以由該管理控制器接收該韌體映象檔、寫入基於該韌體映象檔之一韌體至該儲存裝置控制器或該至少一儲存裝置其中一者、分析該韌體、並且根據分析結果判斷是否設定該儲存裝置控制器或該至少一儲存裝置其中一者使用該韌體。
  11. 如請求項10所述之伺服器系統,其中該管理控制器為一基板管理控制器(baseboard management controller,BMC)。
  12. 如請求項10所述之伺服器系統,其中該儲存裝置控制器為一串列附加小型計算機介面(serial attached small computer interface,SAS)擴張器。
  13. 如請求項10所述之伺服器系統,其中該韌體之寫入包含將該韌體儲存於一記憶體的一非作動區塊,使用該韌體之設定包含:將該記憶體的該非作動區塊設定為該記憶體的一作動區塊;以及使用該作動區塊中的該韌體重新啟動該儲存裝置控制器或該至少一儲存裝置其中一者。
  14. 如請求項10所述之伺服器系統,其中該韌體之分析包含判斷該韌體是否有效,其中該分析結果之判斷包含當該韌體有效時設定該儲存裝置控制器或該至少一儲存裝置其中一者使用該韌體。
  15. 如請求項10所述之伺服器系統,其中該儲存裝置控制器更用以檢測該韌體映象檔中的一錯誤,並發送一錯誤訊息至該管理控制器。
  16. 一種更新方法,包含:在一第二控制裝置上,接收來自一第一控制裝置的一韌 體映象檔;以該第二控制裝置判斷該韌體映象檔是否用以更新該第二控制裝置所連結之至少一儲存裝置的一韌體;由該第二控制裝置將更新的該韌體映象檔安裝至該至少一儲存裝置。
  17. 如請求項16所述之更新方法,其中該管理控制器為一基板管理控制器(baseboard management controller,BMC)。
  18. 如請求項16所述之更新方法,其中該儲存裝置控制器為一串列附加小型計算機介面(serial attached small computer interface,SAS)擴張器。
  19. 如請求項16所述之更新方法,更包含:將該韌體映象檔儲存於該至少一儲存裝置其中一者的該記憶體的一第一區塊,該記憶體包含該第一區塊以及一第二區塊,其中該第二區塊包含在接收到更新的該韌體映象檔之前由該至少一儲存裝置所執行之另一韌體;以及當儲存更新的該韌體映象檔於該第一區塊之後,以該第一區塊重新啟動該儲存裝置。
  20. 如請求項19所述之更新方法,其中該第一區塊以及該第二區塊各自包含複數個作動值用以將該第一區塊以及該第二區塊分別標示一作動區塊或一非作動區塊,並且該更新方法包含於重新啟動前交換該些作動值。
TW104133891A 2015-08-12 2015-10-15 Updating method, server system and non-transitory computer readable medium TWI562070B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/824,452 US20170046152A1 (en) 2015-08-12 2015-08-12 Firmware update

Publications (2)

Publication Number Publication Date
TWI562070B TWI562070B (en) 2016-12-11
TW201706836A true TW201706836A (zh) 2017-02-16

Family

ID=57995478

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104133891A TWI562070B (en) 2015-08-12 2015-10-15 Updating method, server system and non-transitory computer readable medium

Country Status (3)

Country Link
US (1) US20170046152A1 (zh)
CN (1) CN106445577A (zh)
TW (1) TWI562070B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI826287B (zh) * 2023-03-10 2023-12-11 神雲科技股份有限公司 管理平台系統及其映像檔修復與除錯方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170168725A1 (en) * 2015-12-10 2017-06-15 Kabushiki Kaisha Toshiba Memory system that updates firmware in response to predetermined events
US10019253B2 (en) * 2016-02-19 2018-07-10 Dell Products L.P. Systems and methods of updating hot-pluggable devices
US20180018161A1 (en) * 2016-07-13 2018-01-18 Blackberry Limited Updating firmware at enterprise devices
US10390114B2 (en) * 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
CN108595193B (zh) * 2017-03-07 2021-11-16 佛山市顺德区顺达电脑厂有限公司 用于风扇转速控制的基板管理控制器固件更新方法
US10528339B2 (en) * 2017-03-20 2020-01-07 International Business Machines Corporation Cognitive feature based code level update
CN107066300B (zh) * 2017-04-21 2021-08-24 杭州宏杉科技股份有限公司 一种存储设备的固件升级方法和存储设备
US10747437B2 (en) 2017-05-02 2020-08-18 Quanta Computer Inc. SAS hard disk drive update via management controller
CN107273245B (zh) * 2017-06-12 2020-05-19 英业达科技有限公司 运算装置与运作方法
CN108304198A (zh) * 2018-01-29 2018-07-20 郑州云海信息技术有限公司 一种Intel ME的固件更新方法、装置及介质
US10572242B1 (en) * 2018-02-09 2020-02-25 American Megatrends International, Llc Firmware update using rest over IPMI interface
US10489142B1 (en) 2018-02-09 2019-11-26 American Megatrends International, Llc Secure firmware integrity monitoring using rest over IPMI interface
US10416988B1 (en) 2018-02-09 2019-09-17 American Megatrends International, Llc Peripheral device firmware update using rest over IPMI interface firmware shell utility
US10776286B1 (en) 2018-02-09 2020-09-15 American Megatrends International, Llc Rest over IPMI interface for firmware to BMC communication
US10649792B1 (en) 2018-02-09 2020-05-12 American Megatrends International, Llc Cloning of firmware configuration settings using rest over IPMI interface
US10409584B1 (en) 2018-02-09 2019-09-10 American Megatrends International, Llc Peripheral device firmware update using rest over IPMI interface firmware update module
US10628176B1 (en) 2018-02-09 2020-04-21 American Megatrends International, Llc Firmware configuration using REST over IPMI interface
JP6984496B2 (ja) * 2018-03-09 2021-12-22 富士通株式会社 ストレージ管理装置、ストレージシステム、及びストレージ管理プログラム
JP7006406B2 (ja) * 2018-03-16 2022-01-24 富士通株式会社 ストレージ管理装置、ストレージシステム、及びストレージ管理プログラム
US10503489B1 (en) * 2018-05-22 2019-12-10 Quanta Computer Inc. Updating firmware via a remote utility
JP7067357B2 (ja) * 2018-08-10 2022-05-16 富士通株式会社 管理装置、管理方法及び管理システム
JP7003975B2 (ja) * 2018-08-10 2022-01-21 株式会社デンソー 車両情報通信システム,センター装置及びセンター装置のメッセージ送信方法
CN110858144A (zh) * 2018-08-24 2020-03-03 中国电信股份有限公司 服务器自动部署方法、装置和系统、计算机可读存储介质
US10963239B2 (en) 2018-10-18 2021-03-30 International Business Machines Corporation Operational file management and storage
US10642646B1 (en) * 2018-10-24 2020-05-05 American Megatrends International, Llc Techniques of securely performing logic as service in BMC
EP3647944A1 (en) * 2018-10-30 2020-05-06 Shenzhen Goodix Technology Co., Ltd. Memory optimized block-based differential update algorithm
JP7216559B2 (ja) * 2019-02-05 2023-02-01 日立Astemo株式会社 電子制御装置及び不揮発性メモリの使用方法
US11200132B1 (en) * 2020-10-29 2021-12-14 EMC IP Holding Company LLC Anomaly aware log retrieval from disk array enclosures (DAEs)
US11513786B2 (en) * 2020-11-06 2022-11-29 Quanta Cloud Technology Inc. Method and system for server firmware update framework
CN112505607B (zh) * 2020-12-22 2023-07-04 昆明自动化成套集团股份有限公司 一种带定位功能支持远程升级的电压监测装置
US11922159B2 (en) * 2022-01-14 2024-03-05 Dell Products L.P. Systems and methods for cloning firmware updates from existing cluster for cluster expansion

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552217B2 (en) * 2004-04-07 2009-06-23 Intel Corporation System and method for Automatic firmware image recovery for server management operational code
US8776037B2 (en) * 2007-01-04 2014-07-08 International Business Machines Corporation Apparatus and method to update multiple devices disposed in a computing system
CN101295255B (zh) * 2007-04-27 2011-05-18 英业达股份有限公司 固件更新系统及方法
CN101441589A (zh) * 2007-11-21 2009-05-27 英业达股份有限公司 基板管理控制器的检测方法及服务器
CN101526903B (zh) * 2008-03-07 2013-06-05 鸿富锦精密工业(深圳)有限公司 通讯装置及其固件更新方法
TWI365410B (en) * 2008-05-29 2012-06-01 Universal Scient Ind Shanghai Apparatus and method for hard drive firmware update
CN101739266B (zh) * 2008-11-27 2013-05-15 英业达股份有限公司 固件更新方法
TW201207731A (en) * 2010-08-06 2012-02-16 Universal Scient Ind Shanghai Embedded system with plural firmware and firmware updating method thereof
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
US20120110562A1 (en) * 2010-10-27 2012-05-03 David Heinrich Synchronized firmware update
TWI469025B (zh) * 2011-08-25 2015-01-11 Touch panel and its dynamic drive control method
US8984502B2 (en) * 2011-10-28 2015-03-17 Hewlett-Packard Development Company, L.P. Systems and methods for composing or decomposing a composite image for firmware update images
EP2661050B1 (en) * 2012-05-04 2019-10-02 Itron, Inc. Efficient firmware update in a narrow bandwidth system
TW201423582A (zh) * 2012-12-06 2014-06-16 Hon Hai Prec Ind Co Ltd Sas擴展卡自動切換系統及方法
TWI592872B (zh) * 2012-12-11 2017-07-21 英業達股份有限公司 伺服器及其韌體更新方法
US9250919B1 (en) * 2013-02-13 2016-02-02 American Megatrends, Inc. Multiple firmware image support in a single memory device
US9116775B2 (en) * 2013-05-15 2015-08-25 Dell Products L.P. Relationship-based dynamic firmware management system
KR102139546B1 (ko) * 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI826287B (zh) * 2023-03-10 2023-12-11 神雲科技股份有限公司 管理平台系統及其映像檔修復與除錯方法

Also Published As

Publication number Publication date
CN106445577A (zh) 2017-02-22
TWI562070B (en) 2016-12-11
US20170046152A1 (en) 2017-02-16

Similar Documents

Publication Publication Date Title
TW201706836A (zh) 更新方法、伺服器系統以及非暫態電腦可讀取媒體
US7197634B2 (en) System and method for updating device firmware
US10127032B2 (en) System and method for unified firmware management
EP2849048B1 (en) Data sending method, data receiving method and storage device
US8108734B2 (en) Intelligent rolling upgrade for data storage systems
US9857998B2 (en) Backup storage of vital debug information
US9507585B2 (en) Firmware update apparatus and storage control apparatus
US20140122851A1 (en) Transferring files to a baseboard management controller ('bmc') in a computing system
JP5547727B2 (ja) ボリュームへの変更を追跡するシステムおよび方法
TW201729123A (zh) 遠程地啟動部署程式的方法與伺服器
TWI724415B (zh) 多節點儲存系統及其韌體的更新方法
RU2653254C1 (ru) Способ, узел и система управления данными для кластера базы данных
US8495012B2 (en) System and method for managing root file system
CN111818145B (zh) 一种文件传输方法、装置、系统、设备及存储介质
WO2023109880A1 (zh) 一种业务恢复方法、数据处理单元及相关设备
JP4560074B2 (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP2006338225A (ja) コンピュータの自動インストール方法
US20130024726A1 (en) System and method for removable network attached storage enabling system recovery from backup
US20110107317A1 (en) Propagating Firmware Updates In A Raid Array
TWI776612B (zh) 儲存裝置及其操作方法
JP2022188197A (ja) プログラマブルロジックコントローラ、端末装置、プログラム管理システム、プログラム管理方法及びプログラム
CN113760862A (zh) 一种增量数据断点续传方法、装置、设备及存储介质
US10866756B2 (en) Control device and computer readable recording medium storing control program
WO2024000535A1 (zh) 分区表更新方法、装置、电子设备及存储介质
CN117234437B (zh) 一种存储设备、磁盘重启的控制方法及装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees