TWI724415B - 多節點儲存系統及其韌體的更新方法 - Google Patents

多節點儲存系統及其韌體的更新方法 Download PDF

Info

Publication number
TWI724415B
TWI724415B TW108115186A TW108115186A TWI724415B TW I724415 B TWI724415 B TW I724415B TW 108115186 A TW108115186 A TW 108115186A TW 108115186 A TW108115186 A TW 108115186A TW I724415 B TWI724415 B TW I724415B
Authority
TW
Taiwan
Prior art keywords
flash
image file
node
storage
memory
Prior art date
Application number
TW108115186A
Other languages
English (en)
Other versions
TW202034165A (zh
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 廣達電腦股份有限公司
Publication of TW202034165A publication Critical patent/TW202034165A/zh
Application granted granted Critical
Publication of TWI724415B publication Critical patent/TWI724415B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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
    • 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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/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/1438Restarting or rejuvenating
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

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

Abstract

本揭露提供一種包括第一節點及第二節點的多節點儲存系統。第一節點包括第一基板管理控制器(BMC)、被配置來儲存第一快閃映像檔的第一快閃ROM以及被配置來將第一BMC連接至第一快閃ROM的第一交換器裝置。第二節點包括與第一節點精確相同的配置。第一BMC連接至第二交換器裝置,且第二快閃映像檔與第一快閃映像檔相同。

Description

多節點儲存系統及其韌體的更新方法
本揭露係有關於網路計算,特別係有關於更新多節點儲存系統中的韌體。
當一個伺服器或儲存系統電源重啟(power cycled)時,中央處理單元(CPU)所採取的第一個動作是發送一個訊息以啟動(activate)基本輸出入系統(Basic Input and Output System, BIOS)。BIOS接著運行一系列被稱為POST(Power On Self-Test, 開機自我檢測)的測試,以驗證系統裝置是否正常運作。BIOS會啟用使伺服器運作的基本功能。若BIOS損壞,則CPU會無法運行。然而,典型的BIOS可在其損壞的情況下復原有效的BIOS映像檔(image)。這是藉由在非系統內可寫(in-system writable)的快閃記憶體中儲存復原程式(recovery program)來達成的。如此可確保復原程式不會損壞。復原程式通常為簡單的編碼,具有初始化最小系統硬體的能力,以自隨身碟(flash drive)或其他可移動媒體中擷取新的編碼映像檔。諸如基板管理控制器(baseboard management controller)或記憶體交換器控制器(memory switch controller)之其他控制器的韌體亦須要此等電源重啟及復原功能。
本揭露多種範例直指一種多節點儲存系統,上述多節點儲存系統包括第一節點及第二節點。第一節點包括第一基板管理控制器(baseboard management controller, BMC)、被配置來儲存第一快閃映像檔的第一快閃唯讀記憶體(ROM)以及被配置來將第一BMC連接至第一快閃ROM的第一交換器裝置(switch device)。第二節點包括連接至第一交換器裝置的第二BMC、被配置來儲存第二快閃映像檔的第二ROM以及被配置來將第二BMC連接至第二快閃ROM的第二交換器裝置。第一BMC連接至第二交換器裝置。此外,第二快閃映像檔與第一快閃映像檔相同。
在一些實施例中,第一節點更包括第一儲存控制器、被配置來儲存第三快閃映像檔的第三快閃ROM以及被配置來將第一BMC或第二BMC連接至第三快閃ROM的第三交換器裝置。在一些實施例中,第二節點更包括第二儲存控制器、被配置來儲存第四快閃映像檔的第四快閃ROM以及被配置來將第一BMC或第二BMC連接至第四快閃ROM的第四交換器裝置,其中第四快閃映像檔與第三快閃映像檔相同。
第一節點亦可包括複數第一儲存裝置,複數第一儲存裝置連接至第一儲存控制器以及第二儲存控制器。複數第一儲存裝置可包括硬碟機(hard disk drive, HDD)、固態硬碟(solid state drive, SSD)及/或快速非揮發性記憶體(non-volatile memory express, NVMe)。在一些實施例中,NVMe被配置來作為主機控制器介面(host controller interface)及儲存協定(storage protocol),以促進第一儲存控制器與SSD之間的資料傳輸。
同樣的,第二節點可包括複數第二儲存裝置,複數第二儲存裝置連接至第一儲存控制器以及第二儲存控制器。複數第二儲存裝置可包括硬碟機(HDD)、固態硬碟(SSD)及/或快速非揮發性記憶體(NVMe)。NVMe被配置來作為主機控制器介面及儲存協定,以促進第二儲存控制器與SSD之間的資料傳輸。
在一些實施例中,第一快閃映像檔包括第一BMC韌體(firmware)快閃映像檔,而第二快閃映像檔包括第一儲存控制器韌體快閃映像檔。第三快閃映像檔包括第二BMC韌體快閃映像檔,而第四快閃映像檔包括第二儲存控制器韌體快閃映像檔。
第一交換器裝置、第二交換器裝置、第三交換器裝置以及第四交換器裝置中的每一個,都包括一多工器(multiplexor, MUX)。第一交換器裝置、第二交換器裝置、第三交換器裝置以及第四交換器裝置可被配置來多路傳輸第一BMC及上述第二BMC。
在一些實施例中,第一BMC被配置來擷取儲存在第三快閃ROM中的第三快閃映像檔,或是儲存在第四快閃ROM中的第四快閃映像檔。同樣地,第二BMC可被配置來擷取儲存在第一快閃ROM中的第一快閃映像檔,或是儲存在第二快閃ROM中的第二快閃映像檔。
本揭露多種範例直指一種方法,用於更新多節點儲存系統中的韌體。上述方法包括電源重啟第一節點。第一節點包括第一BMC、被配置來儲存第一快閃映像檔的第一快閃ROM以及被配置來將第一BMC連接至第一快閃ROM的第一交換器裝置。上述方法亦包括啟動第一快閃ROM中的第一快閃映像檔。上述方法包括判斷第一節點中的硬體組件是否並未連線或並未備便以用於韌體更新、第一快閃映像檔是否已損壞及/或第一節點是否無法啟動至作業系統。上述方法亦包括藉由第一BMC進行擷取,擷取儲存於第二節點之第二快閃ROM中的第二快閃映像檔。其中第一BMC連接至第二節點中的第二交換器裝置。其中第二快閃映像檔與第一快閃映像檔相同。
本揭露之其他特徵及優點將於下列敘述中闡明,且將於說明中變得顯而易見,或者可以透過本揭露之原理而了解。本揭露之特徵及優點可藉由所附申請專利範圍特別指出之手段與組合來實現及獲得。根據下列描述及所附申請專利範圍,本揭露的這些及其他特徵將完全變得顯而易見,或是可藉由實踐本文所闡述之原理而習得。
本發明之描述係參考附圖,其中所有的附圖使用相同之附圖標記來表示相似或相等之元件。附圖並未依比例繪製,且僅用於說明本發明。下列參考用於說明之範例性應用以描述本發明之若干樣態。須理解的是,許多具體細節、關係及方法被提出以提供對本發明之通盤理解。然而,於相關技術領域具有通常知識者將輕易認知到本發明可在沒有一或多個具體細節下或以其他方法完成。在其他實例中,公知結構或操作並未詳述以免模糊本發明。本發明並不限於所示之動作或事件之順序,因為一些動作可以不同之順序發生及/或與其他動作或事件同時發生。此外,並非所有出示之動作或事件皆為實施根據本發明之方法所必需的。
第1圖圖示一傳統的多節點儲存系統50,如同於先前技術中所知的。多節點儲存系統50可具有第一節點100及第二節點200。於第一節點100及第二節點200所例示之組件是相同的。為了避免不必要的重複,第一節點100將被完整描述。應當理解的是,出於說明之目的,第二節點200之組件與第一節點100之組件是相同的。
第一節點100可包括複數儲存裝置110。複數儲存裝置110可包括多種類型之儲存裝置驅動器(storage device drive)。儲存裝置驅動器可包括但不限於:硬碟機(HDD)、固態硬碟(SSD)及快速非揮發性記憶體(NVMe)裝置。第一節點100亦包括儲存控制器(storage controller)120、基板管理控制器(BMC)150、第一快閃ROM 140及第二快閃ROM 160。第一快閃ROM 140連接至BMC 150,而第二快閃ROM 160則連接至儲存控制器120。第一快閃ROM 140包括用於BMC 150之韌體,而第二快閃ROM 160則包括用於儲存控制器120之韌體。第一節點100亦可包括區域網路(Local Area Network, LAN)配接器130。第一節點100可藉由LAN配接器130連接至伺服器系統或遠程控制器(remote controller)。
相似地,第二節點200可包括儲存控制器220、BMC 250、第三快閃ROM 240及第四快閃ROM 260。其中儲存控制器120及儲存控制器220可為儲存擴充器或切換器。第三快閃ROM 240可經由匯流排241連接至BMC 250,而第四快閃ROM 260則經由匯流排261連接至儲存控制器220。第二節點200亦可包括LAN配接器230,LAN配接器230可將第二節點200連接至伺服器系統或遠程控制器。
如同本技術領域具有通常知識者所理解的,複數儲存裝置110中的NVMe裝置可用作主機控制器介面及儲存協定,以促進儲存控制器120與複數儲存裝置110中的儲存裝置(例如:SSD)彼此之間的資料傳輸。儲存控制器120為特定類型之匯流排,例如PCIe、SAS或SATA,可允許存取底板(back plane board)上之儲存裝置。可藉由快速週邊組件互連(Peripheral Component Interconnect Express, PCIe)匯流排112促進複數儲存裝置110與儲存控制器120之間的資料傳輸。相似地,可藉由PCIe匯流排111促進複數儲存裝置110與儲存控制器220之間的資料傳輸。複數儲存裝置210中的NVMe裝置可經由PCIe匯流排212連接至儲存控制器120,並經由PCIe匯流排211連接至儲存控制器220。亦須理解的是,雖然此處實施例以PCIe匯流排實行,但序列先進技術附接(Serial Advanced Technology Attachment, SATA)及序列附接小型電腦系統介面(Serial Attached SCSI, SAS)亦可於此處之實施例中實行。
第一節點100之BMC 150亦藉由基板匯流排151及251連接至第二節點200之BMC 250。每個控制節點具有獨立的BMC,如此一來他們可以獨立運作或共同運作。BMC 150亦藉由匯流排141連接至第一快閃ROM 140。儲存控制器120藉由匯流排161連接至第二快閃ROM 160。
BMC 150通常包括韌體的編碼映像檔,上述韌體位於第一快閃ROM 140。第一節點100亦可具有用於儲存控制器120之韌體的編碼映像檔,上述韌體位於第二快閃ROM 160。包含於快閃ROM中的這些映像檔至少具有兩段編碼,一個啟動塊(boot block)段及一個操作碼(operational code)段。啟動塊通常是防寫(write-protected)且不在現場更新。另一方面,操作映像檔可在現場更新。在現存系統中,若系統已經啟動到作業系統(OS),則BMC韌體映像檔(儲存於第一快閃ROM 140中的映像檔)只能被更新。當第一節點100電源重啟時,BMC 150採取的第一個動作是發送一個訊息以啟動儲存在第一快閃ROM 140中的韌體。韌體接著運行一系列被稱為POST的測試,以驗證系統裝置是否正常運作。儲存在第二快閃ROM 160中的韌體映像檔使得儲存控制器120的基本功能得以運行。若韌體映像檔升級被破壞或故障,則系統無法啟動至BMC 150或儲存控制器120且系統無法運行。本申請教示了一種藉由獨立操作BMC(例如:第二節點200之BMC 250)來更新韌體的方法及系統。
第2圖係根據本揭露實施例所示之範例性的多節點儲存系統75。多節點儲存系統75可包括第一節點300和第二節點400。第一節點300及第二節點400所例示之組件是相同的。為了避免不必要的重複,第一節點300將被完整描述。應當理解的是,出於說明之目的,第二節點400之組件與第一節點300之組件是相同的。亦須理解的是,雖然此處僅出示兩個節點,但多節點儲存系統75可具有數以百計的節點(若非數以千計的話)。
第一節點300可包括複數儲存裝置310。複數儲存裝置310可包括多種類型之儲存裝置驅動器。儲存裝置驅動器可包括但不限於:硬碟機(HDD)、固態硬碟(SSD)及快速非揮發性記憶體(NVMe)裝置。第一節點300亦包括儲存控制器320、BMC 350、第一快閃ROM 340及第二快閃ROM 360。第一快閃ROM 340可經由第一交換器裝置370連接至BMC 350。第二快閃ROM 360可經由第二交換器裝置380連接至儲存控制器320。這些將於下列進行更詳細的討論。第一節點300亦可包括LAN配接器330。第一節點300可經由LAN配接器330連接至伺服器系統或遠程控制器。
相似地,第二節點400可包括儲存控制器420、BMC 450、第三快閃ROM 440及第四快閃ROM 460。其中儲存控制器320及儲存控制器420可為儲存擴充器或切換器。第三快閃ROM 440可藉由匯流排441及第三交換器裝置470連接至BMC 450。第四快閃ROM 460可藉由匯流排461及第四交換器裝置480連接至儲存控制器420。交換器裝置將在下列關於第一節點300處進行更加詳細的討論。應理解的是,第一節點300及第二節點400中的交換器裝置其功能是相似的。第二節點400亦可包括LAN配接器430,LAN配接器430可將第二節點400連接至伺服器系統或遠程控制器。
如同本技術領域具有通常知識者所理解的,複數儲存裝置310中的NVMe裝置可用作主機控制器介面及儲存協定,以促進儲存控制器320與複數儲存裝置310中所容納的任何SSD彼此之間的資料傳輸。可藉由PCIe匯流排312促進複數儲存裝置310與儲存控制器320之間的資料傳輸。相似地,可藉由PCIe匯流排311促進複數儲存裝置310與儲存控制器420(屬於第二節點400)之間的資料傳輸。應理解的是,容納於複數儲存裝置410中的NVMe裝置可經由PCIe匯流排412連接至儲存控制器320,並經由PCIe匯流排411連接至儲存控制器420。亦須理解的是,雖然此處實施例以PCIe匯流排實行,但SATA及SAS介面亦可於此處之實施例中實行。
第一節點300之BMC 350亦藉由基板匯流排351及451連接至第二節點400之BMC 450。如上文所指出的,BMC 350亦經由第一交換器裝置370連接至第一快閃ROM 340。具體來說,BMC 350藉由匯流排341連接至第一交換器裝置370。第一交換器裝置370可藉由匯流排342連接至第一快閃ROM 340。儲存控制器320經由第二交換器裝置380連接至第二塊閃ROM 360。具體來說,儲存控制器320藉由匯流排361連接至第二交換器裝置380。第二交換器裝置380藉由匯流排362連接至第二快閃ROM 360。
此外,第二節點400之BMC 450亦經由第一交換器裝置370連接至第一快閃ROM 340。具體來說,BMC 450可藉由基板匯流排351及匯流排371連接至第一節點300的第一交換器裝置370。第一交換器裝置370可連接至第一快閃ROM 340。相似地,BMC 350可藉由基板匯流排451及匯流排471連接至第二節點400的第三交換器裝置470。第二節點400的BMC 450經由第二交換器裝置380連接至第二快閃ROM 360。具體來說,BMC 450可藉由基板匯流排351及匯流排381連接至第一節點300的第二交換器裝置380。第二交換器裝置380可藉由匯流排362連接至第二快閃ROM 360。相似地,BMC 350可藉由基板匯流排451及匯流排481連接至第二節點400的第四交換器裝置480。
交換器裝置370及380可被配置為SPI多工器(MUX)裝置。在一些範例性的實施例中,第一交換器裝置370可將兩個SPI(Serial Peripheral Interface, 串列週邊介面)主裝置(master device),BMC 350及BMC 450,多路傳輸(multiplex)至單一從屬裝置(slave device),例如第一快閃ROM 340。BMC 350可藉由自BMC 350延伸至第一交換器裝置370的輸出接腳(pin)來控制第一交換器裝置370的主裝置選擇。相似地,第二交換器裝置380可將兩個SPI主裝置,儲存控制器320及BMC 450,多路傳輸至單一從屬裝置,例如第二快閃ROM 360。BMC 450可藉由自BMC 450延伸至第二交換器裝置380的輸出接腳,經由匯流排381及基板匯流排351來控制第二交換器裝置380的主裝置選擇。
通常來說,BMC 350具有位於第一快閃ROM 340中的韌體編碼映像檔。第一節點300亦可具有位於第二快閃ROM 360中的韌體編碼映像檔,此韌體編碼映像檔用於儲存控制器320。包含於快閃ROM中的這些映像檔至少具有兩段編碼─一個啟動塊段及一個操作碼段。啟動塊通常是防寫且不在現場更新。相反地,操作映像檔可在現場更新。
在範例性的多節點儲存系統75中,即使系統尚未啟動至OS,保存於第一快閃ROM 340中的第一韌體映像檔仍可被更新。若韌體映像檔升級損壞或故障,系統仍可使用分隔獨立之節點的BMC 450啟動至作業系統。快閃映像檔自第三快閃ROM 440復原至第一快閃ROM 340,接著在重置(reset)第一節點300之後,BMC 350自第一快閃ROM 340啟動。舉例來說,當第一節點300電源重啟時,BMC 350採取的第一個動作是發送消息以啟動儲存於快閃ROM 340及快閃ROM 360中的韌體映像檔。韌體接著運行一系列被稱為POST(開機自我檢測)的測試,以驗證系統裝置是否正常運作。在儲存於第一快閃ROM 340中的韌體映像檔被破壞的情況下,BMC 350可以擷取儲存於第二節點400之第三快閃ROM 440中的韌體映像檔。儲存於第二節點400之第三快閃ROM 440中的韌體映像檔被複製到第一快閃ROM 340,且可用於啟動第一節點300之BMC 350。相應地,若用於儲存控制器320之第二快閃ROM 360的韌體損壞,則BMC 350可存取第四快閃ROM 460中之韌體的複本,並將其複製到第二快閃ROM以啟動儲存控制器320。
第3圖係根據本揭露實施例所示之範例性流程圖,用以描述用於更新及寫入節點之BMC的韌體映像檔之程序600。
此處所示之程序600的詳細描述係參考第2圖之多節點儲存系統75之組件所進行。程序600將詳細描述使用第二節點400更新多節點儲存系統75之第一節點300內的韌體的步驟。作為初始事項,在步驟601判斷第一節點300內的硬體組件是否已連線及備便以用於韌體更新。若判斷第一節點300內的硬體組件已經連線且備便以用於韌體更新,則程序600進入步驟602。於步驟602,多節點儲存系統75嘗試啟動至OS。若啟動成功,則程序600進入步驟603,在步驟603中執行韌體升級。在硬體組件並未於步驟601中連線或備便以用於韌體更新的情況下,程序600會進入步驟604。相似地,在多節點儲存系統75無法於步驟602中啟動至OS的情況下,程序600會進入步驟604。最後,在步驟601、602或603沒有滿足任何條件的情況下,程序600進入步驟604,韌體升級將不會被執行。此時,程序600進入步驟605,在步驟605中,多節點儲存系統75切換至遠程系統。在這個案例中,遠程系統是第二節點400。
具體來說,使用者韌體卷(firmware volume)可儲存於一或多個記憶體裝置,例如用於BMC 350的第一快閃ROM 340或用於儲存控制器320的第二快閃ROM 360。應理解的是,使用者韌體卷可儲存於多節點儲存系統75的任何快閃記憶體儲存組件。BMC 350可獲取韌體檔案,用於在啟動程序期間更新第一節點300所使用之控制器韌體。具體來說,BMC 350可產生或編譯(compile)韌體檔案並將其儲存於記憶體(例如:ROM)中,以部署(deployment)或整合(integration)至第一節點300的控制器韌體。然而,在韌體更新程序被中斷或是無法完成的情況下,BMC 350可以擷取儲存在第二節點400之第三快閃ROM 440中的韌體映像檔。儲存在第二節點400之第三快閃ROM 440中的韌體映像檔可被複製到第一快閃ROM 340。被複製的韌體可接著被用於啟動至第一節點300的作業系統。應理解的是,相同的程序可被實行在第四快閃ROM 460上。
儘管已出示及描述本發明特定實施例,但對所屬技術領域具有通常知識者而言,在不脫離本發明之更廣泛觀點的情況下,對本發明進行改變或修改係屬顯而易見。因此,所附申請專利範圍之目的為涵蓋所有落入本發明之實際精神與範圍的這些改變及修改。在前文的描述及附圖中所闡述的內容僅作為說明之目的,而非用作本發明的限制。當基於現有技術以適當之觀點觀察時,本發明之實際範圍旨在由下列申請專利範圍定義。
本文所用之術語僅用於描述特定範例,而非旨於限制本發明。如此處所用的,單數型式「一」「一個」及「該」亦旨於包括複數型式,除非上下文另有明確說明。此外,在詳細說明及/或請求項中使用術語「包括」、「包含」、「具有」、「有」、「擁有」或其變體的範圍,這些術語旨在以近似於術語「包括」之方式包含。
除非另有定義,否則本文所用之所有術語(包括技術及科學術語)具有與於本發明所屬技術領域中具有通常知識者通常理解之含義相同之含義。此外,諸如於那些常用字典中定義之術語應被解釋為具有與其在相關領域之上下文中之含義一致的含義,且除非於本文中明確地如此定義,否則將不被理解為理想化或過於正式之含義。
50:多節點儲存系統100:第一節點200:第二節點110:儲存裝置111:PCIe匯流排112:PCIe匯流排120:儲存控制器130:LAN配接器140:第一快閃ROM141:匯流排150:BMC(基板管理控制器)151:基板匯流排160:第二快閃ROM161:匯流排210:儲存裝置211:PCIe匯流排212:PCIe匯流排220:儲存控制器230:LAN配接器240:第三快閃ROM241:匯流排250:BMC(基板管理控制器)251:基板匯流排260:第四快閃ROM261:匯流排75:多節點儲存系統300:第一節點400:第二節點310:儲存裝置311:PCIe匯流排312:PCIe匯流排320:儲存控制器330:LAN配接器340:第一快閃ROM341:匯流排342:匯流排350:BMC(基板管理控制器)351:基板匯流排360:第二快閃ROM361:匯流排362:匯流排370:第一交換器裝置371:匯流排380:第二交換器裝置381:匯流排410:儲存裝置411:PCIe匯流排412:PCIe匯流排420:儲存控制器430:LAN配接器440:第三快閃ROM441:匯流排450:BMC(基板管理控制器)451:基板匯流排460:第四快閃ROM461:匯流排470:第三交換器裝置471:匯流排480:第四交換器裝置481:匯流排600:程序601-605:步驟
為了描述上述揭露之方法及使其優點及特徵可被獲得之目的,將藉由參考附圖所示之特定範例以為上述原理提供更加具體的描述。這些附圖僅描繪本揭露之範例層面,故不應被視作對本揭露範圍的限制。藉由運用下列附圖,這些原理的描述及解釋具有額外的具體性以及細節。 第1圖圖示傳統的多節點儲存系統,於先前技術已眾所周知。     第2圖係根據本揭露實施例所示之範例性多節點儲存系統。     第3圖係根據本揭露實施例所示之範例性流程圖,用以描述更新及寫入韌體映像檔之程序。
75:多節點儲存系統
300:第一節點
400:第二節點
310:儲存裝置
311:PCIe匯流排
312:PCIe匯流排
320:儲存控制器
330:LAN配接器
340:第一快閃ROM
341:匯流排
342:匯流排
350:BMC(基板管理控制器)
351:基板匯流排
360:第二快閃ROM
361:匯流排
362:匯流排
370:第一交換器裝置
371:匯流排
380:第二交換器裝置
381:匯流排
410:儲存裝置
411:PCIe匯流排
412:PCIe匯流排
420:儲存控制器
430:LAN配接器
440:第三快閃ROM
441:匯流排
450:BMC(基板管理控制器)
451:基板匯流排
460:第四快閃ROM
461:匯流排
470:第三交換器裝置
471:匯流排
480:第四交換器裝置
481:匯流排

Claims (8)

  1. 一種多節點儲存系統,包括:一第一節點,包括:一第一基板管理控制器(BMC);一第一快閃唯讀記憶體,上述第一快閃唯讀記憶體被配置來儲存一第一快閃映像檔;一第一交換器裝置,上述第一交換器裝置被配置來將上述第一基板管理控制器連接至上述第一快閃唯讀記憶體;一第一儲存控制器;被配置來儲存一第三快閃映像檔的一第三快閃唯讀記憶體;以及被配置來將上述第一儲存控制器或一第二基板管理控制器連接至上述第三快閃唯讀記憶體的一第三交換器裝置;以及一第二節點,包括:上述第二基板管理控制器,上述第二基板管理控制器連接至上述第一交換器裝置;一第二快閃唯讀記憶體,上述第二快閃唯讀記憶體被配置來儲存一第二快閃映像檔;一第二交換器裝置,上述第二交換器裝置被配置來將上述第二基板管理控制器連接至上述第二快閃唯讀記憶體;一第二儲存控制器; 被配置來儲存一第四快閃映像檔的一第四快閃唯讀記憶體;以及被配置來將上述第一基板管理控制器或上述第二儲存控制器連接至上述第四快閃唯讀記憶體的一第四交換器裝置,其中上述第一基板管理控制器連接至上述第二交換器裝置,其中上述第二快閃映像檔與上述第一快閃映像檔相同,且上述第四快閃映像檔與上述第三快閃映像檔相同。
  2. 如申請專利範圍第1項所述之多節點儲存系統,其中:上述第一節點更包括複數第一儲存裝置,上述第一儲存裝置連接至上述第一儲存控制器以及上述第二儲存控制器,其中上述第一儲存控制器位於上述第一節點,而上述第二儲存控制器位於上述第二節點;以及上述第二節點更包括複數第二儲存裝置,上述第二儲存裝置連接至上述第一儲存控制器以及上述第二儲存控制器,其中上述第一儲存裝置及上述第二儲存裝置可包括一硬碟機、一固態硬碟或一快速非揮發性記憶體中的至少一種。
  3. 如申請專利範圍第2項所述之多節點儲存系統,其中上述快速非揮發性記憶體被配置來作為一主機控制器介面及儲存協定,以促進上述第一儲存控制器與上述固態硬碟之間的資料傳輸,以及促進上述第二儲存控制器與上述固態硬碟之間的資料傳輸。
  4. 如申請專利範圍第1項所述之多節點儲存系統,其中:上述第一快閃映像檔包括一第一基板管理控制器韌體快閃映像檔,且上述第三快閃映像檔包括一第一儲存控制器韌體快閃映像檔;以及上述第二快閃映像檔包括一第二基板管理控制器韌體快閃映像檔,且上述第四快閃映像檔包括一第二儲存控制器韌體快閃映像檔。
  5. 如申請專利範圍第1項所述之多節點儲存系統,其中:上述第一交換器裝置、上述第二交換器裝置、上述第三交換器裝置以及上述第四交換器裝置中的每一個,都包括一多工器,且都被配置來多路傳輸上述第一基板管理控制器或上述第二基板管理控制器;上述第一基板管理控制器被配置來擷取儲存在上述第二快閃唯讀記憶體中的上述第二快閃映像檔,或是儲存在上述第四快閃唯讀記憶體中的上述第四快閃映像檔;以及上述第二基板管理控制器被配置來擷取儲存在上述第一快閃唯讀記憶體中的上述第一快閃映像檔,或是儲存在上述第三快閃唯讀記憶體中的上述第三快閃映像檔。
  6. 一種韌體更新方法,用於更新一多節點儲存系統中的韌體,上述方法包括:電源重啟一第一節點,上述第一節點包括一第一基板管理控制器、被配置來儲存一第一快閃映像檔的一第一快閃唯讀記憶體、以 及被配置來將上述第一基板管理控制器連接至上述第一快閃唯讀記憶體的一第一交換器裝置;啟動上述第一快閃唯讀記憶體中的上述第一快閃映像檔;判斷下列情況中的至少一者:上述第一節點中的至少一個硬體組件並未連線或並未備便以用於韌體更新、上述第一快閃映像檔已損壞及/或上述第一節點無法啟動至作業系統;以及藉由上述第一基板管理控制器進行擷取,擷取儲存於一第二節點之一第二快閃唯讀記憶體中的一第二快閃映像檔,其中上述第一基板管理控制器連接至上述第二節點中的一第二交換器裝置,且上述第二交換器裝置連接至上述第二快閃唯讀記憶體,其中上述第二快閃映像檔與上述第一快閃映像檔相同,其中上述第一節點更包括一第一儲存控制器、被配置來儲存一第三快閃映像檔的一第三快閃唯讀記憶體、以及被配置來將上述第一儲存控制器或上述第二節點的一第二基板管理控制器連接至上述第三快閃唯讀記憶體的一第三交換器裝置,且上述第二節點更包括一第二儲存控制器、被配置來儲存一第四快閃映像檔的一第四快閃唯讀記憶體、以及被配置來將上述第一基板管理控制器或上述第二儲存控制器連接至上述第四快閃唯讀記憶體的一第四交換器裝置,其中上述第四快閃映像檔與上述第三快閃映像檔相同。
  7. 如申請專利範圍第6項所述之方法,其中:上述第一快閃映像檔包括一第一基板管理控制器韌體快閃映像 檔,且上述第三快閃映像檔包括一第一儲存控制器韌體快閃映像檔;以及上述第二快閃映像檔包括一第二基板管理控制器韌體快閃映像檔,且上述第四快閃映像檔包括一第二儲存控制器韌體快閃映像檔。
  8. 如申請專利範圍第6項所述之方法,其中上述第一交換器裝置、上述第二交換器裝置、上述第三交換器裝置以及上述第四交換器裝置中的每一個,都包括一多工器,且都被配置來多路傳輸上述第一基板管理控制器或上述第二基板管理控制器。
TW108115186A 2019-03-06 2019-05-02 多節點儲存系統及其韌體的更新方法 TWI724415B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/294,566 US11461085B2 (en) 2019-03-06 2019-03-06 Firmware upgrade method in multiple node storage system
US16/294,566 2019-03-06

Publications (2)

Publication Number Publication Date
TW202034165A TW202034165A (zh) 2020-09-16
TWI724415B true TWI724415B (zh) 2021-04-11

Family

ID=67262099

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108115186A TWI724415B (zh) 2019-03-06 2019-05-02 多節點儲存系統及其韌體的更新方法

Country Status (5)

Country Link
US (1) US11461085B2 (zh)
EP (1) EP3705999B1 (zh)
JP (1) JP6850331B2 (zh)
CN (1) CN111666111B (zh)
TW (1) TWI724415B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI840849B (zh) * 2022-03-15 2024-05-01 廣達電腦股份有限公司 計算系統、電腦實施方法及電腦程式產品

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210216640A1 (en) * 2020-01-10 2021-07-15 Dell Products L.P. Systems and methods for hardware root of trust with protected redundant memory for authentication failure scenarios
JP2022040056A (ja) 2020-08-28 2022-03-10 東ソー株式会社 Cha型ゼオライト及びその製造方法
TWI764481B (zh) * 2020-12-28 2022-05-11 技嘉科技股份有限公司 機箱管理控制裝置以及機箱管理控制系統
CN112783536A (zh) * 2021-03-15 2021-05-11 英业达科技有限公司 利用基板管理控制器进行固件更新动作的伺服器系统
TWI777664B (zh) 2021-07-12 2022-09-11 神雲科技股份有限公司 嵌入式系統的開機方法
CN113645067A (zh) * 2021-08-03 2021-11-12 加弘科技咨询(上海)有限公司 多节点基板管理控制器的网络管理系统及方法
US11809289B2 (en) * 2021-10-15 2023-11-07 Dell Products L.P. High-availability (HA) management networks for high performance computing platforms

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662702A (zh) * 2012-03-29 2012-09-12 华为技术有限公司 设备管理系统、装置、基板管理装置及方法
US20140181364A1 (en) * 2012-12-21 2014-06-26 Dell Products L.P. Systems And Methods For Support Of Non-Volatile Memory On A DDR Memory Channel
TWI547873B (zh) * 2015-02-13 2016-09-01 營邦企業股份有限公司 端點伺服器的控制模組及其韌體更新方法
CN105988844A (zh) * 2015-03-02 2016-10-05 营邦企业股份有限公司 端点服务器的控制模块及其韧体更新方法
US20170168744A1 (en) * 2014-10-31 2017-06-15 Hewlett Packard Enterprise Development Lp Combined backup power
US10120676B2 (en) * 2017-01-20 2018-11-06 Mitac Computing Technology Corporation Method of updating baseboard management controller firmware for fan speed control

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809836B2 (en) * 2004-04-07 2010-10-05 Intel Corporation System and method for automating bios firmware image recovery using a non-host processor and platform policy to select a donor system
US7761734B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
JP5186551B2 (ja) * 2007-04-13 2013-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション ピア・プログラマブル・ハードウェア・デバイスの自動ファームウェア復元方法及びプログラム
CN105700970A (zh) * 2014-11-25 2016-06-22 英业达科技有限公司 服务器系统
CN105718277B (zh) * 2014-12-05 2020-04-10 中国长城科技集团股份有限公司 一种bios更新的保护方法、装置和系统
US9846617B2 (en) * 2015-05-07 2017-12-19 Dell Products, Lp System and method for self-healing basic input/output system boot image and secure recovery
CN105302248B (zh) * 2015-11-13 2019-02-26 上海兆芯集成电路有限公司 芯片组以及服务器系统
CN106201608A (zh) * 2016-07-01 2016-12-07 南京百敖软件有限公司 计算机uefi固件更新方法
TWI633487B (zh) * 2017-05-05 2018-08-21 神雲科技股份有限公司 自動回復基本輸入輸出系統映像檔的方法及電腦系統
TWI655582B (zh) * 2017-09-12 2019-04-01 神雲科技股份有限公司 具有雙韌體儲存空間之伺服器及其韌體更新方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662702A (zh) * 2012-03-29 2012-09-12 华为技术有限公司 设备管理系统、装置、基板管理装置及方法
US20140181364A1 (en) * 2012-12-21 2014-06-26 Dell Products L.P. Systems And Methods For Support Of Non-Volatile Memory On A DDR Memory Channel
US20170168744A1 (en) * 2014-10-31 2017-06-15 Hewlett Packard Enterprise Development Lp Combined backup power
TWI547873B (zh) * 2015-02-13 2016-09-01 營邦企業股份有限公司 端點伺服器的控制模組及其韌體更新方法
CN105988844A (zh) * 2015-03-02 2016-10-05 营邦企业股份有限公司 端点服务器的控制模块及其韧体更新方法
US10120676B2 (en) * 2017-01-20 2018-11-06 Mitac Computing Technology Corporation Method of updating baseboard management controller firmware for fan speed control

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI840849B (zh) * 2022-03-15 2024-05-01 廣達電腦股份有限公司 計算系統、電腦實施方法及電腦程式產品
US12045623B2 (en) 2022-03-15 2024-07-23 Quanta Computer Inc. Systems and methods for memory content sharing between hosts and management controllers

Also Published As

Publication number Publication date
EP3705999B1 (en) 2022-04-27
CN111666111B (zh) 2023-03-24
JP6850331B2 (ja) 2021-03-31
TW202034165A (zh) 2020-09-16
US11461085B2 (en) 2022-10-04
US20200285455A1 (en) 2020-09-10
EP3705999A1 (en) 2020-09-09
JP2020144834A (ja) 2020-09-10
CN111666111A (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
TWI724415B (zh) 多節點儲存系統及其韌體的更新方法
TWI584196B (zh) 基本輸入輸出系統回復管理系統、電腦程式產品 以及基本輸入輸出系統回復方法
TWI578233B (zh) 統一韌體管理系統、非揮發電腦可讀取媒體以及統一韌體管理方法
DK3179359T3 (en) PROCEDURE FOR SENDING DATA, PROCEDURE FOR RECEIVING DATA AND STORAGE UNIT
US10241868B2 (en) Server control method and server control device
US20170102952A1 (en) Accessing data stored in a remote target using a baseboard management controler (bmc) independently of the status of the remote target's operating system (os)
US7797526B2 (en) Service processor host flash update over LPC
TW201729123A (zh) 遠程地啟動部署程式的方法與伺服器
TWI453592B (zh) 利用儲存區域網路回復電腦系統的系統及方法
TW202030602A (zh) 基本輸入/輸出系統的恢復及更新的方法及系統
US10430082B2 (en) Server management method and server for backup of a baseband management controller
WO2015074235A1 (zh) 一种内存数据的迁移方法、计算机和装置
TWI739127B (zh) 提供系統資料之方法、系統及伺服器
US20130024726A1 (en) System and method for removable network attached storage enabling system recovery from backup
US20140359266A1 (en) Optimizing boot time of a storage system
TWI528287B (zh) 伺服器系統
TWI840849B (zh) 計算系統、電腦實施方法及電腦程式產品
TW201629757A (zh) 端點伺服器的控制模組及其韌體更新方法
JP2017041110A (ja) マルチコンピュータシステム,管理装置および管理プログラム
TWI812521B (zh) 基於硬碟類型的開機方法
CN113867835B (zh) 用于dsp动态加载的装置及方法
JP5970846B2 (ja) 計算機システム及び計算機システムの制御方法
JP2024006308A (ja) Raid構成管理装置、raid構成管理方法及びraid構成管理プログラム
JP2011204266A (ja) 基本入出力プログラムの冗長管理方法及びデータ処理装置