(57)【要約】【課題】バックアップボリュームが存在するストレージ装置にデータ更新領域管理機能がなくても、バックアップボリュームへのスナップショットのバックアップを実現する。【解決手段】ホスト１０は、ディスクアレイ装置１０-1上の第１のスナップショットに対応する仮想スナップボリューム１００からディスクアレイ装置１０-2上のバックアップボリューム１１０-1〜１１０-3のうちの対応する世代のバックアップボリュームへのデータのバックアップに際し、第１のスナップショットより前の第２のスナップショットの採取時点から第１のスナップショットの採取時点までの間にデータ更新が発生した領域を、対応する単一または複数の差分ビットマップテーブルに基づいて特定する。ホスト１０は、特定された領域の差分データを仮想スナップボリューム１００から取得して、上記対応する世代のバックアップボリュームにコピーする。【選択図】      図１０
2012014286.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と、
前記ホスト装置とネットワークを介して接続される第１の汎用ホストインタフェースを備えた第１のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第１のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第１のストレージ装置と、
前記ホスト装置と前記ネットワークを介して接続される第２の汎用ホストインタフェースを備えた第２のストレージ装置とを具備するストレージシステムにおいて、
前記第２のストレージ装置は、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための複数のバックアップボリュームを備え、
前記ホスト装置は、前記第１のスナップショットに対応する仮想スナップボリュームから前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、バックアップのためにスナップショットデータをコピーする差分バックアップ手段であって、前記第１のスナップショットより前の第２のスナップショットの採取時点から前記第１のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて特定し、当該特定された領域の差分データを前記第１のスナップショットに対応する仮想スナップボリュームから前記第１の汎用インタフェースを介して取得して、前記対応する世代のバックアップボリュームに前記第２の汎用インタフェースを介してコピーする差分バックアップ手段を備えている
ことを特徴とするストレージシステム。
【請求項２】
前記第２のスナップショットは、前記対応する世代のバックアップボリュームへの前回のバックアップで用いられた仮想スナップボリュームと対応しており、
前記ホスト装置は、前記第２のスナップショットを示す情報をコピー済みスナップショット情報として保持する保持手段を更に備えており、
前記差分バックアップ手段は、前記保持手段に保持されているコピー済みスナップショット情報に基づいて前記第２のスナップショットを特定する
ことを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記差分バックアップ手段は、
前記単一または複数の差分ビットマップテーブルを前記第１のストレージ装置から前記第１のインタフェースを介して取得する差分ビットマップテーブル取得手段と、
前記差分ビットマップテーブル取得手段によって前記複数の差分ビットマップテーブルが取得された場合、当該複数の差分ビットマップテーブルの対応するビット毎に論理和演算を行い、その論理和演算結果が保持されたコピー領域用差分ビットマップテーブルを生成するテーブル生成手段と、
前記コピー領域用差分ビットマップテーブルを格納する記憶手段と、
前記コピー領域用差分ビットマップテーブルに基づいて、前記第２のスナップショットの採取時点から前記第１のスナップショットの採取時点までの間にデータ更新が発生した領域を特定し、前記第１のスナップショットに対応する仮想スナップボリュームから当該特定された領域の差分データを前記第１の汎用インタフェースを介して読み出す読み出し手段と
を備えていることを特徴とする請求項２記載のストレージシステム。
【請求項４】
前記差分バックアップ手段は、前記差分ビットマップテーブルの各ビットに対応する領域のサイズを示すサイズ情報を、前記第１のストレージ装置から前記第１のインタフェースを介して取得するサイズ情報取得手段を更に備え、
前記読み出し手段は、前記コピー領域用差分ビットマップテーブル及び前記取得されたサイズ情報に基づいて、前記データ更新が発生した領域を特定する
ことを特徴とする請求項３記載のストレージシステム。
【請求項５】
前記差分バックアップ手段は、
前記単一または複数の差分ビットマップテーブルを前記第１のストレージ装置から前記第１のインタフェースを介して取得する差分ビットマップテーブル取得手段と、
前記取得された単一または複数の差分ビットマップテーブルを格納する記憶手段と、
前記記憶手段に格納されている前記単一または複数の差分ビットマップテーブルに基づいて、前記第２のスナップショットの採取時点から前記第１のスナップショットの採取時点までの間にデータ更新が発生した領域を特定し、前記第１のスナップショットに対応する仮想スナップボリュームから当該特定された領域の差分データを前記第１の汎用インタフェースを介して読み出す読み出し手段と
を備えていることを特徴とする請求項２記載のストレージシステム。
【請求項６】
前記差分バックアップ手段は、前記差分ビットマップテーブルの各ビットに対応する領域のサイズを示すサイズ情報を、前記第１のストレージ装置から前記第１のインタフェースを介して取得するサイズ情報取得手段を更に備え、
前記読み出し手段は、前記記憶手段に格納されている前記単一または複数の差分ビットマップテーブル及び前記取得されたサイズ情報に基づいて、前記データ更新が発生した領域を特定する
ことを特徴とする請求項５記載のストレージシステム。
【請求項７】
前記差分バックアップ手段は、
前記第１のスナップショットに対応する仮想スナップボリュームの特定のアクセスモード並びに前記第１のスナップショット及び前記第２のスナップショットを指定する仮想スナップボリューム管理情報を前記第１の汎用インタフェースを介して前記第１のストレージ装置に設定するアクセスモード設定手段と、
前記第１のストレージ装置に対して前記一定サイズの領域単位に前記第１のスナップショットに対応する仮想スナップボリュームからデータを読み出すための読み出し要求を前記第１の汎用インタフェースを介して発行することにより、前記読み出し要求に対する読み出し結果を示す応答を前記第１のストレージ装置から取得する読み出し手段と、
前記応答が正常応答である場合、当該応答に含まれている読み出しデータを、前記バックアップボリュームの対応する領域に書き込む書き込み手段とを備え、
前記第１のストレージ装置は、
前記設定された仮想スナップボリューム管理情報によって前記特定のアクセスモードが指定されている状態で、前記第１のスナップショットに対応する仮想スナップボリュームにアクセスするための読み出し要求が前記ホスト装置から前記第１の汎用インタフェースを介して発行された場合、前記設定された仮想スナップボリューム管理情報によって指定される前記第１のスナップショットの採取時点から前記第２のスナップショットの採取時点までの間にデータ更新が発生した領域からのデータの読み出しが指定されているかを、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて調べ、データ更新が発生した領域からのデータの読み出しが指定されている場合に、前記第１のスナップショットに対応する仮想スナップボリュームの前記読み出し要求で指定された領域からデータを読み出して、当該読み出したデータを含む正常応答を前記第１の汎用インタフェースを介して前記ホスト装置に返す応答手段を備えている
ことを特徴とする請求項１記載のストレージシステム。
【請求項８】
前記応答手段は、データ更新が発生した領域以外からのデータの読み出しが指定されている場合、前記指定された領域からのデータ読み出しを行わずに、前記指定された領域の予約中を示す予約応答を前記ホスト装置に返し、
前記書き込み手段は、前記応答が前記予約応答の場合、前記バックアップボリュームの対応する領域へのデータ書き込みを控える
ことを特徴とする請求項７記載のストレージシステム。
【請求項９】
ホスト装置と、前記ホスト装置とネットワークを介して接続される第１の汎用ホストインタフェースを備えた第１のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第１のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第１のストレージ装置と、前記ホスト装置と前記ネットワークを介して接続される第２の汎用ホストインタフェースを備えた第２のストレージ装置とを具備するストレージシステムにおいて、前記第１のスナップショットに対応する仮想スナップボリュームのデータを、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための前記第２のストレージ装置に用意された複数のバックアップボリュームのうちの対応するバックアップボリュームにコピーするデータバックアップ方法であって、
前記第１のスナップショットより前の第２のスナップショットの採取時点から前記第１のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて前記ホスト装置が特定するステップと、
前記特定された領域の差分データを、前記ホスト装置が前記第１のスナップショットに対応する仮想スナップボリュームから前記第１の汎用インタフェースを介して取得するステップと、
前記第１のスナップショットに対応する仮想スナップボリュームから取得されたデータを、前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、前記ホスト装置が前記第２の汎用インタフェースを介して書き込むステップと
を具備することを特徴とするデータバックアップ方法。
【請求項１０】
ホスト装置と、前記ホスト装置とネットワークを介して接続される第１の汎用ホストインタフェースを備えた第１のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第１のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第１のストレージ装置と、前記ホスト装置と前記ネットワークを介して接続される第２の汎用ホストインタフェースを備えた第２のストレージ装置とを具備するストレージシステムにおける前記ホスト装置が、前記第１のスナップショットに対応する仮想スナップボリュームのデータを、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための前記第２のストレージ装置に用意された複数のバックアップボリュームのうちの対応するバックアップボリュームにコピーするのに用いられるデータバックアッププログラムであって、
前記ホスト装置に、
前記第１のスナップショットより前の第２のスナップショットの採取時点から前記第１のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて特定するステップと、
前記特定された領域の差分データを、前記第１のスナップショットに対応する仮想スナップボリュームから前記第１の汎用インタフェースを介して取得するステップと、
前記第１のスナップショットに対応する仮想スナップボリュームから取得されたデータを、前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、前記第２の汎用インタフェースを介して書き込むステップと
を実行させるためのデータバックアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１及び第２のストレージ装置とこれら第１及び第２のストレージ装置と接続されたホスト（ホスト装置）とから構成されるストレージシステムに係り、特に、第１のストレージ装置に存在する論理ボリュームのスナップショットデータを第２のストレージ装置に存在するバックアップボリュームにバックアップするのに好適な、ストレージシステム、同システムにおけるデータバックアップ方法及びデータバックアッププログラムに関する。
【背景技術】
【０００２】
一般にストレージシステムは１つ以上のストレージ装置と、当該１つ以上のストレージ装置と例えばネットワークにより接続された１つ以上のホスト（ホスト装置）とから構成される。ここでは、第１及び第２のストレージ装置とホストとから構成されるストレージシステムを想定する。第１のストレージ装置には、第１及び第２の論理ボリュームが存在するものとする。
【０００３】
例えば特許文献１は、このようなストレージシステムにおいて、第１の論理ボリュームに対するデータの書き込み（更新）が発生すると、それ以前に第１の論理ボリューム内の対応する領域に格納されていたデータ（更新前データ）を、第１のストレージ装置が有するスナップショット機能により差分データ（スナップショットデータ）として第２の論理ボリュームに保存（退避）することを開示している。第１の論理ボリュームは、正ボリューム、或いはマスターボリュームと呼ばれ、第２の論理ボリュームは、プールボリューム、差分ボリューム、或いはスナップデータ管理ボリュームと呼ばれる。第２の論理ボリュームは、複数世代のスナップショットデータ（過去データ）を保存する。
【０００４】
特許文献１は、第２の論理ボリュームに保存されているスナップショットデータと元の第１の論理ボリュームとの関連をビットマップ（差分ビットマップテーブル）により管理することを開示している。特許文献１は更に、差分ビットマップテーブルを含むスナップショット管理テーブルに基づき、特定世代の仮想論理ボリューム（仮想スナップボリューム）を生成する技術と、仮想論理ボリュームのデータを第２のストレージ装置に存在するバックアップボリュームにバックアップする技術（バックアップ技術）とを開示している。
【０００５】
特許文献１に記載のバックアップ技術（以下、従来技術と称する）では、第２の論理ボリュームに採取（取得）されたスナップショットを仮想論理ボリュームとして実現する時点で、前回バックアップボリュームにコピーされたスナップショットデータ（差分データ）から今回バックアップされるべきスナップショットデータ（差分データ）までのデータ更新発生領域（差分データの領域）を示すビットマップテーブル（差分ビットマップテーブル）が、スナップショット管理テーブルの情報に基づいて作成される。この作成された差分ビットマップテーブルに従って、データ更新発生領域のスナップショットデータのみが第２のストレージ装置のバックアップボリュームにコピーされる。
【０００６】
バックアップボリュームへのデータコピーは、第１のストレージ装置（つまりスナップショットの仮想論理ボリュームが存在するストレージ装置）及び第２のストレージ装置（つまりバックアップボリュームが存在するストレージ装置）同士（より詳細には、第１のストレージ装置及び第２のストレージ装置上の制御プログラム同士）で連携して動作することによって行われる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５-２６７５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように従来技術では、仮想論理ボリューム（仮想スナップボリューム）からバックアップボリュームへのスナップショットのコピー（バックアップ）を実現するために、仮想論理ボリューム（仮想スナップボリューム）が存在するストレージ装置及びバックアップボリュームが存在するストレージ装置（上の制御プログラム）同士で連携して動作する必要がある。具体的には、仮想論理ボリューム（仮想スナップボリューム）が存在するストレージ装置（上の制御プログラム）だけでなく、バックアップボリュームが存在するストレージ装置（上の制御プログラム）も、スナップショットの機能やデータ更新発生領域（データ更新領域）の管理機能を必要とする。
【０００９】
本発明は上記事情を考慮してなされたものでその目的は、バックアップボリュームが存在するストレージ装置に、スナップショット機能やデータ更新領域管理機能がなくても、仮想スナップボリュームからバックアップボリュームへのスナップショットのバックアップを実現できるストレージシステム、同システムにおけるデータバックアップ方法及びデータバックアッププログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の１つの観点によれば、ホスト装置と、前記ホスト装置とネットワークを介して接続される第１の汎用ホストインタフェースを備えた第１のストレージ装置であって、前記ホスト装置上で運用されているサービスにおける最新データを格納するマスターボリュームと、複数世代のスナップショットの採取時点の各々について、次のスナップショットの採取時点までの間に前記マスタボリュームに対してデータ更新が発生した領域における、対応するスナップショットの採取時点の格納データである差分データを格納するスナップデータ管理ボリュームと、前記複数世代のスナップショットにそれぞれ対応して生成される、前記データ更新が発生した領域の範囲を一定サイズの領域単位に示す複数世代の差分ビットマップテーブルを記憶するテーブル記憶手段と、前記ホスト装置によって発行された仮想スナップボリューム生成命令によって指定される第１のスナップショットの採取時点の前記マスターボリュームのデータが仮想的に格納される仮想スナップボリュームを、前記マスタボリューム及び前記スナップデータ管理ボリュームを参照することにより生成するスナップショット手段とを備えた第１のストレージ装置と、前記ホスト装置と前記ネットワークを介して接続される第２の汎用ホストインタフェースを備えた第２のストレージ装置とを具備するストレージシステムが提供される。このストレージシステムにおいて、前記第２のストレージ装置は、複数世代のスナップショットの採取時点にそれぞれ対応する仮想スナップボリュームのデータのコピーを格納するための複数のバックアップボリュームを備え、前記ホスト装置は、前記第１のスナップショットに対応する仮想スナップボリュームから前記複数のバックアップボリュームのうちの対応する世代のバックアップボリュームへ、バックアップのためにスナップショットデータをコピーする差分バックアップ手段であって、前記第１のスナップショットより前の第２のスナップショットの採取時点から前記第１のスナップショットの採取時点までの間にデータ更新が発生した領域を、前記複数世代の差分ビットマップテーブルのうちの対応する単一または複数の差分ビットマップテーブルに基づいて特定し、当該特定された領域の差分データを前記第１のスナップショットに対応する仮想スナップボリュームから前記第１の汎用インタフェースを介して取得して、前記対応する世代のバックアップボリュームに前記第２の汎用インタフェースを介してコピーする差分バックアップ手段を備えている。
【発明の効果】
【００１１】
本発明によれば、バックアップボリュームが存在する第２のストレージ装置に、スナップショット機能やデータ更新領域管理機能がなく、したがって第２のストレージ装置と仮想スナップボリュームが存在する第１のストレージ装置とが連携できなくても、ホスト装置が複数世代のスナップショット期間のデータ更新範囲を把握することによって、第１のスナップショットに対応する、第１のストレージ装置に存在する仮想スナップボリュームに格納されているデータのうち、第２のスナップショットの採取時点（例えば前回のバックアップコピー対象のスナップショット時点）から第１のスナップショットの採取時点までの間にデータ更新が発生した領域のデータ（差分データ）を、当該仮想スナップボリュームから第２のストレージ装置に存在するバックアップボリュームに短時間でバックアップすることができる。しかも、第２のストレージ装置は、スナップショット機能や、複数世代のスナップショット期間のデータ更新範囲を把握する機能（データ更新領域管理機能）を必要としない。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るストレージシステムの構成を示すブロック図。
【図２】図１に示されるディスクアレイ装置内のディスクアレイをホストからアクセス可能とさせる際に論理的に実現される論理ボリュームの一例を示す図。
【図３】同実施形態において、ホストからディスクアレイ装置に対してスナップショット命令が発行された後に、マスターボリュームに対するデータ更新が発生したときの、ディスクアレイ装置の動作を説明するための図。
【図４】同実施形態における差分ビットマップテーブルの更新方法を説明するための図。
【図５】同実施形態におけるスナップデータ管理テーブルの一例を示す図。
【図６】図３に示されるスナップデータ管理ボリュームに複数世代の退避データを格納した状態の一例を示す図。
【図７】同実施形態において、３つのスナップショットが既に採取されている状態での、当該３つのスナップショットのためのスナップデータ管理テーブルの例を示す図。
【図８】同実施形態におけるスナップデータ再現テーブルの一例を示す図。
【図９】同実施形態において、ホストからデータ読み出しが要求された場合のディスクアレイ制御装置の処理手順を示すフローチャート。
【図１０】図１のストレージシステムが有する差分バックアップ機能の概略を説明するためのブロック図。
【図１１】同実施形態における、差分バックアップ管理テーブルの初期状態の内容例を示す図。
【図１２】同実施形態において、ユーザからバックアップ実行の要求があった場合の差分バックアップ管理テーブルの内容例を示す図。
【図１３】同実施形態において、３つのバックアップボリュームに対してそれぞれ１回目の仮想スナップボリュームのコピーが完了した時点の差分バックアップ管理テーブルの初期状態の内容例を示す図。
【図１４】図１３に示す状態からバックアップボリュームに対してスナップショットのデータをコピーする際の、差分バックアップ管理テーブルの内容例を示す図。
【図１５】同実施形態において、ホストにより実行される差分バックアップコピーの手順を示すフローチャートの第１の部分を示す図。
【図１６】同実施形態において、ホストにより実行される差分バックアップコピーの手順を示すフローチャートの第２の部分を示す図。
【図１７】同実施形態におけるコピー領域管理用差分ビットマップテーブルの作成方法を説明するための図。
【図１８】同実施形態の第１の変形例における差分バックアップコピーの手順を示すフローチャートの第１の部分を示す図。
【図１９】同実施形態の第１の変形例における差分バックアップコピーの手順を示すフローチャートの第２の部分を示す図。
【図２０】同第１の変形例における仮想スナップボリューム管理情報の例を示す図。
【図２１】同第１の変形例において、ディスクアレイ装置のディスクアレイ制御装置にホストによってアクセスモードとして差分モードが設定された状態で、ホストからディスクアレイ装置にデータ読み出し要求が発行された場合の、ホストへの応答を含むディスクアレイ制御装置の処理手順を示すフローチャート。
【図２２】上記実施形態の第２の変形例において、ホストにより実行される差分バックアップコピーの手順のフローチャートの第１の部分を示す図。
【図２３】同第２の変形例において、ホストにより実行される差分バックアップコピーの手順のフローチャートの第２の部分を示す図。
【図２４】同第２の変形例において、ホストにより実行される差分バックアップコピーの手順のフローチャートの第３の部分を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るストレージシステムの構成を示すブロック図である。図１に示すストレージシステムは、ストレージ装置としてのディスクアレイ装置１０-1及び１０-2と、ホスト（ホスト装置）１０とから構成される。
【００１４】
ディスクアレイ装置１０-1は、複数の物理ディスク（ディスクドライブ）、例えば４つの物理ディスク１２０-0〜１２０-3と、ディスクアレイ制御装置２０-1とを備えている。物理ディスク１２０-0〜１２０-3の群は、ディスクアレイ制御装置２０-1によってＲＡＩＤ（Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks）技術によりディスクアレイ１２-1として管理される。
【００１５】
ディスクアレイ制御装置２０-1は、ホストインタフェース（ホストＩ／Ｆ）２０１を備えている。ディスクアレイ制御装置２０-1はホストインタフェース２０１により、ネットワーク１１を介してホスト１０と接続されている。ホスト１０は、ディスクアレイ装置１０-1を外部記憶装置として利用する。ネットワーク１１の種類は、例えば、ＳＡＮ（Storage Area Network）、或いはＥｔｈｅｒｎｅｔ（登録商標）から構成されるインターネット／イントラネットである。ホストインタフェース２０１のインタフェース種別は、例えば、ＦＣ（Fibre Channel）、或いはｉＳＣＳＩ（internet SCSI）などである。つまりホストインタフェース２０１は汎用インタフェースである。
【００１６】
また、ディスクアレイ制御装置２０-1は、ディスクインタフェース（ディスクＩ／Ｆ）２０２を備えている。ディスクアレイ制御装置２０-1はディスクインタフェース２０２により、ディスクインタフェースバス１３を介して物理ディスク１２０-0〜１２０-3と接続されている。ディスクインタフェースバス１３のインタフェース種別は、例えば、ＳＣＳＩ、ＦＣ、ＳＡＳ（Serial Attached SCSI）、或いはＳＡＴＡ（Serial AT Attachment）などである。つまりディスクインタフェースバス１３は汎用インタフェースバスである。
【００１７】
ディスクアレイ１２-1は、物理ディスク１２０-0〜１２０-3の群を使用し、ＲＡＩＤ技術を使用して論理的に生成された１つのディスクとして、ディスクアレイ制御プログラムによって扱われる。
【００１８】
ディスク制御装置２０-1は、上述のホストインタフェース２０１及びディスクインタフェース２０２に加えて、キャッシュメモリ２０３と、キャッシュコントローラ２０４と、ＦＲＯＭ（フラッシュＲＯＭ）２０５と、ローカルメモリ２０６と、ＣＰＵ２０７と、チップセット２０８と、内部バス２０９とを備えている。
【００１９】
ホストインタフェース２０１は、ホスト１０とディスク制御装置２０-1との間のデータ転送（データ転送プロトコル）を制御する。ホストインタフェース２０１は、ディスクアレイ１２-1に対するデータ書き込み要求をホスト１０から受信した場合、当該要求を、内部バス２０９、チップセット２０８を経由して、ＣＰＵ２０７上で動作するディスクアレイ制御プログラムに伝達し、ディスクアレイ制御プログラムによって生成された応答情報をホスト１０に返答する。またホストインタフェース２０１は、ディスクアレイ１２-1からデータ読み出し要求をホスト１０から受信した場合、当該要求を、内部バス２０９、チップセット２０８を経由して、ＣＰＵ２０７に伝達し、ＣＰＵ２０７からの応答情報をホスト１０に返答する。
【００２０】
ディスクインタフェース２０２は、内部バス２０９及びチップセット２０８を経由して伝達されるホスト１０からの要求に従ってＣＰＵ２０７上で動作するディスクアレイ制御プログラムによってディスクアレイ１２-1へのデータ読み出し／書き込みの要求が生成された場合、当該要求に従い、ディスクアレイ１２-1内の物理ディスク１２０-0〜１２０-3の各々へのデータ読み出し／書き込みのためのデータ転送を制御する。
【００２１】
キャッシュメモリ２０３は、ホスト１０からのディスクアレイ１２-1への書き込み／読み出し（入出力）要求で指定されるデータの書き込み／読み出し処理を実施した後の、ホスト１０への完了応答レスポンスの高速化のためのバッファとして用いられる。例えば、書き込み要求に対しては、当該要求で指定されたデータがキャッシュメモリ２０３に書き込まれ、その段階で要求元（ホスト１０）に書き込み処理完了が通知される。その後、キャッシュメモリ２０３に書き込まれたデータがディスクアレイ１２-1に書き込まれる（ライトバックされる）。一方、読み出し要求に対しては、当該要求で指定されたデータがキャッシュメモリ２０３に格納されている場合は、そのデータがホスト１０に転送される。指定されたデータがキャッシュメモリ２０３に格納されていない場合は、当該指定されたデータがディスクアレイ１２から読み出され、この読み出されたデータがホスト１０に転送される。  
キャッシュコントローラ２０４は、ＣＰＵ２０７上で動作するディスクアレイ制御プログラムからの命令に従いキャッシュメモリ２０３を制御する。
【００２２】
ＦＲＯＭ２０５は、ＣＰＵ２０７により実行されるディスクアレイ制御プログラムを格納するための書き換えが可能な不揮発性メモリである。このＦＲＯＭ２０５に格納されているディスクアレイ制御プログラムは、ディスクアレイ制御装置２０-1が起動されたときの最初の処理でローカルメモリ２０６にコピーされる。なお、ＦＲＯＭ２０５に代えて読み出し専用の不揮発性メモリ、例えばＲＯＭを用いることも可能である。
【００２３】
ローカルメモリ２０６は、ＦＲＯＭ２０５からコピーされたディスクアレイ制御プログラムを記憶するのに用いられる。また、ローカルメモリ２０６の一部の領域は、ＣＰＵ２０７が動作する上で必要なワーク領域として用いられる。
【００２４】
ＣＰＵ２０７は、チップセット２０８を介してローカルメモリ２０６にアクセスすることにより、当該ローカルメモリ２０６に格納（コピー）されているディスクアレイ制御プログラムのプログラムコードに従い、ディスクアレイ制御装置２０-1内の各部を制御する。
【００２５】
チップセット２０８は、ＣＰＵ２０７及びその周辺回路を内部バス２０９に結合するブリッジ回路である。  
内部バス２０９は汎用バスであり、例えばＰＣＩｅｘｐｒｅｓｓバスである。ホストインタフェース２０１、ディスクインタフェース２０２、キャッシュコントローラ２０４及びチップセット２０９は、内部バス２１０により相互接続されている。また、ＦＲＯＭ２０５、ローカルメモリ２０６及びＣＰＵ２０７は、チップセット２０８を介して内部バス２０９に接続されている。
【００２６】
ディスクアレイ装置１０-2は、ディスクアレイ装置１０-1と同様に、ホストインタフェース２１１によりネットワーク１１を介してホスト１０と接続されている。ディスクアレイ装置１０-2は、詳細なハードウェア仕様を除き、基本的な構造がディスクアレイ装置１０-1と同一の構成を備えている。つまりディスクアレイ装置１０-2は、ディスクアレイ装置１０-1内のディスクアレイ制御装置２０-1及びディスクアレイ１２-1にそれぞれ相当する、ディスクアレイ制御装置２０-2及びディスクアレイ１２-2を備えている。ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1とディスクアレイ装置１０-2のディスクアレイ制御装置２０-2とは、ネットワーク１１を介して、通信を行うことが可能である。
【００２７】
図２は、ディスクアレイ装置１０-1内のディスクアレイ１２-1、及び、ディスクアレイ装置１０-2内のディスクアレイ１２-2を、ホスト１０からアクセス可能とさせる際に、ディスクアレイ制御プログラム（より詳細にはディスクアレイ制御装置２０-1によるディスクアレイ制御プログラムの実行）によって論理的に実現される論理ボリュームの一例を示した図である。
【００２８】
図２の例において、論理ボリューム１３-1，１３-2及び１３-3は、ディスクアレイ制御プログラムによって、ディスクアレイ１２-1の一部の領域（記憶領域）を切り出すことにより生成されるボリュームである。図２の例では、ディスクアレイはディスクアレイ１２-1のみが存在するが、ホスト１０からはボリュームが３つ認識されることとなる。なお、論理ボリュームの実現方法については、ディスクアレイの領域を細かいブロック領域に分割して管理し、ホスト１０から要求されるデータ書き込み量に応じて不規則に切り出して実現する方法や、切り出しの対象となるディスクアレイを複数個としたグループをプールと名づけ定義して、そのグループ内から切り出して実現する方法が知られている。
【００２９】
本実施形態では、上述の論理ボリュームを使用して、特定ボリュームの複数世代のバックアップデータを仮想的に取得することができるスナップショット機能を適用する。  
スナップショット機能の実現例としては以下の方式が知られている。ホスト１０上でサービスを運用するために必要な最新データを格納する１つの論理ボリュームをマスターボリュームとして、もう１つの論理ボリュームをマスタボリュームの過去の更新データの履歴を格納するためのスナップデータ管理ボリュームとして、それぞれディスクアレイ装置１０-1のディスクアレイ制御装置２０-1（より詳細には、ディスクアレイ制御装置２０-1によって実行されるディスクアレイ制御プログラム）上に定義する。次にマスターボリュームにおける、データのバックアップを取得したいサービス運用上のデータ確定時に、ホスト１０からディスクアレイ装置１０-1のディスクアレイ制御装置２０-1（によって実行されるディスクアレイ制御プログラム）に対してスナップショット命令（過去データ確定命令）を発行する。すると、それ以降ディスクアレイ制御装置２０-1はスナップショット手段として機能し、ホスト１０からマスタボリュームに対してデータ更新の要求があった場合、当該マスターボリューム内の更新データが格納されるべき領域（つまりデータ更新が発生した領域）に既に格納されていた更新前のデータをスナップデータ管理ボリュームにまず退避してから、マスタボリュームのデータ更新を行う。この方式は、Copy on Write（ＣｏＷ）方式と呼ばれる。
【００３０】
このディスクアレイ制御装置２０-1（スナップショット手段）の制御により、マスターボリュームには、ホスト１０上で運用されているサービスにおける最新データが格納され、スナップデータ管理ボリュームには、スナップショット命令を受信した以降にマスタボリュームに対してデータ更新が発生した領域における、スナップショット命令を受信した時点の格納データ（過去データ）が格納される。
【００３１】
ユーザがホスト１０の入出力装置を操作することで、マスターボリュームとは別の仮想的に実現するスナップショットボリューム（以下、仮想スナップボリュームと称する）の生成が例えば当該ホスト１０上で動作するアプリケーションプログラムから要求された場合、ホスト１０からディスクアレイ装置１０-1のディスクアレイ制御装置２０-1に対し、仮想スナップボリュームの生成を指示する生成命令（仮想スナップボリューム生成命令）が発行される。以下の説明では、上述のようなユーザの操作に基づく（例えばアプリケーションプログラムからの）要求を、説明の簡略化のためにユーザからの要求と称する。
【００３２】
仮想スナップボリュームは、ホスト１０がディスクアレイ装置１０-1のディスクアレイ制御装置２０-1に対してスナップショット命令を発行した時点のマスターボリュームのデータを仮想的に格納するものである。
【００３３】
ホスト１０からディスクアレイ装置１０-1のディスクアレイ制御装置２０-1に対して仮想スナップボリューム生成命令が発行された場合にも、当該ディスクアレイ制御装置２０-1はスナップショット手段として機能する。これによりディスクアレイ制御装置２０-1は、スナップショット命令が発行された以降、マスターボリュームにおいてデータ更新が発生していない領域については当該マスタボリュームから、データ更新が発生した領域についてはスナップデータ管理ボリュームから、それぞれデータを参照するための差分ビットマップテーブルを生成する。以後、ホスト１０からディスクアレイ制御装置２０-1（より詳細には、ディスクアレイ制御装置２０-1によって実行されるディスクアレイ制御プログラム）に対し仮想スナップボリュームからのデータ読み出し要求があった場合には、差分ビットマップテーブルに従い、マスターボリュームとスナップデータ管理ボリュームからデータの読み出しを行って、ホスト１０に対して読み出し対象データを返信する動作が行われる。
【００３４】
図３に、ホスト１０からディスクアレイ装置１０-1のディスクアレイ制御装置２０-1に対してスナップショット命令が発行された後に、マスターボリューム３１に対するデータ更新が発生したときの、当該ディスクアレイ制御装置２０-1（スナップショット手段）の動作について示す。
【００３５】
ディスクアレイ制御装置２０-1は、スナップショット命令実行後の最初のデータ更新要求１を受信した場合、その要求に対応するマスターボリューム３１上のデータ領域のデータ（更新前データ）をスナップデータ管理ボリューム３２に退避してから（ステップ３０１）、マスターボリュームにデータ更新要求１のデータを書き込む（ステップ３０２）。マスターボリューム３１からスナップデータ管理ボリューム３２に退避されるデータを退避データと称し、当該退避データが格納されたスナップデータ管理ボリューム３２内の領域を退避データ格納領域と称する。
【００３６】
その後、データ更新要求１とは異なる領域に対するデータ更新要求２が発生した場合も、ディスクアレイ制御装置２０-1は、データ更新要求１と同様の処理を行う（ステップ３０３，３０４）。ここで、スナップデータ管理ボリューム３２への新たな退避データの格納には、当該スナップデータ管理ボリューム３２内で最も最近に退避データが退避された退避データ格納領域に後続する領域が用いられる。
【００３７】
その後、データ更新要求１が発生した領域に対するデータ更新要求３が発生したものとする。この場合、スナップショット命令実行時のデータは、スナップデータ管理ボリューム３２に既に退避済みであるため、直接マスターボリューム３１に更新データが書き込まれる（ステップ３０５）。
【００３８】
スナップショット命令実行後に、スナップデータ管理ボリューム３２にデータ退避が行われたマスターボリューム３１内の領域の管理には、差分ビットマップテーブル４０（図４参照）が使用される。差分ビットマップテーブル４０は、図４を参照して後述するように、マスターボリューム３１の領域全体を一定サイズのブロック単位に分割して、１ブロック単位でデータ退避未（データ退避未実施）（０）、データ退避済み（１）を管理するためのビットの集合である。
【００３９】
図４に差分ビットマップテーブル４０の更新方法を示す。  
マスターボリューム３１にデータ更新が発生した場合、差分ビットマップテーブル４０上のそのデータ更新が発生した領域の範囲に該当するビットに１がセットされる。マスターボリューム３１の総容量が例えば１００００ＭＢ（１０ＧＢ）であり、差分ビットマップテーブル４０の分解能（総ビット数）が例えば１０００分割（１０００）であるとする。この場合、差分ビットマップテーブル４０の各１ビットが示す、マスターボリューム３１内の分割領域（ブロック）のサイズは１０ＭＢとなる。マスターボリューム３１内のｎ番目の分割領域（またはブロック）をｎ×１０ＭＢ領域（ブロックｎ）と称する。このため、例えば、マスターボリューム３１内の１３番目の分割領域（またはブロック）は１３０ＭＢ領域（またはブロック１３）であり、差分ビットマップテーブル４０内の１３銀目のビット、つまりビット１３に対応する。
【００４０】
ここで、図４に示されるマスターボリューム３１内でデータ更新が発生した領域（データ更新領域）４０１の範囲が１３０ＭＢ領域の先頭から５ＭＢサイズであるものとする。この場合、ディスクアレイ制御装置２０-1は、マスターボリューム３１内のデータ更新領域４０１のデータ（更新前データ）をスナップデータ管理ボリューム３２（図３参照）に退避した上で、差分ビットマップテーブル４０のビット１３に１（データ退避済み）をセットする。より詳細には、マスターボリューム３１からスナップデータ管理ボリューム３２に退避されるデータの当該マスターボリューム３１内の領域（データ退避領域）は、データ更新領域４０１ではなくて、ビット１３に対応する１３０ＭＢ領域の先頭から１０ＭＢ分の領域、つまりデータ更新領域４０１を含む１３０ＭＢ領域となる。但し、図４では便宜的に、データ更新領域４０１をデータ退避領域として示してある。
【００４１】
マスターボリューム３１にデータ更新（データ更新要求）が発生した場合の動作について更に詳細に説明する。この場合、まずディスクアレイ制御装置２０-1（スナップショット手段）は差分ビットマップテーブル４０を参照して、上述のデータ更新領域に相当するデータ更新されるべき領域（データ更新対象領域）に対応するビットに１がセットされているかをチェックする。もし、データ更新対象領域に対応する全てのビットに１がセットされていた場合、ディスクアレイ制御装置２０-1は、更新データを、マスターボリューム３１に直接書き込むことが可能と判断する。これに対し、一部のビットが０となっていた場合、ディスクアレイ制御装置２０-1は、その０となっているビットに対応するマスターボリューム３１内の領域（ブロック）のデータをスナップデータ管理ボリューム３２に退避してから、スナップデータ管理ボリューム３２に更新データを書き込む。
【００４２】
差分ビットマップテーブル上の１（データ退避済み）がセットされたビットに対応するマスターボリューム３１内の領域のうち、スナップショット命令が実行された時点のデータが格納されている領域の管理には、スナップデータ管理テーブルが使用される。
【００４３】
図５にスナップデータ管理テーブル５０の一例を示す。  
図５に示すスナップデータ管理テーブル５０は、スナップショット番号及びスナップ日付の各フィールドを有している。スナップショット番号とは、スナップショットを複数採取可能とする場合のスナップショット採取順番号であり、数値が小さいほど古いマスターボリュームのスナップショットの管理情報であることを示している。スナップ日付は、そのスナップデータ管理テーブル５０が管理対象とするスナップショットが採取（取得）された日付を示している。
【００４４】
図５に示すスナップデータ管理テーブル５０は、退避番号、マスタービット番号及びスナップビット番号の各フィールドから構成されるエントリの群を有している。退避番号は、マスターボリューム３１からデータを退避した順番号を示している。マスタービット番号は、退避番号ｎに対応するマスターボリューム３１上のデータ退避領域（データ退避元）を、差分ビットマップテーブル上のビット番号で示している。スナップビット番号は、退避番号ｎに対応するマスターボリューム３１のデータのデータ退避を実施した場合において、当該スナップビット番号が設定されている差分ビットマップテーブル内のエントリにおけるマスタービット番号（つまり当該スナップビット番号と組をなすマスタービット番号）の示す領域のデータのスナップデータ管理ボリューム３２内の退避先となる退避データ格納領域（データ退避先）を、差分ビットマップテーブル上のビット番号で示している。
【００４５】
なお、スナップデータ管理ボリューム３２の退避データ格納領域は、マスターボリューム３１と同様に、差分ビットマップテーブルの分解能と同じ分割単位で管理される。但し本実施形態では、スナップデータ管理ボリューム３２用の差分ビットマップテーブルが存在するわけではなく、当該スナップデータ管理ボリューム３２用の差分ビットマップテーブルに代えて、スナップデータ管理テーブル５０が用いられる。その理由は、マスターボリューム３１のデータ退避領域と、当該データ退避領域のデータが退避されるスナップデータ管理ボリューム３２の退避データ格納領域との対応関係が管理しやすいようにするためである。
【００４６】
ここで、スナップショットを複数採取可能とし、複数世代のマスターボリュームのスナップショット（過去データ）を復元する場合を想定する。このような場合、単一のスナップショットに対応するスナップデータ管理テーブルに登録されるマスターボリュームのデータ（マスターデータ）の退避位置に関する情報は、当該スナップショットを採取してから、次のスナップショットを採取するまでの間のデータ退避分に限定される。単一のスナップショットの採取時のデータを管理するための情報は、スナップデータ管理テーブル１つと、当該スナップショットを採取してから、次のスナップショットを採取するまでの間のデータ退避分のデータ更新領域（退避データ領域）が登録された差分ビットマップテーブルである。
【００４７】
図３に示されるスナップデータ管理ボリューム３２に複数世代の退避データを格納した状態を、図６に示す。  
ディスクアレイ装置１０-1はディスクアレイ制御プログラムに従い、差分ビットマップテーブルとスナップデータ管理テーブルの２つのテーブルをペアで管理し、ローカルメモリ２０６、ＦＲＯＭ２０５、または物理ディスク１２０-0〜１２０-3の一部の専用領域を確保して保存する。
【００４８】
本実施形態において、スナップデータ管理ボリューム３２に複数世代のスナップショットを採取している状態で、ある世代のスナップショット時のマスターボリュームを仮想的に再現する場合、つまり仮想スナップボリュームを再現する場合、次のようなスナップデータ再現テーブルが用いられる。スナップデータ再現テーブルは、対象となるスナップショット及びそれ以前に採取されたスナップショットの各々に対応する、スナップデータ管理テーブルと差分ビットマップテーブルとに基づいて生成される、スナップデータ管理テーブルと同様の構造のマスターボリューム再現用のテーブルである。
【００４９】
図７に、スナップショット番号１，２，３のスナップショットが既に採取されている状態での、当該スナップショット番号１，２，３のスナップショットのためのスナップデータ管理テーブル５０-1，５０-2，５０-3の例を示す。  
図７において、スナップデータ管理テーブル５０-1のスナップショット番号１は最初に採取されたスナップショットのスナップショット番号を示し、スナップデータ管理テーブル５０-3のスナップショット番号３は最新のスナップショットのスナップショット番号を示す。マスターボリューム３１（図３参照）には現在の最新のデータが格納されており、この状態で、スナップショット番号１のボリュームを再現する場合のスナップデータ再現テーブルを生成するとする。
【００５０】
スナップショット番号１のスナップデータ管理テーブル５０-1には、スナップショット番号１のスナップショットを採取した時点から退避したデータの領域に関する情報が登録されている。そのため、この登録情報がそのままスナップデータ再現テーブルに登録される。
【００５１】
スナップショット番号２のスナップデータ管理テーブル５０-2には、スナップショット番号２のスナップショットを採取した時点から退避したデータの領域に関する情報が登録されている。この領域は、スナップショット番号１のスナップショットを採取した時点から退避したデータの領域と等価である。そのため、この登録情報もそのままスナップデータ再現テーブルに登録される。
【００５２】
スナップショット番号３のスナップデータ管理テーブル５０-3には、スナップショット番号３のスナップショットを採取した時点から退避したデータの領域に関する情報が登録されている。この領域は、スナップショット番号１のスナップショットを採取した時点から退避したデータの領域と等価である。そのため、この登録情報もスナップデータ再現テーブルに登録される。但し、退避番号０及び１のエントリにそれぞれ登録されているビット１３及び８１２に対応する領域（ブロック）は、既にスナップショット番号１のスナップデータ管理テーブル５０-1に登録されていた領域である。このため、スナップショット番号３のスナップショットを採取後にデータ退避が行われたビット１３及び８１２にそれぞれ対応するマスターボリューム３１内の領域のデータを格納した、ビット７及び８に対応するスナップデータ管理ボリューム３２内の領域には、スナップショット番号１のスナップショットを再生するためのデータは存在しない。そこで、ビット１３及び８１２に対応する領域に関する情報はスナップデータ再現テーブルへの登録の対象から除外される。  
図８に、上記処理により生成されたスナップデータ再現テーブル８０の一例を示す。
【００５３】
ディスクアレイ制御装置２０-1は、図８に示すスナップデータ再現テーブル８０と、スナップショット番号１，２，３の各スナップショットの差分ビットマップテーブルとを使用して、例えば、スナップショット番号１のスナップショットの採取（確定）時点のボリュームを再現する。ホスト１０からデータ読み出しが要求された場合、ディスクアレイ制御装置２０-1は、ディスクアレイ制御プログラムに従う以下の制御により、マスターボリュームとスナップデータ管理ボリュームのいずれかからデータを読み出して、ホスト１０に伝達する。
【００５４】
以下、ホスト１０からデータ読み出しが要求された場合のディスクアレイ装置１０-1内のディスクアレイ制御装置２０-1の処理手順について、図９のフローチャートを参照して説明する。  
まず、ディスクアレイ制御装置２０-1が、ホスト１０から再現スナップショット（本実施形態では仮想スナップボリューム）を対象とするデータの読み出し要求（データ読み出し要求）を受信したものとする（ステップ９０１）。
【００５５】
するとディスクアレイ制御装置２０-1は、スナップショット番号１の差分ビットマップテーブル（より詳細には、スナップショット番号１のスナップショットの差分ビットマップテーブル）内の、上記データ読み出し要求で指定された領域（読み出し指定領域）に対応するビットを参照する（ステップ９０２）。そしてディスクアレイ制御装置２０-1は、参照したビットに１がセットされているかを判定する（ステップ９０３）。
【００５６】
もし、参照したビットに１がセットされていないならば（ステップ９０３のＮｏ）、ディスクアレイ制御装置２０-1は、スナップショット番号２の差分ビットマップテーブル内の、読み出し指定領域に対応するビットを参照する（ステップ９０４）。そしてディスクアレイ制御装置２０-1は、ステップ９０４で参照したビットに１がセットされているかを判定する（ステップ９０５）。
【００５７】
もし、ステップ９０４で参照したビットに１がセットされていないならば（ステップ９０５のＮｏ）、ディスクアレイ制御装置２０-1は、スナップショット番号３の差分ビットマップテーブル内の、読み出し指定領域に対応するビットを参照する（ステップ９０６）。そしてディスクアレイ制御装置２０-1は、ステップ９０６で参照したビットに１がセットされているかを判定する（ステップ９０７）。
【００５８】
もし、ステップ９０２，９０４または９０６で参照したビットに１がセットされているならば（ステップ９０３，９０５または９０７のＹｅｓ）、ディスクアレイ制御装置２０-1はステップ９０８に進む。このステップ９０８においてディスクアレイ制御装置２０-1は、スナップデータ再現テーブル８０（図８参照）を参照することにより、読み出し指定領域に対応するマスターボリューム３１内の領域（データ退避元）からデータが退避されたスナップデータ管理ボリューム３２内の領域（データ退避先）に対応する、差分ビットマップテーブル上のビットの位置（スナップビット番号）を検出する。
【００５９】
次にディスクアレイ制御装置２０-1は、検出された位置のビットに対応する、スナップデータ管理ボリューム３２の領域から、その領域に格納（退避）されているデータを読み出す（ステップ９０９）。
【００６０】
一方、ステップ９０６で参照したビットに１がセットされていないならば（ステップ９０７のＮｏ）、つまりステップ９０２，９０４及び９０６でそれぞれ参照したビットにいずれも１がセットされていないならば（ステップ９０３，９０５及び９０７のＮｏ）、ディスクアレイ制御装置２０-1はステップ９１０に進む。このステップ９１０においてディスクアレイ制御装置２０-1は、マスターボリューム３１内の読み出し指定領域からデータを読み出す。
【００６１】
ディスクアレイ制御装置２０-1は、ステップ９０９または９１０のいずれかを実行すると、ホスト１０に読み出しデータを返信する（ステップ９１１）  
以上、ディスクアレイ制御装置２０-1が有するスナップショット手段の機能（つまりスナップショット機能）について説明した。
【００６２】
次に、本実施形態で適用されるスナップショットデータのバックアップに関する機能（バックアップ機能）について説明する。  
上述したスナップショット機能によって実現される仮想スナップボリュームは、仮想的に実現されたものである。このため、例えば、万が一、ディスクアレイ制御プログラムの誤動作によりスナップショットの管理情報を消失してしまうと、マスターボリュームのバックアップを一瞬にして全て消失してしまう。そこで、このようなデータ消失を回避するため、ホスト１０及びディスクアレイ装置１０-1の各々とネットワーク１１を介して通信可能なディスクアレイ装置１０-2に、仮想的ではなく論理的に生成されたバックアップボリュームが用意される。そして、このディスクアレイ装置１０-2内のバックアップボリュームに、仮想スナップボリュームのデータがコピーされる。多重バックアップ用途では、このバックアップボリュームのデータが、磁気テープなどのリムーバブルメディアに更にバックアップされる。
【００６３】
ここで、ディスクアレイ装置１０-1及び１０-2の各々のディスクアレイ制御プログラムが同一であり、且つディスクアレイ装置間でバックアップを作成することができる装置間レプリケーション機能を有しているものとする。この場合、ディスクアレイ装置１０-1内の仮想スナップボリュームのデータをディスクアレイ装置１０-2内のバックアップボリュームにコピーするのに、前回のバックアップ時から次のバックアップ時までの間のデータ更新分を差分として、その差分のみをバックアップデータとしてコピーすることができる。これにより、一旦全面コピーを行った後の、バックアップのためのコピー時間を短縮することが可能となる。
【００６４】
しかし、ディスクアレイ装置１０-1及び１０-2の各々のディスクアレイ制御プログラムが、例えば製造ベンダーが違うことにより全く異なる場合には、たとえ各々が装置間レプリケーション機能を有していても制御方法も異なるため、装置間レプリケーション機能を使用することができない可能性がある。このような場合、ディスクアレイ装置１０-1内の仮想スナップボリュームのバックアップデータ（バックアップコピー）を、ディスクアレイ装置１０-2内のバックアップボリュームに作成するためには、例えば、ホスト１０を使用した毎回の全面コピーを実行しなければならない。
【００６５】
そこで本実施形態では、ディスクアレイ装置１０-1及び１０-2が上述のような理由によりディスクアレイ装置の装置間レプリケーション機能が使えなくても、前回のバックアップ時から次のバックアップ時までの間のデータ更新分を差分として、その差分のみをバックアップコピーすることを、以下に述べる特別のバックアップ機能（差分バックアップ機能）により可能としている。
【００６６】
図１０は、図１のストレージシステムが有する差分バックアップ機能の概略を説明するためのブロック図である。  
図１０に示すディスクアレイ装置１０-1には、図３に示したようなマスターボリューム３１及びスナップデータ管理ボリューム３２が存在する。マスターボリューム３１及びスナップデータ管理ボリューム３２は、ディスクアレイ１２-1の一部の領域を切り出すことにより生成される。ディスクアレイ装置１０-1にはまた、マスターボリューム３１及びスナップデータ管理ボリューム３２を使用する前述したようなスナップショット機能が設定されている。
【００６７】
ディスクアレイ装置１０-1には更に、スナップショット機能によって実現される、あるスナップショットの採取時点のマスターボリューム３１のイメージを仮想的に再現する仮想スナップボリューム１００が存在する。仮想スナップボリューム１００は、前述したように、差分ビットマップテーブルを使用して（より詳細には、差分ビットマップテーブルとスナップデータ再現テーブルとを使用して）、マスターボリューム３１及びスナップデータ管理ボリューム３２から再現される。
【００６８】
一方、ディスクアレイ装置１０-2には、複数世代のスナップショットの採取時点にそれぞれ対応するディスクアレイ装置１０-1上の仮想スナップボリュームのデータのコピー（バックアップコピー）を格納するための複数のバックアップボリューム、例えば３つのバックアップボリューム１１０-1，１１０-2及び１１０-3が用意されている。バックアップボリューム１１０-1，１１０-2及び１１０-3は、ディスクアレイ装置１０-2のディスクアレイ１２-2の一部の領域を切り出すことにより生成される。
【００６９】
ホスト１０は、バックアップソフトウェア（データバックアッププログラム）１０１を格納した記憶装置１０２を備えている。バックアップソフトウェア１０１は、ホスト１０によって実行されることにより、ディスクアレイ装置１０-1に対して、スナップショット生成（登録）命令と、仮想スナップボリューム生成命令とを発行する機能を実現するのに用いられる。バックアップソフトウェア１０１は、同様に、仮想スナップボリューム１００からデータを読み出す機能と、読み出されたデータをディスクアレイ装置１０-2上のバックアップボリューム１１０-1〜１１０-3の中から選択されたバックアップボリュームにコピーする機能とを実現するのにも用いられる。
【００７０】
バックアップソフトウェア１０１は、データのコピーする領域を仮想スナップボリューム１００の全面ではなく前回のバックアップからの更新領域のみとするための、後述する差分バックアップ管理テーブル１１１（図１１参照）を保持する。
【００７１】
図１１に、差分バックアップ管理テーブル１１１の初期状態の内容例を示す。  
図１１に示す差分バックアップ管理テーブル１１１は、バックアップ装置ＩＤ、バックアップボリュームＬＵ番号、コピー済みスナップショット番号、コピー中スナップショット番号及び仮想スナップボリューム使用有無（を示すフラグ）の各フィールドを有している。
【００７２】
バックアップ装置ＩＤは、バックアップボリュームが用意されているディスクアレイ装置のＩＤ（図４の例では１２-1）を示す。  
バックアップボリュームＬＵ番号は、仮想スナップボリューム１００のバックアップを格納するための、ディスクアレイ装置１０-2内に用意された論理ボリューム（つまりバックアップボリューム）に割り当てられたＬＵ（ＡＮＳＩ−ＳＣＳＩ規格における論理ユニット）番号である。本実施形態では、図１０に示されるバックアップボリューム１１０-1１１０-2及び１１０-3のバックアップボリュームＬＵ番号は、それぞれ１，２及び３である。
【００７３】
コピー済みスナップショット番号は、仮想スナップボリューム１００から対応するバックアップボリューム（つまり、当該コピー済みスナップショット番号と組をなすバックアップボリュームＬＵ番号の示すバックアップボリューム）へのデータのコピーが完了したスナップショットの番号を示す。コピー済みスナップショット番号の初期値は「なし」となっている。
【００７４】
コピー中スナップショット番号は、仮想スナップボリューム１００から対応するバックアップボリューム（つまり、当該コピー中スナップショット番号と組をなすバックアップボリュームＬＵ番号の示すバックアップボリューム）にデータをコピー中である場合の、当該仮想スナップボリューム上のコピー対象となるスナップショットを示す。コピー中スナップショット番号の初期値は「なし」となっている。
【００７５】
仮想スナップボリューム使用有無は、現在、仮想スナップボリューム１００から対応するバックアップボリューム（つまり、当該仮想スナップボリューム使用有無と組をなすバックアップボリュームＬＵ番号の示すバックアップボリューム）にデータのコピーを行っている場合に、「あり」に設定される。仮想スナップボリューム使用有無の初期値は「なし」となっている。
【００７６】
バックアップソフトウェア１０１に対して、ユーザからバックアップ実行の要求があった場合の差分バックアップ管理テーブル１１１の内容例を図１２に示す。  
図１２に示す差分バックアップ管理テーブル１１１の状態は、現在、スナップショット番号１のスナップショットが採取（登録）されたときのマスターデータが、仮想スナップボリューム１００に再現されている状態であることを前提に、バックアップボリュームＬＵ番号１のバックアップボリューム１１０-1に対してバックアップコピー（差分バックアップコピー）が行われていることを示している。この状態では、仮想スナップボリューム１００はスナップショット番号１のスナップショットに対応する。
【００７７】
３つのバックアップボリューム１１０-1，１１０-2及び１１０-3に対してそれぞれ１回目の仮想スナップボリューム１００のコピーが完了した時点の差分バックアップ管理テーブル１１１の内容例を図１３に示す。前述のように、仮想スナップボリューム１００は、あるスナップショット時の（つまり、ある世代の）マスターボリューム３１を仮想的に再現したものである。図１３の例では、バックアップボリューム１１０-1，１１０-2及び１１０-3へのコピーに用いられる仮想スナップボリューム１００は、それぞれスナップショット番号１，２及び３のスナップショット時のマスターボリュームのデータを仮想的に格納した仮想スナップボリュームである。つまりバックアップボリューム１１０-1，１１０-2及び１１０-3へのコピーに用いられる仮想スナップボリューム１００は、それぞれスナップショット番号１，２及び３のスナップショットに対応する。
【００７８】
バックアップボリューム１１０-1，１１０-2及び１１０-3の各々に１回目の仮想スナップボリューム１００のコピーを開始する時点では、当該バックアップボリューム１１０-1，１１０-2及び１１０-3にデータが無い状態である。このため、１回目のコピーの開始時に、全面コピー（つまりマスターボリューム３１からバックアップボリューム１１０-1，１１０-2及び１１０-3への全面コピー）が実行される。
【００７９】
図１３に示す状態から、バックアップボリュームＬＵ番号１のバックアップボリューム１１０-1に対して、スナップショット番号４のスナップショットのデータをコピーする際の、差分バックアップ管理テーブル１１１の内容例を図１４に示す。
【００８０】
本実施形態において、スナップショット番号４のスナップショット時のマスターボリューム３１に対応する仮想スナップボリューム１００からバックアップボリュームＬＵ番号１のバックアップボリューム１１０-1へのデータのコピーは、差分バックアップ管理テーブル１１１が図１４に示す状態に更新された時点で、バックアップソフトウェア１０１に従ってホスト１０によって開始される。このホスト１０によるデータコピー（バックアップコピー）のためには、ホスト１０がバックアップソフトウェア１０１に従って差分バックアップ手段として機能して、ディスクアレイ装置１２-1のディスクアレイ制御装置２０-1（によって実行されるディスクアレイ制御プログラム）から、各スナップショット番号単位の差分ビットマップテーブル、及び差分ビットマップテーブルの１ビットが示す領域サイズの情報を、ホストインタフェース２０１を介して取得可能とする必要がある。そのためには、取得方法として、ＡＮＳＩ−ＳＣＳＩ規格における「READ BUFFER」のような情報参照コマンド（つまり汎用の情報参照コマンド）を使用すると良い。
【００８１】
次に、バックアップソフトウェア１０１に従ってホスト１０により実行される差分バックアップコピーの手順について、図１５及び図１６のフローチャートを参照して説明する。  
まず、ホスト１０がユーザからのバックアップコピー要求コマンドを受信したものとする（ステップ１５０１）。このバックアップコピー要求コマンドは、バックアップコピー先となるバックアップボリュームのバックアップボリュームＬＵ番号ｘと、バックアップの対象となるスナップショット（目的のスナップショット）の番号（スナップショット番号）ｙとを含む。なお、バックアップコピー要求コマンドが、例えばホスト１０上で動作するアプリケーションプログラムからユーザの入力操作によらずに発行されたものであっても構わない。
【００８２】
ホスト１０はバックアップコピー要求コマンドを受信すると、差分バックアップ手段として機能して以下の処理を行う。差分バックアップ手段は、後述する、差分ビットマップテーブル取得手段、テーブル生成手段、サイズ情報取得手段、読み出し手段及び書き込み手段を含む。
【００８３】
まずホスト１０は、バックアップコピー要求コマンドの要求内容（ｘ，ｙ）、つまりバックアップボリュームＬＵ番号ｘとスナップショット番号ｙとを確認する（ステップ１５０２）。ここでは、バックアップボリュームＬＵ番号ｘ＝１、スナップショット番号ｙ＝４であるものとする。つまり、受信バックアップコピー要求コマンドは、「バックアップボリュームＬＵ番号１」のバックアップボリューム（バックアップボリューム１１０-1）に「スナップショット番号４」のスナップショットのバックアップコピーを要求しているものとする。
【００８４】
次にホスト１０は、差分バックアップ管理テーブル１１１上の、バックアップボリュームＬＵ番号ｘ（＝１）が設定されているエントリにおけるコピー中スナップショット番号を「ｙ（＝４）」に更新する（ステップ１５０３）。
【００８５】
次にホスト１０はテーブル生成手段として機能して、コピー領域管理用差分ビットマップテーブル１７０（図１７参照）を例えば記憶装置１０２内に用意する（ステップ１５０４）。このコピー領域管理用差分ビットマップテーブル１７０の全ビットはデータ退避領域なし状態を示すようにゼロクリアされる。テーブル生成手段は、コピー領域管理用差分ビットマップテーブル１７０の更新も行う。
【００８６】
次にホスト１０は差分ビットマップテーブル取得手段として機能して、スナップショット番号ｚ〜ｙ−１の差分ビットマップテーブルの参照を情報参照コマンドを用いてディスクアレイ装置１０-1に対して指定することにより、当該ディスクアレイ装置１０-1から当該差分ビットマップテーブルを取得する（ステップ１５０５）。本実施形態では、スナップショット番号ｚには、バックアップコピー要求コマンドで指定されたスナップショット番号ｙ（＝４）の示すスナップショット（第１のスナップショット）よりも前のスナップショット、例えばバックアップコピー要求コマンドで指定されたバックアップボリュームＬＵ番号ｘ（＝１）の示すバックアップボリュームへの前回のバックアップで用いられた仮想スナップボリュームと対応するスナップショット（第２のスナップショット）のスナップショット番号１が適用される。この場合、スナップショット番号１（ｚ＝１）〜ｙ−１（＝３）の差分ビットマップテーブル、即ち差分ビットマップテーブル１７１-1〜１７１-3（図１７参照）が取得される。
【００８７】
するとホスト１０は、再びテーブル生成手段として機能して、差分ビットマップテーブル１７１-1〜１７１-3のそれぞれ対応するビット毎の論理和演算を行って、その論理和演算結果を、コピー領域管理用差分ビットマップテーブル１７０の対応するビットに格納（設定）する（ステップ１５０６）。
【００８８】
コピー領域管理用差分ビットマップテーブル１７０の作成方法を図１７に示す。  
スナップショット番号１の差分ビットマップテーブル１７１-1は、スナップショット番号１のスナップショットの採取（登録）時から、スナップショット番号２のスナップショットの採取（登録）時までの間にデータ更新が発生した領域（データ更新領域）を示す。スナップショット番号２の差分ビットマップテーブル１７１-2は、スナップショット番号２のスナップショットの採取時から、スナップショット番号３のスナップショットの採取時までの間のデータ更新領域を示す。スナップショット番号３の差分ビットマップテーブル１７１-3は、スナップショット番号３のスナップショットの採取時から、スナップショット番号４のスナップショットの採取時までの間のデータ更新領域を示す。
【００８９】
コピー領域管理用差分ビットマップテーブル１７０には、スナップショット番号１の差分ビットマップテーブル１７１-1と、スナップショット番号２の差分ビットマップテーブル１７１-2と、スナップショット番号３の差分ビットマップテーブル１７１-3との、それぞれ対応するビット毎の論理和演算の結果が反映される。
【００９０】
再び図１５及び図１６を参照する。ホスト１０はステップ１５０６を実行し終えるとサイズ情報取得手段として機能して、差分ビットマップテーブル１７１-1〜１７１-3の各１ビットが示す領域（ブロック）のサイズ情報を、ディスクアレイ装置１０-1から情報参照コマンドを用いて取得する（ステップ１５０７）。
【００９１】
次にホスト１０は、バックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリュームへのアクセスを占有化するために、当該バックアップボリュームＬＵ番号ｘ（＝１）を指定する予約コマンドをディスクアレイ装置１０-2に対して発行する（ステップ１５０８）。予約コマンドとは、特定のＬＵへのアクセス権を特定のホストに限定することを要求するためのコマンドである。例として、ＡＮＳＩ−ＳＣＳＩ規格に準拠した制御コマンドが使用可能であれば、RESERVE UNITコマンドまたはPERSISTENT RESERVE IN/OUTコマンドが該当する。バックアップコピー中にバックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリュームに対してホスト１０以外のホストからの書き込みを容認すると、コピーデータの不整合を招くことから、予約コマンドが使用される。
【００９２】
次にホスト１０は、スナップショット番号ｙ（＝４）のスナップショット採取時のマスターボリューム３１を、仮想スナップボリューム１００から参照可能とする命令を、ディスクアレイ装置１０-1に対して発行する（ステップ１５０９）。
【００９３】
次にホスト１０は、差分バックアップ管理テーブル１１１内のバックアップボリュームＬＵ番号ｘ（＝１）のエントリにおける仮想スナップボリューム使用有無を「使用中（スナップショット番号ｙ）」に更新する（ステップ１５１０）。
【００９４】
次にホスト１０は、ディスクアレイ装置１０-1に対して、仮想スナップボリューム１００（ここでは、スナップショット番号ｙ（＝４）のスナップショット採取時のマスターボリューム３１に対応する仮想スナップボリューム１００）のＬＵ番号の設定を要求する（ステップ１５１１）。
【００９５】
そしてホスト１０は、仮想スナップボリューム１００からバックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリューム（ここではバックアップボリューム１１０-1）へのデータ（差分データ）のコピー（つまり差分コピー）を開始する（ステップ１５１２）。この差分コピーは次のように行われる。
【００９６】
まずホスト１０は読み出し手段として機能して、コピー領域管理用差分ビットマップテーブル１７０を参照することにより（ステップ１６０１）、当該テーブル１７０に１がセットされているビットがあるかを判定する（ステップ１６０２）。もし、１がセットされているビットがあるならば（ステップ１６０２のＹｅｓ）、ホスト１０は、そのビットに対応する領域（ブロック）は、前回バックアップされたスナップショット番号１のスナップショットの採取時からスナップショット番号ｙ（＝４）のスナップショット（つまり目的のスナップショット）採取時までの間にデータが更新された領域であると判断する。
【００９７】
そこでホスト１０は、この領域のデータを仮想スナップボリューム１００から読み出すためのデータ読み出し要求をディスクアレイ装置１０-1に発行することにより、当該領域のデータを読み出す（ステップ１６０３）。ディスクアレイ装置１０-1では、このホスト１０からのデータ読み出し要求に応じて、図９に示したフローチャートに従う処理が行われ、要求された読み出しデータがホスト１０に返される。なお、１がセットされているビットに対応する領域は、当該ビットのビット番号に、１ビットの示す領域のサイズ（つまり、ステップ１５０７で取得されたサイズ情報の示すサイズ）を乗算した結果を先頭とする、当該サイズ分の領域である。
【００９８】
ホスト１０はステップ１６０３でデータを読み出すと書き込み手段として機能して、当該読み出されたデータを、バックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリューム内の、読み出し元に対応する領域に書き込む（ステップ１６０４）。  
つまりホスト１０（の差分バックアップ手段）は、コピー領域用差分ビットマップテーブル上で１がセットされているビットに対応する仮想スナップボリューム１００内の読み出し元領域から、当該読み出し元に対応するバックアップボリューム内の領域への差分データのコピーを行う。
【００９９】
次にホスト１０は、コピー領域管理用差分ビットマップテーブル１７０上の、コピー完了領域に対応するビットに０をセットする（ステップ１６０５）。そしてホスト１０はステップ１６０１に戻る。
【０１００】
以下、ステップ１６０１〜１６０５が繰り返されることにより、コピー領域管理用差分ビットマップテーブル１７０上の１がセットされている全てのビットについて、そのビットに対応する仮想スナップボリューム１００内の読み出し元領域から、当該読み出し元に対応するバックアップボリューム内の領域への差分データのコピー（差分コピー）が行われる。
【０１０１】
このような差分コピーの結果、コピー領域管理用差分ビットマップテーブル１７０上で１がセットされているビットがなくなったものとする（ステップ１６０２のＮｏ）。  
するとホスト１０は、仮想スナップボリューム１００からマスターボリューム３１を参照可能とする状態を解除するための仮想スナップボリューム参照解除命令を、ディスクアレイ装置１０-1に対して発行する（ステップ１６０６）。
【０１０２】
次にホスト１０は、差分バックアップ管理テーブル１１１内の、バックアップボリュームＬＵ番号ｘ（＝１）が設定されているエントリにおける仮想スナップボリューム使用有無を、「なし」に更新する（ステップ１６０７）。
【０１０３】
次にホスト１０は、バックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリュームの予約を解除する（ステップ１６０８）。つまりホスト１０は、バックアップボリュームＬＵ番号ｘ（＝１）を指定する予約コマンドを解除する。
【０１０４】
次にホスト１０は、差分バックアップ管理テーブル１１１内の、バックアップボリュームＬＵ番号ｘ（＝１）が設定されているエントリにおける、コピー済みスナップショット番号を「ｙ（＝４）」に、コピー中スナップショット番号を「なし」に、それぞれ更新する（ステップ１６０９）。更新後のコピー済みスナップショット番号ｙ（＝４）は、バックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリューム（つまりバックアップボリューム１１０-1）に前回バックアップされたスナップショットを示す。ホスト１０はステップ１６０９を実行し終えると、差分バックアップコピーを終了する。
【０１０５】
［第１の変形例］
次に上記実施形態の第１の変形例について説明する。  
上記実施形態では、差分コピーに際して、ディスクアレイ装置１０-1から情報参照コマンドを用いて取得されたスナップショット番号１〜３の差分ビットマップテーブル１７１-1〜１７１-3に基づいてコピー領域管理用差分ビットマップテーブル１７０が生成され、当該テーブル１７０に基づいて差分コピーが行われる。これに対して上記実施形態の第１の変形例では、ディスクアレイ装置１０-1から取得された差分ビットマップテーブル１７１-1〜１７１-3をそのまま使用して差分コピーが行われる。つまり第１の変形例が上記実施形態と相違する点は、ホスト１０が、コピー領域管理用差分ビットマップテーブル１７０を保持しない代わりに、ディスクアレイ装置１０-1から取得された差分ビットマップテーブル１７１-1〜１７１-3を保持することにある。
【０１０６】
以下、第１の変形例においてホスト１０により実行される差分バックアップコピーの手順について、図１８及び図１９のフローチャートを参照して説明する。  
まず、ホスト１０が上記実施形態と同様に、ユーザからのバックアップコピー要求コマンドを受信して、当該バックアップコピー要求コマンドの要求内容（ｘ，ｙ）である、バックアップボリュームＬＵ番号ｘとスナップショット番号ｙとを確認したものとする（ステップ１８０１，１８０２）。
【０１０７】
するとホスト１０は、上記実施形態と同様に、差分バックアップ管理テーブル１１１上の、バックアップボリュームＬＵ番号ｘ（＝１）が設定されているエントリにおけるコピー中スナップショット番号を「ｙ（＝４）」に更新する（ステップ１８０３）。
【０１０８】
次にホスト１０は、スナップショット番号１〜３の差分ビットマップテーブル１７０-1〜１７０-3（図１７参照）を保持するための領域（差分ビットマップテーブル領域）を例えば記憶装置１０２内に用意する（ステップ１８０４）。
【０１０９】
次にホスト１０は差分バックアップ手段の差分ビットマップテーブル取得手段として機能して、スナップショット番号ｚ〜ｙ−１、例えばスナップショット番号１〜３の差分ビットマップテーブル１７１-1〜１７１-3を、ディスクアレイ装置１０-1から情報参照コマンドを用いて取得し（ステップ１８０５）。取得した差分ビットマップテーブル１７１-1〜１７１-3を上記差分ビットマップテーブル領域に格納する（ステップ１８０６）
そしてホスト１０は、上記実施形態におけるステップ１５０７〜１５１１と同様のステップ１８０７〜１８１１を実行し、しかる後に仮想スナップボリューム１００（ここでは、スナップショット番号ｙ（＝４）のスナップショット採取時のマスターボリューム３１に対応する仮想スナップボリューム１００）からバックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリューム（ここではバックアップボリューム１１０-1）への差分データのコピー（差分コピー）を開始する（ステップ１８１２）。この差分コピーは次のように行われる。
【０１１０】
まずホスト１０は差分バックアップ手段の読み出し手段として機能して、差分ビットマップテーブル領域に格納されている差分ビットマップテーブル１７１-1〜１７１-3を参照することにより（ステップ１９０１）、当該テーブル１７１-1〜１７１-3のいずれかに１がセットされているビットがあるかを判定する（ステップ１９０２）。もし、１がセットされているビットがあるならば（ステップ１９０２のＹｅｓ）、ホスト１０は、上記実施形態と同様に、そのビットに対応する領域のデータを仮想スナップボリューム１００から読み出す（ステップ１９０３）。
【０１１１】
次にホスト１０は差分バックアップ手段の書き込み手段として機能して、上記実施形態と同様に、仮想スナップボリューム１００から読み出されたデータを、バックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリューム内の、読み出し元に対応する領域に書き込むための差分コピーを行う（ステップ１９０４）。次にホスト１０は、差分ビットマップテーブル領域に格納されている差分ビットマップテーブル１７１-1〜１７-3上のビットのうち、コピー完了領域に対応するビットに０をセットして（ステップ１９０５）、ステップ１９０１に戻る。ここで、差分ビットマップテーブル１７１-1〜１７-3上の２つ以上のテーブル上の対応するビットがコピー完了領域に対応している場合、当該対応するビットが全て０にセットされる。
【０１１２】
以下、ステップ１９０１〜１９０５が繰り返されることにより、差分ビットマップテーブル領域に格納されている差分ビットマップテーブル１７１-1〜１７-3上の１がセットされている全てのビットについて、そのビットに対応する仮想スナップボリューム１００内の読み出し元領域から、当該読み出し元に対応するバックアップボリューム内の領域への差分データのコピー（差分コピー）が行われる。
【０１１３】
このような差分コピーの結果、差分ビットマップテーブル１７１-1〜１７-3上で１がセットされているビットがなくなった場合（ステップ１９０２のＮｏ）、ホスト１０は、上記実施形態におけるステップ１６０６〜１６０９と同様のステップ１９０６〜１９０９を実行して、差分バックアップコピーを終了する。
【０１１４】
［第２の変形例］
次に上記実施形態の第２の変形例について説明する。  
上記実施形態では、差分コピーが必要な領域は、ディスクアレイ装置１０-1から取得されたスナップショット番号１〜３の差分ビットマップテーブル１７１-1〜１７１-3に基づいてホスト１０にて生成されたコピー領域管理用差分ビットマップテーブル１７０を用いて判断されている。しかし、例えばホスト１０の記憶装置１０２の空き領域が少ない等の理由により、ホスト１０側でコピー領域管理用差分ビットマップテーブル１７０を管理できない場合がある。これに対して上記実施形態の第２の変形例では、ホスト１０側でコピー領域管理用差分ビットマップテーブル１７０を生成・保持することなく、差分コピーを実行可能する。
【０１１５】
そのため第２の変形例において、ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1は、差分コピーの必要／不要を、ホスト１０からディスクアレイ装置１０-1に発行される仮想スナップボリュームを対象とするデータの読み出し要求（仮想スナップボリューム読み出し要求）に対する、ホスト１０への応答の内容によって示す機能が必要となる。
【０１１６】
第２の変形例では、このディスクアレイ制御装置２０-1からホスト１０への応答については、仮想スナップボリューム読み出し要求に対する応答内容を、ホスト１０によってディスクアレイ制御装置２０-1（より詳細には、ディスクアレイ制御装置２０-1によって実行されるディスクアレイ制御プログラム）に設定されるアクセスモードにより切り替えることを可能としている。第２の変形例において、ホスト１０によって設定されるアクセスモードは、全て正常応答（仮想スナップボリューム全体へのアクセスを許可）とするモード（通常モード）と、対象スナップショット番号の範囲で変更されていない領域への読み出し要求があった場合のみ、当該領域が予約中と応答するモード（差分モード）である。
【０１１７】
差分モードにおける予約中の応答は、上記実施形態における予約コマンドの実行中に当該予約コマンドを実行中のホスト以外からのアクセスに対する応答と同じである。差分モードの場合、上記実施形態において、ホスト１０が差分バックアップ管理テーブル１１１によって管理していた、コピー済みスナップショット番号及びコピー中スナップショット番号に相当する情報について、ディスクアレイ装置１２-1側での保持・管理が必要となる。このディスクアレイ装置１２-1側で保持・管理されるべき、コピー済みスナップショット番号及びコピー中スナップショット番号に相当する情報を仮想スナップボリューム管理情報と称する。本実施形態において、仮想スナップボリューム管理情報は、バックアップコピーを開始する際に、ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1（より詳細には、ディスクアレイ制御装置２０-1によって実行されるディスクアレイ制御プログラム）に、ホスト１０（の差分バックアップ手段が有するアクセスモード設定手段）によって設定される。
【０１１８】
図２０に仮想スナップボリューム管理情報の例を示す。  
仮想スナップボリューム管理情報は、アクセスモード、差分開始スナップショット番号及び差分終了スナップショット番号の各フィールドを備えている。図２０（ａ）はアクセスモードが通常モードの場合の仮想スナップボリューム管理情報の一例を示し、図２０（ｂ）はアクセスモードが差分モードの場合の仮想スナップボリューム管理情報の一例を示す。
【０１１９】
アクセスモードが通常モードの場合、仮想スナップボリュームの全領域がアクセスされる。この場合、差分開始スナップショット番号及び差分終了スナップショット番号は制御上の意味をなさない。このためアクセスモードが通常モードの場合、仮想スナップボリューム管理情報の差分開始スナップショット番号及び差分終了スナップショット番号のフィールドには、図２０（ａ）に示すように「なし」が設定される。
【０１２０】
一方、アクセスモードが差分モードの場合には、仮想スナップボリューム管理情報の差分開始スナップショット番号及び差分終了スナップショット番号のフィールドには、図２０（ｂ）に示すように、それぞれ有効な差分開始スナップショット番号（ここでは１）及び差分終了スナップショット番号（ここでは４）が設定される。差分開始スナップショット番号の示すスナップショットは、上記実施形態における、前回バックアップされたスナップショットに相当し、差分終了スナップショット番号は、上記実施形態における、バックアップコピー要求コマンドによって指定されるスナップショット番号ｙに相当する。つまり差分終了スナップショット番号の示すスナップショットは、上記実施形態における、スナップショット番号ｙの示すスナップショットに相当する。
【０１２１】
図２０（ｂ）に示す仮想スナップボリューム管理情報は、仮想スナップボリューム（差分終了スナップショット番号のスナップショットの採取時のマスターボリュームに対応する仮想スナップボリューム）において、差分開始スナップショット番号で示されるスナップショットの採取時から、差分終了スナップショット番号のスナップショットの採取時までの間にデータ更新が発生した領域（データ更新領域）のみアクセス可能とすることを意味している。アクセス不可能な領域に対してアクセスがあった場合は、ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1は予約中と応答する。
【０１２２】
アクセスモードが差分モードの場合における仮想スナップボリューム管理情報の差分開始スナップショット番号及び差分終了スナップショット番号は、それぞれ、上記実施形態におけるコピー済みスナップショット番号及びコピー中スナップショット番号に相当する。なお、仮想スナップボリュームのアクセス不可能な領域に対して、ホスト１０からディスクアレイ装置１０-1にアクセスがあった場合の、ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1からの応答内容は、例えば、アクセスエラー応答や専用のステータス応答でも、正常応答と区別可能なものであれば使用可能である。
【０１２３】
ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1にホスト１０によってアクセスモードとして差分モードが設定された状態で、ホスト１０からディスクアレイ装置１０-1にデータ読み出し要求が発行された場合の、ホスト１０への応答（アクセス応答）を含むディスクアレイ制御装置２０-1の処理手順について、図２１のフローチャートを参照して説明する。
【０１２４】
ディスクアレイ制御装置２０-1は、ホスト１０からディスクアレイ装置１０-1に対して発行されたデータ読み出し要求を受信すると、応答手段として機能して以下の処理を行う。まずディスクアレイ制御装置２０-1は、当該読み出し要求が仮想スナップボリューム１００へのアクセスを要求する仮想スナップボリューム読み出し要求であるかを判定する（ステップ２１０１）。もし仮想スナップボリューム読み出し要求であるならば（ステップ２１０１のＹｅｓ）、ディスクアレイ制御装置２０-1は、アクセスモードとして差分モードが設定されているかを判定する（ステップ２１０２）。
【０１２５】
もし、差分モードが設定されているならば（ステップ２１０２のＹｅｓ）、ディスクアレイ制御装置２０-1は、仮想スナップボリューム読み出し要求で指定される仮想スナップボリューム上のアクセス領域（読み出し指定領域）が、差分ビットマップテーブル上のいずれのビット番号のビットに対応する領域であるかを特定する（ステップ２１０３）。
【０１２６】
次にディスクアレイ制御装置２０-1は、アクセスモードが差分モードの場合の仮想スナップボリューム管理情報に基づいて、差分開始スナップショット番号から差分終了スナップショット番号の直前（差分終了スナップショット番号−１）までの各差分スナップショット番号Ａ（差分開始スナップショット番号≦Ａ＜差分終了スナップショット番号）について、以下のループ処理（ステップ２１０４）を実行する。
【０１２７】
まずディスクアレイ制御装置２０-1は、スナップショット番号Ａの差分ビットマップテーブル上のアクセス領域に該当するビットを参照することにより（ステップ２１０５）、当該ビットに１がセットされているかを判定する（ステップ２１０６）。
【０１２８】
もし、１がセットされていないならば（ステップ２１０６のＮｏ）、ディスクアレイ制御装置２０-1は差分スナップショット番号Ａを１インクリメントし（Ａ＋＋）、そのインクリメント後の差分スナップショット番号Ａが差分終了スナップショット番号に達していないならば（ステップ２１０７）、インクリメント後の差分スナップショット番号Ａに基づき、上記ステップ２１０５，２１０６を再び実行する（ステップ２１０４）。
【０１２９】
もし、インクリメント後の差分スナップショット番号Ａが差分終了スナップショット番号に達しているならば、ディスクアレイ制御装置２０-1はループ処理（ステップ２１０４）を終了して、ホスト１０に対して予約中で応答する（ステップ２１０８）。つまり、仮想スナップボリューム読み出し要求で指定される仮想スナップボリューム１００上のアクセス領域が、差分開始スナップショット番号のスナップショットの採取時から差分終了スナップショット番号のスナップショットの採取時までの間にデータの更新がなされていない領域である場合、当該読み出し要求で指定されるデータ読み出しを行うことなく、当該読み出し要求で指定される読み出しの結果として、ディスクアレイ制御装置２０-1からホスト１０に対し予約中が応答される。
【０１３０】
一方、１がセットされているならば（ステップ２１０６のＹｅｓ）、ディスクアレイ制御装置２０-1は仮想スナップボリューム１００（ここでは、差分終了スナップショット番号のスナップショット採取時のマスターボリューム３１に対応する仮想スナップボリューム１００）からアクセス領域のデータを読み出し、ホスト１０に対して、仮想スナップボリューム読み出し要求で指定される読み出しの結果として、当該読み出したデータを含む正常応答を返す（ステップ２１０９）。つまり、上記アクセス領域が、差分開始スナップショット番号のスナップショットの採取時から差分終了スナップショット番号のスナップショットの採取時までの間にデータの更新がなされた領域である場合、ディスクアレイ制御装置２０-1からホスト１０に対し正常応答が返される。
【０１３１】
ディスクアレイ制御装置２０-1がディスクアレイ制御プログラムに従って、図２１に示す手順の応答処理を行うと、ホスト１０はバックアップソフトウェア１０１に従う仮想スナップボリューム１００の全領域からのデータ読み出し時に、ディスクアレイ制御装置２０-1からの応答内容によって、その領域（アクセス領域）が更新された領域であるかを判定することができる。つまりホスト１０は、仮想スナップボリューム読み出し要求に対して正常応答が返された場合は、アクセス領域は差分（更新された）領域であり、予約応答の場合には、アクセス領域は、更新されていない（コピーする必要がない）領域であると判定できる。
【０１３２】
なお、受信された読み出し要求が仮想スナップボリューム読み出し要求でないならば（ステップ２１０１のＮｏ）、ディスクアレイ制御装置２０-1は、例えば図９に示されるフローチャートに従う処理によってアクセス領域のデータを読み出し、ホスト１０に対して当該読み出したデータを含む正常応答を返す（ステップ２１０９）。また、受信された読み出し要求が仮想スナップボリューム読み出し要求であるものの（ステップ２１０１のＹｅｓ）、アクセスモードが差分モードでない（つまり通常モードである）ならば（ステップ２１０２のＮｏ）、ディスクアレイ制御装置２０-1は、仮想スナップボリューム１００からアクセス領域のデータを読み出し、ホスト１０に対して、当該読み出したデータを含む正常応答を返す（ステップ２１０９）。
【０１３３】
次に、上記実施形態の第２の変形例においてホスト１０により実行される差分バックアップコピーの手順について、図２２乃至図２４のフローチャートを参照して説明する。この図２２乃至図２４のフローチャートは、上記実施形態で適用される図１５及び図１６のフローチャートに対応する。
【０１３４】
まず、ホスト１０が上記実施形態と同様に、ユーザからのバックアップコピー要求コマンドを受信した結果、差分バックアップ手段として機能して、当該バックアップコピー要求コマンドの要求内容（ｘ，ｙ）である、バックアップボリュームＬＵ番号ｘとスナップショット番号ｙとを確認したものとする（ステップ２２０１，２２０２）。
【０１３５】
するとホスト１０は、上記実施形態と同様に、差分バックアップ管理テーブル１１１上の、バックアップボリュームＬＵ番号ｘ（＝１）が設定されているエントリにおけるコピー中スナップショット番号を「ｙ（＝４）」に更新する（ステップ２２０３）。
【０１３６】
次にホスト１０は、上記実施形態におけるステップ１５０４〜１５０６に相当する処理を行うことなく、上記実施形態におけるステップ１５０７〜１５０９と同様のステップ２２０４〜２２０６を実行する。次にホスト１０は、差分バックアップ手段のアクセスモード設定手段として機能して、ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1（によって実行されるディスクアレイ制御プログラム）に対して、仮想スナップボリューム管理情報として、仮想スナップボリュームのアクセスモード＝差分モード、差分開始スナップショット番号＝ｚ（＝１）、差分終了スナップショット番号＝ｙ（＝４）を設定する（ステップ２２０７）。差分開始スナップショット番号＝ｚは、バックアップコピー要求コマンドで指定されたバックアップボリュームＬＵ番号ｘのバックアップボリュームに前回バックアップされたスナップショット（第２のスナップショット）のスナップショット番号に一致し、差分終了スナップショット番号＝ｙは、バックアップコピー要求コマンドで指定されたスナップショット（第１のスナップショット）のスナップショット番号ｙに一致する。
【０１３７】
次にホスト１０は、上記実施形態におけるステップ１５１０，１５１１と同様のステップ２２０８，２２０９を実行した後、仮想スナップボリューム１００（ここでは、差分終了スナップショット番号ｙ（＝４）のスナップショット採取時のマスターボリューム３１に対応する仮想スナップボリューム１００）からバックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリューム（ここではバックアップボリューム１１０-1）への、領域サイズ情報の示すサイズの領域（ブロック）単位での全面コピーを、アドレス０の領域（ブロック）から開始する（ステップ２２１０）。この全面コピーは次のように行われる。
【０１３８】
まずホスト１０は差分バックアップ手段の読み出し手段として機能して、ディスクアレイ装置１０-1に対して仮想スナップボリューム読み出し要求を発行することにより、当該読み出し要求で指定される仮想スナップボリューム１００内のアクセス領域からのデータ読み出しを実行する（ステップ２３０１）。仮想スナップボリューム読み出し要求は、領域サイズ情報の示すサイズのアクセス領域を指定する情報を含む。
【０１３９】
ディスクアレイ装置１０-1のディスクアレイ制御装置２０-1は、ホスト１０からの仮想スナップボリューム読み出し要求に対して、読み出し結果として前述したように正常応答または予約中応答を返す。ホスト１０は、このディスクアレイ制御装置２０-1からの応答を受信すると、差分バックアップ手段の応答判定手段として機能して、その応答が正常応答であるかを判定する（ステップ２３０２）。
【０１４０】
もし正常応答でないならば（ステップ２３０２のＮｏ）、ホスト１０はディスクアレイ制御装置２０-1からの応答が予約中応答であるかを判定する（ステップ２３０３）。
【０１４１】
これに対して正常応答であるならば（ステップ２３０２のＹｅｓ）、ホスト１０は差分バックアップ手段の書き込み手段として機能して、当該正常応答に含まれている読み出しデータ、つまり仮想スナップボリューム１００から読み出したデータを、上記実施形態におけるステップ１６０４と同様に、バックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリューム内の、読み出し元（アクセス領域）に対応する領域に書き込む（ステップ２３０４）。
【０１４２】
ホスト１０は、ステップＳ２３０４を実行するとステップ２３０５に進む。ホスト１０はまた、ディスクアレイ制御装置２０-1からの応答が、正常応答でも予約中応答でもない場合にも（ステップ２３０３のＮｏ）、ステップ２３０５に進む。ステップ２３０５においてホスト１０は読み出し手段として機能して、仮想スナップボリューム１００の全領域からの読み出しは完了したかを判定する。
【０１４３】
もし、仮想スナップボリューム１００の全領域からの読み出しが完了していないならば（ステップ２３０５のＮｏ）、つまり読み出し未完了の領域が残っているならば、ホスト１０は次のアクセス領域を設定（決定）する（ステップ２３０６）。次のアクセス領域は、現在のアクセス領域を示すアドレスを、領域サイズ情報の示す領域サイズ分だけ増加することにより決定される。そしてホスト１０はステップ２３０１に戻る。
【０１４４】
これに対し、仮想スナップボリューム１００の全領域からの読み出しが完了しているならば（ステップ２３０４のＹｅｓ）、ホスト１０は上記実施形態におけるステップ１６０６〜１６０９と同様のステップ２３０７〜２３１０を実行して、差分バックアップコピーを終了する。
【０１４５】
一方、ディスクアレイ制御装置２０-1からの応答が予約中応答であるならば（ステップ２３０３のＹｅｓ）、ホスト１０はバックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリュームへのデータ書き込み（コピー）を行わずに、上記実施形態におけるステップ１６０６〜１６０８と同様のステップ２４０１〜２４０３を実行する。そしてホスト１０は、差分バックアップ管理テーブル１１１内の、バックアップボリュームＬＵ番号ｘ（＝１）が設定されているエントリにおける、コピー済みスナップショット番号を「１（エラー）」に、コピー中スナップショット番号を「なし」に、それぞれ更新する（ステップ２４０４）。このように、コピー済みスナップショット番号が“エラー”として設定される場合、コピー処理が中断したため、バックアップボリュームＬＵ番号ｘ（＝１）のバックアップボリュームの内容は不完全データであることを示している。完全なデータとするには、同様のバックアップコピー要求コマンドを再度実行すればよい。
【０１４６】
ホスト１０は、ステップ２４０４を実行すると、差分バックアップコピーを終了する。
【０１４７】
なお、上記実施形態及びその変形例では、ストレージシステムを構成するストレージ装置がディスクアレイ装置である場合を想定しているが、当該ストレージ装置が必ずしもディスクアレイ装置である必要はない。また、ネットワーク１１に複数のホスト装置が接続されていてもよく、ネットワーク１１に３台以上のディスクアレイ装置（ストレージ装置）が接続されていてもよい。
【０１４８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４９】
１０…ホスト（ホスト装置）、１０-1，１０-2…ディスクアレイ装置（ストレージ装置）、１１…ネットワーク、１２-1，１２-2…ディスクアレイ、２０-1，２０-2…ディスクアレイ制御装置、３１…マスターボリューム、３２…スナップデータ管理ボリューム、４０，１７１-1〜１７１-3…差分ビットマップテーブル、５０，５０-1〜５０-3…スナップデータ管理テーブル、８０…スナップデータ再現テーブル、１００…仮想スナップボリューム、１０１…バックアップソフトウェア、１０２…記憶装置、１１０-1〜１１０-3…バックアップボリューム、１１１…差分バックアップ管理テーブル、１２０-0〜１２０-3…物理ディスク、１７０…コピー領域管理用差分ビットマップテーブル。
【図１】
2012014286.tif 000003
【図２】
2012014286.tif 000004
【図３】
2012014286.tif 000005
【図４】
2012014286.tif 000006
【図５】
2012014286.tif 000007
【図６】
2012014286.tif 000008
【図７】
2012014286.tif 000009
【図８】
2012014286.tif 000010
【図９】
2012014286.tif 000011
【図１０】
2012014286.tif 000012
【図１１】
2012014286.tif 000013
【図１２】
2012014286.tif 000014
【図１３】
2012014286.tif 000015
【図１４】
2012014286.tif 000016
【図１５】
2012014286.tif 000017
【図１６】
2012014286.tif 000018
【図１７】
2012014286.tif 000019
【図１８】
2012014286.tif 000020
【図１９】
2012014286.tif 000021
【図２０】
2012014286.tif 000022
【図２１】
2012014286.tif 000023
【図２２】
2012014286.tif 000024
【図２３】
2012014286.tif 000025
【図２４】
2012014286.tif 000026