(57)【要約】【課題】データの冗長先を自動かつフレキシブルに変更させ、システムの変更時のデータの真正性を証明する記憶システム及びデータ保存方法を提案する。【解決手段】正側ストレージ装置では、前記冗長データを保存するための副側ストレージ装置を検索する検索部と、前記データが真正であることを示す正側の真正情報を生成する正側生成部とを備え、副側ストレージ装置では、前記冗長データが真正であることを示す副側の真正情報を生成する副側生成部を備え、前記正側の真正情報と前記副側の真正情報とが一致した場合に、前記データを前記正側ストレージ装置の保存領域に保存する正側保存部と、前記冗長データを前記副側ストレージ装置の保存領域に保存する副側保存部とを備えるようにした。【選択図】図２
2007299114.tif 000002
【特許請求の範囲】
【請求項１】
データを保存する保存領域を有する正側ストレージ装置と当該データの冗長データを保存する保存領域を有する副側ストレージ装置とを少なくとも２台以上備える記憶システムにおいて、
正側ストレージ装置は、
前記冗長データを保存するための副側ストレージ装置を検索する検索部と、
前記データが真正であることを示す正側の真正情報を生成する正側生成部と
を備え、
副側ストレージ装置は、
前記冗長データが真正であることを示す副側の真正情報を生成する副側生成部を備え、
前記正側の真正情報と前記副側の真正情報とが一致した場合に、前記データを前記正側ストレージ装置の保存領域に保存する正側保存部と、前記冗長データを前記副側ストレージ装置の保存領域に保存する副側保存部と
を備える
ことを特徴とする記憶システム。
【請求項２】
前記検索部は、
全てのストレージ装置の各々に付与され、各々ストレージ装置を認識する個別識別情報から前記正側ストレージ装置に付与される個別識別情報を前記副側ストレージ装置に送信することにより前記冗長データを保存するための前記副側ストレージ装置を検索する
ことを特徴とする請求項１記載の記憶システム。
【請求項３】
前記正側生成部は、
前記データの前記冗長データが前記副側ストレージ装置の保存領域に保存できないと判断した場合に、
前記冗長データを分割した分割冗長データを前記副側ストレージ装置の保存領域に保存する前に、前記正側ストレージ装置内で前記分割冗長データに相当する仮想分割冗長データを仮想的に生成する正側仮想生成部を備える
ことを特徴とする請求項１記載の記憶システム。
【請求項４】
前記正側生成部は、
前記仮想分割冗長データが真正であることを示す仮想分割真正情報を生成する仮想分割真正情報生成部を備え、
前記副側生成部は、
前記分割冗長データが真正であることを示す分割真正情報を生成する分割真正情報生成部を備え、
前記仮想分割真正情報と前記分割真正情報とが一致した場合に、前記副側ストレージ装置の保存領域に前記分割冗長データを保存する分割冗長保存部を備える
ことを特徴とする請求項３記載の記憶システム。
【請求項５】
前記副側ストレージ装置は、複数の副側ストレージ装置からなり、
前記副側生成部は、
前記分割冗長データが保存された副側ストレージ装置以外の他の副側ストレージ装置に前記分割冗長データを連結してなる連結冗長データを生成する連結冗長生成部と、
前記連結冗長データが真正であることを示す連結真正情報を生成する連結真正情報生成部と、
前記正側の真正情報と前記連結真正情報とが一致した場合に、前記他の副側ストレージ装置の保存領域に前記連結冗長データを保存する連結冗長保存部とを備える
ことを特徴とする請求項４記載の記憶システム。
【請求項６】
データを保存する保存領域を有する正側ストレージ装置と当該データの冗長データを保存する保存領域を備える副側ストレージ装置とを少なくとも２台以上備える記憶システムのデータ保存方法において、
正側ストレージ装置が、前記冗長データを保存するための副側ストレージ装置を検索する第１のステップと、
前記データが真正であることを示す正側の真正情報を生成する第２のステップと、
副側ストレージ装置が、前記冗長データが真正であることを示す副側の真正情報を生成する第３のステップと、
前記正側の真正情報と前記副側の真正情報とが一致した場合に、前記データを前記正側ストレージ装置の保存領域に保存し、前記冗長データを前記副側ストレージ装置の保存領域に保存する第４のステップと
を備えることを特徴とするデータ保存方法。
【請求項７】
前記第１のステップでは、
前記正側ストレージ装置が、全てのストレージ装置の各々に付与され各々ストレージ装置を認識する個別識別情報から自ストレージ装置に付与される個別識別情報を前記副側ストレージ装置に送信することで、前記冗長データを保存するための前記副側ストレージ装置を検索する
ことを特徴とする請求項６記載のデータ保存方法。
【請求項８】
前記正側ストレージ装置が、前記データの前記冗長データが前記副側ストレージ装置の保存領域に保存できないと判断した場合に、
前記冗長データを分割した分割冗長データを前記副側ストレージ装置の保存領域に保存する前に、前記正側ストレージ装置内で前記分割冗長データに相当する仮想分割冗長データを仮想的に生成する第５のステップ
を備えること特徴とする請求項６記載のデータ保存方法。
【請求項９】
前記第５のステップでは、
前記正側ストレージ装置が、前記仮想分割冗長データが真正であることを示す仮想分割真正情報を生成し、
前記副側ストレージ装置が、前記分割冗長データが真正であることを示す分割真正情報を生成する第６のステップと、
前記仮想分割真正情報と前記分割真正情報とが一致した場合に、前記副側ストレージ装置の保存領域に前記分割冗長データを保存する第７のステップと
を備える特徴とする請求項８記載のデータ保存方法。
【請求項１０】
前記副側ストレージ装置は、複数の副側ストレージ装置からなり、
前記分割冗長データが保存された副側ストレージ装置以外の他の副側ストレージ装置が、前記分割冗長データを連結してなる連結冗長データを生成する第８のステップと、
前記連結冗長データが真正であることを示す連結真正情報を生成する第９のステップと、
前記正側の真正情報と前記連結真正情報とが一致した場合に、前記他の副側ストレージ装置の保存領域に前記連結冗長データを保存する第１０のステップと
を備えること特徴とする請求項９記載のデータ保存方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システム及びデータ保存方法に関し、特に長期間に渡るデータの保存を必要とする記憶システムに適用して好適なものである。
【背景技術】
【０００２】
今日では内外国を問わず、大容量のデータを記憶システムに長期間に渡り保存することが要求される。しかしながら当該データは、外部記憶装置の耐久年数を超えて保存する必要があるため、記憶システム自体による故障等の障害発生や記憶システム内の改良に伴う交換の際には、データの喪失を防ぐ必要がある。
【０００３】
そこでまず、記憶システム内にあるストレージ装置を、一組の現用のストレージ装置及び予備用のストレージ装置として用いることで、データの喪失を防ぐ技術が開示されている（特許文献１参照）。この技術によれば、ストレージ装置の故障等の障害発生を予め判定しておくことで、事前に現用のストレージ装置から予備用のストレージ装置に主装置を切り替えておくことができる。
【０００４】
次に、記憶システムの改良に伴う交換をする際に、ホスト装置から記憶システムへのアクセスを制御し、記憶システム内にあるクロック回路から提供されるタイムスタンプ（現在の日付と時刻）をメモリ内にログとして記録することでデータを保存する技術が開示されている（特許文献２参照）。この技術によれば、現時点での記憶システムの動作状況を性格に把握することができる。
【特許文献１】特開平７−１２９３３１号公報
【特許文献２】特開２００５−３０１９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１において提案された技術によると、予め常に一組のストレージ装置を複数用意しなければならず、通常単体で運用するストレージ装置に比べると、倍の容量を必要とする。そしてこのような技術は、冗長先である予備用のストレージ装置をフレキシブルに変更することができないという問題があった。
【０００６】
また、特許文献２において提案された技術によると、記憶システム内にログの記録は残るものの、データ自体の記録は残らないため、万一ログが改ざんされてもデータの真正性を証明することが難しいという問題もあった。
【０００７】
本発明は、以上の点を考慮してなされたもので、データの冗長先を自動かつフレキシブルに変更させ、システムの変更時のデータの真正性を証明する記憶システム及びデータ保存方法を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため本発明は、データを保存する保存領域を有する正側ストレージ装置と当該データの冗長データを保存する保存領域を有する副側ストレージ装置とを少なくとも２台以上備える記憶システムにおいて、正側ストレージ装置は、前記冗長データを保存するための副側ストレージ装置を検索する検索部と、前記データが真正であることを示す正側の真正情報を生成する正側生成部とを備え、副側ストレージ装置は、前記冗長データが真正であることを示す副側の真正情報を生成する副側生成部を備え、前記正側の真正情報と前記副側の真正情報とが一致した場合に、前記データを前記正側ストレージ装置の保存領域に保存する正側保存部と、前記冗長データを前記副側ストレージ装置の保存領域に保存する副側保存部とを備えることを特徴とする。
【０００９】
この結果、この記憶システムでは、正側ストレージ装置が冗長データの保存先としてフレキシブルに副側ストレージ装置を検索でき、同一データが正側ストレージ装置及び副側ストレージ装置に常時少なくとも２ヶ所以上保存することができる。
【００１０】
また本発明は、データを保存する保存領域を有する正側ストレージ装置と当該データの冗長データを保存する保存領域を備える副側ストレージ装置とを少なくとも２台以上備える記憶システムのデータ保存方法において、正側ストレージ装置が、前記冗長データを保存するための副側ストレージ装置を検索する第１のステップと、前記データが真正であることを示す正側の真正情報を生成する第２のステップと、副側ストレージ装置が、前記冗長データが真正であることを示す副側の真正情報を生成する第３のステップと、前記正側の真正情報と前記副側の真正情報とが一致した場合に、前記データを前記正側ストレージ装置の保存領域に保存し、前記冗長データを前記副側ストレージ装置の保存領域に保存する第４のステップとを備えることを特徴とする。
【００１１】
この結果、このデータ保存方法では、正側ストレージ装置が冗長データの保存先としてフレキシブルに副側ストレージ装置を検索でき、同一データが正側ストレージ装置及び副側ストレージ装置に常時少なくとも２ヶ所以上保存することができる。
【発明の効果】
【００１２】
本発明によれば、データの冗長先を自動かつフレキシブルに変更させ、システムの変更時のデータの真正性を証明することができる。
【発明を実施するための最良の形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
ディスク装置やフラッシュメモリ等の記憶装置の耐久年数を超えるような長い期間、データを保存することが必要な場合がある。このデータの保存が必要な期間内に、記憶装置の故障や老朽化に伴う記憶装置の交換が生じる場合がある。また、格納すべきデータ量やシステム構成の変更に伴い、記憶装置の台数が増減する場合や、記憶装置が異種の装置へ変更される場合もある。
【００１５】
このようにストレージシステムの構成変更や記憶装置のリプレース等に伴い、格納されていた長期保存対象のデータが、従来と同じ記憶装置で格納を続けることが難しくなり、データを移行することが必要な場合がある。
【００１６】
本実施の形態においては、記憶装置の耐久年数を超える長期保存対象のデータに関し、長期保存期間中にデータを移行する必要が生じた場合であっても、データの内容の整合性を保証する機能および方法を提供する。また、記憶装置が交換された場合や、システム構成の変更が生じた場合に、データを分割して記憶装置へ格納しなければならない場合も、分割された各々のデータについての真正性を確認する機能および方法を提供する。
【００１７】
（１）本実施の形態による記憶システムの構成
図１において、１は全体として本実施の形態による記憶システムを示す。この記憶システム１は、それぞれサービスプロセッサ４が接続された複数のストレージ装置３がネットワーク５を介して接続され、これら複数のストレージ装置３のうちの１つのストレージ装置３Ａにホスト装置２が接続されることにより構成されている。
【００１８】
ホスト装置２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。またホスト装置２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備える。
【００１９】
ネットワーク５は、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。このネットワーク５を介したホスト装置２及び各ストレージ装置間の通信は、例えばネットワーク５がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、ネットワーク５がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００２０】
サービスプロセッサ４は、ストレージ装置３の保守又は管理のために操作されるコンピュータ装置であり、例えばノート型のパーソナルコンピュータから構成される。このサービスプロセッサ４は、ストレージ装置３を介してホスト装置２が接続されており、ホスト装置２からデータ或いは命令を受信することができる。サービスプロセッサ４は、ストレージ装置３内の障害発生を監視してディスプレイ画面（図示せず）に表示することができる。
【００２１】
ストレージ装置３は、図２に示すように、ストレージ装置３を制御するためのストレージ制御装置３０と、ホスト装置２から要求される書き込みデータ又は読み出しデータを保存するためのストレージユニット３１とを備えて構成される。
【００２２】
ストレージ制御装置３０は、ポート制御部３００、ＣＰＵ３０１、メモリ制御部３０２、装置間接続制御部３０３及びストレージ制御部３０６を備えて構成される。
【００２３】
ポート制御部３００は、ネットワーク５に対するポート（図示せず）によりデータの入出力を制御する制御部である。当該ポートには、ＷＷＮ（World Wide Name）やＩＰ（Internet Protocol）アドレスなどのネットワークアドレスが付与される。
【００２４】
ＣＰＵ３０１は、ストレージ装置３全体の動作制御を司るプロセッサであり、メモリ３０７に格納されたシステムプログラム３１０や管理テーブル３１９に従って各種処理を実行する。
【００２５】
メモリ制御部３０２は、メモリ３０７内に格納されたシステムプログラム３１０や管理テーブル３１９を制御する制御部である。システムプログラム３１０や管理テーブル３１９については、後で詳細に説明する。
【００２６】
装置間接続制御部３０３は、ネットワーク５を介して接続された複数のストレージ装置３間の通信を制御する制御部である。装置間接続制御部３０３は、ストレージ装置３間の空き容量や稼働状況等の装置管理情報を通信するための装置間通信部３０４と、ストレージ装置に格納されるデータを他のストレージ装置へ転送するために当該データの通信を制御する装置間データ転送部３０５とを備えて構成される。
【００２７】
ストレージ制御部３０６は、ストレージユニット３１に格納されるデータの保存領域３２４を制御する制御部である。
【００２８】
ストレージユニット３１は、長期間に渡り保存を必要とするデータを格納する保存領域３２４と、長期間に渡る保存を必要としない通常のデータを格納する通常領域３２５とから構成される。保存領域３２４や通常領域３２５には、ハードディスクドライブＨＤＤ単位でデータが格納される。
【００２９】
（２）本実施の形態による管理テーブルの構成
次に、本実施の形態によるストレージ制御装置３０のメモリ３０７に格納される管理テーブル３１９について説明する。
【００３０】
なお、図１に示す記憶システム１において、便宜上、正側ストレージ装置をストレージ装置３Ａとし、副側ストレージ装置をその他のストレージ装置３Ｂ〜３Ｎとするが、この例に限られるものではない。
【００３１】
この記憶システム１は、正側ストレージ装置３Ａがデータの保存先として少なくとも２ヶ所以上のストレージ装置にフレキシブルに保存できるように副側ストレージ装置３Ｂ〜３Ｎを検索して、データと冗長データとが同一データであるとの正側真正情報及び副側真正情報を正側ストレージ装置３Ａ及び副側ストレージ装置３Ｂ〜３Ｎ内でそれぞれ生成し、当該正側ストレージ装置３Ａ及び副側ストレージ装置３Ｂ〜３Ｎの各々の保存領域３２４に、正側真正情報及び副側真正情報が一致した場合に同一のデータを保存できる点を特徴の１つとしている。
【００３２】
そのための手段として管理テーブル３１９には、装置テーブル３２０と、データ管理テーブル３２１と、ストレージ管理テーブル３２２と、統計情報テーブル３２３とが格納されている。
【００３３】
（２−１）装置テーブル
装置テーブル３２０は、副側ストレージ装置３Ｂ〜３Ｎに格納されたデータの管理情報を正側ストレージ装置３Ａが副側ストレージ装置３Ｂ〜３Ｎの装置テーブルから独立させ、かつ、個別に全てのストレージ装置３を管理するためのテーブルであり、図３に示すように、「装置ＩＤ」フィールド３２０Ａと、「個別識別ＩＤ」フィールド３２９Ｂとから構成される。
【００３４】
「装置ＩＤ」フィールド３２０Ａには、正側ストレージ装置３Ａ内で全てのストレージ装置３を識別するための装置ＩＤが格納される。また、「個別識別ＩＤ」フィールド３２０Ｂには、全てのストレージ装置３を特定するためのシリアル番号に相当する個別識別ＩＤが格納される。
【００３５】
したがって例えば、図３に示すように、「装置ＩＤ」が「Ｓ０」であるストレージ装置の個別識別ＩＤは「xx−xx−xx−xx−xx−xA」であることを示す。
【００３６】
（２−２）データ管理テーブル
データ管理テーブル３２１は、長期間に渡り保存を必要とするデータを正側ストレージ装置３Ａで管理する保存情報と、副側ストレージ装置３Ｂ〜３Ｎで冗長データを管理する保存情報とを管理するためのテーブルであり、図４に示すように、「データＩＤ」フィールド３２１Ａ、「保存エリア」フィールド３２１Ｂ、「冗長先保存エリア」フィールド３２１Ｃ、「データ作成日」フィールド３２１Ｄ、「最終チェック日」フィールド３２１Ｅとから構成される。
【００３７】
まず「データＩＤ」フィールド３２１Ａは、正側ディスク装置３Ａに保存されたデータを識別するためのデータＩＤが格納される。
【００３８】
そして「保存エリア」フィールド３２１Ｂは、ストレージユニット３１内の保存領域３２４での保存先情報が格納さる。さらに「保存エリア」フィールド３２１Ｂは、「パリティグループ」フィールド３２１Ｆ、「先頭アドレス」フィールド３２１Ｇ、「データ長」フィールド３２１Ｈから構成される。
【００３９】
「パリティグループ」フィールド３２１Ｆには、１つのデータを複数のハードディスクドライブＨＤＤで分散し保存するために構成されたパリティ群の名称が格納され、データがどのパリティに保存されているかを示している。また、「先頭アドレス」フィールド３２１Ｇには、保存されるデータの先頭アドレスが格納され、「データ長」フィールド３２１Ｈには、保存されるデータの長さが格納される。
【００４０】
「冗長先保存エリア」フィールド３２１Ｃは、正側ストレージ装置３Ａに保存されたデータの冗長先を管理する情報が格納される。そして、「冗長先保存エリア」フィールド３２１Ｃは、「装置ＩＤ」フィールド３２１Ｉ、「データＩＤ」フィールド３２１Ｊから構成されている。「装置ＩＤ」フィールド３２１Ｉには、正側ストレージ装置３Ａが個別に管理する冗長先の副側ストレージ装置３Ｂ〜３Ｎの装置ＩＤが格納され、「データＩＤ」フィールド３２１Ｊには、冗長データのデータＩＤが格納される。
【００４１】
「データ作成日」フィールド３２１Ｄには、データを作成した年月日が格納される。また、「最終チェック日」フィールド３２１Ｅには、当該データを最後に確認した日が格納される。
【００４２】
例えば図４に示すように「データＩＤ」が「Ｄ０」の識別情報をもつデータの「パリティグループ」フィールド３２１Ｆの「パリティグループ」は「ＰＧ１」であり、「先頭アドレス」が「X0000」かつ、「データ長」が「1024」のデータであることを示している。そしてこのデータと同一データである冗長データ「Ｄ０」を保存する副側ストレージ装置３Ｂ〜３Ｎを、正側ストレージ装置３Ａ内では「Ｓ１」と名づけ、正側ストレージ装置３Ａのデータ管理テーブル３２１内で管理されることを示す。さらにこのデータ「Ｄ０」のデータ作成日は「2006年1月1日」であり、このデータを最後に確認した日は「2006年2月1日」であることを示す。
【００４３】
（２−３）装置テーブルとデータ管理テーブルとの相互関係
ここで、上述した２つのテーブルと複数のストレージ装置とがどのように相互に連携され管理されているのかを説明する。
【００４４】
図５には、正側ストレージ装置３Ａ内で管理される装置テーブル３２０とデータ管理テーブル３２１と、副側ストレージ装置３Ｂ内で管理される装置テーブル３２０とデータ管理テーブル３２１との連携図を示している。
【００４５】
まず、正側ストレージ装置３Ａの装置テーブル３２０とデータ管理テーブル３２１の相互関係を説明する。「個別識別ＩＤ」が「xx−xx−xx−xx−xx−xB」をもつ、あるストレージ装置に着目すると、「装置ＩＤ」が「Ｓ１」と名づけられたストレージ装置であることを示している。同様に、副側ストレージ装置３Ｂの装置テーブル３２０とデータ管理テーブル３２１の相互関係も、「個別識別ＩＤ」が「xx−xx−xx−xx−xx−xA」をもつ、あるストレージ装置に着目すると、「装置ＩＤ」が「Ｓ１」と名づけられたストレージ装置に保存されていることを示している。
【００４６】
次に、正側ストレージ装置３Ａの装置テーブル３２０と副側ストレージ装置３Ｂの装置テーブル３２０の相互関係を説明する。
【００４７】
まず、個別識別ＩＤが共通のＩＤは同一のストレージ装置であることを示す。したがって、例えば「個別識別ＩＤ」が「xx−xx−xx−xx−xx−xB」の、あるストレージ装置に着目すると、正側ストレージ装置３Ａの装置テーブル３２０では、このＩＤをもつストレージ装置は、「装置ＩＤ」が「Ｓ１」と名づけられ管理されている一方、副側ストレージ装置３Ｂの装置テーブル３２０では、このＩＤもつストレージ装置の「装置ＩＤ」は「Ｓ０」と名づけられ管理されていることを示している。
【００４８】
上述のように、各ストレージ装置はそれぞれのストレージ装置内で共通の個別識別ＩＤを有しつつ、この個別識別ＩＤに対応する独立した装置ＩＤを名づけて管理していることがわかる。したがって各ストレージ装置が、各テーブル内で同じ装置ＩＤを有していても個別識別ＩＤが異なれば、異なるストレージ装置であることを示す。たとえば、正側ストレージ装置３Ａの装置テーブル３２０の「装置ＩＤ」の「Ｓ１」と、副側ストレージ装置３Ｂの装置テーブル３２０の「装置ＩＤ」の「Ｓ１」とは、異なる装置であることを示している。
【００４９】
このように正側ストレージ装置３Ａ内で、副側ストレージ装置とは独立して全てのストレージ装置３を管理するため、ストレージ装置３を追加又は削除する場合にもシステムの変更処理をし易くするように設定されていることがわかる。
【００５０】
（２−４）ストレージ管理テーブル
ストレージ管理テーブル３２２は、ストレージユニット３１の保存領域３２４を管理するためのテーブルであり、図６に示すように、「エリアＩＤ」フィールド３２２Ａと、「保存エリア」フィールド３２２Ｂとから構成される。
【００５１】
「エリアＩＤ」フィールド３２２Ａには、ストレージユニット３１の保存領域ＩＤが格納され、「保存エリア」フィールド３２２Ｂには、ストレージユニット３１の保存領域３２４の保存情報が格納される。そして「保存エリア」フィールド３２２Ｂは、さらに「パリティグループ」フィールド３２２Ｃ、「総容量」フィールド３２２Ｄ、「空き容量」フィールド３２２Ｄから構成される。
【００５２】
「パリティグループ」フィールド３２２Ｃは、上述のデータ管理テーブル３２１で説明したので省略する。また「総容量」フィールド３２２Ｄは、保存領域３２４内の指定エリアにデータを保存できる総容量情報が格納され、「空き容量」フィールド３２２Ｅには、保存領域３２４内の指定エリアの空き容量情報が格納される。
【００５３】
例えば図２に示すように、保存領域３２４内の「パリティグループ」が「ＰＧ１」である保存領域の「エリアＩＤ」は「Ａ０」であり、このエリアの「総容量」は「３００ＧＢ」であり、そのうち「空き容量」は「２５０ＧＢ」であることを示している。
【００５４】
（２−５）統計情報テーブル
統計情報テーブル３２３は、各々のストレージ装置の統計情報を管理するためのテーブルである。この統計情報テーブル３２３は、図７に示すように、「ハードストレージＩＤ」フィールド３２３Ａ、「エリアＩＤ」フィールド３２３Ｂ、「エラー回数」フィールド３２３Ｃ、「使用開始日」フィールド３２３Ｄ、「稼働時間累計」フィールド３２３Ｅから構成される。
【００５５】
そして「ハードストレージＩＤ」フィールド３２３Ａには、パリティグループを構成するハードストレージＩＤが格納される。「エリアＩＤ」フィールド３２３Ｂは、ストレージ管理テーブル３２２で説明したので省略する。また、「エラー回数」フィールド３２３Ｃは、保存領域３２４の該当エリア内での稼動中のエラー発生回数が格納される。そして、「使用開始日」フィールド３２３Ｄは、保存領域３２４の該当エリアでの使用開始日が格納される。さらに「稼動時間累計」フィールドは、保存領域３２４の該当エリア内の稼働時間の総時間数が格納される。
【００５６】
例えば図７に示すように、「ハードストレージＩＤ」が「Ｈ０」である保存領域３２４内のエリア「Ａ０」は、「エラー回数」が「０」回であり、このエリアの使用開始日は、「2006年1月1日」であり、総稼働時間が「７４４時間」であることを示している。
【００５７】
（３）本実施の形態によるシステム処理
次に、本実施の形態によるシステム処理について説明する。
【００５８】
（３−１）ストレージ装置を追加する場合
（３−１−１）構成管理処理
まず、本願のデータ保護処理を説明する前に、記憶システム１に新規なストレージ装置を追加したときに、既存のストレージ装置が当該新規のストレージ装置を認識するまでの処理手順を説明する。なお、以下においては、新規のストレージ装置をストレージ装置３Ｎとし、既存のストレージ装置をストレージ装置３Ａ〜３Ｃとして説明をする。
【００５９】
図８は、構成管理処理に関する新規のストレージ装置３ＮのＣＰＵ３０１及び既存のストレージ装置３Ａ〜３ＣのＣＰＵ３０１の処理内容を示すフローチャートである。新規ストレージＣＰＵ３０１及び既存ストレージＣＰＵ３０１は、それぞれメモリ３０７内に格納された構成管理プログラム３１１に基づいて構成管理処理を実行することにより、既存のストレージ装置３Ａ〜３Ｃに新規なストレージ装置３Ｎの管理情報を追加する。
【００６０】
すなわち、新規のストレージ装置３ＮのＣＰＵ３０１は、記憶システム１内に新設したときに構成管理処理を開始し（ＳＰ０）、まず、新たに取得した個別識別ＩＤを既存のストレージ装置３Ａ〜３Ｃへ送信する（ＳＰ１）。新規のストレージ装置３ＮのＣＰＵ３０１は、新規なストレージ装置３Ｎの個別識別ＩＤが装置テーブル３２０に追加された既存のストレージ装置３Ａ〜３Ｃから送信される個別識別ＩＤを受信すると（ＳＰ２）、新規なストレージ装置３Ｎ内の装置テーブル３２０に個別識別ＩＤ及び装置ＩＤを追加する（ＳＰ３）。そうして新規のストレージ装置３ＮのＣＰＵ３０１は、新規なストレージ装置３Ｎ内のデータ管理テーブル３２１を初期化し（ＳＰ４）、統計情報テーブル３２３を初期化し（ＳＰ５）、この処理を終了する（ＳＰ６）。
【００６１】
続いて、既存のストレージ装置３Ａ〜３ＮのＣＰＵ３０１では、ステップ１と同様に、記憶システム１内に新規なストレージ装置３Ｎを新設したときに処理を開始する（ＳＰ１０）。そして既存のストレージ装置３Ａ〜３ＮのＣＰＵ３０１は、新規なストレージ装置３Ｎの個別識別ＩＤを受信する（ＳＰ１１）。既存のストレージ装置３Ａ〜３ＮのＣＰＵ３０１は、既存のストレージ装置３Ａ〜３Ｎ内の装置テーブル３２０を確認し（ＳＰ１２）、当該個別識別ＩＤが新規なＩＤか否かを判断する（ＳＰ１３）。
【００６２】
そして、既存のストレージ装置３Ａ〜３ＮのＣＰＵ３０１は、当該個別識別ＩＤを新規なＩＤと判断した場合には（ＳＰ１３：ＹＥＳ）、装置テーブル３２０に当該個別識別ＩＤを追加して（ＳＰ１４）、新規なストレージ装置３Ｎへ当該個別識別ＩＤを送信し（ＳＰ１５）、この処理を終了する（ＳＰ１６）。一方、既存のストレージ装置３Ａ〜３ＮのＣＰＵ３０１は当該個別識別ＩＤを新規なＩＤではないと判断した場合には（ＳＰ１３：ＮＯ）、この構成管理情報処理を終了する（ＳＰ１６）。
【００６３】
構成管理処理により、記憶システム１は、新規なストレージ装置Ｎを簡易に構築することができる。
【００６４】
（３−２）データを長期間保存する場合
（３−２−１）データ保護処理
次に、記憶システム１内に、データの保存先として少なくとも２ヶ所以上のストレージ装置に保存し、データの真正情報を作成してデータの真正性を証明することで、当該データを保護する処理手順を説明する。なお、図１の記憶システムにおいて、当該構成管理処理においては、正側ストレージ装置をストレージ装置３Ａとし、副側ストレージ装置をストレージ装置３Ｂをとして説明をする。
【００６５】
図９及び図１０は、データ保護処理に関する正側ストレージ装置３Ａ及び副側ストレージ装置３ＢのＣＰＵ３０１の処理内容を示すフローチャートである。このデータ保護処理では正側ストレージ装置３ＡのＣＰＵ３０１が、正側ストレージ装置３Ａのメモリ３０７内に格納されたデータ保護プログラム３１２に基づいてデータ保護処理を実行し、記憶システム１内にデータを保存する。副側ストレージ装置３Ｂについても同様である。
【００６６】
すなわち正側ストレージ装置３ＡのＣＰＵ３０１は、長期間に渡るデータを保管領域３２４に書き込む場合にデータ保護処理を開始する（ＳＰ２０）。そして正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａを除く記憶システム１内の全てのストレージ装置３Ｂ〜３Ｎに、冗長データを保存するための保存先を検索すべき旨の指示を送信する（ＳＰ２１）。その後、正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａ内の統計情報テーブル３２３からデータの保存先の検索処理を実行する（ＳＰ２２）。この検索処理の詳細な実行内容は、図１１のフローチャートで後述する。
【００６７】
そうして正側ストレージ装置３ＡのＣＰＵ３０１は、データの保存先を決定し（ＳＰ２３）、副側ストレージ装置３Ｂから冗長データ保存先の候補を受信する（ＳＰ２４）。正側ストレージ装置３ＡのＣＰＵ３０１は、冗長データ保存先を決定し、その結果を副側ストレージ装置３Ｂへ送信する（ＳＰ２５）。その後、正側ストレージ装置３ＡのＣＰＵ３０１は、保存対象のデータを正側ストレージ装置３Ａ内の保管領域３２４内に書き込み（ＳＰ２６）、冗長データを生成する（ＳＰ２７）。ここまでのステップによりデータの冗長化が行われている。
【００６８】
続いて正側ストレージ装置３ＡのＣＰＵ３０１は、データのハッシュ値（以下、これを正ハッシュという）を生成する（ＳＰ２８）。正ハッシュは、データの真正性を証明するために生成される真正情報である。そうして正側ストレージ装置３ＡのＣＰＵ３０１は、正ハッシュを副側ストレージ装置３Ｂへ送信する（ＳＰ２９）。
【００６９】
正側ストレージ装置３ＡのＣＰＵ３０１は、同様にして副側ストレージ装置３Ｂ側で生成された冗長データのハッシュ値（以下、これを副ハッシュという）を受信すると（ＳＰ３０）、正ハッシュと副ハッシュとを比較する（ＳＰ３１）。
【００７０】
正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａ側で比較した正側比較結果を副側ストレージ装置３Ｂへ送信する（ＳＰ３２）。正側ストレージ装置３ＡのＣＰＵ３０１は、同様にして副側ストレージ装置３Ｂ側で比較した副側比較結果を受信すると（ＳＰ３３）、両者の比較結果を判断する（ＳＰ３４）。
【００７１】
そして、正側ストレージ装置３ＡのＣＰＵ３０１は、正ハッシュと副ハッシュとの比較結果が間違っていると判断した場合には（ＳＰ３４：両側ＮＧ）、データの複製エラーとして（ＳＰ３５）、ステップＳＰ２６に再び戻り、その後の処理を実行する。
【００７２】
正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａだけの比較結果が間違っていると判断した場合には（ＳＰ３４：正側ＮＧ）、副ハッシュの読み込みエラーと認識し（ＳＰ３６）、副ハッシュの送信を副側ストレージ装置３Ｂへ依頼した後（ＳＰ３７）、ステップＳＰ３０に再び戻り、その後の処理を実行する。
【００７３】
これに対して正側ストレージ装置３ＡのＣＰＵ３０１は、正ハッシュと副ハッシュとの比較結果が正しいと判断した場合には（ＳＰ３４：両側ＯＫ）、正ハッシュを保存し（ＳＰ３８）、データ管理テーブル３２１を更新した後（ＳＰ３９）、正側ストレージ装置３Ａ側のデータ保護処理を終了する（ＳＰ４０）。
【００７４】
一方、副側ストレージ装置３ＢのＣＰＵ３０１は、長期間に渡り保存するデータを正側ストレージ装置３Ａ側で保存する場合にデータ保護処理を開始すると（ＳＰ５０）、まず、正側ストレージ装置３Ａから冗長データを保存するための保存先を検索する指示を受信する（ＳＰ５１）。その後、副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａ内の統計情報テーブル３２３から冗長データの保存先の検索処理を実行する（ＳＰ５２）。この処理の詳細な実行内容は、図１１のフローチャートで後述する。
【００７５】
そうして副側ストレージ装置３ＢのＣＰＵ３０１は、冗長データ保存先の候補を検索し、その候補を正側ストレージ装置３Ａへ送信する（ＳＰ５３）。副側ストレージ装置３ＢのＣＰＵ３０１は、この候補から冗長データ保存先として正側ストレージ装置３Ａが決定した結果を、正側ストレージ装置３Ａから受信する（ＳＰ５４）。そうして副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａの冗長先の副側ストレージ装置として、自ストレージ装置が採用されたか否かを判断する（ＳＰ５５）。
【００７６】
副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａの冗長先の副側ストレージ装置として採用されないと判断した場合には（ＳＰ５５：ＮＯ）、副側ストレージ装置３Ｂ側のデータ保護処理を終了する（ＳＰ６９）。
【００７７】
一方、副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａの冗長先の副側ストレージ装置として採用されたと判断した場合には（ＳＰ５５：ＹＥＳ）、冗長データを副側ストレージ装置３Ｂ内の保管領域３２４内に書き込む（ＳＰ５６）。ここまでのステップによりデータの冗長化が行われている。
【００７８】
続いて副側ストレージ装置３ＢのＣＰＵ３０１は、冗長データのハッシュ値（以下、副ハッシュという）を生成する（ＳＰ５７）。副ハッシュは、冗長データの真正性を証明するために生成される真正情報である。そうして副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａから正ハッシュ受信し（ＳＰ５８）、生成した副ハッシュを正側ストレージ装置３Ａへ送信する（ＳＰ５９）。
【００７９】
そして副側ストレージ装置３Ｂは、正ハッシュと副ハッシュを比較し（ＳＰ６０）、正側ストレージ装置３Ｂ側で比較した正側比較結果を正側ストレージ装置３Ａから受信する（ＳＰ６１）。その後、副側ストレージ装置３ＢのＣＰＵ３０１は、副側ストレージ装置３Ｂ側で比較した副側比較結果を正側ストレージ装置３Ａへ送信すると（ＳＰ６２）、両者の比較結果を判断する（ＳＰ６３）。
【００８０】
そして、副側ストレージ装置３ＢのＣＰＵ３０１は、正ハッシュと副ハッシュの比較結果が間違っていると判断した場合には（ＳＰ６３：両側ＮＧ）、データの複製エラーとして（ＳＰ６４）、ステップＳＰ５６に再び戻り、その後のステップに進む。
【００８１】
また、副側ストレージ装置３ＢのＣＰＵ３０１は、副側ストレージ装置３Ｂだけの比較結果が間違っていると判断した場合には（ＳＰ６５：副側ＮＧ）、正ハッシュの読み込みエラーとし（ＳＰ６５）、正ハッシュ送信を正側ストレージ装置３Ａへ依頼した後（ＳＰ６６）、ステップＳＰ５８に再び戻り、その後のステップに進む。
【００８２】
副側ストレージ装置３ＢのＣＰＵ３０１は、正ハッシュと副ハッシュの比較結果が正しいと判断した場合には（ＳＰ６３：両側ＯＫ）、副ハッシュを保存し（ＳＰ６７）、データ管理テーブル３２１を更新した後（ＳＰ６８）、副側ストレージ装置３Ｂ側のデータ保護処理を終了する（ＳＰ６９）。
【００８３】
（３−２−２）データ保存先検索処理
次に、データを保存するための正側ストレージ装置となるストレージ装置を検索する処理手順について説明する。
【００８４】
図１１は、データ保存先検索処理に関する正側ストレージ装置３Ａの処理内容を示すフローチャートである。この処理ではメモリ３０７内に格納されたデータ保存先検索プログラム３１３に基づいてデータ保存先検索処理を実行し、データを保存する正側ストレージ装置を検索する。
【００８５】
すなわち、正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａが冗長データ保存先検索すべき旨の指示を副側ストレージ装置３Ｂへ送信した場合に開始する（ＳＰ７０）。
【００８６】
まず、正側ストレージ装置３ＡのＣＰＵ３０１は、保存するデータの保存先を検索する（ＳＰ７１）。例えば、図１２に示すように、２３０ＧＢのデータを保存する場合に、正側ストレージ装置３Ａは、検索時の抽出条件からストレージ管理テーブル３２２を参照する。抽出条件としては、データサイズ以上の空き容量、パリティグループの統計情報、装置の統計情報、装置の稼働状況等である。
【００８７】
そうして、正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａを除く、全てのストレージ装置３Ｂ〜３Ｎから検索結果を受信する（ＳＰ７２）。図１２に示すように、例えば、この正側ストレージ装置３Ａの検索結果は、ストレージ管理テーブル３２２を参照すると、「エリアＩＤ」が「Ａ０」のエリアには２５０ＧＢの空き容量があることがわかる。また、総計情報テーブル３２３を参照すると、正側ストレージ装置３Ａにおいて、「エリアＩＤ」が「Ａ０」のエリアでは通算７４４時間稼動し、エラー回数が１回発生していることがわかる。さらに、正側ストレージ装置３Ａは、サービスプロセッサ４内からｎ回の障害が発生しているというストレージ装置の統計情報４０と、当該ストレージ装置の稼働率が２０％であるというストレージ装置の稼働状況４１がわかる。
【００８８】
このような検索結果から正側ストレージ装置３ＡのＣＰＵ３０１は、エリア障害率が一番低いものが有るかを判断する（ＳＰ７３）。そして正側ストレージ装置３ＡのＣＰＵ３０１は、この判断に該当する対象となる正側ストレージ装置が１つ有ると判断した場合には（ＳＰ７３：ＹＥＳ）、ステップＳＰ７９に進む。
【００８９】
一方、正側ストレージ装置３ＡのＣＰＵ３０１が、この判断に該当する対象となる正側ストレージ装置が１つ以上有ると判断した場合には（ＳＰ７３：ＮＯ）、空き容量がデータサイズに一番近いものは有るかを判断する（ＳＰ７４）。
【００９０】
そして正側ストレージ装置３ＡのＣＰＵ３０１は、この判断に該当する対象となる正側ストレージ装置が１つ有ると判断した場合には（ＳＰ７４：ＹＥＳ）、ステップＳＰ７９に進む。
【００９１】
一方、正側ストレージ装置３ＡのＣＰＵ３０１が、この判断に該当する対象となる正側ストレージ装置が１つ以上有ると判断した場合には（ＳＰ７４：ＮＯ）、装置稼働率が一番低いものが有るかを判断する（ＳＰ７５）。そして正側ストレージ装置３ＡのＣＰＵ３０１は、この判断に該当する対象となる正側ストレージ装置が１つ有ると判断した場合には（ＳＰ７５：ＹＥＳ）、ステップＳＰ７９に進む。
【００９２】
一方、正側ストレージ装置３ＡのＣＰＵ３０１が、この判断に該当する対象となる正側ストレージ装置が１つ以上有ると判断した場合には（ＳＰ７５：ＮＯ）、装置障害率が一番低いものは有るかを判断する（ＳＰ７６）。そして正側ストレージ装置３ＡのＣＰＵ３０１は、この判断に該当する対象となる正側ストレージ装置が１つ有ると判断した場合には（ＳＰ７６：ＹＥＳ）、ステップＳＰ７９に進む。
【００９３】
一方、正側ストレージ装置３ＡのＣＰＵ３０１が、この判断に該当する対象となる正側ストレージ装置が１つ以上有ると判断した場合には（ＳＰ７６：ＮＯ）、装置ＩＤが一番低いものは有るかを判断する（ＳＰ７７）。そして正側ストレージ装置３ＡのＣＰＵ３０１は、この判断に該当する対象となる正側ストレージ装置が１つ有ると判断した場合には（ＳＰ７７：ＹＥＳ）、ステップＳＰ７９に進む。
【００９４】
一方、正側ストレージ装置３ＡのＣＰＵ３０１が、この判断に該当する対象となる正側ストレージ装置が１つ以上有ると判断した場合には（ＳＰ７７：ＮＯ）、エリアＩＤが若いものを選択し（ＳＰ７８）、対象ストレージ装置を１つに絞る。
【００９５】
そうして正側ストレージ装置が１つに絞られて保存先が決定すると（ＳＰ７９）、データ保存先検索処理は終了する（ＳＰ８０）。
【００９６】
そして、正側ストレージ装置３ＡのＣＰＵ３０１は、図９のステップＳＰ２３に進み、その後のデータ保護処理を実行する。
【００９７】
同様に、副側ストレージ装置３Ｂのデータ保存先検索処理もステップＳＰ７０〜ステップＳＰ８０の処理が実行される。そして副側ストレージ装置３ＢのＣＰＵ３０１は、図９のステップＳＰ５３に進み、その後のデータ保護処理を実行する。
【００９８】
このように、データ保護処理及びデータ保存先検索処理に基づいて、正側ストレージ装置がデータの保存先として少なくとも２ヶ所以上のストレージ装置にフレキシブルに保存できるように副側ストレージ装置を検索することで、データと冗長データとが同一データであるとの正側の真正情報又は副側の真正情報を正側ストレージ装置又は副側ストレージ装置内でそれぞれ生成し、正側の真正情報と副側の真正情報とが一致した場合に、正側ストレージ装置及び副側ストレージ装置のそれぞれの保存領域に同一データを保存することができる。
【００９９】
（３−３）データ破壊をチェックする場合
（３−３−１）データチェック処理
次に、ストレージ装置に保存されたデータの破損が生じた場合に、ストレージ装置が破損したデータを自立的に検索し、破損したデータを削除するためのデータチェック処理手順について説明する。
【０１００】
なお、図１の記憶システム１において、当該データチェック処理においては、正側ストレージ装置をデータの破壊が生じたストレージ装置３Ａとし、副側ストレージ装置を破壊したデータの冗長データを保存するストレージ装置３Ｂとし、新規な副側ストレージ装置を、当該冗長データを更に新しいストレージ装置に保存するためのストレージ装置３Ｃとする。そして、夫々のストレージ装置３Ａ〜３ＣのＣＰＵ３０１は、メモリ３０７内に格納されたデータチェックプログラム３１４に基づいてデータチェック処理を実行する。
【０１０１】
まず、図１３は、データチェック処理に関する正側ストレージ装置３ＡでのＣＰＵ３０１の処理内容である。この処理では、正側ストレージ装置３は、自立的に当該破損したデータを検索し、破損したデータを削除する処理手順について説明する。
【０１０２】
すなわち、正側ストレージ装置３ＡでのＣＰＵ３０１は、データのチェックを定期的にチェックすることで開始する（ＳＰ９０）。そして、正側ストレージ装置３ＡでのＣＰＵ３０１は、チェック対象である破損したデータの有無を確認する（ＳＰ９１）。正側ストレージ装置３ＡでのＣＰＵ３０１が、破損したデータのチェック対象を必要の有無を判断し（ＳＰ９２）、チェック対象の必要は無いと判断した場合にはステップＳＰ１００に進む（ＳＰ９２：ＮＯ）。
【０１０３】
一方、正側ストレージ装置３ＡでのＣＰＵ３０１は、チェック対象である破損したデータが有ると判断した場合には（ＳＰ９２：ＹＥＳ）、チェック対象である破損データを読み込む（ＳＰ９３）。そして正側ストレージ装置３ＡでのＣＰＵ３０１が、当該読み込みが可能なチェック対象で有るか否かを判断する（ＳＰ９４）。
【０１０４】
正側ストレージ装置３ＡでのＣＰＵ３０１が、当該読み込みが可能なチェック対象は無いと判断した場合には（ＳＰ９４：ＮＯ）、副側ストレージ装置３Ｂに、新規な副側ストレージ装置３Ｃを検索するように指示をする（ＳＰ９５）。
【０１０５】
このとき、並行して図１４に示す、副側ストレージ装置３Ｂが、データ保護処理を実行する。この処理の詳細は、後述する。
【０１０６】
そして、正側ストレージ装置３ＡでのＣＰＵ３０１は、破損データを消去して（ＳＰ９６）、ステップＳＰ９７に進む。
【０１０７】
一方、正側ストレージ装置３ＡでのＣＰＵ３０１は、当該読み込みが可能なチェック対象のデータが有ると判断した場合には（ＳＰ９４：ＮＯ）、現時点のデータのハッシュ値を生成する（ＳＰ９７）。そして正側ストレージ装置３ＡでのＣＰＵ３０１は、当該データを当初作成した作成時のハッシュ値と、現時点のデータのハッシュ値とを比較し（ＳＰ９８）、比較結果を判断する（ＳＰ９９）。
【０１０８】
正側ストレージ装置３ＡでのＣＰＵ３０１は、作成時のハッシュ値と現時点のハッシュ値が一致していないと判断した場合（ＳＰ９９：ＮＯ）には、ステップＳＰ９５及びステップＳＰ９６の処理を行った後、ステップＳＰ１００に進む。
【０１０９】
一方、正側ストレージ装置３ＡでのＣＰＵ３０１は、作成時のハッシュ値と現時点のハッシュ値が一致していると判断した場合（ＳＰ９９：ＹＥＳ）には、データ管理テーブル３２１を更新し（ＳＰ１００）、統計情報テーブル３２３を更新すると（ＳＰ１０１）、このデータチェック処理は終了する（ＳＰ１０２）。
【０１１０】
このようにして正側ストレージ装置が自立的に破損したデータを検索し、正側ストレージ装置に破損したデータがある場合には、当該データを消去することができる。
【０１１１】
（３−３−２）データ保護処理
そして、正側ストレージ装置３ＡでのＣＰＵ３０１がデータチェック処理の実行に基づき、データ破損が生じたストレージ装置であると判明した場合には、正側ストレージ装置３Ａを除く全てのストレージ装置３Ｂ〜３Ｎに、ペア設定された副側ストレージ装置を検索する指示をする。そうして検索された副側ストレージ装置は、さらに新規な副側ストレージ装置を検索し、破壊したデータの冗長データを保存するためのデータ保護処理を実行することになる。なお、データチェック処理と同様に、正側ストレージ装置３Ａ、副側ストレージ装置３Ｂ、新規な副側ストレージ装置３Ｃとして説明する。
【０１１２】
具体的には、図１４及び図１５に示すデータチェック処理実行後のデータ保護処理に関する、副側ストレージ装置３Ｂと新規な副側ストレージ装置３Ｃの処理内容を示すフローチャートである。
【０１１３】
すなわち、正側ストレージ装置３Ａが、正側ストレージ装置３Ａを除く全てのストレージ装置３Ｂ〜３Ｎに、ペア設定された副側ストレージ装置３Ｂの検索指示をすることでデータ保護処理が開始する（ＳＰ１１０）。そして、その後、副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａを除く、記憶システム１内の全てのストレージ装置３Ｃ〜３Ｎに、冗長データを保存するための保存先を検索する指示を送信する（ＳＰ１１１）。
【０１１４】
そして、副側ストレージ装置３ＢのＣＰＵ３０１は、新規な副側ストレージ装置３Ｃから冗長データ保存先の候補を受信すると（ＳＰ１１２）、冗長データ保存先を決定し、その結果を新規な副側ストレージ装置３Ｃへ送信する（ＳＰ１１３）。その後、副側ストレージ装置３Ｂは、冗長データを生成する（ＳＰ１１４）。
【０１１５】
そうして、副側ストレージ装置３ＢのＣＰＵ３０１は、その後のステップＳＰ１１５からステップＳＰ１２６までは、図１０に示すステップＳＰ２９からステップＳＰ４０までと同様の処理手順が実行されることになる。
【０１１６】
次に、新規な副側ストレージ装置３Ｃのデータ保護処理について説明する。
【０１１７】
正側ストレージ装置３ＡのＣＰＵ３０１が、正側ストレージ装置３Ａを除く全てのストレージ装置３Ｂ〜３Ｎに、ペア設定された副側ストレージ装置の検索指示をすることでデータ保護処理が開始する（ＳＰ１３０）。そして、その後、副側ストレージ装置３ＢのＣＰＵ３０１は、ステップＳＰ１３１からステップＳＰ１４９までは、図９及び図１０に示すステップＳＰ５１からステップＳＰ６９までと同様の処理手順が実行されることになる。
【０１１８】
（３−４）ストレージ装置の故障をチェックする場合
（３−４−１）装置チェック処理
次に、ストレージ装置自体が故障した場合に、ストレージ装置が、故障したストレージ装置を除く全てのストレージ装置が検知するための装置チェック処理手順について説明する。
【０１１９】
なお、図１の記憶システム１において、当該装置チェック処理においては、正側ストレージ装置を当該装置自体の故障が生じたストレージ装置３Ａとし、副側ストレージ装置を故障したデータの冗長データを保存するストレージ装置３Ｂとし、新規な副側ストレージ装置を、当該冗長データを更に新しいストレージ装置に保存するためのストレージ装置３Ｃとする。そして、夫々のストレージ装置３Ａ〜３ＣのＣＰＵ３０１は、装置チェックプログラム３１５に基づいて装置チェック処理を実行する。
【０１２０】
まず、図１６及び図１７は、装置チェック処理に関する正側ストレージ装置３Ａ、副側ストレージ装置３Ｂ、新規な副側ストレージ装置３ＣでのＣＰＵ３０１の処理内容である。この処理では、まず、正側ストレージ装置３Ａ自体が故障をして停止情報を送信し、副側ストレージ装置３Ｂが新規な副側ストレージ装置３Ｃを検索する処理手順について説明する。
【０１２１】
すなわち、正側ストレージ装置３ＡのＣＰＵ３０１は、当該装置が故障をしたことで装置チェック処理が開始する（Ｓ１５０Ｐ）。そして、正側ストレージ装置３ＡのＣＰＵ３０１は、装置内の運用停止を開始し（ＳＰ１５１）、副側ストレージ装置３Ｂへ停止情報である個別識別ＩＤを送信する（ＳＰ１５２）。そして装置チェック処理は、終了する（ＳＰ１５３）。
【０１２２】
なお、正側ストレージ装置３Ａが、個別識別ＩＤを送信できないほど故障している場合には、副側ストレージ装置３Ｂが、正側ストレージ装置３Ａの応答なしを検知することで、副側ストレージ装置３Ｂ側で処理が開始することになる。
【０１２３】
次に、副側ストレージ装置３Ｂの装置チェック処理手順について説明する。
【０１２４】
副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａが故障をしたことで装置チェック処理が開始する（ＳＰ１６０）。
【０１２５】
そして、副側ストレージ装置３ＢのＣＰＵ３０１は、故障した正側ストレージ装置３Ａから個別識別ＩＤを受信すると（ＳＰ１６１）、データ管理テーブル３２１から故障した正側ストレージ装置３Ａの冗長データを保存しているか検索する（ＳＰ１６２）。
【０１２６】
その後、副側ストレージ装置３ＢのＣＰＵ３０１は、当該冗長データを保存しているか否かを判断し（ＳＰ１６３）、保存していないと判断した場合には（ＳＰ１６３：ＮＯ）、この装置チェック処理手順を終了する（ＳＰ１７９）。
【０１２７】
一方、副側ストレージ装置３ＢのＣＰＵ３０１が、当該冗長データを保存していると判断した場合には（ＳＰ１６３：ＹＥＳ）、新規な副側ストレージ装置３Ｃへ当該冗長データを保存するための、データ保護処理が実行される。
【０１２８】
（３−４−２）データ保護処理
すなわち、副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａを除く、記憶システム１内の全てのストレージ装置３Ｃ〜３Ｎに、冗長データを保存するための保存先を検索する指示を送信する（ＳＰ１６４）。
【０１２９】
そして、副側ストレージ装置３ＢのＣＰＵ３０１は、新規な副側ストレージ装置３Ｃから冗長データ保存先の候補を受信すると（ＳＰ１６５）、冗長データ保存先を決定し、その結果を新規な副側ストレージ装置３Ｃへ送信する（ＳＰ１６６）。その後、副側ストレージ装置３ＢのＣＰＵ３０１は、冗長データを生成する（ＳＰ１６７）。
【０１３０】
そうして、副側ストレージ装置３ＢのＣＰＵ３０１は、冗長データのハッシュ値を副ハッシュとし、新規な副側ストレージ装置３Ｃで生成される新規な冗長データのハッシュ値を新規な副ハッシュとした後、ステップＳＰ１６８からステップＳＰ１７９までは、図１０に示すステップＳＰ２９からステップＳＰ４０までと同様の処理手順が実行されることになる。
【０１３１】
次に、新規な副側ストレージ装置３Ｃのデータ保護処理について説明する。
【０１３２】
新規な副側ストレージ装置３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａが正側ストレージ装置３Ａを除く全てのストレージ装置３Ｂ〜３Ｎに、ペア設定された副側ストレージ装置３Ｂの検索指示をすることでデータ保護処理が開始する（ＳＰ１８０）。
【０１３３】
そして、新規な副側ストレージ装置３ＣのＣＰＵ３０１は、副側ストレージ装置３Ｂで生成される冗長データのハッシュ値を副ハッシュとし、新規な副側ストレージ装置３Ｃで生成される新規な冗長データのハッシュ値を新規な副ハッシュとした後、ステップＳＰ１８１からステップＳＰ１９９までは、図９及び図１０に示すステップＳＰ５１からステップＳＰ６９までと同様の処理手順が実行されることになる。
【０１３４】
このように副側ストレージ装置が、装置チェック処理及びデータ保護処理を実行することで、副側ストレージ装置内のデータ管理テーブルに格納されている故障した個別識別ＩＤに対応する装置ＩＤを参照して、この装置ＩＤが所有する冗長データを、検索した新規な副側ストレージ装置へ自動的に保存することができる。
【０１３５】
なお、ストレージ装置が故障した場合について説明したが、計画的にストレージ装置を撤去する場合についても装置チェック処理及びデータ保護処理が行われることとなる。
【０１３６】
（３−５）ストレージ装置を予防・保守する場合
（３−５−１）統計情報管理処理
次に、ストレージ装置が長年の運用により劣化してきた場合に、ストレージ装置がデータ故障や装置故障の発生によるデータ損失の可能性があるデータを検索し、当該ストレージ装置を除く全てのストレージ装置へデータが損失する前に当該データを予防・保守するための統計情報管理処理手順について説明する。
【０１３７】
なお、図１の記憶システム１において、当該統計情報管理処理においては、正側ストレージ装置をデータ損失の可能性があるデータを保存するストレージ装置３Ａとし、副側ストレージ装置をデータ損失の可能性があるデータの冗長データを保存するストレージ装置３Ｂとし、新規な副側ストレージ装置を、当該冗長データを更に新しいストレージ装置に保存するためのストレージ装置３Ｃとする。そして、夫々のストレージ装置３Ａ〜３ＣのＣＰＵ３０１は、統計情報管理プログラム３１５に基づいて統計情報管理処理を実行する。
【０１３８】
まず、図１８及び図１９は、統計情報管理処理に関する正側ストレージ装置３Ａ、副側ストレージ装置３Ｂ、新規な副側ストレージ装置３ＣでのＣＰＵ３０１の処理内容である。
【０１３９】
すなわち、正側ストレージ装置３ＡのＣＰＵ３０１は、ストレージ装置の障害率やハードストレージの交換率等の統計情報を有し、予め定められた閾値を超えた場合に統計情報管理処理が開始する（ＳＰ２００）。
【０１４０】
そして正側ストレージ装置３ＡのＣＰＵ３０１は、エラーを検知し、統計情報テーブル３２３を読み込み（ＳＰ２０１）、エラー回数やストレージ装置の稼働時間に予め定められた閾値を超えているか否かを判断する（ＳＰ２０２）。正側ストレージ装置３ＡのＣＰＵ３０１は、閾値を超えていないと判断した場合には（ＳＰ２０２：無）、統計情報管理処理を終了する（ＳＰ２０７）。
【０１４１】
一方、正側ストレージ装置３ＡのＣＰＵ３０１は、閾値を超えていると判断した場合には（ＳＰ２０２：ＹＥＳ）、データ管理テーブル３２１を参照し、予防・保守を必要とするデータにおける保存先のエリアであるパリディグループと、そのパリティグループに保存されるデータの冗長先である冗長データを保存するストレージ装置とを検索する（ＳＰ２０３）。
【０１４２】
そうして正側ストレージ装置３ＡのＣＰＵ３０１は、冗長データを保存する必要の有無を判断し（ＳＰ２０４）、冗長データの保存の必要は無いと判断した場合には（ＳＰ２０４：無）、統計情報管理処理を終了する（ＳＰ２０７）。
【０１４３】
一方、正側ストレージ装置３ＡのＣＰＵ３０１は、冗長データの保存の必要は有ると判断した場合には（ＳＰ２０４：有）、データの予防・保守の指示を副側ストレージ装置３Ｂへ行い（ＳＰ２０５）、データ管理テーブル３２１を更新した後（ＳＰ２０６）、統計情報管理処理を終了する（ＳＰ２０７）。
【０１４４】
次に、副側ストレージ装置３Ｂにおける統計情報管理処理を説明する。
【０１４５】
すなわち、副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａがストレージ装置の障害率やハードストレージの交換率等の統計情報を有し、予め定められた閾値を超えた場合に統計情報管理処理が開始する（ＳＰ２１０）。
【０１４６】
そして、副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａから予防・保守の指示を受信すると（ＳＰ２１１）、副側ストレージ装置３Ｂのメモリ３０７内に格納されるデータ管理テーブル３２１を参照し、正側ストレージ装置３Ａが指示をした予防・保守を必要とするストレージ装置が保存する冗長データを検索して、予防・保守を開始する（ＳＰ２１２）。そうして、副側ストレージ装置３ＢのＣＰＵ３０１は、新規な副側ストレージ装置３Ｃへ当該冗長データを保存するための、データ保護処理が実行される。
【０１４７】
（３−５−２）データ保護処理
すなわち、副側ストレージ装置３ＢのＣＰＵ３０１は、正側ストレージ装置３Ａを除く記憶システム１内の全てのストレージ装置３Ｃ〜３Ｎに、冗長データを保存するための保存先を検索する指示を送信する（ＳＰ２１３）。
【０１４８】
そして、副側ストレージ装置３ＢのＣＰＵ３０１は、新規な副側ストレージ装置３Ｃから冗長データ保存先の候補を受信すると（ＳＰ２１４）、冗長データ保存先を決定し、その結果を新規な副側ストレージ装置３Ｃへ送信する（ＳＰ２１５）。その後、副側ストレージ装置３ＢのＣＰＵ３０１は、冗長データを生成する（ＳＰ２１６）。
【０１４９】
そうして、副側ストレージ装置３ＢのＣＰＵ３０１は、副側ストレージ装置３Ｂで生成される冗長データのハッシュ値を副ハッシュとし、新規な副側ストレージ装置３Ｃで生成される新規な冗長データのハッシュ値を新規な副ハッシュとした後、その後のステップＳＰ２１７からステップＳＰ２２８までは、図１０に示すステップＳＰ２９からステップＳＰ４０までと同様の処理手順が実行されることになる。
【０１５０】
次に、新規な副側ストレージ装置３Ｃのデータ保護処理について説明する。
【０１５１】
新規な副側ストレージ装置３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａが正側ストレージ装置３Ａを除く全てのストレージ装置３Ｂ〜３Ｎに、ペア設定された副側ストレージ装置の検索指示をすることでデータ保護処理が開始する（ＳＰ２３０）。そして、その後、新規な副側ストレージ装置３ＣのＣＰＵ３０１は、副側ストレージ装置３Ｂで生成される冗長データのハッシュ値を副ハッシュとし、新規な副側ストレージ装置３Ｃで生成される新規な冗長データのハッシュ値を新規な副ハッシュとした後、ステップＳＰ２３１からステップＳＰ２４９までは、図９及び図１０に示すステップＳＰ５１からステップＳＰ６９までと同様の処理手順が実行されることになる。
【０１５２】
このように正側ストレージ装置が統計情報テーブルを参照して、予防保守対象となるエリアにある情報を検索し、対象情報の冗長データを保存する副側ストレージ装置に新規な冗長データの作成を指示することで、ストレージ装置の老朽化や障害に伴うデータ破損の発生を確実に予防して保守することができる。
【０１５３】
（３−６）データを分割／連結保存する場合
（３−６−１）データ分割処理
次に、冗長データを保存する保存先の副側ストレージ装置の空き容量が確保仕切れない場合に、当該データを分割して複数の副側ストレージ装置に保存するためのデータ分割処理手順について説明する。
【０１５４】
なお、図１の記憶システム１において、当該データ分割処理においては、正側ストレージ装置としてデータが保存されたストレージ装置３Ａとし、副側ストレージ装置として冗長データを分割した分割冗長データを保存するストレージ装置３Ｂ、３Ｃとし、新規な副側ストレージ装置として複数の当該分割冗長データを連結した連結データを保存するためのストレージ装置３Ｎとする。そして、夫々のストレージ装置３Ａ〜３ＮのＣＰＵ３０１は、メモリ３０７内に格納されたデータ分割プログラム３１７に基づいてデータ分割処理を実行する。
【０１５５】
まず、図２０及び図２１は、データ分割処理に関する正側ストレージ装置３Ａ、副側ストレージ装置３Ｂ、３ＣでのＣＰＵ３０１の処理内容である。
【０１５６】
すなわち、正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａが冗長データを保存する保存先のストレージ装置の空き容量が確保仕切れない場合に、データ分割処理が開始する（ＳＰ２５０）。
【０１５７】
まず、正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａを除く、冗長データ保存先検索の指示を記憶システム１内の全ての他のストレージ装置３Ｂ〜３Ｎへ送信する（ＳＰ２５１）。そうして、正側ストレージ装置３ＡのＣＰＵ３０１は、各々のストレージ装置３Ｂ〜３Ｎから冗長データを分割することなく保存できる保存先の候補の該当はないことを受信する（ＳＰ２５２）。その後、正側ストレージ装置３ＡのＣＰＵ３０１は全てのストレージ装置３Ｂ〜３Ｎに空き容量の送信指示をして（ＳＰ２５３）、全てのストレージ装置３Ｂ〜３Ｎから空き容量を受信する（ＳＰ２５４）。
【０１５８】
正側ストレージ装置３ＡのＣＰＵ３０１は、受信した空き容量の結果から、全てのストレージ装置３Ｂ〜３Ｎの優先順位、データの分割数、データサイズの決定処理を実行する。この処理は、図２２のフローチャートで後述する。
【０１５９】
そうして正側ストレージ装置３ＡのＣＰＵ３０１は、分割冗長データの保存先を決定し、その結果を全てのストレージ装置３Ｂ〜３Ｎへ送信する（ＳＰ２５６）。図２３に示すように、正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａ内のメモリ３０７上に仮想分割データ１０Ａ、１１Ａと、当該仮想分割データ１０Ａ、１１Ａ毎の仮想分割ハッシュ１０Ｂ、１１Ｂを生成する（ＳＰ２５７）。また、正側ストレージ装置３ＡのＣＰＵ３０１は、正側ストレージ装置３Ａ内のメモリ３０７上の仮想分割データ１０Ａ、１１Ａから仮想連結データ１３Ａと仮想連結ハッシュ１３Ｂを生成する（ＳＰ２５８）。
【０１６０】
図２３示すように、正側ストレージ装置３Ａは、実際にデータ１２Ａを分割する前に、正側ストレージ装置３Ａ内のメモリ３０７上で分割処理のシミュレーションを行う。このとき、仮想分割データ１０Ａ、１１Ａには、連結時に必要なデータの順番を認識するためのindexデータ１００Ａ、１１０Ａが各仮想分割データ１０Ａ、１１Ａの先頭に夫々付与される。
【０１６１】
そうして、正側ストレージ装置３ＡのＣＰＵ３０１は、予めデータの分割と連結をメモリ３０７上でシュミレーションしてデータの真正性が保持できるか否かを判断する（ＳＰ２５９）。正側ストレージ装置３ＡのＣＰＵ３０１が、データの真正性を保持できないと判断した場合には（ＳＰ２５９：ＮＯ）、ステップＳＰ２５７に戻る。一方、正側ストレージ装置３ＡのＣＰＵ３０１が、データの真正性を保持できると判断した場合には（ＳＰ２５９：ＹＥＳ）、データ分割処理を終了して、その後引き続き、ステップＳＰ２８６以降で副側ストレージ装置３Ｂ、３Ｃへ分割後の分割冗長データ１４Ａ、１５Ａを保存するための、データ保護処理が実行される。
【０１６２】
次に、副側ストレージ装置３Ｂ、３Ｃについてのデータ分割処理について説明する。
【０１６３】
すなわち、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａが冗長データを保存する保存先のストレージ装置の保存領域３２４内にある空き保存領域３２４Ｂ、３２４Ｃが確保仕切れない場合に、データ分割処理が開始する（ＳＰ２８０）。
そして副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａから冗長データの保存先の検索指示を受信すると（ＳＰ２８１）、統計情報による冗長データ保存先の検索処理を実行する（ＳＰ２８２）。この検索処理は、図２２に示すフローチャートにより後述する。
【０１６４】
そして、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、冗長データを保存する保存先の候補の該当がないことを正側ストレージ装置３Ａへ送信する（ＳＰ２８３）。副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａから副側ストレージ装置３Ｂ、３Ｃの空き容量の送信指示を受信すると（ＳＰ２８４）、空き容量を正側ストレージ装置へ送信する（ＳＰ２８５）。
【０１６５】
副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａで決定された分割冗長データの保存先の決定結果を正側ストレージ装置３Ａから受信すると（ＳＰ２８６）、この装置が分割データの保存先として採用された否かを判断する（ＳＰ２８７）。そして副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、分割冗長データ１４Ａ、１５Ａの保存先として採用されないと判断した場合には（ＳＰ２８７：ＮＯ）、データ分割処理を終了する。一方、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１が、分割冗長データ１４Ａ、１５Ａの保存先として当該装置を採用されたと判断した場合には（ＳＰ２８７：ＹＥＳ）、データ分割処理を終了して、その後引き続き、ステップＳＰ２８８以降でデータ保護処理が実行される。
【０１６６】
（３−６−２）データ保護処理
すなわち、正側ストレージ装置３ＡのＣＰＵ３０１は、分割冗長データ１４Ａ、１５Ａを保存する全ての副側ストレージ装置３Ｂ、３Ｃに、分割冗長データ１４Ａ、１５Ａを送信する（ＳＰ２６０）。
【０１６７】
そして、正側ストレージ装置３ＡのＣＰＵ３０１は、データ１２Ａを冗長化しようとするデータのハッシュ１２Ｂとメモリ３０７内で生成した仮想分割ハッシュ１０Ｂ、１１Ｂとを、副側ストレージ装置３Ｂ、３Ｃに送信する（ＳＰ２６１）。そして、正側ストレージ装置３ＡのＣＰＵ３０１は、副側ストレージ装置３Ｂ、３Ｃで生成された分割ハッシュ１４Ｂ、１５Ｂを受信し（ＳＰ２６２）、正側ストレージ装置３Ａで生成した仮想分割ハッシュ１０Ｂ、１１Ｂと、副側ストレージ装置３Ｂ、３Ｃで生成した分割ハッシュ１４Ｂ、１５Ｂを比較する（ＳＰ２６３）。
【０１６８】
正側ストレージ装置３ＡのＣＰＵ３０１は、当該比較結果を副側ストレージ装置３Ｂ、３Ｃへ送信し（ＳＰ２６４）、副側ストレージ装置３Ｂ、３Ｃ側でも同様に比較した比較結果を副側ストレージ装置３Ｂ、３Ｃから受信する（ＳＰ２６５）。
【０１６９】
そうして、正側ストレージ装置３ＡのＣＰＵ３０１は、分割冗長データの比較結果後の処理について、ステップＳＰ２６６からステップＳＰ２７１までを、図１０に示すステップＳＰ３４からステップＳＰ３７、ステップＳＰ３９及びステップＳＰ４０までと同様の処理手順が実行されることになる。
【０１７０】
次に、副側ストレージ装置３Ｂ、３Ｃについてのデータ保護処理について説明する。
【０１７１】
すなわち、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａで生成された分割冗長データ１４Ａ、１５Ａを受信して、空き保存領域３２４Ｂ、３２４Ｃ内の空き容量に分割冗長データ１４Ａ、１５Ａを書き込み（ＳＰ２８８）、現時点での副側ストレージ装置３Ｂ、３Ｃに書き込まれた分割冗長データ１４Ａ、１５Ａの分割ハッシュ１４Ｂ、１５Ｂを生成する（ＳＰ２８９）。
【０１７２】
そして副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａからデータ１２Ａの冗長データのハッシュ１２Ｂと仮想分割ハッシュ１０Ｂ、１１Ｂとを受信し（ＳＰ２９０）、現時点で生成した分割ハッシュ１４Ｂ、１５Ｂを正側ストレージ装置３Ａへ送信する（ＳＰ２９１）。
【０１７３】
その後、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、正側ストレージ装置３Ａで行われるステップＳＰ２６３からステップＳＰ２６５と同様の処理をステップＳＰ２９２からステップＳＰ２９４で行う。
【０１７４】
そして、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、分割冗長データ１４Ａ、１５Ａについて、ステップＳＰ２９５からステップＳＰ３０１までを、図１０に示すステップＳＰ６３からステップＳＰ６９までと同様の処理手順が実行されることになる。
【０１７５】
（３−６−３）データ保存先検索処理
次に、副側ストレージ装置３Ｂ、３Ｃで冗長データを保存できる副側ストレージ装置を検索する処理手順について説明する。この処理は、正側ストレージ装置３Ａを除く全てのストレージ装置３Ｂ〜３Ｎにて実行される処理であるが、便宜上、副側ストレージ装置３Ｂ、３Ｃに適用して説明をする。
【０１７６】
図２２は、データ保存先検索処理に関する副側ストレージ装置３Ｂ、３Ｃの処理内容を示すフローチャートである。このデータ保存先検索処理では、副側ストレージ装置３Ｂ、３Ｃのメモリ３０７内に格納されたデータ保存先検索プログラム３１３に基づいてデータ保存先検索処理を実行し、冗長データを保存する副側ストレージ装置を検索する。
【０１７７】
副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、副側ストレージ装置３Ｂ、３Ｃにおいて、ステップＳＰ３１０からステップＳＰ３１７までを、図１１について上述した冗長データの保存先検索処理のステップＳＰ７０及びステップＳＰ７３からステップＳＰ７８までと同様に処理する。そして副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、冗長データの保存先となる全てのエリアを検索し、当該エリアで冗長データの保存先が決定されるか否かを判断する（ＳＰ３１７）。副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、全てのエリアで決定されていないと判断した場合には（ＳＰ３１７：ＮＯ）、ステップ３１１に再び戻り、一方全てのエリアで決定されていると判断した場合には（ＳＰ３１７：ＹＥＳ）、図２０に示すステップ２５６に進み、その後のデータ分割処理を行うこととなる。
【０１７８】
このように、正側ストレージ装置３Ａは、メモリ上で仮想分割冗長データが真正であることを示す仮想分割真正情報である仮想分割ハッシュを生成し、副側ストレージ装置３Ｂ、３Ｃでは分割冗長データが真正であることを示す分割真正情報である分割ハッシュを生成し、仮想分割ハッシュと分割ハッシュが一致する場合に、副側ストレージ装置が副側ストレージ装置の保存領域に分割冗長データを保存することができる。
【０１７９】
また、本実施の形態における記憶システムは、メモリ上でシュミレーションした際に生成されるindexデータとともに仮想分割ハッシュを副側ストレージ装置へ送信するので、限られた記憶システムにおいてもデータの冗長性及び真正性を維持することができる。
【０１８０】
（３−６−４）データ連結処理
上述のように、複数の副側ストレージ装置３Ｂ、３Ｃに分割冗長データ１４Ａ、１５Ａが保存された場合に、この分割冗長データ１４Ａ、１５Ａを連結し、新規な副側ストレージ装置３Ｎの保存領域３２４内に連結冗長データ１ＮＡとして保存するデータ連結処理を説明する。
【０１８１】
まず、図２４及び図２５はデータ連結処理に関し、分割冗長データ１４Ａ、１５Ａを有する複数の副側ストレージ装置３Ｂ、３Ｃ、分割冗長データ１４Ａ、１５Ａを連結し、連結冗長データ１ＮＡとして保存する新規な副側ストレージ装置３ＮでのＣＰＵ３０１の処理内容である。この処理では、各副側ストレージ装置３Ｂ、３Ｃ、３Ｎのメモリ３０７内に格納されたデータ連結プログラム３１８に基づいてデータ連結処理を実行する。
【０１８２】
すなわち、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、新規な副側ストレージ装置３Ｎに連結冗長データ１ＮＡの作成指示をした場合に、データ連結処理を開始する（ＳＰ３２０）。そして、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、新規な副側ストレージ装置３Ｎから連結処理開始を受信すると（ＳＰ３２１）、分割冗長データ１４Ａ、１５Ａと、分割ハッシュ１４Ｂ、１５Ｂを新規な副側ストレージ装置３Ｎへ送信する（ＳＰ３２２）。
【０１８３】
副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、新規な副側ストレージ装置３Ｎから正側ストレージ装置３Ａで生成された分割前のハッシュ１２Ｂの送信依頼を受けると同時に、新規な副側ストレージ装置３Ｎで生成された連結ハッシュ１ＮＢとを受信し（ＳＰ３２３）、分割前のハッシュ１２Ｂを新規な副側ストレージ装置３Ｎへ送信する（ＳＰ３２４）。
【０１８４】
その後、副側ストレージ装置３Ｂ、３ＣのＣＰＵ３０１は、図２１に示すデータ分割処理で行われるステップＳＰ２６３からステップＳＰ２７１と同様の処理を、ステップＳＰ３２５からステップＳＰ３３３で行う。
【０１８５】
そうして、副側ストレージ装置３Ｂ、３Ｃはデータ連結処理を終了する。
【０１８６】
次に、新規な副側ストレージ装置３Ｎでのデータ連結処理について説明する。
【０１８７】
すなわち、新規な副側ストレージ装置３ＮのＣＰＵ３０１は、副側ストレージ装置３Ｂ、３Ｃからの連結冗長データ１ＮＡの作成指示でデータ連結処理を開始する（ＳＰ３４０）。
【０１８８】
そして新規な副側ストレージ装置３ＮのＣＰＵ３０１は、副側ストレージ装置３Ｂ、３Ｃへデータ連結処理開始を送信すると（ＳＰ３４１）、副側ストレージ装置３Ｂ、３Ｃから分割冗長データ１４Ａ、１５Ａ及び分割ハッシュ１４Ｂ、１５Ｂを受信する（ＳＰ３４２）。その後、新規な副側ストレージ装置３ＮのＣＰＵ３０１は、受信した分割冗長データ１４Ａ、１５Ａを基に、現時点での分割ハッシュを生成し（ＳＰ３４３）、副側ストレージ装置３Ｂ、３Ｃから受信した分割ハッシュ１４Ｂ、１５Ｂと、現時点での分割ハッシュと、を比較する（ＳＰ３４４）。
【０１８９】
そして、新規な副側ストレージ装置３ＮのＣＰＵ３０１は、全ての分割冗長データをもつ副側ストレージ装置３Ｂ、３Ｃから受信した分割ハッシュ１４Ｂ、１５Ｂと現時点ての分割ハッシュが全て一致しているか否かを判断する（ＳＰ３４５）。新規な副側ストレージ装置３ＮのＣＰＵ３０１は、全て一致していないと判断した場合には（ＳＰ３４５：ＮＯ）、一致しなかった分割ハッシュに基づく分割冗長データを再送信してもらうように副側ストレージ装置３Ｂ、３Ｃへ依頼し（ＳＰ３４６）、ステップＳＰ３４１に戻る。
【０１９０】
一方、新規な副側ストレージ装置３ＮのＣＰＵ３０１は、全て一致していると判断した場合には（ＳＰ３４５：ＹＥＳ）、各分割冗長データ１４Ａ、１５Ａに付与されるindexデータ１００Ａ、１１０Ａに基づいて、分割冗長データを連結して、連結冗長データ１ＮＡを作成する（ＳＰ３４７）。
【０１９１】
そして、新規な副側ストレージ装置３ＮのＣＰＵ３０１は、連結した連結冗長データ１ＡＮの連結ハッシュを生成し（ＳＰ３４８）、副側ストレージ装置３Ｂ、３Ｃに分割前のハッシュ１２Ｂの送信依頼と同時に、生成した連結ハッシュ１ＮＢを副側ストレージ装置３Ｂ、３Ｃに送信する（ＳＰ３４９）。
【０１９２】
その後、新規な副側ストレージ装置３ＮのＣＰＵ３０１は、分割前のハッシュ１２Ｂを副側ストレージ装置３Ｂ、３Ｃから受信すると（ＳＰ３５０）、ステップＳＰ３５１からステップＳＰ３６０まで、図２１のデータ分割処理におけるステップＳＰ２９２からステップＳＰ３０１までと同様の処理を行い、データ連結処理を終了する。
【０１９３】
このように、正側ストレージ装置を除く全てのストレージ装置の空き容量を検索した後に、新規な副側ストレージ装置が連結冗長データと連結真正情報である連結ハッシュを生成し、正側の真正情報と連結真正情報とが一致した場合に、新規な副側ストレージ装置は新規な副側のストレージ装置の保存領域に連結冗長データを保存することができる。
【０１９４】
また、本実施の形態における記憶システムは、分割冗長データを保存する副側ストレージ装置から、分割冗長データ毎に生成した分割真正情報の分割ハッシュと連結時に必要なindexデータとが、新規な副側ストレージ装置に送信され連結冗長データが保存されるので、限られた記憶システムにおいてもデータの冗長性及び真正性を維持することができる。
【０１９５】
（３−７）本実施の形態の効果
以上のように、本実施の形態における記憶システムによれば、データの冗長先を自動かつフレキシブルに変更させ、システムの変更時のデータの真正性を証明することができる。
【０１９６】
（４）他の実施の形態
なお上述の実施の形態においては、正側ストレージ装置３Ａは前記冗長データを保存するための副側ストレージ装置３Ｂを検索する検索部と、前記データが真正であることを示す正側の真正情報を生成する正側生成部と前記データを前記正側ストレージ装置の保存領域に保存する正側保存部とを正側ストレージ装置のＣＰＵ３０１により構成し、一方、副側ストレージ装置は、前記冗長データが真正であることを示す副側の真正情報を生成する副側生成部とを前記冗長データを前記副側ストレージ装置の保存領域に保存する副側保存部と副側ストレージ装置のＣＰＵ３０１により構成するようにした場合について述べたが、本発明はこれに限らず、これら検索部、正側生成部、正側保存部、副側生成部及び副側保存部をそれぞれ個別のハードウェアとして構成するようにしても良い。
【産業上の利用可能性】
【０１９７】
本発明は、１又は複数のストレージ装置を有する記憶システムや、その他の形態の記憶システムに広く適用することができる。
【図面の簡単な説明】
【０１９８】
【図１】本発明の実施の形態における記憶システムの全体構成を示すブロック図である。
【図２】本発明の実施の形態におけるストレージ装置を示すブロック図である。
【図３】ストレージ装置の装置テーブルを示す概念図である。
【図４】ストレージ装置のデータ管理テーブルを示す概念図である。
【図５】各ストレージ装置の装置テーブルとデータ管理テーブルとの相互連携図である。
【図６】ストレージ装置のストレージ管理テーブルを示す概念図である。
【図７】ストレージ装置の統計情報テーブルを示す概念図である。
【図８】構成管理処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図９】データ保護処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１０】データ保護処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１１】データ保存先検索処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１２】データ保存先検索処理に関するストレージ装置のＣＰＵの処理内容を示す説明図である。
【図１３】データチェック処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１４】データチェック処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１５】データチェック処理及びデータ保護処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１６】装置チェック処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１７】装置チェック処理及びデータ保護処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１８】統計情報管理処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図１９】統計情報管理処理及びデータ保護処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図２０】データ分割処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図２１】データ分割処理及びデータ保護処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図２２】データ保存先検索処理に関するストレージ装置のＣＰＵの処理内容を示す説明図である。
【図２３】データ分割処理及びデータ保護処理に関するストレージ装置のＣＰＵの処理内容を示す説明図である。
【図２４】データ連結処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図２５】データ連結処理及びデータ保護処理に関するストレージ装置のＣＰＵの処理内容を示すフローチャートである。
【図２６】データ連結処理及びデータ保護処理に関するストレージ装置のＣＰＵの処理内容を示す説明図である。
【符号の説明】
【０１９９】
１……記憶システム、２……ホスト装置、３……ストレージ装置、３０１……ＣＰＵ、３０７……メモリ、３１０……システムプログラム、３１９……管理テーブル。
【図１】
2007299114.tif 000003
【図２】
2007299114.tif 000004
【図３】
2007299114.tif 000005
【図４】
2007299114.tif 000006
【図５】
2007299114.tif 000007
【図６】
2007299114.tif 000008
【図７】
2007299114.tif 000009
【図８】
2007299114.tif 000010
【図９】
2007299114.tif 000011
【図１０】
2007299114.tif 000012
【図１１】
2007299114.tif 000013
【図１２】
2007299114.tif 000014
【図１３】
2007299114.tif 000015
【図１４】
2007299114.tif 000016
【図１５】
2007299114.tif 000017
【図１６】
2007299114.tif 000018
【図１７】
2007299114.tif 000019
【図１８】
2007299114.tif 000020
【図１９】
2007299114.tif 000021
【図２０】
2007299114.tif 000022
【図２１】
2007299114.tif 000023
【図２２】
2007299114.tif 000024
【図２３】
2007299114.tif 000025
【図２４】
2007299114.tif 000026
【図２５】
2007299114.tif 000027
【図２６】
2007299114.tif 000028