(57)【特許請求の範囲】
【請求項１】
少なくとも１つの継続的データ保護（ＣＤＰ）クライアントと、前記ＣＤＰクライアントからのバックアップ・データを格納するためのストレージを有する少なくとも１つのリモート・サーバと、前記ＣＤＰクライアント及び前記リモート・サーバを接続するためのネットワークとを備え、前記ＣＤＰクライアントが、データを当該ＣＤＰクライアントに対しローカルに格納するためのローカル・ハード・ドライブ・ストレージを有し、前記ＣＤＰクライアントが、バックアップ・データを当該ＣＤＰクライアントに対しローカルに格納するためのローカル・フラッシュ・メモリをさらに有するシステムにおいて、継続的データ保護（ＣＤＰ）を提供するための方法であって、
（ａ）更新済みデータを前記ローカル・ハード・ドライブ・ストレージに格納するステップと、
（ｂ）バックアップ目的のために前記更新済みデータを前記リモート・サーバに送信するための十分なネットワーク接続性が存在するか否かを決定するステップと、
（ｃ）前記ステップ（ｂ）の否定的決定に応答して、前記更新済みデータを前記ローカル・フラッシュ・メモリに格納するステップと、
（ｄ）前記ステップ（ｂ）の肯定的決定に応答して、前記更新済みデータをバックアップ目的のために前記リモート・サーバに送信するステップと、
（ｅ）前記ステップ（ｃ）の前に、前記ローカル・フラッシュ・メモリが一杯であるか否かを決定するステップと、
（ｆ）前記ステップ（ｅ）の否定的決定に応答して、前記更新済みデータを前記ローカル・フラッシュ・メモリに格納するステップと、
（ｇ）前記ステップ（ｅ）の肯定的決定に応答して、前記ローカル・フラッシュ・メモリが前記更新済みデータの最新のバージョンを有するか否かを決定するステップと、
（ｈ）前記ステップ（ｇ）の否定的決定に応答して、前記更新済みデータのより古いバージョン上に前記新しい更新バージョンを書き込むステップとを含む、
方法。
【請求項２】
（ｉ）前記ステップ（ｇ）の肯定的決定に応答して、将来のデータ書き込みがバックアップされないことをユーザに通知するステップをさらに含む、請求項１記載の方法。
【請求項３】
（ｊ）前記ステップ（ｃ）、（ｈ）又は（ｉ）の後に、バックアップ目的のために前記更新済みデータを前記リモート・サーバに送信するための十分なネットワーク接続性が存在するか否かを決定するステップと、
（ｋ）前記ステップ（ｊ）の肯定的決定に応答して、前記ローカル・フラッシュ・メモリからの前記更新済みデータを前記リモート・サーバに送信するステップとをさらに含む、請求項２記載の方法。
【請求項４】
前記ステップ（ｋ）の後に、前記ローカル・フラッシュ・メモリから前記更新済みデータを消去するステップをさらに含む、請求項３記載の方法。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、継続的データ保護（ＣＤＰ：Continuous Data Protection）に係り、さらに詳細に説明すれば、継続的データ保護のためにローカル・フラッシュ・メモリ及びリモート・サーバを使用するためのシステム及び方法を提供することに係る。
【背景技術】
【０００２】
ハード・ディスクは、脆弱であり、制限された寿命を有し、それらの障害は、貴重な格納データをアクセス不能にすることがある。既存の殆どのバックアップ解決法は、データ・コピーを周期的に作成するが、次のバックアップ時間の前には、最近に作成又は変更されたデータを保護することができない。この問題を解決するため、継続的データ保護（ＣＤＰ）システムは、データがディスクに格納される都度、当該データのリモート・コピーを作成する（例えば、Tivoli（商標）ＣＤＰ）。（連続的バックアップとも呼ばれる継続的データ保護（ＣＤＰ）とは、コンピュータ・データに対し行われた全ての変更のコピーを自動的に格納し、ユーザが保存するデータの全てのバージョンを実質的に捕捉することにより、当該コンピュータ・データをバックアップすることを意味する。これは、ユーザ又は管理者がデータを任意の時点に復元することを可能にする。ＣＤＰは、データへの変更を別個のストレージ位置に捕捉するサービスである。継続的変更を捕捉するための複数の方法が存在し、これらの方法は、異なるニーズを満たす異なる技術を含む。ＣＤＰベースの解決法は、クラッシュ−整合イメージからファイル、メール・ボックス、メッセージ及びデータベース・ファイルのような論理オブジェクトやログまで及ぶ、復元可能なオブジェクトの細粒度を提供することができる。）ＩＢＭ社が提供するファイル用のTivoli（商標）ＣＤＰは、破損、ユーザ・エラー、ウィルス又はシステム障害の場合に完全なデータ保護を提供する、統合回復解決法である。これは、数分でインストール及び構成され、バックグラウンドで不可視的に稼働する。ＩＢＭ社が提供するファイル用のTivoli（商標）ＣＤＰの詳細については、非特許文献１を参照されたい。しかし、既存のＣＤＰシステムは、リモート・サーバ上にバックアップ・コピーを作成し、ネットワーク接続が使用不能である場合は（これはモバイル・ユーザにとって普通のケースである）、データを保護しない。幾つかのＣＤＰシステム（例えば、SonicWALL（商標）ＣＤＰ−その詳細については、非特許文献２を参照されたい）は、冗長なローカル・ハード・ドライブ上にデータを複製する。しかし、このオプションも、モバイル・ユーザにとって便利ではない。というのは、ハード・ドライブは、かさばっていて、バッテリからの余分な電力を消費するからである。
【０００３】
フラッシュ・メモリは、より安く、より大きく、より速くなってきた。フラッシュ・メモリとは、電気的な消去及び再プログラムが可能な不揮発性メモリである。フラッシュ・メモリは、主としてメモリ・カード及びＵＳＢフラッシュ・ドライブ（サム・ドライブ、ハンディ・ドライブ、メモリ・スティック、フラッシュ・スティック、ジャンプ・ドライブ）内で使用される技術であって、一般的なストレージとして、コンピュータ及び他のデジタル製品の間でデータを転送するために使用されるのが普通である。フラッシュ・メモリは、大きなブロックを単位として消去及びプログラムされる、特定のタイプのＥＥＰＲＯＭである。初期のフラッシュ・メモリでは、チップ全体を一度に消去しなければならなかった。フラッシュ・メモリのコストは、バイト・プログラム可能なＥＥＰＲＯＭのコストよりも著しく低く、そのため、相当な量の不揮発性の固体ストレージが必要とされる場合は、支配的な技術になってきた（フラッシュ・メモリの詳細については、非特許文献３を参照されたい）。その結果、フラッシュ・メモリは、取り外し可能ドライブ以外の目的に使用されることが多くなってきた。ハイブリッド・ドライブは、最近の書き込みデータがディスク・プラッタにコミットされる前に、これらの書き込みデータを格納するためのフラッシュ・メモリを含む。（ハイブリッド・ハード・ドライブ（ＨＨＤ）とも呼ばれるハイブリッド・ドライブは、或るタイプの大容量バッファ付きのハード・ディスク・ドライブである。ハイブリッド・ドライブが標準的なハード・ドライブと異なるのは、前者が通常の使用中にデータをキャッシュするための不揮発性フラッシュ・メモリの大容量バッファ（最大１ＧＢ）を使用するという点である。この大容量バッファを主として不揮発性データ・ストレージとして使用することにより、ハード・ドライブのプラッタは、通常のハード・ドライブに見られるように、常時回転するのではなく、殆ど全ての時間にわたって静止することになる。これは、速度、電力消費の減少、改良された信頼性及びより速いブート・プロセス等を含む、多数の利点を提供する。ＨＨＤの詳細については、非特許文献４を参照されたい）。しかし、ハイブリッド・ドライブは、（１）データは、これがディスクにコミットされる前に、フラッシュ・メモリ内にのみ格納される、（２）フラッシュ・メモリ内のデータは、その直後に上書きされ得る、という理由でＣＤＰを提供しない。しかし、フラッシュ・メモリは、次の幾つかの利点、すなわち（１）ハイブリッド・ドライブは、或る書き込みデータをフラッシュ・メモリ内に保存し、従ってハード・ディスクのプラッタが回転していない場合は、当該ハード・ディスクのスピン・アップ動作を延期可能であるために、電力を節約することができる、（２）フラッシュ・メモリは、一定で且つ小さなデータ・アクセス時間を有する、という利点を提供する。従って、ハイブリッド・ディスク及びマイクロソフト社が提供するWindows（登録商標）Vista のReadyBoostは、フラッシュ・メモリを使用してランダムな読み取り要求にサービスすることにより、性能を改良する。（ReadyBoostは、マイクロソフト社のWindows （登録商標）Vistaオペレーティング・システムに最��に含まれたディスク・キャッシング技術である。これは、ＵＳＢ２.０ドライブ上のフラッシュ・メモリ、ＳＤカード、コンパクト・フラッシュ又は他の形式のフラッシュ・メモリを使用して、Windows（登録商標）Vista が稼働するコンピュータの応答性をより良くすることにより、システム性能を向上させることを目的とする）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】http://www-306.ibm.com/software/tivoli/resource-center/storage/cdp.jsp?S_TACT=104CB62&ca=104CB627
【非特許文献２】http://www.sonicwall.com/us/backup_and_recovery.html
【非特許文献３】http://electronics.howstuffworks.com/flash-memory.htm
【非特許文献４】http://www.engadget.com/tag/hhd
【非特許文献５】Ext3cow: A Time-Shifting File System for Regulatory Compliance athttp://hssl.cs.jhu.edu/papers/peterson-tos05.pdf
【非特許文献６】http://historyoftheinternet.org/
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、当分野では、前記従来技術の少なくとも１つの欠点を解決するための解決法が要請されている。
【課題を解決するための手段】
【０００６】
一般に、本発明は、最新の変更データのバックアップ・コピーを維持するようにフラッシュ・メモリ（例えば、ＵＳＢサム・ドライブ）を使用するための手段を提供する。ネットワーク接続性が存在しないか又は十分でない場合、最新の変更データは、ローカル・ハード・ドライブ上に格納され、そして（通常は複数のバージョンで）ローカル・フラッシュ・ドライブ上に複製される。ネットワーク接続性が確立されるとすぐに、累積されたデータは、リモートＣＤＰサーバに送信されるから、前記フラッシュ・ドライブの全空間を再使用することができる。その結果、前記データは常に複製される。すなわち、１つのデータ・コピーが前記ハード・ドライブ上に格納され、そして他のデータ・コピーが（通常は複数のバージョンで）リモート・サーバ又はローカル・フラッシュ・ドライブ上に格納される。従って、前記ＣＤＰサーバ及び前記フラッシュ・ドライブ上の前記データの組み合わせを使用して、前記ハード・ドライブ上に格納されたデータを再構成することができる。
【発明の効果】
【０００７】
本発明は、次の利点を提供する。
１．ＣＤＰを常時提供する−これは、ネットワーク接続性が使用不能である場合さえ、該当する。
２．余分な電力消費は、無視できる程度に過ぎない−これは、モバイル・ユーザにとって重要である。
３．フラッシュ・ドライブは、これを取り外し且つバックアップ・システムとは別個に（例えば、ポケット内に）収納することができる。このようにすれば、主システム及びそのストレージが盗まれるか又は損傷を受けたとしても、フラッシュ・ドライブは、リモートＣＤＰサーバ上に格納されていないデータを依然として保持することができる。
４．既存のシステムに対し、既存及び将来のフラッシュ・ドライブを追加することにより、アップグレードを容易に行うことができる。
５．（ハイブリッド・ドライブと同様に）ディスクの電力を節約し且つ（Windows（登録商標）VistaのReadyBoostと同様に）ランダム・アクセスの性能を改良するために、同じフラッシュ・ドライブ及び同じパッケージ・ソフトを潜在的に同時に使用することができる。
【０００８】
また、本発明は、関係する方法及びコンピュータ・プログラムを提供する。かかる方法及びコンピュータ・プログラムは、継続的データ保護のためにローカル・フラッシュ・メモリ及びリモート・サーバを使用する。
【図面の簡単な説明】
【０００９】
【図１】本発明に従ったスタック可能ファイル・システム・ベースの実装を示す図である。
【図２】本発明を実装することができる、ネットワークの構成を示す図である。
【図３】本発明に従ったＣＰＤクライアントの実施形態を示す図である。
【図４】本発明に従った方法の実施形態の一部を示すフローチャートである。
【図５】本発明に従った方法の実施形態の残部を示すフローチャートである。
【発明を実施するための形態】
【００１０】
本発明は、継続的データ保護のためにローカル・フラッシュ・メモリ及びリモート・サーバを使用するための手段を提供する。但し、リモート・サーバは、リモート・サーバ・ハイブリッドであるとは限らない。
【００１１】
本発明は、（１）デバイス、（２）ブロック・ドライバ及び（３）ファイル・システムの３つの論理レベルのうち任意の論理レベルにおいて実装することができる。本発明がハイブリッド・ドライブを使用する場合、かかるハイブリッド・ドライブは、それらのフラッシュ・メモリを使用して、最新の書き込みデータ・ブロックのバックアップ・コピー及び複数のデータ・バージョンを維持するように、これを修正することができる。前述のように、本発明は、リモート・サーバ・ハイブリッドを使用することを必須としないが、所望であれば、リモート・サーバ・ハイブリッドを使用することができる。データ・バッファをリモート・サーバにコミットするために、ハイブリッド・ドライブは、特別のブロック・ドライバからのサポートを必要とすることがある。完全なブロック・ドライバ・レベルの解決法は、スタック可能デバイス・ドライバとして実装することができる。このスタック可能デバイス・ドライバは、ハード・ディスク・ドライバ（図３の２４２）、フラッシュ・ディスク・デバイス・ドライバ（図３の２４４）及びサーバ（図２のＣＤＰサーバ１０４Ｂ）と通信するために使用されるネットワーク・プロトコル実装（図３の２４６）と対話する。同様に、スタック可能ファイル・システム（Windows（登録商標）上のフィルタ・ドライバ・ファイル・システムとして知られている）は、データをリモート・サーバに書き込むために、ディスク・ベースの２つのファイル・システム（一方はハード・ディスク用であり、他方はフラッシュ・ドライブ用である）及びネットワーク・ファイル・システムを使用することができる。ドライバ・レベル及びファイル・システム・レベルの両方の解決法は、フラッシュ・ドライブ（図３の２４０）がハード・ディスク・ドライブ（図３の２１８）から分離されるという利点を有する。その結果、既存の任意のハード・ディスク（図３の２１８）及びフラッシュ・ドライブ（図３の２４０）を使用したり、これらを独立的にアップグレードしたり、使用されていない場合は、これらを物理的に異なる位置に維持することにより、生存性（survivability）を改良することが可能となる。また、デバイス・レベルの実装は、ハードウェアの変更及び修正されたドライブと通信するための新しいＡＰＩを必要とする。従って、本明細書では、デバイス・レベルの実装について、これ以上詳細に検討しない。
【００１２】
スタック可能デバイス及びファイル・システム実装の両方は、各書き込み要求に応答して、次のように動作する。図４に示すように、プロセス３００がステップ３０２で開始した後、ステップ３０４で、書き込みのために更新済みデータをローカル・ハード・ディスクにサブミットする。ステップ３１１で、更新済みデータをローカル・ハード・ドライブ上に格納し、その後のステップ３２２で、プロセス３００が終了する。同時に、ステップ３０６で、ネットワーク接続性が存在するか否かを決定する。そうであれば、ステップ３０８で、更新済みデータをバックアップのためにサーバに送信し、その後のステップ３２２で、プロセス３００が終了する。そうでなければ、ステップ３１０で、更新済みデータを、ローカル・フラッシュ・ドライブ上のコミット済み書き込みのログに付加する。ステップ３１２で、フラッシュ・ドライブが一杯であるか否かを決定する。そうでなければ、ステップ３１３で、更新済みデータをフラッシュ・ドライブに格納し、その後プロセス３００は、接続点Ａを介して図５の処理に進行する。もし、フラッシュ・ドライブが一杯であれば、ステップ３１４で、フラッシュ・ドライブ内にデータの最新バージョンが格納されているか否かを決定する。そうでなければ、ステップ３１６で、新しい更新バージョンを、ログに以前に書き込まれた同じデータ・ブロックのより古いバージョンに上書きし、その後プロセス３００は、接続点Ａを介して図５の処理に進行する。もし、フラッシュ・ドライブが一杯であり且つデータの最新バージョンを保持していれば、ステップ３１８で、警告をユーザに送信して、当該ユーザの将来のデータ書き込みのうちの幾つかがバックアップされないであろうということを指示し、その後プロセス３００は、接続点Ａを介して図５の処理に進行する。この時点で、ユーザは、作業を停止したり、ローカルのＤＶＤ媒体へのバックアップを開始したり、フラッシュ・ドライブを予備のものと交換したり、又はハード・ディスク・ドライブ障害の場合には、最近のデータ更新バージョンのうちの幾つかが潜在的に失われるというリスクを冒して作業を継続することができる。もっとも、最近のフラッシュ・メモリ・ドライブは、ギガバイト相当のデータを維持することができるから、何千ものファイル（例えば、マイクロソフト社のパワーポイント用プレゼンテーション・ファイル又はマイクロソフト社のワード文書）を維持するのに十分である。従って、殆どのユーザは、ネットワーク接続が使用可能である２つのインターバルの前に（この時点で、フラッシュ・メモリの内容がリモート・サーバにコピーされる）、フラッシュ・メモリのログ空間を使い果たさないであろう。プロセス３００は、接続点Ａを介して図５の処理に進行する。図５のステップ３２０で、ネットワーク接続が存在するか否かを決定する。そうでなければ、ステップ３２０のチェックを連続的に行う。そうであれば、ステップ３２４で、更新済みデータを、バックアップのためにフラッシュ・ドライブからサーバに送信し、ステップ３２６で、更新済みデータをフラッシュ・ドライブから消去し、その後のステップ３２２で、プロセス３００が終了する。
【００１３】
一方では、スタック可能ドライバ・レベルの実装は、ファイル・システム・レベルの実装よりも多くのカスタマイゼーション及び最適化を可能にする。例えば、スタック可能ドライバ・レベルの実装は、フラッシュ・ドライブ用のログのカスタム実装を含むことができる。図１は、スタック可能ファイル・システム・ベースの実装１００を示す。
【００１４】
他方では、スタック可能ファイル・システムは、既に開発され且つサポートされているファイル・システムのコードをより良い態様で再使用することを可能にする。例えば、スタック可能ファイル・システム１０８は、フラッシュ・ドライブ用に設計され且つ独立的に維持される既存のファイル・システム（例えば、ＪＦＦＳ２）１０６及びネットワーク・ファイル・システム（例えば、ＮＦＳ又はＣＩＦＳ）１０４を使用することができる。（ＪＦＦＳ２は、「Journaling Flash File System version 2」の略称であって、フラッシュ・メモリ内で使用されるログ構造化ファイル・システムである。ＪＦＦＳ２は、ＪＦＦＳの後継バージョンであり、２．４．１０リリース以降のＬｉｎｕｘ（登録商標）カーネルに含まれている。また、ＪＦＦＳ２は、「eCos RTOS」及び「RedBoot」ブート・ローダについても使用可能である。ＮＦＳは、「Network File System」の略称であって、１９８４年にサン・マイクロシステムズ社によって最初に開発されたネットワーク・ファイル・システム・プロトコルである。ＮＦＳを使用すると、クライアント・コンピュータ上のユーザは、ネットワーク・デバイスがあたかもそのローカル・ディスクに接続されているかのように、ネットワーク上のファイルに容易にアクセスすることができる。ＣＩＦＳは、「Common Internet File System」の略称であって、ファイル、プリンタ、シリアル・ポート及びネットワーク上にあるノード間の種々の通信への共有アクセスに主として適用されるアプリケーション・レベルのネットワーク・プロトコルである。また、ＣＩＦＳは、認証されたプロセス間通信機構を提供する。ＣＩＦＳは、マイクロソフト社のWindows（登録商標）を搭載したコンピュータによって主として使用され、その場合は、単に「Microsoft Windows Network」と呼ばれる。）これは、スタック可能ファイル・システムをサポートし且つ開発することを簡単にする。さらに、スタック可能ファイル・システムは、ファイル・システムであって、ファイル位置及び名前のようなメタ情報にアクセスする。これは、システムが異なるファイル用の異なるバックアップ・ポリシをサポートすることを可能にする。従って、幾つかのより重要なファイルを複数のバージョンでバックアップし、それほど重要でないファイルを複数のバージョンなしでバックアップし、再生可能なファイルを全くバックアップしないようにすることができる。このファイル・システム実装の追加の利点は、ファイル・システムのページ・キャッシュ上の動作である。すなわち、フラッシュ・メモリ内にあるデータの少なくとも一部がページ・キャッシュ内でキャッシュされることが予測され、その場合、これをリモート・サーバに容易に転送することができるので、フラッシュ・メモリからリモート・サーバへのデータの転送がより速くなる。従って、本発明の推奨実施形態は、スタック可能ファイル・システムとして実装されるが、ブロック・レベルの実装も適切であろう。
【００１５】
本発明の推奨実施形態では、スタック可能ファイル・システムは、バックアップ目的のために、（１）標準のＮＦＳ又はＣＩＦＳサーバ、又は（２）専用化されたＣＤＰサーバ（例えば、Tivoli（商標）ＣＤＰによって使用されるのと同じもの）を使用することができる。
【００１６】
第１のケースでは、リモート・ファイル・サーバは、データのバージョン管理をサポートするために、バージョン管理ファイル・システム１０２を稼働させていなければならない。（バージョン管理ファイル・システム１０２は、例えば、「ext3cow」である。「ext3cow」は、「third extended file system with copy-on-write」の略称であって、「ext3」ファイル・システムに基づくオープン・ソースのバージョン管理ファイル・システムである。バージョン管理は、ブロック・レベルのコピー・オン・ライトを通して実装されるために、「ext3」の名前に「cow」が付されている。「ext3cow」の実装に関する詳細については、非特許文献５を参照されたい。）また、リモート・クライアントがバージョン管理ファイル・システムから或るファイルの特定のバージョンを要求することを可能にするためには、特殊な機構を実装することが必要である。また、クライアント上でスタック可能バージョン管理ファイル・システムを稼働させることが可能であることに留意されたい。この実装は、システムが既存のファイル・サーバ（例えば、ＮＦＳ又はＣＩＦＳサーバ）１０４を修正なしに使用することを可能にするが、その場合は、貧弱な性能を有することが予測される。
【００１７】
第２のケースでは、ＣＤＰサーバと通信するようにネットワーク・ファイル・システムを設計することが必要である。
【００１８】
前述のように、図１及び図２は、本発明に従ったシステムの推奨実施形態のアーキテクチャを示す。さらに、クライアント（デスクトップ、ノートブック、サーバ）（図３）から開始することが記載されている。図２のＣＤＰシステム１００Ｂ内に示すように、ＣＤＰクライアント１０２Ｂがネットワーク１１０Ｂに結合されると、ＣＤＰクライアント１０２Ｂは、例えば、更新済みデータをアップロードするためにＣＤＰサーバ１０４Ｂに結合されるか、或いは介在する私設又は公衆ネットワーク（ネットワーク１１０Ｂ）を介してリモート・プリンタ（プリンタ１１２Ｂ）又はストレージ・デバイス（ストレージ１１４Ｂ）に結合されるようになる。（コンピュータ・ネットワークは、データ、資源及び通信を共有する目的のために、通信システムを使用して相互に接続される複数のコンピュータから構成される。その詳細については、非特許文献６を参照されたい。）モデム、ケーブル・モデム及びイーサネット（登録商標）・カードは、現に使用可能なネットワーク・アダプタの少数のタイプである。（ネットワークカード、ネットワーク・アダプタ又はＮＩＣ（ネットワーク・インタフェース・カード）は、コンピュータがコンピュータ・ネットワークを介して通信することを可能にするように設計されたコンピュータ・ハードウェアの一部である。かかるデバイスは、ネットワーク媒体への物理的なアクセスを提供し且つＭＡＣアドレスの使用を通して低レベルのアドレッシング・システムを提供するので、ＯＳＩ層１（物理層）及び層２（データ・リンク層）デバイスの両方である。かかるデバイスは、ケーブル又は無線を使用して、複数のユーザが相互に接続することを可能にする。）しかし、ネットワークは、折に触れて障害を起こすことがあり、又はＣＤＰサーバ１０４Ｂにデータをアップロードすることができないようなピーク・トラフィックで過負荷になることがある。そのため、ＣＤＰクライアント１０２Ｂは、図４及び図５に示す本発明の方法を使用する必要がある。
【００１９】
図３に示すように、ＣＤＰクライアント２００は、実行時バックアップを行うファイル・システムである。多くのデータ処理システムがそうであるように、ＣＤＰクライアント２００は、プログラム・コードを格納及び／又は実行するのに適しており、システム・バスを通してメモリ要素に対し直接的に又は間接的に結合された少なくとも１つのプロセッサ（処理ユニット２０６）を含む。これらのメモリ要素は、当該プログラム・コードの実行中に使用されるローカル・メモリ（ＲＡＭ２３０）、バルク・ストレージ（ストレージ２１８）及びキャッシュ・メモリ（キャッシュ２３２）を含むことができる。キャッシュ・メモリは、プログラム・コードの実行中にバルク・ストレージからのその検索回数を減少させるために、プログラム・コードの少なくとも一部の一時的ストレージを提供する。Ｉ／Ｏデバイス（外部デバイス２１６）（キーボード、ディスプレイ、ポインティング・デバイス等を含む）は、システムに対し直接的に又は介在するＩ／Ｏコントローラ（Ｉ／Ｏインタフェース２１４）を通して結合することができる。さらに、ＣＤＰクライアント２００は、フラッシュ・メモリ２４０を有する。
【００２０】
ＣＤＰクライアント２００は、階層的に設計されている。すなわち、フラッシュ・メモリ２４０は、リモートＣＤＰサーバ１０４Ｂが使用不能である場合、データ更新バージョンを（潜在的にそれらの複数のバージョンで）維持するバッファとして作用する。言いかえれば、フラッシュ層２４０及びリモート・サーバ１０４Ｂの組み合わせは、任意のファイル又は任意のファイル・バージョンを任意の時間に回復するのに必要な全てのデータを保持する。一旦ネットワーク接続性（例えば、１０６Ｂ及び／又は１０８Ｂ）が再確立されると、収集されたデータは、リモート・サーバ１０４Ｂにサブミットされる。
【００２１】
一般に、フラッシュ層２４０は、制限された容量を有しており、性能を改良するために、データ更新を維持し且つ頻繁にアクセスされるファイルの最新バージョンを維持するために使用される。従って、ＣＤＰの場合、全てのバージョンがサーバ上に格納された後、最新のバージョンを除く全てのバージョンがフラッシュ層２４０から廃棄される。もし、クライアント２００（１０２Ｂ）がサーバ１０４Ｂに接続されるならば、性能を改良するために、アクセス頻度が最も低いデータは、アクセス頻度がより高いデータと置換される。分離された動作の場合には、最新バージョンが格納されるように、データの以前のバージョンが廃棄される。一旦かかる全てのデータが廃棄された後に、より多くの空間が必要になると、同じファイルの同様のデータ・バージョンが廃棄される。本発明のシステムは、ファイル・システム層において動作するから、特定のファイル又はディレクトリの重要性に基づいて、余分のポリシを追加することができる。一旦、ファイルの過去の全てのバージョンが廃棄された後、新しい更新バージョンを格納するために残された空間が十分でなければ、本発明のシステムは、ユーザに対しファイル・システムが一杯であることを宣言するか、又は重要性が最も低いファイル・コピーの廃棄を開始することができる。
【００２２】
フラッシュ層を消耗させることを防止するために、ネットワーク接続性が使用可能である場合、データをフラッシュ・メモリに書き込む代わりに、データをバックアップ・サーバに直接的にサブミットすることができる。
【００２３】
一般に、本発明は、ハードウェア及び／又はソフトウェアを介してコンピュータで実装されることを理解されたい。そのため、クライアント・システム及び／又はサーバは、当分野で公知のコンピュータ化されたコンポーネントを含むであろう。一般に、かかるコンポーネントは、処理ユニット、メモリ、バス、Ｉ／Ｏインタフェース、外部デバイス等を含む。また、本明細書では、継続的データ保護のためにローカル・フラッシュ・メモリ及びリモート・サーバ・ハイブリッドを含む特定の実施形態を説明したが、任意のタイプのバックアップ・サーバに関連して本発明を実装できることを理解されたい。
【００２４】
本明細書では、継続的データ保護のためにローカル・フラッシュ・メモリ及びリモート・サーバを使用するシステム及び方法を開示した。しかし、本発明は、種々の代替実施形態を提供することを理解されたい。例えば、１つの実施形態では、本発明は、コンピュータ・プログラム・コードを含むコンピュータ可読／使用可能媒体を提供することにより、コンピュータ・インフラストラクチャが継続的データ保護のためにローカル・フラッシュ・メモリ及びリモート・サーバを使用することを可能にする。この点に関連して、コンピュータ可読／使用可能媒体に含まれるプログラム・コードは、本発明の種々のプロセス・ステップの各々を実装する。コンピュータ可読／使用可能媒体という用語は、プログラム・コードの任意のタイプの物理的実施形態のうち１つ以上を含むことを理解されたい。特に、コンピュータ可読／使用可能媒体は、１つ以上のポータブル・ストレージ製品（例えば、コンパクト・ディスク、磁気ディスク、テープ等）、メモリ及び／又はストレージ・システム（例えば、固定ディスク、読み取り専用メモリ、ランダム・アクセス・メモリ、キャッシュ・メモリ等）のようなコンピューティング・デバイスの１つ以上のデータ・ストレージ部分上に具体化されたプログラム・コードを含むか、又は（例えば、プログラム・コードの有線式／無線式電子配信中に）ネットワーク上を進行するデータ信号（例えば、伝播信号）として具体化されたプログラム・コードを含む。
【００２５】
本発明の種々の側面に係る前述の記述は、例示及び説明を目的として提示されたものであって、網羅的であること及び開示された形態に本発明を限定することを意図するものではない。当業者にとって、多くの修正及び変形が明らかであろう。かかる修正及び変形は、請求項の記載によって定義されるような本発明の範囲に属することが意図される。
【符号の説明】
【００２６】
１００・・・スタック可能ファイル・システム・ベースの実装
１０２・・・バージョン管理ファイル・システム（ｅｘｔ３）
１０４・・・ネットワーク・ファイル・システム（ＮＦＳ又はＣＩＦＳ）
１０６・・・ファイル・システム（ＪＦＦＳ２）
１０８・・・スタック可能ファイル・システム
１１０・・・仮想ファイル・システム（ＶＦＳ）
１０２Ｂ・・・ＣＤＰクライアント
１０４Ｂ・・・ＣＤＰサーバ
１０６Ｂ、１０８Ｂ・・・ネットワーク接続
１１０Ｂ・・・ネットワーク
２０６・・・処理ユニット
２１８・・・ハード・ディスク・ドライブ
２４０・・・フラッシュ・ドライブ
２４２・・・ハード・ディスク・ドライバ
２４４・・・フラッシュ・ディスク・デバイス・ドライバ
２４６・・・ネットワーク・プロトコル実装
【図１】
0005404637.tif 000002
【図２】
0005404637.tif 000003
【図３】
0005404637.tif 000004
【図４】
0005404637.tif 000005
【図５】
0005404637.tif 000006