(57)【要約】  最小限のデータ転送を使用して論理的に整合性のあるバックアップを保持する。元のデータのバックアップコピー、またはスナップショットコピーが作成され、格納される。ユーザが、データの後続のスナップショットコピー（３０）を作成するプロセスにおいてバックアップ（３２）されるべきデータブロックを指定（２９）する。バックアップ（３２）されるべきデータブロックには、ユーザが関心のあるデータを有するアクティブなファイルに関連するデータブロックが含まれることが可能である。バックアップが所望されないデータブロックには、例えば、スワップファイル、プリンタバッファファイル、及び一時ファイルが含まれることが可能である。バックアップに指定（２９）されたデータブロックに対して行われた変更（２８）が、指定の期間が経過した後にスナップショットコピーに印加（３２）される。所望されるデータブロックだけがスナップショットコピー（３０）にバックアップ（３２）されるため、すべてのデータブロックがスナップショットコピーにバックアップされる場合よりも効率的にメモリ、処理サイクル、及び通信帯域幅が使用される。
2005512191.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータブロックでデータを格納し、該データのスナップショットコピーを含むデータ記憶場所にアクセスを有する大容量記憶デバイスを備えたコンピュータシステムにおける、バックアップされるように指定されているデータブロックを前記スナップショットコピーにバックアップする方法であって、
指定の期間中に前記大容量記憶デバイスにおいて変更されたデータブロックを特定するステップと、
前記特定されたデータブロックのなかからの他のデータブロックがバックアップされず、前記特定されたデータブロックのなかからのデータブロックをバックアップされるべきデータブロックとして指定するステップと、
前記指定されたデータブロックのコピーを、前記スナップショットコピーを含む前記データ記憶場所に伝送して、前記データブロックの前記伝送されたコピーが前記スナップショットコピーに含められることを可能にするステップと
を有することを特徴とするバックアップ方法。
【請求項２】
前記変更されたデータブロックを特定するステップは、前記指定の期間中に変更された少なくとも前記データブロックに関するエントリを含むテーブルを保持するステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項３】
前記データブロックを指定するステップは、前記指定されたデータブロックが、バックアップされるべき前記データブロックとして指定される前記大容量記憶デバイスの前記データブロックのマップを保持するステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項４】
前記データブロックを指定するステップが、バックアップされない前記他のデータブロックを特定することによって実行されることを特徴とする請求項１に記載のバックアップ方法。
【請求項５】
バックアップされるべき前記データブロックを特定する入力をユーザから受け取るステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項６】
バックアップされない前記データブロックを特定する入力をユーザから受け取るステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項７】
前記変更されたデータブロックを特定するステップが、前記大容量記憶デバイスに対するユーザアクセスの中断なしに実行されることを特徴とする請求項１に記載のバックアップ方法。
【請求項８】
前記スナップショットコピーを含む前記データ記憶場所が、前記大容量記憶デバイスから遠隔に配置されることを特徴とする請求項１に記載のバックアップ方法。
【請求項９】
前記スナップショットコピーを含む前記データ記憶場所が、前記大容量記憶デバイス内に含まれることを特徴とする請求項１に記載のバックアップ方法。
【請求項１０】
前記指定されたデータブロックのコピーを伝送するステップは、前記期間中に前記指定されたデータブロックの最新の変更を表す前記指定されたデータブロックのコピーだけを伝送して、前記指定されたデータブロックの中間の変更が全く前記スナップショットコピーを含む前記データ記憶場所に伝送されないようにするステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項１１】
複数のデータブロックでデータを格納し、前記データのスナップショットコピーを含むデータ記憶場所にアクセスを有する大容量記憶デバイスを備えたコンピュータシステムにおける、バックアップされるように指定されているデータブロックを前記スナップショットコピーにバックアップする方法であって、
バックアップされるべきデータブロックを特定するユーザ入力を受け取るステップと、
第１の時点において前記データの前記スナップショットコピーの作成を開始するステップと、
前記第１の時点と第２の時点の間の期間中、前記大容量記憶デバイスの前記データブロックに対する変更を追跡して、変更された前記データブロックを特定するようにするステップと、
前記第２の時点においてバックアップされるように特定され、かつ前記期間中に変更されている対応するデータブロックに対する最新の変更だけを表すデータブロックだけのコピーを、前記スナップショットコピーを含む前記データ記憶場所に伝送することによって前記スナップショットコピーの更新を開始するステップと
を有することを特徴とするバックアップ方法。
【請求項１２】
前記変更を追跡するステップは、前記期間中に変更された前記データブロックをデータ構造の中で特定するステップを有することを特徴とする請求項１１に記載のバックアップ方法。
【請求項１３】
前記変更された前記データブロックを特定するステップは、前記期間中に変更された前記データブロックをテーブルの中にリストするステップを有することを特徴とする請求項１２に記載のバックアップ方法。
【請求項１４】
前記変更された前記データブロックを特定するステップは、前記データブロックを前記大容量記憶システムの前記データブロックのマップの中で特定するステップを有することを特徴とする請求項１２に記載のバックアップ方法。
【請求項１５】
バックアップされるべき前記データブロックを前記データ構造の中で指定するステップを有することを特徴とする請求項１２に記載のバックアップ方法。
【請求項１６】
バックアップされない前記データブロックを前記データ構造の中で指定するステップを有することを特徴とする請求項１２に記載のバックアップ方法。
【請求項１７】
前記第２の時点が、前記スナップショットコピーの更新の後、前記スナップショットコピーが論理的に整合性のあるデータを含むように選択されることを特徴とする請求項１１に記載のバックアップ方法。
【請求項１８】
複数のデータブロックでデータを格納し、前記データのスナップショットコピーを含むデータ記憶場所にアクセスを有する大容量記憶デバイスを備えたコンピュータシステムにおける、バックアップされるように指定されているデータブロックを前記スナップショットコピーにバックアップする方法を実装するためのコンピュータプログラム製品であって、
前記コンピュータシステムによって実行された際、前記コンピュータシステムが、指定の期間中に前記大容量記憶デバイスにおいて変更されたデータブロックを特定するステップと、
前記特定されたデータブロックのなかからの他のデータブロックがバックアップされず、前記特定されたデータブロックのなかからのデータブロックをバックアップされるべきデータブロックとして指定するステップと、
前記指定されたデータブロックのコピーを、前記スナップショットコピーを含む前記データ記憶場所に伝送して、前記データブロックの前記伝送されたコピーが前記スナップショットコピーに含められることを可能にするステップと
を実行するようにさせる前記バックアップ方法を実装するためのコンピュータ実行可能命令を担持するコンピュータ読取可能なメディアを備えたことを特徴とするコンピュータプログラム製品。
【請求項１９】
前記変更されたデータブロックを特定するステップは、前記指定の期間中に変更された少なくとも前記データブロックに関するエントリを含むテーブルを保持するステップを有することを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２０】
前記データブロックを指定するステップは、前記指定されたデータブロックがバックアップされるべき前記データブロックとして指定される前記大容量記憶デバイスの前記データブロックのマップを保持するステップを有することを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２１】
前記変更されたデータブロックを特定するステップが、前記大容量記憶デバイスに対するユーザアクセスの中断なしに実行されることを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２２】
前記スナップショットコピーを含む前記データ記憶場所が、前記大容量記憶デバイスから遠隔に配置されることを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２３】
前記スナップショットコピーを含む前記データ記憶場所が、前記大容量記憶デバイス内に含まれることを特徴とする請求項１８に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大容量記憶システムの選択されたデータのスナップショットを保存するためのバックアップシステム及びその方法に関し、より詳細には、１つまたは複数の大容量記憶システム上のいくつかのセクタだけのスナップショットコピーをとるためのバックアップシステム及びその方法に関し、特に、コンピュータデータの保護技術に関する。
【背景技術】
【０００２】
コンピュータは、ほとんどのビジネス業務の不可欠な一部分となっている。一部の場合では、コンピュータは、あまりにも不可欠となっているため、コンピュータが機能を停止した場合、ビジネス業務を行うことができない。銀行、保険会社、証券会社、財務サービスプロバイダ、及び様々な他のビジネスが、常に変更される情報を格納し、操作し、表示するのにコンピュータネットワークに依拠している。取引の成功または失敗は、正確であるとともに最新である情報の利用可能性にかかっている可能性がある。サービスプロバイダの信用、または存立そのものが、コンピュータネットワーク上に保持される情報の信頼性に依存する可能性がある。世界中のビジネスが、自らのデータの商品価値を認識しており、データを信頼できる形でバックアップすることにより自らのコンピュータネットワーク上に格納された情報を保護する信頼できる費用対効果が大きいやり方を求めている。
【０００３】
しばしば、スワップファイルなどのファイル、プリンタバッファ、空きセクタテーブル、及び「一時」ファイルが、通常、バックアップされることが所望されていないのに、バックアップされる。不要なファイルをバックアップすることにより、処理サイクル、通信帯域幅、及びバックアップメモリ容量の浪費がもたらされる。不要な情報をバックアップすることを回避するため、バックアップのために個々のファイルを選択することができるシステムが開発されている。それらのシステムは、（１）すべてのファイルシステムコマンドを代行受信するソフトウェアレイヤを追加すること、（２）２つのタイプのファイル、すなわち、追跡ファイル及び非追跡ファイルを定義することによって機能する。追跡ファイルでは、システムは、ファイルのバックアップバージョンと更新バージョンの両方を提供する。バックアップバージョンは、バックアップが開始された時点で存在していたファイルであり、更新バージョンは、バックアップが開始された後に行われたあらゆる変更を含むファイルの現在のバージョンである。非追跡ファイルの場合、現在の（つまり更新）バージョンだけが利用可能である。基本的に、システムは、あたかもファイルシステムコマンドを代行受信するソフトウェアレイヤが存在するかのように機能する。
【０００４】
ソフトウェアレイヤは、バックアップが開始された時点で存在していた元のファイルデータがファイル変更によって上書きされないようにファイル変更を格納することによってファイルのバックアップバージョン及び更新バージョンを提供するものである。すべてのファイルシステムコマンドを代行受信することにより、システムは、アクセスを要求するプログラムにファイルの適切なバージョンを提供することができる。例えば、バックアッププログラムが読取り要求を行った場合、ソフトウェアレイヤは、要求されたデータのバックアップバージョンを提供する。読取り要求を行う他のプログラムは、ファイルデータの更新バージョンを受け取る。
【０００５】
ソフトウェアレイヤがすべてのファイルシステムコマンドを代行受信することは、いくつかのファイルだけが追跡される場合に十分な解決策である。しかし、この解決策は、追跡ファイルの数が増加すると実用的でないことが明らかになる。問題は、ソフトウェアレイヤが、基本的に、ファイルシステムの仕事を実行することである。追跡ファイルに関して、オペレーティングシステムによって実行される各ファイル操作が、何らかの形で、ソフトウェアレイヤによっても実行される。ファイルの数が増加すると、ソフトウェアレイヤは、過負荷になり、パフォーマンスが低下してシステムが使用できなくなる。
【０００６】
また、ソフトウェア代行受信レイヤは、ファイル間に存在する可能性がある関係を見落とす。上述したとおり、ファイルの中に格納されたデータに整合性があるだけでは十分でない。１つのファイルの中に格納されたデータは、他の１つまたは複数のファイルの中に格納されたデータに関連している可能性が高い。従来技術のソフトウェアレイヤは、バックアッププロセス中にファイルがアクセス可能であることを確実にすることだけしかできない。従来技術のソフトウェアレイヤには、バックアップ操作を構成するすべてのファイルにわたって論理的に整合性のあるデータセットを確実にするための備えがない。したがって、上述したタイプのソフトウェアレイヤを使用して行われるバックアップは、格納されたデータの不整合に起因してそれほど有益でない可能性がある。
【０００７】
したがって、ファイル間の関係を保持しながら、バックアップされることが所望されるデータだけをバックアップするための効率的なシステムを得ることは、当技術分野において重要なものである。
【０００８】
【特許文献１】米国特許第５６４９１５２号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来技術における上述した問題は、本発明が克服することに成功しており、本発明は、保護されることが所望されるデータブロックだけに関して元のデータをそのデータのスナップショットコピーにバックアップするためのシステム及び方法を対象とする。
【００１０】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、大容量記憶システムの選択されたデータのスナップショットを保存するためのバックアップシステム及びその方法を提供することにある。
【００１１】
つまり、本発明のバックアップシステム及びその方法は、従来技術に勝る４つの大きな利点を提供する。第１に、変更されており、バックアップが所望されるファイルとして指定された１次大容量記憶デバイスのデータブロックだけをバックアップすることにより、バックアップを行う必要があるデータの量を縮減する。第２に、バックアップすることが所望されるデータだけをバックアップすることを介してバックアップ用のデータの量を極限まで縮減しているので、記憶領域のより効率的な使用を可能にする。第３に、バックアップが行われる際に１次記憶デバイスが論理的に整合性のある状態にあることを確実にすることにより、バックアップの精度を高める。第４に、バックアップを行うのに必要とされるデータが極限まで縮減されており、論理的に整合性のある状態のバックアップだけが行われるので、バックアップの頻度を高くすることができる。
【課題を解決するための手段】
【００１２】
本発明のバックアップ方法は、元のデータとそのデータのスナップショットコピーが、少なくともバックアップに指定されたデータブロックに関して、全く同じデータを含むという前提で開始される。これは、例えば、従来のバックアップ技術、または従来のディスクミラーリング技術を使用して元のデータをスナップショットコピーに完全にコピーすることによって達することができる。元のデータとスナップショットコピーが同一のデータを含むと、本発明は、変更されたすべてのデータブロックをリストするためのマップまたは他のデータ構造を作成し、１次大容量記憶デバイス上のデータブロックに対して行われた変更を追跡し、変更されたデータブロックを特定し、バックアップが所望されないデータブロックから分けてバックアップが所望されるデータブロックを指定する。追跡は、スナップショットコピーが元のデータと同期していた時点から新しいデータが書き込まれた元のデータにおける記憶場所を特定することによって行われる。元のデータに対して行われた変更の特定により、バックアップ記憶デバイスを１次大容量記憶デバイスと同期させるためにスナップショットコピーに対して行う必要がある変更が示される。バックアップ記憶デバイスに対して行う必要がある変更は、リスト上またはテーブル上に登録される。
【００１３】
本発明のバックアップシステムは、リストまたはテーブルを識別し、バックアップが所望される情報とバックアップが所望されない情報に分離することを可能にする。この分離は、所望される情報にフラグを設定すること、または所望されない情報にフラグを設定することによって達することができる。テーブル内の情報の識別及び分離により、バックアップ用の情報の量が、所望される情報だけに縮減され、バックアップされる情報の量を縮減することによってバックアッププロセスの速度が向上し、記憶スペースがより効率的に使用される。さらに、識別及び分離により、所望されない情報がバックアップに含められることが防止される。
【００１４】
元のデータに対して行う必要がある変更が特定されると、スナップショットコピーにその変更が送られる。すると、スナップショットコピーには、バックアップ記憶デバイスを１次大容量記憶デバイスと同期させるすべてのデータが利用可能である。バックアッププロセス中に元のデータを保存するため、元のデータの静的スナップショットをとることができる。この静的スナップショットは、元のデータに対して行われており、スナップショットコピーに転送される必要がある変更をキャプチャする。バックアップをユーザにトランスペアレントにするため、静的スナップショットは、大容量記憶デバイスに対するユーザアクセスが中断されない形でとられることが好ましい。
【００１５】
本発明は、静的スナップショットがいつとられるべきかを決定するため、いつ元のデータが論理的に整合性のある状態にあるかを特定する機構を含む。論理的に整合性のある状態を特定し、その時点までに行われた変更の静的スナップショットを取ることにより、変更がスナップショットコピーに転送された際、スナップショットコピーが論理的に整合性のある状態をキャプチャすることが保証される。連続する論理的に整合性のある状態のスナップショットをキャプチャすることにより、スナップショットコピーは、次々に論理的に整合性のある状態をキャプチャすることができる。このようにして、スナップショットコピーが必要になった場合、スナップショットコピーは、論理的に整合性のある状態にある。スナップショットコピーは、ある論理的に整合性のある状態から他の論理的に整合性のある状態に移り、従来技術の諸問題の１つが解消される。
【００１６】
本発明は、大容量記憶システムのバックアップに関してデータブロック手法をとり、保護されるように指定されたデータブロックだけがバックアップされるため、本発明は、バックアップを行う際に転送される必要があるデータの量を可能な極限まで最小化する。例えば、大型データベースが変更された５つのレコードを有する場合、従来技術のバックアップシステムは、その大型データベース全体をコピーする。しかし、本発明は、変更された５つのレコードだけをコピーする。データの量が最小限に抑えられるので、本発明は、リモートサイト（ｒｅｍｏｔｅ  ｓｉｔｅ）に配置されたバックアップシステムにデータをバックアップするのに特によく適している。本発明は、低い帯域幅の通信リンクを利用してバックアップデータをリモートバックアップサイトに転送することができる。例として、多くの場合、５６．６ｋボーのモデムを備えた従来のダイヤルアップ電話回線で全く十分である。
【００１７】
本発明のさらなる利点は、以下に説明するように、その説明から明白となり、あるいは本発明の実施によって知ることができる。本発明の利点は、特許請求の範囲で特に指摘する手段（ｉｎｓｔｒｕｍｅｎｔｓ）及び組み合わせを使用して実現し、得ることができる。本発明の以上の特徴及びその他の特徴は、以下の説明及び特許請求の範囲からより十分に明白となり、あるいは以下に提示する本発明の実施によって知ることができる。
【００１８】
本発明の上述した利点及び特徴、ならびにその他の利点及び特徴を得ることができるやり方を説明するため、以上に簡単に説明した本発明のより詳細な説明を添付の図面に示した本発明の特定の実施形態に関連して行う。それらの図面は、本発明の典型的な実施形態だけを示しており、したがって、本発明の技術的範囲を限定するものではなく、添付の図面を介して本発明をより具体的に詳細に説明するものである。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の実施の態様について説明する。  
本発明は、大容量記憶手段の中のすべてのデータのスナップショットをとるのではなく、大容量記憶手段からバックアップされることが所望されるデータセクションだけのスナップショットをとるためのバックアップシステムとその方法の両方を技術的範囲に含んでいる。所望されるデータだけのスナップショットがとられるので、本発明は、大容量記憶手段上にあるデータのバックアップコピーを提供する際に時間と記憶スペースをともに最適化する。
【００２０】
本発明を本発明のバックアップシステム及びその方法を実現するいくつかの実施形態の構造または処理を示す図を使用することによって説明する。本発明を提示するのにこのように図を使用しているが、本発明の技術的範囲を限定しているものではない。本発明は、汎用コンピュータまたは専用コンピュータを使用して実施することができ、すべてのそのようなコンピュータシステムが、本発明の技術的範囲に含められるべきである。
【００２１】
また、本発明の技術的範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造がエンコードされているコンピュータ読取可能なメディアも含んでいる。そのようなコンピュータ読取可能なメディアは、汎用コンピュータまたは専用コンピュータがアクセスすることができる任意の利用可能なメディアであることが可能である。例として、限定としてではなく、そのようなコンピュータ読取可能なメディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、光磁気記憶デバイス、または所望のコンピュータ実行可能命令及びデータ構造を格納するのに使用することができ、汎用コンピュータまたは専用コンピュータがアクセスすることができる任意の他のメディアを含むことが可能である。また、以上の組み合わせも、コンピュータ読取可能なメディアの範囲に含められなければならない。同様に、コンピュータ実行可能命令またはデータ構造をデコードし、実行する間、コンピュータ実行可能命令またはデータ構造を格納するＣＰＵまたは他の処理ユニットのレジスタも、コンピュータ読取可能なメディアの範囲に含まれる。コンピュータ実行可能命令は、例えば、汎用コンピュータまたは専用コンピュータがある機能または一群の機能を実行するようにさせる実行可能命令または実行可能データを含んでいる。
【００２２】
「データブロック」という用語は、大容量記憶手段に対して書込みまたは読取りが行われるデータのブロックを表すのに使用する。「データブロック」という用語は、広く解釈されるものとし、あらゆるサイズまたは形式のデータが含まれなければならない。例えば、ディスク上の個別セクタの中に格納されたデータがデータブロックと適切に呼ばれる。セクタのグループまたはクラスタの中に格納されたデータ量も、データブロックと適切に呼ぶことができる。大容量記憶手段がＲＡＭ、あるいは語またはバイトでアドレス指定可能な記憶デバイスである場合、データブロックという用語は、データのバイト、語、または複数語単位に適用することができる。さらに、「所望されるデータブロック」という用語は、バックアップされるように指定されたデータブロックを表すのに使用し、「所望されないデータブロック」という用語は、バックアップされるように指定されていないデータブロックを表すのに使用する。
【００２３】
図１は、本発明のバックアップシステムを説明するためのブロック図で、本発明の適切な動作環境のシステムレベルブロック図である。全体的に示されたシステム１０は、いずれのタイプのネットワーク化されたまたはスタンドアロンのコンピュータシステムであってもよいコンピュータシステム１２を備えている。例えば、コンピュータシステム１２は、コンピュータネットワーク１８のようなコンピュータネットワークに接続されたネットワークサーバコンピュータであることが可能である。また、コンピュータシステム１２は、スタンドアロンシステムであってもよい。
【００２４】
コンピュータシステム１２には、複数の記憶場所に複数のデータブロックを格納するための大容量記憶手段が接続されている。記憶場所のそれぞれは、固有アドレスまたは他の機構によって指定される。大容量記憶手段は、データブロックを格納する任意の記憶機構であることが可能である。例えば、そのような大容量記憶手段は、１つまたは複数の磁気ディスクドライブまたは光磁気ディスクドライブを含むことが可能である。図１では、例えば、そのような大容量記憶手段を大容量記憶デバイス２０で例示している。
【００２５】
大容量記憶デバイス２０は、バックアップされることが所望されるデータブロックも、バックアップされることが所望されないデータブロックも含む元のデータ１４を備えている。バックアップされることが所望されないデータブロックの例は、スワップファイル、空きセクタテーブル、印刷バッファ、「．ｔｍｐ」拡張子を有する一時ファイル、及びバックアップされることが所望されないその他のファイルである。
【００２６】
大容量記憶デバイス２０は、特定の時点で存在していたとおりバックアップされることが所望される元のデータの中のデータブロックのスナップショットコピーも含むことが可能である。したがって、「スナップショット」コピーとは、コピーが、ある時点で存在していたとおり所望のデータブロックをキャプチャしていることを示す。スナップショットコピー１６が元のデータと同じ大容量記憶デバイス内に含まれるデータ記憶場所にあるのを示しているが、スナップショットコピー１６は、異なる記憶デバイスのデータ記憶場所に配置されることも可能である。一部のケースでは、コンピュータシステム１２は、スナップショットデータをコンピュータネットワーク１８のような通信メディアを介して異なる記憶デバイスに書き込む。ただし、この実施形態では、スナップショットコピー１６は、元のデータ１４と同じ大容量記憶デバイス２０に格納される。
【００２７】
この実施形態は、バックアッププロセス中、所望されるデータブロックに対応する大容量記憶デバイスのすべてまたは一部のスナップショットコピーを使用する。したがって、所望されるデータブロックに関して特定の時点における大容量記憶手段の静的スナップショットを作成するように前記大容量記憶手段のデータブロックを一時的に格納するための保存メモリ手段を備えている。そのような保存メモリ手段は、ＲＡＭ、ＥＥＰＲＯＭ、磁気ディスクストレージなどの任意のタイプの書込み可能記憶デバイスを含むことが可能である。また、そのような保存メモリ手段は、大容量記憶デバイス２０の一部分も含むことが可能である。図１では、そのような保存メモリ手段を、例えば、スナップショット記憶デバイス２２で示している。保存メモリ手段については、以下により詳細に説明する。
【００２８】
コンピュータシステム１２は、いずれのタイプの汎用コンピュータまたは専用コンピュータであってもよく、コンピュータシステム１２は、汎用コンピュータまたは専用コンピュータを構成する任意の他のハードウェアも含むことが可能である。例えば、コンピュータシステム１２は、プログラマブルコード手段を実行するためのプロセッサ手段も含むことが可能である。プロセッサ手段は、マイクロプロセッサまたは他のＣＰＵデバイスであることが可能である。プロセッサ手段は、デジタル信号プロセッサなどの様々な専用プロセッサも含むことが可能である。コンピュータシステム１２は、ユーザに出力を表示するための表示手段、コンピュータシステム１２にデータを入力するための入力手段、ハードコピーのプリントアウトを出力するための出力手段、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭなどのメモリ手段のような他の従来のコンピュータコンポーネントも含むことが可能である。
【００２９】
図２は、本発明のバックアップ方法を説明するためのタイミングを示す図で、図１の元のデータ１４のような元のデータを図１のスナップショットコピー１６のようなスナップショットコピーにバックアップするのに使用される方法の概要を示している。図２に示したバックアップ方法は、所望されるデータブロックに関する限り、元のデータ１４とスナップショットコピー１６は最新であるものと想定する。ここで、「最新」とは、スナップショットコピーが、元のデータ１４のすべての所望されるデータブロックの最新コピーを含むことを意味する。図２で、スナップショットコピー１６は、時刻Ｔ０における元のデータ１４の最新コピーを有するものと想定する。
【００３０】
図２に示したバックアップ方法は、時刻Ｔ０から開始して、元のデータ１４に対してスナップショットコピー１６を最新状態に保つ。そして、連続する論理的に整合性のある状態をキャプチャする。これにより、１つの論理的に整合性のある状態から次の論理的に整合性のある状態に移るスナップショットコピー１６がもたらされる。つまり、スナップショットコピー１６が、連続する論理的に整合性のある状態をキャプチャすることが可能になる。これにより、バックアップ記憶デバイスを論理的に不整合な状態のままにする可能性がある従来技術のシステムに勝る著しい利点が生じる。バックアップデバイスが論理的に整合性のある状態にあることを確実にすることにより、本発明は、使用可能なスナップショットコピーが常に利用可能であることを確実にする。
【００３１】
次に、図２に戻ると、時刻Ｔ０から開始して、所望されるデータブロックに対応する元のデータ１４に対する変更が追跡される。これを図２にブロック２８で示している。変更は、好ましくは、時刻Ｔ０から開始して新しいデータが書き込まれており、所望されるデータブロックである大容量記憶デバイスのデータブロックを特定することによって追跡される。これは、時刻Ｔ０から開始して新しいデータが書き込まれたデータブロックを特定するマップを保持すること、及び所望されるデータブロックのマップを保持することによって行うことができる。
【００３２】
何らかの時点で、元のデータ１４の中の所望されるデータブロックに対して行われた変更をキャプチャし、その変更をスナップショットコピー１６に転送することが望ましい。好ましい実施形態では、システムは、１次大容量記憶デバイスの論理的に整合性のある状態を識別し、時刻Ｔ０以来、変更された少なくとも所望されるデータブロックの静的スナップショットをとる。図２では、論理的に整合性のある状態は、時刻Ｔ１として識別され、スナップショットがとられる。
【００３３】
静的スナップショットは、特定の時点に存在していたとおりデータを保存して、スナップショット時刻の後に元のデータに対して変更が行われていても、スナップショット時刻に存在していたとおりの状態で、所望されるデータブロックがその特定の時点の後に利用可能であるようにする。そのような静的スナップショットを作成する多くの方法が存在する。いずれのそのような方法も本発明で機能するが、一部の方法が、様々な利点のために他の方法より優先される。どのように静的スナップショットがとられるかの詳細、及び静的スナップショットを作成するための好ましい方法を以下に示す。ただし、この概略では、静的スナップショットを作成するいずれの方法も本発明で使用できることを理解することが重要である。ただし、静的スナップショットは、大容量記憶デバイスに対するユーザの読取りアクセスまたは書込みアクセスを終了させることなく、とられることが好ましい。
【００３４】
時刻Ｔ０の直後、または時刻Ｔ０後にコンピューティングリソースが利用可能になった時刻に、バックアップが所望されるデータブロックが、マップまたは他のデータ構造を使用して指定される。バックアップが所望されるデータブロックは、所望されるデータブロックを特定することによって直接に指定すること、またはバックアップ操作が所望されないデータブロックを指定することによって暗黙に示されることが可能である。それらのデータブロックは、ユーザがバックアップされるべき、またはバックアップされるべきでないファイルまたはファイルタイプを特定したことに応答して特定されること、または指定されることが可能である。次に、ファイルシステムを使用してそれらのファイルを特定のデータブロックにマップすることができる。上述した技術は、バックアップされるべきデータブロックを指定するのに役立つ可能性があるが、本発明は、バックアップされるべきデータブロックを特定し、指定するための他の技術を使用して実施することもできる。バックアップ操作が所望されるデータブロックを指定するプロセスは、例えば、図２の期間２９の間に行われる。
【００３５】
時刻Ｔ１に、時刻Ｔ０と時刻Ｔ１の間に特定された所望されるデータブロックに対する変更が、その変更をスナップショットコピー１６に送信することによってバックアップされる。これを図２に矢印３０及びブロック３２で示している。変更は、時刻Ｔ０と時刻Ｔ１の間に新しいデータが書き込まれた記憶場所だけに格納され、保護されることが指定された所望のデータブロックだけに関する元のデータ１４のデータブロックを送信することによってスナップショットコピー１６に送信される。
【００３６】
データは、時刻Ｔ１にスナップショットによって保存されるので、時刻Ｔ１後に新しいデータが大容量記憶デバイスに書き込まれていても、バックアップ記憶デバイスに転送するのに利用可能である。時刻Ｔ０と時刻Ｔ１の間にいずれの記憶場所にデータが書き込まれたかを追跡するのに使用され、バックアップされることが所望されるデータブロックを指定するのに使用されたマップまたは他の機構が、バックアップ記憶デバイスに転送されるべきデータを特定するのに使用される。したがって、所望されるデータブロックに対する増分の変更だけが送信され、ファイル全体が変更されていない限り、ファイル全体が転送されることはない。さらに、所望されないデータブロックは、そのデータブロックに対する変更が行われていても送信されない。
【００３７】
時刻Ｔ１の直後、または時刻Ｔ１の後にコンピューティングリソースが利用可能になった時刻に、バックアップが所望されるデータブロックが、期間２９に関連して上述したやり方でマップまたは他のデータ構造を使用して、期間３３中に指定される。この他に、バックアップされるように以前に指定されている同じデータブロックが、または等価のこととして、バックアップされないように以前に指定されている同じデータブロックが、新しいスナップショットに持ち越されることが可能である。この代替手法では、ユーザは、バックアップされるべきデータブロックを繰り返し指定することを要求されない。上述したとおり以前の指定が新しいスナップショットに持ち越されるかどうかを決める要因には、スナップショットの頻度、ユーザの選好、及び以前のスナップショット以来、ファイル構造が変更されているかどうかが含まれる。
【００３８】
バックアップが実行されている最中に新しいデータが時刻Ｔ１後に元のデータに書き込まれる可能性があるため、時刻Ｔ１後に別のバックアップが行われる場合、ある機構を使用して時刻Ｔ１後に行われた変更が特定される。図２では、ブロック３４で示すとおり、時刻Ｔ１後の変更が追跡される。これにより、時刻Ｔ１後の所望されるデータブロックに対する変更も、スナップショットコピー１６を何らかの後の時点まで更新するためにスナップショットコピー１６に転送することが可能になる。
【００３９】
図２に示すとおり、前述したシーケンスは、時刻Ｔ２に繰り返される。これを矢印３６、期間３７、ブロック３８、及びブロック４０で示している。上述したとおり、時刻Ｔ２にとられるスナップショットは、時刻Ｔ１とＴ２の間に所望されるデータブロックに対して行われた変更がスナップショットコピー１６に転送された際、スナップショットコピー１６が、時刻Ｔ２における論理的に整合性のある状態まで更新されるように、論理的に整合性のある状態を表していなければならない。
【００４０】
以上のように、本発明は、前回のバックアップ以来、変更された記憶場所に格納されたデータだけをバックアップする。これにより、従来技術に勝る大きな利点がもたらされる。例えば、非常に少ないデータレコードだけが変更されるデータベースを考慮されたい。従来技術のシステムは、変更が行われた場合、データベース全体をバックアップしようと試みる。しかし、本発明は、データベース変更によって実際に変更された少数のデータブロックをバックアップするだけである。また、本発明により、変更されたデータブロックをバックアップが所望されるものとして、あるいは所望されないものとして指定することができるようになる。したがって、第１の時点と第２の時点の間に変更され、バックアップが所望されるデータブロックだけが、スナップショットコピー１６に送信される。したがって、メモリ、処理サイクル、及び通信帯域幅が、バックアップされることが所望されないデータブロックのバックアップコピーを格納することで浪費されない。
【００４１】
従来技術との重要な相違について上述した。本発明は、スナップショットがとられた時点で存在するとおりのデータをキャプチャする。本発明は、元のデータ１４に対して行われた時系列の変更をスナップショットコピー１６に送信しようとはしない。例えば、データベースの単一のレコードが前回のバックアップが行われた時点と今回のバックアップ時点の間に１０回、変更された場合、いくつかの従来技術のシステムは、１０回の変更をバックアップ記憶デバイスに送信する。しかし、本発明は、単に今回のバックアップ時点の前に行われた前回の変更を送信する。この例では、そのようなスキームにより、バックアップデバイスに送信されるデータの量が１０分の１に縮減される。本発明により、バックアップデバイスに送信されるデータの量が、論理的に整合性のあるバックアップを行うのに必要とされる最小限に抑えられる。したがって、本発明は、スナップショットコピーがコンピュータシステム１２から遠隔のサイトに配置された実施形態に理想的に適している。バックアップシステムがリモートサイトに配置されている場合、従来のダイヤルアップ電話回線を使用して１次システムとバックアップシステムの間でバックアップデータを転送することができる。
【００４２】
図３は、本発明のバックアップシステムの一実施形態を説明するためのブロック図で、図２に示したバックアップ方法を実施するためのブロック図である。以下の説明は、図３に示す処理ブロックのそれぞれのトップレベルの概要を示す。その後、各処理ブロックの詳細を示す。
【００４３】
コンピュータシステムの通常の動作中、大容量記憶デバイス２０のような接続された大容量記憶手段に対してデータの読取りまたは書込みが定期的に行われる。したがって、本発明の実施形態は、大容量記憶デバイスにデータを書き込むための手段、及び大容量記憶デバイスからデータを読み取るための手段を含む。図３では、そのような手段を例として、大容量ストレージ読取り／書込み処理ブロック４２で示している。大容量ストレージ読取り／書込み処理ブロック４２の詳細を後に提示するが、大容量ストレージ読取り／書込み処理ブロック４２の基本的機能は、１次大容量記憶デバイス２０上の特定された記憶場所にデータブロックを書き込むこと、または１次大容量記憶デバイス２０上の特定された記憶場所からデータブロックを読み取ることである。図３では、特定された記憶場所に対してデータブロックの読取りまたは書込みを行う要求を大容量ストレージ読取り／書込み要求４４で示している。読取りまたは書込みが要求された場合はいつでも、大容量ストレージ読取り／書込み処理ブロック４２が、大容量ストレージ読取り／書込み応答４６によって示す応答を戻すことができる。この応答は、完了コード、または要求された操作の成功または失敗の他のインジケータを含むことが可能であり、読取り要求の場合、要求されたデータを含むことが可能である。
【００４４】
図２に関連して説明したとおり、本発明のバックアップ方法は、第１の時点と第２の時点の間に行われた変更を追跡する。したがって、本発明の実施形態は、第１の時点と第２の時点の間に元のデータ１４のいずれの記憶場所に新しいデータが格納されているかを特定するための手段を備えている。そのような場所を特定し、追跡するための任意の方法を本発明で利用することができる。必要とされるのは、前回のバックアップ以来、新しいデータが格納された記憶場所を特定できることだけである。図３では、そのような手段を例として、バックアップマップ４８で示している。バックアップマップ４８は、１次大容量記憶デバイス２０上の各データブロックに関するブールエントリを含むことが可能である。データブロックに新しいデータが書き込まれた際、そのデータブロックに対するエントリを設定することができる。この他に、新しいデータが格納されたデータブロックのリストも保持されることが可能である。必要とされるのは、特定の時点以来、新しいデータが格納されたデータブロックを区別し、特定することができることだけである。
【００４５】
上述したとおり、バックアップが行われる際、少なくとも所望されるデータブロックの静的スナップショットがとられる。したがって、本発明の実施形態は、特定の時点における静的スナップショットを保存するための手段を備えている。静的スナップショットの使用が好ましいのは、静的スナップショットの使用により、変更がバックアップされている最中にユーザが１次大容量記憶デバイス２０にアクセスしつづけることができるようになるからである。元のデータ１４からスナップショットコピー１６に変更を転送するのにある期間を要するため、転送されるべきデータは、転送が済むまで、不変でなければならない。スナップショットコピー１６が大容量記憶デバイス２０内に配置されていない場合、データが不変であることを確実にする１つのやり方は、１次大容量記憶デバイス２０に対するアクセスを防止することである。これにより、１次大容量記憶デバイス２０にデータが書き込まれることが防止され、バックアップされるデータが、そのデータをスナップショットコピー１６に転送することができるまで、不変であることが確実になる。残念ながら、この解決策は、極めて望ましくない。したがって、スナップショットコピー１６に変更が転送される際、少なくとも転送されるデータの静的スナップショットがとられる。そのような静的スナップショットにより、転送されるデータが、そのデータを転送することができるまで元の状態で保存され、同時に、大容量記憶デバイス２０に対してデータの読取りまたは書込みを続けることができるようにデバイス２０へのアクセスを継続することが可能になる。
【００４６】
静的スナップショットを保存する任意の方法を本発明で使用することができる。ただし、使用される方法は何であれ、１次大容量記憶デバイス２０に対するアクセスを中断することなく、静的スナップショットを保存できることが好ましい。言い換えれば、静的スナップショットは、ユーザが、大容量記憶デバイス２０に対する読取りまたは書込みを続けることができるような形で保存されることが望ましい。
【００４７】
図３では、静的スナップショットを保存するための手段を処理ブロック５０で示している。図３に示すとおり、スナップショット処理機構を大容量ストレージ読取り／書込み処理ブロックに組み込むことが理にかなっている可能性がある。スナップショット処理ブロック５０の詳細は以下に示すが、１つの好ましい実施形態は、上書きを受ける元のデータ１４のデータブロックを元のデータ１４からスナップショットストレージ２２にコピーし、次に、そのブロックがスナップショットストレージ２２の中に保存されたことをスナップショットマップ５２の中で示すことにより、静的スナップショットを保存する。スナップショットストレージ２２の中にコピーが入れられると、元のデータ１４の中のそのデータブロックのコピーを上書きすることができる。
【００４８】
図２に関連して前述したとおり、一続きの連続するバックアップが行われる場合、バックアップが行われている最中に元のデータ１４に対して行われる変更を追跡することが必要である。言い換えれば、スナップショットがとられた後に元のデータ１４に対して行われた変更を追跡する必要がある可能性がある。本発明の実施形態は、スナップショットがとられた時点の後に新しいデータが格納された元のデータ１４の記憶場所を特定するための手段を含むことが可能である。特定の時点の後に新しいデータが格納された大容量記憶デバイスの記憶場所を追跡し、特定する任意のタイプの機構を利用することができる。例えば、バックアップマップ４８と同様のマップを使用することができる。他の例として、特定の時点の後に新しいデータが格納されたデータ場所のリストも使用することができる。使用されるスナップショット機構のタイプにより、スナップショット機構が、本来的にそのような情報を追跡することも可能である。そのような実施形態では、上述した情報が後の使用のために保存されることが可能である。図３では、そのような手段をスナップショットマップ５２で示している。スナップショット機構の１つの実装は、スナップショットがとられた後に新しいデータが格納された記憶場所を、図３のスナップショットマップ５２のようなスナップショットマップの中で追跡する。
【００４９】
本発明の実施形態は、バックアップされるべきデータブロックをスナップショットコピーに転送するための手段を含む。図３では、そのような手段を例として、１次バックアップ処理ブロック５４で示している。１次バックアップ処理ブロック５４について、以下により詳細に説明するが、１次バックアップ処理ブロック５４の一般的な目的は、バックアップされるべきデータブロックを取り上げ、そのデータブロックをスナップショットコピー１６に転送することである。転送されるデータブロックは、前回のバックアップ以来、大容量記憶デバイス上の記憶場所に格納された所望されるデータブロックである。
【００５０】
１次バックアップ処理ブロック５４は、バックアップを開始し、データをスナップショットコピー１６に転送する機能を組み込むことが可能である。どのようにバックアップを開始することができるかの詳細を以下に説明する。
【００５１】
図２の説明では、静的スナップショットを使用して、特定の時点における変更された所望されるデータブロックの状態を保存した。次に、変更された所望されるデータブロックは、スナップショットコピー１６にバックアップされる。変更された所望されるデータブロックが静的スナップショットによって保存されている場合、その所望されるデータブロックは、取り出してからでないと、スナップショットコピー１６に送信することができない。したがって、本発明の実施形態は、静的スナップショットによって保存された所望されるデータブロックを取り出すための手段を備えている。そのような手段は、所望されるデータブロックをスナップショットコピー１６に転送するための手段の一部であっても、別個であってもよい。図３では、静的スナップショットによって保存された所望されるデータブロックを取り出すための手段をバックアップ読取り処理ブロック５６で示している。バックアップ読取り処理ブロック５６の一実施形態の詳細を以下に示す。この処理ブロック５６は、記憶場所から保存済みデータを取り出し、取り出されたデータブロックをスナップショットコピーに転送するために１次バックアップ処理ブロック５４に送る。この機能は、１次バックアップ処理ブロック５４に組み込むこともできる。ただし、バックアップ読取り処理ブロック５６によって実行される機能を際立たせるため、図３でそのブロックを他に示している。
【００５２】
本発明は、所望されるデータブロックに関してスナップショットコピー１６において１つまたは複数の論理的に整合性のあるバックアップ状態をキャプチャするように設計されている。その論理的に整合性のあるバックアップ状態をキャプチャするため、本発明の実施形態は、論理的に整合性のある状態が達せられた時点を特定するための手段を含むことが可能である。論理的に整合性のある状態は、大容量記憶システム上で不適切に終了されたファイルのような論理的不整合が存在しない状態である。論理的に整合性のある状態は、いくつかの機構によって特定されることが可能である。例えば、論理的に整合性のある状態は、大容量記憶デバイス上の活動を監視することによって特定されることが可能である。大容量記憶デバイス上に活動が存在しない場合、すべての内部データバッファがフラッシュされており、バッファのデータが大容量記憶システムに書き込まれており、大容量記憶システムは、データブロックが更新されている状態にはないものと一般的に考えることができる。さらに、論理的に整合性のある状態が達せられた時点を特定するように呼び出すことができるＡＰＩが存在することも可能である。例えば、オペレーティングシステムまたは他のプログラムが、論理的に整合性のある状態が達せられた時点を戻すように行うことが可能なＡＰＩコールを有することが可能である。さらに他の例として、システムは、所与の時点でスナップショットがとられるというメッセージをネットワークに接続されたすべてのユーザにブロードキャストすることができる。すると、ユーザは、必要な場合、適切なステップを行って自らのファイルの論理的に整合性のある状態を確実にする。その他の機構を使用してもよい。論理的に整合性のある状態が達せられた時点を特定するための手段は、例えば、１次バックアップ処理ブロック５４などの図３の処理ブロックの１つに組み込むことができる。
【００５３】
図４は、図３に示した大容量ストレージ読取り／書込み処理ブロックの処理フローを示す図である。大容量ストレージ読取り／書込み処理ブロック４２の機能は、大容量記憶デバイス２０に対して読取りまたは書込みを行うことである。さらに、スナップショット処理ブロック５０が読取り／書込み処理ブロック４２に組み込まれているものと想定すると、処理ブロック４２は、特定の時点における所望されるデータブロックに関する大容量記憶デバイス２０の静的スナップショットを保存し、保持することも担う。図３に示した構成は、スナップショット処理ブロック５０を一体化した機能として組み込んでいる。ただし、上述したとおり、スナップショット処理ブロック５０を別個に実装することも可能である。スナップショット処理ブロック５０を大容量ストレージ読取り／書込み処理ブロック４２に組み込むか、またはスナップショット処理ブロック５０を別に実装するかは、本発明の目的にほとんど重要ではない設計上の選択と考えられる。本発明に重要な態様は、大容量記憶デバイス２０に対して読取りまたは書込みを行う能力、及び特定の時点における大容量記憶デバイス２０の少なくとも一部分の静的スナップショットを保存し、保持する能力を含むことである。
【００５４】
次に、図４を参照すると、判定ブロック６６がまず、スナップショット要求が行われたかどうかを判定する。この判定ブロックは、大容量ストレージ読取り／書込み処理ブロック４２に組み込まれたスナップショット処理機能が、図３の大容量記憶デバイス２０の少なくとも一部分のスナップショットをとるべきかどうかを明らかにする。スナップショット要求６８は、１次バックアップ処理ブロック５４によって生成される。１次バックアップ処理ブロック５４はまず、論理的に整合性のある状態を特定してからそのようなスナップショット要求を発行する。この他に、論理的に整合性のある状態を特定するための手段を大容量ストレージ読取り／書込み処理ブロック４２のスナップショット処理能力に組み込んでもよい。その場合、大容量ストレージ読取り／書込み処理ブロック４２が、論理的に整合性のある状態を特定し、スナップショットをとる。そのような詳細は設計上の選択であり、本発明の視点からは重要ではない。
【００５５】
次に、スナップショット要求が受け取られた場合、次のステップは、所望されるデータブロックに対応する大容量記憶デバイス２０の少なくとも一部分の静的スナップショットを保存することである。静的スナップショットを保存する任意の手段を本発明で使用することができるが、特定のプロセスを使用して静的スナップショットを保存できることが好ましい。好ましい方法をステップ７０、７２、７４、判定ブロック８４及び８５、ならびにステップ８６の説明で要約する。この方法は、「大容量記憶システムに格納されたデータの静的スナップショットを提供するための方法及びシステム」という名称の（特許文献１）で詳細に説明されている。基本的に、静的スナップショットを保存する好ましい方法は、図３のスナップショットストレージ２２のようなスナップショットストレージを利用して、新しいデータが上書きされることになる図３の大容量記憶デバイス２０のような大容量記憶デバイスのデータブロックを保存する。以下により詳細に説明するとおり、保存されるデータブロックはまず、スナップショットストレージの中にコピーされ、データブロックが保存されたことを示すレコードが更新される。そのようなレコードは、例えば、図３のスナップショットマップ５２の中に格納することができる。次に、保存されたデータブロックを失うことなく、新しいデータを大容量記憶デバイス２０に書き込むことができる。
【００５６】
判定ブロック６６による評価に応じてスナップショットがとられた場合、次のステップは、図４のステップ７０で示されるとおり、スナップショットマップをバックアップマップにコピーすることである。上述したとおり、図３のバックアップマップ４８のようなバックアップマップを使用して、第１の時点と第２の時点の間にいずれのデータブロックが変更されたかが示される。次に、そのデータブロックがスナップショットコピー１６に転送される。図３のスナップショットマップ５２は、特定の時点に静的スナップショットが保存されて以来、変更されたデータブロックを特定する。したがって、新しいスナップショットがとられる際、スナップショットマップ５２をバックアップマップとして使用することができる。スナップショットマップ５２をバックアップマップ４８にコピーすることにより、前回のスナップショットがとられた時点と現時点の間に新しいデータが格納されているデータロケーションを特定する所望の機能が実現される。明らかに、スナップショットマップとバックアップマップにコピーすることは必要ない可能性がある。スナップショットマップを単にバックアップマップとして使用して、新しいマップを現在のスナップショットマップとすることができる。
【００５７】
バックアップマップとして使用することができるようにスナップショットマップが保存された後、次のステップは、現在のスナップショットマップをクリアすることである。このステップを図４にステップ７２で示している。スナップショットマップは、スナップショットがとられて以来、新しいデータが格納されているデータブロックの指示を、その変更されたデータブロックがバックアップの所望されるデータブロックであるか、所望されないデータブロックであるかに関わらず、格納するのに使用される。したがって、スナップショットマップは、図４のスナップショットストレージ２２のようなスナップショットストレージの中にいずれのデータブロックが格納されているかを示す。新しいスナップショットがとられるので、スナップショットマップはクリアされなければならない。
【００５８】
スナップショットマップがステップ７２によってクリアされた後、次のステップは、図３のスナップショットストレージ２２のようなスナップショットストレージをクリアすることである。これを図４のステップ７４で示している。特にこのステップに関して、スナップショットストレージを物理的に消去すること、またはクリアすることは必要ない可能性があることに留意されたい。一般に、他のいずれのタイプのストレージでもそうであるように、通常、ストレージに対するインデックスをクリアしてストレージが空であることを示すだけで十分である。したがって、インデックスが図３のスナップショットストレージマップ５２のようなスナップショットストレージマップの一部として保持されている場合、ステップ７２で実行されるとおりスナップショットストレージマップをクリアするだけで、スナップショットストレージが空であることを示すのに十分である。しかし、スナップショットストレージに対するインデックスがスナップショットストレージマップとは別に保持される場合は、ステップ７４によってインデックスを別にクリアするする必要がある可能性がある。スナップショットマップ及びスナップショットストレージがクリアされた後、システムは、新しいスナップショットを保存する準備ができている。したがって、図４で示されるとおり、開始に戻る。
【００５９】
次に、図４に示した判定ブロック７６は、大容量ストレージ読取り／書込み処理ブロック４２によって受け取られたメッセージが大容量ストレージ読取り要求であるか、または大容量ストレージ書込み要求であるかをテストする。判定ブロック７８に到達した時点では、可能なメッセージは、大容量ストレージ読取り要求か、または大容量ストレージ書込み要求だけである。これは、他のタイプの要求が、判定ブロック７８より前に処理されるか、または濾過されて除外されるからである。判定ブロック７８は、大容量ストレージ読取り要求と大容量ストレージ書込み要求を区別する。要求が大容量ストレージ読取り要求であった場合、次のステップは、大容量記憶デバイス２０から要求されたデータブロックを取り出し、そのデータの要求を行っているプロセスに戻すことである。これをステップ８０で示している。しかし、要求が書込み要求であった場合、実行は、判定ブロック８２に進む。
【００６０】
判定ブロック８２は、スナップショットが保存されるべきかどうかを判定する。上述したとおり、好ましい実施形態では、上書きを受けるデータブロックを図３のスナップショットストレージ２２のような保存メモリにコピーすることによってスナップショットが保存される。この実施形態では、スナップショットは、基本的に、増分式に保存される。言い換えれば、スナップショットが保存される際、スナップショットストレージが、ステップ７２及び７４で前述したとおりデータブロックを保存するように準備される。その後、保存されるべきデータに上書きする実際の書込み要求が行われるまで、スナップショットストレージには全くデータが格納されない。したがって、スナップショットがこのように保存される際、スナップショットがとられているか、またはスナップショットデータを保存することに配慮することなく大容量記憶システムに対する書込み要求が行われるべきかを判定することが重要である。判定ブロック８２は、スナップショットデータを保存することなく書込み要求が行われるべきか、または書込み要求に関してスナップショットデータが保存されるべきかをテストする。スナップショットデータを保存することなく書込み要求が行われるべき場合、判定ブロック８２は、実行がステップ８８に進むことを示し、ステップ８８で、データブロックが図３の大容量記憶デバイス２０のような大容量記憶デバイスに書き込まれる。しかし、スナップショットが保存されるべき場合、実行は、判定ブロック８４に進む。
【００６１】
上述したとおり、好ましい実施形態に従ってスナップショットがとられる際、上書きを受けるデータがまず、図３のスナップショットストレージ２２のようなスナップショットストレージにコピーされる。スナップショットストレージの中にデータが保存された後、新しいデータブロックを大容量記憶システムに書き込むことができる。スナップショットの目的は、特定の時点で大容量記憶システム上に存在していたとおりにデータを保存することである。したがって、スナップショットは、スナップショットの時点で存在していたとおりにデータを保存するだけでよい。判定ブロック８４は、スナップショットがとられた時点に大容量記憶システムに格納されていた元のデータブロックが、スナップショットストレージの中に以前に保存されていたかどうかをテストする。言い換えれば、指定された書込み記憶場所に現在、格納されているデータが、スナップショットがとられた時点でその場所に格納されていたデータであり、そのデータをまず保存することなく書込み要求が行われた場合、元のデータは失われる。しかし、スナップショットがとられた時点で格納されていた元のデータが、スナップショットストレージの中に以前に保存済みである場合、元のデータが以前に保存済みであるため、心配なく書込み要求を行い、指定された場所に格納されているデータが何であれ、上書きすることができる。したがって、判定ブロック８４により、元のデータがスナップショットストレージの中にまだ格納されていないと判定された場合、実行は、判定ブロック８５に進む。
【００６２】
判定ブロック８５は、データブロックが保護されるようにマーク付けされているかどうかを判定する。保護マップ５３で図３に示すとおり、ユーザは、バックアップが所望されるもの、またはバックアップが所望されないものとしてデータブロックを指定して、バックアップが所望されるデータブロックだけが実際にバックアップされるようにすることができる。バックアップが所望されるものとして指定されたデータブロックを本明細書では所望されるデータブロックと呼んでおり、バックアップが所望されるものとして指定されていないデータブロックを所望されないデータブロックと呼んでいる。この特徴により、バックアップに必要とされる時間と記憶スペースの量が削減される。バックアップが所望される／所望されないデータブロックを指定する要求４３が、大容量ストレージ読取り／書込み処理４２によって受け取られる。
【００６３】
スナップショットマップ５２上のデータブロックは、とられた最新の静的スナップショットの結果としてスナップショットストレージ２２の中に格納されたデータブロックを示す。大容量ストレージ読取り／書込み処理４２が、保護マップ５３上で、バックアップが所望されるデータブロックを示す。この他に、スナップショット処理が、保護マップ５３上で、バックアップが所望されないデータブロックを示し、そのデータブロックに常に最新であるものとしてマークを付けることによってそのデータブロックのバックアップを防止することもできる。また、他の実施形態では、スナップショットマップ５２と保護マップ５３が１つのマップであることも可能である。言い換えれば、保護マップ５３上で実行される諸機能をスナップショットマップ５２上で実行することができる。
【００６４】
データブロックが保護されるようにマーク付けされていない、つまり言い換えれば、バックアップが所望されない場合、実行は、判定ブロック８５からステップ８６をスキップしてステップ８８に進む。あるいは、データブロックが保護されるようにマーク付けされている場合、実行は、ステップ８６に進み、元のデータブロックがスナップショットストレージ２２の中にコピーされる。
【００６５】
一部の実施形態では、ステップ８５は省略することができる。変更されたデータブロックが、所望されるデータブロックであるか否かには関わらず保存される。次に、図６のステップ１１３が示すとおり、データブロックをスナップショットコピーに送信する際、バックアップ読取り処理５６が、保護マップ５３を使用してあらゆる所望されないデータブロックを濾過して除外して、所望されるデータブロックだけがスナップショットコピーに送信されるようにする。
【００６６】
ステップ８６によって元のデータが保存された後、または元のデータが以前に保存済みであるとの判定が判定ブロック８４によって行われた後、またはデータブロックが保護されるようにマーク付けされていないとの判定が判定ブロック８５によって行われた後、実行は、ステップ８８に進み、書込み要求に含まれるデータブロックを大容量記憶デバイス上の指定された記憶場所に書き込むことによって書込み要求が満たされる。
【００６７】
次に、ステップ９０が、新しいデータを含んでいる記憶場所を特定する。前述したとおり、これは、図３のスナップショットマップ５２のようなスナップショットマップの中にエントリを入れることによって達することができる。ステップ９０は、新しいデータが書き込まれている大容量記憶デバイスの記憶場所を特定するための前述した手段の一例に過ぎない。次に、書込み要求を行っているプロセスに応答が戻されることが可能である。そのような応答を送信することを図４にステップ９２で示している。そのような応答は、通常、書込み操作の成功または失敗を示すだけでなく、書込み動作の完了を示すためにも、書込み要求を発行したプロセスに送信される。次に、実行は開始に戻り、次の要求が処理される。
【００６８】
図５は、図３に示した１次バックアップ処理ブロックの処理フローを示す図である。１次バックアップ処理ブロック５４は、スナップショットコピーに転送される必要があるデータブロックを獲得し、その転送を実行することを担う。第１に、ステップ１００が、論理的に整合性のあるバックアップ状態を特定する。論理的に整合性のある状態が特定された後、バックアップを行うことができるように論理的に整合性のある状態のスナップショットが保存される。スナップショットは、スナップショット処理、例えば、図３の大容量ストレージ読取り／書込み処理ブロック４２に組み込まれたスナップショット処理ブロック５０にスナップショットをとるように通知するステップ１０２によって保存される。一実施形態では、これにより、スナップショット要求６８が大容量ストレージ読取り／書込み処理ブロック４２に送信されることになる。前述したとおり、この要求により、とられるスナップショットの準備を行う図４のステップ７０、７２、及び７４が実行されるようになる。その後、スナップショットがとられた時点における大容量記憶デバイス２０の中に格納された指定のデータブロックに関する元のデータが、図４の判定ブロック８４、判定ブロック８５、及びステップ８６によって保存される。
【００６９】
図５のステップ１００によって特定された論理的に整合性のあるバックアップ状態を保存するためにスナップショットがとられた後、図５における次のステップは、ステップ１０４で示すとおりスナップショットコピー１６に転送するためにデータブロックをアセンブルすることである。データブロックをアセンブルしてアセンブル済みデータ６４が形成された後、ステップ１０６は、アセンブル済みデータ６４をスナップショットコピー１６に送信する。これは、スナップショットコピーに書き込むためにデータを大容量ストレージ読取り／書込み処理ブロック４２に送信することによって達することができる。次に、実行は、開始に戻り、１次バックアップ処理ブロック５４によって次の論理的に整合性のある状態が特定されて前述したプロセスが繰り返される。
【００７０】
上述したとおり、ステップ１０４によってスナップショットコピー１６に送信されるデータブロックは、前回のバックアップ以来、変更されており、バックアップされることが所望されるデータブロックだけである。さらに、データブロックは、スナップショットがとられた時点に存在していたとおりに転送される。したがって、変更されており、図３の保護マップ５３のような保護マップの中で保護されるものとして特定されている図３のバックアップマップ４８のようなバックアップマップの中で変更されているものとして特定されているデータブロックだけが、転送される。スナップショットは、スナップショットがとられた時点における状態にある所望されるデータブロックを保存する。したがって、１次バックアップブロック５４は、スナップショットによって保存された、いくつかのデータブロックを取り出す必要がある。１次バックアップ処理ブロック５４が、スナップショット及び／または大容量記憶システムからデータブロックを取り出すのに必要とされる機能を組み込むことも、そのような機能が、別個の処理ブロックに組み込まれることも可能である。その機能を組み込んだ別個の処理ブロックを図３にバックアップ読取り処理ブロック５６で示している。
【００７１】
図６は、図３に示したバックアップ読取り処理ブロックの処理フローを示す図で、上述したスナップショットによって保存されたデータを回復するように設計されたバックアップ読取り処理ブロック５６の処理フローを示している。
【００７２】
図６では、判定ブロック１１２により、バックアップ読取り処理ブロック５６が、スナップショットがとられた時点に存在していたデータを取り出すことになる読取り要求だけを扱うことが強調されている。この判定ブロックは、処理の構造及びアーキテクチャにより、そのような読取り要求だけが図３のバックアップ読取り処理ブロック５６に送信されることが保証される場合、必要ない可能性がある。同様に、判定ブロック１１３により、バックアップ読取り処理ブロック５６が、バックアップシステムへの最終的な転送が所望されるデータブロックだけを取り出すことが強調されている。あるデータブロックが所望されるデータブロックであるかどうかの検査は、図３の保護マップ５３を参照することによって達することができる。
【００７３】
適切な状況下では、判定ブロック１１３を省略してもよい。例えば、図４の判定ブロック８５で示すとおり、本発明の一部の実施形態は、保護されるものとしてマークが付けられたデータブロックだけを保存することができる。保護されるデータブロックだけがスナップショットストレージの中に入れられる場合、判定ブロック１１３を省いてもよい。というのは、データブロックがスナップショットストレージの中に格納されているという判定ブロック１１４による指示は、データブロックが保護されるようにマーク付けられていることを必然的に意味するからである。
【００７４】
スナップショットがとられた時点に存在していたとおりに所望されるデータブロックを取り出すため、どこにそのデータブロックが存在するかを特定しなければならない。図４に関連して前述したとおり、スナップショットがとられた後、所望されるデータブロックに新しいデータブロックが上書きされるときに初めて、所望されるデータブロックが図３のスナップショットストレージ２２のようなスナップショットストレージの中にコピーされる。これは、所望されるデータブロックに上書きが全く行われない場合、大容量記憶デバイスに格納された所望されるデータブロックは、スナップショットがとれた時点で存在していた元の所望されるデータブロックであることを意味する。しかし、所望されるデータブロックに１回または複数回、上書きが行われている場合、元の所望されるデータブロックは、スナップショットストレージの中に格納されている。図６の判定ブロック１１４により、スナップショットがとられて以来、要求された所望のデータブロックが変更されているかどうかが判定される。これは、データブロックが変更されているかどうかを判定するため、図３のスナップショットマップ５２のようなスナップショットマップを検査することによって達せられる。上述したとおり、スナップショットマップは、スナップショットがとられて以来、変更されている記憶場所またはデータブロックを特定する。
【００７５】
スナップショットがとられて以来、記憶場所に新しいデータが格納されている場合、ステップ１１６により、データブロックはスナップショットストレージから取り出されることが示される。しかし、スナップショットがとられて以来、記憶場所の内容が変更されていない場合、ステップ１１８により、データブロックは、大容量記憶デバイス２０から取り出されることが示される。いずれの場合でも、保護されるものとして指定されたデータブロックが、ステップ１２０によって要求側プロセスに戻される。
【００７６】
バックアップを作成する際の図３〜図６の操作をより詳細に説明するため、図７Ａ、図７Ｂ、図８Ａ、図８Ｂに詳細な例を示す。図７Ａ及び図７Ｂに示す実施形態は、図７Ａ及び図７Ｂが、あたかも図４に判定ブロック８５が存在しないかのように機能することにおいて、図８Ａ及び図８Ｂに示した実施形態とは異なる。したがって、図７Ａ及び図７Ｂは、保護されるデータブロックと保護されないデータブロックをともにスナップショットメモリの中に格納するが、スナップショットメモリからのデータブロックが要求された際、保護されるデータブロックだけを提供する実施形態を示している。対照的に、図８Ａ及び図８Ｂは、保護されるデータブロックだけをスナップショットストレージの中に格納する本発明の実施形態を示しており、これは、データブロックがスナップショットストレージの中に出現する場合、そのデータブロックは、必然的に保護されるデータブロックであることを意味する。上述したとおり、本発明は、図４の判定ブロック８５の有無に関わらず実施することができる（保護されるデータブロックだけをスナップショットストレージの中に格納して）。以下の図７Ａ及び図７Ｂの説明は、図４の判定ブロック８５が存在せず、したがって、保護されるデータブロックと保護されないデータブロックがともにスナップショットストレージの中に格納されるものと想定する。
【００７７】
まず、図７Ａを参照して、大容量記憶デバイス２０の元のデータ部分１４の１〜６という符号が付けられた記憶場所に格納された一群のデータブロック１２２を考慮されたい。同様に、バックアップマップ４８が、記憶場所１２２に対応する６つのマップ場所１２６を有し、スナップショットマップ５２が、記憶場所１２２に対応する６つのマップ場所１２８を有し、保護マップ５３も、記憶場所１２２に対応する６つのマップ場所１２９を有している。図７Ａに示すとおり、時刻Ｔ０に、マップ場所１２６、１２８がクリアされる。ただし、マップ場所１２９の場所３にはマークが付けられ、データブロック１２２のデータブロック３が保護されるものとして指定されていないことを示している。
【００７８】
図７Ｂは、１〜６の符号が付けられた記憶場所に同様に格納されている一群のデータブロック１２４をやはり有する大容量記憶デバイス２０のスナップショットコピー１６部分を示している。ただし、データブロック３は、図７Ａ及び図７Ｂの対応するデータブロックが対応する符号を有することを確実にするだけのために示している。図７Ａのマップ場所１２９の場所３は、データブロック１２２のデータブロック３が、バックアップ中に転送されないことを示しているので、バックアップストレージ２４の中のデータブロック１２４のデータブロック３は、必ずしも存在しない。つまり、バックアップストレージ２４は、１次大容量ストレージ２０からのデータブロック１２２のデータブロック３に対応するデータブロックを必ずしも有さない。このため、データブロック３は、単にグレーで塗りつぶすのではなく、データブロック１２４から完全に除外することができる。時刻Ｔ０で、１２４に格納されたデータブロックは、少なくとも所望されるデータブロック１、２、及び４〜６に関する限り、１２２に格納されたデータブロックと全く同じである。
【００７９】
時刻Ｔ０の後、データブロック１３０が、記憶場所１２２の場所３及び４に格納されるものと想定する。次に、データブロック１３０が適切な記憶場所に書き込まれるようにするため、１つまたは複数の大容量ストレージ書込み要求が図３の大容量ストレージ読取り／書込み処理ブロック４２に送られる。図４を参照すると、大容量ストレージ書込み要求が、以下の形で処理される。
【００８０】
判定ブロック６６、７６、及び７８が一緒に、書込み要求が大容量ストレージ読取り／書込み処理ブロック４２に送られていることを判定する。したがって、実行は、以上３つの判定ブロックを通過して判定ブロック８２に進む。上述したとおり、判定ブロック８２は、スナップショットがとられているかどうかをテストする。この例では、この時点で、全くスナップショットはとられていない。したがって、実行は、要求されたデータブロックを図７Ａの大容量ストレージ２０に書き込むステップ８８に進む。したがって、データブロック１３０が、記憶場所１２２に格納されて記憶場所１３２が生成される。図示するとおり、記憶場所１３２では、場所３及び４に格納されていたデータブロックが、３ａ及び４ａに変更されている。
【００８１】
図４に戻ると、次に、ステップ９０により、新しいデータが格納されている記憶場所が変更されているものとして示されるべきことが示される。多くのスナップショット実施形態では、この目的でスナップショットマップを使用することができる。図７Ａで、マップ１３４が使用され、場所３及び４がグレーにされて、データが記憶場所３及び４に格納されていることを示している。マップ場所１２６によって示されるバックアップマップ４８の中の記憶場所は、この時点で、変更されないままであることに留意されたい。図４を参照すると、ステップ９２によって書込み要求応答が戻され、実行は、開始に戻って次の要求を待つ。
【００８２】
次に、図７Ａに戻り、次の要求が、場所３、４、及び６に格納されるべき３つのデータブロック１３６を含むものと想定する。スナップショットはまだとられていないため、この要求は、前の書込み要求と同じ形で処理され、実行は、図４の判定ブロック６６、７６、７８、及び８２を通って図４のステップ８８に進む。ステップ８８は、新しいデータが大容量記憶デバイスの中に格納されたことを示し、したがって、図７Ａの記憶場所１３８は、この時点で、場所３に格納されていたデータブロックが３ｂに変更され、場所４に格納されていたデータブロックが４ｂに変更され、場所６に格納されていたデータブロックが、６ａに変更されていることを示す。前の書込み要求の場合と同様に、次に、マップ場所１４０が更新されて、場所３及び４に加えて場所６も変更されていることを示す。マップ場所１２６は変更されないままである。
【００８３】
次に、図５を参照して、本例のこの時点で、図３のバックアップ処理ブロック５４が、図５のステップ１００で論理的に整合性のあるバックアップ状態を特定するものと想定する。論理的に整合性のあるバックアップ状態を特定した後、ステップ１０２は、図３のスナップショット要求６８を大容量ストレージ読取り／書込み処理ブロック４２に送信する。
【００８４】
次に、図４を参照すると、そのスナップショット要求が、判定ブロック６６によって処理され、ステップ７０、７２、及び７４が実行されることになる。ステップ７０で、スナップショットマップがバックアップマップにコピーされる。図７Ａで、これは、マップ場所１４０がバックアップマップ４８のマップ場所１４２にコピーされることを意味する。したがって、マップ場所１４２は、場所３、４、及び６に新しいデータが格納されていることを示す。次に、図４に戻ると、上述したとおり、ステップ７２により、スナップショットマップがクリアされ、ステップ７４により、スナップショットストレージがクリアされる。次に、図４の実行は、開始に戻ってさらなる処理を待つ。
【００８５】
この時点で、書込み要求が大容量ストレージ読取り／書込み処理ブロック４２に着信して、図７Ａのデータブロック１４４が、記憶場所１３８に格納されることを要求する。これは書込み要求であるため、実行は、判定ブロック６６、７６、及び７８を通って図４の判定ブロック８２に進む。前の書込み要求とは異なり、図７Ａ及び図７Ｂで示すとおり、時刻Ｔ１にスナップショットがとられている。したがって、実行は、判定ブロック８４に進む。
【００８６】
判定ブロック８４により、上書きを受ける記憶場所に格納されたデータが、スナップショットストレージの中に以前に格納済みであるかどうかが判定される。この例では、データブロック１４４は、記憶場所１及び３に格納される。記憶場所１及び３は、スナップショットストレージの中にまだ入れられていないため、実行は、ステップ８６に進み、記憶場所１３８の場所１及び３が、スナップショットストレージ２２にコピーされる。（この実施形態では、図４の判定ブロック８５は存在しないことを想い起こされたい。）図７Ａでは、これを記憶場所１４６がデータブロック１を含み、記憶場所１４８がデータブロック３ｂを含んでいることで示している。
【００８７】
データブロック１及び３ｂがスナップショットストレージ２２の中に保存された後、ステップ８８で、新しいデータブロックが、大容量記憶デバイスに書き込まれる。図７Ａに戻ると、これは、データブロック１ａによってデータブロック１が上書きされ、データブロック３ｃによってデータブロック３ｂが上書きされている記憶場所１５０を生成するために、データブロック１ａ及び３ｃが記憶場所１３８に書き込まれることを意味する。次に、図５のステップ９０により、データブロックが変更されているものとして識別される必要があることが述べられている。したがって、スナップショットマップ５２のマップ場所１５２を変更して、記憶場所１及び記憶場所３に新しいデータが格納されていることが示される。次に、図４のステップ９２によって指示されるとおり、書込み要求応答が戻される。
【００８８】
次に、図５に戻ると、図５のステップ１０２によって指示されるとおり、図３の大容量ストレージ読取り／書込み処理ブロック４２によって時刻Ｔ１にスナップショットがとられている。次に、ステップ１０４及び１０６により、スナップショットがとられる前に変更されていたデータブロックが伝送パケットにアセンブルされて、スナップショットコピー１６に送信されるべきことが示される。転送されるべきデータブロックは、バックアップマップ４８及び保護マップ５３に含まれる情報によって示される。
【００８９】
図７Ａに戻ると、バックアップマップ４８のマップ場所１４２により、時刻Ｔ１にスナップショットがとられるのに先立って記憶場所３、４、及び６が変更されていることが示される。スナップショット場所１５２の検査により、データブロック４及び６が大容量記憶システム上にあり、データブロック３がスナップショットストレージ２２の中にあることが示される。次に、図５のステップ１０４により、記憶場所３、４、及び６に格納されているデータブロックが図３のバックアップ読取り処理ブロック５６によって取り出されることが要求される。
【００９０】
バックアップ読取り処理ブロック５６は、図６に示すとおり、１次バックアップ処理ブロック５４から受け取られた上記の要求を処理する。要求は、記憶場所３、４、及び６に格納されたデータブロックに関する。記憶場所３に格納されたデータブロックに関して、判定ブロック１１３により、記憶場所３に格納されているデータブロックが保護されないようにマーク付けられており、したがって、ステップ１２０で戻されないことが判定される。場所４及び６に格納されているデータブロックは、保護されないようにマーク付けられていないので、図６の判定ブロック１１４により、ステップ１１８で大容量記憶デバイスから記憶場所４及び６に格納されているデータブロックが取り出され、ステップ１２０で１次バックアップ処理ブロック５４に戻される。このプロセスは、記憶場所１５０からデータブロック４ｂ及び６ａを取り出すことによってデータブロック１５３がアセンブルされる図７Ａで図示している。次に、データブロック１５３は、大容量ストレージ読取り／書込み処理４２を介してスナップショットコピー１６に転送される。これを図７Ａ及び図７Ｂに図示している。図７Ｂでは、データブロック１５３がスナップショットコピー１６によって受信され、記憶場所１２４に印加されて記憶場所１５４が実現される。記憶場所１５４は、バックアップが所望されないものとして特定されているために除外される記憶場所３を除き、元のデータの記憶場所１３８（図７Ａ）と全く同じである。記憶場所１３８は、スナップショットがとられた時点Ｔ１における大容量記憶デバイス２０の状態を表していたことを想い起こされたい。したがって、スナップショットコピー１６を時刻Ｔ１における元のデータ１４と同期させるため、時刻Ｔ０と時刻Ｔ１の間に行われた変更が、現時点で、スナップショットコピー１６にバックアップされている。
【００９１】
次に、図７Ａに戻り、データブロック１５６が記憶場所１５０に書き込まれるものと想定する。データブロック１５６の書込みにより、記憶場所１、４、及び６に格納されたデータブロックに対する変更が生じる。大容量ストレージ読取り／書込み処理ブロック４２が、上述したとおり、場所４及び６に格納されるデータブロックの書込みを処理し、時刻Ｔ１後にそれらの場所に格納されたデータブロック１４４（データブロック４ｂ及びデータブロック６ａ）が、スナップショットストレージ２２の中に格納される。次に、新しいデータブロック４ｃ及び６ｂが、大容量記憶デバイス２０に書き込まれる。
【００９２】
記憶場所１に格納されるデータブロックに関して、実行は、図４で判定ブロック８４まで進む。この判定ブロックは、スナップショットがとられた時点に記憶場所に格納されているデータブロックが、スナップショットストレージの中に以前に保存済みであるかどうかをテストすることを想い起こされたい。記憶場所１に格納されているデータブロックに関して、データブロックは、図７Ａのデータブロック１４６によって示されるとおりスナップショットストレージ２２の中に以前に格納済みである。したがって、図４は、ステップ８６がスキップされ、新しいデータが大容量記憶デバイスに書き込まれることを示している。図７Ａで、これにより、データブロック１ｂがデータブロック１ａに取って代わり、そのデータブロックが失われることになる。
【００９３】
本発明は、前回のバックアップ以来、変更されている記憶場所の所望されるデータブロックだけを転送する。さらに、データブロックは、スナップショットがとられた時点に存在していたとおりに転送される。したがって、前回のバックアップ以来、元のデータにおける特定の記憶場所に５つの異なるデータブロックが格納されている場合、最後に格納されたデータブロック（例えば、スナップショットがとられる直前の）だけがスナップショットコピーに転送される。これは、バックアップをとる際にスナップショットコピー１６が、論理的に整合性のあるバックアップだけを保存するからである。言い換えれば、スナップショットコピーは、ある時点における論理的に整合性のある状態から別の時点における論理的に整合性のある状態に移る。別々の時点における所望されるデータブロックの論理的に整合性のある状態を保存することにより、従来の技術に勝る大きな利点が提供される。
【００９４】
例えば、元のデータに対して行われたすべての変更を逐一キャプチャする従来技術のシステムを考慮されたい。そのような従来技術のシステムは、すべての書込み操作を元のデータとバックアップコピーの両方に送ろうと試みる。理論的には、これにより、バックアップコピーが大容量記憶デバイスと全く同じコピーになる。しかし、この手法では問題が生じる。具体的には、バックアップコピーにすべての更新を送ることは、比較的大きい帯域幅を要する。単一のデータブロックの複数回の更新を併合して単一の更新にすることにより、本発明は、元のコピーとバックアップコピーの間で転送されなければならないデータの量を少なくする。
【００９５】
さらに、元のデータを含む１次システムが書込み更新中にクラッシュした場合、それにより元のデータが論理的に不整合な状態のままになる可能性がある。バックアップコピーが元のデータに対して行われるすべての変更を追跡している場合は、１次システムがクラッシュした際、バックアップコピーも論理的に不整合な状態のままになる可能性がある。この例により、第２の論理的に整合性のある状態が特定される前に既知の論理的に整合性のある状態を離れることの問題が際立つ。本発明は、本発明は、新しい論理的に整合性のある状態が特定されるまで前の論理的に整合性のある状態を保持し、次に、前の論理的に整合性のある状態から次の論理的に整合性のある状態にスナップショットコピーを移すことを、その２つの論理的に整合性のある状態の間で論理的に不整合な状態を通って遷移することなく行うことにより、上述した問題を回避する。
【００９６】
図７Ａに戻ると、データブロック１５６が記憶場所１５０に印加された際、記憶場所１５８がもたらされる。次に、マップ場所１５２が更新されて、時刻Ｔ１以来、変更されている記憶場所に、現時点で、記憶場所１及び３に加えて記憶場所４及び６が含まれることを示す。これを図７Ａでスナップショットストレージ５２のマップ場所１６０で示している。
【００９７】
次に、大容量記憶デバイス２０の第２のバックアップが行われるものと想定する。その場合、バックアップは、図５で上述したとおり行われ、実行は、ステップ１００に進み、論理的に整合性のある状態が特定される。図７Ａで、その論理的に整合性のある状態は、時刻Ｔ２に特定されたものと想定する。すると、図５のステップ１０２により、時刻Ｔ２にスナップショットがとられることが通知される。時刻Ｔ１にとられるスナップショットに関連して上述したとおり、大容量ストレージ読取り／書込み処理ブロック４２が、図３のスナップショット要求６８のようなスナップショット要求を受け取り、ステップ７０でスナップショットマップをバックアップマップにコピーする。これを図７Ａで示しており、バックアップマップ４８のマップ場所１６２がスナップショットマップ５２のマップ場所１６０と同じになるように変更される。
【００９８】
次に、図４のステップ７２及び７４により、スナップショットマップ及びスナップショットストレージがクリアされるべきことが示される。図７Ａで、スナップショットマップ５２のマップ場所１６４で示されるとおりスナップショットマップがクリアされる。ただし、スナップショットストレージ２２には依然としてデータブロックが格納されているのが示されている。これは、スナップショットストレージ２２に対するインデックスがクリアされて、スナップショットストレージ２２が全くデータブロックを含くまないように見える限り、データブロックは、スナップショットストレージ２２の中に依然として物理的に存在していてもよいことを示すためである。
【００９９】
時刻Ｔ２にスナップショットがとられた後に記憶場所１５８の中にデータブロックが全く存在しないものと想定すると、データブロック１６６は、図６で説明するプロセスに従って記憶場所１５８から読み取られる。記憶場所１５８の場所３は、図５の判定ブロック１１３が保護マップ場所１２９を使用して場所３が保護されないことを判定するため、読み取られないことに留意されたい。したがって、データブロック３ｃが読み取られて、バックアップシステムに転送されることはない。図５のステップ１０４及び１０６で示すとおり、読み取られたデータブロックは、次に、大容量ストレージ読取り／書込み処理ブロック４２を介してスナップショットコピーに伝送される。図７Ｂに示すとおり、データブロック１６６は、次に、記憶場所１６８に達するために記憶場所１５４に印加され、記憶場所１６８は、バックアップが所望されないものとして特定されているために除外される記憶場所３を除き、元のデータ（図７Ａ）の記憶場所１５８と全く同じコピーである。
【０１００】
次に、図８Ａ及び図８Ｂは、保護されるデータブロックだけをスナップショットストレージの中に格納する本発明の実施形態を示しており、これは、データブロックがスナップショットストレージの中に出現する場合、そのデータブロックは、必然的に保護されるデータブロックであることを意味する。上述したとおり、本発明は、図４の判定ブロック８５の有無に関わらず実施することができる（保護されるデータブロックだけをスナップショットストレージの中に格納して）。以下の図８Ａ及び図８Ｂの説明は、図４の判定ブロック８５が存在し、したがって、保護されるデータブロックだけがスナップショットストレージの中に格納されるものと想定する。図７Ａ及び図７Ｂの以上の説明の多くは、８Ａ及び図８Ｂにも当てはまるので、図８Ａ及び図８Ｂの以下の説明は、図７Ａ、図７Ｂ、図８Ａ、図８Ｂの間の違い、すなわち、スナップショットストレージ２２の操作について中心的に扱う。
【０１０１】
図３に示すとおり、時刻Ｔ１に、スナップショット要求６８が大容量ストレージ読取り／書込み処理ブロック４２に送られる。図４を再び参照すると、そのスナップショット要求が判定ブロック６６によって処理されて、ステップ７０、７２、及び７４が実行されることになる。ステップ７０で、スナップショットマップがバックアップマップにコピーされる。図８Ａで、これは、マップ場所１４０がバックアップマップ４８のマップ場所１４２にコピーされることを意味する。したがって、マップ場所１４２により、場所３、４、及び６に新しいデータが格納されていることが示される。図４に戻ると、上述したとおり、ステップ７２により、スナップショットマップがクリアされ、ステップ７４により、スナップショットストレージがクリアされる。次に、図４の実行は、開始に戻り、さらなる処理を待つ。
【０１０２】
この時点で、図８Ａのデータブロック１４４が記憶場所１３８に格納されることを要求する書込み要求が大容量ストレージ読取り／書込み処理ブロック４２に着信する。これは書込み要求であるため、実行は、図４の判定ブロック６６、７６、及び７８を通って判定ブロック８２まで進む。図８Ａ及び図８Ｂに示すとおりスナップショットが時刻Ｔ１にとられて、実行は、判定ブロック８４に進む。ここまでは、図７Ａ及び図７Ｂに関連して説明した処理と全く同じである。
【０１０３】
判定ブロック８４により、上書きを受ける記憶場所に格納されたデータが、スナップショットストレージの中に以前に格納済みであるか否かが判定される。この例では、データブロック１４４は、記憶場所１及び３に格納されることになる。記憶場所１及び３はまだスナップショットストレージの中に入れられていないため、プロセスは、判定ブロック８５を実行して、バックアップが所望されるデータブロックとバックアップが所望されないデータブロックを区別する。図８Ａの保護マップ場所１２９のデータブロック３は、バックアップが所望されないものとしてマーク付けされているので、実行は、判定ブロック８５からステップ８６をスキップしてステップ８８に進む。記憶場所１３８のデータブロック３ｂは、スナップショットストレージ２２にコピーされない。しかし、保護マップ場所１２９のデータブロック１は、バックアップが所望されるものとして特定されており、したがって、保護されるものとしてマーク付けされている（すなわち、データブロック１は、保護されないようにマーク付けされていない）。したがって、データブロック１が処理される際、実行は、判定ブロック８５からステップ８６に進み、記憶場所１３８のデータブロック１がスナップショットストレージ２２にコピーされる。図８Ａで、これは、スナップショットストレージ２２が１４６という符号の付いたデータブロック１を含むことで示されている。上述したとおり、スナップショットストレージ２２が保護されるデータブロックだけを含むことを確実にすることが、図７Ａ及び図７Ｂの実施形態と図８Ａ及び図８Ｂの実施形態の間の違いである。
【０１０４】
データブロック１がスナップショットストレージ２２の中に保存された後、ステップ８８で、新しいデータブロックが、元のデータに書き込まれる。図８Ａに戻ると、これは、データブロック１ａによってデータブロック１が上書きされ、データブロック３ｃによってデータブロック３ｂが上書きされた記憶場所１５０をもたらすためにデータブロック１ａ及び３ｃが記憶場所１３８に書き込まれることを意味する。次に、図５のステップ９０により、データブロックが変更されているものとして特定される必要があることが述べられている。したがって、スナップショットマップ５２のマップ場所１５２が変更されて、記憶場所１及び記憶場所３に新しいデータが格納されていることを示す。次に、図４のステップ９２によって指示されるとおり、書込み要求応答が戻される。
【０１０５】
この時点で、図８Ａ及び図８Ｂに示した実施形態は、図７Ａ及び図７Ｂに示した実施形態と全く同様に機能して進められる。図５に戻ると、図５のステップ１０２によって指示されるとおり、図３の大容量ストレージ読取り／書込み処理ブロック４２によって時刻Ｔ１にスナップショットがとられている。次に、ステップ１０４及び１０６により、スナップショットがとられる前に変更されたデータブロックがアセンブルされ、スナップショットコピーに送信されるべきことが示される。転送されるべきデータブロックは、バックアップマップ４８及び保護マップ５３に含まれる情報によって示される。
【０１０６】
図８Ａを参照すると、バックアップマップ４８のマップ場所１４２により、時刻Ｔ１にスナップショットがとられるのに先立って記憶場所３、４、及び６が変更されていることが示される。スナップショット場所１５２の検査により、データブロック４及び６が大容量記憶システム上にあり、データブロック３は、保護されるものとしてマーク付けされている場合、スナップショットストレージ２２の中にあることが示される（しかし、前述したとおり、データブロック３は、保護されないものとしてマップ場所１２９においてマーク付けされているため、スナップショットストレージ２２の中に格納されていない。）。次に、図５のステップ１０４により、記憶場所３、４、及び６に格納されたデータブロックが図３のバックアップ読取り処理ブロック５６によって取り出されることが要求される。
【０１０７】
バックアップ読取り処理ブロック５６は、図６に示すとおり、１次バックアップ処理ブロック５４から受け取られたその要求を処理する。要求は、記憶場所３、４、及び６に格納されたデータブロックに関する。記憶場所３に格納されたデータブロックに関して、判定ブロック１１３により、そのデータブロックが保護されないようにマーク付けされていると判定され、したがって、このデータブロックは、ステップ１２０で戻されない。場所４及び６に格納されたデータブロックは、保護されないようにマーク付けされていないため、図６の判定ブロック１１４により、ステップ１１８で、元のデバイスから記憶場所４及び６に格納されたデータブロックが取り出され、ステップ１２０で、１次バックアップ処理ブロック５４に戻される。このプロセスを図８Ａに示しており、記憶場所１５０からデータブロック４ｂ及び６ａを取り出すことによってデータブロック１５３がアセンブルされる。次に、データブロック１５３は、大容量ストレージ読取り／書込み処理ブロック４２を介してスナップショットコピーに転送される。次に、データブロック１５３が記憶場所１２４に印加されて、記憶場所１５４が達せられる。記憶場所１５４は、バックアップが所望されないものとして特定されているために除外されている記憶場所３を除き、１次システム（図８Ａ）の記憶場所１３８と全く同じである。記憶場所１３８は、スナップショットがとられた時刻Ｔ１における大容量記憶デバイス２０の状態を表していたことを想い起こされたい。したがって、時刻Ｔ０と時刻Ｔ１の間に行われた変更は、スナップショットコピーを時刻Ｔ１における元のデータと同期させるために、現時点で、スナップショットコピー１６にバックアップ済みである。
【０１０８】
次に、図８Ａに戻ると、データブロック１５６が次に、記憶場所１５０に書き込まれるものと想定する。データブロック１５６の書込みにより、記憶場所１、４、及び６に格納されたデータブロックに対する変更が生じる。大容量ストレージ読取り／書込み処理ブロック４２が、場所４及び６に格納されるべきデータブロックの書込みを、時刻Ｔ１後にそれらの場所に格納されるデータブロック１４４に関して前述したのと同様に処理する（データブロック４ｂ及びデータブロック６ａが、スナップショットストレージ２２に格納されて）。次に、新しいデータブロック４ｃ及び６ｂが、元のデータ１４に書き込まれる。
【０１０９】
記憶場所１に格納されるべきデータブロックに関して、実行は、図４で、判定ブロック８４まで進む。この判定ブロックは、スナップショットがとられた時点で記憶場所に格納されているデータブロックが、スナップショットストレージの中に以前に保存済みであるかどうかをテストすることを思い起こされたい。記憶場所１に格納されたデータブロックは、図８Ａのデータブロック１４６によってスナップショットストレージ２２の中に以前に格納済みである。したがって、図４は、ステップ８６がスキップされ、新しいデータが単に元のデータに書き込まれることを示している。図８Ａで、これにより、データブロック１ｂがデータブロック１ａに取って代わり、このデータブロックが失われることになる。データブロック１５６が記憶場所１５０に印加された際、記憶場所１５８がもたらされる。次に、マップ場所１５２が更新されて、時刻Ｔ１以来、変更されている記憶場所に、現時点で、記憶場所１及び３に加えて記憶場所４及び６が含まれることを示す。これを図８Ａにスナップショットストレージ５２のマップ場所１６０で示している。
【０１１０】
次に、大容量記憶デバイス２０の第２のバックアップが行われるものと想定する。その場合、バックアップは、図５で上述したとおり行われ、実行は、論理的に整合性のある状態が特定されるステップ１００に進む。図８Ａで、時刻Ｔ２に論理的に整合性のある状態が特定されたものと想定する。次に、図５のステップ１０２により、時刻Ｔ２にスナップショットがとられるべきことが通知される。時刻Ｔ１にとられるスナップショットに関連して前述したとおり、大容量ストレージ読取り／書込み処理ブロック４２が、図３のスナップショット要求６８のようなスナップショット要求を受け取り、ステップ７０で、スナップショットマップをバックアップマップにコピーする。これを図８Ａに示しており、バックアップマップ４８のマップ場所１６２が、スナップショットマップ５２のマップ場所１６０と同じになるように変更されている。
【０１１１】
次に、図４のステップ７２及び７４により、スナップショットマップ及びスナップショットストレージがクリアされるべきことが示される。図８Ａで、スナップショットマップ５２のマップ場所１６４によって示されるとおり、スナップショットマップがクリアされる。ただし、スナップショットストレージ２２には依然としてデータブロックが格納されているのが示されている。これは、スナップショットストレージ２２に対するインデックスがクリアされて、スナップショットストレージ２２が全くデータブロックを含くまないように見える限り、データブロックは、スナップショットストレージ２２の中に依然として物理的に存在していてもよいことを示すためである。
【０１１２】
時刻Ｔ２にスナップショットがとられた後に記憶場所１５８の中に全くデータブロックが存在しないものと想定すると、図６で説明したプロセスに従ってデータブロック１６６が、記憶場所１５８から読み取られる。図５の判定ブロック１１３が保護マップ場所１２９を使用して場所３が保護されないことを判定するため、記憶場所１５８の場所３は読み取られないことに留意されたい。したがって、データブロック３ｃが読み取られて、バックアップシステムに転送されることはない。図５のステップ１０４及び１０６に示すとおり、読み取られたデータブロックは、次に、アセンブルされ、大容量記憶読取り／書込み処理ブロック４２を介してスナップショットコピーに送られる。データブロック１６６は、記憶場所１６８に達するために記憶場所１５４に印加され、記憶場所１６８は、バックアップが所望されないものとしてユーザによって特定されているために除外される記憶場所３を除き、元のデータ（図８Ａ）の記憶場所１５８と全く同じコピーである。
【０１１３】
上述したように、変更されており、保護されるように指定されているデータブロックだけが、バックアップされる。図４のステップ８５で、データブロックが保護されるように指定されていない場合、データブロックは、元のデータブロックをスナップショットストレージに書き込むことなく、単に上書きされることが可能であり、これにより、スナップショットストレージメモリが節約される。また、データブロックは、保護されるものとして指定される場合にだけバックアップシステムに伝送されるので、より少ないデータがバックアップシステムに伝送されることにより、バックアップ時間がより高速になる。
【０１１４】
本発明は、本発明の趣旨または基本的特徴を逸脱することなく、他の特定の形態で実施することができる。説明した実施形態は、すべての点で単に例示的であり、これに限定するものではない。したがって、本発明の技術的範囲は、以上の説明によってではなく、特許請求の範囲によって示される。特許請求の範囲と等価の意味及び範囲に含まれるすべての変更が、特許請求の範囲に含まれるものである。
【図面の簡単な説明】
【０１１５】
【図１】本発明のバックアップシステムを説明するためのブロック図である。
【図２】本発明のバックアップ方法を説明するためのタイミングを示す図である。
【図３】本発明のバックアップシステムの一実施形態を示すシステムレベルのブロック図である。
【図４】図３に示した大容量ストレージ読取り／書込み処理ブロックの処理フローを示す図である。
【図５】図３に示した１次バックアップ処理ブロックの処理フローを示す図である。
【図６】図３に示したバックアップ読取り処理ブロックの処理フローを示す図である。
【図７Ａ】本発明のバックアップ方法の一実施形態を示す図（その１）である。
【図７Ｂ】本発明のバックアップ方法の一実施形態を示す図（その２）である。
【図８Ａ】本発明のバックアップ方法の一実施形態を示す図（その３）である。
【図８Ｂ】本発明のバックアップ方法の一実施形態を示す図（その３）である。
【図１】
2005512191.tif 000003
【図２】
2005512191.tif 000004
【図３】
2005512191.tif 000005
【図４】
2005512191.tif 000006
【図５】
2005512191.tif 000007
【図６】
2005512191.tif 000008
【図７Ａ】
2005512191.tif 000009
【図７Ｂ】
2005512191.tif 000010
【図８Ａ】
2005512191.tif 000011
【図８Ｂ】
2005512191.tif 000012
【手続補正書】
【提出日】平成16年7月1日(2004.7.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のデータブロックでデータを格納し、該データのスナップショットコピーを含むデータ記憶場所にアクセスを有する大容量記憶デバイスを備えたコンピュータシステムにおける、バックアップされるように指定されているデータブロックを前記スナップショットコピーにバックアップする方法であって、
指定の期間中に前記大容量記憶デバイスにおいて変更されたデータブロックを特定するステップと、
前記特定されたデータブロックのなかからの他のデータブロックがバックアップされず、前記特定されたデータブロックのなかからのデータブロックをバックアップされるべきデータブロックとして指定するステップと、
前記指定されたデータブロックのコピーを、前記スナップショットコピーを含む前記データ記憶場所に伝送して、前記データブロックの前記伝送されたコピーが前記スナップショットコピーに含められることを可能にするステップと
を有することを特徴とするバックアップ方法。
【請求項２】
前記変更されたデータブロックを特定するステップは、前記指定の期間中に変更された少なくとも前記データブロックに関するエントリを含むテーブルを保持するステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項３】
前記データブロックを指定するステップは、前記指定されたデータブロックが、バックアップされるべき前記データブロックとして指定される前記大容量記憶デバイスの前記データブロックのマップを保持するステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項４】
前記データブロックを指定するステップが、バックアップされない前記他のデータブロックを特定することによって実行されることを特徴とする請求項１に記載のバックアップ方法。
【請求項５】
バックアップされるべき前記データブロックを特定する入力をユーザから受け取るステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項６】
バックアップされない前記データブロックを特定する入力をユーザから受け取るステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項７】
前記変更されたデータブロックを特定するステップが、前記大容量記憶デバイスに対するユーザアクセスの中断なしに実行されることを特徴とする請求項１に記載のバックアップ方法。
【請求項８】
前記スナップショットコピーを含む前記データ記憶場所が、前記大容量記憶デバイスから遠隔に配置されることを特徴とする請求項１に記載のバックアップ方法。
【請求項９】
前記スナップショットコピーを含む前記データ記憶場所が、前記大容量記憶デバイス内に含まれることを特徴とする請求項１に記載のバックアップ方法。
【請求項１０】
前記指定されたデータブロックのコピーを伝送するステップは、前記期間中に前記指定されたデータブロックの最新の変更を表す前記指定されたデータブロックのコピーだけを伝送して、前記指定されたデータブロックの中間の変更が全く前記スナップショットコピーを含む前記データ記憶場所に伝送されないようにするステップを有することを特徴とする請求項１に記載のバックアップ方法。
【請求項１１】
データブロックを格納する大容量記憶デバイスを備えたコンピュータシステムにおける、選択されたデータブロックのスナップショットコピーの作成方法であって、
前記スナップショットコピーに含まれる大容量記憶デバイスのデータブロックのサブセットをユーザ指定からの情報として受け取るステップであって、前記スナップショットコピーは、最初に時点において存在する指定サブセットとして、データブロックの指定サブセットを保存するステップと、
前記最初の時点の後に変化する大容量記憶デバイスにおけるデータブロックとして、前記大容量記憶デバイスで変化する指定サブセットのデータブロックを特定するステップと、
前記指定サブセットのデータブロックのコピーを保存するステップであって、変化されたデータブロックのコピーが、変化する前の指定サブセットのデータブロックの元のコピーを表すものであり、
前記データブロックの指定サブセットのスナップショットコピーにアクセスするステップと
を有することを特徴とするスナップショットコピーの作成方法。
【請求項１２】
前記スナップショットコピーが、ある程度までコンピュータシステムにユーザアクセスを中断することなく作成されるもので、ユーザは、スナップショットコピーが作成されるように前記大容量記憶デバイスにＩ／Ｏ要求を連続して行なうことを特徴とする請求項１１に記載のスナップショットコピーの作成方法。
【請求項１３】
前記指定サブセットのデータブロックを特定するステップは、前記大容量記憶デバイスにおいて、最初の時点の後の変化した指定サブセットの少なくともデータブロックの登録を行なうテーブルを維持するステップからなることを特徴とする請求項１１に記載のスナップショットコピーの作成方法。
【請求項１４】
前記スナップショットコピーを維持するステップは、最初の時点に存在する指定サブセットとして、前記データブロックの指定サブセットのバックアップとして、前記スナップショットコピーを維持するステップであることを特徴とする請求項１１に記載のスナップショットコピーの作成方法。
【請求項１５】
前記最初の時点の後に前記大容量記憶デバイスにおいてデータロスを生じた後で、前記スナップショットコピーを用いたデータの指定サブセットを記憶するステップを有することを特徴とする請求項１１に記載のスナップショットコピーの作成方法。
【請求項１６】
前記スナップショットコピーは、
変化した指定サブセットのデータブロックに対する、その変化したデータブロックの保存コピーと、
前記最初の時点の後で変化しないデータブロックの指定サブセットのデータブロックの元のコピーと
を含むことを特徴とする請求項１１に記載のスナップショットコピーの作成方法。
【国際調査報告】
2005512191.tif 000013