(57)【要約】  方法およびサービスは、ソース・ストレージ・ユニット内に記憶されたソース・データの仮想ポイント・イン・タイム・コピーを作成および保持する。当該方法／サービスは、ソース・データのポイント・イン・タイム・コピーを作成するための少なくとも１つの要求を受信する。しかしながら、ソース・データのコピーを作成する代わりに、本発明は、対象ストレージ・ユニットまたは同一のストレージ・システムによって管理される他のストレージ・ユニット内の対象ユニット・マッピング・テーブルを作成する。このターゲット・ストレージ・ユニット・マッピング・テーブルは、ソース・データに対するポインタを含む。加えて、本発明は、対象ストレージ・ユニットまたは同一のストレージ・システムによって管理される他のストレージ・ユニット内の修正空間を保持する。修正空間の各部分は、所定の対象ストレージ・ユニットと関連付けられている。修正空間は、対応する対象ストレージ・ユニットに固有のソース・データに対する変更を記憶するのみである。対象ストレージ・ユニット・マッピング・テーブルは、修正空間にデータが書き込まれながら、対象ストレージ・ユニット・マッピング・テーブル内の対応するポインタをソース・データから修正空間へ転送することによって修正される。【選択図】図１
2008529187.tif 000002
【特許請求の範囲】
【請求項１】
ソース・データの仮想ポイント・イン・タイム・コピーを保持するためのコンピュータ・システムであって、
前記ソース・データに対するポインタを保持するように適合されたソース・ストレージ・ユニット・マッピング・テーブルと、
前記ソース・データに対するポインタと、修正データに対するポインタとを保持するように適合された少なくとも１つの対象ストレージ・ユニット・マッピング・テーブルとを備え、
前記対象ストレージ・ユニット・マッピング・テーブル内のポインタが対応するソース・データの代わりに前記修正データをポイントする以外は、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・ストレージ・ユニット・マッピング・テーブルと同一である、システム。
【請求項２】
ある期間に渡って、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・データの部分と、前記修正データの部分とをポイントするポインタの固有の組み合わせを通じて、前記ソース・データの固有の仮想コピーを保持する、請求項１に記載のシステム。
【請求項３】
前記ポインタは、直接ポインタおよび間接ポインタのうちのいずれか１つを備える、請求項１に記載のシステム。
【請求項４】
前記修正データを保持するように適合される修正空間をさらに備える、請求項１に記載のシステム。
【請求項５】
前記修正空間として利用可能なストレージの空きブロックのリストをさらに備える、請求項４に記載のシステム。
【請求項６】
前記ソース・ストレージ・ユニット・マッピング・テーブルは、前記ソース・データを保持するソース・ストレージ・ユニット内の物理ストレージ装置上の位置に対するポインタを含む、請求項１に記載のシステム。
【請求項７】
前記ソース・ストレージ・ユニット・マッピング・テーブルおよび前記対象ストレージ・ユニット・マッピング・テーブルは、それぞれ、
ポインタのマッピング・テーブル、
フラグのマッピング・テーブル、および
ハッシング・テーブルを伴うリンク付けされたリスト
のうちの１つを備える、請求項１に記載のシステム。
【請求項８】
ソース・データの仮想ポイント・イン・タイム・コピーを保持するためのコンピュータ・システムであって、
少なくとも１つの物理ストレージ装置を備えるソース・ストレージ・ユニットと、
前記ソース・ストレージ・ユニット内の前記ソース・データに対するポインタを保持するように適合されたソース・ストレージ・ユニット・マッピング・テーブルと、
対象ストレージ・ユニット・マッピング・テーブルを備える少なくとも１つの対象ストレージ・ユニットとを備え、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・ストレージ・ユニット内の前記ソースデータに対するポインタと、修正空間内に保持された修正データに対するポインタとを保持するように適合される、システム。
【請求項９】
ある期間に渡って、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・データの部分と、前記修正データの部分とをポイントするポインタの固有の組み合わせを通じて、前記ソース・データの固有の仮想コピーを保持する、請求項８に記載のシステム。
【請求項１０】
前記ポインタは、直接ポインタおよび間接ポインタのうちのいずれか１つを備える、請求項８に記載のシステム。
【請求項１１】
前記修正空間として利用可能なストレージの空きブロックのリストをさらに備える、請求項８に記載のシステム。
【請求項１２】
前記ソース・ストレージ・ユニット・マッピング・テーブルは、前記ソース・ストレージ・ユニット内の前記物理ストレージ装置上の位置に対するポインタを含む、請求項８に記載のシステム。
【請求項１３】
前記ソース・ストレージ・ユニット・マッピング・テーブルおよび前記対象ストレージ・ユニット・マッピング・テーブルは、それぞれ、
ポインタのマッピング・テーブル、
フラグのマッピング・テーブル、および
ハッシング・テーブルを伴うリンク付けされたリスト
のうちの１つを備える、請求項８に記載のシステム。
【請求項１４】
ソース・ストレージ・ユニット内に記憶されたソース・データの仮想ポイント・イン・タイム・コピーを作成および保持する方法であって、
前記ソース・データのポイント・イン・タイム・コピーを作成するための要求を受信するステップと、
前記ソース・データの前記コピーを作成する代わりに、前記ソース・データに対するポインタを含む対象ストレージ・ユニット・マッピング・テーブルを作成するステップと、
前記対象ストレージ・ユニットに関連付けられている修正空間であって、前記対象ストレージ・ユニットに固有の前記ソース・データに対する変更を記憶するだけである前記修正空間を保持するステップと、
前記修正空間に対してデータが書き込まれながら、前記対象ストレージ・ユニット・マッピング・テーブルを修正するステップであって、前記対象ストレージ・ユニット・マッピング・テーブル内の対応するポインタを前記ソース・データから前記修正空間へ転送するステップと
を含む、方法。
【請求項１５】
ある期間に渡って、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・データの部分と、前記修正空間の部分とをポイントするポインタの固有の組み合わせを通じて、前記対象ストレージ・ユニットのための前記ソース・データの固有のコピーを保持する、請求項１４に記載の方法。
【請求項１６】
前記ポインタは、直接ポインタおよび間接ポインタのうちのいずれか１つを備える、請求項１４に記載の方法。
【請求項１７】
前記修正空間を設けるステップをさらに含む、請求項１４に記載の方法。
【請求項１８】
前記ソース・ストレージ・ユニット・マッピング・テーブルは、前記ソース・ストレージ・ユニット内の物理ストレージ装置上の位置に対するポインタを含む、請求項１４に記載の方法。
【請求項１９】
前記ソース・ストレージ・ユニット・マッピング・テーブルおよび前記対象ストレージ・ユニット・マッピング・テーブルは、それぞれ、
ポインタのマッピング・テーブル、
フラグのマッピング・テーブル、および
ハッシング・テーブルを伴うリンク付けされたリスト
のうちの１つを備える、請求項１４に記載の方法。
【請求項２０】
ソース・ストレージ・ユニット内に記憶されたソース・データの仮想ポイント・イン・タイム・コピーを作成および保持するための方法であって、
前記ソース・データのポイント・イン・タイム・コピーを作成するための少なくとも１つの要求を受信するステップと、
前記ソース・ストレージ・ユニットをソース・ボリュームとしてマーク付けするステップであって、前記ソース・ストレージ・ユニットがソース・ボリュームとしてマーク付けされる場合には修正はできない、ステップと、
前記ソース・データの前記コピーを作成する代わりに、前記ソース・データに対するポインタを含む対象ストレージ・ユニット・マッピング・テーブルを作成するステップと、
前記対象ストレージ・ユニットに関連付けられている修正空間であって、前記対象ストレージ・ユニットに固有の前記ソース・データに対する変更を記憶するだけである前記修正空間を保持するステップと、
前記修正空間に対してデータが書き込まれながら、前記対象ストレージ・ユニット・マッピング・テーブルを修正するステップであって、前記対象ストレージ・ユニット・マッピング・テーブル内の対応するポインタを前記ソース・データから前記修正空間へ転送するステップと、
少なくとも１つの対象ストレージ・ユニットを削除するステップであって、どの対象ストレージ・ユニットも前記ソース・ストレージ・ユニットを参照しない場合には、前記ソース・ストレージ・ユニットを通常のボリュームとしてマーク付けし、前記ソース・ストレージ・ユニットが通常のボリュームとしてマーク付けされた場合には修正可能である、ステップと
を含む、方法。
【請求項２１】
ある期間に渡って、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・データの部分と、前記修正空間の部分とをポイントするポインタの固有の組み合わせを通じて、前記対象ストレージ・ユニットのための前記ソース・データの固有のコピーを保持する、請求項２０に記載の方法。
【請求項２２】
前記ポインタは、直接ポインタおよび間接ポインタのうちのいずれか１つを備える、請求項２０に記載の方法。
【請求項２３】
前記修正空間として利用可能なストレージの空きブロックのリストを保持するステップをさらに含む、請求項２０に記載の方法。
【請求項２４】
前記ソース・ストレージ・ユニット・マッピング・テーブルは、前記ソース・ストレージ・ユニット内の物理ストレージ装置上の位置に対するポインタを含む、請求項２０に記載の方法。
【請求項２５】
前記ソース・ストレージ・ユニット・マッピング・テーブルおよび前記対象ストレージ・ユニット・マッピング・テーブルは、それぞれ、
ポインタのマッピング・テーブル、
フラグのマッピング・テーブル、および
ハッシング・テーブルを伴うリンク付けされたリスト
のうちの１つを備える、請求項２０に記載の方法。
【請求項２６】
ソース・ストレージ・ユニット内に記憶されたソース・データの仮想ポイント・イン・タイム・コピーを作成および保持するサービスであって、
前記ソース・データのポイント・イン・タイム・コピーを作成するための要求を受信するステップと、
前記ソース・データの前記コピーを作成する代わりに、前記ソース・データに対するポインタを含む対象ストレージ・ユニット・マッピング・テーブルを作成するステップと、
前記対象ストレージ・ユニットに関連付けられている修正空間であって、前記対象ストレージ・ユニットに固有の前記ソース・データに対する変更を記憶するだけである前記修正空間を保持するステップと、
前記修正空間に対してデータが書き込まれながら、前記対象ストレージ・ユニット・マッピング・テーブルを修正するステップであって、前記対象ストレージ・ユニット・マッピング・テーブル内の対応するポインタを前記ソース・データから前記修正空間へ転送するステップと
を含む、サービス。
【請求項２７】
ある期間に渡って、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・データの部分と、前記修正空間の部分とをポイントするポインタの固有の組み合わせを通じて、前記対象ストレージ・ユニットのための前記ソース・データの固有のコピーを保持する、請求項２６に記載のサービス。
【請求項２８】
前記ポインタは、直接ポインタおよび間接ポインタのうちのいずれか１つを備える、請求項２６に記載のサービス。
【請求項２９】
前記修正空間を設けるステップをさらに含む、請求項２６に記載のサービス。
【請求項３０】
前記ソース・ストレージ・ユニット・マッピング・テーブルは、前記ソース・ストレージ・ユニット内の物理ストレージ装置上の位置に対するポインタを含む、請求項２６に記載のサービス。
【請求項３１】
前記ソース・ストレージ・ユニット・マッピング・テーブルおよび前記対象ストレージ・ユニット・マッピング・テーブルは、それぞれ、
ポインタのマッピング・テーブル、
フラグのマッピング・テーブル、および
ハッシング・テーブルを伴うリンク付けされたリスト
のうちの１つを備える、請求項２６に記載のサービス。
【請求項３２】
機械読み込み可能なプログラム・ストレージ装置であって、
ソース・ストレージ・ユニット内に記憶されたソース・データの仮想ポイント・イン・タイム・コピーを作成および保持する方法を実行するために、前記機械によって実行可能な命令のプログラムを具体的に実施するプログラム・ストレージ装置であって、前記方法は、
前記ソース・データの仮想ポイント・イン・タイム・コピーを作成するための少なくとも１つの要求を受信するステップと、
前記ソース・ストレージ・ユニットをソース・ボリュームとしてマーク付けするステップであって、前記ソース・ストレージ・ユニットがソース・ボリュームとしてマーク付けされる場合には修正はできない、ステップと、
前記ソース・データの前記コピーを作成する代わりに、前記ソース・データに対するポインタを含む対象ストレージ・ユニット・マッピング・テーブルを作成するステップと、
前記対象ストレージ・ユニットに関連付けられている修正空間であって、前記対象ストレージ・ユニットに固有の前記ソース・データに対する変更を記憶するだけである前記修正前記修正空間として利用可能なストレージの空きブロックのリスト空間を保持するステップと、
前記修正空間に対してデータが書き込まれながら、前記対象ストレージ・ユニット・マッピング・テーブルを修正するステップであって、前記対象ストレージ・ユニット・マッピング・テーブル内の対応するポインタを前記ソース・データから前記修正空間へ転送するステップとを含む、プログラム・ストレージ装置。
【請求項３３】
ある期間に渡って、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・データの部分と、前記修正空間の部分とをポイントするポインタの固有の組み合わせを通じて、前記対象ストレージ・ユニットのための前記ソース・データの固有のコピーを保持する、請求項３２に記載のプログラム・ストレージ装置。
【請求項３４】
前記ポインタは、直接ポインタおよび間接ポインタのうちのいずれか１つを備える、請求項３２に記載のプログラム・ストレージ装置。
【請求項３５】
ある期間に渡って、前記対象ストレージ・ユニット・マッピング・テーブルは、前記ソース・データの部分と、前記修正空間の部分とをポイントするポインタの固有の組み合わせを通じて、前記対象ストレージ・ユニットのための前記ソース・データの固有のコピーを保持する、請求項３２に記載のプログラム・ストレージ装置。
【請求項３６】
前記ポインタは、直接ポインタおよび間接ポインタのうちのいずれか１つを備える、請求項３２に記載のプログラム・ストレージ装置。
【請求項３７】
前記方法は、前記修正空間を設けるステップをさらに含む、請求項３２に記載のプログラム・ストレージ装置。
【請求項３８】
前記ソース・ストレージ・ユニット・マッピング・テーブルは、前記ソース・ストレージ・ユニット内の物理ストレージ装置上の位置に対するポインタを含む、請求項３２に記載のプログラム・ストレージ装置。
【請求項３９】
前記ソース・ストレージ・ユニット・マッピング・テーブルおよび前記対象ストレージ・ユニット・マッピング・テーブルは、それぞれ、
ポインタのマッピング・テーブル、
フラグのマッピング・テーブル、および
ハッシング・テーブルを伴うリンク付けされたリスト
のうちの１つを備える、請求項３２に記載のプログラム・ストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ・システムのデータ・ストレージ機構に記憶されたコンピュータ・システム・データのポイント・イン・タイム・コピーを作成するための方法に関する。より特定的には、本発明は、対象となる１つ以上のボリュームについての空間的および時間的に効率のよいコピーを作成するための、最小限のリソースでかつソフトウェア・アルゴリズムを実行するのが容易な方法を説明する。
【背景技術】
【０００２】
ポイント・イン・タイム・コピーを使用する従来のシステムは、元ディスクまたはソース・ディスクもしくは論理ユニット（ＬＵＮ）を、物理的にデータをコピーすることなく、対象ＬＵＮ上のブロックがソースＬＵＮ上の対応するブロックを参照するような制御データ構成（メタデータ）を設定することによって、１つ以上のコピー・インスタンス（対象ディスクまたは対象ＬＵＮとも称される）にコピーする。そして、ソースＬＵＮ上の１つ以上のＬＵＮが修正または書き込みもしくはその両方がなされた場合にのみ、これらのブロックをコピーする必要が生じる。従来のシステムにおいては、これらのブロックは、ソースＬＵＮ上で修正される前にすべてのコピー・インスタンスにコピーされる。これは、ＬＵＮのポイント・イン・タイム・コピーを作成できる数（例えば４つ）を限定することになる。この取り組みは、ブロックは修正されない場合には一箇所にのみ記憶される（空間的に効率のよいコピーと称される）という利点がある。性能関連の利点に加えて、これにより、キャッシュ性能を向上することができる。なぜならば、互いに異なるディスクまたはＬＵＮ上のディスク・ブロックは同一のディスク・ブロックを参照するので、キャッシュ・メモリ内のスペースは少なくてすむだろうからである。他の取り組みにおいて、各対象ＬＵＮは、ソースＬＵＮと同様のディスク空間を必要とし、ディスク・ブロックの大きな割合部分が読み出し専用の場合であっても、各コピー内に記憶される。ソースからターゲットＬＵＮへのこのような物理コピーは、通常、バックグラウンド処理として行われる。この種のポイント・イン・タイム・コピー動作は、良好なコピーおよびキャッシング性能をもたらすことはない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、ソース・データをコピーするための改良されたシステムおよび方法に対する必要性がある。
【課題を解決するための手段】
【０００４】
本明細書における実施形態は、ソース・ストレージ・ユニットまたはソースＬＵＮ内に記憶されたソース・データの仮想ポイント・イン・タイム・コピーを作成および保持する方法およびサービスを含む。本方法／サービスは、ソース・データのポイント・イン・タイム・コピーを作成するための少なくとも１つの要求を受信する。しかしながら、ソース・データのコピーを作成する代わりに、本発明は、対象ストレージ・ユニットまたは同一のストレージ・システムによって管理される他のストレージ空間内に記憶される対象ストレージ・ユニットまたはＬＵＮマッピング・テーブルを作成する。この対象ストレージ・ユニット・マッピング・テーブルは、ソース・データに対するポインタを含む。加えて、本発明は、ストレージ・システム内の修正空間を保持する。修正空間の各部分は、所定の対象ＬＵＮに関連付けられている。対象ＬＵＮのための修正空間は、対象ＬＵＮに固有のソース・データに対する変更を記憶するだけである。データが修正空間に書き込まれながら、対象ストレージ・ユニット・マッピング・テーブルは修正され、この修正は、対象ストレージ・ユニット・マッピング・テーブル内の対応するポインタをソース・データから修正空間へ転送することによって行われる。
【０００５】
ソース・データの仮想コピーがある限り、本方法は、ソース・ストレージＬＵＮをソース・ボリュームとしてマーク付けする。ソース・ストレージＬＵＮがソース・ボリュームとしてマーク付けされる場合には、修正することはできない。代わりに、対象ストレージ・ユニット・マッピング・テーブル・ポインタおよび対応の修正のみ、変更することができる。対象ストレージ・ユニットは、時間の経過と共に削除することができる。ソース・ストレージ・ユニットを参照する対象ストレージ・ユニットがない場合には、本発明は、ソース・ストレージ・ユニットを通常のボリュームとしてマーク付けする。ソース・ストレージ・ユニットが通常のボリュームとしてマーク付けされる場合には、修正することができる。ソース・ボリュームを読み出し専用とすることによって、性能上なんら妥協することなく、数個のコピー・インスタンスを有することが可能になる。さらに、この要件により、このポイント・イン・タイム・コピー方法を容易に実施できることになる。なぜならば、各対象ＬＵＮは、修正空間を管理する必要があるからである。
【０００６】
また、本明細書における実施形態は、ソース・データの仮想ポイント・イン・タイム・コピーを保持するためのコンピュータ・システムを含む。本システムは、（複数の）物理ストレージ装置を有するソース・ストレージ・ユニットまたはＬＵＮと、ソース・ストレージ・マッピング・テーブルとを備える。ソース・ストレージ・マッピング・テーブルは、ソース・ストレージ・ユニット内のソース・データに対するポインタを保持し、ソース・ストレージ装置または同一のストレージシステムによって管理される他のストレージ装置に記憶される。（複数の）対象ストレージ・ユニットは、対象ＬＵＮとも称され、これもシステムに含まれる。この対象ストレージ・ユニットは、ソース・ストレージ内のソース・データに対するポインタと、修正領域内に記憶された修正データに対するポインタとを保持する対象ストレージ・ユニット・マッピング・テーブルを含む。対象ストレージ・ユニット・マッピング・テーブル内のポインタが対応するソース・データの代わりに修正データをポイントする以外は、対象ストレージ・ユニット・マッピング・テーブル内のエントリは、ソース・ストレージ・ユニット・マッピング・テーブルないでポイントされたものと同一のデータブロックをポイントする。
【０００７】
ある期間に渡って、対象ストレージ・ユニット・マッピング・テーブルは、ソース・データの部分と、修正空間の部分とをポイントするポインタの固有の組み合わせを通じて、ソース・データの固有の仮想コピーを保持する。これらのポインタは、直接ポインタまたは間接ポインタを備えることができる。修正空間を使用して、修正データを保持する。これは、対象ストレージ・ユニットまたはこの目的専用のストレージ・システム上の特別な空間の一部である。ストレージ・システム内のストレージの空きのブロックのリストは、修正空間として使用するのに利用可能なブロックを列挙する。ソース・ストレージ・ユニット・マッピング・テーブルは、ソース・ストレージ・ユニット内の物理ストレージ装置上の位置に対するポインタを含む。ソース・ストレージ・ユニット・マッピング・テーブルおよび対象ストレージ・ユニット・マッピング・テーブルは、ポインタのマッピング・テーブル、フラグのマッピング・テーブル、またはハッシング・テーブルを伴うリンク付けされたリストであってもよい。
【０００８】
ソース・データは、ソース・ストレージ・ユニットまたはソースＬＵＮに保持される。ソース・ストレージ・ユニット・マッピング・テーブルは、対象ストレージ・ユニットまたは対象ＬＵＮか、もしくは同一のストレージ・システムによって管理される他のストレージ・ユニットのいずれかに保持される。対象ストレージ・ユニット・マッピング・テーブルは、対象ストレージ・ユニットまたは対象ＬＵＮか、もしくは同一のストレージ・システムによって管理される他のストレージ・ユニットのいずれかに保持される。修正空間は、対象ストレージ・ユニットまたは対象ＬＵＮか、もしくは同一のストレージ・システムによって管理される他のストレージ・ユニットのいずれかの内部に保持される。
【０００９】
本発明のこれらおよび他の局面および目的は、以下の説明および添付の図面と共に考慮するといっそう認識および理解されるだろう。しかしながら、以下の説明は、本発明の好ましい実施形態およびその数多くの具体的な詳細を示しているものの、限定ではなく例示の目的で与えられていることが理解されるべきである。多くの変更および修正が、本発明の精神を逸脱することなく、本発明の範囲内で行われてもよい。本発明は、そのような修正のすべてを含むものである。
【００１０】
本発明は、図面を参照して以下の詳細の説明からいっそう理解されるだろう。
【発明を実施するための最良の形態】
【００１１】
本発明ならびにその様々な特徴および利点の詳細を、添付の図面に図示されかつ以下の説明において詳述されている非限定的な実施形態を参照して、より完全に説明する。注意すべきなのは、図面に示された特徴は、必ずしも一律の縮尺で描かれているわけではないということである。周知の構成要素および処理手法の説明は、本発明を不必要に不明瞭にしないようにするために省略されている。本明細書において使用される例は、本発明が実施できるようなやり方についての理解を助け、さらに当業者が本発明を実施できるようにするために意図されているに過ぎない。従って、本例は、本発明の範囲を制限するものと解釈されるべきではない。
【００１２】
以下に説明する本発明は、ストレージ・コントローラ上でのポイント・イン・タイム・コピーを介するサーバ・プロビジョニングに特に適した、新しいコピー手法／サービス／システムを提供する。ソース・データのコピーを作成する代わりに、本発明は、対象ストレージ・ユニット・マッピング・テーブルを作成する。この対象ストレージ・ユニット・マッピング・テーブルは、ソース・データに対するポインタを含む。加えて、本発明は、ストレージ・システム内の修正空間を保持する。修正空間の各部分は、所定の対象ストレージ・ユニットまたは対象ＬＵＮに関連付けられている。修正空間は、対応の対象ＬＵＮに固有のソース・データに対する変更を記憶するだけである。データが修正空間に書き込まれながら、対象ストレージ・ユニット・マッピング・テーブルは修正され、この修正は、対象ストレージ・ユニット・マッピング・テーブル内の対応するポインタをソース・データから修正空間へ転送することによって行われる。ある期間に渡って、対象ストレージ・ユニット・マッピング・テーブルは、ソース・データの部分と、修正空間の部分とをポイントするポインタの固有の組み合わせを通じて、ソース・データの固有の仮想コピーを保持する。
【００１３】
本発明により、論理ディスクがコピー動作のソースとなる場合には、自動的に読み出し専用となることになる。この要件により、システムは、高性能を保持しつつ、より多くのコピーを提供することができる。さらに、元コピーが読み出し専用の場合、修正されていないすべてのディスク・ブロックは、ディスクに一度記憶され、互いに異なるコピーにアクセスする複数のノードによってアクセスされる場合には、１つのコピーのみがストレージ管理キャッシュに記憶されればよい。この動作は、オペレーティングシステムの画像を含むゴールデン・ディスクが作成されて複数（数十）のコピーが必要に応じて作成される場合のプロビジョニングに非常に適している。
【００１４】
論理ユニットまたはＬＵＮと称される１つ以上のストレージ・ユニットを、空間的および時間的に効率のよいポイント・イン・タイム・コピー動作のソースとして使用することができる。この動作は、ソース・データブロックを他のストレージ領域に物理的にコピーする必要がないので、実行するのに長時間かからないため、時間的に効率がよい。この動作を行うのに必要な時間は、ユーザ要求をストレージ装置内の正確な位置に導くことが可能な比較的小さいデータ構成を作成および保持することに主に費やされる。また、本発明において提示されるこの動作は、空間的にも効率がよい。なぜならば、データブロックが新しい位置に物理的にコピーされるのは変更があった場合のみなので、ポイント・イン・タイム・コピーを維持するために使用される物理ストレージの量は最小限だからである。ソース・データのための空間は、基本的にはソースＬＵＮのサイズであり、膨大なものでありうる。問題は、ソースのサイズに対する制御はないということである。対象に対しては、修正されたブロックがそれほど多くない限り、空間は非常に限られている。よって、対象のサイズは、修正されたブロックの量に左右されることになる。本開示は、１つのＬＵＮのポイント・イン・タイム・コピーを作成するための実施形態を説明しているが、当業者によって理解されるように、同様の取り組みを、複数のＬＵＮに対する動作を単一の動作として行うために使用することができる。
【００１５】
ソースＬＵＮのポイント・イン・タイム・コピーが要求されると、本発明は、論理ユニット毎に元ソース・データに対するポインタを保持するような、対象ＬＵＮのためのデータ構成（例えば、マッピング・テーブル）を設ける。一実施形態において、マッピング・テーブルは、ポインタおよび場合によっては他のフラグのテーブルとして実施される。他の実施形態において、マッピング・テーブルは、ハッシング・テーブルを伴うリンク付けされたリストとして実施される。
【００１６】
マッピング・テーブル内のエントリは、ソースＬＵＮの対応するブロックの物理位置を直接ポイントするように、まず初期化される。間接ポインタが使用される他の実施形態において、ポインタは、ソースＬＵＮのための同様のデータ構成内のエントリをポイントする。ソースＬＵＮのためのエントリは、データ・ブロックが物理装置上で実際に記憶される場所についての情報を含む。
【００１７】
ある量のストレージ空間は、修正空間と称され、対象ＬＵＮの物理ストレージ装置内か、または各ポイント・イン・タイム・コピーのためのコピー動作を行うストレージ・システムによって管理される他のストレージ・ユニット内に取り置かれる。このストレージ空間のサイズは、一実施形態においては、コピー動作の作成者によって設定される。他の実施形態において、修正空間のサイズは、ストレージ・システム・ソフトウェアまたは管理者によって決定される。修正空間が使用されるのは、コピーＬＵＮの論理ユニットまたはブロックが修正される場合である。この修正空間内の空きブロックのリストを含むデータ構成は、コピーＬＵＮ毎に維持される。
【００１８】
図１は、対象となるシステムを示し、ここにおいて、１つ以上のクライアント・マイクロプロセッサ・システム（１１０）がストレージ・システム（１００）に接続されている。ストレージ・システムは、ストレージ・コントローラ（１０２）と称される制御ユニットと、場合によってはストレージ・システムの集積パッドであってもよいしそうでなくてもよい管理コンソール（１０４）と、ハード・ディスクなどの１つ以上の物理ストレージ装置（１０６）からなる。
【００１９】
図２は、１つのソースＬＵＮ（２０２）（ソースＬＵＮまたはソース・ストレージ・ユニットとも称される）について３つのポイント・イン・タイム・コピー（２１０）（対象ボリュームまたはＬＵＮとも称される）が作成されるシステムを示す。すべてのＬＵＮ（ソースＬＵＮおよび対象ＬＵＮを含む）は、自身のマッピング・テーブル（２０４，２１２）を有する。ポイント・イン・タイム・コピーの初期化後、対象ＬＵＮのマッピング・テーブル内の各エントリは、ソース・ボリューム内の対応するエントリをポイントする。そのようなエントリの１つを図２に示す（２０６、２１４）。ソース・マッピング・テーブル内のブロック毎のエントリは、１つ以上のハード・ディスク・ドライブからなっていてもよいような物理ストレージ（２０９）上のブロック（２０８）の位置をポイントする。注意すべきなのは、代わりに、対象マッピング・テーブルは、ソース・マッピング・テーブルの内容をコピーすることによって作成することもできるということである。そのような場合には、対象マッピング・テーブル内のエントリは、物理ストレージ上のブロックをポイントする直接ポインタである。
【００２０】
図３は、コピー・ボリュームにおける１つのブロックが修正される進歩的なシステムを示す。図示のように、コピー・マッピング・テーブル（３１０）内の対応するエントリは、ボリューム（３１２）の修正空間領域内の空き空間を使用してデータ・ブロック（３１４）を記憶する。
【００２１】
図４のフローチャート形式に示すように、ブロックに対する書き込みのための要求が受信されると、ストレージ・システムは、当該書き込みがポイント・イン・タイム・ソースＬＵＮ宛てかどうかを検出する（ブロック４１０）。もしそうであれば、アクセスは拒否される（ブロック４２４）。なぜならば、本発明は、ソースＬＵＮが修正されることを許可しないからである。もしそうでなければ、ポイント・イン・タイム・コピーＬＵＮ宛てかどうかを知るために要求がチェックされる（ブロック４１２）。もしそうでなければ、これは、さらに検査することなく進めることができるアクセスである（ブロック４２６）。もしそうであれば、ストレージ・システムは、まず、マッピング・テーブルに照会する（ブロック４１４）。アクセスされようとするブロックについてのエントリが、当該ブロックがそのコピーのための修正空間に記憶されていることを示す場合には、新しいデータが対応の位置に書き込まれる（ブロック４２６）。対応のエントリが、当該ブロックがソースＬＵＮ内の元ブロックを通じてアクセスされようとしている場合には、修正空間にブロックを記憶するための場所を見つける必要がある。このためには、当該コピーのための空きブロックのリストに照会して、必要な空き空間が利用可能かどうかを調べる（ブロック４１６）。書き込み要求に対応するための空間がない場合には、書き込み要求は拒否されて、適切な動作が取られる（ブロック４２４）。例えば、空間の欠如を管理者に知らせるメッセージをシステム管理者に対して送ることができる。他の実施形態において、当該コピーは使用不可能であるとマーク付けされて、当該コピーに対するすべてのさらなるアクセスは拒否される。さらに他の実施形態において、コピー・ボリュームに対するアクセスは、新しいストレージ空間を必要としない限り可能とされる。書き込み要求に対応するための空き空間が利用可能である場合には、必要な（複数の）ブロックが空きリストから取り出されて（ブロック４１８）、データがこれらのブロックに記憶され（ブロック４２０）、マッピング・テーブルは、当該変更を反映するように更新される（ブロック４２２）。
【００２２】
本発明は、ポイント・イン・タイム・コピー動作の実施を改良するものである。コピー毎に専用の空間（本原稿においては修正空間と称する）を設けることによって、ストレージ空間を、各ボリュームのブロックが任意の利用可能な位置に記憶できるようなグローバル・エンティティとして管理する必要がなくなる。さらに、ソース・ボリュームを読み出し専用ボリュームとすることによって、本願のコピー動作の拡張性（ｓｃａｌａｂｉｌｉｔｙ）が大幅に向上する。この限定が実施されないと、ソース・ボリューム内のブロックが修正される場合に、ストレージ・システムは、コピー・ボリューム毎に修正空間内の空き空間を探して、元ブロックを１つずつそこにコピーして、コピー・ボリュームすべてについてマッピング・テーブルを更新する必要がある。この要件は、いかなるソース・ボリュームもサポート可能なコピー・ボリュームの数に対して上限を制限する。ソースから第１のコピー・ボリュームが作成されるとすぐにソース・ボリュームを読み出し専用であるとマーク付けすることによって、そのような要件をなくす。図４に示すように、ソースまたはコピー・ボリュームに対する各アクセスに対する評価および、もし許可されていればその実行は、非常に簡単に行うことができる。
【００２３】
コピー・ボリュームは削除することができる。各ソース・ボリュームは、サポートするコピーの数のカウントを取る。ソースのコピーが削除される度に、コピー・カウンタがデクリメントされる。カウントがゼロに達すると、ソース・ボリュームは通常のボリュームとしてマーク付けされて、もはやソース・ボリュームではなくなる。これにより、ソース・ボリュームに対して適用された読み出し専用という制限はなくなり、ボリュームの内容は修正可能となる。コピーがボリュームから作成されるとすぐに、当該ボリュームはソース・ボリュームとマーク付けされて、コピー・カウンタの値が、第１のコピー用に１に設定され、新しいコピーが作成される度にインクリメントされる。
【００２４】
よって、上述のように、本発明は、数多くの環境において有用なストレージ・ボリュームのポイント・イン・タイム・コピーを作成するための新しい取り組みを提供する。特に、本発明は、プロビジョニング環境と共に使用されるのが適している。そのような環境において、システム・ユーザによって使用されるオペレーティング・システムおよびアプリケーションを含む１つ以上のゴールデン画像が作成される。ユーザの数および種類によっては、本システムは、時間的および空間的に効率のよいやり方で複数のコピーを作成するために使用されるゴールデン画像をロードする。そして、これらのコピーは、プロビジョニング・サーバのために使用される。
【００２５】
本発明を好ましい実施形態の観点から説明してきたが、本発明は添付の請求項の精神および範囲内の修正を伴って実施可能であることを当業者は認識するだろう。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明の対象となるシステムの例を示す概略図である。
【図２】１つのボリュームについて３つのポイント・イン・タイム・コピーを伴うシステムの一例を示す概略図である。
【図３】１つのコピー・ボリュームにおける１つのブロックが書き込まれた後の分離された空き空間管理を伴うシステムを示す概略図である。
【図４】本発明の一実施形態のフロー図を示す。
【図１】
2008529187.tif 000003
【図２】
2008529187.tif 000004
【図３】
2008529187.tif 000005
【図４】
2008529187.tif 000006
【国際調査報告】
2008529187.tif 000007
2008529187.tif 000008
2008529187.tif 000009