(57)【要約】      （修正有）【課題】複製データを仮想的に記憶する複製データ記憶領域と実際に格納する実データ格納領域とを使用し、複製データの削除から新たな複製データの作製開始までのインターバルを短縮することのできるデータ複製システム、複製データ処理プログラムおよび複製データ処理方法を得ること。【解決手段】ディスクアレイ・サブシステム３００は、マスタ・データを記憶したマスタ・ボリューム３４１と、複製ボリュームとなるスナップショット・ボリューム３４２と、複製データの実際の格納先となる共有プール・ボリューム３４３を備えている。共有プール・ボリューム３４３のいずれに実データを格納したかの管理を行うための図示しないディレクトリ領域を複数用意しておいて、そのうちの未使用のものを循環的に選択して使用し、実データの実際の削除はバックグラウンドで処理する。【選択図】図２
2007172365.tif 000002
【特許請求の範囲】
【請求項１】
複製の対象となるマスタ・データを格納するマスタ・データ格納手段と、
このマスタ・データ格納手段に格納されたマスタ・データの複製としての複製データをそれぞれ仮想的に記憶する複製データ記憶領域を備えた複製データ記憶手段と、
前記複製データを実データとして格納する実データ格納領域を備えた実データ格納手段と、
前記複製データ記憶手段に仮想的に記憶される１または複数の複製データにそれぞれ対応させて前記実データの格納場所を管理するディレクトリ領域を予め複数用意した複数ディレクトリ領域設定手段と、
前記実データ格納手段に格納される前記実データごとに前記複数ディレクトリ領域設定手段に用意された複数のディレクトリ領域のうちの未使用領域の１つを割り当てるディレクトリ領域割当手段
とを具備することを特徴とするデータ複製システム。
【請求項２】
前記ディレクトリ領域割当手段は、他の複製データの管理に使用されていない未使用ディレクトリ領域を検索する未使用ディレクトリ領域検索手段を備え、この未使用ディレクトリ領域検索手段で検索した未使用ディレクトリ領域の１つを割り当てることを特徴とする請求項１記載のデータ複製システム。
【請求項３】
前記複製データの削除要求を受け取る複製データ削除要求受信手段と、
この複製データ削除要求受信手段が受け取った削除要求の行われた複製データに対応する実データの格納場所を管理するディレクトリ領域を使用中のディレクトリ領域の中から検索するディレクトリ領域検索手段と、
このディレクトリ領域検索手段の検索で得られた使用中のディレクトリ領域を未使用ディレクトリ領域に変更することで前記複製データの削除処理を完了させるディレクトリ領域属性変更手段
とを具備することを特徴とする請求項２記載のデータ複製システム。
【請求項４】
前記ディレクトリ領域割当手段は、前記複数ディレクトリ領域設定手段の用意したそれぞれのディレクトリ領域のアドレスの１つに、当該のディレクトリ領域を変更するアドレス変更手段であることを特徴とする請求項１記載のデータ複製システム。
【請求項５】
前記複製データの削除を指定する削除指定手段と、
削除指定手段により複製データの削除が指定されたとき、実データ格納手段の対応する実データを削除する実データ削除手段
とを具備することを特徴とする請求項１記載のデータ複製システム。
【請求項６】
データを記憶する記憶装置を備えたコンピュータに、
データの複製の対象となるマスタ・データを格納するマスタ・データ格納処理と、
このマスタ・データ格納処理で格納されたマスタ・データの複製としての複製データをそれぞれ複製データ記憶領域に仮想的に記憶する複製データ記憶処理と、
前記複製データを実データとして実データ格納領域に格納する実データ格納処理と、
前記複製データ記憶処理で仮想的に記憶される複製データにそれぞれ対応させて実データの格納場所を管理する予め用意した複数のディレクトリ領域の中から、他の複製データの管理に使用されていない未使用ディレクトリ領域を前記実データごとに１つずつ割り当てるディレクトリ領域割当処理
とを実行させることを特徴とする複製データ処理プログラム。
【請求項７】
前記実データ格納処理で格納した前記複製データの削除要求を受け取る複製データ削除要求受信処理と、
この複製データ削除要求受信処理で受け取った削除要求の複製データに対応する実データの格納場所を管理するディレクトリ領域を使用中のディレクトリ領域の中から検索するディレクトリ検索処理と、
このディレクトリ検索処理の検索で得られた使用中のディレクトリ領域を未使用ディレクトリ領域に変更することで前記複製データの削除処理を完了させるディレクトリ領域属性変更処理
とを具備することを特徴とする請求項６記載の複製データ処理プログラム。
【請求項８】
マスタ・データの複製としての複製データをそれぞれ複製データ記憶領域に仮想的に記憶する複製データ記憶ステップと、
前記複製データを実データとして実データ格納領域に格納する実データ格納ステップと、
前記複製データ記憶ステップで仮想的に記憶される複製データに対応させて実データの格納場所を管理する予め用意した複数のディレクトリ領域の中から、他の複製データの管理に使用されていない未使用ディレクトリ領域を割り当てるディレクトリ領域割当ステップ
とを具備することを特徴とする複製データ処理方法。
【請求項９】
前記実データ格納ステップで格納した前記複製データの削除要求を受け取る複製データ削除要求受信ステップと、
この複製データ削除要求受信ステップで受け取った削除要求の複製データに対応する実データの格納場所を管理するディレクトリ領域を使用中のディレクトリ領域の中から検索するディレクトリ検索ステップと、
このディレクトリ検索ステップの検索で得られた使用中のディレクトリ領域を未使用ディレクトリ領域に変更することで前記複製データの削除処理を完了させるディレクトリ領域属性変更ステップ
とを具備することを特徴とする請求項８記載の複製データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ・サブシステム等の記憶装置で使用されるデータ複製システム、複製データ処理プログラムおよび複製データ処理方法に係わり、特に、スナップショット技術を使用してデータ複製を行うデータ複製システム、複製データ処理プログラムおよび複製データ処理方法に関する。
【背景技術】
【０００２】
コンピュータやデータ通信の普及と共に、社会基盤が急速にＩＴ（Information Technology）化されている。これによって、企業、あるいは個人が保有するデータの量が急激に増加している。また、電子商取引の普及や査証用データについての保管が法制化され、データ自体の質や価値も高まってきている。このような環境の変化に対応して、データの損失が発生した際の影響に関して、広く一般に認識されるようになっている。また、このようなデータの損失を未然に防ぐ手段として、バックアップ技術に大きな関心が寄せられている。
【０００３】
一例として、複数のハードディスクを使用したディスクアレイ・サブシステムで、従来から採用されているミラーリング方式によるバックアップ手順について説明する。データのバックアップを録るためには、バックアップの対象となるボリューム（マスタ・ボリューム）の区切りとなる静止点を確保する必要がある。そこで、この際には、まずマスタ・ボリュームに対してアクセスしている、データベース等のアプリケーションの処理を停止する処理が行われる。次に、そのマスタ・ボリュームと同一容量のボリューム（バックアップ・ボリューム）を作製して、マスタ・ボリュームの全データをバックアップ・ボリュームへコピー（複製）する。バックアップ・ボリュームへのコピーが完了すると、停止していたデータベース等のアプリケーションを再開する一方、バックアップ・ボリュームからデータを読み出して、テープ等のバックアップ用装置にデータの保存が行われる。
【０００４】
以上説明したミラーリング方式の手順では、アプリケーションを停止してから、バックアップ・ボリュームの作製と、マスタ・ボリュームからバックアップ・ボリュームへのデータのコピーとを実行するようにしている。これとは異なり、アプリケーションが動作している最中に、これと並行してバックアップ・ボリュームを作製する方式も実現されている。この後者の方式では、マスタ・ボリュームからバックアップ・ボリュームへのデータのコピーを予め起動しておくことにより、静止点を確保してから、マスタ・ボリュームとバックアップ・ボリュームとの同期を取るまでの時間を短縮する。しかし、いずれの方式においても、静止点を確保してから、マスタ・ボリュームのデータをバックアップ・ボリュームへ完全にコピーし終えるまでに、コピー量に応じた所要時間を要することになる。
【０００５】
また、バックアップの用途以外でもバックアップ・ボリュームを作製することがよくある。たとえば企業内に蓄積した膨大なデータの中から、意味のある相関関係や有効なビジネスパターンを発見するようなデータ・マイニング（data mining）では、マスタ・ボリュームの数倍のデータ容量を消費することになる。
【０００６】
このようなバックアップについての所要時間やデータ容量に関する問題を回避するために、最近は、スナップショット方式を採用したバックアップが頻繁に使われるようになってきている（たとえば特許文献１参照）。
【０００７】
図９は、スナップショット方式を採用した従来提案されたデータ複製システムとしてのディスクアレイ・サブシステムの一例についてその構成を表わしたものである。このディスクアレイ・サブシステム１００は、マスタ・ボリューム１０１と、このマスタ・ボリューム１０１と同容量で、実際には物理的な容量を持たない仮想的なボリューム（以下、スナップショット・ボリュームと称する。）１０２と、このスナップショット・ボリュームのデータを格納するボリューム（以下、共有プール・ボリュームと称する。）１０３の３種類のボリュームを用意している。これらの他に、スナップショット・ボリューム１０２へのデータアクセスを管理するデータ複製制御手段１０４と、このデータ複製制御手段１０４によって複製された複製データの実際の格納先を管理するアドレス変換手段１０５がディスクアレイ・サブシステム１００に備えられている。
【０００８】
図１０は、この提案のディスクアレイ・サブシステムにおけるデータ複製制御手段の構成を表わしたものである。図９と共に説明を行う。データ複製制御手段１０４は、マスタやスナップショット等のボリュームの属性を管理する属性管理テーブル１１１と、ボリューム間のスナップショット関係を保持するボリューム対応管理テーブル１１２と、マスタ・ボリューム１０１とスナップショット・ボリューム１０２との差分を管理する差分管理テーブル１１３とを備えている。ここで、差分管理テーブル１１３は、スナップショット・ボリューム１０２がデータを保持していない場合には値“０”をとり、データを保持している場合には値“１”をとるようになっている。また、属性管理テーブル１１１で「ＬＶ0」は属性がマスタであること示しており、「ＬＶ1」は属性がスナップショットであることを示している。「ＬＶ2」は属性が共有プールであることを示している。
【０００９】
図１１は、図９に示したアドレス変換手段の構成を表わしたものである。図９と共に説明を行う。アドレス変換手段１０５は、スナップショット・ボリューム１０２の実際の格納アドレスを保持するディレクトリ１３１と、共有プール・ボリューム１０３の使用状況を管理する割当管理テーブル１３２とを有している。ディレクトリ１３１はデータを保持している場合に登録され、スナップショット・ボリューム１０２が参照する実データの場所が格納されている。割当管理テーブル１３２は、共有プール・ボリューム１０３の使用されていないページは値“０”をとり、使用されているページは値“１”をとるようになっている。
【００１０】
図１２は、このような構成の従来提案されたディスクアレイ・サブシステムの動作を示したものである。ボリュームを複製する手順として、まず、この図１２に示されるように、図９に示したディスクアレイ・サブシステム１００内に、共有プール・ボリューム１０３が作製され、図１０に示した属性管理テーブル１１１と、図１１に示した割当管理テーブル１３２とが初期化される（ステップＳ２０１）。すなわち、属性管理テーブル１１１において「ＬＶ番号」としての「ＬＶ2」に共有プール属性を設定し、図１１の割当管理テーブル１３２には共有プール・ボリューム１０３（図９）が未使用状態であることを示す値“０”を設定する。
【００１１】
次のステップＳ２０２では、マスタ・ボリューム１０１と、このマスタ・ボリューム１０１と同じ記憶容量のスナップショット・ボリューム１０２とを作製する。このときの様子を図９に示している。
【００１２】
次のステップＳ２０３では、スナップショット・コマンドをディスクアレイ・サブシステムが受信する。ステップＳ２０４で、図１０に示す属性管理テーブル１１１とボリューム対応管理テーブル１１２、差分管理テーブル１１３および図１１に示すディレクトリ１３１が初期化される。すなわち、属性管理テーブル１１１では「ＬＶ0」にマスタ属性を、「ＬＶ1」にスナップショット属性を設定し、ボリューム対応管理テーブル１１２では「ＬＶ0」と「ＬＶ1」とがスナップショットの関係にあることを示すように、スナップショットの「ＬＶ0」に「ＬＶ1」を設定し、スナップショットの「ＬＶ1」に「ＬＶ0」を設定する。差分管理テーブル１１３のスナップショット・ボリューム１０２、つまりこの場合は「ＬＶ1」に、このスナップショット・ボリューム１０２がデータを保持していないことを示す値“０”を設定する。そして、図１１に示すディレクトリ１３１においてスナップショット・ボリューム１０２に共有プール・ボリューム１０３の記憶空間が割り当てられていないことを示すｎｕｌｌ（ヌル）値を設定する。このときの各テーブルの状態を図１０と図１１に示す。これ以降、スナップショット・ボリューム１０２は、スナップショット・コマンドを受信した時点におけるボリューム・イメージを保持する。
【００１３】
図１３は、このディスクアレイ・サブシステムにおけるスナップショット・ボリュームの削除処理を表わしたものである。まず、図１３に示されるように、ステップＳ２２１でディスクアレイ・サブシステム１００（図９）がスナップショット・ボリュームを削除するためのスナップショット・ボリューム削除コマンドを受信する。すると、次のステップＳ２２２で図１０に示すボリューム対応管理テーブル１１２を参照して、対応関係のあるボリュームがあることを確認する。次のステップＳ２２３で、図１０の属性管理テーブル１１１を参照し、ステップＳ２２２で確認した対応関係のあるボリュームが、マスタ・ボリューム１０１とスナップショット・ボリューム１０２であることを確認する。次のステップＳ２２４では、削除対象のスナップショット・ボリューム１０２の属性をスナップショット削除中に変更し、スナップショット・ボリューム１０２の削除コマンド処理が終了する。
【００１４】
図１４は、このディスクアレイ・サブシステムにおける共有プール・ボリューム上のスナップショット・データ削除処理を表わしたものである。この図を用いて、スナップショット・ボリュームのデータ参照先である、共有プール・ボリュームの実データの削除処理について説明する。まず、ステップＳ２４１で、図１０に示す属性管理テーブル１１１を参照して、スナップショット削除中の属性を持つボリュームが存在するかを検索する（ステップＳ２４２）。スナップショット削除中の属性を持つボリュームがなければ（Ｎ）、そのまま削除処理は終了する（エンド）。
【００１５】
スナップショット削除中の属性をもつボリュームがある場合には（ステップＳ２４２：Ｙ）、削除探索を行うページを任意に設定する（ステップＳ２４３）。そして、差分管理テーブル１１３を参照し（ステップＳ２４４）、スナップショット・ボリューム１０２における先のステップＳ２４３において設定した削除探索ページにデータがあるかどうか調べる（ステップＳ２４５）。
【００１６】
この結果、削除探索ページにデータがないと判断した場合には（Ｎ）、削除指定されたスナップショット・ボリュームの参照している実データの削除が完了したかを判断して（ステップＳ２４６）、削除すべきデータが残っていると判断した場合には（Ｎ）、ステップＳ２４３に戻って、先程とは違うページを削除探索ページに設定し、削除処理を継続することになる。
【００１７】
これに対して、ステップＳ２４５で、スナップショット・ボリューム１０２にデータがあると判断した場合には（Ｙ）、ディレクトリ１３１を参照して、スナップショット・ボリューム１０２が参照している共有プール・ボリューム１０３上の実データの位置を調べる（ステップＳ２４７）。そして、ディレクトリ１３１（図１１）が示している共有プール・ボリュームの実データを削除する（ステップＳ２４８）。
【００１８】
共有プール・ボリューム１０３上のデータを削除すると、共有プール・ボリューム１０３に使用可能な空きページが作られることになる。そこで、次のステップＳ２４９で、図１１に示した割当管理テーブル１３２の今回削除した共有プール・ボリューム１０３のページ情報を、空き領域を示す値“０”にセットする。そして、削除探索ページに該当するディレクトリ１３１の情報をクリアし（ステップＳ２５０）、次に差分管理テーブル１１３の値に、管理している実データがないことを示す値“０”をセットし（ステップＳ２５１）、削除探索ページに指定されたページの削除は完了となる。次のステップＳ２４６でスナップショット・ボリューム１０２が使用していた共有プール・ボリューム１０３の割当領域の削除が完了したかを判断し、まだ削除すべきデータが残っていると判断した場合には（Ｎ）、ステップＳ２４３に戻り、先ほどとは違うページを削除探索ページに設定し、削除処理を継続する。削除完了と判断した場合には（ステップＳ２４６：Ｙ）、スナップショット削除属性をクリアして（ステップＳ２５２）、スナップショット・ボリューム１０２の削除処理が完了となる。
【特許文献１】特開２００５−３１０１５９号公報（第０００７段落、図４Ｃ）
【発明の開示】
【発明が解決しようとする課題】
【００１９】
以上説明したように、スナップショット・ボリューム１０２は仮想ボリュームのため、その状態を示すためにデータの有無は図１０に示す差分管理テーブル１１３で、また、実データの参照先は図１１に示すディレクトリ１３１で管理されている。スナップショットの削除を行う場合には、これらの管理テーブルを更新しなければならないが、スナップショット・ボリューム１０２が使用しているディレクトリ領域は通常、ボリューム単位で固定されており、スナップショットの削除を行う場合、このディレクトリ領域の削除処理が完了するまでは、再度スナップショットを開始することができない。
【００２０】
また、ディレクトリ１３１の更新を含むスナップショット削除時の各種テーブルの更新量は、スナップショット・ボリューム１０２の容量が大きくなるに比例して多くなってしまい、削除完了待ちの時間が更に長くなってしまうという問題があった。
【００２１】
そこで本発明の目的は、複製データを仮想的に記憶する複製データ記憶領域と実際に格納する実データ格納領域とを使用し、複製データの削除から新たな複製データの作製開始までのインターバルを短縮することのできるデータ複製システム、複製データ処理プログラムおよび複製データ処理方法を提供することにある。
【課題を解決するための手段】
【００２２】
本発明では、（イ）複製の対象となるマスタ・データを格納するマスタ・データ格納手段と、（ロ）このマスタ・データ格納手段に格納されたマスタ・データの複製としての複製データをそれぞれ仮想的に記憶する複製データ記憶領域を備えた複製データ記憶手段と、（ハ）複製データを実データとして格納する実データ格納領域を備えた実データ格納手段と、（ニ）複製データ記憶手段に仮想的に記憶される１または複数の複製データにそれぞれ対応させて実データの格納場所を管理するディレクトリ領域を予め複数用意した複数ディレクトリ領域設定手段と、（ホ）実データ格納手段に格納される実データごとに複数ディレクトリ領域設定手段に用意された複数のディレクトリ領域のうちの未使用領域の１つを割り当てるディレクトリ領域割当手段とを複製データ格納システムに具備させる。
【００２３】
すなわち本発明では、マスタ・データ格納手段に格納されたマスタ・データの複製データを複製データ記憶手段の複製データ記憶領域に仮想的に記憶する一方、実データ格納手段の実データ格納領域に実データを格納する場合、複数ディレクトリ領域設定手段が実データの格納場所を管理するディレクトリ領域を予め複数用意しておき、実データ格納手段に格納される実データごとに複数ディレクトリ領域設定手段に用意された複数のディレクトリ領域のうちの未使用領域の１つを動的に割り当てるようにしている。したがって、実データの削除処理に先行して未使用のディレクトリ領域に実データの格納場所を管理する情報を格納できるので、複製データの削除から新たな複製データの作製開始までのインターバルを短縮可能である。
【００２４】
また、本発明の複製データ処理プログラムでは、（イ）データを記憶する記憶装置を備えたコンピュータに、（ロ）データの複製の対象となるマスタ・データを格納するマスタ・データ格納処理と、（ハ）このマスタ・データ格納処理で格納されたマスタ・データの複製としての複製データをそれぞれ複製データ記憶領域に仮想的に記憶する複製データ記憶処理と、（ニ）複製データを実データとして実データ格納領域に格納する実データ格納処理と、（ホ）複製データ記憶処理で仮想的に記憶される複製データにそれぞれ対応させて実データの格納場所を管理する予め用意した複数のディレクトリ領域の中から、他の複製データの管理に使用されていない未使用ディレクトリ領域を実データごとに１つずつ割り当てるディレクトリ領域割当処理とを実行させることを特徴としている。
【００２５】
すなわち本発明では、マスタ・データの複製データを複製データ記憶領域に仮想的に記憶する一方、実データを実データ格納領域に格納する場合、データを記憶する記憶装置を備えたコンピュータに、マスタ・データ格納処理で格納されたマスタ・データの複製としての複製データをそれぞれ複製データ記憶領域に仮想的に記憶する複製データ記憶処理と、複製データを実データ格納領域に実際に格納する実データ格納処理の他に、複製データ記憶処理で仮想的に記憶される複製データにそれぞれ対応させて実データの格納場所を管理する予め用意した複数のディレクトリ領域の中から、他の複製データの管理に使用されていない未使用ディレクトリ領域を実データごとに１つずつ動的に割り当てるディレクトリ領域割当処理を実行させることにした。これにより、実データの削除処理に先行して未使用のディレクトリ領域に実データの格納場所を管理する情報を格納できるので、複製データの削除から新たな複製データの作製開始までのインターバルを短縮可能である。実データの削除は、バックグラウンドで処理することが可能である。
【００２６】
また、本発明では、（イ）マスタ・データの複製としての複製データをそれぞれ複製データ記憶領域に仮想的に記憶する複製データ記憶ステップと、（ロ）複製データを実データとして実データ格納領域に格納する実データ格納ステップと、（ハ）複製データ記憶ステップで仮想的に記憶される複製データに対応させて実データの格納場所を管理する予め用意した複数のディレクトリ領域の中から、他の複製データの管理に使用されていない未使用ディレクトリ領域を割り当てるディレクトリ領域割当ステップとを複製データ処理方法に具備させる。
【００２７】
すなわち本発明では、複製データ記憶ステップで仮想的に記憶される複製データに対応させて実データの格納場所を管理する予め用意した複数のディレクトリ領域の中から、他の複製データの管理に使用されていない未使用ディレクトリ領域を動的に割り当てるディレクトリ領域割当ステップを備えることで、実データの削除処理に先行して未使用のディレクトリ領域に実データの格納場所を管理する情報を格納できるようにして、複製データの削除から新たな複製データの作製開始までのインターバルを短縮可能にした。
【発明の効果】
【００２８】
以上説明したように本発明によれば、ディレクトリ領域を予め複数用意し、これを動的に使用することにしたので、実データを削除する際にディレクトリ領域に対する操作を行うことだけで削除処理が見かけ上で完了し、実データの削除はバックグラウンドで行うことができる。
【発明を実施するための最良の形態】
【００２９】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００３０】
本実施例では、データ複製システムを、記憶装置としてのディスクアレイ・サブシステムに適用している。そこで、まずディスクアレイ・サブシステムのハードウェア構成を説明する。
【００３１】
図１は、本実施例で使用されるディスクアレイ・サブシステムのハードウェア構成の概略を表わしたものである。このディスクアレイ・サブシステム３００は、上位装置としての管理端末（計算機）３０１およびホスト（計算機）３０２と、インタフェース制御部３１１を介して接続されている。ディスクアレイ・サブシステム３００内には、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）制御部３１２を介して複数の磁気ディスク装置３１３1〜３１３6が接続されている。これらの磁気ディスク装置３１３1〜３１３6は、管理端末３０１やホスト３０２の格納するデータのバックアップ等を始めとする所定の処理を行うためのものである。ＲＡＩＤ制御部３１２は、インタフェース制御部３１１と各磁気ディスク装置３１３1〜３１３6とを接続するための制御を行うようになっている。
【００３２】
ディスクアレイ・サブシステム３００は、この他に、マイクロプロセッサ（以下単にＣＰＵという。）３１４と、このＣＰＵ３１４の使用する制御プログラムを格納した制御用メモリ３１５を備えている。インタフェース制御部３１１とＲＡＩＤ制御部３１２は、制御用メモリ３１５に格納された制御プログラムに基づいて作動するＣＰＵ３１４によってデータの入出力を制御されるようになっている。本実施例の制御用メモリ３１５は、書き込みの対象となる制御用プログラムを書き換えることでＣＰＵ３１４を様々な機能実現手段として利用することが可能である。本実施例では、このＣＰＵ３１４を主として、データの複製や、複製したデータへのアクセスを制御するデータ複製制御手段３２１と、複製したデータの格納先を制御するアドレス変換手段３２２および共有プール・ボリュームに格納したデータを削除するプールデータ削除手段３２３として利用するようにしている。
【００３３】
制御用メモリ３１５の方は、属性管理テーブル３３１、ボリューム対応管理テーブル３３２、格納ディレクトリ管理テーブル３３３、差分管理テーブル３３４、ディレクトリ３３５、割当管理テーブル３３６およびプールデータ削除テーブル３３７の各テーブルも格納するようになっている。これらについては、後に詳しく説明する。
【００３４】
この図１では、ＲＡＩＤ制御部３１２に６台の磁気ディスク装置３１３1〜３１３6が接続されているが、実際にはその各々が論理的に独立したボリューム、例えば、マスタ・ボリュームやスナップショット・ボリューム、あるいは共有プール・ボリュームといったものを構成している必要はない。ＲＡＩＤ制御部３１２の制御の下に、複数の磁気ディスク装置に跨って見かけ上単一のボリュームを設けることも、また、１つの磁気ディスク装置にパーティションを設定して、見かけ上複数のボリュームを１つの磁気ディスク装置内に設けることもできる。
【００３５】
図２は、本実施例のディスクアレイ・サブシステムの機能的な面を簡略化して示したものである。このディスクアレイ・サブシステム３００は、複製元となるマスタ・データを記憶したマスタ・ボリューム（ＬＶ0）３４１と、マスタ・ボリューム３４１の複製ボリュームとなるスナップショット・ボリューム（ＬＶ1）３４２と、複製データの実際の格納先となる共有プール・ボリューム（ＬＶ2）３４３を備えている。ここで「ＬＶ」とは、論理ボリューム（Logical Volume）を意味している。また、ディスクアレイ・サブシステム３００は、マスタ・ボリューム３４１からスナップショット・ボリューム３４２へのデータの複製を管理するデータ複製制御手段３２１（図１参照）と、スナップショット・ボリューム３４２から共有プール・ボリューム３４３へのデータ記憶を管理するアドレス変換手段３２２（図１参照）および削除されたスナップショット・ボリューム３４２が使用していた共有プール・ボリューム３４３におけるデータの削除処理を行うプールデータ削除手段３２３（図１参照）も備えている。マスタ・ボリューム３４１、スナップショット・ボリューム３４２および共有プール・ボリューム３４３の個数に関しては特に制限がない。図２では、マスタ・ボリューム３４１、スナップショット・ボリューム３４２および共有プール・ボリューム３４３の数をそれぞれ１つとしているのは、図示および説明の簡略化のためのものである。
【００３６】
本実施例では、マスタ・ボリューム３４１、スナップショット・ボリューム３４２および共有プール・ボリューム３４３に格納するデータを、ページ単位で管理している。ここで「ページ」とは、データの差分管理を行う単位であり、本実施例では３２ＫＢ（キロバイト）を１ページとしている。したがって、３２ＫＢ以下のデータは第０ページに格納され、また、たとえば第３ページ目のデータは論理ディスクの９６ＫＢから１２８ＫＢの範囲にあることになる。
【００３７】
この図２は、スナップショットを開始した後に、マスタ・ボリューム（ＬＶ0）３４１の第２ページのデータを「ＣＣ」から「ＣＥ」に更新した直後の状態を表わしている。スナップショットを開始した時点では、マスタ・ボリューム３４１の第２ページのデータは「ＣＣ」であったので、スナップショット・ボリュームの３４２の第２ページは「ＣＣ」のデータイメージを保持する。その後マスタ・ボリューム３４１の第２ページのデータを「ＣＣ」から「ＣＥ」に更新する場合には、スナップショット・ボリューム３４２の保持するデータイメージを保つために、「ＣＥ」のデータ更新に先立ち、データ複製制御手段１０４により、「ＣＣ」のデータをマスタ・ボリューム３４１からスナップショット・ボリューム３４２に複製する。これにより、スナップショット・ボリューム３４２の第２ページは「ＣＣ」というデータを保持することができる。しかし、スナップショット・ボリューム３４２が保持しているかのようにみえる「ＣＣ」というデータは、実際にはアドレス変換手段３２２によって、実体のある共有プール・ボリューム（ＬＶ2）３４３の第０ページに格納されることになる。
【００３８】
図３は、図１に示したデータ複製制御手段の構成を表わしたものである。データ複製制御手段３２１は、マスタやスナップショット等のボリュームの属性を管理する属性管理テーブル３３１と、ボリューム間のスナップショット関係を保持するボリューム対応管理テーブル３３２と、スナップショット・ボリュームが使用しているディレクトリの格納場所を管理する格納ディレクトリ管理テーブル３３３と、マスタ・ボリュームとスナップショット・ボリュームとの差分を管理する差分管理テーブル３３４とを備えている。
【００３９】
図４は、アドレス変換手段の構成を表わしたものである。アドレス変換手段３２２は、スナップショット・ボリューム３４２（図２）の実際の格納アドレスを保持するディレクトリ３３５と、共有プール・ボリューム３４３の使用状況を管理する割当管理テーブル３３６とを有する。ディレクトリ３３５は、第０ディレクトリから第Ｘディレクトリまでが用意されており、それぞれが第０ページ（ｐａｇｅ）〜第ｎページに対応付けられている。ここで、ディレクトリ３３５はアドレス変換手段３２２の構成員となっているが、これに限るものではない。すなわち、ディレクトリ３３５は論理ボリュームの中に書かれていても構わない。この場合、図３に示した格納ディレクトリ管理テーブル３３３にはディレクトリ番号ではなく、ディレクトリ３３５が格納されているボリューム番号と、ボリューム内のアドレスが格納されることになる。
【００４０】
この図４で、たとえばディレクトリ３３５の第２ページの第１ディレクトリに「ＬＶ2，第０ページ」と記載されている。これは、「ＬＶ2，第０ページ」の箇所に複製データが存在することを示している。スナップショット・ボリューム（ＬＶ1）３４２には、物理的なデータを割り当てることができない。そこで、スナップショット・ボリューム３４２がデータを持つ必要がある場合には、実体のある共有プール・ボリューム（ＬＶ2）３４３にデータを格納する。ここでは、共有プール・ボリューム３４３の第０ページに、対応する複製データが格納されることになる。
【００４１】
図５は、図１に示したプールデータ削除手段の構成を表わしたものである。プールデータ削除手段３２３は、図１に示した複数の磁気ディスク装置３１３1〜３１３6に格納されたバックアップ用の複製データのうちで必要でなくなったものを削除する手段である。このプールデータ削除手段３２３は、削除が指定されたスナップショット・ボリューム３４２が使用していたディレクトリ情報を管理するためのプールデータ削除テーブル３３７を有している。
【００４２】
このような構成の本実施例のディスクアレイ・サブシステム３００の動作について、次に詳細に説明する。
【００４３】
図６は、マスタ・データから複製データを作製するための複製準備動作を表わしたものである。まず、スナップショット動作を行うための事前準備として、図１に示すディスクアレイ・サブシステム３００内に、共有プール・ボリューム３４３（図２）が作製され、属性管理テーブル３３１と割当管理テーブル３３６とが初期化される（ステップＳ４０１）。すなわち、属性管理テーブル３３１については図３に示すように「ＬＶ2」に共有プール属性を設定し、割当管理テーブル３３６については図４に示すように共有プール・ボリューム３４３が未使用状態であることを示す値“０”を設定する。共有プール・ボリューム３４３の記憶容量は任意に定めてよいが、複数のスナップショット・ボリューム３４２のデータ格納先になることを考慮し、当面必要となるデータ量を見積もった上で作製することが望ましい。
【００４４】
次のステップＳ４０２では、マスタ・ボリューム３４１と、このマスタ・ボリューム３４１と同じ記憶容量のスナップショット・ボリュームを作製する。複製データ記憶領域として機能するスナップショット・ボリュームは、見かけ上はマスタ・ボリュームと同じ記憶容量を持っている。しかしながら、スナップショット・ボリューム３４２の実際のデータ格納先は共有プール・ボリューム３４３になる。したがって、スナップショット・ボリューム３４２自身が記憶領域を消費することはない。つまり、スナップショット・ボリューム３４２はディスクアレイ・サブシステム３００内に仮想的に構築されたボリュームに過ぎないものであり、実質的な記憶容量を持たない。
【００４５】
マスタ・ボリューム３４１はこのステップＳ４０２の処理の段階で作製してもよいし、既に存在するボリュームを指定してもよい。既に存在するボリュームを指定するときには、スナップショット関係を持たないボリュームを指定してもよいし、既にスナップショット関係にあるマスタ・ボリューム３４１に対して、更にスナップショット・ボリューム３４２を関連付けてもよい。
【００４６】
次のステップＳ４０３でスナップショット・コマンドを受信する。これにより、更に次のステップＳ４０４で格納ディレクトリ管理テーブル３３３（図３）およびプールデータ削除テーブル３３７（図１）を参照し、使用可能な空きディレクトリを検索する。
【００４７】
次のステップＳ４０５では、図３に示す属性管理テーブル３３１、ボリューム対応管理テーブル３３２、差分管理テーブル３３４、図４に示すディレクトリ３３５および図３に示す格納ディレクトリ管理テーブル３３３がそれぞれ初期化される。すなわち、属性管理テーブル３３１については、図３に示すように「ＬＶ0」にマスタ属性を設定し、ボリューム対応管理テーブル３３２については、「ＬＶ0」と「ＬＶ1」とがスナップショットの関係にあることを示すように、「ＬＶ0」に「ＬＶ1」を設定し、「ＬＶ1」に「ＬＶ0」を設定する。差分管理テーブル３３４については、スナップショット・ボリューム３４２のデータのイメージが、スナップショット・ボリューム３４２にないことを示す値“０”をセットする。そして、直前のステップＳ４０４で検索した使用可能ディレクトリを格納ディレクトリ管理テーブル３３３に登録し、図４に示すディレクトリ３３５はスナップショット・ボリューム３４２に共有プール・ボリューム３４３の割り当てがないことを示すｎｕｌｌ値で初期化することになる。
【００４８】
これ以降に、スナップショット・ボリューム３４２は、スナップショット・コマンドを受信した時点でボリューム・イメージを保持する。
【００４９】
図７は、本実施例のスナップショット・ボリュームの削除コマンドを受信した場合の処理の流れを示したものである。スナップショット・ボリューム３４２の削除コマンドを受信すると、ステップＳ４２１でボリューム対応管理テーブル３３２を参照し、スナップショットの対応関係があるボリュームが存在することを確認する（ステップＳ４２１）。次に、図３に示す属性管理テーブル３３１を参照して、対応関係のあるボリュームが、マスタ・ボリューム３４１とスナップショット・ボリューム３４２の関係にあることを確認する（ステップＳ４２２）。
【００５０】
次に、図５に示したプールデータ削除テーブル３３７を構築する（ステップＳ４２３）。プールデータ削除テーブル３３７には、削除指定されたスナップショット・ボリューム３４２が使用していたディレクトリ格納先情報を、図３に示す格納ディレクトリ管理テーブル３３３よりコピーする。
【００５１】
次のステップＳ４２４では、ボリューム対応管理テーブル３３２および格納ディレクトリ管理テーブル３３３の値をクリアする。これにより、スナップショット・ボリューム削除コマンドは終了し、削除が完了したスナップショット・ボリューム３４２は再度スナップショット開始コマンドを受信可能な状態になる。従来の手法では、スナップショット・ボリューム３４２が使用するディレクトリ領域は固定されていた。このため、スナップショット・ボリューム３４２を削除してから再度スナップショット・コマンドを発行する場合には、それまで使用していたディレクトリ３３５（図４）の削除完了を待つことが必要であった。これに対して本実施例の場合には、ディレクトリ３３５に使用する領域を、スナップショット開始時に動的に確保することで、ディレクトリ３３５の削除待ち時間を不要としている。
【００５２】
図８は、共有プール・ボリューム上のスナップショット・データ削除処理を表わしたものである。これは、図５に示したプールデータ削除手段３２３によって、スナップショット・ボリューム３４２が使用していた共有プール・ボリューム３４３の割当領域を解除する処理である。プールデータ削除手段３２３は、数秒ごとに起動して、処理を実行する。そして、起動時にプールデータ削除テーブル３３７を参照し（ステップＳ４４１）、次に、プールデータ削除テーブルに登録されているエントリがあるかを判断する（ステップＳ４４２）。エントリが登録されていなければ（Ｎ）、そのまま処理を終了する（エンド）。
【００５３】
エントリが登録されていれば（ステップＳ４４２：Ｙ）、共有プール・ボリューム３４３の割り当て解除を行う処理へ進む。すなわち、まず、削除探索を行うページを任意に設定する（ステップＳ４４３）。この時、削除探索ページに指定できるのは、削除指定されたスナップショット・ボリューム３４２の容量を超えない範囲とする。次に、プールデータ削除テーブル３３７に登録されたディレクトリ３３５を参照する（ステップＳ４４４）。そして、探索したページにデータがあるかを判断する（ステップＳ４４５）。探索したページにデータがないと判別した場合には（Ｎ）、処理中のエントリのデータ削除が完了したか否かを判別する（ステップＳ４４６）。その結果、処理中のエントリのデータ削除が完了していない場合には（Ｎ）、ステップＳ４４３に戻って、先程とは違うページを削除探索ページに設定して、削除処理を継続する。
【００５４】
これに対して、ステップＳ４４５で、削除探索ページにデータがあると判断した場合には（Ｙ）、ディレクトリ３３５に登録された共有プール・ボリュームの実データを削除する（ステップＳ４４７）。そして、図４に示した割当管理テーブル３３６の削除探索ページの値を、空き領域であることを示す値“０”にセットする（ステップＳ４４８）。この場合には、削除探索ページのディレクトリの値をクリアして、削除探索ページに指定されたページの削除は完了となる（ステップＳ４４９）。次に、削除処理中のエントリの削除が完了したかを判断する（ステップＳ４４６）。まだエントリの削除が完了していない場合には（Ｎ）、ステップＳ４４３に戻り、先程とは違うページを削除探索ページに設定し、削除処理を継続する。
【００５５】
これに対して、ステップＳ４４６で削除完了と判断した場合には（Ｙ）、図５に示したプールデータ削除テーブル３３７から削除が完了したディレクトリのエントリをクリアし（ステップＳ４５０）、共有プール・ボリューム３４３の削除処理が終了する（エンド）。
【００５６】
以上説明した実施例では、ディレクトリ３３５を含む各種テーブル情報は制御用メモリ３１５上にあるものとして説明したが、これに限るものではない。例えば共有プール・ボリューム上の空き領域等は、磁気ディスク装置、光ディスク装置等の記憶媒体のいずれの場所に格納されていてもよい。
【００５７】
また、実施例ではディスクアレイ・サブシステムにおけるボリュームレベルのバックアップに使用したが、これ以外のシステムでのデータのバックアップに同様に使用することができる。
【図面の簡単な説明】
【００５８】
【図１】本実施例で使用されるディスクアレイ・サブシステムのハードウェアの概略構成図である。
【図２】本実施例のディスクアレイ・サブシステムの機能構成を示した概略構成図である。
【図３】本実施例のデータ複製制御手段の構成を表わした説明図である。
【図４】本実施例のアドレス変換手段の構成を表わした説明図である。
【図５】本実施例のプールデータ削除手段の構成を表わした説明図である。
【図６】本実施例でマスタ・データから複製データを作製するための複製準備動作を表わした流れ図である。
【図７】本実施例でスナップショット・ボリュームの削除コマンドを受信した場合の処理を示す流れ図である。
【図８】本実施例で共有プール・ボリューム上のスナップショット・データ削除処理を表わした流れ図である。
【図９】スナップショット方式を採用した従来提案されたデータ複製システムとしてのディスクアレイ・サブシステムの機能構成を示した概略構成図である。
【図１０】この提案のディスクアレイ・サブシステムにおけるデータ複製制御手段の構成を示す説明図である。
【図１１】図９に示したアドレス変換手段の構成を示す説明図である。
【図１２】従来提案されたディスクアレイ・サブシステムの動作を示す流れ図である。
【図１３】従来提案されたディスクアレイ・サブシステムにおけるスナップショット・ボリュームの削除処理を示す流れ図である。
【図１４】従来提案されたディスクアレイ・サブシステムにおける共有プール・ボリューム上のスナップショット・データ削除処理を表わした流れ図である。
【符号の説明】
【００５９】
３００  ディスクアレイ・サブシステム
３０１  管理端末
３０２  ホスト
３１３  磁気ディスク装置
３１４  マイクロプロセッサ（ＣＰＵ）
３２１  データ複製制御手段
３２２  アドレス変換手段
３２３  プールデータ削除手段
３３１  属性管理テーブル
３３２  ボリューム対応管理テーブル
３３３  格納ディレクトリ管理テーブル
３３４  差分管理テーブル
３３５  ディレクトリ
３３６  割当管理テーブル
３３７  プールデータ削除テーブル
【図１】
2007172365.tif 000003
【図２】
2007172365.tif 000004
【図３】
2007172365.tif 000005
【図４】
2007172365.tif 000006
【図５】
2007172365.tif 000007
【図６】
2007172365.tif 000008
【図７】
2007172365.tif 000009
【図８】
2007172365.tif 000010
【図９】
2007172365.tif 000011
【図１０】
2007172365.tif 000012
【図１１】
2007172365.tif 000013
【図１２】
2007172365.tif 000014
【図１３】
2007172365.tif 000015
【図１４】
2007172365.tif 000016