(57)【要約】【課題】安定したデータ入出力処理を行い得る記憶システム、データ処理方法並びにストレージ装置を提案する。【解決手段】同じストレージグループに設定された各ストレージ装置が、それぞれこれらストレージ装置に付与された優先順位情報を含むグループ構成情報を記憶し、優先順位が最も高いストレージ装置が、マスタとなって仮想化処理及びデータ入出力処理とを担当し、当該ストレージグループに属する他のストレージ装置が当該ストレージグループの内部処理を担当するようにした。【選択図】図３
2007206931.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置がネットワークに接続された記憶システムにおいて、
前記ストレージ装置は、
予め設定された自ストレージ装置が属するストレージグループを識別するための識別子を保持すると共に、
同一の前記ストレージグループに設定されたすべての前記ストレージ装置との間で共通の、各前記ストレージ装置の構成情報と、当該ストレージグループ内における当該ストレージ装置の優先順位を表す優先順位情報と、当該ストレージグループ全体の管理情報とを保持し、
前記ストレージグループ単位での前記ストレージ装置の仮想化処理及び上位装置からのデータ入出力処理を行なうマスタの第１の前記ストレージ装置と、内部処理に伴うデータ移動を行なう第２の前記ストレージ装置とがそれぞれ１台上設定された
ことを特徴とする記憶システム。
【請求項２】
前記ストレージグループ内における前記第１のストレージ装置以外の前記ストレージ装置は、前記上位装置からのディスカバリ要求に対して、動作可能なストレージ装置であることの応答を行わない
ことを特徴とする請求項１に記載の記憶システム。
【請求項３】
前記第１のストレージ装置により仮想化された前記ストレージ装置内のボリュームは、同一の前記ストレージグループを構成する前記複数のストレージ装置に冗長性を有する形態により配置された
ことを特徴とする請求項１に記載の記憶システム。
【請求項４】
前記第２のストレージ装置は、
前記第１のストレージ装置からの指示に応じて前記内部処理に伴うデータ移動を行ない、
前記第１のストレージ装置は、
前記内部処理を前記第２のストレージ装置に指示する際に、当該第２のストレージ装置に所定のメタデータを送信する
ことを特徴とする請求項１に記載の記憶システム。
【請求項５】
同一の前記ストレージグループ内の前記第１のストレージ装置又は前記第２のストレージ装置に障害が発生した場合に、各前記ストレージ装置の前記優先順位情報に基づき、障害が発生した前記第１のストレージ装置又は前記第２のストレージ装置の次の優先順位の前記ストレージ装置が、障害が発生した前記第１のストレージ装置又は前記第２のストレージ装置の機能を引き継ぐ
ことを特徴とする請求項１に記載の記憶システム。
【請求項６】
前記ストレージ装置は、
複数の前記ストレージグループに属するように設定されたときには、前記ストレージグループごとの、当該ストレージグループに設定された各前記ストレージ装置の構成情報及び優先順位情報と、当該ストレージグループ全体の管理情報とを保持する
ことを特徴とする請求項１に記載の記憶システム。
【請求項７】
前記ストレージグループ間において、前記ストレージグループごとに異なる特性をもつように、当該ストレージグループに設定された各前記ストレージ装置の構成情報及び優先順位情報と、当該ストレージグループ全体の管理情報とが設定された
ことを特徴とする請求項６に記載の記憶システム。
【請求項８】
前記ストレージ装置は、
自ストレージ装置と同一の前記ストレージグループに属する前記ストレージ装置であって、当該ストレージグループにおける前記優先順位が自ストレージ装置と同等以上の前記ストレージ装置以外の前記ストレージ装置からのディスカバリ要求に対して、動作可能なストレージ装置であることの応答を行わない
ことを特徴とする請求項２に記載の記憶システム。
【請求項９】
前記ストレージグループ単位で前記仮想化されたストレージ装置において、前記上位装置からのアクセスがファイルのデータ入出力要求の場合に、前記仮想ボリュームのメタデータを保持する前記ストレージ装置の台数が、前記仮想ボリュームを構成する前記ストレージ装置の台数よりも少ない
ことを特徴とする請求項３に記載の記憶システム。
【請求項１０】
前記第２のストレージ装置は、
前記第１のストレージ装置から送信される前記メタデータを、一定時間以上受信しなかった場合に、前記第１のストレージ装置に対して問合せを行なう
ことを特徴とする請求項４に記載の記憶システム。
【請求項１１】
複数のストレージ装置がネットワークに接続された記憶システムにおけるデータ処理方法において、
各前記ストレージ装置は、
同じストレージグループに設定された各前記ストレージ装置の前記ストレージ装置ごとの管理情報及び当該ストレージグループ全体に関する管理情報からなるグループ構成情報を各前記ストレージ装置が記憶する第１のステップと、
対応する前記ストレージ装置が前記グループ構成情報に基づいて必要な処理を実行する第２のステップと
を備え、
前記グループ構成情報は、
前記ストレージグループに属する各前記ストレージ装置にそれぞれ付与された、当該ストレージグループにおける各前記ストレージ装置の優先順位を表す優先順位情報を含み、
前記第２のステップでは、
前記グループ構成情報に基づき認識される前記ストレージグループ内における前記優先順位が最も高い第１の前記ストレージ装置が、マスタとなって、当該ストレージグループに属する各前記ストレージ装置がそれぞれ提供する記憶領域を仮想化する仮想化処理と、仮想化した前記記憶領域に対する上位装置からのデータ入出力要求に応じたデータ入出力処理とを行い、当該ストレージグループに属する他の前記ストレージ装置が当該ストレージグループの内部処理を行なう
ことを特徴とするデータ処理方法。
【請求項１２】
前記第２のステップでは、
前記ストレージグループ内における前記優先順位として、マスタである前記第１のストレージ装置の次の前記優先順位が付与された第２の前記ストレージ装置が、前記内部処理を行なう
ことを特徴とする請求項１０に記載のデータ処理方法。
【請求項１３】
前記第１又は第２のストレージ装置に障害が発生したときには、当該第１又は第２のストレージ装置の次の優先順位が付与された前記ストレージ装置が、当該障害が発生した前記第１のストレージ装置による前記仮想化処理及び前記データ入出力処理、又は前記第２のストレージ装置による前記内部処理を引き継ぐ第３のステップ
を備えることを特徴とする請求項１２に記載の記憶システム。
【請求項１４】
データを記憶する記憶領域を提供するストレージ装置において、
同じストレージグループに設定された各前記ストレージ装置の前記ストレージ装置ごとの管理情報及び当該ストレージグループ全体に関する管理情報からなるグループ構成情報を記憶する記憶部と、
前記グループ構成情報に基づいて必要な処理を実行する処理実行部と
を備え、
前記グループ構成情報は、
前記ストレージグループに属する各前記ストレージ装置にそれぞれ付与された、当該ストレージグループにおける各前記ストレージ装置の優先順位を表す優先順位情報を含み、
前記処理実行部は、
前記グループ構成情報に基づき認識される前記ストレージグループ内における自ストレージ装置の前記優先順位が最も高いときには、当該ストレージグループに属する各前記ストレージ装置を仮想化する仮想化処理と、仮想化した各前記ストレージ装置に対する上位装置からのデータ入出力要求に応じたデータ入出力処理とを行い、自ストレージ装置の前記優先順位が最も高い前記優先順位の次の前記優先順位であるときには、当該ストレージグループの内部処理を行う
ことを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システム、データ処理方法並びにストレージ装置に関し、例えば複数のストレージ装置を備える記憶システムに適用して好適なものである。
【背景技術】
【０００２】
近年、ストレージ分野では、複数のストレージ装置をホスト装置に対して１つのストレージ装置に見せる仮想化技術が研究及び提唱されている。かかる仮想化技術によれば、新たなストレージ装置の増設を行った場合においても、システム全体に影響を及ぼすことがなく、記憶システムの管理コストを抑制することができる。
【０００３】
このような仮想化技術の１つとして、従来、一つのファイルを複数のストレージ装置に分散して格納する方式が提案されている。この方式では、ファイルを一定の長さごとに分割し、各ストレージ装置にラウンド・ロビン方式で順次格納する。またこの方式では、ファイルをどのストレージ装置にどのような順番で分散して格納するかを管理する管理サーバが存在し、ホスト装置が所望するファイルにアクセスする際にはこの管理サーバにファイルの格納位置を問い合わせるようになされている。
【０００４】
なお、ストレージ装置の仮想化技術としては、上述のような方式の他に、管理サーバを必要とせずにストレージ装置の拡張性を向上させ得る仮想化技術が下記特許文献１に開示され、ネットワーク上に分散した複数のストレージ装置を仮想化して管理する仮想化技術が下記特許文献２に開示されている。
【特許文献１】特開２００３−２１６４７４号公報
【特許文献２】特開２００５−２６６９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述のようにネットワーク上に分散した複数のストレージ装置を仮想化して管理する記憶システムでは、ホスト装置からのデータ入出力要求に対するデータ入出力処理と、仮想化したストレージ装置間におけるデータ移動処理などの内部処理の両方を仮想化処理を行なう仮想化装置が担当するため、仮想化装置の負荷が大きい問題があった。
【０００６】
このため、かかる従来の記憶システムでは、例えば１つのボリュームの全データをコピーするボリュームコピーなどの負荷の大きい内部処理の処理中は、ホスト装置からのデータ入出力要求に迅速に応答できず、データ入出力処理に遅延を引き起こすおそれがあった。
【０００７】
本発明は以上の点を考慮してなされたもので、安定したデータ入出力処理を行い得る記憶システム、データ処理方法並びにストレージ装置を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため本発明においては、複数のストレージ装置がネットワークに接続された記憶システムにおいて、前記ストレージ装置は、予め設定された自ストレージ装置が属するストレージグループを識別するための識別子を保持すると共に、同一の前記ストレージグループに設定されたすべての前記ストレージ装置との間で共通の、各前記ストレージ装置の構成情報と、当該ストレージグループ内における当該ストレージ装置の優先順位を表す優先順位情報と、当該ストレージグループ全体の管理情報とを保持し、前記ストレージグループ単位での前記ストレージ装置の仮想化処理及び上位装置からのデータ入出力処理を行なうマスタの第１の前記ストレージ装置と、内部処理に伴うデータ移動を行なう第２の前記ストレージ装置とがそれぞれ１台上設定されたことを特徴とする。
【０００９】
この結果この記憶システムでは、ストレージグループ内における仮想化処理及びデータ入出力処理と、内部処理とを異なるストレージ装置が行うため、仮想化処理を行なうストレージ装置に負荷が集中することがなく、ストレージグループ内において負荷の大きな内部処理を実行中でも、ホスト装置からのデータ入出力要求に対して迅速に応答することができる。
【００１０】
また本発明においては、複数のストレージ装置がネットワークに接続された記憶システムにおけるデータ処理方法において、各前記ストレージ装置は、同じストレージグループに設定された各前記ストレージ装置の前記ストレージ装置ごとの管理情報及び当該ストレージグループ全体に関する管理情報からなるグループ構成情報を各前記ストレージ装置が記憶する第１のステップと、対応する前記ストレージ装置が前記グループ構成情報に基づいて必要な処理を実行する第２のステップとを備え、前記グループ構成情報は、前記ストレージグループに属する各前記ストレージ装置にそれぞれ付与された、当該ストレージグループにおける各前記ストレージ装置の優先順位を表す優先順位情報を含み、前記第２のステップでは、前記グループ構成情報に基づき認識される前記ストレージグループ内における前記優先順位が最も高い第１の前記ストレージ装置が、マスタとなって、当該ストレージグループに属する各前記ストレージ装置がそれぞれ提供する記憶領域を仮想化する仮想化処理と、仮想化した前記記憶領域に対する上位装置からのデータ入出力要求に応じたデータ入出力処理とを行い、当該ストレージグループに属する他の前記ストレージ装置が当該ストレージグループの内部処理を行なうことを特徴とする。
【００１１】
この結果このデータ処理方法によれば、ストレージグループ内における仮想化処理及びデータ入出力処理と、内部処理とを異なるストレージ装置が行うため、仮想化処理を行なうストレージ装置に負荷が集中することがなく、ストレージグループ内において負荷の大きな内部処理を実行中でも、ホスト装置からのデータ入出力要求に対して迅速に応答することができる。
【００１２】
さらに本発明においては、データを記憶する記憶領域を提供するストレージ装置において、同じストレージグループに設定された各前記ストレージ装置の前記ストレージ装置ごとの管理情報及び当該ストレージグループ全体に関する管理情報からなるグループ構成情報を記憶する記憶部と、前記グループ構成情報に基づいて必要な処理を実行する処理実行部とを備え、前記グループ構成情報は、前記ストレージグループに属する各前記ストレージ装置にそれぞれ付与された、当該ストレージグループにおける各前記ストレージ装置の優先順位を表す優先順位情報を含み、前記処理実行部は、前記グループ構成情報に基づき認識される前記ストレージグループ内における自ストレージ装置の前記優先順位が最も高いときには、当該ストレージグループに属する各前記ストレージ装置を仮想化する仮想化処理と、仮想化した各前記ストレージ装置に対する上位装置からのデータ入出力要求に応じたデータ入出力処理とを行い、自ストレージ装置の前記優先順位が最も高い前記優先順位の次の前記優先順位であるときには、当該ストレージグループの内部処理を行うことを特徴とする。
【００１３】
この結果このストレージ装置からなる記憶システムでは、ストレージグループ内における仮想化処理及びデータ入出力処理と、内部処理とを異なるストレージ装置が行うため、仮想化処理を行なうストレージ装置に負荷が集中することがなく、ストレージグループ内において負荷の大きな内部処理を実行中でも、ホスト装置からのデータ入出力要求に対して迅速に応答することができる。
【発明の効果】
【００１４】
本発明によれば、安定したデータ入出力処理を行い得る記憶システム、データ処理方法並びにストレージ装置を実現できる。
【発明を実施するための最良の形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
（１）第１の実施の形態
（１−１）本実施の形態によるネットワークシステムの構成
図１は、本実施例にかかるネットワークシステム１を示す。このネットワークシステム１は、１又は複数のホスト装置２が第１及び第２のネットワーク３，４を介して複数のストレージ装置５（５Ａ〜５Ｆ）と並列に接続されることにより構成されている。
【００１７】
ホスト装置２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ホスト装置２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備える。
【００１８】
第１及び第２のネットワーク３，４は、それぞれＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。この第１及び第２のネットワーク３，４を介したホスト装置２及びストレージ装置５間の通信は、例えば第１及び第２のネットワーク３，４がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、第１及び第２のネットワーク３，４がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００１９】
ストレージ装置５は、図２に示すように、複数のハードディスクドライブ等のディスクデバイス１０からなるディスクデバイス群１１と、これらディスクデバイス群１１を構成する各ディスクデバイス１０を制御するコントローラ１２とを備える。
【００２０】
ディスクデバイス群１１を構成するディスクデバイス１０としては、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスクや、ＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクを適用することができる。
【００２１】
各ディスクデバイス１０は、コントロール部１２によりＲＡＩＤ（Redundant Array of Inexpensive Disks）方式で運用される。１又は複数のディスクデバイス１０によって１つのＲＡＩＤグループが構成され、各ＲＡＩＤグループが提供する物理的な記憶領域上に、それぞれ１又は複数の論理的なボリュームが設定される。そしてデータは、このボリューム内に所定の大きさのブロック（以下、これを論理ブロックと呼ぶ）単位で記憶される。
【００２２】
各論理ボリュームには、それぞれ固有の識別子（以下、これをＬＵＮ（Logical Unit number）と呼ぶ）が付与される。本実施の形態の場合、データの入出力は、このＬＵＮと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（ＬＢＡ：Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２３】
コントローラ１２は、チャネルインタフェース２０、ＣＰＵ２１、ローカルメモリ２２、データ転送コントローラ２３、キャッシュメモリ２４、ディスクインタフェース２５及び保守管理端末２６等を備えて構成される。
【００２４】
チャネルインタフェース２０は、第２のネットワーク４に対するインタフェースであり、書込み対象のデータや、ディスクデバイス１０から読み出されたデータ、及び各種コマンドなどをホスト装置２との間で送受信する。
【００２５】
ＣＰＵ２１は、ホスト装置２からのデータ入出力要求（データ書込み要求又はデータ読出し要求）に応答して、ディスクデバイス１０へのデータ入出力処理等の各種処理を制御するプロセッサである。ローカルメモリ２２は、ＣＰＵ２１のワークメモリとして使用される。
【００２６】
データ転送コントローラ２３は、ＣＰＵ２１の制御に基づいて、チャネルインタフェース２０及びディスクインタフェース２５間のデータ転送を制御する。
【００２７】
キャッシュメモリ２４は、かかるチャネルインタフェース２０及びディスクインタフェース２５間において転送されるデータを一時的に記憶するために用いられる。このキャッシュメモリ２４には、ストレージ装置５の起動時にディスクデバイス１０から読み出されたシステム情報や、各種制御プログラムなどが格納される。ＣＰＵ２１は、これら制御プログラムを必要に応じてキャッシュメモリ２４から読み出して実行することにより、ストレージ装置５全体として上述のようなデータ入出力処理や後述のような各種処理を実行することができる。
【００２８】
ディスクインタフェース２５は、ディスクデバイス１０に対するインタフェースであり、例えばファイバーチャネルプロトコルに従って書込み対象のデータやディスクデバイス１０から読み出されたデータ、及び各種コマンドなどをディスクデバイス１０との間で送受信する。
【００２９】
保守管理端末２６は、ストレージ装置５の保守及び管理に用いられ、例えばノート型のパーソナルコンピュータで構成される。この保守管理端末２６は、ストレージ装置５内の障害の有無を監視し、障害が発生したときにこれをディスプレイに表示したり、管理者に通知する。管理者は、この保守管理端末２６を用いて当該ストレージ装置５のシステム構成情報の設定や後述のストレージグループの構築などを行うことができる。
【００３０】
（１−２）記憶システム１におけるストレージグループＳＧ
次に、記憶システム１に採用されたストレージグループＳＧについて説明する。
【００３１】
（１−２−１）ストレージグループの概要
本実施の形態による記憶システム１は、図３に示すように、マスタとして機能する１台のストレージ装置（以下、適宜、これをマスタストレージ装置と呼ぶ）５と、これと並列に第２のネットワーク４に接続されたスレーブとして機能する複数台のストレージ装置（以下、適宜、これをスレーブストレージ装置と呼ぶ）５とで１つのグループ（以下、これをストレージグループと呼ぶ）ＳＧを構成し、ホスト装置２からのデータ入出力要求に応じたデータ入出力処理及びストレージグループＳＧ内の仮想化処理をマスタストレージ装置５が行い、ストレージグループＳＧ内の内部処理をスレーブストレージ装置５が行う点を特徴の１つとしている。これによりこの記憶システム１においては、データ入出力処理及び仮想化処理と内部処理とを他のストレージ装置５に分離して、例えば複製ボリュームの作成等の負荷の大きな内部処理の実行によってデータ入出力処理が影響を受けるのを実用上十分に抑え得るようになされている。
【００３２】
実際上、この記憶システム１の場合、管理者は、図４について後述するストレージグループ設定画面３０を所望のストレージ装置５の保守管理端末２６に表示させ、このストレージグループ設定画面３０を用いてストレージグループＳＧを構成するストレージ装置５を複数選択し、そのうちの１つのストレージ装置５をマスタに設定することができる。このマスタストレージ装置５がこの後データ入出力処理及びそのストレージグループＳＧ内の仮想化処理を担当することとなる。そして、ストレージグループＳＧ内のマスタストレージ装置５以外のストレージ装置５がスレーブとなる。なお、マスタストレージ装置５を複数設定できるように記憶システム１を構築するようにしても良い。ただし、以下においては、マスタストレージ装置５を１台だけ設定できる場合を例に説明を進める。
【００３３】
ストレージグループＳＧを構成する各ストレージ装置５には、それぞれマスタストレージ装置５に障害が発生したときに代替のマスタとなる優先順位を表す番号（以下、これを優先順位番号と呼ぶ）が付与される。例えばマスタストレージ装置５には「１」が、当該マスタストレージ装置５に障害が発生したときに代替のマスタとなるストレージ装置５には「２」がそれぞれ優先順位番号として付与される。この優先順位番号は、重複したり、間が空いていても構わない。
【００３４】
各ストレージ装置５は、それぞれ同じストレージグループＳＧ内の自ストレージ装置を含めたすべてのストレージ装置５の優先順位番号及びネットワークアドレスなどの情報を保持する。これにより、すべてのストレージ装置５がいつでもマスタとして機能することができる。
【００３５】
スレーブストレージ装置５は、自ストレージ装置と同じ又は自ストレージ装置よりも高い優先順位番号が付与されたストレージ装置５からのディスカバリ要求に対してのみ、動作可能なストレージ装置であることの応答を行い、ホスト装置２や他の装置から与えられたディスカバリ要求には応答しない。このようにすることで、ストレージグループＳＧを構成するストレージ装置５を第２のネットワーク４上に並列に配置しても、ホスト装置２からマスタストレージ装置５以外のストレージ装置５を認識できないようにすることができる。また後述のように複数のストレージグループＳＧが同一のネットワーク上に存在しても、混乱することがない。ただし、ネットワークを構成するスイッチとはリンク接続し、スイッチのルートテーブルに必要な情報採集が可能である。
【００３６】
マスタストレージ装置５は、ホスト装置２からのデータ入出力要求などの各種アクセスに応答するほか、ストレージグループＳＧの構成を行なうことができる。ただし、ストレージグループＳＧが未だ構成されていない初期状態でマスタストレージ装置５が存在しない場合には、任意のストレージ装置５を仮の「マスタ」として、このストレージ装置５を用いてストレージグループＳＧの構築することができる。
【００３７】
管理者が設定したストレージグループＳＧの構成情報（以下、これをグループ構成情報と呼ぶ）をマスタストレージ装置５に記憶させると、マスタストレージ装置５が直ちにこのグループ構成情報をそのストレージグループＳＧ内のすべてのストレージ装置５に通知する。そして、このグループ構成情報を受信した他のストレージ装置５も当該グループ構成情報を参照自在に記憶する。これにより、例えばマスタストレージ装置５が記憶していたストレージグループＳＧの構成情報が欠損した場合においても、同じストレージグループＳＧ内の他のストレージ装置５が記憶しているグループ構成情報を用いてマスタストレージ装置５内のグループ構成情報を復元することが可能となる。
【００３８】
ストレージグループＳＧへの新たなストレージ装置５の増設は、当該ストレージ装置５をそのストレージグループＳＧのグループ構成情報に追加登録するだけで良い。特に指定しない場合、増設されたストレージ装置５には、最下位の優先順位番号が暫定（自動）的に割り当てられる。従って、増設されたストレージ装置５は、当然にスレーブに設定されるため、ストレージ装置５の増設がストレージグループＳＧの構成に重大な影響を与えることはない。増設されたストレージ装置５の記憶容量は、そのストレージグループＳＧ内の記憶容量としてプールされる。なお、増設されたストレージ装置５に付与された優先順位番号は、その後変更することができる。
【００３９】
ストレージグループＳＧは、目的に応じた形態で構築することが可能である。また各ストレージ装置５が、それぞれ自ストレージ装置が属するストレージグループＳＧのグループ構成情報を保持するため、１又は複数のストレージ装置５が重複するように複数のストレージグループＳＧを構築することも可能である。ストレージ装置５が複数のストレージグループＳＧに重複して所属する場合、そのストレージ装置５に対してそれぞれのストレージグループＳＧごとに異なった優先順位番号を付与することができる。ただし、このストレージ装置５については、当該ストレージ装置５内の同じ記憶領域を異なるストレージグループＳＧが使用することのないように、構成設定を行うか、又は必要に応じてＬＵＮマスキングやポートの論理分割等の機能を用いて排他制御を行うようにする。
【００４０】
（１−２−２）ストレージグループＳＧの詳細
次に、ストレージグループＳＧの詳細について説明する。以下においては、ストレージグループＳＧに属するスレーブストレージ装置５のうち、優先順位番号が最も高いものがストレージグループＳＧ内の内部処理を担当するものとして説明する。従って、以下においては、このスレーブストレージ装置５を他のスレーブストレージ装置５と区別するため、適宜、サブマスタストレージ装置５と呼ぶものとする。また本実施の形態においては、図３の右側に表示したように、ストレージグループＳＧ内においてストレージ装置５ごとの仮想ボリュームＶＶＯＬを作成し、この仮想ボリュームＶＶＯＬ単位でミラーリングを行うバックアップ方式を採用しているものとして説明する。
【００４１】
（２−２−１−１）ストレージグループＳＧの設定及びグループ構成情報の管理
まず、この記憶システム１におけるストレージグループＳＧの構築方法及び各ストレージ装置５内におけるストレージグループＳＧのグループ構成情報の管理方法について説明する。
【００４２】
図４は、上述したストレージグループ設定画面３０を示す。この図４からも明らかなように、ストレージグループ設定画面３０には、装置検索ボタン３１、マニュアル設定ボタン３２、装置詳細ボタン３３、追加ボタン３４、削除ボタン３５及び候補ストレージ表示欄３６と、グループ定義部３７とが設けられている。
【００４３】
装置検索ボタン３１は、このときこのストレージグループ設定画面３０を表示している保守管理端末２６を備えるストレージ装置５に対してディスカバリコマンドを発行すべき旨の指令を与えるためのボタンである。このときこのディスカバリコマンドに応答してきた各ストレージ装置５の機種名及びネットワークアドレス等の情報が候補ストレージ表示欄３６に一覧表示される。
【００４４】
またマニュアル設定ボタン３２は、ストレージグループＳＧを構成要素となり得るストレージ装置５の機種名などの情報をマニュアルで入力するためのボタンである。管理者は、このマニュアル設定ボタン３２をクリックすることにより表示される図示しない所定のマニュアル設定画面を用いて、所望のストレージ装置５を、ストレージグループＳＧの構成要素の候補として登録することができる。このとき登録されたストレージ装置５の機種名及びネットワークアドレス等の情報が候補ストレージ表示欄３６に表示される。
【００４５】
装置詳細ボタン３３は、候補ストレージ表示欄３６にエントリされたストレージ装置５の詳細情報を表示させるためのボタンである。候補ストレージ表示欄３６にエントリされた各ストレージ装置５の中から所望のストレージ装置５を指定した後にこの装置詳細ボタン３３をクリックすることによって、上述のディスカバリコマンドに対する応答に基づき得られたそのストレージ装置５の詳細情報を表示させることができる。
【００４６】
追加ボタン３４は、所望のストレージ装置５を、対象とするストレージグループＳＧの構成要素として選択するためのボタンである。管理者は、候補ストレージ表示欄３６にエントリされた各ストレージ装置５の中から所望のストレージ装置５を指定した後、追加ボタン３４をクリックすることによって、そのストレージ装置５を当該ストレージグループＳＧの構成要素として選択することができる。このとき候補ストレージ表示欄３６に表示されていたそのストレージ装置の情報は、後述するグループ定義部３７のグループ構成ストレージ表示欄４４に移動して表示される。
【００４７】
また削除ボタン３５は、対象とするストレージグループＳＧの構成要素から所望のストレージ装置５を外すためのボタンである。管理者は、グループ構成ストレージ表示欄４４にエントリされたストレージ装置５の中から所望のストレージ装置５を指定した後、削除ボタン３５をクリックすることによって、そのストレージ装置５を当該ストレージグループＳＧの構成要素から外すことができる。このときグループ構成ストレージ表示欄４４に表示されていたそのストレージ装置５の情報は、候補ストレージ表示欄３６に移動して表示される。
【００４８】
一方、グループ定義部３７は、新規グループ作成ボタン３８、名称変更ボタン３９、詳細表示ボタン４０、モード変更ボタン４１及び仮想設定ボタン４２と、グループ名表示欄４３及びグループ構成ストレージ表示欄４４とから構成される。
【００４９】
新規グループ作成ボタン３８は、新規のストレージグループＳＧを構築するためのボタンであり、この新規グループ作成ボタン３８をクリックすることにより、グループ構成ストレージ表示欄４４をクリアすることができる。
【００５０】
また名称変更ボタン３９は、対象とするストレージグループＳＧの名称を変更するためのボタンである。グループ名表示欄４３に表示された当該ストレージグループＳＧのグループ名をキーボード等を用いて変更した後にこの名称変更ボタン３９をクリックすることにより、当該ストレージグループＳＧのグループ名をグループ名表示欄４３に表示されている名称に変更することができる。
【００５１】
詳細表示ボタン４０及び仮想設定ボタン４２は、いずれも図５に示す仮想設定画面５０を表示させるためのボタンである。ただし、詳細ボタン４０をクリックした場合には、仮想設定画面５０が変更不可能な状態で表示され、仮想設定ボタン４２をクリックした場合には、仮想設定画面５０が変更可能な状態で表示される。
【００５２】
グループ名表示欄４３は、対象とするストレージグループＳＧのグループ名称を表示するための表示欄である。この記憶システム１の場合、新たなストレージグループＳＧを構築した場合には、その記憶システム１に対して固有のグループ名が自動的に割り当てられ、そのグループ名がこのグループ名表示欄４３に表示される。ただし、このグループ名は、上述のようにその後変更することができる。
【００５３】
グループ構成ストレージ表示欄４４は、対象とするストレージグループＳＧの構成要素として選択された各ストレージ装置５の所定情報を表示するための表示欄である。上述のように、候補ストレージ表示欄３６にエントリされたストレージ装置５の中から選ばれたストレージ装置５の機種名及びネットワークアドレス等の情報がこのグループ構成ストレージ表示欄４４に表示される。
【００５４】
一方、ストレージグループ設定画面３０の右下に表示された登録ボタン４５は、当該ストレージグループ設定画面３０を用いて設定した構成を有するストレージグループＳＧを実際に構築させるためのボタンである。この登録ボタン４５をクリックすることによって、かかるストレージグループ設定画面３０等を用いて設定したストレージグループＳＧの構成情報や、上述のディスカバリコマンドに対する各ストレージ装置５からの応答に基づき得られたこれら各ストレージ装置５の詳細な構成情報をそのストレージ装置５にグループ構成情報として記憶させることができる。
【００５５】
そしてこのグループ構成情報を記憶したストレージ装置５は、このグループ構成情報をそのストレージグループＳＧの構成要素として選択されたすべてのストレージ装置５に送信する。また、このグループ構成情報を受信したストレージ装置５は、それぞれ当該グループ構成情報を参照自在に記憶する。この結果、そのストレージグループＳＧを構成する各ストレージ装置５が、同じグループ構成情報を記憶し、このグループ構成情報に基づいて、それぞれそのストレージグループＳＧにおける自ストレージ装置の優先順位番号や、他のストレージ装置５の構成等を認識することが可能となる。
【００５６】
なお、ストレージグループ設定画面３０の右下に表示されたキャンセルボタン４６は、このストレージグループ設定画面３０に表示された内容を破棄するためのボタンであり、このキャンセルボタン４６をクリックすることにより、このストレージグループ設定画面３０等に表示された構成のストレージグループＳＧを構築させることなく、当該ストレージグループ設定画面３０を閉じさせることができる。
【００５７】
図５は、ホスト装置２に対し、対象とするストレージグループＳＧをどのように見せるかを設定するための仮想設定画面５０を示す。この仮想設定画面５０には、図５からも明らかなように、仮想タイプ設定部５１、仮想状態表示部５２、コントローラボタン５３、ストレージボタン５４、ペア設定ボタン５５及び割当解除ボタン５６と、属性設定部５７とが設けられている。
【００５８】
仮想タイプ設定部５１は、対象とするストレージグループＳＧの仮想タイプを設定するための部位である。管理者は、この仮想タイプ設定部５１のプルダウンボタン５１Ａをクリックしたときに表示される図示しないプルダウンメニューの中から所望の仮想タイプ（ミラータイプや、後述のＮ＋１タイプなど）を選択することができる。そして、このとき選択された仮想タイプが仮想タイプ名表示欄５１Ｂに表示される。
【００５９】
仮想状態表示部５２は、ストレージグループＳＧについて設定された仮想タイプにおけるバックアップデータの移動についての設定を管理者が理解し易いように図解化されたモデルを表すアニメーションを表示するための表示部である。
【００６０】
コントローラボタン５３及びストレージボタン５４は、後述する属性設定部５７のグループ構成ストレージ表示欄５８にエントリされた、対象とするストレージグループＳＧの構成要素として選択された各ストレージ装置５のうちの所望のストレージ装置５をそれぞれ仮想化されたストレージ装置におけるコントローラ又はストレージとして設定するためのボタンである。
【００６１】
またペア設定ボタン５５は、かかるグループ構成ストレージ表示欄５８にエントリされたストレージ装置５の中から、所望のストレージ装置５同士をペア設定するためのボタンである。さらに割当解除ボタン５６は、上述のコントローラボタン５３や、ストレージボタン５４又はペア設定ボタン５５を操作して行なった設定を解除するためのボタンである。
【００６２】
一方、属性設定部５７は、グループ構成ストレージ表示欄５８及び優先順位番号表示欄５９を備える。このうちグループ構成ストレージ表示欄５８には、上述のように対象とするストレージグループＳＧの構成要素として選択された各ストレージ装置５の所定情報が表示される。
【００６３】
またグループ構成ストレージ表示欄５８の上側には、それぞれマスタ設定ボタン６０Ａ、サブマスタ設定ボタン６０Ｂ及びスレーブ設定ボタン６０Ｃが設けられている。グループ構成ストレージ表示欄５８にエントリされたストレージ装置５の中から所望のストレージ装置５を１台指定した後に、マスタ設定ボタン６０Ａ、サブマスタ設定ボタン６０Ｂ又はスレーブ設定ボタン６０Ｃのいずれかをクリックすることにより、そのストレージ装置５をマスタ、サブマスタ又はスレーブに設定することができる。これにより管理者は、マスタやサブマスタのストレージ装置５を複数設定することが可能となる。
【００６４】
また優先順位番号表示欄５９には、グループ構成ストレージ表示欄５８にエントリされたストレージ装置５のうち、そのとき指定しているストレージ装置５に付与された、対象とするストレージグループＳＧ内での優先順位番号が表示される。この記憶システム１の場合、ストレージグループ設定画面３０（図４）のグループ構成ストレージ表示欄４４（図４）にエントリされた順番でストレージ装置５に優先順位番号が付与されるため、この優先順位番号が優先順位番号表示欄５９に表示されることとなる。ただし、この優先順位番号表示欄５９に表示された優先順位番号は、キーボード等を用いて書き換えることができ、これによりそのストレージ装置５の優先順位番号を変更することができる。
【００６５】
仮想設定画面５０の右下に表示された登録ボタン６１や戻るボタン６２は、ストレージグループ設定画面３０（図４）の登録ボタン４５（図４）やキャンセルボタン４６（図４）と同じ機能を有するものであるため、説明を省略する。
【００６６】
図６は、マスタやサブマスタ及びスレーブの動作モードの詳細内容を設定するためのモード設定画面７０を示す。モード設定画面７０には、この図６からも明らかなように、仮想タイプ表示／切替え部７１、仮想状態表示部７２及び属性設定部７３が設けられている。このうち仮想タイプ表示／切替え部７１は、仮想設定画面５０（図５）の仮想タイプ設定部５１（図５）と同様の機能を有するものであるため、説明を省略する。仮想状態表示部７２には、どのボリュームに格納されたデータがどのボリュームにバックアップされるかが図解化されたモデル図で表示される。
【００６７】
属性設定部７３は、マスタ、サブマスタ及びスレーブについて、それぞれその機能タイプや性質（性能）を設定するためのタイプ設定部７４Ａ，７４Ｂ，７４Ｃと、当該マスタ、サブマスタ又はスレーブについて設定された帯域使用率を表示するため帯域設定欄７５Ａ，７５Ｂ，７５Ｃと、当該マスタ、サブマスタ又はスレーブについて設定された上記設定項目についてのより細かなパラメータ、（例えばＱｏＳ（Quality of Service）の各種パラメータの設定等）が可能なパラメータ設定欄７６Ａ，７６Ｂ，７６Ｃとが設けられている。
【００６８】
モード設定画面７０の右下に表示された登録ボタン７７や戻るボタン７８は、ストレージグループ設定画面３０（図４）の登録ボタン４５や戻るボタン４６と同じ機能を有するものであるため、説明を省略する。
【００６９】
一方、図７は、ストレージグループＳＧの構成要素として設定された各ストレージ装置５がそれぞれ保持する上述のグループ構成情報テーブル８０を示す。各ストレージ装置５は、上述のストレージグループ設定画面３０（図４）及び仮想設定画面５０（図５）を用いて管理者が設定したストレージグループＳＧの構成情報や、当該ストレージグループＳＧを構成する各ストレージ装置５の詳細な構成情報をこのような形態のテーブルとして保持する。
【００７０】
このグループ構成情報テーブル８０には、そのストレージグループＳＧ全体の構成に関する管理情報を格納するためのフィールドとして、「Group識別情報」フィールド８０Ａ、「Gr形態」フィールド８０Ｂ、「モード」フィールド８０Ｃ、「ステータス」フィールド８０Ｄ、「構成台数」フィールド８０Ｅ、「順位識別子」フィールド８０Ｆ及び「オプション」フィールド８０Ｇなどが設けられている。
【００７１】
このうち「Group識別情報」フィールド８０Ａには、そのストレージグループＳＧの名称等の識別情報が格納され、「Gr形態」フィールド８０Ｂには、ストレージグループＳＧの形態に対応する値（例えばミラータイプならば「１」、後述するＮ＋１タイプなら「４」）が格納される。また「モード」フィールド８０Ｃには、そのグループ形態ごとの動作モード（「オンライン」又は「保守中」など）が格納され、「ステータス」フィールド８０Ｄには、現在のそのストレージグループＳＧのステータス（「通常動作」又は「リカバリ中」など）が格納される。
【００７２】
さらに、「構成台数」フィールド８０Ｅには、そのストレージグループＳＧを構成するストレージ装置５の台数が格納され、「順位識別子」フィールド８０Ｆには、そのストレージグループＳＧ内における自ストレージ装置の優先順位番号が格納される。さらに「オプション」フィールド８０Ｇには、ストレージグループＳＧ全体の動作に関するオプションフラグなどのオプション情報（「リード／ライト可」又は「ＷＯＲＭ」など）が格納される。
【００７３】
またグループ構成情報テーブル８０には、そのストレージグループＳＧを構成するストレージ装置５ごとの構成情報等の管理情報を格納するためのフィールドとして、これらストレージ装置５にそれぞれ対応させて、「順位識別子」フィールド８０Ｈ、「装置パラメータ」フィールド８０Ｉ及び「構成情報」フィールド８０Ｊが設けられる。
【００７４】
このうち「順位識別子」フィールド８０Ｈには、そのストレージグループＳＧにおけるそのストレージ装置５の優先順位番号（「順位」）や、マスタ、サブマスタ又はスレーブといったそのストレージ装置５の属性を表す情報（「属性情報」）、及びそのストレージ装置５の現在の状態を表す情報（「ステータス」）などが格納される。後述する障害情報フラグは、この「順位識別子」フィールド８０Ｈ内にそのストレージ装置５の現在の状態を表す情報として格納される。
【００７５】
また「装置パラメータ」フィールド８０Ｉには、例えばそのストレージ装置５の型名（「型名」）や、タイプ（「デバイスタイプ」）、そのストレージ装置５のポートに付与されたネットワークアドレス（「ポート識別子」）、そのストレージ装置５のネットワークインタフェースの種別（「I/F種別」）や、対応している通信プロトコル（「対応プロトコル」）及び転送速度（「転送速度」）といった、そのストレージ装置５のハードウェアに固有の情報が格納される。
【００７６】
さらに「構成情報」フィールド８０Ｊには、そのストレージ装置５内に作成された各ボリュームのＬＵＮ等の情報（「LU構成」）、各ボリュームの容量（「容量」）、各ＲＡＩＤグループのＲＡＩＤ構成（「RAID構成」）、各ボリュームの属性（「属性」）及びディスクデバイス１０（図１）の種類（「HDD種類」）といった、そのストレージ装置５の内部構成に関する情報が格納される。
【００７７】
一方、図８は、ストレージグループＳＧ内に設定された仮想ボリュームを管理するためのテーブル（以下、これを仮想ボリューム構成情報テーブルと呼ぶ）８１を示している。この仮想ボリューム構成情報テーブル８１は、ストレージ装置５の保守管理端末２６（図２）を用いて管理者が新たな仮想ボリュームＶＶＯＬを作成したときに、このとき設定されたその仮想ボリュームＶＶＯＬの構成情報に基づいてマスタストレージ装置５により作成され、その後そのストレージグループＳＧ内のすべてのストレージ装置５にそれぞれ送信される。従って、ストレージグループＳＧ内のすべてのストレージ装置５が同じ仮想ボリューム構成情報テーブル８１を保持しており、各ストレージ装置５がそれぞれ必要に応じてこれを参照できるようになされている。
【００７８】
この仮想ボリューム構成情報テーブル８１には、そのストレージグループＳＧ内に作成されたすべての仮想ボリュームＶＶＯＬについて、仮想ボリュームＶＶＯＬごとに、それぞれ「Vol ID」フィールド８１Ａ、「構成台数等」フィールド８１Ｂ、「容量」フィールド８１Ｃ、「属性」フィールド８１Ｄ、「対象装置ID」フィールド８１Ｅ、「対象LU」フィールド８１Ｆ、「対象容量」フィールド８１Ｇ、「先頭LBA」フィールド８１Ｈ、「アクセス許可ホストテーブルP」フィールド８１Ｉ及び「IPアドレステーブルP」フィールド８１Ｊが設けられる。
【００７９】
このうち「Vol ID」フィールド８１Ａには、その仮想ボリュームＶＶＯＬの識別子（ＬＵＮなど）が格納され、「構成台数等」フィールド８１Ｂには、その仮想ボリュームＶＶＯＬを構成するストレージ装置５の台数が格納される。また「容量」フィールド８１Ｃ及び「属性」フィールド８１Ｄには、それぞれその仮想ボリュームＶＶＯＬの容量や属性が格納される。
【００８０】
さらに「対象装置ID」フィールド８１Ｅには、その仮想ボリュームＶＶＯＬを構成するストレージ装置５の識別情報が格納され、「対象LU」フィールド８１Ｆ、「対象容量」フィールド８１Ｇ及び「先頭LBA」フィールド８１Ｈには、それぞれその仮想ボリュームＶＶＯＬが使用する当該ストレージ装置５内のボリュームＶＯＬの識別情報、容量及び先頭ＬＢＡが格納される。その仮想ボリュームＶＶＯＬが、複数のボリュームＶＯＬから構成されている場合には、各ボリュームＶＯＬにそれぞれ対応させて、「対象装置ID」フィールド８１Ｅ、「対象LU」フィールド８１Ｆ、「対象容量」フィールド８１Ｇ及び「先頭LBA」フィールド８１Ｈが設けられる。
【００８１】
さらに「アクセス許可ホストテーブルP」フィールド８１Ｉには、その仮想ボリュームＶＶＯＬへのアクセスが許可された各ホスト装置２の識別子がそれぞれ登録されているテーブル（図示せず）へのポインタが格納され、「IPアドレステーブルP」フィールド８１Ｊには、これらのホスト装置のＩＰアドレスがそれぞれ登録されているテーブル（図示せず）へのポインタが格納される。
【００８２】
他方、図９は、ストレージグループＳＧの構成要素として設定された各ストレージ装置５がそれぞれ保持するグループ動作モード管理テーブル群８２を示す。各ストレージ装置５は、上述のモード設定画面７０（図６）を用いて管理者が設定したグループ構成情報のうちのモード設定に関する情報をこのような形態のテーブル群として保持する。
【００８３】
このグループ動作モード管理テーブル群８２は、マスタ動作設定情報テーブル８２Ａ、サブマスタ動作設定情報テーブル８２Ｂ及びスレーブ動作設定情報テーブル８２Ｃから構成される。そして、これらマスタ動作設定情報テーブル８２Ａ、サブマスタ動作設定情報テーブル８２Ｂ及びスレーブ動作設定情報テーブル８２Ｃには、それぞれストレージ装置５に対する設定内容を格納するためのフィールドとして、「モード」フィールド８２Ｂ及び「パラメータ」フィールド８２Ｃなどが設けられている。
【００８４】
そして各動作設定情報テーブル８２Ａ〜８２Ｃの「モード」フィールド８２Ｂには、マスタストレージ装置５、サブマスタストレージ装置５又はスレーブストレージ装置５についてそれぞれ設定された動作モード（「ノーマル（Normal）」又は「パリティ生成」など）が格納され、「パラメータ」フィールド８２Ｃには、メタデータをバックアップするストレージ装置５の識別子や、マスタストレージ装置５について設定されたＱｏＳによる帯域占有率（数値）などが格納される。
【００８５】
（１−２−２−２）ストレージグループにおけるホストデータ入出力処理及び内部処理
ストレージグループＳＧでは、各ストレージ装置５が提供する記憶領域をマスタストレージ装置５が仮想化するため、ホスト装置２からはストレージグループＳＧが図３の右側に表示したような１つのストレージ装置５′として認識される。このストレージ装置５′の内部には、各ストレージ装置５内にそれぞれ作成されたボリュームＶＯＬを仮想化した仮想ボリュームＶＶＯＬが存在し、ホスト装置２は、これら仮想ボリュームＶＶＯＬを指定したデータ入出力要求をマスタストレージ装置５に要求することとなる。
【００８６】
ここで、図３において「１」のストレージ装置５Ａ（マスタ）内に作成されたボリュームＶＯＬを、ユーザがデータの読み書きに利用するプライマリボリュームとし、「２」のストレージ装置５Ｂ（サブマスタ）内に作成されたボリュームＶＯＬを、プライマリボリュームＶＯＬのバックアップデータを格納するためのセカンダリボリューム、「３」のストレージ装置５Ｃ（スレーブ）内に作成されたボリュームＶＯＬを、プライマリボリュームのある時点のデータイメージであるスナップショットのデータを保存するための正側スナップショットボリューム、「４」のストレージ装置５Ｄ（スレーブ）内に作成されたボリュームＶＯＬを、スナップショットボリュームのバックアップデータを保存するための副側スナップショットボリュームであるとする。
【００８７】
従来の記憶システムでは、ホスト装置２から図３中「１」のストレージ装置５Ａに対してデータ及びその書込み要求が与えられた場合、当該ストレージ装置５Ａが、まず、当該書込み位置のデータをプライマリボリュームから読み出し、これを正側スナップショットボリューム及び副側スナップショットボリュームに退避させ、その後、図中「１」のストレージ装置５Ａが書込み対象のデータをプライマリボリューム及びセカンダリリュームに書き込むという一連の処理を実行することにより、かかるデータのプライマリボリュームへの書き込みを行っている。
【００８８】
これに対して、本実施の形態による記憶システム１では、かかるホスト装置２からのデータ書込み要求に対する一連の処理のうち、ホスト装置２から与えられた書込み対象のデータをプライマリボリュームに書き込む処理のみをマスタストレージ装置５（ストレージ装置５Ａ）により行い、これ以外の内部処理をサブマスタストレージ装置５（ストレージ装置５Ｂ）により行う。
【００８９】
図１０は、このようなホスト装置２からデータ書込み要求が与えられた場合におけるマスタストレージ装置５のＣＰＵ（以下、これをマスタ側ＣＰＵと呼ぶ）２１により行なわれる一連の処理内容を示したフローチャートであり、図１１は、かかる場合にサブマスタストレージ装置５のＣＰＵ（以下、これをサブマスタ側ＣＰＵと呼ぶ）２１により行なわれる一連の処理内容を示したフローチャートである。
【００９０】
マスタ側ＣＰＵ２１は、ホスト装置２からデータ書込み要求及び書込み対象のデータが与えられると、ローカルメモリ２２（図２）に格納された制御プログラムに基づき、図１０に示すマスタ側データ書込み処理手順ＲＴ１に従って、まず、当該データ書込み要求に基づいて、書込み対象のデータを書き込むべき対応する仮想ボリュームＶＶＯＬ上のアドレスを特定する（ＳＰ１）。
【００９１】
続いてマスタ側ＣＰＵ２１は、ステップＳＰ１において特定したアドレスを、データ書込み位置情報（メタデータ）としてサブマスタストレージ装置５に送信する。またマスタ側ＣＰＵ２１は、自ストレージ装置が属するストレージグループＳＧ内において内部処理が行われていることを記憶するためのフラグ（以下、これを内部処理中フラグと呼ぶ）をオンに設定する（ＳＰ２）。
【００９２】
その後マスタ側ＣＰＵ２１は、ホスト装置２から与えられた書込み対象のデータをキャッシュメモリ２４に格納し、当該データの送信元のホスト装置２に対してデータ書込み処理が終了した旨の終了報告を送信する（ＳＰ３）。
【００９３】
続いてマスタ側ＣＰＵ２１は、キャッシュメモリ２４に保持した書込み対象のデータをプライマリボリュームにおける対応するアドレス位置に書き込む（ＳＰ４）。またマスタ側ＣＰＵ２１は、その後、後述のようにサブマスタストレージ装置５から書込み対象のデータのリード要求が与えられると、ホスト装置２から与えられた書込み対象のデータをキャッシュメモリ２４から読み出し、これをサブマスタストレージ装置５に転送する（ＳＰ５）。
【００９４】
さらにマスタ側ＣＰＵ２１は、この後ステップＳＰ２においてオン設定した内部処理中フラグをクリア（オフ設定）し（ＳＰ６）、この後この一連のデータ書込み処理を終了する。
【００９５】
一方、サブマスタ側ＣＰＵ２１は、かかるマスタ側データ書込み処理手順ＲＴ１のステップＳＰ１においてマスタストレージ装置５から送信されたデータ書込み位置情報を受信すると、ローカルメモリ２２に格納された制御プログラムに基づき、図１１に示すサブマスタ側データ書込み処理手順ＲＴ２に従って、まず、当該データ書込み位置情報に基づいて、書込み対象のデータを書き込むべきアドレスを特定し、セカンダリボリューム上の対応するアドレス位置から、書込み対象のデータにより更新される前のデータを読み出す（ＳＰ１０）。
【００９６】
続いてサブマスタ側ＣＰＵ２１は、ステップＳＰ１０においてセカンダリボリュームから読み出したデータを、正側スナップショットボリュームを提供するストレージ装置５（図３のストレージ装置５Ｃ）及び副側スナップショットボリュームを提供するストレージ装置５（図３のストレージ装置５Ｄ）に当該データのデータ書込み要求と共に送信する（ＳＰ１１）。これによりサブマスタ側ＣＰＵは、かかるデータを正側スナップショットボリューム及び副側スナップショットボリュームに格納（退避）させる。
【００９７】
次いでサブマスタ側ＣＰＵ２１は、マスタストレージ装置５に対して、ホスト装置２から与えられた書込み対象のデータのデータ読出し要求を送信する（ＳＰ１２）。そしてサブマスタ側ＣＰＵ２１は、この後かかる書込み対象のデータがマスタストレージ装置５から送信されてくると、これを自ストレージ装置内のセカンダリボリュームにおけるステップＳＰ１０において特定したアドレス位置に書き込む（ＳＰ１３）。
【００９８】
さらにサブマスタ側ＣＰＵ２１は、この後マスタストレージ装置５に内部処理が終了した旨を通知し（ＳＰ１４）、この後この一連の処理を終了する。
【００９９】
次に、図３のストレージ装置５Ｅ内に作成されたボリューム（以下、これを正側ペアボリュームと呼ぶ）と、図３のストレージ装置５Ｆ内に作成されたボリュームＶＯＬ（以下、これを副側ペアボリュームと呼ぶ）とペア結合するために正側ペアボリュームのデータ内容を副側ペアボリュームにそのままコピーする内部処理を実行する場合について説明する。
【０１００】
この場合、かかる内部処理を他の内部処理と並行して行なうことは、サブマスタストレージ装置５Ｂにとっても大きな負担となる。そこで本実施の形態による記憶システム１では、このような場合には、マスタストレージ装置５が、コピー元の正側ペアボリュームを提供するストレージ装置５（５Ｅ）をサブマスタに昇格させ、この昇格したサブマスタストレージ装置５（以下、これを昇格サブマスタストレージ装置と呼ぶ）５が正側ペアボリュームのデータ内容を副側ペアボリュームにコピーする内部処理を実行する。
【０１０１】
図１２は、このような内部処理に関するマスタストレージ装置内のＣＰＵ（マスタ側ＣＰＵ）２１により行なわれる一連の処理内容を示したフローチャートであり、図１３は、かかる場合に昇格サブマスタストレージ装置５のＣＰＵ（以下、これを昇格サブマスタ側ＣＰＵと呼ぶ）２１により行なわれる一連の処理内容を示したフローチャートである。
【０１０２】
マスタ側ＣＰＵ２１は、例えば図３中の「５」のストレージ装置５Ｅ内に作成された正側ペアボリュームと、図３中の「６」のストレージ装置５Ｆ内に作成された副側ペアボリュームとをペア結合すべき旨のコマンドを保守管理端末２６（図２）から与えられると、キャッシュメモリ２４に格納された対応する制御プログラムに基づき、図１２に示すマスタ用ペア結合処理手順ＲＴ３に従って、まず、正側ペアボリュームを提供するストレージ装置５Ｅをサブマスタに昇格させる（ＳＰ２０）。
【０１０３】
このようなストレージ装置５の属性変更は、正側ペアボリュームを提供するストレージ装置５の属性をサブマスタに変更したグループ構成情報テーブル８０（図７）を、ストレージグループＳＧを構成するすべてのストレージ装置５に送信することで実施する。かかる更新後のグループ構成情報テーブル８０を受信した各ストレージ装置５のＣＰＵ２１は、それまで保持していたグループ構成情報テーブル８０を当該更新後のグループ構成情報テーブル８０に置き換える。これによりそのストレージグループＳＧ内のすべてのストレージ装置５が、正側ペアボリュームを提供するストレージ装置５がサブマスタに昇格したことを認識することが可能となる。
【０１０４】
続いてマスタ側ＣＰＵ２１は、コピー元として指定された仮想ボリュームＶＶＯＬ及びコピー先として指定された仮想ボリュームＶＶＯＬの識別情報（メタデータ）を、サブマスタに昇格した昇格サブマスタストレージ装置５に送信し、この後内部処理中フラグをオン設定する（ＳＰ２１）。さらにマスタ側ＣＰＵ２１は、この後、ホスト装置２からのデータ入出力要求に対する通常の処理に戻る（ＳＰ２２）。
【０１０５】
そしてマスタ側ＣＰＵ２１は、やがて後述のように正側ペアボリュームから副側ペアボリュームへのデータのコピーが終了することにより、昇格サブマスタストレージ装置５から当該内部処理が終了した旨の通知が与えられると、内部処理中フラグをクリアすると共に、かかる昇格サブマスタストレージ装置５をスレーブに降格させる（ＳＰ２３）。このようなストレージ装置５の属性の変更も、昇格サブマスタストレージ装置５の属性をスレーブに変更したグループ構成情報テーブル８０を、ストレージグループＳＧを構成するすべてのストレージ装置５に送信することで行なう。
【０１０６】
そしてマスタ側ＣＰＵ２１は、この後この一連の処理を終了する。
【０１０７】
一方、昇格サブマスタ側ＣＰＵ２１は、かかるマスタ側データ書込み処理手順ＲＴ３のステップＳＰ２１においてマスタストレージ装置５から送信されたメタデータを受信すると、ローカルメモリ２２に格納された制御プログラムに基づき、図１３に示すサブマスタ用ペア結合処理手順ＲＴ４に従って、まず、コピー元として指定された自ストレージ装置内の正側ペアボリュームから所定単位分のデータを読み出させ、これを図中「６」のストレージ装置５Ｆに転送させる。また昇格サブマスタ側ＣＰＵ２１は、かかるメタデータに基づいて、図３中「６」のストレージ装置５Ｆを制御することにより、図３中「５」のストレージ装置５Ｅから送信されるデータを、コピー先として指定された仮想ボリュームＶＶＯＬと対応する副側ペアボリュームに書き込ませる（ＳＰ３０）。
【０１０８】
そして昇格サブマスタ側ＣＰＵ２１は、この後正側ペアボリューム内のすべてのデータを副側ペアボリュームにコピーし終えたか否かを判断し（ＳＰ３１）、否定結果を得ると、正側ペアボリューム内のすべてのデータを副側ペアボリュームにコピーし終えるまで同様の処理を繰り返す（ＳＰ３０−ＳＰ３１−ＳＰ３０）。
【０１０９】
そして昇格サブマスタ側ＣＰＵ２１は、やがて、正側ペアボリューム内のすべてのデータを副側ペアボリュームにコピーし終えると、内部処理の終了をマスタ側ＣＰＵに通知し（ＳＰ３２）、この後この一連の処理を終了する。
【０１１０】
なお、上述のような図３の正側ペアボリュームから副側ペアボリュームへのデータコピー処理をするに際して、副側ペアボリュームを有するストレージ装置５Ｆをサブマスタに昇格させるようにしても良い。ただし、コピー処理中に正側ペアボリュームの内容が更新されるおそれがあることを考慮すると、上述のようにストレージ装置５Ｅをサブマスタに昇格させる方が望ましい。
【０１１１】
（１−２−２−３）ストレージグループＳＧにおける障害検出方法及び障害回復処理
次に、かかるストレージグループＳＧにおいて、マスタ、サブマスタ又はスレーブに設定されたストレージ装置５に障害が発生したことの検出方法及びその障害の回復方法について説明する。なお、以下においては、図３について上述したように、プライマリボリュームを提供するストレージ装置５Ａがマスタに設定され、かつセカンダリボリュームを提供するストレージ装置５Ｂがサブマスタに設定された場合以外の場合をも含めた一般例について説明する。
【０１１２】
（１−２−２−３−１）サブマスタに発生した障害の検出方法及びその回復方法
サブマスタストレージ装置５の障害は、マスタストレージ装置５が検出する。これは、図１０について上述したマスタ側データ書込み処理手順ＲＴ１のステップＳＰ２においてマスタストレージ装置５からサブマスタストレージ装置５にメタデータを送信する際にチェックが可能だからである。
【０１１３】
マスタストレージ装置５がサブマスタストレージ装置５の障害を検出した場合、マスタストレージ装置５は、当該サブマスタストレージ装置５の次の優先順位番号が付与されたストレージ装置５をサブマスタに昇格させる。
【０１１４】
その手段として、マスタストレージ装置５は、まず、自分が所有するメタデータを新たにサブマスタに昇格させようとするストレージ装置５に転送する。またマスタストレージ装置５は、元のサブマスタストレージ装置５に障害が発生したことを表す障害情報フラグを立てた新たなグループ構成情報テーブル８０（図７）をそのストレージグループＳＧ内のすべてのストレージ装置５に送信する。
【０１１５】
かかるトレージグループＳＧ内の各ストレージ装置５は、それぞれこの新たなグループ構成情報テーブル８０を受領すると、当該グループ構成情報テーブル８０を参照して自己の優先順位番号を再確認する。この結果、障害が発生したサブマスタストレージ装置５の次の優先番号順位が付与されたストレージ装置５が、自ストレージ装置がサブマスタに昇格すべきことを認識し、自ストレージ装置の属性をサブマスタに変更する。
【０１１６】
サブマスタに昇格したストレージ装置（昇格サブマスタストレージ装置）５は、元のサブマスタストレージ装置５が提供していたボリュームＶＯＬを自ストレージ装置を含めた残りのストレージ装置５に分散等して回復するためのボリューム回復処理を実行する。
【０１１７】
昇格サブマスタストレージ装置５は、かかるボリューム回復処理が終了すると、ボリューム回復処理の完了をマスタストレージ装置５に通知する。この結果、このボリューム回復処理により生じた当該ストレージグループＳＧの構成変更を反映した新たなグループ構成情報テーブル８０がマスタストレージ装置５からストレージグループＳＧ内のすべてのストレージ装置５に送信される。
【０１１８】
マスタストレージ装置５は、昇格サブマスタストレージ装置５がボリューム回復処理を実行している間は、障害が発生した元のサブマスタストレージ装置５が提供していたボリュームＶＯＬに書き込むべきホスト装置２からのデータを、自ストレージ装置やボリューム回復処理への影響が少ないストレージ装置５内のボリューム（以下、これを一時退避用ボリュームと呼ぶ）に一時的にメタデータ（かかるデータの書込み先のデータ等）と共に保存する。また例えば元のサブマスタストレージ装置５が提供するボリュームが正側又は副側のスナップショットボリュームであった場合には、当該スナップショットボリュームに対する差分データの書き込みも抑止する。
【０１１９】
元のサブマスタストレージ装置５が提供していたボリュームＶＯＬのデータを他のストレージ装置５が提供するボリュームＶＯＬにコピーするコピー処理が完了すると、マスタストレージ装置５は、昇格サブマスタストレージ装置５に対して、一時退避用ボリュームに保存させていたホスト装置２からのデータを対応するボリュームＶＯＬに書き込むべき旨の命令を与える。かくして、このとき昇格サブマスタストレージ装置５は、かかるデータと共に保存されているメタデータに基づいて、当該データを対応するボリュームＶＯＬの対応するアドレス位置に書き込むための処理を行なう。当該ボリュームＶＯＬのスナップショットボリュームがある場合には、中断していたスナップショットボリュームへのデータ退避処理も併せて行う。
【０１２０】
マスタストレージ装置５は、昇格サブマスタストレージ装置５からかかるボリューム回復処理が完了した旨の通知が与えられるまでは、ホスト装置２から与えられる元のサブマスタストレージ装置５内のボリュームＶＯＬに書き込むべきデータを一時退避用ボリュームに退避させる退避処理を継続する。このときマスタストレージ装置５は、かかるホスト装置２からのデータを一時退避用ボリュームに書き込む都度、その旨を昇格サブマスタストレージ装置５に通知する。
【０１２１】
昇格サブマスタストレージ装置５は、一時退避用ボリュームに退避させたデータの対応するボリュームＶＯＬへの書込み処理（以下、これを残データ書込み処理と呼ぶ）を完了すると、内部処理の終了をマスタストレージ装置５に通知する。
【０１２２】
マスタストレージ装置５は、この通知を受信すると、ホスト装置２から送信される書込み対象のデータの一時退避用ボリュームへの退避を停止し、メタデータのマージを開始する。なお、このマージ処理は、昇格サブマスタストレージ装置５が残データ書込み処理を実行中に行い、これをマスタストレージ装置５が吸い上げるようにしても良く、またマスタストレージ装置５及び昇格サブマスタストレージ装置５がそれぞれマージ処理を行い、互いのメタデータを検証するようにしても良い。
【０１２３】
そしてかかるストレージグループＳＧは、これ以降、上述のようにして設定された新しい構成で通常通りの処理を行なうこととなる。
【０１２４】
ここで図１４は、このようなサブマスタストレージ装置５の障害検出／ボリューム回復処理に関するマスタストレージ装置５のＣＰＵ（マスタ側ＣＰＵ）２１の処理内容を示したフローチャートである。マスタ側ＣＰＵ２１は、図１０について上述したマスタ側データ書込み処理手順ＲＴ１のステップＳＰ２においてサブマスタストレージ装置にメタデータを送信すると、ローカルメモリ２２に格納された制御プログラムに基づき、この図１４に示す第１の障害検出／回復処理手順ＲＴ５に従って、上述のような一連の障害検出／ボリューム回復処理を実行する。
【０１２５】
すなわちマスタ側ＣＰＵ２１は、マスタ側データ書込み処理手順ＲＴ１のステップＳＰ２においてサブマスタストレージ装置５にメタデータを送信すると、当該マスタ側データ書込み処理手順ＲＴ１と並行してこの第１の障害検出／回復処理手順ＲＴ５を実行し、まず、かかるメタデータの送信後、所定時間が経過してもサブマスタストレージ装置５からの内部処理を終了した旨の通知を受信せず、又は当該サブマスタストレージ装置５から内部処理を正常に終了できなかった旨のエラー通知が与えられたか否かを判断する（ＳＰ４０）。
【０１２６】
この判断において否定結果を得ることは、サブマスタストレージ装置５に障害が発生しておらず、マスタ側ＣＰＵ２１が、サブマスタストレージ装置５からの内部処理の終了の通知を、かかるメタデータを送信してから所定時間内に受信したことを意味する。かくして、このときマスタ側ＣＰＵ２１は、サブマスタストレージ装置５に対するこの回の障害検出処理を終了する。
【０１２７】
これに対してステップＳＰ４０の判断において肯定結果を得ることは、サブマスタストレージ装置５に障害が発生したことを意味する。かくして、このときマスタ側ＣＰＵ２１は、グループ構成情報テーブル８０を参照して、このときサブマスタストレージ装置５の優先順位番号を最大値（最下位）に設定して、属性をスレーブに降格させる一方、当該サブマスタストレージ装置５の次の優先順位番号が付与されたスレーブストレージ装置５を、上述と同様の方法により新たなサブマスタに昇格させる（ＳＰ４１）。
【０１２８】
またマスタ側ＣＰＵ２１は、この後、ローカルメモリ２２に格納された制御プログラムに基づき、図１５及び図１６に示すマスタ側ボリューム回復処理手順ＲＴ６に従って、かかる障害の回復処理を実行する（ＳＰ４２）。
【０１２９】
具体的に、マスタ側ＣＰＵ２１は、第１の障害検出／回復処理手順ＲＴ５のステップＳＰ４２に進むと、このマスタ側ボリューム回復処理手順ＲＴ６を開始し、まず、新たにサブマスタに昇格したストレージ装置（昇格サブマスタストレージ装置）５に対して、元のサブマスタストレージ装置５が提供するボリュームＶＯＬを回復すべき旨の命令（以下、これをボリューム回復命令と呼ぶ）を与えると共に、内部処理中フラグをオン設定する（ＳＰ５０）。
【０１３０】
この後マスタ側ＣＰＵ２１は、ホスト装置２からのデータ入出力要求を受信するのを待ち受け（ＳＰ５１）、当該データ入出力要求を受信すると、このデータ入出力要求が、障害が発生した元のサブマスタストレージ装置５が提供するボリュームＶＯＬと対応付けられた仮想ボリュームＶＶＯＬに対するものであるか否かを判断する（ＳＰ５２）。
【０１３１】
マスタ側ＣＰＵ２１は、この判断において否定結果を得ると、かかるデータ入出力要求に応じて通常のデータ入出力処理を実行し（ＳＰ５３）、この後ステップＳＰ５１に戻って、次のホスト装置２からのデータ入出力要求を受信するのを待ち受ける。
【０１３２】
これに対して、マスタ側ＣＰＵ２１は、この判断において肯定結果を得ると、そのデータ入出力要求が、データ読出し要求であるか否かを判断する（ＳＰ５４）。そしてマスタ側ＣＰＵ２１は、この判断において肯定結果を得ると、障害が発生した元のサブマスタストレージ装置５が提供するボリュームＶＯＬ（この場合、このボリュームＶＯＬはプライマリボリューム）に対応するセカンダリボリュームを提供するストレージ装置５を制御することにより、当該セカンダリボリュームから対応するデータを読み出す。またマスタ側ＣＰＵ２１は、このデータをかかるデータ入出力要求（データ読出し要求）を送信してきたホスト装置２に転送し（ＳＰ５５）、この後ステップＳＰ５１に戻って、次のホスト装置２からのデータ入出力要求を受信するのを待ち受ける。
【０１３３】
これに対して、マスタ側ＣＰＵ２１は、ステップＳＰ５４の判断において否定結果を得ると、ステップＳＰ５１において受信したデータ入出力要求がデータ書込み要求であるか否かを判断する（ＳＰ５６）。そしてマスタ側ＣＰＵ２１は、この判断において否定結果を得るとステップＳＰ５１に戻って、次のホスト装置２からのデータ入出力要求を受信するのを待ち受ける。なお、この場合のマスタが行うべき処理については省略している。
【０１３４】
これに対して、マスタ側ＣＰＵ２１は、このステップＳＰ５６の判断において肯定結果を得ると、ステップＳＰ５１において受信したデータ入出力要求（データ書込み要求）に基づき得られるデータの書込み先のアドレス位置を表すメタデータと、当該データ入出力要求と共にホスト装置２から送信されてくる書込み対象のデータとを、現在実行中の回復処理に影響を与えない任意のストレージ装置５が提供する空き領域等に一時保存用ボリュームを作成し又は、任意のボリュームＶＯＬに一時的に退避させる（ＳＰ５７）。以下においては、このように書込み対象のデータ及びそのメタデータを一時的に格納するボリュームＶＯＬを一時退避用ボリュームＶＯＬと呼ぶ。
【０１３５】
この後マスタ側ＣＰＵ２１は、後述のように昇格サブマスタストレージ装置５からボリューム回復処理が完了した旨の通知が送信されてきたか否かを判断し（ＳＰ５８）、否定結果を得るとステップＳＰ５１に戻って、次のホスト装置２からのデータ入出力要求を受信するのを待ち受ける。
【０１３６】
これに対してマスタ側ＣＰＵ２１は、ステップＳＰ５８の判断において肯定結果を得ると、ステップＳＰ５７において書込み対象のデータ及びそのメタデータを格納した一時退避用ボリュームＶＯＬ及び当該一時退避用ボリュームＶＯＬ上の退避先のアドレス位置等のメタデータを昇格サブマスタストレージ装置５に送信する（ＳＰ５９）。
【０１３７】
またマスタ側ＣＰＵ２１は、この後、ステップＳＰ５１〜ステップＳＰ５５について上述した障害回復処理時のデータ入出力処理を実行し（ＳＰ６０）、このデータ入出力処理において、障害が発生した元のサブマスタストレージ装置５が提供するボリュームＶＯＬと対応付けられた仮想ボリュームＶＶＯＬに対するデータ入出力処理がホスト装置２から与えられ、そのデータ入出力処理がデータ読出し要求でなかったときには（ＳＰ６０）、そのデータ入出力処理が、元のサブマスタストレージ装置５が提供するボリュームＶＯＬと対応付けられた仮想ボリュームＶＶＯＬに対するデータ書込み要求であるか否かを判断する（ＳＰ６１）。
【０１３８】
マスタ側ＣＰＵ２１は、この判断において否定結果を得ると、ステップＳＰ６０の障害回復処理時のデータ入出力処理に戻り、これに対して肯定結果を得ると、このデータ書込み要求に基づき得られるデータの書込み先を表すメタデータと、このデータ書込み要求と共にホスト装置２から送信される書込み対象のデータとを、上述の一時退避用ボリュームＶＯＬに一時的に退避させる（ＳＰ６２）。またマスタ側ＣＰＵ２１は、このように書込み対象のデータ及びそのメタデータを一時退避用ボリュームＶＯＬに退避させたことをサブマスタストレージ装置５に通知する（ＳＰ６２）。
【０１３９】
そしてマスタ側ＣＰＵ２１は、この後サブマスタストレージ装置５からボリューム回復処理が終了した旨の通知が与えられたか否かを判断し（ＳＰ６３）、否定結果を得ると障害回復処理時のデータ入出力処理に戻る（ＳＰ６０）。
【０１４０】
これに対して、マスタ側ＣＰＵ２１は、この判断において肯定結果を得ると、ボリュームＶＯＬのメタデータのマージ処理を実施し、このメタデータを昇格サブマスタストレージ装置５に送信して記憶させる。またマスタ側ＣＰＵ２１は、一時退避用ボリュームＶＯＬを一時退避用のボリュームＶＯＬとする設定を解除し、さらに内部処理中フラグをクリアした後、この一連の回復処理を終了する。
【０１４１】
一方、このとき昇格サブマスタストレージ装置５のＣＰＵ（昇格サブマスタ側ＣＰＵ）２１は、ローカルメモリ２２に格納された制御プログラムに基づき、図１７に示すサブマスタ側ボリューム回復処理手順ＲＴ７に従って、障害が発生した元のサブマスタストレージ装置５が提供するボリュームＶＯＬのデータを他のストレージ装置５のボリュームＶＯＬに移動させるボリューム回復処理を実行する。
【０１４２】
すなわち昇格サブマスタ側ＣＰＵ２１は、図１５及び図１６について上述したマスタ側ボリューム回復処理手順ＲＴ６のステップＳＰ５０においてマスタストレージ装置５から送信された上述のボリューム回復命令を受信すると、このサブマスタ側ボリューム回復処理手順ＲＴ７を開始し、まず当該元のサブマスタストレージ装置５が提供していた各ボリュームＶＯＬについて、そのボリュームＶＯＬと同じデータが格納されているボリュームＶＯＬが作成されているストレージ装置をグループ構成情報テーブル８０（図７）及び仮想ボリューム構成情報テーブル８１（図８）に基づいて特定する（ＳＰ７０）。
【０１４３】
実際上、昇格サブマスタ側ＣＰＵ２１は、例えば元のサブマスタストレージ装置５が提供していた各ボリュームＶＯＬがプライマリボリュームであった場合には対応するセカンダリボリュームを提供するストレージ装置５、当該ボリュームＶＯＬがセカンダリボリュームであった場合には対応するプライマリボリュームを提供するストレージ装置５を特定することとなる。
【０１４４】
また昇格サブマスタ側ＣＰＵ２１は、これと併せて、元のサブマスタストレージ装置５が提供していた各ボリュームＶＯＬを、復元ボリュームを提供するストレージ装置を除く自己を含めた残りのストレージ装置５にボリューム単位で分散等して復元する際の復元先となるストレージ装置をグループ構成情報テーブル８０（図７）及び仮想ボリューム構成情報テーブル８１（図８）に基づいて選定する（ＳＰ７０）。
【０１４５】
この際、昇格サブマスタ側ＣＰＵ２１は、分散先のストレージ装置５として、このボリューム回復処理に与える影響が少ないストレージ装置５を選択する。例えば分散先のストレージ装置５として自ストレージ装置を選択した場合、昇格サブマスタ側ＣＰＵ２１が回復処理に加えて、後述のようなボリュームＶＯＬのコピー処理も行わなければならなくなるために当該昇格サブマスタ側ＣＰＵ２１の負荷が大きく、ボリューム回復処理に大きな影響を与えることとなる。そこで、昇格サブマスタ側ＣＰＵ２１は、自ストレージ装置をなるべく選択しないように、分散先のストレージ装置５を選択することとなる。
【０１４６】
続いて昇格サブマスタ側ＣＰＵ２１は、ステップＳＰ７０において特定した、元のサブマスタストレージ装置５が提供していたボリュームＶＯＬと同じデータを保持するボリュームＶＯＬから、ステップＳＰ７０において特定した分散先のストレージ装置５が提供するボリュームＶＯＬにデータをコピーするコピー処理を実行するために対応するストレージ装置５を制御する（ＳＰ７１）。
【０１４７】
その後昇格サブマスタ側ＣＰＵ２１は、必要な全データのコピー処理が完了したか否かを判断し（ＳＰ７２）、否定結果を得るとステップＳＰ７１に戻って上述のコピー処理を継続する。また昇格サブマスタ側ＣＰＵ２１は、やがて必要な全データのコピー処理が完了すると、マスタストレージ装置５に対して内部処理の終了を通知する（ＳＰ７３）。
【０１４８】
さらに昇格サブマスタ側ＣＰＵ２１は、この後、図１５及び図１６について上述したマスタ側回復処理手順ＲＴ６のステップＳＰ５９においてマスタストレージ装置５から送信されたメタデータを受信すると、対応するストレージ装置５を制御することにより、このメタデータに基づき認識される上述の一時退避用ボリュームＶＯＬから書込み対象のデータ及びその書込み位置を表すメタデータを読み出し、当該書込み対象のデータを対応するボリュームＶＯＬの対応するアドレス位置に書き込む。
【０１４９】
そして昇格サブマスタ側ＣＰＵ２１は、この後、一時退避用ボリュームＶＯＬに退避させていたすべての書込み対象のデータのコピー処理が完了したか否かを判断し（ＳＰ７５）、否定結果を得るとステップＳＰ７４に戻って同様の処理を繰り返す（ＳＰ７４−ＳＰ７５−ＳＰ７４）。
【０１５０】
また昇格サブマスタ側ＣＰＵ２１は、やがてかかるステップＳＰ７４のコピー処理が完了することによりステップＳＰ７５の判断において肯定結果を得ると、内部処理（ボリューム回復処理）が終了した旨をマスタストレージ装置５に通知し（ＳＰ７６）、この後この一連のボリューム回復処理を終了する。
【０１５１】
（１−２−２−３−２）スレーブに発生した障害の検出方法及びその回復方法
スレーブストレージ装置５の障害は、マスタストレージ装置５又はサブマスタストレージ装置５が検出する。これは、スレーブストレージ装置５が提供するボリュームＶＯＬに対してデータを読み書きする際にチェックが可能だからである。
【０１５２】
スレーブストレージ装置５の障害をサブマスタストレージ装置５が検出した場合、当該サブマスタストレージ装置５は、その旨をマスタストレージ装置５に通知する。そしてマスタストレージ装置５及びサブマスタストレージ装置５は、この後上述のサブマスタストレージ装置５に発生した障害を検出した場合と同様にして、かかる障害が発生したスレーブストレージ装置５が提供するボリュームＶＯＬの回復処理を実行する。
【０１５３】
図１８は、このようなスレーブストレージ装置５の障害検出／ボリューム回復処理に関するマスタストレージ装置５及びサブマスタストレージ装置５のＣＰＵ２１（マスタ側ＣＰＵ２１又はサブマスタ側ＣＰＵ２１）の処理内容を示したフローチャートである。マスタ側ＣＰＵ２１又はサブマスタ側ＣＰＵ２１は、ホスト装置２からのデータ入出力要求に応じて又は内部処理のために、対応するスレーブストレージ装置５にデータ入出力要求を発行すると、ローカルメモリ２２に格納されている制御プログラムに基づき、この図１８に示す第２の障害検出／ボリューム回復処理手順ＲＴ８を開始する。
【０１５４】
そしてマスタ側ＣＰＵ２１又はサブマスタ側ＣＰＵ２１は、まず、かかるデータ入出力要求をスレーブストレージ装置５に送信後、所定時間が経過してもそのスレーブストレージ装置５から応答を受信せず、又は当該スレーブストレージ装置５からエラー通知が与えられたか否かを判断する（ＳＰ８０）。
【０１５５】
この判断において否定結果を得ることは、そのスレーブストレージ装置５に障害が発生しておらず、マスタ側ＣＰＵ２１又はサブマスタ側ＣＰＵ２１が、かかるメタデータの送信後、所定時間内にそのスレーブストレージ装置５から内部処理を終了した旨の通知を受信したことを意味する。かくして、このときマスタ側ＣＰＵ２１又はサブマスタ側ＣＰＵ２１は、そのスレーブストレージ装置５に対する障害検出処理を終了する。
【０１５６】
これに対してステップＳＰ８０の判断において肯定結果を得ることは、そのスレーブストレージ装置５に障害が発生したことを意味する。かくして、この障害を検出したのがサブマスタ側ＣＰＵ２１であった場合、当該サブマスタ側ＣＰＵ２１は、かかる障害を検出したことをマスタストレージ装置５に通知する。
【０１５７】
一方、かかるスレーブストレージ装置５の障害を検出したのがマスタ側ＣＰＵ２１であった場合、又はかかるスレーブストレージ装置５の障害を検出した旨の通知がサブマスタ側ＣＰＵ２１からマスタストレージ装置５に与えられた場合、マスタ側ＣＰＵ２１は、図１５及び図１６について上述したマスタ側ボリューム回復処理手順ＲＴ６を実行する。またこれに伴ってサブマスタ側ＣＰＵ２１も、図１７について上述したサブマスタ側ボリューム回復処理手順ＲＴ７を実行する。
【０１５８】
なお、この実施の形態においては、マスタ側ボリューム回復処理手順ＲＴ６のステップＳＰ５１又はステップＳＰ６０において、障害が発生したスレーブストレージ装置５が提供するボリュームＶＯＬに対するデータ書込み要求が与えられた場合、マスタ側ＣＰＵ２１は、書込み対象のデータ及びその書込み位置を表すメタデータとを一時退避用ボリュームＶＯＬに一時的に退避させるようにしているが、かかる障害が発生したスレーブストレージ装置５が提供するボリュームＶＯＬ及び当該ボリュームＶＯＬと同一のデータが格納されているボリュームＶＯＬの双方とも内部処理を行なうボリュームＶＯＬでない場合には、対象とするボリュームＶＯＬを直接更新するようにしても良い。
【０１５９】
また、スレーブストレージ装置５は動作可能であるが、障害により冗長性を失ったことを検出した場合にも上述のボリューム回復処理を行なうようにしても良い。
【０１６０】
（１−２−２−３−３）マスタに発生した障害の検出方法及びその回復方法
マスタストレージ装置５の障害は、サブマスタストレージ装置５が検出する。そのための手段として、サブマスタストレージ装置５は、ハード的又はソフト的な内部カウンタ（タイマ）を有しており、例えば図１０について上述したマスタ側データ書込み処理手順ＲＴ１のステップＳＰ２又はステップＳＰ５においてマスタストレージ装置５から送信されるメタデータを受信したときに、その内部カウンタをリセットする。
【０１６１】
そしてサブマスタストレージ装置５は、最後にマスタストレージ装置５からのメタデータを受信してから所定時間経過した場合には、マスタストレージ装置５に対して所定の問合せコマンドを送信する。
【０１６２】
このときマスタストレージ装置５に異常がなく、かかる問合せコマンドに応答してきた場合には、サブマスタストレージ装置５は、内部カウンタをリセットし、この後、再びマスタストレージ装置５からメタデータが送られてくるのを待ち受ける待ち受け状態となる。ただし、このような状況は、かかる所定時間の間、ホスト装置２からのデータ入出力要求がマスタストレージ装置５に与えられていない場合に発生する。従って、この場合、サブマスタストレージ装置５は、次回の問合せコマンドを発行するまでの時間をそれまで設定されていた時間よりも長く設定するようにしても良い。
【０１６３】
一方、サブマスタストレージ装置５は、かかる問合せコマンドに対するマスタストレージ装置５からの応答が所定時間内になかった場合には、マスタストレージ装置５に昇格し、障害が発生したと考えられる元のマスタストレージ装置５のネットワークアドレス及びデータ入出力処理を引き継ぐ。
【０１６４】
またマスタに昇格したストレージ装置（以下、これを昇格マスタストレージ装置と呼ぶ）５は、自分の次に優先順位番号が小さいストレージ装置５をサブマスタに昇格させる。この際、昇格マスタストレージ装置５は、上述したマスタストレージ装置５に障害が発生した場合と同様にして、自己が所有するメタデータを新たにサブマスタに昇格したストレージ装置（昇格サブマスタストレージ装置）５に転送する。
【０１６５】
そして昇格マスタストレージ装置５は、この後上述のサブマスタに発生した障害を検出した場合と同様にして、かかる障害が発生した元のマスタストレージ装置５が提供するボリュームＶＯＬを回復するボリューム回復処理を実行する。
【０１６６】
図２０は、このようなマスタストレージ装置５に対する障害検出／ボリューム回復処理のうち、図１０について上述したマスタ側データ書込み処理手順ＲＴ１のステップＳＰ２においてマスタストレージ装置５が送信するメタデータに基づいて当該マスタストレージ装置５の障害を検出する障害検出／ボリューム回復処理に関するマスタに昇格する前のサブマスタストレージ装置５のＣＰＵ（サブマスタ側ＣＰＵ）２１の処理内容を示したフローチャートである。かかるサブマスタ側ＣＰＵ２１は、ローカルメモリ２２に格納された制御プログラムに基づき、この図１９に示す第３の障害検出／ボリューム回復処理手順ＲＴ９に従って、マスタストレージ装置５の障害を検出する。
【０１６７】
すなわちサブマスタ側ＣＰＵ２１は、自ストレージ装置の電源が投入された後、立ち上がり処理としてかかる内部カウンタをリセットすると、この第３の障害検出／ボリューム回復処理手順ＲＴ９を開始し、まず、当該内部カウンタのカウント値を確認し（ＳＰ９０）、当該カウント値が既定の閾値を超過したか否かを判断する（ＳＰ９１）。
【０１６８】
サブマスタ側ＣＰＵ２１は、この判断において否定結果を得ると、内部カウンタの監視を続け、かかるカウント値が閾値を超過したときには、マスタストレージ装置５に対して問合せコマンド（例えばTestUnitReadyコマンド）を送信し、この後、この問合せコマンドに対する応答がマスタストレージ装置５から所定時間内に与えられず又はマスタストレージ装置５からエラー通知が与えられたか否かを判断する（ＳＰ９３）。
【０１６９】
この判断において否定結果を得ることは、マスタストレージ装置５には障害が発生していないことを意味する。かくしてこのときサブマスタ側ＣＰＵ２１は、内部カウンタをリセットし（ＳＰ９４）、この後ステップＳＰ９０に戻って同様の処理を繰り返す（ＳＰ９０〜ＳＰ９４−ＳＰ９０）。
【０１７０】
これに対して、ステップＳＰ９３の判断において肯定結果を得ることは、マスタストレージ装置５に障害が発生しているおそれが高いことを意味する。かくしてこのときサブマスタ側ＣＰＵ２１は、自ストレージ装置の属性をサブマスタからマスタに変更すると共に、グループ構成情報テーブル８０（図７）を参照して、自ストレージ装置のネットワークアドレスを元のマスタストレージ装置５のネットワークアドレスに書き換えるなどの元のマスタストレージ装置５の処理を引き継ぐための所定の引継ぎ処理を実行する（ＳＰ９５）。
【０１７１】
またサブマスタ側ＣＰＵ（この段階では昇格マスタ側ＣＰＵ）２１は、この後自ストレージ装置の次の優先順位番号が付与されたスレーブストレージ装置５をサブマスタに昇格させる（ＳＰ９６）。次いでサブマスタ側ＣＰＵ（昇格マスタ側ＣＰＵ）２１は、図１５及び図１６について上述したボリューム回復処理手順ＲＴ６を実行することにより、元のマスタストレージ装置５が提供するボリュームＶＯＬを他のストレージ装置５内において回復するボリューム回復処理を実行し（ＳＰ９７）、この後この一連の障害検出／ボリューム回復処理を終了する。
【０１７２】
一方、図２０は、マスタストレージ装置５に対する障害検出／ボリューム回復処理のうち、図１０について上述したマスタ側データ書込み処理手順ＲＴ１のステップＳＰ５においてマスタストレージ装置５から送信されるべきメタデータに基づいて当該マスタストレージ装置５の障害を検出する障害検出／ボリューム回復処理に関するマスタに昇格する前のサブマスタストレージ装置５のＣＰＵ（サブマスタ側ＣＰＵ）２１の処理内容を示したフローチャートである。かかるサブマスタ側ＣＰＵ２１は、ローカルメモリ２２に格納された制御プログラムに基づき、この図２０に示す第４の障害検出／ボリューム回復処理手順ＲＴ１０に従って、マスタストレージ装置５の障害を検出する。
【０１７３】
すなわちサブマスタ側ＣＰＵ２１は、図１１について上述したサブマスタ側データ書込み処理手順ＲＴ２のステップＳＰ１２においてマスタストレージ装置５に対してデータ読出し要求を発行すると、この第４の障害検出／ボリューム回復処理手順ＲＴ１０を開始し、まず、かかるデータ読出し要求に対する応答がマスタストレージ装置５から所定時間内に与えられず又はマスタストレージ装置５からエラー通知が与えられたか否かを判断する（ＳＰ１００）。
【０１７４】
この判断において否定結果を得ることは、マスタストレージ装置５には障害が発生していないことを意味する。かくしてこのときサブマスタ側ＣＰＵ２１は、マスタストレージ装置５に対する障害検出／ボリューム回復処理を終了する。
【０１７５】
これに対して、ステップＳＰ１００の判断において肯定結果を得ることは、マスタストレージ装置５に障害が発生しているおそれが高いことを意味する。かくしてこのときサブマスタ側ＣＰＵ２１は、ステップＳＰ１０１〜ステップＳＰ１０３を、図１９について上述した第３の障害検出／ボリューム回復処理手順ＲＴ９のステップＳＰ９５〜ステップＳＰ９７と同様に処理する。
【０１７６】
そしてサブマスタ側ＣＰＵ２１は、この後マスタストレージ装置５に対する障害検出／ボリューム回復処理を終了する。
【０１７７】
（１−３）本実施の形態の効果
以上のように、本実施の形態による記憶システムでは、ストレージグループに対するホスト装置からのデータ入出力要求に対する処理をマスタストレージ装置が行い、これ以外の内部処理をサブマスタストレージ装置が行なうため、各ストレージ装置が提供するボリュームの仮想化を行うストレージ装置（マスタストレージ装置）に負荷が集中することがなく、ストレージグループ内において負荷の大きな内部処理を実行しても、ホスト装置からのデータ入出力要求に対して迅速に応答することができる。
【０１７８】
（２）第２の実施の形態
（２−１）本実施の形態による記憶システムの構成
図２１において、１００は第２の実施の形態による記憶システムを示す。この記憶システム１００は、データのバックアップ方式がＮ＋１冗長構成となっている点を除いて第１の実施の形態による記憶システム１と同様に構成されている。
【０１７９】
実際上、この記憶システム１００の場合、図２１に示すように、各仮想ボリュームＶＶＯＬには、それぞれストレージグループＳＧ内の各ストレージ装置５内にそれぞれ作成されたボリュームＶＯＬの中から複数のボリュームＶＯＬが対応付けられている（すなわち、複数のボリュームＶＯＬをまとめて１つの仮想ボリュームＶＶＯＬとしてホスト装置２に提供している）。そして、この記憶システム１００では、ホスト装置２からいずれかの仮想ボリュームＶＶＯＬを指定して与えられる書込み対象のデータが、その仮想ボリュームＶＶＯＬと対応付けられた複数のボリュームＶＯＬにＮ＋１冗長の形態で保存される。この場合において、本実施の形態においては、アクセスのオーバヘッドを軽減するために、原則的にファイルを分割せずに各ボリュームＶＯＬ内に保存する。
【０１８０】
例えば図２１の例では、仮想ボリュームＶＶＯＬは、「１」で示すマスタストレージ装置５Ａ内に作成された「ａ」で示すボリュームＶＯＬと、「２」で示すサブマスタストレージ装置５Ｂ内に作成された「ａ」で示すボリュームＶＯＬと、「３」で示すスレーブストレージ装置５Ｃ内に作成された「ａ」で示すボリュームＶＯＬと、「４」で示すスレーブストレージ装置５Ｄ内に作成された「ａ」で示すボリュームＶＯＬと、「５」で示すスレーブストレージ装置５Ｅ内に作成された「ａ」で示すボリュームＶＯＬとから構成されている。
【０１８１】
そして、この仮想ボリュームＶＶＯＬを書込み先として幾つかのファイルデータがホスト装置２から与えられた場合、１つ目のファイルデータは、サブマスタストレージ装置５Ｂ内の「ａ」で示すボリュームＶＯＬに格納され、次のファイルデータは、スレーブストレージ装置５Ｃ内の「ａ」で示すボリュームＶＯＬに格納され、……というように、データがファイル単位で各ボリュームＶＯＬに順次格納されることとなる。ただし、ファイルがあまりにも巨大であり、分割した方が性能が良くなる場合には、ファイルを分割するようにしても良い。
【０１８２】
マスタストレージ装置５Ａは、データ書込み要求により指定された書込み先の仮想ボリュームＶＶＯＬと対応付けられているいずれかのボリュームＶＯＬにファイルデータを保存した場合には、このファイルデータに基づいてパリティを生成し、これを自ストレージ装置内のボリュームＶＯＬに格納する。また仮想ボリュームＶＶＯＬのメタデータは、マスタストレージ装置５Ａ及びサブマスタストレージ装置５Ｂに二重化して保持される。
【０１８３】
なお、本実施の形態による記憶システム１００において、サブマスタストレージ装置５Ｂは、通常動作中は、マスタストレージ装置５Ａの障害検出処理を行なう以外は他のスレーブストレージ装置５Ｃ〜５Ｅと同じ処理を実行し、特別な処理は実行しない。ただし、スナップショットボリューム等が設定された場合には、第１の実施の形態と同様の内部処理を実行する。また回復処理も、第１の実施の形態と同様の手順で行う。ただし、この場合におけるデータ回復は、パリティによる復元となる。このように本実施の形態では、通常時におけるマスタストレージ装置５Ａの負荷が従来と変わらないが、障害回復処理の負荷の一部がサブマスタストレージ装置５Ｂに移行されることとなる。
【０１８４】
（２−２）データ書込み処理に関するマスタの動作モデル
次に、本実施の形態のストレージグループＳＧにおけるデータの書込み処理に関するマスタストレージ装置５ＡのＣＰＵ（マスタ側ＣＰＵ）２１の処理手順について説明する。マスタ側ＣＰＵ２１は、ローカルメモリ２２に格納された制御プログラムに基づき、以下の処理を実行する。なお以下においては、書込み対象のファイルデータの書込み先は、いずれも同じ仮想ボリュームＶＶＯＬであるものとする。
【０１８５】
本実施の形態のマスタ側ＣＰＵ２１は、ホスト装置２から書込み対象のファイルデータＡが与えられると、図２２（Ａ−１）に示すように、そのファイルデータＡを、パリティを格納する自ストレージ装置内のボリューム（以下、これをパリティボリュームと呼ぶ）ＶＯＬに対する自分以外のいずれかのストレージ装置５が提供するボリュームＶＯＬ内の第１の領域に格納する。この図２２（Ａ−１）の例では、このファイルデータＡが、サブマスタストレージ装置５ＢのボリュームＶＯＬ内の第１の領域に格納されたことを示している。
【０１８６】
その後、マスタ側ＣＰＵ２１は、このファイルデータＡをパリティボリュームＶＯＬ内の第１の領域にも書き込み、この後この仮想ボリュームＶＶＯＬ内のどの領域にどのデータが格納されているかを表すメタデータを更新する。さらにマスタ側ＣＰＵ２１は、更新したメタデータのバックアップをサブマスタストレージ装置５Ｂに転送する。従って、図２２（Ａ−１）の例の場合、図２２（Ａ−２）に示すように、ファイルデータＡについてのメタデータがマスタストレージ装置５Ａ及びサブマスタストレージ装置５Ｂに保持され、その分散度は「１」であるということになる。
【０１８７】
次いで、マスタ側ＣＰＵ２１は、ホスト装置２から書込み対象のファイルデータＢが与えられると、図２２（Ｂ−１）に示すように、そのファイルデータＢを、パリティボリュームＶＯＬ及びファイルデータＡが格納されたボリュームＶＯＬ以外のいずれかのストレージ装置５が提供するボリュームＶＯＬ内の第１の領域に格納する。この図２２（Ｂ−１）の例では、このファイルデータＢが、スレーブストレージ装置５ＣのボリュームＶＯＬ内の第１の領域に格納されたことを示している。
【０１８８】
その後、マスタ側ＣＰＵ２１は、このファイルデータＢと、前回パリティボリュームＶＯＬに格納したパリティデータ（この場合はファイルデータＡ）とのＸＯＲを計算するようにして新たなパリティデータを生成し、パリティボリュームＶＯＬ内のパリティデータをこの新たなパリティデータに更新する。またマスタ側ＣＰＵ２１は、この後かかるファイルデータＢの書込み処理に応じてこの仮想ボリュームＶＶＯＬのメタデータを更新し、更新したメタデータのバックアップをサブマスタストレージ装置５Ｂに転送する。従って、図２２（Ｂ−１）の例の場合、図２２（Ｂ−２）に示すように、ファイルデータＡ及びファイルデータＢのメタデータがマスタストレージ装置５Ａ及びサブマスタストレージ装置５Ｂに保持され、その分散度は「２」であるということになる。
【０１８９】
続いて、マスタ側ＣＰＵ２１は、ホスト装置２からファイルデータＢの更新データであるファイルデータＢ′が与えられると、図２２（Ｃ−１）に示すように、そのファイルデータＢ′を、更新前のファイルデータＢが格納されたボリュームＶＯＬに格納せずに、未だファイルデータが格納されていないいずれかのストレージ装置５が提供するボリュームＶＯＬ内の第１の領域に格納する。この図２２（Ｃ−１）の例では、このファイルデータＢ′が、スレーブストレージ装置５ＤのボリュームＶＯＬ内の第１の領域に格納されたことを示している。
【０１９０】
その後、マスタ側ＣＰＵ２１は、このファイルデータＢ′と、前回パリティボリュームＶＯＬに格納したパリティデータ（ファイルデータＡ及びファイルデータＢのＸＯＲ）とのＸＯＲをキャッシュメモリ２４（図２）上で計算する。またマスタ側ＣＰＵ２１は、この後更新前のファイルデータＢが格納されているボリュームＶＯＬから当該ファイルデータＢを読み出し、このファイルデータＢと、先ほどキャッシュメモリ２４上でのパリティ計算により得られたパリティデータとのＸＯＲを計算するようにして、新たなパリティデータを生成する。このパリティデータは、ファイルデータＡ及びファイルデータＢ′のＸＯＲをとったものと等しい。そしてマスタ側ＣＰＵ２１は、パリティボリュームＶＯＬに書き込まれているパリティデータをこのパリティデータに更新する。
【０１９１】
またマスタ側ＣＰＵ２１は、この後、ファイルデータＢを削除しファイルデータＢ′を追加するようにメタデータを更新し、更新したメタデータのバックアップをサブマスタストレージ装置５Ｂに転送する。従って、図２２（Ｄ−１）の例の場合、図２２（Ｄ−２）に示すように、ファイルデータＡ及びファイルデータＢ′のメタデータがマスタストレージ装置５Ａ及びサブマスタストレージ装置５Ｂに保持され、その分散度は「２」であるということになる。
【０１９２】
この後マスタ側ＣＰＵ２１は、同様の処理を繰り返し、図２２（Ｅ−１）及び図２２（Ｅ−２）に示すように、その仮想ボリュームＶＶＯＬにおけるパリティボリュームＶＯＬ以外のすべてのボリュームＶＯＬにファイルデータを格納し終えると、各ボリュームＶＯＬ内の次の領域にポインタを進めて同様の処理を繰り返す。
【０１９３】
この記憶システム１００における障害時の動作は上述の第１の実施の形態の場合とほぼ同様である。ただし、この記憶システム１００では、障害が発生したストレージ装置５内の各ボリュームＶＯＬを、それぞれそのボリュームＶＯＬと同じ仮想ボリュームＶＶＯＬに対応付けられた残りのボリュームＶＯＬ内のデータと、パリティボリュームＶＯＬに格納されたパリティデータとから回復する点のみが異なる。この際、上述のようにして作成したメタデータを活用することにより、不要なデータの読み出しを行なう必要がなく、アクセスの高速化及びボリューム回復処理の負荷軽減を図ることができる。
【０１９４】
またこの記憶システム１００では、ストレージグループＳＧ内にストレージ装置５を増設した場合においても、例えば図２３（Ａ）及び（Ｂ）に示すように、その後与えられた新たなファイルデータを増設したストレージ装置５内のボリュームＶＯＬに格納するだけで対応でき、データの再配置が不要となるため、拡張性が高く、またデータ管理を簡易化することができる。
【０１９５】
なお、この記憶システム１００において、障害時におけるボリューム回復処理の高速化を優先する場合には、図２４（Ａ−１）に示すように、まず、ホスト装置２から与えられる各ファイルデータＡ〜Ｈを、他のいずれのボリュームＶＯＬの対応する領域（図２４（Ａ−１）において同じ行の領域）にもファイルデータが書き込まれていない領域を選択しながら、各ボリュームＶＯＬに均等に分散させるように順次格納し、その後、図２４（Ｂ−１）に示すように、これと同様にホスト装置２から与えられる各ファイルデータを各ボリュームＶＯＬに均等に分散させるように順次格納するようにすれば良い。
【０１９６】
このようなデータ格納方法にすれば、ボリュームＶＯＬの回復処理時において、障害が発生したボリュームＶＯＬの各領域をそれぞれ復元するのに必要なファイルデータを読み出すべきストレージ装置５の台数を、図２４（Ａ−２）及び図（Ｂ−２）に示す対応する分散度と同じ値の台数に抑えることができる。
【０１９７】
例えば図２４（Ａ−１）及び（Ｂ−１）の例の場合、図２４（Ａ−１）の段階では、パリティボリュームＶＯＬの各領域に、それぞれいずれかのボリュームＶＯＬの対応する領域に格納されているファイルデータがそのままパリティデータとして格納されているため、例えば「２」〜「５」のストレージ装置５のいずれかに障害が発生した場合には、「１」のストレージ装置５からパリティデータを読み出すことでボリューム回復処理を実行することができる。
【０１９８】
また、図２４（Ｂ−１）のように、「２」のストレージ装置５のボリュームＶＯＬの第１の領域にファイルデータＡが格納され、「３」のストレージ装置５のボリュームＶＯＬの第１の領域にファイルデータＩが格納されている場合において、「１」〜「３」のいずれかのストレージ装置５に障害が発生したときにも、残りの２台のストレージ装置５からファイルデータやパリティデータを読み出すことでボリューム回復処理を実行することができる。
【０１９９】
なお、このようなデータ格納法を採用する場合、各ボリュームＶＯＬの対応する領域に格納されるファイルデータのデータサイズがある大きさの範囲で揃うように、データ書込みの際にそのデータサイズに応じてファイルデータの格納位置を調整したり又はファイルデータの書込み後にマイグレーションするようにすると、記憶システム１００内における記憶領域の使用効率を向上させることができる。
【０２００】
（３）第３の実施の形態
図１との対応部分に同一符号を付して示す図２５は、第３の実施の形態による記憶システム１１０の構成を示す。この記憶システム１１０では、ホスト装置２との間のデータ入出力が直接行なわれるストレージグループ（以下、これをオンラインストレージグループと呼ぶ）ＳＧ１内の優先順位番号が最下位のストレージ装置５Ｆが、アーカイブとして使用される複数のストレージ装置５から構成されるストレージグループ（以下、これをアーカイブストレージグループと呼ぶ）ＳＧ２の構成要素としても設定されている。
【０２０１】
オンラインストレージグループＳＧ１では、マスタストレージ装置５Ａ及び優先順位番号が最下位のストレージ装置５Ｆを除いて、他のストレージ装置５Ｂ〜５Ｅの属性がすべてサブマスタに設定されている。
【０２０２】
図２５中右側上段は、マスタストレージ装置５Ａにより行われるオンラインストレージグループＳＧ１の仮想化イメージである。この図２５に示すように、このオンラインストレージグループＳＧ１では、マスタストレージ装置５Ａ内の各ボリュームＶＯＬと、当該マスタストレージ装置５の次に優先順位番号が高いサブマスタストレージ装置５Ｂ内の各ボリュームＶＯＬとが、いずれもプライマリボリュームに設定されている。
【０２０３】
このうちマスタストレージ装置５Ａ内のプライマリボリュームは、サブマスタストレージ装置５Ｃ内に作成された各ボリュームＶＯＬからなるスナップショットボリュームと関連付けられており、またサブマスタストレージ装置５Ｂ内のプライマリボリュームは、サブマスタストレージ装置５Ｄ内に作成された各ボリュームＶＯＬからなるスナップショットボリュームと関連付けられている。
【０２０４】
サブマスタストレージ装置５Ｅには、安価なディスクドライブであるＬＣ−ＦＣ（LowCost-FiberChannel）ドライブやシリアルＡＴＡドライブが搭載されており、これらディクスドライブ１０（図２）が提供する記憶領域上にニアラインボリュームＶＯＬが作成されている。
【０２０５】
このオンラインストレージグループＳＧ１において最も優先順位番号が低いストレージ装置５Ｆはスレーブに設定されている。そしてこのスレーブストレージ装置５Ｆ内にＷＯＲＭ属性のアーカイブボリュームＶＯＬが作成されている。
【０２０６】
このスレーブストレージ装置５Ｆは、アーカイブストレージグループＳＧ２内ではマスタに設定されている。アーカイブストレージグループＳＧ２では、かかる当該アーカイブストレージグループＳＧ２内においてマスタに設定されたストレージ装置５Ｆ以外のストレージ装置５Ｇ〜５Ｊはすべてスレーブに設定されている。
【０２０７】
図２５中右側下段は、アーカイブストレージグループＳＧ２内のマスタストレージ装置５Ｆにより行われる当該アーカイブストレージグループＳＧ２の仮想化イメージである。この図２５に示すように、アーカイブストレージグループＳＧ２は、上述した第２の実施の形態における記憶システム１００と同様にＮ＋１冗長構成を有し、図２１について上述したストレージグループＳＧと全く同じ動作を行うため、説明は省略する。ただし、この実施の形態において、アーカイブストレージグループＳＧ２内の各ストレージ装置５Ｆ〜５Ｊは、ホスト装置２からに対してデータの読み出しのみが許可されるリードオンリー属性のストレージ装置として仮想化される。
【０２０８】
次に、この記憶システム１１０において、ホスト装置２からいずれかのプライマリボリュームに書込み対象のデータが与えられた場合の処理の流れについて説明する。
【０２０９】
ホスト装置２からいずれかのプライマリボリュームに書込み対象のデータが与えられた場合、そのプライマリボリュームを提供するマスタストレージ装置５Ａ又はサブマスタストレージ装置５ＢのＣＰＵ（マスタ側ＣＰＵ又はサブマスタ側ＣＰＵ）２１は、当該データをプライマリボリュームにおける指定されたアドレス位置に書き込む前に、それまでそのアドレス位置に格納されていたデータを読み出し、これをそのプライマリボリュームと関連付けられたスナップショットボリュームを提供するサブマスタストレージ装置５Ｃ，５Ｄに差分データとして転送する。その後、かかるマスタ側ＣＰＵ２１又はサブマスタ側ＣＰＵ２１は、ホスト装置２から与えられた書込み対象のデータをプライマリボリュームの指定されたアドレス位置に書き込む。
【０２１０】
かかる差分データが与えられたサブマスタストレージ装置５Ｃ，５ＤのＣＰＵ（サブマスタ側ＣＰＵ）２１は、上述のマスタ側ＣＰＵ２１又はサブマスタ側ＣＰＵ２１と同様にして、当該差分データをスナップショットボリュームにおける対応するアドレス位置に書き込む前に、それまでそのアドレス位置に格納されていたデータを読み出し、これをニアラインボリュームＶＯＬを提供するサブマスタストレージ装置５Ｅに差分バックアップデータとして転送する。その後、かかるサブマスタ側ＣＰＵ２１は、その差分データをスナップショットボリュームの対応するアドレス位置に書き込む。
【０２１１】
差分バックアップデータが与えられたサブマスタストレージ装置５ＥのＣＰＵ（サブマスタ側ＣＰＵ）２１は、上述のスナップショットボリュームを提供するサブマスタストレージ装置５Ｃ、５Ｄのサブマスタ側ＣＰＵ２１と同様にして、対応するデータをアーカイブボリューム５Ｆに移動させる。
【０２１２】
そしてこのアーカイブボリューム５Ｆに移動されたデータは、この後第２の実施の形態によるストレージグループＳＧ（図２１）と同様の方法でアーカイブストレージグループＳＧ２内の各ストレージ装置５（５Ｆ〜５Ｊ）に作成されたボリュームＶＯＬに分散して格納される。
【０２１３】
このように本実施の形態による記憶システム１１０では、ホスト装置２からプライマリボリュームに対するデータの書き込みがあったときに、オンラインストレージグループＳＧ１内での最初のデータ移動以外の処理をプライマリボリュームを提供するマスタストレージ装置５Ａ及びサブマスタストレージ装置５Ｂ以外の他のストレージ装置５（５Ｃ〜５Ｆ）に分担させることができる。
【０２１４】
次に、かかる構成を有する記憶システム１１０において、オンラインストレージグループＳＧ１に新型のストレージ装置５を導入すると共に、アーカイブストレージグループＳＧ２内の旧式のストレージ装置５を滅却する応用例について説明する。
【０２１５】
図２６〜図２８は、かかる記憶システムにおいて、管理者がマニュアルでデータ移動の指示を与えることにより新型のストレージ装置５ＫをオンラインストレージグループＳＧ１に導入すると共に、これに伴ってアーカイブストレージグループＳＧ２の旧式のストレージ装置５を滅却するまでを図解化したものである。なお、この例では、オンラインストレージグループＳＧ１において、「１」で示すストレージ装置５Ａがマスタ、「２」で示すストレージ装置５Ｂがサブマスタに設定され、他のストレージ装置５Ｃ〜５Ｆがスレーブに設定されているものとする。
【０２１６】
この場合、管理者は、オンラインストレージグループＳＧ１内のマスタストレージ装置５Ａの管理端末２６（図２）を操作して、１台のスレーブストレージ装置５Ｄをサブマスタに昇格させる。このようなストレージ装置５Ｃ，５Ｄの昇格方法は、上述と同様、当該スレーブトレージ装置５Ｄをサブマスタに設定したストレージ構成情報テーブル８０（図７）をオンラインストレージグループＳＧ１内のすべてのストレージ装置５Ｂ〜５Ｆ及び５Ｋに送信させれば良い。
【０２１７】
そして管理者は、この後、マスタストレージ装置５Ａの保守管理端末２６（図２）を操作して、サブマスタに昇格させたスレーブストレージ装置５Ｄ内に作成された各ボリュームＶＯＬのデータを、新たに導入されたストレージ装置５Ｋ内に作成された対応するボリュームＶＯＬにデータ移動させる。
【０２１８】
続いて管理者は、図２７に示すように、サブマスタに昇格させたストレージ装置５Ｄをスレーブに降格させると共に、ニアライン用のスレーブストレージ装置５Ｅをサブマスタに昇格させるようにする。そして管理者は、サブマスタに昇格させたストレージ装置５Ｅ内に作成された各ボリュームＶＯＬのデータを、そのときスレーブに降格させたストレージ装置５Ｄ内に作成された対応するボリュームＶＯＬにデータ移動させるようにする。
【０２１９】
その後管理者は、図２８に示すように、図２７の説明においてサブマスタに昇格させたニアライン用のストレージ装置５ＥをアーカイブストレージグループＳＧ２に移動させる。この移動は物理的なものではなく、オンラインストレージグループＳＧ１のマスタストレージ装置５Ａを制御して、かかるストレージ装置５ＥをオンラインストレージグループＳＧ１から削除したストレージ構成情報テーブル８０をオンラインストレージグループＳＧ１に属するすべてのストレージ装置５Ｂ〜５Ｆ及び５Ｋに送信すると共に、アーカイブストレージグループＳＧ２のマスタストレージ装置５Ｆを操作して、かかるストレージ装置５ＥをアーカイブストレージグループＳＧ２に追加したストレージ構成情報テーブル８０を当該アーカイブストレージグループＳＧ２に属するすべてのストレージ装置５Ｇ〜５Ｊに送信することにより行なうことができる。
【０２２０】
この後管理者は、アーカイブストレージグループＳＧ２のマスタストレージ装置５Ｆを操作して、アーカイブストレージグループＳＧ２に属するストレージ装置５Ｆ〜５Ｊのうちの滅却対象のストレージ装置５Ｊをサブマスタに昇格してストレージ装置５Ｊ内に作成された各ボリュームＶＯＬのデータを、オンラインストレージグループＳＧ１からアーカイブストレージグループＳＧ２に移動させたかかるストレージ装置５Ｅ内に作成された対応するボリュームＶＯＬにデータ移動させるようにする。これにより、この後滅却対象のストレージ装置５Ｊを滅却することができる。以上までの処理はストレージ装置５内に管理端末使用しているが、ホスト装置２と同様の遠隔保守端末を使用し、上記一連の処理をスクリプト化して自動化するようにしても良い。
【０２２１】
このように本実施の形態による記憶システム１１０では、新型のストレージ装置５の導入や旧式のストレージ装置５の滅却が容易である。従って、経年的信頼性低下によるデータ消失の発生防止対策を容易に行うことができる。
【０２２２】
また本実施の形態による記憶システム１１０では、データ変化が小さいので、アーカイブストレージグループＳＧ２のマスタストレージ装置５Ｆがパリティデータを生成する際にもオーバヘッドが問題とならない。
【０２２３】
さらに本実施の形態による記憶システム１１０では、単純にスナップショット動作のコピーオンライト動作によるデータ移動について説明したが、各データの移動ポリシーを設定し、ポリシーに基づくデータ移動を行なうようにした場合についても同様の動作となるまた、場合によっては、オンラインストレージグループＳＧ１内のニアライン用の仮想ボリュームＶＯＬについては、よりコスト効果の高いＮ＋１冗長化構成とすることも可能である。
【０２２４】
（４）他の実施の形態
なお、上述の実施の形態においては、図７〜図９について上述したように、同じストレージグループＳＧに設定された各ストレージ装置５のストレージ装置５ごとの管理情報として「順位」、「属性情報」及び「ステータス」などの情報を採用し、当該ストレージグループＳＧ全体に関する管理情報として「Group識別情報」及び「装置パラメータ」などを採用するようにした場合について述べたが、本発明はこれに限らず、これ以外の各種情報をストレージ装置５ごとの管理情報や、ストレージグループＳＧ全体の管理情報として採用するようにしても良い。
【０２２５】
また上述の実施の形態においては、本発明を図１や図２５のように構成された記憶システム１，１００，１１０や図２のように構成されたストレージ装置５に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を有する記憶システム及びストレージ装置に広く適用することができる。
【産業上の利用可能性】
【０２２６】
本発明は、複数のストレージ装置を備える記憶システム及び種々の構成を有するストレージ装置に適用することができる。
【図面の簡単な説明】
【０２２７】
【図１】本実施の形態による記憶システムの構成を示すブロック図である。
【図２】ストレージ装置の構成を示すブロック図である。
【図３】ストレージグループの説明に供するブロック図である。
【図４】ストレージグループ設定画面を示す略線図である。
【図５】仮想設定画面を示す略線図である。
【図６】モード設定画面を示す略線図である。
【図７】グループ構成情報テーブルを示す概念図である。
【図８】仮想ボリューム構成情報テーブルを示す概念図である。
【図９】グループ動作モード管理テーブルを示す概念図である。
【図１０】マスタ側データ書込み処理手順を示すフローチャートである。
【図１１】サブマスタ側データ書込み処理手順を示すフローチャートである。
【図１２】マスタ用ペア結合処理手順を示すフローチャートである。
【図１３】マスタ用ペア結合処理手順を示すフローチャートである。
【図１４】第１の障害検出／回復処理手順を示すフローチャートである。
【図１５】マスタ側ボリューム回復処理手順を示すフローチャートである。
【図１６】マスタ側ボリューム回復処理手順を示すフローチャートである。
【図１７】サブマスタ側ボリューム回復処理手順を示すフローチャートである。
【図１８】第２の障害検出／ボリューム回復処理手順を示すフローチャートである。
【図１９】第３の障害検出／ボリューム回復処理手順を示すフローチャートである。
【図２０】第４の障害検出／ボリューム回復処理手順を示すフローチャートである。
【図２１】第２の実施の形態による記憶システムの説明に供するブロック図である。
【図２２】第２の実施の形態による記憶システムにおけるバックアップ方式の説明に供するブロック図である。
【図２３】第２の実施の形態による記憶システムにおけるバックアップ方式の説明に供するブロック図である。
【図２４】第２の実施の形態による記憶システムにおけるバックアップ方式の説明に供するブロック図である。
【図２５】第３の実施の形態による記憶システムの構成を示すブロック図である。
【図２６】応用例の説明に供する概念図である。
【図２７】応用例の説明に供する概念図である。
【図２８】応用例の説明に供する概念図である。
【符号の説明】
【０２２８】
１，１００，１１０……記憶システム、２……ホスト装置、５，５Ａ〜５Ｋ……ストレージ装置、２１……ＣＰＵ、２２……ローカルメモリ、２４……キャッシュメモリ、３０……ストレージグループ設定画面、５０……仮想設定画面、７０……モード設定画面、８０……グループ構成情報テーブル、８１……仮想ボリューム構成情報テーブル、８２……グループ動作モード管理テーブル、ＳＧ……ストレージグループ、ＳＧ１……オンラインストレージグループ、ＳＧ２……アーカイブストレージグループ、ＶＯＬ……ボリューム、ＶＶＯＰＬ……仮想ボリューム。
【図１】
2007206931.tif 000003
【図２】
2007206931.tif 000004
【図３】
2007206931.tif 000005
【図４】
2007206931.tif 000006
【図５】
2007206931.tif 000007
【図６】
2007206931.tif 000008
【図７】
2007206931.tif 000009
【図８】
2007206931.tif 000010
【図９】
2007206931.tif 000011
【図１０】
2007206931.tif 000012
【図１１】
2007206931.tif 000013
【図１２】
2007206931.tif 000014
【図１３】
2007206931.tif 000015
【図１４】
2007206931.tif 000016
【図１５】
2007206931.tif 000017
【図１６】
2007206931.tif 000018
【図１７】
2007206931.tif 000019
【図１８】
2007206931.tif 000020
【図１９】
2007206931.tif 000021
【図２０】
2007206931.tif 000022
【図２１】
2007206931.tif 000023
【図２２】
2007206931.tif 000024
【図２３】
2007206931.tif 000025
【図２４】
2007206931.tif 000026
【図２５】
2007206931.tif 000027
【図２６】
2007206931.tif 000028
【図２７】
2007206931.tif 000029
【図２８】
2007206931.tif 000030