(57)【要約】      （修正有）【課題】ファイルシステムを用いてファイルを永続ストレージに自動バックアップする改良型のシステムおよび方法を提供する。【解決手段】ストレージ集約装置が、ファイルのバックアップコピーを格納するための不揮発性メモリをまとめて使うために編成する。ファイルシステムフィルタドライバが、ファイルを格納するためのリクエストをアプリケーションから受け取り、ファイルのバックアップコピーを作成するかどうか、およびどのタイプのバックアップをファイルに適用するか判定するためにポリシーにアクセスする。世代ファイルハンドラが、１組の世代ファイルを特定のアプリケーションファイルのバックアップコピーとして作成し管理する。ユーザによって所望される可能性があるどのファイルコピーも回復するためのユーザによる検査のために、世代ファイルの組など１つまたは複数のバックアップコピーを取得するための回復ユーザインターフェースを提供する。【選択図】図２
2006244484.tif 000002
【特許請求の範囲】
【請求項１】
ファイルのバックアップコピーを作るコンピュータシステムであって、
ファイルが永続的に格納されることをリクエストする実行可能なソフトウェアコードと、
前記ファイルを永続的に格納するための前記リクエストを受け取る前記実行可能なソフトウェアコードに動作可能に結合され、前記ファイルのバックアップコピーを作成するかどうか判定するファイルシステムフィルタドライバを有するオペレーティングシステムと、
前記ファイルの前記バックアップコピーとして世代ファイルを作成する、前記ファイルシステムフィルタドライバに動作可能に結合された世代ファイルハンドラと、
前記ファイルの前記バックアップコピーを永続的に格納する、前記ファイルシステムフィルタドライバに動作可能に結合されたファイルシステムとを備えることを特徴とするシステム。
【請求項２】
不揮発性メモリを含む永続ストレージを、前記ファイルの前記バックアップコピーの格納に使われる前記コンピュータシステムに集約する、前記ファイルシステムに動作可能に結合されたストレージ集約装置をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項３】
前記ストレージ集約装置は、前記ファイルの前記バックアップコピーの格納に使用するために集約することができる、前記コンピュータシステム内の永続ストレージを識別する、動作可能に結合されたストレージ列挙装置を含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記オペレーティングシステムに動作可能に結合された組込みデバイスをさらに備え、前記組込みデバイスは、永続ストレージを含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記オペレーティングシステムに動作可能に結合された取外し可能デバイスをさらに備え、前記取外し可能デバイスは、永続ストレージを含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記ファイルの前記バックアップコピーを作成するかどうかの判定に使うことができる１つまたは複数のポリシーを提供する、前記オペレーティングシステムに動作可能に結合されたポリシーエンジンをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項７】
ファイルが永続的に格納されることをリクエストする、前記実行可能なソフトウェアコードは、前記ファイルの前記バックアップコピーを復元する回復ユーザインターフェースを備えることを特徴とする請求項１に記載のシステム。
【請求項８】
前記ファイルの前記バックアップコピーを復元する、前記オペレーティングシステムに動作可能に結合された回復ユーティリティをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項９】
請求項１に記載のシステムを備える、コンピュータ実行可能なコンポーネントを有することを特徴とするコンピュータ可読媒体。
【請求項１０】
コンピュータシステムにおいて、ファイルのバックアップコピーを作る方法であって、
ファイルシステムに送られた、ファイルを永続的に格納するためのリクエストを受け取るステップと、
前記ファイルをバックアップするかどうか判定し、バックアップする場合、前記ファイルの前記バックアップコピーとして世代ファイルを作成するステップと、
前記ファイルの前記バックアップコピーを永続的に格納するためのリクエストを前記ファイルシステムに送るステップと、
前記ファイルの前記バックアップコピーを永続的に格納するステップとを備えることを特徴とする方法。
【請求項１１】
前記ファイルをバックアップするかどうか判定するためのポリシーにアクセスするステップをさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記ファイルに適用するバックアップのタイプを判定するためのポリシーにアクセスするステップをさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１３】
前記ファイルの１つまたは複数のファイル属性を取得し、前記１つまたは複数のファイル属性に適用可能なバックアップのタイプを判定するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ファイルの前記バックアップコピーを永続的に格納するステップは、前記ファイルの前記バックアップコピーを格納する、前記コンピュータシステム内の不揮発性メモリを含むように集約されている、前記コンピュータシステムの１つまたは複数のコンピュータ可読媒体に、前記ファイルの前記バックアップコピーの少なくとも一部を永続的に格納するステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記１つまたは複数のコンピュータ可読媒体に永続的に格納されている、前記ファイルの前記バックアップコピーの前記少なくとも一部を含む目次をアップデートするステップをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ファイルを永続的に格納するためのリクエストを、前記ファイルシステムに送るステップをさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１７】
前記ファイルの前記バックアップコピーを格納する、前記コンピュータシステム内の不揮発性メモリを含むように集約されている、前記コンピュータシステムの１つまたは複数のコンピュータ可読媒体に前記ファイルの前記バックアップコピーの少なくとも一部を永続的に格納するステップは、前記ファイルの前記バックアップコピーの少なくとも一部を、前記コンピュータシステムに動作可能に結合されたリモートストレージに永続的に格納するステップを含むことを特徴とする請求項１４に記載の方法。
【請求項１８】
請求項１０に記載の方法を実施するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項１９】
ファイルのバックアップコピーを回復する方法であって、
ファイルのバックアップコピーとして永続的に格納されている世代ファイルを回復するための回復ユーザインターフェースを有するアプリケーションを実行するステップと、
前記ファイルのバックアップコピーとして作成された１つまたは複数の世代ファイルのリストを取得するためのリクエストを送るステップと、
前記ファイルのバックアップコピーとして作成された前記１つまたは複数の世代ファイルの前記リストを取得するステップと、
前記ファイルのバックアップコピーとして作成された前記１つまたは複数の世代ファイルの前記リストを、ユーザインターフェースに提示するステップと、
前記リストから、復元される前記バックアップコピーとして選択された世代ファイルの指示を受け取るステップと、
復元される前記バックアップコピーとして選択された前記世代ファイルを取得し、前記選択された世代ファイルを、アプリケーションによってアクセス可能な名前空間に永続的に格納することによって、選択された前記世代ファイルを復元するステップとを備えることを特徴とする方法。
【請求項２０】
永続的に格納されている前記世代ファイルを、前記ファイルの前記バックアップコピーとして回復するための前記回復ユーザインターフェースを有する前記アプリケーションを実行するステップは、バックアップコピーとして不揮発性メモリに永続的に格納された前記世代ファイルを有する取外し可能デバイスをインストールし、前記バックアップコピーが前記コンピュータシステムによって作成されたかどうか判定するステップを含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
ファイルのバックアップコピーを作るコンピュータシステムであって、
ファイルが永続的に格納されることをリクエストする実行可能なソフトウェアコードと、
前記ファイルを永続的に格納するための前記リクエストを受け取る前記実行可能なソフトウェアコードに動作可能に結合され、前記ファイルのバックアップコピーを作成するかどうか判定するファイルシステムフィルタドライバを有するオペレーティングシステムと、
前記ファイルの前記バックアップコピーを永続的に格納する、前記ファイルシステムフィルタドライバに動作可能に結合されたファイルシステムと、
不揮発性メモリを含むメモリを、前記ファイルの前記バックアップコピーの格納に使われる前記コンピュータシステムに集約する、前記ファイルシステムに動作可能に結合されたストレージ集約装置とを備えることを特徴とするシステム。
【請求項２２】
前記ファイルシステムフィルタドライバは、前記ファイルの前記バックアップコピーとして世代ファイルを作成する、動作可能に結合された世代ファイルハンドラを含むことを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記ストレージ集約装置は、前記ファイルの前記バックアップコピーの格納に使用するために集約することができる、前記コンピュータシステム内の永続ストレージを識別する、動作可能に結合されたストレージ列挙装置を含むことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記オペレーティングシステムに動作可能に結合された組込みデバイスをさらに備え、前記組込みデバイスは、永続ストレージを含むことを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記オペレーティングシステムに動作可能に結合された取外し可能デバイスをさらに備え、前記取外し可能デバイスは、永続ストレージを含むことを特徴とする請求項２１に記載のシステム。
【請求項２６】
前記ファイルの前記バックアップコピーを作成するかどうかの判定に使うことができる１つまたは複数のポリシーを提供する、前記オペレーティングシステムに動作可能に結合されたポリシーエンジンをさらに備えることを特徴とする請求項２１に記載のシステム。
【請求項２７】
ファイルが永続的に格納されることをリクエストする、前記実行可能なソフトウェアコードは、前記ファイルの前記バックアップコピーを復元する回復ユーザインターフェースを備えることを特徴とする請求項２１に記載のシステム。
【請求項２８】
前記ファイルの前記バックアップコピーを復元する、前記オペレーティングシステムに動作可能に結合された回復ユーティリティをさらに備えることを特徴とする請求項２１に記載のシステム。
【請求項２９】
請求項２１に記載のシステムを備える、コンピュータ実行可能なコンポーネントを有することを特徴とするコンピュータ可読媒体。
【請求項３０】
コンピュータシステムにおいて、ファイルのバックアップコピーを作る方法であって、
ファイルシステムに送られた、ファイルを永続的に格納するためのリクエストを受け取るステップと、
前記ファイルをバックアップするかどうか判定し、バックアップする場合、前記ファイルの前記バックアップコピーを作成するステップと、
前記ファイルの前記バックアップコピーを永続的に格納するためのリクエストを前記ファイルシステムに送るステップと、
前記ファイルの前記バックアップコピーを格納する、前記コンピュータシステム内の不揮発性メモリを含むように集約されている、前記コンピュータシステムの１つまたは複数のコンピュータ可読媒体に、前記ファイルの前記バックアップコピーの少なくとも一部を永続的に格納するステップとを備えることを特徴とする方法。
【請求項３１】
前記ファイルをバックアップするかどうか判定するためのポリシーにアクセスするステップをさらに備えることを特徴とする請求項３０に記載の方法。
【請求項３２】
前記ファイルに適用するバックアップのタイプを判定するためのポリシーにアクセスするステップをさらに備えることを特徴とする請求項３０に記載の方法。
【請求項３３】
前記ファイルの１つまたは複数のファイル属性を取得し、前記１つまたは複数のファイル属性に適用可能なバックアップのタイプを判定するステップをさらに備えることを特徴とする請求項３２に記載の方法。
【請求項３４】
前記ファイルの前記バックアップコピーを作成するステップは、前記ファイルの前記バックアップコピーとして世代ファイルを作成するステップを含むことを特徴とする請求項３０に記載の方法。
【請求項３５】
前記１つまたは複数のコンピュータ可読媒体に永続的に格納されている、前記ファイルの前記バックアップコピーの前記少なくとも一部を含む目次をアップデートするステップをさらに備えることを特徴とする請求項３０に記載の方法。
【請求項３６】
前記ファイルを永続的に格納するためのリクエストを、前記ファイルシステムに送るステップをさらに備えることを特徴とする請求項３０に記載の方法。
【請求項３７】
前記ファイルの前記バックアップコピーを格納する、前記コンピュータシステム内の不揮発性メモリを含むように集約されている、前記コンピュータシステムの１つまたは複数のコンピュータ可読媒体に前記ファイルの前記バックアップコピーの少なくとも一部を永続的に格納するステップは、前記ファイルの前記バックアップコピーの少なくとも一部を、前記コンピュータシステムに動作可能に結合されたリモートストレージに永続的に格納するステップを含むことを特徴とする請求項３０に記載の方法。
【請求項３８】
請求項３０に記載の方法を実施するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項３９】
ファイルのバックアップコピーを回復する方法であって、
前記コンピュータシステム内の不揮発性メモリを含むように集約されている、コンピュータシステムの１つまたは複数のコンピュータ可読媒体に永続的に格納されたファイルのバックアップコピーを回復するための回復ユーザインターフェースを有するアプリケーションを実行するステップと、
前記ファイルの１つまたは複数のバックアップコピーのリストを取得するためのリクエストを送るステップと、
前記ファイルの前記１つまたは複数のバックアップコピーの前記リストを取得するステップと、
前記ファイルの前記１つまたは複数のバックアップコピーの前記リストを、ユーザインターフェースにおいて提示するステップと、
前記リストから選択された、復元されるバックアップコピーの指示を受け取るステップと、
前記コンピュータシステム内の不揮発性メモリを含むように集約されている、前記コンピュータシステムの前記１つまたは複数のコンピュータ可読媒体から、前記選択されたバックアップコピーを取得し、前記選択されたバックアップコピーを、アプリケーションによってアクセス可能な名前空間に永続的に格納することによって、前記選択されたバックアップコピーを復元するステップとを含むことを特徴とする方法。
【請求項４０】
前記コンピュータシステム内の不揮発性メモリを含むように集約されている、コンピュータシステムの１つまたは複数のコンピュータ可読媒体に永続的に格納されている前記ファイルの前記バックアップコピーを回復するための前記回復ユーザインターフェースを有する前記アプリケーションを実行するステップは、不揮発性メモリに格納されたバックアップコピーを有する取外し可能デバイスをインストールし、前記バックアップコピーが前記コンピュータシステムによって作成されたかどうか判定するステップを含むことを特徴とする請求項３９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、コンピュータシステムに関し、より詳細には、ファイルシステムを用いて、ファイルを永続ストレージに自動バックアップする改良型のシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータユーザはしばしば、自分の業務の遂行にとって不可欠であり得る重要な情報を、自分のコンピュータに格納する。残念ながら、多くのコンピュータユーザは、ハードウェアの故障、ソフトウェアの故障、およびアプリケーションの操作における単純なエラーを含む多くの異なる理由から、重要な情報の損失を被る。たとえば、コンピュータユーザが、ドキュメント中でいくつかの変更を行い、変更したドキュメントを新しいファイル名で保存しようとする場合がある。しかし、コンピュータユーザは、ドキュメントを既存のファイル名で保存するという、よくある過ちを起こし、そのファイルを、別の名前をもつドキュメントとして保存し損ない、その結果、元のファイルが上書きされる場合がある。しかし、自分のファイルのバックアップを作成することによって、コンピュータユーザは、変更したドキュメントを保存する際に起こり得るこのような名前空間の衝突から回復することができる。その場合でさえも、平らな名前空間（ｆｌａｔ  ｎａｍｅｓｐａｃｅ）を使う可能性がある既存のアプリケーションは、増加の一途をたどるファイルコピーがバックアップされる際、その保存に失敗する場合がある。
【０００３】
コンピュータユーザは、自分のデータのバックアップを作成することによって、重要な情報の損失を回避することができるが、コンピュータユーザは、自分のコンピュータにおけるデータのバックアップに関わる難題によって、落胆する場合がある。１つの難題は、データのバックアップを開始するための負担が通常、コンピュータユーザに課されることである。バックアップを開始するために、コンピュータユーザは、データをどこにバックアップするか指定するよう、要求される場合がある。たとえば、コンピュータユーザは、元のデータが格納されるのと同じ媒体にデータをバックアップすることを選ぶことができるが、そうすると、その媒体が損傷を受けた場合は危険が生じる。あるいはコンピュータユーザは、その媒体に意識的に取り付け、または接続することがコンピュータユーザにとって必要となり得る別の場所を選ぶこともできる。コンピュータに取り付け、または接続することができる媒体にバックアップすることができる場合、媒体が取り付けられまたは接続されなくなると、バックアップが後で利用可能にならない可能性がある。別の難題は、コンピュータユーザが、バックアップの多数のバージョンを管理することも、破損または不正データを有する、以前バックアップされたデータを上書きし、したがって必要とされ得る有効なバックアップを無意識に破壊してしまうという危険を冒すことも要求される可能性があることである。さらに、コンピュータユーザが、バックアップ媒体中の空間を使い果たした場合、ファイルを消去することによって空間を作成することも、十分な空間を有する別のバックアップ媒体を選ぶこともできるので、プロセスがさらに複雑になる。バックアップが使われる必要がある場合、コンピュータユーザには、バックアップ媒体の場所を突き止め、またはアクセスすることは難しいであろう。バックアップが、たとえばローカル媒体にあり、ローカル媒体が新しいコンピュータに移動される必要がある場合は特に難しいであろう。
【０００４】
こうした難題が存在するので、コンピュータユーザは、自分のデータをバックアップしなければならない度に、失敗する可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
コンピュータシステムが、ユーザによる介入を要求することなく、ファイルを自動バックアップする方法が必要である。このようなシステムおよび方法は、ユーザによって所望される可能性があるどのファイルコピーもコンピュータユーザが回復することができるように、各保存ファイルのバックアップコピーを提供するべきである。
【課題を解決するための手段】
【０００６】
簡潔には、本発明は、ファイルシステムを用いて、ファイルを永続ストレージに自動バックアップする改良型のシステムおよび方法を提供する。この目的のために、１つまたは複数のアプリケーションが、ポリシーエンジンと、アクセス可能な永続ストレージを有し得る１つまたは複数のデバイスに動作可能に結合されたファイルシステムを含み得るオペレーティングシステムとに動作可能に結合することができる。一実施形態では、オペレーティングシステムは、永続ストレージを有する１つまたは複数のデバイスに動作可能に結合されたボリュームマネージャ、ファイルシステムフィルタドライバ、ファイルシステム、ストレージ集約装置（ｓｔｏｒａｇｅ  ａｇｇｒｅｇａｔｏｒ）、記憶クラスドライバ、および１つまたは複数のミニポートドライバなど、動作可能に結合されたコンポーネントを含み得る。
【０００７】
様々な実施形態において、ファイルシステムフィルタドライバは、実行可能なソフトウェアコードから、ファイルを永続的に格納するためのリクエストを受け取ることができ、ファイルのバックアップコピーを作成するかどうか、どのタイプのバックアップをファイルに適用するか、およびどこにバックアップコピーを格納するか判定するために、ポリシーエンジンによって与えられるポリシーにアクセスすることができる。ファイルシステムフィルタドライバは、たとえば、ファイルのバックアップコピーを、埋め込み型不揮発性メモリ、取外し可能な不揮発性メモリ、ハードドライブなどのコンピュータ記憶媒体、あるいは接続されたネットワーク上のリモートストレージを含む不揮発性メモリおよび／または他のコンピュータ記憶媒体の組合せに格納するよう、ファイルシステムに命令することができる。さらに、ファイルシステムフィルタドライバは、１組の世代ファイルを、特定のアプリケーションファイルのバックアップコピーとして作成し管理するのに使うことができる世代ファイルハンドラを含み得る。
【０００８】
ストレージ集約装置は、ファイルのバックアップコピーの格納に全体として使うことができる、コンピュータシステム内で利用可能な永続ストレージを列挙し編成するファイルシステムに動作可能に結合することができる。ストレージ集約装置は、アプリケーションファイルのバックアップコピーを格納するファイルシステムによって使うことができる、利用可能な永続ストレージを識別することができるストレージ列挙装置を含み得る。一実施形態では、コンピュータシステム内で利用可能であり得る永続ストレージは、全体として、ミラーリング、ストライピングを含む任意の数の記憶技術を展開してもよく、ＲＡＩＤまたはＳＡＮを使って構成してもよい、バックアップファイルを１つまたは複数の物理デバイスに格納するファイルシステムのボリュームとして使うことができる。
【０００９】
ファイルシステムによってアプリケーションファイルのバックアップコピーを作成し永続的に格納することができるようになると、アプリケーションファイルの損失または汚染の際、アプリケーションファイルの１つまたは複数のバックアップコピーを回復するユーザインターフェースを提供することが可能になる。ある実施形態では、バックアップされたファイルの回復のために、回復ユーティリティなどの包括的ツールを提供することができる。別の実施形態では、アプリケーションに動作可能に結合された回復ユーザインターフェースを、ユーザによって所望される可能性があるどのファイルコピーも回復するための、ユーザによる検査用に、世代ファイルの組など、１つまたは複数のバックアップコピーを取得するように提供することができる。
【００１０】
有利には、コンピュータシステムの様々なコンポーネントに追加することができるアクセス可能な永続ストレージを、全体として、ユーザによる介入なくファイルシステムによって自動的に作成されたファイルのバックアップコピーの格納に使うことができる。さらに、１組の世代ファイルは、ユーザによる検査用のバックアップコピーとして、ユーザによって所望される可能性があるどのファイルコピーも回復するために格納することができる。以下の詳細な説明を図面と併せ読むことにより、他の利点が明らかになるであろう。
【発明を実施するための最良の形態】
【００１１】
例示的な動作環境
図１は、本発明を実施することができる、適切なコンピューティングシステム環境の例１００を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に対するどのような限定を示唆することも意図していない。コンピューティング環境１００は、例示的な動作環境１００に示すどのコンポーネントまたはその組合せに関するどのような依存も要件も有していると解釈するべきでない。
【００１２】
本発明は、他の数多くの汎用または専用のコンピューティングシステム環境または構成と動作する。本発明とともに使用するのに適切であり得る他の公知のコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ型デバイス、タブレットデバイス、ヘッドレスサーバ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれをも含む分散型コンピューティング環境などを含むが、それに限定されない。
【００１３】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において説明することができる。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散型コンピューティング環境でも実施することができる。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよび／またはリモートコンピュータ記憶媒体に置くことができる。
【００１４】
図１を参照すると、本発明を実施する例示的なシステムは、汎用コンピューティングデバイスを、コンピュータ１１０の形で含む。コンピュータ１１０のコンポーネントは、処理ユニット１２０と、システムメモリ１３０と、システムメモリなど様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含み得るが、それに限定されない。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなど、いくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含む。
【００１５】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができるとともに揮発性媒体および不揮発性媒体、取外し可能媒体および固定式媒体両方を含む、市販されているどの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどの方法でも技術でも実現される揮発性媒体および不揮発性媒体、取外し可能媒体および固定式媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、所望の情報を格納するのに使うことができるとともにコンピュータ１１０によってアクセスすることができる他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、被変調データ信号、たとえば搬送波や他の移送機構として具体化し、どの情報配信媒体も含む。「被変調データ信号」という用語は、信号中の情報を符号化するように設定されまたは変更される信号特性の１つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含めるべきである。
【００１６】
システムメモリ１３０は、コンピュータ記憶媒体を、ＲＯＭ（読出し専用メモリ）１３１およびＲＡＭ（ランダムアクセスメモリ）１３２など、揮発性および／または不揮発性メモリの形で含む。ＢＩＯＳ（基本入出力システム）１３３は、たとえば起動中にコンピュータ１１０内部の要素間での情報の転送を助ける基本ルーチンを含み、通常はＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理ユニット１２０に対してただちにアクセス可能な、かつ／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。限定ではなく例として、図１では、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１７】
コンピュータ１１０は、他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体も含み得る。単なる例として、図１では、固定式不揮発性磁気媒体に対して読み書きを行うハードディスクドライブ１４１、取外し可能な不揮発性磁気ディスク１５２に対して読み書きを行う磁気ディスクドライブ１５１、およびＣＤ  ＲＯＭや他の光学媒体など取外し可能な不揮発性光ディスク１５６に対して読み書きを行う光ディスクドライブ１５５を示す。例示的な動作環境で使うことができる他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体状態ＲＡＭ、固体状態ＲＯＭなどを含むが、それに限定されない。ハードディスクドライブ１４１は通常、インターフェース１４０などの固定式メモリインターフェースによって、システムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取外し可能メモリインターフェースによって、システムバス１２１に接続される。
【００１８】
上述し、かつ図１に示すディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０向けに他のデータの格納を可能にする。図１では、たとえば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示してある。こうしたコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくとも異なるものであることを示すために、ここでは異なる番号を与えてある。ユーザは、タブレットまたは電子デジタイザ１６４、マイクロホン１６３、キーボード１６２、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コマンドおよび情報をコンピュータ１１０に入力することができる。図１に示していない他の入力デバイスは、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナ、あるいは生体センサ、環境センサ、位置センサ、または他のタイプのセンサを収容するデバイスを含む他のデバイスを含み得る。こうしたおよび他の入力デバイスはしばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、ＵＳＢ（ユニバーサルシリアルバス）など、他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１または他のタイプの表示デバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタ１９１は、タッチスクリーンインターフェース１９２を介してシステムバス１２１に接続されたタッチスクリーンパネルなどと統合することもできる。モニタおよび／またはタッチスクリーンパネルは、タブレットタイプのパーソナルコンピュータでのように、コンピューティングデバイス１１０が組み込まれているハウジングに物理的に結合できることに留意されたい。さらに、コンピューティングデバイス１１０などのコンピュータは、出力周辺インターフェース１９３などを介して接続することができるスピーカ１９４およびプリンタ１９５など、他の周辺出力デバイスも含み得る。
【００１９】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク接続された環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ１１０に関連して上述した要素の多くまたはすべてを含むが、図１にはメモリ記憶デバイス１８１のみを示してある。図１に示す論理接続は、ＬＡＮ（ローカルエリアネットワーク）１７１およびＷＡＮ（ワイドエリアネットワーク）１７３を含むが、他のネットワークも含み得る。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。ＬＡＮネットワーク環境において使われる場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境において使われる場合、コンピュータ１１０は通常、モデム１７２または、たとえばインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク接続された環境では、コンピュータ１１０に関連して図示したプログラムモジュールまたはその一部は、リモートメモリ記憶デバイスに格納することができる。限定ではなく例として、図１では、リモートアプリケーションプログラム１８５を、メモリデバイス１８１に常駐するものとして示す。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使うことができることが理解されよう。
【００２０】
ファイルを永続ストレージに自動バックアップするためのファイルシステムの利用
本発明は概して、ファイルシステムを用いて、ファイルを永続ストレージに自動バックアップするシステムおよび方法を対象とする。本システムおよび方法は、有利には、ユーザによる介入を要求することなく、ファイルのバックアップコピーを作ることができる。そうするために、本発明は、アプリケーションから、ファイル保存リクエストを受け取るためのファイルシステムフィルタドライバを提供することができ、ファイルのバックアップコピーを作成するかどうか、どのタイプのバックアップをファイルに適用するか、およびバックアップコピーをどこに格納するか判定するためのポリシーにアクセスすることができる。ファイルシステムフィルタドライバは、たとえば、ファイルのバックアップコピーを、埋め込み型不揮発性メモリ、取外し可能な不揮発性メモリ、ハードドライブなどのコンピュータ記憶媒体、あるいは接続されたネットワーク上のリモートストレージを含む不揮発性メモリおよび／または他のコンピュータ記憶媒体組合せに格納するよう、ファイルシステムに命令することができる。
【００２１】
さらに、ファイルシステムフィルタドライバは、１組の世代ファイルを特定のアプリケーションファイルのバックアップコピーとして作成し管理するのに使うことができる世代ファイルハンドラを含み得る。１組の世代ファイルを作成することによって、ユーザによって所望される可能性があるどのファイルコピーもコンピュータユーザが回復できるようにアプリケーションファイルを保存することが可能になると、バックアップコピーを作ることが可能になる。コンピュータシステムの様々なコンポーネントに追加することができるアクセス可能な永続ストレージは、ファイルのバックアップコピーの自動格納において使用するために集約できることが分かるであろう。本明細書に記載する様々なブロック図、フローチャート、およびシナリオは単なる例であり、本発明が適用される他の多くのシナリオがあることが理解されよう。
【００２２】
図２に移ると、ファイルシステムを用いて作業用データを保存するためにファイルを永続ストレージに自動バックアップする、一実施形態におけるシステムコンポーネントの例示的なアーキテクチャ全体を表すブロック図を示してある。図に示すブロック内部に実装される機能は、別個のコンポーネントとして実装することができ、あるいはブロックのうちいくつかまたはすべてのものの機能は、単一コンポーネント内部に実装することができることが、当業者には理解されよう。一例として、ファイルシステムフィルタドライバ２１４の機能は、ファイルシステム２１８内部に含めることができる。あるいは、世代ファイルハンドラ２１６は、ファイルシステムフィルタドライバ２１４とは別個のコンポーネント内に実装することができる。
【００２３】
図２に示す１つまたは複数のアプリケーションプログラム２０４は、ポリシーエンジン２０８およびオペレーティングシステム２１０に動作可能に結合することができる。各アプリケーション２０４は、コンピュータシステムのユーザが永続させることを望み得るデータを用いた任意の数の操作を実施する実行可能なソフトウェアコードでよい。たとえば、アプリケーションは、文書処理操作、表計算操作、描画操作、またはデータを用いた他の操作を実施することができる。ポリシーエンジン２０８は、１つまたは複数のアプリケーション２０４、回復ユーティリティ２０２、およびオペレーティングシステム２１０に動作可能に結合することができる。ポリシーエンジン２０８は、カーネルコンポーネント、アプリケーションコンポーネント、リンクされたライブラリのコンポーネント、オブジェクトなどを含む実行可能などのソフトウェアコードでもよい。ポリシーコンポーネント２０８は、データを永続ストレージに保存するファイルシステムを使うことによって、どのデータを自動バックアップすることができるか判定するのに使うことができる１つまたは複数のポリシーを含み得る。一実施形態では、ポリシーコンポーネント２０８は、データがどこにバックアップされるべきか判定するのに使うことができる１つまたは複数のポリシーを含み得る。たとえば、ポリシーが、データを埋め込み型不揮発性メモリ、取外し可能な不揮発性メモリ、ハードドライブなどのコンピュータ記憶媒体、あるいは不揮発性メモリおよび／または他のコンピュータ記憶媒体の組合せに格納するのにファイルシステムを使うことによって、データを自動バックアップする命令を与えることができる。
【００２４】
オペレーティングシステム２１０は概して、ファイルシステムおよびアクセス可能な永続ストレージを有し得る１つまたは複数のデバイスを含み得る。より具体的には、一実施形態におけるオペレーティングシステム２１０は、ボリュームマネージャ２１２、ファイルシステムフィルタドライバ２１４、ファイルシステム２１８、ストレージ集約装置２２０、記憶クラスドライバ２２４など、動作可能に結合されたコンポーネントと、ミニポートドライバ２２６、２２８など、１つまたは複数のミニポートドライバと、組込みデバイス２３０および取外し可能デバイス２３２など、１つまたは複数のデバイスとを含み得る。ボリュームマネージャ２１２は、記憶デバイスの区画上の、特定のファイルシステム向けにフォーマットされた論理ドライブ用のボリュームなど、単純でよい、あるいは不揮発性メモリを含み得る多数の記憶媒体に及んでもストライピングしてもよいボリュームを作成し管理する機能を提供することができる。
【００２５】
ファイルシステムフィルタドライバ２１４は、アプリケーションから、ファイルを保存するためのリクエストを受け取る機能を提供することができ、ファイルシステムに、ファイルのバックアップコピーを保存するよう命令することができる。ある実施形態において、ファイルシステムフィルタドライバ２１４は、たとえばポリシーエンジン２０８によって与えられるポリシーにアクセスすることができ、このポリシーは、ファイルのバックアップコピーが作成されるべきかどうか、およびバックアップコピーが作成された場合、どこに格納されるべきか指定することができる。様々な実施形態において、ファイルシステムフィルタドライバは、埋め込み型不揮発性メモリ、取外し可能な不揮発性メモリ、ハードドライブなどのコンピュータ記憶媒体、あるいは不揮発性メモリおよび／または他のコンピュータ記憶媒体の組合せにファイルのバックアップコピーを格納するよう、ファイルシステムに命令することができる。ファイルシステムフィルタドライバ２１４は、特定のアプリケーションファイルのバックアップコピーとして１組の世代ファイルを作成し管理することができる世代ファイルハンドラを含み得る。組の中の各世代ファイルは、ファイルのコピーを、ファイル名の一部として一意に識別することができる属性を含み得る。ある実施形態において、ファイルシステムフィルタドライバ２１４は、アプリケーションファイルのバックアップコピーとして世代ファイルを作成し、ファイルシステムに、世代ファイルをどこに格納するか命令することができる。
【００２６】
ファイルシステム２１８は、ファイルをボリュームの一部として格納するためのリクエストを受け取ることができるどのタイプのファイルシステムでもよい。ある実施形態において、ファイルシステム２１８は、アプリケーションファイルおよびアプリケーションファイルのバックアップコピー両方を格納するためのリクエストを受け取ることができる。バックアップコピーを格納するためのリクエストは、バックアップコピーをどのようにして格納するか指定することができる。たとえば、ミラーリング、ストライピングを用いる物理ストレージを有してもよく、ＲＡＩＤまたはＳＡＮを使って構成してもよいボリュームにバックアップコピーを格納するよう、ファイルシステム２１８にリクエストすることができる。
【００２７】
ストレージ集約装置２２０は、コンピュータシステム内で利用可能な永続ストレージを列挙し編成する機能を提供することができる。ストレージ集約装置２２０は、アプリケーションファイルのバックアップコピーを保存するファイルシステムによって使うことができる、利用可能な永続ストレージを識別しリストすることができるストレージ列挙装置を含み得る。一実施形態では、コンピュータシステム内で利用可能であり得る永続ストレージは、ミラーリング、ストライピングを含む任意の数の記憶技術を展開してもよく、ＲＡＩＤまたはＳＡＮを使って構成してもよい１つまたは複数の物理デバイスにファイルを格納するのに使うことができるボリュームを形成するように集約することができる。ストレージ集約装置２２０は、ブート時に、または追加永続ストレージをコンピュータシステムに対してアクセス可能にすることができるときはいつでも、永続ストレージまたは永続ストレージの複数の部分を集約することができる。
【００２８】
物理デバイスと通信するために、記憶クラスドライバ２２４が、ファイルまたはファイルの一部をミニポートドライバに送り、ファイルまたはファイルの一部をミニポートドライバから受け取る機能を含み得る。ミニポートドライバは、不揮発性メモリ２３４を有する組込みデバイス２３０などの組込みデバイスと通信するように構成されたミニポートドライバ２２６などのデバイスと通信するための機能を提供することができる。アプリケーションファイルのバックアップコピーを保存するファイルシステムによって使うことができる永続ストレージを含み得る任意の数の異なるタイプの組込みデバイスが存在し得る。たとえば、不揮発性メモリは、マザーボードまたはサウスブリッジ、組込みハードドライブまたは組込みハードドライブ用ディスクコントローラにプラグインすることもでき、他の組込みコンポーネントおよびコンピュータシステム内のコントローラに動作可能に結合することもできる。本明細書で使用する組込みデバイスは、制限なく、マザーボード、コントローラ、または周辺デバイスを含む、コンピュータシステムのどのデバイスもコンポーネントも意味する。組込みデバイスに加え、ミニポートドライバ２２８などのミニポートドライバを、不揮発性メモリ２３６を有する取外し可能デバイス２３２などの取外し可能デバイスと通信するように構成することができる。アプリケーションファイルのバックアップコピーを保存するファイルシステムによって使うことができる永続ストレージを含み得る任意の数の異なるタイプの取外し可能デバイスも存在し得る。たとえば、ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ（ＵＦＤ）、セキュアデジタル、ＣｏｍｐａｃｔＦｌａｓｈ、ＭｅｍｏｒｙＳｔｉｃｋなどのデジタル媒体、および他の取外し可能媒体が、アプリケーションファイルのバックアップコピーまたはアプリケーションファイルの一部を格納するのに使うことができる永続ストレージを提供することができる。組込みおよび取外し可能デバイスは、制限なく、ファイルシステムによって、アプリケーションファイルのバックアップコピーを自動的に保存するのに使うことができる統合ストレージを提供するように集約することができる永続ストレージの異種キャッシュを提供することができる例を含み得る。
【００２９】
ファイルシステムによってアプリケーションファイルのバックアップコピーを作成し保存することができると、システムによって、たとえば、壊滅的な故障を経験した可能性がある回転媒体に格納されていた可能性があるアプリケーションファイルが損失または汚染された際、そのアプリケーションファイルの１つまたは複数のバックアップコピーを回復するユーザインターフェースを提供することができる。回復ユーティリティ２０２などの包括的ツールを、ある実施形態において、バックアップされたファイルの回復用に提供することができる。あるいは、アプリケーション２０４に動作可能に結合された回復ユーザインターフェース２０６など、ある特定のアプリケーション用のツールを、様々な実施形態において提供することができる。回復ユーザインターフェース２０６は、ユーザに提示される、ファイルを開く共通ダイアログの一部でよい。このような共通ダイアログは、バックアップアプリケーションファイルを回復するためのアクションで拡張することができる。たとえば、アプリケーションファイル向けにシステムクエリを作ることができ、回復ユーザインターフェースは、ファイルの名前空間を使って、世代ファイルの組など、１つまたは複数のバックアップコピーを、ユーザによって所望される可能性があるどのファイルコピーも回復するための、ユーザによる検査用に取得することができる。他の実施形態では、回復ユーティリティは、インストールされているデバイスが、別のマシンによって格納されるバックアップファイルを含み得ることを認識することができるＵＦＤなど、インストールされている取外し可能メモリデバイスのディレクトリ読込みの一部として実行することができる。回復ユーティリティは次いで、利用可能などのファイルコピーも回復するためのバックアップコピーを、ユーザに提示することができる。
【００３０】
図２に示すシステムコンポーネントの例示的なアーキテクチャは、本発明を実施する例示的な一実施形態に過ぎず、他のコンピューティングシステム構成も、本発明を実装するのに使うことができることが当業者には理解されよう。たとえば、コンピューティングシステムは、ストレージ集約装置を含むように構成することはできないが、ファイルシステムは、アプリケーションファイルを保存し、または閉じるためのリクエストをアプリケーションから受け取ることができるといつでも、取外し可能デバイスなどの永続ストレージを有する１つまたは複数のデバイス上に、アプリケーションファイルのバックアップコピーを作成し格納するように構成することができる。別の例として、取外し可能媒体は、取外し可能媒体に格納されているバックアップされたファイルにアクセスし、修正し、または削除することができないうちに安全な資格証明を交換するファームウェアを含み得る。一実施形態では、取外し可能媒体には、永続ストレージのパブリックおよびプライベートエリアが存在してよく、プライベートエリアは、資格証明の交換が成功した後、アクセス可能にすることができる。さらに別の例では、コンピュータシステムの永続ストレージに格納されたバックアップファイルは、機会を見て、図１に示すリモートコンピュータ１８０やメモリデバイス１８１など、ワイヤレスまたはワイヤードネットワークによって接続することができる他のデバイスまたはコンピュータシステムにさらに保存することができる。このようにして、ネットワークへの不揮発キャッシュの使用を含むトランザクションシステムを実装することができる。一実施形態では、バックアップファイルの場所も、バックアップコピーのファイルシステム情報に含めることができ、そうすることによって、ファイルが、アプリケーションファイルの回復のためにこのようなリモート記憶デバイスまたはシステムと同期すると、ファイルの場所を突き止めることができる。
【００３１】
図３は、ファイルシステムを用いて作業用データを保存するためにファイルを永続ストレージに自動バックアップする、一実施形態において行われる例示的なステップ全体を示すフローチャートを提示する。ある実装形態では、こうしたステップを異なる順序で実施することを選んでもよく、同じ効果を達成し本発明の範囲から逸脱しない限り、効率または柔軟性のためにこうしたステップの一部のみを実施することを選んでもよいことが当業者には理解されよう。ステップ３０２で、実行可能コードによって、ファイルを保存するためのリクエストを作ることができる。一実施形態では、リクエストは、アプリケーション２０４などのアプリケーションによって、アプリケーションファイルを保存するために作ることができる。ファイルシステムフィルタドライバが、ステップ３０４で、アプリケーションファイルを保存するためのリクエストを受け取ることができる。ある実施形態において、ファイルシステムフィルタドライバ２１４などのファイルシステムフィルタドライバが、アプリケーションファイルに対する保存、クローズ、または書込みリクエストなど、ファイルシステムサービスに関するリクエストを監視することができる。
【００３２】
ファイルシステムフィルタドライバが次いで、ステップ３０６で、ポリシーにアクセスして、ファイルをバックアップするかどうか判定することができる。一実施形態では、どのデータを自動バックアップすることができるか判定するためのポリシーを使うことができる。たとえば、一部のアプリケーションからのファイルについては、バックアップすることができない。ポリシーは、たとえば、バックアップが文書処理ファイル用には作られるべきであるが、ｅメールアプリケーション用には作られるべきではないと指定することができる。ポリシーはしたがって、ファイルタイプ、ファイル名、ディレクトリ名、ディレクトリの場所などを含む、ファイルの属性またはメタデータに基づいて、バックアップするファイルを選ぶことができる。バックアップするファイルを選ぶ際に使用するために、ファイルのどの属性を指定してもよい。ユーザが定義したメタデータを含むどのメタデータを使ってもよい。ポリシーは、どれだけの記憶空間を使うことができるか、どれだけの記憶空間を解放しておくべきか、バックアップすることができるファイルの最大数を指定することもでき、利用可能な記憶空間へのバックアップコピーの格納のために、どのファイルを他のファイルより優先してよいか指定することができる。たとえば、ポリシーは、最も近い時間にアクセスされたファイルのバックアップコピーを、最も長い間アクセスされていないファイルのバックアップコピーよりも、利用可能な記憶空間に関して優先してよいと指定することができる。別の例として、ポリシーは、現在開いているファイルの最も近い時間のバックアップコピーが、ＵＦＤデバイスなどの永続ストレージを有する取外し可能デバイスに格納されると指定することができる。
【００３３】
ステップ３０８で、ファイルのバックアップが作られるべきかどうか、ポリシーから判定することができる。作られるべきでない場合、処理を終えることができ、ファイルに対してバックアップを作ることはできない。ステップ３０８で、ファイルのバックアップが作られるべきであると判定することができた場合、ファイルシステムフィルタドライバは、ステップ３１０でポリシーにアクセスして、ファイルに適用するためのバックアップのタイプを判定する。一実施形態では、ファイルのバックアップコピーとして、世代ファイルを作成することができる。様々な実施形態において、ファイルシステムフィルタドライバは、ファイルシステムに、ファイルのバックアップコピーをどこに格納するか、たとえば、埋め込み型不揮発性メモリ、取外し可能な不揮発性メモリ、ハードドライブなどのコンピュータ記憶媒体、あるいは不揮発性メモリおよび／または他のコンピュータ記憶媒体の組合せに格納するか命令することができる。次いで、ステップ３１２で、ファイルをバックアップすることができる。そしてステップ３１４で、バックアップされたファイル用の目次をアップデートすることができる。
【００３４】
図４は、ファイルを永続ストレージに自動バックアップするためのファイルシステムを用いて、ファイルに適用するためのバックアップのタイプを判定する、一実施形態において行われる例示的なステップ全体を示すフローチャートを提示する。ステップ４０２で、ファイルに関連づけられた属性を入手することができる。このような属性は、ファイルタイプ、ファイル名、ディレクトリ名、ディレクトリの場所などを含み得る。ファイルのどの属性も、ファイルに適用するバックアップのタイプの判定に使用するのに指定することができる。ステップ４０４で、ファイルの属性に対する１つまたは複数のポリシーを入手することができる。ファイルに適用されるバックアップのタイプは次いで、ステップ４０６で判定することができる。たとえば、ポリシーは、バックアップコピーが、ＲＡＩＤを使ってミラーリングされ、ストライピングされ、または格納されるべきであると指定することができる。別の例として、ポリシーは、ユーザインターフェースを介してユーザにバックアップファイルが可視的に表示されないように、バックアップファイルが隠しボリュームに格納されるべきであると指定することができる。
【００３５】
一実施形態では、ポリシーは、世代ファイルがバックアップコピーとして作成されるべきであると指定することができる。１組の世代ファイル中の各世代ファイルは、ファイルのコピーをファイル名の一部として一意に識別することができる属性を含み得る。たとえば、ファイル名に、ボリューム、日付、作成時間、巡回冗長性コード（ＣＲＣ）またはファイルのそのコピー用の一意の署名を作成するように働く他の属性など、１つまたは複数の属性を含む添字を付加することができる。世代ファイルの命名は、アプリケーションにとって一意でよい属性、またはユーザの必要とするものを追加するために拡張可能でもよい。ある実施形態において、世代データセットに対するポリシーは、作成され永続的に格納される１つまたは複数の世代ファイルを指定することができる。
【００３６】
ステップ４０８で、世代ファイルがアプリケーションファイルのバックアップコピーとして生成されるべきかどうか判定することができる。一実施形態では、世代ファイルがバックアップコピーとして作られるべきであるとポリシーが指定することができる。世代ファイルが作られるべきでないと判定された場合、ステップ４１０で、アプリケーションファイルのコピーは、ファイルのバックアップコピーとして作ることができる。ファイルのバックアップとして世代ファイルが作られるべきであると判定することができた場合、ステップ４１２で世代ファイルを作ることができる。ファイルのコピーまたは世代ファイルをバックアップコピーとして作ることができた場合、処理を終えることができる。
【００３７】
ファイルシステムによってアプリケーションファイルのバックアップコピーを作成し保存することができると、永続的に格納されていた可能性があるアプリケーションファイルが損失または汚染された場合、アプリケーションファイルの１つまたは複数のバックアップコピーを回復するユーザインターフェースを提供することができる。ある実施形態において、バックアップされたファイルの回復のために、回復ユーティリティ２０２などの包括的ツールを提供することができる。あるいは、アプリケーション２０４に動作可能に結合された回復ユーザインターフェース２０６など、ある特定のアプリケーション向けのツールを、様々な実施形態で提供することもできる。様々な実施形態において、バックアップコピーを有し得るディレクトリは、誤って上書きされないように保護することができる。たとえば、バックアップディレクトリへのアクセスは、回復ユーティリティまたはポリシーエンジンに制限することができる。
【００３８】
図５は、ファイルを永続ストレージに自動バックアップするためのファイルシステムを用いて、作成されたバックアップファイルを回復する、一実施形態において行われる例示的なステップ全体を示すフローチャートを提示する。ステップ５０２で、回復ユーザインターフェースを有するアプリケーションを、バックアップファイルの回復のために実行することができる。回復ユーザインターフェース２０６を、アプリケーションまたは回復ユーティリティに含めることができる。一実施形態では、回復ユーザインターフェースは、ユーザに提示される、ファイルを開くための共通ダイアログの一部でよい。このような共通ダイアログを、バックアップアプリケーションファイルを回復するためのアクションで拡張することができる。ファイルの１つまたは複数のバックアップコピーのリストを、ステップ５０４でリクエストし、次いで、ステップ５０６で取り出すことができる。たとえば、ある実施形態において、アプリケーションファイル用にシステムクエリを作ることができ、回復ユーザインターフェースは、ファイルの名前空間を使って、世代ファイルの組など、１つまたは複数のバックアップコピーのリストを取得することができる。
【００３９】
ステップ５０８で、ファイルのバックアップコピーのリストを、ユーザによる検査のためにユーザインターフェースに提示して、ユーザによって所望される可能性があるどのファイルコピーも回復することができる。ステップ５１０で、回復されるべき、選択されたバックアップコピーの指示を受け取ることができる。ステップ５１２で、選択されたバックアップコピーは、アプリケーションによるアクセスのために永続的に保存することができる。
【００４０】
他の実施形態では、回復ユーティリティが、ＵＦＤなど、インストールされている取外し可能メモリデバイスのディレクトリ読込みの一部として実行することができる。ディレクトリの読込みにおいて、回復ユーティリティは、インストールされているデバイスが、別のマシンによって格納されるバックアップファイルを含み得ることを認識することができる。回復ユーティリティは次いで、ユーザにバックアップコピーを提示して、ファイルの利用可能などのコピーも回復することができる。図６は、インストールされている取外し可能メモリデバイスに格納されたバックアップファイルを回復する、このような実施形態において行われる例示的なステップ全体を示すフローチャートを提示する。
【００４１】
ステップ６０２で、永続ストレージに格納されたバックアップコピーを有する取外し可能デバイスを、コンピュータシステムにインストールすることができる。たとえば、バックアップコピーを有するＵＦＤは、ＵＳＢポートにプラグインすることができ、コンピュータシステムは、そのＵＦＤをインストールすることができる。ステップ６０４で、回復ユーティリティを実行することができる。一実施形態では、回復ユーティリティは、バックアップコピーとともにデバイスに格納することができる。回復ユーティリティは、インストール中に発見し、実行することができる。ステップ６０６で、バックアップコピーが、取外し可能デバイスをインストールしたコンピュータシステムによって作成されたかどうか判定することができる。一実施形態では、デバイスに書き込まれたバックアップファイルのディレクトリは、バックアップファイルをデバイスに格納したコンピュータシステムの識別を格納することができる。識別は、コンピュータシステムのプロセッサＩＤやＭＡＣアドレスなど、コンピュータシステムを識別するのに役立ち得る、コンピュータシステムのどの属性でもよい。
【００４２】
ステップ６０８で、コンピュータシステムがバックアップファイルを作成することができなかったと判定することができた場合、処理を終えることができる。たとえば、回復アプリケーションは、それ自体を閉じることができる。あるいは、ステップ６０８で、バックアップコピーが、取外し可能デバイスをインストールしたコンピュータシステムによって作成されたと判定することができた場合、ステップ６１０で、上に記載した図５のステップ５０４〜５１２を使うことによってファイルを回復することができる。ファイルの１つまたは複数のバックアップコピーを、ステップ５０４で記載したようにリクエストし、次いで、ステップ５０６で記載したように取り出すことができる。ファイルのバックアップコピーは次いで、ステップ５０８で記載したように、ユーザによる検査のためにユーザインターフェースに提示されて、ユーザによって所望される可能性があるどのファイルコピーも回復することができる。回復されるべき、選択されたバックアップコピーの指示は、ステップ５１０で記載したように受け取ることができ、選択されたバックアップコピーは、ステップ５１２で記載したように、アプリケーションによるアクセスのために永続的に保存することができる。
【００４３】
このようにして、永続ストレージを有するデバイスに格納することができる、アプリケーション用のバックアップコピーを自動的に回復するのに、ファイルシステムを使うことができる。コンピューティングシステムの様々なコンポーネントに追加することができる、アクセス可能などの永続ストレージも、ファイルのバックアップコピーの格納に使用するために集約することができる。たとえば、ハードドライブの製造元が、ハードドライブがエネルギーを保存するために回転速度を落とす可能性がある間に使うことができる不揮発性メモリの大きなチャンクで、ドライブコントローラを増補することができる。このような永続ストレージを使うことによって、本発明は、デバイスおよびデバイスコントローラを含むシステムに増量した永続ストレージを追加することができると、ハードウェアで起こる屈折を利用することができる。
【００４４】
以上の詳細な説明から、本発明は、ファイルシステムを用いて、ファイルを永続ストレージに自動バックアップする改良型のシステムおよび方法を提供することが理解できよう。アプリケーションに対して透過的に、世代データファイルを使ってファイルの自動バックアップコピーを作ることができる。有利には、本発明による利益のおかげで、アプリケーションを修正する必要がない。さらに、提示したシステムおよび方法は拡張可能である。アプリケーションにとって一意でよいどの属性も、ユーザの要求も、世代ファイルの命名において追加することができる。ファイルのどの属性も、ファイルに適用することができるバックアップのタイプの判定に使うことができる。本システムおよび方法はしたがって、最新のコンピューティングにおいて必要とされる多大な利点および利益を提供することが理解されよう。
【００４５】
本発明は、様々な修正形態および代替構成に対して可能であるが、例示した本発明の一部の実施形態を、図面に示し詳細に上述した。ただし、開示した特定の形に本発明を限定する意図はなく、反対に、本発明の精神および範囲内であるすべての修正形態、代替構成、および等価物を包含することを意図していることを理解されたい。
【図面の簡単な説明】
【００４６】
【図１】本発明を組み込むことができるコンピュータシステム全体を表すブロック図である。
【図２】本発明の態様に従って、ファイルシステムを用いてファイルを永続ストレージに自動バックアップする、一実施形態におけるシステムコンポーネントの例示的なアーキテクチャ全体を表すブロック図である。
【図３】本発明の態様に従って、ファイルシステムを用いてファイルを永続ストレージに自動バックアップする、一実施形態において行われる例示的なステップ全体を示すフローチャートである。
【図４】本発明の態様に従って、ファイルを永続ストレージに自動バックアップするためのファイルシステムを用いて、ファイルに適用するためのバックアップのタイプを判定する、一実施形態において行われる例示的なステップ全体を示すフローチャートである。
【図５】本発明の態様に従って、ファイルを永続ストレージに自動バックアップするためのファイルシステムを用いて、作成されたバックアップファイルを回復する、一実施形態において行われる例示的なステップ全体を示すフローチャートである。
【図６】本発明の態様に従って、ファイルを永続ストレージに自動バックアップするためのファイルシステムを用いて、作成されたバックアップファイルを回復する、別の実施形態において行われる例示的なステップ全体を示すフローチャートである。
【符号の説明】
【００４７】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  ＲＯＭ
１３３  ＢＩＯＳ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  固定式不揮発性メモリインターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取外し可能不揮発性メモリインターフェース
１５１  磁気ディスクドライブ
１５２  取外し可能な不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  光ディスク
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１６３  マイク
１６４  タブレット
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ（群）
１８１  メモリデバイス
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９２  タッチスクリーンインターフェース
１９３  出力周辺インターフェース
１９４  スピーカ
１９５  プリンタ
２０２  回復ユーティリティ
２０４  アプリケーション
２０６  回復ＵＩ
２０８  ポリシーエンジン
２１０  オペレーティングシステム
２１２  ボリュームマネージャ
２１４  ファイルシステムフィルタドライバ
２１６  世代ファイルハンドラ
２１８  ファイルシステム
２２０  ストレージ集約装置
２２２  ストレージ列挙装置
２２４  記憶クラスドライバ
２２６  ミニポートドライバ
２２８  ミニポートドライバ
２３０  組込みデバイス
２３２  取外し可能デバイス
２３４  不揮発性メモリ
２３６  不揮発性メモリ
３０２  実行可能コードが、ファイルを保存するためのリクエストを行う
３０４  ファイルシステムフィルタドライバが、ファイル保存リクエストを受け取る
３０６  フィルタドライバが、ポリシーにアクセスして、ファイルをバックアップするべきかどうか判定する
３０８  ファイルをバックアップするか？
３１０  フィルタドライバが、ポリシーにアクセスして、ファイルに適用するためのバックアップのタイプを判定する
３１２  ファイルをバックアップする
３１４  バックアップされたファイル用の目次をアップデートする
４０２  ファイル属性を取得する
４０４  ファイル属性に関するポリシーを取得する
４０６  ファイル属性に適用可能なバックアップタイプを判定する
４０８  世代ファイルを作成するか？
４１０  ファイルのバックアップコピーを作成する
４１２  ファイルの世代コピーを作成する
５０２  回復ユーザインターフェースを用いて、アプリケーションを実行する
５０４  ファイルの１つまたは複数のバックアップコピーのリストをリクエストする
５０６  ファイルの１つまたは複数のバックアップコピーのリストを取得する
５０８  ユーザインターフェースにおいて、バックアップコピーのリストを提示する
５１０  回復されるべき、選択されたバックアップコピーの指示を受け取る
５１２  アプリケーションによるアクセスのために、選択されたバックアップコピーを保存する
６０２  不揮発性メモリに格納されたバックアップコピーを有する取外し可能デバイスをインストールする
６０４  回復ユーティリティを実行する
６０６  コンピュータシステムによってバックアップコピーが作成されたかどうか判定する
６０８  バックアップコピーが、コンピュータシステムによって作成されたか？
６１０  バックアップコピーを使って、ファイルを回復する
【図１】
2006244484.tif 000003
【図２】
2006244484.tif 000004
【図３】
2006244484.tif 000005
【図４】
2006244484.tif 000006
【図５】
2006244484.tif 000007
【図６】
2006244484.tif 000008
【外国語明細書】
2006244484000001.pdf