(57)【要約】【課題】ネットワーキング環境でデータのバックアップを効率的に実施するためのシステム、方法、およびコンピュータ可読媒体を提供すること。【解決手段】本発明の態様では、ローカルコンピューティング装置からリモートコンピューティング装置への、ファイルのバックアップが実施される。本発明の態様では、ファイルがすでに別のユーザによって、あるいはオペレーティングシステムおよび／またはアプリケーションプログラムのプロバイダによってリモートコンピューティング装置に記憶されているかどうかを判定する。これに関して、ファイルのシグネチャが生成され、バックエンドコンピューティングシステムに記憶されているファイルのシグネチャと比較される。これらのシグネチャとの合致が見つからない場合にだけ、完全なファイルがバックエンドコンピューティング装置に送信されてデータベースに記憶される。【選択図】図１
2006268846.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピューティング装置および第２のコンピューティング装置を含むネットワーキング環境で、前記第１のコンピューティング装置に記憶されたファイルのバックアップを実施する方法であって、
（ａ）前記ファイルが前記第２のコンピューティング装置に記憶されているかどうかを判定するステップを含み、前記判定するステップは、
（ｉ）前記ファイルのシグネチャを生成するステップと、
（ｉｉ）前記シグネチャを前記第２のコンピューティング装置に送信するステップと、
（ｉｉｉ）前記送信されたシグネチャが、前記第２のコンピューティング装置に記憶されているシグネチャに合致するかどうかを判定するステップとを含み、さらに、
（ｂ）前記ファイルが前記第２のコンピューティング装置に記憶されていない場合に、前記ファイルを前記第１のコンピューティング装置から前記第２のコンピューティング装置に送信するステップと、
（ｃ）前記第１のコンピューティング装置上のファイルであって前記第２のコンピューティング装置に記憶されているファイルを追跡するデータベースを更新するステップとを含むことを特徴とする方法。
【請求項２】
前記ファイルを復元するコマンドに応答して、前記ファイルを前記第２のコンピューティング装置から前記第１のコンピューティング装置に送信するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ファイルは、前記第１のコンピューティング装置から前記第２のコンピューティング装置に送信されたときに前記ファイルに関連付けられていたのと同じパス、名前、および許可によって、前記第１のコンピューティング装置上で復元されることを特徴とする請求項２に記載の方法。
【請求項４】
前記第１のコンピューティング装置と前記第２のコンピューティング装置は前記ネットワーク環境でピアツーピア関係を維持し、前記第２のコンピューティング装置はさらに、前記第２のコンピューティング装置に記憶されたファイルをバックアップするように構成されたことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１のコンピューティング装置と前記第２のコンピューティング装置は前記ネットワーク環境でサーバとクライアントの関係を維持することを特徴とする請求項１に記載の方法。
【請求項６】
前記ファイルの前記シグネチャはハッシングアルゴリズムを使用して生成されることを特徴とする請求項１に記載の方法。
【請求項７】
前記送信されたシグネチャが前記第２のコンピューティング装置に記憶されているシグネチャに合致するかどうかを判定するステップは、前記シグネチャを、前記第２のコンピューティング装置に記憶されたファイルにハッシングアルゴリズムを適用することによって生成されたシグネチャと、順次に比較するステップを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記ファイルはオペレーティングシステムまたはアプリケーションプログラムの機能を実施するものであり、
前記ファイルは前に前記第２のコンピューティング装置にサブミットされたことを特徴とする請求項１に記載の方法。
【請求項９】
前記第１のコンピューティング装置上のファイルであって前記第２のコンピューティング装置に記憶されたファイルを追跡するデータベースを更新するステップは、オペレーティングシステムやアプリケーションプログラムの機能を実施するファイルを参照するポインタ、またはユーザレベルデータを含むファイルを参照するポインタを生成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
第１のコンピューティング装置および第２のコンピューティング装置を含むネットワーキング環境で、前記第１のコンピューティング装置上のボリュームを前の状態に復元する方法であって、
（ａ）ディスク状態サービスを使用して前記ボリュームの状態を識別するステップと、
（ｂ）前記ボリュームの状態を表すデータを前記第１のコンピューティング装置から前記第２のコンピューティング装置に送信するステップと、
（ｃ）前記ボリュームを前記前の状態に復元するコマンドに応答して、
（ｉ）前記ボリュームの状態を表すデータを前記第２のコンピューティング装置から前記第１のコンピューティング装置に送信するステップと、
（ｉｉ）前記ディスク状態サービスに前記ボリュームを前記前の状態に復元させるステップとを含むことを特徴とする方法。
【請求項１１】
前記ディスク状態サービスは、ある時点から前記ボリュームに加えられた変更を追跡するシャドウコピーサービスであることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第１のコンピューティング装置と前記第２のコンピューティング装置は前記ネットワーク環境でピアツーピア関係を維持することを特徴とする請求項１０に記載の方法。
【請求項１３】
前記第１のコンピューティング装置と前記第２のコンピューティング装置は前記ネットワーク環境でサーバとクライアントの関係を維持することを特徴とする請求項１０に記載の方法。
【請求項１４】
前記ボリュームの状態は、前記ディスク状態サービスにアプリケーションインタフェースコールを発行することによって識別されることを特徴とする請求項１０に記載の方法。
【請求項１５】
前記ボリュームの状態を表すデータが自動的に前記第２のコンピューティング装置に送信され、前記ボリュームは、前記ボリュームの複数の異なるバージョンのうちの１つに再び復元できることを特徴とする請求項１０に記載の方法。
【請求項１６】
通信状態にある第１のコンピューティング装置および第２のコンピューティング装置を含むコンピュータネットワークで、前記第１のコンピューティング装置に記憶されたデータのバックアップを実施するためのソフトウェアシステムであって、
（ａ）前記第１のコンピューティング装置上のデータを前記第２のコンピューティング装置に選択的に送信するように動作するリモートバックアップモジュールと、
（ｂ）前記第１のコンピューティング装置に記憶された前記データを管理するためのオペレーティングシステムと、
（ｃ）前記第１のコンピューティング装置から受信されたデータを前記第２のコンピューティング装置に記憶するためのバックアップデータベースとを備えることを特徴とするソフトウェアシステム。
【請求項１７】
前記リモートバックアップモジュールは、前記第２のコンピューティング装置にすでに記憶されているデータは前記第１のコンピューティング装置から前記第２のコンピューティング装置に送信しないことを特徴とする請求項１６に記載のソフトウェアシステム。
【請求項１８】
前記リモートバックアップモジュールは、ファイルに固有のシグネチャを生成して、前記シグネチャが前記第２のコンピューティング装置に記憶されているファイルに合致するかどうかを判定するように構成されたことを特徴とする請求項１６に記載のソフトウェアシステム。
【請求項１９】
前記オペレーティングシステムは、前記第１のコンピューティング装置上のボリュームのポイントインタイム状態を取り込むように動作するディスク状態サービスを備えることを特徴とする請求項１６に記載のソフトウェアシステム。
【請求項２０】
前記リモートバックアップモジュールは、前記ボリュームの状態を表すデータを前記第２のコンピューティング装置に送信するように構成されたことを特徴とする請求項１９に記載のソフトウェアシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューティング装置に関し、より詳細には、コンピューティング装置を復元して損失データを回復することに関する。
【背景技術】
【０００２】
データバックアップは、ほぼすべての大規模コンピュータデータ記憶システムの、またいくつかの小型コンピュータシステムの、標準的な部分である。通常、これらのタイプのシステムでは、ローカルディスクなどの１次記憶媒体に書き込まれたデータが、別のディスクやテープなどのバックアップ媒体にコピーされる。次いで、このバックアップ媒体は、１次媒体上のデータを失わせる災害またはその他の出来事があった場合の回復のために使用することができる。いくつかのシステムは、１次記憶媒体上のデータが定期的に（例えば毎時、毎日、毎月など）バックアップ媒体にコピーされるように構成される。データの損失を引き起こす災害またはその他の出来事があった場合、バックアップ媒体上のデータの最も新しいバージョンが、逆に１次記憶媒体にコピーされる。
【０００３】
データのバックアップを実施するための既存のシステムは、コンピュータマルウェアからのいくつかのタイプの攻撃を受けやすい場合がある。様々なコンピュータ攻撃が厳密には相互に異なることは当業者なら理解するであろうが、本発明では、また記述を簡単にするために、以下、悪意のコンピュータプログラムすべてをコンピュータマルウェアまたはより簡単にマルウェアと総称する。ますます多くのコンピュータおよびその他のコンピューティング装置がインターネットなどの様々なネットワークを介して相互接続されるのに伴って、コンピュータセキュリティ、特に、コンピュータマルウェアによってネットワークまたは情報ストリームを介して送達される侵入または攻撃に対するコンピュータセキュリティが、より一層重要になってきている。
【０００４】
いくつかのマルウェアは、コンピュータメモリにすでにロードされている善意のアプリケーションプログラムの脆弱性を利用することにより、ウイルス対策ソフトウェアによって検出されるのを回避する。より具体的には、善意のアプリケーションプログラムの脆弱性が利用され、このプログラムに割り振られたメモリ領域は、マルウェアによって変更されるかまたは他の方法で破損される（例えばバッファオーバーフロー攻撃）。この結果、最初にメモリにロードされたときには安全に実行できると識別されたプログラムが、その後、悪意のプログラムコードで変更されることがある。コンピュータマルウェアがこのタイプの攻撃を用いてコンピューティング装置へのアクセスを得たとき、コンピューティング装置に対する潜在的な損害は大きい。というのは、マルウェアによって「ハイジャック」された善意のアプリケーションは、システム特権および／または管理者特権付きで稼動する高信用アプリケーションである場合があるからである。この結果、マルウェアは、善意のアプリケーションと同じ信用レベルを継承することができる。マルウェアがシステム特権および／または管理者特権付きで実行されるとき、マルウェアは、１次と２次の両方の記憶媒体へのアクセスを得ることができる場合があり、それにより、既存のバックアップシステムによって提供される保護を回避する。
【０００５】
システム管理者は通常、コンピューティング装置中のどんな脆弱性をも塞ぐように設計された「最新の」ウイルス対策ソフトウェアおよびパッチを使用して、大きな組織に関連するコンピューティング装置を保守する。しかし、多くの割合の個人ユーザは、オペレーティングシステムベンダおよびウイルス対策ベンダから提供されるソフトウェア更新を入手してインストールすることをしない。この場合、「最新の」ウイルス対策ソフトウェアがマルウェアを検出できるであろうにもかかわらず、ユーザに関連するコンピュータはマルウェアに対して脆弱であることがある。さらに、いくつかのバックアップシステムは、高価な、かつ／または個人ユーザによって構成するのが困難な、特定のハードウェア装置およびソフトウェアを必要とする。このため、個人ユーザは、マルウェアの影響を受けやすいだけでなく、マルウェア攻撃の結果として失われたデータを回復する能力を有する可能性も低い。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
リモートコンピューティング装置上でユーザデータのバックアップを実施するシステムが必要とされている。望ましくは、本システムは、個人ユーザによって容易に構成することができ、過大なネットワーク帯域幅を必要とせずにローカルコンピューティング装置上のデータを素早くバックアップおよび復元することになる。
【課題を解決するための手段】
【０００７】
従来の現況技術に伴う前述の問題は、ネットワーキング環境でデータのバックアップを効率的に実施するためのシステム、方法、およびコンピュータ可読媒体を対象とする本発明の原理によって克服される。
【０００８】
本発明の一態様は、ネットワーキング環境でバックアップを実施する方法である。より具体的には、ファイルをバックアップするコマンドをユーザが発行すると、本方法は、信用できるソースに関連するバックエンドコンピューティング装置にこのファイルがすでに記憶されているかどうかを判定する。ファイルは、本発明によって提供されるバックアップサービスの別のユーザから、信用できるソースにすでに利用可能にされている場合がある。例えば、ファイルは、オペレーティングシステムまたはアプリケーションプログラムの機能を実施するものである場合があり、したがってネットワーキング環境内の複数のコンピューティング装置に共通である場合がある。ファイルがすでにバックエンドコンピューティング装置に記憶されているかどうかを判定するために、本方法は、ハッシュ関数を使用してファイルのシグネチャを生成する。シグネチャは、バックエンドコンピューティング装置に送信され、そこで、信用できるソースにすでに利用可能になっているファイルのシグネチャと比較される。送信されたシグネチャが、信用できるソースによって前に得られたシグネチャに合致しない場合は、ファイルはバックエンドコンピューティング装置に記憶されていない。この場合、次いで、ネットワーク接続を使用してファイル全体がバックエンドコンピューティング装置に送信される。次いで、このファイルがターゲットコンピューティング装置に関連することを反映するように、ターゲットコンピューティング装置上のファイルであってバックエンドコンピューティング装置に記憶されているファイルを追跡するデータベースが更新される。
【０００９】
本発明の別の態様では、ターゲットコンピューティング装置上のボリュームを前の状態に復元する、ネットワーキング環境で実施される方法が提供される。この実施形態では、本方法は、ディスク状態サービスを使用して、ボリュームの状態を表すデータを生成する。次いで、ボリューム状態を表すデータは、ネットワーク接続を使用してターゲットコンピューティング装置からバックエンドコンピューティング装置に送信される。ただし通常、ボリューム状態を表すデータは、一定間隔でバックエンドコンピューティング装置に送信されることになる。いずれにしても、ボリューム状態を表すデータがバックエンドコンピューティング装置に記憶されると、ユーザは、ボリュームを前の状態に復元するコマンドを発行することができる。次いで、ボリュームの状態を表すデータは、ターゲットコンピューティング装置に送り返され、ディスク状態サービスを使用して復元される。
【００１０】
本発明の別の態様では、ターゲットコンピューティング装置に代わってデータのバックアップを実施するためのソフトウェアシステムが提供される。例示的な一実施形態では、本ソフトウェアシステムは、リモートバックアップモジュール、オペレーティングシステム、およびバックアップデータベースを備える。とりわけ、リモートバックアップモジュールは、ターゲットコンピューティング装置上で、バックエンドコンピューティング装置に記憶されていないデータを識別する。次いで、バックアップモジュールは、データのバックアップが実施されるようにし、それにより、信用できるソースにまだ利用可能になっていないデータは、バックエンドコンピューティング装置に送信される。この実施形態では、本ソフトウェアシステムは、ターゲットコンピューティング装置に記憶されたデータを管理するように動作可能であってリモートバックアップモジュールによって生成されたクエリを満たすように動作可能なオペレーティングシステムを備える。また、本ソフトウェアシステムには、信用できるソースによって記憶されたファイルをバックアップサービスのユーザの代わりに追跡するバックアップデータベースが備わる。このようにして、バックアップデータベースは、復元コマンドが発行されたときにターゲットコンピューティング装置に復元すべきファイルを識別することができる。
【００１１】
別の実施形態では、コンテンツを含むコンピュータ可読媒体、すなわち、本明細書に述べる方法に従ってコンピューティング装置を動作させるプログラムを含むコンピュータ可読媒体が提供される。
【００１２】
本発明に関する前述の態様および付随する多くの利点は、添付の図面と共に後続の詳細な記述を参照することによってこれらがよりよく理解されるようになるにつれて、より容易に理解されるようになるであろう。
【発明を実施するための最良の形態】
【００１３】
本発明は、ネットワーキング環境でデータのバックアップを効率的に実施するためのシステム、方法、およびコンピュータ可読媒体を対象とする。本発明の実施形態では、ローカルコンピューティング装置（以下、「ターゲットコンピューティング装置」と呼ぶ）からリモートコンピューティング装置（以下、「バックエンドコンピューティング装置」と呼ぶ）への、ファイルのバックアップが実施される。さらに、本発明は、ネットワークリソースへの影響を最小限に抑えたバックアップを実施するための、非常に最適化された技法を使用する。本発明の態様は、ファイルが別のユーザによって、あるいはオペレーティングシステムおよび／またはアプリケーションプログラムのプロバイダによって、すでにバックエンドコンピューティング装置に記憶されているかどうかを判定する。これに関して、ハッシュ関数を使用してファイルのシグネチャが生成され、このシグネチャは、バックエンドコンピューティング装置に記憶されているファイルのシグネチャと比較される。シグネチャとの合致が見つからない場合は、ファイルはバックエンドコンピューティング装置に送信され、データベースに記憶される。次いで、データベース中のデータは、後で呼び戻してターゲットコンピュータ上で復元することができる。
【００１４】
本発明については主に、ネットワーキング環境でデータのバックアップを実施するコンテキストで述べるが、本発明は他のタイプの環境にも適用可能であることは、当業者およびそれ以外の者なら理解するであろう。後続の記述では、最初に、本発明を実施することのできる例示的なネットワーキング環境の概観を提供する。次いで、本発明を実施する例示的な方法を述べる。本明細書に提供する説明的な例は、網羅的でもなく、開示される厳密な形に本発明を限定するものでもない。同様に、本明細書に述べるステップはどれも、同じ結果を達成するために他のステップまたはステップの組合せと交換可能とすることができる。
【００１５】
以下の考察は、本発明の様々な態様を実施するのに適したネットワーキング環境１００の簡単で一般的な記述を提供するものである。図１に示すように、ネットワーキング環境１００は、複数のコンピューティング装置、すなわちバックエンドコンピューティング装置１０２およびターゲットコンピューティング装置１０４を含む。バックエンドコンピューティング装置１０２は、バックアップデータベース１０６に関連付けられて示されている。また、ターゲットコンピューティング装置１０４は、ネットワーク１０８を介してバックエンドコンピューティング装置１０２と通信するように構成され、ネットワーク１０８は、ローカルエリアネットワーク（「ＬＡＮ」）、ピアツーピアネットワーク、ワイドエリアネットワーク（「ＷＡＮ」）、または、インターネットとして一般に知られる地球規模ネットワークとして実現することができる。当業者およびそれ以外の者にはわかるように、図１に示すコンピューティング装置１０２および１０４は、ファイル、コマンド、およびその他のタイプのデータを交換するように構成することができる。
【００１６】
便宜上、図１には、ネットワーキング環境１００で使用可能なパーソナルコンピュータが示してあり、通信ネットワークを介して共にリンクされたリモートコンピューティング装置によって、相補的なタスクを実施することができる。しかし、本発明がその他の多くのコンピュータシステム構成でも実施できることは、当業者なら理解するであろう。例えば本発明は、スタンドアロン環境で動作するパーソナルコンピュータでも、あるいはマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータなどでも実施することができる。これに関して、バックエンドコンピューティング装置１０２によって実施される本明細書に記載の機能は、複数のコンピューティング装置によって実施することもできる。図１に示す従来型コンピュータシステムに加えて、本発明は、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、あるいは、コンピュータソフトウェアまたはその他のデジタルコンテンツがインストールされる任意の装置を含めて、その他の種類のコンピューティング装置上で実施できることも、当業者なら理解するであろう。
【００１７】
本発明により形成されたソフトウェアが、図１に示すターゲットコンピューティング装置１０４やバックエンドコンピューティング装置１０２など１つまたは複数のコンピュータ中で実施されるとき、このソフトウェアは、データを効率的にバックアップする方法を提供する。本発明の一実施形態では、バックエンドコンピューティング装置１０２は、信用できるソースに関連する。ネットワーク１０８に通信可能に接続されたコンピュータはどれも、信用できるソースから提供されるバックアップサービスに参与することができる。これに関して、バックエンドコンピューティング装置１０２は、複数のソースから受け取ったデータを単一の位置（例えばバックアップデータベース１０６）に集約して、不要なデータ伝送を防止する。
【００１８】
一実施形態によれば、本発明は、コンピューティング装置をバックアップするのに必要な時間量およびネットワーク帯域幅を低減するようになされた最適化を実施する。ネットワーキング環境におけるファイルのバックアップを容易にするために、いくつかの解決法が提案されてきた。ファイルのバックアップを実施するための従来方法は、ネットワークファイルおよびデータベースをローカルコンピューティング装置上の記憶媒体にコピーしてから、適切なら、記憶済みのコピーを１つまたは複数のネットワークサーバ上で維持されているこれらのファイルのネットワークコピーと同期させることを含む場合がある。しかし、この「コピーおよび同期」手法は、バックアップおよび同期のプロセス中にファイル全体がコピーされ送信されるという点で、ネットワーク帯域幅を非効率的に使用する。
【００１９】
本発明は、コンピューティング装置に記憶されたほとんどのデータが、オペレーティングシステムまたはアプリケーションプログラムの機能を実施するファイルからなるということを利用する。例えば、バックアップサービスに参与する複数の異なるコンピューティング装置は通常、同じオペレーティングシステムを使用することになる。これに関して、オペレーティングシステムの機能を実施するファイルは、バックアップデータベース１０６に記憶されるようソフトウェアベンダから提供される場合がある。また、バックアップサービスに参与する個人ユーザが、信用できるソースにこのタイプのファイルを提供する場合もある。どちらの場合も、ターゲットコンピューティング装置１０４上の多くの割合のファイルは、すでにバックアップデータベース１０６に記憶されていることがある。したがって、本発明によって実施される最適化は、ターゲットコンピューティング装置１０４によってバックアップのためにサブミットされたファイルが、すでにバックアップデータベース１０６に記憶されているかどうかを判定する。ファイルがバックアップデータベース１０６に記憶されている場合は、ファイルの完全なバージョンを送信する必要はない。そうではなく、バックアップデータベース１０６は、どのファイルがターゲットコンピューティング装置１０４に関連するかを追跡しており、必要時にこれらのファイルのコピーを復元する。
【００２０】
次に、図２を参照して、図１に示したターゲットコンピューティング装置１０４のコンポーネントについて述べる。以下は、本発明の態様を実施することのできる１つのコンピューティング装置１０４の例示的な概観を提供するものである。前に触れたように、ターゲットコンピューティング装置１０４は、限定されないがパーソナルコンピューティング装置、サーバベースのコンピューティング装置、パーソナルデジタルアシスタント、セルラー電話機や、何らかのタイプのメモリを有するその他の電子装置などを含めた、様々な装置の任意の１つとすることができる。説明しやすくするために、また本発明を理解するのに重要ではないので、図２には、ＣＰＵ、キーボード、マウス、プリンタ、その他の入出力装置、表示装置など、多くのコンピューティング装置の典型的なコンポーネントは示されていない。しかし、図２に示すターゲットコンピューティング装置１０４は、オペレーティングシステム２００、リモートバックアップモジュール２０２、およびネットワークインタフェース２０４を備える。さらに図２に示すように、オペレーティングシステム２００は、ボリューム状態２０８を記録するディスク状態サービス２０６を備える。総合的に、ターゲットコンピューティング装置１０４中で実施される本発明の態様は、ターゲットコンピューティング装置１０４に記憶されたデータをバックアップするのに十分なデータを、信用されるソースに提供する。
【００２１】
図２に示すように、ターゲットコンピューティング装置１０４は、オペレーティングシステム２００を備える。オペレーティングシステム２００は、Ｍｉｃｒｏｓｏｆｔ（登録商標）オペレーティングシステム、ＵＮＩＸ（登録商標）オペレーティングシステム、Ｌｉｎｕｘ（登録商標）オペレーティングシステムなど、市販の汎用オペレーティングシステムとすることができる。当業者およびそれ以外の者に知られているように、汎用オペレーティングシステムは、コンピューティング装置の「入出力」の管理や、メモリに記憶されたデータの追跡など、基本的なタスクを実施する。例えば、アプリケーションプログラムが、ディスクなどの入出力装置にデータを書き込むために、オペレーティングシステム２００に要求を出すことがある。この場合、オペレーティングシステム２００は、入出力装置とアプリケーションプログラムとの間のデータ通信を管理する。
【００２２】
本発明の一実施形態では、１つまたは複数のボリューム状態２０８が維持され、これらからターゲットコンピューティング装置１０４を復元することができ、データを回復することができる。例えば、いくつかのオペレーティングシステムは、Ｗｉｎｄｏｗｓ（登録商標）（商標）Ｖｏｌｕｍｅ  Ｓｈａｄｏｗ  Ｃｏｐｙ  Ｓｅｒｖｉｃｅｓなど、データのボリュームのポイントインタイム（ｐｏｉｎｔ−ｉｎ−ｔｉｍｅ）コピーをとるように設計されたディスク状態サービス２０６を提供する。ボリュームの状態を後で再構築できるように、ポイントインタイムコピーの生成後にボリュームに加えられた変更が追跡される。より具体的には、ディスク状態サービス２０６は、構成可能な間隔で、選択されたボリュームのスナップショットをとる。ボリュームのこのバージョンを再構築するのに必要なデータの量を削減するために、ディスク状態サービス２０６は、ボリュームに加えられた変更に関する情報を記憶する。言い換えれば、ボリュームの、保存されたバージョンそれぞれがディスク状態サービス２０６によって維持されるのではない。そうではなく、ユーザがボリューム上のデータを修正した場合、ディスク状態サービス２０６は、ボリュームのポイントインタイムバージョンを再構築するのに十分な、修正に関する情報を記憶する。ボリューム状態２０８を表すデータを他のソフトウェアモジュールが得るのを可能にするアプリケーションプログラミングインタフェース（「ＡＰＩ」）を、ディスク状態サービス２０６が提供することは、当業者およびそれ以外の者なら理解するであろう。また、ＡＰＩは、ボリューム状態を表すデータを他のソフトウェアモジュールがディスク状態サービス２０６に渡してボリュームを再構築させることをも可能にする。ディスク状態サービス２０６によって復元できるデータには、限定されないがオペレーティングシステムファイルおよび／またはその他のシステムデータが含まれ、その他のシステムデータには、レジストリエントリ、ならびにユーザファイルおよび／またはその他のユーザデータが含まれる。
【００２３】
図２に示すように、ターゲットコンピューティング装置１０４は、本発明によって実施されるバックアップおよびデータ回復のためのロジックを含むリモートバックアップモジュール２０２を備える。一実施形態では、リモートバックアップモジュール２０２は、ネットワークインタフェース２０４を介して、ボリューム状態２０８を表すデータをバックエンドコンピューティング装置１０２に記憶させる。典型的には、ボリューム状態２０８を表すデータは、アーカイバルプロセスの一部として送信されることになり、アーカイバルプロセスは、このデータを一定間隔でバックエンドコンピューティング装置１０２に送信する。いずれにしても、データがバックエンドコンピューティング装置１０２に記憶されると、リモートバックアップモジュール２０２は、バックエンドコンピューティング装置１０２に照会して、前に送信されたデータを得ることができる。次いでモジュール２０２は、ディスク状態サービス２０６から提供されるＡＰＩにアクセスして、ターゲットコンピューティング装置１０４上のボリュームを前の状態に復元させることができる。
【００２４】
後で図３に関してさらに詳細に述べる別の実施形態では、リモートバックアップモジュール２０２は、１つまたは複数のファイルのバックアップを実施する。ボリューム状態を復元する実施形態と同様、この実施形態でも、リモートバックアップモジュール２０２は、ネットワークインタフェース２０４を利用して、データをバックエンドコンピューティング装置１０２に送信および記憶させる。しかし、この実施形態では、１つまたは複数のファイルのバックアップが実施される。さらに、この場合、モジュール２０２は、バックアップを実施するのに「コピーおよび同期」手法を使用しない。そうではなく、ターゲットコンピューティング装置１０４とバックエンドコンピューティング装置１０２との間のデータ伝送は非常に最適化され、その結果、ファイルをバックアップするのに必要とされる帯域幅および記憶の影響は最小限に抑えられる。
【００２５】
当業者およびそれ以外の者にはわかるように、図２は、本発明の態様を実施することのできる１つのターゲットコンピューティング装置１０４の簡略化された例である。しかし、ターゲットコンピューティング装置１０４の実際の実施形態は、図２に示されておらず付随するテキストにも記載されていない追加のコンポーネントを有することになる。また、図２は、ネットワーキング環境でバックアップを実施するための１つのコンポーネントアーキテクチャを示すが、その他のコンポーネントアーキテクチャも可能である。
【００２６】
次に、図３を参照して、本発明により形成されたリモートバックアップモジュール２０２の例示的な一実施形態を示す流れ図について述べる。引き続き図１〜２および付随する記述を参照しながら、図３に示す例示的なリモートバックアップモジュール２０２について次に述べる。
【００２７】
図３に示すように、ブロック３００で、リモートバックアップモジュール２０２は、リモートコンピューティング装置上にデータをバックアップするコマンドが受け取られるまでは、アイドル状態のままである。バックエンドコンピューティング装置１０２（図１）などのリモートコンピューティング装置上にデータをバックアップするコマンドは、いくつかのコンテキストで受け取られる場合があり、以下はこれらのコンテキストのほんの一例である。コンピュータユーザは、本発明によって提供されるユーザインタフェースと対話して、様々なタイプのバックアップの間で選択することができる。例えば、コンピュータユーザは、ボリュームを前の状態に復元できるバックアップの実施を選択することができる。あるいは、コンピュータユーザは、１つまたは複数のファイルが復元されるバックアップの実施を選択することができる。この場合、ユーザは、ユーザインタフェースと対話して、復元できるであろうファイルを識別することができる。また、前に触れたように、バックアップを実施するコマンドは、アーカイバルプロセスの一部として自動的に生成されてもよい。この場合、ボリューム状態またはファイルの様々なバージョンが、バックエンドコンピューティング装置１０２上で維持される。その結果、ユーザは、ボリューム状態またはファイルを、いくつかの利用可能なバージョンのいずれか１つに復元することができる。
【００２８】
ブロック３０２で、リモートバックアップモジュール２０２は、ブロック３００で受け取ったコマンドを満たすために１つまたは複数のファイルのバックアップが必要かどうかを判定する。前に触れたように、本発明は、ファイルおよび／またはボリューム状態に対してバックアップを実施することができる。少なくとも１つのファイルのバックアップが実施される場合は、モジュール２０２は、後述するブロック３０６に進む。反対に、ボリューム状態のバックアップが実施される場合は、モジュール２０２はブロック３０４に進む。
【００２９】
ブロック３０４で、バックアップのために選択されたボリュームの状態を表すデータが、信用できるソースに関連するリモートコンピューティング装置（例えばバックエンドコンピューティング装置１０２）に送信される。ボリューム状態は、特定の時点以降にボリュームに加えられた変更を記述するデータのセットとして表せることは、当業者およびそれ以外の者なら理解するであろう。ブロック３０４で、既存のソフトウェアシステムを使用して、ボリューム状態を表すデータが生成される。より具体的には、図２に関して先に図示および記述したディスク状態サービス２０６は、現在のボリューム状態を表すデータを生成するように構成される。次いで、ボリューム状態を表すデータは、当技術分野で一般に知られているネットワーキングプロトコルおよび通信機構を使用して、リモートコンピューティング装置（例えばバックエンドコンピューティング装置１０２）に送信される。本発明の一実施形態によれば、ボリューム状態を表すデータは、リモートコンピューティング装置で受信されるとデータベース（例えばバックアップデータベース１０６）に記憶され、このデータは後でそこから取り出すことができる。
【００３０】
図３に示すように、ブロック３０６で、リモートバックアップモジュール２０２は、バックアップに指定されたファイルを選択する。前に触れたように、本発明の一実施形態では、リモートバックアップモジュール２０２は、１つまたは複数のファイルのバックアップを実施する。ブロック３０６に達した場合、信用できるソースに記憶するため、および／または信用できるソースから取り出すための、１つまたは多くのファイルのバックアップが実施されることになる。ブロック３０６で選択された各ファイルにつき、モジュール２０２はこのファイルのシグネチャを生成することになり、このシグネチャは、信用できるソースにすでに利用可能になっているファイルのシグネチャと比較される。選択されたファイルが信用できるソースにまだ利用可能になっていない場合は、ファイルはローカルコンピューティング装置から、信用できるソースに関連するコンピューティング装置に送信される。
【００３１】
ブロック３０８で、リモートバックアップモジュール２０２は、選択されたファイルのシグネチャを生成する。本発明の例示的な一実施形態では、ブロック３０８で、ハッシングアルゴリズムを使用して、選択されたファイルを処理してシグネチャを生成する。例えば、「ＳＨＡ−１」として一般に知られる既存のハッシングアルゴリズムを使用してシグネチャを生成することができる。しかし、本発明の範囲を逸脱することなく、ファイルデータからシグネチャを生成することのできる他のタイプのアルゴリズムまたは関数を使用して、モジュール２０２によって使用されるシグネチャを生成してもよい。したがって、上に提供した例は、例示であって限定ではないと解釈すべきである。
【００３２】
図３に示すように、判定ブロック３１０で、リモートバックアップモジュール２０２は、選択されたファイルがすでに信用できるソースに利用可能になっているかどうかを判定する。前に触れたように、ファイルをバックアップするコマンドをユーザが発行すると、ファイルがすでに信用できるソースに利用可能になっているかどうかの判定が行われる。例えば、バックアップサービスの他のユーザが、アプリケーションプログラムまたはオペレーティングシステムの機能を実施するファイルをバックアップデータベース１０６に記憶させる場合がある。また、アプリケーションプログラムまたはオペレーティングシステムのプロバイダが、バックアップデータベース１０６に含めるためにファイルを信用できるソースにサブミットする場合がある。いずれの場合も、ファイルが信用できるソースにサブミットされると、このファイルを一意に識別するシグネチャが生成されて、バックアップデータベース１０６に含められる。バックアップデータベース１０６中のファイルのシグネチャも、選択されたファイルのシグネチャを生成するのに使用されたのと同じハッシングアルゴリズムで生成される。したがって、ブロック３１０で、リモートバックアップモジュール２０２により、選択されたファイルのシグネチャは信用できるソースに送信され、前に信用できるソースにサブミットされたファイルのシグネチャと比較される。選択されたファイルに合致するシグネチャが識別された場合は、リモートバックアップモジュール２０２は、後述するブロック３１４に進む。反対に、選択されたファイルに合致するシグネチャが識別されず、ファイルが信用できるソースに利用可能になっていない場合は、モジュール２０２はブロック３１２に進む。
【００３３】
ブロック３１２で、リモートバックアップモジュール２０２は、選択されたファイルを、信用できるソースに関連するリモートコンピューティング装置（例えばバックエンドコンピューティング装置１０２）に送信する。ブロック３１２に達した場合、選択されたファイルは、前に信用できるソースに送信されておらず、そのため、信用できるソースに利用可能になっていない。言い換えれば、ブロック３１０で、選択されたファイルのシグネチャはバックアップデータベース１０６中で識別できなかった。したがって、ブロック３００で受け取ったバックアップコマンドを満たすために、ブロック３１２で、選択されたファイルは、信用できるソースに関連するリモートコンピューティング装置に送信される。ファイルは、当技術分野で一般に知られているネットワーキングプロトコルおよび通信機構を使用してリモートコンピューティング装置に送信することができるので、これらのシステムに関するこれ以上の記述は本明細書に提供しない。重要なことに、前に信用できるソースに利用可能にされたファイルは、リモートバックアップモジュール２０２から送信されない。そうではなく、完全なファイルの何分の１かのサイズである、ファイルのシグネチャだけが、信用できるソースに送信される。この結果、リモートバックアップモジュール２０２は、従来技術にみられるよりも少ないネットワーク帯域幅およびその他のリソースを使用して、データをバックアップすることができる。
【００３４】
判定ブロック３１４で、リモートバックアップモジュール２０２は、ブロック３００で受け取ったバックアップコマンドの対象であったファイルのいずれかがまだ選択されていないかどうかを判定する。追加の１つまたは複数のファイルが選択されないことになる場合は、リモートバックアップモジュール２０２は、後述するブロック３１６に進む。反対に、少なくとも１つの追加のファイルが選択されることになる場合は、リモートバックアップモジュール２０２はブロック３０６に戻り、バックアップコマンドの対象であったファイルがすべて選択されるまでブロック３０６から３１４までを繰り返す。
【００３５】
図３に示すように、ブロック３１６で、リモートバックアップモジュール２０２は、信用できるソースに関連するデータベースの更新を実施する。前述のように、本発明の実施形態では、バックアップデータベース１０６は、本発明によって提供されるバックアップサービスに参与するユーザに代わって、ファイル、および／またはボリューム状態を表すデータを記憶する。ユーザに関連するコンピューティング装置上に逆にデータを復元するために追加のタイプの情報がバックアップサービスによって必要とされることは、当業者およびそれ以外の者なら理解するであろう。例えば、いくつかの場合では、オペレーティングシステムまたはアプリケーションプログラムの機能を実施するファイルの、１つのコピーが、バックアップデータベース１０６に記憶される。しかし、バックアップサービスの複数のユーザが、ファイルをコンピューティング装置上に逆に復元させる必要がある場合がある。したがって、バックアップデータベース１０６は、バックアップサービスのユーザごとにエントリを維持する。特定のユーザに関連するバックアップデータベース１０６中のエントリは、項目の中でもとりわけ、バックアップサービスの他のユーザと共有されるオペレーティングシステム、アプリケーションプログラムファイル、および／またはユーザレベルデータへの、「ポインタ」を含む。また、別の例として、ユーザに関連するバックアップデータベース１０６中のエントリは通常、ファイルメタデータを記憶する。ファイルメタデータは通常、項目の中でもとりわけ、バックアップサービスによって復元できるファイルの位置（例えばファイルパス）、名前、および許可を識別する。ブロック３１６で、データベースは、ファイルおよび／またはボリューム状態を復元するのに必要とされるこのタイプのデータで更新される。次いで、リモートバックアップモジュール２０２はブロック３１８に進み、終了する。
【００３６】
リモートバックアップモジュール２０２は、ファイルおよび／またはボリューム状態の種々のバージョンを維持するように設計されたアーカイバルシステムと共に実施できることをよく理解されたい。例えば、本発明によって提供されるバックアップサービスのユーザは、自動的にコンピューティング装置を一定間隔でバックアップすることができる。したがって、バックアップデータベース１０６は、特定の時点におけるコンピューティング装置上のデータを表す、同じ１つまたは複数のファイルおよび／またはボリューム状態の種々のバージョンを含むことができる。この例で、ユーザは、信用できるソースによって維持される、１つまたは複数のファイルおよび／またはボリューム状態の種々のバージョン間で、選択することができる。本発明の一実施形態では、バックアップデータベース１０６に記憶された１つまたは複数のファイルおよび／またはボリューム状態のより古いバージョンは、所定期間後に「古くなる」かまたは別個のリモートストアに送信される。
【００３７】
次に図４を参照して、本発明の適用例を、例示的なネットワーキング環境４００のコンテキストで述べる。図示のネットワーキング環境４００は、複数のクライアントコンピューティング装置４０２、４０４、４０６、４０８と、複数のバックエンドコンピューティング装置４１０および４１２とを含む。バックエンドコンピューティング装置４１０は、内部ネットワーク４１４を介してクライアントコンピューティング装置４０２、４０４、４０６に通信可能に接続され、内部ネットワーク４１４は、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）として、さらには直接通信リンクとしても実現することができる。反対に、バックエンドコンピューティング装置４１２は、インターネット４１６を介してクライアントコンピューティング装置４０８と通信するように構成される。
【００３８】
一実施形態では、本発明は、データのバックアップが内部で管理される、企業タイプの組織内で実施される。いくつかの組織は、リソースおよびサービスがサーバベースのコンピューティング装置からクライアントベースのコンピューティング装置に提供される、サーバ／クライアントベースのコンピュータネットワークを維持する。本発明に関して、企業組織に関連する既存のサーバベースのコンピューティング装置を、クライアントベースのコンピューティング装置のためのバックアップストアとして使用することができる。例えば、バックエンドコンピューティング装置４１０は、内部ネットワーク４１４に接続されたすべてのクライアントコンピューティング装置４０２、４０４、４０６に対するバックアップポリシーを実装することができる。この例で、バックエンドコンピューティング装置４１０は、ユーザからの入力を必要とせずに、クライアントコンピューティング装置４０２〜４０６上のデータをバックエンドコンピューティング装置４１０に記憶させることができる。この結果、システム管理者は、ユーザが組織にとって不利益な方法でデータを削除するかまたは他の方法で修正することができないように制限することができる。
【００３９】
別の実施形態では、本発明は、インターネット４１６と通信可能に接続されたどんなコンピューティング装置にも利用可能な、ウェブベースのバックアップサービスとして実施される。ますますインターネット４１６は、コンピュータユーザに、ユーザの位置に関係なく利用可能なサービスを提供している。例えば、ウェブベースのｅメールによってユーザは、どの位置にいても、インターネット４１６に接続するだけでｅメールを受信することができる。本発明に関して、クライアントコンピューティング装置４０８上のデータは、インターネット４１６を介してバックエンドコンピューティング装置４１２に送信することができる。通常、クライアントコンピューティング装置４０８との間の接続は、データが第三者によって傍受されないようにするために、暗号化などのセキュリティ機構を使用することになる。
【００４０】
次に図５を参照して、本発明の別の例示的な適用例を、典型的なピアツーピアネットワーキング環境５００のコンテキストで述べる。図５に示すように、典型的なピアツーピアネットワーキング環境５００は、複数のピアコンピューティング装置５０２〜５０８を含み、これらはすべて通信ネットワーク５１０を介して相互接続される。さらに図５に示すように、コンピューティング装置５０８は、ピアコンピューティング装置５０２〜５０６に代わってデータを記憶するバックエンドコンピューティング装置として働くように構成される。ピアツーピアネットワーキング環境５００では、サーバも、コンピューティング装置間の階層も存在しないことは、当業者およびそれ以外の者なら理解するであろう。そうではなく、ネットワーク５１０上のすべてのコンピューティング装置が、管理タスク（他のコンピューティング装置との信用関係を定義することを含むがこれに限定されない）を処理する。本発明の一実施形態では、ピアツーピアネットワーキング環境で信用関係を維持するコンピューティング装置を、他のコンピューティング装置のためのバックアップストアとして使用することができる。例えば、ますますユーザは、コンピューティング装置を「家庭」ネットワークに接続しており、各コンピューティング装置はネットワーク上の「ピア」である。この例で、ネットワークに接続されたあるコンピューティング装置（例えばバックエンドコンピューティング装置５０８）が、ネットワークに接続された他のすべてのコンピューティング装置（例えばコンピューティング装置５０２〜５０６）のためのバックアップストアとして働くことができる。しかし、ピアツーピアネットワークは本明細書に述べられていない他のコンテキストで実施することもできるので、この例は例示であって限定ではないと解釈すべきである。
【００４１】
本発明の好ましい実施形態を図示および記述したが、本発明の趣旨および範囲を逸脱することなく様々な変更をこれに加えることができることは理解されるであろう。
【００４２】
独占的な財産または特権が請求される本発明の実施形態は、添付の特許請求の範囲に定義する。
【図面の簡単な説明】
【００４３】
【図１】本発明による、ターゲットコンピューティング装置に代わってデータをバックアップするのに適したバックエンドコンピューティング装置を含むネットワーキング環境の絵図である。
【図２】図１に示したターゲットコンピューティング装置のコンポーネントを示すブロック図である。
【図３】本発明により形成された、データのバックアップを実施するためのソフトウェア実装モジュールの例示的な一実施形態を示す流れ図である。
【図４】本発明の態様を例示するのに適した典型的なサーバベースのネットワーキング環境の絵図である。
【図５】本発明の態様を例示するのに適した典型的なピアツーピアネットワーキング環境の絵図である。
【図１】
2006268846.tif 000003
【図２】
2006268846.tif 000004
【図３】
2006268846.tif 000005
【図４】
2006268846.tif 000006
【図５】
2006268846.tif 000007