JP6850331B2 - マルチノードストレージシステムにおけるファームウェアアップグレード方法 - Google Patents

マルチノードストレージシステムにおけるファームウェアアップグレード方法 Download PDF

Info

Publication number
JP6850331B2
JP6850331B2 JP2019185198A JP2019185198A JP6850331B2 JP 6850331 B2 JP6850331 B2 JP 6850331B2 JP 2019185198 A JP2019185198 A JP 2019185198A JP 2019185198 A JP2019185198 A JP 2019185198A JP 6850331 B2 JP6850331 B2 JP 6850331B2
Authority
JP
Japan
Prior art keywords
node
bmc
flash
storage
flash image
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2019185198A
Other languages
English (en)
Other versions
JP2020144834A (ja
Inventor
凱業 潘
凱業 潘
俊慶 余
俊慶 余
舜宏 王
舜宏 王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
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 Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of JP2020144834A publication Critical patent/JP2020144834A/ja
Application granted granted Critical
Publication of JP6850331B2 publication Critical patent/JP6850331B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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

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)

Description

本発明は、ネットワークコンピューティング(network computing)に関し、より具体的には、マルチノードストレージシステムにおけるファームウェアのアップデートに関する。
サーバ又はストレージシステムがパワーサイクルされると、中央処理装置(CPU)によって行われる最初の動作は、BIOS(Basic Input and Output System)を起動するメッセージを送信することである。BIOSは、POST(Power On Self-Test)と呼ばれる一連のテストを実行して、システムデバイスが正常に動作しているかどうかを確認する。BIOSは、サーバが動作するために不可欠な機能を有効にする。BIOSが破損している場合、CPUは機能することができない。しかし、一般的なBIOSは、破損した場合に、有効なBIOSイメージを復元することができる。これは、システム内で書き込み可能(in-system writable)ではないフラッシュメモリにリカバリプログラムを保存することによって実現される。これにより、リカバリプログラムが破損することがない。通常、リカバリプログラムは、最小限のシステムハードウェアを初期化して、フラッシュドライブ又は他の取り外し可能な媒体から新たなコードイメージを取得する機能を有する単純なコードである。この電源のパワーサイクル及び復元機能は、別のコントローラ(例えば、ベースボード管理コントローラやメモリスイッチコントローラ等)のファームウェアにも必要である。
本発明は、マルチノードストレージシステムにおけるファームウェアアップグレード方法を提供する。
本発明は、第1ノード及び第2ノードを有するマルチストレージノードシステムを提供する。第1ノードは、第1ベースボード管理コントローラ(BMC)と、第1フラッシュイメージを記憶するように構成された第1フラッシュROMと、第1BMCを第1フラッシュROMに接続するように構成された第1スイッチデバイスと、を含む。第2ノードは、第1スイッチデバイスに接続された第2BMCと、第2フラッシュイメージを記憶するように構成された第2フラッシュROMと、第2BMCを第2フラッシュROMに接続するように構成された第2スイッチデバイスと、を含む。第1BMCは、第2スイッチデバイスに接続されている。また、第2フラッシュイメージは、第1フラッシュと同じである。
いくつかの実施形態では、第1ノードは、第1ストレージコントローラと、第3フラッシュイメージを記憶するように構成された第3フラッシュROMと、第1BMC又は第2BMCを第3フラッシュROMに接続するように構成された第3スイッチデバイスと、をさらに含む。いくつかの実施形態では、第2ノードは、第2ストレージコントローラと、第4フラッシュイメージを記憶するように構成された第4フラッシュROMと、第1BMC又は第2BMCを第4フラッシュROMに接続するように構成された第4スイッチと、をさらに含み、第4フラッシュイメージは、第3フラッシュイメージと同じである。
また、第1ノードは、第1ストレージエキスパンダ/スイッチコントローラ及び第2ストレージエキスパンダ/スイッチコントローラに接続された第1の複数のストレージデバイスを含むことができる。第1の複数のストレージデバイスは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、及び/又は、不揮発性メモリエクスプレス(NVMe)を含むことができる。いくつかの実施形態では、NVMeは、ホストコントローラインタフェース及びストレージプロトコルとして機能するように構成されており、第1ストレージエキスパンダ/スイッチコントローラとSSDドライブとの間のデータ送信を促進する。
同様に、第2ノードは、第1ストレージエキスパンダ/スイッチコントローラ及び第2ストレージエキスパンダ/スイッチコントローラに接続された第2の複数のストレージデバイスを含むことができる。第2の複数のストレージデバイスは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、及び/又は、不揮発性メモリエクスプレス(NVMe)を含むことができる。NVMeは、ホストコントローラインタフェース及びストレージプロトコルとして機能するように構成されており、第2ストレージエキスパンダ/スイッチコントローラとSSDドライブとの間のデータ送信を促進する。
いくつかの実施形態では、第1フラッシュイメージは、第1BMCファームウェアフラッシュイメージを含み、第2フラッシュイメージは、第1ストレージエキスパンダ/スイッチコントローラファームウェアフラッシュイメージを含む。第3フラッシュイメージは、第2BMCファームウェアフラッシュイメージを含み、第4フラッシュイメージは、第2ストレージエキスパンダ/スイッチコントローラファームウェアフラッシュイメージを含む。
第1スイッチデバイス、第2スイッチデバイス、第3スイッチデバイス及び第4スイッチデバイスの各々は、マルチプレクサ(MUX)を含む。第1スイッチデバイス、第2スイッチデバイス、第3スイッチデバイス及び第4スイッチデバイスは、第1BMC及び第2BMCを多重化するように構成されてもよい。
いくつかの実施形態では、第1BMCは、第3フラッシュROMに記憶された第3フラッシュイメージ、又は、第4フラッシュROMに記憶された第4フラッシュイメージを取り出すように構成されている。同様に、第2BMCは、第1フラッシュROMに記憶された第1フラッシュイメージ、又は、第2フラッシュROMに記憶された第2フラッシュイメージを取り出すように構成されている。
本発明の様々な例は、マルチストレージノードシステムにおけるファームウェアのアップデート方法を提供する。方法は、第1ノードをパワーサイクル(power cycling)する工程を含む。第1ノードは、第1BMCと、第1フラッシュイメージを記憶するように構成された第1フラッシュROMと、第1BMCを第1フラッシュROMに接続するように構成された第1スイッチデバイスと、を含む。また、方法は、第1フラッシュROM内の第1フラッシュイメージをアクティブにする工程を含む。方法は、第1ノード内のハードウェアコンポーネントがオンラインでないか、ファームウェアアップデートの準備ができているか、第2フラッシュイメージが破損しているか、及び/又は、第1ノードが起動できないかを判別する工程を含む。方法は、第1BMCによって、第2ノードに記憶された第2フラッシュROM内に記憶された第2フラッシュイメージを取り出す工程を含む。第1BMCは、第2ノード内の第2スイッチデバイスに接続されている。第2フラッシュイメージは、第1フラッシュと同じである。
本発明の追加の特徴及び利点が、以下の説明に記載され、その一部が説明から明らかになるか、本明細書で開示されている原理を実施することで習得することができる。本発明の特徴及び利点は、添付の特許請求の範囲で特に指摘されている機器及び組み合わせの手段によって実現及び達成することができる。本発明のこれらの特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲に完全に記載されているか、又は、本明細書に記載されている原理から得られる。
本発明によれば、効果的なファームウェアアップグレード方法を提供することができる。
上記の開示内容と、その利点及び特徴を得ることができる方法を説明するために、上記の原理のより具体的な説明は、添付の図面に示される特定の例を参照することによって提示される。これらの図面は、本開示の例示的な態様のみを示すものであり、よって、本発明の限定としてみなされない。以下の図面を使用して、これらの原理を、さらなる特徴及び詳細で記載及び説明する。
従来技術による、マルチノードストレージシステムを示す図である。 本発明の一実施形態による、マルチノードストレージシステムを示す図である。 本発明の一実施形態による、ファームウェアイメージをアップデート及び書き込むプロセスのフロー図である。
添付の図面を参照して本発明を説明する。図面において、類似又は同等の要素を示すために、同様の符号が用いられている。図面は縮尺通りに示されておらず、単に本発明を説明するために提供されている。本発明のいくつかの態様を、例示的なアプリケーションを参照して以下に説明する。本発明の十分な理解を提供するために、いくつかの特定の詳細、関係及び方法が示されていることを理解されたい。しかし、当業者であれば、1つ以上の特定の詳細を用いずに他の方法を用いて本発明を実施し得ることを容易に認識するであろう。他の例では、本発明を曖昧にするのを避けるために、周知の構造又は動作を詳細に示していない。いくつかの動作が異なる順序で及び/又は他の動作や事象と同時に発生し得るので、本発明は、図示された動作や事象の順序によって限定されない。さらに、本発明による方法を実施するために、図示された全ての動作や事象が必要とされているわけではない。
図1は、従来技術による従来のマルチノードストレージシステム50を示す図である。マルチノードストレージシステム50は、第1ノード100と、第2ノード200と、を有することができる。第1ノード100及び第2ノード200両方で示されるコンポーネントは同じである。不要な重複を回避するために、第1ノード100について詳細に説明する。この例示のために、第2ノード200のコンポーネントは、第1ノード100と同じであることを理解されたい。
第1ノード100は、複数のストレージデバイス110を含むことができる。複数のストレージデバイス110は、様々なタイプのストレージデバイスドライブを含むことができる。ストレージデバイスドライブは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)及び不揮発性メモリエクスプレス(NVMe)デバイスを含むことができるが、これらに限定されない。また、第1ノード100は、ストレージエキスパンダスイッチコントローラ120と、ベースボード管理コントローラ(BMC)150と、第1フラッシュROM140と、第2フラッシュROM160と、を含む。第1フラッシュROM140は、BMC150に接続されており、第2フラッシュROM160は、ストレージエキスパンダスイッチコントローラ120に接続されている。第1フラッシュROM140は、BMC150用のファームウェアを含み、第2フラッシュROM160は、ストレージエキスパンダスイッチコントローラ120用のファームウェアを含む。また、第1ノード100は、ローカルエリアネットワーク(LAN)アダプタ130を含むことができる。第1ノード100は、LANアダプタ130を介して、サーバシステム又はリモートコントローラに接続され得る。
同様に、第2ノード200は、ストレージエキスパンダスイッチコントローラ220と、BMC250と、第3フラッシュROM240と、第4フラッシュROM260と、を含むことができる。第3フラッシュROM240は、バス241によってBMC250に接続することができ、第4フラッシュROM260は、バス261によってストレージエキスパンダスイッチコントローラ220に接続することができる。また、第2ノード200は、第2ノード200をサーバシステム又はリモートコントローラに接続するLANアダプタ230を含むことができる。
当業者であれば理解できるように、複数のストレージデバイス110のNVMeデバイスは、ホストコントローラインタフェース及びストレージプロトコルとして機能し、ストレージエキスパンダスイッチコントローラ120と、複数のストレージデバイス110内のストレージデバイス(例えば、SSD等)との間のデータ送信を促進することができる。ストレージエキスパンダスイッチコントローラ120は、特定のタイプのバス(例えば、PCIe、SAS又はSATA等)であり、バックプレーンボード上のストレージデバイスへのアクセスを可能にする。周辺機器相互接続エクスプレス(Peripheral Component Interconnect Express:PCIe)バス112を介した複数のストレージデバイス110とストレージエキスパンダスイッチコントローラ120との間のデータ送信が促進される。同様に、PCIeバス111を介した複数のストレージデバイス110と第2ノード200のストレージエキスパンダスイッチコントローラ220との間のデータ送信が促進される。複数のストレージデバイス210内のNVMeデバイスは、PCIeバス212を介してストレージエキスパンダスイッチコントローラ120に接続し、PCIeバス211を介してストレージエキスパンダスイッチコントローラ220に接続することができる。ここではPCIeバスが実施されているが、SATA(Serial Advanced Technology Attachment)及びSAS(Serial Attached SCSI)インタフェースが実施されてもよいことを理解されたい。
また、第1ノード100のBMC150は、ベースボードバス151,251によって、第2ノード200のBMC250に接続されている。各制御ノードは、独立したBMCを有しているので、これらは独立して又は共に動作することができる。さらに、BMC150は、バス141によって第1フラッシュROM140に接続されている。ストレージエキスパンダスイッチコントローラ120は、バス161によって第2フラッシュROM160に接続されている。
BMC150は、通常、第1フラッシュROM140に配置されたファームウェアのコードイメージを含む。また、第1ノード100は、第2フラッシュROM160に配置されたストレージエキスパンダスイッチコントローラ120のファームウェアのコードイメージを有することができる。フラッシュに含まれるこれらのイメージは、ブートブロック(boot block)セクションとオペレーショナルコード(operational code)セクションとの少なくとも2つのコードセクションを有する。通常、ブートブロックは、ライトプロテクト(write-protected)されており、フィールドではアップデートされない。一方、オペレーショナルイメージは、フィールドでアップデートされる。既存のシステムでは、システムがオペレーティングシステム(OS)を起動した場合、BMCファームウェアイメージ(第1フラッシュROM140に記憶されているイメージ)のアップデートのみ行われる。第1ノード100がパワーサイクルされると、BMC150によって行われる第1動作は、フラッシュROM140に記憶されたファームウェアをアクティブにするメッセージを送信することである。次に、ファームウェアは、POST(Power On Self-Test)と呼ばれる一連のテストを実行して、システムデバイスが正常に動作しているかどうかを確認する。第2フラッシュROM160に記憶されたファームウェアイメージは、ストレージエキスパンダスイッチコントローラ120が動作するための必須機能を行えるようにする。ファームウェアイメージのアップグレードが破損又は欠陥がある場合、システムは、BMC150又はストレージエキスパンダスイッチコントローラ120を起動することができず、動作不能になる。本願は、独立して動作するBMC(例えば、第2ノード200のBMC250)によってファームウェアをアップデートする方法及びシステムを教示する。
図2は、本発明の一実施形態による、マルチノードストレージシステム75を示す図である。マルチノードストレージシステム75は、第1ノード300と、第2ノード400と、を含むことができる。第1ノード300及び第2ノード400の両方で示されているコンポーネントは同じである。不要な重複を回避するために、第1ノード300について詳細に説明する。例示のために、第2ノード400のコンポーネントは、第1ノード300のコンポーネントと同じであることを理解されたい。本明細書では2つのノードが示されているが、マルチノードストレージシステム75は、数千ではないにしても数百のノードを有することができることを理解されたい。
第1ノード300は、複数のストレージデバイス310を含むことができる。複数のストレージデバイス310は、様々なタイプのストレージデバイスドライブを含むことができる。ストレージデバイスドライブは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)又は不揮発性メモリエクスプレス(NVMe)デバイスを含むことができるが、これらに限定されない。また、第1ノード300は、ストレージエキスパンダスイッチコントローラ320と、BMC350と、第1フラッシュROM340と、第2フラッシュROM360と、を含む。第1フラッシュROM340は、第1スイッチデバイス370を介してBMC350に接続することができる。第2フラッシュROM360は、第2スイッチデバイス380を介してストレージエキスパンダスイッチコントローラ320に接続することができる。これについては、以下に詳細に説明する。また、第1ノード300は、ローカルエリアネットワーク(LAN)アダプタ330を含むことができる。第1ノード300は、LANアダプタ330を介してサーバシステム又はリモートコントローラに接続することができる。
同様に、第2ノード400は、ストレージエキスパンダスイッチコントローラ420と、BMC450と、第3フラッシュROM440と、第4フラッシュROM460と、を含むことができる。第3フラッシュROM440は、バス441及び第3スイッチデバイス470によってBMC450に接続することができる。第4フラッシュROM460は、バス461及び第4スイッチデバイス480によってストレージエキスパンダスイッチコントローラ420に接続することができる。スイッチデバイスについては、第1ノード300に関連して以下に詳細に説明する。第1ノード300及び第2ノード400のスイッチデバイスの機能が類似していることを理解されたい。また、第2ノード400は、第2ノード400をサーバシステム又はリモートコントローラに接続するLANアダプタ430を含むことができる。
当業者であれば理解できるように、複数のストレージデバイス310のNVMeデバイスは、ホストコントローラインタフェース及びストレージプロトコルとして機能し、ストレージエキスパンダスイッチコントローラ320と、複数のストレージデバイス310内に記憶された任意のSSDドライブとの間のデータ送信を促進することができる。PCIeバス312を介した複数のストレージデバイス310とストレージエキスパンダスイッチコントローラ320との間のデータ送信が促進される。同様に、PCIeバス312を介した複数のストレージデバイス310と第2ノード400のストレージエキスパンダスイッチコントローラ420との間のデータ送信が促進される。複数のストレージデバイス410内に記憶されたNVMeデバイスは、PCIeバス412を介してストレージエキスパンダスイッチコントローラ320に接続され、PCIeバス311を介してストレージエキスパンダスイッチコントローラ420に接続され得ることを理解されたい。また、ここではPCIeバスが実施されているが、SATA及びSASインタフェースも実施可能であることも理解されたい。
また、第1ドライブ300のBMC350は、ベースボードバス351,451によって、第2ドライブ400のBMC450に接続されている。上述したように、BMC350は、第1スイッチデバイス370を介して第1フラッシュROM340に接続されている。具体的には、BMC350は、バス341によって第1スイッチデバイス370に接続されている。第1スイッチデバイス370は、バス342によって第1フラッシュROM340に接続することができる。ストレージエキスパンダスイッチコントローラ320は、第2スイッチデバイス380を介して第2フラッシュROM360に接続されている。具体的には、ストレージエキスパンダスイッチコントローラ320は、バス361によって第2スイッチデバイス380に接続されている。第2スイッチデバイス380は、バス362によって第2フラッシュROM360に接続することができる。
さらに、第2ノード400のBMC450は、第1スイッチデバイス370を介して第1フラッシュROM340に接続されている。具体的には、BMC450は、バス351及びバス371によって、第1ノード300の第1スイッチデバイス370に接続することができる。第1スイッチデバイス370は、第1フラッシュROM340に接続することができる。同様に、BMC350は、バス415及びバス471によって、第2ノード400の第3スイッチデバイス470に接続することができる。第2ノード400のBMC450は、第2スイッチデバイス380を介して第2フラッシュROM360に接続されている。具体的には、BMC450は、バス351及びバス381によって、第1ノード300の第2スイッチデバイス380に接続することができる。第2スイッチデバイス380は、バス362によって第2フラッシュROM360に接続することができる。同様に、BMC350は、バス451及びバス481によって、第2ノード400の第4スイッチデバイス480に接続することができる。
スイッチデバイス370,380は、SPIマルチプレクサ(MUX)デバイスとして構成することができる。いくつかの実施形態では、第1スイッチデバイス370は、2つのSPI(Serial Peripheral Interface)マスタデバイス、BMC350及びBMC450を、単一のスレーブデバイス(例えば、第1フラッシュROM340等)に多重化することができる。BMC350は、BMC350から第1スイッチデバイス370に延在する出力ピンによって、第1スイッチデバイス370のマスタデバイスの選択を制御することができる。同様に、第2スイッチデバイス380は、2つのSPIマスタデバイス、ストレージエキスパンダスイッチコントローラ320及びBMC450を、単一のスレーブデバイス(例えば、第2フラッシュROM360等)に多重化することができる。BMC450は、BMC450から第2スイッチデバイス380に延在する出力ピンによって、バス381及びベースボードバス351を介してマスタデバイスの選択を制御することができる。
通常、BMC350は、第1フラッシュROM340に配置されたファームウェアコードイメージを有する。また、第1ノード300は、第2フラッシュROM360に配置されたストレージエキスパンダスイッチコントローラ320用のファームウェアコードイメージを有することができる。フラッシュに含まれるこれらのイメージは、ブートブロックセクションとオペレーショナルコードセクションとの少なくとも2つのコードセクションを有する。通常、ブートブロックはライトプロテクトされており、フィールドでアップデートされない。逆に、オペレーショナルイメージは、フィールドでアップデートされ得る。
例示的なマルチノードストレージシステム75では、システムがOSを起動していなくても、第1フラッシュROM340に記憶された第1ファームウェアイメージをアップデートすることができる。ファームウェアイメージのアップグレードが破損又は欠陥のある場合であっても、システムは、分離して独立したノードのBMC450を用いて、オペレーティングシステムを起動することができる。フラッシュイメージは、第3フラッシュROM440から第1フラッシュROM340にリカバーされ、次いで、第1ノード300のリセット後に、BMC350は、第1フラッシュROM340から起動する。例えば、第1ノード300がパワーサイクルされると、BMC350が行う第1動作は、フラッシュROM340及びフラッシュROM360の両方に記憶されたファームウェアイメージをアクティブにするメッセージを送信することである。次に、ファームウェアは、POST(Power On Self-Test)と呼ばれる一連のテストを実行して、システムデバイスが正常に動作しているかどうかを確認する。第1フラッシュROM340に記憶されたファームウェアイメージが破損している場合、BMC350は、第2ノード400の第3フラッシュROM440に記憶されたファームウェアイメージを取り出すことができる。第2ノード400の第3フラッシュROM440に記憶されたファームウェアイメージは、第1フラッシュROM340にコピーされ、第1ノード300のBMC350を起動するために用いられる。同様に、ストレージエキスパンダスイッチコントローラ320用の第2フラッシュROM360のファームウェアが破損している場合、BMC350は、第4フラッシュROM460内のファームウェアのコピーにアクセスし、これを第2フラッシュROM360にコピーして、ストレージエキスパンダスイッチコントローラ320を起動することができる。
図3は、本発明の一実施形態による、ノードのBMC用のファームウェアイメージをアップデート及び書き込むプロセス600のフロー図である。
本明細書で示されるプロセス600を、図2のマルチノードストレージシステム75のコンポーネントを参照して詳細に説明する。プロセス600は、第2ノード400を用いて、マルチノードストレージシステム75の第1ノード300内のファームウェアをアップデートする工程を詳細に説明する。最初の事項として、工程601において、第1ノード300の複数のハードウェアコンポーネントがオンラインであり、ファームウェアのアップデートの準備ができているかどうかが判別される。第1ノード300のハードウェアコンポーネントがオンラインであり、ファームウェアのアップデートの準備ができていると判別された場合、プロセスは工程602に進む。工程602において、マルチノードストレージシステム75は、OSを起動することを試みる。起動が成功した場合、プロセス600は工程603に進み、ファームウェアのアップグレードを実行する。工程601において、ハードウェアコンポーネントがオンラインでないか、ファームウェアのアップデートの準備ができていない場合、プロセス600は工程604に進む。同様に、工程602において、マルチノードストレージシステム75がOSを起動することができない場合、プロセス600は工程604に進む。最後に、工程601、工程602又は工程603において何れの条件も満たされない場合、プロセス600は工程604に進み、ファームウェアのアップグレードが実行されない。この時点で、プロセス600は工程605に進み、マルチノードストレージシステム75がリモートシステムに切り替わる。この場合、リモートシステムは、第2ノード400である。具体的には、ユーザファームウェアボリュームを、1つ以上のメモリデバイス(例えば、BMC350の第1フラッシュROM340、又は、ストレージエキスパンダスイッチコントローラ320の第2フラッシュROM360等)に記憶することができる。ユーザファームウェアボリュームは、マルチノードストレージシステム75の任意のフラッシュメモリストレージコンポーネントに記憶されることを理解されたい。BMC350は、ブートプロセス中に第1ノード300によって用いられるコントローラファームウェアをアップデートするためのファームウェアファイルを取得することができる。具体的には、BMC350は、ファームウェアファイルを生成又はコンパイルし、これをメモリ(例えば、ROM)に記憶して、第1ノード300のコントローラファームウェアに展開(deployment)又は統合(integration)することができる。しかし、ファームウェアのアップデートプロセスが中断された場合又は完了できなかった場合、BMC350は、第2ノード400の第3フラッシュROM440に記憶されたファームウェアイメージを取り出すことができる。第2ノード400の第3フラッシュROM440に記憶されたファームウェアイメージは、第1フラッシュROM340にコピーされ得る。次に、コピーされたファームウェアを用いて、第1ノード300のオペレーティングシステムを起動することができる。同じプロセスを第4フラッシュROM460で実施可能であることを理解されたい。
本発明の特定の実施形態を示し説明してきたが、当業者は、より広い態様において本発明から逸脱することなく変更及び修正を行うことが可能であることが明らかであろう。よって、添付の特許請求の範囲の目的は、本発明の趣旨及び範囲内の全てのこのような変更及び修正をカバーすることである。上述した説明及び添付の図面に記載されている事項は、限定としてではなく例示としてのみ提供されている。本発明の実際の範囲は、従来技術に基づく適切な視点で見た場合に、特許請求の範囲で定義されていることを意図している。
本明細書で用いられる用語は、特定の実施形態のみを説明することを目的としており、本発明を限定することを意図していない。本明細書で使用されているように、単数形(例えば、「一」、「1つの」、「この」等)という単数形は、文脈が明らかにそうでないことを示さない限り、複数形も含むことを意図している。さらに、「含む」、「有する」等の用語又はこれらの変形は、詳細な説明及び/又は特許請求の範囲で使用される限りにおいて、「備える」という用語と同様の意味で包括的であることを意図している。
特に定義されない限り、本明細書で使用される用語(技術用語及び科学用語)は、当業者によって通常理解されるのと同じ意味を有する。さらに、一般的に使用される辞書で定義されているような用語は、関連する技術の文脈における意味と一致する意味を有すると解釈されるべきであり、本明細書で明示的に定義されていない限り、理想的又は過度に形式的な意味で解釈されない。
50…従来のマルチノードストレージシステム
100,300…第1ノード
200,400…第2ノード
110,210,310,410…ストレージデバイス
111,112,211,212,311,312,411,412…PCIeバス
120,220,320,420…ストレージエキスパンダスイッチコントローラ
130,230,330,430…ローカルエリアネットワークアダプタ
140,340…第1フラッシュROM
141,161,241,261,341,342,361,362,371,381,441,461,471,481…バス
150,250,350,450…BMC
151,251,351,451…ベースボードバス
160,360…第2フラッシュROM
240,440…第3フラッシュROM
260,460…第4フラッシュROM
75…マルチノードストレージシステム
370…第1スイッチデバイス
380…第2スイッチデバイス
470…第3スイッチデバイス
480…第4スイッチデバイス
600…プロセス
601〜605…工程

