(57)【要約】  二次不揮発性ストレージ（例えば、フラッシュメモリデバイス）が、データバックアップ動作の後にハードドライブに行われた変更のコピーを保持する技術が説明される。バックアップ変更は、ハードドライブ状態を再現するように、バックアップされたデータと組み合わせ可能であり、このため、例えば、ハードドライブに障害が生じた場合、前回のバックアップ後の変更は失われない。バックアップ変更データは、ハードドライブブロックに対応するブロック（例えば、割り当て単位）レベルで、またはハードドライブ上のファイル、もしくはファイルの一部に対応するファイルレベルで変更を保持することができる。バックアップ変更をフィルタリングし、あるデータ（例えば、ユーザーデータ）だけを、バックアップ変更データとして保持することができる。バックアップ変更データから、または不揮発性ストレージ上にやはり存在することが可能なパフォーマンス（例えば、ディスク）キャッシュからデータを読み取ることによって、読み取り要求を満たすことが可能である。
2010514008.tif 000002
【特許請求の範囲】
【請求項１】
コンピューター実行可能な命令を有する少なくとも１つのコンピューター読み取り可能な媒体であって、前記コンピューター実行可能な命令が実行されるとステップを実行し、前記ステップは、
第１の状態にある時点のストレージデバイスの内容に対応するバックアップデータを保持することと、
前記ストレージデバイスの前記内容を変更することに向けられた書き込み要求を受け取ることと、
前記書き込み要求が、前記ストレージデバイスの前記内容を第２の状態に変更する処理を進めることを可能としながら、前記書き込み要求に対応するバックアップ変更データを、前記ストレージデバイスとは別個の不揮発性ストレージに書き込むことと、
前記不揮発性ストレージの中の前記バックアップ変更データを読み取ること、および前記保持されたバックアップデータを読み取ることによることを含め、前記第２の状態における前記ストレージデバイスに対応するように受け取り側ストレージデバイスを復元することと
を含むことを特徴とするコンピューター読み取り可能な媒体。
【請求項２】
前記バックアップデータを保持することは、バックアップ動作を実行し、前記バックアップ動作の後に続いて、前記ストレージデバイスの前記内容に対応するデータ構造を保持することを含むことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項３】
前記バックアップデータを保持することは、
バックアップ動作を実行し、前記バックアップ動作の後に続いて、前記ストレージデバイスの前記内容に対応するデータ構造を保持することと、
前記バックアップ動作の後、および前記書き込み要求の前に起こった書き込み動作を追跡する少なくとも１つの増分変更バックアップデータセットを保持すること
を含むことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項４】
前記バックアップ変更データを書き込むことは、前記不揮発性ストレージにデータを、前記ストレージデバイスの少なくとも１つのデータブロックに前記データを関連付けるメタデータとともに書き込むことを含むことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項５】
前記バックアップ変更データを書き込むことは、前記不揮発性ストレージにデータを、前記ストレージデバイス上のファイルの少なくとも一部に前記データを関連付けるメタデータと一緒に書き込むことを含むことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項６】
前記バックアップ変更データを書き込むことは、前記書き込み要求をフィルタリングして、前記書き込み要求を、バックアップ変更データとして書き込まれない他の書き込み要求のなかから区別することを含むことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項７】
前記不揮発性ストレージ上のパフォーマンスキャッシュに別の書き込み要求を書き込むことを含むさらなるコンピューター実行可能命令を有することを特徴とする請求項６に記載のコンピューター読み取り可能な媒体。
【請求項８】
前記バックアップ変更データを書き込むためのセクションの領域を大きくし、前記パフォーマンスキャッシュのためのセクションの領域を小さくするように前記不揮発性ストレージ内のストレージ領域を調整することを含むさらなるコンピューター実行可能命令を有することを特徴とする請求項７に記載のコンピューター読み取り可能な媒体。
【請求項９】
前記ストレージデバイスの前記内容を読み取ることに向けられた読み取り要求を受け取ること、および前記不揮発性ストレージから前記読み取り要求の少なくとも一部を満たすことを含むさらなるコンピューター実行可能命令を有することを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項１０】
前記バックアップ変更データの少なくとも一部を増分バックアップデータセットに転送することによって、前記不揮発性ストレージ内の領域を解放することを含むさらなるコンピューター実行可能命令を有することを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項１１】
前記バックアップ変更データを書き込むことは、前記不揮発性ストレージが利用可能でない場合に、前記ストレージデバイスに、前記バックアップ変更データを追跡する情報を書き込むこと、および後で前記不揮発性ストレージが利用可能になると、前記情報を処理することによって前記不揮発性ストレージを同期することを含むことを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項１２】
前記不揮発性ストレージが、前記第２の状態の前記ストレージデバイスに対応するように前記受け取り側ストレージデバイスを復元するのに必要とされる前記バックアップ変更データを含まない場合の１つの指示、および前記不揮発性ストレージが、前記第２の状態の前記ストレージデバイスに対応するように前記受け取り側ストレージデバイスを復元するのに必要とされる前記バックアップ変更データを含む場合の別の指示を含む、前記不揮発性ストレージの同期状態を示す指示をユーザーに与えることを含むさらなるコンピューター実行可能命令を有することを特徴とする請求項１に記載のコンピューター読み取り可能な媒体。
【請求項１３】
コンピューティングデバイスを含むコンピューティング環境において、
初期状態から変更が行われるときに、データの最新状態を保持する、前記コンピューティングデバイスに結合された一次不揮発性ストレージと、
前記初期状態より後の保存されたデータ状態に対応する開始点から、前記データへの変更を保持する、前記コンピューティングデバイスに結合された二次不揮発性ストレージであって、復元機構が、前記保存されたデータ状態のデータと、二次不揮発性ストレージの中に保持される前記データへの変更とを組み合わせることによって、前記最新状態に対応する復元された状態を再現する、二次不揮発性ストレージと
を備えたことを特徴とするシステム。
【請求項１４】
前記一次不揮発性ストレージは、第１のハードディスクドライブを備え、前記二次不揮発性ストレージは、フラッシュメモリを備え、前記復元機構は、第２のハードディスクドライブに前記復元された状態を書き込むことによって前記復元された状態を再現することを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記二次不揮発性ストレージは、フラッシュメモリ、バッテリーバックアップ付きＲＡＭ、別のハードディスクドライブ、スタティックＲＡＭ、ＥＥＰＲＯＭデバイス、またはネットワーク記憶場所、あるいはこれらの任意の組み合わせを含むセットの１つまたは複数のアイテムを備え、前記二次不揮発性ストレージは、ユニバーサルシリアルバスデバイスインタフェースを介して、カードとして、マザーボード構成要素として、有線接続によって、または無線接続によって、あるいはこれらの任意の組み合わせによって前記コンピューティングデバイスに結合されることを特徴とする請求項１３に記載のシステム。
【請求項１６】
第１の状態にバックアップされたデータを有するコンピューティングデバイスを有するコンピューティング環境において、
第１の不揮発性ストレージの中に、前記第１の状態の後に行われた変更によって変形されたときに、前記第１の状態におけるデータを含むデータの最新状態を保持するステップと、
第２の不揮発性ストレージの中に、前記第１の状態の後に起こる前記データへの変更をバックアップ変更として保持するステップであって、前記バックアップ変更を第１の状態にバックアップされた前記データと組み合わせ、前記最新状態に対応する復元状態を再現する、ステップと
を含むことを特徴とする方法。
【請求項１７】
前記変更を保持するステップは、前記変更の一部のみをバックアップ変更として選択するように前記変更をフィルタリングして、前記復元状態が、前記第１の状態の後の前記変更の選択されたサブセットによって変形されたときの前記第１の状態を含むようにするステップを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記第１の状態にバックアップされた前記データは、バックアップデータのセットと、前記第１の状態の後の、ただし、前記第２の不揮発性ストレージの中の前記バックアップ変更より前のバックアップ変更データを保持する少なくとも１つの増分バックアップデータセットとを含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記バックアップ変更データを保持するステップは、前記第２の不揮発性ストレージにデータを、前記第１の不揮発性ストレージの少なくとも１つのデータブロックに前記データを関連付けるメタデータとともに書き込むステップ、または前記第２の不揮発性ストレージにデータを、前記第１の不揮発性ストレージ上のファイルの少なくとも一部に前記データを関連付けるメタデータとともに書き込むステップを含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記第１の不揮発性ストレージからの内容を読み取ることに向けられた読み取り要求を受け取るステップと、前記第２の不揮発性ストレージから前記読み取り要求の少なくとも一部を満たすステップとをさらに含むことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセキュリティのための不揮発性ディスクキャッシュに関する。
【背景技術】
【０００２】
ハードディスクドライブには、障害が生じる可能性があり、このことが、多くのユーザーが、定期的にユーザーのデータをバックアップする、または少なくともユーザーのデータをバックアップすべき理由である。しかし、ハードディスクドライブに障害が生じた場合、システム内に単一のハードディスクドライブを有する現代のコンピューティングモデルを考えると、前回のバックアップの時点以来、このハードディスクドライブに書き込まれたデータは、失われる可能性が高い。
【０００３】
ディスクミラーリングの概念を含むことが可能なＲＡＩＤ（Redundant Arrays of Independent Disks）などのソリューションが、そのようなデータの損失を防ぐのに役立つ。しかし、そのようなソリューションは、高価であり、非効率である可能性があり、パフォーマンスを低下させる可能性があり、このため、多くのコンピューターユーザーには望ましくない。
【発明の概要】
【０００４】
本概要は、以下の発明の詳細な説明でさらに説明されている選択した概念を簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求の範囲に記載されている主題事項の範囲の決定に際して、補助として使用することを目的とするものでもない。
【０００５】
簡単に述べると、本明細書で説明される主題の様々な態様は、第１の不揮発性ストレージ（例えば、コンピューターハードドライブ）が、データバックアップ動作の一環として保存されたデータを含む第１のデータ状態の後に行われた変更を含む、最新状態のデータを保持する技術に向けられる。第２の不揮発性ストレージ（例えば、フラッシュメモリデバイス）が、第１の状態の後に行われたバックアップ変更を保持する。これらのバックアップ変更は、最新状態に対応する復元状態を再現するように第１の状態におけるデータと組み合わせ可能である。このため、データは、第２の不揮発性ストレージの中のバックアップ変更データを読み取ること、および保持されたバックアップデータを読み取ることによって復元されることが可能であり、このため、例えば、ハードドライブに障害が生じた場合、バックアップデータが保存された後に行われた変更は失われない。
【０００６】
１つの例示的な実施形態では、コンピューティングデバイスが、最新状態のデータを保持する一次不揮発性ストレージと、前に保存されたデータ状態に対応する開始点からのデータへの変更を保持する二次不揮発性ストレージとを有する。復元機構は、保存されたデータ状態のデータを、二次不揮発性ストレージの中に保持されるデータへの変更と組み合わせることによって、最新状態に対応する復元された状態を再現することができる。一次不揮発性ストレージは、第１のハードディスクドライブとすることができ、二次不揮発性ストレージは、フラッシュメモリ、バッテリーバックアップ付きＲＡＭ、別のハードディスクドライブ、スタティックＲＡＭ、ＥＥＰＲＯＭデバイス、またはネットワーク記憶場所、あるいはそれらの任意の組み合わせとすることができる。二次不揮発性ストレージを、ユニバーサルシリアルバスデバイスインタフェースを介して、カードとして、マザーボード構成要素として、有線接続によって、または無線接続によって、またはそれらの任意の組み合わせによってコンピューティングデバイスに結合することができる。
【０００７】
１つの例示的な実施形態では、バックアップ変更データを、このデータをストレージデバイス上の少なくとも１つのブロック（例えば、割り当て単位）に関連付けるメタデータと一緒に保持することができる。代替として、または追加として、バックアップ変更データを、このデータをストレージデバイス上のファイルの少なくとも一部に関連付けるメタデータと一緒に保持することができる。バックアップ変更をフィルターにかけ、ある書き込みだけをバックアップ変更データとして保持することができる。
【０００８】
さらに、１つの例示的な実施形態では、第２の不揮発性ストレージからデータを読み取ることによって、少なくとも部分的に、読み取り要求を満たすことが可能である。パフォーマンスキャッシュ（例えば、ディスクキャッシュ）は、不揮発性ストレージ上に存在することも可能である。バックアップ変更データ領域（space）は、必要に応じて、パフォーマンスキャッシュ領域に増大することができる。
【０００９】
他の利点は、添付の図面と併せて考慮することで、以下の詳細な説明から明白となるだろう。
【図面の簡単な説明】
【００１０】
本発明は、添付の図面において一例として示されるが、これに限定されない。同様の符号は、同様の要素を示す。
【図１】本発明の様々な態様を組み込むことができる汎用コンピューティング環境の説明的な例を示す図である。
【図２】書き込み要求が従来のハードディスクストレージ手段によって扱われること、およびブロック（割り当て単位）レベルでの不揮発性メモリへの安全なバックアップの例を表す図である。
【図３】書き込み要求が従来のハードディスクストレージ手段によって扱われること、およびファイルレベルでの不揮発性メモリへの安全なバックアップの例を表す図である。
【図４Ａ】書き込み、および他のイベントが時間とともに生じるにつれ、不揮発性メモリを、バックアップセキュリティセクションとパフォーマンスセクションとの間でどのように割り当てられることができるかの例を表す図である。
【図４Ｂ】書き込み、および他のイベントが時間とともに生じるにつれ、不揮発性メモリを、バックアップセキュリティセクションとパフォーマンスセクションとの間でどのように割り当てられることができるかの例を表す図である。
【図４Ｃ】書き込み、および他のイベントが時間とともに生じるにつれ、不揮発性メモリを、バックアップセキュリティセクションとパフォーマンスセクションとの間でどのように割り当てられることができるかの例を表す図である。
【図５】ファイルレベル変更バックアップドライバおよびパフォーマンスキャッシュドライバの例を表す図である。
【図６】不揮発性からの安全なバックアップデータ、および前回のバックアップデータを使用して、前回の完全バックアップ以来のハードディスク状態を再現する例示的な復元動作を表すブロック図である。
【図７】不揮発性メモリに書き込みデータをバックアップするように行うことができる例示的なステップを示す流れ図である。
【図８】より高いパフォーマンスのために不揮発性メモリおよびハードドライブからデータを読み取るのに行うことができる例示的なステップを示す流れ図である。
【図９】不揮発性メモリの、バックアップされたデータ、およびバックアップ変更データからデータを復元するように行うことができる例示的なステップを示す流れ図である。
【発明を実施するための形態】
【００１１】
本明細書で説明される技術の様々な態様は、一般に、不揮発性メモリを使用して、ハードディスクドライブバックアップの合間に変更されたデータを保存する、比較的安価で堅牢なデータセキュリティソリューションを提供することに向けられる。ハードドライブ障害の場合（またはラップトップコンピューターの場合のように、ハードドライブが盗まれた場合）、バックアップされたデータ変更を、前回のハードドライブデータバックアップと組み合わせて、データをその最新状態に復元することができる。理解されるように、本技術は、パフォーマンス向上を可能にするというさらなる利点も有する。
【００１２】
１つの例示的な実施形態では、変更されたデータは、そのデータをフラッシュデバイスなどの不揮発性メモリに書き込むことによって、同時にバックアップされる。しかし、理解されるように、バッテリーバックアップ付きＲＡＭ、別のハードディスクドライブ、スタティックＲＡＭ、ＥＥＰＲＯＭデバイス、ネットワーク記憶場所などを含む、任意のタイプの不揮発性メモリが、変更バックアップ媒体として十分である。さらに、様々なタイプの媒体を含む複数のバックアップ媒体を、同一のコンピューターシステム内で組み合わせることができる。
【００１３】
さらに、本明細書で説明されるように、バックアップされることが可能な変更されたデータの単位の例には、ファイル、ファイルの一部、またはディスク割り当て単位（例えば、本明細書でブロックと呼ばれるセクターまたはクラスター）が含まれるが、いずれかの特定の単位が使用されなければならないという要件は存在せず、実際、ファイル全体を１単位としてバックアップし、いくつかのブロックを他の単位としてバックアップするといった具合に、単位のタイプを同一のバックアップ媒体上で混ぜることができる。さらに、ディスクに書き込まれるすべての変更がバックアップされる必要はなく、例えば、ユーザーは、あるディレクトリセットに書き込まれる変更だけが、不揮発性メモリに同時にバックアップされ、その一方で、他の変更はバックアップされないようにフィルターを設定することができる。
【００１４】
このように、本発明は、本明細書で説明される特定の実施形態、態様、概念、構造、機能、および／または例のいずれにも限定されない。むしろ、本明細書で説明される実施形態、態様、概念、構造、機能、および／または例のいずれも非限定的であり、本発明を、コンピューティングおよびデータセキュリティ全般において利益および利点をもたらす様々な方法で使用することができる。
【００１５】
図１は、汎用コンピューターシステム１１０が、サウスブリッジチップ１１４に結合された不揮発性メモリ１１２を含み、サウスブリッジチップ１１４は、他の従来のコンピューターシステム構成要素に結合された、例示的なブロック図を示す。よくあるように、図１の例示的なコンピューターシステム１１０は、処理装置（ＣＰＵ）１１６を含み、ＣＰＵ  １１６は、ノースブリッジチップ１１８を介してＲＡＭ  １２０およびグラフィックス処理装置（ＧＰＵ／カード）１２２に結合される。やはりよくあるように、サウスブリッジチップ１１４は、リモート接続のためにネットワークインタフェースカード（ＮＩＣ）１２４に接続され、ハードディスクドライブ１２６に接続され、さらにデバイス接続のために他のポート１２８に接続されて示されている。
【００１６】
図１に破線で示されるように、不揮発性メモリ１１２は、代替として、ユニバーサルシリアルバス（ＵＳＢ）メモリデバイスインタフェースなどの、ポート１２８を介して接続することも可能であることに留意されたい。不揮発性メモリ１１２は、カード（例えば、ペリフェラルコンポーネントインターコネクト、つまりＰＣＩ、ＰＣＩ  ｅｘｐｒｅｓｓ、ＰＣＭＣＩＡ）として接続することも可能であり、コンピューターシステムマザーボードに組み込まれてもよく、または、ネットワーク接続、ＦｉｒｅＷｉｒｅ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線、シリアルポート、パラレルポートなどを介することを含め、基本的に他のいずれの方法で結合されてもよい。さらに、前述のように、単一のコンピューターシステム内に複数のタイプの不揮発性メモリが存在することができる。
【００１７】
図１は、１つの例示的なアーキテクチャにすぎず、他の代替には、不揮発性メモリを、バッテリーバックアップ付きＲＡＭの一部分などのノースブリッジ（ＮＢ）にリンクさせることが含まれることが可能であることに留意されたい。
【００１８】
前述のように、何らかの前に保存された状態（例えば、前のハードディスクバックアップ）以来のハードディスク書き込みに対応する変更が、不揮発性メモリ１１２の中に格納される。図２に表されるように、１つの例示的な代替の実施形態では、変更バックアップは、割り当て単位で、つまり、ブロックレベルで行われることが可能である。より詳細には、書き込み要求が保留中である場合、書き込み要求データ２３０は、いくつかのドライバを介して送られてから、ハードディスクドライブ１２６に実際に書き込まれる。この要求は、Ｉ／Ｏ要求パケット、もしくはドライバスタックを通過するＩＲＰの形とすることができ、または、管理された順序で、ＩＲＰもしくは他のデータ構造を各ドライバに選択的に送り、戻されたデータを扱うドライバマネージャーアーキテクチャによって制御することができる。いずれにしても、ハードドライブ１２６に書き込まれるべきデータ２３０を、そのデータが書き込まれる前に、１つまたは複数のドライバによって処理できる。
【００１９】
図２の例では、周知のように、ファイルシステム２３２が、指定されたファイルロケーションにおけるデータに対応する書き込み要求を、ハードドライブフォーマットに対応する様々なブロック（例えば、クラスターまたはセクター）にマップし、ボリュームマネージャー２３４を介してファイルデータをそれらのブロックに書き込む。ファイルシステム２３２は、マッピングを追跡して（例えば、ファイル割り当てテーブルまたはマスタファイルテーブルの中で）、指定されたファイルロケーションにおけるデータを求める読み取り要求に関して、適切なデータが見つけられるようにする。
【００２０】
前回の状態（例えば、ユーティリティベースのハードドライブバックアップ）以来の変更に対応するブロックレベルの書き込みを安全にバックアップするために、ブロックレベルで動作する変更バックアップドライバ２３６は、書き込みデータ２３０を不揮発性メモリ１１２にコピーする。不揮発性メモリ１１２への各書き込みは、メタデータ２４０を介して追跡され、このため、メタデータに書き込まれたデータ２４２を、適切にリードバックすることができる。書き込まれるデータの各セットに付随するヘッダなどの、様々な技術を用いて、このような書き込みを追跡することができるが、図２は、メタデータ２４０が、不揮発性メモリ１１２の中の対応するロケーションと併せて、ハードドライブ上のブロック番号を記録する機構を例示する。
【００２１】
容易に理解され得るように、ブロックレベル変更バックアップの１つの利点は、そのようなバックアップにより、ハードディスクドライブが、前回の完全バックアップの時点で保存されたデータに変更を適用することによって、別のハードディスクドライブ上で正確に再現されることが基本的に可能になることである。それでも、一部の変更されたデータを選択的にコピーするが、頻繁に変更されるが、プログラムに関係のないログ、一部のメタデータなど、およびハードドライブ上に格納されたユーザーデータなどの他のデータはコピーしないことなどによって、ハードドライブを機能的に（正確にではなく）再現することも可能である。コピーされるデータの量を減らすため、ブロックレベルフィルタリングを実行して、ハードディスクを機能的に再現するのに不必要であることが知られているブロックをバックアップしないことなどができる。ユーザーモード変更バックアップソフトウェア２４４が、図２に示される。当該ソフトウェアは、例えば、対応するブロックがブロックレベルフィルタリングのために見つけることができる、いくつかのタイプのデータを除外するなど、設定を構成するようにユーザーにインタフェースを提供するソフトウェアなどである。ソフトウェア２４４は、ユーザーが、ブロックレベルバックアップ（後段で説明されるファイルレベル変更バックアップおよび閾値と対比される）を指定すること、および他の任意の変更バックアップ変数を制御する（例えば、不揮発性領域を追加、または調整する）ことをさらに可能にすることができる。
【００２２】
ブロックレベル変更バックアップの欠点は、たとえ比較的高度なブロックレベルフィルタリングが使用された場合でも、ユーザーが、ユーザーの特定の目的に必要とされない多くの変更をキャッシュする可能性があることである。例えば、ユーザーは、ワークファイルからのデータがバックアップされることを所望するが、記録されたテレビショー、ゲームファイルなどに対応するデータ変更がバックアップされることは所望しない可能性がある。このため、代替のデータ変更バックアップ機構は、選択されたファイル（例えば、ファイルの拡張子によって識別される）および／またはディレクトリへの変更のみバックアップされるファイルレベル変更バックアップを実行する。
【００２３】
図３に、書き込まれるデータ１２５が、ファイルシステム２３２に到達する前に、ファイルレベル変更バックアップドライバ３３６によってコピーされるファイルレベル変更バックアップの概念を例示する。周知のように、データ書き込みには、ファイルＩＤ、ファイルのオフセット、および書き込みサイズを含むメタデータが付随する。容易に理解され得るように、このファイルメタデータは、不揮発性メモリ１１２の中のロケーションまたはロケーションのセットにコピーされるデータ３４２を追跡するのに使用されるメタデータ３４０の基礎とすることが可能である。さらに、図３に、ユーザーモード変更バックアップソフトウェア３４４が示されており、当該ソフトウェアは、例えばファイルレベル取り込みフィルタリングまたはファイルレベル排除フィルタリングのためにファイル、ファイルタイプ、および／またはディレクトリを選択するようにユーザーにインタフェースを提供するソフトウェアなどである。ソフトウェア３４４はさらに、ユーザーが、ブロックレベル変更バックアップかファイルレベル変更バックアップかを指定すること、閾値（後段で説明される）を設定すること、他の変数を制御することなどを可能にすることができる。
【００２４】
不揮発性メモリ１１２は、変更バックアップのために排他的に使用される必要はなく、部分的に、ディスクドライブの役割をするなどの従来の目的、および新たな目的で使用されることも可能である。目的毎に領域を割り当てることが可能であり、例えば、４ギガバイトのフラッシュデバイスは、ディスクドライブのために１ギガバイトを有し、バックアップ変更ストレージのために３ギガバイトを有することが可能である。再割り当ては可能であるが、一度、領域がディスクドライブにおいて、またはバックアップ変更ストレージにおいて使用されると、その領域が解放されるまで、その領域を別の目的に再割り当てすることができず、さもなければ、その領域に対応するファイルデータまたはバックアップ変更データが失われる。
【００２５】
不揮発性メモリを使用する１つの新たな技術は、不揮発性メモリにディスクキャッシュの役割をさせることによってコンピューターシステムパフォーマンスを向上させることである。この目的のために、ブロック（例えば、セクター）は、書き込み要求に応じて不揮発性メモリにコピーされ、利用可能な場合、読み取り要求に応じて不揮発性メモリからリードバックされる。理解されるように、このようにすることは、従来のディスクアクセスよりはるかに速く、大幅なパフォーマンス向上をもたらす。
【００２６】
パフォーマンスキャッシュとバックアップ変更データとを同一のデバイス（またはデバイスのセット）上で組み合わせることに関して、バックアップ変更データを格納する必要に応じてパフォーマンスキャッシュ内の領域を解放することによって、動的再割り当てが可能である。パフォーマンスキャッシュデータは、他のいずれのキャッシュされたデータと同様に、領域が必要であり、それがディスクにフラッシュされるとき、破棄される可能性がある。バックアップされると、変更データも、不揮発性メモリ１１２上で読み取りアクセスのために利用可能であるので、変更データも、パフォーマンス利得のために使用される可能性があることに留意されたい。しかし、バックアップ変更データは、例えば、多数の書き込みのなかからフィルターされた場合、ユーザーの全データ書き込みのサブセットにすぎない可能性があり、このため、パフォーマンスキャッシュを保持することは、不揮発性メモリ領域が、別段、変更データバックアップのために必要とされない場合、やはり相当な価値がある。
【００２７】
図４Ａ〜図４Ｃに、不揮発性メモリ１１２の空き領域の中に、またはパフォーマンスキャッシュセクション４４２によってそれまで使用されていた領域の中に変更バックアップデータセクション４４０を増大させる概念を示す。図４Ａから図４Ｂへのセクションのサイズの変化に見られるように、より多くのバックアップ領域が変更書き込みのために必要とされるにつれ、変更バックアップセクション４４０は、一般に、不揮発性メモリ１１２の中で余地が残されていなくなるまで、パフォーマンスキャッシュセクション４４２が縮小するにつれて増大する（後段で説明されるように）。図４Ｃに表されるように、変更バックアップセクション４４０が、変更されたデータを格納するためにもはや必要とされなくなると、パフォーマンスキャッシュセクション４４２を、不揮発性メモリ１１２領域のより大きいセクション（例えば、全部、またはいくらかの小さい領域が変更バックアップセクション４４０のために常に確保される場合、ほとんど全部）に戻すことができる。いくらかの最小限の量の領域を、変更バックアップセクション４４０のために定義することができる。この再割り当ては、以下のように、ハードディスクの次回のユーティリティベースのバックアップ動作の後に続くことができ、または変更バックアップセクション４４０が別の媒体に転送された後とすることができる。
【００２８】
容易に理解され得るように、ブロックレベルパフォーマンスキャッシングおよびブロックレベル変更バックアップを、同一のモジュールに、例えば、同一のドライバに組み込むことが可能である。実際、ブロックレベル変更バックアップが、フィルタリング動作を全く実行しない場合、書き込みを扱う際の実質的な違いは、全く存在しない。しかし、パフォーマンスキャッシングと異なり、ハードドライブに障害が生じた場合にデータ損失を防ぐために、変更バックアップソフトウェアは、キャッシュが一杯になると、ユーザーに通知をする必要があり、このことが生じた場合、例えば、ユーティリティベースのハードドライブバックアップを実行し、不揮発性メモリ内容を別のストレージに転送し、さらなるストレージを追加し、データを圧縮する、または同種の、将来の変更を保存する措置を、ユーザーはとる必要がある。
【００２９】
図５に、パフォーマンスキャッシュドライバ５３７（ブロックレベル変更バックアップドライバも含むことが可能な）と共存するファイルレベル変更バックアップドライバ５３６の概念を示す。図５において、変更バックアップドライバ５３６は、フィルタリングを介して動作して、指定されたファイルセット、指定されたディレクトリセットなどに対応する変更だけを効率的にバックアップする。このため、すべての変更がバックアップされるわけではなく、変更バックアップセクション４４０（図４Ａ、不揮発性メモリ１１２Ａの、図５におけるメタデータ５４０Ａ領域およびデータ５４２Ｂ領域に対応する）は、ブロックレベル変更データバックアップの場合ほど急速に増大しない。
【００３０】
この例では、パフォーマンスレベルキャッシングは、パフォーマンスキャッシュドライバ５３７を介してブロックレベルで行われる。これは、縮小することが可能な、ドライバ５３７の不揮発性メモリ１１２Ｂのドライバ５３７独自の領域５４０Ａおよび５４０Ｂに対してとすることができる。１つの代替では、ファイルレベルでバックアップされる変更データも、パフォーマンスキャッシュに書き込まれる（対応するブロックの中のデータとして）ことに留意されたい。効率のため、変更バックアップドライバ５３６は、パフォーマンスキャッシュドライバ５３７と通信して、不揮発性メモリ１１２に同一のデータを２回、書き込むことを回避することができる。
【００３１】
不揮発性ストレージへの変更バックアップの様々な他の態様を用いて、全体的なユーザーエクスペリエンスを向上することができる。例えば、データ暗号化およびデータ復号が、バックアップドライバに透過的に、より高位のドライバレベルで起こることができる。セキュリティのため、復号鍵を、不揮発性ストレージとともにではなく、大容量バックアップデータとともに保持することができる。なぜなら、不揮発性ストレージがリムーバブルであり、紛失または盗まれた場合、ストレージ上のいずれのデータも、その暗号化されたデータに付随する鍵以外で暗号化されているためである。
【００３２】
また、ユーザーは、データセキュリティのレベルを判定することもできる。例えば、ユーザーは、ミラーリング技術または同様のＲＡＩＤ技術を使用して、複数の（安価な）不揮発性ストレージデバイスにわたって変更データを分散させることができる。また、複数の不揮発性ストレージデバイスをパフォーマンス上の理由で用いて、例えば、並行データアクセスを提供することができる。
【００３３】
デバイスを管理するソフトウェアが、ハードドライブバックアップを実行すること、またはバックアップ変更を別の媒体に転送することを示唆するまでに、バックアップ変更によって消費されることが可能な領域の量などの閾値を、設定することができる。より慎重なユーザー、または大きいサイズの変更を実行する傾向があるユーザーは、十分な事前警告を与える閾値警告レベルを設定することが可能である。
【００３４】
変更を、ユーザーごとにバックアップすることができる。例えば、あるユーザーは、変更されたファイルの所有権にかかわらず、別のユーザーの変更ではなく、そのユーザーの変更だけを不揮発性ストレージにバックアップさせることができる。現在のユーザーの変更を認識する（例えば、メタデータの一部として）フィルターを用いることができる。これによって、ユーザーは、前回のバックアップ以来のそのユーザーの変更だけを伴うハードディスク状態を再現することが可能である。代替として、不揮発性ストレージの中のメタデータを用いて、いずれのユーザーが、それらの変更の間で、より後の差別化のための変更を行ったかを保持することができる。これにより、誰か他の人が共有ファイルに（例えば、破損する）変更を行った場合に、ユーザーが、ユーザー自身の変更を復元することが可能となる。
【００３５】
不揮発性ストレージからのデータ復元の考察に目を向け、図６に、新たなハードドライブ６７０に復元することの例を示す。本例に妨げられることなく、前述のように、ユーザーのデータまたは共有データが、別のユーザーによって破損した場合などの、ハードドライブ障害が問題ではない場合、復元を、同一のハードドライブに（再フォーマットされて、またはハードドライブ上の空き領域に）対して行うことができると理解される。
【００３６】
復元するために、前回のハードドライブバックアップデータ６７２（例えば、以前のハードドライブ１２６の障害が生じた場合にもはや存在しない可能性がある、何らかのバックアップユーティリティ６７４または同種のものによって、ハードドライブ状態１で以前にバックアップされた）は、復元ユーティリティ６７６によって新たなハードドライブ６７０に書き込まれ、不揮発性メモリ１１２からの変更で新たなハードディスクドライブ６７０を更新して、前回の状態、状態２を再現するように適用される。前述のように、以上は、基本的に、正確な再現、機能的な再現、または指定されたデータ再現とすることができる。
【００３７】
また、図６に、存在する可能性がある１つまたは複数の増分バックアップデータセット６７８の概念を表す。より詳細には、例えば、不揮発性メモリがバックアップ変更で一杯になっている場合に、ユーザーは、不揮発性メモリ１１２の内容を、バックアップされた変更を含む増分バックアップデータセットに転送することができる。バックアップ状態１ａに対応する、このデータセット、またはデータセットのグループ６７８は、どこに格納されてもよいが、セキュリティ目的のため、障害または損失の可能性の理由から、ハードドライブ上には格納されない（データ破損から回復する目的で、ハードドライブ上に格納される可能性があるが）。例えば、不揮発性メモリ１１２をネットワークストレージに自動的に転送するネットワークフラッシュを、選択することができる。当該ネットワークストレージは、前回のハードドライブバックアップデータ６７２を、１つまたは複数の増分バックアップセット６７８に関連して保持することができる。光媒体フラッシュが、別の代替であり、異なるフラッシュデバイスを挿入することも、この新たなフラッシュデバイスが、前回のハードドライブバックアップデータ６７２に対して直接にではなく、前の増分バックアップデータ６７８に対して増分されるものと理解することも可能である。
【００３８】
順序が保たれる限り、任意の数の増分バックアップデータセット６７８を保持することができる。復元時に、バックアップされたハードドライブデータ（状態１）は、任意の増分バックアップデータセット６７８における変更とともに、不揮発性メモリ１１２上の変更を書き込むことを開始する前に、状態（本明細書で順序が保たれた状態とともに１ａと呼ばれる）に対応する。復元する１つの方法は、ハードドライブ内容を書き込み、次に、あらゆる増分バックアップデータセットを通して、順番に、変更が起きたのに応じて、データを上書きし、次に、不揮発性メモリ１１２の中の変更で終えることであることに留意されたい。復元する代替の方法は、各ブロックを、そのブロックに関して見つけることが可能な最新の変更から始めて、最後の変更を見つけるために必要に応じて時間を（新たな変更がもはや存在しない場合、状態１ハードドライブバックアップデータ６７２までずっと）遡り、１度、書き込むことである。各ブロックを１度、書き込む復元代替では、不揮発性メモリ１１２の中の変更が最初に復元されることに留意されたい。
【００３９】
さらに別の態様は、不揮発性ストレージデバイスが利用できない場合、例えば、ユーザーによって取り外された、または一杯である場合に、ハードドライブ自体の上に変更をキャッシュすることに言及する。その後、後に利用可能になると（例えば、再接続される、または別の媒体に転送されると）、それらのキャッシュされた変更を、不揮発性メモリに再び同期させることが可能である。このようにすることにより、完全な同期以前のハードドライブ障害またはハードドライブ損失のリスクを伴うが、それでも、利益をもたらす。
【００４０】
例として、ブロックレベルで、変更バックアップドライバまたは同様の構成要素は、同期される必要があることに関して、いずれのブロックが変更された（汚された（dirtied））かを、単にログ記録することが可能である。同様に、ファイルレベルで、変更バックアップドライバは、関係のある書き込みのメタデータを追跡することが可能である。不揮発性メモリが再び利用可能になると、同期は、自動的とすることが可能である。各ブロックもしくはブロックのサブセット、またはファイルの一部分もしくはいくつかの部分を別々に同期するトランザクション概念を使用することによって、完全な同期を単一のセッションにおいて完了することができない場合に、部分的同期が可能である。
【００４１】
ユーザーは、テキスト、グラフィックスなどを介することを含め、変更バックアップデータの状態について、様々な方法で通知を受けることができる。例えば、コンピューターによって表示されるアイコン上、または別の場所（例えば、不揮発性メモリデバイス上のＬＥＤ）の緑の標識により、関係のあるすべての変更がバックアップされており、データは安全であることを示すことができる。黄色の標識により、関係のあるすべての変更がバックアップされているが、不揮発性ストレージデバイスは、領域が少なくなっており、ハードドライブバックアップまたは増分転送が実行されるべきことを示すことができる。赤の標識により、例えば、領域の限界、デバイスが取り外されていることなどのため、すべての変更がバックアップされているわけではないことを示すことができる。ただし、前述のように、これらの変更を、同期のためにハードドライブ上に保持することができる。
【００４２】
書き込みデータを扱うことに関する例示的な説明に目を向けると、図７は、例えば、変更バックアップドライバにおいて書き込みデータを処理するように行うことができる可能なステップを示す流れ図である。ステップ７０２により、書き込みデータを受け取ることを表し、ステップ７０４により、フィルタリングの結果、変更バックアップストレージから排除された書き込みデータの任意のデータをパフォーマンスキャッシングすることを表す。
【００４３】
少なくとも一部の書き込みデータが、変更としてバックアップされる場合、ステップ７０６により、このデータのサイズを、不揮発性メモリ上の空き領域の量と比較する。この空き領域には、ステップ７０８および７１０を介して縮小される可能性がある、任意のパフォーマンスキャッシュ領域が含まれる。さらに、ステップ７０６には、不揮発性ストレージが取り外されている場合が含まれ、その場合、空き領域は０である。不十分な領域の場合、変更をバックアップすることができず、ステップ７２０を介して、ユーザーは、データが安全ではないという通知を受ける。特に示されていないものの、前述のように、バックアップされていないデータ変更をハードドライブ上にログ記録、またはそれ以外で保存して、領域が利用可能になった／不揮発性メモリデバイスが再接続された際に、同期を後で行うことができることが理解される。
【００４４】
パフォーマンスキャッシュ領域のために、不揮発性メモリの中で十分な領域が利用可能であるが、バックアップセクションの中で不十分である場合、ステップ７０８および７１０により、パフォーマンスキャッシュ領域を縮小することによってバックアップセクション領域を増大させる。次に、ステップ７１２により、適切なデータおよびメタデータを、このバックアップセクションに書き込む。データは、直接に上書きすることによって、または新たな領域に書き込み、古い領域を解放することによって、既に存在する対応するデータ（例えば、同一のブロック、または同一のファイルセクションの中の）を上書きすることが可能であることに留意されたい。さらに、書き込みエラーなどを、周知の方法で処理することが可能であることに留意されたい。
【００４５】
ステップ７１４により、この書き込みの後に続いて、空き領域の量が、ユーザーが設定できる閾値限度に近づいているかどうかを評価する。閾値限度に近づいている場合、ユーザーは、バックアップ領域が少なくなっている、つまり、データ損失の可能性を回避するために、ハードドライブバックアップ、または増分データセットへの転送が間もなく必要とされるという警告を受ける。
【００４６】
図８に、読み取り要求が受け取られるステップ８０２で始まる、可能な場合に不揮発性メモリから読み取ることによって、読み取り要求を効率的に扱うように行うことができる例示的なステップを表す。ステップ８０４により、要求されるデータがバックアップセクションの中に入っているかどうかを評価する。要求されるデータは、頻繁に使用されるデータである傾向があり、このため、多くの場合、存在することに留意されたい。代替として、パフォーマンスセクションを、要求されるデータがそのセクションの中に存在するかどうかについて、先に評価することが可能である。
【００４７】
ステップ８０４で、そのデータの少なくとも一部が変更バックアップセクションの中に存在する場合、そのデータを読み取りバッファに読み込むステップ８０６が実行され、存在しない場合、パフォーマンスキャッシュの中で、要求されるデータを探すステップ８１２が実行される。ステップ８０６で読み取られ、ステップ８０８によって表されるように、要求が完全に満たされた場合、適切な成功ステータスとともに、その読み取りバッファが、ステップ８２４で戻される。
【００４８】
そのデータが全く、または一部しか、変更バックアップセクションから入手可能でなかった場合、ステップ８１０により、元の要求を、欠落しているデータを求める１つまたは複数の読み取り要求に修正する。ステップ８１２で、そのデータの少なくとも一部が、パフォーマンスセクションの中に存在する場合、ステップ８１２は、読み取り（または複数回の読み取り）を実行するステップ８１４に分岐し、存在しない場合、ステップ８１２は、ハードディスクドライブから読み取り（または複数回の読み取り）を実行するステップ８２０に分岐する。
【００４９】
ステップ８１４が実行される場合、ステップ８１６により、元の読み取り要求が完全に満たされたかどうかを表す。完全に満たされた場合、適切な成功ステータスとともに、その読み取りバッファが、ステップ８２４で戻される。完全には満たされていない場合、ステップ８１８により、欠落しているデータを求めてハードディスクドライブにアクセスするように１回または複数回の読み取りを調整し、ステップ８２０により、ハードドライブから読み取り、この読み取り要求が、通常の読み取り動作であるように要求側エンティティに見えるように、ステップ８２２および８２４が実行される。
【００５０】
図８のステップは、例えば、可能な限り、不揮発性ストレージからのデータを使用して読み取りバッファを構築して、ハードディスクドライブは、要求を完了するのに必要とされる最小限のデータを獲得するのに必要なだけアクセスされるようにすることによって、読み取り要求を満たす１つのやり方にすぎないことに留意されたい。一方、読み取りが、不揮発性ストレージを介して完全に満たされることが可能であるかどうかを判定し、満たされない場合、通常どおり、全部の読み取りをハードドライブから実行するなど、他の代替を実施することもできる。
【００５１】
図９は、復元動作を表し、ステップ９０２および９０４により、ハードドライブをバックアップすること（例えば、バックアップユーティリティを介して完全バックアップに）を表し、ステップ９０４により、あらゆる増分バックアップ、つまり、前回の定期的バックアップ動作以来、不揮発性ストレージから転送されたバックアップを保持することを表している。
【００５２】
ステップ９０６により、遠い将来に起こる可能性がある復元動作を待つことを表す。このように、ステップ９０６は、通常、プロセス内の繰り返されるループではなく、完全に別個の復元動作プロセスが始まるのを待つことを表す。
【００５３】
ステップ９０８および９１０により、ネットワークバックアップロケーションにおいて保持されるなどの、保持されたデータのすべてに基づいて、何らかの受け取り側媒体（例えば、新たなハードドライブ）にハードディスクドライブの状態を再現することを表す。前述のように、ハードドライブ状態は、初期バックアップデータ（バックアップ状態１）、ならびに順番に適用される（バックアップ状態１ａをもたらす）他の増分バックアップデータから再現されることが可能である。
【００５４】
最新の状態を復元するために、ステップ９１０により、不揮発性ストレージのバックアップ変更データを使用することを表す。ステップ９１０を、独立に実行することが可能であり、または、代替として、例えば、ステップ９０８を実行する前に、最新の増分バックアップとなる不揮発性ストレージ内容を転送し、次に、ステップ９０８を実行することによって、ステップ９０８にマージすることができることに留意されたい。
【００５５】
本発明は、様々な変形および代替の構成が可能であるが、本発明の特定の例示的な実施形態が、図面に示され、上記で詳細に説明されてきた。しかし、本発明を、明細書で開示される特定の形態に限定する意図は全くなく、むしろ、本発明は、本発明の趣旨および範囲に含まれる、すべての変形、代替の構成、および同等物に及ぶことを理解されたい。
【図１】
2010514008.tif 000003
【図２】
2010514008.tif 000004
【図３】
2010514008.tif 000005
【図４Ａ】
2010514008.tif 000006
【図４Ｂ】
2010514008.tif 000007
【図４Ｃ】
2010514008.tif 000008
【図５】
2010514008.tif 000009
【図６】
2010514008.tif 000010
【図７】
2010514008.tif 000011
【図８】
2010514008.tif 000012
【図９】
2010514008.tif 000013
【国際調査報告】
2010514008.tif 000014
2010514008.tif 000015