(57)【特許請求の範囲】
【請求項１】
第１の記憶装置内に記憶されているバックアップ対象ボリュームのデータを第２の記憶装置内にコピーするとともに、バックアップを実行する時点における当該バックアップ対象ボリュームを示すスナップショットを、バックアップを実行する時点ごとに作成するコピー制御装置であって、
前記バックアップ対象ボリュームのデータを更新することを指示する更新指示が前記時点より後にあった場合に、該更新指示により更新される箇所における更新前のデータである更新前データを前記第２の記憶装置内にコピーするコピー部と、
前記バックアップ対象ボリュームのデータ各々について、前記時点に対応付けて、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報と、当該位置情報で示されるデータの更新前データが前記コピー部によって前記第２の記憶装置内にコピーされているか否かの状態を示すコピー状態との対応付けを管理する管理テーブルと、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを当該位置情報ごとに判定するデータ判定部と、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータを示す当該位置情報すべてについて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを前記時点単位ごとに判定する時点毎判定部と、
前記データ判定部によって前記更新前データが前記第２の記憶装置に記憶されていると判定された位置情報について、当該位置情報により示される位置についてデータ復旧可能であると判定し、前記時点毎判定部によって前記バッドデータを示す位置情報すべてについて前記更新前データが前記第２の記憶装置に記憶されていると判定された時点について、当該時点におけるスナップショットを用いてスナップショット単位でデータ復旧可能であると判定するリストア判定部と
を備えたことを特徴とするコピー制御装置。
【請求項２】
前記データ判定部による判定結果を、前記コピー制御装置を管理する管理端末に通知する通知部をさらに備えたことを特徴とする請求項１に記載のコピー制御装置。
【請求項３】
前記管理端末は表示部を備えるものであって、
前記表示部は、前記通知部によって通知された前記データ判定部による判定結果を表示することを特徴とする請求項２に記載のコピー制御装置。
【請求項４】
前記位置情報単位にデータ復旧を行う指示もしくは前記スナップショット単位にデータ復旧を行う指示を受付ける受付部と、
前記受付部によって前記位置情報単位にデータ復旧を行う指示が受付けられた場合に、当該位置情報単位にデータ復旧を実行し、前記受付部によって前記スナップショット単位にデータ復旧を行う指示が受付けられた場合に、当該スナップショット単位にデータ復旧を実行する復旧部と、
をさらに備えることを特徴とする請求項１〜３のいずれか一つに記載のコピー制御装置。
【請求項５】
第１の記憶装置内に記憶されているバックアップ対象ボリュームのデータを第２の記憶装置内にコピーするとともに、バックアップを実行する時点における当該バックアップ対象ボリュームを示すスナップショットを、バックアップを実行する時点ごとに作成するコピー制御方法であって、
前記バックアップ対象ボリュームのデータを更新することを指示する更新指示が前記時点より後にあった場合に、該更新指示により更新される箇所における更新前のデータである更新前データを前記第２の記憶装置内にコピーするコピーステップと、
前記バックアップ対象ボリュームのデータ各々について、前記時点に対応付けて、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報と、当該位置情報で示されるデータの更新前データが前記コピーステップによって前記第２の記憶装置内にコピーされているか否かの状態を示すコピー状態との対応付けを管理テーブルにて管理する管理ステップと、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを当該位置情報ごとに判定するデータ判定ステップと、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータを示す当該位置情報すべてについて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを前記時点単位ごとに判定する時点毎判定ステップと、
前記データ判定ステップによって前記更新前データが前記第２の記憶装置に記憶されていると判定された位置情報について、当該位置情報により示される位置についてデータ復旧可能であると判定し、前記時点毎判定ステップによって前記バッドデータを示す位置情報すべてについて前記更新前データが前記第２の記憶装置に記憶されていると判定された時点について、当該時点におけるスナップショットを用いてスナップショット単位でデータ復旧可能であると判定するリストア判定ステップと
を含んだことを特徴とするコピー制御方法。
【請求項６】
第１の記憶装置内に記憶されているバックアップ対象ボリュームのデータを第２の記憶装置内にコピーするとともに、バックアップを実行する時点における当該バックアップ対象ボリュームを示すスナップショットを、バックアップを実行する時点ごとに作成するコピー制御方法をコンピュータに実行させるコピー制御プログラムであって、
前記バックアップ対象ボリュームのデータを更新することを指示する更新指示が前記時点より後にあった場合に、該更新指示により更新される箇所における更新前のデータである更新前データを前記第２の記憶装置内にコピーするコピー手順と、
前記バックアップ対象ボリュームのデータ各々について、前記時点に対応付けて、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報と、当該位置情報で示されるデータの更新前データが前記コピー手順によって前記第２の記憶装置内にコピーされているか否かの状態を示すコピー状態との対応付けを管理テーブルにて管理する管理手順と、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを当該位置情報ごとに判定するデータ判定手順と、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータを示す当該位置情報すべてについて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを前記時点単位ごとに判定する時点毎判定手順と、
前記データ判定手順によって前記更新前データが前記第２の記憶装置に記憶されていると判定された位置情報について、当該位置情報により示される位置についてデータ復旧可能であると判定し、前記時点毎判定手順によって前記バッドデータを示す位置情報すべてについて前記更新前データが前記第２の記憶装置に記憶されていると判定された時点について、当該時点におけるスナップショットを用いてスナップショット単位でデータ復旧可能であると判定するリストア判定手順と
をコンピュータに実行させることを特徴とするコピー制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コピー制御装置、コピー制御方法およびコピー制御プログラムに関する。
【背景技術】
【０００２】
従来より、ストレージ製品等において、バックアップ対象となるボリューム（バックアップ対象ボリューム）をバックアップする手法の一つとして、ＳｎａｐＯＰＣ（Ｓｎａｐ  Ｏｎｅ  Ｐｏｉｎｔ  Ｃｏｐｙ）という手法が知られている。ＳｎａｐＯＰＣとは、バックアップ対象ボリュームについての所定時点における（その後の更新等を含まない）データであるスナップショットを作成するものである。具体的には、ＳｎａｐＯＰＣとは、バックアップを作成する際に、バックアップ対象ボリュームのデータの内、更新が行われた箇所における更新前のデータのみをバックアップする手法である（例えば、特許文献１（特開２００７−１７２０８２号公報）など）。
【０００３】
【特許文献１】特開２００７−１７２０８２号公報（第５−７頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記した従来の技術は、バッドデータ（読み出し不能のデータ）となっている箇所についてバックアップがあるか否かを簡単に把握できないという課題があった。
【０００５】
具体的には、上記したＳｎａｐＯＰＣは、所定時点におけるバックアップ対象ボリュームのデータすべてを記憶するのではなく、更新が行われた箇所における更新前のデータのみを、バックアップする手法である。このため、上記したＳｎａｐＯＰＣでは、バッドデータとなっている箇所におけるデータが、バックアップされているとは限らず、例えば、バッドデータとなっている箇所についてバックアップがあるか否かを把握する際には、その都度、当該ストレージ製品等をサポートしている技術者に問い合わせなければならなかった。
【０００６】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、ＳｎａｐＯＰＣにおいて、バッドデータとなっている箇所についてバックアップがあるか否かを簡単に把握することができるコピー制御装置、コピー制御方法およびコピー制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、このコピー制御装置は、第１の記憶装置内に記憶されているバックアップ対象ボリュームのデータに更新があった場合に、当該データが更新される前のデータである更新前データを第２の記憶装置内にコピーするコピー制御装置であって、前記バックアップ対象ボリュームのデータを更新することを指示する更新指示に基づいて、前記更新前データを前記第２の記憶装置内にコピーするコピー部と、前記バックアップ対象ボリュームのデータ各々について、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報に対応付けて、当該位置情報で示されるデータの更新前データが前記コピー部によって前記第２の記憶装置内にコピーされているか否かの状態を示すコピー状態を管理する管理テーブルと、読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを判定するデータ判定部と、を備えたことを要件とする。
【発明の効果】
【０００８】
開示のコピー制御装置によれば、バッドデータとなっている箇所についてバックアップがあるか否かを簡単に把握することが可能である。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この発明に係るコピー制御装置、コピー制御方法およびコピー制御プログラムの実施例を詳細に説明する。なお、以下では、コピー制御装置を説明する上で、記憶装置を備えるコピー制御装置である「ディスクアレイ装置」について説明を行う。なお、以下では、実施例１で用いる主要な用語、実施例１におけるディスクアレイ装置の概要および特徴、ディスクアレイ装置の構成および処理の流れを順に説明し、その後、その他の実施例について説明する。
【実施例１】
【００１０】
［用語の説明］
まず最初に、実施例１で用いる主要な用語を説明する。実施例１で用いる「コピー元ＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）（特許請求の範囲に記載の「第１の記憶装置」に対応する。）」とは、バックアップ対象ボリュームのデータが記憶されている記憶装置のことである。また、実施例１で用いる「コピー先ＬＵ（特許請求の範囲に記載の「第２の記憶装置」に対応する。）」とは、バックアップしたデータが記憶されている記憶装置のことであり、具体的には、スナップショット各々（更新があった箇所の更新前データ）を記憶する。
【００１１】
また、実施例１で用いる「位置情報」とは、当該バックアップ対象ボリューム内にてデータの位置を示す情報である。以下に説明する実施例では、ビットマップテーブルにおいて用いられる「位置情報」とは、例えば、対象となるデータ領域を複数の領域に分割し、分割した領域それぞれにひとつずつ付与されるものである。例えば、実施例１では、ビットマップテーブルにおいて用いられる「位置情報」として、「Ｎｏ．１」や「Ｎｏ．２」などを用いる。なお、以下では、「位置情報「Ｎｏ．１」によって示される位置のデータ」を示す際には、「位置情報「Ｎｏ．１」で示されるデータ」とのみ記載するものとする。
【００１２】
また、バッドデータを示す位置情報として、実施例１では、バッドデータとなる開始アドレス（「バッドデータＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）アドレス」）と、当該開始アドレスからバッドデータが連続するサイズ（「バッドデータＬＢＡサイズ」）とを用いる。
【００１３】
なお、ビットマップテーブルにおいて用いられる「位置情報」と、バッドデータの位置を示す位置情報との関係について簡単に説明する。すなわち、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とによって示されるバッドデータは、ビットマップテーブル４０１において用いられている「位置情報」のいずれかが付与された領域に含まれることになる。
【００１４】
［ディスクアレイ装置の概要］
次に、図１−１と図１−２とを用いて、実施例１におけるディスクアレイ装置の概要を説明する。図１−１と図１−２とは、実施例１におけるディスクアレイ装置の概要を説明するための図である。
【００１５】
実施例１におけるディスクアレイ装置は、図１−１に示すように、コピー元ＬＵと、コピー先ＬＵと、バックアップ処理を実行するコピー制御装置とを有する。また、実施例１に係るコピー制御装置は、バックアップ状態（コピー状態）を管理するビットマップテーブル（特許請求の範囲に記載の「管理テーブル」に対応する）を有する。
【００１６】
このビットマップテーブルとは、バックアップ対象ボリュームのデータ各々について、位置情報とコピー状態との対応付けを管理する。なお、ここで、コピー状態とは、バックアップ対象ボリュームのデータに更新があった場合に、更新前データ（更新があった箇所の位置情報によって示される更新前のデータ）がコピーされているかを示す情報である。
【００１７】
例えば、図１−１の（１）に示す例では、ビットマップテーブルは、コピー状態を管理する上で、位置情報に対応付けて、更新前データがコピーされている場合には「０」を記憶し、更新前データがコピーされていない場合には「１」を記憶する。
【００１８】
そして、実施例１に係るコピー制御装置は、コピー元ＬＵ内に記憶されているバックアップ対象ボリュームのデータに更新があった場合に、更新前データをコピー先ＬＵ内にコピーするものである。具体的には、実施例１に係るコピー制御装置は、バックアップ対象ボリュームのデータを更新することを指示する更新指示に基づいて、更新前データをコピー先ＬＵ内にコピーする。
【００１９】
例えば、図１−１の（２）に示すように、コピー元ＬＵ内の位置情報「Ｎｏ．２」と「Ｎｏ．７」と「Ｎｏ．９」とのデータに、更新があったものとして説明する。例えば、実施例１に係るコピー制御装置は、図１−１の（３）に示すように、位置情報「Ｎｏ．２」と「Ｎｏ．７」と「Ｎｏ．９」とで示される更新前データ各々をコピーする。そして、実施例１に係るコピー制御装置は、図１−１の（４）に示すように、コピーした更新前データ各々（位置情報「Ｎｏ．２」と「Ｎｏ．７」と「Ｎｏ．９」と）を、コピー先ＬＵに記憶させる。
【００２０】
そして、実施例１に係るコピー制御装置では、図１−１の（５）に示すように、ビットマップテーブルが、コピー状態を管理する。例えば、ビットマップテーブルは、図１−１の（５）に示す例では、更新があった位置を示す位置情報「Ｎｏ．２」と「Ｎｏ．７」と「Ｎｏ．９」とに対応付けて、「０」を記憶する。
【００２１】
そして、このような実施例１におけるディスクアレイ装置では、以下で説明するように、読み出し不能のデータであるバッドデータとなっている箇所についてバックアップがあるか否かを簡単に把握することが可能である。
【００２２】
すなわち、実施例１に係るコピー制御装置は、図１−２に示すように、ビットマップテーブルに基づいて、バッドデータの位置を示す位置情報に対応付けられたデータがバックアップされているかを判定する。
【００２３】
例えば、実施例１に係るコピー制御装置は、バッドデータがバックアップ対象ボリュームのデータに存在する場合に、当該バッドデータの位置を示す位置情報をビットマップテーブルから検索する。具体的に例をあげて説明すると、図１−２の（６）に示すように、位置情報「Ｎｏ．７」と「Ｎｏ．８」とで示されるデータにバッドデータが含まれる場合に、図１−２の（７）に示すように、実施例１に係るコピー制御装置は、位置情報「Ｎｏ．７」と「Ｎｏ．８」とをビットマップテーブルから検索する。
【００２４】
そして、例えば、実施例１に係るコピー制御装置は、位置情報に対応付けて管理されているコピー状態に基づいて、バッドデータの更新前データがコピー先ＬＵに記憶されているか否かを判定する。具体的に例をあげて説明すると、図１−２の（８）に示すように、ビットマップテーブルには、位置情報「Ｎｏ．７」に対応付けて「０」を記憶し、位置情報「Ｎｏ．８」に対応付けて「１」を記憶する。このため、例えば、実施例１に係るコピー制御装置は、図１−２の（９−１）に示すように、位置情報「Ｎｏ．７」に対応付けられた更新前データがあると判定し、例えば、位置情報「Ｎｏ．７」のバッドデータを復旧可能であると判定する。また、例えば、実施例１に係るコピー制御装置は図１−２の（９−２）に示すように、位置情報「Ｎｏ．８」に対応付けられた更新前データがないと判定し、例えば、位置情報「Ｎｏ．８」のバッドデータを復旧不可であると判定する。
【００２５】
このようなことから、実施例１におけるディスクアレイ装置は、バッドデータとなっている箇所についてバックアップ（更新前データ）があるか否かを簡単に把握することが可能である。
【００２６】
［ディスクアレイ装置の構成］
次に、図２を用いて、図１−１と図１−２とに示したディスクアレイ装置３００の構成を説明する。以下では、まず、保守ＰＣ１００とホストサーバ２００とについて簡単に説明し、その後、ディスクアレイ装置３００の構成について説明する。
【００２７】
なお、図２は、実施例１におけるディスクアレイ装置３００の構成を示すためのブロック図である。図３は、実施例１におけるビットマップテーブルを説明するための図である。図４は、実施例１におけるコピー制御セッション管理部を説明するための図である。図５は、実施例１における構成テーブルを説明するための図である。図６は、実施例１におけるコピー制御部を説明するための図である。図７は、実施例１における判定部を説明するための図である。図８は、実施例１におけるリストア制御部を説明するための図である。図９は、実施例１におけるリストア制御部を説明するための図である。図１０は、実施例１におけるリストア制御部を説明するための図である。
【００２８】
保守ＰＣ１００は、ディスクアレイ装置３００を管理する管理者からの操作を受付け、ディスクアレイ装置３００に伝達（通知）する。具体的には、以下に説明するように、保守ＰＣ１００は、操作画面を要求する旨の指示やリストアの可否を判定する指示、データ復旧に関する指示を伝達する。
【００２９】
また、保守ＰＣ１００は、ディスクアレイ装置３００から情報を受付ける。具体的には、以下に説明するように、操作を受付ける操作画面（保守画面）や判定結果（後述）、実行結果（後述）を受付ける。なお、保守ＰＣ１００は、ディスクアレイ装置３００によって通知された情報（後述する判定部５０３による判定結果）を表示する表示部（図２には示していない。特許請求の範囲に記載の「表示部」に対応する）を有するものである。
【００３０】
例えば、保守ＰＣ１００は、操作画面を要求する旨の指示をディスクアレイ装置３００に伝達する。具体的な一例をあげて説明すると、保守ＰＣ１００は、保守操作ログインアドレスを管理者から受付けると、操作画面についてのＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）プログラムをディスクアレイ装置３００（後述するリストア制御部５０６）に要求する（操作画面を要求する旨の指示を伝達する）。
【００３１】
また、例えば、保守ＰＣ１００は、ディスクアレイ装置３００（後述するリストア制御部５０６）によって伝達されたＣＧＩプログラムを展開して、操作を受付ける操作画面（保守画面、例えば、図８参照）を表示部にて表示する。
【００３２】
なお、ここで、管理者（保守者）とは、例えば、ディスクアレイ装置３００で障害が発生した場合、ディスクアレイ装置３００に保守ＰＣ１００を接続し，ディスクアレイ装置３００から保守ＰＣ１００に吸い出された保守操作用のＣＧＩなどの利用プログラムを介して保守作業を行う者が該当する。具体的には、管理者は、ＣＧＩを介して保守メニューから対象となる障害保守情報を取得（採取）し、保守ＰＣ１００の表示部に表示された障害保守情報に従って，対象となる障害に対応する。
【００３３】
また、例えば、保守ＰＣ１００は、リストアの可否を判別する操作が管理者によって入力されると、リストアの可否を判定する指示をディスクアレイ装置３００（後述するリストア制御部５０６）に伝達する。
【００３４】
具体的には、保守ＰＣ１００は、バッドデータの位置を示す位置情報ごとに判定する指示と「コピー元ＬＵ番号（後述）」と「セッション番号（後述）」と「位置情報」とを、ディスクアレイ装置３００（後述するリストア制御部５０６）に伝達する。また、保守ＰＣ１００は、スナップショットごとに判定する指示と「コピー元ＬＵ番号」と「セッション番号」とを、ディスクアレイ装置３００（後述するリストア制御部５０６）に伝達する。
【００３５】
また、例えば、保守ＰＣ１００は、ディスクアレイ装置３００（後述するリストア制御部５０６）からリストアの可否についての判定結果（例えば、後述するリストア可否テーブル）が伝達されると、伝達された判定結果を表示部にて表示する。
【００３６】
また、例えば、データ復旧に関する要求（指示）が管理者によって入力されると、保守ＰＣ１００は、ディスクアレイ装置３００（後述するリストア制御部５０６）にデータ復旧に関する指示を伝達する。
【００３７】
具体的には、保守ＰＣ１００は、位置情報単位にデータ復旧を行う指示やスナップショット単位にデータ復旧を行う指示が管理者によって入力されると、当該指示をディスクアレイ装置３００（後述するリストア制御部５０６）に伝達する。
【００３８】
例えば、保守ＰＣ１００は、位置情報単位にデータ復旧を行う指示として、「コピー元ＬＵ番号」と「セッション番号」と「位置情報」とが管理者によって入力されて受付ける。そして、保守ＰＣ１００は、受付けた「コピー元ＬＵ番号」と「セッション番号」と「位置情報」とを、ディスクアレイ装置３００（後述するリストア制御部５０６）に伝達する。また、例えば、保守ＰＣ１００は、スナップショット単位にデータ復旧を行う指示として、「コピー元ＬＵ番号」と「セッション番号」とが管理者によって入力されて受付ける。そして、保守ＰＣ１００は、受付けた「コピー元ＬＵ番号」と「セッション番号」とを、ディスクアレイ装置３００（後述するリストア制御部５０６）に伝達する。
【００３９】
また、例えば、保守ＰＣ１００は、ディスクアレイ装置３００（後述するリストア制御部５０６）からホストアダプタ３０１を介して伝達されたデータ復旧についての実行結果を表示する。なお、保守ＰＣ１００は、ホストアダプタ３０１を介さずに、保守ＰＣ１００専用の接続ポートを用いてディスクアレイ装置３００に接続してもよい。
【００４０】
ホストサーバ２００は、例えば、バックアップ対象ボリュームのデータやコピータイプを設定する情報や更新指示をディスクアレイ装置３００（後述するコピー制御部５０１）に伝達する。
【００４１】
ディスクアレイ装置３００は、保守ＰＣ１００とホストサーバ２００とに接続している。また、このディスクアレイ装置３００は、ホストアダプタ３０１とディスク３０２と記憶部４００と制御部５００とを有する。
【００４２】
ホストアダプタ３０１は、ホストサーバ２００などの外部装置と接続し、当該外部装置と情報の送受信を行う。例えば、ホストアダプタ３０１は、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）などを経由してホストサーバ２００と接続し、ホストサーバ２００から受信した情報を制御部５００に伝達する。また、制御部５００から受信した情報を、ホストサーバ２００に伝達する。
【００４３】
ディスク３０２は、以下に説明するように、コピー元ＬＵと、コピー先ＬＵとを有する（図２には示していない）。また、ディスク３０２が有するコピー元ＬＵやコピー先ＬＵに記憶されている情報は、制御部５００（後述するコピー制御部５０１や、全リストア部５０４や、部分リストア部５０５）によって用いられるものである。
【００４４】
ディスク３０２は、コピー元ＬＵを有する。具体的には、ディスク３０２は、バックアップ対象ボリュームのデータをコピー元ＬＵに記憶する。なお、このバックアップ対象ボリュームのデータとは、例えば、ホストサーバ２００からディスクアレイ装置３００に伝達されるものであって、例えば、ディスク３０２は、ホストサーバ２００から伝達されたバックアップ対象ボリュームのデータを、制御部５００によって入力されてディスク３０２のコピー元ＬＵに記憶する。
【００４５】
なお、以下では、ディスク３０２は、複数のコピー元ＬＵを有し、コピー元ＬＵ各々が、それぞれ異なるバックアップ対象ボリュームのデータを記憶するものとして説明を行う。
【００４６】
また、ディスク３０２は、コピー先ＬＵを有する。具体的には、ディスク３０２は、バックアップ対象ボリュームのデータについてのバックアップデータを、制御部５００（後述するコピー制御部５０１）によって入力されてコピー先ＬＵに記憶する。
【００４７】
なお、開示のディスクアレイ装置３００においては、制御部５００（後述するコピー制御部５０１）が、バックアップデータとして、バックアップを実行する時点における当該バックアップ対象ボリュームのデータを示すスナップショットを、バックアップを実行する時点各々ごとに作成する。このため、ディスク３０２は、バックアップデータとして、当該時点各々について作成されたスナップショットを、コピー先ＬＵに記憶する。
【００４８】
記憶部４００は、制御部５００による各種処理に必要なデータを記憶する。特に本発明に密接に関連するものとして、ビットマップテーブル４０１と、コピー制御セッション管理テーブル４０２と、構成テーブル４０３と、を有する。
【００４９】
ビットマップテーブル４０１は、位置情報とコピー状態との対応付けを管理する。具体的には、ビットマップテーブル４０１は、バックアップが実行される時点を示す情報に対応付けて、バックアップ対象ボリュームのデータ各々について、位置情報とコピー状態との対応付けを管理する。
【００５０】
言い換えると、ビットマップテーブル４０１は、バックアップ対象ボリュームのデータ各々を示す位置情報それぞれについてコピー状態が対応付けられた情報を示す「ビットマップ」を管理する。また、ビットマップテーブル４０１は、バックアップが実行される時点それぞれについて、ビットマップを管理する。
【００５１】
例えば、ビットマップテーブル４０１は、コピー状態を管理する上で、位置情報に対応付けて、更新前データがコピーされている場合には「０」を記憶し、更新前データがコピーされていない場合には「１」を記憶する。
【００５２】
例えば、図３の（１）に示すように、スナップショット各々について、「Ｎｏ．１」から「Ｎｏ．９」までの９つの位置情報に対応付けてコピー状態を管理する場合を用いて、具体的に説明する。ビットマップテーブル４０１は、図３の（２）に示すように、バックアップ対象ボリュームを識別する情報である「コピー元ＬＵ番号」と、バックアップを実行する時点を識別する情報である「セッション番号」との組み合わせに対応付けて、ビットマップを記憶する。具体的な一例をあげて説明すると、ビットマップテーブル４０１は、コピー元ＬＵ番号「２」とセッション番号「１０」との組み合わせに対応付けて、位置情報「１」とコピー状態「１」との対応付けを含むビットマップを記憶する。
【００５３】
また、ビットマップテーブル４０１は、制御部５００（後述するコピー制御部５０１）によって行われるバックアップ処理に対応して、記憶している情報を管理する。例えば、ビットマップテーブル４０１は、制御部５００（後述するコピー制御部５０１）によって更新前データがディスク３０２のコピー先ＬＵに入力されると、当該更新前データの位置情報に対応付けられたコピー状態を「１」から「０」に変更する。
【００５４】
また、ビットマップテーブル４０１が記憶している情報は、後述する制御部５００（例えば、後述する判定部５０３）によって用いられるものである。
【００５５】
コピー制御セッション管理テーブル４０２は、図４に示すように、コピー元ＬＵそれぞれについて、コピータイプを管理する。ここで、コピータイプとは、バックアップを行う手法の種類を示す。例えば、更新前データのみをバックアップする手法を示す「ＳｎａｐＯＰＣ」が該当する。例えば、コピー制御セッション管理テーブル４０２は、図４に示す例では、コピー元ＬＵ番号「０」に対応付けて、コピータイプ「ＳｎａｐＯＰＣ」を記憶する。
【００５６】
また、コピー制御セッション管理テーブル４０２は、例えば、管理者によって予めコピータイプが入力されているものである。例えば、コピー制御セッション管理テーブル４０２は、管理者によって入力されたコピータイプを設定する情報が、制御部５００（後述するコピー制御部５０１）によって伝達されると、伝達された情報を反映し、コピータイプを管理する。また、コピー制御セッション管理テーブル４０２に記憶されている情報は、後述する判定部５０３によって用いられるものである。
【００５７】
なお、実施例１においては、コピー制御セッション管理テーブル４０２が、「ＳｎａｐＯＰＣ」以外のコピータイプと対応付けて「コピー元ＬＵ番号」を記憶する場合について、特に言及しないが、本発明はこれに限定されるものではない。例えば、その他のバックアップ手法（例えば、公知の手法である「ＯＰＣ（Ｏｎｅ  Ｐｏｉｎｔ  Ｃｏｐｙ）」など）に対応付けて「コピー元ＬＵ番号」を記憶してもよい。
【００５８】
構成テーブル４０３は、図５に示すように、バッドデータについての情報を記憶する。ここで、バッドデータとは、読み出し不能であるデータであって、具体的には、データが消失して読み出し不能であるデータ（不良ブロックデータ）であると制御部５００（後述するＲＡＩＤ制御部５０２）によって判別されたデータが該当する。
【００５９】
例えば、構成テーブル４０３は、図５に示す例では、コピー元ＬＵ番号それぞれについて、「バッドデータＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）アドレス」と、「バッドデータＬＢＡサイズ」との対応付けを記憶する。ここで、「バッドデータＬＢＡアドレス」とは、バッドデータの位置を示す位置情報であり、「バッドデータＬＢＡサイズ」とは、バッドデータのサイズを示す情報である。
【００６０】
なお、実施例１では、図５に示すように、「コピー元ＬＵ番号」と「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とに加えて、構成テーブル４０３が、「構成テーブル番号」と「バッドデータ有無識別情報」とを対応付けて併せて記憶する手法について説明する。ここで、「構成テーブル番号」とは、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」との対応付けを構成テーブル４０３内にて識別する情報である。また、「バッドデータ有無識別情報」とは、バッドデータであるかを示す情報であり、例えば、バッドデータである場合には「１」となり、バッドデータでない場合（バッドデータが入力されていない場合）には「０」となる。
【００６１】
具体的な例をあげて説明すると、構成テーブル４０３は、コピー元ＬＵ番号「１」と構成テーブル番号「０」との組み合わせに対応付けて、バッドデータ有無識別情報「１」とバッドデータＬＢＡアドレス「０ｘ００００００００００００７０００」とバッドデータＬＢＡサイズ「０ｘ００００００００００００００１０」とを記憶する。
【００６２】
なお、ここで、ビットマップテーブル４０１において用いられている「位置情報」と、バッドデータの位置を示す位置情報とについて、簡単に説明する。実施例１では、ビットマップテーブル４０１では、位置情報として、例えば、「Ｎｏ．１」から「Ｎｏ．９」までの９つの位置情報を用いる例を用いて説明する。これらの位置情報は、例えば、コピー元ＬＵそれぞれのデータ領域を９つの領域に分割し、分割した領域それぞれにひとつずつ付与されるものである。
【００６３】
これに対して、実施例１では、それぞれサイズを有するバッドデータを示す位置情報として、バッドデータとなる開始アドレス（「バッドデータＬＢＡアドレス」）と、当該開始アドレスからバッドデータが連続するサイズ（「バッドデータＬＢＡサイズ」）を用いている。ここでいう開始アドレスとは、コピー元ＬＵ上における物理アドレスを示す。
【００６４】
ここで、「位置情報」と、バッドデータの位置を示す位置情報との関係について簡単に説明する。すなわち、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とによって示されるバッドデータは、ビットマップテーブル４０１において用いられている「位置情報」のいずれかが付与された領域に含まれることになる。
【００６５】
また、構成テーブル４０３は、制御部５００（後述するＲＡＩＤ制御部５０２）によって、バッドデータに関する情報を入力される。また、構成テーブル４０３が記憶する情報は、制御部５００（後述する判定部５０３）によって用いられるものである。
【００６６】
制御部５００は、各種のバックアップ処理などを実行する。特に本発明に密接に関連するものとして、コピー制御部５０１と、ＲＡＩＤ制御部５０２と、判定部５０３と、全リストア部５０４と、部分リストア部５０５と、リストア制御部５０６と、を有する。
【００６７】
なお、コピー制御部５０１は、特許請求の範囲に記載の「コピー部」に対応する。判定部は、特許請求の範囲に記載の「データ判定部」と「時点毎判定部」とに対応する。リストア制御部５０６は、特許請求の範囲に記載の「通知部」に対応する。全リストア部５０４と部分リストア部５０５とは、特許請求の範囲に記載の「復旧部」に対応する。
【００６８】
コピー制御部５０１は、バックアップ処理を行う。具体的には、コピー制御部５０１は、スナップショットを作成する。さらに詳細には、コピー制御部５０１は、バックアップ対象ボリュームのデータを更新することを指示する更新指示に基づいて、更新前データをディスク３０２のコピー先ＬＵにコピーする。
【００６９】
例えば、コピー制御部５０１は、ホストサーバ２００から更新指示を受付ける。また、コピー制御部５０１は、受付けた更新指示により、バックアップを実行する時点より後にバックアップ対象ボリュームのデータに更新が行われる場合に、更新前データをコピーする。
【００７０】
具体的な一例をあげて説明する。例えば、図６の（１）に示すように、管理者からＳｎａｐＯＰＣを行う旨のＳｎａｐＯＰＣ指示が行われたとする。ここで、コピー制御部５０１は、図６の（２）に示すように、ＳｎａｐＯＰＣ指示後に行われた更新について、当該更新が行われた箇所における更新前のデータのみを複製して、ディスク３０２のコピー先ＬＵに格納する。
【００７１】
さらに詳細には、コピー制御部５０１は、ＳｎａｐＯＰＣ指示が行われた後に、図６の（３）に示すように、バックアップ対象ボリュームのデータに対して更新が行われると、図６の（４）に示すように、当該更新が行われた箇所における更新前のデータのみを複製する。そして、コピー制御部５０１は、図６の（１）に示すＳｎａｐＯＰＣ指示に対応するセッション情報に対応付けて、図６の（４）に示すように、複製した更新前データをディスク３０２のコピー先ＬＵに入力する。また、図６の（５）に示すように、再度更新処理があった場合には、コピー制御部５０１は、同様に、更新が行われた箇所における更新前のデータをコピーして、ディスク３０２のコピー先ＬＵに入力する。
【００７２】
なお、実施例１におけるコピー制御部５０１は、ＳｎａｐＯＰＣ指示が行われ、その後、複数の更新処理が行われた場合に、当該更新処理が行われた箇所における更新前のデータがすでに格納されていない場合のみ、当該箇所における更新前のデータをディスク３０２のコピー先ＬＵに入力する。言い換えると、コピー制御部５０１は、当該更新処理が行われた箇所における更新前のデータがすでに格納されている場合には、その後、同一の箇所に更新が行われたとしても、再度当該箇所における更新前のデータをディスク３０２のコピー先ＬＵに入力することはない。
【００７３】
また、コピー制御部５０１は、コピータイプを設定する情報を、ホストアダプタ３０１を介してホストサーバ２００から受付け、受付けた情報をコピー制御セッション管理テーブル４０２に伝達する。
【００７４】
ＲＡＩＤ制御部５０２は、バッドデータを判別し、判別したバッドデータに関する情報を、構成テーブル４０３に入力する。例えば、ＲＡＩＤ制御部５０２は、バックアップ対象ボリュームのデータそれぞれについて、バッドデータが存在するかを一定周期にて判別する。また、例えば、バックアップ対象ボリュームのデータを読み出すごとに、当該読み出したバックアップ対象ボリュームのデータ内にバッドデータがあるかを判別する。
【００７５】
判定部５０３は、リストア制御部５０６の指示によって、バッドデータに対応するデータがあるかどうかを判定し、復旧できるかどうかを判定する。例えば、判定部５０３は、リストアの可否を判定する指示がリストア制御部５０６から伝達されると、位置情報ごとの判定や、スナップショットごとの判定をおこなう。
【００７６】
判定部５０３について、具体的に説明する。判定部５０３は、バッドデータに対応するデータがあるかどうかを判定する。例えば、以下に説明するように、判定部５０３は、位置情報ごとに判定し、また、スナップショットごとに判定する。
【００７７】
なお、ここで、位置情報ごとに判定するとは、バッドデータの位置を示す位置情報によって示されるデータついて復旧可能であるか（部分リストアを実行できるか）を判定することを示す。また、スナップショットごとに判定するとは、スナップショットが運用上有効な状態であるか（全リストアを実行できるか）を判定することを示す。なお、ここで、運用上有効な状態とは、ある時点におけるスナップショットにおいて、バッドデータの位置を示す位置情報すべてについて、更新前データがバックアップされていることを示す。
【００７８】
まず、位置情報それぞれについて判定する点について説明する。具体的には、判定部５０３は、バッドデータの位置を示す位置情報ごとに、対応する更新前データがあるかどうかを判定する。さらに詳細には、判定部５０３は、バッドデータの位置を示す位置情報をビットマップテーブル４０１から検索する。そして、判定部５０３は、位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データをディスク３０２がコピー先ＬＵに記憶しているか否かを判定する。
【００７９】
例えば、図７に示すように、スナップショット各々について、「Ｎｏ．１」から「Ｎｏ．９」までの９つの位置情報に対応付けてコピー状態を管理する場合を用いて、具体的に説明する。また、ここでは、図７の（１）に示すように、「Ｎｏ．２」と「Ｎｏ．７」と「Ｎｏ．９」とで示される更新前データをコピー制御部５０１がバックアップしたものとする。つまり、ビットマップテーブル４０１は、位置情報「Ｎｏ．２」と「Ｎｏ．７」と「Ｎｏ．９」とに対応付けて、コピー状態「０」を記憶し、その他の位置情報に対応付けて、コピー状態「１」を記憶する。また、図７の（２）に示すように、コピー制御部５０１がバックアップを行った後に、バッドデータが発生したものとして説明する。なお、このバッドデータは、構成テーブル４０３にて説明したように、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とによって特定される位置にあり、ここでは、当該位置は、「Ｎｏ．７」と「Ｎｏ．８」とによって示される位置内にあるものとして説明する。
【００８０】
例えば、判定部５０３は、図７に示す例を用いて説明すると、ビットマップテーブル４０１を検索し、位置情報「Ｎｏ．７」に対応付けてコピー状態「０」がビットマップテーブル４０１に記憶されていることを読み出す。そして、判定部５０３は、「Ｎｏ．７」によって示されるバッドデータについては、当該位置における更新前データをディスク３０２がコピー先ＬＵに記憶していると判定する。また、判定部５０３は、位置情報「Ｎｏ．８」に対応付けてコピー状態「１」がビットマップテーブル４０１に記憶されていることを読み出す。そして、判定部５０３は、「Ｎｏ．８」によって示されるバッドデータについては、当該位置における更新前データをディスク３０２がコピー先ＬＵに記憶していないと判定する。
【００８１】
その結果、例えば、判定部５０３は、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とによって特定されるバッドデータが含まれる位置情報に対応付けて、更新前データを記憶していると判定すると、当該バッドデータに対応するデータがあると判定する。また、判定部５０３は、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とによって特定されるバッドデータが含まれる位置情報に対応付けて、更新前データを記憶していないと判定すると、当該バッドデータに対応するデータがあると判定する。
【００８２】
次に、スナップショットごとに判定する点について説明する。具体的には、判定部５０３は、バッドデータの位置を示す位置情報すべてに対応する更新前データがあるかどうかをスナップショットごと（セッション番号ごと）に判定する。さらに詳細には、判定部５０３は、バッドデータがバックアップ対象ボリュームのデータに存在する場合に、バッドデータの位置を示す位置情報すべてについて、ビットマップテーブル４０１のコピー状態を検索する。そして、判定部５０３は、バッドデータを示す位置情報すべてについて、更新前データがディスク３０２のコピー先ＬＵに記憶されているか否かを判定する。また、判定部５０３は、バッドデータを示す位置情報すべてについて更新前データを記憶されているかどうかの判定を、スナップショットごとに（セッション番号に対応付けられているビットマップごとに）行う。
【００８３】
「Ｎｏ．７」と「Ｎｏ．８」とによって示される位置内にバッドデータが含まれる場合を用いて、具体的に説明する。ここで、スナップショット「Ｎ」においては、位置情報「Ｎｏ．７」と「Ｎｏ．８」との両方について更新前データが記憶されているものとする（例えば、セッション番号「Ｎ」に対応付けられたビットマップにおいては、位置情報「Ｎｏ．７」と「Ｎｏ．８」との両方について、コピー状態「０」が対応付けられているとする）。また、スナップショット「Ｍ」においては、位置情報「Ｎｏ．８」のみについて更新前データが記憶されているものとする（例えば、セッション番号「Ｍ」に対応付けられたビットマップにおいては、位置情報「Ｎｏ．８」のみについて、コピー状態「０」が対応付けられているとする）。
【００８４】
例えば、判定部５０３は、ビットマップテーブル４０１を検索し、「Ｎｏ．７」と「Ｎｏ．８」との両方について更新前データが記憶されているかを、スナップショットごとに判定する。
【００８５】
具体的な例をあげて説明すると、判定部５０３は、ビットマップテーブル４０１を検索し、位置情報「Ｎｏ．７」と「Ｎｏ．８」との両方についてコピー状態「０」が記憶されているかを、スナップショットごとに（ビットマップごとに）読み出す。そして、例えば、判定部５０３は、スナップショット「Ｎ」については、バッドデータを示す位置情報すべてについて、更新前データが格納されていると判定する。また、判定部５０３は、スナップショット「Ｍ」については、バッドデータを示す位置情報すべてについて、更新前データが格納されていないと判定する（すなわち、「Ｎｏ．７」についてコピー状態「０」が記憶されておらず、および／または、「Ｎｏ．８」についてコピー状態「０」が記憶されていないと判定する）。
【００８６】
また、判定部５０３は、バッドデータに対応するデータがあるかどうかを判定した判定結果を用いて、当該バッドデータを復旧できるかを判定する。具体的には、判定部５０３は、更新前データを記憶していると判定すると、バッドデータを復旧できると判定する。また、判定部５０３は、更新前データを記憶していないと判定すると、バッドデータを復旧できないと判定する。
【００８７】
例えば、判定部５０３は、バッドデータを示す位置情報によって示される更新前データを記憶していると判定すると、当該位置情報について復旧可能と（部分リストアをリストア可と）判定する。また、例えば、判定部５０３は、あるスナップショットについて、バッドデータを示す位置情報すべてについて更新前データが格納されていると判定すると、当該スナップショットが運用上有効な状態にあると判定する（当該スナップショットを用いて全リストアを実行できる（リストア可）と判定する）。
【００８８】
さらに詳細には、判定部５０３は、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とによって特定されるバッドデータについて、当該バッドデータが含まれるビットマップにおける位置情報（例えば、「Ｎｏ．７」など）を判別する。そして、判別したビットマップにおける位置情報に対応付けて更新前データがあると判定すると、当該バッドデータを復旧できると判定する。また、判定部５０３は、判別したビットマップにおける位置情報に対応付けて更新前データがないと判定すると、当該バッドデータを復旧できないと判定する。
【００８９】
具体的な一例を挙げて説明すると、判定部５０３は、リストアの可否を判定する指示と、バッドデータを示す位置情報（例えば、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」と）をリストア制御部５０６から受付ける。そして、判定部５０３は、受付けたバッドデータを示す位置情報（例えば、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」と）について、当該バッドデータが含まれるビットマップにおける位置情報（例えば、「Ｎｏ．７」など）を判別し、判別したビットマップにおける位置情報に対応付けて更新前データがあるかを判定する。また、判定部５０３は、スナップショットそれぞれ（ビットマップそれぞれ）について、受付けたバッドデータを示す位置情報すべてについて更新前データがあるかを判定する。
【００９０】
また、判定部５０３は、判定結果をリストア制御部５０６に伝達する。例えば、判定部５０３は、バッドデータの位置を示す位置情報それぞれについて判定した判定結果やスナップショットそれぞれについての判定結果を、リストア制御部５０６に伝達する。具体的な一例をあげて説明すると、判定部５０３は、バッドデータを示す情報として、「コピー元ＬＵ番号」と「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」との組み合わせそれぞれについて、判定結果を伝達する。例えば、判定部５０３は、判定結果として、「セッション番号」と、部分リストアの可否を示す「部分リストア可否」と、全リストアの可否を示す「全リストア可否」と、を伝達する。
【００９１】
具体的な一例を挙げて説明すると、判定部５０３は、セッション番号「１０」とコピー元ＬＵ番号「０」とバッドデータＬＢＡアドレス「０ｘ００００００００００００７０００」とバッドデータＬＢＡサイズ「０ｘ００００００００００００００１０」との組み合わせに対応付けて、部分リストア可否「リストア可」を伝達する。また、判定部５０３は、セッション番号「１０」とコピー元ＬＵ番号「０」とに対応付けて、全リストア可否「不可」とを伝達する。
【００９２】
なお、判定部５０３による処理の詳細な一例については、後述するため、ここでは説明を省略する。
【００９３】
全リストア部５０４は、スナップショット単位にデータ復旧を行う指示がリストア制御部５０６から伝達されると、スナップショット単位にデータ復旧を実行する（全リストアを実行する）。例えば、全リストア部５０４は、「コピー元ＬＵ番号」と「セッション番号」とがリストア制御部５０６から伝達されると、対応するスナップショットをディスク３０２のコピー先ＬＵから取得する。そして、全リストア部５０４は、取得したスナップショットを、伝達された「コピー元ＬＵ番号」に反映する。
【００９４】
また、全リストア部５０４は、スナップショット単位にデータ復旧を実行する（全リストアを実行する）と、実行結果をリストア制御部５０６に伝達する。例えば、全リストア部５０４は、データ復旧を成功した場合には、データ復旧を実行した旨をリストア制御部５０６に伝達する。
【００９５】
部分リストア部５０５は、位置情報単位にデータ復旧を行う指示がリストア制御部５０６から伝達されると、位置情報単位にデータ復旧を実行する（部分リストアを実行する）。例えば、部分リストア部５０５は、「コピー元ＬＵ番号」と「セッション番号」と「位置情報」とがリストア制御部５０６から伝達されると、伝達された「位置情報」によって示される更新前データを対応するスナップショット内から取得する。そして、部分リストア部５０５は、取得した更新前データを、「コピー元ＬＵ番号」内の位置であって伝達された「位置情報」によって示される位置に、取得した更新前データを反映する。
【００９６】
また、部分リストア部５０５は、位置情報単位にデータ復旧を実行する（部分リストアを実行する）と、実行結果をリストア制御部５０６に伝達する。例えば、部分リストア部５０５は、データ復旧を成功した場合には、データ復旧を実行した旨をリストア制御部５０６に伝達する。
【００９７】
リストア制御部５０６は、ホストアダプタ３０１を介して保守ＰＣ１００から指示を受けつけると、当該指示に対応する処理を行う。例えば、以下に説明するように、リストア制御部５０６は、操作画面表示制御処理と、リストアの可否判定制御処理と、データ復旧制御処理とを行うものである。
【００９８】
まず、操作画面表示制御処理について説明する。リストア制御部５０６は、ホストアダプタ３０１を介して保守ＰＣ１００から操作画面を要求する旨の指示が伝達されると、操作を受付ける操作画面（保守画面）をホストアダプタ３０１を介して保守ＰＣ１００に伝達する。具体的な例をあげて説明すると、リストア制御部５０６は、操作画面についてのＣＧＩプログラムを吸い出すコマンド（要求）を受付けると、図８に示すような操作画面を表示するＣＧＩプログラムをホストアダプタ３０１を介して保守ＰＣ１００に伝達する。
【００９９】
なお、図８に示した操作画面は、操作画面の一例であって、例えば、活性保守を選択する「活性保守」と、判定処理を選択する「バッドデータリストア可否判別」と、ファームの登録を選択する「ファーム登録」と、ファームの適用を選択する「ファーム適用」とを有する。また、図８に示した操作画面は、選択した操作を実行する「ＯＫ」と、選択した操作を取り消す「キャンセル」とを有するものである。
【０１００】
次に、リストアの可否判定制御処理について説明する。リストア制御部５０６は、ホストアダプタ３０１を介して保守ＰＣ１００からリストアの可否を判定する指示を受付けると、受付けた指示を判定部５０３に伝達する。
【０１０１】
例えば、リストア制御部５０６は、リストアの可否を判定する指示と、バッドデータを示す位置情報（例えば、「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」と）とがホストアダプタ３０１を介して保守ＰＣ１００から伝達されて受付ける。そして、例えば、リストア制御部５０６は、リストアの可否を判定する指示と、バッドデータを示す位置情報とを、判定部５０３に伝達する。
【０１０２】
また、リストア制御部５０６は、判定結果を判定部５０３から受付けると、受付けた判定結果をホストアダプタ３０１を介して保守ＰＣ１００に伝達する。
【０１０３】
具体的な一例をあげて説明すると、リストア制御部５０６は、バッドデータを示す位置の位置情報ごとやスナップショットごとに判定部５０３によって判定された判定結果を、図９に示すように、テーブル（リストア可否テーブル）として設定する。例えば、図９に示す例では、リストア制御部５０６は、判定部５０３から伝達された判定結果を、「コピー元ＬＵ番号」と「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」との組み合わせ各々について、「セッション番号」と「部分リストア可否」と「全リストア可否」とを対応付けたテーブル（リストア可否テーブル）として設定する。そして、リストア制御部５０６は、設定したテーブル（リストア可否テーブル）をホストアダプタ３０１を介して保守ＰＣ１００に伝達する。
【０１０４】
そして、データ復旧制御処理について説明する。リストア制御部５０６は、保守ＰＣ１００から伝達されたデータ復旧に関する要求（指示）をホストアダプタ３０１を介して伝達されて受付けると、受付けた指示を部分リストア部５０５や全リストア部５０４に伝達する。
【０１０５】
例えば、リストア制御部５０６は、位置情報単位にデータ復旧を行う指示がホストアダプタ３０１を介して保守ＰＣ１００から伝達されると、その旨を部分リストア部５０５に伝達する。具体的な一例をあげて説明すると、リストア制御部５０６は、「コピー元ＬＵ番号」と「セッション番号」と「位置情報」とがホストアダプタ３０１を介して保守ＰＣ１００から伝達されると、伝達された情報を部分リストア部５０５に伝達する。
【０１０６】
また、例えば、リストア制御部５０６は、スナップショット単位にデータ復旧を行う指示が（全リストアを実行するコマンドを）ホストアダプタ３０１を介して保守ＰＣ１００から伝達されると、その旨を全リストア部５０４に伝達する。具体的な一例をあげて説明すると、リストア制御部５０６は、「コピー元ＬＵ番号」と「セッション番号」とがホストアダプタ３０１を介して保守ＰＣ１００から伝達されると、伝達された情報を全リストア部５０４に伝達する。
【０１０７】
例えば、図１０に示すように、保守ＰＣ１００にて、管理者からデータ復旧を実行する操作が行われ、データ復旧を実行する指示が、ホストアダプタ３０１を介して保守ＰＣ１００から伝達されると、全リストア部５０４や部分リストア部５０５にその旨を伝達する。
【０１０８】
具体的な例をあげて説明すると、図１０に示す例では、保守ＰＣ１００は、データ復旧を行うバッドデータが一つ選択され、データ復旧を実行する操作を受付ける「ＯＫ」とデータ復旧を行わない「キャンセル」とを有する画面が表示されている。ここで、管理者より、「ＯＫ」が選択されると、バッドデータについてデータ復旧を行う旨の要求がホストアダプタ３０１を介して保守ＰＣ１００からリストア制御部５０６に伝達される。そして、リストア制御部５０６は、部分リストア部５０５にその旨を伝達する。
【０１０９】
また、同様に、保守ＰＣ１００にて、管理者から全リストアを実行する操作が行われると、全リストアを行う旨の要求がホストアダプタ３０１を介して保守ＰＣ１００からリストア制御部５０６に伝達される。そして、リストア制御部５０６は、全リストア部５０４にその旨を伝達する。
【０１１０】
また、例えば、リストア制御部５０６は、全リストア部５０４や部分リストア部５０５から、実行結果を伝達されると、伝達された実行結果をホストアダプタ３０１を介して保守ＰＣ１００に伝達する。例えば、リストア制御部５０６は、データ復旧を実行した旨を全リストア部５０４や部分リストア部５０５から伝達されると、その旨をホストアダプタ３０１を介して保守ＰＣ１００に伝達する。
【０１１１】
［ディスクアレイ装置３００による処理］
次に、図１１〜図１６を用いて、ディスクアレイ装置３００による処理を説明する。以下では、まず、図１１〜図１４を用いて、管理者と保守ＰＣ１００とディスクアレイ装置３００との間における処理の流れ（操作画面要求処理、判定要求処理、全リストア要求処理、部分リストア要求処理）を説明する。その後、図１５と図１６とを用いて、ディスクアレイ装置３００における判定処理の流れについて説明する。
【０１１２】
なお、図１１は、実施例１における操作画面要求処理の流れを示すフローチャートである。図１２は、実施例１における判定要求処理の流れを示すフローチャートである。図１３は、実施例１における全リストア要求処理の流れを示すフローチャートである。図１４は、実施例１における部分リストア要求処理の流れを示すフローチャートである。図１５は、実施例１における判定処理の流れを示すフローチャートである。図１６は、実施例１におけるスナップショットごとの判定処理の流れの一例を示すフローチャートである。
【０１１３】
[操作画面要求処理]
まず、図１１を用いて、操作画面要求処理について説明する。
【０１１４】
図１１に示すように、保守ＰＣ１００に対して、操作画面（保守画面）を要求する操作が入力されると（ステップＳ１０１）、例えば、保守操作ログイン用アドレスがブラウザの管理者によってキーボードから打ち込まれると、保守ＰＣ１００は、ＣＧＩプログラム吸出しコマンドを伝達する（ステップＳ１０２）。つまり、保守ＰＣ１００は、操作画面についてのＣＧＩプログラムをディスクアレイ装置３００（リストア制御部５０６）に要求する。
【０１１５】
そして、ディスクアレイ装置３００（リストア制御部５０６）は、ホストアダプタ３０１を介して保守ＰＣ１００から操作画面についてのＣＧＩプログラムを要求する旨を受付けると、ＣＧＩプログラムを伝達する（ステップＳ１０３）、例えば、リストア制御部５０６は、ＣＧＩプログラムを、ホストアダプタ３０１を介して保守ＰＣ１００に伝達する。
【０１１６】
そして、保守ＰＣ１００は、ディスクアレイ装置３００（リストア制御部５０６）によって伝達されたＣＧＩプログラムを展開して、操作画面を表示部にて表示する（ステップＳ１０４）。
【０１１７】
[判定要求処理]      
次に、図１２を用いて、判定要求処理について説明する。
【０１１８】
図１２に示すように、保守ＰＣ１００に対して、リストアの可否を判別する操作が管理者によって入力されると（ステップＳ２０１）、例えば、図８に示す例を用いて説明すると、「リストア可否判別」が（マウス等によって）選択されると、保守ＰＣ１００は、リストアの可否を判定する指示をディスクアレイ装置３００に伝達する（ステップＳ２０２）。なお、保守ＰＣ１００に対して、リストア可否判別する操作が入力（選択）されなかった場合には、処理を終了する。例えば、保守ＰＣ１００に対して、リストア可否判別する操作が入力（選択）されず、例えば、処理がキャンセルされた場合などが該当する。
【０１１９】
そして、ディスクアレイ装置３００は、ホストアダプタ３０１を介して保守ＰＣ１００からリストアの可否を判定する指示を受付けると、リストア可否を判別する（ステップＳ２０３）。つまり、リストア制御部５０６は、ホストアダプタ３０１を介して保守ＰＣ１００からリストアの可否を判定する指示を受付けると、受付けた指示を判定部５０３に伝達し、判定部５０３は、リストア可否を判定する。
【０１２０】
そして、ディスクアレイ装置３００（リストア制御部５０６）は、判定結果をリストア可否テーブルに設定する（ステップＳ２０４）。そして、リストア制御部５０６は、リストア可否テーブルをホストアダプタ３０１を介して保守ＰＣ１００に伝達する（ステップＳ２０５）。
【０１２１】
そして、保守ＰＣ１００は、伝達されたリストア可否テーブルを表示部にて表示する（ステップＳ２０６）。
【０１２２】
[全リストア要求処理]
図１３に示すように、全リストアを選択されると（ステップＳ３０１）、つまり、保守ＰＣ１００に対して、全リストアを実行する指示が管理者によって入力されると、保守ＰＣ１００は、全リストアを実行するコマンドをディスクアレイ装置３００に伝達する（ステップＳ３０２）。なお、保守ＰＣ１００に対して、全リストアが選択されなかった場合には、処理を終了する。
【０１２３】
そして、ディスクアレイ装置３００（リストア制御部５０６）は、全リストアを実行するコマンドをホストアダプタ３０１を介して受付けると、全リストアプログラムを起動し（ステップＳ３０３）、全リストアを実行する（ステップＳ３０４）。つまり、リストア制御部５０６は、全リストアを実行するコマンドを全リストア部５０４に伝達し、全リストア部５０４が、全リストアを実行する。また、全リストア部５０４は、実行結果をリストア制御部５０６に伝達し、リストア制御部５０６が、実行結果をホストアダプタ３０１を介して保守ＰＣ１００に伝達する。
【０１２４】
そして、保守ＰＣ１００は、実行結果を表示する（ステップＳ３０５）。つまり、保守ＰＣ１００は、リストア制御部５０６からホストアダプタ３０１を介して伝達された実行結果を表示する。
【０１２５】
[部分リストア要求処理]
図１４に示すように、部分リストアを選択されると（ステップＳ４０１）、つまり、保守ＰＣ１００に対して、部分リストアを実行する指示が管理者によって入力されると、保守ＰＣ１００は、部分リストアを実行するコマンドをディスクアレイ装置３００に伝達する（ステップＳ４０２）。なお、保守ＰＣ１００に対して、部分リストアが選択されなかった場合には、処理を終了する。
【０１２６】
そして、ディスクアレイ装置３００（リストア制御部５０６）は、部分リストアを実行するコマンドをホストアダプタ３０１を介して受付けると、部分リストアプログラムを起動し（ステップＳ４０３）、部分リストアを実行する（ステップＳ４０４）。つまり、リストア制御部５０６は、部分リストアを実行するコマンドを部分リストア部５０５に伝達し、部分リストア部５０５が、部分リストアを実行する。また、部分リストア部５０５は、実行結果をリストア制御部５０６に伝達し、リストア制御部５０６が、実行結果をホストアダプタ３０１を介して保守ＰＣ１００に伝達する。
【０１２７】
そして、保守ＰＣ１００は、実行結果を表示する（ステップＳ４０５）。つまり、保守ＰＣ１００は、リストア制御部５０６からホストアダプタ３０１を介して伝達された実行結果を表示する。
【０１２８】
[位置情報ごとの判定処理]
図１５に示すように、ディスクアレイ装置３００では、判定開始タイミングとなると（ステップＳ５０１肯定）、つまり、リストアの可否を判別する操作が行われた旨がリストア制御部５０６から判定部５０３に伝達されると、判定部５０３は、コピー制御セッション管理テーブル４０２を参照する（ステップＳ５０２）。例えば、判定部５０３は、参照変数（例えば、番号）を初期化（０クリア）し、番号を一つ選択する。具体的な一例をあげて説明すると、判定部５０３は、コピー制御セッション管理テーブル４０２に記憶されているコピー元ＬＵ番号の一番小さいものを選択する。
【０１２９】
そして、判定部５０３は、コピー制御セッション管理テーブル４０２に記憶されているコピー元ＬＵ番号について、すべて参照したかを判別する（ステップＳ５０３）。例えば、判定部５０３は、選択した番号についてのコピー元ＬＵ番号があるか否かを判別する。ここで、判定部５０３は、すべて参照したと判別した場合には（ステップＳ５０３肯定）、処理を終了する。
【０１３０】
一方、判定部５０３は、すべて参照していないと判別した場合には（ステップＳ５０３否定）、「コピータイプ」が「ＳｎａｐＯＰＣ」であるかを判別する（ステップＳ５０４）。つまり、判定部５０３は、選択したコピー元ＬＵ番号に対応付けられた「コピータイプ」が、「ＳｎａｐＯＰＣ」であるかを判別する。ここで、判定部５０３は、コピータイプ「ＳｎａｐＯＰＣ」であると判別した場合には（ステップＳ５０４肯定）、選択したコピー元ＬＵ番号をコピー制御セッション管理テーブル４０２から取り出す（読出す）（ステップＳ５０５）。
【０１３１】
そして、判定部５０３は、取り出した「コピー元ＬＵ番号」に対応する構成テーブル４０３を参照する（ステップＳ５０６）。例えば、判定部５０３は、参照変数（例えば、番号）を初期化（０クリア）し、構成テーブル４０３にて番号を一つ選択する。具体的な一例をあげて説明すると、判定部５０３は、取り出したコピー元ＬＵ番号に構成テーブル４０３にて対応付けられた「構成テーブル番号」の内、一番小さいものを選択する。
【０１３２】
そして、判定部５０３は、バッドデータがあるかを判別する（ステップＳ５０７）。例えば、判定部５０３は、選択した「構成テーブル番号」に対応付けられた「バッドデータ番号」が、「０」か「１」かを判別する。ここで、判定部５０３は、バッドデータがあると判別した場合には（ステップＳ５０７肯定）、バッドデータ部分のビットマップにおいて、ビットが「０」になっているかを判別する（ステップＳ５０８）。つまり、判定部５０３は、バッドデータについて、更新前データが格納されているかを判別する。さらに詳細には、判定部５０３は、「構成テーブル番号」に対応付けられた「バッドデータＬＢＡアドレス」と「バッドデータＬＢＡサイズ」とに対応する位置情報に対応付けて、ビットマップテーブル４０１において「０」が記憶されているかを判別する。
【０１３３】
なお、ここで、判別部５０３は、バッドデータについて更新前データが格納されているかを判別する際には、すべてのスナップショットについて（ビットマップについて）判別を行う。例えば、「コピー元ＬＵ番号」に対応付けて、セッション番号が「１」から「１０」まである場合には（スナップショットが１０個ある場合には）、当該セッション番号「１」〜「１０」それぞれに作成されているビットマップについて、バッドデータについて更新前データが格納されているかを判別する。
【０１３４】
ここで、判定部５０３が、ビットが「０」になっていると判別した場合には（ステップＳ５０８肯定）、判定部５０３は、当該バッドデータについて「部分リストア可」とリストア制御部５０６に伝達し、リストア制御部５０６が、リストア可否判別テーブルにその旨を設定する（ステップＳ５０９）。つまり、リストア制御部５０６は、バッドデータ部分可能結果を設定する。
【０１３５】
一方、判定部５０３が、ビットが「０」になっていないと判別した場合には（ステップＳ５０８否定）、判定部５０３は、当該バッドデータについて「部分リストア不可」とリストア制御部５０６に伝達し、リストア制御部５０６が、リストア可否判別テーブルにその旨を設定する（ステップＳ５１０）。つまり、リストア制御部５０６は、バッドデータ部分不可能結果を設定する。
【０１３６】
そして、判定部５０３は、取り出したコピー元ＬＵ番号に対応付けられた構成テーブル４０３にて、参照変数を１つインクリメントする（ステップＳ５１１）。そして、判定部５０３は、上記したステップＳ５０７において、判定部５０３が、バッドデータなしと判定するまで、上記した処理（ステップＳ５０７〜Ｓ５１１）を繰り返す。
【０１３７】
また、一方、判定部５０３は、上記したステップＳ５０４において、「コピータイプ」が「ＳｎａｐＯＰＣ」でないと判別し（ステップＳ５０４否定）、または、上記したステップＳ５０７において、バッドデータなしと判定すると（ステップＳ５０７否定）、判定部５０３は、コピー制御セッション管理テーブル４０２の参照変数を１つインクリメントする（ステップＳ５１２）。そして、判定部５０３は、上記したステップＳ５０３において、すべて参照したと判別するまで、上記した処理（ステップＳ５０４〜Ｓ５１２）を繰り返す。
【０１３８】
そして、判定部５０３は、上記したステップＳ５０３において、すべて参照したと判別すると（ステップＳ５０３肯定）、処理を終了する。
【０１３９】
[スナップショットごとの判定処理]
図１６に示すように、判定部５０３は、位置情報ごとの判定が終了したかを判定する（ステップＳ６０１）。例えば、図１５に示した処理が終了したかを判定する。ここで、判定部５０３は、位置情報ごとの判定が終了した場合には（ステップＳ６０１肯定）、セッション番号を一つ選択する（ステップＳ６０２）。つまり、判定部５０３は、判定を行うコピー元ＬＵ番号に対応付けられた「セッション番号」を一つ選択する。
【０１４０】
そして、判定部５０３は、当該セッション番号についてのスナップショットについて、バッドデータを示す位置情報すべてについて更新前データが格納されているかを判別する（ステップＳ６０３）。ここで、判定部５０３は、バッドデータを示す位置情報すべてについて更新前データが格納されていると判定した場合には（ステップＳ６０３肯定）、全リストア可と判定する（ステップＳ６０４）。また、一方、判定部５０３は、バッドデータを示す位置情報すべてについて更新前データが格納されていないと判定した場合には（ステップＳ６０３否定）、全リストア不可と判定する（ステップＳ６０５）。
【０１４１】
そして、判定部５０３は、セッション番号すべてについて選択したかを判定する（ステップＳ６０６）。ここで、判定部５０３は、セッション番号すべてについて選択していないと判定した場合には（ステップＳ６０６否定）、未選択のセッション番号を一つ選択する（ステップＳ６０７）。そして、セッション番号すべてについて選択したと判定するまで、上記したステップＳ６０３からＳ６０６の処理を繰り返す。
【０１４２】
一方、判定部５０３は、セッション番号すべてについて選択したと判定した場合には（ステップＳ６０６肯定）、処理を終了する。
【０１４３】
［実施例１の効果］
上記したように、実施例１によれば、バックアップ対象ボリュームのデータを更新することを指示する更新指示に基づいて、更新前データをディスク３０２にコピーし、バックアップ対象ボリュームのデータ各々について、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報に対応付けて、当該位置情報で示されるデータの更新前データがディスク３０２にコピーされているか否かの状態を示すコピー状態を管理し、バッドデータがバックアップ対象ボリュームのデータに存在する場合に、当該バッドデータの位置を示す位置情報をビットマップテーブル４０１から検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データがディスク３０２に記憶されているか否かを判定するので、バッドデータとなっている箇所についてバックアップがあるか否かを簡単に把握することが可能である。
【０１４４】
また、実施例１によれば、判定結果を、コピー制御装置を管理する保守ＰＣ１００に通知し、保守ＰＣ１００の表示部が通知された判定結果を表示するので、ディスプレイにて判定結果を確認しながら、当該管理装置を利用する利用者は、作業を実行することが可能である。
【０１４５】
また、実施例１によれば、更新前データがディスク３０２に記憶されているか否かを、バッドデータの位置を示す位置情報ごとに判定する。また、バッドデータがバックアップ対象ボリュームのデータに存在する場合に、当該バッドデータの位置を示す位置情報をビットマップテーブル４０１から検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該データ異常箇所を示す当該位置情報すべてについて、当該バッドデータの更新前データがディスク３０２に記憶されているか否かを時点単位ごとに判定する。これにより、実施例１によれば、部分リストアか、全リストアかが実行できるかを簡単に判定することが可能である。
【０１４６】
また、実施例１によれば、位置情報単位にデータ復旧を行う指示もしくはスナップショット単位にデータ復旧を行う指示を受付け、位置情報単位にデータ復旧を行う指示が受付けられた場合に、当該位置情報単位にデータ復旧を実行し、受付部によってスナップショット単位にデータ復旧を行う指示が受付けられた場合に、当該スナップショット単位にデータ復旧を実行するので、部分リストアか、全リストアかを簡単に実行することが可能である。
【実施例２】
【０１４７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、その他の実施例について説明する。
【０１４８】
[判定]
実施例１では、ディスクアレイ装置３００は、保守ＰＣ１００から指示を受けると、判定する処理を行う場合について説明したが、本発明はこれに限定されるものではない。例えば、ディスクアレイ装置３００は、一定周期にて、判定処理を行い、その結果を保守ＰＣ１００に通知してもよい。例えば、ディスクアレイ装置３００は、新たなバッドデータがＲＡＩＤ制御部５０２によって判別されると、当該バッドデータについて判定処理を行い、判定結果を保守ＰＣ１００に伝達してもよい。
【０１４９】
[バッドデータ検出]
また、実施例１では、バッドデータを、一定周期にて判別する手法について説明したが、本発明はこれに限定されるものではない。例えば、管理者の指示をホストＰＣ１００から伝達されるごとに判別してもよく、ホストサーバからアクセスがあるごとに判別してもよい。
【０１５０】
[判定手法の処理手順について]
上記した実施例では、位置情報ごとに判定処理を実行し、その後、スナップショットごとに判定処理を実行する例について説明したが（図１６など）、本発明はこれに限定されるものではなく、それぞれを別個独立の処理として実行してもよい。
【０１５１】
［実施例の組み合わせについて］
上記した実施例１では、バッドデータに対応する更新前データをバックアップしているかを判定するとともに、（１）判定結果を通知する手法と、（２）通知された判定結果を表示する手法と、（３）部分リストアか、全リストアかを実行できるかを判定する手法と、（４）部分リストアを実行する指示や、全リストアを実行する指示を受付ける手法と、を併せて実施する手法について説明した。しかし、本発明はこれに限定されるものではなく、上記した（１）〜（４）の内、任意の手法のみを実施してもよい。
【０１５２】
［システム構成］
また、この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については（例えば、図１〜１５）、特記する場合を除いて任意に変更することができる。
【０１５３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図２に示す例では、ディスク３０２を、コピー元ＬＵとコピー先ＬＵとに分割してもよい。
【０１５４】
［プログラム］
ところで、上記実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１７を用いて、上記の実施例１に示したディスクアレイ装置３００と同様の機能を有するディスクアレイ装置３００のプログラムを実行するコンピュータの一例を説明する。なお、図１７は、実施例１におけるディスクアレイ装置３００のプログラムを説明するための図である。
【０１５５】
同図に示すように、実施例１におけるディスクアレイ装置３０００は、操作部３００１、マイク３００２、スピーカ３００３、ディスク３００４、ディスプレイ３００５、通信部３００６、ＣＰＵ３０１０、ＲＯＭ３０１１、ＨＤＤ３０１２、ＲＡＭ３０１３をバス３００９などで接続して構成されている。
【０１５６】
ＲＯＭ３０１１には、上記の実施例１で示したコピー制御部５０１と、ＲＡＩＤ制御部５０２と、判定部５０３と、全リストア部５０４と、部分リストア部５０５と、リストア制御部５０６と同様の機能を発揮する制御プログラム、つまり、同図に示すように、コピー制御プログラム３０１１ａと、ＲＡＩＤ制御プログラム３０１１ｂと、判定プログラム３０１１ｃと、全リストアプログラム３０１１ｄと、部分リストアプログラム３０１１ｅと、リストア制御プログラム３０１１ｆとが予め記憶されている。なお、これらのプログラム３０１１ａ〜３０１１ｆについては、図２に示したディスクアレイ装置３００の各構成要素と同様、適宜統合または分離してもよい。
【０１５７】
そして、ＣＰＵ３０１０が、これらのプログラム３０１１ａ〜３０１１ｆをＲＯＭ３０１１から読み出して実行することにより、図１７に示すように、各プログラム３０１１ａ〜３０１１ｆについては、コピー制御プロセス３０１０ａと、ＲＡＩＤ制御プロセス３０１０ｂと、判定プロセス３０１０ｃと、全リストアプロセス３０１０ｄと、部分リストアプロセス３０１０ｅと、リストア制御プロセス３０１０ｆとして機能するようになる。なお、各プロセス３０１０ａ〜３０１０ｆは、図２に示した、コピー制御部５０１と、ＲＡＩＤ制御部５０２と、判定部５０３と、全リストア部５０４と、部分リストア部５０５と、リストア制御部５０６と、にそれぞれ対応する。
【０１５８】
そして、ＨＤＤ３０１２には、ビットマップテーブル３０１２ａと、コピー制御セッション管理テーブル３０１２ｂと、構成テーブル３０１２ｃとが設けられている。なお、各テーブル３０１２ａ〜３０１２ｃは、図２に示した、ビットマップテーブル４０１と、コピー制御セッション管理テーブル４０２と、構成テーブル４０３とにそれぞれ対応する。
【０１５９】
そして、ＣＰＵ３０１０は、ビットマップテーブル３０１２ａと、コピー制御セッション管理テーブル３０１２ｂと、構成テーブル３０１２ｃとを読み出してＲＡＭ３０１３に格納し、ＲＡＭ３０１３に格納されたビットマップデータ３０１３ａと、コピー制御セッション管理データ３０１３ｂと、構成データ３０１３ｃと、を用いて、ディスクアレイ装置プログラムを実行する。
【０１６０】
［その他］
なお、本実施例で説明したディスクアレイ装置３００は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０１６１】
以上の実施例１と２とを含む実施形態に関し、更に以下の付記を開示する。
【０１６２】
（付記１）第１の記憶装置内に記憶されているバックアップ対象ボリュームのデータに更新があった場合に、当該データが更新される前のデータである更新前データを第２の記憶装置内にコピーするコピー制御装置であって、
前記バックアップ対象ボリュームのデータを更新することを指示する更新指示に基づいて、前記更新前データを前記第２の記憶装置内にコピーするコピー部と、
前記バックアップ対象ボリュームのデータ各々について、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報に対応付けて、当該位置情報で示されるデータの更新前データが前記コピー部によって前記第２の記憶装置内にコピーされているか否かの状態を示すコピー状態を管理する管理テーブルと、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを判定するデータ判定部と、
を備えたことを特徴とするコピー制御装置。
【０１６３】
（付記２）前記データ判定部による判定結果を、前記コピー制御装置を管理する管理端末に通知する通知部をさらに備えたことを特徴とする付記１に記載のコピー制御装置。
【０１６４】
（付記３）前記管理端末は表示部を備えるものであって、
前記表示部は、前記通知部によって通知された前記データ判定部による判定結果を表示することを特徴とする付記２に記載のコピー制御装置。
【０１６５】
（付記４）前記コピー制御装置は、前記バックアップ対象ボリュームについて、バックアップを実行する時点における当該バックアップ対象ボリュームを示すスナップショットを、バックアップを実行する時点各々ごとに作成するものであって、
前記コピー部は、バックアップを実行する時点より後に前記バックアップ対象ボリュームのデータに更新があった場合に、前記更新前データをコピーし、
前記管理テーブルは、前記時点に対応付けて、前記位置情報と前記コピー状態との対応付けを管理し、
前記データ判定部は、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを、前記バッドデータの位置を示す位置情報ごとに判定し、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータを示す当該位置情報すべてについて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを前記時点単位ごとに判定する時点毎判定部をさらに備えることを特徴とする付記１〜３のいずれか一つに記載のコピー制御装置。
【０１６６】
（付記５）前記位置情報単位にデータ復旧を行う指示もしくは前記スナップショット単位にデータ復旧を行う指示を受付ける受付部と、
前記受付部によって前記位置情報単位にデータ復旧を行う指示が受付けられた場合に、当該位置情報単位にデータ復旧を実行し、前記受付部によって前記スナップショット単位にデータ復旧を行う指示が受付けられた場合に、当該スナップショット単位にデータ復旧を実行する復旧部と、
をさらに備えることを特徴とする付記１〜４のいずれか一つに記載のコピー制御装置。
【０１６７】
（付記６）第１の記憶装置内に記憶されているバックアップ対象ボリュームのデータに更新があった場合に、当該データが更新される前のデータである更新前データを第２の記憶装置内にコピーするコピー制御方法であって、
前記バックアップ対象ボリュームのデータを更新することを指示する更新指示に基づいて、前記更新前データを前記第２の記憶装置内にコピーするコピーステップと、
前記バックアップ対象ボリュームのデータ各々について、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報に対応付けて、当該位置情報で示されるデータの更新前データが前記コピーステップによって前記第２の記憶装置内にコピーされているか否かの状態を示すコピー状態を管理テーブルにて管理する管理ステップと、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを判定するデータ判定ステップと、
を含んだことを特徴とするコピー制御方法。
【０１６８】
（付記７）前記データ判定ステップによる判定結果を、前記コピー制御方法を実行するコピー制御装置を管理する管理端末に通知する通知ステップをさらに含んだことを特徴とする付記６に記載のコピー制御方法。
【０１６９】
（付記８）前記管理端末は表示ステップを備えるものであって、
前記表示ステップは、前記通知ステップによって通知された前記データ判定ステップによる判定結果を表示することを特徴とする付記７に記載のコピー制御方法。
【０１７０】
（付記９）前記コピー制御方法は、前記バックアップ対象ボリュームについて、バックアップを実行する時点における当該バックアップ対象ボリュームを示すスナップショットを、バックアップを実行する時点各々ごとに作成するものであって、
前記コピーステップは、バックアップを実行する時点より後に前記バックアップ対象ボリュームのデータに更新があった場合に、前記更新前データをコピーし、
前記管理テーブルは、前記時点に対応付けて、前記位置情報と前記コピー状態との対応付けを管理し、
前記データ判定ステップは、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを、前記バッドデータの位置を示す位置情報ごとに判定し、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータを示す当該位置情報すべてについて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを前記時点単位ごとに判定する時点毎判定ステップをさらに備えることを特徴とする付記６〜８のいずれか一つに記載のコピー制御方法。
【０１７１】
（付記１０）前記位置情報単位にデータ復旧を行う指示もしくは前記スナップショット単位にデータ復旧を行う指示を受付ける受付ステップと、
前記受付ステップによって前記位置情報単位にデータ復旧を行う指示が受付けられた場合に、当該位置情報単位にデータ復旧を実行し、前記受付ステップによって前記スナップショット単位にデータ復旧を行う指示が受付けられた場合に、当該スナップショット単位にデータ復旧を実行する復旧ステップと、
をさらに備えることを特徴とする付記６〜９のいずれか一つに記載のコピー制御方法。
【０１７２】
（付記１１）第１の記憶装置内に記憶されているバックアップ対象ボリュームのデータに更新があった場合に、当該データが更新される前のデータである更新前データを第２の記憶装置内にコピーするコピー制御方法をコンピュータに実行させるコピー制御プログラムであって、
前記バックアップ対象ボリュームのデータを更新することを指示する更新指示に基づいて、前記更新前データを前記第２の記憶装置内にコピーするコピー手順と、
前記バックアップ対象ボリュームのデータ各々について、当該バックアップ対象ボリューム内におけるデータの位置を示す位置情報に対応付けて、当該位置情報で示されるデータの更新前データが前記コピー手順によって前記第２の記憶装置内にコピーされているか否かの状態を示すコピー状態を管理テーブルにて管理する管理手順と、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを判定するデータ判定手順と、
をコンピュータに実行させることを特徴とするコピー制御プログラム。
【０１７３】
（付記１２）前記データ判定手順による判定結果を、前記コピー制御方法を実行するコピー制御装置を管理する管理端末に通知する通知手順をさらに含んだことを特徴とする付記１１に記載のコピー制御プログラム。
【０１７４】
（付記１３）前記管理端末は表示手順を備えるものであって、
前記表示手順は、前記通知手順によって通知された前記データ判定手順による判定結果を表示することを特徴とする付記１２に記載のコピー制御プログラム。
【０１７５】
（付記１４）前記コピー制御プログラムは、前記バックアップ対象ボリュームについて、バックアップを実行する時点における当該バックアップ対象ボリュームを示すスナップショットを、バックアップを実行する時点各々ごとに作成する処理をコンピュータに実行させるコピー制御プログラムであって、
前記コピーステップは、バックアップを実行する時点より後に前記バックアップ対象ボリュームのデータに更新があった場合に、前記更新前データをコピーし、
前記管理テーブルは、前記時点に対応付けて、前記位置情報と前記コピー状態との対応付けを管理し、
前記データ判定手順は、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを、前記バッドデータの位置を示す位置情報ごとに判定し、
読み出し不能のデータであるバッドデータが前記バックアップ対象ボリュームに存在する場合に、当該バッドデータの位置を示す位置情報を前記管理テーブルから検索し、当該位置情報に対応付けて管理されているコピー状態に基づいて、当該バッドデータを示す当該位置情報すべてについて、当該バッドデータの更新前データが前記第２の記憶装置に記憶されているか否かを前記時点単位ごとに判定する時点毎判定手順をさらに備えることを特徴とする付記１１〜１３のいずれか一つに記載のコピー制御プログラム。
【０１７６】
（付記１５）前記位置情報単位にデータ復旧を行う指示もしくは前記スナップショット単位にデータ復旧を行う指示を受付ける受付手順と、
前記受付手順によって前記位置情報単位にデータ復旧を行う指示が受付けられた場合に、当該位置情報単位にデータ復旧を実行し、前記受付手順によって前記スナップショット単位にデータ復旧を行う指示が受付けられた場合に、当該スナップショット単位にデータ復旧を実行する復旧手順と、
をさらに備えることを特徴とする付記１１〜１４のいずれか一つに記載のコピー制御プログラム。
【図面の簡単な説明】
【０１７７】
【図１−１】実施例１におけるディスクアレイ装置の概要および特徴を説明するための図である。
【図１−２】実施例１におけるディスクアレイ装置の概要および特徴を説明するための図である。
【図２】実施例１におけるディスクアレイ装置の構成を示すためのブロック図である。
【図３】実施例１におけるビットマップテーブルを説明するための図である。
【図４】実施例１におけるコピー制御セッション管理部を説明するための図である。
【図５】実施例１における構成テーブルを説明するための図である。
【図６】実施例１におけるコピー制御部を説明するための図である。
【図７】実施例１における判定部を説明するための図である。
【図８】実施例１におけるリストア制御部を説明するための図である。
【図９】実施例１におけるリストア制御部を説明するための図である。
【図１０】実施例１におけるリストア制御部を説明するための図である。
【図１１】実施例１における操作画面要求処理の流れを示すフローチャートである。
【図１２】実施例１における判定要求処理の流れを示すフローチャートである。
【図１３】実施例１における全リストア要求処理の流れを示すフローチャートである。
【図１４】実施例１における部分リストア要求処理の流れを示すフローチャートである。
【図１５】実施例１における判定処理の流れを示すフローチャートである。
【図１６】実施例１におけるスナップショットごとの判定処理の流れの一例を示すフローチャートである。
【図１７】実施例１におけるディスクアレイ装置のプログラムを説明するための図である。
【符号の説明】
【０１７８】
１００  保守ＰＣ
２００  ホストサーバ
３００  ディスクアレイ装置
３０１  ホストアダプタ
３０２  ディスク
４００  記憶部
４０１  ビットマップテーブル
４０２  コピー制御セッション管理テーブル
４０３  構成テーブル
５００  制御部
５０１  コピー制御部
５０２  ＲＡＩＤ制御部
５０３  判定部
５０４  全リストア部
５０５  部分リストア部
５０６  リストア制御部
【図１−１】
0004607981.tif 000002
【図１−２】
0004607981.tif 000003
【図２】
0004607981.tif 000004
【図３】
0004607981.tif 000005
【図４】
0004607981.tif 000006
【図５】
0004607981.tif 000007
【図６】
0004607981.tif 000008
【図７】
0004607981.tif 000009
【図８】
0004607981.tif 000010
【図９】
0004607981.tif 000011
【図１０】
0004607981.tif 000012
【図１１】
0004607981.tif 000013
【図１２】
0004607981.tif 000014
【図１３】
0004607981.tif 000015
【図１４】
0004607981.tif 000016
【図１５】
0004607981.tif 000017
【図１６】
0004607981.tif 000018
【図１７】
0004607981.tif 000019