(57)【特許請求の範囲】
【請求項１】
ファイル・システムにおけるファイルを更新データで更新するためのリクエストを処理する方法であって、
前記ファイル・システムに送られる、ミラー・ファイルとミラー・コピー関係を有するターゲット・ファイルに対する更新リクエストを処理するステップと、
前記ターゲット・ファイルから前記ミラー・ファイルへのコピー・オペレーションが進行中であるかどうかを決定するステップと、
前記コピー・オペレーションが進行中であるという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するかどうかを決定するステップと、
前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するという決定に応答して、前記ターゲット・ファイル及び前記ミラー・ファイルの両方に対して更新を行うステップと、
前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行しないという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するかどうかを決定するステップと、
前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するという決定に応答して、前記ターゲット・ファイルのみに対して更新を行うステップと、
前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するかどうかを決定するステップによる、前記更新すべきバイトが前記ミラー・ファイルにコピーされる過程にあるという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが前記ミラー・ファイルにコピーされつつあるバイトに先行するまで前記コピー・オペレーションをモニタするステップと、
前記ターゲット・ファイルにおける更新すべきバイトが前記ミラー・ファイルにコピーされつつあるバイトに先行したことに応答して、前記ターゲット・ファイル及び前記ミラー・ファイルの両方に対して更新を行うステップとを含む、方法。
【請求項２】
前記コピー・オペレーションが進行中であるという決定に応答して、現在ミラー・ファイルにコピーされつつある前記ターゲット・ファイルにおけるバイト・オフセット並びに前記ターゲット・ファイルにおける更新すべきバイト・オフセット及び長さを決定するステップを行い、該長さを決定するステップに続いて、前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するかどうかを決定するステップを行う、請求項１に記載の方法。
【請求項３】
スペース管理およびセキュリティ・ポリシーを実装するルールを含んだルール・データベースに含まれるルールであって、前記ターゲット・ファイルがミラー・コピー関係にあることを示すルールを処理するステップを更に含む、請求項１に記載の方法。
【請求項４】
前記ターゲット・ファイルがミラー・コピー関係にあるかどうかを決定するために、前記ターゲット・ファイルまたは前記ターゲット・ファイルを含むディレクトリと関連した属性における情報を処理するステップを更に含み、
前記ターゲット・ファイルがミラー・コピー関係にあることを前記属性が示すという決定に応答してミラー・コピー・オペレーションが遂行される、
請求項１に記載の方法。
【請求項５】
ディレクトリ属性がミラー・コピー関係を示す場合、ディレクトリにおけるすべてのファイルが別のミラー・ファイルにコピーされる、請求項５に記載の方法。
【請求項６】
更新データでファイルを更新するためのリクエストを処理するためのシステムであって、
ファイル・システムと、
前記ファイル・システムに送られる、ミラー・ファイルとのミラー・コピー関係にあるターゲット・ファイルに対する更新リクエストを処理するための手段と、
前記ターゲット・ファイルから前記ミラー・ファイルへのコピー・オペレーションが進行中であるかどうかを決定する手段と、
前記コピー・オペレーションが進行中であるという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するかどうかを決定する手段と、
前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するという決定に応答して、前記ターゲット・ファイル及び前記ミラー・ファイルの両方に対して更新を行う手段と、
前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行しないという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するかどうかを決定する手段と、
前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するという決定に応答して、前記ターゲット・ファイルのみに対して更新を行う手段と、
前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するかどうかを決定する手段による、前記更新すべきバイトが前記ミラー・ファイルにコピーされる過程にあるという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが前記ミラー・ファイルにコピーされつつあるバイトに先行するまで前記コピー・オペレーションをモニタする手段と、
前記ターゲット・ファイルにおける更新すべきバイトが前記ミラー・ファイルにコピーされつつあるバイトに先行したことに応答して、前記ターゲット・ファイル及び前記ミラー・ファイルの両方に対して更新を行う手段とを備える、システム。
【請求項７】
前記コピー・オペレーションが進行中であるという決定に応答して、現在ミラー・ファイルにコピーされつつある前記ターゲット・ファイルにおけるバイト・オフセット並びに前記ターゲット・ファイルにおける更新すべきバイト・オフセット及び長さを決定する手段を動作させ、該長さを決定する手段に続いて、前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するかどうかを決定する手段を動作させる、請求項６に記載のシステム。
【請求項８】
ファイル・システムにおけるファイルを更新データで更新するためのリクエストを処理するためのプログラムであって、コンピュータに、
前記ファイル・システムに送られる、ミラー・ファイルとミラー・コピー関係にあるターゲット・ファイルに対する更新リクエストを処理する手順と、
前記ターゲット・ファイルから前記ミラー・ファイルへのコピー・オペレーションが進行中であるかどうかを決定する手順と、
前記コピー・オペレーションが進行中であるという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するかどうかを決定する手順と、
前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行するという決定に応答して、前記ターゲット・ファイル及び前記ミラー・ファイルの両方に対して更新を行う手順と、
前記ターゲット・ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行しないという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するかどうかを決定する手順と、
前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するという決定に応答して、前記ターゲット・ファイルのみに対して更新を行う手順と、
前記ターゲット・ファイルにおける更新すべきバイトが、前記ミラー・ファイルーにコピーされつつあるバイトに後続するかどうかを決定する手順による、前記更新すべきバイトが前記ミラー・ファイルにコピーされる過程にあるという決定に応答して、前記ターゲット・ファイルにおける更新すべきバイトが前記ミラー・ファイルにコピーされつつあるバイトに先行するまで前記コピー・オペレーションをモニタする手順と、
前記ターゲット・ファイルにおける更新すべきバイトが前記ミラー・ファイルにコピーされつつあるバイトに先行したことに応答して、前記ターゲット・ファイル及び前記ミラー・ファイルの両方に対して更新を行う手順とを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル・リクエストを処理するための方法、システム、およびプログラムに関するものである。
【背景技術】
【０００２】
共用コンピューティング環境では、データ保護、ストレージ・スペース管理、およびセキュリティを提供するためにアプリケーション・プログラムが使用されることが多い。例えば、或るストレージ管理アプリケーションは、ファイルおよびデータのミラーリングされたバックアップ・コピーを維持するために使用可能である。そのようなアプリケーションは、初期ミラー・コピー・オペレーションが完了するまで、ミラーリングの過程にあるファイルへのアクセスを阻止することが多い。ファイルをアクセスするときに即時肯定応答を必要とする主幹業務のアプリケーションは、最初にミラー・ファイルにコピーされる、ミラー・コピー関係にあるファイルをアクセスするために待機している間に遅延が生じる場合、いくつかの問題を経験することがある。データ・セキュリティおよびスペース管理を行うために、更なるアプリケーション・プログラムが提供されることもある。ストレージ管理アプリケーションは、一般に、オペレーティング・システムとインターフェースしてアーカイブ関連オペレーションを遂行するために、カスタマイズされたグラフィカル・ユーザ・インターフェース（ＧＵＩ）およびアプリケーション・プログラム・インターフェース（ＡＰＩ）を利用する。ユーザは、データ保護、セキュリティ、およびスペース管理のような種々のストレージ管理オペレーションを遂行するために、全社的コンピューティング環境では特に複雑であることが多いこれらの種々のアプリケーション・プログラムを使用する方法を学ぶためのかなりの訓練を受けなければならないであろう。更に、種々のストレージ管理オペレーションを管理および遂行するためには、ユーザは、かなりのコンピューティング・リソースを消費し且つデータベースのような専用のハードウェアおよびソフトウェア・コンポーネントを必要とすることが多いインストール済みのアプリケーションを効果的に呼び出して使用しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、ターゲット・ファイルの操作のためにファイル・システムに送られるファイル・リクエストを処理する方法、システム、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００４】
ターゲット・ファイルが満足するファイル属性をルールが指定するかどうかに関して、決定が行われる。ターゲット・ファイルがそのルールのファイル属性に満足するという決定に応答して、その決定されたルールが指定する条件が満たされるかどうかに関する決定が行われる。その条件が満たされるという決定に応答して、その決定されたルールにより指定されたアクションが遂行される。ファイル・リクエストがファイル・システムに送られ、ルールがそのファイル・リクエストを禁止しない場合に実行される。
【０００５】
更なる実施例では、ルールがファイル属性を指定するかどうかの決定は、複数のルールを含むルール・データベースを処理することを含む。各ルールは、ファイル属性、条件、並びに、その条件およびファイル属性が満たされる場合に遂行されるアクションを示す。
【０００６】
更に、ルール・データベースにおけるルールは、スペース管理、セキュリティ、およびデータ保護ポリシーを実装してもよい。
【０００７】
更に、ファイル・システムにおけるファイルを更新データで更新するためのリクエストを処理する方法、システム、およびプログラムが提供される。ファイル・システムに送られる、ミラー・ファイルとミラー・コピー関係にあるターゲット・ファイルに対する更新リクエストが処理される。ターゲット・ファイルからミラー・ファイルへのコピー・オペレーションが進行中であるかどうか、および、コピー・オペレーションが進行中である場合に、ターゲット・ファイルにおける更新すべきバイトがミラー・ファイルにコピーされてしまったかどうかに関する決定が行われる。更新すべきバイトがミラー・ファイルにコピーされてないという決定に応答して、更新データがターゲット・ファイルにおける更新すべきバイトにコピーされる。この場合、更新データは、その後のコピー・オペレーションの進行中にミラー・ファイルにコピーされる。
【０００８】
更なる実施例では、更新すべきバイトがミラー・ファイルにコピーされてしまったという決定に応答して、更新データがターゲット・ファイルにおける更新すべきバイトおよびミラー・ファイルにコピーされる。
【０００９】
更に、更新すべきバイトが、現在、ミラー・ファイルにコピーされつつあるという決定に応答して、コピー・オペレーションの進行がモニタされる。コピー・オペレーションの進行をモニタしている間にその更新すべきバイトがミラー・ファイルにコピーされてしまったという決定に応答して、更新データがターゲット・ファイルにおける更新すべきバイトにコピーされ且つミラー・ファイルにコピーされる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照しながら、本発明の幾つかの実施例について説明するが、他の実施例が利用可能であること、並びに、本発明の範囲から逸脱することなく、構成上のおよび動作上の変更を行い得ることは当然である。
【００１１】
図１は、本発明の実施例を実装し得るコンピューティング環境を示す。ホスト・システム２はオペレーティング・システム４と、ストレージ・デバイスに保存されたファイルの編成を提供するファイル・システム６を含む。ファイル・システム６は、階層ツリー状のファイル構成を提供する。そのファイル構成は、ファイルを保存し得るディレクトリおよびサブディレクトリの使用を含んでもよい。その場合、何れのディレクトリも他のディレクトリまたはルート・ディレクトリのサブディレクトリを含んでもよい。ファイル・システム・ユーザ・インターフェース８は、ユーザがファイル・システムを活用すること、並びに、指定されたディレクトリにファイルを移動すること、ファイルを削除すること、ファイルの名前を変更すること、ファイルを作成すること等のようなファイル・システム関連のオペレーションを遂行することを可能にするために、コマンド・ラインまたはグラフィカル・ユーザ・インターフェースを提供する。ファイル・システム・ユーザ・インターフェース８は、ファイルの階層構成の表示を行うファイル管理プログラムを含んでもよい。ファイル・システム・ユーザ・インターフェース８は、独立型のファイル管理プログラムまたはアプリケーション・プログラムを通してアクセスされるファイル管理機能を含んでもよい。
【００１２】
ファイル・フィルタ１０のプログラムは、ファイル・システム・ユーザ・インターフェース８またはアプリケーション・プログラム（図示されてない）からファイル・システム６に送られたユーザ・ファイル・リクエストをインターセプトし、いずれかのストレージ管理ポリシーが適用されるべきかどうかを決定し、リクエストされたファイル・オペレーションを阻止すべきか或いはオペレーションがファイル・システム６に進んで実行されることを可能にすべきかを決定する。或る実施例では、ファイル・フィルタ１０はオペレーティング・システム４のカーネル５において高優先順位のタスクとして実行される。
【００１３】
ファイル・システム６は、コネクション１４を介して、ストレージ・システム１２に保存されたファイルへのアクセスを行い得る。ルール・データベース１１は１つまたは複数のルールのリストを提供する。このリストは、ルールで指定された属性を有するファイルに関して遂行すべきアクションを指定する。ルール・データベース１１は、ＡＳＣＩＩテキスト・ファイル、拡張可能マークアップ言語（ＸＭＬ）ファイル、リレーショナル・データベース等のような公知のデータ構造で実装可能である。ファイル・フィルタ１０は、ファイル・オペレーションをフィルタするときにルール・データベース１１をアクセスし、アクセスされつつあるファイルにルールが適用するかどうか、およびどのようなアクションを取るべきかを決定する。
【００１４】
ホスト・システム２は、サーバ・クラス・マシン、ワークステーション、デスクトップ・コンピュータ等のような公知の任意のコンピューティング・デバイスを含み得る。ストレージ・システム１２は、ＲＡＩＤ、ＪＢＯＤ、もしくはＤＡＳＤとして構成された１つもしくは複数の相互接続ディスク・ドライブ、テープ・ライブラリのようなテープ・ストレージ・デバイス、または単一もしくは複数のストレージ・ユニット等のような公知のストレージ・デバイスを含み得る。コネクション１４は、ネットワーク接続（例えば、イーサネット（登録商標）、無線イーサネット、ファイバ・チャネル等）のような公知のストレージおよびホストの間の任意のインターフェース、或いは、ホスト２の筐体の外部または内部にあるＡＴＡ、シリアルＡＴＡ（ＳＡＴＡ）、ＳＣＳＩのような公知の他の任意のデータ転送インターフェースでもよい。
【００１５】
ファイル・フィルタ１０がオペレーティング・システム６のカーネル５において実行される実施例では、ファイル・フィルタ１０のオペレーションはユーザにとって透明のままであり、ユーザは、ファイル・フィルタ１０がオペレーティング・システム６の拡張として遂行するルール・ベースのチェックおよびファイル管理オペレーションには気づかない。更に、或る実施例では、ファイル・システムに対するファイル・フィルタ１０の拡張は、異なるオペレーティング・システムおよびファイル・システムのために書かれることもある。このように、ファイル・フィルタ１０はそれらのファイル・システムに対して同じ機能を遂行し且つ同様に動作し、それによって、ユーザが操作するファイル・システムおよびオペレーティング・システムに関係なく、ユーザがフィルタリング・オペレーションを制御するためのルールを作成することを可能にするために同様のユーザ・インターフェースを提供するようオペレーティング・システム・プラットフォームとは独立にフィルタ・オペレーションを標準化するであろう。
【００１６】
図２は、ルール・データベース１１におけるルール・エントリを示す。各ルール・エントリは、次のような情報を示す：
ファイル属性５２：ルールが適用されるファイルの１つまたは複数の属性。属性は、特定のファイル名、ディレクトリ名、ファイル・サイズ、ファイル・タイプ、ファイルの作成者、日付、リクエストを発したアプリケーションまたはユーザ等を含んでもよい。
条件５４：ファイル属性５２を満足するファイルに関して、指定されたアクション５６が遂行される前に存在しなければならない条件を指定する。その条件は、ファイル・サイズ、ファイル・タイプ、ファイル名等、或いは、ファイルに関連した他の条件、または、ホストにおける利用可能なストレージ・スペース等のようなそのファイルにとって外部のパラメータに関連した何らかの他の条件を指定してもよい。条件は、リクエストを発生するアプリケーション・プログラムのソース、リクエストを開始したユーザ等のようなそのファイルに送られるＩ／Ｏリクエストの属性を示してもよい。例えば、セキュリティ・ルールは、ファイルをアクセスするための許可を有するユーザまたはアプリケーションを指定する条件を有してもよい。更に、条件は、書き込みリクエストまたは読み取りリクエストのような特定のタイプのＩ／Ｏリクエストのみに適用してもよい。例えば、更新がファイルのミラー・コピーに適用されることを確実にするためのデータ保護ルールを、指定された属性を有するファイルへの何らかの書き込みに適用してもよく、或いは、リクエストを開始するユーザが指定されたアイデンティティを持たない場合のようなユーザ・アイデンティティの条件に基づいて特定のファイルに対する読み取りまたは書き込みを、セキュリティ・ルールが制限してもよい。属性／条件が満たされる場合にアクションが遂行されるターゲット・ファイルの条件を属性自体が含むように、条件および属性情報が結合されてもよい。
アクション５６：１つまたは複数のファイル属性５２を有するファイルに関して条件５４が満たされる場合に遂行すべきアクションを指定する。セキュリティ・ルールの場合、アクションは、読み取り専用、読み取りおよび書き込み等のような或るレベルのアクセスを可能にする。データ保護ルールの場合、アクションはいかなる更新または変更もミラー・コピーにコピーすることを指定するようにしてもよい。
【００１７】
図３は、ファイル・システム６において表されたターゲット・ファイルに送られるＩ／Ｏリクエストを受け取ったとき、ルール・データベース１１を処理するためにファイル・フィルタ１０によって遂行されるオペレーションを示す。Ｉ／Ｏリクエストを受け取ったことに応答して（ブロック１００）、ルール・データベース１１における各ルールｉに対して、ブロック１０２乃至ブロック１０８におけるループが遂行される。ルールｉにより指定された１つまたは複数の属性５２および条件５４がターゲット・ファイルおよびそのターゲット・ファイルに関連した他の任意のパラメータによって満たされる場合（ブロック１０４）、ルールｉのためのアクション５６において指定されたオペレーションが実行される（ブロック１０６）。アクションを実行した後（ブロック１０６から）、または条件が満たされない場合（ブロック１０４のノー・ブランチから）、ルール・データベース１１における更なるルールを考察するように制御が進行する（ブロック１０８）。すべてのルールを処理した後、Ｉ／Ｏリクエストを拒否または許容するためのアクションが存在しない場合（ブロック１１０）、ファイル・フィルタ１０が、実行すべきＩ／Ｏ（アクセス）リクエストをファイル・システム６に送る（ブロック１１２）。
【００１８】
前述したように、属性、条件、およびアクションは、ルールによって定義されたセキュリティ、データ保護、またはスペース管理ポリシーのタイプ次第で変り得るものである。セキュリティ指向のルールに関して、属性５２は、ディレクトリ・パス、ファイル名、ファイル・タイプ等、またはターゲット・ファイルにおける他の任意の属性を指定してもよいし、条件５４は、ターゲット・ファイルをアクセスすることを許可された１以上のユーザまたはアプリケーションのグループを指定してもよい。セキュリティ条件５４は、１つまたは複数の特定タイプのＩ／Ｏリクエスト、例えば、読み取り、書き込み、削除、名前変更、修正、移動等、およびファイルをアクセスしようとしているユーザまたはアプリケーションのアイデンティティに対するチェックのように多層化されてもよい。ユーザ・アイデンティティは、特定のユーザ、またはそのユーザが関連するもっと大きいワークグループを指定してもよい。セキュリティ条件は、更に、アクセスを許可するためにＩ／Ｏリクエストと関連付けられるべきパス・コードを指定してもよい。アクション５６は、アクセスを可能にするように、或いは、アクセスを拒否するように指定することも可能である。更に、アクションは、条件が満たされる場合にアクセスを可能にするように、および、条件が満たされない場合にアクセスを拒否するように、指定することも可能である。更に、セキュリティ・ポリシーは、リクエストが書き込みであるとき、ファイルがウイルスまたはワームのような不正コードを含むかどうかを決定するために、および不正コードの条件が満たされる場合に阻止アクションを指定するために、何らかの属性を有するファイルの内容をチェックしてもよい。更に、アクションは、外部機能を呼び出してチェック・オペレーションを遂行させてもよい。
【００１９】
スペース管理ルールに関して、属性５２は、ターゲット・ファイルを識別するためにパス、ファイル名、ファイル・タイプ等、または他の任意の属性を指定してもよく、条件５４は、ファイルの属性がサイズ条件、ファイル・タイプ等のような条件を満たすことを指定してもよい。アクション５６は、指定された属性を有するファイルが条件を満たす場合、Ｉ／Ｏリクエストを許容すべきか或いは許容すべきでないかを指定してもよい。例えば、スペース管理ルール属性／条件は、或るタイプ（例えば、ＭＰ３、音楽、ビデオ等）のファイルがサイズ制約を越える場合、そのようなファイルは加えられなくてもよいということを指定してもよい。更に、条件は、利用可能なストレージ・スペースのような特定のファイルに関係のないパラメータまたは加えるべきファイルのサイズをチェックしてもよい。この方法では、スペース管理ルールは、或るタイプのファイルの付加が余りにも多くの利用可能なストレージ・スペースを使い果たす場合、またはそれらの付加によって特定のタイプのファイルが加えられるのを妨げる場合、そのファイルが加えられることを制限してもよい。
【００２０】
データ保護ルールに関して、ルール５０（図２）は、ファイル名のような指定された属性／条件を有する１つのファイル、ディレクトリにおけるすべてのファイル、または或るタイプ、日付、もしくはサイズのすべてのファイルのミラー・コピー関係を維持すること（アクション５６）を指定してもよい。ミラー・コピー・データ保護ルールがルール・データベース１１に加えられる場合、ミラー・コピーを必要とする１つまたは複数のファイルの初期コピーが、アクション５６において指定されたミラー・ロケーションにコピーされる。ユーザは、ミラー・コピー・ファイルを初期設定および維持するようにファイル・システム・ユーザ・インターフェース８を介して指定し、それによって、ユーザ・アクションは、ソース・ファイルを１つのロケーションからミラー・ロケーションにコピーするためのプロセスを開始すると共に、同時に、ソースに対して行われたすべての更新をミラー・ロケーションにコピーするためのルールを加えるようにしてもよい。ミラー・コピーを必要とするファイルは、データベースまたは公知の他の任意のタイプのデータ・オブジェクトを含んでもよい。
【００２１】
図４は、ファイル・フィルタ１０が、ルール・データベース１１におけるルールによりミラー・コピー関係にあるファイルに対する更新リクエストを受け取ったときに遂行するオペレーションを示す。そのような更新リクエストを受け取ったとき（ブロック１５０）、更新のターゲットがオープンしてなく且つミラー・コピー・ファイルにコピーされる過程にない（ブロック１５２）、即ち、既にコピーされている場合、更新が書き込みのターゲットおよびミラー・コピーの両方に対して行われる（ブロック１５４）。そうでない場合、書き込みのターゲットが初期のミラー・コピー動作の一部としてコピーされる過程にある場合、ファイル・フィルタ１０は、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイト・オフセット、並びに、ターゲット・ファイルに対する更新のバイト・オフセットおよび長さを決定する（ブロック１５６）。ファイルにおける更新すべきバイトが、現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに先行する場合（ブロック１５８）、更新すべきバイトが既にミラーリングされているため、更新が、ターゲット・ファイルおよびミラー・ファイルの両方に対して行われる（ブロック１６０）。これに対して、ファイルにおける更新すべきバイトが現在ミラー・ファイルにコピーされつつあるターゲット・ファイルにおけるバイトに続く場合（ブロック１６２）、ファイル・フィルタ１０はターゲット・ファイルに対してのみ更新を行う（ブロック１６４）。そのような場合、それらの更新されたバイトがその後ミラー・コピーの初期コピー・オペレーションの対象になるとき、更新がミラー・コピーに対して行われるであろう。
【００２２】
更新すべきバイトが初期コピーの一部としてミラー・コピーにコピーされる過程にある場合（ブロック１６２からのノー・ブランチ）、ファイル・フィルタ１０は、ターゲット・ファイルにおける更新すべきバイトが現在ミラー・コピー・ファイルにコピーされつつあるバイトに先行するまで、初期ミラー・コピー・プロセスをモニタする（ブロック１６６）。初期コピーが更新すべきバイトを越えて進行したとき、ファイル・フィルタ１０はブロック１６０に進み、ターゲット・ファイルおよびミラー・コピーの両方で更新を行わせる。
【００２３】
上記の論理では、ファイル・フィルタ１０は、ファイルにおけるどのバイトがコピーされつつあるかに基づいて、ターゲット・ファイルまたはミラー・コピーに対して更新を行うべきかどうかを決定する。別の実施例では、ファイル・フィルタ１０は、ミラー・コピーの現在のサイズがターゲット・ファイルにおける更新すべきバイト・オフセットよりも大きいかどうかを考慮することによってこの決定を行ってもよい。そのような手法を使用すると、ターゲット・ファイルにおける更新すべきバイトは、ミラー・コピーが更新すべき範囲における最後のバイトよりも多くのバイトを有する場合にはコピーされており、一方、ミラー・コピーがターゲット・ファイルにおける更新すべき最後のバイトのオフセットよりも少ないバイトを有する場合にはミラー・ファイルにコピーされてない。更に、ファイル・システム６における１つのターゲット・ファイルは、そのターゲット・ファイルのコピーがファイル・システム６における複数のミラー・ファイルに維持されるように、複数のミラー・コピー関係（ルール）と関連付けられてもよい。
【００２４】
更に、ミラー・コピー関係が、特定のファイルではなく、ディレクトリと関連付けられる場合、そのミラー・コピー関係は、ディレクトリにおけるすべてのファイルに対してミラー・ファイルをコピーおよび維持するためにミラー・ディレクトリを指定してもよい。そのような実施例では、ミラー・コピー・ファイルは、元のディレクトリにおけるファイルと同じ名前、または元のディレクトリにおけるファイルから引き出された名前を有してもよい。
【００２５】
図４における上記のオペレーションの場合、たとえ更新すべきターゲット・ファイルが、現在、初期ミラー・コピー・オペレーションの一部としてコピーされつつあっても、書き込みが進行することを可能にされる。これは、ターゲット・ファイルがコピーされつつある間、書き込みおよびユーザ・アクセスが進行することを可能にする。
【００２６】
上述の実施例の場合、セキュリティ、スペース管理、およびデータ保護オペレーションは、ユーザがこれらの機能の各々に対して別々のアプリケーション・プログラムをインストールおよび学習する必要がないように、ファイル・システムと統合されてもよい。更に、セキュリティ、スペース管理、およびデータ保護ポリシーをユーザにとって透明な態様で実装することも可能である。その場合、１つまたは複数のルールが適合するかどうかを決定してルール・リクエスト間の競合を管理するためにすべてのアクセス・リクエストを自動的に処理する、カーネル内で稼動するフィルタがそれらのポリシーを処理する。
【００２７】
本明細書において開示されるストレージ管理オペレーションは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを生成するための標準的なプログラミングまたは技術的手法を使って、方法、装置またはプログラムとして実装可能である。製造物による実装も本発明の範囲内である。ここで「製造物」とは、ハードウェア・ロジック（例えば、集積回路チップ、プログラマブル・ゲート・アレイ、ＡＳＩＣ等）、または、磁気記憶媒体（例えば、ハードディスク・ドライブ、フレキシブル・ディスク、テープ等）、光ディスク記憶装置（例えば、ＣＤ−ＲＯＭ、光ディスク等）、揮発性および不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル・ロジック等）のようなコンピュータ可読媒体において実現されるコードまたはロジックを指す。コンピュータ可読媒体におけるコードはプロセッサによってアクセスおよび実行される。好適な実施例が実装されるコードは、更に、伝送媒体を介して、または、ファイル・サーバからネットワークを介してアクセス可能なものであってもよい。そのような場合、コードが実装される製造物は、更に、ネットワーク伝送線、無線伝送媒体、信号伝播空間、無線波、赤外線信号等のような伝送媒体を含んでもよい。従って、「製造物」は、コードが組み込まれる媒体を含んでもよい。更に、「製造物」は、コードが組み込まれ、処理され、および実行されるハードウェアおよびソフトウェア・コンポーネントの組み合わせを含んでもよい。勿論、本発明の範囲から逸脱することなく、この構成に対して多くの修正を行い得ること、および製造物が公知の任意の情報保持媒体を含み得ることは当業者には明らかであろう。
【００２８】
上記の実施例では、セキュリティ、スペース管理、およびデータ保護ポリシーは、ルール・データベースにおけるルールによって定義される。別の実施例では、セキュリティ、スペース管理、およびデータ保護ポリシーは、ルールが、そのようなルールを有する属性を持ったファイるまたはディレクトリにおけるすべてのファイルに適用されるように、ファイルまたはディレクトリと関連した属性によって定義されてもよい。例えば、ユーザは、セキュリティ、スペース管理、およびデータ保護ポリシーを、ファイル・システムのディレクトリに対して定義された属性と関連付けてもよい。Ｗｉｎｄｏｗｓ（登録商標）のようなオペレーティング・システムでは、ディレクトリに割り当て可能な属性は、メニューを表示するためにユーザ・インターフェース・ウィンドウにおいて表示されたディレクトリの名前の上でマウス・ボタンを右クリックすること、および、しかる後にそのメニューにおいて表示されたプロパティ・オプションを選択することによってアクセスされる。
【００２９】
上記の特定の実施例では、ファイル・フィルタ１０が別のプログラム・コンポーネントとして示される。ファイル・フィルタ１０は、ファイル・システム６とは別に、たとえばアプリケーション・プログラムとしてインストールされてもよい。このアプリケーション・プログラムは、オペレーティング・システム４およびファイル・システム６が初期設定されるときに実行され且つユーザが修正または移動しようとしているファイルを遮蔽する。或いは、ファイル・フィルタの機能がオペレーティング・システム内に直接に組み込まれてもよく、オペレーティング・システムと共にインストールされたファイル・システムの機能として使用可能にされてもよい。
【００３０】
図３および図４は、特定の順序で生じる特定のオペレーションを示しているが、選択されたオペレーションを異なる順序で実行したり、修正したり、除去したりすることも可能である。更に、上記の実施例の要旨を変えることなく、ステップを追加することも可能である。更に、本明細書で説明したオペレーションは逐次に生じてもよく、或いは、選択されたオペレーションが並列に処理されてもよい。更に、オペレーションが単一の処理ユニットまたは分散処理ユニットによって実行されてもよい。
【００３１】
図５は、図１に示されたホスト・システム２のコンピュータ・アーキテクチャ２００の一実施例を示す。アーキテクチャ２００は、プロセッサ２０２（例えば、マイクロプロセッサ）、メモリ２０４（例えば、揮発性メモリ装置）、およびストレージ２０６（例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等）を含み得る。ストレージ２０６は、内部ストレージ・デバイスまたはネットワーク接続ストレージを含み得る。ストレージ２０６におけるプログラムは、公知の態様でメモリ２０４にロードされ、プロセッサ２０２によって実行される。更に、アーキテクチャ２００は、ネットワークとの通信を可能にするためのネットワーク・カード２０８を含む。プロセッサ２０２にユーザ入力を供給するために入力装置２１０が使用され、それは、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチ検知ディスプレイ・スクリーン、または、公知の他の任意の活動化機構もしくは入力機構を含み得る。出力装置２１２は、プロセッサ２０２または他のコンポーネントから伝送された情報を表示することができるディスプレイ・モニタ、プリンタ等である。
【００３２】
以上、本発明の実施例について詳細に説明してきたが、上記の実施例は例示のためだけに示されており、本発明を限定することを意図するものでもない。上記の教示するところに照らして、多くの修正および変更が可能であることは言うまでもない。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施例が実装されるコンピューティング環境を示すブロック図である。
【図２】本発明の実装に従ってストレージ管理ルールに維持される情報を示す図である。
【図３】本発明の実装によるストレージ管理オペレーションのフローチャートである。
【図４】本発明の実装によるストレージ管理オペレーションのフローチャートである。
【図５】図１に関連して説明したコンピューティング環境を実現するために使用可能なコンピューティング・アーキテクチャを示すブロック図である。
【図１】
0004378421.tif 000002
【図２】
0004378421.tif 000003
【図３】
0004378421.tif 000004
【図４】
0004378421.tif 000005
【図５】
0004378421.tif 000006