(57)【特許請求の範囲】
【請求項１】
ファイルシステム内でのファイルの重複を排除する装置であって、
ファイルが作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には、当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報を取得する取得部と、
前記取得部により取得された前記識別情報であって第１のファイルに付与された前記識別情報である第１の識別情報と、前記取得部により取得された前記識別情報であって第２のファイルに付与された前記識別情報である第２の識別情報とが一致するかどうかを判定する判定部と、
前記判定部により前記第１の識別情報と前記第２の識別情報とが一致すると判定された場合に、前記ファイルシステム内に前記第１のファイル及び前記第２のファイルが重複して記憶されないように制御する制御部と
を含む、装置。
【請求項２】
前記取得部は、
第１の時点で前記ファイルシステム内にバックアップされた前記第１のファイルに付与された前記第１の識別情報を、当該第１の時点で前記ファイルシステム内にバックアップされたファイルを管理する第１の管理情報から取得する第１の取得部と、
前記第１の時点以降の第２の時点で前記ファイルシステム内にバックアップされる前記第２のファイルに付与された前記第２の識別情報を取得する第２の取得部と
を含み、
前記制御部は、前記判定部により前記第１の識別情報と前記第２の識別情報とが一致すると判定された場合に、前記第２の時点で前記ファイルシステム内に前記第２のファイルが複製されないように制御し、前記第２の時点でバックアップされたファイルを管理する第２の管理情報に前記第２の識別情報が含まれ、当該第２の識別情報が前記第１のファイルに関連付けられるように制御する、請求項１の装置。
【請求項３】
前記第２の識別情報が前記第１のファイルに関連付けられると、当該第１のファイルに関連付けられた識別情報が増えた旨を、当該識別情報の個数を示す個数情報に登録する第１の登録部と、
前記第１の管理情報の削除指示に応じて、前記第１のファイルに関連付けられた識別情報が減った旨を、前記個数情報に登録する第２の登録部と、
前記第１の管理情報の削除指示に応じて、前記第１の識別情報を削除し、前記第２の登録部による登録後に前記第１のファイルに関連付けられた識別情報がない旨が前記個数情報に登録されていれば、当該第１のファイルを更に削除する削除部と
を更に含む、請求項２の装置。
【請求項４】
前記取得部は、
サーバコンピュータに記憶された前記第１のファイルに付与された前記第１の識別情報を、当該サーバコンピュータに記憶されたファイルを管理する第１の管理情報から取得する第１の取得部と、
クライアントコンピュータに記憶された前記第２のファイルに付与された前記第２の識別情報を、当該クライアントコンピュータに記憶されたファイルを管理する第２の管理情報から取得する第２の取得部と
を含み、
前記制御部は、前記判定部により前記第１の識別情報と前記第２の識別情報とが一致すると判定された場合に、前記クライアントコンピュータから前記第２のファイルが削除されるように制御する、請求項１の装置。
【請求項５】
前記取得部は、
サーバコンピュータに記憶された前記第１のファイルに付与された前記第１の識別情報を、当該サーバコンピュータに記憶されたファイルを管理する管理情報から取得する第１の取得部と、
クライアントコンピュータが受信した電子メールに添付された前記第２のファイルに付与された前記第２の識別情報を、当該電子メールのデータから取得する第２の取得部と
を含み、
前記制御部は、前記判定部により前記第１の識別情報と前記第２の識別情報とが一致すると判定された場合に、前記クライアントコンピュータに前記第２のファイルが保存されないように制御する、請求項１の装置。
【請求項６】
ファイルシステム内にファイルをバックアップする装置であって、
第１の時点で前記ファイルシステム内にバックアップされたファイルを管理する第１の管理情報を取得する第１の取得部と、
ファイルが作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には、当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報であって、前記第１の時点以降の第２の時点で前記ファイルシステム内にバックアップされるバックアップ対象ファイルに付与された識別情報であるバックアップ対象ファイル識別情報を取得する第２の取得部と、
前記第１の取得部により取得された前記第１の管理情報が、前記第２の取得部により取得された前記バックアップ対象ファイル識別情報を、前記第１の時点で前記ファイルシステム内にバックアップされたバックアップ済ファイルに付与された前記識別情報であるバックアップ済ファイル識別情報として含むかどうかを判定する判定部と、
前記判定部により前記第１の管理情報が前記バックアップ対象ファイル識別情報を含むと判定された場合に、前記第２の時点で前記ファイルシステム内に前記バックアップ対象ファイルを複製せず、前記判定部により前記第１の管理情報が前記バックアップ対象ファイル識別情報を含まないと判定された場合に、前記第２の時点で前記ファイルシステム内に前記バックアップ対象ファイルを複製する複製部と、
前記第２の時点でバックアップされたファイルを管理する第２の管理情報に、前記バックアップ対象ファイル識別情報を、当該バックアップ対象ファイル識別情報が前記バックアップ済ファイルに関連付けられるように格納する格納部と、
前記バックアップ対象ファイル識別情報が前記バックアップ済ファイルに関連付けられると、当該バックアップ済ファイルに関連付けられた識別情報が増えた旨を、当該識別情報の個数を示す個数情報に登録する第１の登録部と、
前記第１の管理情報の削除指示に応じて、前記バックアップ済ファイルに関連付けられた識別情報が減った旨を、前記個数情報に登録する第２の登録部と、
前記第１の管理情報の削除指示に応じて、前記バックアップ済ファイル識別情報を削除し、前記第２の登録部による登録後に前記バックアップ済ファイルに関連付けられた識別情報がない旨が前記個数情報に登録されていれば、当該バックアップ済ファイルを更に削除する削除部と
を含む、装置。
【請求項７】
ファイルシステム内でファイルを管理する装置であって、
前記ファイルシステム内で新規ファイルが作成された場合に、当該新規ファイルに、識別情報を管理する識別情報管理部から取得した未使用の特定の識別情報を付与する第１の付与部と、
前記ファイルシステム内で前記新規ファイルを複製することにより複製ファイルが生成された場合に、当該複製ファイルに、前記特定の識別情報と同一の識別情報を付与する第２の付与部と、
前記ファイルシステム内で前記新規ファイル又は前記複製ファイルを更新することにより更新ファイルが生成された場合に、当該更新ファイルに、前記識別情報管理部から取得した前記特定の識別情報とは異なる未使用の他の識別情報を付与する第３の付与部と
を含む、装置。
【請求項８】
前記ファイルシステム内で特定のファイルに変更が加えられた場合に、当該特定のファイルとは別の当該変更の内容を示す他のファイルに、当該特定のファイルに付与された前記識別情報を付加する付加部を更に含む、請求項７の装置。
【請求項９】
ファイルシステム内でのファイルの重複を排除する方法であって、
ファイルが作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には、当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報であって、第１のファイルに付与された識別情報である第１の識別情報を取得するステップと、
第２のファイルに付与された前記識別情報である第２の識別情報を取得するステップと、
前記第１の識別情報と前記第２の識別情報とが一致するかどうかを判定するステップと、
前記第１の識別情報と前記第２の識別情報とが一致すると判定された場合に、前記ファイルシステム内に前記第１のファイル及び前記第２のファイルが重複して記憶されないように制御するステップと
を含む、方法。
【請求項１０】
ファイルシステム内でのファイルの重複を排除する装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
ファイルが作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には、当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報を取得する取得部と、
前記取得部により取得された前記識別情報であって第１のファイルに付与された前記識別情報である第１の識別情報と、前記取得部により取得された前記識別情報であって第２のファイルに付与された前記識別情報である第２の識別情報とが一致するかどうかを判定する判定部と、
前記判定部により前記第１の識別情報と前記第２の識別情報とが一致すると判定された場合に、前記ファイルシステム内に前記第１のファイル及び前記第２のファイルが重複して記憶されないように制御する制御部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの重複を排除する装置及び方法に関する。特に、本発明は、ファイルシステム内でのファイルの重複を排除する装置及び方法に関する。
【背景技術】
【０００２】
コンピュータシステムにおけるデータのバックアップ方法としては、対象となるデータの全てを定期的に（例えば毎日）バックアップする完全バックアップが、データの再生（リストア）の観点からは理想的である。理由は、完全バックアップで取られたデータは１回のリストアで再生が可能であり、バックアップの世代の新旧も明解で必要な世代分を残し古いものから消去できるため管理も容易だからである。
しかしながら、完全バックアップには、記憶容量とバックアップ時間の無駄が生じるという欠点がある。完全バックアップに記憶容量と処理時間がかかる最大の理由は、日々変更されることのないデータを重複してバックアップするために他ならない。
また、重複してデータをバックアップすることのもう１つの原因として挙げられるのは、複数ユーザが所持する同一のファイルのバックアップである。例えば複数ＰＣ（Personal Computer）におけるデータのバックアップを例にとると、ＯＳのシステムファイルやアプリケーションプログラムのファイルは、マシンごとに異なるものではないにも関わらず、各ＰＣからのバックアップデータに重複して含まれてしまう。更に、別の例として、電子メールの文書、特に巨大な添付ファイルを複数ユーザが所有することがあるが、これらがバックアップデータにおいて重複してしまうことも挙げられる。その他にも、データが重複してしまう場面は色々と考えられる。
【０００３】
そこで、従来から、重複データを排除する技術が提案されてきた（例えば、特許文献１参照）。
特許文献１では、基準ファイルシステム及び対象ファイルシステム内に含まれているディレクトリごとにディレクト識別子を生成し、基準ファイルシステム内ディレクトリのディレクトリ識別子と、対象ファイルシステム内ディレクトリのディレクトリ識別子が一致しない場合にのみ、基準ファイルシステム及び対象ファイルシステム内に含まれているファイルごとにファイル識別子を生成し、ファイル識別子を比較し、ファイル識別子が一致したファイル同士のファイルデータを比較し、ファイルデータが一致すれば、データの重複を排除している。ここでディレクトリ識別子を生成する手法としては、例えばＬｉｎｕｘ（登録商標）ＯＳ上で、対象ディレクトリでｄｕコマンドを実行し、出力されるファイル名及びファイルサイズの文字列をハッシングするという方法が挙げられている。また、ファイル識別子を生成する方法の例としては、ファイルのファイルデータのハッシュ値をとる方法が挙げられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２８２６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように、特許文献１では、ディレクトリ識別子が一致するディレクトリ内に含まれるファイルについては、ディレクトリ識別子の生成及び比較より時間が掛かるファイル識別子（ファイルデータのハッシュ値）の生成及び比較を省略している。これにより、基準ファイルシステム及び対象ファイルシステム内の全てのファイルデータに関してハッシングをした場合に比べると、重複データの排除に掛かる時間は短縮されると考えられる。
しかしながら、ディレクトリ識別子が一致しないディレクトリ内に含まれるファイルについては、ファイル識別子（ファイルデータのハッシュ値）の生成及び比較を行っている。即ち、ファイルデータを利用して重複排除を行っており、ファイルの重複排除に掛かる時間が格段に短縮されることは期待できない。
また、特許文献１のようにファイルデータのハッシュ値を用いる方法では、重複する複数のファイルの少なくとも１つに圧縮や暗号化が施されていた場合に、ファイルデータを利用せずに重複を排除することは困難である。
【０００６】
本発明の目的は、ファイルデータを利用せずにファイルの重複排除に掛かる時間を短縮することにある。
本発明の他の目的は、重複する複数のファイルの少なくとも１つに圧縮や暗号化が施されていたとしても、ファイルデータを利用せずに重複を排除可能とすることにある。
【課題を解決するための手段】
【０００７】
かかる目的のもと、本発明は、ファイルシステム内でのファイルの重複を排除する装置であって、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報を取得する取得部と、取得部により取得された識別情報であって第１のファイルに付与された識別情報である第１の識別情報と、取得部により取得された識別情報であって第２のファイルに付与された識別情報である第２の識別情報とが一致するかどうかを判定する判定部と、判定部により第１の識別情報と第２の識別情報とが一致すると判定された場合に、ファイルシステム内に第１のファイル及び第２のファイルが重複して記憶されないように制御する制御部とを含む、装置を提供する。
【０００８】
ここで、取得部は、第１の時点でファイルシステム内にバックアップされた第１のファイルに付与された第１の識別情報を、第１の時点でファイルシステム内にバックアップされたファイルを管理する第１の管理情報から取得する第１の取得部と、第１の時点以降の第２の時点でファイルシステム内にバックアップされる第２のファイルに付与された第２の識別情報を取得する第２の取得部とを含み、制御部は、判定部により第１の識別情報と第２の識別情報とが一致すると判定された場合に、第２の時点でファイルシステム内に第２のファイルが複製されないように制御し、第２の時点でバックアップされたファイルを管理する第２の管理情報に第２の識別情報が含まれ、第２の識別情報が第１のファイルに関連付けられるように制御する、ものであってよい。その場合、本発明は、第２の識別情報が第１のファイルに関連付けられると、第１のファイルに関連付けられた識別情報が増えた旨を、識別情報の個数を示す個数情報に登録する第１の登録部と、第１の管理情報の削除指示に応じて、第１のファイルに関連付けられた識別情報が減った旨を、個数情報に登録する第２の登録部と、第１の管理情報の削除指示に応じて、第１の識別情報を削除し、第２の登録部による登録後に第１のファイルに関連付けられた識別情報がない旨が個数情報に登録されていれば、第１のファイルを更に削除する削除部とを更に含む、ものであってよい。
【０００９】
また、取得部は、サーバコンピュータに記憶された第１のファイルに付与された第１の識別情報を、サーバコンピュータに記憶されたファイルを管理する第１の管理情報から取得する第１の取得部と、クライアントコンピュータに記憶された第２のファイルに付与された第２の識別情報を、クライアントコンピュータに記憶されたファイルを管理する第２の管理情報から取得する第２の取得部とを含み、制御部は、判定部により第１の識別情報と第２の識別情報とが一致すると判定された場合に、クライアントコンピュータから第２のファイルが削除されるように制御する、ものであってよい。
【００１０】
更に、取得部は、サーバコンピュータに記憶された第１のファイルに付与された第１の識別情報を、サーバコンピュータに記憶されたファイルを管理する管理情報から取得する第１の取得部と、クライアントコンピュータが受信した電子メールに添付された第２のファイルに付与された第２の識別情報を、電子メールのデータから取得する第２の取得部とを含み、制御部は、判定部により第１の識別情報と第２の識別情報とが一致すると判定された場合に、クライアントコンピュータに第２のファイルが保存されないように制御する、ものであってよい。
【００１１】
また、本発明は、ファイルシステム内にファイルをバックアップする装置であって、第１の時点でファイルシステム内にバックアップされたファイルを管理する第１の管理情報を取得する第１の取得部と、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報であって、第１の時点以降の第２の時点でファイルシステム内にバックアップされるバックアップ対象ファイルに付与された識別情報であるバックアップ対象ファイル識別情報を取得する第２の取得部と、第１の取得部により取得された第１の管理情報が、第２の取得部により取得されたバックアップ対象ファイル識別情報を、第１の時点でファイルシステム内にバックアップされたバックアップ済ファイルに付与された識別情報であるバックアップ済ファイル識別情報として含むかどうかを判定する判定部と、判定部により第１の管理情報がバックアップ対象ファイル識別情報を含むと判定された場合に、第２の時点でファイルシステム内にバックアップ対象ファイルを複製せず、判定部により第１の管理情報がバックアップ対象ファイル識別情報を含まないと判定された場合に、第２の時点でファイルシステム内にバックアップ対象ファイルを複製する複製部と、第２の時点でバックアップされたファイルを管理する第２の管理情報に、バックアップ対象ファイル識別情報を、バックアップ対象ファイル識別情報がバックアップ済ファイルに関連付けられるように格納する格納部と、バックアップ対象ファイル識別情報がバックアップ済ファイルに関連付けられると、バックアップ済ファイルに関連付けられた識別情報が増えた旨を、識別情報の個数を示す個数情報に登録する第１の登録部と、第１の管理情報の削除指示に応じて、バックアップ済ファイルに関連付けられた識別情報が減った旨を、個数情報に登録する第２の登録部と、第１の管理情報の削除指示に応じて、バックアップ済ファイル識別情報を削除し、第２の登録部による登録後にバックアップ済ファイルに関連付けられた識別情報がない旨が個数情報に登録されていれば、バックアップ済ファイルを更に削除する削除部とを含む、装置も提供する。
【００１２】
また、本発明は、ファイルシステム内でファイルを管理する装置であって、ファイルシステム内で新規ファイルが作成された場合に、新規ファイルに識別情報を付与する第１の付与部と、ファイルシステム内で新規ファイルを複製することにより複製ファイルが生成された場合に、複製ファイルに、識別情報と同一の識別情報を付与する第２の付与部と、ファイルシステム内で新規ファイル又は複製ファイルを更新することにより更新ファイルが生成された場合に、更新ファイルに、識別情報とは異なる他の識別情報を付与する第３の付与部とを含む、装置も提供する。
【００１３】
ここで、本発明は、ファイルシステム内で特定のファイルに変更が加えられた場合に、特定のファイルとは別の変更の内容を示す他のファイルに、特定のファイルに付与された識別情報を付加する付加部を更に含む、ものであってよい。
【００１４】
更に、本発明は、ファイルシステム内でのファイルの重複を排除する方法であって、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報であって、第１のファイルに付与された識別情報である第１の識別情報を取得するステップと、第２のファイルに付与された識別情報である第２の識別情報を取得するステップと、第１の識別情報と第２の識別情報とが一致するかどうかを判定するステップと、第１の識別情報と第２の識別情報とが一致すると判定された場合に、ファイルシステム内に第１のファイル及び第２のファイルが重複して記憶されないように制御するステップとを含む、方法も提供する。
【００１５】
更にまた、本発明は、ファイルシステム内でのファイルの重複を排除する装置として、コンピュータを機能させるプログラムであって、コンピュータを、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報を取得する取得部と、取得部により取得された識別情報であって第１のファイルに付与された識別情報である第１の識別情報と、取得部により取得された識別情報であって第２のファイルに付与された識別情報である第２の識別情報とが一致するかどうかを判定する判定部と、判定部により第１の識別情報と第２の識別情報とが一致すると判定された場合に、ファイルシステム内に第１のファイル及び第２のファイルが重複して記憶されないように制御する制御部として機能させる、プログラムも提供する。
【発明の効果】
【００１６】
本発明によれば、ファイルデータを利用せずにファイルの重複排除に掛かる時間を短縮することができる。
【図面の簡単な説明】
【００１７】
【図１】既存のファイルシステムの例を示した図である。
【図２】本発明の実施の形態におけるファイルシステムの例を示した図である。
【図３】本発明の実施の形態におけるアプリケーションデータと拡張ディレクトリの統合について示した図である。
【図４】本発明の実施の形態におけるファイル管理装置の機能構成例を示したブロック図である。
【図５】本発明の実施の形態におけるファイル管理装置のファイル作成時の動作例を示したフローチャートである。
【図６】本発明の実施の形態におけるファイル管理装置のファイル複製時の動作例を示したフローチャートである。
【図７】本発明の実施の形態におけるファイル管理装置のファイル更新時の動作例を示したフローチャートである。
【図８】本発明の実施の形態における前日のバックアップファイルと当日のバックアップファイルの重複排除について示した図である。
【図９】本発明の実施の形態における複数のクライアントからのバックアップファイルの重複排除について示した図である。
【図１０】本発明の実施の形態における前日のバックアップの消去について示した図である。
【図１１】本発明の実施の形態におけるバックアップ装置の機能構成例を示したブロック図である。
【図１２】本発明の実施の形態におけるバックアップ装置のバックアップ時の動作例を示したフローチャートである。
【図１３】本発明の実施の形態におけるバックアップ装置のバックアップ管理情報消去時の動作例を示したフローチャートである。
【図１４】本発明の実施の形態における重複判定対象のファイルの何れかに対して圧縮及び／又は暗号化がなされている場合について説明するための図である。
【図１５】本発明の実施の形態における分散ファイルシステム上のファイルの重複排除について示した図である。
【図１６】本発明の実施の形態における分散ファイル処理装置の機能構成例を示したブロック図である。
【図１７】本発明の実施の形態における分散ファイル処理装置のファイル消去時の動作例を示したフローチャートである。
【図１８】本発明の実施の形態における電子メールの添付ファイルの重複排除について示した図である。
【図１９】本発明の実施の形態における電子メール処理装置の機能構成例を示したブロック図である。
【図２０】本発明の実施の形態における電子メール処理装置の添付ファイル消去時の動作例を示したフローチャートである。
【図２１】本発明の実施の形態における変更後の文書が包含する元文書の重複排除について説明するための図である。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
まず、本発明の実施の形態の前提として、既存のＵＮＩＸ(登録商標)系ファイルシステムプログラムについて説明する。ここで「ファイルシステム」と記述すると、ファイルを管理するシステムプログラムを指す場合と、あるストレージ上に存在するファイル群を指す場合とがあり紛らわしいので、以降、前者は「ファイルシステムプログラム」と呼ぶことにする。
既存のファイルシステムプログラムは、ファイルシステムを構成するデバイス上にｉｎｏｄｅ領域と呼ばれるエリアを確保している。このエリアには、複数有限個のｉｎｏｄｅと呼ばれるデータ構造体が存在し、個々のｉｎｏｄｅについて次のような情報（ｉｎｏｄｅ情報）を保持している。
【００１９】
ｉｎｏｄｅ情報
・デバイスＩＤ（ファイルを格納しているデバイスを識別する情報）
・ファイルシステム内でファイルを識別するｉｎｏｄｅ番号
・最終ｉｎｏｄｅ更新時刻（ctime）、最終ファイル更新時刻（mtime）、最終参照時刻（atime）を示すタイムスタンプ群
・ファイルの長さ
・ファイル所有者のユーザＩＤ
・ファイルのグループＩＤ
・ファイルパーミッション
・ファイル種別（ファイル／ディレクトリ等）
・そのｉｎｏｄｅを指すハードリンクがいくつあるかを示す参照カウント
【００２０】
ここで、木構造を構成する要となるディレクトリは、そのディレクトリ下のファイルのファイル名とｉｎｏｄｅ番号を１セットとし、その複数セットをリストとして保持する特殊な属性を持ったファイルである。ファイルシステムプログラムは、パス名を与えられると、ルートディレクトリからファイル名とｉｎｏｄｅ番号を辿って目的のファイルを特定する。
尚、この既存のファイルシステムプログラムでは、既にバックアップ済みのファイルをコピーしたファイルは、最終ファイル更新時刻が同じでもｉｎｏｄｅ番号が異なるため、重複してバックアップされてしまう。
【００２１】
図１は、既存のファイルシステムプログラムによって管理される既存のファイルシステムを示した図である。
図では、既存のファイルシステム内に、ファイル５１ａ及びファイル５１ｂが記憶されている。ここでは、ファイル５１ａのデータ実体を「ＤａｔａＡ」で表し、ファイル５１ｂのデータ実体を「ＤａｔａＢ」で表している。
また、既存のファイルシステム内には、ファイル５１ａを構成するデータブロックの位置を示すブロック番号等を含むｉｎｏｄｅ情報５２ａ、及び、ファイル５１ｂを構成するデータブロックの位置を示すブロック番号等を含むｉｎｏｄｅ情報５２ｂが記憶されている。
更に、既存のファイルシステム内には、ディレクトリ５３が記憶されている。ディレクトリ５３は、ファイル５１ａのファイル名「ｆｉｌｅＡ」をｉｎｏｄｅ情報５２ａのｉｎｏｄｅ番号と対応付けて格納しており、このｉｎｏｄｅ番号によりｉｎｏｄｅ情報５２ａを介してファイル５１ａに辿り着けるようになっている。また、ディレクトリ５３は、ファイル５１ｂのファイル名「ｆｉｌｅＢ」をｉｎｏｄｅ情報５２ｂのｉｎｏｄｅ番号と対応付けて格納しており、このｉｎｏｄｅ番号によりｉｎｏｄｅ情報５２ｂを介してファイル５１ｂに辿り着けるようになっている。
【００２２】
ところで、本実施の形態は、バックアップアプリケーションのみならず一般のアプリケーションにおいても重複排除を容易に行える拡張ファイルシステムプログラムを提案するものである。この場合、重複排除は、次の２つの方法、即ち、「ファイル実体ごとのユニークなＩＤの割り振り」、「ディレクトリ構造のアプリケーション利用への拡張」によって可能となる。
【００２３】
［ファイル実体ごとのユニークなＩＤの割り振り］
システムは、あるファイルがある期間不変であったことも別のファイルの複製であることも論理的には認識可能であり、上記で述べたようなデータの重複は回避できるはずである。しかし、それを困難にしている既存のファイルシステムプログラムの問題点は、前述のｉｎｏｄｅ情報がストレージデバイス上のどこにファイルが存在しているかを示すものに過ぎないことである。つまり、ｉｎｏｄｅ情報のみでは、ファイルが同一であるか否かを確定できないことである。ファイルの長さや種別で２つのファイルが一致しないことは確定できるが、同一であるかまではファイル実体を全比較する必要がある。
そこで、本実施の形態では、ファイルごとにユニークなＩＤをファイル作成時又は更新時に付与することを提案する。このＩＤは、ファイルシステムプログラムが管理するストレージワイドで無二なＩＤである。以降、このＩＤをＷＷＵＩＤ（World Wide Unique ID）と呼ぶ。本実施の形態における拡張ファイルシステムプログラム及びバックアップアプリケーションは、このＷＷＵＩＤにてデータ実体を管理し、データ実体の複製及び移動に付随してＷＷＵＩＤも移動させる。これにより、ストレージシステムは、既にバックアップ済み（コピー済み）であることを、全データを比較せずに認識可能となる。
【００２４】
ここで、ＷＷＵＩＤのサイズが妥当な範囲に収まり得るかが実現可能か否かに関わってくるが、以下のように、ＷＷＵＩＤのサイズは１２８ビット（１６バイト）程度で十分であり、１ファイルの０．００６％程度になると推定した。
ファイルシステムの総データ量を１エクサバイト（２６０バイト）と仮定する。これは、現存するストレージデバイスよりもはるかに巨大なサイズである。
平均のファイルサイズを２５６ＫＢ（２１８バイト）と仮定する。これは一般的なＰＣ内の平均ファイルサイズよりやや小さめである。
上記仮定をすると、ＷＷＵＩＤの１２８ビットは１ファイルの０．００６１％（＝２４バイト／２１８バイト）となる。また、ファイルシステム内のファイル数が平均２４２個であるのに対し、ＷＷＵＩＤの１２８ビットで２１２８個のファイルを表現可能であることから、全てのファイルが２１２８−４２回更新されてもＩＤは枯渇しないため、ＷＷＵＩＤは１２８ビット程度で十分と思われる。
【００２５】
図２は、拡張ファイルシステムプログラムによって管理される拡張ファイルシステムの一実装例を示した図である。
図では、拡張ファイルシステム内に、ファイル５１ａ及びファイル５１ｂが記憶されている。ここでは、ファイル５１ａのデータ実体を「ＤａｔａＡ」で表し、ファイル５１ｂのデータ実体を「ＤａｔａＢ」で表している。
また、拡張ファイルシステム内には、ファイル５１ａを構成するデータブロックの位置を示すブロック番号等を含むｉｎｏｄｅ情報５２ａ、及び、ファイル５１ｂを構成するデータブロックの位置を示すブロック番号等を含むｉｎｏｄｅ情報５２ｂが記憶されている。
更に、拡張ファイルシステム内には、ディレクトリ５４が記憶されている。ディレクトリ５４は、ファイル５１ａのファイル名「ｆｉｌｅＡ」に代えて、ファイル５１ａのＷＷＵＩＤ「ｗｗｕｉｄＡ」をｉｎｏｄｅ情報５２ａのｉｎｏｄｅ番号と対応付けて格納しており、このｉｎｏｄｅ番号によりｉｎｏｄｅ情報５２ａを介してファイル５１ａに辿り着けるようになっている。また、ディレクトリ５４は、ファイル５１ｂのファイル名「ｆｉｌｅＢ」に代えて、ファイル５１ｂのＷＷＵＩＤ「ｗｗｕｉｄＢ」をｉｎｏｄｅ情報５２ｂのｉｎｏｄｅ番号と対応付けて格納しており、このｉｎｏｄｅ番号によりｉｎｏｄｅ情報５２ｂを介してファイル５１ｂに辿り着けるようになっている。
【００２６】
更にまた、拡張ファイルシステム内には、拡張ディレクトリ５５が記憶されている。拡張ディレクトリ５５は、ファイル５１ａのファイル名「ｆｉｌｅＡ」をファイル５１ａのＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しており、ディレクトリ５４を参照してこのＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けられているｉｎｏｄｅ番号を求め、このｉｎｏｄｅ番号によりｉｎｏｄｅ情報５２ａを介してファイル５１ａに辿り着けるようになっている。また、拡張ディレクトリ５５は、ファイル５１ｂのファイル名「ｆｉｌｅＢ」をファイル５１ｂのＷＷＵＩＤ「ｗｗｕｉｄＢ」と対応付けて格納しており、ディレクトリ５４を参照してこのＷＷＵＩＤ「ｗｗｕｉｄＢ」と対応付けられているｉｎｏｄｅ番号を求め、このｉｎｏｄｅ番号によりｉｎｏｄｅ情報５２ｂを介してファイル５１ｂに辿り着けるようになっている。
【００２７】
尚、このように拡張ディレクトリ５５からはディレクトリ５４を介してファイル５１ａ，５１ｂに辿り着けるようになっているが、図では、太矢印で示すように、拡張ディレクトリ５５のＷＷＵＩＤが直接ファイル５１ａ，５１ｂを指し示す簡略化表現を用いている。このような簡略化表現は、以降の説明でも用いるものとする。
【００２８】
［ディレクトリ構造のアプリケーション利用への拡張］
既存のファイルシステムでは、ファイル種別がディレクトリのデータしかファイル実体へのポインタを持てない。これに対し、本実施の形態では、ＷＷＵＩＤを使用して、ファイルシステムが持つ木構造（ディレクトリ構造）をアプリケーションデータが利用することを許容する。ＤＴＰ（DeskTop Publishing）のレビューコメント付文書を処理する既存のアプリケーションや、添付ファイル付き電子メールを送受信する既存のアプリケーションは、レビューコメントが付される元文書や添付ファイル等のデータストリームを独自の方法で包含している。しかし、そのため、同一データストリームを包含する複数のファイルが存在しても、そのアプリケーション以外はそのことを判別できない。アプリケーションデータを拡張ディレクトリのデータと同様にファイルの包含を扱えるようにすることで、異なるアプリケーションデータによって包含される同一ファイルの重複排除が容易になる。また、ＷＷＵＩＤごとの参照カウント（以下、「Ｒｃｎｔ」ともいう）を拡張ディレクトリのデータとアプリケーションデータとで共有することにより、アプリケーションがファイル実体の消去の可否を拡張ファイルシステムプログラムと同様に扱うことが可能になる。
【００２９】
図３は、このようなアプリケーションデータと拡張ディレクトリの統合を模式的に示した図である。
図では、拡張ファイルシステム内に、ファイル６１ａ及びファイル６１ｂが記憶されている。ここでは、ファイル６１ａのデータ実体を「ＤａｔａＡ」で表し、ファイル６１ｂのデータ実体を「ＤａｔａＢ」で表している。
【００３０】
また、拡張ファイルシステム内には、拡張ディレクトリ６５が記憶されている。拡張ディレクトリ６５は、ファイル６１ａのファイル名「ｆｉｌｅＡ」をファイル６１ａのＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＡ」によりファイル６１ａに辿り着けるようになっている。また、拡張ディレクトリ６５は、ファイル６１ｂのファイル名「ｆｉｌｅＢ」をファイル６１ｂのＷＷＵＩＤ「ｗｗｕｉｄＢ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＢ」によりファイル６１ｂに辿り着けるようになっている。更に、拡張ディレクトリ６５は、ファイル６１ｂと内容が同じ別ファイルのファイル名「ｆｉｌｅＢ’」をファイル６１ｂのＷＷＵＩＤ「ｗｗｕｉｄＢ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＢ」によりファイル６１ｂに辿り着けるようになっている。ここで、拡張ディレクトリ６５のファイル名は「ｄｉｒＣ」であるものとする。
更に、拡張ファイルシステム内には、親ディレクトリの拡張ディレクトリ（拡張親ディレクトリ）６６が記憶されている。拡張親ディレクトリ６６は、拡張ディレクトリ６５のファイル名「ｄｉｒＣ」と拡張ディレクトリ６５のＷＷＵＩＤ「ｗｗｕｉｄＣ」とを対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＣ」により拡張ディレクトリ６５に辿り着けるようになっている。これに対して、拡張ディレクトリ６５は、親ディレクトリを表す「．．」と拡張親ディレクトリ６６のＷＷＵＩＤ「ｗｗｕｉｄＰ」とを対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＰ」により拡張親ディレクトリ６６に辿り着けるようになっている。
【００３１】
また、拡張ファイルシステム内には、アプリケーションデータ６７ａが記憶されている。アプリケーションデータ６７ａは、ファイル６１ａのＷＷＵＩＤ「ｗｗｕｉｄＡ」を含んでおり、このＷＷＵＩＤ「ｗｗｕｉｄＡ」によりファイル６１ａに辿り着けるようになっている。
更に、拡張ファイルシステム内には、アプリケーションデータ６７ｂも記憶されている。アプリケーションデータ６７ｂは、ファイル６１ａのＷＷＵＩＤ「ｗｗｕｉｄＡ」とファイル６１ｂのＷＷＵＩＤ「ｗｗｕｉｄＢ」とを含んでおり、ＷＷＵＩＤ「ｗｗｕｉｄＡ」によりファイル６１ａに辿り着けるようになっていると共に、ＷＷＵＩＤ「ｗｗｕｉｄＢ」によりファイル６１ｂに辿り着けるようになっている。
尚、この例において、ファイル６１ａは、拡張ディレクトリ６５、アプリケーションデータ６７ａ、アプリケーションデータ６７ｂのそれぞれの１つのＷＷＵＩＤから辿り着くことができるので、ファイル６１ａに関連付けられたｉｎｏｄｅ情報内のＲｃｎｔは「３」になっている。また、ファイル６１ｂは、拡張ディレクトリ６５の２つのＷＷＵＩＤ、アプリケーションデータ６７ｂの１つのＷＷＵＩＤから辿り着くことができるので、ファイル６１ｂに関連付けられたｉｎｏｄｅ情報内のＲｃｎｔは「３」になっている。
【００３２】
［ファイル管理装置］
次に、以上述べた拡張ファイルシステムプログラムによって実現されるファイル管理装置１０について具体的に説明する。尚、ここでは、図２に示した実装例を前提に説明する。
図４は、ファイル管理装置１０の機能構成例を示した図である。
図示するように、ファイル管理装置１０は、ＷＷＵＩＤ管理部１１と、ファイル記憶部１２と、管理情報記憶部１３と、ファイル作成部１４と、ファイル複製部１５と、ファイル更新部１６とを備える。
【００３３】
ＷＷＵＩＤ管理部１１は、上述した２１２８個のＷＷＵＩＤを、各ＷＷＵＩＤの使用状況の情報と共に管理する。本実施の形態では、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報の一例として、ＷＷＵＩＤを用いている。
ファイル記憶部１２は、ファイルを記憶する。
管理情報記憶部１３は、ｉｎｏｄｅ情報、ディレクトリ、拡張ディレクトリを記憶する。
【００３４】
ファイル作成部１４は、ユーザ又はアプリケーションからディレクトリとファイル名を指定したファイル作成指示があると、指定されたディレクトリの下に、指定されたファイル名の新たなファイルを作成する。このとき、ファイル作成部１４は、新たなファイルに未使用のＷＷＵＩＤを付与する。本実施の形態では、新規ファイルに識別情報を付与する第１の付与部の一例として、ファイル作成部１４を設けている。
【００３５】
ファイル複製部１５は、ユーザ又はアプリケーションから複製元ディレクトリと複製先ディレクトリとファイル名とを指定したファイル複製指示があると、指定された複製元ディレクトリの下の指定されたファイル名のファイル（複製元ファイル）を複製することで、指定された複製先ディレクトリの下に同じファイル名のファイル（複製先ファイル）を生成する。このとき、ファイル複製部１５は、複製元ファイルに付与されていたＷＷＵＩＤを複製先ファイルに引き継ぐ。本実施の形態では、複製ファイルに同一の識別情報を付与する第２の付与部の一例として、ファイル複製部１５を設けている。
【００３６】
ファイル更新部１６は、ユーザ又はアプリケーションからディレクトリとファイル名を指定したファイル更新指示があると、指定されたディレクトリの下の指定されたファイル名のファイルを更新する。このとき、ファイル更新部１６は、更新後のファイルに未使用のＷＷＵＩＤを付与する。本実施の形態では、更新ファイルに異なる識別情報を付与する第３の付与部の一例として、ファイル更新部１６を設けている。
【００３７】
次に、ファイル管理装置１０の動作について説明する。
図５は、ファイル作成部１４がファイルを作成するときの動作を示したものである。
ファイル作成部１４は、まず、ディレクトリとファイル名とを指定したファイル作成指示を受け付ける（ステップ１０１）。すると、ファイル作成部１４は、新たにファイルを作成してファイル記憶部１２に記憶し（ステップ１０２）、このファイルのｉｎｏｄｅ情報を管理情報記憶部１３に記憶する（ステップ１０３）。
その後、ファイル作成部１４は、ＷＷＵＩＤ管理部１１から未使用のＷＷＵＩＤを取得する（ステップ１０４）。
そして、ファイル作成部１４は、ここで取得したＷＷＵＩＤとステップ１０３で記憶したｉｎｏｄｅ情報におけるｉｎｏｄｅ番号との対応を、管理情報記憶部１３に記憶されたディレクトリに含める（ステップ１０５）。
また、ファイル作成部１４は、ステップ１０１で指定されたファイル名とステップ１０４で取得したＷＷＵＩＤとの対応を、管理情報記憶部１３に記憶された拡張ディレクトリに含める（ステップ１０６）。
【００３８】
図６は、ファイル複製部１５がファイルを複製するときの動作を示したものである。
ファイル複製部１５は、まず、複製元ディレクトリと複製先ディレクトリとファイル名とを指定したファイル複製指示を受け付ける（ステップ１２１）。すると、ファイル複製部１５は、指定された複製元ディレクトリの下の指定されたファイル名の複製元ファイルをファイル記憶部１２から読み出し、この複製元ファイルを複製した複製先ファイルを、複製先ディレクトリの下の同じファイル名のファイルとしてファイル記憶部１２に記憶する（ステップ１２２）。そして、この複製先ファイルのｉｎｏｄｅ情報を管理情報記憶部１３に記憶する（ステップ１２３）。
その後、ファイル複製部１５は、管理情報記憶部１３に記憶された複製元ディレクトリに対する拡張ディレクトリ内をステップ１２１で指定されたファイル名で検索し、複製元ファイルのＷＷＵＩＤを取得する（ステップ１２４）。
そして、ファイル複製部１５は、ここで取得したＷＷＵＩＤとステップ１２３で記憶したｉｎｏｄｅ情報におけるｉｎｏｄｅ番号との対応を、管理情報記憶部１３に記憶された複製先ディレクトリに含める（ステップ１２５）。
また、ファイル複製部１５は、ステップ１２１で指定されたファイル名とステップ１２４で取得したＷＷＵＩＤとの対応を、管理情報記憶部１３に記憶された複製先ディレクトリに対する拡張ディレクトリに含める（ステップ１２６）。
【００３９】
図７は、ファイル更新部１６がファイルを更新するときの動作を示したものである。
ファイル更新部１６は、まず、ディレクトリとファイル名とを指定したファイル更新指示を受け付ける（ステップ１４１）。すると、ファイル更新部１６は、指定されたディレクトリの下の指定されたファイル名のファイルを更新したファイルをファイル記憶部１２に記憶し（ステップ１４２）、管理情報記憶部１３に記憶されたこのファイルのｉｎｏｄｅ情報（最終更新時刻等）を更新する（ステップ１４３）。
その後、ファイル更新部１６は、ＷＷＵＩＤ管理部１１から未使用のＷＷＵＩＤを取得する（ステップ１４４）。
そして、ファイル更新部１６は、管理情報記憶部１３に記憶されたディレクトリに含まれていた更新前ファイルのＷＷＵＩＤとｉｎｏｄｅ番号との対応を、ここで取得したＷＷＵＩＤと同じｉｎｏｄｅ番号との対応に置き換える（ステップ１４５）。
また、ファイル更新部１６は、管理情報記憶部１３に記憶された拡張ディレクトリに含まれていた更新前ファイルのファイル名とＷＷＵＩＤとの対応を、同じファイル名とステップ１４４で取得したＷＷＵＩＤとの対応に置き換える（ステップ１４６）。
【００４０】
［ファイルの重複排除］
以下、本実施の形態におけるファイルの重複排除のシナリオを列挙する。
【００４１】
［定期的完全バックアップにおける重複排除］
図８は、ＤｔｏＤ（Disk to Disk）バックアップアプリケーション（以下、単に「バックアップアプリケーション」という）が、当日のバックアップと前日のバックアップとを比較して重複排除を行っている例を示したものである。
【００４２】
まず、前日のバックアップについて説明する。
前日のクライアントファイルシステム７１ｘ内には、ファイル７２ｘ及びファイル７３が記憶されている。ここでは、ファイル７２ｘのデータ実体を「ＤａｔａＡ」で表し、ファイル７３のデータ実体を「ＤａｔａＢ」で表している。
また、前日のクライアントファイルシステム７１ｘ内には、拡張ディレクトリ７５ｘが記憶されている。拡張ディレクトリ７５ｘは、ファイル７２ｘのファイル名「ｆｉｌｅＡ」をファイル７２ｘのＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＡ」によりファイル７２ｘに辿り着けるようになっている。また、拡張ディレクトリ７５ｘは、ファイル７３のファイル名「ｆｉｌｅＢ」をファイル７３のＷＷＵＩＤ「ｗｗｕｉｄＢ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＢ」によりファイル７３に辿り着けるようになっている。
【００４３】
そして、前日動作したバックアップアプリケーション（以下、「前日のバックアップアプリケーション」という）７６ｘは、破線太矢印で示すように、ファイル７２ｘ及びファイル７３を前日のクライアントファイルシステム７１ｘからサーバファイルシステム７７へコピーする。また、このとき、前日のバックアップアプリケーション７６ｘは、同様に破線太矢印で示すように、サーバファイルシステム７７内に、前日のバックアップ管理情報７８ｘを作成する。この前日のバックアップ管理情報７８ｘは、前日のバックアップファイルのリストを示すものであり、そのデータ構造は、拡張ディレクトリのデータ構造と類似している。
【００４４】
次いで、当日のバックアップについて説明する。
当日のクライアントファイルシステム７１ｙ内には、ファイル７２ｙ及びファイル７４が記憶されている。ここでは、ファイル７２ｙのデータ実体を「ＤａｔａＡ」で表し、ファイル７４のデータ実体を「ＤａｔａＣ」で表している。
また、当日のクライアントファイルシステム７１ｙ内には、拡張ディレクトリ７５ｙが記憶されている。拡張ディレクトリ７５ｙは、ファイル７２ｙのファイル名「ｆｉｌｅＡ」をファイル７２ｙのＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＡ」によりファイル７２ｙに辿り着けるようになっている。また、拡張ディレクトリ７５ｙは、ファイル７４のファイル名「ｆｉｌｅＣ」をファイル７４のＷＷＵＩＤ「ｗｗｕｉｄＣ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＣ」によりファイル７４に辿り着けるようになっている。
【００４５】
そして、当日動作するバックアップアプリケーション（以下、「当日のバックアップアプリケーション」という）７６ｙは、実線太矢印で示すように、前日のバックアップ管理情報７８ｘを参照して、サーバファイルシステム７７にコピーする必要がないファイル７２ｙをファイル実体を比較せずに特定し、サーバファイルシステム７７にコピーする必要があるファイル７４のみコピーする。そして、最後に、当日のバックアップアプリケーション７６ｙは、同様に実線太矢印で示すように、当日のバックアップ管理情報７８ｙを保管する。尚、この当日のバックアップ管理情報７８ｙは、当日のバックアップファイルのリストを示すものであり、そのデータ構造は、拡張ディレクトリのデータ構造と類似している。
ここで重要な点は、前日のバックアップ管理情報７８ｘで管理されるバックアップファイルも、当日のバックアップ管理情報７８ｙで管理されるバックアップファイルも、独立してリストアが可能であるということである。
尚、図８では、バックアップを比較する２つの時点として前日及び当日を例示したが、第１の時点及びこの第１の時点以降の第２の時点という関係にある２つの時点であれば、如何なる２つの時点を採用してもよい。
【００４６】
［複数システムからのバックアップにおける重複排除］
定期的完全バックアップの場合と同様に、複数のクライアントからのバックアップの場合も、バックアップ管理情報を参照することで、既にファイル実体がコピー済みであることが判断できる。ここで、複数のクライアントとしては、例えば、ユーザＸが使用するクライアント（以下、「ユーザＸのクライアント」という）及びユーザＹが使用するクライアント（以下、「ユーザＹのクライアント」という）が挙げられる。
【００４７】
図９は、バックアップアプリケーションが、ユーザＸのクライアントからのバックアップとユーザＹのクライアントからのバックアップとを比較して重複排除を行っている例を示したものである。
この例は、図８における前日のクライアントファイルシステム７１ｘ、当日のクライアントファイルシステム７１ｙ、前日のバックアップアプリケーション７６ｘ、当日のバックアップアプリケーション７６ｙ、前日のバックアップ管理情報７８ｘ、当日のバックアップ管理情報７８ｙを、それぞれ、ユーザＸのクライアントファイルシステム７１ｘ、ユーザＹのクライアントファイルシステム７１ｙ、ユーザＸのバックアップアプリケーション７６ｘ、ユーザＹのバックアップアプリケーション７６ｙ、ユーザＸのバックアップ管理情報７８ｘ、ユーザＹのバックアップ管理情報７８ｙに置き換えただけであるので、詳細な説明は省略する。
【００４８】
尚、図９では、ユーザＸのクライアントにおけるファイルシステムを「ユーザＸのクライアントファイルシステム」と表記し、ユーザＹのクライアントにおけるファイルシステムを「ユーザＹのクライアントファイルシステム」と表記し、ユーザＸのクライアントからのバックアップを行ったバックアップアプリケーションを「ユーザＸのバックアップアプリケーション」と表記し、ユーザＹのクライアントからのバックアップを行うバックアップアプリケーションを「ユーザＹのバックアップアプリケーション」と表記し、ユーザＸのクライアントからのバックアップを管理するバックアップ管理情報を「ユーザＸのバックアップ管理情報」と表記し、ユーザＹのクライアントからのバックアップを管理するバックアップ管理情報を「ユーザＹのバックアップ管理情報」と表記している。
また、図９では、ユーザＸのクライアントからバックアップした時点が第１の時点に相当し、ユーザＹのクライアントからバックアップした時点が第２の時点に相当する。
【００４９】
［旧世代バックアップの消去の容易さ］
図１０は、サーバファイルシステム７７内に前日のバックアップ管理情報７８ｘと当日のバックアップ管理情報７８ｙとが存在している状態で、前日のバックアップ管理情報７８ｘのみを消去するときの様子を示したものである。
前日のバックアップ管理情報７８ｘが消去されると、ファイルシステムプログラムは、関連する全てのファイルのＲｃｎｔから「１」を減算する。具体的には、ＷＷＵＩＤ「ｗｗｕｉｄＡ」のファイル７２のＲｃｎｔを「２」から「１」に変更し、ＷＷＵＩＤ「ｗｗｕｉｄＢ」のファイル７３のＲｃｎｔを「１」から「０」に変更する。一方、ファイル７４のＷＷＵＩＤは前日のバックアップ管理情報７８ｘに含まれていないので、そのＲｃｎｔは変更しない。このようなＲｃｎｔの減算処理の結果、ファイル７２のＲｃｎｔは「０」になっていないので、ファイルシステムプログラムはファイル７２は前日のバックアップ管理情報７８ｘからのリンクは切るが実体を消滅させず、ファイル７３のＲｃｎｔは「０」になったので、ファイルシステムプログラムはファイル７３を消滅させる。
ここで重要な点は、古いバックアップから順に消去しても新しい世代のバックアップの整合性が保たれることにある。
【００５０】
尚、この旧世代バックアップの消去の例は、図８の定期的完全バックアップに対してのみならず、図９の複数のクライアントからのバックアップに対しても適用可能である。この場合、旧世代バックアップを消去することは、特定のクライアントからのバックアップを消去することに相当する。
【００５１】
［バックアップ装置］
次に、以上述べたようなバックアップ及び特定のバックアップの消去を行うバックアップ装置２０について具体的に説明する。尚、ここでは、前日のクライアントファイルシステム７１ｘ及びユーザＸのクライアントファイルシステム７１ｘを単にクライアントファイルシステム７１ｘと呼び、当日のクライアントファイルシステム７１ｙ及びユーザＹのクライアントファイルシステム７１ｙを単にクライアントファイルシステム７１ｙと呼び、前日のバックアップ管理情報７８ｘ及びユーザＸのバックアップ管理情報７８ｘを第１管理情報７８ｘと呼び、当日のバックアップ管理情報７８ｙ及びユーザＹのバックアップ管理情報７８ｙを第２管理情報７８ｙと呼ぶことにする。また、このバックアップ装置２０は、クライアントファイルシステム７１ｙを含むコンピュータ、サーバファイルシステム７７を含むコンピュータの何れからも独立した装置であることを前提とする。
【００５２】
図１１は、バックアップ装置２０の機能構成例を示した図である。
図示するように、バックアップ装置２０は、ファイル名受付部２１と、ＷＷＵＩＤ受信部２２と、ＷＷＵＩＤ検索部２３と、Ｒｃｎｔ更新指示部２４と、第２管理情報更新指示部２５と、ファイル操作指示部２６と、第１管理情報削除指示部２７とを備える。
【００５３】
ファイル名受付部２１は、バックアップ対象ファイルのファイル名を受け付ける。
ＷＷＵＩＤ受信部２２は、バックアップ対象ファイルのＷＷＵＩＤをクライアントファイルシステム７１ｙから受信する。具体的には、ファイル名受付部２１が受け付けたファイル名にクライアントファイルシステム７１ｙ内の拡張ディレクトリ７５ｙにおいて対応付けられたＷＷＵＩＤを受信する。本実施の形態では、第２の時点でファイルシステム内にバックアップされる第２のファイルの一例として、バックアップ対象ファイルを用いており、第２のファイルに付与された第２の識別情報を取得する第２の取得部の一例として、ＷＷＵＩＤ受信部２２を設けている。また、バックアップ対象ファイル識別情報を取得する第２の取得部の一例として、ＷＷＵＩＤ受信部２２を設けている。
【００５４】
ＷＷＵＩＤ検索部２３は、ＷＷＵＩＤ受信部２２が受信したＷＷＵＩＤを、サーバファイルシステム７７内の第１管理情報７８ｘから検索する。具体的には、サーバファイルシステム７７内の第１管理情報７８ｘを取得してその中からバックアップ済ファイルのＷＷＵＩＤを取り出し、ＷＷＵＩＤ受信部２２が受信したＷＷＵＩＤと同じかどうかを判定する。本実施の形態では、第１の時点でファイルシステム内にバックアップされた第１のファイルの一例として、バックアップ済ファイルを用いており、第１のファイルに付与された第１の識別情報を取得する第１の取得部の一例として、ＷＷＵＩＤ検索部２３を設けている。また、第１の管理情報を取得する第１の取得部の一例として、ＷＷＵＩＤ検索部２３を設けている。更に、第１の識別情報と第２の識別情報とが一致するかどうかを判定する判定部、第１の管理情報がバックアップ対象ファイル識別情報を含むかどうかを判定する判定部の一例として、ＷＷＵＩＤ検索部２３を設けている。
【００５５】
Ｒｃｎｔ更新指示部２４は、ＷＷＵＩＤ検索部２３が第１管理情報７８ｘからＷＷＵＩＤを見つけることができた場合には、そのＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔに「１」を加算する更新処理をサーバファイルシステム７７に指示し、ＷＷＵＩＤ検索部２３が第１管理情報７８ｘからＷＷＵＩＤを見つけることができなかった場合には、そのＷＷＵＩＤに対応するｉｎｏｄｅ情報を新たに記憶してその中のＲｃｎｔを「１」とする更新処理をサーバファイルシステム７７に指示する。また、第１管理情報７８ｘを削除する際に、第１管理情報７８ｘに含まれるＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔから「１」を減算する更新処理をサーバファイルシステム７７に指示する。本実施の形態では、識別情報の個数を示す個数情報の一例として、Ｒｃｎｔを用いている。また、識別情報が増えた旨を登録する第１の登録部、識別情報が減った旨を登録する第２の登録部の一例として、Ｒｃｎｔ更新指示部２４を設けている。
【００５６】
第２管理情報更新指示部２５は、第１管理情報７８ｘ内のパス名及びＷＷＵＩＤを第２管理情報７８ｙに追加する更新処理を、サーバファイルシステム７７に指示する。本実施の形態では、第２の管理情報に第２の識別情報が含まれ、第２の識別情報が第１のファイルに関連付けられるように制御する制御部の一例として、第２管理情報更新指示部２５を設けている。また、第２の管理情報にバックアップ対象ファイル識別情報を格納する格納部の一例として、第２管理情報更新指示部２５を設けている。
【００５７】
ファイル操作指示部２６は、ＷＷＵＩＤ検索部２３が第１管理情報７８ｘからＷＷＵＩＤを見つけることができなかった場合に、バックアップ対象ファイルを記憶するようサーバファイルシステム７７に指示する。また、第１管理情報７８ｘを削除する際に、条件が満たされれば、第１管理情報７８ｘで管理されているファイルを削除するようサーバファイルシステム７７に指示する。本実施の形態では、ファイルシステム内に第２のファイルが複製されないように制御する制御部、第１のファイルを削除する削除部の一例として、ファイル操作指示部２６を設けている。また、ファイルシステム内にバックアップ対象ファイルを複製する複製部、バックアップ済ファイルを削除する削除部の一例として、ファイル操作指示部２６を設けている。
【００５８】
第１管理情報削除指示部２７は、第１管理情報７８ｘを削除するようサーバファイルシステム７７に指示する。本実施の形態では、第１の識別情報を削除する削除部、バックアップ済ファイル識別情報を削除する削除部の一例として、第１管理情報削除指示部２７を設けている。
【００５９】
次に、バックアップ装置２０の動作について説明する。
図１２は、バックアップを行うときのバックアップ装置２０の動作を示したものである。
バックアップ装置２０では、まず、ファイル名受付部２１が、バックアップ対象ファイルのファイル名を受け付ける（ステップ２０１）。
すると、ＷＷＵＩＤ受信部２２が、ステップ２０１で受け付けたファイル名にクライアントファイルシステム７１ｙ内の拡張ディレクトリ７５ｙで対応付けられたＷＷＵＩＤを受信する（ステップ２０２）。
次に、ＷＷＵＩＤ検索部２３が、ＷＷＵＩＤ受信部２２が受信したＷＷＵＩＤを取得し、サーバファイルシステム７７内の第１管理情報７８ｘからこのＷＷＵＩＤを検索する（ステップ２０３）。そして、第１管理情報７８ｘからＷＷＵＩＤが見つかったかどうかを判定する（ステップ２０４）。
【００６０】
その結果、第１管理情報７８ｘからＷＷＵＩＤが見つかれば、ＷＷＵＩＤはＷＷＵＩＤ検索部２３からＲｃｎｔ更新指示部２４へと渡され、Ｒｃｎｔ更新指示部２４が、サーバファイルシステム７７に対し、ＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔに「１」を加算するよう指示する（ステップ２０５）。尚、このとき、ＷＷＵＩＤ検索部２３は、見つかったＷＷＵＩＤに対応付けられたパス名も保持しておくものとする。
【００６１】
一方、第１管理情報７８ｘからＷＷＵＩＤが見つからなければ、ＷＷＵＩＤ検索部２３は、クライアントファイルシステム７１ｙからバックアップ対象ファイルを取得する（ステップ２０６）。そして、バックアップ対象ファイルはＷＷＵＩＤ検索部２３からファイル操作指示部２６へと渡され、ファイル操作指示部２６が、サーバファイルシステム７７に対し、バックアップ対象ファイルを記憶するよう指示する（ステップ２０７）。また、ＷＷＵＩＤ検索部２３が保持するクライアントファイルシステム７１ｙからのＷＷＵＩＤはＲｃｎｔ更新指示部２４へと渡され、Ｒｃｎｔ更新指示部２４が、サーバファイルシステム７７に対し、ＷＷＵＩＤに対応するｉｎｏｄｅ情報を新たに生成してそのｉｎｏｄｅ情報内のＲｃｎｔに「１」を設定するよう指示する（ステップ２０８）。
【００６２】
その後、パス名及びＷＷＵＩＤはＷＷＵＩＤ検索部２３から第２管理情報更新指示部２５へと渡され、第２管理情報更新指示部２５が、サーバファイルシステム７７に対し、第２管理情報７８ｙにパス名及びＷＷＵＩＤを登録するよう指示する（ステップ２０９）。
【００６３】
図１３は、第１管理情報７８ｘを消去するときのバックアップ装置２０の動作を示したものである。
バックアップ装置２０では、まず、第１管理情報削除指示部２７が、第１管理情報７８ｘ内の１つのパス名及びＷＷＵＩＤの組に着目する（ステップ２５１）。
すると、ＷＷＵＩＤは第１管理情報削除指示部２７からＲｃｎｔ更新指示部２４へと渡され、Ｒｃｎｔ更新指示部２４が、サーバファイルシステム７７に対し、ＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔから「１」を減算するよう指示する（ステップ２５２）。
そして、第１管理情報削除指示部２７は、Ｒｃｎｔ更新指示部２４から返された減算後のＲｃｎｔの値を参照し、Ｒｃｎｔが「０」になったかどうかを判定する（ステップ２５３）。
【００６４】
その結果、Ｒｃｎｔが「０」になっていれば、着目しているパス名が第１管理情報削除指示部２７からファイル操作指示部２６へと渡され、ファイル操作指示部２６が、サーバファイルシステム７７に対し、パス名で特定されるファイルを削除するよう指示する（ステップ２５４）。
一方、Ｒｃｎｔが「０」になっていなければ、着目しているパス名で特定されるファイルは、他のバックアップ管理情報からも参照されているので、ファイル操作指示部２６は、サーバファイルシステム７７に対し、ファイルの削除を指示しない。
【００６５】
その後、第１管理情報削除指示部２７は、第１管理情報７８ｘ内の全てのパス名及びＷＷＵＩＤの組に着目したかどうかを判定する（ステップ２５５）。
そして、第１管理情報７８ｘ内の全てのパス名及びＷＷＵＩＤの組に着目していなければ、ステップ２５１〜２５４の処理を繰り返す。
また、第１管理情報７８ｘ内の全てのパス名及びＷＷＵＩＤの組に着目していれば、第１管理情報削除指示部２７は、サーバファイルシステム７７に対し、第１管理情報７８ｘを削除するよう指示する（ステップ２５６）。
【００６６】
尚、ここでは、バックアップ装置２０を、クライアントファイルシステム７１ｙを含むコンピュータ、サーバファイルシステム７７を含むコンピュータの何れからも独立した装置としたが、これらのコンピュータの何れかの内部で実現されるものとしてもよい。
【００６７】
［圧縮又は暗号化により重複の判定が困難だったケース］
ファイルデータを参照して重複を判定する方式では、ストレージ上で圧縮や暗号化がなされたデータの重複排除は、データの伸張や復号が必要となるため困難である。これに対し、本実施の形態では、ＷＷＵＩＤによりデータの同一性を保証するものなので、データの伸張や復号を行う必要がない。
【００６８】
図１４は、このことを説明するための図である。
クライアントファイルシステム７１内には、ファイル７２が記憶されている。ここでは、ファイル７２のデータ実体を「ＤａｔａＡ」で表している。
また、クライアントファイルシステム７１内には、拡張ディレクトリ７５が記憶されている。拡張ディレクトリ７５は、ファイル７２のファイル名「ｆｉｌｅＡ」をファイル７２のＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＡ」によりファイル７２に辿り着けるようになっている。
【００６９】
一方、サーバファイルシステム７７内には、ファイル７３が記憶されている。ここで、ファイル７３は、ファイル７２を圧縮及び／又は暗号化したファイルである。
また、サーバファイルシステム７７内には、拡張ディレクトリ７８が記憶されている。拡張ディレクトリ７８は、ファイル７３のファイル名「ｆｉｌｅＡ」をファイル７３のＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しており、このＷＷＵＩＤ「ｗｗｕｉｄＡ」によりファイル７３に辿り着けるようになっている。
【００７０】
このような状態で、ファイルシステムプログラム７９は、クライアントファイルシステム７１内の拡張ディレクトリ７５に格納されたＷＷＵＩＤと、サーバファイルシステム７７内の拡張ディレクトリ７８に格納されたＷＷＵＩＤとが同一であることを検出する。これにより、ファイル７２のデータとファイル７３のデータとを比較することなく、ファイル７２とファイル７３とが同一であることが認識できる。
【００７１】
［分散ファイルシステムにおけるファイルの重複判定］
図１５は、本実施の形態を分散ファイルシステムに適用した例を示したものである。
この例において、クライアントファイルシステム７１及びサーバファイルシステム７７は１つのファイルシステムのサブファイルシステムであるので、クライアントファイルシステム７１内及びサーバファイルシステム７７内のファイルには、ファイルシステムプログラム７９により、一貫するＷＷＵＩＤが割り振られている。
【００７２】
まず、ファイル７２について説明する。ここでは、ファイル７２のデータ実体を「ＤａｔａＡ」で表している。
図において、ファイル７２の実体は容量の都合等でクライアントファイルシステム７１から消去されたと仮定する。即ち、クライアントファイルシステム７１内の拡張ディレクトリ７５は、ファイル７２のファイル名「ｆｉｌｅＡ」をファイル７２のＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しているが、ＷＷＵＩＤで特定されるファイル７２はクライアントファイルシステム７１内には存在していない。このとき、サーバファイルシステム７７内の拡張ディレクトリ７８は、ファイル７２のファイル名「ｆｉｌｅＡ」をファイル７２のＷＷＵＩＤ「ｗｗｕｉｄＡ」と対応付けて格納しており、ＷＷＵＩＤで特定されるファイル７２がサーバファイルシステム７７内に存在している。従って、ファイルシステムプログラム７９は、ＷＷＵＩＤにより、サーバファイルシステム７７からファイル７２の実体を容易に特定し呼び出すことができる。
【００７３】
次に、ファイル７３について説明する。ここでは、ファイル７３のデータ実体を「ＤａｔａＢ」で表している。
図において、ファイル７３の実体は、クライアントファイルシステム７１とサーバファイルシステム７７の両方に存在している。即ち、クライアントファイルシステム７１内の拡張ディレクトリ７５は、ファイル７３のファイル名「ｆｉｌｅＢ」をファイル７３のＷＷＵＩＤ「ｗｗｕｉｄＢ」と対応付けて格納しており、ＷＷＵＩＤで特定されるファイル７３はクライアントファイルシステム７１内に存在している。また、サーバファイルシステム７７内の拡張ディレクトリ７８は、ファイル７３のファイル名「ｆｉｌｅＢ」をファイル７３のＷＷＵＩＤ「ｗｗｕｉｄＢ」と対応付けて格納しており、ＷＷＵＩＤで特定されるファイル７３はサーバファイルシステム７７内に存在している。従って、ファイルシステムプログラム７９は、ＷＷＵＩＤによりファイルの重複を容易に認識することができ、その結果、クライアントファイルシステム７１からファイル７３を消去できるかどうかの判定も容易になる。
【００７４】
［分散ファイル処理装置］
次に、以上述べたような分散ファイルシステムにおけるファイルの消去を行う分散ファイル処理装置３０について具体的に説明する。尚、この分散ファイル処理装置３０は、クライアントファイルシステム７１を含むコンピュータ、サーバファイルシステム７７を含むコンピュータの何れからも独立した装置であることを前提とする。
【００７５】
図１６は、分散ファイル処理装置３０の機能構成例を示した図である。
図示するように、分散ファイル処理装置３０は、ファイル名受付部３１と、ＷＷＵＩＤ受信部３２と、ＷＷＵＩＤ検索部３３と、Ｒｃｎｔ更新指示部３４と、ファイル削除指示部３５とを備える。
【００７６】
ファイル名受付部３１は、消去対象ファイルのファイル名を受け付ける。
ＷＷＵＩＤ受信部３２は、消去対象ファイルのＷＷＵＩＤを受信する。具体的には、ファイル名受付部３１が受け付けたファイル名にクライアントファイルシステム７１内の拡張ディレクトリ７５において対応付けられたＷＷＵＩＤを受信する。本実施の形態では、クライアントコンピュータに記憶された第２のファイルの一例として、消去対象ファイルを用いており、第２のファイルに付与された第２の識別情報を取得する第２の取得部の一例として、ＷＷＵＩＤ受信部３２を設けている。
【００７７】
ＷＷＵＩＤ検索部３３は、ＷＷＵＩＤ受信部３２が受信したＷＷＵＩＤを、サーバファイルシステム７７内の拡張ディレクトリ７８から検索する。具体的には、サーバファイルシステム７７内の拡張ディレクトリ７８から保存対象ファイルのＷＷＵＩＤを取得し、ＷＷＵＩＤ受信部３２が受信したＷＷＵＩＤと同じかどうかを判定する。本実施の形態では、サーバコンピュータに記憶された第１のファイルの一例として、保存対象ファイルを用いており、第１のファイルに付与された第１の識別情報を取得する第１の取得部の一例として、ＷＷＵＩＤ検索部３３を設けている。また、第１の識別情報と第２の識別情報とが一致するかどうかを判定する判定部の一例として、ＷＷＵＩＤ検索部３３を設けている。
【００７８】
Ｒｃｎｔ更新指示部３４は、ＷＷＵＩＤ検索部３３が拡張ディレクトリ７８からＷＷＵＩＤを見つけることができた場合には、そのＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔに「１」を加算する更新処理を、サーバファイルシステム７７に指示する。
ファイル削除指示部３５は、ＷＷＵＩＤ検索部３３が拡張ディレクトリ７８からＷＷＵＩＤを見つけることができた場合には、そのＷＷＵＩＤに対応するｉｎｏｄｅ番号で特定されるファイルを削除するようクライアントファイルシステム７１に指示する。本実施の形態では、クライアントコンピュータから第２のファイルが削除されるように制御する制御部の一例として、ファイル削除指示部３５を設けている。
【００７９】
次に、分散ファイル処理装置３０の動作について説明する。
図１７は、分散ファイルシステムにおけるファイルの消去を行うときの分散ファイル処理装置３０の動作を示したものである。尚、この動作は、例えばクライアントファイルシステム７１の容量が閾値以下になったときに行われるものとする。
分散ファイル処理装置３０では、まず、ファイル名受付部３１が、消去対象ファイルのファイル名を受け付ける（ステップ３０１）。
すると、ＷＷＵＩＤ受信部３２が、ステップ３０１で受け付けたファイル名にクライアントファイルシステム７１内の拡張ディレクトリ７５で対応付けられたＷＷＵＩＤを受信する（ステップ３０２）。
次に、ＷＷＵＩＤ検索部３３が、ＷＷＵＩＤ受信部３２が受信したＷＷＵＩＤを取得し、サーバファイルシステム７７内の拡張ディレクトリ７８からこのＷＷＵＩＤを検索する（ステップ３０３）。そして、拡張ディレクトリ７８からＷＷＵＩＤが見つかったかどうかを判定する（ステップ３０４）。
【００８０】
その結果、拡張ディレクトリ７８からＷＷＵＩＤが見つかれば、ＷＷＵＩＤはＷＷＵＩＤ検索部３３からＲｃｎｔ更新指示部３４へと渡され、Ｒｃｎｔ更新指示部３４が、サーバファイルシステム７７に対し、ＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔに「１」を加算するよう指示する（ステップ３０５）。また、ＷＷＵＩＤはＷＷＵＩＤ検索部３３からファイル削除指示部３５へも渡され、ファイル削除指示部３５が、クライアントファイルシステム７１に対し、ＷＷＵＩＤに対応するｉｎｏｄｅ番号で特定されるファイルを削除するよう指示する（ステップ３０６）。尚、この削除指示には、ＷＷＵＩＤに対応するｉｎｏｄｅ情報等の管理情報の削除指示も含まれるものとする。
一方、拡張ディレクトリ７８からＷＷＵＩＤが見つからなければ、クライアントファイルシステム７１からファイルを削除せずに処理は終了する。
【００８１】
尚、ここでは、分散ファイル処理装置３０を、クライアントファイルシステム７１を含むコンピュータ、サーバファイルシステム７７を含むコンピュータの何れからも独立した装置としたが、これらのコンピュータの何れかの内部で実現されるものとしてもよい。
また、ここでは、クライアントファイルシステム７１内のファイルを消去対象とし、サーバファイルシステム７７内のファイルを保存対象としたが、クライアントファイルシステム７１内のファイルを保存対象とし、サーバファイルシステム７７内のファイルを消去対象とする構成であっても構わない。
【００８２】
［電子メール送信により複数ユーザが保有することになった添付ファイルの重複判定］
図１８は、本実施の形態を、電子メール送信によって添付ファイルが分配されるケースに適用した例を示したものである。
この例において、電子メールは、送信側で添付ファイルを包含してから送信され、受信側のメーラプログラムによってテキスト文書が分離され可視化されるのが一般的である。本実施の形態のファイルシステムプログラムをメーラプログラムが使用することにより、電子メールの本体と添付ファイルとをＷＷＵＩＤで関連付け２つのファイルとして分離して保存する。ここで、送信側と受信側とが同一のサーバファイルシステムを参照しており、そこに添付ファイルと同一のファイル実体が存在するならば、受信側では受け取った添付ファイルを容易に重複と認識することが可能となる。
【００８３】
以下、図１８を参照して、このことを具体的に説明する。
まず、サーバファイルシステム７７内には、ファイル７２が記憶されている。ここでは、ファイル７２のデータ実体を「ＤａｔａＡ」で表している。
この状態で、ユーザＸのクライアントファイルシステム７１ｘからユーザＹのクライアントファイルシステム７１ｙへファイル７２を電子メールの添付ファイルとして送信する場合を考える。この場合、クライアントファイルシステム７１ｘでは、ファイル７２と、ファイル７２のＷＷＵＩＤ「ｗｗｕｉｄＡ」とを含む電子メールデータ８１が作成される。そして、その電子メールデータ８１が白抜き矢印で示すようにクライアントファイルシステム７１ｙへ送信される。これにより、クライアントファイルシステム７１ｙでは、通常、ファイル７２が電子メールデータ８１から分離されて保存される。しかしながら、本実施の形態では、受信側のメーラプログラムが、電子メールデータ８１からＷＷＵＩＤを取り出し、サーバファイルシステム７７内の図示しない拡張ディレクトリにこのＷＷＵＩＤが存在するかどうかを判定する。その結果、ＷＷＵＩＤが存在するので、つまり、ファイル７２は重複して存在するので、クライアントファイルシステム７１ｙからファイル７２を消去してもよいと判断する。
【００８４】
［電子メール処理装置］
次に、以上述べたような電子メールの添付ファイルの消去を行う電子メール処理装置４０について具体的に説明する。尚、この電子メール処理装置４０は、クライアントファイルシステム７１ｙ内のメーラプログラムによって実現されることを前提とする。
【００８５】
図１９は、電子メール処理装置４０の機能構成例を示した図である。
図示するように、電子メール処理装置４０は、電子メール受信部４１と、ＷＷＵＩＤ抽出部４２と、ＷＷＵＩＤ検索部４３と、Ｒｃｎｔ更新指示部４４と、ファイル削除指示部４５とを備える。
【００８６】
電子メール受信部４１は、他のコンピュータから電子メールを受信する。
ＷＷＵＩＤ抽出部４２は、電子メール受信部４１が受信した電子メールのデータから添付ファイルのＷＷＵＩＤを受信する。本実施の形態では、電子メールに添付された第２のファイルの一例として、添付ファイルを用いており、第２のファイルに付与された第２の識別情報を取得する第２の取得部の一例として、ＷＷＵＩＤ抽出部４２を設けている。
【００８７】
ＷＷＵＩＤ検索部４３は、ＷＷＵＩＤ抽出部４２が抽出したＷＷＵＩＤを、サーバファイルシステム７７内の拡張ディレクトリ（図示せず）から検索する。具体的には、サーバファイルシステム７７内の拡張ディレクトリから添付ファイルの元となるファイルのＷＷＵＩＤを取得し、ＷＷＵＩＤ抽出部４２が抽出したＷＷＵＩＤと同じかどうかを判定する。本実施の形態では、サーバコンピュータに記憶された第１のファイルの一例として、添付ファイルの元となるファイルを用いており、第１のファイルに付与された第１の識別情報を取得する第１の取得部の一例として、ＷＷＵＩＤ検索部４３を設けている。また、第１の識別情報と第２の識別情報とが一致するかどうかを判定する判定部の一例として、ＷＷＵＩＤ検索部４３を設けている。
【００８８】
Ｒｃｎｔ更新指示部４４は、ＷＷＵＩＤ検索部４３が拡張ディレクトリからＷＷＵＩＤを見つけることができた場合には、そのＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔに「１」を加算する更新処理を、サーバファイルシステム７７に指示する。
ファイル削除指示部４５は、ＷＷＵＩＤ検索部４３が拡張ディレクトリからＷＷＵＩＤを見つけることができた場合には、添付ファイルを削除するようクライアントファイルシステム７１ｙに指示する。本実施の形態では、クライアントコンピュータに第２のファイルが保存されないように制御する制御部の一例として、ファイル削除指示部４５を設けている。
【００８９】
次に、電子メール処理装置４０の動作について説明する。
図２０は、添付ファイルの消去を行うときの電子メール処理装置４０の動作を示したものである。
電子メール処理装置４０では、まず、電子メール受信部４１が、例えばクライアントファイルシステム７１ｘから電子メールを受信する（ステップ４０１）。
すると、ＷＷＵＩＤ抽出部４２が、ステップ４０１で受信した電子メールのデータからＷＷＵＩＤを取り出す（ステップ４０２）。尚、このとき、電子メールの添付ファイルは、クライアントファイルシステム７１ｙ内の予め決められたディレクトリの下に一時的に記憶され、添付ファイルのＷＷＵＩＤに対応するｉｎｏｄｅ情報が新たに生成されてそのｉｎｏｄｅ情報内のＲｃｎｔに「１」が設定されているものとする。
次に、ＷＷＵＩＤ検索部４３が、ＷＷＵＩＤ抽出部４２が取り出したＷＷＵＩＤを取得し、サーバファイルシステム７７内の拡張ディレクトリからこのＷＷＵＩＤを検索する（ステップ４０３）。そして、拡張ディレクトリからＷＷＵＩＤが見つかったかどうかを判定する（ステップ４０４）。
【００９０】
その結果、拡張ディレクトリからＷＷＵＩＤが見つかれば、ＷＷＵＩＤはＷＷＵＩＤ検索部４３からＲｃｎｔ更新指示部４４へと渡され、Ｒｃｎｔ更新指示部４４が、サーバファイルシステム７７に対し、ＷＷＵＩＤに対応するｉｎｏｄｅ情報内のＲｃｎｔに「１」を加算するよう指示する（ステップ４０５）。また、ＷＷＵＩＤはＷＷＵＩＤ検索部４３からファイル削除指示部４５へも渡され、ファイル削除指示部４５が、クライアントファイルシステム７１ｙに対し、ＷＷＵＩＤに対応するｉｎｏｄｅ番号で特定されるファイル、つまり、一時的に記憶された添付ファイルを削除するよう指示する（ステップ４０６）。尚、この削除指示には、ＷＷＵＩＤに対応するｉｎｏｄｅ情報等の管理情報の削除指示も含まれるものとする。
一方、拡張ディレクトリからＷＷＵＩＤが見つからなければ、クライアントファイルシステム７１ｙから添付ファイルを削除せずに処理は終了する。
【００９１】
尚、ここでは、電子メール処理装置４０を、クライアントファイルシステム７１ｙ内のメーラプログラムによって実現されるものとしたが、クライアントファイルシステム７１ｙを含むコンピュータ、サーバファイルシステム７７を含むコンピュータの何れからも独立した装置としてもよい。
【００９２】
［元文書と変更後の文書の部分的重複の回避］
図２１は、本実施の形態をＤＴＰアプリケーションに適用した例を示したものである。
（ａ）に、既存のＤＴＰアプリケーションについて示す。
既存のＤＴＰアプリケーションは、元文書ファイル８２に変更（レビューコメントの付加等を含む）が加えられた場合、元文書ファイル８２の情報と変更後の情報の両方を含む変更文書ファイル８３を新たに出力する。
【００９３】
（ｂ）に、本実施の形態におけるＤＴＰアプリケーションについて示す。
本実施の形態におけるＤＴＰアプリケーションは、本実施の形態のファイルシステムプログラムを使用し、元文書ファイル８２と変更文書ファイル８４とをＷＷＵＩＤでリンクして保持することにより、元文書ファイル８２の情報が重複することを回避可能としたものである。ここで、変更文書ファイル８４内のベースＷＷＵＩＤは、元文書ファイル８２のＷＷＵＩＤであり、ＤＴＰアプリケーションによって実現される付加部が付加したものである。また、元文書ファイル８２は、自身を参照するデータの数をＲｃｎｔによって管理しており、図では、１つのデータが自身を参照している状態から、２つのデータが自身を参照している状態へと変化したことが示されている。このように元文書ファイル８２を参照するデータの数をＲｃｎｔで管理することで、元文書ファイル８２にＵＲＬ（Uniform Resource Locator）等を挿入するような場合とは異なり、元文書ファイル８２をうっかり削除しようとしても、Ｒｃｎｔが「０」でない限り、ファイルシステムプログラムは元文書ファイル８２の実体を消去しない。
【００９４】
ところで、以上の重複排除のシナリオでは、重複を判定する２つのファイルが別々のファイルシステムに存在することを前提として、２つのファイルのＷＷＵＩＤをそれぞれ別々の取得部で取得するようにしたが、重複を判定する２つのファイルが同じファイルシステムに存在することを前提として、２つのファイルのＷＷＵＩＤを１つの取得部で取得するようにしてもよい。
また、以上の重複排除のシナリオでは、ファイルの重複排除を、何れかのファイルを保存しない、何れかのファイルを削除する等の動作により行ったが、これには限らない。より広く捉えて、２つのファイルが重複して記憶されないようにするための何らかの動作により行うものとしてもよい。その場合、このような動作を行う機能は、ファイルシステム内に第１のファイル及び第２のファイルが重複して記憶されないように制御する制御部の一例と言うことができる。
【００９５】
尚、本実施の形態では、ＵＮＩＸ(登録商標)系ファイルシステムを前提として説明したが、ＵＮＩＸ(登録商標)系ファイルシステム以外のファイルシステムを前提としてもよい。
【００９６】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００９７】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００９８】
１０…ファイル管理装置、１１…ＷＷＵＩＤ管理部、１２…ファイル記憶部、１３…管理情報記憶部、１４…ファイル作成部、１５…ファイル複製部、１６…ファイル更新部、２０…バックアップ装置、２１，３１…ファイル名受付部、２２，３２…ＷＷＵＩＤ受信部、２３，３３，４３…ＷＷＵＩＤ検索部、２４，３４，４４…Ｒｃｎｔ更新指示部、２５…第２管理情報更新指示部、２６…ファイル操作指示部、２７…第１管理情報削除指示部、３０…分散ファイル処理装置、３５，４５…ファイル削除指示部、４０…電子メール処理装置、４１…電子メール受信部、４２…ＷＷＵＩＤ抽出部
【図１】
0005650982.tif 000002
【図２】
0005650982.tif 000003
【図３】
0005650982.tif 000004
【図４】
0005650982.tif 000005
【図５】
0005650982.tif 000006
【図６】
0005650982.tif 000007
【図７】
0005650982.tif 000008
【図８】
0005650982.tif 000009
【図９】
0005650982.tif 000010
【図１０】
0005650982.tif 000011
【図１１】
0005650982.tif 000012
【図１２】
0005650982.tif 000013
【図１３】
0005650982.tif 000014
【図１４】
0005650982.tif 000015
【図１５】
0005650982.tif 000016
【図１６】
0005650982.tif 000017
【図１７】
0005650982.tif 000018
【図１８】
0005650982.tif 000019
【図１９】
0005650982.tif 000020
【図２０】
0005650982.tif 000021
【図２１】
0005650982.tif 000022