(57)【要約】      （修正有）【課題】高い拡張性を有するシステム、制御方法及びプログラムを提供する。【解決手段】情報処理システムにおいて、クラスタを構成する各ストレージノードに記憶装置及び論理的な記憶領域を設け、ストレージノードが、論理ボリューム作成指示を受信した場合に、データを読み書きするための記憶領域として上位装置に提供される仮想的な第１の論理ボリュームを自ノード内に作成し、自ノードにおける論理的な記憶領域と、自ノード内に作成した第１の論理ボリュームとを対応付けて仮想的な第２の論理ボリュームを自ノード内に作成し、作成した第１及び第２の論理ボリューム間の対応関係をマッピング情報として登録し、クラスタにおける各ストレージノード間で同期して更新し、各ストレージノードがマッピング情報に基づき、上位装置から受信したＩ／Ｏ要求におけるＩ／Ｏ先として指定された第１の論理ボリュームの情報からＩ／Ｏ先のストレージノードを特定する。【選択図】図４
2020191100.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージノードから構成されるクラスタを含むシステムであって、
前記各ストレージノードは、
記憶装置と、前記記憶装置に対応する論理的な記憶領域と、を有し、
管理装置からの要求に基づく論理ボリューム作成指示を受信すると、前記ストレージノードはデータを読み書きするための記憶領域として上位装置に提供される、前記クラスタ内で識別可能な仮想的な第１の論理ボリュームを自ノード内に作成し、
自ノードにおける前記論理的な記憶領域と、自ノード内に作成された前記第１の論理ボリュームとを対応付けて、自ノード内で識別可能な仮想的な第２の論理ボリュームを自ノード内に作成し、
作成された前記第１及び第２の論理ボリューム間の対応関係がマッピング情報として登録され、前記クラスタにおける各前記ストレージノード間で同期して更新され、
前記各ストレージノードは前記マッピング情報に基づき、前記第１の論理ボリュームを介して前記上位装置から受信したＩ／Ｏ要求におけるＩ／Ｏ先として指定された第１の論理ボリュームの情報から、Ｉ／Ｏ先の前記ストレージノードを特定する、
ことを特徴とするシステム。
【請求項２】
各前記第１の論理ボリュームは、
前記クラスタを構成する各前記ストレージノードを横断する１つのプールとして管理される
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記各ストレージノードは、前記上位装置からのＩ／Ｏ要求処理を実行するストレージ制御部を備え
前記ストレージ制御部は、自ノードとは異なる他の前記ストレージノードに配置された前記ストレージ制御部とストレージ制御部ペアに設定され、
前記ストレージ制御部ペアを構成する一方の前記ストレージ制御部が現用系に設定されると共に、他方の前記ストレージ制御部が待機系に設定され、
現用系に設定された前記ストレージ制御部を有する前記ストレージノードにて前記第２の論理ボリュームが作成される
ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記ストレージ制御部ペアに属する各前記ストレージノードの前記論理的な記憶領域が１つのプールとして管理され、前記第２の論理ボリュームが当該プールに対応付けられて作成される
ことを特徴とする請求項３に記載のシステム。
【請求項５】
さらに前記クラスタ全体の制御処理を行うマスタクラスタ制御装置を備え、
前記マスタクラスタ制御装置は、前記管理装置から前記第１の論理ボリュームの作成要求を受信すると、前記第１の論理ボリュームの作成に適した前記ストレージ制御部ペアを選択し、当該ストレージ制御部ペアに属するいずれか１つの前記ストレージノードに論理ボリューム作成指示を出力し、
前記論理ボリューム作成指示を受けた前記ストレージノードは、作成した前記第１の論理ボリュームおよび前記第２の論理ボリュームのそれぞれの識別情報を前記マスタクラスタ制御装置に送信する、
ことを特徴とする請求項４に記載のシステム。
【請求項６】
前記マスタクラスタ制御装置は、最も負荷の低い前記ストレージノードが現用系に設定されている前記ストレージ制御部ペアを選択し、当該ストレージノードに前記論理ボリューム作成指示を出力する
ことを特徴とする請求項５に記載のシステム。
【請求項７】
前記マスタクラスタ制御装置は、前記論理ボリューム作成指示を出力した前記ストレージノードから送信された前記第１の論理ボリューム及び前記第２の論理ボリュームの識別情報を受信すると、それぞれの前記識別情報を対応付けてマッピング情報として登録すると共に、更新前後のマッピング情報の差分データを前記クラスタにおける各前記ストレージノードに送信し、
各前記ストレージノードは、受信した前記差分データに基づいて自ノードにおけるマッピング情報を更新する、
ことを特徴とする請求項５に記載のシステム。
【請求項８】
複数のストレージノードから構成されるクラスタを含むシステムにおいて、前記ストレージノードにより実行される方法であって、
前記各ストレージノードは、
記憶装置と、前記記憶装置に対応する論理的な記憶領域と、を有し、
管理装置からの要求に基づく論理ボリューム作成指示を受信すると、前記ストレージノードはデータを読み書きするための記憶領域として上位装置に提供される、前記クラスタ内で識別可能な仮想的な第１の論理ボリュームを自ノード内に作成する第１のステップと、
自ノードにおける前記論理的な記憶領域と、自ノード内に作成された前記第１の論理ボリュームとを対応付けて、自ノード内で識別可能な仮想的な第２の論理ボリュームを自ノード内に作成する第２のステップと、
作成した前記第１及び第２の論理ボリューム間の対応関係をマッピング情報として登録し、前記クラスタにおける各前記ストレージノード間で同期して更新する第３のステップと
を備え、
前記各ストレージノードが、前記マッピング情報に基づき、前記第１の論理ボリュームを介して前記上位装置から受信したＩ／Ｏ要求におけるＩ／Ｏ先として指定された第１の論理ボリュームの情報から、Ｉ／Ｏ先の前記ストレージノードを特定する
ことを特徴とするシステムの制御方法。
【請求項９】
複数のストレージノードから構成されるクラスタを含むシステムにおいて、前記ストレージノードにより実行されるプログラムであって、
前記各ストレージノードは、
記憶装置と、前記記憶装置に対応する論理的な記憶領域と、を有し、
管理装置からの要求に基づく論理ボリューム作成指示を受信すると、前記ストレージノードはデータを読み書きするための記憶領域として上位装置に提供される、前記クラスタ内で識別可能な仮想的な第１の論理ボリュームを自ノード内に作成する第１のステップと、
自ノードにおける前記論理的な記憶領域と、自ノード内に作成された前記第１の論理ボリュームとを対応付けて、自ノード内で識別可能な仮想的な第２の論理ボリュームを自ノード内に作成する第２のステップと、
作成した前記第１及び第２の論理ボリューム間の対応関係をマッピング情報として登録し、前記クラスタにおける各前記ストレージノード間で同期して更新する第３のステップと
を備え、
前記各ストレージノードが、前記マッピング情報に基づき、前記第１の論理ボリュームを介して前記上位装置から受信したＩ／Ｏ要求におけるＩ／Ｏ先として指定された第１の論理ボリュームの情報から、Ｉ／Ｏ先の前記ストレージノードを特定する処理を前記ストレージノードに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステム及びその制御方法並びにプログラムに関し、例えば、それぞれ１又は複数のＳＤＳ（Software Defined Storage）が実装された複数のストレージノードを備える情報処理システムに適用して好適なものである。なお、以下において、ＳＤＳとは、ストレージ機能を有するソフトウェアを汎用のサーバ装置に実装することにより構築されるストレージ装置を指す。
【背景技術】
【０００２】
従来、ストレージ装置のコントローラに用いられている既存の制御ソフトウェア（ストレージ制御ソフトウェア）は、そのストレージ制御ソフトウェアが実装されるハードウェアに対応した専用品として構成されている。このため、このストレージ制御ソフトウェアをそのままベアメタルサーバにインストールするだけでは、アーキテクチャの違いからスケールアウトの構成を組むことが難しいという問題がある。
【０００３】
これは、かかる既存のストレージ制御ソフトウェアが自ストレージ装置内で完結する処理のみを対象とした構成となっているためであり、このためかかる既存のストレージ制御ソフトウェアをスケールアウトした構成で利用することはできなかった。なお、下記特許文献１には、ＨＡ構成の２台のストレージ装置が連携してオフロードデータコピーを行うことが開示されてはいるものの、これも２台のストレージ装置の連携に留まるものであった。
【０００４】
また、かかる既存のストレージ制御ソフトウェアにより実行される共有メモリの処理がハードウェアに依存しているため、汎用のサーバ装置では同様の処理を実行させることができないという問題もあった。
【０００５】
これに対して、近年では、汎用のサーバ装置にストレージ制御ソフトウェアを実装することにより構築されるＳＤＳの開発が進められている。ＳＤＳは、専用のハードウェアを必要とせず、拡張性も高いことから、その需要も増加傾向にある。このようなＳＤＳに関連する技術として、例えば、下記特許文献２には、ＳＤＳ構成のサーバ間でＩ／Ｏ（Input/Output）を転送する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２０１７／００１７４３３号明細書
【特許文献２】米国特許出願公開第２０１６／０１７３５９８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、近年、企業や官庁等において蓄積されるデータ量は増加の一途を辿っている。このような状況を考慮した場合、ストレージ装置は容易にスケールアウトできる構成であることが望ましい。
【０００８】
またスケールアウト後も、上位装置がＩ／Ｏ要求の発行先とすべきストレージ装置を意識することなく所望するデータに容易にアクセスできるようにシステムを構築できれば、スケールアウト後の上位装置の設定が不要となり、システムの拡張性を向上できるものと考えられる。
【０００９】
本発明は以上の点を考慮してなされたもので、拡張性を向上させ得るシステム及びその制御方法並びにプログラムを提案しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため本発明においては、複数のストレージノードから構成されるクラスタを含むシステムであって、前記各ストレージノードは、記憶装置と、前記記憶装置に対応する論理的な記憶領域と、を有し、管理装置からの要求に基づく論理ボリューム作成指示を受信すると、前記ストレージノードはデータを読み書きするための記憶領域として上位装置に提供される、前記クラスタ内で識別可能な仮想的な第１の論理ボリュームを自ノード内に作成し、自ノードにおける前記論理的な記憶領域と、自ノード内に作成された前記第１の論理ボリュームとを対応付けて、自ノード内で識別可能な仮想的な第２の論理ボリュームを自ノード内に作成し、作成された前記第１及び第２の論理ボリューム間の対応関係がマッピング情報として登録され、前記クラスタにおける各前記ストレージノード間で同期して更新され、前記各ストレージノードは前記マッピング情報に基づき、前記第１の論理ボリュームを介して前記上位装置から受信したＩ／Ｏ要求におけるＩ／Ｏ先として指定された第１の論理ボリュームの情報から、Ｉ／Ｏ先の前記ストレージノードを特定するようにした。
【００１１】
また本発明においては、複数のストレージノードから構成されるクラスタを含むシステムにおいて、前記ストレージノードにより実行される方法であって、前記各ストレージノードは、記憶装置と、前記記憶装置に対応する論理的な記憶領域と、を有し、管理装置からの要求に基づく論理ボリューム作成指示を受信すると、前記ストレージノードはデータを読み書きするための記憶領域として上位装置に提供される、前記クラスタ内で識別可能な仮想的な第１の論理ボリュームを自ノード内に作成する第１のステップと、自ノードにおける前記論理的な記憶領域と、自ノード内に作成された前記第１の論理ボリュームとを対応付けて、自ノード内で識別可能な仮想的な第２の論理ボリュームを自ノード内に作成する第２のステップと、作成した前記第１及び第２の論理ボリューム間の対応関係をマッピング情報として登録し、前記クラスタにおける各前記ストレージノード間で同期して更新する第３のステップとを設け、前記各ストレージノードが、前記マッピング情報に基づき、前記第１の論理ボリュームを介して前記上位装置から受信したＩ／Ｏ要求におけるＩ／Ｏ先として指定された第１の論理ボリュームの情報から、Ｉ／Ｏ先の前記ストレージノードを特定するようにした。
【００１２】
さらに本発明においては、複数のストレージノードから構成されるクラスタを含むシステムにおいて、前記ストレージノードにより実行されるプログラムであって、前記各ストレージノードは、記憶装置と、前記記憶装置に対応する論理的な記憶領域と、を有し、管理装置からの要求に基づく論理ボリューム作成指示を受信すると、前記ストレージノードはデータを読み書きするための記憶領域として上位装置に提供される、前記クラスタ内で識別可能な仮想的な第１の論理ボリュームを自ノード内に作成する第１のステップと、自ノードにおける前記論理的な記憶領域と、自ノード内に作成された前記第１の論理ボリュームとを対応付けて、自ノード内で識別可能な仮想的な第２の論理ボリュームを自ノード内に作成する第２のステップと、作成した前記第１及び第２の論理ボリューム間の対応関係をマッピング情報として登録し、前記クラスタにおける各前記ストレージノード間で同期して更新する第３のステップとを設け、前記各ストレージノードが、前記マッピング情報に基づき、前記第１の論理ボリュームを介して前記上位装置から受信したＩ／Ｏ要求におけるＩ／Ｏ先として指定された第１の論理ボリュームの情報から、Ｉ／Ｏ先の前記ストレージノードを特定する処理を前記ストレージノードに実行させるようにした。
【００１３】
本発明のシステム及びその制御方法並びにプログラムによれば、ストレージノードのスケールアウトの有無に関わりなく、上位装置がＩ／Ｏ要求の発行先のストレージノードを意識することなく、所望するデータの読み書きを行うことができる。
【発明の効果】
【００１４】
本発明によれば、拡張性を向上させ得るシステム及びその制御方法並びにプログラムを実現できる。上記した以外の課題、構成及び効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態による情報処理システムの全体構成を示すブロック図である。
【図２】ストレージノードのハードウェア構成を示すブロック図である。
【図３】ストレージノードのソフトウェア構成を示すブロック図である。
【図４】ストレージノードにおける記憶領域の対応関係の説明に供するブロック図である。
【図５】ストレージ制御部ペアテーブルの構成例を示す図表である。
【図６】フロントエンドテーブルボリュームテーブルの構成例を示す図表である。
【図７】マッピングテーブルの構成例を示す図表である。
【図８】フロントエンドターゲットテーブルの構成例を示す図表である。
【図９】ストレージ制御部情報管理テーブルの構成例を示す図表である。
【図１０】グローバルプールボリュームテーブルの構成例を示す図表である。
【図１１】各テーブル間における情報の対応関係の説明に供する概念図である。
【図１２】内部ボリューム作成時における処理の流れを示すシーケンス図である。
【図１３】クラスタ内のストレージノードに障害が発生した場合に当該クラスタにおいて実行される一連の処理の流れを示すシーケンス図である。
【図１４】クラスタにストレージノードが増設された場合に当該クラスタにおいて実行される一連の処理の流れを示すシーケンス図である。
【図１５】本情報処理システムにおいて実行されるライト処理の流れを示すシーケンス図である。
【図１６】本情報処理システムにおいて実行されるリード処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の一実施の形態を詳述する。以下の記載及び図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。本発明が実施の形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。本発明は、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は複数でも単数でも構わない。
【００１７】
以下の説明では、「テーブル」、「表」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ＸＸテーブル」、「ＸＸリスト」等を「ＸＸ情報」と呼ぶことがある。各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ＩＤ」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
【００１８】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたＩＤを使用することがある。
【００１９】
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、少なくとも１以上のプロセッサ（例えばＣＰＵ）によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又はインターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノード、ストレージシステム、ストレージ装置、サーバ、管理計算機、クライアント、又はホストであってもよい。プログラムを実行して行う処理の主体（例えばプロセッサ）は、処理の一部又は全部を行うハードウェア回路を含んでもよい。例えば、プログラムを実行して行う処理の主体は、暗号化及び復号化、又は圧縮及び伸張を実行するハードウェア回路を含んでもよい。プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
【００２０】
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ（例えばＣＰＵ）と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。
【００２１】
（１）本実施の形態による情報処理システムの構成
図１は、本実施の形態による情報処理システム１の構成を示す図である。この情報処理システム１は、複数のコンピュートノード２と、複数のストレージノード３と、管理ノード４とを備えて構成される。
【００２２】
コンピュートノード２、ストレージノード３及び管理ノード４間は、例えばファイバーチャネル（ＦＣ：Fibre Channel）、イーサネット（登録商標）、InfiniBand又は無線ＬＡＮ（Local Area Network）などから構成されるストレージサービスネットワーク５を介して接続されている。また各ストレージノード３間は、イーサネット（登録商標）、InfiniBand又は無線ＬＡＮなどから構成されるバックエンドネットワーク６を介して接続されている。
【００２３】
ただし、ストレージサービスネットワーク５及びバックエンドネットワーク６が同一のネットワークにより構成されていてもよく、また各コンピュートノード２及び各ストレージノード３がストレージサービスネットワーク５やバックエンドネットワーク６以外の管理用ネットワークに接続されていてもよい。
【００２４】
コンピュートノード２は、ストレージノード３に対してホスト（上位装置）として機能する汎用のコンピュータ装置である。コンピュートノード２は仮想マシンのような仮想的なコンピュータ装置であってもよい。コンピュートノード２は、ユーザ操作や実装されたアプリケーションプログラムからの要求に応じて、ストレージサービスネットワーク５を介してストレージノード３にリード要求又はライト要求（以下、適宜、これらをまとめてＩ／Ｏ（Input/Output）要求と呼ぶ）を送信する。
【００２５】
ストレージノード３は、コンピュートノード２に対してデータを読み書きするための記憶領域を提供する汎用の物理サーバ装置である。ストレージノード３は、図２に示すように、ＣＰＵ（Central Processing Unit）１０、メモリ１１及び複数の記憶装置１２と、第１及び第２の通信装置１３，１４とを備えて構成され、ＣＰＵ１０及び記憶装置１２と、第１及び第２の通信装置１３，１４とが内部ネットワーク１５を介して接続されている。各ストレージノード３は、ＣＰＵ１０、メモリ１１、記憶装置１２、第１及び第２の通信装置１３，１４を、それぞれ１以上備える。
【００２６】
ＣＰＵ１０は、ストレージノード３全体の動作制御を司るプロセッサである。またメモリ１１は、ＳＲＡＭ（Static RAM(Random Access Memory)）やＤＲＡＭ（Dynamic RAM）などの揮発性の半導体メモリから構成され、ＣＰＵ１０のワークメモリとして各種プログラムや必要なデータを一時的に保持するために利用される。メモリ１１に格納されたプログラムを、少なくとも１以上のＣＰＵ１０が実行することにより、後述のようなストレージノード３全体としての各種処理が実行される。
【００２７】
記憶装置１２は、ＮＶＭｅ（Non-Volatile Memory）ドライブやＳＡＳ（Serial Attached SCSI(Small Computer System Interface)）ドライブ、ＳＡＴＡ（Serial ATA(Advanced Technology Attachment)）、ＳＳＤ（Solid State Drive）又はＳＣＭ（Storage Class Memory）などの大容量の不揮発性の記憶装置から構成され、コンピュートノード２に対してデータを読み書きするための記憶領域を提供する。
【００２８】
第１の通信装置１３は、ストレージノード３がストレージサービスネットワーク５を介してコンピュートノード２や管理ノード４と通信を行うためのインタフェースであり、例えばＦＣカードや無線ＬＡＮカードなどから構成される。第１の通信装置１３は、コンピュートノード２や管理ノードとの通信時におけるプロトコル制御を行う。
【００２９】
第２の通信装置１４は、ストレージノード３がバックエンドネットワーク６を介して他のストレージノード３と通信を行うためのインタフェースであり、例えばＮＩＣ（Network Interface Card）や無線ＬＡＮカードなどから構成される。第２の通信装置１４は、他のストレージノード３との通信時におけるプロトコル制御を行う。
【００３０】
なお本実施の形態の場合、各ストレージノード３は、図１に示すように、他の１又は複数のストレージノード３と共にクラスタ７と呼ぶグループに纏められ、クラスタ７単位で管理される。図１の例では、クラスタ７が１つのみ設定された場合について例示しているが、情報処理システム１内に複数のクラスタ７を設定するようにしてもよい。クラスタ７は、分散ストレージシステムと呼ばれても良い。
【００３１】
管理ノード４は、本情報処理システム１の管理者（以下、これをシステム管理者と呼ぶ）が、本情報処理システム１の構成管理や各種設定を行うために利用するコンピュータ装置である。管理ノード４は、システム管理者の操作に応じて、コンピュートノード２やストレージノード３に対して必要な指示を与える。
【００３２】
図３は、本実施の形態によるストレージノード３の論理構成を示す。この図３に示すように、各ストレージノード３は、フロントエンド部２０、１又は複数のストレージ制御部２１、容量制御部２２並びにバックエンド部２３を有するデータプレーン２４と、クラスタ制御部２５及びノード制御部２６を有するコントロールプレーン２７とを備えて構成される。データプレーン２４は、データの読み書きに関するＩ／Ｏ処理を実行する機能部であり、コントロールプレーン２７は、クラスタ７（図）全体や自ノードを制御する機能部である。
【００３３】
フロントエンド部２０は、ストレージノード３におけるスケールアウトに関するＩ／Ｏ処理のフロントエンドとして機能するソフトウェアである。例えば、フロントエンド部２０は、コンピュートノード２からＩ／Ｏ要求が与えられた場合に、そのＩ／Ｏ要求を、当該Ｉ／Ｏ要求を実行すべき自ノード内のストレージ制御部２１や、当該Ｉ／Ｏ要求を実行すべきストレージ制御部２１が配置された他のストレージノード３に振り分ける。
【００３４】
ストレージ制御部２１は、ＳＤＳ（Software Defined Storage）のコントローラとして機能するソフトウェアである。ストレージ制御部２１は、ストレージ制御ソフトウェアや、ストレージ制御プログラムと呼ばれてもよい。ストレージ制御部２１は、フロントエンド部２０から与えられるコンピュートノード２からのＩ／Ｏ要求を受け付け、受け付けたＩ／Ｏ要求に応じたＩ／Ｏコマンドをバックエンド部２３に発行する。
【００３５】
ここで、本実施の形態の場合、ストレージノード３に実装された各ストレージ制御部２１は、別のストレージノード３に配置された他のストレージ制御部２１と共に冗長化構成を構成するペアに設定される。以下においては、このペアをストレージ制御部ペア２８と呼ぶものとする。
【００３６】
なお図３では、２つのストレージ制御部２１により１つのストレージ制御部ペア２８が構成される場合を示しており、以下においても、２つのストレージ制御部２１によりストレージ制御部ペア２８が構成されるものとして説明を進めるが、３つ以上のストレージ制御部２１により１つの冗長化構成を形成するようにしてもよい。
【００３７】
ストレージ制御部ペア２８では、一方のストレージ制御部２１がコンピュートノード２からのＩ／Ｏ要求を受け付けることができる状態（現用系の状態であり、以下、これをアクティブモードと呼ぶ）に設定され、他方のストレージ制御部２１がコンピュートノード２からのＩ／Ｏ要求を受け付けない状態（待機系の状態であり、以下、これをパッシブモードと呼ぶ）に設定される。
【００３８】
そしてストレージ制御部ペア２８では、アクティブモードに設定されたストレージ制御部（以下、適宜、これをアクティブストレージ制御部と呼ぶ）２１やそのアクティブストレージ制御部２１が配置されたストレージノード３に障害が発生した場合などに、それまでパッシブモードに設定されていたストレージ制御部（以下、適宜、これをパッシブストレージ制御部と呼ぶ）２１の状態がアクティブモードに切り替えられる。これにより、アクティブストレージ制御部２１が稼働し得なくなった場合に、当該アクティブストレージ制御部２１が実行していたＩ／Ｏ処理を、同じストレージ制御部ペア２８を構成するパッシブストレージ制御部２１により引き継ぐことができる。
【００３９】
容量制御部２２は、自ノード内に配置されたアクティブストレージ制御部２１が構成するストレージ制御部ペア２８に対して、自ノード内又は他ノード内の記憶装置１２（図２）が提供する物理的な記憶領域を割り当てる機能を有するソフトウェアである。容量制御部２２は、容量制御ソフトウェアや、容量制御プログラムと呼ばれてもよい。
【００４０】
またバックエンド部２３は、ストレージノード３におけるＩ／Ｏ処理のバックエンドとして機能するソフトウェアである。例えば、バックエンド部２３は、アクティブストレージ制御部２１から与えられる上述のＩ／Ｏコマンドに従って、そのアクティブストレージ制御部２１が構成するストレージ制御部ペア２８に対して容量制御部２２が割り当てた記憶領域にデータを読み書きする。
【００４１】
一方、クラスタ制御部２５は、クラスタ７全体に関する制御処理やクラスタ７のスケールアウトに関する制御処理を実行する機能を有するソフトウェアである。クラスタ制御部２５は、クラスタ制御ソフトウェアや、クラスタ制御プログラムと呼ばれてもよい。本情報処理システム１では、クラスタ７内の各ストレージノード３にそれぞれ実装されたクラスタ制御部２５のうちの１つのクラスタ制御部２５がマスタに設定され、マスタに設定されたクラスタ制御部（以下、これをマスタクラスタ制御部と呼ぶ）２５のみが、クラスタ７全体の整合性を保ちながら各種の制御処理を実行する。
【００４２】
例えば、マスタクラスタ制御部２５は、管理ノード４からの要求に応じてクラスタ７内にストレージ制御部ペア２８を設定し、設定したストレージ制御部ペア２８を図５について後述するストレージ制御部ペアテーブル３０に登録して管理する。
【００４３】
またマスタクラスタ制御部２５以外のクラスタ制御部２５は、マスタクラスタ制御部２５の障害に備えて、ホットスタンバイ（Hot stand-by）モード又はワームスタンバイ（Warm stand-by）モードのいずれかの動作モードに設定される。
【００４４】
ホットスタンバイモードは、マスタクラスタ制御部２５や当該マスタクラスタ制御部２５が実装されたストレージノード３に障害が発生したときなどに、それまでマスタクラスタ制御部２５が実行していた処理を直ちに引き継げるよう起動したスタンバイ状態を維持する動作モードである。
【００４５】
ホットスタンバイモードのクラスタ制御部２５は、マスタクラスタ制御部２５が実行していた処理を直ちに引き継げるよう、上述のストレージ制御部ペアテーブル３０（図５）などのマスタクラスタ制御部２５が管理するすべての管理情報と同じ内容の管理情報を保持している。
【００４６】
そして、マスタクラスタ制御部２５が保持する管理情報が更新された場合には、その更新前後の差分が差分データとしてマスタクラスタ制御部２５からバックエンドネットワーク６を介してすべてのホットスタンバイモードのクラスタ制御部２５に与えられ、当該差分データに基づいて、そのクラスタ制御部２５が保持する管理情報が当該クラスタ制御部２５によりマスタクラスタ制御部２５が保持する管理情報と同様に更新される。
【００４７】
このようにホットスタンバイモードのクラスタ制御部２５がマスタクラスタ制御部２５と常に同一の管理情報を保持することにより、マスタクラスタ制御部２５等に障害が発生し、それまでホットスタンバイモードであったクラスタ制御部２５を「マスタ」に切り替えた場合にも、それまで元のマスタクラスタ制御部２５が実行していた制御処理を「マスタ」に切り替えられたクラスタ制御部（マスタクラスタ制御部）２５により引き継ぐことが可能となる。
【００４８】
またワームスタンバイモードは、起動を停止したスタンバイ状態にある動作モードである。ホットスタンバイモードに設定されたクラスタ制御部の数が予め設定された閾値以下となった場合に、ワームスタンバイモードに設定されたいずれかのクラスタ制御部２５の状態がホットスタンバイモードに切り替えられる。
【００４９】
なお、マスタクラスタ制御部２５は、２つ以上のマスタクラスタ制御部２５が存在する状態を防ぐため、３つ以上のクラスタ制御部２５を稼働させ、これら稼働させたクラスタ制御部２５の中から多数決により選定される。そして、稼働させた残りのクラスタ制御部２５がホットスタンバイモードに設定される。
【００５０】
ノード制御部２６は、マスタクラスタ制御部２５からの要求に応じて、自ノード内で完結する各種の制御処理を実行する機能を有するプログラムである。ノード制御部２６は、ノード制御ソフトウェアや、ノード制御プログラムと呼ばれてもよい。実際上、マスタクラスタ制御部２５は、自己に負荷が集中しないように、各ストレージノード３内で完結する処理についてはその実行を各ストレージノード３のノード制御部２６に要求する。そしてノード制御部２６は、かかる要求が与えられると、この要求に従って、自ノードのデータプレーン２４に対する制御処理を実行する。
【００５１】
このように本情報処理システム１では、マスタクラスタ制御部２５から各ストレージノード３内のフロントエンド部２０やストレージ制御部２１に対する指令や要求がそのストレージノード３のノード制御部２６を介して与えられる。しかしながら、以下においては、理解の容易化のため、各ストレージノード３内のフロントエンド部２０やストレージ制御部２１に対するマスタクラスタ制御部２５からの指令や要求が、マスタクラスタ制御部２５からそのフロントエンド部２０やストレージ制御部２１に直接与えられるものとして説明する。
【００５２】
図４は、本実施の形態の情報処理システム１における記憶領域の対応関係を示す。この図４に示すように、本実施の形態では、容量制御部２２により、各ストレージノード３内の記憶装置１２がそれぞれ提供する物理的な記憶領域がそれぞれ所定大きさの記憶領域（以下、これを物理チャンクと呼ぶ）ＰＣに分割されて管理される。
【００５３】
また容量制御部２２は、異なるストレージノード３内の記憶装置１２がそれぞれ提供する複数の物理チャンクＰＣを当該物理チャンクＰＣと同じ大きさの論理的な記憶領域（以下、これを論理チャンクと呼ぶ）ＬＣと対応付け、この論理チャンクＬＣを外部ボリュームＥｘｔＶＯＬを介して論理チャンクＬＣと同じ大きさのプールボリュームＰＬＶＯＬと対応付ける。
【００５４】
さらに容量制御部２２は、このようにして論理チャンクＬＣが対応付けられたプールボリュームＰＬＶＯＬを複数纏めてプールＰＬを作成し、作成したプールＰＬを自ノードに配置されたアクティブストレージ制御部２１が属するストレージ制御部ペア２８（図３）に割り当てる。このようにして、容量制御部２２は、各ストレージ制御部ペア２８にそれぞれ専用の記憶領域となるプールＰＬを割り当てる。
【００５５】
また、これらのプールＰＬ上には、管理ノード４を介したシステム管理者からの指示に応じて、１又は複数の仮想的な論理ボリュームである内部ボリュームＩＶＯＬが作成される。これらの内部ボリュームＩＶＯＬは、そのプールＰＬが対応付けられたストレージ制御部ペア２８を構成する２つのストレージ制御部２１のうちのアクティブストレージ制御部２１が配置されたストレージノード３内に定義される。
【００５６】
さらに、各内部ボリュームＩＶＯＬは、それぞれ対応するストレージ制御部ペア２８（その内部ボリュームＩＶＯＬとプールＰＬを介して対応付けられたストレージ制御部ペア２８）を構成するアクティブストレージ制御部２１に定義された仮想的なポート（以下、これを仮想ポートと呼ぶ）ＶＰＴと、当該ストレージ制御部ペア２８を構成するパッシブストレージ制御部２１に定義された仮想ポートＶＰＴとをそれぞれ介して、これらアクティブストレージ制御部２１やパッシブストレージ制御部２１が配置された各ストレージノード３内にそれぞれ定義された仮想的な論理ボリュームであるグローバルプールボリュームＧＶＯＬと１対１に対応付けられる。
【００５７】
そしてクラスタ７内の各グローバルプールボリュームＧＶＯＬは、すべて纏めてクラスタ７内のすべてのストレージノード３を横断する１つのプール（以下、これをグローバルプールと呼ぶ）ＧＰＬとして管理される。
【００５８】
また各グローバルプールボリュームＧＶＯＬは、それぞれそのグローバルプールボリュームＧＶＯＬと内部ボリュームＩＶＯＬを介して対応付けられたストレージ制御部ペア２８を構成するアクティブストレージ制御部２１やパッシブストレージ制御部２１が配置された各ストレージノード３内にそれぞれ定義された仮想的な論理ボリュームであるホストボリュームＨＶＯＬと１対Ｎに対応付けられる。このホストボリュームＨＶＯＬは、データを読み書きするための記憶領域としてコンピュートノードに提供されるボリュームである。
【００５９】
さらに各ホストボリュームＨＶＯＬは、それぞれそのホストボリュームＨＶＯＬがグローバルプールボリュームＧＶＯＬを介して対応付けられた内部ボリュームＩＶＯＬに対応するストレージ制御部ペア２８のアクティブストレージ制御部２１が配置されたストレージノード３内に定義されたターゲットＴＧを介してそのストレージノード３の物理ポートＰＰＴと１対１に対応付けられる。
【００６０】
なおグローバルプールボリュームＧＶＯＬは、管理ノード４を介したシステム管理者からの作成指示に応じてクラスタ７内で固有の識別番号が付与されて作成される。このとき、そのグローバルプールボリュームＧＶＯＬと併せて、そのグローバルプールボリュームＧＶＯＬと１対１で対応付けられる内部ボリュームＩＶＯＬが、指定されたストレージ制御部ペア２８と対応付けて作成される。
【００６１】
また、グローバルプールボリュームＧＶＯＬは、システム管理者が管理ノード４を介してストレージノード３内にターゲットＴＧを作成する際、そのターゲットＴＧにそのグローバルプールボリュームＧＶＯＬを登録することにより、当該ターゲットＴＧと対応付けられたホストボリュームＨＶＯＬと関連付けられる。
【００６２】
因みに、グローバルプールボリュームＧＶＯＬの存在意図は、クラスタ７内でホストボリュームＨＶＯＬに対応付けられる内部ボリュームＩＶＯＬの識別番号を重複させないことにある。実際上、本実施の形態の場合、各ストレージ制御部ペア２８にそれぞれ対応付けられる内部ボリュームＩＶＯＬのＩＶＯＬ番号はストレージノード３内では固有であるが、クラスタ７内では固有とならない。このため本実施の形態においては、内部ボリュームＩＶＯＬ及びホストボリュームＨＶＯＬ間にクラスタ７内で固有のＧＶＯＬ番号をもつグローバルプールボリュームＧＶＯＬを介在させることにより、ホストボリュームＨＶＯＬ及び内部ボリュームＩＶＯＬ間の対応関係を一意に特定できるようにしている。
【００６３】
一方、コンピュートノード２側では、クラスタ７を構成する複数のストレージノード３が１つのストレージ装置に見えており、ホストボリュームＨＶＯＬをそのストレージ装置が自ノードに提供する記憶領域として認識する。
【００６４】
ただし、各コンピュートノード２が認識可能なホストボリュームＨＶＯＬは、管理ノード４を介してシステム管理者によりそのコンピュートノード２に設定されたホストボリュームＨＶＯＬのみである。従って、コンピュートノード２は、管理ノード４により設定されたホストボリュームＨＶＯＬのみをかかるストレージ装置から提供された記憶領域として認識することになる。
【００６５】
また各コンピュートノード２は、自ノードの物理ポート（図示せず）から、クラスタ７内のいずれかのストレージノード３内に定義されたターゲットＴＧまでのパスを管理している。そしてホストコンピュータ２は、所望するホストボリュームＨＶＯＬにデータをリード／ライトする場合には、リード／ライト先のホストボリュームＨＶＯＬと、当該ホストボリュームＨＶＯＬ内のリード／ライト先の記憶領域と、対象とするデータのデータ長とを指定したＩ／Ｏ要求を、自ノードが認識するターゲットＴＧに向けて送信する。
【００６６】
このとき各ストレージノード３では、フロントエンド部２０（図３）が、図６について後述するフロントエンドテーブルボリュームテーブル３１や、図７について後述するマッピングテーブル３２、及び、図１０について後述するグローバルプールボリュームテーブル３５を用いてホストボリュームＨＶＯＬ、グローバルプールボリュームＧＶＯＬ及び内部ボリュームＩＶＯＬ間の対応関係を管理し、ストレージ制御部２１が、図示しない管理テーブルを用いて内部ボリュームＩＶＯＬから論理チャンクＬＣまでの対応関係を管理し、容量制御部２２（図３）が、図示しない管理テーブルを用いて論理チャンクＬＣ及び物理チャンクＰＣ間の対応関係を管理している。
【００６７】
そして、フロントエンド部２０は、コンピュートノード２からのＩ／Ｏ要求を受信した場合、かかるマッピングテーブル３２及びグローバルプールボリュームテーブル３５を参照して、このＩ／Ｏ要求において指定されたホストボリュームＨＶＯＬとグローバルプールボリュームＧＶＯＬ及び内部ボリュームＩＶＯＬを順次介して対応付けられたアクティブストレージ制御部２１が配置されたストレージノード３を特定する。
【００６８】
そして、フロントエンド部２０は、特定したストレージノード３が自ノードである場合には、そのＩ／Ｏ要求に含まれるリード／ライト先のホストボリュームＨＶＯＬのボリューム番号を当該ホストボリュームＨＶＯＬとグローバルプールボリュームＧＶＯＬを介して対応付けられた内部ボリュームＩＶＯＬのボリューム番号に書き換えた上で、そのＩ／Ｏ要求を自ノード内の当該アクティブストレージ制御部２１に転送する。
【００６９】
またフロントエンド部２０は、特定したストレージノード３が他のストレージノード３である場合には、当該ストレージノード３にそのＩ／Ｏ要求が他のストレージノード３において実行すべきものであると判定した場合には、そのＩ／Ｏ要求を、特定したストレージノード３にバックエンドネットワーク６を介して転送する。かくして、このＩ／Ｏ要求が転送されてきたストレージノード３のフロントエンド部２０は、このＩ／Ｏ要求に含まれるリード／ライト先のホストボリュームＨＶＯＬのボリューム番号を当該ホストボリュームＨＶＯＬとグローバルプールボリュームＧＶＯＬを介して対応付けられた内部ボリュームＩＶＯＬのボリューム番号に書き換えた上で、そのＩ／Ｏ要求を自ノード内の対応するアクティブストレージ制御部２１に転送する。
【００７０】
そして、このＩ／Ｏ要求を受領したアクティブストレージ制御部２１は、当該Ｉ／Ｏ要求において指定された内部ボリュームＩＶＯＬ及び当該内部ボリュームＩＶＯＬ内の記憶領域とプールＰＬ及び外部ボリュームＥｘｔＶＯＬを順次介して対応付けられた論理チャンクＬＣ及び当該論理チャンクＬＣ内の記憶領域を上述の図示しない管理テーブルを用いて特定する。
【００７１】
かくして、そのストレージノード３では、そのＩ／Ｏ要求がライト要求であった場合には、バックエンド部２３により、その論理チャンクＬＣに対応付けられたすべての物理チャンクＰＣの対応する記憶領域にデータがそれぞれライトされる。また、そのＩ／Ｏ要求がリード要求であった場合には、バックエンド部２３により、その論理チャンクＬＣに対応付けられた物理チャンクＰＣのうちの１つの物理チャンクＰＣからデータがリードされ、これがそのリード要求の送信元のコンピュートノード２に転送される。
【００７２】
なお、本実施の形態の場合、上述のようにコンピュートノード２からのデータは、Ｉ／Ｏ要求において指定されたホストボリュームＨＶＯＬとグローバルプールボリュームＧＶＯＬ及び内部ボリュームＩＶＯＬ等を順次介して対応する論理チャンクＬＣに対応付けられた複数の物理チャンクＰＣに冗長化されて格納される。このため容量制御部２２により各論理チャンクＬＣにそれぞれ対応付けられる物理チャンクＰＣの数は、その情報処理システム１における冗長化方式の設定内容によって決定される。
【００７３】
例えば、データを二重化して記憶する設定の場合には、１つの論理チャンクＬＣに対して２つの物理チャンクＰＣが対応付けられ、データを三重化以上に多重化して記憶する設定がなされている場合などには、３つ以上の必要な数の物理チャンクＰＣが１つの論理チャンクＬＣに対応付けられる。
【００７４】
この場合において、論理チャンクＬＣと対応付ける物理チャンクＰＣを、アクティブストレージ制御部２１が配置されたストレージノード３とは別のストレージノード３内の物理チャンクＰＣから選択することとした場合、そのアクティブストレージ制御部２１からのＩ／Ｏコマンドを受領した容量制御部２２がその物理チャンクＰＣにデータをリード／ライトする際に、その物理チャンクＰＣを提供するストレージノード３との間の通信が必要となり、その分、システム全体としての応答性能が悪くなる。従って、論理チャンクＬＣに複数の物理チャンクＰＣを対応付けるに際しては、その物理チャンクＰＣのうちの１つを、アクティブストレージ制御部２１が配置されたストレージノード３内の記憶装置１２が提供する物理チャンクＰＣの中から選択する方がシステム全体の応答性能の観点からも望ましい。
【００７５】
また、ストレージ制御部ペア２８におけるアクティブストレージ制御部２１が配置されたストレージノード３に障害が発生した場合に、パッシブストレージ制御部２１がアクティブモードに切り替えられることを考慮すると、上述と同様の理由により、論理チャンクＬＣに対応付ける物理チャンクＰＣのうちの１つは、パッシブストレージ制御部２１が配置されたストレージノード３内の記憶装置１２が提供する物理チャンクＰＣの中から選択する方がシステム全体の応答性能の観点からも望ましい。
【００７６】
そこで本情報処理システム１において、各ストレージノード３の容量制御部２２は、ストレージ制御部ペア２８に論理チャンクＬＣを割り当て、その論理チャンクＬＣに複数の物理チャンクＰＣを対応付ける際に、そのストレージ制御部ペア２８のアクティブストレージ制御部２１が配置されたストレージノード３内の記憶装置１２が提供する物理チャンクＰＣと、そのストレージ制御部ペア２８のパッシブストレージ制御部２１が配置されたストレージノード３内の記憶装置１２が提供する物理チャンクＰＣとを優先的にその論理チャンクＬＣに対応付ける。
【００７７】
（２）各種テーブルの構成
図５〜図１０は、各ストレージ制御部ペア２８の構成や、上述のようなホストボリュームＨＶＯＬ、グローバルプールボリュームＧＶＯＬ及び内部ボリュームＩＶＯＬ間の対応関係等を管理するために各ストレージノード２のメモリ１１に保持されるデータベース（図示せず）に含まれる各種テーブルの構成例を示す。
【００７８】
これらテーブルのうち、図５に示すストレージ制御部ペアテーブル３０、図６に示すフロントエンドテーブルボリュームテーブル３１、図７に示すマッピングテーブル３２、図８に示すフロントエンドターゲットテーブル３３、及び、図１０に示すグローバルプールボリューム３５は、フロントエンド部２０により管理される。さらに図９に示すストレージ制御部構成情報テーブル３４は、ストレージ制御部２１により管理される。
【００７９】
またストレージ制御部ペアテーブル３０、フロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２、フロントエンドターゲットテーブル３３及びグローバルプールボリュームテーブル３５は、クラスタ７内のいずれかのストレージノード３において更新された場合にこれと同期して他のすべてのストレージノード３において同様に更新され、これにより各ストレージノード３間で常に同一の内容に維持される。
【００８０】
ストレージ制御部ペアテーブル３０は、クラスタ７内に設定されたストレージ制御部ペア２８（図３）をマスタクラスタ制御部２５（図４）が管理するために利用するテーブルであり、図５に示すように、ペア番号欄３０Ａ、アクティブ欄３０Ｂ及びパッシブ欄３０Ｃを備えて構成される。このストレージ制御部ペアテーブル３０では１つの行が１つのストレージ制御部ペア２８に対応しており、クラスタ７内のすべてのストレージ制御部ペア２８がこのストレージ制御部ペアテーブル３０に登録される。
【００８１】
そしてペア番号欄３０Ａには、対応するストレージ制御部ペア２８に付与されたそのストレージ制御部ペア２８に固有の識別番号（ペア番号）が格納される。
【００８２】
またアクティブ欄３０Ｂは、ノード番号欄３０ＢＡ及びストレージ制御部欄３０ＢＢに区分されている。そして、ノード番号欄３０ＢＡには、対応するストレージ制御部ペア２８を構成する２つのストレージ制御部２１のうちのアクティブストレージ制御部２１が配置されたストレージノード３の識別番号（ノード番号）が格納され、ストレージ制御部番号欄３０ＢＢには、そのアクティブストレージ制御部２１の識別番号（ストレージ制御部番号）が格納される。
【００８３】
同様に、パッシブ欄３０Ｃは、ノード番号欄３０ＣＡ及びストレージ制御部番号欄３０ＣＢに区分されている。そして、ノード番号欄３０ＣＡには、対応するストレージ制御部ペア２８を構成する２つのストレージ制御部２１のうちのパッシブストレージ制御部２１が配置されたストレージノード３のノード番号が格納され、ストレージ制御部番号欄３０ＣＢには、そのパッシブストレージ制御部２１のストレージ制御部番号が格納される。
【００８４】
従って、図５の例の場合、「１」というペア番号が付与されたストレージ制御部ペア２８は、「０」というノード番号のストレージノード３に配置された「０」というストレージ制御部番号のアクティブストレージ制御部２１と、「１」というノード番号のストレージノード３に配置された「１」というストレージ制御部番号のパッシブストレージ制御部２１とから構成されていることが示されている。
【００８５】
一方、フロントエンドテーブルボリュームテーブル３１は、ホストボリュームＨＶＯＬ及び内部ボリュームＩＶＯＬ間の対応関係を管理するために利用されるテーブルである。フロントエンドテーブルボリュームテーブル３１は、図６に示すように、ホストボリュームＩＤ欄３１Ａ、ＵＵＩＤ欄３１Ｂ、第１のノード特定情報欄３１Ｃ、第２のノード特定情報欄３１Ｄ、アクティブ側ノード特定情報欄３１Ｅ、ストレージ制御部番号欄３１Ｆ、仮想ポート番号欄３１Ｇ及び内部ボリューム番号欄３１Ｈを備えて構成される。このフロントエンドテーブルボリュームテーブル３１では、１つの行が１つのホストボリュームＨＶＯＬに対応し、クラスタ７内のすべてのホストボリュームＨＶＯＬが登録される。
【００８６】
そしてボリューム番号欄３１Ａには、対応するホストボリュームＨＶＯＬに対して付与されたそのホストボリュームＨＶＯＬに固有のボリューム番号がそれぞれ格納される。このボリューム番号は、コンピュートノード２が認識するそのホストボリュームＨＶＯＬの識別番号（ボリューム番号）である。
【００８７】
またＵＵＩＤ欄３１Ｂには、対応するホストボリュームＨＶＯＬに対してクラスタ７内で付与されたそのホストボリュームＨＶＯＬに固有のＵＵＩＤ（Universally Unique Identifier）が格納され、内部ボリューム番号欄３１Ｈには、対応するホストボリュームＨＶＯＬに対応付けられた内部ボリュームＩＶＯＬのボリューム番号が格納される。
【００８８】
さらに第１のノード特定情報欄３１Ｃには、対応する内部ボリュームＩＶＯＬと対応付けられたストレージ制御部ペア２８のアクティブストレージ制御部２１が配置されたストレージノード３を特定するための情報（以下、これをストレージノード特定情報と呼ぶ）が格納され、第２のノード特定情報欄３１Ｄには、当該ストレージ制御部ペア２８のパッシブストレージ制御部２１が配置されたストレージノード３のストレージノード特定情報が格納される。本実施の形態においては、これらのストレージノード特定情報として、対応するストレージノード３のストレージサービスネットワーク５上のＩＰ（Internet Protocol）アドレスが適用される。
【００８９】
さらにアクティブ側ノード特定情報欄３１Ｅには、これら２つのストレージノード３のうち、アクティブストレージ制御部２１が配置されたストレージノード３のストレージノード特定情報が格納される。またストレージ制御部番号欄３１Ｆには、そのアクティブストレージ制御部２１のストレージ制御部番号が格納され、仮想ポート番号欄３１Ｇには、そのアクティブストレージ制御部２１に定義された仮想ポートＶＰＴのうち、対応するホストボリュームＨＶＯＬ及び対応する内部ボリュームＩＶＯＬが接続された仮想ポートＶＰＴの識別番号（ポート番号）が格納される。
【００９０】
従って、図６の例の場合、「sn1」というノード特定情報のストレージノード３に配置されたストレージ制御部番号が「１」のアクティブストレージ制御部２１と、「sn2」というノード特定情報のストレージノード３に配置されたパッシブストレージ制御部２１とにより構成されるストレージ制御部ペア２８に割り当てられたプールＰＬ上に「１」というボリューム番号の内部ボリュームＩＶＯＬが定義され、この内部ボリュームＩＶＯＬが、そのアクティブストレージ制御部２１に定義された「Cl1-a」というポート番号の仮想ポートＶＰＴを介して「１」というボリューム番号のホストボリュームＨＶＯＬと対応付けられていることが示されている。また図６では、そのホストボリュームＨＶＯＬのクラスタ７内でのＵＵＩＤが「Xxxxxxxxxxx」であることも示されている。
【００９１】
他方、マッピングテーブル３２は、グローバルプールボリュームＧＶＯＬ及び内部ボリュームＩＶＯＬ間の対応関係を管理するために利用されるテーブルである。マッピングテーブル３２は、図７に示すように、グローバルプールボリューム番号欄３２Ａ、ＵＵＩＤ欄３２Ｂ、内部ボリューム番号欄３２Ｃ、ノード番号欄３２Ｄ及びストレージ制御部番号欄３２Ｅを備えて構成される。マッピングテーブル３２では、１つの行が１つのグローバルプールボリュームＧＶＯＬに対応し、クラスタ７内のすべてのグローバルプールボリュームＧＶＯＬが登録される。
【００９２】
そしてグローバルプールボリューム番号欄３２Ａには、対応するグローバルプールボリュームＧＶＯＬのボリューム番号が格納され、ＵＵＩＤ欄３２Ｂには、そのグローバルプールボリュームＧＶＯＬのクラスタ７内におけるＵＵＩＤが格納される。
【００９３】
また内部ボリューム番号欄３２Ｃには、そのグローバルプールボリュームＧＶＯＬと対応付けられた内部ボリュームＩＶＯＬに付与されたその内部ボリュームＩＶＯＬのボリューム番号が格納される。またノード番号欄３２Ｄには、その内部ボリュームＩＶＯＬが存在するストレージノード３（通常は、対応するアクティブストレージ制御部２１が配置されたストレージノード３）のノード番号が格納される。
【００９４】
さらにストレージ制御部番号欄３２Ｅには、その内部ボリュームＩＶＯＬと対応付けられたストレージ制御部ペア２８（割り当てられたプールＰＬ上にその内部ボリュームＩＶＯＬが定義されたストレージ制御部ペア２８）を構成する２つのストレージ制御部２１のうち、アクティブストレージ制御部２１のストレージ制御部番号が格納される。
【００９５】
従って、図７の例の場合、「１」というボリューム番号のグローバルプールボリュームＧＶＯＬは、クラスタ７内において「Xxxxxxxxxxxx」というＵＵＩＤが付与され、「１」というストレージ制御部番号のアクティブストレージ制御部２１が配置された「２」というノード番号のストレージノード３内に定義された「１」というボリューム番号の内部ボリュームＩＶＯＬと対応付けられていることが示されている。
【００９６】
フロントエンドターゲットテーブル３３は、ストレージノード３の各物理ポートＰＰＴ（図４）に対してそれぞれ１対１で設定されたターゲットＴＧ（図４）と、ホストボリュームＨＶＯＬとの対応関係を管理するために利用されるテーブルである。フロントエンドターゲットテーブル３３は、図８に示すように、ターゲット番号欄３３Ａ、ターゲット名欄３３Ｂ、ＵＵＩＤ欄３３Ｃ、ターゲットＩＰ欄３３Ｄ、ホストボリューム番号リスト欄３３Ｅ及びイニシエータ名欄３３Ｆを備えて構成される。このフロントエンドターゲットテーブル３３では、１つの行が１つのターゲットＴＧに対応し、クラスタ７内に定義されたすべてのターゲットＴＧが登録される。
【００９７】
そしてターゲット番号欄３３Ａには、対応するターゲットＴＧに付与されたそのターゲットＴＧに固有の識別番号（ターゲット番号）が格納され、ターゲット名欄３３Ｂには、対応するターゲットＴＧに付与された名称（ターゲット名）が格納される。このターゲット名は、ユーザ又は管理ノード４により付与された名称である。
【００９８】
またＵＵＩＤ欄３３Ｃには、対応するターゲットＴＧに付与されたクラスタ７内におけるそのターゲットＴＧのＵＵＩＤが格納される。さらにターゲットＩＰ欄３３Ｄには、そのターゲットＴＧが設定された物理ポートＰＰＴのストレージサービスネットワーク５上のＩＰアドレスが格納される。
【００９９】
さらにホストボリューム番号リスト欄３３Ｅには、対応するターゲットＴＧと対応付けられたすべてのホストボリュームＨＶＯＬのボリューム番号が格納され、イニシエータ名欄３３Ｆには、対応するターゲットＴＧにログイン可能なコンピュートノード２の名称（イニシエータ名）が格納される。
【０１００】
従って、図８の例の場合、「１」というターゲット番号が付与された「AAAA」というターゲット名のターゲットＴＧにはクラスタ７内で「Xxxxxxxxxxxx」というＵＵＩＤが付与され、そのターゲットＴＧが設定された物理ポートＰＰＴのストレージサービスネットワーク５上のＩＰアドレスは「xx.xx.xx.xx」であり、そのターゲットＴＧに「１」，「２」，……「Ｎ」というボリューム番号がそれぞれ付与された複数のホストボリュームＨＶＯＬが対応付けられ、そのターゲットＴＧに「lqn.xxxx.xxx」というイニシエータ名のコンピュートノード２がログイン可能に設定されていることが示されている。
【０１０１】
ストレージ制御部構成情報テーブル３４は、仮想ポートＶＰＴ及び内部ボリュームＩＶＯＬの対応関係を管理するために利用されるテーブルであり、図９に示すように、仮想ポート番号欄３４Ａ及び内部ボリューム番号欄３４Ｂを備えて構成される。このストレージ制御部構成情報テーブル３４は、ストレージ制御部２１ごとに作成され、対応するストレージ制御部２１により管理される。
【０１０２】
そして仮想ポート番号欄３４Ａには、対応するストレージ制御部２１に定義された仮想ポートＶＰＴのポート番号が格納され、内部ボリューム番号欄３４Ｂには、その仮想ポートＶＰＴに接続された内部ボリュームＩＶＯＬのボリューム番号が格納される。
【０１０３】
従って、図９の例の場合、対応するストレージ制御部２１の「Cl1-a」という仮想ポートＶＰＴには「１」というボリューム番号の内部ボリュームＩＶＯＬが接続されていることが示されている。
【０１０４】
グローバルプールボリュームテーブル３５は、クラスタ７内に定義されたグローバルプールボリュームＧＶＯＬを管理するために利用されるテーブルであり、図１０に示すように、グローバルプールボリューム番号欄３５Ａ，ターゲット番号欄３５Ｂ及びホストボリューム番号欄３５Ｃを備えて構成される。このグローバルプールボリュームテーブル３５では、１つの行が１つのグローバルプールボリュームＧＶＯＬに対応し、クラスタ７内に定義されたすべてのグローバルプールボリュームＧＶＯＬが登録される。
【０１０５】
そしてグローバルプールボリューム番号欄３５Ａには、対応するグローバルプールボリュームＧＶＯＬに付与されたそのグローバルプールボリュームＧＶＯＬに固有の識別番号（ボリューム番号）が格納され、ホストボリューム番号欄３５Ｃには、対応するグローバルプールボリュームＧＶＯＬと対応付けられたすべてのホストボリュームＨＶＯＬのボリューム番号が格納される。またターゲット番号欄３５Ｂには、対応するホストボリュームＨＶＯＬと対応付けられたターゲットＴＧのターゲット番号が格納される。
【０１０６】
従って、図１０の場合、「１」というボリューム番号が付与されたグローバルターゲットボリュームＧＶＯＬには、少なくともそれぞれ「１」というボリューム番号が付与されたホストボリュームＨＶＯＬが対応付けられ、このホストボリュームＨＶＯＬは、「１」というターゲット番号が付与されたターゲットＴＧと、「２」というターゲット番号が付与されたターゲットＴＧとに対応付けられていることが示されている（図４参照）。
【０１０７】
なお、フロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２、フロントエンドターゲットテーブル３３、ストレージ制御部構成情報テーブル３４及びグローバルプールボリューム３５間における情報の対応関係を図１１に示す。
【０１０８】
この図１１に示すように、フロントエンドテーブルボリュームテーブル３１の仮想ポート番号欄３１Ｇ（図６）及び内部ボリューム番号欄３１Ｈ（図６）にそれぞれ格納された仮想ポート番号及びボリューム番号が、それぞれその仮想ポート番号が付与された仮想ポートＶＰＴ（図４）を備えるストレージ制御部２１が管理するストレージ制御部構成情報管理テーブル３４の仮想ポート番号欄３４Ａ（図９）及び内部ボリューム番号欄３４Ｂ（図９）にそれぞれ格納されている仮想ポート番号やボリューム番号と対応する。
【０１０９】
従って、フロントエンドテーブルボリュームテーブル３１及びストレージ制御部構成情報管理テーブル３４間では、仮想ポートＶＰＴのポート番号と、当該仮想ポートＶＰＴに対応付けられた内部ボリュームＩＶＯＬのボリューム番号との組合せをキーとして、行同士の対応関係を認識することができる。
【０１１０】
またマッピングテーブル３２のグローバルプールボリューム番号欄３２Ａ（図７）に格納されたボリューム番号は、グローバルプールボリュームテーブル３５のグローバルプールボリューム番号欄３５Ａに格納されたボリューム番号と対応する。従って、マッピングテーブル３２及びグローバルプールボリュームテーブル３５間では、グローバルプールボリュームＧＶＯＬのボリューム番号をキーとして、行同士の対応関係を認識することができる。
【０１１１】
さらにマッピングテーブル３２の内部ボリューム番号欄３２Ｃ（図７）に格納されたボリューム番号は、その内部ボリューム番号の内部ボリュームＩＶＯＬ（図４）を提供するアクティブストレージ制御部２１が管理するストレージ制御部構成情報管理テーブル３４の内部ボリューム番号欄３４Ｂ（図９）に格納されたボリューム番号と対応する。従って、マッピングテーブル３３及びストレージ制御部構成情報管理テーブル３４間では、内部ボリュームＩＶＯＬのボリューム番号をキーとして、行同士の対応関係を認識することができる。
【０１１２】
さらにグローバルプールボリュームテーブル３５のターゲット番号欄３５Ｂ（図１０）に格納されたターゲット番号は、フロントエンドターゲットテーブル３３（図８）のターゲット番号欄３３Ａに格納されたターゲット番号と対応する。従って、グローバルプールボリュームテーブル３５及びフロントエンドターゲットテーブル３３間では、ターゲット番号をキーとして、行同士の対応関係を認識することができる。
【０１１３】
（３）内部ボリューム作成の流れ
次に、図４について上述した内部ボリュームＩＶＯＬをクラスタ７内に作成してホストボリュームＨＶＯＬと対応付け、その内部ボリュームＩＶＯＬに関する各種設定を行う一連の処理の流れについて、図１２を参照して説明する。
【０１１４】
本情報処理システム１において、システム管理者は、コンピュートノード２に提供する新たなホストボリュームＨＶＯＬを作成する場合、管理ノード４を操作することにより、そのとき作成しようとするホストボリュームＨＶＯＬと対応付けるグローバルプールボリュームＧＶＯＬの作成要求（以下、これをグローバルプールボリューム作成要求）をマスタクラスタ制御部２５が配置されたストレージノード３に送信する（Ｓ１）。
【０１１５】
このグローバルプールボリューム作成要求を受信したマスタクラスタ制御部２５は、まず、受信したコマンド（グローバルプールボリューム作成要求）を解析し（Ｓ２）、このコマンドがグローバルプールボリューム作成要求であることを認識すると、そのとき作成すべきグローバルプールボリュームＧＶＯＬを対応付けるのに最適なストレージ制御部ペア２８（図３）を選択する（Ｓ３）。例えば、マスタクラスタ制御部２５は、最も負荷が低いストレージノード３にアクティブストレージ制御部２１が配置されているストレージ制御部ペア２８をこのステップＳ３において選択する。
【０１１６】
またマスタクラスタ制御部２５は、ステップＳ３で選択したストレージ制御部ペア２８を構成するストレージ制御部２１のうち、アクティブストレージ制御部２１が配置されたストレージノード３に対して、グローバルプールボリュームＧＶＯＬを作成すべき旨の指示（以下、これをグローバルプールボリューム作成指示と呼ぶ）と、内部ボリュームＩＶＯＬを作成すべき旨の指示（以下、これを内部ボリューム作成指示と呼ぶ）とをバックエンドネットワーク６を介して送信する（Ｓ４Ａ，Ｓ４Ｂ）。
【０１１７】
かくして、かかるグローバルプールボリューム作成指示を受信したストレージノード３のフロントエンド部２０は、自ノード内にグローバルプールボリュームＧＶＯＬを作成する（Ｓ５Ａ）。また、かかるストレージノード３のかかるアクティブストレージ制御部２１は、その内部ボリューム作成指示に従って、自ノード内に、自ストレージ制御部２１が構成するストレージ制御部ペア２８に割り当てられたプールＰＬ（図４）と、ステップＳ５Ａで作成されたグローバルプールボリュームＧＶＯＬとに対応付けて内部ボリュームＩＶＯＬを作成する（Ｓ５Ｂ）。
【０１１８】
なおグローバルプールボリュームＧＶＯＬ及び内部ボリュームＩＶＯＬは実体を有さない仮想的な論理ボリュームであるため、これらグローバルプールボリュームＧＶＯＬや内部ボリュームＩＶＯＬの作成は、その情報をグローバルプールボリュームテーブル３５（図１０）や対応するストレージ制御部構成情報テーブル３４（図９）に登録することにより行われる。
【０１１９】
実際上、そのフロントエンド部２０は、自己が管理するグローバルプールボリュームテーブル３５（図１０）に新たな行を追加し、その行のグローバルプールボリューム番号欄３５Ａ（図１０）に、そのグローバルプールボリュームＧＶＯＬに付与したボリューム番号を格納する。
【０１２０】
そして、このフロントエンド部２０は、この後、このようにして作成したグローバルプールボリュームＧＶＯＬのボリューム番号と、そのグローバルプールボリュームＧＶＯＬと対応付けた内部ボリュームＩＶＯＬのボリューム番号とを、バックエンドネットワーク６を介してマスタクラスタ制御部２５に通知する（Ｓ６Ａ）。
【０１２１】
また、かかるアクティブストレージ制御部２１は、自己が管理するストレージ制御部構成情報テーブル３４（図９）に新たな行を追加し、その行の内部ボリューム番号欄３４Ｂ（図９）に、そのとき作成すべき内部ボリュームＩＶＯＬのボリューム番号を格納すると共に、その行の仮想ポート番号欄３４Ａ（図９）に、その内部ボリュームＩＶＯＬと対応付ける自ストレージ制御部２１の仮想ポートＶＰＴ（図４）のポート番号を格納する。
【０１２２】
そして、このアクティブストレージ制御部２１は、この後、このようにして作成した内部ボリュームＩＶＯＬのボリューム番号と、その内部ボリュームＩＶＯＬと対応付けた仮想ポートＶＰＴのポート番号とを含む完了通知を、バックエンドネットワーク６を介してマスタクラスタ制御部２５に通知する（Ｓ６Ｂ）。
【０１２３】
一方、これらの完了通知を受信したマスタクラスタ制御部２５は、そのグローバルプールボリュームＧＶＯＬやその内部ボリュームＩＶＯＬを自ノード内のフロントエンドテーブルボリュームテーブル３１（図６）、マッピングテーブル３２（図７）及びグローバルプールボリュームテーブル３５（図１０）に登録するよう自ノード内のフロントエンド部２０に指示を与える。かくして、この指示を受けたフロントエンド部２０は、自ノードのメモリ１１（図２）に格納されているフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５（図１０）にこれらのグローバルプールボリュームＧＶＯＬやその内部ボリュームＩＶＯＬを登録する（Ｓ７）。
【０１２４】
具体的に、かかるフロントエンド部２０は、自ノードのメモリ１１（図２）に格納されているフロントエンドテーブルボリュームテーブル３１に新たな行を追加し、その行の第１のノード特定情報欄３１Ｃ（図６）に、ステップＳ３で選択したストレージ制御部ペア２８を構成する一方のストレージ制御部２１が配置されたストレージノード３のストレージノード特定情報を格納する。また、そのフロントエンド部２０は、その行の第２のノード特定情報欄３１Ｄ（図６）に、ステップＳ３で選択したストレージ制御部ペア２８を構成する他方のストレージ制御部２１が配置されたストレージノード３のストレージノード特定情報を格納する。
【０１２５】
またフロントエンド部２０は、その行のアクティブ側ノード特定情報欄３１Ｅ（図６）に、かかるストレージ制御部ペア２８を構成する２つのストレージ制御部２１のうちのアクティブストレージ制御部２１が配置されたストレージノード３のストレージノード特定情報を格納すると共に、その行のストレージ制御部番号欄３１Ｆ（図６）に、そのアクティブストレージ制御部２１のストレージ制御部番号を格納する。
【０１２６】
さらにフロントエンド部２０は、その行の仮想ポート番号欄３１Ｇ（図６）に、ステップＳ７で受信した対応するストレージ制御部２１から送信されてきた完了通知に含まれる仮想ポートＶＰＴのポート番号を格納すると共に、その行の内部ボリューム番号欄３１Ｈ（図６）に、当該完了通知に含まれる内部ボリュームのボリューム番号を格納する。
【０１２７】
同様に、フロントエンド部２０は、マッピングテーブル３２（図７）に新たな行を追加し、その行のグローバルプールボリューム番号欄３２Ａ（図７）及びＵＵＩＤ欄３２Ｂ（図７）に、それぞれそのとき作成したグローバルプールボリュームＧＶＯＬのボリューム番号やＵＵＩＤを格納すると共に、その行の内部ボリューム番号欄３２Ｃ（図７）に、そのグローバルプールボリュームＧＶＯＬと対応付けた内部ボリュームＩＶＯＬのボリューム番号を格納する。
【０１２８】
またフロントエンド部２０は、その行のノード番号欄３２Ｄ（図７）に、ステップＳ３で選択したストレージ制御部ペア２８のアクティブストレージ制御部２１が配置されているストレージノード３のノード番号を格納すると共に、その行のストレージ制御部番号欄３２Ｅ（図７）に、当該アクティブストレージ制御部２１のストレージ制御部番号を格納する。
【０１２９】
さらにフロントエンド部２０は、グローバルプールボリュームテーブル３５（図１０）に新たな行を追加し、その行のグローバルプールボリューム番号欄３５Ａ（図１０）に、そのとき作成したグローバルプールボリュームＧＶＯＬのボリューム番号を格納する。
【０１３０】
そしてマスタクラスタ制御部２５は、以上のようにして自ノード内のフロントエンド部２０がそのグローバルプールボリュームＧＶＯＬや内部ボリュームＩＶＯＬを自ノード内のフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５に登録し終えると、これらフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５の更新前後の差分をそれぞれ差分データとして、バックエンドネットワーク６を介してクラスタ７内の自ノード以外の各ストレージノード３にそれぞれ送信する（Ｓ８）。
【０１３１】
かくして、この差分データを受信した各ストレージノード３のフロントエンド部２０は、当該差分データに基づいて、自ノード内のフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５を、マスタクラスタ制御部２５が配置されたストレージノード３内のフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５と同様にそれぞれ更新する（Ｓ９）。このようにして各ストレージノード３内のフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５が同期して更新され、これらのフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５の内容がクラスタ７内の各ストレージノード３間で常に同一の状態に維持される。
【０１３２】
また、これらのフロントエンド部２０は、このようにして自ノード内のフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びグローバルプールボリュームテーブル３５を更新し終えると、その旨の完了通知をバックエンドネットワーク６を介してマスタクラスタ制御部２５に送信する（Ｓ１０）。
【０１３３】
そしてマスタクラスタ制御部２５は、クラスタ７内の自ノード以外のすべてのストレージノード３のフロントエンド部２０から上述したステップＳ１０の完了通知が与えられると、要求されたグローバルプールボリュームＧＶＯＬを作成し終えた旨の完了通知を管理ノード４に送信する（Ｓ１１）。
【０１３４】
一方、管理ノード４は、かかるステップＳ１１の完了通知がマスタクラスタ制御部２５から与えられると、そのとき作成しようとするホストボリュームＨＶＯＬと対応付けるターゲットＴＧ（図４）を作成すべき旨の要求（以下、これをターゲット作成要求と呼ぶ）を、ストレージサービスネットワーク５を介してマスタクラスタ制御部２５に送信する（Ｓ１２）。なお、このターゲット作成要求には、そのとき作成すべきターゲットＴＧのターゲット名と、そのターゲットＴＧに対応付けるホストボリュームＨＶＯＬのボリューム番号と、そのターゲットＴＧのＩＰアドレスとが含まれる。
【０１３５】
そしてマスタクラスタ制御部２５は、このターゲット作成要求を受信すると、ステップＳ３で選択したストレージ制御部ペア２８を構成する各ストレージ制御部２１がそれぞれ配置された２つのストレージノード３内に要求されたターゲットＴＧをそれぞれ作成するよう自ノード内のフロントエンド部２０に指示を与える（Ｓ１３）。ただし、これらのターゲットＴＧは実体を有さない仮想的なものであるため、これらターゲットＴＧの作成は、フロントエンドターゲットテーブル３３（図８）にこれらターゲットＴＧの情報を新規登録することにより行われる。
【０１３６】
実際上、マスタクラスタ制御部２８からのかかる指示を受けたフロントエンド部２０は、自ノードのメモリ１１に格納されているフロントエンドターゲットテーブル３３（図８）に新たな２つの行を追加し、これらの行のターゲット名欄３３Ｂ（図８）、ターゲットＩＰ欄３３Ｄ（図８）及びホストボリューム番号欄３３Ｅ（図８）に、それぞれステップＳ１２で管理ノード４から与えられたターゲット作成要求において指定された新たなターゲットＴＧのターゲット名及びネットワークＩＰ並びにホストボリュームＨＶＯＬのボリューム番号のうちの対応する情報をそれぞれ格納する。またフロントエンド部２０は、これらの行のＵＵＩＤ欄３３Ｃ（図８）に、それぞれ対応するターゲットＴＧに対して付与したクラスタ７内で固有のＵＵＩＤを格納する。
【０１３７】
また、マスタクラスタ制御部２８は、この後、ステップＳ５Ａで作成したグローバルプールボリュームＧＶＯＬと、ステップＳ５Ｂで作成した内部ボリュームＩＶＯＬと、そのとき作成しようとするホストボリュームＨＶＯＬとをマッピングするよう自ノード内のフロントエンド部２０に指示を与える（Ｓ１４）。
【０１３８】
かくして、この指示を受けたフロントエンド部２０は、ステップＳ７で自ノード内のフロントエンドテーブルボリュームテーブル３１（図６）に新たに追加した行のボリューム番号欄３１Ａ（図６）に、ターゲット作成要求において指定されたそのとき作成しようとするホストボリュームＨＶＯＬのボリューム番号を格納する。また、かかるフロントエンド部２０は、そのホストボリュームＨＶＯＬにクラスタ７内で固有のＵＵＩＤを付与し、付与したＵＵＩＤをその行のＵＵＩＤ欄３１Ｂ（図６）に格納する。
【０１３９】
また、かかるフロントエンド部２０は、上述と同様にして、ステップＳ７で自ノード内のグローバルプールボリュームテーブル３５（図１０）に新たに追加した行のターゲット番号欄３５Ｂに、ターゲット作成要求において指定されたそのとき作成した各ターゲットＴＧのターゲット番号を格納すると共に、その行の各ホストボリューム番号欄３５Ｃに、そのとき作成しようとするホストボリュームＨＶＯＬのボリューム番号を格納する。
【０１４０】
そしてマスタクラスタ制御部２５は、上述のようにして要求されたターゲットＴＧの作成と、ステップＳ５Ａで作成したグローバルプールボリュームＧＶＯＬと、ステップＳ５Ｂで作成した内部ボリュームＩＶＯＬと、そのとき作成しようとするホストボリュームＨＶＯＬとのマッピングを完了すると、ステップＳ１３で更新したフロントエンドターゲットテーブル３３の更新前後の差分と、ステップＳ１４で更新したフロントエンドテーブルボリュームテーブル３１及びグローバルプールボリュームテーブル３５の更新前後の差分とをそれぞれ差分データとして、バックエンドネットワーク６を介してクラスタ７内の自ノード以外の各ストレージノード３にそれぞれ送信する（Ｓ１５）。
【０１４１】
かくして、この差分データを受信した各ストレージノード３のフロントエンド部２０は、当該差分データに基づいて、自ノード内のフロントエンドターゲットテーブル３３と、フロントエンドテーブルボリュームテーブル３１及びグローバルプールボリュームテーブル３５とを、それぞれマスタクラスタ制御部２５が配置されたストレージノード３内のフロントエンドターゲットテーブル３３や、フロントエンドテーブルボリュームテーブル３１及びグローバルプールボリュームテーブル３５と同様に更新する（Ｓ１６）。
【０１４２】
また、これらのフロントエンド部２０は、このようにして自ノード内のフロントエンドターゲットテーブル３３や、フロントエンドテーブルボリュームテーブル３１及びグローバルプールボリュームテーブル３５を更新し終えると、その旨の完了通知をバックエンドネットワーク６を介してマスタクラスタ制御部２５に送信する（Ｓ１７）。
【０１４３】
そしてマスタクラスタ制御部２５は、クラスタ７内の自ノード以外のすべてのストレージノード３のフロントエンド部２０から上述したステップＳ１７の完了通知が与えられると、要求されたターゲットＴＧを作成し終えた旨の完了通知を管理ノード４に送信する（Ｓ１８）。
【０１４４】
他方、管理ノード４は、かかるステップＳ１８の完了通知がマスタクラスタ制御部２５から与えられると、ステップＳ１２〜ステップＳ１８の処理により作成したターゲットＴＧと、そのターゲットＴＧに対応付けられたホストボリュームＨＶＯＬへのアクセスを許可するコンピュートノード２（イニシエータ）とを対応付けるべき旨のイニシエータ登録要求をマスタクラスタ制御部２５に送信する（Ｓ１９）。なお、このイニシエータ登録要求には、かかるコンピュートノード１９のノード名と、かかるターゲットＴＧのターゲット名とが含まれる。
【０１４５】
そしてマスタクラスタ制御部２５は、このイニシエータ登録要求を受信すると、ステップＳ１３で作成したターゲットＴＧにアクセス可能なイニシエータとしてイニシエータ登録要求において指定されたコンピュートノード２を登録するよう自ノード内のフロントエンド部２０に指示を与える。かくして、この指示を受けたフロントエンド部２０は、かかるターゲットＴＧにアクセス可能なイニシエータとして、かかるコンピュートノード２を登録する（Ｓ２０）。具体的に、かかるフロントエンド部２０は、自ノードのメモリ１１（図２）に格納されているフロントエンドターゲットテーブル３３のイニシエータ欄３３Ｆ（図８）に、イニシエータ登録要求において指定されたコンピュートノード２のノード名を格納する。
【０１４６】
そしてマスタクラスタ部２５は、以上のようにしてかかるターゲットＴＧにアクセス可能なイニシエータとしてかかるコンピュートノード２を登録し終えると、そのフロントエンドターゲットテーブル３３の更新前後の差分を差分データとして、バックエンドネットワーク６を介してクラスタ７内の自ノード以外の各ストレージノード３にそれぞれ送信する（Ｓ２１）。
【０１４７】
かくして、この差分データを受信した各ストレージノード３のフロントエンド部２０は、当該差分データに基づいて、自ノード内のフロントエンドターゲットテーブル３３をマスタクラスタ制御部２５が配置されたストレージノード３内のフロントエンドターゲットテーブル３３と同様に更新する（Ｓ２２）。
【０１４８】
また、これらのフロントエンド部２０は、このようにして自ノード内のフロントエンドターゲットテーブル３３を更新し終えると、その旨の完了通知をバックエンドネットワーク６を介してマスタクラスタ制御部２５に送信する（Ｓ２３）。
【０１４９】
そしてマスタクラスタ制御部２５は、クラスタ７内の自ノード以外のすべてのストレージノード３のフロントエンド部２０から上述したステップＳ２３の完了通知が与えられると、要求されたイニシエータの登録が完了した旨の完了通知を管理ノード４に送信する（Ｓ２４）。以上により、この一連の処理が完了する。
【０１５０】
（４）ストレージノードの障害発生時や増設時における処理の流れ
次に、本情報処理システム１において、クラスタ７を構成するいずれかのストレージノード３に障害が発生した場合や、クラスタ７にストレージノード３が増設された場合における処理の流れについて説明する。
【０１５１】
（４−１）ストレージノード障害発生時の処理の流れ
図１３は、クラスタ７を構成するいずれかのストレージノード３に障害が発生した場合に、クラスタ７内で実行される一連の処理の流れを示す。
【０１５２】
本実施の形態の場合、マスタクラスタ制御部２５は、各ストレージノード３に対する定期的なヘルスチェックを実行している。そして、マスタクラスタ制御部２５は、かかるヘルスチェックの際にいずれかのストレージノード３に障害が発生したことを検出すると、障害が発生したストレージノード（以下、これを障害ストレージノードと呼ぶ）３に配置されていたアクティブストレージ制御部２１と同じストレージ制御部ペア２８を構成していた他方のストレージ制御部（パッシブストレージ制御部）２１を特定する（Ｓ３０）。
【０１５３】
具体的に、マスタクラスタ制御部２５は、ストレージ制御部ペアテーブル３０（図５）を参照して、当該ストレージ制御部ペアテーブル３０の各行のうち、アクティブ欄３０Ｂ（図５）のノード番号欄３０ＢＡ（図５）に障害ストレージノード３のノード番号が格納されている行を特定し、その行におけるパッシブ欄３０Ｃ（図５）のストレージ制御部番号欄３０ＣＢ（図５）に格納されているストレージ制御部番号と、当該パッシブ欄３０Ｃのノード番号欄３０ＣＡ（図５）に格納されているノード番号とを取得する。
【０１５４】
続いて、マスタクラスタ制御部２５は、ステップＳ３０で特定したストレージ制御部２１の状態をアクティブモードに切り替える（Ｓ３１）。具体的に、マスタクラスタ制御部２５は、ストレージ制御部ペアテーブル３０の各行のうち、ステップＳ３０で特定した行のアクティブ欄３０Ｂ（図５）のノード番号欄３０ＢＡ（図５）及びストレージ制御部番号欄３０ＢＢ（図５）に、ステップＳ３０で取得したノード番号及びストレージ制御部番号のうちの対応する番号をそれぞれ格納する。またマスタクラスタ制御部２５は、このようにして更新したストレージ制御部ペアテーブル３０の更新前後の差分の差分データをクラスタ７内の自ノード以外の各ストレージノード３にそれぞれ送信することにより、これら各ストレージノード３内のストレージ制御部ペアテーブル３０を同様に更新させる。
【０１５５】
さらにマスタクラスタ制御部２５は、ステップＳ３０で取得したノード番号が付与されたストレージノード３内の上述のようにして取得したストレージ制御部番号が付与されたストレージ制御部２１を起動し（Ｓ３２）、そのストレージ制御部２１に必要な障害時処理を実行させる（Ｓ３３）。
【０１５６】
一方、マスタクラスタ制御部２５は、ステップＳ３０で特定したノード番号のストレージノード３に実装されたフロントエンド部２０に対しても、ステップＳ３１の障害時処理実行指示と同様の障害時処理実行指示をバックエンドネットワーク６を介して送信する（Ｓ３４）。
【０１５７】
そして、この障害時処理実行指示を受信したフロントエンド部２０は、ステップＳ３２でアクティブモードに切り替えられたストレージ制御部２１と対応付けられていた内部ボリュームＩＶＯＬの対応先を、ステップＳ３２でアクティブモードに切り替えられたストレージ制御部２１に切り替えるための障害時処理を実行する（Ｓ３５）。
【０１５８】
具体的に、かかるフロントエンド部２０は、自ノード内のフロントエンドテーブルボリュームテーブル３１について、まず、それまで自ストレージ制御部２１とストレージ制御部ペア２８を構成していたアクティブストレージ制御部２１のストレージ制御部番号がストレージ制御部番号欄３１Ｆ（図６）に格納されている行を特定する。
【０１５９】
そしてフロントエンド部２０は、その行のアクティブ側ノード特定情報欄３１Ｅ（図６）に格納されているノード特定情報を自ノードのノード特定情報に更新すると共に、その行のストレージ制御部番号欄３１Ｆに格納されているストレージ制御部番号をステップＳ３１でアクティブモードに切り替えたストレージ制御部２１のストレージ制御部番号に更新する。また、かかるフロントエンド部２０は、その行の仮想ポート番号欄３１Ｇ（図６）に格納されているポート番号を、ステップＳ３１でアクティブモードに切り替えたストレージ制御部２１の仮想ポートＶＰＴ（図４）であって、対応するホストボリュームＨＶＯＬと対応付けられた仮想ポートＶＰＴのポート番号に更新する。
【０１６０】
また、かかるフロントエンド部２０は、自ノード内のマッピングテーブル３２（図７）について、まず、それまで自ストレージ制御部２１とストレージ制御部ペア２８を構成していたアクティブストレージ制御部２１のストレージ制御部番号がストレージ制御部番号欄３２Ｅ（図６）に格納されている行を特定する。そしてフロントエンド部２０は、その行のノード番号欄３２Ｄ（図６）に格納されているノード番号を自ノードのノード番号に書き換える。また、かかるフロントエンド部２０は、その行のストレージ制御部番号欄３２Ｅに格納されているストレージ制御部番号を、ステップＳ３１でアクティブモードに切り替えたストレージ制御部２１のストレージ制御部番号に書き換える。
【０１６１】
さらに、かかるフロントエンド部２０は、フロントエンドターゲットテーブル３３（図８）について、障害ストレージノード３内に定義された対応する内部ボリュームＩＶＯＬと対応付けられたホストボリュームＨＶＯＬのボリューム番号がホストボリューム番号リスト欄３３Ｅに格納されている行を特定する。そしてフロントエンド部２０は、その行のターゲットＩＤ欄３３Ｄに格納されているＩＰアドレスを、自ノード内の物理ポートＰＰＴ（図４）であって、かかるホストボリュームＨＶＯＬと対応付けられた物理ポートＰＰＴのＩＰアドレスに書き換える。
【０１６２】
そしてマスタクラスタ制御部２５は、このようにして更新されたフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びフロントエンドターゲットテーブル３３の更新前後の差分の差分データをクラスタ７内の自ノード以外の各ストレージノード３のフロントエンド部２０にそれぞれ送信することにより、これら各ストレージノード３内のフロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びフロントエンドターゲットテーブル３３を同様に更新させる。
【０１６３】
なお、図１３には示されていないが、マスタクラスタ制御部２５は、ステップＳ３１及びステップＳ３２の処理と併せて、障害ストレージノード３に配置されていたアクティブストレージ制御部２１に代えて、ステップＳ３２でアクティブモードに切り替えたストレージ制御部２１と共に新たにストレージ制御部ペア２８を構成すべきストレージ制御部２１を選択する。
【０１６４】
このようなストレージ制御部２１は、クラスタ７内の障害ストレージノード３以外のいずれかのストレージノード３に配置されたそのとき未使用のストレージ制御部２１（いずれのストレージ制御部２１ともストレージ制御部ペア２８に設定されていないストレージ制御部２１）のうち、ステップＳ３２でアクティブモードに切り替えられたストレージ制御部２１が配置されたストレージノード３以外のストレージノード３に配置されたストレージ制御部２１の中から選択される。
【０１６５】
そしてマスタクラスタ制御部２５は、このようにして選択したストレージ制御部２１と、ステップＳ３２でアクティブモードに切り替えたストレージ制御部２１とを新たなストレージ制御部ペア２８に設定すべくストレージ制御部ペアテーブル３０（図５）及びフロントエンドテーブルボリュームテーブル３１（図６）を更新する。
【０１６６】
具体的に、マスタクラスタ制御部２５は、ストレージ制御部ペアテーブル３０については、アクティブ欄３０Ｂ（図５）のノード番号欄３０ＢＡ（図５）及びストレージ制御部番号欄３０ＢＢ（図５）にそれぞれステップＳ３０で取得したノード番号及びストレージ制御部番号がそれぞれ格納されている行を特定し、その行のパッシブ欄３０Ｃ（図５）のストレージ制御部番号欄３０ＣＢ（図５）に格納されたストレージ制御部番号を、上述のようにして選択したストレージ制御部２１のストレージ制御部番号に書き換えると共に、そのパッシブ欄３０Ｃのノード番号欄３０ＣＡ（図５）に格納されたノード番号を、そのストレージ制御部２１が配置されたストレージノード３のノード番号に書き換える。
【０１６７】
またマスタクラスタ制御部２５は、フロントエンドテーブルボリュームテーブル３１については、自ノード内のフロントエンド部２０を介して、対応する行の第１及び第２のノード特定情報欄３１Ｃ，３１Ｄのいずれかに格納されている障害ストレージノード３のノード番号を、上述のようにして選択したストレージ制御部２１が配置されたストレージノード３のノード番号に書き換える。
【０１６８】
そして、マスタクラスタ制御部２５は、このようにして更新されたストレージ制御部ペアテーブル３０及びフロントエンドテーブルボリュームテーブル３１の更新前後の差分の差分データをクラスタ７内の自ノード以外のストレージノード３にそれぞれ送信することにより、これらストレージノード３内のストレージ制御部ペアテーブル３０及びフロントエンドテーブルボリュームテーブル３１を同様に更新させる。
【０１６９】
（４−２）ストレージノード増設時の処理の流れ
一方、図１４は、クラスタ７内にストレージノード３が増設された場合にそのクラスタ７内で実行される一連の処理の流れを示す。
【０１７０】
クラスタ７にストレージノード３を増設した場合、システム管理者は、これを管理ノード４を介してマスタクラスタ制御部２５に通知する。そして、この通知を受信したマスタクラスタ制御部２５は、ストレージノード３間の負荷を分散させるため、増設されたストレージノード（以下、これを増設ストレージノードと呼ぶ）３に移動させるべきストレージ制御部（以下、これを移動対象ストレージ制御部と呼ぶ）２１を選択する（Ｓ４０）。
【０１７１】
例えば、マスタクラスタ制御部２４は、クラスタ７内のストレージ制御部２１のうち、最も負荷が高いストレージノード３に配置されたアクティブストレージ制御部２１を上述の移動対象ストレージ制御部２１として選択する。
【０１７２】
そしてマスタクラスタ制御部２５は、この後、増設ストレージノード３に配置されたそのとき未使用のいずれか１つのストレージ制御部２１と、ステップＳ４０で選択した移動対象ストレージ制御部２１とを入れ替えるための処理を実行する（Ｓ４１〜Ｓ４５）。
【０１７３】
具体的に、マスタクラスタ制御部２５は、まず、増設ストレージノード３のステップＳ４０で選択したストレージ制御部（以下、これを選択ストレージ制御部と呼ぶ）２１を起動し（Ｓ４１）、その選択ストレージ制御部２１に、移動対象ストレージ制御部２１がそれまで実行していた処理を引き継がせるための所定の増設時処理を実行させる（Ｓ４２）。
【０１７４】
またマスタクラスタ制御部２５は、当該移動対象ストレージ制御部２１がそれまで実行していた処理を選択ストレージ制御部２１に引き継がせるための所定の増設時処理を移動対象ストレージ制御部２１に実行させる（Ｓ４１，Ｓ４２）。なお、この増設時処理には、ストレージ制御部ペアテーブル３０（図５）、フロントエンドテーブルボリュームテーブル３１（図６）、マッピングテーブル３２（図７）、フロントエンドターゲットテーブル３３（図８）及びグローバルプールボリュームテーブル３５（図１０）の各データを増設ストレージノード３のフロントエンド部２０に転送する処理も含まれる。
【０１７５】
この後、マスタクラスタ制御部２５は、自ノード内のフロントエンド部２０に対して、移動対象ストレージ制御部２１と対応付けられていた内部ボリュームＩＶＯＬの対応先を選択ストレージ制御部２１に切り替えることを含めて、増設ストレージノード３における選択ストレージ制御部２１の環境を、移動対象ストレージ制御部２１が配置されたストレージノード３における当該移動対象ストレージ制御部２１の環境と同じに設定するよう指示を与える（Ｓ４３）。
【０１７６】
かくしてこの指示を受けたフロントエンド部２０は、自ノードのメモリ１１（図２）に格納されているストレージ制御部ペアテーブル３０（図５）、フロントエンドテーブルボリュームテーブル３１（図６）、マッピングテーブル３２（図７）、フロントエンドターゲットテーブル３３（図８）及びグローバルプールボリュームテーブル３５（図１０）を、必要に応じてそのように更新する（Ｓ４４）。
【０１７７】
具体的に、かかるフロントエンド部２０は、ストレージ制御部ペアテーブル３０については、まず、移動対象ストレージ制御部２１のストレージ制御部番号がアクティブ欄３０Ｂ（図５）のストレージ制御部番号欄３０ＢＢ（図５）に格納されている行を特定する。そして、かかるフロントエンド部２０は、その行のアクティブ欄３０Ｂのノード番号欄３０ＢＡ（図５）に格納されているノード番号を、増設ストレージノード３のノード番号に書き換えると共に、当該アクティブ欄３０Ｂのストレージ制御部番号欄３０ＢＢ（図５）に格納されているストレージ制御部番号を、選択ストレージ制御部２１のストレージ制御部番号に書き換える。
【０１７８】
またフロントエンド部２０は、フロントエンドテーブルボリュームテーブル３１については、まず、移動対象ストレージ制御部２１のストレージ制御部番号がストレージ制御部番号欄３１Ｆ（図６）に格納されている行を特定する。
【０１７９】
そしてフロントエンド部２０は、その行の第１及び第２のノード特定情報欄３１Ｃ，３１Ｄ（図６）のいずれかに格納されている、移動対象ストレージ制御部２１が配置されたストレージノード３のノード特定情報と、アクティブ側ノード特定情報欄３１Ｅ（図６）に格納されている当該ストレージノード３のノード特定情報とを、それぞれ増設ストレージノード３のノード特定情報に書き換える。
【０１８０】
またフロントエンド部２０は、その行のストレージ制御部番号欄３１Ｆに格納されているストレージ制御部番号を、選択ストレージ制御部２１のストレージ制御部番号に書き換える。さらにフロントエンド部２０は、その行の仮想ポート番号欄３１Ｇ（図６）に格納されている仮想ポート番号を、それまで移動対象ストレージ制御部２１が対応付けられていた対応するホストボリュームＨＶＯＬに対応させて選択ストレージ制御部２１に定義した仮想ポートＶＰＴ（図４）の仮想ポート番号に書き換える。
【０１８１】
さらに、かかるフロントエンド部２０は、マッピングテーブル３２については、まず、移動対象ストレージ制御部２１のストレージ制御部番号がストレージ制御部番号欄３２Ｅ（図７）に格納されている行を特定する。そしてフロントエンド部２０は、その行のそのストレージ制御部番号欄３２Ｅに格納されているストレージ制御部番号を、選択ストレージ制御部番号に書き換える。またフロントエンド部２０は、その行のノード番号欄３２Ｄ（図７）に格納されているノード番号を、増設ストレージノード３のノード番号に書き換える。
【０１８２】
さらに、かかるフロントエンド部２０は、フロントエンドターゲットテーブル３３については、まず、ホストボリューム番号リスト欄３３Ｅ（図８）に対応するホストボリュームＨＶＯＬのボリューム番号が格納されている行を特定する。なお、かかるボリューム番号は、例えば、上述のようにしてマッピングテーブル３２で特定した行のホストボリューム番号欄３２Ａ格納されたボリューム番号として取得することができる。
【０１８３】
そしてフロントエンド部２０は、その行のターゲットＩＰ欄３３Ｄに格納されているＩＰアドレスを、増設ストレージノード３においてかかる対応するホストボリュームＨＶＯＬと対応付ける物理ポートＰＰＴ（図４）のストレージサービスネットワーク５（図１）上のＩＰアドレスに書き換える。
【０１８４】
そして、マスタクラスタ制御部２５は、このようにしてストレージ制御部ペアテーブル３０、フロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びフロントエンドターゲットテーブル３３の更新が完了すると、更新されたこれらストレージ制御部ペアテーブル３０、フロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２）及びフロントエンドターゲットテーブル３３の更新前後の差分の差分データをクラスタ７内の自ノード以外のストレージノード３にそれぞれ送信することにより、これらストレージ制御部ペアテーブル３０、フロントエンドテーブルボリュームテーブル３１、マッピングテーブル３２及びフロントエンドターゲットテーブル３３を同様に更新させる。
【０１８５】
またマスタクラスタ制御部２５は、選択ストレージ制御部２１にアクセスして、当該選択ストレージ制御部２１が保持するストレージ制御部構成情報テーブル３４の仮想ポート番号欄３４Ａ（図９）及び内部ボリューム番号欄３４Ｂ（図９）に、自ノード内のフロントエンドテーブルボリュームテーブル３１の仮想ポート番号欄３１Ｇ（図６）及び内部ボリューム番号欄３１Ｈ（図６）にそれぞれ格納されている値と同じ値を格納する。
【０１８６】
以上の処理により、増設ストレージノード３における選択ストレージ制御部２１の環境が、移動対象ストレージ制御部２１が配置されたストレージノード３における当該移動対象ストレージ制御部２１の環境と同じに設定される。
【０１８７】
一方、コンピュートノード２は、この後、システム管理者の操作入力に基づいて管理ノード４から与えられる指示に応じて、自ノードからステップＳ４４の増設処理で増設ストレージノード３内に定義された対応するターゲットＴＧまでのパスを設定するパス増設処理を実行する（Ｓ４６）。またコンピュートノード２は、このようにして設定したパスを経由して、増設ストレージノード３のフロントエンド部２０に対してそのターゲットＴＧにログインしたい旨のログイン要求を送信する（Ｓ４７）。
【０１８８】
そして増設ストレージノード３のフロントエンド部２０は、このログイン要求を受信すると、当該ログイン要求に応じたログイン処理を実行し（Ｓ４８）、その処理結果をログイン要求の送信元のコンピュートノード２に送信する（Ｓ４９）。
【０１８９】
（５）本情報処理システムにおけるライト処理及びリード処理の流れ
（５−１）ライト処理の流れ
次に本情報処理システム１におけるライト処理の流れについて説明する。図１５は、コンピュートノード２からクラスタ７を構成するいずれかのストレージノード３に対してライト要求が与えられた場合に当該クラスタ７内で実行されるライト処理の流れを示す。以下においては、クラスタ７内でライト要求を受信したストレージノード３を、適宜、「ライト要求受信ノード」と呼ぶものとする。
【０１９０】
なお、ライト要求では、上述のようにライト先のホストボリュームＨＶＯＬのボリューム番号と、そのホストボリュームＨＶＯＬにおけるライト先の記憶領域の先頭アドレスと、ライト対象のデータ（以下、これをライトデータと呼ぶ）のデータ長とが指定される。
【０１９１】
そして、「ライト要求受信ノード」の第１の通信装置１３は、かかるライト要求を受信すると（Ｓ５０）、受信したライト要求を自ノード内のフロントエンド部２０に転送する（Ｓ５１）。またフロントエンド部２０は、転送されてきたライト要求に基づいて、必要な容量のバッファ領域をメモリ１１（図２）上に確保し（Ｓ５２）、その後、バッファ領域を確保し終えた旨の完了通知を第１の通信装置１３を介してライト要求の送信元のコンピュートノード２に送信する（Ｓ５３，Ｓ５４）。
【０１９２】
また「ライト要求受信ノード」の第１の通信装置１３は、この後、かかるコンピュートノード２からライトデータが転送されてくると（Ｓ５５）、このライトデータを自ノード内のフロントエンド部２０に転送する（Ｓ５６）。
【０１９３】
このライトデータを受領したフロントエンド部２０は、受領したライトデータをステップＳ５２で確保したバッファ領域に格納し（Ｓ５７）、この後、そのライト要求に従ったライト処理が自ノードにおいて実行されるべき処理であるか否かを判定する（Ｓ５８）。
【０１９４】
この判断は、マッピングテーブル３２（図７）の各行のうち、ライト要求においてライト先として指定されたホストボリュームＨＶＯＬに対応する行のノード番号欄３２Ｄ（図７）を参照して行われる。具体的に、フロントエンド部２０は、かかるノード番号欄３２Ｄに格納されたノード番号が自ノードのノード番号であった場合には、そのライト要求に従ったライト処理が自ノードにおいて実行されるべき処理であると判定する。またフロントエンド部２０は、かかるノード番号欄３２Ｄに格納されたノード番号が他のストレージノード３のノード番号であった場合には、そのライト要求に基づくライト処理が当該他のストレージノード３において実行されるべき処理であると判定する。
【０１９５】
そしてフロントエンド部２０は、ステップＳ５８において、そのライト要求に応じたライト処理が自ノードにおいて実行されるべきと判定した場合には、自ノード内のマッピングテーブル３２におけるライト要求においてライト先として指定されたホストボリュームＨＶＯＬに対応する行のストレージ制御部番号欄３２Ｅ（図７）に格納されたストレージ制御部番号を取得し、そのストレージ制御部番号が付与された自ノード内のストレージ制御部（アクティブストレージ制御部）２１にそのライト要求を転送する（Ｓ５９）。なおフロントエンド部２０は、この際、そのライト要求に含まれるライト先のホストボリュームＨＶＯＬのボリューム番号を、当該ホストボリュームＨＶＯＬと対応付けられた内部ボリュームＩＶＯＬのボリューム番号に書き換える。
【０１９６】
また、このライト要求を受領したストレージ制御部２１は、図示しない管理テーブルを参照して、そのライト要求においてライト先として指定された内部ボリュームＩＶＯＬ及び当該内部ボリュームＩＶＯＬ内の記憶領域に対応付けられた論理チャンクＬＣ（図４）及び当該論理チャンクＬＣ内の記憶領域を特定する。そしてストレージ制御部２１は、このようにして特定したライトデータのライト先の論理チャンクＬＣ及び当該論理チャンクＬＣ内の記憶領域を指定したＩ／Ｏコマンドを生成し、これを自ノード内のバックエンド部２３に送信する（Ｓ６０）。
【０１９７】
バックエンド部２３は、このＩ／Ｏコマンドを受領すると、図示しない管理テーブルを参照して、当該Ｉ／Ｏコマンドにおいて指定された論理チャンクＬＣに対応付けた各物理チャンクＰＣ（図４）をそれぞれ提供する記憶装置１２（図２）を特定する。またバックエンド部２３は、特定した記憶装置１２の１つが自ノード内に存在する場合には、その記憶装置１２内の、Ｉ／Ｏコマンドで指定された論理チャンクＬＣ及び当該論理チャンクＬＣ内の記憶領域に対応する物理チャンクＰＣの記憶領域にライトデータを書き込む（Ｓ６１）。そしてバックエンド部２３は、このライトデータの記憶装置１２への書込みが完了すると、その旨のライト完了通知を自ノードのストレージ制御部（アクティブストレージ制御部）２１に送信する（Ｓ６２）。
【０１９８】
またバックエンド部２３は、ステップＳ６１の処理と併せて、かかる論理チャンクＬＣに対応付けた残りの物理チャンクＰＣを提供する記憶装置１２が存在するストレージノード３（以下、適宜、これを「他ノード２」と呼ぶ）内の対応するバックエンド部２３に対して、かかるＩ／Ｏコマンド及びライトデータをバックエンドネットワーク６を介して転送する（Ｓ６３）。この結果、そのストレージノード３（「他ノード２」）においてステップＳ６１と同様のライト処理が実行され（Ｓ６４）、当該ライト処理が完了すると、その旨のライト完了通知がバックエンドネットワーク６を介して「ライト要求受信ノード」のストレージ制御部２１に与えられる。
【０１９９】
「ライト要求受信ノード」のトレージ制御部２１は、自ノードのバックエンド部２３からのかかるライト完了通知と、必要なすべての他のストレージノード３のバックエンド部２３からのかかるライト完了通知とを受領すると、要求されたライト処理が完了した旨の完了通知をフロントエンド部２０に通知する（Ｓ７６）。また、この完了通知を受領したフロントエンド部２０は、ライト要求に応じたライト処理が完了した旨の完了通知を第１の通信装置１３及びストレージサービスネットワーク５を介して当該ライト要求の送信元のコンピュートノード２に送信する（Ｓ７７，Ｓ７８）。以上により、かかるライト要求に応じた一連のライト処理が終了する。
【０２００】
一方、「ライト要求受信ノード」のフロントエンド部２０は、ステップＳ５８の判定において、そのライト要求に応じたライト処理は他のストレージノード３において実行されるべき処理であるとの判定が得られた場合、マッピングテーブル３２（図７）におけるライト要求においてライト先として指定されたホストボリュームＨＶＯＬに対応する行のノード番号欄３２Ｄ（図７）に格納されたノード番号が付与されたストレージノード３（以下、適宜、これを「他ノード１」と呼ぶ）にライト要求を転送する（Ｓ６６）。このライト要求の転送は、バックエンドネットワーク６を介して行われる。
【０２０１】
そして、このライト要求を受信した「他ノード１」のフロントエンド部２０は、受信したライト要求に基づいて、必要な容量のバッファ領域を自ノード内のメモリ１１（図２）上に確保する（Ｓ６７）。
【０２０２】
また、かかるフロントエンド部２０は、この後、自ノード内のメモリ１１に格納されているマッピングテーブル３２を参照して、そのマッピングテーブル３２におけるライト要求においてライト先として指定されたホストボリュームＨＶＯＬに対応する行のストレージ制御部番号欄３２Ｅ（図７）に格納されたストレージ制御部番号を取得し、そのストレージ制御部番号が付与された自ノード内のストレージ制御部（アクティブストレージ制御部）２１にそのライト要求を転送する（Ｓ６８）。この際、フロントエンド部２０は、ステップＳ６７において必要な容量のバッファ領域を確保できたか否かの情報（以下、これをバッファ確保正否情報と呼ぶ）も併せてそのストレージ制御部２１に通知する。
【０２０３】
そして、このライト要求を受領したストレージ制御部８８は、上述のようにこのライト要求と共にフロントエンド部２０から与えられたバッファ確保正否情報に基づいて、バッファ領域を確保できたか否かを判定し（Ｓ６９）、その判定結果を自ノードのフロントエンド部２０に送信する（Ｓ７０）。かくして、この完了通知を受領したフロントエンド部２０は、ステップＳ６７で必要な容量のバッファ領域をメモリ１１上に確保できたか否かの応答を、バックエンドネットワーク６を介して、「ライト要求受信ノード」のフロントエンド部２０に送信する（Ｓ７１）。
【０２０４】
この応答を受領した「ライト要求受信ノード」のフロントエンド部２０は、「他ノード１」のフロントエンド部２０が必要な容量のバッファ領域をメモリ１１上に確保できなかった場合には、その旨のエラー通知を第１の通信装置１３を介してライト要求の送信元のコンピュートノード２に送信し、この一連のライト処理を終了する。
【０２０５】
これに対して、かかる「ライト要求受信ノード」のフロントエンド部２０は、「他ノード１」のフロントエンド部２０が必要な容量のバッファ領域をメモリ１１上に確保できた場合には、バックエンドネットワーク６を介して「他ノード１」にライトデータを転送する（Ｓ７２）。
【０２０６】
また、このライトデータを受信した「他ノード１」のフロントエンド部２０は、受信したライトデータをステップＳ６７で確保したバッファ領域に格納する（Ｓ７３）。この後、「他ノード１」において、ステップＳ５９〜ステップＳ６１、ステップＳ６３〜ステップＳ６４について上述したデータライト処理と同様のデータライト処理が実行され（Ｓ７４）、このデータライト処理が完了すると、その旨のライト完了通知が「他ノード１」のフロントエンド部２０からバックエンドネットワーク６を介して「ライト要求受信ノード」のストレージ制御部２１に送信される（Ｓ７５）。
【０２０７】
かくして、このとき「ライト要求受信ノード」のストレージ制御部２１は、「他ノード１」のバックエンド部２３からのライト完了通知と、必要なすべての他のストレージノード３のバックエンド部２３からのライト完了通知とを受領すると、要求されたライト処理が完了した旨の完了通知を自ノードのフロントエンド部２０に通知する（Ｓ７６）。また、この完了通知を受領したフロントエンド部２０は、ライト要求に応じたライト処理が完了した旨の完了通知を第１の通信装置１３及びストレージサービスネットワーク５を介して当該ライト要求の送信元のコンピュートノード２に送信する（Ｓ７７，Ｓ７８）。以上により、かかるライト要求に応じた一連のライト処理が終了する。
【０２０８】
（５−２）リード処理の流れ
一方、図１６は、コンピュートノード２からクラスタ７を構成するいずれかのストレージノード３に対してリード要求が与えられた場合に当該クラスタ７内で実行されるリード処理の流れを示す。以下においては、クラスタ７内でリード要求を受信したストレージノード３を、適宜、「リード要求受信ノード」と呼ぶものとする。
【０２０９】
なお、リード要求では、リード先のホストボリュームＨＶＯＬのボリューム番号と、そのホストボリュームＨＶＯＬにおけるリード先の記憶領域の先頭アドレスと、リード対象のデータ（以下、これをリードデータと呼ぶ）のデータ長とが指定される。
【０２１０】
そして「リード要求受信ノード」の第１の通信装置１３は、かかるリード要求を受信すると（Ｓ８０）、受信したリード要求を自ノード内のフロントエンド部２０に転送する（Ｓ８１）。またフロントエンド部２０は、転送されてきたリード要求を解析して、そのリード要求に従ったリード処理が自ノードにおいて実行されるべき処理であるか否かを判定する（Ｓ８２）。
【０２１１】
この判断は、マッピングテーブル３３（図７）の各行のうち、リード要求においてリード先として指定されたホストボリュームＨＶＯＬに対応する行のノード番号欄３２Ｄ（図７）を参照して行われる。具体的に、フロントエンド部２０は、かかるノード番号欄３２Ｄに格納されたノード番号が自ノードのノード番号であった場合には、そのリード要求に従ったリード処理が自ノードにおいて実行されるべき処理であると判定する。またフロントエンド部２０は、かかるノード番号欄に格納されたノード番号が他のストレージノード３のノード番号であった場合には、そのリード要求に基づくリード処理が当該他のストレージノード３において実行されるべき処理であると判定する。
【０２１２】
そしてフロントエンド部２０は、ステップＳ８２において、そのリード要求に応じたリード処理が自ノードにおいて実行されるべきと判定した場合には、自ノードのメモリ１１（図２）に格納されているマッピングテーブル３２（図７）におけるリード要求においてリード先として指定されたホストボリュームＨＶＯＬに対応する行のストレージ制御部番号欄３２Ｅ（図７）に格納されたストレージ制御部番号を取得し、そのストレージ制御部番号が付与された自ノード内のストレージ制御部（アクティブストレージ制御部）２１にそのリード要求を転送する（Ｓ８３）。なおフロントエンド部２０は、この際、そのリード要求に含まれるリード先のホストボリュームＨＶＯＬのボリューム番号を、当該ホストボリュームＨＶＯＬと対応付けられた内部ボリュームＩＶＯＬのボリューム番号に書き換える。
【０２１３】
また、このリード要求を受領したストレージ制御部２１は、図示しない管理テーブルを参照して、そのリード要求においてリード先として指定された内部ボリュームＩＶＯＬ及び当該内部ボリュームＩＶＯＬ内の記憶領域に対応付けられた論理チャンクＬＣ及び当該論理チャンクＬＣ内の記憶領域を特定する。そしてストレージ制御部２１は、このようにして特定したリード先の論理チャンクＬＣ及び当該論理チャンクＬＣ内の記憶領域を指定したＩ／Ｏコマンドを生成し、これを自ノード内のバックエンド部２３に送信する（Ｓ８４）。
【０２１４】
バックエンド部２３は、このＩ／Ｏコマンドを受領すると、図示しない管理テーブルを参照して、当該Ｉ／Ｏコマンドにおいて指定された論理チャンクＬＣに対応付けた各物理チャンクＰＣの中から１つの物理チャンクＰＣを提供する記憶装置１２を特定する。ここでは、選択された物理チャンクＰＣが、「リード要求受信ノード」に搭載された記憶装置１２により提供されているものとする。そしてバックエンド部２３は、特定した記憶装置１２内の、Ｉ／Ｏコマンドで指定された論理チャンクＬＣ及び当該論理チャンクＬＣ内の記憶領域に対応する物理チャンクＰＣの記憶領域に格納されているデータを読み出す（Ｓ８５）。そしてバックエンド部２３は、読み出したデータ（リードデータ）を自ノードのストレージ制御部２１に送信する（Ｓ８６）。
【０２１５】
このリードデータを受信したストレージ制御部２１は、このリードデータを自ノードのフロントエンド部２０に転送する（Ｓ８７）。また、このリードデータを受領したフロントエンド部２０は、そのリードデータを、第１の通信装置１３を及びストレージサービスネットワーク５を介してリード要求の送信元のコンピュートノード２に送信する（Ｓ９３，Ｓ９４）。以上により、かかるリード要求に応じた一連のリード処理が終了する。
【０２１６】
一方、「リード要求受信ノード」のフロントエンド部２０は、ステップＳ８２の判定において、そのリード要求に応じたリード処理は他のストレージノード３において実行されるべき処理であるとの判定が得られた場合、マッピングテーブル３２（図７）におけるリード要求においてリード先として指定されたホストボリュームＨＶＯＬに対応する行のノード番号欄３２Ｄ（図７）に格納されたノード番号が付与されたストレージノード３（以下、適宜、これを「他ノード」と呼ぶ）にそのリード要求を転送する（Ｓ８８）。このリード要求の転送は、バックエンドネットワーク６を介して行われる。
【０２１７】
そして、このリード要求を受信した「他ノード」のフロントエンド部２０は、受信したリード要求の内容を解析する（Ｓ８９）。また、かかるフロントエンド部２０は、自ノードのメモリ１１に格納されているマッピングテーブル３２を参照して、そのマッピングテーブル３２におけるリード要求においてリード先として指定されたホストボリュームＨＶＯＬに対応する行のストレージ制御部番号欄３２Ｅ（図７）に格納されたストレージ制御部番号を取得し、そのストレージ制御部番号が付与された自ノード内のストレージ制御部（アクティブストレージ制御部）２１にそのリード要求を転送する（Ｓ９０）。この際、そのリード要求に含まれるリード先のホストボリュームＨＶＯＬのボリューム番号を、当該ホストボリュームＨＶＯＬと対応付けられた内部ボリュームＩＶＯＬのボリューム番号に書き換える。
【０２１８】
この後、その「他ノード」において、ステップＳ８４〜ステップＳ８６と同様のデータリード処理が実行され（Ｓ９１）、このデータリード処理により対応する記憶装置１２から読み出されたデータ（リードデータ）が「他ノード」のフロントエンド部２０からバックエンドネットワーク６を介して「リード要求受信ノード」のフロントエンド部２０に送信される（Ｓ９２）。
【０２１９】
そして、このリードデータを受信した「リード要求受信ノード」のフロントエンド部２０は、このリードデータを第１の通信装置１３及びストレージサービスネットワーク６を介してリード要求の送信元のコンピュートノード２に転送する（Ｓ９３，Ｓ９４）。以上により、かかるリード要求に応じた一連のリード処理が終了する。
【０２２０】
（６）本実施の形態の効果
以上のように本実施の形態の情報処理システム１では、各ストレージノード３にそれぞれ配置されたストレージ制御部２１と対応付けて内部ボリュームＩＶＯＬを作成すると共に、作成した内部ボリュームＩＶＯＬを、データをリード／ライトするための記憶領域としてコンピュートノード２に提供されるホストボリューム２と対応付ける。
【０２２１】
また本情報処理システム１では、コンピュートノード２からのＩ／Ｏ要求がストレージノード３に与えられた場合に、そのストレージノード３のフロントエンド部２０が、そのＩ／Ｏ要求においてリード／ライト先として指定されたホストボリュームＨＶＯＬと対応付けられた内部ボリュームＩＶＯＬが配置されたストレージノード３を特定し、特定したストレージノード３が自ノードであった場合には、当該Ｉ／Ｏ要求を自ノード内の対応するストレージ制御部２１に転送し、特定したストレージノード３が他のストレージノード３であった場合には、そのＩ／Ｏ要求をそのストレージノード３に転送する。
【０２２２】
従って、本情報処理システム１によれば、ストレージノード３のスケールアウトの有無に関わりなく、コンピュートノード２はＩ／Ｏ要求の発行先のストレージノード３を意識することなく所望するデータにアクセスすることができる。よって、本実施の形態によれば、拡張性の高い本情報処理システム１を実現できる。
【０２２３】
また本情報処理システム１によれば、スケールアウトに関連する処理はすべてフロントエンド部２０が担当し、ストレージ制御部２１は自ノード内で完結する処理のみを実行するため、ストレージ制御部２１として既存のストレージ装置で利用していた制御ソフトウェアを転用することもできる。
【０２２４】
（７）他の実施の形態
なお上述の実施の形態においては、内部ボリュームＩＶＯＬとホストボリュームＨＶＯＬとを１対１で対応付けるようにした場合について述べたが、本発明はこれに限らず、１つの内部ボリュームＩＶＯＬに対して複数のホストボリュームＨＶＯＬを対応付けるようにしてもよい。
【０２２５】
また上述の実施の形態においては、本発明を図１のように構成された情報処理システム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の情報処理システムに広く適用することができる。
【０２２６】
さらに上述の実施の形態においては、各ストレージノード２内のフロントエンド部２０、ストレージ制御部２１及びバックエンド部２３等をソフトウェア構成とするようにした場合について述べたが、本発明はこれに限らず、これらをハードウェア構成とするようにしてもよい。
【０２２７】
さらに上述の実施の形態においては、各ストレージノード３内にクラスタ制御部２５をそれぞれ配置し、その中の１つのクラスタ制御部２５をマスタクラスタ制御部２５に選出して、当該マスタクラスタ制御部２５に上述した各種処理を実行させるようにした場合について述べたが、本発明はこれに限らず、各ストレージノード３内にクラスタ制御部２５を配置せず、かかるマスタクラスタ制御部２５としての機能を有するサーバ装置等をストレージノード３とは別個に設けるようにしてもよい。
【０２２８】
また、サーバ上でハイパーバイザが動作し、ハイパーバイザ上で１又は複数の仮想計算機が稼働し、その仮想計算機上で、図３に示す各種プログラムが動作してもよい。すなわち、各種プログラム（制御ソフト２０、冗長化部２２、クラスタ制御部２３）は、物理計算機のハードウェア上で動作することもあれば、仮想計算機上で動作しても良い。同様に、コンピュートノード２は、仮想計算機上で動作するアプリケーションプログラム（ホストプログラム）であってもよいし、物理的なホスト計算機（ホストコンピュータ）であっても良い。情報処理システム１が複数のサーバを有するとき、サーバの一部が異なるサイトにあっても良い。また、情報処理システム１のサーバの一部又は全部がクラウド上にあって、ネットワークを介して、ユーザにサービスが提供されてもよい。
【０２２９】
各種プログラム（制御ソフト２０、冗長化部２２、クラスタ制御部２３）が動作する仮想計算機と、ホストプログラムが動作する仮想計算機とが、同一のサーバ（ノード）上にある構成（ハイパーコンバージドインフラストラクチャ）であっても、ネットワークを介して接続する異なるサーバ上にある構成であってもよい。
【産業上の利用可能性】
【０２３０】
本発明は、複数のストレージノードを含む種々の構成のシステムに広く適用することができる。
【符号の説明】
【０２３１】
１……情報処理システム、２……コンピュートノード、３……ストレージノード、４……管理ノード、５……ストレージサービスネットワーク、６……バックエンドネットワーク、７……クラスタ、１０……ＣＰＵ、１２……記憶装置、２０……フロントエンド部、２１……ストレージ制御部、２２……容量制御部、２３……バックエンド部、２５……クラスタ制御部、２８……ストレージ制御部ペア、３０……ストレージ制御部ペアテーブル、３１……フロントエンドテーブルボリュームテーブル、３２……マッピングテーブル、３３……フロントエンドターゲットテーブル、３４……ストレージ制御部構成情報管理テーブル、３５……グローバルプールボリュームテーブル、ＧＶＯＬ……グローバルプールボリューム、ＨＶＯＬ……ホストボリューム、ＩＶＯＬ……内部ボリューム、ＬＣ……論理チャンク、ＰＣ……物理チャンク、ＰＰＴ……物理ポート、ＴＧ……ターゲット、ＶＰＴ……仮想ポート。
【図１】
2020191100.tif 000003
【図２】
2020191100.tif 000004
【図３】
2020191100.tif 000005
【図４】
2020191100.tif 000006
【図５】
2020191100.tif 000007
【図６】
2020191100.tif 000008
【図７】
2020191100.tif 000009
【図８】
2020191100.tif 000010
【図９】
2020191100.tif 000011
【図１０】
2020191100.tif 000012
【図１１】
2020191100.tif 000013
【図１２】
2020191100.tif 000014
【図１３】
2020191100.tif 000015
【図１４】
2020191100.tif 000016
【図１５】
2020191100.tif 000017
【図１６】
2020191100.tif 000018