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