(57)【特許請求の範囲】
【請求項１】
複数のデータ処理ユニットが管理パスによって管理モジュールにより管理され、かつ、前記管理モジュールによってミッドプレーンとして識別される前記管理パスを介して前記管理モジュールに結合されたシステムにおいて、
前記管理モジュールから前記データ処理ユニットにコンピュータ・コードをダウンロードしようと試行するステップと、
前記コンピュータ・コードの適正なダウンロードの失敗に起因し、その結果、ひとつの前記データ処理ユニットが前記管理パスにおける管理パス位置を定義できなくなったことに応答して、前記ミッドプレーンの特殊アドレスを使用して、前記データ処理ユニットから前記管理モジュールに失敗信号を送信するステップと、
前記管理モジュールが、現状で前記管理モジュールと通信能力を有しているデータ処理ユニットのアドレスと、前記複数のすべてのデータ処理ユニットのために指定され、記憶されているデータ処理ユニットアドレスリストとを比較して前記失敗信号を送信したデータ処理ユニットのアドレスを特定するステップと、
前記管理モジュールが、前記失敗信号を送信したデータ処理ユニットにコンピュータ・コードを再度ダウンロードするステップと、
を有する方法。
【請求項２】
複数のデータ処理ユニットが管理パスによって管理モジュールにより管理されかつ結合されたシステムにおいて、
前記管理モジュールから前記データ処理ユニットにコンピュータ・コードをダウンロードしようと試行するステップと、
前記コンピュータ・コードの適正なダウンロードの失敗を検出して、前記管理パス上の特殊アドレスを使用して、前記データ処理ユニットから前記管理モジュールに失敗信号を送信するステップと、
前記管理モジュールが、現状で前記管理モジュールと通信能力を有しているデータ処理ユニットのアドレスと、前記複数のすべてのデータ処理ユニットのために指定され、記憶されているデータ処理ユニットアドレスリストとを比較することにより行方不明であるデータ処理ユニットが複数あることを識別するステップと、
前記管理モジュールが、識別された行方不明である１つのデータ処理ユニットへの通信を選択して、当該選択されたデータ処理ユニットを除く前記データ処理ユニットへの通信をブロックするステップと、
前記選択されたデータ処理ユニットがコンピュータ・コードを前記管理モジュールより再度ダウンロードするステップと、
を有する方法。
【請求項３】
インターＩＣ規格に準拠し、前記管理パスに結合された制御ロジックを使用して、データ処理ユニットが前記管理パスに接続された際に前記ミッドプレーン上の物理アドレスを当該データ処理ユニットに割り当てる請求項１又は２に記載の方法。
【請求項４】
前記データ処理ユニットのそれぞれがネットワーク・インターフェース・カード（ＮＩＣ）を有し、前記データ処理ユニットの管理パス位置がインターネット・プロトコル（ＩＰ）アドレスである、請求項１又は２に記載の方法。
【請求項５】
前記複数のデータ処理ユニットがサーバ・ブレードである、請求項１から４のいずれかに記載の方法。
【請求項６】
管理モジュールと、
複数のデータ処理ユニットと、
前記複数のデータ処理ユニットに前記管理モジュールを結合し、当該管理モジュールにミッドプレーンとして識別される管理パスと、
前記管理パス上の前記複数のデータ処理ユニットのために指定され記憶されているデータ処理ユニットアドレスリストと、
前記管理パスに結合され前記管理モジュールと通信をしてどのデータ処理ユニットが管理パス上に存在するかを識別する存在検出装置と、
を備え、
前記管理モジュールから複数のデータ処理ユニットへのコンピュータ・コード失敗に起因し、その結果、ひとつの前記データ処理ユニットが管理パス上のその管理パス位置を定義できなくなったことに応答して、前記ミッドプレーンの特殊アドレスを使用して、前記データ処理ユニットから前記管理モジュールに失敗信号を送信し、
前記管理モジュールは、当該失敗信号を受信し、前記存在検出装置と通信して受信時にどのデータ処理ユニットが管理パス上に存在するかを識別し、記憶されている前記データ処理ユニットアドレスリストと比較して、失敗信号を送信したデータ処理ユニットを特定するステップと、前記管理モジュールが、前記失敗信号を送信したデータ処理ユニットにコンピュータ・コードを再度ダウンロードするシステム。
【請求項７】
管理モジュールと、
複数のデータ処理ユニットと、
前記複数のデータ処理ユニットに前記管理モジュールを結合し、当該管理モジュールにミッドプレーンとして識別される管理パスと、
前記管理パス上の前記複数のデータ処理ユニットのために指定され記憶されているデータ処理ユニットアドレスリストと、
前記管理パスに結合され前記管理モジュールと通信をしてどのデータ処理ユニットが管理パス上に存在するかを識別する存在検出装置と、
前記管理モジュールから識別されたデータ処理ユニットへの通信を選択して、当該管理モジュールからの信号又はコマンドにより前記管理モジュールと識別されたデータ処理ユニットとの間の選択した通信をブロックするブロッカと、
を備え、
前記管理モジュールから前記データ処理ユニットにコンピュータ・コードをダウンロードしようと試行し、前記コンピュータ・コードの適正なダウンロードの失敗を検出して、前記管理パス上の特殊アドレスを使用して、前記データ処理ユニットから前記管理モジュールに失敗信号を送信し、
前記管理モジュールが、現状で前記管理モジュールと通信能力を有しているデータ処理ユニットのアドレスと、前記複数のすべてのデータ処理ユニットのために指定され、記憶されているデータ処理ユニットアドレスリストとを比較することにより行方不明であるデータ処理ユニットが複数あることを識別し、前記管理モジュールから識別された行方不明である１つのデータ処理ユニットを除くデータ処理ユニットへの通信を選択してブロックし、当該選択されたデータ処理ユニットにコンピュータ・コードを再度ダウンロードするシステム。
【請求項８】
インターＩＣ規格に準拠し、前記管理パスに結合された制御ロジックを使用して、データ処理ユニットが前記管理パスに接続された際にミッドプレーン上の物理アドレスを当該データ処理ユニットに割り当てる請求項６又は７に記載のシステム。
【請求項９】
前記データ処理ユニットのそれぞれがネットワーク・インターフェース・カード（ＮＩＣ）を有し、前記データ処理ユニットの管理パス位置がインターネット・プロトコル（ＩＰ）アドレスである、請求項６又は７に記載のシステム。
【請求項１０】
前記複数のデータ処理ユニットがサーバ・ブレードである、請求項６から９のいずれかに記載のシステム。
【請求項１１】
前記複数のデータ処理ユニットがサーバ・シャーシ内のデータ処理ユニットである、請求項１０に記載のシステム。
【請求項１２】
複数のデータ処理ユニットが管理パスによって管理モジュールにより管理され、かつ前記管理モジュールによってミッドプレーンとして識別される前記管理パスを介して前記管理モジュールに結合されたシステムにおいて、
前記管理モジュールから前記データ処理ユニットにコンピュータ・コードをダウンロードしようと試行するステップと、
前記コンピュータ・コードの適正なダウンロードの失敗に起因し、その結果、ひとつの前記データ処理ユニットが前記管理パスにおける管理パス位置を定義できなくなったことに応答して、前記ミッドプレーンの特殊アドレスを使用して、前記データ処理ユニットから前記管理モジュールに失敗信号を送信するステップと、
前記管理モジュールが、現状で前記管理モジュールと通信能力を有しているデータ処理ユニットのアドレスと、前記複数のすべてのデータ処理ユニットのために指定され、記憶されているデータ処理ユニットアドレスリストとを比較して前記失敗信号を送信したデータ処理ユニットのアドレスを特定するステップと、
前記管理モジュールが、前記失敗信号を送信したデータ処理ユニットにコンピュータ・コードを再度ダウンロードするステップと、
を実行させるためのプログラム。
【請求項１３】
複数のデータ処理ユニットが管理パスによって管理モジュールにより管理され、かつ前記管理モジュールによってミッドプレーンとして識別される前記管理パスを介して前記管理モジュールに結合されたシステムにおいて、
前記管理モジュールから前記データ処理ユニットにコンピュータ・コードをダウンロードしようと試行するステップと、
前記コンピュータ・コードの適正なダウンロードの失敗を検出して、前記管理パス上の特殊アドレスを使用して、前記データ処理ユニットから前記管理モジュールに失敗信号を送信するステップと、
前記管理モジュールが、現状で前記管理モジュールと通信能力を有しているデータ処理ユニットのアドレスと、前記複数のすべてのデータ処理ユニットのために指定され、記憶されているデータ処理ユニットアドレスリストとを比較することにより行方不明であるデータ処理ユニットが複数あることを識別するステップと、
前記管理モジュールから識別された行方不明である１つのデータ処理ユニットへの通信を選択して、当該選択されたデータ処理ユニットを除く前記データ処理ユニットへの通信をブロックするステップと、
前記選択されたデータ処理ユニットがコンピュータ・コードを前記管理モジュールより再度ダウンロードするステップと、
を実行させるためのプログラム。
【請求項１４】
インターＩＣ規格に準拠し、前記管理パスに結合された制御ロジックを使用して、データ処理ユニットが前記管理パスに接続された際に前記ミッドプレーンの物理アドレスを当該データ処理ユニットに割り当てる請求項１２又は１３に記載のプログラム。
【請求項１５】
前記データ処理ユニットのそれぞれがネットワーク・インターフェース・カード（ＮＩＣ）を有し、前記データ処理ユニットの管理パス位置がインターネット・プロトコル（ＩＰ）アドレスである、請求項１２又は１３に記載のプログラム。
【請求項１６】
前記複数のデータ処理ユニットがサーバ・ブレードである、請求項１２から１５のいずれかに記載のプログラム。
【請求項１７】
前記管理モジュールおよび前記データ処理ユニットがデータ処理ユニット・シャーシのコンポーネントである、請求項１２から１５のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータの分野に関し、特に、サーバ・シャーシ内に収容された複数ブレード・サーバに関する。より詳細には、本発明は、ブレード・サービス・プロセッサのフラッシュの失敗を自動的に回復するための方法およびシステムに関する。
【背景技術】
【０００２】
サーバ・ブレード・コンピュータは、単一シャーシ（ブレード・シャーシ）内の高密度サーバ・ボード（ブレード）を提供する。典型的なサーバ・ブレード・コンピュータは、図１に示され、サーバ・ブレード・シャーシ１０２として識別されている。サーバ・ブレード・シャーシ１０２は、複数のホット・スワップ可能（hot-swappable）サーバ・ブレード１０４ａ〜１０４ｎを含む。概して、サーバ・ブレード・シャーシ１０２には１４個のサーバ・ブレード１０４が存在する。サーバ・ブレード１０４の動作は管理モジュール（management module）１０８として識別されるロジックによって調整され、概してそのモジュールは、入出力（Ｉ／Ｏ）機能を制御し、ネットワーク１０６（インターネットまたはローカル・エリア・ネットワークなど）とのインターフェースを取り、種々のサーバ・ブレード１０４にジョブおよびデータを割り振るためのプロセッサを含む。
【０００３】
管理モジュール１０８のもう１つの機能はサーバ・ブレード１０４内のフラッシュ読取り専用メモリ（フラッシュ・メモリ）をプログラミングすることである。このフラッシュ動作はサーバ・ブレード１０４内のファームウェアを更新し、その結果、動作が最適化される。しかし、サーバ・ブレード１０４はホット・スワップ可能であるので、通常、サーバ・ブレード１０４が数分を要する可能性のあるフラッシュ動作の最中である間に、エンジニアがサーバ・ブレード・シャーシ１０２のミッドプレーンまたはバックプレーン（図示せず）からサーバ・ブレード１０４を無意識に取り外すのを防止するためのものは何も存在しない。部分的にフラッシュされたサーバ・ブレード１０４をサーバ・ブレード・シャーシ１０２または他のシャーシに再インストールすると、そのブレードは誤動作することになる場合が多い。サーバ・ブレード・シャーシ１０２に再インストールされると、再インストールされたサーバ・ブレード１０４内の自己診断機能ロジックは、そのフラッシュ動作が完全実行に失敗したことを認識することになる。しかし、サーバ・ブレード１０４は、サーバ・ブレード・シャーシ１０２内のそのバス・アドレスまたは物理的位置を把握しない程度まで無能になり（cripple）、したがって、フラッシュの打ち切りに関する問題を管理モジュール１０８に通知できなくなる場合が多い。
【０００４】
同様に、サーバ・ブレード１０４がサーバ・ブレード・シャーシ１０２から取り外されていない場合でも、フラッシュ動作が失敗した場合、管理モジュール１０８はおそらくその失敗を把握しなくなる。この場合も、サーバ・ブレード１０４はその問題を管理モジュール１０８に通知できなくなる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、フラッシュ動作が失敗し、その結果、サーバ・ブレードがサーバ・ブレード・シャーシ内のその位置を把握しなくなった後で、サーバ・ブレードがサーバ・ブレード・シャーシ内の管理モジュールと通信できるようにするための方法およびシステムが必要である。
【課題を解決するための手段】
【０００６】
本発明は、複数サーバ・ブレード・コンピュータ内のサーバ・ブレードであって、そのサーバ・ブレード内のサービス・プロセッサ上のフラッシュ更新動作中に行方不明になったサーバ・ブレードを回復するための方法およびシステムを対象とする。フラッシュ更新失敗のため、行方不明のサーバ・ブレードは管理パス（management pathway）上のその位置に気付かず、その管理パスは例示的な形式では、サーバ・ブレード・シャーシ内のそのサーバ・ブレードと管理モジュールを接続するミッドプレーンまたはバスである可能性がある。行方不明のサーバ・ブレードは、フラッシュが失敗したことを示す信号を管理パス上に置く。その信号は、このようなメッセージのために予約された特殊チャネル上に置かれる。管理モジュールはその信号を受信し、次に、フラッシュ更新失敗のために複数サーバ・ブレードのうちのどのサーバ・ブレードが行方不明になっているのかを決定する。
【０００７】
複数のフラッシュ更新失敗が同時に発生した場合、管理モジュールは、１つを除き、すべての行方不明のサーバ・ブレードとの通信をブロックし、１つのブロック解除したサーバ・ブレードを再フラッシュ（re-flash）し、その結果、その１つのブロック解除したサーバ・ブレードが管理パス上のその位置（アドレス）を定義できるようにする。他の行方不明のサーバ・ブレードのそれぞれは順次、ブロック解除され、再フラッシュされ、その結果、管理パス上のそれぞれの位置を定義できるようになる。
【０００８】
本発明の上記ならびに追加の目的、特徴、および利点は、以下の詳細な説明で明らかになるであろう。
【０００９】
本発明に特有と思われる新規な特徴は特許請求の範囲に示されている。しかし、本発明そのもの、ならびにその好ましい使用態様、その他の目的および利点は、添付図面に併せて読んだときに以下に示す例示的な一実施形態の詳細な説明を参照することにより最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１０】
次に図２を参照すると、本発明の好ましい一実施形態によるサーバ・ブレード・シャーシ２００の概略ブロック図が示されている。明瞭にするため、１つの管理モジュール２０２と３つのサーバ・ブレード２０４ａ〜２０４ｎのみが示されている。しかし、好ましい一実施形態では、バックアップ管理モジュール２０２（図示せず）がサーバ・ブレード・シャーシ２００に組み込まれ、サーバ・ブレード・シャーシ２００は、１４個またはそれ以上のサーバ・ブレード２０４を接続可能なミッドプレーン２０６を有する。
【００１１】
管理モジュール２０２は、複数のサーバ・ブレード２０４を管理可能なロジックである。管理モジュール２０２は、ミッドプレーン２０６として識別される管理パスを介してサーバ・ブレード２０４ａ〜２０４ｎに結合されている。ミッドプレーン２０６は、サーバ・ブレード・シャーシ２００の中央に搭載されたバックプレーンであって、サーバ・ブレード２０４を含む追加の電子デバイスまたはカードを差し込むことができるソケットおよび回路を含むものである。ミッドプレーン２０６は、それぞれのサービス・プロセッサ２０８ａ〜２０８ｎによる管理モジュール２０２とサーバ・ブレード２０４ａ〜２０４ｎとの間ならびにサーバ・ブレード２０４ａ〜２０４ｎ同士の間の安全な内部通信のために少なくとも１つのバスを含んでいる。
【００１２】
管理モジュール２０２は、システム内の各サーバ・ブレード２０４、パワー・モジュール２１０、およびミッドプレーン２０６の存在、数量、タイプ、および改訂レベルを検出することができる。また、管理モジュール２０２は、以下に詳述する通り、フラッシュ動作を指図し、フラッシュ動作の失敗を識別することもできる。
【００１３】
各サーバ・ブレード２０４は、少なくとも１つの中央演算処理装置（ＣＰＵ）２１２と、不揮発性メモリ（ＮＶＭ）２１４とを有する。好ましくは、ＮＶＭ２１４はフラッシュ読取り専用メモリ（「フラッシュＲＯＭ」または「フラッシュ・メモリ」）であり、これはブロックというメモリ単位で消去し、再プログラミングすることができる。また、ＮＶＭ２１４は不揮発性電気的消去再書込可能読取り専用メモリ（ＥＥＰＲＯＭ）も含むことができ、これは、ＥＥＰＲＯＭがバイト・レベルで消去され再書込みされることを除いて、フラッシュ・メモリと同様のものであり、通常、フラッシュ・メモリより容量が小さいものである。
【００１４】
サーバ・ブレード２０４がメーカから出荷される場合、概してＮＶＭ２１４には、基本入出力システム（ＢＩＯＳ）ならびにサーバ・ブレード２０４をモニターするためのソフトウェアを含むファームウェアがあらかじめ書き込まれる（pre-burn）。このようなモニターとしては、冷却ファン２１５に対する速度調整による動作温度の調整、直接アクセス記憶装置（ＤＡＳＤ）の制御、システム全体の電圧のモニターおよび制御、サーバ・ブレード２０４のパワーオン状況の決定、共用キーボード、ビデオ、マウス、コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）および／またはフレキシブル・ディスク・ドライブへのアクセスの要求、ならびにサーバ・ブレード２０４上で実行されるオペレーティング・システム（ＯＳ）のモニターを含むことができる。更新およびその他の最適化を利用するために、このファームウェアは管理モジュール２０２によって定期的に更新され、管理モジュールはそのファームウェア更新をＮＶＭ２１４に再フラッシュする。
【００１５】
たとえば、管理モジュール２０２にとってアクセス可能な（ただし、必ずしもその内部にあるわけではない）更新済みフラッシュ・コード（flash code）２１６はいずれかまたはすべてのサービス・プロセッサ２０８にダウンロードすることができる。各サービス・プロセッサ２０８は、そのそれぞれの関連ＮＶＭ２１４へのフラッシュ・コード２１６のフラッシュを制御する。ＮＶＭ２１４へのフラッシュ・コード２１６のフラッシュが失敗した場合、サーバ・ブレード２０４の管理が失われる可能性がある。
【００１６】
たとえば、ＮＶＭ２１４ａへの更新済みフラッシュ・コード２１６のフラッシュ動作の失敗に関する以下の例について検討する。フラッシュ動作中、サーバ・ブレード２０４ａはフラッシュ動作が完了する前にそのスロットから物理的に取り外される可能性がある。同様に、フラッシュ中に断続的な電源障害またはスパイクが発生する可能性があるか、または単純にフラッシュの完了を失敗させるような制御、タイミング、その他のソフトウェアまたはハードウェア・エラーが発生する可能性がある。このような障害の結果、後述の通り、サーバ・ブレード２０４ａのサービス・プロセッサ２０８ａがミッドプレーン２０６上のそのアドレスと、その結果としてサーバ・ブレード２０４ａのアドレスを「忘れる（forget）」可能性がある。
【００１７】
次に図３を参照すると、ＮＶＭ２１４は、保護領域２１８とフラッシュ可能領域２２０という２つのセクションに分割されている。そのＮＶＭ２１４に関連するサーバ・ブレード２０４の製造番号、型式番号、汎用固有ＩＤ（ＵＵＩＤ）などの重要プロダクト・データ（Vital Product Data：ＶＰＤ）を含むことができる消去不能（上書き不能）コードは保護領域２１８内に保管される。また、保護領域２１８は、これまでにサーバ・ブレード２０４が他のサーバ・ブレード・シャーシ２００に搭載されたことがある場合にどのサーバ・ブレード・シャーシ２００に搭載されていたかを含む、追跡データも含むことができる。しかし、保護領域２１８は、ミッドプレーン２０６として図示されている管理パス上のサーバ・ブレード２０４の現在アドレス（「管理パスＩＤ」）を含まない。
【００１８】
ミッドプレーン２０６は、そこにサーバ・ブレード２０４を差し込むことができるソケット２２２を含んでいる。サーバ・ブレード２０４が特定のソケット２２２に差し込まれると、そのサーバ・ブレード２０４のために物理アドレスが確立される。たとえば、ソケット２２２ａに差し込まれているサーバ・ブレード２０４ａについて検討する。Ｉ2Ｃロジック２２４ａとして示されている制御ロジックは、フィリップスのインターＩＣ（集積回路）規格（Phillips’ Inter-IC (Integrated Circuit) standard）（一般に「Ｉ2Ｃ」と呼ばれる）に準拠するものであり、ソケット２２２ａ内のサーバ・ブレード２０４ａの存在を検出する。Ｉ2Ｃロジック２２４ａは管理モジュール２０２に併せて動作し、サーバ・ブレード２０４ａがソケット２２２ａに差し込まれたときにミッドプレーン２０６内のバス上の物理アドレスをサーバ・ブレード２０４ａに割り当てる。好ましくは、各サーバ・ブレード２０４は固有のＩ2Ｃロジック２２４に関連付けられ、そのロジックは好ましくは図２に示すようにミッドプレーン２０６に接続される。代わって、すべてのサーバ・ブレード２０４が単一のＩ2Ｃロジック２２４を使用することができる。
【００１９】
代わって、各サーバ・ブレード２０４はミッドプレーン２０６上の固有のインターネット・プロトコル（ＩＰ）アドレスを有することもできる。すなわち、ミッドプレーン２０６は、ＩＰアドレッシング・プロトコルを使用して相互通信をサポートすることができ、そのプロトコルではミッドプレーン２０６に接続または結合された各装置は、サーバ・ブレード・シャーシ２００の内部または外部にあるロジック（図示せず）によって割り当てられたＩＰアドレスを含む。たとえば、図１に示す通り、動的ホスト構成プロトコル（ＤＨＣＰ）サーバ１１０を使用して、サーバ・ブレード２０４ａにＩＰアドレスを割り当てることができる。その後、サーバ・ブレード２０４ａとの通信は、サーバ・ブレード２０４ａに関連するネットワーク・インターフェース・カード（ＮＩＣ）２２６ａを介して行われる。
【００２０】
管理モジュール２０２はブレード・アドレス・リスト２２８を管理するが、これはミッドプレーン２０６上のすべての管理パス位置（ソケット２２２を使用する場合の物理バス・アドレスまたはＮＩＣ２２６を使用する場合のＩＰアドレスのいずれか）のリストである。このブレード・アドレス・リスト２２８は、図４および図５に記載する諸ステップで行方不明のサーバ・ブレード２０４を識別するために使用される。
【００２１】
もう一度、図２を参照すると、ブレード・ブロッカ２３０は例示的に管理モジュール２０２とミッドプレーン２０６との間に位置し、サーバ・ブレード２０４内の指定のサービス・プロセッサ２０８同士の任意の組合せと管理モジュール２０２との間の通信を選択的にブロックする。ブレード・ブロッカ２３０のデフォルト状態では管理モジュール２０２とサーバ・ブレード２０４との間の（それぞれのサービス・プロセッサ２０８による）無制限通信が可能になり、管理モジュール２０２からの信号／コマンドにより管理モジュール２０２とサーバ・ブレード２０４との間の特定の通信がブロックされる。ブレード・ブロッカ２３０は、図５に記載する通り、複数のサーバ・ブレード２０４のサービス・プロセッサ２０８が行方不明になったときに特定のサーバ・ブレード２０４のサービス・プロセッサ２０８を分離するために使用される。
【００２２】
また、ミッドプレーン２０６には存在検出装置２３２も関連付けられている。存在検出装置２３２は、Ｉ2Ｃ装置にすることができ、管理モジュール２０２と通信して、どのサーバ・ブレード２０４がミッドプレーン２０６上にインストールされているかを識別することができる。
【００２３】
次に図４を参照すると、１つの行方不明のサーバ・ブレードを回復するために本発明の好ましい一実施形態で実行される諸ステップの流れ図が示されている。イニシエータ３０２から開始し、サーバ・ブレードのサービス・プロセッサ内のフラッシュＲＯＭがファームウェアの更新によってフラッシュされる（ブロック３０４）。このファームウェアは、管理モジュールからサービス・プロセッサにダウンロードされ、好ましくは図２〜図３に関して上述したものである。すなわち、このファームウェアは、フラッシュＲＯＭのフラッシュ可能領域にダウンロード（フラッシュ）されるものであって、前に保管されたファームウェアの更新であり、関連サーバ・ブレードの動作を最適化するコードを含む。
【００２４】
フラッシュ動作中、サーバ・ブレードの論理的位置は、フラッシュ動作が正常に完了するまで未定義になる可能性がある。フラッシュ動作は、前述の理由により、正常に完了しない可能性がある。正常に完了しない場合（照会ブロック３０６）、サーバ・ブレードはエラー信号を送信する（ブロック３０８）。このエラー信号は、管理モジュールとサーバ・ブレードとの間でミッドプレーン内の特殊アドレス（物理的ワイヤまたはＩＰアドレス）上で送信される。たとえば、サーバ・シャーシが１４個のサーバ・ブレード用のスロットを有し、それぞれがミッドプレーン・バス上の固有のアドレスを有する場合、ミッドプレーン・バス上の１５番目のアドレスは、サーバ・ブレード内のフラッシュＲＯＭのフラッシュ動作の失敗を示すエラー信号用に予約される。
【００２５】
しかし、管理モジュールは、どのサーバ・ブレードが更新済みファームウェアによるそのフラッシュＲＯＭのフラッシュに失敗したかをエラー信号のみから把握することはないであろう。したがって、管理モジュールはまず、サーバ・シャーシ・システムの一部であると識別されたすべてのサーバ・ブレードの位置（アドレス）のリストを検討する（ブロック３１０）。次に管理モジュールは、（システム上に存在するはずのすべてのサーバ・ブレードの）サーバ・ブレード・アドレス・リスト上の位置と現在、管理モジュールとの通信能力を有しているサーバ・ブレードのアドレスとを比較することにより、どのサーバ・ブレードが（失敗したフラッシュ動作中にその位置が未定義になっていたことにより）「行方不明」であるかを判定する。この通信能力は、サーバ・ブレードとの間のトラフィックをモニターし、図２に関して上述した存在検出装置２３２を使用することにより、管理モジュールによって達成することができる。リスト上にあるが管理モジュールと通信していないサーバ・ブレードは、行方不明のサーバであると推定される（ブロック３１２）。
【００２６】
次に管理モジュールは、好ましくは図２に記載したＩ2Ｃロジック２２４を使用して、その現在管理パス位置（物理的位置またはＩＰアドレス）をサーバ・ブレードに提供する。この現在位置ＩＤは好ましくは、図２に示すブレード・アドレス・リスト２２８からの現在位置ＩＤを変換することによって提供される。管理モジュールおよびサーバ・ブレードがサーバ・ブレードの復元された位置ＩＤを把握しているので、管理モジュールはサーバ・ブレード内のフラッシュＲＯＭを再フラッシュすることができ（ブロック３１６）、プロセスは終了する（ターミネータ・ブロック３１８）。
【００２７】
２つまたはそれ以上のサーバ・ブレードが失敗する事例が発生する可能性がある。図５に示す諸ステップは、この状態を処理するための好ましい方法に対処するものである。この諸ステップは２つのサーバ・ブレードのみが新しいファームウェアの適正なフラッシュに失敗したものとして記載されているが、この方法は、本明細書に記載する通り、任意の数のサーバ・ブレードに適切なものである。
【００２８】
イニシエータ・ブロック４０２から開始し、管理モジュールは第１および第２のサーバ・ブレードのフラッシュＲＯＭをフラッシュする（ブロック４０４）。どちらも失敗した場合（照会ブロック４０６）、どちらのサーバ・ブレードも行方不明になる。一方（または好ましくは両方）のサーバ・ブレードが管理モジュールに接続されたミッドプレーン・バス上に失敗信号を置き、管理モジュールがその失敗信号を受信する（ブロック４０８）。第１および第２のサーバ・ブレードがともに失敗信号を送信した場合、管理モジュールは、２回のフラッシュ失敗を示す重複失敗信号を受信する可能性がある。代わって、管理モジュールは、両方のサーバ・ブレードが失敗信号を送信したか一方のサーバ・ブレードのみが失敗信号を送信したかにかかわらず、両方のサーバ・ブレードについて単一の失敗信号のみを受信する可能性もある。
【００２９】
両方のサーバ・ブレードが同時にその特殊アドレスにある場合に衝突問題が発生すると思われるので、管理モジュールは両方の行方不明のサーバ・ブレードに通信することはできない。したがって、管理モジュールはまず、図２に記載したブレード・ブロッカを使用して一方のサーバ・ブレードをブロックしなければならない（ブロック４１０）。図４に記載したのと同じように、次に管理モジュールは、ブロック解除したサーバ・ブレード用の位置ＩＤを再確立し、そのサーバ・ブレードのフラッシュＲＯＭを再フラッシュする（ブロック４１２）。次に、管理モジュールは、ブロックしたサーバ・ブレードをブロック解除するようブレード・ブロッカに指図し、もう一方の行方不明のサーバ・ブレード用のＩＤ位置が確立され、上述したのと同じように、そのフラッシュＲＯＭが再フラッシュされ（ブロック４１４）、その結果、プロセスを終了する（ターミネータ・ブロック４１６）。
【００３０】
フラッシュＲＯＭへのファームウェアのフラッシュの失敗により行方不明になっているサーバ・ブレードが２つ以上存在する場合、ブレード・ブロッカは、各サーバ・ブレードのＩＤ位置が再確立されるたびに一度に１つのサーバ・ブレードを除くすべてのサーバ・ブレードをブロックし続ける。
【００３１】
したがって、本発明は、フラッシュの失敗により行方不明になっている行方不明のサーバ・ブレードを回復するための信頼できる方法およびシステムを提供する。行方不明のサーバ・ブレードを識別することにより、そのサーバ・ブレード用の更新済みファームウェアを再フラッシュすることができ、サーバ・ブレードが最大効率で動作できるようにする。
【００３２】
本発明の少なくともいくつかの態様は代わってプログラムで実現できることを理解されたい。本発明の諸機能を定義するプログラムは、様々な信号伝送媒体若しくは信号担持媒体を介してデータ記憶システムまたはコンピュータ・システムに伝送することができ、その信号担持媒体は、書込み不能記憶媒体（たとえば、ＣＤ−ＲＯＭ）、書込み可能記憶媒体（たとえば、フレキシブル・ディスケット、ハード・ディスク・ドライブ、読取り／書込みＣＤ−ＲＯＭ、光メディア）、イーサネット（登録商標）を含むコンピュータ・ネットワークおよび電話網などの通信媒体を無制限に含む。したがって、本発明において方法機能を指図するコンピュータ可読命令を担持またはコード化しているときの、このような信号担持媒体が本発明の代替実施形態を表すことを理解されたい。さらに、本発明は、本明細書に記載するハードウェア、ソフトウェア、またはソフトウェアとハードウェアの組合せ、あるいはそれらと同等のものの形をした手段を有するシステムによって実現できることを理解されたい。
【００３３】
好ましい一実施形態に関して本発明を詳細に示し説明してきたが、当業者であれば、本発明の精神および範囲を逸脱せずに形式および細部において様々な変更を行うことができることを理解するであろう。
【図面の簡単な説明】
【００３４】
【図１】ネットワークに結合されたサーバ・ブレード・シャーシの従来技術の図である。
【図２】フラッシュ失敗のために行方不明になっているサーバ・ブレードを分離して場所を探索するために管理モジュールに関連するブレード・ブロッカを組み込むブレード・シャーシを示す図である。
【図３】サービス・ブレードの１つにおけるサービス・プロセッサ内の不揮発性メモリの編成を示す図である。
【図４】単一の行方不明のサーバ・ブレードを検索するために実行される諸ステップの流れ図である。
【図５】２つ以上の行方不明のサーバ・ブレードを検索するために実行される諸ステップの流れ図である。
【符号の説明】
【００３５】
２００  サーバ・ブレード・シャーシ
２０２  管理モジュール
２０４ａ  ブレード
２０４ｂ  ブレード
２０４ｎ  ブレード
２０６  ミッドプレーン
２０８ａ  サービス・プロセッサ
２０８ｂ  サービス・プロセッサ
２０８ｎ  サービス・プロセッサ
２１０  パワー・モジュール
２１２ａ  ＣＰＵ
２１２ｂ  ＣＰＵ
２１２ｎ  ＣＰＵ
２１４ａ  ＮＶＭ
２１４ｂ  ＮＶＭ
２１４ｎ  ＮＶＭ
２１５  冷却ファン
２１６  フラッシュ・コード
２２２ａ  ソケット
２２２ｂ  ソケット
２２２ｎ  ソケット
２２４ａ  Ｉ2Ｃロジック
２２４ｂ  Ｉ2Ｃロジック
２２４ｎ  Ｉ2Ｃロジック
２２６ａ  ＮＩＣ
２２６ｂ  ＮＩＣ
２２６ｎ  ＮＩＣ
２２８  ブレード・アドレス・リスト
２３０  ブレード・ブロッカ
２３２  存在検出装置
【図１】
0004594750.tif 000002
【図２】
0004594750.tif 000003
【図３】
0004594750.tif 000004
【図４】
0004594750.tif 000005
【図５】
0004594750.tif 000006