(57)【特許請求の範囲】
【請求項１】
ブレード・ベース分散コンピューティング・システム（２００）であって、
複数のコンピューティング・ブレード（２０６）および１つまたはそれ以上のスイッチ・ブレード（２１０）を含む１つのブレード・サーバ（２０２）を備えており、各コンピューティング・ブレードは前記１つまたはそれ以上のスイッチ・ブレードに接続したネットワーク・インターフェイス（２０８）を含んでおり、
スイッチ・ブレードが、ネットワーク・アドレスを前記ブレード・サーバの各コンピューティング・ブレードに割り当て、および各コンピューティング・ブレードに割り当てた前記ネットワーク・アドレスを前記ブレード・サーバ内の前記コンピューティング・ブレードの位置に対応付ける情報を管理するように構成されることを特徴とする、ブレード・ベース分散コンピューティング・システム。
【請求項２】
請求項１に記載のブレード・ベース分散コンピューティング・システムにおいて、１つのスイッチ・ブレードは前記ブレード・サーバにおいて各コンピューティング・ブレードを構成するためのコンフィギュレーション・マネージャを含む、ブレード・ベース分散コンピューティング・システム。
【請求項３】
請求項２に記載のブレード・ベース分散コンピューティング・システムにおいて、前記コンフィギュレーション・マネージャは、前記ブレード・サーバの各コンピューティング・ブレードに対して複数のネットワーク・アドレスを設定する、ブレード・ベース分散コンピューティング・システム。
【請求項４】
請求項１に記載のブレード・ベース分散コンピューティング・システムにおいて、前記スイッチ・ブレードが、各コンピューティング・ブレードに、前記ブレード・サーバに割り当てた複数のネットワーク・アドレスの範囲から選択した高レベル・ネットワーク・アドレスを割り当てるように構成される、ブレード・ベース分散コンピューティング・システム。
【請求項５】
請求項１から４のいずれか一項に記載のブレード・ベース分散コンピューティング・システムにおいて、前記スイッチ・ブレードは、ネットワーク・アドレスを、ブレード・サーバの筐体におけるコンピューティング・ブレードの位置を識別するためのスロット識別子に基づいて各前記コンピューティング・ブレードに割り当てるように構成される、ブレード・ベース分散コンピューティング・システム。
【請求項６】
請求項５に記載のブレード・ベース分散コンピューティング・システムにおいて、前記スロット識別子は、前記筐体における各スロットに対するハードワイヤード信号に基づいており、該ハードワイヤード信号は、コンピューティング・ブレードが前記筐体に取り付けられる際に、前記コンピューティング・ブレードにより受信される、ブレード・ベース分散コンピューティング・システム。
【請求項７】
請求項５又は６に記載のブレード・ベース分散コンピューティング・システムにおいて、前記スイッチ・ブレードは、各コンピューティング・ブレードのスロット識別子に従って、ネットワーク・アドレスを、前記ブレード・サーバに割り当てたアドレスのブロックから連続して前記コンピューティング・ブレードに割り当てるように構成される、ブレード・ベース分散コンピューティング・システム。
【請求項８】
請求項１から７のいずれか一項に記載のブレード・ベース分散コンピューティング・システムにおいて、前記対応情報は、コンピューティング・ブレードについてのスロット識別子を前記コンピューティング・ブレードに割り当てたネットワーク・アドレスに対応付けるテーブルを備える、ブレード・ベース分散コンピューティング・システム。
【請求項９】
請求項１から８のいずれか一項に記載のブレード・ベース分散コンピューティング・システムにおいて、前記ブレード・サーバは前記ブレード・サーバの筐体を識別するの筐体識別子に関連付けられており、前記対応情報は、コンピューティング・ブレードについての前記スロット識別子および筐体識別子を、前記コンピューティング・ブレードに割り当てたネットワーク・アドレスに対応付けるテーブルを備える、ブレード・ベース分散コンピューティング・システム。
【請求項１０】
請求項１に記載のブレード・ベース分散コンピューティング・システムにおいて、前記スイッチ・ブレードが、さらに、前記ブレード・サーバの筐体を識別する筐体識別子と他の筐体に対する前記筐体の位置を識別するための筐体位置とを関連付ける情報を管理する、ブレード・ベース分散コンピューティング・システム。
【請求項１１】
請求項１に記載のブレード・ベース分散コンピューティング・システムにおいて、さらに、前記ブレード・サーバにおける各コンピューティング・ブレードのステータスを監視する筐体マネージャを備えている、ブレード・ベース分散コンピューティング・システム。
【請求項１２】
請求項１に記載のブレード・ベース分散コンピューティング・システムにおいて、前記筐体マネージャは、故障するコンピューティング・ブレードに対してリカバリ・オペレーションを起動する、ブレード・ベース分散コンピューティング・システム。
【請求項１３】
請求項１２に記載のブレード・ベース分散コンピューティング・システムにおいて、さらに、ユーザが操作して各コンピューティング・ブレードに関する様々な情報を閲覧する前記ブレード・サーバのグラフィック表示を含んでいるグラフィカル・ユーザ・インターフェイスを提供するための手段を備えている、ブレード・ベース分散コンピューティング・システム。
【請求項１４】
請求項１に記載のブレード・ベース分散コンピューティング・システムにおいて、さらに、
複数のクライアント（１０４）であって、前記１つまたはそれ以上のスイッチ・ブレードに接続するネットワーク（１０６）を介して前記ブレード・サーバに接続する複数のクライアントを備えており、
１つのスイッチ・ブレードが各クライアントへの帯域幅の要求に従って前記各クライアントに対する帯域幅を割り当てる手段を含むこと、
を特徴とする、ブレード・ベース分散コンピューティング・システム。
【請求項１５】
請求項１に記載のブレード・ベース分散コンピューティング・システムであって、さらに、
第２の複数のコンピューティング・ブレードおよび第２のセットの１つまたはそれ以上のスイッチ・ブレードを含んでいる第２のブレード・サーバであって、各コンピューティング・ブレードは、前記１つまたはそれ以上のスイッチ・ブレードに接続するネットワーク・インターフェイスを含む、第２のブレード・サーバと、
前記ブレード・サーバが有する第１のセットの前記１つまたはそれ以上のスイッチ・ブレードを、前記第２ブレード・サーバが有する前記第２セットの１つまたはそれ以上のスイッチ・ブレードに接続するネットワーク（２１２）と、を備えており、
前記第１のセットおよび第２セットの１つまたはそれ以上のスイッチ・ブレードから選択された前記スイッチ・ブレードの１つがコンフィギュレーション・マネージャを含むこと、
を特徴とする、ブレード・ベース分散コンピューティング・システム。
【請求項１６】
請求項１５に記載のブレード・ベース分散コンピューティング・システムにおいて、  前記ブレード・サーバが有する前記第１のセットの１つまたはそれ以上のスイッチ・ブレードおよび前記第２ブレード・サーバが有する前記第２のセットの１つまたはそれ以上のスイッチ・ブレードから選択されたスイッチ・ブレードは、前記第１および第２ブレード・サーバを構成するためのコンフィギュレーション・マネージャを含む、ブレード・ベース分散コンピューティング・システム。
【請求項１７】
請求項１６に記載のブレード・ベース分散コンピューティング・システムにおいて、前記コンフィギュレーション・マネージャは、各ブレード・サーバに対して複数のネットワーク・アドレスの範囲を設定する、ブレード・ベース分散コンピューティング・システム。
【請求項１８】
請求項１５に記載のブレード・ベース分散コンピューティング・システムにおいて、さらに、ユーザが操作して各ブレード・サーバおよび各コンピューティング・ブレードに関する様々な情報を閲覧する前記ブレード・サーバおよび前記第２ブレード・サーバのグラフィック表示を含んでいるグラフィカル・ユーザ・インターフェイスを提供するための手段を備えている、ブレード・ベース分散コンピューティング・システム。
【請求項１９】
請求項１５に記載のブレード・ベース分散コンピューティング・システムにおいて、さらに、前記ブレード・サーバおよび前記第２ブレード・サーバが有する前記複数のコンピューティング・ブレードの間でコンフィギュレーション情報を分配するための手段を備えている、ブレード・ベース分散コンピューティング・システム。
【請求項２０】
複数のコンピューティング・ブレード（２０６）および１つまたはそれ以上のスイッチ・ブレード（２１０）を含むブレード・サーバ（２０２）を備えるブレード・ベース分散コンピューティング・システム（２００）を管理する方法であって、各コンピューティング・ブレードは前記１つまたはそれ以上のスイッチ・ブレードに接続したネットワーク・インターフェイス（２０８）を含んでおり、
スイッチ・ブレードが、ネットワーク・アドレスを前記ブレード・サーバの各コンピューティング・ブレードに割り当てるステップと、
各コンピューティング・ブレードに割り当てた前記ネットワーク・アドレスを前記ブレード・サーバ内の前記コンピューティング・ブレードの位置に対応付ける情報を管理するステップと、
を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
【背景技術】
【０００２】
分散コンピューティング・アーキテクチャは、大規模計算のオペレーション、およびデータ格納や抽出のオペレーションを多くの異なるコンピュータが実行するのを可能にし、これにより、これらのオペレーションを実行するのに求められる時間が短縮する。分散コンピューティング・アーキテクチャは、実行するオペレーションが複雑であるアプリケーション、又は大人数のユーザが共有資源を利用して多くのトランザクションを実行するようなアプリケーション向けに使用される。
【０００３】
分散システムの実装コストやメンテナンス・コストを削減するために、ブレードと通常呼ばれる複数の低価格サーバ装置が、筐体に共にパッケージされて、ブレード・サーバと通常呼ばれるものを提供する。装置の占有スペースを最小化することにより、また複数の装置で電源を共有し、かつ別のデバイスも共有することにより、コストは削減される。各ブレードは、低コストで、現場での交換が可能なコンポーネントとなるよう設計される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特に高帯域幅でリアルタイムなメディア・データを多数のユーザが共有する共有ストレージに対しては、高可用性で高拡張性があるブレード・サーバを使用して分散コンピューティング・アーキテクチャを構築することが望ましい。しかしながら、低価格で交換可能なコンポーネントでシステムにおいて構成された高可用性を提供することには、課題がある。
【発明を解決するための手段】
【０００５】
概要
ストレージ・ネットワーク・システムのような応用のためのブレード・ベース分散コンピューティング・システムは高可用性を実現する。ブレード・サーバは、種々のコンピューティング・ブレードと、このコンピューティング・ブレードに接続するスイッチ用のブレードを統合する。冗長化したコンポーネントは、あるコンポーネントからその冗長コンポーネントへフェールオーバーする動作を可能にする。
【０００６】
高レベル・ネットワーク・アドレスを各ブレードに割り当てるというような、１つまたはそれ以上のブレード・サーバの構成は、システム内の１ブレード上でのコンフィギュレーション・マネージャと呼ばれる集中処理によって実施することができる。高レベル・ネットワーク・アドレスは各ブレード・サーバに対する一連のネットワーク・アドレスのセットを用いて割り当てることができる。ある範囲の高レベル・ネットワーク・アドレスが各ブレード・サーバに割り当てられる。各ブレード・サーバは各々のブレードに対して順に高レベル・ネットワーク・アドレスを割り当てる。
【０００７】
各ブレードに対するこの高レベル・ネットワーク・アドレスは、その筐体の識別子やスロットの識別子にマッピングすることができる。また構成情報には、ソフトウェアのバージョン情報やソフトウェアのアップグレードを含むことができる。１つまたはそれ以上のブレード・サーバにおける様々なコンポーネントの間で構成情報を分散することにより、コンフィギュレーション・マネージャとして動作する任意のコンポーネントは構成情報にアクセスすることができる。
【０００８】
各ブレード・サーバはまた、自身のブレードが動作中かどうかを決定するために監視をして、ステータス情報の通信およびリカバリ作業の一方もしくは双方を行うことができる。各ブレードで利用できるステータス情報と構成情報、および各ブレードに対するネットワーク・アドレスとその物理的な位置（筐体識別子やスロット識別子）とのマッピングについて、この情報はグラフィカル・ユーザ・インターフェイスにて表示することができる。このようなインターフェイスは、ブレード・サーバの視覚表示を含むことができ、ユーザが各ブレード・サーバや各ブレードについての様々な情報を見るために操作できる。
【０００９】
このようなブレード・ベース・システムにおけるアプリケーションは、様々なクライアント・アプリケーションによりアクセスされる高帯域幅のリアルタイムなメディア・データのための共有ストレージ向けである。このようなアプリケーションにおいて、データはセグメントに分割され、非均一なパターンにしたがってストレージ・ブレードの中で分散される。
【００１０】
このようなシステムにおいては、クライアント・アプリケーションとブレード・サーバとの間でサービスの品質管理を行うことが望ましい。各ブレード・サーバのスイッチには、クライアントに要求される帯域幅に従って、クライアントに対するポート向けの十分な帯域幅を割り当てる。このクライアントは、カタログ・マネージャを通知することで、このストレージ・システムに対する自身の要求帯域を指定することができる。このカタログ・マネージャは、異なるクライアントの要求帯域のスイッチを通告できる。あるクライアントは、定期的にその帯域要求をアップデートすることができる。
【発明を実施するための最良の形態】
【００１１】
発明の詳細な説明
図１は、分散コンピュータ・システム１００の例を示している。このコンピュータ・システム１００は、複数のコンピューティング・ユニット１０２を含む。このコンピュータ・システム１００には、任意の数のコンピューティング・ユニット１０２があり得る。このコンピューティング・ユニット１００は、コンピュータ・ネットワーク１０６を通じて相互に接続されており、また複数のクライアント・コンピュータ１０４にも同様に相互接続されている。
【００１２】
各コンピューティング・ユニット１０２は、ディスクのような不揮発性のコンピュータで読み出し可能なメディアを備えた装置であり、そこにデータを格納することができる。このコンピューティング・ユニットはまた、より高速であり、通常は揮発性であるメモリを有しており、データは不揮発性コンピュータ読み出し可能メディアからこのメモリに読み出される。各コンピューティング・ユニットはまた、別のコンピュータ・ユニットが有する処理ユニットとは独立して、自身の処理ユニットを有しており、例えばWindows  XP  Embedded（登録商標）、Linux（登録商標）およびVxWorks（登録商標）オペレーティング・システムのような組込みオペレーティング・システムのような、それ自身のオペレーティング・システムおよびアプリケーション・プログラムを動作させることができる。例えばコンピューティング・ユニットは、サーバ・コンピュータとして実装され、そのオペレーティング・システムにおける１つまたはそれ以上のデータ・ファイル中の、不揮発性コンピュータ読み出し可能メディアに格納されたデータへのアクセスであって、リード・アクセスおよびライト・アクセスを含むがそれに限定されることないようなアクセスの要求に応答する。コンピューティング・ユニットは、データ格納およびデータ抽出に加えて、様々なデータ処理オペレーションのような他のオペレーションも実行することができる。
【００１３】
クライアント・コンピュータ１０４はまた、コンピュータ・ネットワーク１０６上のコンピューティング・ユニット１０２と通信するコンピュータ・システムである。各クライアント・コンピュータは、汎用コンピュータで実現することができ、それ自身の不揮発性メモリや一時メモリを有し、またオペレーティング・システムやアプリケーション・プログラムを動作させるためのプロセッサを有する。各クライアント・コンピュータ１０４は、異なるセットのアプリケーション・プログラムおよびオペレーティング・システムの一方もしくは双方を実行することができる。
【００１４】
図１に示すこのシステムの一応用例として、高帯域幅のメディア・データのための分散共有ファイルシステムとして使用するものをこれから記述する。このような応用は、米国特許６，７８５，７６８により詳細に記述されている。コンピューティング・ユニット１０２は、ネットワーク１０６を介してクライアント・コンピュータ１０４とデータを送受するためのサーバとして動作させることができる。クライアント・コンピュータ１０４は、ストレージ・ユニット１０２にデータを格納するためにデジタル・ソースまたはアナログ・ソースから受信したデータを収集するシステムを含むことができる。クライアント・コンピュータ１０４はまた、このストレージ・ユニットからデータを読み出すシステムも含み、例えば、オーディオ編集やビデオ編集を含むがこれに限定されることのない、マルチメディア・プログラムをオーサリング、処理、または再生するためのシステムというシステムである。他のクライアント・コンピュータ１０４は、様々な失敗復旧タスクを実行することができる。分散ファイルシステムに対して、１つまたはそれ以上のクライアント・コンピュータを使用して、１つまたはそれ以上のカタログ・マネージャ１０８を実装することができる。カタログ・マネージャは、クライアント・コンピュータ１０４からアクセス可能なデータベースであり、コンピューティング・ユニット１０２で利用できるデータに関する情報を維持する。この実施例は、１９９７年１０月２３日付けのＰＣＴＰｕｂｌｉｃａｔｉｏｎ  ＷＯ９７／３９４１１に示されているニュース・ブロードキャスティング・システムを実装するのに用いることができる。
【００１５】
このようなシステムにおけるユニットのうちの１つのネットワーク・インターフェイスにより生じる、データ転送要求とその要求の実転送との間の待ち時間は、参照によって本明細書に引用される米国仮特許出願番号６０／７４８，８３８に基づき、＿＿＿に出願されたＭｉｔｃｈ  Ｋｕｎｉｎｓｋｙ氏による米国特許出願番号＿＿＿「分散共有ストレージ・システムにおける伝送要求マネージメント」に記載されている技術を用いて削減することができる。
【００１６】
このような分散共有ファイルシステムの実施例において、各ファイルのデータはセグメントに分割される。例えばセグメントのコピーのような、各セグメントに対する冗長情報が決定される。各セグメントとその冗長情報は、異なるコンピューティング・ユニットのストレージに格納される。セグメントおよびその冗長情報がそのコンピューティング・ユニットの任意の順序に従って格納されているコンピューティング・ユニットの選択は、その分散のパターンが、あるファイルと次のファイル、およびそのファイルとその冗長情報と異なる場合は、非連続な分散を提供する。例えばこの順序は、ランダムでも擬似ランダムでも準ランダムでも、または順列のような確定した順序形態でもよい。データのセグメントのコピーの分散の一例を図１に示す。図１において、ｗ、ｘ、ｙおよびｚとしてラベル付けされた４つのコンピューティング・ユニット１０２は１，２，３および４としてラベル付けされた４つのセグメントに分割されたデータを格納する。セグメントおよびそれらのコピーを分散する一例を示しており、ここでは、セグメント１と３はコンピューティング・ユニットｗに格納され、セグメント３と２はコンピューティング・ユニットｘに格納され、セグメント４と１はコンピューティング・ユニットｙに格納され、セグメント２と４はコンピューティング・ユニットｚに格納される。このような分散ファイルシステムの実現に関する更なる詳細は、参照によって本明細書に引用される米国特許６，７８５，７６８に記述されている。
【００１７】
図１に示したコンピューティング・ユニット１０２およびコンピュータ・ネットワーク１０６は、１つまたはそれ以上のブレード・サーバを用いて実装することができる。ブレード・サーバは、（ブレードと呼ばれる）複数のサーバ・モジュールを一つの筐体に収容するサーバ・アーキテクチャである。このため、各コンピューティング・ユニットはブレードを用いて実装される。この筐体は冗長化した電源およびネットワーク・スイッチを提供し、各ブレードは自身のＣＰＵ、メモリ、ハードディスクおよびネットワーク・インターフェイスを有し、（ファイルシステムを含む）自身のオペレーティング・システムやアプリケーション・プログラムを動作することができる。このブレード・サーバはまた、そのブレードのうちの１つの上に少なくとも１つのスイッチを含み、このスイッチに対して他のブレードが接続され、そして１つまたはそれ以上のクライアント・コンピュータを接続することができる。このスイッチ・ブレードの有するＣＰＵは、スイッチを構成し、監視することができる。
【００１８】
図２を参照して、１つまたはそれ以上のブレード・サーバを用いて実現したサーバ・システム２００を記述する。このサーバ・システム２００は１つまたはそれ以上のブレード・サーバ２０２を含み、各ブレード・サーバは１セットのブレード２０６を収容した筐体（図示せず）を備えている。各ブレード２０６は、プロセッサ、ストレージ、およびネットワーク・アドレスを備えたネットワーク・インターフェイス２０８を有している。この筐体の少なくとも１つのスロットは、スイッチ・ブレード２１０と呼ばれるスイッチとして動作するブレードのために予約されている。ある実装において、１つのブレードはIntel  Xeon（登録商標）プロセッサのような１つの従来型のプロセッサ、Windows XP  Embedded（登録商標）オペレーティング・システムのような１つのオペレーティング・システム、およびディスク・ベースのストレージを有している。この筐体は、すべてのブレードに対する冗長化した電源（図示せず）、および少なくとも１つのスイッチ・ブレード２１０を含んでいる。このスイッチ・ブレードは、冗長化することもできる。各ブレードは、そのネットワーク・インターフェイスを介してこの筐体のスイッチ・ブレード２１０に接続する。冗長化したスイッチ・ブレードを提供する場合、各ブレードはまた、冗長化したネットワークを用いてこの冗長化したスイッチ・ブレードに接続することができる。クライアントは、ブレード・サーバに対してこのスイッチ・ブレード２１０を介して直接的に接続するか、他のネットワーク・インフラストラクチャおよび他のネットワーク接続機器を介して間接的に接続する。ブレード・サーバ２０２は、それらの夫々のスイッチ間で接続したネットワーク２１２を有することで相互に接続することもできる。このスイッチは、相互接続した際に１つの大きなスイッチとして動作するように構成することができる。
【００１９】
図３は冗長化したコンポーネントを有するブレード３０２を示している。このブレード・サーバは、１セットのブレード３０６を収容した筐体（図示せず）を備えている。各ブレード３０６は、プロセッサ、ストレージ、第１のネットワーク・アドレスを備えた第１のネットワーク・インターフェイス３０８、および第２のネットワーク・アドレスを備えた第２のネットワーク・インターフェイス３０９を有している。この筐体は、すべてのブレードに対する冗長化した電源（図示せず）および冗長化したスイッチ・ブレード３１０および３１１を含んでいる。各ブレードは、その第１ネットワーク・インターフェイス３０８を介してスイッチ３１０に接続し、またその第２ネットワーク・インターフェイス３０９を介してスイッチ３１１に接続する。この冗長ネットワークは、下記に詳細を記述しているとおり、失敗したコンポーネントからバックアップ・コンポーネントへのフェールオーバーを許可することで、より高いシステムの可用性を提供する。この冗長スイッチ・ブレードは、冗長化したシリアル・リンク３１４又はイーサネット（登録商標）・リンクで相互接続することができる。
【００２０】
各筐体は、このサーバ・システムにおける筐体の間で一意の識別子を有する。この筐体識別子は、恒久的な識別子となり得、製造される際に割り当てられる。筐体内において、筐体内での各物理的な位置は、スロット識別子と呼ばれる筐体位置に対応付けされている。この筐体位置は、例えば筐体に組み込まれたブレードが受信する、筐体内の各スロットに対するハードワイヤード信号で規定することができる。このように、各ブレードはそのスロット識別子および筐体識別子によって一意に特定することができる。
【００２１】
ブレードは一般的に、ディスプレイやキーボードを有さないために、そのブレードのステータスに関する情報の通信は一般的にネットワークを介して行われる。しかしながら、ブレードが適切に機能していなければ、このブレードからの通信は生じない。たとえ通信が生じたとしても、ダイナミック・ホスト・コンフィグレーション・プロトコル（ＤＨＣＰ）のような従来のネットワーク・アドレス割当てプロトコルを用いて、そのネットワーク・アドレスのみが付与されたブレードの物理位置を特定するのは難しい。このような場合のブレードを探し出す唯一の方法はその物理座標を介する方法であり、この座標は、ブレードを収容した筐体の（同じシステムにおける他の筐体と相関する）位置、およびその筐体におけるブレードのスロット識別子との組合せである。システム開発、システム導入、サービス・インテグレーションおよび他の活動の間でブレードの位置を探し出すこともまた重要である。スイッチ・ブレードとコンピュート・ブレードの両方共が、筐体内に一意のスロット識別子を有している。
【００２２】
従って、好ましくはこのネットワークは、（コンピューティング・ユニット対して、またはスイッチに対してであろうと）ブレードに対するスロット識別子および筐体識別子がそのネットワーク・アドレスから決定できるような方法で構成される。このような設定は、筐体内のすべてのブレードが別の筐体のブレードに割り当てられるアドレス・レンジと重複することのないアドレス・レンジ内でアドレスを割り当てられるように実装することができる。これらのネットワーク・アドレスは、連続させることができ、またスロット識別子に従って連続して割り当てることができる。高可用性および自動構成可能性を提供するために、好ましくはこの構成は筐体または筐体内ブレードのスタートアップ時、リブート時、リプレイス時、追加時、アップグレード時に自動的に実施される。スロット識別子と筐体識別子の各組、ネットワーク・アドレス（一般的にはＩＰアドレス）、を含んだ対応する構成情報、および装置が構成されてその装置でサービスが利用可能となる時間などのような任意の他の情報に対する追跡をするテーブルが維持される。別々のテーブルは、（他の筐体との相関する）筐体位置と筐体識別子とを関連付ける。例えばグローバル・ポジショニング・システム（ＧＰＳ）のように、位置追跡メカニズムをこの筐体に組み込むことにより、手動もしくは自動でこの関連付けを行うことが可能である。この構成情報をブレードの不揮発性メモリに格納することで、ブレードへの電力の損失に耐えることができる。この構成情報を各ブレードに格納することで任意のブレードがコンフィギュレーション・マネージャとして動作し、任意のコンフィギュレーション・マネージャが構成情報にアクセスすることが可能になる。
【００２３】
図４に、どのようにしてこのような構成が実施されるかを記載する。装置の構成は、装置が起動してそのファームウェア、オペレーティング・システム、および関連したアプリケーションをインストールした後に行うことができる。それからこのサーバ・ブレード装置は、２つのスイッチ・ブレードがトラップした２つの低レベル固定ネットワーク・アドレス（例えばＭＡＸアドレス）に対して、そのスロット識別子を含んだネットワーク・パケット（例えば、イーサネット（登録商標）・レイヤー・パケット）を送出し始める（４００）。このスイッチは、これらのメッセージが他の接続された筐体に届くことがないようにプログラムすることができる。スイッチ・ブレードの１つは、高レベル・ネットワーク・アドレス（例えばＩＰアドレス）をブレードに提供することにより応答を行う（４０２）。この高レベル・ネットワーク・アドレスは、スロット識別子に基づき、そしてその筐体に割り当てられた１ブロックのネットワーク・アドレスから獲得することができる。好ましくは、各ブレードにはそのスロット識別子に従って、連続したネットワーク・アドレスを割り当てる。ブレードはそれから、その高レベル（例えばＩＰ）ネットワーク・アドレスをスイッチ・ブレードのＣＰＵが規定したアドレスに設定する。
【００２４】
マルチ筐体インストールにおける構成を開始するために、ユーザは筐体の中から任意の１つを選択し、ネットワーク・アドレス・ブロックや時間等を含む完全インストールの構成情報をスイッチ・ブレードの中の１つに提供する。そこでこの選択したスイッチ・ブレードは、コンフィギュレーション・マネージャにこの構成情報、およびスイッチ・ブレードのうちの１つで実行されるプロセスを渡す。スイッチ・ブレードのうちの１つは、コンフィギュレーション・マネージャとして選択される。任意の適当な技術が用いられてコンフィギュレーション・マネージャとして装置を選択する。例えば、各スイッチ・ブレードがスタートアップするとすぐに、その筐体識別子を含む低レベル・ネットワーク・メッセージをこのシステムの別のスイッチ・ブレードに送出することができる。最も低い筐体識別子を有するスイッチ・ブレードをこのコンフィギュレーション・マネージャとして選択することもできる。仮にこのコンフィギュレーション・マネージャが動作しているブレードを取り除いた場合（これは現場交換可能ユニットであるため可能である）、別のスイッチ・ブレードがコンフィギュレーション・マネージャの役割を引き継ぐ。このことは、動作中であることを示すメッセージを別の筐体のスイッチ・ブレードに対してコンフィギュレーション・マネージャに一時的に送信させることで遂行される。ある実施例において、このコンフィギュレーション・マネージャは、外部のユーザ入力を介して手動で定めることができる。別のスイッチ・ブレードが、コンフィギュレーション・マネージャは動作中でないと判断したら、もう１つのスイッチ・ブレードがコンフィギュレーション・マネージャの動作を引き継ぐ。
【００２５】
コンフィギュレーション・マネージャは、このシステムにおけるすべての筐体の筐体識別子をその筐体のスイッチ・ブレードから受信することができる。すべてのスイッチ・ブレードは、ユニキャスト・プロトコルまたはマルチキャスト・プロトコルを介して相互に通信することができる。その後、このコンフィギュレーション・マネージャは、テーブルに筐体識別子を整理し、より大きなアドレス・ブロックからネットワーク・アドレスの範囲を各筐体に割り当てる。その後にこの情報は、各筐体におけるすべてのスイッチ・ブレードに送り返すことができる。筐体のスイッチ・ブレードは、筐体に割り当てたネットワーク・アドレスの範囲を受信し、ネットワーク・アドレスをこの筐体の各ブレードに割り当てる。コンフィギュレーション・マネージャは、各スイッチ・ブレード、および任意的には各筐体の各ブレードがこのシステムの構成情報のコピーを有することを保証する。
【００２６】
各筐体はまた、筐体マネージャを有することができ、これはブレードのステータス、およびブレード上で動作するアプリケーションを監視するアプリケーションである。装置全体において、全ての筐体に筐体マネージャがあるが、コンフィギュレーション・マネージャはただ１つしかない。これら両方の機能は、スイッチ・ブレードのＣＰＵに常駐する。筐体マネージャが実行するプロセスは、これから図５と関連付けて説明する。各アプリケーションおよび装置は、定期的に監視されており、この筐体マネージャにステータス・メッセージを送信する。これらのステータス・メッセージは、筐体マネージャが受信する（５００）。この筐体マネージャは、最後のメッセージを受信した時間のような各装置のステータスに関する情報を維持し、またメッセージを受信した時にこのステータスをアップデートする（５０２）。監視されている各装置もしくはアプリケーションは、定期的にステータス・メッセージを送信することが求められる。ステータス・メッセージの受信予定時間にステータス・メッセージを受信しなければ、すなわちタイムアウトが発生したら（５０４）、この装置もしくはアプリケーションに対するリカバリ手続を開始する（５０６）。
【００２７】
このリカバリ手続のタイプおよび複雑さは、監視されている装置もしくはアプリケーションに依存する。例えば、あるアプリケーションが応答しなければ、筐体マネージャはそのアプリケーションを実行しているブレードのオペレーティング・システムに対してそのアプリケーションのプロセスを終了し再起動するよう指示することができる。失敗したオペレーティング・システムは、そのブレードを再起動し得る。対応する冗長化した装置を備えている装置が失敗したら、その冗長装置を起動することができる。ハードウェア装置の失敗を検知したら、システム管理者のアプリケーションにその失敗を通知することができる。
【００２８】
この筐体マネージャの動作に関する特別の例として、図６はコンピューティング・ユニットが失敗した時に、どのようにシステムがリカバリできるかを示したフロー・チャートである。まず、この筐体マネージャは、ステータス・メッセージを監視することによりコンピューティング・ユニット・ブレードが失敗したかどうかを検知する（６００）。このような失敗を検知したらすぐに、筐体マネージャは、このコンピューティング・ユニット・ブレード（もしくはその関連アプリケーション）に再起動を指示する（６０２）。（６０４）で決定するようにこの再起動がうまくいかなければ、および（６０６）で決定するように再起動試行数が限界値（例えば、３）に達していなければ、再試行が実施される（６０２）。何回か試行がうまくいかなければ、そのコンピューティング・ユニットの失敗状態が通信される（６０８）。再起動がうまくいけば、その後この筐体マネージャは通常のオペレーションを再開する。
【００２９】
コンピューティング・ユニット・ブレードが失敗し、交換する必要がある場合は、新しいコンピューティング・エレメントが追加される際に、筐体内でその構成を行う。コンピューティング・ブレード・ユニットを追加する際は、交換したユニットとネットワーク・アドレスを同一に設定する。それがネットワーク・アドレスを取得するプロセスは、以前に記述してある。この再起動したコンピューティング・ブレードによって、その関連するアプリケーションおよび装置は、ステータス・メッセージをスイッチ・ブレード上の筐体マネージャへ送信することを開始できる。
【００３０】
スイッチ・ブレードの失敗や取替を管理するためのオペレーションについて、これから説明する。ブレード・サーバのスイッチ・ブレードが失敗することによって生じる、サーバ・オペレーションの突発的失敗に対する潜在リスクは、冗長化したスイッチ・ブレードを提供することによって削減される。冗長スイッチ・ブレードを用いることにより、スイッチ・ブレードの失敗に関わらず各コンピューティング・ブレード・サーバへのネットワーク接続性およびサービス持続性が保証される。通常オペレーションの間、複数のスイッチ・ブレードのうちの一つが、アクティブな筐体マネージャとして指定されるのに対して、他のスイッチ・ブレードはパッシブな筐体マネージャとして指定される。両方のスイッチ・ブレードは、スイッチとしてなお動作しているが、その一つだけがアクティブな筐体マネージャである。筐体内のスイッチは、冗長化したシリアル又はイーサネット（登録商標）制御経路を介して接続し、相互にインストール構成情報を交換するのと共に、相互の動作を監視する。ブレード・サーバにおけるこのスイッチ内の一つは、例えば最新の構成データを有していれば、もしくは、最も低いスロット識別子を有していれば、アクティブ・スイッチの役割を担うことが前提となる。スイッチ・ブレードを交換した際には、新しいスイッチは、通常は最新の構成データを有していない。そのような場合は、冗長スイッチ・ネットワークを構成する別のスイッチ・ブレードと同様に、筐体マネージャからその構成データを受信する。
【００３１】
通常オペレーションの間、この筐体マネージャは、一つのスイッチ・ブレード上のＣＰＵで動作し、他のスイッチ・ブレード上のパッシブ筐体マネージャからのステータス・メッセージを監視する。パッシブ筐体マネージャの失敗を検知したら、このアクティブ筐体マネージャはそのスイッチ・ブレードの再起動を試みるか、もしくはその失敗状態を通信することができる。
【００３２】
通常オペレーションの間はまた、パッシブ筐体マネージャは、アクティブ筐体マネージャのスイッチ・ブレードからのステータス・メッセージを監視する。図７は、アクティブ筐体マネージャのスイッチ・ブレードが失敗した時に、どのようにシステムがリカバリできるかを説明したフローチャートである。パッシブ筐体マネージャは、指定された時間の期間内にステータス・メッセージを受信しない際に、アクティブ筐体マネージャの失敗を検知する（７００）。この２つのスイッチ・ブレード間の冗長シリアル・リンク接続は、検知した失敗がリンクの失敗である可能性を減らすことを意図する。その後パッシブ筐体マネージャは、アクティブ筐体マネージャとしての役割を引き受ける（７０２）。新アクティブ筐体マネージャはまた、再起動したスイッチもしくは交換スイッチがパッシブ・モードで筐体マネージャ・サービスを開始することを保証する（７０４）。（７０６）で決まるように、再起動がうまくいけば、その時はフェールオーバーが完了する。そうでなければ、（７０８）で決まるように、閾値に到達するまでもとのアクティブ・スイッチの再起動を何回か試行する。再起動がうまくいかなければ、そのスイッチの失敗状態が通信され（７１０）、そのスイッチ・ブレードを交換することになる。
【００３３】
図８はスイッチ・ブレードが追加される時にシステムがどのようにリカバリするかを説明したフローチャートである。スイッチ・ブレードが追加される場合、ブレード・サーバにおける他のスイッチ・ブレードの筐体マネージャが現在アクティブ状態にある。このため、この追加されるスイッチ・ブレードは、パッシブ状態でその筐体マネージャ・サービスを開始することになる。追加されたスイッチは起動後、自身のＭＡＣアドレス、筐体識別子および筐体位置を用いてブロードキャスト・イーサネット（登録商標）・メッセージを送信する（８００）。他のスイッチ・ブレードは、このメッセージを受信し、ネットワーク・アドレスを含んだ自身の情報で応答する（８０２）。その後パッシブ筐体マネージャは、自身のステータス・メッセージのアクティブ筐体マネージャへの送信を開始する（８０４）。このパッシブ筐体マネージャはまた、アクティブ筐体マネージャの監視を開始する（８０６）。
【００３４】
高可用性を提供することができる別の領域は、ブレードのソフトウェアのアップグレードにおける領域である。各ブレード（コンピューティング・ブレード・ユニットでもスイッチ・ブレードでも）は、不揮発性メモリ内にブート・ローダ、オペレーティング・システムおよびロードされるアプリケーションを含むファームウェアを識別するための最新で有効な構成テーブルを維持する。このテーブルのシャドウ・コピーが維持される。さらに、このファームウェア、オペレーティング・システムおよびアプリケーションのシャドウ・コピーも維持される。
【００３５】
図９は、ソフトウェアがシステム内でどのようにアップグレードされるかを示したフローチャートである。ネットワークを介してソフトウェア・アップグレードをブレードに供給することができる。ソフトウェア・アップグレードを実施する時、アップグレードする部分のシャドウもしくは第２コピー、例えばファームウェア、オペレーティング・システムおよびアプリケーションをアップデートする９００。ブレードはシャドウ・コピーの構成テーブルに従って起動するよう指示をうける９０２。失敗が発生したら、例えば２のような回数、再起動を試行する９０４。ソフトウェア・アップグレードが９０６に示されているように適切に起動することができなければ、その後ブレードは、現在の有効な構成テーブルに戻る。そうでなければ、そのソフトウェアのシャドウ・コピーが９０８で示されるように現在の有効な構成テーブルになる。
【００３６】
これらのオペレーションが示すように、各ブレード・サーバは自身のブレードを監視してステータス情報の通信およびリカバリ・オペレーションの開始の一方または双方を実施するために動作可能か否かを決定する。各ブレードで使用可能なステータス情報および構成情報と共に、各ブレードのネットワーク・アドレスの物理位置（筐体識別子およびスロット識別子）へのマップと共に、この情報はグラフィカル・ユーザ・インターフェイスで表示することができる。このようなインターフェイスは、ブレード・サーバのグラフィック表示を含むことができ、ユーザは各ブレード・サーバや各ブレードの様々な情報に対して処理を行う。
【００３７】
上述のシステムは、高可用性で、ブレード・ベースで分散される共有ファイルシステムであって、ビデオ・データやオーディオ・データのような高帯域幅の一時的なメディア・データ、つまり大人数のユーザがいる環境でキャプチャ、編集、プレイバックするデータをサポートするシステムを実装するのに特に役立つ。ネットワークのトポロジーは、そのネットワーク・アドレスから得ることができるので、この情報は、ブレード・サーバを分割使用して様々な性能強化を施すのに使用することができる。例えば、ネットワーク・トポロジーおよびネットワーク・ボトルネックに基づいて、低解像度マテリアルから高解像度マテリアルを分離することができ、次に、異なるクライアントからネットワーク・トラフィックをそのネットワーク上の異なる部分へ分離することになる。このようなアプリケーションにおいて、データはセグメントに分割され、各コンテンツ・タイプで指定されるストレージ・ブレード集合内の均一でないパターンに従って、ストレージ・ブレード内で分散されることになる。
【００３８】
このようなシステムにおいて、クライアント・アプリケーションとブレード・サーバ間のサービス品質を管理することが望ましい。各ブレード・サーバのスイッチは、クライアントが要求する帯域幅に対応して、クライアントのポートに対して十分な帯域、もしくはバッファリングを割り当てる。クライアントは、カタログ・マネージャを通知することで、このストレージ・システムに対する帯域幅要求またはバースト要求を示すことになる。このカタログ・マネージャは、異なるクライアントの帯域幅要求またはバースト要求をスイッチに通知することができる。クライアントは、定期的にその帯域幅要求またはバースト要求をアップデートできる。
【００３９】
例示的な実施例をここに示したが、当業者には明らかなように、上記は単に例示に過ぎず限定されるものではなく、例示のためにのみ提示されている。多くの改変や他の実施例は、技術分野における当業者の範囲に含まれ、そして本発明の範囲に包含されるとみなされるべきである。
【図面の簡単な説明】
【００４０】
【図１】分散コンピューティング・システムを例示したブロック図である。
【図２】スイッチにより相互接続されたブレードを有するブレード・サーバを例示したブロック図である。
【図３】冗長化したスイッチおよびネットワークを有するブレード・サーバを例示したブロック図である。
【図４】このシステムをどのように設定するかを記述したフローチャートである。
【図５】このシステムのステータスをどのように監視するかを記述したフローチャートである。
【図６】コンピューティング・ユニット・ブレードの失敗時に、このシステムがどのように復旧するかを記述したフローチャートである。
【図７】スイッチ・ブレードの失敗時に、このシステムがどのように復旧するかを記述したフローチャートである。
【図８】スイッチ・ブレードの追加時に、このシステムがどのように復旧するかを記述したフローチャートである。
【図９】このシステムにおいて、ソフトウェアをどのようにアップグレードするかを記述したフローチャートである。
【図１】
0004562196.tif 000002
【図２】
0004562196.tif 000003
【図３】
0004562196.tif 000004
【図４】
0004562196.tif 000005
【図５】
0004562196.tif 000006
【図６】
0004562196.tif 000007
【図７】
0004562196.tif 000008
【図８】
0004562196.tif 000009
【図９】
0004562196.tif 000010