(57)【特許請求の範囲】
【請求項１】
コンピュータに、
冗長化された複数の記憶装置をそなえるストレージシステムにおける、前記複数の記憶装置の各々の故障の有無を表すノードを各記憶装置の故障の有無の組み合わせごとに有するモデルであって、前記複数のノード間での状態遷移を表す前記モデルを取得し、
前記モデルに基づき前記複数のノードから互いに異なる複数の第１ノードを選択し、
選択した前記複数の第１ノードについて、前記モデルに基づき、各第１ノードから前記記憶装置の故障により状態遷移する末端のノードまでの１以上の第２ノードに関する情報を取得し、
前記複数の第１ノードのうち、２以上の第１ノードの各々について取得した前記第２ノードに関する情報が互いに一致する場合、前記２以上の第１ノードを１つの第１ノードに統合し、
前記２以上の第１ノードの統合後のモデルに基づき、前記ストレージシステムの信頼性に関する情報を算出する、
処理を実行させることを特徴とする、ストレージシステムの信頼性検証プログラム。
【請求項２】
前記コンピュータに、
前記複数の第１ノードの選択から前記統合までの処理を、前記複数の第１ノードの組み合わせを変化させて順に実行し、
前記複数の第１ノードの選択において、前記複数の第１ノードを、前記モデルにおける前記記憶装置の故障による状態遷移の末端のノードから順に選択する、
処理を実行させることを特徴とする、請求項１記載の信頼性検証プログラム。
【請求項３】
前記コンピュータに、
前記２以上の第１ノードのうちの前記１つの第１ノードに対して、前記２以上の第１ノードのうちの他の第１ノードに向かう前記記憶装置の故障による状態遷移を移動させ、前記他の第１ノードを削除することにより、前記２以上の第１ノードを１つの第１ノードに統合する、
処理を実行させることを特徴とする、請求項１又は請求項２記載の信頼性検証プログラム。
【請求項４】
前記１つの第１ノードは、前記２以上の第１ノードの中で、前記モデルにおける前記記憶装置の故障による状態遷移の末端のノードに近いノードである、
ことを特徴とする、請求項３記載の信頼性検証プログラム。
【請求項５】
前記第２ノードに関する情報は、前記第１ノードと、前記モデルにおける前記第１ノードから前記記憶装置の故障により状態遷移する末端のノードまでの１以上の前記第２ノードと、を含むノード群の少なくとも一部を表す情報であり、
前記コンピュータに、
前記２以上の第１ノードの各々に係るノード群を比較し、
前記２以上のノード群が同一であると判定した場合に、前記２以上の第１ノードの各々について取得した前記第２ノードに関する情報が互いに一致すると判定する、
処理を実行させることを特徴とする、請求項１〜４のいずれか１項記載の信頼性検証プログラム。
【請求項６】
コンピュータが、
冗長化された複数の記憶装置をそなえるストレージシステムにおける、前記複数の記憶装置の各々の故障の有無を表すノードを各記憶装置の故障の有無の組み合わせごとに有するモデルであって、前記複数のノード間での状態遷移を表す前記モデルを取得し、
前記モデルに基づき前記複数のノードから互いに異なる複数の第１ノードを選択し、
選択した前記複数の第１ノードについて、前記モデルに基づき、各第１ノードから前記記憶装置の故障により状態遷移する末端のノードまでの１以上の第２ノードに関する情報を取得し、
前記複数の第１ノードのうち、２以上の第１ノードの各々について取得した前記第２ノードに関する情報が互いに一致する場合、前記２以上の第１ノードを１つの第１ノードに統合し、
前記２以上の第１ノードの統合後のモデルに基づき、前記ストレージシステムの信頼性に関する情報を算出する、
ことを特徴とする、ストレージシステムの信頼性検証方法。
【請求項７】
冗長化された複数の記憶装置をそなえるストレージシステムにおける、前記複数の記憶装置の各々の故障の有無を表すノードを各記憶装置の故障の有無の組み合わせごとに有するモデルであって、前記複数のノード間での状態遷移を表す前記モデルを保持する保持部と、
前記保持部が保持する前記モデルに基づき、前記複数のノードから互いに異なる複数の第１ノードを選択し、選択した前記複数の第１ノードについて、各第１ノードから前記記憶装置の故障により状態遷移する末端のノードまでの１以上の第２ノードに関する情報を取得して、前記複数の第１ノードのうち、２以上の第１ノードの各々について取得した前記第２ノードに関する情報が互いに一致する場合、前記２以上の第１ノードを１つの第１ノードに統合する統合部と、
前記統合部による前記２以上の第１ノードの統合後のモデルに基づき、前記ストレージシステムの信頼性に関する情報を算出する算出部と、
をそなえることを特徴とする、ストレージシステムの信頼性検証装置。
【請求項８】
冗長化された複数の記憶装置をそなえるストレージシステムであって、
前記ストレージシステムの信頼性を検証する信頼性検証装置をさらにそなえ、
前記信頼性検証装置が、
前記ストレージシステムにおける、前記複数の記憶装置の各々の故障の有無を表すノードを各記憶装置の故障の有無の組み合わせごとに有するモデルであって、前記複数のノード間での状態遷移を表す前記モデルを保持する保持部と、
前記保持部が保持する前記モデルに基づき、前記複数のノードから互いに異なる複数の第１ノードを選択し、選択した前記複数の第１ノードについて、各第１ノードから前記記憶装置の故障により状態遷移する末端のノードまでの１以上の第２ノードに関する情報を取得して、前記複数の第１ノードのうち、２以上の第１ノードの各々について取得した前記第２ノードに関する情報が互いに一致する場合、前記２以上の第１ノードを１つの第１ノードに統合する統合部と、
前記統合部による前記２以上の第１ノードの統合後のモデルに基づき、前記ストレージシステムの信頼性に関する情報を算出する算出部と、
をそなえることを特徴とする、ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムの信頼性検証プログラム、信頼性検証方法、信頼性検証装置、及び同装置をそなえるストレージシステムに関する。
【背景技術】
【０００２】
冗長化された複数の記憶装置をそなえるストレージシステムでは、システムの可用性の指標としてのストレージシステム（複数の記憶装置）の信頼性の検証（評価）が行なわれることがある。信頼性とは、所定期間経過後のシステムが正常に動作している確率（データの復元が不可能となる記憶装置の故障が生じない確率）を表す情報である。信頼性は、例えば個々の記憶装置の故障及び故障からの復旧の状態遷移を表すモデルを用いて求めることができる。このようなモデルとしては、マルコフモデルが知られている。
【０００３】
ストレージシステムの信頼性を検証する作業者は、例えばマルコフモデルを用いてストレージシステムにおける所定期間（例えば１年）経過後のディスク故障率の算出を行なうことにより、システムが正常に動作している確率を信頼性として算出することができる。
【０００４】
ところで、記憶装置の冗長化には、ＭＤＳ（Maximum Distance Separable）符号を利用したものと、ＭＤＳ符号とは異なる符号（以下、非ＭＤＳ符号という）を利用したもの（例えば、下記特許文献１参照）とが知られている。
【０００５】
ＭＤＳ符号では、例えばリードソロモン（Reed-Solomon；ＲＳ）符号のように、一定数のディスクが故障するまではデータの復元が可能であり、一定数のディスクが故障したときにデータの復元ができなくなる。図２３に示すＭＤＳ符号が適用されたストレージシステムの例では、２つのディスクが故障しても復元可能であるが、３つのディスクが故障したときに復元不可能となりデータ損失が発生する。
【０００６】
非ＭＤＳ符号では、復元不可能になる故障ディスク数が不定であり、復元不可能になる故障ディスク数が故障ディスクの組み合わせによって変化する。図２４に示す非ＭＤＳ符号が適用されたストレージシステムの例では、３つの故障（Ａの符号が付されたディスクの故障）で復元できなくなる場合と、３つの故障（Ｂの符号が付されたディスクの故障）でも復元できる場合とが存在する。
【０００７】
ここで、ＭＤＳ符号が適用され、ｍ個のディスクが故障するとデータの復元が不可能となるストレージシステムについて、マルコフモデルを作成することを考える。ディスクの故障している数（０〜ｍ）をそれぞれノードで表し、ディスクがｎ個故障しているときの、或る期間にディスクの故障する確率をλｎ、ディスクが復元する確率をμｎとすると、マルコフモデルは図２５に例示するものとなる。
【０００８】
図２５に示すように、ＭＤＳ符号では復元不可能になる故障ディスク数が一定であるため、故障及び復旧の状態遷移は故障ディスク数に沿って１次元的となる。なお、図２５において、白背景のノードは当該ノードが表す数のディスクが故障してもデータの復元が可能であることを示し、網掛けのノードは当該ノードが表す数のディスクが故障するとデータの復元が不可能となることを示す。
【０００９】
一方、非ＭＤＳ符号が適用され、故障したディスクによって復元できるか否かが変化するストレージシステムについて、マルコフモデルを作成することを考える。ディスク数を３とし、ディスクが故障しているか否かを全てのディスクについて組み合わせで表したものを各ノードとして、或る期間に或るディスクが故障する確率をλ、ディスクが復元する確率をμとすると、マルコフモデルは図２６に例示するものとなる。なお、図２６において、各ノードは各々のディスク（ディスク０〜２）について故障の有無を表したものとなる。
【００１０】
図２６に示すように、非ＭＤＳ符号では復元不可能になる故障ディスク数が不定であるため、マルコフモデルは、１つのディスクについて故障及び復旧の状態遷移が生じ得るノード間が接続されたモデルとなる。この場合、ノード間の状態遷移は故障するディスクに応じて分岐するため２次元的となる。
【００１１】
なお、図２６において、各ノード内の○は対応するディスクが動作している（故障していない）ことを示し、×は対応するディスクが故障していることを示す。また、白背景のノードは当該ノードが表す故障ディスクの組み合わせでもデータの復元が可能であることを示し、網掛けのノードは当該ノードが表す故障ディスクの組み合わせではデータの復元が不可能であることを示す。
【００１２】
なお、関連する技術として、マルコフモデルに内在するグラフの同型モデルを識別して同型体を除去し、候補の数を非同型候補まで減少させる技術が知られている（例えば、下記特許文献２参照）。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特表２００７−５２９０６２号公報
【特許文献２】特表２０１４−５１５１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
図２７は、ＭＤＳ符号が適用されたストレージシステム及び非ＭＤＳ符号が適用されたストレージシステムのそれぞれについてのマルコフモデルの規模の比較例を示す図である。図２７に示すように、ディスクの数をｍとすると、ＭＤＳ符号のノード数はｍであるのに対し、非ＭＤＳ符号のノード数は２ｍとなる。また、状態遷移の数（図２５及び図２６における矢印の数）を示すエッジ数は、ＭＤＳ符号では２ｍであるのに対し、非ＭＤＳ符号では２ｍｍ／２となる。
【００１５】
図２７に示すように、冗長化されたストレージシステムの信頼性を算出するにあたって、非ＭＤＳ符号が適用されたストレージシステムのように規模の大きいモデルになると、演算量が増大し、演算時間が増加してしまう。又は演算を行なうＰＣ（Personal Computer）やサーバ等の情報処理装置の性能によっては演算を行なうこと自体が困難となってしまう。
【００１６】
このため、マルコフモデルが使用される場面は、単純なモデルを構築できるＭＤＳ符号を利用した冗長化構成や、非ＭＤＳ符号を利用した冗長化構成であっても小規模なモデルを構築できる冗長化構成に制限されてしまう。
【００１７】
１つの側面では、本発明は、ストレージシステムの信頼性を容易に検証することを目的とする。
【課題を解決するための手段】
【００１８】
１つの態様では、本件のストレージシステムの信頼性検証プログラムは、コンピュータに以下の処理を実行させるものである。この処理は、冗長化された複数の記憶装置をそなえるストレージシステムにおける、前記複数の記憶装置の各々の故障の有無を表すノードを各記憶装置の故障の有無の組み合わせごとに有するモデルであって、前記複数のノード間での状態遷移を表す前記モデルを取得することを含む。また、この処理は、前記モデルに基づき前記複数のノードから互いに異なる複数の第１ノードを選択し、選択した前記複数の第１ノードについて、前記モデルに基づき、各第１ノードから前記記憶装置の故障により状態遷移する末端のノードまでの１以上の第２ノードに関する情報を取得することを含む。さらに、この処理は、前記複数の第１ノードのうち、２以上の第１ノードの各々について取得した前記第２ノードに関する情報が互いに一致する場合、前記２以上の第１ノードを１つの第１ノードに統合することを含む。また、この処理は、前記２以上の第１ノードの統合後のモデルに基づき、前記ストレージシステムの信頼性に関する情報を算出することを含む。
【発明の効果】
【００１９】
１つの側面では、ストレージシステムの信頼性を容易に検証することができる。
【図面の簡単な説明】
【００２０】
【図１】一実施形態の一例としてのストレージシステムの構成例を示す図である。
【図２】図１に示すクライアント装置の機能構成例を示す図である。
【図３】一実施形態に係るマルコフモデルの一例をグラフ形式で示す図である。
【図４】一実施形態に係るマルコフモデルの一例をテーブル形式で示す図である。
【図５】子グラフの抽出例を示す図である。
【図６】子グラフの同型の判定例を示す図である。
【図７】ノードへの通し番号の設定例を説明する図である。
【図８】図７に示すマルコフモデルの一例をテーブル形式で示す図である。
【図９】同型の子グラフの削除例を説明する図である。
【図１０】図９に示す処理を配列に対して行なう例を説明する図である。
【図１１】同型の子グラフの削除例を説明する図である。
【図１２】図１１に示す処理を配列に対して行なう例を説明する図である。
【図１３】同型の子グラフの削除例を説明する図である。
【図１４】図１３に示す処理を配列に対して行なう例を説明する図である。
【図１５】図７に示すマルコフモデルの圧縮結果例を示す図である。
【図１６】図１５に示す圧縮結果に基づく検証手法に用いられる検証テーブルの一例を示す図である。
【図１７】圧縮の有無に応じたマルコフモデルのノード数の比較例を示す図である。
【図１８】圧縮の有無に応じたストレージシステムの信頼性の検証結果の比較例を示す図である。
【図１９】非圧縮のマルコフモデルに基づく検証手法に用いられる検証テーブルの一例を示す図である。
【図２０】一実施形態に係るクライアント装置の動作例を説明するフローチャートである。
【図２１】一実施形態に係るクライアント装置による単純化処理の動作例を説明するフローチャートである。
【図２２】一実施形態に係るクライアント装置のハードウェア構成例を示す図である。
【図２３】ＭＤＳ符号が適用されたストレージシステムの例を示す図である。
【図２４】非ＭＤＳ符号が適用されたストレージシステムの例を示す図である。
【図２５】ＭＤＳ符号が適用されたストレージシステムのマルコフモデルの例を示す図である。
【図２６】非ＭＤＳ符号が適用されたストレージシステムのマルコフモデルの例を示す図である。
【図２７】ＭＤＳ符号及び非ＭＤＳ符号それぞれについてのマルコフモデルの規模の比較例を示す図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００２２】
〔１〕一実施形態
〔１−１〕ストレージシステムの構成例
図１は、一実施形態の一例としてのストレージシステム１の構成例を示す図である。ストレージシステム１は、例示的に、クライアント装置２、１以上（図１では２つ）のストレージ装置３ａ及び３ｂ、及びネットワーク５をそなえる。以下、ストレージ装置３ａ及び３ｂを区別しない場合には単にストレージ装置３と表記する。
【００２３】
ストレージシステム１は、ストレージ装置３の記憶領域を例えばクライアント装置２を介して利用者に提供するものである。ストレージシステム１としては、分散ストレージのようなクラウドストレージシステムであってもよいし、社内向けのようにストレージ装置３の設置場所や利用者が制限されたプライベートなストレージシステムであってもよく、その他種々のストレージシステムであってよい。
【００２４】
クライアント装置２は、ネットワーク５に接続され、例えばストレージシステム１の利用者によるストレージ装置３へのアクセスに用いられる端末である。クライアント装置２としては、ＰＣやサーバ等の種々の情報処理装置が挙げられる。
【００２５】
また、一実施形態に係るクライアント装置２は、ストレージ（複数の記憶装置４）の信頼性を検証する信頼性検証装置の機能をそなえることができる。なお、信頼性検証装置の機能を実現する装置は、クライアント装置２のようなネットワーク５に接続された装置に限られるものではなく、ストレージシステム１外部の図示しない情報処理装置であってもよい。以下の説明ではクライアント装置２が信頼性検証装置の機能をそなえるものとするが、当該機能を他の情報処理装置がそなえる場合には当該他の情報処理装置に後述するクライアント装置２の処理を実行させればよい。
【００２６】
ストレージ装置３ａは、複数（図１では４つ）の記憶装置４ａ〜４ｄをそなえ、ストレージ装置３ｂは、複数（図１では４つ）の記憶装置４ｅ〜４ｈをそなえる。以下、記憶装置４ａ〜４ｈを区別しない場合には単に記憶装置４と表記する。ストレージ装置３は、非ＭＤＳ符号を利用して複数の記憶装置４を冗長化し、クライアント装置２からのアクセスに応じて複数の記憶装置４へのデータの書き込み又は読み出し等の指示を行なう。ストレージ装置３としては、例えばディスクアレイ装置が挙げられる。
【００２７】
なお、非ＭＤＳ符号としては、Repairable Fountain Code，Regenerating Codes，Network Coding for Distributed Storage Systems，Hierarchical Codes，及びPartial MDS等の種々の手法が挙げられる。このような非ＭＤＳ符号は、ストレージ装置等のメーカにより独自に開発されることが多く、上記で例示したもの以外にも種々の手法が存在し得る。一実施形態においてストレージ装置３が複数の記憶装置４を冗長化する手法としては、上記で例示したものに限定されるものではなく、非ＭＤＳ符号である種々の手法が挙げられる。
【００２８】
記憶装置４は、種々のデータやプログラム等を格納するハードウェアである。記憶装置４としては、例えばＨＤＤ（Hard Disk Drive）等の磁気ディスク装置、ＳＳＤ（Solid State Drive）等の半導体ドライブ装置、フラッシュメモリ等の不揮発性メモリ等の各種装置が挙げられる。
【００２９】
なお、記憶装置４では、一定確率で故障が発生することがあり、故障の発生した記憶装置４がストレージ装置３によるリカバリ等により一定確率で復旧することもある。記憶装置４の故障としては、例えば記憶装置４の内部の障害、記憶装置４とストレージ装置３との接続障害、ストレージ装置３のインタフェースやアプリケーションの障害等のほか、記憶装置４のセクタにα波がヒットしビットが反転することによる一時的なエラー等も含まれる。
【００３０】
ネットワーク５は、クライアント装置２及びストレージ装置３等が接続されるＬＡＮ（Local Area Network）又はＳＡＮ（Storage Area Network）等のネットワークである。ネットワーク５はイントラネットを形成してもよいし、図示しないスイッチ等を介してインターネットに接続されてもよい。
【００３１】
〔１−２〕クライアント装置の構成例
次に、図２を参照して、一実施形態に係るクライアント装置２の構成例を説明する。クライアント装置２は、信頼性検証装置の機能として、ストレージシステムの信頼性の算出を行なう。
【００３２】
ここで、上述のように、ストレージシステム１は非ＭＤＳ符号を利用しているため、マルコフモデルを用いたストレージシステムの信頼性の算出を行なう場合、演算時間の増加や演算が困難になるといった事態が生じ得る。そこで、一実施形態に係るクライアント装置２は、非ＭＤＳ符号ストレージシステム１のマルコフモデルを単純化して規模を縮小することで、演算量を減少させてストレージシステムの信頼性を容易に算出することができる。
【００３３】
このため、クライアント装置２は、例示的に、保持部２１、情報取得部２２、モデル生成部２３、単純化処理部２４、検証処理部２５、及び結果出力部２６をそなえる。
【００３４】
保持部２１は、データを記憶する記憶装置の一例であり、図２に例示するように、構成情報２１ａ、モデル情報２１ｂ、単純化モデル情報２１ｃ、及び検証結果２１ｄを保持する。
【００３５】
情報取得部２２は、クライアント装置２に入力されるストレージシステム１の構成情報２１ａを取得し、保持部２１に格納する。構成情報２１ａとしては、ストレージシステム１がそなえる記憶装置４の数や冗長化構成に関する情報であり、後述するマルコフモデルの生成に用いられる。例えばストレージシステムの信頼性の検証を実施する作業者は、構成情報２１ａを事前に調査、決定しておき、当該構成情報２１ａをクライアント装置２のインタフェース部２ｄ、入出力部２ｅ、又は読取部２ｆ（図２２参照）等を介してクライアント装置２に入力することが好ましい。
【００３６】
モデル生成部２３は、保持部２１に格納された構成情報２１ａに基づきストレージシステムのマルコフモデルを生成し、生成したマルコフモデルをモデル情報２１ｂとして保持部２１に格納する。なお、構成情報２１ａに基づくマルコフモデルの生成は、既知の種々の手法により行なうことが可能であり、その詳細な説明は省略する。
【００３７】
なお、構成情報２１ａ及びモデル情報２１ｂの少なくとも一方が例えばクライアント装置２の使用者により予め保持部２１に設定される場合には、上述した情報取得部２２及びモデル生成部２３の少なくとも一方の機能を省略してもよい。
【００３８】
以下、説明の簡略化のため、ストレージシステム１が３つの記憶装置４（例えば記憶装置４ａ、４ｂ、４ｃ）をそなえ、モデル生成部２３が生成するマルコフモデルの形態（グラフ）が図３に示すものであるとする。図３に示すように、或る期間に全ての記憶装置４の各々は確率λで故障し、全ての故障している記憶装置４の各々は確率μで復旧するものとする。また、復元不可能なノードは完全に故障した状態として扱い、他のノードへの遷移を持たないものとする。
【００３９】
なお、図３は、マルコフモデルを状態遷移の把握が容易なグラフの形式で表現したものであるが、クライアント装置２等の情報処理装置では、マルコフモデルが図４に例示するような配列（状態遷移行列）として管理されてよい。
【００４０】
マルコフモデルを配列で表す場合、図４のテーブルに例示するように、縦軸が状態の遷移元のノード、横軸が状態の遷移先のノードとなり、遷移元ノード及び遷移先ノードの交点に状態遷移の確率が設定される。なお、ノードの状態が遷移しない確率（遷移元ノードと遷移先ノードとが同じ場合の確率；図４のテーブルにおける空白部分）は１．０からノードが他のノードに遷移する確率の合計を減算したものとなる。例えばノード（○○○）の状態が遷移しない確率は、１．０−（λ（ノード（○○×）に遷移する確率）＋λ（ノード（○×○）に遷移する確率）＋λ（ノード（×○○）に遷移する確率））＝１．０−３λとなる。
【００４１】
このように、マルコフモデルは、冗長化された複数の記憶装置４をそなえるストレージシステム１における、複数の記憶装置４の各々の故障の有無を表すノードを各記憶装置４の故障の有無の組み合わせごとに有するモデルであって、複数のノード間での状態遷移を表すモデルであるといえる。
【００４２】
単純化処理部２４は、モデル生成部２３が生成したモデル情報２１ｂを単純化（圧縮）アルゴリズムを用いて単純化し、モデルの規模を縮小した単純化モデル情報２１ｃを生成し、保持部２１に格納する。単純化アルゴリズムは以下の処理を含んでよい。
【００４３】
（１）単純化処理部２４が、或るノード（ここでは便宜上ノードｓと表記）とノードｓから記憶装置４が故障することで遷移し得るノードとを含むグラフ（ノードｓの子グラフ）を抜き出す。
【００４４】
例えば図５に示すように、単純化処理部２４により抜き出されるノード（○○×）の子グラフには、ノードｓ（○○×）、ノード（○××）、ノード（×○×）、及びノード（×××）、並びにこれらのノード間のエッジが含まれる。このとき単純化処理部２４は、比較のために異なる２つのノードの子グラフを抜き出す。
【００４５】
（２）抜き出した２つの子グラフｇ１、ｇ２が同型の子グラフである場合、単純化処理部２４は、一方の子グラフを他方の子グラフで置換する。換言すれば、単純化処理部２４は、２つの同型の子グラフを１つの子グラフに集約するのである。ここで、同型の子グラフと判定するための条件として、一方の子グラフのノードを他方の子グラフのノードで置換しても同一のグラフ（子グラフ）となることが挙げられる。なお、置換可能なノードは復元可能なノード同士又は復元不可能なノード同士とする。また、同一のグラフとは、例えば子グラフのノードの置換前後で故障による状態遷移（エッジ）が同一であることを含む。
【００４６】
例えば図６に示すように、ノード（○××）の子グラフとノード（××○）の子グラフとは、いずれも復元可能なノード（○××，××○）から復元不可能なノード（×××）へ状態遷移するグラフを表している。従って、図６の例では単純化処理部２４は、ノード（○××）の子グラフとノード（××○）の子グラフとが同型であると判断する。このとき、単純化処理部２４は一方の子グラフを他方の子グラフで置換するが、詳細な手法については後述する。
【００４７】
単純化処理部２４は、上記（１）及び（２）に例示する単純化アルゴリズムに基づいて、モデル情報２１ｂを単純化した単純化モデル情報２１ｃを生成することができる。なお、単純化処理部２４による処理の詳細は後述する。
【００４８】
なお、上記（２）において、単純化処理部２４が同型と判断した子グラフを置換（１つに集約）することを許容する理由として、マルコフモデルのようなモデルでは、記憶装置４の状態遷移の確率λ、μが小さいことが挙げられる。すなわち、λ、μが小さいため複数回に亘ってノード間で状態が遷移する確率は非常に小さくなり、１つのグラフの中での狭い領域で一致したグラフ（子グラフ）を同一と見做しても、計算結果が概ね一致するからである。
【００４９】
検証処理部２５は、単純化処理部２４が生成（修正）した単純化モデル情報２１ｃに基づいて、ストレージシステムの信頼性の検証（評価）を行なう。
【００５０】
例えば検証処理部２５は、単純化モデル情報２１ｃに基づいて、所定期間経過後にストレージにおいて復元不可能な故障が発生していない（継続して稼働している）確率を算出する。この確率は、ストレージシステムの信頼性を表す値（信頼性に関する情報）であるといえる。そして、検証処理部２５は、算出結果を検証結果２１ｄとして保持部２１に格納する。なお、検証処理部２５による処理の詳細は後述する。
【００５１】
結果出力部２６は、検証処理部２５による検証結果２１ｄを作業者へ出力する。例えば結果出力部２６は、検証結果２１ｄをクライアント装置２のインタフェース部２ｄや読取部２ｆ（図２２参照）を介してクライアント装置２の外部の装置に出力したり、入出力部２ｅ（図２２参照）としてのモニタに表示することができる。なお、検証結果２１ｄの出力の手法としては上述したものに限定されるものではなく、種々の手法を用いることができる。
【００５２】
以下、図７〜図１６を参照しながら、単純化処理部２４及び検証処理部２５の詳細について説明する。
【００５３】
（単純化処理部２４の説明）
まず、単純化処理部２４による単純化処理の詳細について説明する。単純化処理部２４は、上記（１）及び（２）に例示する単純化アルゴリズムに基づく単純化処理において、例えば以下の（ｉ）〜（iv）の処理を実行する。
【００５４】
（ｉ）単純化処理部２４がモデル情報２１ｂに対して記憶装置４の故障数の多いノードから順に各ノードに通し番号（ノード番号）を設定する。
【００５５】
例えば単純化処理部２４は、図７に示すように、図３のマルコフモデルにおける記憶装置４の故障数の最も多いノードからもっとも少ないノードへ、ノード（×××）、ノード（○××）、・・・、ノード（○○×）、・・・、ノード（○○○）の順に、通し番号０〜７を設定する。なお、ノードに通し番号が設定された場合の配列は図８に示すものとなる。以下、通し番号（ノード番号）０〜７のノードをそれぞれノード０、ノード１、・・・、ノード７と表記する。
【００５６】
（ii）単純化処理部２４が互いに異なる２つのノードを選択し、当該２つのノードの子グラフが同型であるか否かを判定する。
【００５７】
例えば単純化処理部２４は、図８のテーブルにおいて２つのノードを選択し、選択した２つのノード（選択ノード；第１ノード）の各々について、選択ノードからの状態遷移先のノード（遷移先ノード；第２ノード）を検索する。このとき単純化処理部２４は、テーブルにおいて、選択ノードのノード番号に対応する遷移元ノード番号の行を参照し、当該行に故障の確率（例えばλを含む値）が設定されているか否かを判断すればよい。当該行に故障の確率が設定されている場合、単純化処理部２４は、当該故障の確率が設定されている個所（列）に対応する遷移先ノード番号を取得することで、遷移先ノードを検出することができる。
【００５８】
２つの選択ノードについて遷移先ノードの検索を行なうと、単純化処理部２４は、２つの選択ノードについて検出した遷移先ノードの数を比較して両者が一致するか否かを判断する。両者が一致しない場合、例えば２つの選択ノードのうちのいずれかに遷移先ノードが存在しない、又は２つの選択ノードからの遷移先ノードの数が一致しない場合には、単純化処理部２４はこの時点で２つの子グラフが同型ではないと判定することができる。
【００５９】
一例として、選択ノードがノード０及びノード１である場合、図８に示すように遷移元ノード０の行にはλが設定されておらず（遷移先ノードの数＝０）、遷移元ノード１の行には遷移先ノード０の列にλが設定されている（遷移先ノードの数＝１）。この場合、選択ノード０及び１については遷移先ノードの数が一致していないため、単純化処理部２４はノード０の子グラフとノード１の子グラフとは同型ではないと判定する。
【００６０】
一方、２つの選択ノードからの遷移先ノードの数が一致する場合、単純化処理部２４は、２つの選択ノードの遷移先ノードの各々から遷移する“次の遷移先ノード”の検索、及び２つの選択ノードに係る当該“次の遷移先ノード”の数の比較・一致判断を、故障による状態遷移の末端の遷移先ノードに達するまで再帰的に実行する。なお、末端の遷移先ノードとは、そのノードから故障により状態遷移する遷移先ノードが存在しないノードであり、復元不可能なノードとなる。
【００６１】
なお、“次の遷移先ノード”の検索は、選択ノードからの遷移先ノードの検索の場合と同様である。例えば単純化処理部２４は、テーブルにおいて、遷移先ノードのノード番号に対応する遷移元ノード番号の行を参照し、当該行に故障の確率が設定されている個所（列）に対応する遷移先ノード番号を取得すればよい。
【００６２】
また、２つの選択ノードに係る“次の遷移先ノード”の数の比較・一致判断も、上述した２つの選択ノードからの遷移先ノードの数の比較・一致判断の場合と同様である。例えば単純化処理部２４は、２つの選択ノードに係る“次の遷移先ノード”の数が一致しない場合、この時点で２つの子グラフが同型ではないと判定すればよい。一方、両者が一致する場合、単純化処理部２４は、比較・一致判断を行なった“次の遷移先ノード”の他に、検出されたが比較・一致判断を行なっていない“次の遷移先ノード”が存在すれば当該“次の遷移先ノード”について上記比較・一致判断を実行すればよい。また、他に比較・一致判断を行なっていない“次の遷移先ノード”が存在しなければ、単純化処理部２４は、当該“次の遷移先ノード”からの遷移先ノードを検索すればよい。
【００６３】
以上の処理により、単純化処理部２４は、２つの子グラフについて選択ノード（第１ノード）及び全ての遷移先ノード（第２ノード）の検索、及び比較・一致判断を実行し、２つの子グラフのノードの状態遷移（エッジ）の関係が同一であると判断すれば、２つの子グラフが同型であると判定する。なお、２つの子グラフのノードの状態遷移（エッジ）の関係が同一であるとは、比較・一致判断を行なった全てのノードにおいて遷移先ノードの数が２つの子グラフ間で同じであり、２つの子グラフのノードの接続形態が同一であることをいう。
【００６４】
一例として、選択ノードがノード１及びノード３である場合、図８に示すように遷移元ノード１の行には遷移先ノード０の列にλが設定され（遷移先ノードの数＝１）、遷移元ノード３の行にも遷移先ノード０の列にλが設定されている（遷移先ノードの数＝１）。この場合、選択ノード１及び３は遷移先ノードの数が一致しているため、単純化処理部２４は２つの遷移先ノード０について“次の遷移先ノード”を検索する。
【００６５】
ノード０には“次の遷移先ノード”が存在しないため（遷移先ノードの数＝０）、単純化処理部２４は、選択ノード１の遷移先ノードの数と選択ノード３の遷移先ノードの数とが一致していると判断する。また、ノード０からの遷移先ノードは存在しないため、単純化処理部２４は（故障による）状態遷移の末端の遷移先ノードに達した（全ての比較・一致判断で“一致”と判定した）と判断する。これにより、単純化処理部２４は選択ノード１の子グラフと選択ノード３の子グラフとが同型であると判定することができる。なお、このとき選択ノード１の子グラフはノード１及びノード０であり、選択ノード３の子グラフはノード３及びノード０となる。
【００６６】
なお、２つの選択ノードからの遷移先ノードの数がともに０で一致する場合、単純化処理部２４は、これらの選択ノードが単独で子グラフを形成し、２つの子グラフが同型であると判定する。
【００６７】
一例として、選択ノードがノード０及びノード２である場合、図８に示すように遷移元ノード０の行にはλが設定されておらず（遷移先ノードの数＝０）、遷移元ノード２の行にもλが設定されていない（遷移先ノードの数＝０）。この場合、選択ノード０及び２は遷移先ノードの数が０で一致しているため、単純化処理部２４は２つの選択ノード０及びノード２がそれぞれ単独で子グラフを形成し、２つの子グラフが同型であると判定することができる。
【００６８】
このように、単純化処理部２４は、１以上のノードの集合（ノード群）である子グラフを抽出しながら子グラフの少なくとも一部について段階的に比較・一致判断を行なうため、２つの子グラフが同型でないという判定を早期に行なうことができる。これにより、同型でないと判定した２つの子グラフの抽出を抑止できるため、単純化処理を高速化することができる。
【００６９】
なお、単純化処理部２４は、異なる２つの選択ノードとして、ノード番号の小さいノードを選択することが好ましい。ここで、ノード番号の小さいノードとは、マルコフモデルにおける記憶装置４の故障による状態遷移の末端のノードである。上記検索及び比較・一致判断ではノードの遷移先を順に辿る処理となるため、ノード番号の小さい２つのノードを選択ノードとして選択することで、処理時間が比較的短い末端の遷移先ノードから処理を行なうことができる。
【００７０】
また、２つの子グラフの比較・一致判断は、上述のように２つの子グラフのノードの識別過程で行なってもよいし、２つの子グラフ内のノードを全て識別してから行なってもよい。例えば単純化処理部２４は、２つの選択ノードの各々について、上述した手法により選択ノードから（故障による）状態遷移の末端の遷移先ノードまでを選択ノードの子グラフとして識別（抽出）する。そして、単純化処理部２４は、２つの子グラフのノードの状態遷移（エッジ）の関係が同一であると判断すれば、２つの子グラフが同型であると判定する。
【００７１】
さらに、２つの子グラフが同型であるか否かの判定において、単純化処理部２４は記憶装置４の復旧の確率μについては考慮しなくてよい。グラフにおいて復元可能なノード間の状態遷移には、基本的に故障の確率λと復旧の確率μとが含まれるため（図７のλ及びμの矢印参照）、子グラフが同型であるか否かの判断には故障の確率λについて考慮すれば十分だからである。
【００７２】
なお、上述した前提により、復元可能なノードと復元不可能なノードとの間の状態遷移には復元可能なノードから復元不可能なノードへの故障の確率λのみが含まれ、逆方向への復旧の確率μは含まれない。このことは、単純化処理部２４が復元不可能なノードを識別するための判断基準として用いられてもよい。換言すれば、単純化処理部２４は、或るノードに対応する遷移元ノード番号の行に他のノードへの復旧の確率（μを含む値）が含まれない場合に、当該或るノードが末端の遷移先ノードであると判断することができる。
【００７３】
（iii）上記（ii）の判定の結果、２つの子グラフが同型であれば、単純化処理部２４は一方の子グラフを他方の子グラフに重ね合わせ、当該一方の子グラフを削除する（同型の２つの選択ノードを１つに統合する）。
【００７４】
例えば単純化処理部２４は、同型であると判定した２つの子グラフのうちの一方の子グラフの選択ノードに遷移するエッジを全て他方の子グラフの選択ノードに設定し直し、一方の子グラフの選択ノードと当該選択ノードから遷移するエッジとを削除する。なお、削除する一方の子グラフは、ノード番号の大きい選択ノードの子グラフであることが好ましい。上述のように、上記検索及び比較・一致判断ではノードの遷移先を順に辿る処理となるため、ノード番号の大きいノードの子グラフを削除することで、以降の処理にかかる処理時間を短くすることができる。
【００７５】
一例として、単純化処理部２４がノード０の子グラフとノード２の子グラフとが同型であると判定した場合の処理について説明する。
【００７６】
単純化処理部２４は、図９に示すように、ノード番号の大きい選択ノード２に遷移していたエッジを残った選択ノード０に繋ぎ直し（図９の符号（ａ）参照）、選択ノード２を削除する（図９の符号（ｂ）参照）。これにより、ノード４及びノード６から選択ノード２への状態遷移が選択ノード０への状態遷移に置き換えられ、ノード４及びノード６からの状態遷移が不要となった選択（遷移先）ノード２が削除される。
【００７７】
単純化処理部２４が図９に示す処理を配列に対して行なう例を図１０に示す。単純化処理部２４は、図１０の上段の符号（ａ）に示すように、遷移先ノード２の列のうちの２か所に設定された故障の確率（λ）を、同じ行（遷移元ノード４及び６）の遷移先ノード０の列に移動（加算）する。また、単純化処理部２４は、図１０の上段の符号（ｂ）に示すように、選択ノード２についてテーブルから遷移元ノード２の行と遷移先ノード２の列とを削除する。
【００７８】
なお、ノード２の子グラフの削除後のテーブルは、図１０の下段に示すように、遷移元ノード４及び６の状態遷移先が遷移先ノード２から遷移先ノード０に切り替えられ、選択ノード２が削除されたテーブルとなる。
【００７９】
（iv）単純化処理部２４が、上記（ii）及び（iii）の一連の処理を全てのノードについて行なうまで繰り返す。
【００８０】
例えば単純化処理部２４は、２つの選択ノードの全ての組み合わせについて、ノード番号の小さいノードから順に上記（ii）及び（iii）の処理、つまり２つの選択ノード（第１ノード）の選択から選択ノードの統合までの処理を、２つの選択ノードの組み合わせを変化させて順に実行する。
【００８１】
以下、図９及び図１０に示すようにノード２がノード０に統合された状態において、単純化処理部２４が更に上記（ii）の処理を実行した結果、ノード１の子グラフとノード３の子グラフとが同型であると判定した場合の上記（iii）の処理について説明する。
【００８２】
単純化処理部２４は、図１１に示すように、ノード番号の大きい選択ノード３に遷移していたエッジを残った選択ノード１に繋ぎ直し（図１１の符号（ｄ）参照）、選択ノード３を削除する（図１１の符号（ｅ）参照）。また、単純化処理部２４は、削除した選択ノード３から遷移するエッジを削除する（図１１の符号（ｆ）参照）。これにより、ノード５及びノード６から選択ノード３への状態遷移が選択ノード１への状態遷移に置き換えられ、ノード５及びノード６からの状態遷移並びにノード０への状態遷移が不要となった選択（遷移先）ノード３が削除される。
【００８３】
単純化処理部２４が図１１に示す処理を配列に対して行なう例を図１２に示す。単純化処理部２４は、図１２の上段の符号（ｄ）に示すように、遷移先ノード３の列のうちの２か所に設定された故障の確率λを、同じ行（遷移元ノード５及び６）の遷移先ノード１の列に移動（加算）する。なお、遷移元ノード５の行と遷移先ノード１の列との交点には既に故障の確率λが設定されている。この場合、単純化処理部２４は、当該交点に設定されているλに、遷移先ノード３の列に設定された故障の確率λを加算した２λを算出し、当該交点に２λを設定する。
【００８４】
また、単純化処理部２４は、図１２の上段の符号（ｅ）に示すように、選択ノード３についてテーブルから遷移元ノード３の行と遷移先ノード３の列とを削除する。なお、この処理により、図１２の上段の符号（ｆ）に示すように、選択ノード３から遷移先ノード０への状態遷移（故障の確率λ）、並びに遷移元ノード５及び６への状態遷移（復旧の確率μ）がそれぞれ削除され、選択ノード３から遷移するエッジの削除も行なわれる。
【００８５】
なお、ノード３の子グラフの削除後のテーブルは、図１２の下段に示すように、遷移元ノード５及び６の状態遷移先が遷移先ノード３から遷移先ノード１に切り替えられ、選択ノード３が削除されたテーブルとなる。
【００８６】
次に、図１１及び図１２に示すようにノード３がノード１に統合された状態において、単純化処理部２４が更に上記（ii）の処理を実行した結果、ノード４の子グラフとノード５の子グラフとが同型であると判定した場合の上記（iii）の処理について説明する。
【００８７】
単純化処理部２４は、図１３に示すように、ノード番号の大きい選択ノード６に遷移していたエッジを残った選択ノード４に繋ぎ直し（図１３の符号（ｇ）参照）、選択ノード６を削除する（図１３の符号（ｈ）参照）。また、単純化処理部２４は、削除した選択ノード６から遷移するエッジを削除する（図１３の符号（ｉ）参照）。これにより、ノード７から選択ノード６への状態遷移が選択ノード４への状態遷移に置き換えられ、ノード７からの状態遷移並びにノード１及びノード０への状態遷移が不要となった選択（遷移先）ノード６が削除される。
【００８８】
単純化処理部２４が図１３に示す処理を配列に対して行なう例を図１４に示す。単純化処理部２４は、図１４の上段の符号（ｇ）に示すように、遷移先ノード６の列に設定された故障の確率λを、同じ行（遷移元ノード７）の遷移先ノード４の列に移動（加算）する。なお、遷移元ノード７の行と遷移先ノード４の列との交点には既に故障の確率λが設定されている。この場合、単純化処理部２４は、当該交点に設定されているλに、遷移先ノード６の列に設定された故障の確率λを加算した２λを算出し当該交点に２λを設定する。
【００８９】
また、単純化処理部２４は、図１２の上段の符号（ｈ）に示すように、選択ノード６についてテーブルから遷移元ノード６の行と遷移先ノード６の列とを削除する。なお、この処理により、図１４の上段の符号（ｉ）に示すように、選択ノード６から遷移先ノード０及び１への状態遷移（故障の確率λ）、並びに遷移元ノード７への状態遷移（復旧の確率μ）がそれぞれ削除され、選択ノード６から遷移するエッジの削除も行なわれる。
【００９０】
なお、ノード６の子グラフの削除後のテーブルは、図１４の下段に示すように、遷移元ノード７の状態遷移先が遷移先ノード６から遷移先ノード４に切り替えられ、選択ノード４が削除されたテーブルとなる。
【００９１】
以上の処理により、単純化処理部２４が上記（ii）及び（iii）の一連の処理を全てのノードについて行なうまで繰り返すことで、モデル情報２１ｂの単純化処理が完了する。例えば図７及び図８に示すマルコフモデルは、単純化処理の完了により図１５に示すマルコフモデルにまで単純化（圧縮）される。
【００９２】
単純化処理部２４は、以上の処理によって単純化処理を完了すると、単純化したマルコフモデルを単純化モデル情報２１ｃ（図１５の配列）として保持部２１に格納する。なお、単純化処理部２４は、新たに単純化モデル情報２１ｃを生成する代わりに、単純化処理の過程でモデル情報２１ｂを修正（加工）することで、修正したモデル情報２１ｂを単純化モデル情報２１ｃとして扱ってもよい。
【００９３】
なお、ここまで、単純化処理部２４は単純化処理において２つの選択ノードを選択するものとして説明したが、これに限定されるものではない。例えば単純化処理部２４は、３つ以上の選択ノードを選択し、これらの選択ノードのうちの２つ以上の選択ノードの子グラフが同型であると判断した場合、当該２つ以上の選択ノードを統合することとしてもよい。
【００９４】
以上のように、単純化処理部２４は、以下の処理を実行する統合部の一例であるといえる。すなわち、統合部の一例としての単純化処理部２４は、モデル情報２１ｂに基づき、複数のノードから互いに異なる複数の第１ノードを選択し、選択した複数の第１ノードについて、各第１ノードからの記憶装置４の故障による状態遷移に関する情報を取得する。また、統合部の一例としての単純化処理部２４は、複数の第１ノードのうち、２以上の第１ノードの各々について取得した状態遷移に関する情報が所定の条件を満たす場合、２以上の第１ノードを１つの第１ノードに統合するのである。
【００９５】
（検証処理部２５の説明）
検証処理部２５は、例えば以下の検証アルゴリズムに基づいて、ストレージシステムの信頼性の検証処理を行なう。
【００９６】
検証アルゴリズムは、以下の処理を含んでよい。例えば、検証処理部２５は、単純化モデル情報２１ｃに基づき、図１６に示すように或るタイミングで各ノードに存在する確率を一次元配列で表現した検証テーブルを生成する。そして、検証処理部２５は、状態遷移行列（図１５のテーブル）に従って或る期間（単位時間）ごとに一次元配列を更新していき、所定期間（例えば１年）経過後に復元可能なノードに存在する確率を算出する。
【００９７】
例えば検証処理部２５は、いずれの記憶装置４にも故障が発生していない初期状態を、全ての記憶装置４が動作している状態（ノード７）とする。また、検証処理部２５は、時間０から或る期間経過後のタイミングである時間１について、ノード７からノード４、ノード５に遷移する確率に従って一次元配列を更新する。さらに、検証処理部２５は、時間１から或る期間経過後のタイミングである時間２について、ノード４、５、７から各ノードに遷移する確率に従って一次元配列を更新する。
【００９８】
このように、検証処理部２５は、初期状態から或る期間（単位時間）ごとのタイミングで一次元配列を更新し、タイミングが所定期間に達したときの確立を求めるのである。
【００９９】
一例として、検証処理部２５は、図１６に示すように、単純化モデル情報２１ｃに含まれるノード番号を用いて検証テーブルに項目（ノード番号）を作成する。また、検証処理部２５は、初期状態では全ての記憶装置４が正常に稼働していることを前提としているため、時間（時刻）０のエントリ（一次元配列）に対して、ノード０、ノード１、ノード４、及びノード５には０を、ノード（○○○）に対応するノード７には１．０（１００％）を設定する。なお、検証テーブルにおいて各ノードに設定される値は、或る時間（タイミング）において、複数の記憶装置４がそのノードの表す故障の状態（組み合わせ）になっている確率を示す値である。
【０１００】
次いで、検証処理部２５は時間１のエントリを生成（検証テーブルを更新）する。図１５に示すように、ノード７の遷移先ノードはノード４（故障の確率＝２λ）及びノード５（故障の確率＝λ）であるため、検証処理部２５は、図１６に示すように、時間１のエントリに対して、ノード４には２λを、ノード５にはλを設定する。また、ノード７が或る期間経過後もノード７である（状態が遷移しない）確率は、ノード７から他のノードに状態遷移する確率を１．０から減算したものとなる。このため検証処理部２５は、時間１のエントリに対して、ノード７には１．０−（２λ＋λ）＝１．０−３λを設定する。
【０１０１】
次に、検証処理部２５は時間２のエントリを生成（検証テーブルを更新）する。図１５に示すように、ノード０にはノード１（時間１での確率＝０）及びノード４（時間１での確率＝２λ）からそれぞれ故障の確率λで状態遷移が生じ得る。但し、時間１でのノード１の確率は０であるため、時間２でノード１からノード０に状態遷移する確率は０である。一方、時間１でのノード４の確率は２λであるため、時間２でノード４からノード０に状態遷移する確率は、直前の時間１でのノード４の確率（２λ）に、時間１から時間２までの間にノード４からノード０に状態遷移する確率（λ）を乗じた値となる。なお、ノード０は復旧不可能なノードであるため、ノード０が或る時間経過後もノード０である確率は１．０（１００％）である。しかし、時間１でのノード０の確率は０であるため、ノード０が時間２でもノード０である確率は０×１．０＝０となる。
【０１０２】
このため、検証処理部２５は、図１６に示すように、時間２のエントリに対して、ノード０にはノード４から遷移する確率として２λ×λ＝２λ２を設定する一方、ノード１から遷移する確率及びノード０が時間２でもノード０である確率には、それぞれ０×λ＝０、０×１．０＝０を設定する。
【０１０３】
また、図１５に示すように、ノード１にはノード４（時間１での確率＝２λ）から故障の確率λで状態遷移が生じ、ノード５（時間１での確率＝λ）から故障の確率２λで状態遷移が生じ得る。時間２でノード４からノード１に状態遷移する確率は、ノード０での計算と同様に２λ×λ＝２λ２と算出される。また、時間２でノード５からノード１に状態遷移する確率も、λ×２λ＝２λ２と算出される。このため、検証処理部２５は、図１６に示すように、時間２のエントリに対して、ノード１にはノード４及びノード５から遷移する確率としてそれぞれ２λ２を設定する一方、ノード１が時間２でもノード１である確率には０を設定する。
【０１０４】
さらに、図１５に示すように、ノード４にはノード１（時間１での確率＝０）から復旧の確率μで状態遷移が生じ、ノード７（時間１での確率＝１．０−３λ）から故障の確率２λで状態遷移が生じ得る。但し、時間１でのノード１の確率は０であるため、時間２でノード１からノード４に状態遷移する確率は０である。一方、時間２でノード７からノード４に状態遷移する確率は、上記の計算と同様に（１．０−３λ）×２λ＝２λ（１．０−３λ）と算出される。また、ノード４が時間２でもノード４である確率は、時間１でのノード４の確率２λと、ノード４から他のノードに状態遷移する確率を１．０から減算した値とを乗じたものとなる。すなわち、ノード４が時間２でもノード４である確率は、２λ×（１−（ノード２へ遷移する確率（２λ）＋ノード７へ遷移する確率（μ）））＝２λ（１−（２λ＋μ））と算出される。
【０１０５】
このため、検証処理部２５は、図１６に示すように、時間２のエントリに対して、ノード４にはノード１及びノード７から遷移する確率としてそれぞれ０及び２λ（１．０−３λ）を設定する一方、ノード４が時間２でもノード４である確率には２λ（１−（２λ＋μ））を設定する。
【０１０６】
なお、ノード５についても、ノード４と基本的に同様である。例えば検証処理部２５は、図１６に示すように、時間２のエントリに対して、ノード５にはノード１及びノード７から遷移する確率としてそれぞれ０及びλ（１．０−３λ）を設定する一方、ノード５が時間２でもノード５である確率にはλ（１−（２λ＋μ））を設定する。
【０１０７】
また、図１５に示すように、ノード７にはノード４（時間１での確率＝２λ）及びノード５（時間１での確率＝λ）からそれぞれ復旧の確率μで状態遷移が生じ得る。時間２でノード４及びノード５からノード７に状態遷移する確率は、上記の計算と同様に、それぞれ２λ×μ＝２λμ、λ×μ＝λμと算出される。また、ノード７が時間２でもノード７である確率は、時間１でのノード７の確率（１．０−３λ）と、ノード７から他のノードに状態遷移する確率を１．０から減算した値とを乗じたものとなる。すなわち、ノード７が時間２でもノード７である確率は、（１．０−３λ）×（１．０−３λ）＝（１．０−３λ）２と算出される。
【０１０８】
このため、検証処理部２５は、図１６に示すように、時間２のエントリに対して、ノード７にはノード４及びノード５から遷移する確率としてそれぞれ２λμ、λμを設定する一方、ノード７が時間２でもノード７である確率として（１．０−３λ）２を設定する。
【０１０９】
時間３以降のタイミングについても同様に、検証処理部２５は各ノードの確率を算出し、検証テーブルに設定する。
【０１１０】
以上のように、検証処理部２５は、或る期間ごとに、複数の記憶装置４が各ノードの表す故障の状態（組み合わせ）になっている確率を算出し、検証テーブルを生成（更新）する。これにより、信頼性の検証を行ないたい所定期間（例えば１年）経過後の各ノードの確率を算出することができる。
【０１１１】
そして、検証処理部２５は、或る期間の累積により所定期間に達したときの各ノードの確率を、復元不可能なノードの確率を除いて合計する。この合計の確率は、所定期間経過後にストレージにおいて復元不可能な故障が発生していない（継続して稼働している）確率であり、ストレージシステムの信頼性を表す値であるといえる。図１６の例では、検証処理部２５は、１年後の各ノードの確率ａ、ｂ、ｅ、ｆ、及びｈを、復元不可能なノード０の確率ａを除いて合計し、ストレージシステムの信頼性を表す値としてｂ＋ｅ＋ｆ＋ｈを算出する。
【０１１２】
なお、検証処理部２５は、ストレージシステムの信頼性の算出を行なうと、算出結果を検証結果２１ｄとして保持部２１に格納する。このとき検証処理部２５は、上述した検証に用いた検証テーブルを検証結果２１ｄに含めてもよい。
【０１１３】
以上のように、検証処理部２５は、２以上の第１ノードの統合後の単純化モデル情報２１ｃに基づき、ストレージシステム１の信頼性に関する情報を算出する算出部の一例であるといえる。
【０１１４】
〔１−３〕マルコフモデルの単純化による検証処理への影響
以上のように、一実施形態に係る信頼性検証装置の一例としてのクライアント装置２によれば、非ＭＤＳ符号が適用されたストレージシステム１のマルコフモデルを単純化（圧縮）することにより、ストレージシステムの信頼性の算出の演算時間を短縮することができる。
【０１１５】
ここで、非ＭＤＳ符号のマルコフモデルの単純化の有無による記憶装置の数とノード数との関係の一例を図１７に示す。
【０１１６】
図１７に示すように、マルコフモデルを圧縮しない場合、ノード数は記憶装置の数に対して指数関数的に増加する。一方、マルコフモデルを一実施形態の手法により圧縮した場合には、非圧縮の場合と比べてノード数の上昇率が大幅に減少し、記憶装置の数が増加した場合でもモデルの規模を小さく抑えることができる。
【０１１７】
例えば記憶装置の数が１３の場合、非圧縮のマルコフモデルではノード数が８１９２であるが、圧縮したマルコフモデルではノード数が６６となる。これは、記憶装置の数が６の場合の非圧縮のマルコフモデルのノード数の６４と同程度である。このように、クライアント装置２は、マルコフモデルを一実施形態の手法により圧縮することで、非圧縮の場合と比較して記憶装置の数が倍程度のマルコフモデルについても、信頼性を容易に検証することが可能となる。
【０１１８】
図１６に示すマルコフモデルを圧縮した場合の検証テーブルとの対比例として、非圧縮のマルコフモデルを用いて検証を行なう場合の検証テーブルを図１９に示す。図１６及び図１９の比較によっても明らかなように、圧縮の有無によってノード数及びエッジ数が異なるため、初期状態に近い時間２のタイミングでも演算量が倍程度異なる。このように、マルコフモデルの圧縮によってノード数を減少させることは、演算時間の短縮に大きく寄与することがわかる。
【０１１９】
また、図１８に例示するように、マルコフモデルを圧縮した場合、非圧縮の場合と比較して、算出される年間ディスク故障率の誤差は１％を大きく下回っている。このように、圧縮したマルコフモデルに基づき信頼性の検証を行なっても、実用には十分といえる結果が得られることがわかる。
【０１２０】
なお、非圧縮のマルコフモデルにおいては、記憶装置の数が１５以上の場合には、年間ディスク故障率を算出することが困難になっている。これは、記憶装置の数が１５以上の場合には、図１７に示すようにノード数が３万を超え、年間ディスク故障率の演算処理に非常に多くの時間がかかるためである。
【０１２１】
一方、マルコフモデルを圧縮した場合には、記憶装置の数が２０の場合でも年間ディスク故障率を算出することができる。このように、マルコフモデルを一実施形態の手法により圧縮することで、非圧縮の場合では演算が困難な一定の規模以上の非ＭＤＳ符号を用いたストレージシステムの信頼性の近似解を導出することが可能となる。
【０１２２】
このように、一実施形態に係るクライアント装置２は、マルコフモデルの相似性やノードの状態遷移の確率が非常に小さいことを利用し、マルコフモデルを単純化（マルコフモデルの規模を縮小）することで、ストレージシステムの信頼性を算出するためのシミュレーションを行なうことができる。
【０１２３】
〔１−４〕動作例
次に、上述の如く構成された一実施形態に係る信頼性検証装置の一例としてのクライアント装置２の動作例を、図２０及び図２１を参照して説明する。
【０１２４】
はじめに、図２０を参照して、信頼性検証装置の一例としてのクライアント装置２による全体の処理について説明する。
【０１２５】
まず、クライアント装置２の情報取得部２２は、ストレージシステム１の構成情報２１ａを取得し、保持部２１に格納する（ステップＳ１）。モデル生成部２３は、保持部２１に格納された構成情報２１ａに基づいてマルコフモデル（図３及び図４参照）を生成し、モデル情報２１ｂとして保持部２１に格納する（ステップＳ２）。
【０１２６】
次に、単純化処理部２４は、保持部２１に格納されたモデル情報２１ｂに対して、単純化アルゴリズムを用いたマルコフモデルの単純化処理を実施し（ステップＳ３）、単純化処理において単純化モデル情報２１ｃを保持部２１に格納する。検証処理部２５は、保持部２１に格納された単純化モデル情報２１ｃに基づいて、ストレージシステムの信頼性の検証処理を実施し（ステップＳ４）、検証処理において検証結果を検証結果２１ｄとして保持部２１に格納する。
【０１２７】
最後に、結果出力部２６は、保持部２１に格納された検証結果２１ｄを作業者に出力し（ステップＳ５）、処理が終了する。
【０１２８】
次に、図２１を参照して、信頼性検証装置の一例としてのクライアント装置２によるマルコフモデルの単純化処理について説明する。なお、前提としてモデル情報２１ｂ（マルコフモデル）は図３及び図４に例示するものであるとする。
【０１２９】
まず、単純化処理部２４は、保持部２１からモデル情報２１ｂを取得（参照）し（ステップＳ１１）、記憶装置４の故障数の多いノードから順に、ノードに通し番号（ノード番号）を設定する（ステップＳ１２）。例えばノード番号は、ノード０、ノード１、・・・、ノード７のように設定される（図７及び図８参照）。また、単純化処理部２４は、２つのノード（選択ノード）を選択するための変数としてｉ＝０、ｊ＝１を定義する（ステップＳ１３）。
【０１３０】
次に、単純化処理部２４は、マルコフモデルのテーブルを参照し、ノードｉが削除済みであるか否かを判断する（ステップＳ１４）。ノードｉが削除済みではない場合（ステップＳ１４のＮｏルート）、単純化処理部２４は、ノードｊが削除済みであるか否かを判断する（ステップＳ１５）。ノードｊが削除済みではない場合（ステップＳ１５のＮｏルート）、単純化処理部２４は、ノードｉの子グラフとノードｊの子グラフとが同型であるか否かを判定する（ステップＳ１６）。
【０１３１】
判定の結果、ノードｉの子グラフとノードｊの子グラフとが同型である場合（ステップＳ１７及びステップＳ１７のＹｅｓルート）、単純化処理部２４は、マルコフモデルのテーブルに対して、ノードｊに遷移するエッジを全てノードｉに設定し直す。また、単純化処理部２４は、テーブルに対して、ノードｊとノードｊから遷移するエッジとを削除する（ステップＳ１８）。
【０１３２】
そして、単純化処理部２４は、変数ｊに１を加算（インクリメント）し（ステップＳ１９）、ｊが通し番号（ノード番号）の最大値（この場合、７）を超えたか否かを判断する（ステップＳ２０）。ｊが通し番号を超えていない場合（ステップＳ２０のＮｏルート）、処理がステップＳ１５に移行する。一方、ｊが通し番号を超えた場合（ステップＳ２０のＹｅｓルート）、処理がステップＳ２１に移行する。
【０１３３】
なお、ステップＳ１５においてノードｊが削除済みである場合（ステップＳ１５のＹｅｓルート）、及びステップＳ１７においてノードｉの子グラフとノードｊの子グラフとが同型ではない場合（ステップＳ１７のＮｏルート）、処理がステップＳ１９に移行する。また、ステップＳ１４において、ノードｉが削除済みの場合（ステップＳ１４のＹｅｓルート）、処理がステップＳ２１に移行する。
【０１３４】
ステップＳ２１では、単純化処理部２４は、変数ｉに１を加算（インクリメント）する。次いで、単純化処理部２４は、ステップＳ２１で１を加算したｉにさらに１を加算した値を変数ｊに設定する（ステップＳ２２）。
【０１３５】
そして、単純化処理部２４は、ステップＳ２１及びＳ２２の処理によりｊが通し番号の最大値（この場合、７）を超えたか否かを判断する（ステップＳ２３）。ｊが通し番号の最大値を超えていない場合（ステップＳ２３のＮｏルート）、処理がステップＳ１４に移行する。一方、ｊが通し番号の最大値を超えた場合（ステップＳ２３のＹｅｓルート）、単純化処理部２４は、ステップＳ１７において生成（修正）したテーブルを単純化モデル情報２１ｃとして例えば保持部２１へ出力（格納）し（ステップＳ２４）、処理が終了する。
【０１３６】
以上の処理により、単純化処理部２４は、ノード番号の小さいノードから順に、全てのノードの組み合わせで２つのノード（選択ノード）を選択することができる。また、単純化処理部２４は、２つの選択ノードの子グラフが同型であるか否かを判定し、同型である場合にノード番号の大きいノードの子グラフを他方の子グラフに統合することができる。
【０１３７】
〔２〕ハードウェア構成例
図２２に示すように、上述した一実施形態に係るクライアント装置２は、ＣＰＵ２ａ、メモリ２ｂ、記憶部２ｃ、インタフェース部２ｄ、入出力部２ｅ、及び読取部２ｆをそなえることができる。
【０１３８】
ＣＰＵ２ａは、種々の制御や演算を行なう演算処理装置（プロセッサ）の一例である。ＣＰＵ２ａは、対応する各ブロック２ｂ〜２ｆと接続され、メモリ２ｂ、記憶部２ｃ、記録媒体２ｇ、又は図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムを実行することにより、種々の機能を実現することができる。
【０１３９】
メモリ２ｂは、種々のデータやプログラムを格納する記憶装置である。ＣＰＵ２ａは、プログラムを実行する際に、メモリ２ｂにデータやプログラムを格納し展開する。なお、メモリ２ｂとしては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
【０１４０】
記憶部２ｃは、種々のデータやプログラム等を格納するハードウェアである。記憶部２ｃとしては、例えばＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、フラッシュメモリやＲＯＭ等の不揮発性メモリ等の各種装置が挙げられる。なお、図２に示す保持部２１は、メモリ２ｂ又は記憶部２ｃにより実現されてよい。
【０１４１】
例えば、記憶部２ｃは、信頼性検証装置としてのクライアント装置２の各種機能の全部もしくは一部を実現する信頼性検証プログラム２００を格納することができる。
【０１４２】
インタフェース部２ｄは、有線又は無線による、ネットワーク５や他の情報処理装置等との間の接続及び通信の制御等を行なう通信インタフェースである。インタフェース部２ｄとしては、例えば、ＬＡＮ、ＳＡＮ、ＦＣ（Fibre Channel）、インフィニバンド（InfiniBand）等の種々のインタフェースに準拠したアダプタが挙げられる。例えば、ＣＰＵ２ａは、インタフェース部２ｄ及びネットワーク５を介して取得した信頼性検証プログラム２００を記憶部２ｃに格納してもよい。
【０１４３】
入出力部２ｅは、マウス、キーボード、タッチパネル、音声操作のためのマイク等の入力装置（操作部）、並びにディスプレイ、スピーカー、及びプリンタ等の出力装置（出力部、表示部）の少なくとも一方を含むことができる。例えば、入力装置は作業者によるクライアント装置２の各種操作や構成情報２１ａ（又はモデル情報２１ｂ）等のデータの入力等の作業に用いられてよく、出力装置は検証結果２１ｄや各種通知等の出力（表示）に用いられてよい。
【０１４４】
読取部２ｆは、コンピュータ読取可能な記録媒体２ｇに記録されたデータやプログラムを読み出す装置である。この記録媒体２ｇには信頼性検証プログラム２００が格納されてもよい。
【０１４５】
例えば、ＣＰＵ２ａは、記憶部２ｃ又は記録媒体２ｇに格納された信頼性検証プログラム２００を、メモリ２ｂ等の記憶装置に展開して実行することにより、信頼性検証装置としてのクライアント装置２の機能を実現することができる。
【０１４６】
なお、記録媒体２ｇとしては、例えばフレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク等の光ディスクや、ＵＳＢ（Universal Serial Bus）メモリやＳＤカード等のフラッシュメモリが挙げられる。なお、ＣＤとしては、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（CD-Recordable）、ＣＤ−ＲＷ（CD-Rewritable）等が挙げられる。また、ＤＶＤとしては、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【０１４７】
上述した各ブロック２ａ〜２ｆ間はそれぞれバスで相互に通信可能に接続される。また、クライアント装置２の上述したハードウェア構成は例示である。従って、クライアント装置２内でのハードウェアの増減（例えば任意のブロックの追加や省略）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【０１４８】
〔３〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１４９】
例えば、図２に示すクライアント装置２の各機能ブロックは、任意の組み合わせで併合してもよく、分割してもよい。
【０１５０】
また、上述した説明では、ノード番号を記憶装置４の故障数が多い順に設定するものとしたが、これに限定されるものではなく、他の順序であってもよい。また、複数のノードからノードを選択する順序を決定できるのであれば、ノード番号に代えて任意の文字列が用いられてもよい。
【０１５１】
さらに、クライアント装置２において検証処理部２５及び結果出力部２６の機能を省略してもよい。この場合、クライアント装置２は、モデル情報２１ｂのマルコフモデルを単純化して規模を縮小し、最適化した単純化モデル情報２１ｃを生成するモデルの最適化装置（又はモデルの分析装置）として位置付けることができる。このとき、クライアント装置２は、検証処理部２５及び結果出力部２６の機能をそなえる他の検証装置（例えば信頼性検証装置）に対して、最適化した単純化モデル情報２１ｃを出力すればよい。
【符号の説明】
【０１５２】
１    ストレージシステム
２    クライアント装置（信頼性検証装置）
３，３ａ，３ｂ    ストレージ装置
４，４ａ〜４ｈ    記憶装置
５    ネットワーク
２１    保持部
２１ａ    構成情報
２１ｂ    モデル情報
２１ｃ    単純化モデル情報
２１ｄ    検証結果
２２    情報取得部
２３    モデル生成部
２４    単純化処理部
２５    検証処理部
２６    結果出力部
【図１】
0006476931.tif 000002
【図２】
0006476931.tif 000003
【図３】
0006476931.tif 000004
【図４】
0006476931.tif 000005
【図５】
0006476931.tif 000006
【図６】
0006476931.tif 000007
【図７】
0006476931.tif 000008
【図８】
0006476931.tif 000009
【図９】
0006476931.tif 000010
【図１０】
0006476931.tif 000011
【図１１】
0006476931.tif 000012
【図１２】
0006476931.tif 000013
【図１３】
0006476931.tif 000014
【図１４】
0006476931.tif 000015
【図１５】
0006476931.tif 000016
【図１６】
0006476931.tif 000017
【図１７】
0006476931.tif 000018
【図１８】
0006476931.tif 000019
【図１９】
0006476931.tif 000020
【図２０】
0006476931.tif 000021
【図２１】
0006476931.tif 000022
【図２２】
0006476931.tif 000023
【図２３】
0006476931.tif 000024
【図２４】
0006476931.tif 000025
【図２５】
0006476931.tif 000026
【図２６】
0006476931.tif 000027
【図２７】
0006476931.tif 000028