(57)【要約】【課題】ファイル同期のためのハードウェアへの負荷を軽減するファイル管理システム等を提供すること【解決手段】ファイル管理システムは、ファイルの更新履歴を記録する時刻計測部と、更新履歴に基づいてファイルの更新間隔及びブランク期間を算出し、更新間隔及びブランク期間に基づいてファイルの同期時刻を決定する更新間隔演算部と、同期時刻に複数の記憶媒体に記憶されたファイルの同期を実行するファイル管理部と、を備えている。【選択図】図２
2008293218.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶媒体にそれぞれ記憶されたファイルの同期処理を行うファイル管理システムにおいて、
前記ファイルの更新履歴を記録する時刻計測部と、
前記更新履歴に基づいて前記ファイルの更新間隔及びブランク期間を算出し、前記更新間隔及びブランク期間に基づいて前記ファイルの同期時刻を決定する更新間隔演算部と、
前記同期時刻に前記複数の記憶媒体に記憶されたファイルの同期を実行するファイル管理部と、
を備えたことを特徴とするファイル管理システム。
【請求項２】
前記更新間隔演算部は、前記更新間隔及び前記ブランク期間をファイル管理用メタデータに対応付けて記録することを特徴とする請求項１に記載のファイル管理システム。
【請求項３】
前記更新間隔演算部は、前回同期した時刻から、前記更新履歴に含まれる更新間隔だけ経過した時刻を前記同期時刻とすることを特徴とする請求項１または請求項２に記載のファイル管理システム。
【請求項４】
前記更新間隔演算部は、前記ファイルへの書き込みが発生し始めた時刻に、その書き込みが収束する時刻を予測し、その時刻を次回の同期時刻とすることを特徴とする請求項１ないし請求項３のいずれかひとつに記載のファイル管理システム。
【請求項５】
前記更新間隔演算部は、前記ファイルへの書き込み発生し始めから書き込みが収束するまでの継続時間を推測し、この継続時間に基づいて書き込みが収束する時刻を予測することを特徴とする請求項４に記載のファイル管理システム。
【請求項６】
前記更新間隔演算部は、前記同期時刻毎に、その時刻に同期を実行すべきファイルのリストである更新ディレクトリを生成し、
前記ファイル管理部は、前記更新時刻に前記更新ディレクトリに記録されたファイルに対して前記同期を実行することを特徴とする請求項１ないし請求項５のいずれかひとつに記載のファイル管理システム。
【請求項７】
一のマスターサーバが前記時刻計測部と前記更新間隔演算部と前記ファイル管理部を備え、前記マスターサーバと接続され前記マスターサーバが管理するファイルの複製ファイルを管理する一または二以上のスレーブサーバが前記時刻計測部を備え、
前記更新間隔演算部は、前記スレーブサーバから受信した前記複製ファイルの前記更新履歴に基づいて前記更新間隔及びブランク期間を算出することを特徴とする請求項１ないし請求項６のいずれかひとつに記載のファイル管理システム。
【請求項８】
一のマスターサーバが前記時刻計測部と前記更新間隔演算部を備え、前記マスターサーバと接続され前記マスターサーバが管理するファイルの複製ファイルを管理する一または二以上のスレーブサーバが前記時刻計測部と前記ファイル管理部を備え、
前記更新間隔演算部は、前記スレーブサーバから受信した前記複製ファイルの前記更新履歴に基づいて前記更新間隔及びブランク期間を算出し、
前記ファイル管理部は、前記更新時刻を前記マスターサーバから受信することを特徴とする請求項１ないし請求項６のいずれかひとつに記載のファイル管理システム。
【請求項９】
前記時刻計測部は、前記ファイルの更新を実行した前記スレーブサーバの識別情報に対応付けて前記更新履歴を記録し、
前記更新時間演算部は、前記スレーブサーバ毎に前記更新時刻を算出することを特徴とする請求項７または請求項８に記載のファイル管理システム。
【請求項１０】
前記時刻計測部は、前記ファイルの更新を要求したユーザの識別情報または前記ファイルの更新を要求するコマンドを送信したクライアントの識別情報に対応付けて前記更新履歴を記録し、
前記更新時間演算部は、前記ユーザ毎または前記クライアント毎に前記更新時刻を算出することを特徴とする請求項７または請求項８に記載のファイル管理システム。
【請求項１１】
前記複数の記憶媒体のうち少なくともひとつは交換可能な記憶媒体であることを特徴とする請求項１ないし請求項６いずれかひとつに記載のファイル管理システム。
【請求項１２】
複数の記憶媒体にそれぞれ記憶されたファイルの同期処理を行うファイル管理方法において、
時刻計測部が、前記ファイルの更新履歴を記録する時刻計測工程と、
更新間隔演算部が、前記更新履歴に基づいて前記ファイルの更新間隔及びブランク期間を算出し、前記更新間隔及びブランク期間に基づいて前記ファイルの同期時刻を決定する更新間隔演算工程と、
ファイル管理部が、前記同期時刻に前記複数の記憶媒体に記憶されたファイルの同期を実行するファイル管理工程と、
を備えたことを特徴とするファイル管理方法。
【請求項１３】
前記更新間隔演算工程では、前記更新間隔及び前記ブランク期間をファイル管理用メタデータに対応付けて記録することを特徴とする請求項１２に記載のファイル管理方法。
【請求項１４】
前記更新間隔演算工程では、前回同期した時刻から、前記更新履歴に含まれる更新間隔だけ経過した時刻を前記同期時刻とすることを特徴とする請求項１２または請求項１３に記載のファイル管理方法。
【請求項１５】
前記更新間隔演算工程では、前記ファイルへの書き込みが発生し始めた時刻に、その書き込みが収束する時刻を予測し、その時刻を次回の同期時刻とすることを特徴とする請求項１２ないし請求項１４のいずれかひとつに記載のファイル管理方法。
【請求項１６】
前記更新間隔演算工程では、前記ファイルへの書き込み発生し始めから書き込みが収束するまでの継続時間を推測し、この継続時間に基づいて書き込みが収束する時刻を予測することを特徴とする請求項１５に記載のファイル管理方法。
【請求項１７】
前記更新間隔演算工程では、前記同期時刻毎に、その時刻に同期を実行すべきファイルのリストである更新ディレクトリを生成し、
前記ファイル管理工程は、前記更新時刻に前記更新ディレクトリに記録されたファイルに対して前記同期を実行することを特徴とする請求項１２ないし請求項６のいずれかひとつに記載のファイル管理方法。
【請求項１８】
一のマスターサーバが前記時刻計測部と前記更新間隔演算部と前記ファイル管理部を備え、前記マスターサーバと接続され前記マスターサーバが管理するファイルの複製ファイルを管理する一または二以上のスレーブサーバが前記時刻計測部を備え、
前記更新間隔演算工程では、前記スレーブサーバから受信した前記複製ファイルの前記更新履歴に基づいて前記更新間隔及びブランク期間を算出することを特徴とする請求項１２ないし請求項１７のいずれかひとつに記載のファイル管理方法。
【請求項１９】
一のマスターサーバが前記時刻計測部と前記更新間隔演算部を備え、前記マスターサーバと接続され前記マスターサーバが管理するファイルの複製ファイルを管理する一または二以上のスレーブサーバが前記時刻計測部と前記ファイル管理部を備え、
前記更新間隔演算工程では、前記スレーブサーバから受信した前記複製ファイルの前記更新履歴に基づいて前記更新間隔及びブランク期間を算出し、
前記ファイル管理工程では、前記更新時刻を前記マスターサーバから受信することを特徴とする請求項１２ないし請求項１７のいずれかひとつに記載のファイル管理方法。
【請求項２０】
前記時刻計測工程では、前記ファイルの更新を実行した前記スレーブサーバの識別情報に対応付けて前記更新履歴を記録し、
前記更新時間演算工程では、前記スレーブサーバ毎に前記更新時刻を算出することを特徴とする請求項１８または請求項１９に記載のファイル管理方法。
【請求項２１】
前記時刻計測工程では、前記ファイルの更新を要求したユーザの識別情報または前記ファイルの更新を要求するコマンドを送信したクライアントの識別情報に対応付けて前記更新履歴を記録し、
前記更新時間演算工程では、前記ユーザ毎または前記クライアント毎に前記更新時刻を算出することを特徴とする請求項１８または請求項１９に記載のファイル管理方法。
【請求項２２】
前記複数の記憶媒体のうち少なくともひとつは交換可能な記憶媒体であることを特徴とする請求項１２ないし請求項１７いずれかひとつに記載のファイル管理方法。
【請求項２３】
複数の記憶媒体にそれぞれ記憶されたファイルの同期処理をコンピュータに実行させるファイル管理プログラムにおいて、
コンピュータに、
前記ファイルの更新履歴を記録する時刻計測処理と、
前記更新履歴に基づいて前記ファイルの更新間隔及びブランク期間を算出し、前記更新間隔及びブランク期間に基づいて前記ファイルの同期時刻を決定する更新間隔演算処理と、
前記同期時刻に前記複数の記憶媒体に記憶されたファイルの同期を実行するファイル管理処理と、
を実行させることを特徴とするファイル管理プログラム。
【請求項２４】
前記更新間隔演算処理では、前記更新間隔及び前記ブランク期間をファイル管理用メタデータに対応付けて記録することを特徴とする請求項２３に記載のファイル管理プログラム。
【請求項２５】
前記更新間隔演算処理では、前回同期した時刻から、前記更新履歴に含まれる更新間隔だけ経過した時刻を前記同期時刻とすることを特徴とする請求項２３または請求項２４に記載のファイル管理プログラム。
【請求項２６】
前記更新間隔演算処理では、前記ファイルへの書き込みが発生し始めた時刻に、その書き込みが収束する時刻を予測し、その時刻を次回の同期時刻とすることを特徴とする請求項２３ないし請求項２５のいずれかひとつに記載のファイル管理プログラム。
【請求項２７】
前記更新間隔演算処理では、前記ファイルへの書き込み発生し始めから書き込みが収束するまでの継続時間を推測し、この継続時間に基づいて書き込みが収束する時刻を予測することを特徴とする請求項２６に記載のファイル管理プログラム。
【請求項２８】
前記更新間隔演算処理では、前記同期時刻毎に、その時刻に同期を実行すべきファイルのリストである更新ディレクトリを生成し、
前記ファイル管理処理では、前記更新時刻に前記更新ディレクトリに記録されたファイルに対して前記同期を実行することを特徴とする請求項２３ないし請求項２７のいずれかひとつに記載のファイル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスクなどの外部記憶装置に記憶されたファイルのファイル管理システムに係り、特に、複数の外部記憶装置に記憶されたファイルの同期管理システムに関する。
【背景技術】
【０００２】
パーソナルコンピュータ等のクライアントがネットワーク経由でファイルを共有する場合、ネットワーク上のファイルサーバが搭載するディスク領域を管理するファイル管理システムがファイル管理をしていた。その場合、外部記憶装置上のデータの喪失を防ぐため、あるいは特定の外部記憶装置へのアクセス集中を防ぐために、同じネットワーク上に存在する外部記憶装置を使用して、定期的にデータのコピーを作成してバックアップすることが一般に行われている。具体的には、コピーを生成することにより複数の外部記憶装置で同じデータを保持することで、同じファイルへのアクセス負荷を、複数の外部記憶装置に分散し、負荷を下げることを実現していた。また、テープなどの交換媒体にコピーして、交換媒体を安全な場所で保管することにより、重要データの喪失リスクを低減していた。
【０００３】
特許文献１には、ファイル管理システムを搭載したネットワーク接続型ストレージのバックアップに、ファイル管理システムを搭載した外部部記憶装置を使用することで、ファイル単位でのバックアップ動作を実現する、あるいは更新されたファイルのみをバックアップする差分バックアップを実現するバックアップシステムが記載されている。
【０００４】
特許文献２には、ウェブサーバなどのHTTP(HyperText Markup Language)でファイル入出力を行うファイル管理システムにおいて、ページデータの更新間隔情報を持つことにより、サーバーアクセス頻度を抑制し、ファイルアクセスやネットワークの負荷を低減する方式が記載されている。
【０００５】
特許文献３には、情報種別ごとの同期レベルを登録・管理する同期レベル管理テーブルと、同期レベルに対する情報の同期時間間隔を登録・管理する同期間隔登録テーブルを備えたストレージシステムが記載されている。
【０００６】
【特許文献１】特開２００３−１９６１３６号公報
【特許文献２】特開２００１−１５９９９７号公報
【特許文献３】特開２００４−００５０９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記の本発明に関連する技術には、次のような課題があった。
ファイル管理システムでは、ファイル管理システムが管理したファイルという論理的な集まりの生成された日時、更新日時、所有者、その他の属性などを管理するものであるが、データの更新頻度、利用形態、更新頻度の時間変動を管理していない。そのため、常に最新状態を反映したファイルの同期、例えばバックアップするためには、バックアップ動作自体を頻繁に実施する、ファイルの更新状況を常にモニタする必要などが生じる。
その結果、外部記憶装置等のハードウェアやネットワークへの負荷が大きくなる課題があった。
【０００８】
よって、本発明は、ファイル同期のためのハードウェアへの負荷を軽減するファイル管理システム等を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明のファイル管理システムは、ファイルの更新履歴を記録する時刻計測部と、更新履歴に基づいてファイルの更新間隔及びブランク期間を算出し、更新間隔及びブランク期間に基づいてファイルの同期時刻を決定する更新間隔演算部と、同期時刻に複数の記憶媒体に記憶されたファイルの同期を実行するファイル管理部と、を備えている。
【発明の効果】
【００１０】
本発明によれば、ファイル同期のためのハードウェアへの負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施例について図面を参照して詳細に説明する。
図１は、本発明の第１の実施例である分散ファイルサービスシステムの全体構成図である。
第１の実施例は、ファイルサービスを行うサーバとして、システム全体のアクセス管理を行うマスターサーバ１とそのデータの複製を持つスレーブサーバ２を備えている。これらのファイルサーバはネットワーク３を介して接続されている。マスターサーバ１とスレーブサーバ２は、それぞれ、ファイルを格納する外部記憶装置１９、２８を備えている。
また、第１の実施例は、これらのサーバにネットワーク３を介してアクセスする複数のクライアント４を備えている。図１には、マスターサーバ、スレーブサーバがそれぞれ１台のケースを示しているが、マスターサーバ、スレーブサーバは複数でも良い。また、クライアントも図１では２台としているが、３台以上でもよい。
【００１２】
クライアント４は、パーソナルコンピュータ（以下、「ＰＣ」と書く）等の情報処理装置で、ネットワーク３に接続する機能と、マスターサーバ１及びスレーブサーバ２が提供するファイル共有サービスを利用するクライアントの機能を備えている。
各クライアント４は、マスターサーバ１又はスレーブサーバ２にファイルの入出力を要求するが、通常の利用では、スレーブサーバ２の台数を複数にすることで負荷分散を図る。その場合、クライアント４は複数のスレーブサーバ２から１台を選択して、スレーブサーバ２上のファイルにアクセスする。クライアント４がスレーブサーバを選択する手段として、例えば、インターネット上で利用されているＤＮＳ(Domain Name System)サーバを介したＩＰ(Internet Protocol)アドレス解決を応用することができる。具体的には、例えば、問い合わせを受けたＤＮＳサーバがクライアント４に物理的に近いスレーブサーバ２のＩＰアドレスを返すことにより負荷分散を図る。
【００１３】
ここで、ネットワーク３の実現方式は特に限定されない。インターネットで利用されているＩＰベースのネットワークの他に、ファイバーチャネル（Fiber Channel）などを利用した、ＳＡＮ（Storage Area Network）環境などへも適用可能である。その場合は、クライアント４側のネットワーク３に加えて、マスターサーバ１、スレーブサーバ２と外部記憶装置１９、２８との間にネットワークが挿入される。外部記憶装置は、各サーバにより共有される。このような独立した外部記憶装置専用のネットワークで構成される場合も、同様に適用可能である。すなわち、外部記憶装置１９、２８は、マスターサーバ１またはスレーブサーバ２に内蔵されているものには限られない。
【００１４】
次に、図２を使用して、マスターサーバ１の構成を説明する。
マスターサーバ１は、ファイル入出力制御の全体を管理するマスター制御部１０とファイルを格納する外部記憶装置１９を備えている。マスター制御部１０は、制御部１１、ネットワークインタフェース１２、ファイル管理部１３、時刻計測部１４、領域管理部１５、更新履歴蓄積部１６、入出力制御部１７、更新間隔演算部１８を備えている。
【００１５】
ネットワークインタフェース１２は、スレーブサーバ２及びクライアント４との間で、ファイルとコマンドの送受信を行う。
【００１６】
制御部１１は、ネットワークインタフェース１２がスレーブサーバ２またはクライアント４から受信したコマンドに応じた処理を実行する。具体的には、制御部１１は、ネットワークインタフェース１２経由の入出力要求のコマンド内容を解釈する。そして、制御部１１は、要求内容に応じてデータの入出力の要否を判定して、実際のデータの入出力が必要と判断した際に、ファイル管理部１３にファイル入出力要求を出す。
また、制御部１１は、ファイル管理部１３から入手したファイルの入出力履歴情報に基づいてファイルの更新間隔を割り出す機能を有する更新間隔演算部１８を制御する。制御部１１は、更新間隔をファイル管理部１３を介して外部記憶装置１９に記録するとともに、ネットワークインタフェース１２からの情報要求に応じて、スレーブサーバ２へ送出する。
【００１７】
時刻計測部１４は、クライアント４からファイルの入出力要求があった際に、その時刻を示す更新履歴を記録する。
【００１８】
領域管理部１５は、外部記憶装置１８の記憶領域を管理する。
【００１９】
ファイル管理部１３は、ディスク上のデータの配置管理を行う。具体的には、ファイル管理部１３は、領域管理部１５を使用して、実際のデータの記録位置などを計算する。また、入出力要求のあった時刻も時刻計測部１４において計測し、ファイル毎の入出力要求の履歴を作成する。ファイル管理部１３は、作成した履歴を更新履歴蓄積部１６に記録するか、あるいは外部記憶装置１９上に更新履歴リストとして記録する。
【００２０】
入出力制御部１７は、ファイル管理部１３の指示に基づいて外部記憶装置１９に対するデータの入出力を実行する。
【００２１】
同期間隔演算部１８は、履歴に基づいて、ファイル毎にファイルの更新間隔とあるファイルに対して書き込みがなかったとみなせる期間（以下、「ブランク期間」という）を算出する。スレーブサーバ２の外部記憶装置２８に格納されたファイルについての履歴は、ネットワーク３を介してスレーブサーバ２から受信する。
【００２２】
外部記憶装置１９は、記憶媒体に対して情報の読み書きを行う。外部記憶装置としては、磁気ディスク装置、光ディスク装置、シリコンディスク装置等を用いることができる。本発明においては、マスターサーバ１等が備える主記憶装置の一部を仮想的に外部記憶装置として用いる場合（例えばＲＡＭディスク）も外部記憶装置の概念に含まれるものとする。
【００２３】
次に、図３を使用して、スレーブサーバ２の構成を説明する。
スレーブサーバ２の構成は、スレーブサーバ１の構成とほぼ同様であるが、スレーブ制御部２０が更新時間演算部を備えていない点が異なっている。
【００２４】
ネットワークインタフェース２２は、マスターサーバ１及びクライアント４との間で、ファイルとコマンドの送受信を行う。
【００２５】
制御部２１は、ネットワークインタフェース２２がマスターサーバ１またはクライアント４から受信したコマンドに応じた処理を実行する。具体的には、制御部２１は、ネットワークインタフェース２２経由の入出力要求のコマンド内容を解釈する。そして、制御部２１は、要求内容に応じてデータの入出力の要否を判定して、実際のデータの入出力が必要と判断した際に、ファイル管理部２３にファイル入出力要求を出す。
また、制御部２１は、ネットワークインタフェース２２を介してマスターサーバ１から更新間隔と更新時刻を取得する。
【００２６】
時刻計測部２４は、クライアント４からファイルの入出力要求があった際に、その時刻を記録する。
領域管理部２５は、外部記憶装置２８の領域の利用状況を管理する。
【００２７】
ファイル管理部２３は、ディスク上のデータの配置管理を行う。具体的には、ファイル管理部２３は、領域管理部２５を使用して、実際のデータの記録位置などを計算する。また、入出力要求のあった時刻も時刻計測部２４において計測し、ファイル毎の入出力要求の履歴を作成する。ファイル管理部２３は、作成した履歴を更新履歴蓄積部２６に記録するか、あるいは外部記憶装置２８上に更新履歴リストとして記録する。
入出力制御部２７は、ファイル管理部２３の指示に基づいて外部記憶装置２８に対するデータの入出力を実行する。
【００２８】
図１〜８を使用して、本実施例におけるファイル入出力動作について説明する。
まず、クライアント４の要求に基づいたファイルサーバのファイル入出力動作を、図１〜３を使用して説明する。また、その中で、ファイルの書き込みに伴うデータの更新、同期動作に関して述べるが、ディレクトリの書換えを伴うファイルの移動などの動作も、管理用メタデータなどの更新を伴うため、ファイルへの書き込みとみなすこととする。
【００２９】
クライアント４はネットワーク３に接続された、分散ファイル管理システム上のファイルを指定して入出力要求を発行する。ファイルの指定方法は、通常のインターネット上のURL(Uniform Resource Locator)のような識別情報に基づいて、アクセスすることが考えられるが、ファイルを特定できる形態ならば、特に形態に制限はない。また、本システムのように複数のサーバが存在している場合は、URLなどの識別情報をホストのIPアドレスなどのサーバ識別情報（以下、「ホストID」という）に変換する際に、適当な規則で特定の１台のサーバの識別情報に変換して提供することで実現される。
【００３０】
クライアント４は、サーバの識別情報に基づいて、スレーブサーバ２を選択し、入出力要求を発行する。ここでは、スレーブサーバ２を通常複数用意し、負荷分散を行うことを想定しているため、スレーブサーバ２のホストIDがクライアント４に通知され、クライアント４はスレーブサーバ２に対して入出力要求を発行する。
スレーブサーバ２は、ネットワークインタフェース２２経由でクライアント４から得られるユーザ識別情報（以下、「ユーザID」という）やクライアント識別情報（以下、「クライアントID」という）に基づいて、アクセスの可否に関する認証を行った後、クライアント４からの入出力要求を受け付ける。クライアント４からの入出力要求は、ファイル単位でのRead/Writeなどの入出力の要求である。
【００３１】
スレーブサーバ２の動作について、次に説明する。
スレーブサーバ２では、クライアント４からの入出力要求をネットワークインタフェース２２で受け取り、そのコマンドは制御部２１に伝達される。制御部２１は、そのコマンド内容に応じて、ファイルの同期管理を経た後、ローカルディスク上のファイル入出力を実行する。ファイルの同期管理アルゴリズムに関しては、後述する。制御部２１では、ローカルに蓄積されたファイルの入出力の指示を、ファイル管理部２３に出し、入出力制御部２７を経由して外部記憶装置２８上の、ファイル位置のデータの入出力を実行する。
【００３２】
ファイル管理部２３では、入出力動作の際に、要求内容の履歴を残すために、時刻計測部２４で計測された時刻情報と、クライアント４の要求発行元を特定するユーザーID,クライアントID情報も加えて、更新履歴情報を生成し、更新履歴蓄積部２６で管理する。ファイル管理部１３は、この履歴データは、ファイル管理システムが使用する外部記憶装置上の領域管理構造と併せて、ファイル管理システムのメタデータ情報として外部記憶装置２８又は更新履歴蓄積部２６に記録する。ここで、ファイル管理システムのメタデータとは、ファイル管理システムが管理するファイルの領域管理を行うデータ構造のことを指す。
【００３３】
図４に、ファイル管理用のメタデータ情報のデータ構造の一例を示す。
「ファイルＩＤ」は、ファイル管理システムがファイルを識別するための情報である。「ファイル名」は、ユーザがファイルを識別するための情報である。「所有者ＩＤ」は、そのファイルの所有者のユーザＩＤを示す情報である。「ファイルサイズ」は、ファイルのデータ量をバイト単位で示す情報である。「Ｄｉｒｔｙフラグ」は、そのファイルが同期済みであるか否かを示す情報で、値「０」は同期済みであることを、値「１」は未同期（Ｄｉｒｔｙ）であることを示している。「作成日時」はファイルが作成された日付と時刻を示す情報である。「ファイル領域リスト」は、外部記憶装置２８上でファイルが格納されている記憶領域を示す情報である。「最新更新日時」は、そのファイルに対して更新が行われた最新の日付と時刻を示す情報である。「最終同期日時」は、そのファイルに対して同期が行われた最新の日付と時刻を示す情報である。ここまでの各項目は、ファイルシステムにおいて一般的に採用されるもので、本発明の実施に当たりこれらの項目のすべてをメタデータが含んでいる必要はない。また、上記の各項目以外の項目を含んでいても良い。
【００３４】
更新履歴ポインタは、そのファイルに関する更新履歴が記憶されている位置を指し示す情報である。「Ａｄｄｒ１」等の値は、例えばメモリのアドレスや外部記憶装置のブロック、セクタ等の番号を示している。
【００３５】
更新間隔ポインタは、そのファイルに関する更新間隔が記憶されている位置を指し示す情報である。「ＡｄｄｒＡ」等の値は、例えばメモリのアドレスや外部記憶装置のブロック、セクタ等の番号を示している。
【００３６】
また、この更新履歴は、順次追記され大きくなることになるが、その大きさはマスターサーバ１において更新間隔演算部１８での更新間隔の処理する上で、必要十分な期間まで保持すればよい。例えば、更新間隔演算部１８で、データアクセスサイクルの解析を最大１週間までとした設定した場合は、その期間まで保持すればよい。また、更新間隔演算部１８で演算処理を経た以降は、更新履歴は適宜削除して、肥大化を抑制する実装を適用しても良い。
【００３７】
ファイル管理部１３は、ファイル毎に更新履歴を、例えば図５の例に示したような、アクセス履歴としてリスト化し、外部記憶装置１９上に記録する。
「更新者ＩＤ」は、ファイの更新要求を行ったユーザのユーザＩＤである。
「クライアントＩＤ」は、上記の要求を送信したクライアント４のクライアントＩＤである。
「ホストＩＤ」は、上記の要求に応じてファイルの更新処理を実行したホストサーバ１またはスレーブサーバ２のサーバＩＤである。
「更新種別」は、上記要求の種別を示す情報で、「Ｒｅａｄ」は読み出し要求を、「Ｗｒｉｔｅ」は書き込み要求を、「Ｄｉｒｔｙ  Ｆｌａｇ  ｃｌｅａｒ」は、図４の「Ｄｉｒｔｙフラグ」を「０」とする要求を示している。
「更新日時」は、更新が実行された日付と時刻を示している。
【００３８】
この更新履歴情報は、ファイル管理システムでの同期管理に使用するものであるため、コンシステンシーを保証するために、ファイル管理機構が統一的に管理する必要がある。よって、これらの履歴管理及び履歴から導き出された、更新間隔情報などのメタデータに順ずるデータも、ファイル管理システムが一意に管理する。本実施例では、図４のようなファイルを管理するメタデータから、更新履歴ポインタや、更新間隔ポインタを使用して、更新履歴情報を一意に読み出せるようにしている。
【００３９】
本実施例では、更新間隔演算に基づいて、ファイル毎に、ファイルに対する更新の特性を、図６に示すような更新間隔リストとして、管理する。これも前述の通り、ファイル管理システムのメタデータ上から、更新間隔ポインタとして参照できる。
「更新者ＩＤ」、「更新クライアントＩＤ」、「ホストＩＤ」は、図５で説明した通りである。
「更新間隔」は、更新実行間の時間の長さを示す情報である。「更新間隔」は、更新が行われなかった、あるいは行われなかったとみなすことができる期間の長さを示す情報である。この例では、これらの期間を「時間（ｈ）」を単位として示している。
【００４０】
ファイル管理システムのメタデータは、図４に示したようなファイル管理構造以外にも、Windows（登録商標）,Linux（登録商標）などの汎用OS(Operating System)上のファイル管理システムにおいても、属性を拡張できる場合には、更新履歴ポインタ、更新間隔ポインタと同等の機構を導入することで、実現可能である。
【００４１】
マスターサーバ１の更新間隔演算部１８は、各スレーブサーバ２上でのアクセス履歴に基づいて、更新間隔に関して解析し、その情報を図６に示す更新間隔リストとして生成する。この更新間隔リストを生成する、更新間隔演算部１８のアルゴリズムに関しては、後述する。
【００４２】
マスターサーバ１では、さらに更新間隔リストや更新履歴リストを含めた、ファイル管理システムのメタデータ情報を、ネットワークインタフェース１２経由で送信したり受信することで、スレーブサーバ２内での履歴情報にもとづいてマスターサーバ１の更新履歴リストを修正したりすることが出来る。結果として、複数のスレーブサーバ２上の外部記憶装置に対して発生したアクセスに関しても、更新履歴を収集し、その特性を更新間隔演算部１８で解析することを可能としている。
【００４３】
この更新履歴リスト、及び更新間隔リストは、前述の通り、ファイル管理システム上のメタデータから参照されるデータとして、マスターサーバ１、スレーブサーバ２でディスク上に記録される。スレーブサーバ２で計測された情報を、マスターサーバ１に一旦集計し、計算結果をスレーブサーバ２に配ることにより、データの一貫性を確保する。
【００４４】
次に、更新間隔リストを使用した、マスターサーバ１及びスレーブサーバ２間の同期のとり方について図７、図８を使用して説明する。
同期のとり方に関しては、幾つかの方法が考えられる。代表的な方法として、まず、同期のタイミングをマスターサーバ１が管理して同期すべきファイルを判定して同期動作を行う方法がある。また、逆にスレーブサーバ２が管理して、同期をすべきファイルを判定して、同期動作を行う方法もある。ここでは、マスターサーバ１が同期タイミングを管理する方法で、説明を行う。
【００４５】
まず、図７には、マスターサーバ１の同期管理を含めたファイル入出力のフローチャートを示す。マスターサーバ１は、各種イベント発生時に、この同期管理のフローチャートに基づいて、スレーブサーバ２との間でのファイルやメタデータの相互のやりとりを実施するとともに、ファイル管理用のフラグ制御などを実施する。通常は、定期的な時間間隔での実行に加え、スレーブサーバ２からの各種のコマンド通知がイベントとして扱われ、そのたびに、このフローに基づいた処理を行う。
【００４６】
まず、イベントの種別を判断し、イベントが時間間隔に基づくイベントかを判定する（Ｓ１０１）。もし、データ更新時刻でのイベントの場合は、更新対象のデータとして更新ディレクトリに登録されたファイルに関して、スレーブサーバ２との間での相互コピーを実行し、データの同期を実行する（Ｓ１０１の判定がイエス、Ｓ１０２）。時間間隔に基づくイベントは、更新間隔リストに基づいて、各ファイルの更新すべきタイミングを管理するために、更新対象のデータを、更新時刻別にまとめた更新ディレクトリに登録して管理し、更新時刻イベント時に順次同期動作を実行する。更新ディレクトリについては後述する。
【００４７】
イベントが、更新時刻イベント以外の、コマンドに基づくイベントの場合（Ｓ１０１の判定がノーの場合）は、コマンドの種別を順次判別する。まず、特定ファイルのデータ更新通知、またDirtyフラグセット要求か判定する（Ｓ１０３）。そうである場合は、メタデータにDirtyフラグをセットし（Ｓ１０４）、データの更新通知リストにコマンド処理内容を記録する（Ｓ１０６）。
イベントが、データ更新通知でもDirtyフラグセット要求でもない場合は、データ読み出しなどのアクセス履歴の通知か判定し（Ｓ１０５）する。そうである場合は、更新履歴への登録のみを実行する（Ｓ１０６）。
イベントがアクセス履歴の通知でない場合は、メタデータ上のDirtyフラグのクリア要求かを判定し（Ｓ１０７）する。そうでなかった場合は処理を終了するが、そうであった場合は、該当ファイルに関してのみ、スレーブサーバ２との間で、データ内容の同期処理を実施した後（Ｓ１０８）、メタデータのDirtyフラグをクリアする（Ｓ１０９）。
【００４８】
次に、図８に、スレーブサーバ２の同期管理を含めたファイル入出力のフローチャートを示す。スレーブサーバ２は、クライアント４、マスターサーバ１からの各種入出力要求などをイベントとして、このフローチャートに基づいて、ファイルの入出力制御を行う。
まず、コマンドがデータ読み出し要求コマンドかを判定する（Ｓ２０１）。読み出しの場合は、読み出しイベントが発生したことを読み出しのアクセス履歴をマスターサーバに通知する（Ｓ２０２）。その後、スレーブサーバ２の外部記憶装置２８上のコピーされたファイルに対して読み出しを実行する（Ｓ２０３）。
【００４９】
コマンドをデータの書き込み要求コマンドと判定した場合は（Ｓ２０４の判定がイエス）、マスターサーバ１に対して、該当ファイルの更新フラグの内容を問い合わせ（Ｓ２０５）、Dirtyフラグの有無を確認する（Ｓ２０６）。フラグがセットされていた場合は、クリアの要求をマスターサーバ１に発行する（Ｓ２０７）。マスターサーバ１でのDirtyフラグクリアが成功しなかった場合は、クライアント４に対してエラー通知を行うなどのエラー処理を行うが（Ｓ２０９）、そうでない場合は、クライアント４からの書き込み要求を、ローカルディスク上のファイルに対して実行し（Ｓ２１０）、再度マスターサーバ１にDirtyフラグのセットを要求する（Ｓ２１１）。
データ読み出し要求、データ書き込み要求以外のコマンド処理の場合は（Ｓ２０４の判定がノー）、各コマンド通りに処理実行（Ｓ２１２）して、ファイル入出力処理、及び関連処理を完了する。
【００５０】
次に、更新間隔演算部１８の更新間隔割り出し方法について、図９、図１０を使い説明する。
マスターサーバ１の制御部１１が、ファイル管理部１３経由でファイル毎の更新履歴リストを、外部記憶装置１９上のファイル管理用メタデータか、更新履歴蓄積部１６より入手する。このデータは更新間隔演算部１８に送られ、次のような処理手順で、更新間隔の割り出しを行う。
【００５１】
まず、単純な例を図９に示す。更新履歴に基づいて、一定時間間隔での書き込みの頻度を集計して、時刻対頻度のグラフを描くと、例えば図９のようになる。ここで書き込みのアクセス履歴を元にして、頻度分布を集計／計測することとする。書き込み頻度は、たとえば単位時間当たりの書き込み要求の回数として集計する。ここで、頻度が高い区間と頻度がほぼゼロの区間が混在することになるため、いま、適当な頻度の閾値を設定し、その閾値以下を頻度ゼロとみなして、書き込みの無かった区間（以下、「ブランク期間」という）を計測する。ブランク期間をはさんで、書き込みがある周期性を持つことから、２回以上の書換え頻度分布に基づいて、その周期を更新間隔とする。このとき、ブランク期間の開始時刻以降は、しばらくデータの更新が無いことがわかるため、このブランク期間の開始時刻を同期時刻に設定することにし、この時刻にマスターサーバ１とスレーブサーバ２の間でデータの同期をとれば、処理時間のうち半分以上の期間、データの同期が取れた状態を維持することができることが判る。
いま、定期的にデータの更新が発生するファイルアクセスの場合は、複数回の書き込み頻度分布から導き出された更新間隔と、ブランク期間の初めの同期時刻より、次の周期の書き込み頻度分布が推定できる。よって、これに基づき、同期時刻から更新間隔後の時刻を次回に同期の予定時刻として設定することができる。
【００５２】
また、データの更新処理は、決まった処理ルーチンに基づいて実行される場合、その書き込みアクセスの処理内容は、ほぼ一定の回数、サイズの書き込み処理から構成される。この場合、複数の書き込みや読み出しから構成される、個々のデータ更新処理に要する時間は、比較的容易に推定できる。すなわち、更新頻度分布における、更新間隔やブランク期間に基づけば、書き換え動作が増加した際の、継続する期間は、
（書き込み継続期間）＝  （更新間隔）−（ブランク期間）
と推定することが出来る。よって、この期間に基づいて、書き込み発生時の時刻において、アクセスの収束時刻を推測することが出来る。例えば、書き込み頻度分布でデータの書き換えアクセスが発生し始めた時刻の時点で、上記の書き込み継続期間後に書き込みアクセスが収束すると推定できるため、その時刻に次回の同期実行を予定することが出来る。その結果、書き換えアクセスが収まった時点で、効果的に同期動作を実行することが出来ることになる。
【００５３】
次に、複数のクライアントからの書き込みを伴うファイルの更新例を図１０に示す。この図では、ClientID1、ClientID2、ClientID3の３台のクライアントからFileID1のファイルへ書き込みがあった場合を示している。ClientID1からの書き込みを破線で、ClientID2からの書き込みを一点鎖線で、ClientID3からの書き込みを二点鎖線で、それぞれ示している。一般に、複数のクライアントからの書き込みがある場合は、ファイルに対する書き込みの頻度が常にある一定以上となり、適当な同期タイミングが設定しづらくなることが予想される。その場合、各アクセス履歴が、特定のクライアントからのもの、あるいは特定ユーザからのものなど分類し、それらを合成したものと考えて書き込みの頻度分布と考えることにより単純化できる。例えば、図１０の例では３個のクライアントから時間差のある書き込みがあった例となっているが、個々の書き込みの頻度分布は、図９のようにブランク期間のある書き込みとなっているため、図９の場合と同様に、更新間隔やブランク期間、同期時刻を計算することが出来る。また、更新者ID,  クライアントID，ホストIDを限定した場合でもブランク期間や更新間隔が計算できない場合は、平均の更新間隔で同期時刻を設定する。
【００５４】
前述の、更新間隔演算部１８で求めた、各ファイルの更新特性は、図６に示す更新間隔リストの形式で、外部記憶装置１９上に保持する。なお、ここでホストIDはクライアント４から書き込みされたスレーブサーバ２のホストIDとする。これらのデータをより効果的に同期アルゴリズムで活用するために、同期時刻の管理を容易とするデータ構造として、更新ディレクトリを設ける。
【００５５】
次に更新ディレクトリの構造を、図１１を使用して説明する。更新ディレクトリでは、更新間隔演算部１８で求めた同期時刻情報に基づいて、同期時刻を割り出し、その同期時刻に実施すべき同期内容をリストとして管理する。まず、同期実行時刻を求め、その時刻の含まれる時刻リストに、該当するファイルIDと、同期周期の対象となる、更新者ID,  クライアントID，ホストIDを登録する。これらの情報を蓄積したものを図１１の更新ディレクトリとして、蓄積を行うが、このデータは更新履歴蓄積部１６などで管理し、同期管理アルゴリズムの実行の際の基礎情報として使用する。
【００５６】
具体的には、図１１のリストを時刻計測部１４、２４からの時刻通知に合わせて、時刻ａより対象ファイルに対して順次同期動作を実行する。また、各ファイルの同期は、登録されている時刻に実行されるが、更新者ID,  クライアントID，ホストIDが付与されているデータは、該当する条件に当てはまる、更新者ID,  クライアントIDのクライアント４が接続されているホストIDのスレーブサーバ２との間での同期動作を行い、他のスレーブサーバ２との同期は、Dirtyフラグがセットされたとき、すなわちデータの書き込み要求が発生した際などの、同期が必要なタイミングに同期動作を実行する。
【００５７】
次に、本実施例の効果について説明する。
スレーブサーバの記憶装置２８に格納されたファイルが更新されるたびにネットワーク３経由でデータの同期を行ったとすると、ネットワーク３に対する負荷が大きくなる。たとえば、同期が行われた直後にそのファイルが更新された場合にも、再度にデータの同期を行うことになるため、最悪更新回数分のネットワーク通信が必要となる。しかし、実際には、データの更新が完全に終了した後に、データの更新を行えば十分な場合も多い（例えば図９参照）。
本実施例によれば、更新間隔演算部１８は、ファイルに対するアクセス履歴に基づいてブランク期間と更新間隔を算出し、これらの情報に基づいて、頻繁に更新が行われている期間を避けてブランク期間の最初に近い時刻を更新時刻として決定する。ファイル管理部１３は、このような時刻に同期の実行を入出力制御部に対して指示する。
そのため、データの同期を行う際にネットワーク３に対する負荷を、効果的に低減できる。
【００５８】
本実施例では、上述のように更新履歴に基づいて同期時刻を決定している。そして、更新時刻演算部１８は、各同期時刻に同期を行うべきファイルを更新ディレクトリに記録して特定している。ファイル管理部１３は、更新時刻の到来の通知を受けた時に更新ディレクトリを参照して同期対象のファイルのファイルＩＤを取得して更新を実行する。すなわち、マスターサーバ１は、同期が不要なタイミングで、通常のディレクトリなどの更新状況をチェックする必要がない。
そのため、結果として外部記憶装置１９への負荷や、消費電力を低減することができる。
【００５９】
更新間隔のみに基づいて同期の管理を行うシステムは、ファイルが定期的に更新されるウェブサービスなどでは有効である。しかし、データベースファイルのように、ファイルの一部を逐次更新する、ブロック単位のアクセスでは、更新間隔のみでは同期タイミングを管理することは困難であった。
本実施例では、更新間隔演算手段１８は、アクセス履歴に基づいて、アクセスが無くなる区間（ブランク期間）を予測し、同期時刻を算出する。
そのため、ブロック単位の更新が頻繁に発生するファイルアクセスに対しても、効果的にデータの更新タイミングを生成することが出来、ウェブサービス以外の一般的なファイルサービスでの低負荷の分散ファイル管理が実現できる。
【００６０】
本発明の第２の実施例について説明する。
第２の実施例も第１の実施例と同様の分散ファイル管理システムである。その全体構成、マスターサーバ１、スレーブサーバ２の構成は、それぞれ図１、図２、図３と同一であるため、構成については説明を省略する。
【００６１】
図１２、１３のフローチャートを参照して第２の実施例の動作を説明する。
ここで、第２の実施例は、データの同期をスレーブサーバ２が実行する点が第１の実施例と異なっている。
【００６２】
まず、図１２には、マスターサーバ１の同期管理を含めたファイル入出力のフローチャートを示す。マスターサーバ１は、本実施例では同期時刻の管理を行わないため、スレーブサーバ２との間でのファイルやメタデータの相互のやりとりを実施と、ファイル管理用のフラグ制御を実施する。
【００６３】
まず、時刻のイベントは発生しないため、マスターサーバ１へのコマンド要求などのイベント発生時に、図１２のフローチャートに示す処理を実行する。
まず、特定ファイルのデータ更新通知、またDirtyフラグセット要求か判定し（Ｓ３０１）、そうである場合は、メタデータにDirtyフラグをセットし（Ｓ３０２）、データの更新通知リストにコマンド処理内容を記録する（Ｓ３０４）。コマンド種別の判定において、データ読み出しなどのアクセス履歴の通知か判定し（Ｓ３０３）、そうであった場合は、更新履歴への登録のみを実行（Ｓ３０４）する。同様にメタデータ上のDirtyフラグのクリア要求かを判定し（Ｓ３０５）、そうでなかった場合は処理を終了するが、そうであった場合は、該当ファイルに関してのみ、スレーブサーバ２との間で、データ内容の同期処理を実施した後（Ｓ３０６）、メタデータのDirtyフラグをクリアする（Ｓ３０７）。
【００６４】
次に、図１３を使用して、スレーブサーバ２の同期管理を含めたファイル入出力のフローチャートを示す。スレーブサーバ１は、クライアント４、マスターサーバ１からの各種入出力要求、及び時刻計測部２４からの時刻通知をイベントとして、このフローチャートに基づいて、ファイルの入出力制御を行う。
【００６５】
まず、更新ディレクトリをマスターサーバ１から入手し、その内容より同期動作の要否判定を行う（Ｓ４００）。同期処理の要否は第１の実施の形態でのマスタサーバ１の場合と同様、更新ディレクトリにイベント発生時刻に各ファイルの同期動作を行う処理が登録されているかを判定し、登録されている場合は、マスターサーバ１との間でデータの同期を行う。その際に、スレーブサーバ２が関連しているファイルに関してのみ実行を行う。
【００６６】
もし、データ読み出し要求コマンドかを判定し（Ｓ４０１）、読み出しの場合は、読み出しイベントが発生したことを読み出しのアクセス履歴をマスターサーバに通知する（Ｓ４０２）。その後、スレーブサーバ２の外部記憶装置２８上のコピーされたファイルに対して読み出しを実行する。
コマンドがデータの書き込み要求コマンドと判定された場合は（Ｓ４０４）、マスターサーバ１に対して、該当ファイルの更新フラグの内容を問い合わせ（Ｓ４０５）、Dirtyフラグの有無を確認し（Ｓ４０６）、もしフラグがセットされていた場合は、クリアの要求をマスターサーバ１に発行する（Ｓ４０７）。マスターサーバ１でのDirtyフラグクリアが成功しなかった場合は、クライアント４に対してエラー通知を行うなどのエラー処理を行うが（Ｓ４０９）、そうでない場合は、クライアント４からの書き込み要求を、ローカルディスク上のファイルに対して実行し（Ｓ４１０）、再度マスターサーバ１にDirtyフラグのセットを要求する。その他のコマンド処理の場合は、各コマンド通りの処理を実行（Ｓ４１２）して、ファイル入出力処理、及び関連処理を完了する。
【００６７】
第２の実施例では、マスターサーバ１とスレーブサーバ２との間でファイルの同期を行う場合について説明したが、マスターサーバ１とクライアント４との間でファイルの同期を行うようにすることもできる。この場合、クライアント４が図３のネットワークインタフェース２２、制御部２１、ファイル管理部２３、時刻計測部２４、領域管理部２５、更新履歴蓄積部２６、外部記憶装置２８と同等の構成要素を備えるようにする。ただし、クライアント４に格納されるファイルは、他のクライアントによって共有されなくても良い。具体的には、例えば、マスターサーバ１に格納されたデータベースのレプリカを広域ネットワークでマスターサーバと接続されたクライアント４に格納し、クライアント４のユーザがレプリカを更新するような場合が、このような変形例に該当する。
【００６８】
第２の実施例によっても、第１の実施例と同様の効果が得られる。
また、更新時刻の管理をスレーブサーバ２側で行うことにより、同期のタイミングの管理の処理負担がマスターサーバ１側に集中するのを避けて、スレーブサーバ２側で行えるため、負荷の分散を行うことができる。
【００６９】
次に、本発明の第３の実施例について説明する。第１及び第２の実施例では、ネットワークを介して２以上の装置間でファイルの同期を行うが、第３の実施例では、１台の装置において２つの記憶媒体間で同期を行う。たとえば、ＰＣなどのスタンドアローンの装置において、ファイルの定期的な処理が必要な場合を想定している。このような機器の場合、データ内の不正データ、例えばコンピュータウイルスのチェックを行ったり、ＰＣ内のデータのバックアップを行う場合、ディスク上のデータを参照して、更新されたデータを移動したりコピーすることが行われる。ここでは、ＰＣに接続された外部記憶装置に格納されたファイルを交換記憶媒体にバックアップする実施例を説明する。
【００７０】
図４は、本実施例のＰＣの構成を示すブロック図である。
ＰＣは、ファイル入出力制御の全体を管理するＰＣ制御部３０とファイルを格納する第１の外部記憶装置３９、第２の外部記憶装置４０、指示手段４２を備えている。ＰＣ制御部１０は、制御部３１、ファイル管理部３２、入出力制御部３３、Ｉ／Ｏインタフェース３４、時刻計測部３５、領域管理部３６、更新履歴蓄積部３７、更新間隔演算部３８を備え、図２のマスター制御部１０と同様の機能を備えている。
【００７１】
制御部３１は、指示手段４２より入力されたコマンドに応じた処理を実行する。具体的には、制御部３１は、指示手段４２経由の入出力要求のコマンド内容を解釈する。そして、制御部３１は、要求内容に応じてデータの入出力の要否を判定して、実際のデータの入出力が必要と判断した際に、ファイル管理部３２にファイル入出力要求を出す。
また、制御部３１は、ファイル管理部３３から入手したファイルの入出力履歴情報に基づいてファイルの更新間隔を割り出す機能を有する更新間隔演算部３８を制御する。制御部３１は、更新間隔をファイル管理部３２を介して外部記憶装置３９に記録する。
また、制御部３１は、第１の外部記憶装置３９に記録されたデータのバックアップを行うとき、図１１の更新ディレクトリに基づいて、データの更新の可否を判定し、Ｉ／Ｏインタフェース３４を制御して交換記憶媒体４０にバックアップの必要のあるデータを記録する。
【００７２】
時刻計測部３５は、支持手段４２からファイルの入出力要求があった際に、その時刻を示す更新履歴を記録する。
【００７３】
領域管理部３６は、第１の外部記憶装置３９の記憶領域を管理する。
【００７４】
ファイル管理部３２は、第１の外部記憶装置３９のデータの配置管理を行う。具体的には、ファイル管理部３２は、領域管理部３６を使用して、実際のデータの記録位置などを計算する。また、入出力要求のあった時刻も時刻計測部３５において計測し、ファイル毎の入出力要求の履歴を作成する。ファイル管理部３２は、作成した履歴を更新履歴蓄積部３７に記録するか、あるいは第１の外部記憶装置３９上に更新履歴リストとして記録する。
【００７５】
入出力制御部３３は、ファイル管理部３２の指示に基づいて第１の外部記憶装置３９に対するデータの入出力を実行する。
【００７６】
同期間隔演算部３８は、履歴に基づいて、第１の外部記憶装置３９に格納されているファイル毎にファイルの更新間隔とブランク期間を算出する。また、第１の実施例の同期間隔演算部１８と同様に、更新ディレクトリ（図１１参照）を生成する。
【００７７】
第１の外部記憶装置３９は、例えば磁気ディスク装置であり、記憶媒体に対して情報の読み書きを行う。
【００７８】
第２の外部記憶装置４０は、例えば光ディスク装置であり、交換記憶媒体４１に対して情報の読み書きを行う。
交換記憶媒体４１は、いわゆるリムーバブルメディアで、データの入出力を行う際に第２の外部記憶装置４０にセットして使用される。交換記憶媒体４０としては、ＣＤ−ＲＷ（Compact Disc-ReWritble）、ＤＶＤ−ＲＷ(Digital Versatile Disk-ReWritble）、ＭＯ（magneto-optic）等を用いることができる。
【００７９】
指示手段４２は、例えばマウス、キーボード等の入力装置で、ユーザは指示手段４２を操作して本実施例のＰＣに指示を与える。
【００８０】
次に、本実施例の動作を図１５のフローチャートを使用して説明する。
このＰＣは、外部からの指示に基づいてファイルの入出力の制御を行うが、バックアップ処理要求も受け付ける。よって、入出力動作は、まずコマンドがバックアップコマンドかどうかを判定し（Ｓ５０１）、バックアップ動作でない場合は通常のファイル入出力動作を行う（Ｓ５０４）。
バックアップコマンドの場合は、更新ディレクトリを参照して、更新ディレクトリに登録されているファイルか否かを判定する（Ｓ５０２）。登録されているファイルの場合は、バックアップを実行する（Ｓ５０３）。そうでない場合は、何も行わない。
【００８１】
上記のように、更新ディレクトリに基づいてファイルのバックアップの実行の可否を判定することにより、交換記憶媒体４１への書き込み回数を必要最小限とし、交換記憶媒体４１の疲弊を抑制することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明の第１の実施例の構成図である。
【図２】本発明の第１の実施例のマスターサーバの構成図である。
【図３】本発明の第１の実施例のスレーブサーバの構成図である。
【図４】ファイル管理システムのメタデータの例である。
【図５】ファイル管理システムの履歴管理用メタデータの例である。
【図６】ファイル管理システムの更新間隔管理用メタデータの例である。
【図７】本発明の第１の実施例のマスターサーバの同期管理アルゴリズムのフローチャートである。
【図８】本発明の第１の実施例のスレーブサーバの同期管理アルゴリズムのフローチャートである。
【図９】ファイルへのアクセス履歴の説明図である。
【図１０】ファイルへのアクセス履歴の説明図である。
【図１１】更新ディレクトリの説明図である。
【図１２】本発明の第２の実施例のマスターサーバの同期管理アルゴリズムのフローチャートである。
【図１３】本発明の第２の実施例のスレーブサーバの同期管理アルゴリズムのフローチャートである。
【図１４】本発明の第３の実施例のＰＣの構成図である。
【図１５】本発明の第３の実施例のＰＣの同期管理アルゴリズムのフローチャートである。
【符号の説明】
【００８３】
１  マスターサーバ
２  スレーブサーバ
３  ネットワーク
４  クライアント
１０  マスター制御部
１１  制御部
１２  ネットワークインタフェース部
１３  ファイル管理部
１４  時刻計測部
１５  領域管理部
１６  更新履歴蓄積部
１７  入出力制御部
１８  更新間隔演算部
１９  外部記憶装置
２０  スレーブ制御部
２１  制御部
２２  ネットワークインタフェース部
２３  ファイル管理部
２４  時刻計測部
２５  領域管理部
２６  更新履歴蓄積部
２７  入出力制御部
２８  外部記憶装置
３０  ＰＣ
３１  制御部
３２  ファイル管理部
３３  入出力制御部
３４  Ｉ／Ｏインタフェース
３５  時刻計測部
３６  領域管理部
３７  更新履歴蓄積部
３８  更新間隔演算部
３９  第１の外部記憶装置
４０  第２の外部記憶装置
４１  交換記憶媒体
４２  指示手段
【図１】
2008293218.tif 000003
【図２】
2008293218.tif 000004
【図３】
2008293218.tif 000005
【図４】
2008293218.tif 000006
【図５】
2008293218.tif 000007
【図６】
2008293218.tif 000008
【図７】
2008293218.tif 000009
【図８】
2008293218.tif 000010
【図９】
2008293218.tif 000011
【図１０】
2008293218.tif 000012
【図１１】
2008293218.tif 000013
【図１２】
2008293218.tif 000014
【図１３】
2008293218.tif 000015
【図１４】
2008293218.tif 000016
【図１５】
2008293218.tif 000017