Claims (10)

  1. 第1ノード及び第2ノードを有するマルチノードストレージシステムであって、
    前記第1ノードは、
    第1ベースボード管理コントローラ(BMC)と、
    第1フラッシュイメージを記憶するように構成された第1フラッシュROMと、
    前記第1BMCを前記第1フラッシュROMに接続するように構成された第1スイッチデバイスと、を含み、
    前記第2ノードは、
    前記第1スイッチデバイスに接続された第2BMCと、
    第2フラッシュイメージを記憶するように構成された第2フラッシュROMと、
    前記第2BMCを前記第2フラッシュROMを接続するように構成された第2スイッチデバイスと、を含み、
    前記第1BMCは、前記第2スイッチデバイスに接続されており、
    前記第2フラッシュイメージは、前記第1フラッシュイメージと同じである、ことを特徴とするマルチノードストレージシステム。
  2. 前記第1ノードは、第1ストレージコントローラと、第3フラッシュイメージを記憶する第3フラッシュROMと、前記第1BMC又は前記第2BMCを前記第3フラッシュROMに接続する第3スイッチデバイスと、を含み、
    前記第2ノードは、第2ストレージコントローラと、第4フラッシュイメージを記憶する第4フラッシュROMと、前記第1BMC又は前記第2BMCを前記第4フラッシュROMに接続する第4スイッチデバイスと、を含み、前記第4フラッシュイメージは、前記第3フラッシュイメージと同じである、ことを特徴とする請求項1に記載のマルチノードストレージシステム。
  3. 前記第1ノードは、第1ストレージスイッチエキスパンダコントローラ及び第2ストレージスイッチエキスパンダコントローラに接続された第1の複数のストレージデバイスを含み、
    前記第2ノードは、前記第1ストレージスイッチエキスパンダコントローラ及び前記第2ストレージスイッチエキスパンダコントローラに接続された第2の複数のストレージデバイスを含み、
    前記第1ストレージデバイス及び前記第2ストレージデバイスは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)及び不揮発性メモリエクスプレス(NVMe)のうち少なくとも1つを含む、ことを特徴とする請求項1に記載のマルチノードストレージシステム。
  4. 前記NVMeは、ホストコントローラインタフェース及びストレージプロトコルとして機能し、前記第2ストレージスイッチエキスパンダコントローラと前記SSDドライブとの間のデータ送信を促進する、ことを特徴とする請求項3に記載のマルチノードストレージシステム。
  5. 前記第1フラッシュイメージは、第1BMCファームウェアフラッシュイメージを有し、前記第3フラッシュイメージは、第1ストレージスイッチエキスパンダコントローラファームウェアフラッシュイメージを有し、
    前記第2フラッシュイメージは、第2BMCファームウェアフラッシュイメージを有し、前記第4フラッシュイメージは、第2ストレージスイッチエキスパンダコントローラファームウェアフラッシュイメージを有する、ことを特徴とする請求項2に記載のマルチノードストレージシステム。
  6. 前記第1スイッチデバイス、前記第2スイッチデバイス、前記第3スイッチデバイス及び前記第4スイッチデバイスの各々は、マルチプレクサ(MUX)を備え、前記第1BMC及び前記第2BMCを多重化するように構成されており、
    前記第1BMCは、前記第3フラッシュROMに記憶された前記第3フラッシュイメージ、又は、前記第4フラッシュROMに記憶された前記第4フラッシュイメージを取り出すように構成されており、
    前記第2BMCは、前記第1フラッシュROMに記憶された前記第1フラッシュイメージ、又は、前記第2フラッシュROMに記憶された前記第2フラッシュイメージを取り出すように構成されている、ことを特徴とする請求項2に記載のマルチノードストレージシステム。
  7. マルチストレージノードシステムにおけるファームウェアのアップデート方法であって、前記方法は、
    第1ノードをパワーサイクルする工程であって、前記第1ノードは、第1ベースボード管理コントローラ(BMC)と、第1フラッシュイメージを記憶するように構成された第1フラッシュROMと、前記第1BMCを前記第1フラッシュROMに接続するように構成された第1スイッチデバイスと、を含む、工程と、
    前記第1フラッシュROMの前記第1フラッシュイメージをアクティブにする工程と、
    前記第1ノード内の少なくとも1つのハードウェアコンポーネントがオンラインでない若しくはファームウェアアップデートの準備ができていないこと、第2フラッシュイメージが破損していること、及び/又は、前記第1ノードがOSを起動することができないことのうち少なくとも1つを判別する工程と、
    前記第1BMCが、第2ノードに記憶された第2フラッシュROMに記憶された第2フラッシュイメージを取り出すことであって、前記第1BMCは、前記第2ノードの第2スイッチデバイスに接続されており、前記第2フラッシュイメージは、前記第1フラッシュイメージと同じである、工程と、
    を有することを特徴とするファームウェアのアップデート方法。
  8. 前記第1ノードは、第1ストレージコントローラと、第3フラッシュイメージを記憶する第3フラッシュROMと、前記第1BMC又は第2BMCを前記第3フラッシュROMに接続する第3スイッチデバイスと、を含み、
    前記第2ノードは、第2ストレージコントローラと、第4フラッシュイメージを記憶する第4フラッシュROMと、前記第1BMC又は前記第2BMCを前記第4フラッシュROMに接続する第4スイッチデバイスを含み、前記第4フラッシュイメージは、前記第3フラッシュイメージと同じである、ことを特徴とする請求項7に記載の方法。
  9. 前記第1フラッシュイメージは、第1BMCファームウェアフラッシュイメージを有し、前記第3フラッシュイメージは、第1ストレージスイッチエキスパンダコントローラファームウェアフラッシュイメージを有し、
    前記第2フラッシュイメージは、第2BMCファームウェアフラッシュイメージを有し、前記第4フラッシュイメージは、第2ストレージスイッチエキスパンダコントローラファームウェアフラッシュイメージを有する、ことを特徴とする請求項8に記載の方法。
  10. 前記第1スイッチデバイス、前記第2スイッチデバイス、前記第3スイッチデバイス及び前記第4スイッチデバイスの各々は、マルチプレクサ(MUX)を備え、前記第1BMC及び前記第2BMCを多重化するように構成されている、ことを特徴とする請求項8に記載の方法。
