説明

データ複製装置、データ複製制御方法、及びデータ複製制御プログラム

【課題】 磁気ディスクアレイ・サブシステムにおいて、複製ボリュームの運用方法の選択性を向上させる。
【解決手段】 データ複製装置100が、ホストコンピュータ300から要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置100であって、前記ホストコンピュータ300から書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段111と、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段112とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、磁気ディスクアレイ・サブシステム等の記憶装置で使用される複製データ処理技術に関し、特に、スナップショット技術を使用してデータ複製を行う複製データ処理技術に関する。
【背景技術】
【0002】
近年、社会基盤がIT化されるにつれ、企業、或いは個人が保有するデータ量は急激に増加している。また、電子商取引の普及や査証用データ保管の法制化等により、データ自体の質や価値が高まってきている。このような中で、データ損失という事態が及ぼす影響に関して、広く一般に認識されるようになるとともに、データ損失を未然に防ぐ手段として、バックアップ技術に大きな関心が寄せられてきている。
【0003】
ここで、ディスクアレイ・サブシステムにおいてこれまで採用されている、ミラーリング方式のバックアップ手順について説明する。
【0004】
ミラーリング方式のバックアップ手順では、まず、バックアップの対象となるボリューム(マスタ・ボリューム)の静止点を確保するために、マスタ・ボリュームに対してアクセスしている、データベースなどのアプリケーションを停止する。
【0005】
次に、マスタ・ボリュームと同一容量のボリューム(バックアップ・ボリューム)を作成し、マスタ・ボリュームの全データをバックアップ・ボリュームへコピーする。コピーが完了すると、停止していたデータベースなどのアプリケーションを再開する一方、バックアップ・ボリュームからデータを読み出し、テープなどのバックアップ用装置にデータを保存する。
【0006】
前述の手順では、アプリケーションを停止してから、バックアップ・ボリュームの作成と、マスタ・ボリュームからバックアップ・ボリュームへのデータ・コピーとを実行したが、アプリケーションが動作している最中に、バックアップ・ボリュームを作成し、マスタ・ボリュームからバックアップ・ボリュームへのデータ・コピーを起動しておくことにより、静止点を確保してから、マスタ・ボリュームとバックアップ・ボリュームとの同期を取るまでの時間を短縮する方式も実現されている。
【0007】
しかし、何れの方式においても、静止点を確保してから、マスタ・ボリュームのデータをバックアップ・ボリュームへ完全にコピーし終えるまでに、コピー量に応じた時間を要することになる。
【0008】
また、バックアップ用途以外の、例えばデータ・マイニングなどのために、同一マスタ・ボリュームに対して複数のバックアップ・ボリュームを作成することがよくあるが、その場合、マスタ・ボリュームの数倍のデータ容量を消費することになる。
【0009】
このようなミラーリング方式の問題を回避するために、最近は、スナップショット方式を採用したバックアップが頻繁に使われるようになってきている。このようなスナップショット方式を採用したバックアップの一例が、特許文献1に開示されている。
【0010】
ここで、特許文献1に記載されている、共有プールを使用するスナップショット方式を採用した、従来のデータ複製システムの構成について、図13、図14、図15を参照して、その一例を説明する。
【0011】
スナップショット方式を採用した背景技術のデータ複製システムは、マスタ・ボリューム1010と、マスタ・ボリューム1010と同一容量で、実際には物理的な容量を持たない仮想的なボリュームであるスナップショット・ボリューム10200と、スナップショット・ボリューム1020のデータを格納するボリュームである共有プールボリューム10300と、スナップショット・ボリューム1020へのデータ・アクセスを管理するデータ複製制御手段10400と、複製データの実際の格納先を管理するアドレス変換手段10500とを備える。
【0012】
データ複製制御手段1040は、図14に示すように、マスタやスナップショット等の、ボリュームの属性を管理する属性管理テーブル1041と、ボリューム間のスナップショット関係を保持するボリューム対応管理テーブル1042と、マスタ・ボリュームとスナップショット・ボリュームとの差分を管理する差分管理テーブル1043とを有する。
【0013】
差分管理テーブル1043では、スナップショット・ボリュームがデータを保持していない場合には値0をとり、データを保持している場合には値1をとる。
【0014】
アドレス変換手段1050は、図15に示すように、スナップショット・ボリュームの実際の格納アドレスを保持するディレクトリ1051と、共有プールボリュームの使用状況を管理する割当管理テーブル1052とを有する。
【0015】
次に、図16、図17、図18を参照して、背景技術によるデータ複製システムの動作について説明する。ここでは、LV(ロジカル・ボリューム)0をマスタ・ボリューム1010、LV1をスナップショット・ボリューム1020、LV2を共有プールボリューム1030として使用し、スナップショット・コマンド受信前において、マスタ・ボリューム1010には(AA、BB、CC、DD、・・・、NN)というデータが格納されているものとする。
【0016】
ボリュームを複製する手順として、まず、図16に示されるように、ステップS1600で、データ複製装置1000内に共有ボリュームが作製され、属性管理テーブル1041と割当管理テーブル1052とが初期化される。
【0017】
すなわち、属性管理テーブル1041においてLV2に共有属性を設定し、割当管理テーブル1052において共有プールボリュームが未使用状態であることを示す値0を設定する。
【0018】
次のステップS1601で、マスタ・ボリューム1010と、このマスタ・ボリューム1010と同じ記憶容量のスナップショット・ボリューム1020とを作製する。
【0019】
次のステップS1602で、スナップショット・コマンドをデータ複製装置1000が受信すると、ステップS1603で属性管理テーブル1041と、ボリューム対応管理テーブル1042と、差分管理テーブル1043とが初期化される。
【0020】
すなわち、属性管理テーブル1041においてLV0にマスタ属性を、LV1にスナップショット属性を設定し、ボリューム対応管理テーブル1042においてLV0とLV1とがスナップショット関係にあることを示すように、スナップショットのLV0にLV1を設定し、スナップショットのLV1にLV0を設定する。
【0021】
また、差分管理テーブル1043のスナップショット・ボリューム1020、つまりこの場合はLV1に、該スナップショット・ボリューム1020がデータを保持していないことを示す値0を設定し、ディレクトリ1051において、スナップショット・ボリューム1020に共有プールボリュームの記憶空間が割り当てられていないことを示すnull値を設定する。
【0022】
次に、前述のボリューム複製手順で説明したデータ複製装置1000が、ライト・コマンドとリード・コマンドを受信したときの処理手順について説明する。
【0023】
まず、ライト・コマンドを受信したときの処理手順について説明する。データ複製装置1000のマイクロプロセッサ(以下、単にCPUと称する)は、図17に示されるステップS1700で属性管理テーブル1041を参照し、受信したコマンドがマスタ・ボリューム1010へのコマンドであるのか、それともスナップショット・ボリューム1020へのコマンドであるのかを判断する。
【0024】
ステップS1701でスナップショット・ボリューム1020へのライト・コマンドと判断した場合にはデータを書き込まずに処理を終了しているが、これはスナップショット・ボリューム1020がスナップショット・コマンドを受信した時点でのマスタ・ボリューム1010の複製を維持するという運用に従った場合の処理(例えば、バックアップ等の場合の処理)であり、その他の運用形態においては、ライト・コマンドの要求通りにスナップショット・ボリューム1020へデータを書き込んでも良い。
【0025】
一方、ステップS1701でマスタ・ボリュームへのライト・コマンドと判断した場合は、CPUは、ステップS1702でボリューム対応管理テーブル1042を参照し、このマスタ・ボリュームと対になるスナップショット・ボリュームを特定する。
【0026】
そして、特定したスナップショット・ボリューム1020の書き込み要求アドレスにデータがあるかどうかを、ステップS1703で差分管理テーブル1043から判断する。スナップショット・ボリューム1020にデータがあると判断されたときは、ステップS1709でマスタ・ボリューム1010へデータを書き込み、処理を終了する。
【0027】
スナップショット・ボリューム1020にデータが無いと判断されたときは、ステップS1705で割当管理テーブル1052を探索し、共有プールボリュームの未使用領域の中から今回使用する領域を決定する。そして、ステップS1706でマスタ・ボリューム1010の書き込み要求アドレスにある既存データを、前記共有プールボリューム1030の未使用領域にコピーしてから、ステップS1707で割当管理テーブル1052の当該箇所が使用済みであることを示す値1を設定し、ディレクトリ1051の当該箇所に前記未使用領域のアドレスを設定する。
【0028】
そして、ステップS1708で差分管理テーブル1043の当該箇所にデータがあることを示す値1を設定し、ステップS1709でマスタ・ボリューム1010へデータを書き込み、処理を終了する。
【0029】
スナップショット・コマンド受信後に、マスタ・ボリュームLV0のpage3に対して(ZC)のライト・コマンドが発行された後の各テーブルの状態を、図13、図14、図15に示す。
【0030】
次に、リード・コマンドを受信したときの処理手順について説明する。
【0031】
CPUは、図18に示されるステップS1800で属性管理テーブル1041を参照し、受信したコマンドがマスタ・ボリュームへ101のコマンドであるのか、それともスナップショット・ボリューム1020へのコマンドであるのかを判断する。
【0032】
ステップS1801でマスタ・ボリューム1010へのコマンドと判断した場合、ステップS1806でマスタ・ボリューム1010からデータを読み出し、処理を終了する。
【0033】
一方、ステップS1801でスナップショット・ボリューム1020へのコマンドと判断した場合、ステップS1802で差分管理テーブル1043を参照し、スナップショット・ボリュームの読み出し要求アドレスにデータがあるかどうかをステップS1803で判断する。
【0034】
スナップショット・ボリューム1020にデータがあると判断されたときは、ステップS1805でディレクトリ1051を参照し、データが格納されている共有プールボリューム1030上のアドレスを取得する。そして、ステップS1806で共有プールボリューム1030からデータを読み出し、処理を終了する。
【0035】
スナップショット・ボリューム1020にデータが無いと判断されたときは、ステップS1804でボリューム対応管理テーブル1042を参照し、ステップS1806でスナップショット・ボリューム1020と対となるマスタ・ボリュームからデータを読み出し、ステップS1807で読み出したデータをホストに転送して処理を終了する。
【0036】
ここでは、共有プールを使用したスナップショット方式を例に挙げて説明を行った。このほかに、共有プールを使用せず、スナップショット・ボリュームを仮想ボリュームでなく通常のボリュームで作成し、データの退避をスナップショット・ボリュームに行う方式もある。こちらの方式では仮想スナップショット・ボリュームから共有ボリュームへのアドレス変換が不要になるので、処理が簡易化されるものの、複数のスナップショットを作成しようとすると、ミラーリングの時と同様に、マスタ・ボリュームの複数倍のディスク容量を使用することになる。スナップショット方式でバックアップを行う際には、これらのメリット・デメリットを考慮したうえで方式を決定する必要がある。
【0037】
作成したスナップショット・ボリューム1020は、次のような形態でボリュームの管理が行われる。
【0038】
たとえば図19のように、マスタ・ボリュームとスナップショット・ボリュームを直列に並べて管理する方法がある(直列管理)。この管理方式では、マスタ・ボリュームへのデータ更新が発生した時にデータ退避を行うスナップショット・ボリュームは、最新のスナップショット・ボリュームへのデータ退避を行えばよい。
【0039】
図19の例で示すと、マスタ・ボリュームLV10のpage0に“GG”というデータ更新が発生した場合には、最新のスナップショット・ボリューム1LV13に対してデータ“AA”の退避行うが、LV11、LV12に対しては処理は発生しない。LV11、LV12のpage0は、LV13のpage0のデータ“AA”を参照することで、ボリューム・イメージを保持することが出来る。
【0040】
マスタ・ボリューム1010へのデータ更新によるスナップショット・ボリューム1020への影響が少ないことから、随時更新されるマスタ・ボリューム1010の複製を定期的に採取し、必要に応じてある時点でのマスタ・ボリューム1010のイメージをスナップショット・ボリューム1020からリストアを行う場合や、スナップショット・ボリューム1020を通して、ある時点でのマスタ・ボリューム1010のイメージを磁気テープに代表される二次バックアップ装置にバックアップを行う場合には、この形態での管理が行われる。
【0041】
また、図20のように、マスタ・ボリューム1010とスナップショット・ボリューム1020を並列に並べた関係で管理を行う方法もある(並列管理)。この管理方法であれば、スナップショット・ボリューム1020へのデータ更新を行った際に、他のボリュームへの影響がない。
【0042】
図20の例で示すと、スナップショット・ボリュームLV22ののpage2に対して“EE”のデータ更新が発生した場合には、そのデータ更新だけを行えばよい。このLV22へのデータ更新がLV21、LV23に影響を与えることはなく、LV21、LV23のpage2はマスタ・ボリュームLV20のデータを参照することにより、ボリューム・イメージを保持できる。そのため、マスタ・ボリューム1010のデータを元に複数の環境を作成し、複製した環境を元に開発業務を行うような場合には、この形態での管理がおこなわれる。
【先行技術文献】
【特許文献】
【0043】
【特許文献1】特開2005−208950号公報
【発明の概要】
【発明が解決しようとする課題】
【0044】
前述のように、スナップショット・ボリューム1020の管理方法として、直列管理と並列管理とがあるが、それぞれ管理方法にメリットがあるのと同様にデメリットもある。
【0045】
直列管理では、スナップショット・ボリューム1020へのデータ更新処理において、並列管理の時よりも性能が劣る。図19の状態においてスナップショット・ボリュームLV12のpage2に対してデータ更新が発生した場合を考える。スナップショット・ボリュームLV12のpage2にデータ“HH”の更新が発生した場合、LV11のボリューム・イメージを保持するために、LV12のpage2の“CC”というデータを、LV11のpage2に退避する処理が必要になる。このため、スナップショット・ボリューム1020へのデータ更新処理は、並列管理の時よりも処理が増え、性能が悪くなる。
【0046】
並列管理では、マスタ・ボリューム1010へのデータ更新処理において、直列管理のときよりも性能が劣る。図20の状態において、マスタ・ボリュームLV20のpage0にデータ“GG”の更新が発生した場合、LV21、LV22,LV23のpage0のボリューム・イメージを保持するために、LV21、LV22,LV23のpage0にデータ“AA”の退避を行う。このため、マスタ・ボリューム1010へのデータ更新処理は、直列管理の時よりも処理が増え、性能が悪くなる。
【0047】
(発明の目的)
本発明の目的は、上述の課題を解決し、磁気ディスクアレイ・サブシステムにおいて、複製ボリュームの運用方法の選択性を向上させるデータ複製装置、データ複製制御方法、及びデータ複製制御プログラムを提供することである。
【課題を解決するための手段】
【0048】
本発明の第1のデータ複製装置は、ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置であって、前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段と、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段とを備える。
【0049】
本発明の第1のデータ複製制御方法は、ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御方法であって、前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御ステップと、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御ステップとを有する。
【0050】
本発明の第1のデータ複製制御プログラムは、ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御プログラムであって、前記データ複製装置に、前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御処理と、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御処理とを実行させる。
【発明の効果】
【0051】
本発明によれば、磁気ディスクアレイ・サブシステムにおいて、複製ボリュームの運用方法の選択性を向上させることができる。
【0052】
その理由は、これまでは択一的であった複製ボリュームの管理方法に選択肢を与え、直列管理の利点である世代管理の運用と、並列管理の利点であるアプリケーション評価などを同時に利用することが出来るためである。例えば、ある時点でのマスタ・ボリュームの複製イメージを元に、その複製ボリュームのボリューム・イメージを複数作成して、同時に複数の開発業務を行う事も出来る。
【図面の簡単な説明】
【0053】
【図1】本発明の第1の実施の形態によるデータ複製システムの構成の概略を示す機能ブロック図である。
【図2】第1の実施の形態によるデータ複製装置の構成例を示すブロック図である。
【図3】第1の実施の形態による直列データ複製制御手段を示す図である。
【図4】第1の実施の形態による並列データ複製制御手段を示す図である。
【図5】第1の実施の形態による差分管理テーブルを示す図である。
【図6】第1の実施の形態による、直列データ複製制御手段、並列データ複製制御手段、及び差分管理テーブルを示す図である。
【図7】第1の実施の形態による直列複製準備動作を示すフローチャートである。
【図8】第1の実施の形態による並列複製準備動作を示すフローチャートである。
【図9】第1の実施の形態によるライト・コマンド動作を示すフローチャートである。
【図10】第1の実施の形態によるリード・コマンド動作を示すフローチャートである。
【図11】本発明のデータ複製装置の最小限の構成を示すブロック図である。
【図12】本発明のデータ複製装置のハードウェア構成例を示すブロック図である。
【図13】背景技術によるスナップショット動作の具体例を示す機能ブロック図である。
【図14】背景技術によるデータ複製制御手段を示す機能ブロック図である。
【図15】背景技術によるアドレス変換手段を示す機能ブロック図である。
【図16】背景技術による複製準備動作を示すフローチャートである。
【図17】背景技術によるライト・コマンド動作を示すフローチャートである。
【図18】背景技術によるリード・コマンド動作を示すフローチャートである。
【図19】背景技術によるマスタ・ボリュームとスナップショット・ボリュームが直列に接続管理されている図である
【図20】背景技術によるマスタ・ボリュームとスナップショット・ボリュームが並列に接続管理されている図である
【発明を実施するための形態】
【0054】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。
【0055】
なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0056】
(第1の実施の形態)
【0057】
図1は、本発明の第1の実施の形態によるデータ複製システム10の構成を示すブロック図である。データ複製システム10は、管理端末200と、ホストコンピュータ300と、データ複製装置100とを備える。
【0058】
データ複製装置100は、記憶装置としてのディスクアレイ・サブシステムの機能を有する。
【0059】
データ複製装置100は、上位装置としての管理端末200やホストコンピュータ300等に対して、複数の磁気ディスク装置150(150a〜150f)を割り当ててデータのバックアップ等の処理を行う。
【0060】
データ複製装置100は、上位装置との間の接続に用いられるインターフェース制御手段120と、各磁気ディスク装置150a〜150fとを接続するためのRAID制御手段140とを備える。
【0061】
インターフェース制御手段120とRAID制御手段140は、制御用メモリ130に格納された制御プログラムに基づいて作動するマイクロプロセッサ110(以下、単にCPUと称する)によってデータの入出力を制御されるようになっている。
【0062】
制御用メモリ130に書き込む制御用プログラムを書き換えることでCPU110を様々な機能実現手段として利用することが可能である。
【0063】
CPU110は、データの複製や、複製したデータへのアクセスを制御する直列データ複製制御手段111と、並列データ複製制御手段112とを有する。
【0064】
図1では、6台の磁気ディスク装置150a〜150fが接続されている例について示しているが、実際には其の各々が論理的に独立したボリューム、例えば、マスタ・ボリュームやスナップショット・ボリューム、或いは共有プールボリューム等といったものを構成するとは限らず、RAID制御手段140の制御のもとに、複数の磁気ディスク装置に跨って見かけ上単一のボリュームを設けることも、また、1つの磁気ディスク装置にパーティションを設定して、見かけ上複数のボリュームを1つの磁気ディスク装置内に設けることもできる。
【0065】
(第1の実施の形態の動作の説明)
次に、本実施の形態によるデータ複製装置100の動作について、以下に示す実施例を用いて詳細に説明する。
【実施例1】
【0066】
(構成の説明)
この実施例1では、共有プールを使用しないでスナップショット・ボリュームを採取する方法をもとに説明を行う。
【0067】
図2は、本実施の形態によるデータ複製装置100の機能的な側面を簡略化して示した機能ブロック図である。
【0068】
データ複製装置100は、複製元データを記憶したマスタ・ボリューム151と、マスタ・ボリューム151の複製ボリュームとなるスナップショット・ボリューム152及び153と、スナップショット・ボリューム153をマスタデータとした複製ボリュームであるスナップショット・ボリューム154と、スナップショット・ボリューム154の複製ボリュームであるスナップショット・ボリューム155と、スナップショット・ボリュームのデータ複製を直列方向に管理する直列データ複製制御手段111と、スナップショット・ボリュームのデータ複製を並列方向に管理する並列データ複製制御手段112とを有する。マスタ・ボリューム及びスナップショット・ボリュームの個数に関して特に制限は無い。
【0069】
図2は、以下の処理が行われた後の状態を示している。
【0070】
(1)マスタ・ボリュームLV0のデータがPage0から順に(A0、B0、C0、D0、・・・、N0)というデータを保持している時に、直列データ複製制御手段111が、スナップショット・ボリュームLV1を作成する。
【0071】
(2)マスタ・ボリュームLV0のPage0のデータがA1に更新されてから、直列データ複製制御手段111は、スナップショット・ボリュームLV2を作成する。
【0072】
(3)マスタ・ボリュームLV0のPage1及びPage2のデータがB1及びC1に更新されると、並列データ複製制御手段112が、スナップショット・ボリュームLV2のスナップショットであるスナップショット・ボリュームLV3を作成する。
【0073】
(4)次いで、スナップショット・ボリュームLV3のPage3のデータがD1に更新された後に、直列データ複製制御手段111が、スナップショット・ボリュームLV3のスナップショットであるスナップショット・ボリュームLV4を作成する。
【0074】
直列データ複製制御手段111は、図3に示すように、マスタ属性やスナップショット属性等の、ボリュームの属性を管理する直列属性管理テーブル131と、スナップショット・ボリュームにおいて、直列方向の接続情報を保持する直列ボリューム対応管理テーブル132とを有する。直列ボリューム対応管理テーブル132では、マスタ・ボリュームも含めて、ボリューム間の接続の状態が、双方向の接続で管理される。
【0075】
並列データ複製制御手段112は、図4に示すように、スナップショット・マスタ属性やスナップショット属性等の、ボリュームの属性を管理する並列属性管理テーブル133と、ボリューム間のスナップショット関係を保持する並列ボリューム対応管理テーブル134とを有する。
【0076】
並列ボリューム対応管理テーブル134では、スナップショットマスタ・ボリュームも含めて、ボリューム間の接続の状態が、双方向の接続で管理される。また、並列方向に作成されたスナップショット・ボリュームから見て、並列方向の分岐元となるスナップショットマスタ・ボリュームの情報も、分岐LVとして管理を行う。
【0077】
差分管理テーブル135は、図5に示すように、マスタ・ボリュームとスナップショット・ボリューム間、およびスナップショットマスタ・ボリュームと並列方向に作成されたスナップショット・ボリューム間の差分の有無を管理する。
【0078】
(動作の説明)
次に、本実施例のデータ複製装置100の動作について、フローチャートを参照しながら詳細に説明する。
【0079】
また、ここではすでにLV0とLV1がスナップショット対応をされた状態から、新たにLV0のスナップショットをLV2に作成する場合で考える。
【0080】
この時の直列データ複製制御手段111の状態は、図6の状態とする。ここでは直列属性管理テーブル131においてLV0にマスタ属性が、LV1にはスナップショット属性がセットされており、直列ボリューム対応管理テーブル132において、マスタ・ボリュームLV0の次にスナップショット・ボリュームLV1が接続されていることが確認できる。
【0081】
まず、スナップショット動作の事前準備として、図7に示すように、ステップS700でマスタ・ボリュームとスナップショット・ボリュームとして使用するロジカル・ボリュームを作成する。
【0082】
この際、ロジカル・ボリュームに関連する各種テーブルを初期化しておく。具体的には、作成するLVに対応する直列属性管理テーブル131の属性をクリア、直列ボリューム対応管理テーブル132のNEXT LINK、PRE LINKをクリア、並列属性管理テーブル133の属性をクリア、並列ボリューム対応管理テーブル134のNEXT LINK、PRELINK、分岐LVをクリアする。
【0083】
次に、ステップS701でデータ複製装置100が直列スナップショット・コマンドを受信すると、ステップS702でマスタ・ボリュームとスナップショット・ボリュームのペア管理を行う。
【0084】
ここではコマンドパラメータとしてマスタ・ボリュームとしてLV0、スナップショット・ボリュームにはLV2が指定される場合、まず直列属性管理テーブル131でLV0にマスタ・ボリュームが設定されていることを確認したうえで、LV2にスナップショット属性を設定する。
【0085】
次に直列ボリューム対応管理テーブル132のLINK情報を更する。コマンドパラメータより、LV2はマスタ・ボリュームLV0の最新のスナップショットとなるので、NEXT LINKをLV0→LV2→LV1となるように、PRE LINKはその逆となるように情報を更新する。次に、スナップショット・ボリュームに指定したLV2の差分管理テーブル135をクリアする。
【0086】
これ以降、スナップショット・ボリュームLV2は、スナップショット・コマンドを受信した時点におけるマスタ・ボリュームLV0のボリューム・イメージを保持する。
【0087】
ここではLV0がすでにマスタ属性がセットされている例で説明したが、もしLV0にスナップショット設定がされておらず、マスタ属性がセットされていない場合でスナップショット・コマンドを受信したときには、ステップS702にて直列属性管理テーブル131でLV0にマスタ属性の設定が行われる。
【0088】
次に、並列方向にスナップショットを作成する動作について説明する。ここではスナップショット・ボリュームLV2に対して、並列方向にスナップショットLV3を作成する例で説明を行う。
【0089】
まず、図8に示されるように、ステップS800でスナップショット・ボリュームとして使用するロジカル・ボリュームを作成する。ここで行う処理は、ステップS701と同じ処理を行う。
【0090】
次に、ステップS801でデータ複製装置100が並列スナップショット・コマンドを受信すると、ステップS802でスナップショットマスタ・ボリュームとスナップショットサブ・ボリュームのペア管理を行う。
【0091】
まず並列属性管理テーブル133に属性をセットする。スナップショットマスタ・ボリュームに指定されたLV2にスナップショット・マスタ属性を、スナップショット・ボリュームに指定されたLV3にスナップショットサブ属性をセットする。
【0092】
次に、並列ボリューム対応管理テーブル134のLINK情報を更する。コマンドパラメータより、LV3は、LV2を並列方向のマスタ・ボリュームとしてみた場合、LV0の最新のスナップショットとなるので、NEXT LINKをLV2→LV3となるように、PRE LINKはその逆となるように情報を更新する。
【0093】
次に、スナップショットLV3のスナップショット・マスタとなるLV2を分岐LVに登録する。
【0094】
次に、直列属性管理テーブル131に、スナップショットサブ・ボリュームに指定したLV3にスナップショット属性をセットする。
【0095】
次に、スナップショット・ボリュームに指定したLV3の差分管理テーブル135をクリアする。
【0096】
これ以降、スナップショットサブ・ボリュームLV3は、並列スナップショット・コマンドを受信した時点におけるスナップショットマスタ・ボリュームLV2のボリューム・イメージを保持する。
【0097】
(ライト・コマンド処理の動作の説明)
次に、スナップショット・コマンドを受信した後に発生したライト・コマンド処理について、図9に示すフローチャートを参照しながら説明する。
【0098】
まず、直列データ複製制御手段111は、直接属性管理テーブル131を参照し(ステップS900)、ライト・コマンドの対象ボリュームがスナップショット属性を持っているかを判断する(ステップS901)。スナップショット属性を持っていると判断した場合(ステップS901”YES”)の例に関しては後述とし、先に、直列データ複製制御手段111が、該ボリュームはスナップショット属性を持っていないと判断した場合に関して説明する。
【0099】
直列データ複製制御手段111は、ライト・コマンドの対象ボリュームがスナップショット属性を持っていないと判断した場合(ステップS901”NO”)、次いで、該対象ボリュームがマスタ属性を持っているか(マスタ・ボリュームであるか)を判断する(ステップS902)。
【0100】
ライト・コマンドの対象ボリュームがマスタ属性を持っていない場合(ステップS902”NO”)、ライト・コマンドの対象ボリュームはスナップショット処理と関係のないボリュームへのライト・コマンドであるため、直列データ複製制御手段111は、ライト・コマンドの対象ボリュームにライトデータを書き込み、ライト・コマンドを終了する(ステップS908)。
【0101】
ライト・コマンドの対象ボリュームがマスタ属性を持っている場合(ステップS902”YES”)、直列データ複製制御手段111は、直列ボリューム対応管理テーブル132を参照する(ステップS903)。ここでは、ライト・コマンドの対象のボリュームはマスタ属性であるので、直列ボリューム対応管理テーブル132のライト・コマンドの対象のボリュームのNEXT LINKを辿り、一番新しいスナップショット・ボリュームを特定する。
【0102】
次に、直列データ複製制御手段111は、差分管理テーブル135を参照し(ステップS904)、マスタ・ボリュームと最新のスナップショット・ボリュームとの間において、ライト対象範囲に差分があるかを判断する(ステップS905)。
【0103】
直列データ複製制御手段111は、ライト対象範囲に差分があると判断した場合(ステップS905”YES”)、ライト・コマンドの対象のマスタ・ボリュームにライトデータを書き込み、ライト・コマンドを終了する(ステップS908)。
【0104】
直列データ複製制御手段111がライト対象範囲に差分がないと判断した場合(ステップS905”NO”)、直列スナップショット・コマンドを受信した瞬間のマスタ・ボリュームのボリューム・イメージを、スナップショット・ボリュームに保持する必要がある。
【0105】
従って、直列データ複製制御手段111は、ライト対象範囲に差分がないと判断した場合(ステップS905”NO”)、直列スナップショット・コマンドを受信した瞬間の、マスタ・ボリュームの該ライト対象範囲のデータを、最新のスナップショット・ボリュームへコピーする(ステップS906)。
【0106】
次いで、直列データ複製制御手段111は、該最新のスナップショット・ボリュームがマスタ・ボリュームと差分を有することを示すために、差分管理テーブル135の該当箇所に、1をセットする(ステップS907)。
【0107】
ステップS906、S907においてマスタ・ボリュームから最新のスナップショット・ボリュームへのデータの退避が完了した後、直列データ複製制御手段111は、ライト・コマンドの対象のマスタ・ボリュームにライトデータを書き込み、ライト・コマンドを終了する(ステップS908)。
【0108】
次に、ステップS902で直列データ複製制御手段111がライト・コマンドの対象のボリュームがスナップショット属性を持っていると判断した場合の処理について説明する。
【0109】
この場合、直列データ複製制御手段111は、まず直列ボリューム対応管理テーブル132を参照し(ステップS910)ライト・コマンドの対象のスナップショット・ボリュームのNEXT LINKを辿り、ライト・コマンドの対象のスナップショット・ボリュームに下位のスナップショット・ボリュームが存在しているかを確認する(ステップS911)。
【0110】
ライト・コマンドの対象のスナップショット・ボリュームに下位のスナップショット・ボリュームが存在している場合(ステップS911”YES”)、直列データ複製制御手段111は、差分管理テーブル135を参照し(ステップS912)、ライト・コマンドの対象のスナップショット・ボリュームと該下位のスナップショット・ボリュームとの間で、ライト対象範囲において差分があるかを判断する(ステップS913)。
【0111】
直列データ複製制御手段111は、該ライトの対象の範囲において差分が無いと判断した場合(ステップS913)、ライト・コマンドの対象のスナップショット・ボリュームの該対象範囲のデータを、下位スナップショット・ボリュームへコピーする(ステップS914)。
【0112】
次いで、直列データ複製制御手段111は、該下位スナップショット・ボリュームがライト・コマンドの対象のスナップショット・ボリュームと差分を有することを示すために、差分管理テーブル135の該当箇所に、1をセットする(ステップS915)。ここまでの操作により、下位スナップショット・ボリュームのボリューム・イメージは保持される。
【0113】
ステップS911で、直列データ複製制御手段111が、ライト・コマンドの対象のスナップショット・ボリュームのNEXT LINKに値が格納されておらず、下位のスナップショット・ボリュームが存在しないと判断した場合は、ライト・コマンドの対象のスナップショット・ボリュームは、直列管理における最下位のスナップショット・ボリュームであると判断できる。
【0114】
この場合、ステップS911からステップS916へ進む。また、ステップS913において下位のスナップショット・ボリュームに差分があると判断した場合も、同じようにステップS916に進む。
【0115】
次に、ステップS916ではライト・コマンドの対象のスナップショット・ボリュームに対して並列管理されているスナップショット・ボリュームが存在しているか確認するために、並列データ複製制御手段112が、並列属性管理テーブル133を参照し、ライト・コマンドの対象のスナップショット・ボリュームにスナップショット・マスタ属性がセットされているかを判断する(ステップS917)。
【0116】
ステップS917で、スナップショット・マスタ属性がセットされていないと判断された場合は、ライト・コマンドの対象のスナップショット・ボリュームには並列管理されたスナップショット・ボリュームが存在しないということになる。
【0117】
従って、並列データ複製制御手段112は、ライト・コマンドの対象のスナップショット・ボリュームにスナップショット・マスタ属性がセットされていないと判断した場合(ステップS917”NO”)、ライト・コマンドの対象のスナップショット・ボリュームにライトデータを書き込み、ライト・コマンドを終了する(ステップS908)。
【0118】
ステップS917で、スナップショット・マスタ属性がセットされていると判断された場合は、並列管理されたスナップショットサブ属性を持つスナップショット・ボリュームに対してデータ退避処理が必要になる。
【0119】
従って、並列データ複製制御手段112は、ライト・コマンドの対象のスナップショット・ボリュームにスナップショット・マスタ属性がセットされていると判断した場合(ステップS917”YES”)、並列ボリューム対応管理テーブル134を参照し、スナップショット・マスタ属性のスナップショット・ボリュームのNEXT LINKを辿り、並列管理されているスナップショットサブ属性を持つスナップショットサブ・ボリュームを特定する(ステップS918)。
【0120】
次いで、並列データ複製制御手段112は、差分管理テーブル135を参照し(ステップS919)、ライト・コマンドの対象のスナップショット・ボリュームと該スナップショットサブ・ボリュームとの間において、ライト対象範囲に差分があるかを判断する(ステップS920)。
【0121】
並列データ複製制御手段112は、ライト対象範囲に差分があると判断した場合(ステップS920”YES”)、ステップS923の処理に進む。
【0122】
並列データ複製制御手段112は、ライト対象範囲に差分がないと判断した場合(ステップS920”YES”)、スナップショット・ボリュームの該対象範囲のデータを、スナップショトサブ・ボリュームへコピーする(ステップS921)。
【0123】
次いで、並列データ複製制御手段112は、スナップショットサブ・ボリュームに差分があることを示すために、差分管理テーブル135の該当箇所に、1をセットする(ステップS922)。
【0124】
ここまでの操作により、スナップショットサブ・ボリュームのボリューム・イメージは保持される。
【0125】
次いで、並列データ複製制御手段112は、並列ボリューム対応管理テーブル134を参照し、今回処理を行ったスナップショットサブ・ボリュームに対してNEXT LINKの値が格納されているかを確認する(ステップS923)。
【0126】
スナップショットサブ・ボリュームにNEXT LINKが設定されている場合(ステップS923”YES”)、ライト・コマンドの対象のスナップショット・ボリュームは、並列管理された複数のスナップショットサブ・ボリュームを持つことを意味している。
【0127】
この場合、ステップS918に戻り、今度は二段目に並列管理されたスナップショットサブ・ボリュームに対してステップS918〜S922の処理を行い、スナップショットサブ・ボリュームのボリューム・イメージの保持を行う。
【0128】
このようにして、複数接続された全てのスナップショットサブ・ボリュームへのデータ退避が終えた後に(ステップS923”NO”)、並列データ複製制御手段111は、ライト・コマンドの対象のスナップショット・ボリュームにライトデータを書き込み、ライト・コマンドを終了する(ステップS908)。
【0129】
(リード・コマンド処理の動作の説明)
次に、スナップショット・コマンドを受信した後に発生したリード・コマンド処理について、図10に示すフローチャートを参照しながら説明する。
【0130】
リード・コマンドを受信した場合、まず、直列データ複製制御手段111が、まず直列属性管理テーブル131を参照し(ステップS1000)、リード・コマンドの対象ボリュームがスナップショット属性を持っているかを判断する(ステップS1001)。
【0131】
リード・コマンドの対象ボリュームがスナップショット属性を持っていない場合、リード・コマンドの対象ボリュームはスナップショット処理と関係のないボリュームになる。
【0132】
従って、直列データ複製制御手段111は、リード・コマンドの対象ボリュームがスナップショット属性を持っていないと判断した場合(ステップS1001”NO”)、リード・コマンドの対象ボリュームからリード対象範囲のデータを読み出し(ステップS1008)、読み出したデータをホストコンピュータ300へ転送し、リード・コマンドを終了する(ステップS1009)。
【0133】
直列データ複製制御手段111は、リード・コマンドの対象ボリュームがスナップショット属性を持っていると判断した場合(ステップS1001”YES”)、該ボリュームのリード対象範囲にデータがあるかを確認するために、差分管理テーブル135を参照する(ステップS1002)。
【0134】
直列データ複製制御手段111は、差分管理テーブル135を参照した結果、リード対象範囲にデータがあると判断した場合(ステップS1003”YES”)、リード・コマンドの対象ボリュームのリード対象範囲からデータを読み出し(ステップS1008)、次いで、読み出したデータをホストコンピュータ300へ転送し、リード・コマンドを終了する(ステップS1009)。
【0135】
直列データ複製制御手段111は、差分管理テーブル135を参照した結果、リード対象範囲にデータが無いと判断した場合(ステップS1003”NO”)、上位のスナップショット・ボリュームを検索し、リード対象のスナップショット・ボリュームが参照しているデータの所在を検索するため、ステップS1004の処理へ進む。
【0136】
この場合、直列データ複製制御手段111は、直列ボリューム対応管理テーブル132を参照し(ステップS1004)、次いで、リード・コマンドの対象のスナップショット・ボリュームのPRE LINKを参照し、上位世代のスナップショット・ボリュームが存在するか探す(ステップS1005)。
【0137】
リード・コマンドの対象のスナップショット・ボリュームのPRE LINKに値が格納されていて、上位世代のスナップショット・ボリュームが存在すると場合(ステップS1005”YES”)、直列データ複製制御手段111は、該上位世代のスナップショット・ボリュームでリード対象範囲にデータがあるか否かを確認するために、差分管理テーブル135を参照する(ステップS1006)。
【0138】
次いで、直列データ複製制御手段111は、上位世代のスナップショット・ボリュームの該当箇所にデータがあると判断した場合(ステップS1007”YES”)、上位世代のスナップショット・ボリュームのリード対象範囲からデータを読み出し(ステップS1008)、該読み出したデータをホストコンピュータ300へ転送し、リード・コマンドを終了する(ステップS1009)。
【0139】
直列データ複製制御手段111は、上位世代のスナップショット・ボリュームの該当箇所にデータが無い場合(ステップS1007”NO”)、上位世代のスナップショット・ボリュームのさらに上位世代のスナップショット・ボリュームに対して検索を行うために、ステップS1004から1607の処理を繰り返し行う。そして、リード・コマンド処理のデータ読み出し対象のボリュームを決定できた後に、ステップS1008で検索されたボリュームのリード対象範囲からデータを読み出し、ステップS1009で読み出したデータをホストコンピュータ300へ転送し、リード・コマンドを終了する。
【0140】
ステップS1005で上位のスナップショットが見つからない場合は、並列データ複製制御手段112が、並列属性管理テーブル133を参照し(ステップS1010)、現在の検索対象のボリュームのスナップショットサブ属性を確認する(ステップS1011)。
【0141】
現在の検索対象のボリュームにスナップショットサブ属性がセットされていない場合、現在の検索対象のボリュームはマスタ・ボリュームということになる。
【0142】
従って、並列データ複製制御手段112は、現在の検索対象のボリュームにスナップショットサブ属性がセットされていない場合(ステップS1011”NO”)、マスタ・ボリューム151のリード対象範囲からデータを読み出し、(ステップS1008)、読み出したデータをホストコンピュータ300へ転送し、リード・コマンドを終了する(ステップS1009)。
【0143】
現在の検索対象のボリュームにスナップショットサブ属性がセットされている場合、次の検索対象のボリュームを、並列管理の分岐元のボリュームであるスナップショット・マスタ属性を持つボリュームに変更する必要がある。
【0144】
従って、並列データ複製制御手段112は、現在の検索対象のボリュームにスナップショットサブ属性がセットされている場合(ステップS1011”YES”)、並列ボリューム対応管理テーブル134を参照し(ステップS1012)、分岐LVに登録されているスナップショットマスタ・ボリュームを特定し、次の検索対象のスナップショット・ボリュームとして扱う(ステップS1013)。
【0145】
そして、並列データ複製制御手段112は、スナップショットマスタ・ボリュームがデータを保持しているかを確認するために、差分管理テーブル135を参照し(ステップS1006)、スナップショットマスタ・ボリュームのリード対象範囲にデータがあると判断した場合(ステップS1007”YES”)スナップショットマスタ・ボリュームの該リード対象範囲からデータを読み出し(ステップS1008)、該読み出したデータをホストコンピュータ300へ転送し、リード・コマンドを終了する(ステップS1009)。
【0146】
並列データ複製制御手段112は、ステップS1007でスナップショットマスタ・ボリュームにデータが無いと判断した場合、ステップS1004〜1607およびステップS1010〜1613の処理を繰り返し、読み出し先のボリュームが決定されるまでボリュームの検索処理を続ける。
【0147】
リード・コマンド処理を上記のように行う事で、直列管理と並列管理が複数組みあわされている構成の時でも、適切なデータを読み出すことが出来る。
【0148】
(第1の実施の形態による効果)
【0149】
本実施の形態によれば、これまでに述べた方法でスナップショット・ボリュームを管理することで、スナップショット・ボリュームの世代管理が行える。
【0150】
また、本実施の形態によれば、マスタ・ボリュームへのデータ更新時発生時には最新のスナップショット・ボリュームだけがデータ退避の対象であり、さらにスナップショット・ボリュームにデータ更新が発生する時はスナップショットサブ属性の持つスナップショット・ボリュームに書き込むことで、データ更新が他のスナップショット・ボリュームへの影響を与えることのない、言わば直列管理と並列管理の両方の利点を享受できる磁気ディスクアレイ・サブシステムを構築できる。
【0151】
なお、本発明の課題を解決できる最小限の構成を図11に示す。データ複製装置100が、ホストコンピュータ300から要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置100であって、前記ホストコンピュータ300から書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段111と、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段112とを備えることで、上述した本発明の課題を解決することができる。
【0152】
次に、本発明のデータ複製装置100のハードウェア構成例について、図12を参照して説明する。図12は、データ複製装置100のハードウェア構成例を示すブロック図である。
【0153】
図12を参照すると、本発明のデータ複製装置100は、一般的なコンピュータ装置と同様のハードウェア構成であり、CPU(Central Processing Unit)801、RAM(Random Access Memory)等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部802、ネットワークを介してデータの送受信を行う通信部803、入力装置805や出力装置806及び記憶装置807と接続してデータの送受信を行う入出力インターフェース部804、上記各構成要素を相互に接続するシステムバス808を備えている。記憶装置807は、例えば、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【0154】
本発明のデータ複製装置100の各機能は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置807に格納し、そのプログラムを主記憶部802にロードしてCPU801で実行することにより、ソフトウェア的に実現することも可能である。
【0155】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0156】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【0157】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【0158】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【0159】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【0160】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【0161】
(付記1)
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置であって、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段と
を備えることを特徴とするデータ複製装置。
【0162】
(付記2)
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御手段は、前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御手段は、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする付記1に記載のデータ複製装置。
【0163】
(付記3)
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、
前記直列データ複製制御手段が、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする付記1又は付記2に記載のデータ複製装置
【0164】
(付記4)
前記並列データ複製制御手段が、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記3に記載のデータ複製装置。
【0165】
(付記5)
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御手段は、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記4に記載のデータ複製装置。
【0166】
(付記6)
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御手段が、
前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームから、データを読み出す
ことを特徴とする付記1から付記5のいずれか1項に記載のデータ複製装置。
【0167】
(付記7)
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御手段が、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする付記6に記載のデータ複製装置。
【0168】
(付記8)
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御方法であって、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御ステップと、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御ステップと
を有することを特徴とするデータ複製制御方法。
【0169】
(付記9)
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御ステップで、
前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御ステップで、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする付記8に記載のデータ複製制御方法。
【0170】
(付記10)
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、
前記直列データ複製制御ステップで、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする付記8又は付記9に記載のデータ複製制御方法。
【0171】
(付記11)
前記並列データ複製制御ステップで、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記10に記載のデータ複製制御方法。
【0172】
(付記12)
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御ステップで、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記11に記載のデータ複製制御方法。
【0173】
(付記13)
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御ステップで、
前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームからデータを読み出す
ことを特徴とする付記8から付記12のいずれか1項に記載のデータ複製制御方法。
【0174】
(付記14)
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御ステップで、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする付記13に記載のデータ複製制御方法。
【0175】
(付記15)
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御プログラムであって、
前記データ複製装置に、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御処理と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御処理と
を実行させることを特徴とするデータ複製制御プログラム。
【0176】
(付記16)
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御処理で、
前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御処理で、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする付記15に記載のデータ複製制御プログラム。
【0177】
(付記17)
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、
前記直列データ複製制御処理で、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする付記15又は付記16に記載のデータ複製制御プログラム。
【0178】
(付記18)
前記並列データ複製制御処理で、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記17に記載のデータ複製制御プログラム。
【0179】
(付記19)
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御処理で、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする付記18に記載のデータ複製制御プログラム。
【0180】
(付記20)
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御処理で、
前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームからデータを読み出す
ことを特徴とする付記15から付記19のいずれか1項に記載のデータ複製制御プログラム。
【0181】
(付記21)
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御処理で、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする付記20に記載のデータ複製制御プログラム。
【産業上の利用可能性】
【0182】
本発明は、磁気ディスクアレイ・サブシステムにおけるボリューム・レベルのバックアップ等の用途に利用できる。
【符号の説明】
【0183】
10:データ複製システム
100:データ複製装置
110:CPU
111:直列データ複製制御手段
112:並列データ複製制御手段
131:直列属性管理テーブル
132:直列ボリューム対応管理テーブル
133:並列属性管理テーブル
134:並列ボリューム対応管理テーブル
135:差分管理テーブル
120:インターフェース制御手段
130:制御用メモリ
140:RAID制御手段
150:磁気ディスク装置
200:管理端末
300:ホストコンピュータ
151:マスタ・ボリューム
152〜155:スナップショット・ボリューム
801:CPU
802:主記憶部
803:通信部
804:入出力インターフェース部
805:入力装置
806:出力装置
807:記憶装置
808:システムバス

