(57)【特許請求の範囲】
【請求項１】
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置であって、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段と、
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームおよび当該複製ボリュームの複製ボリュームを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルと、を備え、
前記直列データ複製制御手段は、前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御手段は、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とするデータ複製装置。
【請求項２】
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、前記直列データ複製制御手段が、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする請求項１に記載のデータ複製装置
【請求項３】
前記並列データ複製制御手段が、前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする請求項２に記載のデータ複製装置。
【請求項４】
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御手段は、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする請求項３に記載のデータ複製装置。
【請求項５】
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御手段が、前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームから、データを読み出す
ことを特徴とする請求項１から請求項４のいずれか１項に記載のデータ複製装置。
【請求項６】
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御手段が、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする請求項５に記載のデータ複製装置。
【請求項７】
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御方法であって、
前記データ複製装置は、
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームおよび当該複製ボリュームの複製ボリュームを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルとを備え、
前記データ複製制御方法は、
前記ホストコンピュータから書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御ステップと、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御ステップと、
を含むことを特徴とするデータ複製制御方法。
【請求項８】
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御プログラムであって、
前記データ複製装置は、
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームおよび当該複製ボリュームの複製ボリュームを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルとを備え、
前記データ複製制御プログラムは、前記データ複製装置に、
前記ホストコンピュータから書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御処理と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御処理と、
を実行させることを特徴とするデータ複製制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスクアレイ・サブシステム等の記憶装置で使用される複製データ処理技術に関し、特に、スナップショット技術を使用してデータ複製を行う複製データ処理技術に関する。
【背景技術】
【０００２】
近年、社会基盤がＩＴ化されるにつれ、企業、或いは個人が保有するデータ量は急激に増加している。また、電子商取引の普及や査証用データ保管の法制化等により、データ自体の質や価値が高まってきている。このような中で、データ損失という事態が及ぼす影響に関して、広く一般に認識されるようになるとともに、データ損失を未然に防ぐ手段として、バックアップ技術に大きな関心が寄せられてきている。
【０００３】
ここで、ディスクアレイ・サブシステムにおいてこれまで採用されている、ミラーリング方式のバックアップ手順について説明する。
【０００４】
ミラーリング方式のバックアップ手順では、まず、バックアップの対象となるボリューム（マスタ・ボリューム）の静止点を確保するために、マスタ・ボリュームに対してアクセスしている、データベースなどのアプリケーションを停止する。
【０００５】
次に、マスタ・ボリュームと同一容量のボリューム（バックアップ・ボリューム）を作成し、マスタ・ボリュームの全データをバックアップ・ボリュームへコピーする。コピーが完了すると、停止していたデータベースなどのアプリケーションを再開する一方、バックアップ・ボリュームからデータを読み出し、テープなどのバックアップ用装置にデータを保存する。
【０００６】
前述の手順では、アプリケーションを停止してから、バックアップ・ボリュームの作成と、マスタ・ボリュームからバックアップ・ボリュームへのデータ・コピーとを実行したが、アプリケーションが動作している最中に、バックアップ・ボリュームを作成し、マスタ・ボリュームからバックアップ・ボリュームへのデータ・コピーを起動しておくことにより、静止点を確保してから、マスタ・ボリュームとバックアップ・ボリュームとの同期を取るまでの時間を短縮する方式も実現されている。
【０００７】
しかし、何れの方式においても、静止点を確保してから、マスタ・ボリュームのデータをバックアップ・ボリュームへ完全にコピーし終えるまでに、コピー量に応じた時間を要することになる。
【０００８】
また、バックアップ用途以外の、例えばデータ・マイニングなどのために、同一マスタ・ボリュームに対して複数のバックアップ・ボリュームを作成することがよくあるが、その場合、マスタ・ボリュームの数倍のデータ容量を消費することになる。
【０００９】
このようなミラーリング方式の問題を回避するために、最近は、スナップショット方式を採用したバックアップが頻繁に使われるようになってきている。このようなスナップショット方式を採用したバックアップの一例が、特許文献１に開示されている。
【００１０】
ここで、特許文献１に記載されている、共有プールを使用するスナップショット方式を採用した、従来のデータ複製システムの構成について、図１３、図１４、図１５を参照して、その一例を説明する。
【００１１】
スナップショット方式を採用した背景技術のデータ複製システムは、マスタ・ボリューム１０１０と、マスタ・ボリューム１０１０と同一容量で、実際には物理的な容量を持たない仮想的なボリュームであるスナップショット・ボリューム１０２００と、スナップショット・ボリューム１０２０のデータを格納するボリュームである共有プールボリューム１０３００と、スナップショット・ボリューム１０２０へのデータ・アクセスを管理するデータ複製制御手段１０４００と、複製データの実際の格納先を管理するアドレス変換手段１０５００とを備える。
【００１２】
データ複製制御手段１０４０は、図１４に示すように、マスタやスナップショット等の、ボリュームの属性を管理する属性管理テーブル１０４１と、ボリューム間のスナップショット関係を保持するボリューム対応管理テーブル１０４２と、マスタ・ボリュームとスナップショット・ボリュームとの差分を管理する差分管理テーブル１０４３とを有する。
【００１３】
差分管理テーブル１０４３では、スナップショット・ボリュームがデータを保持していない場合には値０をとり、データを保持している場合には値１をとる。
【００１４】
アドレス変換手段１０５０は、図１５に示すように、スナップショット・ボリュームの実際の格納アドレスを保持するディレクトリ１０５１と、共有プールボリュームの使用状況を管理する割当管理テーブル１０５２とを有する。
【００１５】
次に、図１６、図１７、図１８を参照して、背景技術によるデータ複製システムの動作について説明する。ここでは、ＬＶ（ロジカル・ボリューム）０をマスタ・ボリューム１０１０、ＬＶ１をスナップショット・ボリューム１０２０、ＬＶ２を共有プールボリューム１０３０として使用し、スナップショット・コマンド受信前において、マスタ・ボリューム１０１０には（ＡＡ、ＢＢ、ＣＣ、ＤＤ、・・・、ＮＮ）というデータが格納されているものとする。
【００１６】
ボリュームを複製する手順として、まず、図１６に示されるように、ステップＳ１６００で、データ複製装置１０００内に共有ボリュームが作製され、属性管理テーブル１０４１と割当管理テーブル１０５２とが初期化される。
【００１７】
すなわち、属性管理テーブル１０４１においてＬＶ２に共有属性を設定し、割当管理テーブル１０５２において共有プールボリュームが未使用状態であることを示す値０を設定する。
【００１８】
次のステップＳ１６０１で、マスタ・ボリューム１０１０と、このマスタ・ボリューム１０１０と同じ記憶容量のスナップショット・ボリューム１０２０とを作製する。
【００１９】
次のステップＳ１６０２で、スナップショット・コマンドをデータ複製装置１０００が受信すると、ステップＳ１６０３で属性管理テーブル１０４１と、ボリューム対応管理テーブル１０４２と、差分管理テーブル１０４３とが初期化される。
【００２０】
すなわち、属性管理テーブル１０４１においてＬＶ０にマスタ属性を、ＬＶ１にスナップショット属性を設定し、ボリューム対応管理テーブル１０４２においてＬＶ０とＬＶ１とがスナップショット関係にあることを示すように、スナップショットのＬＶ０にＬＶ１を設定し、スナップショットのＬＶ１にＬＶ０を設定する。
【００２１】
また、差分管理テーブル１０４３のスナップショット・ボリューム１０２０、つまりこの場合はＬＶ１に、該スナップショット・ボリューム１０２０がデータを保持していないことを示す値０を設定し、ディレクトリ１０５１において、スナップショット・ボリューム１０２０に共有プールボリュームの記憶空間が割り当てられていないことを示すｎｕｌｌ値を設定する。
【００２２】
次に、前述のボリューム複製手順で説明したデータ複製装置１０００が、ライト・コマンドとリード・コマンドを受信したときの処理手順について説明する。
【００２３】
まず、ライト・コマンドを受信したときの処理手順について説明する。データ複製装置１０００のマイクロプロセッサ（以下、単にＣＰＵと称する）は、図１７に示されるステップＳ１７００で属性管理テーブル１０４１を参照し、受信したコマンドがマスタ・ボリューム１０１０へのコマンドであるのか、それともスナップショット・ボリューム１０２０へのコマンドであるのかを判断する。
【００２４】
ステップＳ１７０１でスナップショット・ボリューム１０２０へのライト・コマンドと判断した場合にはデータを書き込まずに処理を終了しているが、これはスナップショット・ボリューム１０２０がスナップショット・コマンドを受信した時点でのマスタ・ボリューム１０１０の複製を維持するという運用に従った場合の処理（例えば、バックアップ等の場合の処理）であり、その他の運用形態においては、ライト・コマンドの要求通りにスナップショット・ボリューム１０２０へデータを書き込んでも良い。
【００２５】
一方、ステップＳ１７０１でマスタ・ボリュームへのライト・コマンドと判断した場合は、ＣＰＵは、ステップＳ１７０２でボリューム対応管理テーブル１０４２を参照し、このマスタ・ボリュームと対になるスナップショット・ボリュームを特定する。
【００２６】
そして、特定したスナップショット・ボリューム１０２０の書き込み要求アドレスにデータがあるかどうかを、ステップＳ１７０３で差分管理テーブル１０４３から判断する。スナップショット・ボリューム１０２０にデータがあると判断されたときは、ステップＳ１７０９でマスタ・ボリューム１０１０へデータを書き込み、処理を終了する。
【００２７】
スナップショット・ボリューム１０２０にデータが無いと判断されたときは、ステップＳ１７０５で割当管理テーブル１０５２を探索し、共有プールボリュームの未使用領域の中から今回使用する領域を決定する。そして、ステップＳ１７０６でマスタ・ボリューム１０１０の書き込み要求アドレスにある既存データを、前記共有プールボリューム１０３０の未使用領域にコピーしてから、ステップＳ１７０７で割当管理テーブル１０５２の当該箇所が使用済みであることを示す値１を設定し、ディレクトリ１０５１の当該箇所に前記未使用領域のアドレスを設定する。
【００２８】
そして、ステップＳ１７０８で差分管理テーブル１０４３の当該箇所にデータがあることを示す値１を設定し、ステップＳ１７０９でマスタ・ボリューム１０１０へデータを書き込み、処理を終了する。
【００２９】
スナップショット・コマンド受信後に、マスタ・ボリュームＬＶ０のｐａｇｅ３に対して（ＺＣ）のライト・コマンドが発行された後の各テーブルの状態を、図１３、図１４、図１５に示す。
【００３０】
次に、リード・コマンドを受信したときの処理手順について説明する。
【００３１】
ＣＰＵは、図１８に示されるステップＳ１８００で属性管理テーブル１０４１を参照し、受信したコマンドがマスタ・ボリュームへ１０１のコマンドであるのか、それともスナップショット・ボリューム１０２０へのコマンドであるのかを判断する。
【００３２】
ステップＳ１８０１でマスタ・ボリューム１０１０へのコマンドと判断した場合、ステップＳ１８０６でマスタ・ボリューム１０１０からデータを読み出し、処理を終了する。
【００３３】
一方、ステップＳ１８０１でスナップショット・ボリューム１０２０へのコマンドと判断した場合、ステップＳ１８０２で差分管理テーブル１０４３を参照し、スナップショット・ボリュームの読み出し要求アドレスにデータがあるかどうかをステップＳ１８０３で判断する。
【００３４】
スナップショット・ボリューム１０２０にデータがあると判断されたときは、ステップＳ１８０５でディレクトリ１０５１を参照し、データが格納されている共有プールボリューム１０３０上のアドレスを取得する。そして、ステップＳ１８０６で共有プールボリューム１０３０からデータを読み出し、処理を終了する。
【００３５】
スナップショット・ボリューム１０２０にデータが無いと判断されたときは、ステップＳ１８０４でボリューム対応管理テーブル１０４２を参照し、ステップＳ１８０６でスナップショット・ボリューム１０２０と対となるマスタ・ボリュームからデータを読み出し、ステップＳ１８０７で読み出したデータをホストに転送して処理を終了する。
【００３６】
ここでは、共有プールを使用したスナップショット方式を例に挙げて説明を行った。このほかに、共有プールを使用せず、スナップショット・ボリュームを仮想ボリュームでなく通常のボリュームで作成し、データの退避をスナップショット・ボリュームに行う方式もある。こちらの方式では仮想スナップショット・ボリュームから共有ボリュームへのアドレス変換が不要になるので、処理が簡易化されるものの、複数のスナップショットを作成しようとすると、ミラーリングの時と同様に、マスタ・ボリュームの複数倍のディスク容量を使用することになる。スナップショット方式でバックアップを行う際には、これらのメリット・デメリットを考慮したうえで方式を決定する必要がある。
【００３７】
作成したスナップショット・ボリューム１０２０は、次のような形態でボリュームの管理が行われる。
【００３８】
たとえば図１９のように、マスタ・ボリュームとスナップショット・ボリュームを直列に並べて管理する方法がある（直列管理）。この管理方式では、マスタ・ボリュームへのデータ更新が発生した時にデータ退避を行うスナップショット・ボリュームは、最新のスナップショット・ボリュームへのデータ退避を行えばよい。
【００３９】
図１９の例で示すと、マスタ・ボリュームＬＶ１０のｐａｇｅ０に“ＧＧ”というデータ更新が発生した場合には、最新のスナップショット・ボリューム１ＬＶ１３に対してデータ“ＡＡ”の退避行うが、ＬＶ１１、ＬＶ１２に対しては処理は発生しない。ＬＶ１１、ＬＶ１２のｐａｇｅ０は、ＬＶ１３のｐａｇｅ０のデータ“ＡＡ”を参照することで、ボリューム・イメージを保持することが出来る。
【００４０】
マスタ・ボリューム１０１０へのデータ更新によるスナップショット・ボリューム１０２０への影響が少ないことから、随時更新されるマスタ・ボリューム１０１０の複製を定期的に採取し、必要に応じてある時点でのマスタ・ボリューム１０１０のイメージをスナップショット・ボリューム１０２０からリストアを行う場合や、スナップショット・ボリューム１０２０を通して、ある時点でのマスタ・ボリューム１０１０のイメージを磁気テープに代表される二次バックアップ装置にバックアップを行う場合には、この形態での管理が行われる。
【００４１】
また、図２０のように、マスタ・ボリューム１０１０とスナップショット・ボリューム１０２０を並列に並べた関係で管理を行う方法もある（並列管理）。この管理方法であれば、スナップショット・ボリューム１０２０へのデータ更新を行った際に、他のボリュームへの影響がない。
【００４２】
図２０の例で示すと、スナップショット・ボリュームＬＶ２２ののｐａｇｅ２に対して“ＥＥ”のデータ更新が発生した場合には、そのデータ更新だけを行えばよい。このＬＶ２２へのデータ更新がＬＶ２１、ＬＶ２３に影響を与えることはなく、ＬＶ２１、ＬＶ２３のｐａｇｅ２はマスタ・ボリュームＬＶ２０のデータを参照することにより、ボリューム・イメージを保持できる。そのため、マスタ・ボリューム１０１０のデータを元に複数の環境を作成し、複製した環境を元に開発業務を行うような場合には、この形態での管理がおこなわれる。
【先行技術文献】
【特許文献】
【００４３】
【特許文献１】特開２００５−２０８９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００４４】
前述のように、スナップショット・ボリューム１０２０の管理方法として、直列管理と並列管理とがあるが、それぞれ管理方法にメリットがあるのと同様にデメリットもある。
【００４５】
直列管理では、スナップショット・ボリューム１０２０へのデータ更新処理において、並列管理の時よりも性能が劣る。図１９の状態においてスナップショット・ボリュームＬＶ１２のｐａｇｅ２に対してデータ更新が発生した場合を考える。スナップショット・ボリュームＬＶ１２のｐａｇｅ２にデータ“ＨＨ”の更新が発生した場合、ＬＶ１１のボリューム・イメージを保持するために、ＬＶ１２のｐａｇｅ２の“ＣＣ”というデータを、ＬＶ１１のｐａｇｅ２に退避する処理が必要になる。このため、スナップショット・ボリューム１０２０へのデータ更新処理は、並列管理の時よりも処理が増え、性能が悪くなる。
【００４６】
並列管理では、マスタ・ボリューム１０１０へのデータ更新処理において、直列管理のときよりも性能が劣る。図２０の状態において、マスタ・ボリュームＬＶ２０のｐａｇｅ０にデータ“ＧＧ”の更新が発生した場合、ＬＶ２１、ＬＶ２２，ＬＶ２３のｐａｇｅ０のボリューム・イメージを保持するために、ＬＶ２１、ＬＶ２２，ＬＶ２３のｐａｇｅ０にデータ“ＡＡ”の退避を行う。このため、マスタ・ボリューム１０１０へのデータ更新処理は、直列管理の時よりも処理が増え、性能が悪くなる。
【００４７】
（発明の目的）
本発明の目的は、上述の課題を解決し、磁気ディスクアレイ・サブシステムにおいて、複製ボリュームの運用方法の選択性を向上させるデータ複製装置、データ複製制御方法、及びデータ複製制御プログラムを提供することである。
【課題を解決するための手段】
【００４８】
本発明の第１のデータ複製装置は、ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置であって、前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段と、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段とを備える。
【００４９】
本発明の第１のデータ複製制御方法は、ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御方法であって、前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御ステップと、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御ステップとを有する。
【００５０】
本発明の第１のデータ複製制御プログラムは、ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御プログラムであって、前記データ複製装置に、前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御処理と、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御処理とを実行させる。
【発明の効果】
【００５１】
本発明によれば、磁気ディスクアレイ・サブシステムにおいて、複製ボリュームの運用方法の選択性を向上させることができる。
【００５２】
その理由は、これまでは択一的であった複製ボリュームの管理方法に選択肢を与え、直列管理の利点である世代管理の運用と、並列管理の利点であるアプリケーション評価などを同時に利用することが出来るためである。例えば、ある時点でのマスタ・ボリュームの複製イメージを元に、その複製ボリュームのボリューム・イメージを複数作成して、同時に複数の開発業務を行う事も出来る。
【図面の簡単な説明】
【００５３】
【図１】本発明の第１の実施の形態によるデータ複製システムの構成の概略を示す機能ブロック図である。
【図２】第１の実施の形態によるデータ複製装置の構成例を示すブロック図である。
【図３】第１の実施の形態による直列データ複製制御手段を示す図である。
【図４】第１の実施の形態による並列データ複製制御手段を示す図である。
【図５】第１の実施の形態による差分管理テーブルを示す図である。
【図６】第１の実施の形態による、直列データ複製制御手段、並列データ複製制御手段、及び差分管理テーブルを示す図である。
【図７】第１の実施の形態による直列複製準備動作を示すフローチャートである。
【図８】第１の実施の形態による並列複製準備動作を示すフローチャートである。
【図９】第１の実施の形態によるライト・コマンド動作を示すフローチャートである。
【図１０】第１の実施の形態によるリード・コマンド動作を示すフローチャートである。
【図１１】本発明のデータ複製装置の最小限の構成を示すブロック図である。
【図１２】本発明のデータ複製装置のハードウェア構成例を示すブロック図である。
【図１３】背景技術によるスナップショット動作の具体例を示す機能ブロック図である。
【図１４】背景技術によるデータ複製制御手段を示す機能ブロック図である。
【図１５】背景技術によるアドレス変換手段を示す機能ブロック図である。
【図１６】背景技術による複製準備動作を示すフローチャートである。
【図１７】背景技術によるライト・コマンド動作を示すフローチャートである。
【図１８】背景技術によるリード・コマンド動作を示すフローチャートである。
【図１９】背景技術によるマスタ・ボリュームとスナップショット・ボリュームが直列に接続管理されている図である
【図２０】背景技術によるマスタ・ボリュームとスナップショット・ボリュームが並列に接続管理されている図である
【発明を実施するための形態】
【００５４】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。
【００５５】
なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００５６】
（第１の実施の形態）
【００５７】
図１は、本発明の第１の実施の形態によるデータ複製システム１０の構成を示すブロック図である。データ複製システム１０は、管理端末２００と、ホストコンピュータ３００と、データ複製装置１００とを備える。
【００５８】
データ複製装置１００は、記憶装置としてのディスクアレイ・サブシステムの機能を有する。
【００５９】
データ複製装置１００は、上位装置としての管理端末２００やホストコンピュータ３００等に対して、複数の磁気ディスク装置１５０（１５０ａ〜１５０ｆ）を割り当ててデータのバックアップ等の処理を行う。
【００６０】
データ複製装置１００は、上位装置との間の接続に用いられるインターフェース制御手段１２０と、各磁気ディスク装置１５０ａ〜１５０ｆとを接続するためのＲＡＩＤ制御手段１４０とを備える。
【００６１】
インターフェース制御手段１２０とＲＡＩＤ制御手段１４０は、制御用メモリ１３０に格納された制御プログラムに基づいて作動するマイクロプロセッサ１１０（以下、単にＣＰＵと称する）によってデータの入出力を制御されるようになっている。
【００６２】
制御用メモリ１３０に書き込む制御用プログラムを書き換えることでＣＰＵ１１０を様々な機能実現手段として利用することが可能である。
【００６３】
ＣＰＵ１１０は、データの複製や、複製したデータへのアクセスを制御する直列データ複製制御手段１１１と、並列データ複製制御手段１１２とを有する。
【００６４】
図１では、６台の磁気ディスク装置１５０ａ〜１５０ｆが接続されている例について示しているが、実際には其の各々が論理的に独立したボリューム、例えば、マスタ・ボリュームやスナップショット・ボリューム、或いは共有プールボリューム等といったものを構成するとは限らず、ＲＡＩＤ制御手段１４０の制御のもとに、複数の磁気ディスク装置に跨って見かけ上単一のボリュームを設けることも、また、１つの磁気ディスク装置にパーティションを設定して、見かけ上複数のボリュームを１つの磁気ディスク装置内に設けることもできる。
【００６５】
（第１の実施の形態の動作の説明）
次に、本実施の形態によるデータ複製装置１００の動作について、以下に示す実施例を用いて詳細に説明する。
【実施例１】
【００６６】
（構成の説明）
この実施例１では、共有プールを使用しないでスナップショット・ボリュームを採取する方法をもとに説明を行う。
【００６７】
図２は、本実施の形態によるデータ複製装置１００の機能的な側面を簡略化して示した機能ブロック図である。
【００６８】
データ複製装置１００は、複製元データを記憶したマスタ・ボリューム１５１と、マスタ・ボリューム１５１の複製ボリュームとなるスナップショット・ボリューム１５２及び１５３と、スナップショット・ボリューム１５３をマスタデータとした複製ボリュームであるスナップショット・ボリューム１５４と、スナップショット・ボリューム１５４の複製ボリュームであるスナップショット・ボリューム１５５と、スナップショット・ボリュームのデータ複製を直列方向に管理する直列データ複製制御手段１１１と、スナップショット・ボリュームのデータ複製を並列方向に管理する並列データ複製制御手段１１２とを有する。マスタ・ボリューム及びスナップショット・ボリュームの個数に関して特に制限は無い。
【００６９】
図２は、以下の処理が行われた後の状態を示している。
【００７０】
（１）マスタ・ボリュームＬＶ０のデータがＰａｇｅ０から順に（Ａ０、Ｂ０、Ｃ０、Ｄ０、・・・、Ｎ０）というデータを保持している時に、直列データ複製制御手段１１１が、スナップショット・ボリュームＬＶ１を作成する。
【００７１】
（２）マスタ・ボリュームＬＶ０のＰａｇｅ０のデータがＡ１に更新されてから、直列データ複製制御手段１１１は、スナップショット・ボリュームＬＶ２を作成する。
【００７２】
（３）マスタ・ボリュームＬＶ０のＰａｇｅ１及びＰａｇｅ２のデータがＢ１及びＣ１に更新されると、並列データ複製制御手段１１２が、スナップショット・ボリュームＬＶ２のスナップショットであるスナップショット・ボリュームＬＶ３を作成する。
【００７３】
（４）次いで、スナップショット・ボリュームＬＶ３のＰａｇｅ３のデータがＤ１に更新された後に、直列データ複製制御手段１１１が、スナップショット・ボリュームＬＶ３のスナップショットであるスナップショット・ボリュームＬＶ４を作成する。
【００７４】
直列データ複製制御手段１１１は、図３に示すように、マスタ属性やスナップショット属性等の、ボリュームの属性を管理する直列属性管理テーブル１３１と、スナップショット・ボリュームにおいて、直列方向の接続情報を保持する直列ボリューム対応管理テーブル１３２とを有する。直列ボリューム対応管理テーブル１３２では、マスタ・ボリュームも含めて、ボリューム間の接続の状態が、双方向の接続で管理される。
【００７５】
並列データ複製制御手段１１２は、図４に示すように、スナップショット・マスタ属性やスナップショット属性等の、ボリュームの属性を管理する並列属性管理テーブル１３３と、ボリューム間のスナップショット関係を保持する並列ボリューム対応管理テーブル１３４とを有する。
【００７６】
並列ボリューム対応管理テーブル１３４では、スナップショットマスタ・ボリュームも含めて、ボリューム間の接続の状態が、双方向の接続で管理される。また、並列方向に作成されたスナップショット・ボリュームから見て、並列方向の分岐元となるスナップショットマスタ・ボリュームの情報も、分岐ＬＶとして管理を行う。
【００７７】
差分管理テーブル１３５は、図５に示すように、マスタ・ボリュームとスナップショット・ボリューム間、およびスナップショットマスタ・ボリュームと並列方向に作成されたスナップショット・ボリューム間の差分の有無を管理する。
【００７８】
（動作の説明）
次に、本実施例のデータ複製装置１００の動作について、フローチャートを参照しながら詳細に説明する。
【００７９】
また、ここではすでにＬＶ０とＬＶ１がスナップショット対応をされた状態から、新たにＬＶ０のスナップショットをＬＶ２に作成する場合で考える。
【００８０】
この時の直列データ複製制御手段１１１の状態は、図６の状態とする。ここでは直列属性管理テーブル１３１においてＬＶ０にマスタ属性が、ＬＶ１にはスナップショット属性がセットされており、直列ボリューム対応管理テーブル１３２において、マスタ・ボリュームＬＶ０の次にスナップショット・ボリュームＬＶ１が接続されていることが確認できる。
【００８１】
まず、スナップショット動作の事前準備として、図７に示すように、ステップＳ７００でマスタ・ボリュームとスナップショット・ボリュームとして使用するロジカル・ボリュームを作成する。
【００８２】
この際、ロジカル・ボリュームに関連する各種テーブルを初期化しておく。具体的には、作成するＬＶに対応する直列属性管理テーブル１３１の属性をクリア、直列ボリューム対応管理テーブル１３２のＮＥＸＴ  ＬＩＮＫ、ＰＲＥ  ＬＩＮＫをクリア、並列属性管理テーブル１３３の属性をクリア、並列ボリューム対応管理テーブル１３４のＮＥＸＴ  ＬＩＮＫ、ＰＲＥＬＩＮＫ、分岐ＬＶをクリアする。
【００８３】
次に、ステップＳ７０１でデータ複製装置１００が直列スナップショット・コマンドを受信すると、ステップＳ７０２でマスタ・ボリュームとスナップショット・ボリュームのペア管理を行う。
【００８４】
ここではコマンドパラメータとしてマスタ・ボリュームとしてＬＶ０、スナップショット・ボリュームにはＬＶ２が指定される場合、まず直列属性管理テーブル１３１でＬＶ０にマスタ・ボリュームが設定されていることを確認したうえで、ＬＶ２にスナップショット属性を設定する。
【００８５】
次に直列ボリューム対応管理テーブル１３２のＬＩＮＫ情報を更する。コマンドパラメータより、ＬＶ２はマスタ・ボリュームＬＶ０の最新のスナップショットとなるので、ＮＥＸＴ  ＬＩＮＫをＬＶ０→ＬＶ２→ＬＶ１となるように、ＰＲＥ  ＬＩＮＫはその逆となるように情報を更新する。次に、スナップショット・ボリュームに指定したＬＶ２の差分管理テーブル１３５をクリアする。
【００８６】
これ以降、スナップショット・ボリュームＬＶ２は、スナップショット・コマンドを受信した時点におけるマスタ・ボリュームＬＶ０のボリューム・イメージを保持する。
【００８７】
ここではＬＶ０がすでにマスタ属性がセットされている例で説明したが、もしＬＶ０にスナップショット設定がされておらず、マスタ属性がセットされていない場合でスナップショット・コマンドを受信したときには、ステップＳ７０２にて直列属性管理テーブル１３１でＬＶ０にマスタ属性の設定が行われる。
【００８８】
次に、並列方向にスナップショットを作成する動作について説明する。ここではスナップショット・ボリュームＬＶ２に対して、並列方向にスナップショットＬＶ３を作成する例で説明を行う。
【００８９】
まず、図８に示されるように、ステップＳ８００でスナップショット・ボリュームとして使用するロジカル・ボリュームを作成する。ここで行う処理は、ステップＳ７０１と同じ処理を行う。
【００９０】
次に、ステップＳ８０１でデータ複製装置１００が並列スナップショット・コマンドを受信すると、ステップＳ８０２でスナップショットマスタ・ボリュームとスナップショットサブ・ボリュームのペア管理を行う。
【００９１】
まず並列属性管理テーブル１３３に属性をセットする。スナップショットマスタ・ボリュームに指定されたＬＶ２にスナップショット・マスタ属性を、スナップショット・ボリュームに指定されたＬＶ３にスナップショットサブ属性をセットする。
【００９２】
次に、並列ボリューム対応管理テーブル１３４のＬＩＮＫ情報を更する。コマンドパラメータより、ＬＶ３は、ＬＶ２を並列方向のマスタ・ボリュームとしてみた場合、ＬＶ０の最新のスナップショットとなるので、ＮＥＸＴ  ＬＩＮＫをＬＶ２→ＬＶ３となるように、ＰＲＥ  ＬＩＮＫはその逆となるように情報を更新する。
【００９３】
次に、スナップショットＬＶ３のスナップショット・マスタとなるＬＶ２を分岐ＬＶに登録する。
【００９４】
次に、直列属性管理テーブル１３１に、スナップショットサブ・ボリュームに指定したＬＶ３にスナップショット属性をセットする。
【００９５】
次に、スナップショット・ボリュームに指定したＬＶ３の差分管理テーブル１３５をクリアする。
【００９６】
これ以降、スナップショットサブ・ボリュームＬＶ３は、並列スナップショット・コマンドを受信した時点におけるスナップショットマスタ・ボリュームＬＶ２のボリューム・イメージを保持する。
【００９７】
（ライト・コマンド処理の動作の説明）
次に、スナップショット・コマンドを受信した後に発生したライト・コマンド処理について、図９に示すフローチャートを参照しながら説明する。
【００９８】
まず、直列データ複製制御手段１１１は、直接属性管理テーブル１３１を参照し（ステップＳ９００）、ライト・コマンドの対象ボリュームがスナップショット属性を持っているかを判断する（ステップＳ９０１）。スナップショット属性を持っていると判断した場合（ステップＳ９０１”ＹＥＳ”）の例に関しては後述とし、先に、直列データ複製制御手段１１１が、該ボリュームはスナップショット属性を持っていないと判断した場合に関して説明する。
【００９９】
直列データ複製制御手段１１１は、ライト・コマンドの対象ボリュームがスナップショット属性を持っていないと判断した場合（ステップＳ９０１”ＮＯ”）、次いで、該対象ボリュームがマスタ属性を持っているか（マスタ・ボリュームであるか）を判断する（ステップＳ９０２）。
【０１００】
ライト・コマンドの対象ボリュームがマスタ属性を持っていない場合（ステップＳ９０２”ＮＯ”）、ライト・コマンドの対象ボリュームはスナップショット処理と関係のないボリュームへのライト・コマンドであるため、直列データ複製制御手段１１１は、ライト・コマンドの対象ボリュームにライトデータを書き込み、ライト・コマンドを終了する（ステップＳ９０８）。
【０１０１】
ライト・コマンドの対象ボリュームがマスタ属性を持っている場合（ステップＳ９０２”ＹＥＳ”）、直列データ複製制御手段１１１は、直列ボリューム対応管理テーブル１３２を参照する（ステップＳ９０３）。ここでは、ライト・コマンドの対象のボリュームはマスタ属性であるので、直列ボリューム対応管理テーブル１３２のライト・コマンドの対象のボリュームのＮＥＸＴ  ＬＩＮＫを辿り、一番新しいスナップショット・ボリュームを特定する。
【０１０２】
次に、直列データ複製制御手段１１１は、差分管理テーブル１３５を参照し（ステップＳ９０４）、マスタ・ボリュームと最新のスナップショット・ボリュームとの間において、ライト対象範囲に差分があるかを判断する（ステップＳ９０５）。
【０１０３】
直列データ複製制御手段１１１は、ライト対象範囲に差分があると判断した場合（ステップＳ９０５”ＹＥＳ”）、ライト・コマンドの対象のマスタ・ボリュームにライトデータを書き込み、ライト・コマンドを終了する（ステップＳ９０８）。
【０１０４】
直列データ複製制御手段１１１がライト対象範囲に差分がないと判断した場合（ステップＳ９０５”ＮＯ”）、直列スナップショット・コマンドを受信した瞬間のマスタ・ボリュームのボリューム・イメージを、スナップショット・ボリュームに保持する必要がある。
【０１０５】
従って、直列データ複製制御手段１１１は、ライト対象範囲に差分がないと判断した場合（ステップＳ９０５”ＮＯ”）、直列スナップショット・コマンドを受信した瞬間の、マスタ・ボリュームの該ライト対象範囲のデータを、最新のスナップショット・ボリュームへコピーする（ステップＳ９０６）。
【０１０６】
次いで、直列データ複製制御手段１１１は、該最新のスナップショット・ボリュームがマスタ・ボリュームと差分を有することを示すために、差分管理テーブル１３５の該当箇所に、１をセットする（ステップＳ９０７）。
【０１０７】
ステップＳ９０６、Ｓ９０７においてマスタ・ボリュームから最新のスナップショット・ボリュームへのデータの退避が完了した後、直列データ複製制御手段１１１は、ライト・コマンドの対象のマスタ・ボリュームにライトデータを書き込み、ライト・コマンドを終了する（ステップＳ９０８）。
【０１０８】
次に、ステップＳ９０２で直列データ複製制御手段１１１がライト・コマンドの対象のボリュームがスナップショット属性を持っていると判断した場合の処理について説明する。
【０１０９】
この場合、直列データ複製制御手段１１１は、まず直列ボリューム対応管理テーブル１３２を参照し（ステップＳ９１０）ライト・コマンドの対象のスナップショット・ボリュームのＮＥＸＴ  ＬＩＮＫを辿り、ライト・コマンドの対象のスナップショット・ボリュームに下位のスナップショット・ボリュームが存在しているかを確認する（ステップＳ９１１）。
【０１１０】
ライト・コマンドの対象のスナップショット・ボリュームに下位のスナップショット・ボリュームが存在している場合（ステップＳ９１１”ＹＥＳ”）、直列データ複製制御手段１１１は、差分管理テーブル１３５を参照し（ステップＳ９１２）、ライト・コマンドの対象のスナップショット・ボリュームと該下位のスナップショット・ボリュームとの間で、ライト対象範囲において差分があるかを判断する（ステップＳ９１３）。
【０１１１】
直列データ複製制御手段１１１は、該ライトの対象の範囲において差分が無いと判断した場合（ステップＳ９１３）、ライト・コマンドの対象のスナップショット・ボリュームの該対象範囲のデータを、下位スナップショット・ボリュームへコピーする（ステップＳ９１４）。
【０１１２】
次いで、直列データ複製制御手段１１１は、該下位スナップショット・ボリュームがライト・コマンドの対象のスナップショット・ボリュームと差分を有することを示すために、差分管理テーブル１３５の該当箇所に、１をセットする（ステップＳ９１５）。ここまでの操作により、下位スナップショット・ボリュームのボリューム・イメージは保持される。
【０１１３】
ステップＳ９１１で、直列データ複製制御手段１１１が、ライト・コマンドの対象のスナップショット・ボリュームのＮＥＸＴ  ＬＩＮＫに値が格納されておらず、下位のスナップショット・ボリュームが存在しないと判断した場合は、ライト・コマンドの対象のスナップショット・ボリュームは、直列管理における最下位のスナップショット・ボリュームであると判断できる。
【０１１４】
この場合、ステップＳ９１１からステップＳ９１６へ進む。また、ステップＳ９１３において下位のスナップショット・ボリュームに差分があると判断した場合も、同じようにステップＳ９１６に進む。
【０１１５】
次に、ステップＳ９１６ではライト・コマンドの対象のスナップショット・ボリュームに対して並列管理されているスナップショット・ボリュームが存在しているか確認するために、並列データ複製制御手段１１２が、並列属性管理テーブル１３３を参照し、ライト・コマンドの対象のスナップショット・ボリュームにスナップショット・マスタ属性がセットされているかを判断する（ステップＳ９１７）。
【０１１６】
ステップＳ９１７で、スナップショット・マスタ属性がセットされていないと判断された場合は、ライト・コマンドの対象のスナップショット・ボリュームには並列管理されたスナップショット・ボリュームが存在しないということになる。
【０１１７】
従って、並列データ複製制御手段１１２は、ライト・コマンドの対象のスナップショット・ボリュームにスナップショット・マスタ属性がセットされていないと判断した場合（ステップＳ９１７”ＮＯ”）、ライト・コマンドの対象のスナップショット・ボリュームにライトデータを書き込み、ライト・コマンドを終了する（ステップＳ９０８）。
【０１１８】
ステップＳ９１７で、スナップショット・マスタ属性がセットされていると判断された場合は、並列管理されたスナップショットサブ属性を持つスナップショット・ボリュームに対してデータ退避処理が必要になる。
【０１１９】
従って、並列データ複製制御手段１１２は、ライト・コマンドの対象のスナップショット・ボリュームにスナップショット・マスタ属性がセットされていると判断した場合（ステップＳ９１７”ＹＥＳ”）、並列ボリューム対応管理テーブル１３４を参照し、スナップショット・マスタ属性のスナップショット・ボリュームのＮＥＸＴ  ＬＩＮＫを辿り、並列管理されているスナップショットサブ属性を持つスナップショットサブ・ボリュームを特定する（ステップＳ９１８）。
【０１２０】
次いで、並列データ複製制御手段１１２は、差分管理テーブル１３５を参照し（ステップＳ９１９）、ライト・コマンドの対象のスナップショット・ボリュームと該スナップショットサブ・ボリュームとの間において、ライト対象範囲に差分があるかを判断する（ステップＳ９２０）。
【０１２１】
並列データ複製制御手段１１２は、ライト対象範囲に差分があると判断した場合（ステップＳ９２０”ＹＥＳ”）、ステップＳ９２３の処理に進む。
【０１２２】
並列データ複製制御手段１１２は、ライト対象範囲に差分がないと判断した場合（ステップＳ９２０”ＹＥＳ”）、スナップショット・ボリュームの該対象範囲のデータを、スナップショトサブ・ボリュームへコピーする（ステップＳ９２１）。
【０１２３】
次いで、並列データ複製制御手段１１２は、スナップショットサブ・ボリュームに差分があることを示すために、差分管理テーブル１３５の該当箇所に、１をセットする（ステップＳ９２２）。
【０１２４】
ここまでの操作により、スナップショットサブ・ボリュームのボリューム・イメージは保持される。
【０１２５】
次いで、並列データ複製制御手段１１２は、並列ボリューム対応管理テーブル１３４を参照し、今回処理を行ったスナップショットサブ・ボリュームに対してＮＥＸＴ  ＬＩＮＫの値が格納されているかを確認する（ステップＳ９２３）。
【０１２６】
スナップショットサブ・ボリュームにＮＥＸＴ  ＬＩＮＫが設定されている場合（ステップＳ９２３”ＹＥＳ”）、ライト・コマンドの対象のスナップショット・ボリュームは、並列管理された複数のスナップショットサブ・ボリュームを持つことを意味している。
【０１２７】
この場合、ステップＳ９１８に戻り、今度は二段目に並列管理されたスナップショットサブ・ボリュームに対してステップＳ９１８〜Ｓ９２２の処理を行い、スナップショットサブ・ボリュームのボリューム・イメージの保持を行う。
【０１２８】
このようにして、複数接続された全てのスナップショットサブ・ボリュームへのデータ退避が終えた後に（ステップＳ９２３”ＮＯ”）、並列データ複製制御手段１１１は、ライト・コマンドの対象のスナップショット・ボリュームにライトデータを書き込み、ライト・コマンドを終了する（ステップＳ９０８）。
【０１２９】
（リード・コマンド処理の動作の説明）
次に、スナップショット・コマンドを受信した後に発生したリード・コマンド処理について、図１０に示すフローチャートを参照しながら説明する。
【０１３０】
リード・コマンドを受信した場合、まず、直列データ複製制御手段１１１が、まず直列属性管理テーブル１３１を参照し（ステップＳ１０００）、リード・コマンドの対象ボリュームがスナップショット属性を持っているかを判断する（ステップＳ１００１）。
【０１３１】
リード・コマンドの対象ボリュームがスナップショット属性を持っていない場合、リード・コマンドの対象ボリュームはスナップショット処理と関係のないボリュームになる。
【０１３２】
従って、直列データ複製制御手段１１１は、リード・コマンドの対象ボリュームがスナップショット属性を持っていないと判断した場合（ステップＳ１００１”ＮＯ”）、リード・コマンドの対象ボリュームからリード対象範囲のデータを読み出し（ステップＳ１００８）、読み出したデータをホストコンピュータ３００へ転送し、リード・コマンドを終了する（ステップＳ１００９）。
【０１３３】
直列データ複製制御手段１１１は、リード・コマンドの対象ボリュームがスナップショット属性を持っていると判断した場合（ステップＳ１００１”ＹＥＳ”）、該ボリュームのリード対象範囲にデータがあるかを確認するために、差分管理テーブル１３５を参照する（ステップＳ１００２）。
【０１３４】
直列データ複製制御手段１１１は、差分管理テーブル１３５を参照した結果、リード対象範囲にデータがあると判断した場合（ステップＳ１００３”ＹＥＳ”）、リード・コマンドの対象ボリュームのリード対象範囲からデータを読み出し（ステップＳ１００８）、次いで、読み出したデータをホストコンピュータ３００へ転送し、リード・コマンドを終了する（ステップＳ１００９）。
【０１３５】
直列データ複製制御手段１１１は、差分管理テーブル１３５を参照した結果、リード対象範囲にデータが無いと判断した場合（ステップＳ１００３”ＮＯ”）、上位のスナップショット・ボリュームを検索し、リード対象のスナップショット・ボリュームが参照しているデータの所在を検索するため、ステップＳ１００４の処理へ進む。
【０１３６】
この場合、直列データ複製制御手段１１１は、直列ボリューム対応管理テーブル１３２を参照し（ステップＳ１００４）、次いで、リード・コマンドの対象のスナップショット・ボリュームのＰＲＥ  ＬＩＮＫを参照し、上位世代のスナップショット・ボリュームが存在するか探す（ステップＳ１００５）。
【０１３７】
リード・コマンドの対象のスナップショット・ボリュームのＰＲＥ  ＬＩＮＫに値が格納されていて、上位世代のスナップショット・ボリュームが存在すると場合（ステップＳ１００５”ＹＥＳ”）、直列データ複製制御手段１１１は、該上位世代のスナップショット・ボリュームでリード対象範囲にデータがあるか否かを確認するために、差分管理テーブル１３５を参照する（ステップＳ１００６）。
【０１３８】
次いで、直列データ複製制御手段１１１は、上位世代のスナップショット・ボリュームの該当箇所にデータがあると判断した場合（ステップＳ１００７”ＹＥＳ”）、上位世代のスナップショット・ボリュームのリード対象範囲からデータを読み出し（ステップＳ１００８）、該読み出したデータをホストコンピュータ３００へ転送し、リード・コマンドを終了する（ステップＳ１００９）。
【０１３９】
直列データ複製制御手段１１１は、上位世代のスナップショット・ボリュームの該当箇所にデータが無い場合（ステップＳ１００７”ＮＯ”）、上位世代のスナップショット・ボリュームのさらに上位世代のスナップショット・ボリュームに対して検索を行うために、ステップＳ１００４から１６０７の処理を繰り返し行う。そして、リード・コマンド処理のデータ読み出し対象のボリュームを決定できた後に、ステップＳ１００８で検索されたボリュームのリード対象範囲からデータを読み出し、ステップＳ１００９で読み出したデータをホストコンピュータ３００へ転送し、リード・コマンドを終了する。
【０１４０】
ステップＳ１００５で上位のスナップショットが見つからない場合は、並列データ複製制御手段１１２が、並列属性管理テーブル１３３を参照し（ステップＳ１０１０）、現在の検索対象のボリュームのスナップショットサブ属性を確認する（ステップＳ１０１１）。
【０１４１】
現在の検索対象のボリュームにスナップショットサブ属性がセットされていない場合、現在の検索対象のボリュームはマスタ・ボリュームということになる。
【０１４２】
従って、並列データ複製制御手段１１２は、現在の検索対象のボリュームにスナップショットサブ属性がセットされていない場合（ステップＳ１０１１”ＮＯ”）、マスタ・ボリューム１５１のリード対象範囲からデータを読み出し、（ステップＳ１００８）、読み出したデータをホストコンピュータ３００へ転送し、リード・コマンドを終了する（ステップＳ１００９）。
【０１４３】
現在の検索対象のボリュームにスナップショットサブ属性がセットされている場合、次の検索対象のボリュームを、並列管理の分岐元のボリュームであるスナップショット・マスタ属性を持つボリュームに変更する必要がある。
【０１４４】
従って、並列データ複製制御手段１１２は、現在の検索対象のボリュームにスナップショットサブ属性がセットされている場合（ステップＳ１０１１”ＹＥＳ”）、並列ボリューム対応管理テーブル１３４を参照し（ステップＳ１０１２）、分岐ＬＶに登録されているスナップショットマスタ・ボリュームを特定し、次の検索対象のスナップショット・ボリュームとして扱う（ステップＳ１０１３）。
【０１４５】
そして、並列データ複製制御手段１１２は、スナップショットマスタ・ボリュームがデータを保持しているかを確認するために、差分管理テーブル１３５を参照し（ステップＳ１００６）、スナップショットマスタ・ボリュームのリード対象範囲にデータがあると判断した場合（ステップＳ１００７”ＹＥＳ”）スナップショットマスタ・ボリュームの該リード対象範囲からデータを読み出し（ステップＳ１００８）、該読み出したデータをホストコンピュータ３００へ転送し、リード・コマンドを終了する（ステップＳ１００９）。
【０１４６】
並列データ複製制御手段１１２は、ステップＳ１００７でスナップショットマスタ・ボリュームにデータが無いと判断した場合、ステップＳ１００４〜１６０７およびステップＳ１０１０〜１６１３の処理を繰り返し、読み出し先のボリュームが決定されるまでボリュームの検索処理を続ける。
【０１４７】
リード・コマンド処理を上記のように行う事で、直列管理と並列管理が複数組みあわされている構成の時でも、適切なデータを読み出すことが出来る。
【０１４８】
（第１の実施の形態による効果）
【０１４９】
本実施の形態によれば、これまでに述べた方法でスナップショット・ボリュームを管理することで、スナップショット・ボリュームの世代管理が行える。
【０１５０】
また、本実施の形態によれば、マスタ・ボリュームへのデータ更新時発生時には最新のスナップショット・ボリュームだけがデータ退避の対象であり、さらにスナップショット・ボリュームにデータ更新が発生する時はスナップショットサブ属性の持つスナップショット・ボリュームに書き込むことで、データ更新が他のスナップショット・ボリュームへの影響を与えることのない、言わば直列管理と並列管理の両方の利点を享受できる磁気ディスクアレイ・サブシステムを構築できる。
【０１５１】
なお、本発明の課題を解決できる最小限の構成を図１１に示す。データ複製装置１００が、ホストコンピュータ３００から要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置１００であって、前記ホストコンピュータ３００から書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段１１１と、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段１１２とを備えることで、上述した本発明の課題を解決することができる。
【０１５２】
次に、本発明のデータ複製装置１００のハードウェア構成例について、図１２を参照して説明する。図１２は、データ複製装置１００のハードウェア構成例を示すブロック図である。
【０１５３】
図１２を参照すると、本発明のデータ複製装置１００は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部８０２、ネットワークを介してデータの送受信を行う通信部８０３、入力装置８０５や出力装置８０６及び記憶装置８０７と接続してデータの送受信を行う入出力インターフェース部８０４、上記各構成要素を相互に接続するシステムバス８０８を備えている。記憶装置８０７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【０１５４】
本発明のデータ複製装置１００の各機能は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置８０７に格納し、そのプログラムを主記憶部８０２にロードしてＣＰＵ８０１で実行することにより、ソフトウェア的に実現することも可能である。
【０１５５】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０１５６】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【０１５７】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【０１５８】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【０１５９】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【０１６０】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【０１６１】
（付記１）
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置であって、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段と
を備えることを特徴とするデータ複製装置。
【０１６２】
（付記２）
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御手段は、前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御手段は、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする付記１に記載のデータ複製装置。
【０１６３】
（付記３）
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、
前記直列データ複製制御手段が、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする付記１又は付記２に記載のデータ複製装置
【０１６４】
（付記４）
前記並列データ複製制御手段が、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記３に記載のデータ複製装置。
【０１６５】
（付記５）
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御手段は、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記４に記載のデータ複製装置。
【０１６６】
（付記６）
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御手段が、
前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームから、データを読み出す
ことを特徴とする付記１から付記５のいずれか１項に記載のデータ複製装置。
【０１６７】
（付記７）
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御手段が、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする付記６に記載のデータ複製装置。
【０１６８】
（付記８）
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御方法であって、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御ステップと、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御ステップと
を有することを特徴とするデータ複製制御方法。
【０１６９】
（付記９）
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御ステップで、
前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御ステップで、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする付記８に記載のデータ複製制御方法。
【０１７０】
（付記１０）
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、
前記直列データ複製制御ステップで、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする付記８又は付記９に記載のデータ複製制御方法。
【０１７１】
（付記１１）
前記並列データ複製制御ステップで、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記１０に記載のデータ複製制御方法。
【０１７２】
（付記１２）
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御ステップで、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記１１に記載のデータ複製制御方法。
【０１７３】
（付記１３）
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御ステップで、
前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームからデータを読み出す
ことを特徴とする付記８から付記１２のいずれか１項に記載のデータ複製制御方法。
【０１７４】
（付記１４）
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御ステップで、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする付記１３に記載のデータ複製制御方法。
【０１７５】
（付記１５）
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御プログラムであって、
前記データ複製装置に、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御処理と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御処理と
を実行させることを特徴とするデータ複製制御プログラム。
【０１７６】
（付記１６）
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御処理で、
前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御処理で、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする付記１５に記載のデータ複製制御プログラム。
【０１７７】
（付記１７）
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、
前記直列データ複製制御処理で、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする付記１５又は付記１６に記載のデータ複製制御プログラム。
【０１７８】
（付記１８）
前記並列データ複製制御処理で、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記１７に記載のデータ複製制御プログラム。
【０１７９】
（付記１９）
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御処理で、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記１８に記載のデータ複製制御プログラム。
【０１８０】
（付記２０）
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御処理で、
前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームからデータを読み出す
ことを特徴とする付記１５から付記１９のいずれか１項に記載のデータ複製制御プログラム。
【０１８１】
（付記２１）
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御処理で、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする付記２０に記載のデータ複製制御プログラム。
【産業上の利用可能性】
【０１８２】
本発明は、磁気ディスクアレイ・サブシステムにおけるボリューム・レベルのバックアップ等の用途に利用できる。
【符号の説明】
【０１８３】
１０：データ複製システム
１００：データ複製装置
１１０：ＣＰＵ
１１１：直列データ複製制御手段
１１２：並列データ複製制御手段
１３１：直列属性管理テーブル
１３２：直列ボリューム対応管理テーブル
１３３：並列属性管理テーブル
１３４：並列ボリューム対応管理テーブル
１３５：差分管理テーブル
１２０：インターフェース制御手段
１３０：制御用メモリ
１４０：ＲＡＩＤ制御手段
１５０：磁気ディスク装置
２００：管理端末
３００：ホストコンピュータ
１５１：マスタ・ボリューム
１５２〜１５５：スナップショット・ボリューム
８０１：ＣＰＵ
８０２：主記憶部
８０３：通信部
８０４：入出力インターフェース部
８０５：入力装置
８０６：出力装置
８０７：記憶装置
８０８：システムバス
【図１】
0005445504.tif 000002
【図２】
0005445504.tif 000003
【図３】
0005445504.tif 000004
【図４】
0005445504.tif 000005
【図５】
0005445504.tif 000006
【図６】
0005445504.tif 000007
【図７】
0005445504.tif 000008
【図８】
0005445504.tif 000009
【図９】
0005445504.tif 000010
【図１０】
0005445504.tif 000011
【図１１】
0005445504.tif 000012
【図１２】
0005445504.tif 000013
【図１３】
0005445504.tif 000014
【図１４】
0005445504.tif 000015
【図１５】
0005445504.tif 000016
【図１６】
0005445504.tif 000017
【図１７】
0005445504.tif 000018
【図１８】
0005445504.tif 000019
【図１９】
0005445504.tif 000020
【図２０】
0005445504.tif 000021