(57)【要約】【課題】冗長化された情報処理システムを極力停止させることなく継続して稼働させる。【解決手段】プロセッサと、メモリと、記憶装置と、を有する複数のストレージノードと、前記複数のストレージノードを接続するネットワークを有する情報処理システムであって、少なくとも一つのストレージノードの前記プロセッサは、前記情報処理システムの構成情報を取得し、前記情報処理システムに発生した第１の障害にかかる第１の障害情報を取得し、前記構成情報と前記第１の障害情報とに基づいて、さらに第２の障害が発生した場合の前記情報処理システムの可用性レベルを算出し、前記可用性レベルに基づいて制御を行う。【選択図】図１
2020021277.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、メモリと、記憶装置と、を有する複数のストレージノードと、
前記複数のストレージノードを接続するネットワークを有する情報処理システムであって、
少なくとも一つのストレージノードの前記プロセッサは、
前記情報処理システムの構成情報を取得し、
前記情報処理システムに発生した第１の障害にかかる第１の障害情報を取得し、
前記構成情報と前記第１の障害情報とに基づいて、さらに第２の障害が発生した場合の前記情報処理システムの可用性レベルを算出し、
前記可用性レベルに基づいて制御を行うことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記プロセッサは、前記第１の障害情報に対する前記情報処理システムの構成のリビルド時間と、前記第２の障害が発生する障害発生確率と、を用いて、前記可用性レベルを算出することを特徴とする情報処理システム。
【請求項３】
請求項２に記載の情報処理システムであって、
前記プロセッサは、前記第１の障害が発生してリビルドを行っている間に、前記第２の障害が発生する障害発生確率を計算することで、前記可用性レベルを算出することを特徴とする情報処理システム。
【請求項４】
請求項１に記載の情報処理システムであって、
前記プロセッサは、
前記記憶装置に対する読み書きを制御する第１の制御部と、
他のノードと連携してストレージノードのクラスタ構成を行うとともに、前記可用性レベルを算出する第２の制御部と、
を有することを特徴とする情報処理システム。
【請求項５】
請求項３に記載の情報処理システムであって、
前記リビルド時間には、前記第１の障害が発生したストレージノードが格納しているデータを、他のストレージノード内に再配置する時間を含む
ことを特徴とする情報処理システム。
【請求項６】
請求項５に記載の情報処理システムであって、
前記リビルド時間には、前記データの再配置を行うストレージノードを増設する時間を含む
ことを特徴とする情報処理システム。
【請求項７】
請求項２に記載の情報処理システムであって、
障害が連鎖する前記ストレージノードのグループを障害グループとして設定し、前記可用性レベルの算出に用いる障害発生確率では、障害発生時には前記障害グループ内の複数のストレージノードに同時期に障害が発生することを特徴とする情報処理システム。
【請求項８】
請求項２に記載の情報処理システムであって、
前記可用性レベルは、前記第２の障害が発生する障害発生確率と、前記第２の障害が発生した場合の前記情報処理システムの稼働継続性とに基づいて算出されることを特徴とする情報処理システム。
【請求項９】
請求項８において、
前記稼働継続性は、所定の冗長度を有すること、または所定のI/O性能有すること、を条件とすることを特徴とする情報処理システム。
【請求項１０】
請求項１において、
前記可用性レベルに基づいて、保守作業の要否を報知することを特徴とする情報処理システム。
【請求項１１】
プロセッサと、メモリと、記憶装置と、を有する複数のストレージノードと、前記複数のストレージノードを接続するネットワークを有する情報処理システムの管理方法であって、
少なくとも一つのストレージノードの前記プロセッサは、
前記情報処理システムの構成情報を取得し、
前記情報処理システムに発生した第１の障害にかかる第１の障害情報を取得し、
前記構成情報と前記第１の障害情報とに基づいて、さらに第２の障害が発生した場合の前記情報処理システムの可用性レベルを算出し、
前記可用性レベルに基づいて制御を行うことを特徴とする情報処理システムの管理方法。
【請求項１２】
請求項１１に記載の情報処理システムの管理方法であって、
前記プロセッサは、前記第１の障害情報に対する前記情報処理システムの構成のリビルド時間と、前記第２の障害が発生する障害発生確率と、を用いて、前記可用性レベルを算出することを特徴とする情報処理システムの管理方法。
【請求項１３】
請求項１２に記載の情報処理システムの管理方法であって、
前記プロセッサは、前記第１の障害が発生してリビルドを行っている間に、前記第２の障害が発生する障害発生確率を計算することで、前記可用性レベルを算出することを特徴とする情報処理システムの管理方法。
【請求項１４】
プロセッサと、メモリと、記憶装置と、を有するストレージノードを制御させるためのプログラムであって、
前記ストレージノードの構成情報を取得するステップと、
前記ストレージノードに発生した第１の障害にかかる第１の障害情報を取得するステップと、
前記構成情報と前記第１の障害情報とに基づいて、さらに第２の障害が発生した場合の前記ストレージノードの可用性レベルを算出するステップと、
前記可用性レベルに基づいて制御を行うするステップと、
を前記ストレージノードに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＤＳ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｓｔｏｒａｇｅ）が実装された複数のストレージノードを含む情報処理システムに関する。
【背景技術】
【０００２】
従来型のシングルノードであるストレージシステムでは、障害が発生すると障害が発生したことを示す障害情報をストレージ管理者へ通知する。ストレージ管理者は前記通知を受信すると即座に保守員へ指示を出す。保守員は前記指示を受け付けると、前記障害情報を基に保守作業を開始する。
【０００３】
障害が発生するごとに保守作業を実施している。一方、サーバクラスタ技術では、全サーバ台数のうち故障台数が閾値を越えるまではフェイルオーバを繰り返しながらシステムの運用を継続し、前記サーバ故障台数が閾値を超えた時点でシステム全体を一時停止してサーバ交換等の保守作業を実施している。
【０００４】
ＳＤＳ等の情報処理システムでは、可用性及び信頼性向上のため異なるサーバ筐体にデータの複製を格納する冗長化構成での運用を行っている。なお、以下において、ＳＤＳとは、ストレージ機能を有するソフトウェアを汎用のサーバ装置に実装することにより構築されるストレージ装置を指す。
【０００５】
複数のストレージデバイスを利用するストレージシステムとしては、例えば、物理デバイスを仮想容量プールとして管理するシンプロビジョニングが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−０１５９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
１０００台規模の複数ノードから構成されるＳＤＳシステムにおいて、ＳＤＳシステム内の１ノードに障害が発生する度に保守作業を行うと、保守作業の頻度が高くなり稼働時間に対する保守時間も長くなるため、現実的なシステム運用ができない。
【０００８】
また、ＳＤＳシステムの場合、ＳＤＳシステム内でデータを冗長に保持する運用をしており、この冗長化構成が保たれているか否かによってＳＤＳシステムの運用を継続するか否かを判断できる。しかしながら、障害が発生したノードの台数を監視しても、冗長化構成が維持されているか否かを容易に判定することができない、という問題があった。
【０００９】
本発明の目的は、冗長化された情報処理システムを極力停止させることなく継続して稼働させることである。
【課題を解決するための手段】
【００１０】
本発明は、プロセッサと、メモリと、記憶装置と、を有する複数のストレージノードと、前記複数のストレージノードを接続するネットワークを有する情報処理システムであって、少なくとも一つのストレージノードの前記プロセッサは、前記情報処理システムの構成情報を取得し、前記情報処理システムに発生した第１の障害にかかる第１の障害情報を取得し、前記構成情報と前記第１の障害情報とに基づいて、さらに第２の障害が発生した場合の前記情報処理システムの可用性レベルを算出し、前記可用性レベルに基づいて制御を行う。
【発明の効果】
【００１１】
したがって、本発明は、情報処理システムの構成と障害情報から、データの冗長度も考慮した将来の可用性レベルを算出し、情報処理システムがすぐに保守作業をする必要性があるかを通知することができる。前記通知に基づいて本当に必要な時だけ情報処理システムを停止させて保守作業を行い、それ以外は極力情報処理システムを停止することなくＩ／Ｏ処理を継続できる。これにより、システム運用の経費（ＯＰＥＸ：Ｏｐｅｒａｔｉｎｇ  Ｅｘｐｅｎｓｅ）を低減できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１を示し、本発明の概要を示すフローチャートである。
【図２】本発明の実施例１を示し、情報処理システムの全体構成を示すブロック図である。
【図３】本発明の実施例１を示し、ストレージノードの概略構成を示すブロック図である。
【図４】本発明の実施例１を示し、ストレージノードのメモリに格納されたプログラムやデータの一例を示すブロック図である。
【図５】本発明の実施例１を示し、ストレージノード管理表の構成の一例を示す図である。
【図６】本発明の実施例１を示し、システム状態管理表の構成の一例を示す図表である。
【図７】本発明の実施例１を示し、冗長化構成の一例を示すブロック図である。
【図８】本発明の実施例１を示し、冗長化回復処理が完了した後の構成の一例を示すブロック図である。
【図９】本発明の実施例１を示し、情報処理システムの障害に伴う状態遷移図の例を示す。
【図１０】本発明の実施例１を示し、情報処理システムの障害に伴う状態遷移図の例を示す。
【図１１】本発明の実施例１を示し、パラメータ設定値表の構成の一例を示す図である。
【図１２】本発明の実施例１を示し、ストレージノードに障害が発生した場合の処理の一例を示すフローチャートである。
【図１３】本発明の実施例１を示し、保守作業処理の一例を示すフローチャートである。
【図１４】本発明の実施例２を示し、情報処理システムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例１】
【００１４】
以下、図面を参照して、本発明の実施例１を詳述する。以下の記載及び図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
本発明が実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。本発明は、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は複数でも単数でも構わない。
【００１６】
以下の説明では、「テーブル」、「表」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ＸＸテーブル」、「ＸＸリスト」等を「ＸＸ情報」と呼ぶことがある。各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ＩＤ」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
【００１７】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたＩＤを使用することがある。
【００１８】
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、少なくとも１以上のプロセッサ（例えばＣＰＵ）によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又はインターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主体がプロセッサとされてもよい。
【００１９】
同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノード、ストレージシステム、ストレージ装置、サーバ、管理計算機、クライアント、又は、ホストであってもよい。プログラムを実行して行う処理の主体（例えばプロセッサ）は、処理の一部又は全部を行うハードウェア回路を含んでもよい。例えば、プログラムを実行して行う処理の主体は、暗号化及び復号化、又は圧縮及び伸張を実行するハードウェア回路を含んでもよい。プロセッサは、プログラムに従って処理することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
【００２０】
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ（例えばＣＰＵ）と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。
【００２１】
図１は、本発明の実施例１を示し、本発明の概要を示すフローチャートである。ストレージノードのクラスタ制御部は、情報処理システム１の「可用性レベル」を算出する（Ｓ１０）。可用性レベルとは、ある状態から、次に障害が発生して情報処理システムが停止となる状態へ遷移する確率を算出した値で示される。
【００２２】
ストレージノードは、前記可用性レベルと予め設定した閾値とを比較する（Ｓ２０）。ストレージノードは、前記可用性レベルが前記閾値より大きい場合にはシステムの運用を継続し（Ｓ３０）、前記閾値以下の場合には保守作業を要求する通知（アラート）を出力する（Ｓ４０）。なお、ストレージノードは、管理者が使用する端末（図示省略）などに通知を出力すればよい。
【００２３】
ストレージノードが、管理者にアラートをあげるということは、何らかの保守作業を要求することを意味する。ストレージノードは、可用性レベルが一定以上の場合、即ちシステムの可用性が高くすぐにシステム停止とならないと判定した場合は、障害が発生してすぐのタイミングで保守作業を行わなくても良いと判断できる。
【００２４】
保守作業はストレージノードを増減するために一旦システムを停止させる必要があるため極力行いたくない。可用性レベルの算出方法は後述する。
【００２５】
本処理のフローチャートは、イベントが発生したタイミング及び定期的にストレージノードで起動される。イベントはストレージノード３に障害が発生したときや、ストレージノード３の増減など情報処理システム内のコンポーネントの状態が変化した時に発行される。
【００２６】
なお、上記の処理をストレージノードのクラスタ制御部で実施する例を示したが、これに限定されるものではなく、管理計算機が実施する構成としても良い。
【００２７】
＜１．本実施例１による情報処理システムの構成＞
図２は、本実施の形態による情報処理システム１の構成を示す図である。この情報処理システム１は、複数のコンピュートノード２−Ａ〜２−Ｃと、複数のストレージノード３−Ａ〜３−Ｃから構成される。なお、コンピュートノード２−Ａ〜２−Ｃは、個々を特定しない場合には「−」以降を省略した符号「２」を用いる。その他の構成要素の符号についても同様である。
【００２８】
各コンピュートノード２及び各ストレージノード３間は、例えばファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）、イーサネット（登録商標）、ＩｎｆｉｎｉＢａｎｄ又は無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などから構成されるストレージサービスネットワーク４を介して接続される。
【００２９】
各ストレージノード３間は、ＬＡＮ、イーサネット（登録商標）、ＩｎｆｉｎｉＢａｎｄ又は無線ＬＡＮなどから構成されるバックエンドネットワーク５を介して接続されている。
【００３０】
ただし、ストレージサービスネットワーク４及びバックエンドネットワーク５が同一のネットワークにより構成されていてもよく、また各コンピュートノード２及び各ストレージノード３がストレージサービスネットワーク４やバックエンドネットワーク５以外の管理用ネットワークに接続されていてもよい。
【００３１】
コンピュートノード２は、ストレージノード３に対してホスト（上位装置）として機能する汎用のコンピュータ装置である。なお、コンピュートノード２は仮想マシンのような仮想的なコンピュータ装置であってもよい。コンピュートノード２は、ユーザの操作や実装されたアプリケーションプログラムからの要求に応じて、ストレージサービスネットワーク４を介してストレージノード３にデータを読み書きする。
【００３２】
ストレージノード３は、コンピュートノード２に対してデータを読み書きするための記憶領域を提供するサーバ装置である。ストレージノード３は、仮想マシンであってもよい。またストレージノード３がコンピュートノード２と同一の物理ノードに同居する構成であってもよい。
【００３３】
本実施例の場合、各ストレージノード３は、図２に示すように、他の１又は複数のストレージノード３と共にクラスタ６と呼ぶグループにまとめられて管理される。図２の例では、クラスタ６が１つのみ設定された場合について例示しているが、情報処理システム１内に複数のクラスタ６を設けるようにしてもよい。クラスタ６は、分散ストレージシステムと呼ばれてもよい。
【００３４】
図３は、ストレージノードの概略構成を示すブロック図である。ストレージノード３は、図３に示すように、１以上のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０と、１以上のメモリ１１及び複数の記憶装置１２と、第１及び第２の通信装置１３、１４とを含む。ストレージノード３は、ＣＰＵ１０及び記憶装置１２と、第１及び第２の通信装置１３、１４とが内部ネットワーク１５を介して接続された汎用の物理サーバ装置から構成される。
【００３５】
ＣＰＵ１０は、ストレージノード３全体の制御を司るプロセッサである。またメモリ１１は、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））やＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの揮発性の半導体メモリや、不揮発性の半導体メモリから構成され、ＣＰＵ１０のワークメモリとして各種プログラムや必要なデータを一時的に保持するために利用される。メモリ１１に格納されたプログラムを、少なくとも１以上のＣＰＵ１０が実行することにより、後述のようなストレージノード３全体としての各種処理が実行される。
【００３６】
記憶装置１２は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）又はＳＣＭ（Ｓｔｏｒａｇｅ  Ｃｌａｓｓ  Ｍｅｍｏｒｙ）などの大容量の不揮発性の記憶装置から構成され、ＮＶＭｅ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）やＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ））、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ））などのインタフェースで接続され、コンピュートノード２からのリード要求やライト要求に応じてデータを読み書きするための記憶領域を提供する。
【００３７】
第１の通信装置１３は、ストレージノード３がストレージサービスネットワーク４を介してコンピュートノード２と通信を行うためのインタフェースであり、例えばファイバーチャネルカードやイーサネット（登録商標）カード、ＩｎｆｉｎｉＢａｎｄカード、無線ＬＡＮカードなどから構成される。第１の通信装置１３は、コンピュートノード２との通信時におけるプロトコル制御を行う。
【００３８】
第２の通信装置１４は、ストレージノード３がバックエンドネットワーク５を介して他のストレージノード３と通信を行うためのインタフェースであり、例えばファイバーチャネルカードやイーサネット（登録商標）カード、ＩｎｆｉｎｉＢａｎｄカード、無線ＬＡＮカード、ＰＣＩｅホストアダプタなどから構成される。第２の通信装置１４は、他のストレージノード３との通信時におけるプロトコル制御を行う。
【００３９】
なお本実施例１の場合、各ストレージノード３は、図２に示すように、他の１又は複数のストレージノード３と共にクラスタ６と呼ぶグループにまとめられて管理される。図２の例では、クラスタ６が１つのみ設定された場合について例示しているが、情報処理システム１内に複数のクラスタ６を設けるようにしてもよい。
【００４０】
＜２．各ストレージノードのメモリに格納されたプログラム及び情報＞
次に、本情報処理システム１における各種処理の一例について説明する。まず、かかる各種機能に関連して各ストレージノード３のメモリ１１（図３）に格納されるプログラム及び情報について、図４〜５を参照して説明する。
【００４１】
図４は、ストレージノード３のメモリ１１に格納されたプログラムやデータの一例を示すブロック図である。図４に示すように、各ストレージノード３のメモリ１１には、複数の制御ソフトウェア（以下、これを制御ソフトと呼ぶ）２０及びこれら制御ソフト（第１の制御部）２０にそれぞれ対応させて用意された複数の構成情報２１と、クラスタ制御部（第２の制御部）２３、ストレージノード管理表２４がそれぞれ格納される。
【００４２】
制御ソフト２０は、ＳＤＳ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｓｔｏｒａｇｅ）のストレージコントローラとして機能するソフトウェアである。制御ソフト２０は、コンピュートノード２からのリード要求やライト要求を受け付けて、対応する記憶装置１２（図３）のデータを読み書きする機能を有する。制御ソフト２０は、ストレージ制御部や、ストレージ制御プログラムと呼ばれてもよい。
【００４３】
また、サーバ上でハイパーバイザが稼働し、ハイパーバイザ上で１または複数の仮想計算機が稼働し、当該仮想計算機上で、図４に示す各種プログラムが稼働してもよい。すなわち、各種プログラム（制御ソフト２０、クラスタ制御部２３）は、物理計算機のハードウェア上で稼働することもあれば、仮想計算機上で稼働しても良い。
【００４４】
同様に、コンピュートノード２は、仮想計算機上で稼働するアプリケーションプログラム（ホストプログラム）であってもよいし、物理的なホスト計算機（ホストコンピュータ）であっても良い。情報処理システム１が複数のサーバを有するとき、サーバの一部が異なるサイトにあっても良い。また、情報処理システム１のサーバの一部または全部がクラウド上にあって、ネットワークを介して、ユーザにサービスが提供されても良い。
【００４５】
各種プログラム（制御ソフト２０、クラスタ制御部２３）が稼働する仮想計算機と、ホストプログラムが稼働する仮想計算機とが、同一のサーバ（ノード）上にある構成（ハイパーコンバージドインフラストラクチャ）であっても、ネットワークを介して接続する異なるサーバ上にある構成であってもよい。
【００４６】
システム状態管理表２５は、クラスタ制御部２３内に格納し、本情報処理システム１を構成する各ストレージノード３の状態から情報処理システム全体の状態を管理する。
【００４７】
本実施例による冗長化構成の一例を図７に示す。ストレージノード３に実装された各制御ソフト２０は、それぞれ互いに異なる他のストレージノード３にそれぞれ実装された１又は複数の他の制御ソフト２０と冗長化グループ２６を構成する。
【００４８】
なお、図７では２つの制御ソフト２０により冗長化グループ２６が構成される場合を示しており、以下においても、２つの制御ソフト２０により冗長化グループ２６が構成されるものとして説明を進めるが、３つ以上の制御ソフト２０により冗長化グループ２６が構成されてもよい。
【００４９】
冗長化グループ２６では、少なくとも１つの制御ソフト２０がコンピュートノード２からのリード要求やライト要求を受け付けることができる状態（現用系の状態であり、以下、これをアクティブモードと呼ぶ）に設定され、残りの制御ソフト２０がコンピュートノード２からのリード要求やライト要求を受け付けない状態（待機系の状態であり、以下、これをパッシブモードと呼ぶ）に設定される。
【００５０】
従って、２つの制御ソフト２０から構成される冗長化グループ２６は、当該２つの制御ソフト２０の双方がアクティブモードに設定された構成（以下、これをアクティブ−アクティブ構成と呼ぶ）と、一方の制御ソフト２０がアクティブモードに設定され、他方の制御ソフト２０が、バックアップとしてパッシブモードに設定された構成（以下、これをアクティブ−パッシブ構成と呼ぶ）とのうちのいずれかの構成となる。
【００５１】
そしてアクティブ−パッシブ構成が採用された冗長化グループ２６では、アクティブモードに設定された制御ソフト２０又は当該制御ソフト２０が稼働するストレージノード３に障害が発生した場合や、アクティブモードのストレージノード３がクラスタ６から撤去（ストレージノード３が削減）された場合に、それまでパッシブモードに設定されていた制御ソフト２０の状態がアクティブモードに切り替えられる。
【００５２】
これにより、アクティブモードに設定された制御ソフト２０が稼働し得なくなった場合に、当該制御ソフト２０が実行していたＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理を、それまでパッシブモードに設定されていた制御ソフト２０により引き継ぐことができる（フェイルオーバ機能）。
【００５３】
このようなフェイルオーバ機能を実現するため、同じ冗長化グループ２６に属する制御ソフト２０は、常に同一内容の構成情報２１を保持している。
【００５４】
そして、冗長化グループ２６を構成するアクティブモードの制御ソフト２０の構成情報２１が更新された場合、更新前後の構成情報２１の差分が差分データとして、当該冗長化グループ２６を構成する他方の制御ソフト２０に転送され、この差分データに基づいて当該他方の制御ソフト２０により当該制御ソフト２０が保持する構成情報２１が更新される。これにより冗長化グループ２６を構成する各制御ソフト２０がそれぞれ保持する構成情報２１が常に同期した状態に維持される。
【００５５】
このように冗長化グループ２６を構成する２つの制御ソフト２０同士が常に同じ内容の構成情報２１を保持する。これにより、アクティブモードに設定された制御ソフト２０や、当該制御ソフト２０が配置されたストレージノード３に障害が発生し又は当該ストレージノード３が撤去された場合にも、それまで当該制御ソフト２０が実行していた処理を、当該制御ソフト２０と同じ冗長化グループ２６内の他の制御ソフト２０が直ちに引き継ぐことが可能となる。
【００５６】
クラスタ制御部２３は、コンピュートノード２から受信したライト要求又はリード要求からなるＩ／Ｏ要求を、バックエンドネットワーク５を介して、対応するストレージノード３のクラスタ制御部２３に転送したり、他のクラスタ制御部２３から転送されてきたかかるＩ／Ｏ要求を、対応する冗長化グループ２６の制御ソフト２０に引き渡す機能を有するプログラムである。クラスタ制御部２３は、クラスタ制御ソフトウェアや、クラスタ制御プログラムと呼ばれてもよい。
【００５７】
このような一連の処理を実行するための手段として、クラスタ制御部２３は、クラスタ６内に存在する各制御ソフト２０が、それぞれどのストレージノード３に配置され、どの冗長化グループ２６に所属し、アクティブモード及びパッシブモードのいずれの状態に設定されているかといった情報を共有しており、これらの情報を制御情報テーブル（図示省略）に格納して管理している。
【００５８】
一方、構成情報２１は、上述のように制御ソフト２０が容量の仮想化機能や、階層記憶制御機能や、Ｓｎａｐｓｈｏｔ機能や、リモートコピー機能や、重複排除機能、及び、圧縮機能などの各種機能を実現するために必要な情報から構成される。
【００５９】
ストレージノード管理表２４は、同じクラスタ６内の各ストレージノード３の負荷状況等を管理するために利用されるテーブルである。図５は、ストレージノード管理表２４の構成の一例を示す図である。
【００６０】
図５に示すように、ストレージノード管理表２４は、ノードＩＤ欄２４Ａ、状態欄２４Ｂ、容量欄２４Ｃ、使用容量欄２４Ｄ、ＣＰＵ負荷欄２４Ｅ、メモリ量欄２４Ｆ、使用メモリ量欄２４Ｇ、通信帯域欄２４Ｈ、使用通信帯域欄２４Ｉ及び障害グループＩＤ欄２４Ｊからひとつのエントリが構成される。ストレージノード管理表２４では、１つの行（エントリ）が１つのストレージノード３に対応する。
【００６１】
そしてノードＩＤ欄２４Ａには、当該クラスタ６を構成する各ストレージノード３のノードＩＤがそれぞれ格納され、状態欄２４Ｂには、対応するストレージノード３の現在の状態（「正常」又は「異常（又は障害）」）が格納される。
【００６２】
また、容量欄２４Ｃには、対応するストレージノード３の全ての記憶装置１２の容量が格納され、使用容量欄２４Ｄには、対応するストレージノード３における現在の記憶装置１２の使用容量が格納される。
【００６３】
さらにＣＰＵ負荷欄２４Ｅには、対応するストレージノード３におけるＣＰＵ１０（図３）の現在の使用率が格納され、メモリ量欄２４Ｆには、当該ストレージノード３におけるメモリ１１（図３）の容量が格納され、使用メモリ量欄２４Ｇには、対応するストレージノード３における現在のメモリ１１の使用量が格納される。
【００６４】
さらに通信帯域欄２４Ｈには、対応するストレージノード３が使用可能なバックエンドネットワーク５の通信帯域の大きさが格納され、使用通信帯域欄２４Ｉには、当該ストレージノード３が他のストレージノード３との通信のために現在使用しているバックエンドネットワーク５の帯域量が格納される。
【００６５】
さらに障害グループＩＤ欄２４Ｊには、対応するストレージノード３が属する障害グループ７（図７）のグループＩＤが格納される。ここで、障害グループ７とは、後述するように、同一の電源８を共用（電力の供給を受ける）するなど、当該電源８等に障害が発生した場合に、これに起因する同様の障害が発生するストレージノード３のグループをいう。
【００６６】
このストレージノード管理表２４に格納される情報は、同一クラスタ６を構成するすべてのストレージノード３のクラスタ制御部２３により共有される情報である。このように同一クラスタ６内で、各ストレージノード３のクラスタ制御部２３により同一の情報を共有するための手段として、クラスタ６を構成する各ストレージノード３にそれぞれ搭載されたクラスタ制御部２３の中から所定の方法により１つのクラスタ制御部２３が代表クラスタ制御部２３として選定される。
【００６７】
そして代表クラスタ制御部２３は、定期的に他のストレージノード３のクラスタ制御部２３から必要な情報を収集し、収集した情報に基づいて自己が管理するストレージノード管理表２４を更新する。
【００６８】
また、代表クラスタ制御部２３は、これら収集した情報を当該クラスタ６内の各ストレージノード３のクラスタ制御部２３に転送することにより、これらクラスタ制御部２３に当該クラスタ制御部２３がそれぞれ管理するストレージノード管理表２４を最新の状態に更新させる。
【００６９】
ただし、各ストレージノード３のクラスタ制御部２３が、定期的に必要な情報を同じクラスタ６内の他のすべてのストレージノード３のクラスタ制御部２３にそれぞれ送信し、この情報に基づいて各ストレージノード３のクラスタ制御部２３が、それぞれ自ノード内のストレージノード管理表２４を更新するようにしてもよい。
【００７０】
図７においては、障害グループ７（７−Ａ〜７−Ｄ）の一例も示す。ストレージノードＡとストレージノードＡ１とストレージノードＡ２は同一の電源８−Ａを共有するストレージノードグループである。このように同一の電源８（８−Ａ〜８−Ｄ）等を共用し、当該電源８等に障害が発生した場合に、これに起因する同様の障害が発生したストレージノード３のグループを障害グループ７とする。ストレージノードＢ、ストレージノードＣ、ストレージノードＤについても同様に障害グループ７がある。
【００７１】
図６は、システム状態管理表２５の構成の一例を示す図表である。システム状態管理表２５は、本情報処理システム１を構成する各ストレージノード３の状態に基づいて情報処理システム全体の状態を管理するために利用されるテーブルである。
【００７２】
システム状態管理表２５は、図６に示すように、状態欄２５Ａと、初期稼働ストレージノード数欄２５Ｂと、稼働ストレージノード数欄２５Ｃと、正常ストレージノード数欄２５Ｄ、及び障害ストレージノード数２５Ｅからひとつのエントリが構成される。システム状態管理表２５は、クラスタ制御部２３内に格納される。
【００７３】
そして状態欄２５Ａには、本情報処理システム１の状態が格納される。例えば、システム起動時に情報処理システム１内の稼働すべきストレージノード３が全て正常な状態で稼働している状態を「正常」とし、情報処理システム１内のストレージノード３の中で障害ストレージノード３がある状態を「ｘノード障害発生中」とし、障害ストレージノードに格納されたデータを別のデータへ再度複製し冗長化構成を修正した状態を「冗長化構成」とし、データロストした状態または冗長化構成不可な状態を「データロスト」とする。
【００７４】
初期稼働ストレージノード数欄２５Ｂには、システム起動時に正常に稼働していたストレージノード数が格納される。稼働ストレージノード数欄２５Ｃには、現在の状態において稼働しているストレージノード数が格納される。正常ストレージノード数欄２５Ｃには、稼働ストレージノードのうち正常に稼働しているノード数が格納される。障害ストレージノード数２５Ｄには、稼働ストレージノードのうち障害状態のノード数が格納される。
【００７５】
＜３．ストレージノード正常時の処理＞
本情報処理システム１において、通常時にコンピュートノード２からクラスタ６内のいずれかのストレージノード３にライト要求が与えられた場合の処理の一例を図７に示す。
【００７６】
この図７では、「ストレージノードＡ」〜「ストレージノードＤ」はそれぞれストレージノード３を示し、「制御ソフトＡ」〜「制御ソフトＨ」はそれぞれ制御ソフト２０を示している。
【００７７】
そして図７では、「ストレージノードＡ」上で稼働する「制御ソフトＡ」と、「ストレージノードＢ」上で稼働する「制御ソフトＢ」とが冗長化グループ２６−１を構成し、「ストレージノードＢ」上で稼働する「制御ソフトＣ」と、「ストレージノードＣ」上で稼働する「制御ソフトＤ」とが冗長化グループ２６−２を構成し、「ストレージノードＣ」上で稼働する「制御ソフトＥ」と、「ストレージノードＤ」上で稼働する「制御ソフトＦ」とが冗長化グループ２６−３を構成し、「ストレージノードＤ」上で稼働する「制御ソフトＧ」と、「ストレージノードＡ」上で稼働する「制御ソフトＨ」が、同じ冗長化グループ２６−４を構成している例を示している。
【００７８】
また、図７の例では、制御ソフト２０の冗長化により生成される各冗長化グループ２６の構成がアクティブ−パッシブ構成であるものとする。
【００７９】
そして、コンピュートノード２からライト要求がクラスタ６内のいずれかのストレージノード３に与えられると、アクティブモードに設定された制御ソフト２０によりライト処理が実行される。
【００８０】
そして、このようなライト処理が実行されると、当該ライト処理を実行した「制御ソフトＡ」が配置された「ストレージノードＡ」は、かかるライト処理の処理内容に応じて「制御ソフトＡ」が保持する構成情報２１を更新する。「ストレージノードＡ」は、当該構成情報２１の更新前後の差分を表す差分データを同じストレージノード３（「ストレージノードＡ」）内のクラスタ制御部２３から、ライト処理を実行した「制御ソフトＡ」と同一の冗長化グループ２６−１を構成する制御ソフト２０（「制御ソフトＢ」）に送信する。
【００８１】
「ストレージノードＢ」は、この差分データに基づいて、「制御ソフトＢ」が保持する構成情報２１を、「制御ソフトＡ」が保持する構成情報２１と同様に更新して同期させる。
【００８２】
以上により、同じ冗長化グループ２６を構成する２つの制御ソフト２０（「制御ソフトＡ」及び「制御ソフトＢ」）がそれぞれ保持する２つの構成情報２１が同じ内容に同期される。
【００８３】
＜４．ストレージノード障害発生時の処理＞
ＳＤＳシステムである情報処理システム１は、情報処理システム１内のストレージノード３に障害が発生した場合、冗長化構成を保ちつつ極力システムを停止せずに運用を継続して行きたい。
【００８４】
但し、あるストレージノード３に障害が発生し、データの冗長化回復を（リビルド）処理完了前に、更に異なるストレージノード３で障害が発生することがありうる。このようなケースでは、データロストまたはデータの冗長化構成を回復できない状態となってシステム停止となる場合がある。
【００８５】
最初にストレージノード３で障害が発生した時、「次に障害が起こって情報処理システムが停止となる可能性」が高ければ、リビルド処理ではなく、情報処理システム１を一時停止してでも障害ストレージノードを正常なストレージノードに交換するなどの保守作業を優先して行うべきである。データロストは起こってはならない状態である。
【００８６】
従って、クラスタ制御部２３は、ある状態から前記「次に障害が起こって情報処理システムが停止となる可能性」を算出し、前記算出した値と予め設定した閾値を比較することで判定し、運用を継続するか、又は、発生中の障害に対する保守作業を即実施すべきかを決定する。
【００８７】
本実施例では、ある状態から「前記次に障害が起こってシステムが停止となる可能性」を可用性レベルと呼ぶ。
【００８８】
＜４．１  ストレージノード障害時の状態遷移＞
図９を用いて、ストレージノード３に障害が発生した場合の情報処理システムの状態の遷移を説明する。
【００８９】
図９に、上記図７の構成例を用いた情報処理システム１に障害が発生して状態が遷移していく様子を状態遷移図に示す。情報処理システム１は、ストレージノード３が４台で構成され、それぞれに格納されたデータを異なるストレージノード３間で二重に保持することでデータを冗長化している。
【００９０】
情報処理システム１の全体の状態は、全てのストレージノード３が正常に稼働している「正常ｎノード構成」状態か、システム内のストレージノードがいくつか障害となってアクセスできない状態の「ｘノード障害発生中」状態か、前記障害ストレージノードを撤去した残りの正常なストレージノードにデータを複製することで冗長化構成を回復した状態である「正常ｎノード構成」状態か、情報処理システム１が停止する「データロスト」状態のいずれかの状態である。図９ではｎ＝４である。
【００９１】
図９の円ではシステムの状態が表現されている。円の中には情報処理システム１の状態と、情報処理システム１内で正常に稼働している正常ストレージノード台数と、障害ストレージノードのデータが冗長化構成を保てなくなるストレージノード台数（以下、未冗長化構成ストレージノード台数）が「正常ストレージノード台数／未冗長化構成ストレージノード台数」で表されている。
【００９２】
未冗長化構成ストレージノード台数は、正常ストレージノードの一部であるため、未冗長化構成ストレージノード台数が正常ストレージノード台数を超えた場合は正常ストレージノード台数とする。正常ストレージノード数が１となった場合は、冗長化構成が構築できないためシステム停止となる。
【００９３】
情報処理システム１を起動した初期状態及び全てのストレージノード３が正常に稼働している状態が正常状態である。正常なストレージノード３は、図示の例では、４台であり、未冗長化構成ストレージノードは０台であるため、「正常４ノード構成」「４／０」と円Ｃ１内に明記される。
【００９４】
ストレージノード３のノード内の個々の障害（例えば、ＣＰＵ、メモリ、ディスク装置のうち一部が故障した）は、ストレージノード３内で各ハードウェアリソースが冗長化されていれば縮退して稼働する。このとき、クラスタ制御部２３には縮退中であることが通知され、詳細な障害情報は通知されなくてもよい。ストレージノード３内の障害はストレージノード３内で解決する方針であるためである。ストレージノード３そのものが稼働できなくなった場合、ストレージノード３に障害が発生したと、他のストレージノード３に認識される。
【００９５】
正常状態からストレージノード３のうち１台に障害が発生したら次の状態へ遷移する（Ｓ１１０）。遷移先の円Ｃ２は「１ノード障害」で、正常ストレージノード台数と未冗長化構成ストレージノード台数は「３／２」となる。これは、ストレージノードが１台障害となると、当該障害ストレージノード内にあるデータを冗長化している先のデータが格納されている可能性があるストレージノードは２台であることを示している。
【００９６】
図７のストレージノードＡに障害が発生した場合、クラスタ制御部２３は、ストレージノードＡに格納された制御ソフトＡが管理するデータと、制御ソフトＨが管理するデータをコピーする。それぞれのコピー先はストレージノードＢとストレージノードＤであり、ストレージノードＢとストレージノードＤが次に障害となった場合はデータロストとなりシステム停止となる。
【００９７】
４台のストレージノード３のうち、１台のストレージノード３に障害が発生した状態では、冗長化されていないデータがあるため、クラスタ制御部２３は、冗長化構成を回復するためのリビルド処理を実施する。リビルド処理を完了した場合、円Ｃ３で示す「正常  ３ノード構成」「３／０」に状態が遷移する（Ｓ１２０）。図８がその一例である。
【００９８】
４台のストレージノード３のうち、１台のストレージノード３に障害が発生した状態からリビルド処理を完了できず、当該ストレージノード３が障害発生のまま、更にストレージノード３の１台に障害が発生した場合で、前回の障害ストレージノードに格納されたデータを冗長化したデータを格納しているストレージノード３の障害であれば、円Ｃ４のデータロストとなりシステム停止となる（Ｓ１５０）。
【００９９】
４台のストレージノード３のうち、１台のストレージノード３に障害が発生した状態（円Ｃ２）「１ノード障害」「３／２」からリビルド処理を完了できず、当該ストレージノード３が障害発生のまま、更にストレージノード３の１台に障害が発生した場合をステップＳ１１２で示す。
【０１００】
ステップＳ１１２では、前回の障害ストレージノードに格納されたデータを冗長化したデータを格納しているストレージノード以外の障害発生であれば、データロストではないためシステムは運用継続可能である。この状態を円Ｃ５の「２ノード障害」「２／２」で表す。
【０１０１】
４台のストレージノード３のうち、２台のストレージノード３に障害が発生している状態で、障害ストレージノードで１台分のリビルド処理を行い、データの冗長化構成を回復させると、円Ｃ６で示す「１ノード障害１ノード冗長化構成回復」「２／２」に遷移する（Ｓ１２４）。
【０１０２】
障害が発生した２台のストレージノード３のうち１台に格納されていたデータの複製処理を、クラスタ制御部２３が実行し１台分のストレージノード３の冗長化構成を回復させる。正常ストレージノード台数が増えたわけではないので、正常ストレージノード台数は２台のまま、未冗長化構成ストレージノード台数は２のままである。さらに障害ストレージノードの残りの１台について冗長化構成を回復させた場合には、円Ｃ７で示す「正常  ２ノード構成」「２／０」へ状態遷移する（Ｓ１２２）。
【０１０３】
４台のストレージノード３のうち、２台のストレージノード３に障害が発生している状態で、更にストレージノード３の１台に障害が発生した場合は、円Ｃ８で示すデータロストによりシステムを停止させる（Ｓ１５２）。
【０１０４】
次に、前記情報処理システム１のストレージノード３が、３台構成となった情報処理システムを考える。
【０１０５】
「正常  ３ノード構成」「３／０」の状態（円Ｃ９）は、正常なストレージノード３のみが３台で稼働している状態である。この状態からストレージノード３のうち１台に障害が発生した場合、「１ノード障害１ノード冗長化構成回復」「２／２」状態（円Ｃ６）へ遷移する（Ｓ１３０）。
【０１０６】
「１ノード障害１ノード冗長化構成回復」「２／２」の状態（円Ｃ６）は、ストレージノード３が３台構成のうちストレージノード３の１台に障害が発生した状態である。又は前記ストレージノード３の２台に障害が発生した状態から遷移した場合もある。障害が発生したストレージノード３内に格納されたデータの冗長化構成を回復させるため、クラスタ制御部２３がリビルド処理を行って完了すると「正常  ２ノード構成」「２／０」（円Ｃ７）へ状態遷移する（Ｓ１２２）。
【０１０７】
前記リビルド処理が完了する前に「１ノード障害１ノード冗長化構成回復」「２／２」の状態（円Ｃ６）からストレージノードの１台に障害が発生すると、データロスト（円Ｃ１０）となり情報処理システム１を停止させる（Ｓ１５６）。
【０１０８】
「正常  ２ノード構成」「２／０」の状態（円Ｃ７）は、正常なストレージノード３のみが２台で稼働している状態である。ストレージノード３のうち１台に障害が発生したら正常なストレージノードが１台となりデータを冗長化構成で保持することができなくなるため、円Ｃ８に遷移してシステムを停止させる（Ｓ１５８）。
【０１０９】
ストレージノード３のリプレースなどで、正常なストレージノード３の台数を増設する場合がある（Ｓ１４０、Ｓ１４２）。増設されたストレージノード３には格納されているデータは無い。このため、クラスタ制御部２３は、各ストレージノード３の負荷を平準化するために、既存のストレージノード３内に格納されたデータを、増設したストレージノード３に再配置する処理を行うことがある。この処理は、例えば、ＣＰＵ負荷、空きメモリ量、バックエンドネットワーク５の空き帯域の大きさに基づいて負荷を平準化する。
【０１１０】
正常な状態から複数台のストレージノード３に同時に障害が発生するケースもあるが、厳密に考えると１ノードずつの障害の発生を経由して次のノードの障害が発生するように状態が遷移していると考えられることから、同時に２つ以上の部位の障害発生または障害回復が起こる確率は０に近似できると考えられる。したがって、本実施例では、正常状態から複数台のストレージノードの障害発生への遷移は無いとする。他の状態からの状態遷移に関しても同様の考え方とする。
【０１１１】
＜４．２  状態遷移確率の計算方法＞
上記図９の状態遷移を踏まえて、図１０に一般化した状態遷移図を示し、各状態から次の状態へ遷移する確率を算出した実施例を示す。
【０１１２】
状態遷移の確率を算出するために必要な情報として、ストレージノード３で障害が発生する確率と、リビルドが完了する確率がある。
【０１１３】
障害が発生する確率（故障率）は、例えば、既存の情報処理システム１をモニタリングした結果からや、シミュレーションした結果等を用いて算出した値を事前に管理者またはユーザが入力して設定する。また、障害ストレージノードを復旧させるリビルド処理が完了する確率に関しては、後述するように、ストレージノード３を増設するための調達時間や、データを移行する処理時間や、データを配置するポリシーなど考慮して算出することができる。
【０１１４】
ストレージノード３が障害となる確率、即ち、故障率λは、説明を簡易化するために、ストレージノード３の全てにおいて同等な値であるとする。ストレージノード３は前述したとおり、ノード内で障害が発生した場合はノード内で個別に対応する。
【０１１５】
従ってストレージノード３によっては縮退運転中の場合もある。縮退運転中のストレージノード３と正常なストレージノード３では、障害が発生する確率が異なり、実際は個々に対応して計算する必要がある。故障率λがストレージノード３によって異なることが発明の本質に依存しないため、ストレージノード３の故障率は同じ値を用いて計算する前提で以下説明する。
【０１１６】
リビルド処理が完了する確率は、リビルドにかかる時間から、単位時間当たりにリビルドが完了する確率として算出される。リビルド処理は障害によって冗長化構成が維持できなくなった障害ストレージノードに格納されたデータを、正常なストレージノード３へコピーして冗長化構成を構築するための処理である。
【０１１７】
本実施例では、二重に冗長化する例で説明する。前記ストレージノード３へのデータコピー処理にかかる時間は、コピーするデータ量を単位時間あたりの処理数（スループット）で割ることで算出される。
【０１１８】
コピーするデータ量は情報処理システム１全体のデータ量を初期のストレージノード数で割った量となる。ここでは各ストレージノード３でデータ量が一定量と仮定する。リビルド処理は対象データを読み出し、書き込む処理であるが、読み出し処理に支配されるため、リードスループットを用いる。
【０１１９】
情報処理システム１のストレージノード数をｎ、ｎ台の中で障害のあるストレージノード数をｊとする。情報処理システム１内で正常に稼働している正常ストレージノード数はｎ−ｊと表せる。初期状態では正常ストレージノード数はｎである。
【０１２０】
情報処理システム１内のストレージノード３に障害が発生したことによって、データロストではないが少なくとも一部のデータの冗長化構成を保てなくなる状態になることがある。
【０１２１】
いずれかのストレージノード３に障害が発生した影響によりデータ冗長化構成が保てない可能性があるストレージノード数（以下、未冗長化構成ストレージノード数）をｍとする。例えば、図７のようにデータを複製する構成の場合、いずれかのストレージノード３に障害が発生すると、前記障害ストレージノードの左右に位置するストレージノード３に対してデータの複製を実施しているため、未冗長化構成ストレージノードは２台となる。
【０１２２】
更に、障害ストレージノードが２台発生すると、未冗長化構成ストレージノードは４台となる（３台であるケースも考えられるが障害の影響が大きい場合に合わせる）。未冗長化構成ストレージノード数は、正常ストレージノード数でもあるため、未冗長化構成ストレージノード数は正常ストレージノード数を越えることはありえない。
【０１２３】
計算上、未冗長化構成ストレージノード数が正常ストレージノード数を超えた場合、未冗長化構成ストレージノード数は正常ストレージノード数と同じとする。
【０１２４】
以上のことから、未冗長化構成ストレージノード数ｍは、
ｍ＝ｍｉｎ（ｊ＊ｒ、ｎ−ｊ）
ｎ:ストレージノード数
ｊ:障害ストレージノード数
ｒ:冗長度
と表せる。ｒは冗長度であり、図７のようにデータの複製を二重に実施する場合はｒ＝２である。
【０１２５】
未冗長化構成ストレージノードで障害が発生した場合は、データロストとなりシステム停止となる。また、情報処理システム１内で正常ストレージノード数が１となった場合は、冗長化構成が構築できないため同様にシステム停止となる。
【０１２６】
個々のストレージノード３の故障率をλとすると、
１台のストレージノードが正常に稼働する確率は（１−λ）
ｎ台のストレージノードが全て同時に正常に稼働する確率は（１−λ）ｎ
【０１２７】
ストレージノード３が正常に稼働する正常な状態及び冗長化構成を回復して正常な状態である「正常」状態から、１つのストレージノードに障害が発生した「１ノード障害」の状態へ遷移する確率は、「全てのノードが正常に稼働している状態」以外と考える。Ｓ２１０の遷移に進む確率は、
１ノード障害の状態へ遷移する確率は１−（１−λ）ｎ
で表すことができる。
【０１２８】
前述のとおり、同時に複数台のストレージノード３に障害が発生した場合も過渡的には１台ずつの障害の間隔が極端に短い場合と同じであると考え状態遷移は１つにまとめる。
【０１２９】
図１０において、障害ストレージノードが発生した場合にステップＳ２１０及びＳ２１２に状態遷移する確率は、搭載されるストレージノード数ｎから障害ストレージ数ｊと冗長化構成ストレージノード数ｍを除いた（ｎ−ｊ−ｍ）台のストレージノード３が全て同時に正常に稼働しない確率に等しいため、
「ノード障害中に更なる１ノードが障害」である状態へ遷移する確率は
１−（１−λ）ｎ−ｊ−ｍ
で表すことができる。
【０１３０】
１台のストレージノード３に障害が発生した状態からは、リビルド処理を開始するか、別のストレージノード３に障害が発生するか、そのままの状態にとどまる。
【０１３１】
リビルド処理は、障害が発生したストレージノード３に格納された全データを他の正常なストレージノード３に複製する処理である。ストレージノード３の単位時間当たりの処理性能スループットをＴとし、情報処理システム１内の全データ量Ｃ、初期状態の正常状態のストレージノード数Ｎ（例えば、ノード数＝６から障害ノードを撤去しても全体のデータ量は変わらないため、Ｎは６）とすると、
Ｎ台のストレージノードのうち１台あたりの冗長化データ量ｃはＣ／Ｎ
リビルド率は、ｃ／Ｔ
で表すことができる。
【０１３２】
リビルド率ｃ／Ｔは、１台のストレージノード３に障害が発生した状態からリビルド処理をして正常状態にするステップＳ２２０の状態遷移が行われる確率である。
【０１３３】
障害ストレージノード数がｊ台の場合、障害ストレージノードから１台ずつ選択し、前記選択した障害ストレージノードに格納されたデータの冗長化構成を回復する（Ｓ２２４）。これを障害ストレージノードの全てに対して行うことで、全てのデータの冗長化構成を回復することができる。
【０１３４】
リビルド処理を実施するには、データを複製して格納する分の正常なストレージノード３側の空き記憶容量が必要である。この空き容量が無ければリビルド処理はできないため、障害ストレージノード数が増えるといずれはリビルド処理が実施できなくなり冗長化構成が保てない構成に行き着く。
【０１３５】
また、前記リビルド処理が完了する前に、次のストレージノード障害が発生した場合は、複数障害となり、この場合も繰り返しているといずれはデータロストまたは冗長化構成が保てない構成に行き着く。
【０１３６】
いずれの場合も、情報処理システム１を停止させて即時に保守作業を行い、極力速くシステムを回復させる必要がある。これは、リビルド処理を行って冗長化が保てさえすれば、障害が発生後即保守作業を実施する必要がないということでもある。次の障害が発生するまでの時間がリビルドにかかる時間より長ければ、次の障害が発生する前にリビルドが終了できるため、同様に即刻保守作業を実施する必要がない。
【０１３７】
クラスタ制御部２３では、ある状態からシステム停止になる状態になるまでの確率を算出し、前記算出した確率と予め設定した閾値を比較し、現在障害が発生してその障害に対する保守作業を即座に行うべきか否かを判定する。
【０１３８】
また、１台のストレージノードに障害が発生した状態のときに、障害ストレージノードに格納されたデータの複製先の２つのストレージノード３のうち少なくともどちらかに障害が発生する状態へ遷移する確率は、２つのストレージノード３が正常に稼働している状態以外と考える。図１０のステップＳ２５０の状態遷移がこれに該当し、この状態はデータロストによるシステム停止状態であるため、
ノード障害からシステム停止状態へ遷移する確率は１−（１−λ）２
これらを一般的に表すとステップＳ２５２に状態遷移する確率は、
ノード障害からシステム停止状態へ遷移する確率は１−（１−λ）ｍ
となる。
【０１３９】
リプレースなどで、正常なストレージノード３の台数を増設する場合がある（Ｓ２４０、Ｓ２４２）。リプレースにかかる時間は、リセットなどストレージノード３を準備する時間、及び、ストレージノード３の負荷を平準化するため既存のストレージノード３内の格納済みデータを、増設したストレージノード３に再配置する処理時間を合わせた時間である。リプレース所要時間をＲとし、障害ストレージノード台数分実施すると考えると、
リプレース率はｊ／Ｒ
で表すことができる。
【０１４０】
上記故障率λ、システム全体の記憶容量Ｃ、スループットＴ、リプレース時間Ｒは予め設定された値とする。例えばクラスタ制御部２３内でパラメータ設定値表３６のような形でデータを保持する（図１１）。
【０１４１】
図１０に示すとおり、状態遷移図が完成する。情報システム全体の状態をストレージノードの状態から表記できる。
【０１４２】
なお、図１１は、パラメータ設定値表３６の一例を示す図である。パラメータ設定値表３６は、故障率３６Ａと、情報処理システム１全体の記憶容量３６Ｂと、スループット３６Ｃと、リプレース時間３６Ｄをひとつのエントリに含む。
【０１４３】
＜５．可用性の判定処理＞
＜５．１  可用性レベルの算出方法（Ｓ１０）＞
上記の状態遷移の確率から、クラスタ制御部２３では、それぞれの状態からデータロスト、即ちシステム停止になる確率を算出する。情報処理システム１の記憶信頼性は、マルコフ連鎖を使用して算出することができる。
【０１４４】
図１０に示したとおり、状態遷移表現のうちデータロストとならずにストレージノード３の障害や回復のイベント発生によって起こりうる状態がＸ個ある。Ｘ個の状態から所定の２つの状態を選択し、当該２つの状態の間をシステム停止とならずに状態遷移できる確率（または時間）は、周知または公知のマルコフ連鎖の式より算出できる。この値を本発明で言う可用性レベルとする。
【０１４５】
マルコフ連鎖によるシステムの信頼性を算出した例として、例えば、参考文献１（研究報告システムソフトウェアとオペレーティング・システム（ＯＳ）、２０１５−ＯＳ−１３３、Ｍａｒｋｏｖ連鎖を用いたデータセンタＨｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙシステムの信頼性評価方法、（ｈｔｔｐｓ：／／ｉｐｓｊ．ｉｘｓｑ．ｎｉｉ．ａｃ．ｊｐ／ｅｊ／？ａｃｔｉｏｎ＝ｐａｇｅｓ＿ｖｉｅｗ＿ｍａｉｎ＆ａｃｔｉｖｅ＿ａｃｔｉｏｎ＝ｒｅｐｏｓｉｔｏｒｙ＿ｖｉｅｗ＿ｍａｉｎ＿ｉｔｅｍ＿ｄｅｔａｉｌ＆ｉｔｅｍ＿ｉｄ＝１４２１２１＆ｉｔｅｍ＿ｎｏ＝１＆ｐａｇｅ＿ｉｄ＝１３＆ｂｌｏｃｋ＿ｉｄ＝８））が知られている。
【０１４６】
＜５．２  可用性レベルの判定（Ｓ２０）＞
クラスタ制御部２３では、上記で算出した可用性レベルに対し、情報処理システム１の運用を継続するか保守作業を行うかを判定する。ある状態から最終的にシステム停止になるまでの確率を算出し、当該確率が閾値以上であれば保守作業を行う。
【０１４７】
クラスタ制御部２３では、可用性レベルが閾値よりも高い、即ち、次に障害が起こってシステム停止する可能性が極めて低いと判定された場合は、現在正常に稼働しているストレージノード３によって運用を継続することを決定する。
【０１４８】
障害が発生したストレージノード３は、冗長化先のストレージノード３内の制御ソフト２０を稼働させることで、上位の装置から要求されたＩ／Ｏ処理を継続する。障害が発生したストレージノード３内に格納されたデータは冗長化されていないため、正常なストレージノード３内にデータの複製を生成するリビルド処理を行う。リビルド処理中もＩ／Ｏ処理は継続される。
【０１４９】
リビルド処理する際は、クラスタ制御部２３が、複製先のストレージノード３に十分な空き領域があることを判定する。
【０１５０】
情報処理システム１に対するユーザの要求は、ダウンタイムが数十分以内または可用性９９．９９９％という指定であることが多く、本発明の方法は現実的である。
【０１５１】
クラスタ制御部２３は、ストレージノード３の障害発生や、ストレージノード３の増減等のイベントが起こったタイミングで、現在の状態を判定してその状態から次の状態になってからシステム停止になる確率、すなわち、可用性レベルを算出し、可用性レベルを閾値で判定して保守作業を即刻実施するか否かを決定する。
【０１５２】
＜５．３  運用継続処理（Ｓ３０）＞
上記可用性レベルの判定により、クラスタ制御部２３は、運用を継続すると決定したら、冗長化グループ２６を構成している制御ソフト２０のパッシブモードをアクティブノードへ切り替える。さらに、データの冗長化回復処理を行う。
【０１５３】
図１２のフローチャートに従って情報処理システム１において、クラスタ６を構成するいずれかのストレージノード３に障害が発生した場合の処理について説明する。なお、本実施例では、図７の「ストレージノードＡ」に障害が発生し、当該「ストレージノードＡ」に実装された「制御ソフトＡ」及び「制御ソフトＨ」がダウンした場合の処理について説明する。
【０１５４】
この場合、かかる障害をいずれかのクラスタ制御部２３が検知し、当該障害を代表クラスタ制御部２３に通知する。
【０１５５】
この通知を受信した「ストレージノードＢ」のクラスタ制御部２３は、それまでパッシブモードに設定されていた「制御ソフトＢ」の状態をアクティブモードに変更する（Ｓ３１０）。これによりそれまで「制御ソフトＡ」が実行していたＩ／Ｏ処理が「制御ソフトＢ」に引き継がれることになる。
【０１５６】
続いて、代表クラスタ制御部２３は、「制御ソフトＢ」の冗長化構成を回復させるため、「制御ソフトＡ」の新たな配置先とすべきストレージノード３をそれぞれ決定し、決定結果を各ストレージノード３内のクラスタ制御部２３にそれぞれ通知する。
【０１５７】
この際、代表クラスタ制御部２３は、「制御ソフトＡ」の新たな配置先として、ストレージノード管理表２４（図５）を参照して、同じ冗長化グループ２６を構成する他の制御ソフト２０が既に配置されているストレージノード３とは異なるストレージノード３であって、冗長化グループ２６を構成する他の制御ソフト２０が既に配置されているストレージノード３とは異なる障害グループに属するストレージノード３を選択する。
【０１５８】
また、代表クラスタ制御部２３は、選択可能なストレージノード３（「制御ソフトＡ」の新たな配置先の候補となり得るストレージノード３）が複数存在する場合には、ストレージノード管理表２４を参照して、ＣＰＵ負荷２４Ｅが低いストレージノード３を「制御ソフトＡ」の新たな配置先としてそれぞれ決定する（Ｓ３１２）。
【０１５９】
前記配置先の候補となり得るストレージノード３とは、ＣＰＵ負荷２４Ｅが低いストレージノード３であり、例えば、候補となり得るストレージノード３の中で、制御ソフト２０を配置してもストレージノード３が有する記憶装置の容量、ＣＰＵ負荷、メモリ量、バックエンドネットワーク５の通信帯域の許容範囲を超えないストレージノード３の中で最もＣＰＵ負荷が低いものを指す。
【０１６０】
本実施例では、「制御ソフトＡ」の新たな配置先が「ストレージノードＣ」、「制御ソフトＨ」の新たな配置先が「ストレージノードＢ」にそれぞれ決定されたものとする。なお、上記「許容範囲」とは、容量及びメモリ量であればストレージノード３が有する記憶装置の容量やメモリ量の範囲内、ＣＰＵ負荷であれば１００％以下、バックエンドネットワーク５であれば使用可能な通信帯域の範囲内、あるいは、これらの容量、ＣＰＵ負荷、メモリ容量及び又はバックエンドネットワーク５の通信帯域について事前にそれぞれ設定された閾値があれば当該閾値の範囲内を指す。
【０１６１】
配置先の通知を受信した「ストレージノードＢ」のクラスタ制御部２３は、自ストレージノード３に対して「制御ソフトＢ」が保持する構成情報２１を「制御ソフトＡ」の新たな配置先である「ストレージノードＣ」にフルコピーするよう指示を与える。
【０１６２】
また、配置先の指示を受領すると、クラスタ制御部２３は、構成情報２１を、バックエンドネットワーク５を介して、「ストレージノードＣ」に転送する（Ｓ３１４）。そして、この構成情報２１を受信した「ストレージノードＣ」のクラスタ制御部２３は、この構成情報２１を「制御ソフトＡ」と対応付けてメモリ１１（図３）に格納する。
【０１６３】
なお、「制御ソフトＢ」が保持する構成情報２１の「ストレージノードＣ」へのフルコピーが完了すると、この後、「ストレージノードＢ」は、「制御ソフトＢ」が保持する構成情報２１が更新されるごとに元の構成情報２１との差分データを「ストレージノードＣ」に転送し始めるようになり、これにより「制御ソフトＢ」が保持する構成情報２１と、「ストレージノードＣ」にコピーされた構成情報２１とが同期して更新されるようになる。
【０１６４】
この後、「ストレージノードＣ」のクラスタ制御部２３は、「ストレージノードＣ」にインストールされている制御ソフト２０を新たな「制御ソフトＡ」としてパッシブモードで起動する。これにより「制御ソフトＢ」の冗長化構成が回復される。
【０１６５】
そして代表クラスタ制御部２３は、この後、上述のような構成変更に応じて自己が管理する制御ソフトが稼働するノードＩＤ情報を更新する（Ｓ３１６）。
【０１６６】
「制御ソフトＨ」に対しても「制御ソフトＡ」と同様の処理を行う。
【０１６７】
以上により「ストレージノードＡ」に障害が発生した場合の一連の処理が終了する。冗長化回復処理が完了した後の構成例を図８に示す。図９の状態遷移では「正常」状態から「正常  ３ノード構成」状態へ遷移するところである。
【０１６８】
＜４．４  保守作業（Ｓ４０）＞
上記可用性レベルの判定により、クラスタ制御部２３で運用が継続できないと判定された場合は、管理者にアラートを通知して保守作業を実行するように指示を出す（図１３）。
【０１６９】
図１３のフローチャートに従って情報処理システム１において、クラスタ６を構成するいずれかのストレージノード３に障害が発生して保守作業を実施する処理について説明する。保守作業中は、情報処理システム１は一時停止し、コンピュートノード２からのＩ／Ｏ要求は受け付けないようにする（Ｓ４１０）。
【０１７０】
保守作業は、まず情報処理システム１から障害ストレージノードを撤去する。クラスタ制御部２３は障害ストレージノードを認識しないように他のクラスタ制御部２３に通知する。クラスタ制御部２３は、ストレージノード管理表２４から撤去予定のストレージノードを削除する（Ｓ４１２）。障害ストレージノードの撤去処理Ｓ４１２に、障害ストレージノードを別の場所へ物理的に移動する処理を含んでもよい。
【０１７１】
正常な新たなストレージノード３を情報処理システムに組み込む（Ｓ４１４）。クラスタ制御部２３は、新たなストレージノード３をストレージノード管理表２４に登録する。クラスタ制御部２３は、新たなストレージノード３を既存の障害グループ７とクラスタ構成（障害グループ）を組む。
【０１７２】
また、クラスタ制御部２３は、冗長化構成がとれていないデータの冗長化回復処理を行う。障害ストレージノードに格納されていたデータと複製を格納していたストレージノード３及びデータを検索し、複製先のストレージノード３として、前記検索したデータを前記検索したストレージノードとは異なるストレージノード３を選択し、前記選択したストレージノード３へ前記データをフルコピーし（Ｓ４１６）、コピー先の制御ソフトの構成情報を更新する（Ｓ４１８）。
【０１７３】
図１に示した処理は、各ストレージノード３のクラスタ制御部２３とかかる定期的な通信を行うことができたか否かに基づいて、いずれかのストレージノード３に障害が発生したか否かを監視し、又は、いずれかのストレージノード３を撤去する旨の所定指示が与えられるのをされたか否かを監視して、起動される。
【０１７４】
さらに、図１の処理は、ストレージノード３の記憶領域のうち空き容量が変化した際に起動する。冗長化構成を回復するためには、複製を格納する分の空き容量が対応するストレージノード３に確保できることが前提であるため、プール（ストレージプール）の空き容量を常に監視し、プールの空き容量が閾値を下回った場合は、ストレージノードを追加する。情報処理システム１内にプールが複数ある場合はプール毎に判定する。
【０１７５】
他の例として、状態遷移して情報処理システム１が、稼働を継続しつづける確率を算出する際、以下の項目を考慮する。
【０１７６】
（１）使用可能な空き容量の監視
記憶装置１２で使用可能な空き記憶容量が閾値より多いことを監視し、使用可能な空き記憶容量が閾値より少なくなったら、冗長化構成回復処理をする際の複製先の容量が確保できない。このような時は「ｘノード障害」状態から「ｙノード冗長化構成」状態へ状態遷移する確率が減る。
【０１７７】
ストレージノード３の障害発生により使用不可となった容量を差し引いても、使用可能な記憶容量（プール容量）をコンピュートノード２へ提供可能であれば正常な状態として稼働できる。
【０１７８】
（２）プール内のＴｉｅｒ毎の空き容量の監視
プール内にＴｉｅｒが存在する場合では、上記（１）の使用可能な空き容量の監視をプール内のＴｉｅｒ毎に監視する。
【０１７９】
（３）障害グループを設けた容量の監視
障害グループ７は、同一の電源８等を共用するなど、電源８等に障害が発生した場合に、当該電源８に起因する同様の障害が発生するストレージノード３のグループをいう。
【０１８０】
障害グループ７を設け、障害グループ７毎に上記（１）の使用可能な空き容量の監視を行い、異なる障害グループ７にリビルド先を選択する。選択可能なリビルド先の使用可能な容量が確保できるかを監視する。
【０１８１】
（４）性能の監視
コンピュートノード２で稼働するアプリケーションに要求される性能が確保できるかを監視する。性能は例えば、記憶装置１２やプールの使用容量で判断してもよいし、ストレージノード３のスループット及びＣＰＵ１０の稼働率をモニタし、アプリケーションで使用するデータを格納するストレージノード３を選択してもよい。
【０１８２】
なお、コンピュートノード２のアプリケーションに要求される性能が不明な場合は、ストレージノード３のリソース毎に予め設定した性能の閾値と、クラスタ制御部２３が取得したリソース毎の性能値を比較して、性能値が性能の閾値を超えるストレージノード３を冗長化構成のストレージノード３として選択しても良い。リソース毎の性能値は、上述のようにスループットや、ＣＰＵ１０の稼働率や、空き記憶容量等を用いることができる。
【０１８３】
以上のように本実施例では、現在の情報処理システム１の状況と、次に発生しうる障害の部位及び当該障害が発生する確率から可用性レベルを算出し、前記可用性が閾値より低ければ障害であると判定しシステムを停止してノード交換または増設処理を促し、前記可用性が閾値よりも高ければＩ／Ｏ処理を継続する。
【０１８４】
情報処理システム１が即時に部位交換する必要性を判断できる。また、クラスタ制御部２３は、情報処理システム１の可用性レベルが低い時のみ即時にノード交換または増設等の保守作業を実施し、それ以外は情報処理システム１の稼働状況を参照してＩ／Ｏ処理頻度が高いときは保守処理を行わず、Ｉ／Ｏ処理頻度が低いときに保守作業を実施できる。
【０１８５】
したがって、情報処理システム１の運用の経費(ＯＰＥＸ：Ｏｐｅｒａｔｉｎｇ  Ｅｘｐｅｎｓｅ)を低減でき、大規模構成の情報処理システム１の運用に有効である。前記Ｉ／Ｏ処理頻度の高いか否かは予め閾値を決めておき、単位時間あたりのＩ／Ｏ数によって判断することができる。
【０１８６】
また本情報処理システム１では、ストレージノード３の削減又は障害発生により冗長化グループ２６のいずれかの制御ソフト２０が稼働し得なくなった場合においても、代替となる制御ソフト２０や当該制御ソフト２０が利用する構成情報２１が適切なストレージノード３上に直ちに再現されるため、制御ソフト２０の冗長構成を常にかつ確実に維持することができ、その分、情報処理システム１全体としての可用性及び信頼性を向上させることができる。
【０１８７】
さらに本情報処理システム１では、ストレージノード３の増設時にはクラスタ６内のいずれかの制御ソフト２０がそのストレージノード３に再配置されるため、本情報処理システム１の管理者の手を煩わせることなくストレージノード３の負荷分散を行うことができ、その分、システム全体としての管理を容易化させることができる。
【実施例２】
【０１８８】
図１４は、本発明の実施例２を示し、情報処理システム１の全体構成を示すブロック図である。本実施例２では、記憶装置１２をＨＤＤとＳＳＤで構成し、ストレージノード３毎に記憶領域のプール２８−Ａ〜２８−Ｃを設定し、さらに各プール２８を記憶装置１２の性能に応じたＴｉｅｒ１とＴｉｅｒ２で管理する。そして、バックエンドネットワーク５には、管理計算機９を接続して、各ストレージノード３のクラスタ制御部２３と連携する代表クラスタ制御部２３Ａを稼働させる。その他の構成は、前記実施例１と同様である。
【０１８９】
ストレージノード３の各プール２８は、ＳＳＤの記憶領域を管理するＴｉｅｒ１（２７−１）と、ＨＤＤの記憶領域を管理するＴｉｅｒ２（２７−２）と、を含む。管理計算機９の代表クラスタ制御部２３Ａは、各ストレージノード３のプール２８とＴｉｅｒ２７毎に記憶容量を管理する。
【０１９０】
代表クラスタ制御部２３Ａは、ストレージノード３のプール２８と、記憶装置１２の性能差に応じたＴｉｅｒ１、Ｔｉｅｒ２の単位で記憶容量を管理することで、冗長化グループ２６に割り当てる記憶容量の性能を制御することが可能となる。
【０１９１】
なお、図示の例では、ストレージノード３毎にプール２８を設定する例を示したが、図示はしないが、複数のストレージノード３を跨がるプールを設定しても良い。また、管理計算機９は、代表クラスタ制御部２３Ａに代わって、クラスタ管理ソフトウェアを稼働させてクラスタ管理部として機能させても良い。
【０１９２】
＜まとめ＞
なお、前記実施例１、２では、ＳＤＳを実装した情報処理システムについて本発明を適用する例を示したが、これに限定されるものではなく、冗長化構成を含むストレージシステムに適用しても良い。
【０１９３】
また、前記実施例１、２では、ストレージノードの障害の発生を検知したが、障害には、ストレージノードの性能が予め設定された値を下回ったときにも障害の発生として検知しても良い。
【０１９４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【０１９５】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１９６】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１９７】
１  情報処理システム
２  コンピュートノード
３  ストレージノード、
４  ストレージサービスネットワーク
５  バックエンドネットワーク
６  クラスタ
１０  ＣＰＵ
１１  メモリ
１２  記憶装置
２０  制御ソフト
２１  構成情報
２３  クラスタ制御部
２４  ストレージノード管理表
２５  システム状態管理
２６  冗長化グループ
【図１】
2020021277.tif 000003
【図２】
2020021277.tif 000004
【図３】
2020021277.tif 000005
【図４】
2020021277.tif 000006
【図５】
2020021277.tif 000007
【図６】
2020021277.tif 000008
【図７】
2020021277.tif 000009
【図８】
2020021277.tif 000010
【図９】
2020021277.tif 000011
【図１０】
2020021277.tif 000012
【図１１】
2020021277.tif 000013
【図１２】
2020021277.tif 000014
【図１３】
2020021277.tif 000015
【図１４】
2020021277.tif 000016