(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6850331
(24)【登録日】2021年3月9日
(45)【発行日】2021年3月31日
(54)【発明の名称】マルチノードストレージシステムにおけるファームウェアアップグレード方法
(51)【国際特許分類】
G06F 13/10 20060101AFI20210322BHJP
G06F 13/14 20060101ALI20210322BHJP
G06F 8/65 20180101ALI20210322BHJP
【FI】
G06F13/10 330B
G06F13/10 340A
G06F13/14 330F
G06F8/65
【請求項の数】10
【全頁数】13
(21)【出願番号】特願2019-185198(P2019-185198)
(22)【出願日】2019年10月8日
(65)【公開番号】特開2020-144834(P2020-144834A)
(43)【公開日】2020年9月10日
【審査請求日】2019年10月8日
(31)【優先権主張番号】16/294,566
(32)【優先日】2019年3月6日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508018934
【氏名又は名称】廣達電腦股▲ふん▼有限公司
【氏名又は名称原語表記】Quanta Computer Inc.
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】潘 凱業
(72)【発明者】
【氏名】余 俊慶
(72)【発明者】
【氏名】王 舜宏
【審査官】
松平 英
(56)【参考文献】
【文献】
米国特許出願公開第2016/0147540(US,A1)
【文献】
米国特許出願公開第2017/0168744(US,A1)
【文献】
米国特許出願公開第2014/0181364(US,A1)
【文献】
米国特許出願公開第2018/0107558(US,A1)
【文献】
米国特許出願公開第2005/0229173(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06−3/08
8/00−8/38
8/60−8/77
9/44−9/445
9/451
13/00−13/14
16/00−16/958
(57)【特許請求の範囲】
【請求項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に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークコンピューティング(network computing)に関し、より具体的には、マルチノードストレージシステムにおけるファームウェアのアップデートに関する。
【背景技術】
【0002】
サーバ又はストレージシステムがパワーサイクルされると、中央処理装置(CPU)によって行われる最初の動作は、BIOS(Basic Input and Output System)を起動するメッセージを送信することである。BIOSは、POST(Power On Self-Test)と呼ばれる一連のテストを実行して、システムデバイスが正常に動作しているかどうかを確認する。BIOSは、サーバが動作するために不可欠な機能を有効にする。BIOSが破損している場合、CPUは機能することができない。しかし、一般的なBIOSは、破損した場合に、有効なBIOSイメージを復元することができる。これは、システム内で書き込み可能(in-system writable)ではないフラッシュメモリにリカバリプログラムを保存することによって実現される。これにより、リカバリプログラムが破損することがない。通常、リカバリプログラムは、最小限のシステムハードウェアを初期化して、フラッシュドライブ又は他の取り外し可能な媒体から新たなコードイメージを取得する機能を有する単純なコードである。この電源のパワーサイクル及び復元機能は、別のコントローラ(例えば、ベースボード管理コントローラやメモリスイッチコントローラ等)のファームウェアにも必要である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、マルチノードストレージシステムにおけるファームウェアアップグレード方法を提供する。
【課題を解決するための手段】
【0004】
本発明は、第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フラッシュと同じである。
【0005】
いくつかの実施形態では、第1ノードは、第1ストレージコントローラと、第3フラッシュイメージを記憶するように構成された第3フラッシュROMと、第1BMC又は第2BMCを第3フラッシュROMに接続するように構成された第3スイッチデバイスと、をさらに含む。いくつかの実施形態では、第2ノードは、第2ストレージコントローラと、第4フラッシュイメージを記憶するように構成された第4フラッシュROMと、第1BMC又は第2BMCを第4フラッシュROMに接続するように構成された第4スイッチと、をさらに含み、第4フラッシュイメージは、第3フラッシュイメージと同じである。
【0006】
また、第1ノードは、第1ストレージエキスパンダ/スイッチコントローラ及び第2ストレージエキスパンダ/スイッチコントローラに接続された第1の複数のストレージデバイスを含むことができる。第1の複数のストレージデバイスは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、及び/又は、不揮発性メモリエクスプレス(NVMe)を含むことができる。いくつかの実施形態では、NVMeは、ホストコントローラインタフェース及びストレージプロトコルとして機能するように構成されており、第1ストレージエキスパンダ/スイッチコントローラとSSDドライブとの間のデータ送信を促進する。
【0007】
同様に、第2ノードは、第1ストレージエキスパンダ/スイッチコントローラ及び第2ストレージエキスパンダ/スイッチコントローラに接続された第2の複数のストレージデバイスを含むことができる。第2の複数のストレージデバイスは、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、及び/又は、不揮発性メモリエクスプレス(NVMe)を含むことができる。NVMeは、ホストコントローラインタフェース及びストレージプロトコルとして機能するように構成されており、第2ストレージエキスパンダ/スイッチコントローラとSSDドライブとの間のデータ送信を促進する。
【0008】
いくつかの実施形態では、第1フラッシュイメージは、第1BMCファームウェアフラッシュイメージを含み、第2フラッシュイメージは、第1ストレージエキスパンダ/スイッチコントローラファームウェアフラッシュイメージを含む。第3フラッシュイメージは、第2BMCファームウェアフラッシュイメージを含み、第4フラッシュイメージは、第2ストレージエキスパンダ/スイッチコントローラファームウェアフラッシュイメージを含む。
【0009】
第1スイッチデバイス、第2スイッチデバイス、第3スイッチデバイス及び第4スイッチデバイスの各々は、マルチプレクサ(MUX)を含む。第1スイッチデバイス、第2スイッチデバイス、第3スイッチデバイス及び第4スイッチデバイスは、第1BMC及び第2BMCを多重化するように構成されてもよい。
【0010】
いくつかの実施形態では、第1BMCは、第3フラッシュROMに記憶された第3フラッシュイメージ、又は、第4フラッシュROMに記憶された第4フラッシュイメージを取り出すように構成されている。同様に、第2BMCは、第1フラッシュROMに記憶された第1フラッシュイメージ、又は、第2フラッシュROMに記憶された第2フラッシュイメージを取り出すように構成されている。
【0011】
本発明の様々な例は、マルチストレージノードシステムにおけるファームウェアのアップデート方法を提供する。方法は、第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フラッシュと同じである。
【0012】
本発明の追加の特徴及び利点が、以下の説明に記載され、その一部が説明から明らかになるか、本明細書で開示されている原理を実施することで習得することができる。本発明の特徴及び利点は、添付の特許請求の範囲で特に指摘されている機器及び組み合わせの手段によって実現及び達成することができる。本発明のこれらの特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲に完全に記載されているか、又は、本明細書に記載されている原理から得られる。
【発明の効果】
【0013】
本発明によれば、効果的なファームウェアアップグレード方法を提供することができる。
【0014】
上記の開示内容と、その利点及び特徴を得ることができる方法を説明するために、上記の原理のより具体的な説明は、添付の図面に示される特定の例を参照することによって提示される。これらの図面は、本開示の例示的な態様のみを示すものであり、よって、本発明の限定としてみなされない。以下の図面を使用して、これらの原理を、さらなる特徴及び詳細で記載及び説明する。
【図面の簡単な説明】
【0015】
【
図1】従来技術による、マルチノードストレージシステムを示す図である。
【
図2】本発明の一実施形態による、マルチノードストレージシステムを示す図である。
【
図3】本発明の一実施形態による、ファームウェアイメージをアップデート及び書き込むプロセスのフロー図である。
【発明を実施するための形態】
【0016】
添付の図面を参照して本発明を説明する。図面において、類似又は同等の要素を示すために、同様の符号が用いられている。図面は縮尺通りに示されておらず、単に本発明を説明するために提供されている。本発明のいくつかの態様を、例示的なアプリケーションを参照して以下に説明する。本発明の十分な理解を提供するために、いくつかの特定の詳細、関係及び方法が示されていることを理解されたい。しかし、当業者であれば、1つ以上の特定の詳細を用いずに他の方法を用いて本発明を実施し得ることを容易に認識するであろう。他の例では、本発明を曖昧にするのを避けるために、周知の構造又は動作を詳細に示していない。いくつかの動作が異なる順序で及び/又は他の動作や事象と同時に発生し得るので、本発明は、図示された動作や事象の順序によって限定されない。さらに、本発明による方法を実施するために、図示された全ての動作や事象が必要とされているわけではない。
【0017】
図1は、従来技術による従来のマルチノードストレージシステム50を示す図である。マルチノードストレージシステム50は、第1ノード100と、第2ノード200と、を有することができる。第1ノード100及び第2ノード200両方で示されるコンポーネントは同じである。不要な重複を回避するために、第1ノード100について詳細に説明する。この例示のために、第2ノード200のコンポーネントは、第1ノード100と同じであることを理解されたい。
【0018】
第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を介して、サーバシステム又はリモートコントローラに接続され得る。
【0019】
同様に、第2ノード200は、ストレージエキスパンダスイッチコントローラ220と、BMC250と、第3フラッシュROM240と、第4フラッシュROM260と、を含むことができる。第3フラッシュROM240は、バス241によってBMC250に接続することができ、第4フラッシュROM260は、バス261によってストレージエキスパンダスイッチコントローラ220に接続することができる。また、第2ノード200は、第2ノード200をサーバシステム又はリモートコントローラに接続するLANアダプタ230を含むことができる。
【0020】
当業者であれば理解できるように、複数のストレージデバイス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)インタフェースが実施されてもよいことを理解されたい。
【0021】
また、第1ノード100のBMC150は、ベースボードバス151,251によって、第2ノード200のBMC250に接続されている。各制御ノードは、独立したBMCを有しているので、これらは独立して又は共に動作することができる。さらに、BMC150は、バス141によって第1フラッシュROM140に接続されている。ストレージエキスパンダスイッチコントローラ120は、バス161によって第2フラッシュROM160に接続されている。
【0022】
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)によってファームウェアをアップデートする方法及びシステムを教示する。
【0023】
図2は、本発明の一実施形態による、マルチノードストレージシステム75を示す図である。マルチノードストレージシステム75は、第1ノード300と、第2ノード400と、を含むことができる。第1ノード300及び第2ノード400の両方で示されているコンポーネントは同じである。不要な重複を回避するために、第1ノード300について詳細に説明する。例示のために、第2ノード400のコンポーネントは、第1ノード300のコンポーネントと同じであることを理解されたい。本明細書では2つのノードが示されているが、マルチノードストレージシステム75は、数千ではないにしても数百のノードを有することができることを理解されたい。
【0024】
第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を介してサーバシステム又はリモートコントローラに接続することができる。
【0025】
同様に、第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を含むことができる。
【0026】
当業者であれば理解できるように、複数のストレージデバイス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インタフェースも実施可能であることも理解されたい。
【0027】
また、第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に接続することができる。
【0028】
さらに、第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に接続することができる。
【0029】
スイッチデバイス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を介してマスタデバイスの選択を制御することができる。
【0030】
通常、BMC350は、第1フラッシュROM340に配置されたファームウェアコードイメージを有する。また、第1ノード300は、第2フラッシュROM360に配置されたストレージエキスパンダスイッチコントローラ320用のファームウェアコードイメージを有することができる。フラッシュに含まれるこれらのイメージは、ブートブロックセクションとオペレーショナルコードセクションとの少なくとも2つのコードセクションを有する。通常、ブートブロックはライトプロテクトされており、フィールドでアップデートされない。逆に、オペレーショナルイメージは、フィールドでアップデートされ得る。
【0031】
例示的なマルチノードストレージシステム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を起動することができる。
【0032】
図3は、本発明の一実施形態による、ノードのBMC用のファームウェアイメージをアップデート及び書き込むプロセス600のフロー図である。
【0033】
本明細書で示されるプロセス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で実施可能であることを理解されたい。
【0034】
本発明の特定の実施形態を示し説明してきたが、当業者は、より広い態様において本発明から逸脱することなく変更及び修正を行うことが可能であることが明らかであろう。よって、添付の特許請求の範囲の目的は、本発明の趣旨及び範囲内の全てのこのような変更及び修正をカバーすることである。上述した説明及び添付の図面に記載されている事項は、限定としてではなく例示としてのみ提供されている。本発明の実際の範囲は、従来技術に基づく適切な視点で見た場合に、特許請求の範囲で定義されていることを意図している。
【0035】
本明細書で用いられる用語は、特定の実施形態のみを説明することを目的としており、本発明を限定することを意図していない。本明細書で使用されているように、単数形(例えば、「一」、「1つの」、「この」等)という単数形は、文脈が明らかにそうでないことを示さない限り、複数形も含むことを意図している。さらに、「含む」、「有する」等の用語又はこれらの変形は、詳細な説明及び/又は特許請求の範囲で使用される限りにおいて、「備える」という用語と同様の意味で包括的であることを意図している。
【0036】
特に定義されない限り、本明細書で使用される用語(技術用語及び科学用語)は、当業者によって通常理解されるのと同じ意味を有する。さらに、一般的に使用される辞書で定義されているような用語は、関連する技術の文脈における意味と一致する意味を有すると解釈されるべきであり、本明細書で明示的に定義されていない限り、理想的又は過度に形式的な意味で解釈されない。
【符号の説明】
【0037】
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…工程