JP2019185198A 2019-03-06 2019-10-08 マルチノードストレージシステムにおけるファームウェアアップグレード方法 Active JP6850331B2 (ja)

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
JP2020144834A JP2020144834A (ja) 2020-09-10
JP6850331B2 true JP6850331B2 (ja) 2021-03-31

Family

ID=67262099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019185198A Active JP6850331B2 (ja) 2019-03-06 2019-10-08 マルチノードストレージシステムにおけるファームウェアアップグレード方法

Country Status (5)

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

Families Citing this family (8)

* 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
CN116096479A (zh) 2020-08-28 2023-05-09 东曹株式会社 一种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
US12045623B2 (en) 2022-03-15 2024-07-23 Quanta Computer Inc. Systems and methods for memory content sharing between hosts and management controllers

Family Cites Families (16)

* 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
EP2145253B1 (en) * 2007-04-13 2014-11-19 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
US7761734B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
CN102662702B (zh) 2012-03-29 2015-08-19 华为技术有限公司 设备管理***、装置、基板管理装置及方法
US9280497B2 (en) * 2012-12-21 2016-03-08 Dell Products Lp Systems and methods for support of non-volatile memory on a DDR memory channel
US10620857B2 (en) * 2014-10-31 2020-04-14 Hewlett Packard Enterprise Development Lp Combined backup power
CN105700970A (zh) * 2014-11-25 2016-06-22 英业达科技有限公司 服务器***
CN105718277B (zh) * 2014-12-05 2020-04-10 中国长城科技集团股份有限公司 一种bios更新的保护方法、装置和***
TWI547873B (zh) 2015-02-13 2016-09-01 營邦企業股份有限公司 端點伺服器的控制模組及其韌體更新方法
CN105988844A (zh) 2015-03-02 2016-10-05 营邦企业股份有限公司 端点服务器的控制模块及其韧体更新方法
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固件更新方法
TWI602124B (zh) 2017-01-20 2017-10-11 神雲科技股份有限公司 用於風扇轉速控制的基板管理控制器韌體更新方法
TWI633487B (zh) * 2017-05-05 2018-08-21 神雲科技股份有限公司 自動回復基本輸入輸出系統映像檔的方法及電腦系統
TWI655582B (zh) * 2017-09-12 2019-04-01 神雲科技股份有限公司 具有雙韌體儲存空間之伺服器及其韌體更新方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6850331B2 (ja) マルチノードストレージシステムにおけるファームウェアアップグレード方法
DK3179359T3 (en) PROCEDURE FOR SENDING DATA, PROCEDURE FOR RECEIVING DATA AND STORAGE UNIT
JP5909264B2 (ja) セキュア・リカバリ装置及び方法
US7743224B2 (en) Method and apparatus for virtual load regions in storage system controllers
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
US8341386B2 (en) Method for updating basic input/output system and method for repairing thereof
US8204858B2 (en) Snapshot reset method and apparatus
CN107045448A (zh) 远程地启动部署程序的方法与服务器
CN104081329A (zh) 对数据进行备份的备份存储***、备份存储装置以及方法
TW202030602A (zh) 基本輸入/輸出系統的恢復及更新的方法及系統
WO2014132373A1 (ja) ストレージシステム及び記憶デバイス障害回復方法
US9092398B2 (en) Restoring expander operations in a data storage switch
US9846621B1 (en) Disaster recovery—multiple restore options and automatic management of restored computing devices
US20090037655A1 (en) System and Method for Data Storage and Backup
US9471256B2 (en) Systems and methods for restoring data in a degraded computer system
US8346721B2 (en) Apparatus and method to replicate remote virtual volumes to local physical volumes
US20130024726A1 (en) System and method for removable network attached storage enabling system recovery from backup
US8856441B2 (en) Dynamic hard disk mapping method and server using the same
JP2007323657A (ja) 過渡状態情報を格納するための方法、システムおよびコンピュータ・プログラム
US7506115B2 (en) Incremental provisioning of software
US20200026453A1 (en) Method and system for dynamically expanding a storage system
WO2016006108A1 (ja) ストレージおよびその制御方法
JP2017041110A (ja) マルチコンピュータシステム,管理装置および管理プログラム
TWI416319B (zh) 使用獨立磁碟備援陣列之電腦系統的開機方法
KR102260658B1 (ko) 클라우드 환경 이중화 스토리지를 위한 어플라이언스 적용 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210305

R150 Certificate of patent or registration of utility model

Ref document number: 6850331

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250