(57)【特許請求の範囲】
【請求項１】
少なくとも２つの計算ノード（computing nodes）を備えるコンピューティングシステ
ム（４００）であって、
前記計算ノード(compute nodes)の少なくとも１つは、
コンピューティングクラスタに関連した互換性機能を管理するクラスタモジュール（４１０）と、
前記少なくとも２つの計算ノードに関連した互換性機能を管理するノードモジュール（４３０）と、
１つ又は複数の外部サーバと接続され、前記クラスタモジュールおよび前記ノードモジュールを制御する管理モジュール（４５０）と
を備え、
前記クラスタモジュールは、
コンピューティングクラスタを初期化し、前記少なくとも２つの計算ノードを、前記初期化されたコンピューティングクラスタ内に集約するクラスタ作成モジュール（４１２）と、
前記初期化されたコンピューティングクラスタに、計算ノードを追加するノード追加モジュール（４１４）と、
コンピューティングクラスタのライセンス情報を含むライセンス使用権（４２２）と、
前記コンピューティングクラスタのライセンス情報を含むノードライセンスプール（４２４）と
を有し、
前記ライセンス情報は、コンピューティングクラスタの機能を分類するための識別情報を示すバンドルタイプのパラメータを含み、
前記ノードモジュールは、前記コンピューティングクラスタの前記ライセンス情報を記憶し、
前記管理モジュールは、前記コンピューティングクラスタが、前記バンドルタイプのパラメータを有する予め定められた数のノードを含む場合に、前記コンピューティングクラスタをアクティブ化する
コンピューティングシステム。
【請求項２】
前記管理モジュールは、外部ライセンスサーバ（４６０）にライセンスキーを提供し、前記外部ライセンスサーバ（４６０）からライセンス情報を受信する
請求項１に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、電子コンピューティングに関し、より詳細には、クラスタ化コンピューティングシステムにおける互換性エンフォースメント（compatibility enforcement）に関する。
【背景技術】
【０００２】
「クラスタ化コンピューティングシステム」という用語は、単一システムとして機能するような見かけを提供するように協調する一群の疎  結合コンピューティングデバイスから形成されたコンピューティングシステムを指す。クラスタリング技術によって、ユーザは、基本ビルディングブロックを使用してさまざまなコンピューティングシステム構成を構築することが可能になり、保守ルーチン又は更新ルーチンの一部としてクラスタ化システムの構成又はコンポーネントを変更することが可能になる。例として、個別のストレージコンポーネントのクラスタから大容量ストレージシステムを構築することができる。同様に、個別のコンピューティングコンポーネントのクラスタからグリッドコンピュータを構築することができる。
【０００３】
クラスタリング技術を使用して開発されたコンピューティングシステム及び製品は、特定の技術的な問題を提起する。技術的な問題には、クラスタ化デバイス上で動作するハードウェア、ソフトウェア、及びファームウェアの間の互換性を確実にすること、並びに、個々のコンピューティングデバイスに関連したライセンス条項及びクラスタ構成に関連したライセンス条項の順守を確実にすることが含まれる。
【発明の開示】
【課題を解決するための手段】
【０００４】
一実施の形態では、クラスタ化コンピューティングシステムを作成する方法は、コンピューティングクラスタのライセンス情報を、計算ノードに関連したメモリモジュールに記憶することであって、ライセンス情報は、クラスタの特徴を識別するバンドルタイプのパラメータ、及び、計算ノードの特徴を識別する１つ又は複数のノードライセンスパラメータを含む、記憶すること、第１の計算ノードにおいてコンピューティングクラスタを初期化すること、１つ又は複数の利用可能な計算ノードをコンピューティングクラスタに追加すること、並びに、コンピューティングクラスタが、バンドルタイプのパラメータに関連したルールに準拠した複数のノードを含む場合に、コンピューティングクラスタをアクティブ化すること、を含む。
【発明を実施するための最良の形態】
【０００５】
本明細書では、クラスタ化コンピューティングシステムにおける互換性エンフォースメントのための例示のシステム及び方法を説明する。本明細書で説明する特定の方法は、コンピュータ可読媒体上の論理命令及び関連データとして具体化することができる。論理命令は、１つ又は複数のプロセッサ上で実行されると、説明する方法を実施する専用マシンとしてプロセッサ（複数可）をプログラミングする。プロセッサ（複数可）は、本明細書で列挙する方法を実行する論理命令によって構成されると、説明する方法を実行するための構造を構成することができる。
【０００６】
実施の形態では、本明細書で説明する主題は、たとえば、ストレージエリアネットワーク（ＳＡＮ）等のシステムレベルのデータストレージを提供するストレージアーキテクチャにおいて実施することができる。
【０００７】
本明細書で説明する実施態様では、ストレージを利用するコンピューティングシステムは、ホストと呼ばれる。たとえば、ホストは、大きなデータベースを処理するスーパーコンピュータ、トランザクションレコードを保持するトランザクション処理サーバ等とすることができる。或いは、ホストは、企業向けのストレージサービスを提供するローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）上のファイルサーバとすることもできる。
【０００８】
ダイレクトアタッチドストレージのソリューションでは、ホストは、複数の直接接続されたディスクドライブを管理するように構成された１つ又は複数のディスクコントローラ又はＲＡＩＤコントローラを含む場合がある。一方、ＳＡＮでは、ホストが、高速接続技術、たとえば、この特定の例ではファイバチャネル（ＦＣ）ファブリック等、に従ってＳＡＮに接続する。
【０００９】
仮想化ＳＡＮアーキテクチャは、１つ又は複数のストレージセルを備えることができる。ここで、各ストレージセルは、ディスクグループと呼ばれる一群のストレージデバイスを備える。各ストレージセルは、ディスクグループに結合された並列ストレージコントローラを備える。これらストレージコントローラは、ファイバチャネル調停ループ接続を使用するか、又は、ファイバチャネルファブリック等のネットワークを通じて、ストレージデバイスに結合することができる。また、ストレージ容量を使用するコンピュータへのそのストレージ容量の提供を管理することを可能にするために、ストレージコントローラは、ポイントツーポイント接続を通じて互いに結合することもできる。
【００１０】
本明細書で説明するネットワークアーキテクチャは、たとえばプライベートＳＡＮを使用するエンタープライズコンピューティングシステム等の分散コンピューティング環境を表す。しかしながら、このネットワークアーキテクチャは、特定のアプリケーションのニーズを満たすように容易にスケールアップ又はスケールダウンすることができる。
【００１１】
図１は、ストレージネットワークを利用するネットワーク接続コンピューティングシステム１００の一実施の形態の概略図である。一実施の形態では、ストレージプール１１０は、Lubbers他の公開された米国特許出願公開第２００３／００７９１０２号又はVoigt他の米国特許出願第２００５／０１７２０７３号に記載されているような仮想化ストレージプールとして実施することができる。
【００１２】
複数の論理ディスク（論理ユニット、ＬＵ、又は時にＬＵＮとも呼ばれる）１１２ａ、１１２ｂをストレージプール１１０内にアロケートすることができる。各ＬＵＮ１１２ａ、１１２ｂは、連続範囲の論理アドレスを備える。この論理アドレスは、ホストデバイスによって使用される接続プロトコルからの要求を一意に識別されたＬＵＮ１１２ａ、１１２ｂにマッピングすることによって、ホストデバイス１２０、１２２、１２４、及び１２８がアドレス指定できるものである。サーバ１２８等のホストは、他のコンピューティングシステム若しくはコンピューティングデバイス又は他のデータ処理システム若しくはデータ処理デバイスにサービスを提供することができる。たとえば、クライアントコンピュータ１２６は、サーバ１２８等のホストを介してストレージプール１１０にアクセスすることができる。サーバ１２８は、クライアント１２６にファイルサービスを提供することができ、トランザクション処理サービス、電子メールサービス等の他のサービスを提供することができる。したがって、クライアントデバイス１２６は、ホスト１２８によって消費されるストレージを直接使用する場合もあるし、使用しない場合もある。
【００１３】
ホストとしての機能を果たすこともできる無線デバイス１２０やコンピュータ１２２、１２４等のデバイスは、ＬＵＮ１１２ａ、１１２ｂに直接論理結合することができる。ホスト１２０〜１２８を複数のＬＵＮ１１２ａ、１１２ｂに結合することができ、複数のホスト間でＬＵＮ１１２ａ、１１２ｂを共有することができる。図１に示すデバイスのそれぞれは、メモリ、マスストレージ、及び、ネットワーク接続を管理するのに十分な一定のデータ処理能力を含むことができる。
【００１４】
ＬＵＮ１１２ａ、１１２ｂ等のＬＵＮは、信頼性のあるストレージの基本ユニットである１つ又は複数の冗長ストア（ＲＳｔｏｒｅ）を備える。ＲＳｔｏｒｅは、関連した冗長特性を有する順序付けられた一組の物理ストレージセグメント（ＰＳＥＧ）を備え、単一の冗長ストアセット（ＲＳＳ）内に完全に含まれる。従来のストレージシステムとの類推から、ＰＳＥＧは、ディスクドライブに類似し、各ＲＳＳは、複数のドライブを備えるＲＡＩＤストレージセットに類似している。
【００１５】
特定のＬＵＮを実施するＰＳＥＧを任意の個数の物理ストレージディスクにわたって分散させることができる。その上、特定のＬＵＮ１１２が表す物理ストレージ容量は、変化する容量、信頼性、及び可用性の特徴を提供するさまざまなストレージタイプを実施するように構成することができる。たとえば、いくつかのＬＵＮは、ストライピング、ミラーリング、及び／又はパリティ保護がなされたストレージを表すことができる。他のＬＵＮは、ストライピングも冗長性もパリティ保護もなしに構成されるストレージ容量を表すことができる。
【００１６】
ＳＡＮマネージャアプライアンス１０９は、管理論理ディスクセット（ＭＬＤ）１１１に結合されている。ＭＬＤ１１１は、ＬＵＮ１１２ａ、１１２ｂ、論理デバイスアロケーションドメイン（ＬＤＡＤ）１０３ａ、１０３ｂを作成するのに使用される論理構造体、及び、システムによって使用される他の論理構造体を記述するメタデータコンテナである。ストレージプール１１０において利用可能な物理ストレージ容量の一部は、クォーラム空間１１３として予約され、ＬＤＡＤ１０３ａ、１０３ｂにアロケートすることができず、したがって、ＬＵＮ１１２ａ、１１２ｂを実施するのに使用することができない。一特定の例では、ストレージプール１１０に加わっている各物理ディスクは、クォーラム空間１１３として指定できる、予約された量の容量（たとえば、最初の「ｎ」個の物理セクタ）を有する。ＭＬＤ１１１は、複数の物理ドライブのこのクォーラム空間においてミラーリングされ、したがって、ドライブが故障した場合であってもＭＬＤ１１１にアクセスすることができる。一特定の例では、少なくとも１つの物理ドライブが、（「クォーラムドライブ」として指定された）ＭＬＤ１１１のコピーを含む各ＬＤＡＤ１０３ａ、１０３ｂに関連付けられる。ＳＡＮ管理アプライアンス１０９は、ＬＤＡＤ１０３ａ、１０３ｂ及びＬＵＮ１１２ａ、１１２ｂの名前文字列並びにオブジェクト生成日付のタイムスタンプ等の情報を関連付けることを所望する場合がある。この振る舞いを容易にするために、管理エージェントは、ＭＬＤ１１１を使用して、この情報をメタデータとして記憶する。
【００１７】
クォーラム空間１１３は、たとえば、物理ストアＩＤ（各物理ドライブの一意のＩＤ）、バージョン制御情報、タイプ（クォーラム／非クォーラム）、ＲＳＳ  ＩＤ（このディスクがどのＲＳＳに属するかを識別する）、ＲＳＳオフセット（ＲＳＳにおけるこのディスクの相対位置を識別する）、ストレージセルＩＤ（このディスクがどのストレージセルに属するかを識別する）、ＰＳＥＧサイズを含む情報に加えて、ディスクがクォーラムディスクかどうかを示す状態情報を記憶するのに使用することができる。また、このメタデータＰＳＥＧは、物理ストア全体のＰＳＥＧフリーリストを、たいてい（probably）アロケーションビットマップの形で含む。加えて、クォーラム空間１１３は、物理ディスク上のあらゆるＰＳＥＧのＰＳＥＧアロケーションレコード（ＰＳＡＲ）も含む。ＰＳＡＲは、ＰＳＡＲシグネチャ、メタデータバージョン、ＰＳＡＲ使用法、及びこのＰＳＥＧが属するＲＳＤの表示を含む。
【００１８】
ＣＳＬＤ１１４は、論理ドライブを備える別のタイプのメタデータコンテナである。この論理ドライブは、アドレス空間から各ＬＤＡＤ１０３ａ、１０３ｂ内にアロケートされるが、ＬＵＮ１１２ａ、１１２ｂと異なり、複数のＬＤＡＤ１０３ａ、１０３ｂにまたがる場合がある。好ましくは、各ＬＤＡＤ１０３ａ、１０３ｂは、ＣＳＬＤ１１４にアロケートされた空間を含む。ＣＳＬＤ１１４は、主論理ディスクメタデータコンテナ（ＰＬＤＭＣ）を含めて、所与のＬＤＡＤ１０３の論理構造を記述するメタデータを保持する。このＰＬＤＭＣは、ＬＤＡＤ１０３ａ、１０３ｂ内で実施された各ＬＵＮ１１２ａ、１１２ｂにより使用されるあらゆるＲＳｔｏｒｅを記述する記述子（ＲＳＤＭと呼ぶ）のアレイを含む。ＣＳＬＤ１１４は、ディスクの作成、レベリング、ＲＳＳ融合、ＲＳＳ分割、再生等のタスクに定期的に使用されるメタデータを実施する。このメタデータは、各物理ディスクについて、その物理ディスクが、「正常（Normal）」（すなわち、予想されたように動作する）、「欠落（Missing）」（すなわち、利用不能）、「結合（Merging）」（すなわち、再現したが、使用前に正規化しなければならない欠落したドライブ）、「交換（Replace）」（すなわち、ドライブは除去用にマーキングされ、データは分散スペアにコピーしなければならない）、及び「再生（Regen）」（すなわち、ドライブは利用不能であり、そのデータを分散スペアに再生することを必要とする）のいずれであるかを示す状態情報を含む。
【００１９】
ＣＳＬＤ１１４の論理ディスクディレクトリ（ＬＤＤＩＲ）データ構造体は、あらゆるＬＤＡＤ１０３ａ、１０３ｂにおけるすべてのＬＵＮ１１２ａ、１１２ｂのディレクトリである。論理ディスクディレクトリ構造体（ＬＤＤＳ）のエントリーは、そのＬＵＮ１１２の主論理ディスクメタデータコンテナ（ＰＬＤＭＣ）のロケーションを示すＲＳＤの一般固有識別子（ＵＵＩＤ；Universally unique ID）を含む。ＲＳＤは、対応するＬＵＮ１１２ａ、１１２ｂのベースＲＳＤＭ又はエントリーポイントへのポインタである。このように、特定のＬＵＮ１１２ａ、１１２ｂに特有のメタデータは、その特定のＬＵＮ１１２ａ、１１２ｂのベースＲＳＤＭを見つけるためにＬＤＤＩＲ内にインデックスすることによってアクセスすることができる。ＰＬＤＭＣ内のメタデータ（たとえば、本明細書で説明するマッピング構造体）をメモリ内にロードして、特定のＬＵＮ１１２ａ、１１２ｂを実現することができる。
【００２０】
したがって、図１に示すストレージプールは、回復に使用できる複数の形態のメタデータを実施する。ＣＳＬＤ１１４は、ディスクの作成、レベリング、ＲＳＳ融合、ＲＳＳ分割、再生等のタスクに定期的に使用されるメタデータを実施する。各ディスクの既知のロケーションに保持されたＰＳＡＲメタデータは、メモリ内にマッピングされないより基本的な形のメタデータを含むが、必要な時に、システムのすべてのメタデータを再生するためにその既知のロケーションからアクセスすることができる。
【００２１】
図１に示すデバイスのそれぞれは、メモリ、マスストレージ、及び、ネットワーク接続を管理するのに十分な一定のデータ処理能力を含むことができる。本発明によるコンピュータプログラムデバイスは、図１に示すさまざまなデバイスのメモリに実施され、図１に示すデバイスのデータ処理能力によって可能にされる。
【００２２】
図２は、図１に示すネットワーク等のストレージネットワークを実施するのに使用できるストレージネットワーク２００の物理エレメントの概略図である。ストレージネットワーク２００は、複数のクラスタ２３０、２４０、２５０を備える。これらの複数のクラスタ２３０、２４０、２５０は、１つ又は複数の通信結合されたストレージノードとして実施することができる。したがって、クラスタ２３０はストレージノード２３２、２３４、２３６を含む。クラスタ２４０はノード２４２、２４４、２４６を含む。クラスタ２５０はノード２５２、２５４、２５６を含む。各ノードは、たとえば、ストレージデバイスのアレイ等、１つ又は複数のストレージデバイスを含むことができる。例示のストレージデバイスには、米国カリフォルニア州パロアルトのHewlett-Packard社から市販されているＳＴＯＲＡＧＥＷＯＲＫＳラインのストレージデバイスが含まれる。
【００２３】
ネットワーク２００は、さらに、通信ネットワーク２２０を介してクラスタ２３０、２４０、２５０に結合された１つ又は複数のホストコンピュータ２１０を含むことができる。通信ネットワーク２２０は、たとえば、ファイバチャネル（ＦＣ）スイッチングファブリック等のプライベート専用ネットワークとして実施することができる。或いは、通信ネットワーク２２０の一部を、たとえば、インターネット小型コンピュータシリアルインターフェース（ｉＳＣＳＩ）プロトコル等の適した通信プロトコルに従った公衆通信ネットワークを使用して実施することもできる。
【００２４】
１つ又は複数のクライアントコンピュータ２１２は、ホスト２１０を通じてストレージクラスタ２３０、２４０、２５０により提供される資源にアクセスすることができる。動作時において、１つ又は複数のクライアントコンピュータ２１２は、１つ又は複数のストレージクラスタ２３０、２４０、２５０によって提供される資源の要求をホストコンピュータ２１０に対して生成する。ホストコンピュータ２１０は、要求された資源（複数可）の資源要求をクラスタ２３０、２４０、２５０の１つ又は複数に対して生成する。クラスタ２３０、２４０、２５０の１つ又は複数は、この資源要求を処理し、要求された資源（複数可）をホスト２１０に返す。ホスト２１０は、次に、要求された資源をクライアントコンピュータ（複数可）２１２へ転送する。
【００２５】
ストレージネットワーク２００は、さらに、ストレージネットワーク２００のコンポーネントに関する互換性情報を保持する互換性サーバ２１４を備えることができる。互換性情報は、たとえば、ファームウェアバージョン及び／又は改訂に関する情報並びにライセンス情報を含むことができる。
【００２６】
図３は、クラスタ２３０、２４０、２５０等のクラスタで使用できるストレージノード３００の一例示の実施態様の概略図である。図３を参照すると、一実施の形態では、各ストレージノード３００は、１つ又は複数のネットワークストレージコントローラ（ＮＳＣ）３１０を含む。ＮＳＣ３１０は、ディスクアレイコントローラ又はストレージコントローラとも呼ばれ、１つ又は複数のディスクドライブ３４０、３４２のオペレーション、並びに、１つ又は複数のディスクドライブ３４０、３４２へのデータの転送及び１つ又は複数のディスクドライブ３４０、３４２からのデータの転送を管理する。ＮＳＣ３１０は、マイクロプロセッサ３１６及びメモリ３１８を有するプラグインカードとして実施することができる。各ＮＳＣ３１０は、ホスト２１０等のホストへのインターフェース、すなわち、スイッチングファブリック等の通信ネットワークを通じたインターフェースを提供する１つ又は複数のホストアダプタポート３１２、３１４を含む。ファイバチャネルの実施態様では、ホストアダプタポート３１２、３１４は、ＦＣ  Ｎ＿Ｐｏｒｔとして実施することができる。各ホストアダプタポート３１２、３１４は、ログイン及びスイッチングファブリックとのインターフェースを管理し、ログインプロセスにおいてファブリックに一意のポートＩＤを割り当てられる。
【００２７】
一例示の実施態様では、ＮＳＣ３１０は、さらに、１つ又は複数のファイバチャネル調停ループ（ＦＣＡＬ）ポート３２０、３２２、３２４、３２６を含む。ＦＣＡＬポート３２０、３２２、３２４、３２６は、複数のストレージデバイス（たとえばディスクドライブのアレイ３４０、３４２）とのＦＣＡＬ通信接続を実施する。この図示した実施態様は、ディスクドライブのアレイ３４０、３４２とのＦＣＡＬ接続を実施するが、ディスクドライブのアレイ３４０、３４２との通信接続は、他の通信プロトコルを使用して実施できることが理解されよう。たとえば、ＦＣＡＬ構成ではなく、ＦＣスイッチングファブリック又は小型コンピュータシリアルインターフェース（ＳＣＳＩ）接続を使用してもよい。
【００２８】
実施の形態では、図１〜図３に示すクラスタ化ストレージデバイス等のクラスタ化コンピューティングシステムを、システムのコンポーネント間の互換性エンフォースメントを実施するように適合させることができる。本明細書で使用される場合、互換性エンフォースメントには、ハードウェア、ソフトウェア、ファームウェア、及び／又はライセンス要件の間の互換性が含まれ得る。一実施の形態では、クラスタ化コンピューティングシステムは、コンポーネントレベル及びシステムレベルの双方のライセンス順守を確実にするライセンス方式を実施する。このライセンス方式は、多層（又はバンドル化）ライセンスプログラムを実施してもよい。ライセンス方式の第１の部分は、クラスタの許容可能なサイズの範囲を定義する。一実施の形態では、クラスタは、複数のサイズの範囲に分類することができる。これらのサイズの範囲は、本明細書ではバンドルタイプと呼ばれる。代替的な実施の形態では、クラスタは、たとえば、アレイ機能バンドル、テープ機能バンドル、コンピューティング機能バンドル、変換機能バンドル等の１つ又は複数の追加パラメータによってバンドルタイプに分類することができる。たとえば、バンドルは、販売数バンドル（sales bundle）を指す場合がある。バンドルは、特定の市場又は機能に合った一組のノードタイプ若しくはグリッドタイプ又は一群のノードタイプ若しくはグリッドタイプとして販売することができる。たとえば、或る製品カテゴリーは、たとえばアレイ／ＬＵＮ目的等の単一の目的を受け持っていた１つ又は複数のバンドルサイズを含むことができる。バンドルは、たとえば、使用権、最大ノードカウント及び最小ノードカウント、特定のアレイタイプ機能ブランド等の標準グリッドパラメータと共に、特定の同種の目的を有することができる。他のバンドルは、たとえば目的又は機能といった上記で列挙したものの範囲内で異なる特徴を有することができる。バンドルは、１つのバンドル内に多目的ノード又は複数の異なる単一目的のノードを有することができる。ライセンス方式の第２の部分は、定義されている個数のノードがクラスタに加わった時に、クラスタがライセンス及びバンドルタイプをそれらノードに恒久的に関連付けることを可能にする。
【００２９】
図４は、一実施の形態によるクラスタ化コンピューティングシステムにおける互換性エンフォースメントの論理アーキテクチャの概略図である。一実施の形態では、クラスタ化コンピューティングシステムは、図２のクラスタ２３０、２４０、２５０のストレージノードの１つ又は複数に対応することができる。ストレージノード４００の論理モジュールは、ソフトウェア又はファームウェアとして具体化する（be embodied）ことができる。このソフトウェア又はファームウェアは、たとえばストレージアレイコントローラ３００のメモリ３１８等のコンピュータ可読媒体に記憶され、アレイコントローラ３００のマイクロプロセッサ３１６等のプロセッサによって実行可能である。
【００３０】
図４を参照すると、ストレージノード４００は、クラスタレベルの互換性機能を管理するロジックを含むクラスタモジュール４１０を含む。クラスタモジュール４１０は、クラスタ作成モジュール４１２、ノード追加モジュール４１４、ライセンスアップグレードモジュール４１６、及び、基本バンドル（base bundle）の一部ではないノードの除去を可能にするライセンス移転（license transfer）モジュール４１８を含む。クラスタモジュールは、クラスタにおける有効なノードの現在の個数を保持する現ノードカウントデータ構造体４２０、及び、ライセンス使用権データ構造体４２２をさらに含む。一実施の形態では、ライセンス使用権は、ライセンス管理システムによって与えられたトークンを含むことができる。このトークンは、ライセンスを認証するためのライセンス管理特有の情報、並びに、クラスタに含めることができるバンドルタイプ及び最大ノード数又は最小ノード数の表示を含むことができる。クラスタモジュール４２０は、ノードライセンスプール４２４をさらに含む。一実施の形態では、ノードライセンスプール４２４は、ライセンス管理システムによってクラスタに与えられたトークンのプールを含む。プールの各トークンは、ライセンスを認証するためのライセンス管理特有の情報を含む。トークンが、ノードに割り当てられて、ノードがクラスタに加わることを可能にすると、トークンは消費される。トークンは、クラスタによって各ノードライセンスを割り当てられたノードの一意の識別子に関連付けることができる。
【００３１】
ストレージノード４００は、ノードレベルの互換性機能を管理するロジックを含むノードモジュール４３０をさらに含む。ノードモジュール４３０は、使用ノード４３２及び修復ノード４３４を含む。ノードモジュール４３０は、バンドルタイプのデータ構造体４３６をさらに含む。このバンドルタイプのデータ構造体４３６は、有効なクラスタにおけるノードのメンバーシップ及びクラスタのバンドルタイプを示すトークンを保持する。ブランドは、ノードが正しくライセンスされているクラスタに加わることに成功した場合に取得することができる。
【００３２】
ノードモジュール４３０は、ライセンス移転ホルダデータ構造体４３８をさらに含むことができる。一実施の形態では、ライセンス移転ホルダデータ構造体４３８は、稼動していないクラスタに関連したライセンス使用権及びノードライセンスプールの一時的なロケーションを提供することができる。ライセンス移転ホルダデータ構造体は、ライセンスキーを再入力する必要なく、クラスタ化コンピューティングシステムを再構成する方法を提供する。ライセンス移転ホルダに関連したアルゴリズムは、移転によって、ライセンスの使用可能なコピーが２つ以上になる可能性がないことを保証する。
【００３３】
図５は、一実施の形態による初期クラスタ化コンピューティングシステムを作成するための方法のオペレーションを示すフローチャートである。図４及び図５を参照すると、オペレーション５１０において、たとえば、バンドルがいずれを満たすかに基づいて決定された初期バンドルパラメータを介して、ライセンス使用権４２２及びノードライセンスプール４２４が確立される。使用権及びノードライセンス（複数可）は、外部管理制御ソフトウェアを通じて入力されるバンドルの初期販売を通じて提供されたキーを使用して獲得することができる。図４を手短に参照すると、一実施の形態では、管理モジュール４５０は、外部管理制御モジュール４５２及び外部ライセンスサーバアクセスモジュール４５４を含むことができる。これらのモジュールは、外部ライセンスサーバ４６０とのインターフェースを提供する。ライセンスキーは、外部ライセンスサーバアクセスソフトウェアを介してライセンスサーバに渡すことができる。ライセンスサーバは、バンドルキーに関連したライセンス使用権４２２及びノードライセンスプール４２４の詳細な情報を返す。オリジナルのバンドルＳＫＵの一部ではなかったノードは、「アドオン（Add-on）」として知られている特徴を所有するライセンスを有する場合に、初期クラスタに含めることができる。このライセンスの特徴も、ライセンスサーバを介して取得することができる。
【００３４】
オペレーション５１５において、上述したプールに対応することができるライセンスクラスタが記憶される。一実施の形態では、ライセンス使用権及びノードライセンスプールは、ライセンス要求の発信元であるノードのライセンス移転ホルダデータ構造体に記憶することができる。ライセンス情報は、クラスタ２３０、２４０、２５０の１つ又は複数のアレイコントローラ３１０のメモリ３１８に記憶することができる。メモリモジュール３１８は、アレイコントローラ３１０が停電又は故障した場合に、ライセンス情報が破壊されないまま（remains intact）維持されるように不揮発性メモリとすることができる。
【００３５】
オペレーション５２０において、ライセンス要求を開始したノードが、それ自身のノードライセンスを有せず、且つ、ライセンスがノードライセンスプールに残っている場合、ノードライセンスの１つを、管理コマンドを受信したノードに与えることができる。オペレーション５２５は、２つのフェーズで行うことができる。第１のフェーズでは、一意の識別子（たとえば、シリアル番号）を、ライセンスを割り当てられるノードに関連付けるように、ノードライセンスプールを更新することができる。第２のフェーズでは、たとえば、ノード上の保護された不揮発性メモリロケーションにトークンを書き込むことによって、特定のバンドルタイプを有する、ライセンスを受けたノードとして、そのノードを「ブランド付け」することができる。次に、ノードライセンスをそのノードに明確に割り当てることができる（他のどのノードにも割り当てることができない）。制御は、次に、後述するオペレーション５３０に移動することができる。
【００３６】
一方、オペレーション５２０において、ノードが、１つ又は複数の必要とされるパラメータと一致するノードライセンスを有する場合、制御はオペレーション５３０に移動し、クラスタを初期化することができる。一実施の形態では、わずか１つのメンバー、すなわち、クラスタを作成する管理コマンドを受信したノードでクラスタを初期化することができる。ライセンス使用権及びノードライセンスプールは、この新しく作成された単一ノードのクラスタに移転することができ、ノードカウントパラメータを初期化することができる（すなわち、１に設定される）。
【００３７】
オペレーション５３５において、クラスタのノードカウントが、ライセンス使用権において指定された制限に達した場合（又は、候補ノードがそれ以上存在しない場合）、クラスタ形成プロセスは完了し、プロセスは終了する。一方、オペレーション５３５において、クラスタのノードカウントがライセンス使用権において指定された制限に達していない場合（すなわち、クラスタが、ライセンス条項によって認可された個数のノードをまだアクティブ化していない場合）、制御は、オペレーション５４５に移動し、クラスタに含めるための次の候補ノードを特定することができる。これは、当該技術分野で一般的ないくつかの（any）技法を使用して行うことができる。
【００３８】
オペレーション５５０において、候補ノードの受け入れ可能性が評価される。一実施の形態では、オペレーション５５０におけるノードの受け入れ可能性の評価は、図６に関して説明するオペレーション６２０〜６３５を包含する。候補ノードが受け入れ可能でない場合（すなわち、そのノードが新しいか、又は、受け入れ可能性テストに合格しなかった場合）、制御はオペレーション５５５に移動し、その候補ノードのライセンスが取得される。一実施の形態では、ライセンスは、オペレーション５２５に関して説明したように取得することができる。ライセンスを取得できない場合、エラールーチンを起動することができる。
【００３９】
一方、オペレーション５５０において、ノードが受け入れ可能である場合、制御は、オペレーション５６０に移動し、ノードのブランドが使用権の特徴によって定義されたクラスタと互換性を有するかどうかが判断される。一実施の形態では、ノードがもはや異なるクラスタの一部でないことを示すブランドをノードが有し（すなわち、ノードが、異なるクラスタからすでに解放されている場合）、且つ、そのブランドが、このクラスタのバンドルタイプに含めるのに有効である場合（たとえば、下位クラスのバンドルタイプは、上位クラスのバンドルタイプを有するクラスタに加わることはできないが、その逆は可能であり、たとえば、上位クラスのノードは、下位クラスのクラスタに加わることができる）、クラスタのノードライセンスプールからそのノードに追加のノードライセンスを与える必要はない。この実施の形態によって、ノードのバンドルタイプ及びクラスタのバンドルタイプの双方が互換性を有するという条件で、ノードをクラスタ間で移動させることが可能になる。
【００４０】
別の実施の形態では、候補ノードは、クラスタのノードライセンスプールから追加のライセンスを必要とする場合がある。この実施の形態では、クラスタ間のノード移動には、下位クラスのノードから上位クラスのノードへのアップグレード等、ノードの再ライセンス付与が必要とされる。したがって、制御は、オペレーション５５５に移動することができ、候補ノードは、ライセンスを受けることができる。
【００４１】
制御は、次に、オペレーション５７０に移動し、候補ノードをクラスタに追加することができる。制御は、次に、オペレーション５３５に戻る。このように、オペレーション５３５〜５７０は、クラスタ化コンピューティングシステムを構築するために繰り返すことができるループを規定する。一実施の形態では、最終テストを行って、クラスタサービスの初期化前に、クラスタが最小個数のノードを確実に含むようにして、通常オペレーションを進める（proceed with）ことができる。この閉ループによって、たとえば灰色市場のノード（gray market nodes）等の疑わしい素性を有するノードの追加が妨げられる。
【００４２】
図６は、一実施の形態によるクラスタ化コンピューティングシステムにおいてライセンスチェックを実行するための方法のオペレーションを示すフローチャートである。一実施の形態では、ライセンスチェックは、定期的に実行することができる。代替的な実施の形態では、ライセンスチェックは、イベント駆動式とすることができる。たとえば、すべてのノードがクラスタのライセンスを適切に受けていることを保証するために、クラスタがブートする時にライセンスチェックを実施することができる。
【００４３】
図６を参照すると、ライセンスチェックはオペレーション６０５において開始され、オペレーション６１０において、最初のクラスタが選択され、オペレーション６１５において、そのクラスタの最初のノードが選択される。オペレーション６２０において、選択されたノードがライセンスを適切に受けていない場合、たとえば、ノードのライセンスが満了しているか、又は、ノードのブランドが、ノードが配置されているクラスタのタイプと互換性がない場合、制御は、オペレーション６４０に移動し、エラールーチンを起動することができる。一実施の形態では、エラールーチンは、警告信号を生成することを含むことができる。この警告信号は、たとえば、ディスプレイ等のユーザインターフェースに表示することができる。別の実施の形態では、エラールーチンは、ノードをディセーブルすること、又はクラスタ全体をディセーブルすることを含むことができる。一方、オペレーション６２０において、ノードが適切にライセンスを受けている場合、制御はオペレーション６２５に移動する。
【００４４】
オペレーション６２５において、クラスタのノードカウントがしきい値を超えている場合、制御は、オペレーション６４０に移動し、エラールーチンが、上述したように起動される。一実施の形態では、オペレーション６２５は、初期クラスタの生成においても行われ、その後、ノードの追加が新しく試みられるたびに行われる。一実施の形態では、しきい値は、クラスタのノード数の下限値及びクラスタのノード数の上限値の少なくとも一方を含むことができる。一方、オペレーション６２５において、クラスタのノードカウントがしきい値の範囲内にある場合、制御はオペレーション６３０に移動する。
【００４５】
オペレーション６３０において、ノードがブランド付けされていない場合、制御は、オペレーション６４０に移動し、エラールーチンが、上述したように起動される。一実施の形態では、ブランド付けされていないノードは、クラスタ作成プロセス又はノードを既存のクラスタに追加するプロセスのいずれかを通じて、そのノードが新しく、且つ、ライセンスを受ける必要があることを示すことができる。一方、オペレーション６３０において、ノードがブランド付けされている場合、制御はオペレーション６３５に移動する。
【００４６】
オペレーション６３５において、ノードのブランドが、クラスタのブランドと互換性を有しない場合、制御は、オペレーション６４０に移動し、エラールーチンが、上述したように起動される。たとえば、ノードは、特定の個数のノードよりも少ないノードを有するクラスタ内でしか動作しないようにブランド付けされている場合がある。一方、オペレーション６３５において、ノードのブランドが、クラスタのブランドと互換性を有する場合、制御は、オペレーション６１５に移動し、別のノードが選択される。このように、オペレーション６１５〜６３５は、クラスタのノードを、ライセンス条項及び／又は互換性エンフォースメント条項に準拠していることについて評価できるループを規定する。オペレーション６１５において、評価するノードがそれ以上存在しない場合、オペレーションは終了する。
【００４７】
クラスタに１つ又は複数のノードを追加することによって、クラスタを拡張することができる。一実施の形態では、図５で説明したオペレーション５４５〜５７０を使用して、クラスタにノードを追加することができる。クラスタは、バンドルタイプを有しないノード（すなわち、初期化されていない新しいノード）を追加するために、未割り当てのノードライセンスを有しなければならない。未割り当てのライセンスは、アドオンノードを用いて購入されたアドオンライセンスとすることもできるし、オリジナルのＳＫＵに付随した未割り当てのベースバンドルライセンスとすることもできる。
【００４８】
ノードは、たとえばハードウェアの故障等によって、自身のバンドルタイプのブランドを保持できない場合がある。一実施の形態では、修復ノードモジュール４３４は、アドミニストレータ等のユーザが、故障により失われたノードライセンスを回復することを可能にする。修復ノードモジュール４３４は、クラスタのノードライセンスをクラスタのオリジナルのライセンス（複数可）と相互参照する能力を提供する。これは、一般に、ライセンスサーバへのアクセスを伴う。
【００４９】
クラスタのライセンス使用権４２２は、たとえば、外部ライセンスサーバ４６０を用いてアップグレード照会を開始することによって、アップグレードすることができる。これが行われる時、最大ノードカウントしきい値及び最小ノードカウントしきい値等の新しい特徴を反映するようにライセンス使用権を更新することができ、追加のノードライセンスをノードライセンスプールに追加することができる。同様に、必要な手数料が支払われているとすると、ノードにおいてバンドルタイプのブランドをアップグレードすることができ、ライセンスを認証することができる。これらのアップグレードのいずれかの後に、クラスタ作成プロセスのオペレーション５４５〜５７０を繰り返して、クラスタに追加できるノードを数に入れる（account for）ことができる。
【００５０】
クラスタが動作中である時、そのライセンス情報は、クラスタ内の複数のノードに冗長的に記憶することができる。クラスタが稼動していない時、そのライセンス情報は、当該ライセンス情報を新しいクラスタへ転送するという便利な方法のように（as a convenient way of）、ノードのライセンス移転ホルダ４３８に記憶することができる。一実施の形態では、ライセンス情報を記憶するノードは、新しいクラスタの初期ノードとすることができる。したがって、クラスタ作成は、オペレーション５３０で有効に開始することができる。ノードが故障し、その結果、ライセンス移転が喪失された場合、ノード修復技法を使用してノードを回復させることができる。
【００５１】
本明細書における「一実施の形態（"one embodiment" or "an embodiment"）」への言及は、その実施の形態に関して説明した特定の機能、構造、又は特徴が、少なくとも一実施態様に含まれることを意味する。本明細書においてさまざまな箇所に「一実施の形態では」という語句が現れるが、これは、必ずしもすべてが同じ実施の形態を参照しているわけではない。
【図面の簡単な説明】
【００５２】
【図１】ストレージネットワークを利用するネットワーク接続コンピューティングシステムの概略図である。
【図２】一実施の形態によるストレージネットワークの物理エレメントの概略図である。
【図３】一実施の形態によるストレージノードの概略図である。
【図４】一実施の形態によるクラスタ化コンピューティングシステムにおける互換性エンフォースメントの論理アーキテクチャの概略図である。
【図５】一実施の形態によるクラスタ化コンピューティングシステムを作成するための方法のオペレーションを示すフローチャートである。
【図６】一実施の形態によるクラスタ化コンピューティングシステムにおいてライセンスチェックを実行するための方法のオペレーションを示すフローチャートである。
【符号の説明】
【００５３】
１００・・・ネットワーク接続コンピューティングシステム
１０３ａ，１０３ｂ・・・ＬＤＡＤ
１０９・・・ＳＡＮ管理アプライアンス
１１０・・・ストレージプール
１１１・・・ＭＬＤ
１１２ａ，１１２ｂ・・・論理ディスク
１１３・・・クォーラム
１１４・・・ＣＳＬＤ
１２０，１２２，１２４，１２８・・・ホストデバイス
１２６・・・クライアントコンピュータ
２００・・・ストレージネットワーク
２１０・・・ホストコンピュータ
２１２・・・クライアントコンピュータ
２２０・・・ネットワーク
２３０，２４０，２５０・・・クラスタ
２３２，２３４，２３６，２４２，２４４，２４６，２５２，２５４，２５６・・・ノード
３００・・・ストレージノード
３１０・・・ＮＳＣ
３１２，３１４・・・ホストポート
３１６・・・マイクロプロセッサ
３１８・・・メモリ
３２０，３２２，３２４，３２６・・・ＦＣＡＬポート
３４０，３４２・・・ディスクドライブアレイ
４００・・・ストレージノード
４１０・・・クラスタモジュール
４１２・・・クラスタ作成
４１４・・・ノード追加
４１６・・・ライセンスアップグレード
４１８・・・ライセンス移転
４２０・・・現在のノードカウント
４２２・・・ライセンス使用権
４２４・・・ノードライセンスプール
４３０・・・ノードモジュール
４３２・・・ノード使用
４３４・・・ノード修復
４３６・・・バンドルタイプのブランド
４３８・・・ライセンス移転ホルダ
４５０・・・管理モジュール
４５２・・・外部管理制御
４５４・・・外部ライセンスサーバアクセス
４６０・・・外部ライセンスサーバ
【図１】
0004726852.tif 000002
【図２】
0004726852.tif 000003
【図３】
0004726852.tif 000004
【図４】
0004726852.tif 000005
【図５】
0004726852.tif 000006
【図６】
0004726852.tif 000007