(57)【要約】マスストレージ装置１２を、その上に記憶されている対応するデータブロック２０を含めて、それが以前のある時点において存在していた状態まで復元することにより、データブロック２０が破損または失われることにより生じるデータの損失を最小限に抑える。ミラーまたはバックアップコピーが作成された後は、書込み要求に応答して上書きされるデータブロック４０は、上書きされる前に保存メモリ１４中に記憶される。保存メモリ１４中に記憶されたデータブロック４０は、タイムスタンプされて、データブロック４０が上書きされた時間的順序を表す。データが破損すると、有効な破損していないデータ集合が得られるまで、逆の時間順で、保存メモリ１４のデータブロック４０が、破損したデータ２０に適用される。このようにして、フルミラーまたはバックアップコピーに付随するものよりも新しいデータを再構築することができる。
2004518216.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータブロックを記憶するマスストレージ装置を含むコンピュータシステムにおいて、前記マスストレージ装置の以前の状態へのアクセスを可能にする一方で、前記データブロックを更新する方法であって、
前記マスストレージ装置中の既存のデータブロックを新しいデータブロックで上書きするようにという書込み要求を受け取る動作と、
前記書込み要求の実行の前に、前記既存のデータブロックのコピーを、前記コンピュータシステムに付随する保存メモリ中に記憶して、前記保存メモリ中の前記データブロックのコピーにタイムスタンプを付ける動作と、
前記マスストレージ装置中に記憶されている前記既存のデータブロックが前記新しいデータブロックで上書きされるように、前記書込み要求を実行する動作とを含むことを特徴とする方法。
【請求項２】
前記保存メモリは揮発性メモリ装置を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記保存メモリは前記マスストレージ装置の一部を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記書込み要求を受け取る動作の前に、前記マスストレージ装置によって記憶されている前記複数のデータブロックのバックアップコピーを作成する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記複数のデータブロックが論理的に一貫したデータを表す場合に、前記バックアップコピーを作成する動作が行われることを特徴とする請求項６に記載の方法。
【請求項６】
前記保存メモリに記憶されている前記既存のデータブロックのコピーを使って、前記マスストレージ装置に記憶されている前記複数のデータブロックを、前記複数のデータブロックが以前のある時点において存在していた状態に復元する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記マスストレージ装置の前記既存のデータブロックを上書きするようにという１つ以上の書込み要求に応答して、一連の既存のデータブロックを前記保存メモリ中に記憶し、前記各一連の既存のデータブロックにタイムスタンプを付ける動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記保存メモリに記憶されている前記一連の既存のデータブロックを使って、前記マスストレージ装置に記憶されている前記複数のデータブロックを、前記複数のデータブロックが以前のある時点において存在していた状態に復元する動作をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記マスストレージ装置におけるデータ破損を経験する動作をさらに含み、前記複数のデータブロックを復元して破損していないデータを得るために、前記複数のデータブロックを復元する動作が行われることを特徴とする請求項８に記載の方法。
【請求項１０】
前記復元する動作は、前記保存メモリに記憶されている前記一連の既存のデータブロックのデータブロックを、逆の時間順で、前記マスストレージ装置に記憶されている前記複数のデータブロックの現在のバージョンに適用する動作を含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記複数のデータブロックを復元して破損していないデータを得るために、前記複数のデータブロックを復元する動作が行われ、前記データブロックを適用する動作は、破損していないデータがいつ得られたかを判断する動作を含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記マスストレージ装置に記憶されている前記複数のデータブロックを、前記複数のデータブロックが以前のある時点において存在していた状態で含んでいるかのように見える仮想デバイスを、前記コンピュータシステムに設置する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記バーチャルマシンにおいて、要求するデータブロックを指定する読込み要求を受け取る動作と、
前記読込み要求に応答して、
前記保存メモリが、前記以前のある時点において、またはそれ以降に前記保存メモリ中に記憶された、前記要求されたデータブロックの破損していないバージョンのコピーを含む場合には、前記保存メモリ中に記憶されている前記要求されたデータブロックの、最も古いそのような破損していないバージョンを使って、前記読込み要求を処理する動作と、
前記保存メモリが、前記以前のある時点において、またはそれ以降に前記保存メモリ中に記憶された、前記要求されたデータブロックの破損していないバージョンの前記コピーを含んでいない場合には、前記マスストレージ装置中に記憶されている前記要求されたデータブロックのバージョンを使って、前記読込み要求を処理する動作と
をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
以前のある時点において存在していた状態のデータブロックへのアクセスを提供するコンピュータシステムであって、
書込み要求に応答して上書きすることができる複数のデータブロックを記憶しているマスストレージ装置と、
前記書込み要求が処理される前に、上書きされる前記データブロックのコピーを受け取って記憶し、前記データブロックのコピーのそれぞれにタイムスタンプを付ける保存メモリと、
前記マスストレージ装置に記憶されている前記データブロックの現在のバージョン、および前記保存メモリの前記データブロックの前記コピーへのアクセスを提供する仮想デバイスとを含み、
前記仮想デバイスが、前記以前のある時点において存在していた状態の特定のデータブロックを指定する読込み要求に応答して、前記マスストレージ装置の前記指定されたデータブロックの現在のバージョンにアクセスすべきか、あるいは前記保存メモリの前記指定されたデータブロックのコピーにアクセスすべきかを判断することを特徴とするコンピュータシステム。
【請求項１５】
前記保存メモリは前記マスストレージ装置の一部を含むことを特徴とする請求項１４に記載のコンピュータシステム。
【請求項１６】
データアクセスプログラムから見ると、前記仮想デバイスが、前記以前のある時点において前記マスストレージ装置中に存在していた状態で前記データブロックを含んでいるかのように見えることを特徴とする請求項１４に記載のコンピュータシステム。
【請求項１７】
前記仮想デバイスは、前記読込み要求に応答して、
前記保存メモリが、前記以前のある時点において、またはそれ以降に前記保存メモリ中に記憶された、前記指定されたデータブロックの破損していないバージョンのコピーを含む場合には、前記保存メモリ中に記憶されている前記指定されたデータブロックの、最も古いそのような破損していないバージョンを使って、前記読込み要求を処理する動作を実行し、かつ、
前記保存メモリが、前記以前のある時点において、またはそれ以降に前記保存メモリ中に記憶された、前記指定されたデータブロックの破損していないバージョンの前記コピーを含んでいない場合には、前記マスストレージ装置中に記憶されている前記指定されたデータブロックのバージョンを使って、前記読込み要求を処理する動作を実行することを特徴とする請求項１４に記載のコンピュータシステム。
【請求項１８】
前記書込み要求を受け取る前に、前記データのバックアップコピーを作成する手段をさらに含むことを特徴とする請求項１５に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
（発明の背景）
１．発明の分野
本発明は、コンピュータデータのバックアップおよび復元に関する。より詳細には、本発明は、妨害のために失われたコンピュータデータを復元する際に、コンピュータデータの損失を最小限に抑えるためのシステムおよび方法に関する。
【０００２】
２．従来の技術
パーソナルコンピュータの出現とともに、世界中の企業は、毎日の平常業務を行う上でコンピュータデータを利用するようになっている。しかし、コンピュータが処理している間に、自然災害、テロリズムなどの様々な出来事、あるいは、コンピュータのハードウェアおよび／またはソフトウェアの故障などの、より日常的な出来事が発生し得る。これらの故障によって、しばしば、コンピュータデータが破損したり、信頼できなくなったり、あるいは失われたりといった結果がもたらされる。顧客リスト、金融取引、ビジネス文書、ビジネス取引などのデータの破損または損失は、時間および／または金銭の多大な投資の損失をもたらすことにより、企業に多大な損害を発生させる可能性がある。
【０００３】
コンピュータデータの損失または破損は、特に、電子商取引の世界では壊滅的な影響を与える。インターネットによって、世界中の個人が電子的にビジネスを行えるようになり、それによって、電子注文を頻繁にアップロードするようになった。しかし、注文のコピーはすべて電子的なものであり、したがって、この電子的なコンピュータデータの破損または損失は、失われた注文によって表される、ビジネスの損失につながり得る。
【０００４】
信頼できるコンピュータデータの商業的価値を認識して、企業は、自分達のデータを保護し、また、破損した、信頼できなくなった、または失われたデータを再構築する方法を求めている。従来のデータの保護および再構築のアプローチは、コンピュータデータのバックアップコピーの作成を伴っている。個々のファイルのバックアップコピーをフロッピー（登録商標）ディスク上に保存することは単純な手順であるが、データ量の増加に伴い、バックアップコピーの作成はより難しいものになる。
【０００５】
おそらく、大量のコンピュータデータのバックアップコピーを作成する最も単純なアプローチの１つは、データを、大容量ストレージシステムから１つ以上の磁気テープなどのアーカイバルデバイスにコピーすることであろう。この方法では、データへの即時アクセスを犠牲にして、大量のコンピュータデータを記憶する。磁気テープは、ローカルまたは遠隔に保管しておき、大容量ストレージシステムに問題が生じた場合に、この磁気テープから大容量ストレージシステムにデータをコピーする。
【０００６】
データを損失から防ぐためにアーカイバルデバイスを使用することは、比較的単純であり安価であるという利点があるが、厳しい制限もある。このような制限の１つは、バックアップコピーが作成されている間、またデータが再構築されている間、ユーザがコンピュータデータにアクセスできない時間の長さである。従来は、プロセスの間にデータが全く変更されないように、ユーザがアクセスできないようにすることが必要とされている。ユーザがデータにアクセスできないことは望ましくないため、バックアップコピーの作成はあまり頻繁に行われず、そのためにバックアップコピー中のコンピュータデータが古くなるという事態が生じる。同様に、磁気テープから大容量ストレージシステムへのコンピュータデータの転送は、コンピュータデータがファイルごとのベースで転送されるため、非常に時間がかかることがある。アーカイバルマスストレージ装置が遠隔に位置しており、ネットワークを介してアクセスできない場合には、この時間がさらに長くなる。このように再構築に長時間かかることによって、コンピュータのアクセス不能時間が長くなり、企業が負担しなければならない時間と金銭が増加することになる。
【０００７】
従来の方法のもう１つの制限は、バックアップコピーが、データを以前のある時点において存在していた状態で表すこと、すなわち、バックアップコピーが、その後にオリジナルコピーに加えられた変更に対応していないことである。バックアップコピーを作成することによって、オリジナルコピーの破損または損失があった場合にも、コンピュータデータの大部分が復元できるという安心が得られる。これは、損失が、最後にバックアップコピーが作成されてからオリジナルコピーに加えられた変更のみに限定される。しかし、企業によっては、コンピュータデータがカレントでないと、データが古く、信頼できず、さらには役に立たないというところもある。これは、特に、レートや情報がきわめて頻繁に変化する金融業界においては問題になる。したがって、コンピュータデータが破損または失われた場合には、頻繁に変化する情報を利用している企業は、価値あるコンピュータデータのすべてを失う危険に晒される。
【０００８】
したがって、コンピュータの故障やデータの破損によって失われるコンピュータデータの量をさらに最小限に抑えることができる、コンピュータデータをバックアップするためのシステムおよび方法が得られれば、それは当技術分野の進歩を意味する。また、ユーザに大容量ストレージシステムへのアクセスを終了させることなく、データのバックアップを行うことを可能にするシステムが得られれば、それも当技術分野の進歩を意味する。
【０００９】
（発明の概要）
本発明は、コンピュータデータをバックアップおよび復元するためのシステムおよび方法に関する。本発明は、データが破損または失われた場合に、コンピュータデータを漸進的な方法で復元することを可能にする。特に、データが破損または失われた場合、有効なデータ集合が得られるまで、そのデータを、連続的に古くなっていく状態に、漸進的に進めていくことができる。このように、データを、そのデータのフルミラーまたはアーカイブコピーに関連付けられる状態よりも新しい状態に復元することができる。したがって、大量のデータへのフルミラーまたはアーカイブ操作の回数を、最後のフルミラーまたはアーカイブ操作がなされ後に生じたその大量のデータへの変更を失うリスクなしに、減らすことができる。
【００１０】
本発明によれば、マスストレージ装置は、時間Ｔ０において、複数のデータブロックを記憶する。Ｔ０の時点で、マスストレージ装置に記憶されたデータのミラーコピーを作成して、必要な場合にはＴ０の時点のこのデータが都合よく復元されるように、記憶することができる。データのミラーコピーを得ることは、好ましくは比較的稀にしか行われない、時間または資源を消費するプロセスであることが多い。データのミラーコピーが作成された後で、かつデータの損失を引き起こす潜在的イベントの前に変更されたデータを保存するために、Ｔ０以降に上書きされるデータブロックを保存メモリ中に記憶する。特に、Ｔ０以降に、指定したデータブロックが書込み操作の一環として上書きされる場合には、マスストレージ装置中でオリジナルデータブロックが置き換えられる前に、そのオリジナルデータブロックのコピーが保存メモリに記憶される。さらに、保存メモリ中に記憶されたデータブロックは、書込み操作の時間を表すように、またはその他の書込み操作に対するその書込み操作の時間順の位置を表すように、タイムスタンプされ、またはその他の方法でマークされる。
【００１１】
時間Ｔ０以降、書込み操作が連続して行われるにつれて、上書きされるオリジナルデータブロックは、付随するタイムスタンプとともに保存メモリ中に記憶される。したがって、Ｔ０以降に上書きされる、またはその他の方法で変更されるデータブロックは保存メモリ中に保存され、そのデータブロックがマスストレージ装置中で上書きされた時間および順番が明示される。
【００１２】
マスストレージ装置中のあるデータブロックが失われ、または破損した場合には、保存メモリ中に記憶されているデータブロックを使って、そのデータが時間Ｔ０において存在していた状態まで完全に遡ることなく、有効なデータ集合を漸進的に復元または再構築することができる。例えば、時間Ｔ０以降に、マスストレージ装置中のあるデータブロックに無効または破損したデータが書き込まれた場合、上述のように、オリジナルの有効なデータブロックは保存メモリ中に記憶されている。保存メモリ中に記憶されているデータブロックがマスストレージ装置中で上書きされた時間的順序を明示しているタイムスタンプを使って、保存メモリ中のデータブロックが、マスストレージ装置中に記憶されているカレントデータに書き込まれる。
【００１３】
保存メモリからの１つ以上のデータブロックが、逆の時間順でマスストレージ装置のデータに書き戻された後、結局、マスストレージ装置で有効なデータ集合が得られる。したがって、保存メモリ中に記憶されているデータブロックを使って、データを、そのデータが時間Ｔ０において存在していた状態に完全に戻す必要なく、再構築することができる。
【００１４】
本発明によれば、マスストレージ装置中に記憶されているフルボリュームのデータに対する完全なミラーまたはアーカイブ操作の回数が、本発明がない場合に必要とされる回数に比べて少なくて済むことに留意されたい。保存メモリ上に記憶されているデータブロックを使って、破損データが、そのデータの最新のフルミラーコピーの状態よりも新しい状態に復元される。また、一連の上書きされたデータブロックを保存メモリ中に記憶することは、一般に、マスストレージ装置のデータに対してフルミラー操作を実行するよりも必要とする資源が少なくて済むことにも留意されたい。さらに、書込み要求に応答して保存メモリ中に記憶されたデータは、全ファイルではなく、細かく細分化されたデータブロックであり得る。例えば、マスストレージ装置への書込み操作に応答して、保存メモリ中に記憶されたデータブロックは、マスストレージ装置の単一セクタ、または別の部分またはセグメントに付随するデータであり得る。このような方法で保存メモリ中にデータを記憶することによって、書込み操作に応答して全ファイルをコピーする必要が回避され、また、データを、そのデータに関連するいずれかのファイル構造とは無関係に保存することができる。
【００１５】
本発明のさらなる特徴および利点を以下の説明で述べる。その一部は、その説明から明らかになるであろうし、あるいは、本発明を実施することによりわかる場合もあろう。本発明の特徴および利点は、特許請求の範囲で具体的に指摘している機器および組合せによって実現し、また得ることができる。本発明のこれらおよびその他の特徴は、以下の説明および特許請求の範囲からより十分に明らかになろう。あるいは、以下の記載に従って本発明を実施することによりわかる場合もあろう。
【００１６】
本発明の上述およびその他の利点および特徴が得られるように、上記に簡単に説明した本発明のより詳細な説明を、添付の図面において説明するその特定の実施形態を参照することにより記載する。これらの図面が本発明の代表的な実施形態のみを示すものであり、したがって、その範囲を限定するものとみなすべきではないことを理解しつつ、本発明を、添付の図面を使用しながら、さらなる特定性および詳細をもって記載し、説明する。
【００１７】
（好ましい実施形態の詳細な説明）
本発明は、コンピュータデータのバックアップおよび復元に関する。より詳細には、本発明は、破損データを、そのデータの最新のフルミラーコピーにまで完全に戻す必要なく復元することを可能にする。データのミラーコピーが作成されたある時点以降に上書きされるデータブロックは、保存メモリ中に記憶される。データブロックには、タイムスタンプ、あるいは、そのデータブロックが上書きされた、またはマスストレージ装置中のオリジナルデータブロックが上書きされた時間または時間的順序を表すその他の情報が付随される。一般に、「タイムスタンプ」という用語は、保存メモリ中に記憶されているデータブロックの時間的順序または時間を表す、いずれかのこのような情報を指す。データが破損した場合、保存メモリ中のデータブロックを使って、マスストレージ装置中の現在の破損したデータのコピーを有効なデータ集合に漸進的に戻すことができる。
【００１８】
図１は、本発明を実施することができるコンピュータシステムを示す。図１のコンピュータシステムは、コンピュータ１０、マスストレージ装置１２、保存メモリ１４、および入出力装置１６を含む。コンピュータ１０は、データを管理し、生成し、記憶し、またはその他の方法で処理する、いずれかのコンピュータまたはその他の処理装置でよい。例えば、コンピュータ１０は、従来のパーソナルコンピュータ、サーバ、専用コンピュータなどでよい。図６は、下記により詳細に説明するが、本発明を実施することができるコンピュータの一例の詳細を示す。
【００１９】
マスストレージ装置１２は、コンピュータ１０に付随し、コンピュータ１０から得たデータを記憶するために使用される。一般に、マスストレージ装置１２は、書込み可能な不揮発性マスストレージ装置である。特に、マスストレージ装置１２は、従来のパーソナルコンピュータに付随したハードドライブ、またはコンピュータ１０から得たデータを記憶するために使用される、いずれかのその他の記憶ボリュームであってよい。
【００２０】
保存メモリ１４は、マスストレージ装置１２中で上書きされるデータブロックが記憶される、コンピュータ１０に付随した物理または論理デバイスである。保存メモリ１４は、ランダムアクセスメモリ（ＲＡＭ）、またはマスストレージ装置１２中で上書きされるデータブロックを記憶することができる、いずれかのその他のデバイスなどの揮発性装置であってよい。図１では、保存メモリ１４を別個のデバイスとして示しているが、保存メモリは、マスストレージ装置１２のパーティションまたは別の部分であってよい。
【００２１】
図１に示すように、コンピュータシステム１０は、ユーザが、コンピュータ１０によって処理され、マスストレージ装置１２中に記憶されたデータを操作することを可能にする、入出力（Ｉ／Ｏ）装置１６を含むことができる。一般に、コンピュータ１０は、Ｉ／Ｏ装置１６、またはユーザがデータを操作することを可能にする、いずれかのその他の周辺装置を備えることができる。さらに、コンピュータ１０は、一般に、そのデータストレージ要件をマスストレージ装置１２が満たす、アプリケーションまたはソフトウェアを含む。しかし、一般に、本発明は、データを記憶するためのマスストレージ装置１２、および上書きされるデータブロックを記憶するための保存メモリ１４があれば、実質的に、どのようなコンピュータ１０および付随するハードウェアおよびソフトウェアにも及ぶほど広範なものである。
【００２２】
図２は、時間Ｔ０における、図１のコンピュータシステムを示す。この時、マスストレージ装置１２は、所与のデータを記憶しているデータブロック集合を含んでいる。図２の例では、説明のために、マスストレージ装置１２を５つのデータブロック、すなわちデータブロックＡ、Ｂ、Ｃ、Ｄ、およびＥを含むものとして示してある。Ｔ０の時点で、マスストレージ装置中に記憶されているデータのフルボリュームのミラーまたはその他のバックアップコピーが作成され、記憶されているものと仮定する。Ｔ０の時点で得られるデータのミラーまたはバックアップコピーは、従来の方法を含めて、どのような所望の方法でも生成することができる。
【００２３】
マスストレージ装置１２中のデータの性質に応じて、論理的に一貫したデータを含む、Ｔ０の時点のデータのミラーまたはバックアップコピーを得ると役立つ場合がある。これは、マスストレージ装置１２中に記憶されているデータが取引を表し、そのそれぞれが、有効かつ役立つデータ集合を備えているためには、一連の書込み操作、あるいは一組の入出力操作の実行を必要とする場合に特に重要である。データは、ある取引、または別の必要とされる一連のＩ／Ｏ操作において、必要な操作すべてよりも少ない操作しか実行されなかった場合には、論理的に矛盾する。したがって、マスストレージ装置１２中に記憶されているデータの性質に応じて、Ｔ０の時点のデータのミラーまたはバックアップコピーが論理的に一貫したデータでなければならない場合がある。
【００２４】
Ｔ０の時点でデータのミラーまたはバックアップコピーを得ることによって、Ｔ０の時点でマスストレージ装置１２に記憶されていたデータブロックＡ、Ｂ、Ｃ、Ｄ、およびＥを、単にそのデータのミラーまたはバックアップコピーにアクセスすることによって再構築することができる。しかし、上述のように、フルミラーまたはバックアップ操作は、多くの時間または帯域幅を必要とすることが多いので、完全なミラーまたはバックアップ操作は比較的稀にしか行わないことが望ましい。上述のように、また下記により詳細に説明するように、本発明は、保存メモリ１４を使って、マスストレージ装置１２のデータを、時間Ｔ０まで完全に戻す必要なく、逆の時間順で漸進的に復元することを可能にするデータブロックを記憶する。マスストレージ装置１２のデータの、定期的なミラーまたはバックアップコピーは役立つことが多いが、本発明は、定期的なミラーまたはバックアップコピーがなくても、データブロックが保存メモリ１４に記憶されるというだけで実施することもできる。
【００２５】
時間Ｔ０以降にデータが保存メモリ中に保存される方法を説明するために、図３は、マスストレージ装置中のデータブロック集合、およびそれらに適用される一連の書込み操作の特定の一例を示す。図３に示すように、Ｔ０の時点でマスストレージ装置に記憶されているデータブロック２０を、（Ａ，Ｂ，Ｃ，Ｄ，Ｅ）として表す。Ｔ１．０の時点で、図２のコンピュータ１０は書込み要求を発行し、それによって、データブロック３０ａ（Ａ１）は、既存のデータブロックＡを上書きし、その結果、データブロック集合２０ａ（Ａ１，Ｂ，Ｃ，Ｄ，Ｅ）になる。一般に、発行された書込み要求に応答して、また、マスストレージ装置中のデータブロックが新しいデータブロックで上書きされる前に、既存のデータブロックがタイムスタンプとともに保存メモリ中に記憶される。
【００２６】
この例では、Ｔ１．０の時点で、データブロックＡが、４０ａに示すように、時間Ｔ１．０を表すタイムスタンプとともに保存メモリに書き込まれる。したがって、データブロックＡは、マスストレージ装置中では上書きされていても、将来のある時点において、破損データの再構築のために必要となった場合には、保存メモリ中に記憶されている。
【００２７】
時間Ｔ１．１において、データブロック３０ｂ（Ｄ１）は、マスストレージ装置中に記憶されているデータに書き込まれ、その結果、データブロック集合２０ｂ（Ａ１，Ｂ，Ｃ，Ｄ１，Ｅ）になる。書込み操作の前に、上書きされる側のデータブロックＤは、４０ｂに示すように、時間Ｔ１．１を表すタイムスタンプとともに保存メモリ中に記憶される。
【００２８】
時間Ｔ１．２でデータの破損が発生し、その結果、データブロック３０ｃ（Ｄｘ）が、マスストレージ装置中に記憶されているデータに書き込まれる。この例で使用されているように、下付きの「ｘ」および「ｙ」は破損したデータを表す。データの破損は、データ入力の問題、ソフトウェアの問題、ハードウェアの問題など、実質的にどのような原因によっても生じる。時間Ｔ１．２におけるデータの破損の結果、データブロック集合２０ｃ（Ａ１，Ｂ，Ｃ，Ｄｘ，Ｅ）になる。書込み操作の前に、上書きされる側のデータブロックＤ１は、４０ｃに示すように、時間Ｔ１．２を表すタイムスタンプとともに保存メモリ中に記憶される。
【００２９】
時間Ｔ１．３で、データブロック３０ｄ（Ｂ１）がマスストレージ装置中に記憶されているデータに書き込まれ、その結果、データブロック集合２０ｄ（Ａ１，Ｂ１，Ｃ，Ｄｘ，Ｅ）になる。書込み操作の前に、上書きされるデータブロックＢは、４０ｄに示すように、時間Ｔ１．３を表すタイムスタンプとともに保存メモリ中に記憶される。
【００３０】
最後に、時間Ｔ１．４で、別のデータ破損が発生し、その結果、データブロック３０ｅ（Ｄｙ）がマスストレージ装置中に記憶されているデータに書き込まれる。時間Ｔ１．４におけるデータの破損の結果、データブロック集合２０ｅ（Ａ１，Ｂ１，Ｃ，Ｄｙ，Ｅ）になる。書込み操作の前に、上書きされる側のデータブロックＤｘは、４０ｅに示すように、時間Ｔ１．４を表すタイムスタンプとともに保存メモリ中に記憶される。
【００３１】
したがって、時間Ｔ１．４では、マスストレージ装置に存在するデータブロック２０ｅは（Ａ１，Ｂ１，Ｃ，Ｄｙ，Ｅ）である。上述のようにデータブロックＤｙは、破損したデータを表し、このデータは、マスストレージ装置中に記憶されているデータのすべてを使用不能にする可能性がある。Ｔ１．４の時点で、保存メモリはまた、データブロック（Ａ，Ｄ，Ｄ１，Ｂ，Ｄｘ）、および対応するタイムスタンプ（Ｔ１．０，Ｔ１．１，Ｔ１．２，Ｔ１．３，Ｔ１．４）も記憶している。
【００３２】
Ｔ０以降でデータ破損イベントが発生しているので、有効なデータ集合は、Ｔ０の時点で作成されたフルボリュームデータの、いずれかのミラーまたはバックアップコピーにアクセスすることにより、Ｔ０の時点でマスストレージ装置中に存在していた状態のデータまで完全に遡ることによって得ることができる。しかし、Ｔ０の時点でマスストレージ装置中に存在していた状態のデータまで完全に遡ると、Ｔ０以降にマスストレージ装置に書き込まれたその後のデータがすべて失われる。したがって、本発明によれば、図４に示すように、データ破損イベントに応答して、保存メモリ中に記憶されているデータブロックを使って、有効な破損していないデータが存在する時点まで、逆の時間順で、マスストレージ装置中のデータを漸進的に復元する。図４の時間Ｔ２における保存メモリは、時間Ｔ１．４において保存メモリ中に存在していたデータブロック集合および対応するタイムスタンプを含んでいる。同様に、図４の時間Ｔ２におけるマスストレージ装置は、図３の時間Ｔ１．４において存在していたデータブロック集合２０ｅ（Ａ１，Ｂ１，Ｃ，Ｄｙ，Ｅ）を含んでいる。
【００３３】
図４に示すデータ復元操作は、現在の、潜在的破損データブロック集合２０ｅ、および保存メモリ中に記憶されているデータブロック４０ｅで開始する。タイムスタンプＴ１．０〜Ｔ１．４を使って、以前にマスストレージ装置中に存在していたデータを逆の時間順で再構築する。したがって、保存メモリ中の最も新しく記憶されたデータブロック（Ｄｘ）が、時間Ｔ２において存在していた状態のデータ集合に書き込まれ、マスストレージ装置中のデータ集合を、Ｔ１．３の時点において存在していた状態に戻す。その結果、データ集合（Ａ１，Ｂ１，Ｃ，Ｄｘ，Ｅ）になる。
【００３４】
図４に示すような、このマスストレージ装置のデータを戻す操作は、マスストレージ装置中に記憶されている実際のデータまたはそのコピーを使って実行できることに留意されたい。
【００３５】
Ｔ１．３まで戻った時点で、コンピュータまたは手動のいずれかによって、Ｔ１．３の時点のデータ集合２０ｄが、データブロックＤｘが破損しているという点で、依然として破損データを表していると判断される。データが破損したままのため、保存メモリのデータブロックＢを使って、マスストレージ装置のデータをさらに時間Ｔ１．２まで戻す。データブロックＢのタイムスタンプはＴ１．３である。したがって、その結果として得られる、Ｔ１．２の時点におけるマスストレージ装置の状態を表すデータは、（Ａ１，Ｂ，Ｃ，Ｄｘ，Ｅ）２０ｃである。データブロック２０ｃは破損データブロックＤも含むため、データブロック集合２０ｃは破損データを表すと判断される。したがって、マスストレージ装置のデータに、逆の時間順で次の位置にある、保存メモリのデータブロックを書き込むことによって、データを、Ｔ１．１の時点でマスストレージ装置に存在していた状態までさらに戻す。特に、タイムスタンプがＴ１．２のデータブロックＤ１が、マスストレージ装置のデータブロックに書き込まれ、その結果、データブロック集合２０ｂ（Ａ１，Ｂ，Ｃ，Ｄ１，Ｅ）になる。これは、Ｔ１．１の時点でマスストレージ装置に存在していた状態のデータを表す。
【００３６】
この時点で、データ２０ｂ（Ａ１，Ｂ，Ｃ，Ｄ１，Ｅ）が有効な破損していないデータを表すと判断される。したがって、保存メモリのデータブロックが使用されて、有効なデータ集合が得られる時点まで、マスストレージ装置のデータブロックが逆の時間順で漸進的に復元された。データブロック２０ｂ（Ａ１，Ｂ，Ｃ，Ｄ１，Ｅ）が、データをＴ０の時点のミラーまたはバックアップコピーまで完全に戻した場合には、復元されたデータ中に含まれるはずのない、あるデータ（すなわちＡ１、Ｄ１）を含むことにも留意されたい。さらに、このより新しいデータは、Ｔ０以降の一連のフルミラーまたはバックアップ操作を必要とすることなく復元される。
【００３７】
上述のことを考えると、データを復元する操作は、一般に、データブロックが有効な破損していないデータを表すようになるまで、逆の時間順で、保存メモリのデータブロックを、マスストレージ装置のデータブロックの現在のコピーに適用することを伴う。
【００３８】
理解されるように、書込み操作の回数が多い、または頻繁な場合には、保存メモリ中に記憶されるデータブロックの数も急速に増加する可能性がある。したがって、実際には、フルミラーまたはバックアップ操作の頻度と、保存メモリ中に記憶されるデータブロックの容量とのトレードオフがある。一実施形態では、フルミラーまたはバックアップ操作を実行する頻度を、保存メモリが一杯になる、またはあるサイズに達する頻度で求める。言い換えれば、保存メモリ中に記憶されるデータの容量が保存メモリの容量に近づくと、マスストレージ装置に対してフルミラーまたはバックアップ操作が実行される。これによって、マスストレージ装置のデータの、より新しいミラーまたはバックアップコピーが作成されたので、保存メモリ中のデータがもはや必要ではなくなるため、それを破棄することが可能になる。
【００３９】
ここでは、本発明を、データ破損イベントに応答して、破損したデータを逆の時間順で漸進的に復元することに関して説明してきたが、本発明の基本的な方法にはその他の使用法もある。例えば、その他の理由で、保存メモリのデータブロックを使って、マスストレージ装置中のデータを以前の状態に戻すことができる。実際、実質的には、ユーザがマスストレージ装置中に以前存在していた状態のデータを得たいというどのような状況でもかまわない。
【００４０】
さらに別の実施形態では、保存メモリ中に記憶されたデータを、選択されたある時点において存在していた状態のデータのミラーまたはバックアップコピーと結合して、マスストレージ装置のデータを、そのミラーまたはバックアップコピーの作成よりも前のある時点まで戻す。図４に関して上記の説明したように、マスストレージ装置中で上書きされる前に保存メモリ中に記憶されたデータブロックを使って、マスストレージ装置中のデータを漸進的に戻すことができる。したがって、保存メモリが、その後のマスストレージ装置のデータのミラーまたはバックアップコピーよりも前に、マスストレージ装置中で上書きされた一連のデータブロックを含む場合には、保存メモリ中のその一連のデータブロックを使って、ミラーまたはバックアップコピーを所望のある時点まで漸進的に戻すことができる。
【００４１】
保存メモリ中に記憶されている上書きされたデータブロックを用いて、本発明を使用することにより、以前にマスストレージ装置中に存在していたデータにアクセスすることを可能にする、バーチャルマスストレージ装置（「仮想デバイス」）を設置することができる。図５の仮想デバイス５０は、仮想デバイスにアクセスするユーザまたはアプリケーション（すなわち、データアクセスプログラム６０）から見ると、以前のある時点において存在していたデータを含むように見える。例えば、あたかもその仮想デバイスが図１のコンピュータ１０上に設置されている別のハードドライブであるかのように、オペレーティングシステムおよび付随するファイルシステムを使って、仮想デバイス５０にアクセスすることができる。
【００４２】
仮想デバイス５０を使って、以前のある時点において存在していた状態のデータにアクセスすることができる方法の一例を、前に図３および４を参照しながら説明したものと同じデータ集合を使って図５に示す。図５の例では、図４を参照しながら説明したように、保存メモリ１４中に記憶されているデータブロック４０ｅを使って、マスストレージ装置１２中に記憶されているデータブロック２０ｅを、それらがＴ１．１において存在していた状態まで戻すことにより、有効なデータ集合が得られることが判断された。
【００４３】
仮想デバイス５０を使ってデータにアクセスする場合、データアクセスプログラム６０は、読込み要求７０を、特にマスストレージ装置１２または保存メモリ１４に宛てるのではなく、仮想デバイス５０に発行する。この例では、読込み要求を使って、マスストレージ装置１２中のデータブロック集合に破損したデータブロックＤｘおよびＤｙを持ち込んだ、データ破損イベント以前に存在していた最新の有効データ集合にアクセスする。前述のように、破損データブロックＤｘが持ち込まれる直前に存在していた有効データの集合が得られると判断することができる。言い換えれば、Ｔ１．２の時点でのデータ破損イベントの直前の、Ｔ１．１の時点における有効なデータ集合を得ることができる。
【００４４】
仮想デバイスは、以前の破損していない状態のデータに対する要求を受け取ると、その要求を満たすデータがマスストレージ装置１２から得られるか、または保存メモリ１４から得られるかを判断する。読込み要求が、データ破損イベント時、またはそれ以降（すなわちＴ１．２の時点、またはそれ以降）に保存メモリ１４中に記憶された破損していないバージョンを有するデータブロックを対象としている場合、その読込み要求に応答して、最も古いそのようなデータブロックにアクセスする。例えば、データアクセスプログラム６０が、最新の有効なデータ集合に付随した「Ｄ」の位置にあるデータブロックを要求した場合、Ｔ１．２の時点またはそれ以降に保存メモリ中に記憶された、最も古い破損していないデータブロックにアクセスすることによって、その読込み要求を処理する。したがって、仮想デバイスは、データブロック「Ｄ」に対する要求に応答して、図５に斜線で示す、データブロックＤｙにアクセスする。同様に、「Ｂ」データブロックに対する要求は、同じく図５に斜線で示す、保存メモリ１４中に記憶されているデータブロックＢにアクセスすることによって処理される。
【００４５】
しかし、読込み要求が、データ破損イベントの時点またはそれ以降（すなわちＴ１．２の時点またはそれ以降）に保存メモリ１４中に記憶された、破損していないバージョンを持っていないデータブロックを対象としている場合には、マスストレージ装置１２の対応するデータブロックにアクセスして、この読込み要求に応答する。例えば、「Ａ」、「Ｃ」、および「Ｅ」の位置にあるデータブロックに対する要求は、図５に斜線で示す、マスストレージ装置１２の対応するデータブロック「Ａ１」、「Ｃ」、「Ｅ」にアクセスすることによって処理される。このように、データアクセスプログラム６０は、以前の破損していない状態で存在していたデータブロックの全集合を、仮想デバイス５０に要求し、また、それに応答したデータブロックの集合（Ａ１，Ｂ，Ｃ，Ｄ１，Ｅ）を受け取ることができる。仮想デバイス５０は、どのデータブロックを得るべきか、また、そのデータブロックをマスストレージ装置１２から、あるいは保存メモリ１４から得るべきかを識別する。データブロックを使う際、データアクセスプログラム６０は、マスストレージ装置１２、保存メモリ１４、またはそれらに記憶されているデータブロックの詳細を知る必要はなく、単に、あたかも仮想デバイス５０が以前のデータ集合を含んでいるかのように、仮想デバイス５０に要求を発行すればよい。
【００４６】
一実施形態では、以前のデータ集合を、図５に関連して上記に説明した方法で再構築することができる。特に、上述のように、以前の破損していないデータ集合を、仮想デバイスを確立して、その以前の破損していないデータの集合を読み込むことによって得ることができる。データアクセスプログラム６０は、次いで、その以前の破損していないデータの集合を、実質的にどのような用途にでも必要に応じて利用できるようにする。
【００４７】
本発明の実施形態は、下記に詳説するように、様々なコンポーネントを含む専用または汎用コンピュータを含むことができる。本発明の範囲内の実施形態はまた、コンピュータ実行可能命令またはデータ構造を記憶して搬送するか、または有するコンピュータ可読媒体を含む。このようなコンピュータ可読媒体は、汎用または専用コンピュータがアクセスすることができるいずれかの利用可能な媒体であってよい。例として、このようなコンピュータ可読媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスクストレージ、磁気ディスクストレージまたはその他の磁気ストレージ装置、あるいは、コンピュータ実行可能命令またはデータ構造の形で所望のプログラムコード手段を搬送するか、または記憶するために使用することができ、汎用または専用コンピュータがアクセスできる、いずれかのその他の媒体が非限定的に含まれる。
【００４８】
情報がネットワークまたは別の通信接続（ハードワイヤード、ワイヤレス、あるいはハードワイヤードまたはワイヤレスの組合せのいずれか）を介してコンピュータに転送または提供されると、コンピュータは、その接続をコンピュータ可読媒体として正しく見る。したがって、このような接続はどれも、コンピュータ可読媒体と正しく呼ばれる。上記の組合せもまた、コンピュータ可読媒体の範囲に含まれるものとする。コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータ、または専用処理装置に、ある種の機能または機能グループを実行させることができる命令およびデータが含まれる。
【００４９】
図６および以下の記載は、本発明を実施することができる適切なコンピューティング環境の簡単かつ一般的な説明を提供することを目的としている。必ずしも必要ではないが、本発明を、ネットワーク環境においてコンピュータが実行することができる、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。コンピュータ実行可能命令、付随するデータ構造、およびプログラムモジュールは、本明細書で開示している方法のステップを実行するためのプログラムコード手段の例を表す。このような実行可能命令または付随するデータ構造の特定の順番は、このようなステップにおいて記載されている機能を実施するための、対応する動作の例を表す。
【００５０】
当業者は、パーソナルコンピュータ、ハンドヘルド装置、モバイル電話、パーソナルディジタルアシスタント（「ＰＤＡ」）、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能なコンシューマ電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む、多くのタイプのコンピュータシステム構成によるネットワークコンピューティング環境において、本発明を実施できることを理解されよう。その一例を図１に示してある。本発明はまた、通信ネットワークを介して、ローカルおよびリモートの処理装置が連結され（ハードワイヤードリンク、ワイヤレスリンク、またはハードワイヤードまたはワイヤレスリンクの組合せのいずれかによって）、そのローカルおよびリモートの処理装置の両方がタスクを実行する、分散コンピューティング環境においても実施することができる。
【００５１】
図６を参照すると、本発明を実施するための例示的システムは、コンピュータ１２０の形で汎用コンピューティングデバイスを含む。コンピュータ１２０は、処理装置１２１、システムメモリ１２２、および、システムメモリ１２２を含めて様々なシステムコンポーネントを処理装置１２１に結合する、システムバス１２３を含む。図６に示すコンピュータ１２０および付随するコンポーネントは、図１のコンピュータ１０をより詳細に図示したものである。システムバス１２３は、様々なバスアーキテクチャのいずれかを使った、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、何種類かのバス構造のどれでもよい。システムメモリは、読出し専用メモリ（「ＲＯＭ」）１２４およびランダムアクセスメモリ（「ＲＡＭ」）１２５を含むことができる。起動時などに、コンピュータ１２０内のエレメント間の情報の転送を援助する基本的なルーチンを含む、基本入出力システム（「ＢＩＯＳ」）１２６は、ＲＯＭ１２４内に記憶することができる。
【００５２】
コンピュータ１２０はまた、磁気ハードディスク１３９からの読出し、およびそこへの書込みを行うための磁気ハードディスクドライブ１２７、リムーバブル磁気ディスク１２９からの読出し、およびそこへの書込みを行うための磁気ディスクドライブ１２８、およびＣＤ−ＲＯＭやその他の光媒体などのリムーバブル光ディスク１３１からの読出し、およびそこへの書込みを行うための光ディスクドライブ１３０も含む。磁気ハードディスクドライブ１２７、磁気ディスクドライブ１２８、および光ディスクドライブ１３０は、それぞれ、ハードディスクドライブインタフェース１３２、磁気ディスクドライブインタフェース１３３、および光ドライブインタフェース１３４によってシステムバス１２３に接続されている。ドライブおよびそれらに付随するコンピュータ可読媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストレージをコンピュータ１２０に提供する。ここで説明している例示的環境は、磁気ハードディスク１３９、リムーバブル磁気ディスク１２９、およびリムーバブル光ディスク１３１を利用しているが、磁気カセット、フラッシュメモリカード、ディジタル多用途ディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなどを含めて、データを記憶するためのその他のタイプのコンピュータ可読媒体も使用できる。
【００５３】
オペレーティングシステム１３５、１つ以上のアプリケーションプログラム１３６、その他のプログラムモジュール１３７、およびプログラムデータ１３８を含めて、１つ以上のプログラムモジュールを含むプログラムコード手段を、ハードディスク１３９、磁気ディスク１２９、光ディスク１３１、ＲＯＭ１２４、またはＲＡＭ１２５上に記憶することができる。ユーザは、キーボード１４０、ポインティングデバイス１４２、またはマイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどのその他の入力装置（図示せず）を介して、コンピュータ１２０にコマンドおよび情報を入力することができる。これらおよびその他の入力装置は、システムバス１２３に結合されたシリアルポートインタフェース１４６を介して、処理装置１２１に接続されることが多い。あるいは、入力装置を、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（「ＵＳＢ」）などのその他のインタフェースで接続することもできる。モニタ１４７または別の表示装置も、ビデオアダプタ１４８などのインタフェースを介して、システムバス１２３に接続される。モニタに加えて、パーソナルコンピュータは、一般に、スピーカおよびプリンタなどのその他の周辺出力装置（図示せず）を含む。
【００５４】
コンピュータ１２０は、リモートコンピュータ１４９ａおよび１４９ｂなどの、１台以上のリモートコンピュータへの論理接続を使ったネットワーク化された環境で動作することができる。リモートコンピュータ１４９ａおよび１４９ｂは、それぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードであってよい。図６には、メモリストレージ装置１５０ａおよび１５０ｂ、およびそれらに付随するアプリケーションプログラム１３６ａおよび１３６ｂしか示していないが、リモートコンピュータ１４９ａおよび１４９ｂは、コンピュータ１２０に付随して上記に説明したエレメントの多くまたはすべてを含むことができる。図６に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１５１および広域ネットワーク（ＷＡＮ）１５２を含むが、これらは例としてここに示したものであり、限定するものではない。このようなネットワーキング環境は、オフィス規模または企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
【００５５】
コンピュータ１２０は、ＬＡＮネットワーキング環境で使用される場合、ネットワークインタフェースアダプタ１５３または同様のアダプタを介して、ローカルネットワーク１５１に接続される。ＷＡＮネットワーキング環境で使用される場合は、モデム１５４、ワイヤレスリンク、またはインターネットなどの広域ネットワーク１５２を介して通信を確立するためのその他の手段を含むことができる。内蔵でも外付けでもよいモデム１５４は、シリアルポートインタフェース１４６を介してシステムバス１２３に接続される。ネットワーク化された環境においては、コンピュータ１２０に関して説明したプログラムモジュール、またはそれらの一部を、リモートメモリストレージ装置に記憶することができる。図示のネットワーク接続は例示であり、広域ネットワーク１５２を介して通信を確立するその他の手段も使用できることを理解されたい。
【００５６】
本発明は、その趣旨または基本的な特性から逸脱することなく、その他の特定の形でも実施することができる。記載した実施形態は、すべての点において例示的であり、限定的ではないとしてみなされるべきである。したがって、本発明の範囲は、上述の説明によってではなく、頭記の特許請求の範囲によって示される。特許請求の範囲と同等の意味および範囲に包含される変更はすべて、特許請求の範囲に含まれるものとする。
【図面の簡単な説明】
【図１】
本発明を実施することができる、付随するマスストレージ装置および保存メモリを備えたコンピュータシステムを表す構成図である。
【図２】
時間Ｔ０においてマスストレージ装置中に記憶されたデータを示す、図１のコンピュータシステムの構成図である。
【図３】
上書きされるデータブロックが保存メモリ中に記憶される、一連の書込み操作を示す図である。
【図４】
マスストレージ装置中のデータが、データ破損イベントに応答して、漸進的に復元される操作を示す図である。
【図５】
以前にマスストレージ装置中に存在していた状態のデータのコピーを含んでいるかのように見える、仮想デバイスの動作を示す図である。
【図６】
本発明に適した動作環境の例を表すコンピュータシステムを示す図である。
【図１】
2004518216.tif 000003
【図２】
2004518216.tif 000004
【図３】
2004518216.tif 000005
【図４】
2004518216.tif 000006
【図５】
2004518216.tif 000007
【図６】
2004518216.tif 000008
【国際公開パンフレット】
2004518216.tif 000009
2004518216.tif 000010
2004518216.tif 000011
2004518216.tif 000012
2004518216.tif 000013
2004518216.tif 000014
2004518216.tif 000015
2004518216.tif 000016
2004518216.tif 000017
2004518216.tif 000018
2004518216.tif 000019
2004518216.tif 000020
2004518216.tif 000021
2004518216.tif 000022
2004518216.tif 000023
2004518216.tif 000024
2004518216.tif 000025
2004518216.tif 000026
2004518216.tif 000027
2004518216.tif 000028
2004518216.tif 000029
2004518216.tif 000030
2004518216.tif 000031
2004518216.tif 000032
2004518216.tif 000033
2004518216.tif 000034
2004518216.tif 000035
【国際公開パンフレット（コレクトバージョン）】
2004518216.tif 000036
2004518216.tif 000037
【国際調査報告】
2004518216.tif 000038
2004518216.tif 000039