【特許請求の範囲】
【請求項1】
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置であって、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御手段と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御手段と
を備えることを特徴とするデータ複製装置。
【請求項2】
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御手段は、前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御手段は、前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする請求項1に記載のデータ複製装置。
【請求項3】
前記直列方向及び前記並列方向で複製関係にある各ボリューム間の差分の情報を管理する差分管理テーブルを備え、
前記直列データ複製制御手段が、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームの下位のボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求対象のボリュームへの書き込み処理を行う
ことを特徴とする請求項1又は請求項2に記載のデータ複製装置
【請求項4】
前記並列データ複製制御手段が、
前記書き込み要求の対象ボリュームと、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームとの間に差分がない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする請求項3に記載のデータ複製装置。
【請求項5】
前記書き込み要求の対象ボリュームに対して並列管理されているボリュームが複数ある場合、
前記並列データ複製制御手段は、
当該複数のボリューム全てに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う
ことを特徴とする請求項4に記載のデータ複製装置。
【請求項6】
前記ホストコンピュータから読み出し要求があった場合、
前記直列データ複製制御手段が、
前記直列ボリューム対応管理テーブルを参照し、読み出し要求の対象ボリュームが複製ボリュームであるか確認し、複製ボリュームである場合、当該読み出し要求のリード対象範囲にデータがあるか確認し、データがない場合、当該読み出し要求の対象ボリュームの上位の複製ボリュームから、データを読み出す
ことを特徴とする請求項1から請求項5のいずれか1項に記載のデータ複製装置。
【請求項7】
前記読み出し要求の対象ボリュームである複製ボリュームのリード対象範囲にデータがなく、かつ、当該読み出し要求の対象ボリュームの上位の複製ボリュームがない場合、
前記並列データ複製制御手段が、
前記読み出し要求の対象ボリュームに対して並列管理されているボリュームから、データを読み出す
ことを特徴とする請求項6に記載のデータ複製装置。
【請求項8】
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御方法であって、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御ステップと、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御ステップと
を有することを特徴とするデータ複製制御方法。
【請求項9】
マスタ・ボリュームの複数の複製ボリュームを、作成時期に応じて直列方向の関連付けとして管理する直列ボリューム対応管理テーブルと、
前記複製ボリュームと、当該複製ボリュームの複製ボリュームとを、並列方向の関連付けとして管理する並列ボリューム対応管理テーブルを備え、
前記直列データ複製制御ステップで、
前記書き込み要求があった場合、前記直列ボリューム対応管理テーブルを参照し、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製し、
前記並列データ複製制御ステップで、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、前記並列ボリューム対応管理テーブルを参照し、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製することを特徴とする請求項8に記載のデータ複製制御方法。
【請求項10】
ホストコンピュータから要求されたデータの読み出し及び書き込みが行われる複製ボリュームを備えるデータ複製装置のデータ複製制御プログラムであって、
前記データ複製装置に、
前記ホストコンピュータから書き込み要求があった場合、書き込み要求の対象ボリュームの下位のボリュームに前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームへの書き込み処理を行う直列データ複製制御処理と、
前記書き込み要求の対象ボリュームの下位のボリュームがない場合に、当該書き込み要求の対象ボリュームに対して並列管理されているボリュームに、前記書き込み要求の対象ボリュームを複製してから、当該書き込み要求の対象ボリュームに書き込み処理を行う並列データ複製制御処理と
を実行させることを特徴とするデータ複製制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate