(57)【要約】【課題】基準ファイルシステムと対象ファイルシステム間の重複データ排除において、重複排除に掛かる時間を短縮する。【解決手段】基準ファイルシステム及び対象ファイルシステム内に含まれているディレクトリごとに、ディレクトリの様相を示すために決定される一意の識別子であるディレクト識別子を生成する。基準ファイルシステム内ディレクトリのディレクトリ識別子と、対象ファイルシステム内ディレクトリのディレクトリ識別子の比較を行う。比較結果に基づいて前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているファイルごとに、それぞれのファイルを識別するためのファイル識別子を生成する。ファイル識別子の比較を行う。ファイル識別子が一致したファイル同士のファイルデータの比較を行う。比較結果に基づいてデータの重複を排除する。【選択図】図１
2009282604.tif 000002
【特許請求の範囲】
【請求項１】
基準ファイルシステムと対象ファイルシステムを用いて基準ファイルシステムと対象ファイルシステム間でのデータの重複を排除する重複データ排除システムであって、
前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているディレクトリごとに、ディレクトリの様相を示すために決定される一意の識別子であるディレクトリ識別子を生成するディレクトリ識別子生成手段と、
前記基準ファイルシステム内ディレクトリの前記ディレクトリ識別子と、前記対象ファイルシステム内ディレクトリの前記ディレクトリ識別子の比較を行うディレクトリ識別子比較手段と、
前記ディレクトリ識別子比較手段における比較結果に基づいて前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているファイルごとに、それぞれのファイルを識別するためのファイル識別子を生成するファイル識別子生成手段と、
前記ファイル識別子の比較を行うファイル識別子比較手段と、
前記ファイル識別子が一致したファイル同士のファイルデータの比較を行うファイルデータ比較手段と、
前記ファイルデータ比較手段における比較結果に基づいてデータの重複を排除するファイル重複排除手段と、
を備えることを特徴とする重複データ排除システム。
【請求項２】
前記重複排除手段におけるデータの重複の排除は、前記ファイルデータが一致したファイルを前記対象ファイルシステムから削除し、前記基準ファイルシステムへのポインタ情報に置き換えることにより行われることを特徴とする請求項１に記載の重複データ排除システム。
【請求項３】
前記ファイル識別子生成手段における、前記ディレクトリ識別子比較手段における比較結果に基づいてとは、前記ディクレトリ識別子比較手段によって前記ディレクトリ識別子が同じであると判断されたディレクトリについては、ディレクトリ内のファイルに対するファイル識別子の生成を行わないことであることを特徴とする請求項１又は２に記載の重複データ排除システム。
【請求項４】
前記ディレクトリ識別子生成手段は、前記基準ファイルシステムにおいてファイルのメタ情報を管理している基準ファイルシステム管理部と、前記対象ファイルシステムにおいてファイルのメタ情報を管理している対象ファイルシステム管理部を参照して、前記ディレクトリ識別子を生成することを特徴とする請求項１乃至３の何れか１項に記載の重複データ排除システム。
【請求項５】
前記ディレクトリ識別子生成手段は、特定のディレクトリ階層まで前記ディレクトリ識別子の生成を行うことを特徴とする請求項１乃至４の何れか１項に記載の重複データ排除システム。
【請求項６】
前記ファイル識別子生成手段は、前記基準ファイルシステムにおいてファイルデータを管理している基準ファイルシステムデータ部と、前記対象ファイルシステムにおいてファイルデータを管理している対象ファイルシステム管理部を参照して、前記ファイル識別子を生成することを特徴とする請求項１乃至５の何れか１項に記載の重複データ排除システム。
【請求項７】
前記基準ファイルシステムと前記対象ファイルシステムに含まれるオペレーティングシステム情報の関係により、それぞれのファイルシステムに関して、トップディレクトリからどのディレクトリ階層まで前記ディレクトリ識別子の生成を行うかといった情報が記憶されている類似性検証テーブル記憶部と、
前記基準ファイルシステム及び前記対象ファイルシステム内に前記オペレーティングシステム情報が含まれている場合、前記オペレーティングシステム情報をもとに、前記類似性検証テーブル記憶部を参照することで、ディレクトリ識別子の生成を行うディレクトリ階層を変更するシステムファイル参照手段と、
を更に備えることを特徴とする請求項１乃至６の何れか１項に記載の重複データ排除システム。
【請求項８】
前記ディレクトリ識別子の生成及び比較に掛かった時間を計測し、当該計測した時間が、規定された制限時間に達すると、前記ディレクトリ識別子の生成並びに前記ディレクトリ識別子の比較を終了させ、前記ファイル識別子の生成及び比較を行うことを特徴とする請求項１乃至７の何れか１項に記載の重複データ排除システム。
【請求項９】
前記ディレクトリ識別子比較手段は、前記ディレクトリ識別子の比較が終わっても、まだ前記ディレクトリ識別子を生成していない深いディレクトリ階層がある場合は、当該深いディレクトリ階層のディレクトリを対象として再度ディレクトリ識別子の生成並びに比較を行うことを特徴とする請求項８に記載の重複データ排除システム。
【請求項１０】
前記ディレクトリ識別子生成手段が、あるディレクトリの前記ディレクトリ識別子を生成中にサブディレクトリを発見した場合、前記サブディレクトリを対象として前記ディレクトリ識別子の生成を行うことを特徴とする請求項１乃至９の何れか１項に記載の重複データ排除システム。
【請求項１１】
前記基準ファイルシステムの前記ディレクトリ識別子を生成する前記ディレクトリ識別子生成手段を備える第１計算機と、前記対象ファイルシステムの前記ディレクトリ識別子を生成する前記ディレクトリ識別子生成手段を備える第２計算機と、それ以外の前記各手段を備える第３計算機がネットワークを介して接続されていることを特徴とする請求項１乃至１０の何れか１項に記載の重複データ排除システム。
【請求項１２】
前記基準ファイルシステムの前記ディレクトリ識別子及び前記ファイル識別子を生成する前記ディレクトリ識別子生成手段を備える前記第１計算機と、前記対象ファイルシステムの前記ディレクトリ識別子及び前記ファイル識別子を生成する前記ディレクトリ識別子生成手段を備える前記第２計算機と、それ以外の前記各手段を備える前記第３計算機がネットワークを介して接続されていることを特徴とする請求項１乃至１０の何れか１項に記載の重複データ排除システム。
【請求項１３】
基準ファイルシステムと対象ファイルシステムを用いて基準ファイルシステムと対象ファイルシステム間でのデータの重複を排除するシステムにおける、重複データ排除方法であって、
前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているディレクトリごとに、ディレクトリの様相を示すために決定される一意の識別子であるディレクトリ識別子を生成するディレクトリ識別子生成ステップと、
前記基準ファイルシステム内ディレクトリの前記ディレクトリ識別子と、前記対象ファイルシステム内ディレクトリの前記ディレクトリ識別子の比較を行うディレクトリ識別子比較ステップと、
前記ディレクトリ識別子比較ステップにおける比較結果に基づいて前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているファイルごとに、それぞれのファイルを識別するためのファイル識別子を生成するファイル識別子生成ステップと、
前記ファイル識別子の比較を行うファイル識別子比較ステップと、
前記ファイル識別子が一致したファイル同士のファイルデータの比較を行うファイルデータ比較ステップと、
前記ファイルデータ比較ステップにおける比較結果に基づいてデータの重複を排除するファイル重複排除ステップと、
を備えることを特徴とする重複データ排除方法。
【請求項１４】
前記重複排除ステップにおけるデータの重複の排除は、前記ファイルデータが一致したファイルを前記対象ファイルシステムから削除し、前記基準ファイルシステムへのポインタ情報に置き換えることにより行われることを特徴とする請求項１３に記載の重複データ排除方法。
【請求項１５】
前記ファイル識別子生成ステップにおける、前記ディレクトリ識別子比較ステップにおける比較結果に基づいてとは、前記ディクレトリ識別子比較ステップによって前記ディレクトリ識別子が同じであると判断されたディレクトリについては、ディレクトリ内のファイルに対するファイル識別子の生成を行わないことであることを特徴とする請求項１３又は１４に記載の重複データ排除方法。
【請求項１６】
前記ディレクトリ識別子生成ステップでは、前記基準ファイルシステムにおいてファイルのメタ情報を管理している基準ファイルシステム管理部と、前記対象ファイルシステムにおいてファイルのメタ情報を管理している対象ファイルシステム管理部を参照して、前記ディレクトリ識別子を生成することを特徴とする請求項１３乃至１５の何れか１項に記載の重複データ排除方法。
【請求項１７】
前記ディレクトリ識別子生成ステップでは、特定のディレクトリ階層まで前記ディレクトリ識別子の生成を行うことを特徴とする請求項１３乃至１６の何れか１項に記載の重複データ排除方法。
【請求項１８】
前記ファイル識別子生成ステップでは、前記基準ファイルシステムにおいてファイルデータを管理している基準ファイルシステムデータ部と、前記対象ファイルシステムにおいてファイルデータを管理している対象ファイルシステム管理部を参照して、前記ファイル識別子を生成することを特徴とする請求項１３乃至１７の何れか１項に記載の重複データ排除方法。
【請求項１９】
前記基準ファイルシステムと前記対象ファイルシステムに含まれるオペレーティングシステム情報の関係により、それぞれのファイルシステムに関して、トップディレクトリからどのディレクトリ階層まで前記ディレクトリ識別子の生成を行うかといった情報が記憶されている類似性検証テーブル記憶部を用意するステップと、
前記基準ファイルシステム及び前記対象ファイルシステム内に前記オペレーティングシステム情報が含まれている場合、前記オペレーティングシステム情報をもとに、前記類似性検証テーブル記憶部を参照することで、ディレクトリ識別子の生成を行うディレクトリ階層を変更するシステムファイル参照ステップと、
を更に備えることを特徴とする請求項１３乃至１８の何れか１項に記載の重複データ排除方法。
【請求項２０】
前記ディレクトリ識別子の生成及び比較に掛かった時間を計測し、当該計測した時間が、規定された制限時間に達すると、前記ディレクトリ識別子の生成並びに前記ディレクトリ識別子の比較を終了させ、前記ファイル識別子の生成及び比較を行うことを特徴とする請求項１３乃至１９の何れか１項に記載の重複データ排除方法。
【請求項２１】
前記ディレクトリ識別子比較ステップでは、前記ディレクトリ識別子の比較が終わっても、まだ前記ディレクトリ識別子を生成していない深いディレクトリ階層がある場合は、当該深いディレクトリ階層のディレクトリを対象として再度ディレクトリ識別子の生成並びに比較を行うことを特徴とする請求項２０に記載の重複データ排除方法。
【請求項２２】
前記ディレクトリ識別子生成ステップで、あるディレクトリの前記ディレクトリ識別子を生成中にサブディレクトリを発見した場合、前記サブディレクトリを対象として前記ディレクトリ識別子の生成を行うことを特徴とする請求項１３乃至２１の何れか１項に記載の重複データ排除方法。
【請求項２３】
前記基準ファイルシステムの前記ディレクトリ識別子を生成する前記ディレクトリ識別子生成ステップを行う第１計算機と、前記対象ファイルシステムの前記ディレクトリ識別子を生成する前記ディレクトリ識別子生成ステップを行う第２計算機と、それ以外の前記各ステップを行う第３計算機がネットワークを介して接続されていることを特徴とする請求項１３乃至２２の何れか１項に記載の重複データ排除方法。
【請求項２４】
前記基準ファイルシステムの前記ディレクトリ識別子及び前記ファイル識別子を生成する前記ディレクトリ識別子生成ステップを行う前記第１計算機と、前記対象ファイルシステムの前記ディレクトリ識別子及び前記ファイル識別子を生成する前記ディレクトリ識別子生成ステップを行う前記第２計算機と、それ以外の前記各ステップを行う前記第３計算機がネットワークを介して接続されていることを特徴とする請求項１３乃至２２の何れか１項に記載の重複データ排除方法。
【請求項２５】
基準ファイルシステムと対象ファイルシステムを用いて基準ファイルシステムと対象ファイルシステム間でのデータの重複を排除する重複データ排除装置としてコンピュータを機能させるための重複データ排除プログラムであって、
前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているディレクトリごとに、ディレクトリの様相を示すために決定される一意の識別子であるディレクトリ識別子を生成するディレクトリ識別子生成手段と、
前記基準ファイルシステム内ディレクトリの前記ディレクトリ識別子と、前記対象ファイルシステム内ディレクトリの前記ディレクトリ識別子の比較を行うディレクトリ識別子比較手段と、
前記ディレクトリ識別子比較手段における比較結果に基づいて前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているファイルごとに、それぞれのファイルを識別するためのファイル識別子を生成するファイル識別子生成手段と、
前記ファイル識別子の比較を行うファイル識別子比較手段と、
前記ファイル識別子が一致したファイル同士のファイルデータの比較を行うファイルデータ比較手段と、
前記ファイルデータ比較手段における比較結果に基づいてデータの重複を排除するファイル重複排除手段と、
を備えることを特徴とする重複データ排除装置としてコンピュータを機能させるための重複データ排除プログラム。
【請求項２６】
前記重複排除手段におけるデータの重複の排除は、前記ファイルデータが一致したファイルを前記対象ファイルシステムから削除し、前記基準ファイルシステムへのポインタ情報に置き換えることにより行われることを特徴とする請求項２５に記載の重複データ排除プログラム。
【請求項２７】
前記ファイル識別子生成手段における、前記ディレクトリ識別子比較手段における比較結果に基づいてとは、前記ディクレトリ識別子比較手段によって前記ディレクトリ識別子が同じであると判断されたディレクトリについては、ディレクトリ内のファイルに対するファイル識別子の生成を行わないことであることを特徴とする請求項２５又は２６に記載の重複データ排除プログラム。
【請求項２８】
前記ディレクトリ識別子生成手段は、前記基準ファイルシステムにおいてファイルのメタ情報を管理している基準ファイルシステム管理部と、前記対象ファイルシステムにおいてファイルのメタ情報を管理している対象ファイルシステム管理部を参照して、前記ディレクトリ識別子を生成することを特徴とする請求項２５乃至２７の何れか１項に記載の重複データ排除プログラム。
【請求項２９】
前記ディレクトリ識別子生成手段は、特定のディレクトリ階層まで前記ディレクトリ識別子の生成を行うことを特徴とする請求項２５至２８の何れか１項に記載の重複データ排除プログラム。
【請求項３０】
前記ファイル識別子生成手段は、前記基準ファイルシステムにおいてファイルデータを管理している基準ファイルシステムデータ部と、前記対象ファイルシステムにおいてファイルデータを管理している対象ファイルシステム管理部を参照して、前記ファイル識別子を生成することを特徴とする請求項２５乃至２９の何れか１項に記載の重複データ排除プログラム。
【請求項３１】
前記重複データ排除装置を、
前記基準ファイルシステムと前記対象ファイルシステムに含まれるオペレーティングシステム情報の関係により、それぞれのファイルシステムに関して、トップディレクトリからどのディレクトリ階層まで前記ディレクトリ識別子の生成を行うかといった情報が記憶されている類似性検証テーブル記憶部と、
前記基準ファイルシステム及び前記対象ファイルシステム内に前記オペレーティングシステム情報が含まれている場合、前記オペレーティングシステム情報をもとに、前記類似性検証テーブル記憶部を参照することで、ディレクトリ識別子の生成を行うディレクトリ階層を変更するシステムファイル参照手段と、
を更に備えることを特徴とする重複データ排除システムとして機能させることを特徴とする請求項２５乃至３０の何れか１項に記載の重複データ排除プログラム。
【請求項３２】
前記ディレクトリ識別子の生成及び比較に掛かった時間を計測し、当該計測した時間が、規定された制限時間に達すると、前記ディレクトリ識別子の生成並びに前記ディレクトリ識別子の比較を終了させ、前記ファイル識別子の生成及び比較を行うことを特徴とする請求項２５乃至３１の何れか１項に記載の重複データ排除プログラム。
【請求項３３】
前記ディレクトリ識別子比較手段は、前記ディレクトリ識別子の比較が終わっても、まだ前記ディレクトリ識別子を生成していない深いディレクトリ階層がある場合は、当該深いディレクトリ階層のディレクトリを対象として再度ディレクトリ識別子の生成並びに比較を行うことを特徴とする請求項３２に記載の重複データ排除プログラム。
【請求項３４】
前記ディレクトリ識別子生成手段が、あるディレクトリの前記ディレクトリ識別子を生成中にサブディレクトリを発見した場合、前記サブディレクトリを対象として前記ディレクトリ識別子の生成を行うことを特徴とする請求項２５乃至３３の何れか１項に記載の重複データ排除プログラム。
【請求項３５】
請求項２５乃至３４の何れか１項に記載の重複データ排除プログラムであって、
前記基準ファイルシステムの前記ディレクトリ識別子を生成する前記ディレクトリ識別子生成手段を備える装置としてコンピュータを機能させるための重複データ排除プログラム。
【請求項３６】
請求項２５乃至３４の何れか１項に記載の重複データ排除プログラムであって、
前記対象ファイルシステムの前記ディレクトリ識別子を生成する前記ディレクトリ識別子生成手段を備える装置としてコンピュータを機能させるための重複データ排除プログラム。
【請求項３７】
請求項２５乃至３４の何れか１項に記載の重複データ排除プログラムであって、
前記基準ファイルシステム及び前記対象ファイルシステムに対しての、前記ディレクトリ識別子を生成する前記ディレクトリ識別子生成手段以外の前記各手段を備える装置としてコンピュータを機能させるための重複データ排除プログラム。
【請求項３８】
請求項２５乃至３４の何れか１項に記載の重複データ排除プログラムであって、
前記基準ファイルシステムの前記ディレクトリ識別子及び前記ファイル識別子を生成する前記ディレクトリ識別子生成手段を備える装置としてコンピュータを機能させるための重複データ排除プログラム。
【請求項３９】
請求項２５乃至３４の何れか１項に記載の重複データ排除プログラムであって、
前記対象ファイルシステムの前記ディレクトリ識別子及び前記ファイル識別子を生成する前記ディレクトリ識別子生成手段を備える装置としてコンピュータを機能させるための重複データ排除プログラム。
【請求項４０】
請求項２５乃至３４の何れか１項に記載の重複データ排除プログラムであって、
前記基準ファイルシステム及び前記対象ファイルシステムに対しての、前記ディレクトリ識別子及び前記ファイル識別子を生成する前記ディレクトリ識別子生成手段以外の前記各手段を備える装置としてコンピュータを機能させるための重複データ排除プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は重複データ排除システム、重複データ排除方法及び重複データ排除プログラムに関し、より詳細には、複数のファイルシステム間で、高速に重複データの排除が可能な重複データ排除システム、重複データ排除方法及び重複データ排除プログラムに関する。
【背景技術】
【０００２】
記憶容量の小さい記憶装置を備えた情報処理装置において、なるべく多くのデータを保存するためには、記憶装置内で重複するファイルを削除する重複データ排除の仕組みが有用である。
【０００３】
関連する重複データ排除システムの一例が、特許文献１に記載されている。特許文献１では、２つのファイルシステム間で重複するファイルを削除するために、まず基準ファイルシステム内のファイルに関する内容識別情報と、対象ファイルシステム内のファイルに関する内容識別情報を比較する。なお、ここでいう内容識別情報とは、ＳＨＡ−１（SecureHashAlgorithm1）ハッシュなど、ファイルデータが同じであれば、同じ値を示すもののことをいう。
【０００４】
そして、特許文献１に記載のシステムは、比較の結果一致したファイルが見つかった場合に、対象ファイルシステム内の該当ファイルを、基準ファイルシステムの該当ファイルへの参照情報に置き換えることにより重複データの排除を行っている。
【０００５】
また別の重複排除システムの一例が、特許文献２に記載されている。特許文献２では、バックアップ用ファイルシステムにおけるデータの重複を削除するために、バックアップ済みファイルのハッシュ値データベースを用意しておく。そして、新たにバックアップを行おうとしているファイルのハッシュ値が、すでにハッシュ値データベースに登録されているかチェックする。すでに登録されている場合には、該当ファイルをバックアップ用ファイルシステムに新規保存しないことにより、バックアップ用ファイルシステム内での重複データの排除を行っている。
【特許文献１】特開２００５−２０２４４３号公報
【特許文献２】特表２００３−５２４２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した関連技術には、以下のような問題点があった。
【０００７】
問題点は、重複排除全体に要する時間が、長く掛かってしまうということである。前述した関連技術では、重複データを排除するために、基準ファイルシステム及び対象ファイルシステム内のファイルデータに関してハッシングをする必要がある。この点、ハッシングを行うためにはハッシング対象のファイルデータを一度メモリ上に展開する必要がある。例えば、１００ＧＢのファイルシステムのハッシングを行うためには、１００ＧＢのファイルデータを段階的に少しずつメモリにロードした上で、最終的に１００ＧＢ分のファイルデータ全てをハッシングする必要がある。しかし、ファイルシステムを保存するための記憶装置としてＨＤＤ（ハードディスクドライブ）などのディスク装置を使用した場合はディスクへのアクセス速度が遅いため、ハッシングに掛かる時間が長くなる。ハッシングに掛かる時間が長くなるということは、重複データ排除システム全体として処理に掛かる時間が長くなってしまい問題である。
【０００８】
そこで、本発明は重複データの排除に掛かる時間が短い、重複データ排除システム、重複データ排除方法及び重複データ排除プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の観点によれば、システムとして基準ファイルシステムと対象ファイルシステムを用いて基準ファイルシステムと対象ファイルシステム間でのデータの重複を排除する重複データ排除システムであって、前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているディレクトリごとに、ディレクトリの様相を示すために決定される一意の識別子であるディレクト識別子を生成するディレクトリ識別子生成手段と、前記基準ファイルシステム内ディレクトリの前記ディレクトリ識別子と、前記対象ファイルシステム内ディレクトリの前記ディレクトリ識別子の比較を行うディレクトリ識別子比較手段と、前記ディレクトリ識別子比較手段における比較結果に基づいて前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているファイルごとに、それぞれのファイルを識別するためのファイル識別子を生成するファイル識別子生成手段と、前記ファイル識別子の比較を行うファイル識別子比較手段と、前記ファイル識別子が一致したファイル同士のファイルデータの比較を行うファイルデータ比較手段と、前記ファイルデータ比較手段における比較結果に基づいてデータの重複を排除するファイル重複排除手段と、を備えることを特徴とする重複データ排除システムが提供される。
【００１０】
本発明の第２の観点によれば、方法として基準ファイルシステムと対象ファイルシステムを用いて基準ファイルシステムと対象ファイルシステム間でのデータの重複を排除するシステムにおける、重複データ排除方法であって、前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているディレクトリごとに、ディレクトリの様相を示すために決定される一意の識別子であるディレクト識別子を生成するディレクトリ識別子生成ステップと、前記基準ファイルシステム内ディレクトリの前記ディレクトリ識別子と、前記対象ファイルシステム内ディレクトリの前記ディレクトリ識別子の比較を行うディレクトリ識別子比較ステップと、前記ディレクトリ識別子比較ステップにおける比較結果に基づいて前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているファイルごとに、それぞれのファイルを識別するためのファイル識別子を生成するファイル識別子生成ステップと、前記ファイル識別子の比較を行うファイル識別子比較ステップと、前記ファイル識別子が一致したファイル同士のファイルデータの比較を行うファイルデータ比較ステップと、前記ファイルデータ比較ステップにおける比較結果に基づいてデータの重複を排除するファイル重複排除ステップと、を備えることを特徴とする重複データ排除方法が提供される。
【００１１】
本発明の第３の観点によれば、プログラムとして基準ファイルシステムと対象ファイルシステムを用いて基準ファイルシステムと対象ファイルシステム間でのデータの重複を排除する重複データ排除システムとしてコンピュータを機能させるための重複データ排除プログラムであって、前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているディレクトリごとに、ディレクトリの様相を示すために決定される一意の識別子であるディレクト識別子を生成するディレクトリ識別子生成手段と、前記基準ファイルシステム内ディレクトリの前記ディレクトリ識別子と、前記対象ファイルシステム内ディレクトリの前記ディレクトリ識別子の比較を行うディレクトリ識別子比較手段と、前記ディレクトリ識別子比較手段における比較結果に基づいて前記基準ファイルシステム及び前記対象ファイルシステム内に含まれているファイルごとに、それぞれのファイルを識別するためのファイル識別子を生成するファイル識別子生成手段と、前記ファイル識別子の比較を行うファイル識別子比較手段と、前記ファイル識別子が一致したファイル同士のファイルデータの比較を行うファイルデータ比較手段と、前記ファイルデータ比較手段における比較結果に基づいてデータの重複を排除するファイル重複排除手段と、を備えることを特徴とする重複データ排除システムとしてコンピュータを機能させるための重複データ排除プログラムが提供される。
【発明の効果】
【００１２】
本発明によれば、重複データの排除に掛かる時間を短縮することが可能となる。その理由は、ディレクトリ識別子が一致するディレクトリ内に含まれるファイルについては、ディレクトリ識別子の生成及び比較より時間が掛かるファイル識別子の生成及び比較を省略できるためである。
【発明を実施するための最良の形態】
【００１３】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１４】
［第１の実施の形態］
図１を参照すると、本発明の第１の実施の形態は、プログラム制御により動作するデータ処理装置１００、記憶装置２００、メモリ３００、通信装置４００、入力装置５００、及び出力装置６００を含む。
【００１５】
記憶装置２００は、基準ファイルシステム２１０及び対象ファイルシステム２２０を含む。なお記憶装置は、ＨＤＤやフラッシュメモリなどの外部記憶装置であれば何でも良い。また、基準ファイルシステム２１０及び対象ファイルシステム２２０は、例えばＥｘｔ２（second extended file system）、Ｅｘｔ３（third extended file system）等のファイルシステムである。
【００１６】
基準ファイルシステム２１０は、重複排除における比較元となるファイルシステムである。対象ファイルシステム２２０は、重複排除を行う対象となるファイルシステムである。  
より詳細に説明すると、基準ファイルシステム２１０は、基準ファイルシステム管理部２１１と基準ファイルシステムデータ部２１２を有する。
【００１７】
基準ファイルシステム管理部２１１は、基準ファイルシステム２１０内に格納されているファイルのメタ情報が格納されている部分である。ここでメタ情報とは、あるデータが付随して持つそのデータ自身についての抽象度の高い付加的なデータ情報であり、例えば、ファイル名やファイルサイズなどが挙げられる。
【００１８】
基準ファイルシステムデータ部２１２は、基準ファイルシステム２１０内に格納されているファイルのファイルデータが格納されている部分である。なお一般的に、基準ファイルシステムデータ部２１２のデータ量は、基準ファイルシステム管理部２１１のデータ量より大きくなることが多い。
【００１９】
こうした内部構成は、対象ファイルシステム２２０でも同様である。すなわち、対象ファイルシステム２２０は、対象ファイルシステム管理部２２１と対象ファイルシステムデータ部２２２を有する。
【００２０】
一方データ処理装置１００は、ディレクトリ識別子生成部１１０とディレクトリ識別子比較部１２０、ファイル識別子生成部１３０、ファイル識別子比較部１４０、ファイルデータ比較部１５０及びファイル重複排除部１６０を含む。なおデータ処理装置１００は、例えばＣＰＵ（Central Processing Unit）等の演算装置である。
【００２１】
ディレクトリ識別子生成部１１０は、まず基準ファイルシステム管理部２１１に記憶されているメタ情報を参照し、基準ファイルシステム２１０内のディレクトリごとに、特定のディレクトリ階層までディレクトリ識別子を生成する。そして当該生成したディレクトリ識別子をフルパスディレクトリ名と共にディレクトリ識別子管理テーブルに追加する。ディレクトリ識別管理テーブルの一例を図２に示す。次に、ディレクトリ識別子生成部１１０は、対象ファイルシステム管理部２２１に保存されているメタ情報を参照し、対象ファイルシステム２２０内のディレクトリごとに、特定のディレクトリ階層までディレクトリ識別子を生成する。そして当該生成したディレクトリ識別子をディレクトリ名と共にディレクトリ識別子管理テーブルに追加する。
【００２２】
ここでディレクトリ識別子とは、ディレクトリの様相を示すために決定される一意の識別子である。ディレクトリ識別子を生成する手法としては、各ファイルシステムのデータ管理部を使用する方法であれば、どのような方法を用いても良い。例えばＬｉｎｕｘ（登録商標）ＯＳ（Operating System：オペレーティングシステム）上でディレクトリ識別子を生成する場合、対象ディレクトリでｄｕコマンドを実行し、出力されるファイル名及びファイルサイズの文字列をハッシングするという方法がある。またディレクトリ識別子の生成は、上述したように基準ファイルシステム２１０のディレクトリ識別子生成を先に行っても良いし、対象ファイルシステム２２０のディレクトリ識別子生成を先に行っても良い。
【００２３】
ディレクトリ識別子比較部１２０は、ディレクトリ識別子管理テーブルを参照し、基準ファイルシステム２１０のディレクトリ識別子と、対象ファイルシステム２２０のディレクトリ識別子の比較を行う。比較の結果、同じ値を示すディレクトリ識別子があった場合、それぞれのファイルシステムでのフルパスディレクトリ名を、識別子一致ディレクトリ管理テーブルに追加する。識別子一致ディレクトリ管理テーブルの一例を図４−Ａに示す。
【００２４】
ファイル識別子生成部１３０は、まず基準ファイルシステムデータ部２１２に記憶されているファイルデータをもとに、基準ファイルシステム２１０内のファイルごとにファイル識別子を生成する。そして当該生成したファイル識別子をフルパスファイル名と共にファイル識別子管理テーブルに追加する。ファイル識別子管理テーブルの一例を図３に示す。次に、ファイル識別子生成部１３０は、対象ファイルシステムデータ部２２２に記憶されているファイルデータをもとに、対象ファイルシステム２２０内のファイルごとにファイル識別子を生成する。そして当該生成したファイル識別子をファイル名と共にファイル識別子管理テーブルに追加する。
【００２５】
ここでファイル識別子とは、ファイルの様相を示すために決定される一意の識別子である。ファイル識別子を生成する方法としては、どのような方法を用いても良い。ファイル識別子を生成する方法の例としては、ファイルのファイルデータのハッシュ値をとる方法などがある。
【００２６】
またファイル識別子の生成は、上述したディレクトリ識別子生成と同様に、基準ファイルシステム２１０のディレクトリ識別子生成を先に行っても良いし、対象ファイルシステム２２０のファイル識別子生成を先に行っても良い。ただしディレクトリ識別子が一致したディレクトリ（識別子一致ディレクトリ管理テーブルに追加されているディレクトリ）内のファイルに関しては、ファイル識別子の生成は行わない。
【００２７】
ファイル識別子比較部１４０は、ファイル識別子管理テーブルを参照し、基準ファイルシステム２１０のファイル識別子と、対象ファイルシステム２２０のファイル識別子を比較する。比較の結果、同じ値を示すファイル識別子があった場合、それぞれのファイルシステムでのフルパスファイル名を、識別子一致ファイル管理テーブルに追加する。識別子一致ファイル管理テーブルの一例を図４−Ｂに示す。
【００２８】
ファイルデータ比較部１５０は、まず識別子一致ディレクトリ管理テーブルを参照し、各エントリに記憶されている両ファイルシステムのディレクトリに関して、それぞれのディレクトリに含まれるファイルのファイルデータの比較を行う。比較の結果ファイルデータが一致した場合、それぞれのファイルシステムでのフルパスファイル名をデータ一致ファイル管理テーブルに追加する。データ一致ファイル管理テーブルの一例を図４−Ｃに示す。次に、ファイルデータ比較部１５０は、識別子一致ファイル管理テーブルを参照し、各エントリに記憶されている両ファイルシステムのファイルに関して、ファイルデータの比較を行う。比較の結果ファイルデータが一致した場合、それぞれのファイルシステムでのフルパスファイル名をデータ一致ファイル管理テーブルに追加する。
【００２９】
ファイル重複排除部１６０は、データ一致ファイル管理テーブルに記憶されているファイルを、対象ファイルシステム２２０から排除し、基準ファイルシステム２１０へのポインタ情報（基準ファイルシステムの該当ファイルへの参照情報）に置き換える。
【００３０】
メモリ３００は、計算機内でデータやプログラムを記憶する装置である。例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等がこれに相当する。
【００３１】
通信装置４００は、外部の計算機とデータの送受信を行うための装置である。例えばネットワークカード等がこれに相当する。
【００３２】
入力装置５００は、ユーザから計算機に対する要求を受け取り、データ処理装置に伝えるための装置である。例えばキーボードやマウス等がこれに相当する。
【００３３】
出力装置６００は、計算機での処理結果をユーザに対して示すための装置である。例えばディスプレイ等がこれに相当する。
【００３４】
なお本実施の形態には、本発明の技術的思想の範囲内において、上述したこれら構成要素以外の構成要素が更に備わっていても良い。
【００３５】
次に、図１のブロック図と、図５から図９のフローチャートを参照して本実施の形態の全体の動作について説明する。
【００３６】
本実施の形態の動作は、図５で示すように、ディレクトリ識別子比較（図５のステップＳ１００）フェーズ、ファイル識別子比較（ステップＳ２００）フェーズ、重複排除（ステップＳ２３０）フェーズという３つのフェーズから構成される。以下の説明では、それぞれのフェーズごと順次説明する。
【００３７】
まず図６を参照して、ディレクトリ識別子比較フェーズ（図５のステップＳ１００）について説明する。
【００３８】
まずディレクトリ識別子生成部１１０が、基準ファイルシステム管理部２１１に含まれている情報をもとに、基準ファイルシステム２１０内のディレクトリごとにディレクトリ識別子を生成し、ディレクトリ識別子管理テーブルに追加する（図６のステップＳ１０１）。
【００３９】
ディレクトリ識別子生成部１１０は、次に、対象ファイルシステム２２０管理部に含まれている情報をもとに、対象ファイルシステム２２０内のディレクトリごとにディレクトリ識別子を生成し、ディレクトリ識別子管理テーブルに追加する（ステップＳ１０２）。
【００４０】
次に、ディレクトリ識別子比較部１２０が、ディレクトリ識別子管理テーブルを参照し、まだ比較を行っていない基準ファイルシステム２１０のディレクトリ識別子と対象ファイルシステム２２０のディレクトリ識別子の組があるかチェックする（ステップＳ１０３）。比較していない組がある場合（ステップＳ１０３においてＹＥＳ）、両ディレクトリ識別子の比較を行う（ステップＳ１０４）。ディレクトリ識別子が一致する場合（ステップＳ１０４においてＹＥＳ）、それぞれのファイルシステムでのフルパスディレクトリ名を一組として、識別子一致ディレクトリ管理テーブルに追加する（ステップＳ１０５）。
【００４１】
一方、ステップＳ１０４においてディレクトリ識別子が一致しない場合（ステップＳ１０４においてＮＯ）、別のディレクトリ識別子間で比較を行うため、再度ステップＳ１０３における判定を行う（ステップＳ１０３）。また、ステップＳ１０３において、比較していないディレクトリ識別子がない場合（ステップＳ１０３においてＮＯ）、ディレクトリ識別子比較フェーズの動作は終了する。
【００４２】
次に、図７を参照して、ファイル識別子比較フェーズ（図５のステップＳ２００）について説明する。
【００４３】
まずファイル識別子生成部１３０が、基準ファイルシステム２１０内ファイルごとにファイル識別子を生成し、ファイル識別子管理テーブルに追加する（図７のステップＳ２０１）。ただし識別子一致ディレクトリ管理テーブルに記憶されているディレクトリに関しては、ファイル識別子の生成処理は行わない。
【００４４】
次に、対象ファイルシステム２２０内ファイルごとにファイル識別子を生成し、ファイル識別子管理テーブルに追加する（ステップＳ２０２）。ただし識別子一致ディレクトリ管理テーブルに記憶されているディレクトリに関しては、ファイル識別子の生成処理は行わない。
【００４５】
次に、ファイル識別子比較部１４０が、ファイル識別子管理テーブルを参照し、まだ比較を行っていない基準ファイルシステム２１０内のファイル識別子と対象ファイルシステム２２０内のファイル識別子の組があるかチェックする（ステップＳ２０３）。比較していないファイル識別子がある場合（ステップＳ２０３においてＹＥＳ）、両ファイル識別子の比較を行う（ステップＳ２０４）。ファイル識別子が一致する場合（ステップＳ２０４においてＹＥＳ）、そのファイル識別子に該当する、それぞれのファイルシステムでのフルパスファイル名を一組として、識別子一致ファイル記憶部２７０に追加する（ステップＳ２０５）。一方、ステップＳ２０４においてファイル識別子が一致しない場合（ステップＳ２０４においてＮＯ）、別のファイル識別子間で比較を行うために、再度ステップＳ２０３における判定を行う（ステップＳ２０３）。ステップＳ２０３において、比較していないファイル識別子がない場合（ステップＳ２０３においてＮＯ）、ファイル識別子比較フェーズは終了する。
【００４６】
次に、図８及び図９を参照して、重複排除フェーズ（図５のステップＳ３００）について説明する。
【００４７】
まずファイルデータ比較部１５０が、識別子一致ディレクトリ管理テーブルを参照し、ディレクトリ識別子のエントリが記憶されているかチェックする（図８のステップＳ３０１）。エントリが記憶されている場合（ステップＳ３０１においてＹＥＳ）、エントリで指定された両ディレクトリ内のファイルで、まだファイルデータの比較を行っていないものがあるかどうかをチェックする（ステップＳ３０２）。まだ比較していないファイルがある場合（ステップＳ３０２においてＹＥＳ）、ファイルデータの比較を行う（ステップＳ３０３）。ファイルデータが一致する場合（ステップＳ３０３においてＹＥＳ）、それぞれのファイルシステムでのフルパスファイル名を一組として、データ一致ファイル管理テーブルに追加する（ステップＳ３０４）。ファイルデータが一致しない場合（ステップＳ３０３のＮＯ）、別のファイル間でファイルデータの比較を行うため、再度ステップＳ３０２における判定を行う（ステップＳ３０２）。ステップＳ３０２において、まだ比較していないファイルがない場合（ステップＳ３０２においてＮＯ）、再度ステップＳ３０１における判定を行う（ステップＳ３０１）。ステップＳ３０１において、比較していないディレクトリがない場合（ステップＳ３０１においてＮＯ）、次の動作に続く。
【００４８】
次に図９を用いて重複排除フェーズにおける動作の説明を続ける。ファイルデータ比較部１５０が、識別子一致ファイル管理テーブルを参照し、ファイル識別子のエントリが記憶されているかチェックする（図９のステップＳ３０５）。
【００４９】
エントリが記憶されている場合（ＹＥＳ）、エントリで指定された両ファイルのファイルデータの比較を行う（ステップＳ３０６）。ファイルデータが一致する場合（ＹＥＳ）、それぞれのファイルシステムでのフルパスファイル名を一組として、データ一致ファイル管理テーブルに追加する（ステップＳ３０４）。ファイルデータが一致しない場合（ステップＳ３０６のＮＯ）、別のファイル間でファイルデータの比較を行うため、再度ステップＳ３０５における判定を行う（ステップＳ３０５）。ステップＳ３０５において、比較していないファイルがない場合（ステップＳ３０５においてＮＯ）は、ファイル重複排除部１６０が、データ一致ファイル管理テーブルに記憶されているファイルを、対象ファイルシステム２２０から排除し（ステップＳ３０８）、基準ファイルシステム２１０へのポインタ情報（基準ファイルシステムの該当ファイルへの参照情報）に置き換える（ステップＳ３０９）。
【００５０】
ファイルデータ比較部１５０に関する動作説明が長くなったので、ここで要約する。
【００５１】
ファイルデータ比較部１５０は、まずディレクトリ識別子が一致した両ファイルシステムのディレクトリに関して、ディレクトリの内容（ディレクトリ以下に置かれた全ファイルのファイルデータ）が本当に一致しているかどうかをチェックする。次に、ディレクトリ識別子は一致しなかったものの、ファイル識別子の生成及び比較によってファイル識別子が一致していると判断された両ファイルシステムのファイルに関して、ファイルの内容（ファイルデータ）が本当に一致しているかをチェックする。
【００５２】
本実施の形態では、ファイル識別子の生成及び比較の前に、データ量が小さい基準ファイルシステム管理部２１１及び対象ファイルシステム管理部２２１をもとに、ディレクトリ識別子の生成及び比較を行う。そしてディレクトリ識別子が一致したディレクトリ内に含まれるファイルについては、ディスクアクセスが大量に発生するファイル識別子の生成及び比較を省略する構成になっているため、重複排除全体に掛かる時間を短縮することができる。
【００５３】
では従来の重複排除方式、つまりＳ２００以降のファイル識別子比較フェーズ及び重複排除フェーズのみを経ることにより重複排除を行う方式と、本発明の実施形態であるディレクトリ識別子比較フェーズを追加した重複排除方式とによって、どれほど重複排除に要する時間に差が生じるかを説明する。
【００５４】
なお説明を簡略化するため、ディレクトリ識別子比較部１２０でディレクトリ識別子が一致したディレクトリ、ファイル識別子比較部１４０でファイル識別子が一致したファイルは、それぞれファイルデータ比較部１５０においてファイルデータも一致しているものとする。これは現実には必ずしも真ではないが、ディレクトリ識別子とファイル識別子の拡散空間を大きく取れば真に漸近することができる。例えばハッシュ計算を用いてディレクトリ識別子とファイル識別子を算出する場合、ハッシュ空間を大きく取れば取るほどこの真に漸近できる。これを真と考えることで、ファイルデータ比較部１５０以降（すなわち本発明でいう重複排除フェーズ）で掛かる時間は、従来の重複排除方式と、本実施の重複排除方式は変わらないと考えることができる。よってここでは、ファイル識別子比較部１４０までに掛かった時間の比較を行うことで、重複排除全体に掛かる時間が短縮されることを示す。
【００５５】
ではディレクトリ識別子の生成及び比較を行わない従来の重複排除方式と、本発明の実施形態の重複排除方式における、ファイル識別子比較部１４０までに掛かった時間の比較を行う。
【００５６】
まず初めに図１０に示すように変数を設定する。
【００５７】
基準ファイルシステム２１０及び対象ファイルシステム２２０にはＮｆ個のファイルが含まれており、それぞれのファイルシステムでトップディレクトリ以下にＮｄ個のディレクトリが置かれている。この中のＮｆ’個のファイルが含まれているディレクトリが、基準ファイルシステム２１０及び対象ファイルシステム２２０で一致しているとする。
【００５８】
更に１回のディレクトリ識別子生成に掛かる時間をＴｄｇ、１回のディレクトリ識別子比較に掛かる時間をＴｄｃ、１回のファイル識別子生成に掛かる時間をＴｆｇ、１回のファイル識別子比較に掛かる時間をＴｆｃとする。
【００５９】
すると、従来の重複排除方式に掛かる時間は２ＮｆＴｆｇ＋Ｎｆ２Ｔｆｃとなる。一方、本発明の実施形態の重複排除方式に掛かる時間は、２ＮｄＴｄｇ＋Ｎｄ２Ｔｄｃ＋２（Ｎｆ−Ｎｆ’）Ｔｆｇ＋（Ｎｆ−Ｎｆ’）２Ｔｆｃとなる。
【００６０】
具体的に、Ｎｆ＝１００００、Ｎｄ＝１０、Ｎｆ’＝１０００を代入すると、従来の重複排除方式に掛かる時間は２００００Ｔｆｇ＋１００００００００Ｔｆｃとなる。一方、本発明の実施形態の重複排除方式に掛かる時間は、２０Ｔｄｇ＋１００Ｔｄｃ＋１８０００Ｔｆｇ＋８１００００００Ｔｆｃとなる。
【００６１】
ここでディレクトリ識別子同士の比較もファイル識別子の比較も、どちらも単純な数値の比較であるため、Ｔｄｃ＝Ｔｆｃと見なすことができる。よって、本発明の実施形態の重複排除方式に掛かる時間は、２０Ｔｄｇ＋１８０００Ｔｆｇ＋８１０００１００Ｔｆｃとなる。
【００６２】
こうして算出した時間を、ディレクトリ識別子及びファイル識別子の生成と、ディレクトリ識別子及びファイル識別子の比較に掛かる時間とに分けて比較する。
【００６３】
まずディレクトリ識別子及びファイル識別子の比較に掛かる時間を比べると、従来の重複排除方式では１００００００００Ｔｆｃであるのに対して、本発明の実施形態の重複排除方式では８１０００１００Ｔｆｃである。従って、本発明の実施形態の重複排除方式では、１回の識別子の比較に掛かる時間が、約１００分の８１に短縮されていることが分かる。
【００６４】
次に、ディレクトリ識別子及びファイル識別子の生成に掛かる時間を比べると、従来の重複排除方式では２００００Ｔｆｇであるのに対して、本発明の実施形態の重複排除方式では２０Ｔｄｇ＋１８０００Ｔｆｇである。Ｔｆｇ及びＴｄｇは識別子の生成手法等によって変わる値であるため、必ずしも本実施の重複排除方式の方が短いとは言えない。しかしＴｄｇ＜１００Ｔｆｇ、つまりファイル識別子生成手法１００回分より短い時間でディレクトリ識別子の生成を行える手法を、ディレクトリ識別子の生成手法として採用していれば、本発明の実施形態の重複排除方式の方が時間短縮されることになる。
【００６５】
つまりＴｄｇ＜１００Ｔｆｇが満たされる環境であれば、ディレクトリ識別子及びファイル識別子の生成に掛かる時間に関しても本発明の実施形態の重複排除方式の方が時間短縮されることになる。
【００６６】
［第２の実施の形態］
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。
【００６７】
図１１を参照すると、本実施の形態は、図１で示した第１の実施の形態と比較して、データ処理装置１００にシステムファイル参照部１７０が含まれており、記憶装置２００に類似性検証テーブル記憶部２３０が含まれている点で異なるが、それ以外の構成は第１の実施の形態と同じであるので、ここでは異なる点のみ説明する。
【００６８】
類似性検証テーブル記憶部２３０は、基準ファイルシステム２１０及び対象ファイルシステム２２０の種別ごとに、トップディレクトリからどのディレクトリ階層まで、ディレクトリ識別子の生成を行うかについて記憶されている。
【００６９】
類似性検証テーブルの一例を、図１２に示す。図１２によると、基準ファイルシステム２１０がＲＨＥＬ（Red Hat Enterprise Linux）４として使用されており、対象ファイルシステム２２０がＲＨＥＬ５として使用されているならば、トップディレクトリから５階層目までディレクトリ識別子の生成ならびに比較を行う。なぜならば、ＲＨＥＬ４とＲＨＥＬ５のようにＯＳが類似しているファイルシステム間では、上位のディレクトリでのディレクトリ識別子が異なっていた場合であっても、より下位のディレクトリでディレクトリ識別子が一致する可能性があるためである。
【００７０】
逆に、ＯＳが類似していないファイルシステム間では（例えば、Ｗｉｎｄｏｗｓ（登録商標）ＸＰとＲＨＥＬ５間では）、上位のディレクトリでのディレクトリ識別子が異なっているのであれば、更に下位のディレクトリまでディレクトリ識別子の生成ならびに比較を行ったとしてもディレクトリ識別子が一致する可能性が低い。そのため、ディレクトリ識別子の生成及び比較は、浅い階層のディレクトリまでとした方が効率が良い。
【００７１】
システムファイル参照部１７０は、基準ファイルシステムデータ部２１２及び対象ファイルシステムデータ部２２２内に含まれるシステムファイルをもとに、類似性検証テーブル記憶部２３０を参照し、ディレクトリ識別子の生成を行うディレクトリ階層を変更する。
【００７２】
なおシステムファイルとはファイルシステムに含まれるＯＳを識別するための情報ファイルである。例えばＲＨＥＬ４であれば、／ｅｔｃ／ｒｅｄｈａｔ−ｒｅｌｅａｓｅファイルがシステムファイルに該当する。このファイルには、”Ｒｅｄ  Ｈａｔ  Ｅｎｔｅｒｐｒｉｓｅ  Ｌｉｎｕｘ  ＥＳｒｅｌｅａｓｅ  ４（Ｎａｈａｎｔ）”といった文字列が含まれており、このファイルを参照することで、このファイルシステムがＲＨＥＬ４で使用されていることが分かる。
【００７３】
次に、本実施の形態の動作を、図面を参照して詳細に説明する。
【００７４】
本実施の形態の動作は、第１の実施の形態と同様、ディレクトリ識別子比較フェーズ、ファイル識別子比較フェーズ、重複排除フェーズという３つのフェーズから構成される。このうちファイル識別子比較フェーズ及び重複排除フェーズについては、第１の実施の形態の動作と同じであるので説明を省略し、動作に違いのあるディレクトリ識別子比較フェーズについてのみ説明する。
【００７５】
図１３を参照すると、ディレクトリ識別子比較フェーズでは、まずシステムファイル参照部１７０が、基準ファイルシステムデータ部２１２及び対象ファイルシステムデータ部２２２にシステムファイルが含まれているかどうかチェックする（ステップＳ１１１）。システムファイルが含まれているならば（ステップＳ１１１においてＹＥＳ）、そのシステムファイルをもとに類似性検証テーブル記憶部２３０を参照し、ディレクトリ識別子の生成及び比較を行うディレクトリ階層を変更する（ステップＳ１１２）。一方、システムファイルが含まれていないならば（ステップＳ１１２においてＮＯ）、特別な動作は何も行わない。これ以降の動作は、第１の実施の形態におけるステップＳ１０１からステップＳ１０５と同じであるので、説明は省略する。
【００７６】
本実施の形態では、第１の実施の形態と同様の効果を奏する。
【００７７】
加えて、本実施の形態では、システムファイル参照部１７０がファイルシステム内に含まれているＯＳ情報を参照し、それによってディレクトリ識別子の生成及び比較を行う対象とするディレクトリ階層を決定するように構成されていることから、ファイルシステムの使用方法を踏まえた上で、重複排除に掛かる時間を短縮することができる。
【００７８】
［第３の実施の形態］
次に、本発明の第３の実施の形態について、図面を参照して詳細に説明する。
【００７９】
図１４を参照すると、本実施の形態は、図１で示した第１の実施の形態と比較し、データ処理装置１００に時間計測部１８０が備わっている点で異なる。またこれに伴いディレクトリ識別子生成部１１０及びディレクトリ識別子比較部１２０の動作が異なる。
【００８０】
時間計測部１８０は、ディレクトリ識別子の生成及び比較に掛けて良い時間（以下制限時間と表記する。）を有している。そして時間計測部１８０は、前記ディレクトリ識別子の生成を開始してからの時間が、制限時間に達した時点で、ディレクトリ識別子生成部１１０もしくはディレクトリ識別子比較部１２０に対して処理の終了を指示する。
【００８１】
ディレクトリ識別子生成部１１０は、時間計測部１８０から終了指示を受け取ると、ディレクトリ識別子の生成処理を終了させ、ファイル識別子生成処理に移る。
【００８２】
ディレクトリ識別子比較部１２０も、時間計測部１８０から終了指示を受け取ると、ディレクトリ識別子の比較処理を終了させ、ファイル識別子生成処理に移る。またディレクトリ識別子比較部１２０は、ディレクトリ識別子比較の処理が終了すると、ディレクトリ識別子生成部１１０に対して、さらに深いディレクトリ階層に関するディレクトリ識別子を生成するよう指示する。
【００８３】
次に、本実施の形態の動作を、図面を参照して詳細に説明する。
【００８４】
本実施の形態の動作は、第１の実施の形態と同様、ディレクトリ識別子比較フェーズ、ファイル識別子比較フェーズ、重複排除フェーズという３つのフェーズから構成される。このうちファイル識別子比較フェーズ及び重複排除フェーズについては、第１の実施の形態の動作と同じであるので説明は省略し、第１の実施の形態と違いのあるディレクトリ識別子比較フェーズについてのみ説明する。
【００８５】
図１５−Ａを参照すると、時間計測部１８０は、ディレクトリ識別子生成部１１０がディレクトリ識別子の生成を開始した時点で、時間計測を開始する（ステップＳ１２１）。
【００８６】
そして制限時間に達すると、ディレクトリ識別子生成部１１０若しくはディレクトリ比較部１２０に対して終了指示を出す（ステップＳ１２２）。この時ディレクトリ識別子生成部１１０が実行中ならば（ステップＳ１２３においてＹＥＳ）、ディレクトリ識別子生成部１１０を終了する（ステップＳ１２４）。一方、ディレクトリ識別子生成部が実行中でない場合は（ステップＳ１２３においてＮＯ）、ディレクトリ識別子比較部１２０が実行中なので、ディレクトリ識別子比較部１２０を終了する（ステップＳ１２５）。
【００８７】
こうしてディレクトリ識別子生成部１１０若しくはディレクトリ識別比較部１２０が終了すると、ファイル識別子比較フェーズに移行する（ステップＳ１２６）。
【００８８】
また第１の実施の形態でディレクトリ識別子比較部１２０は、ディレクトリ識別子の比較が全て終わると、ファイル識別子比較フェーズに移行していた。しかし本実施の形態では第１の実施の形態とは異なり、以下のような動作をとる。
【００８９】
図１５−Ｂを参照すると、ディレクトリ識別子比較部１２０はディレクトリ識別子の比較が全て終わると、基準ファイルシステム及び対象ファイルシステム内に、まだディレクトリ識別子を生成していない、より深い階層があるかチェックする（ステップＳ１３１）。深い階層があるならば（ステップＳ１３１においてＹＥＳ）、再度ディレクトリ識別子生成部１１０によってディレクトリ識別子の生成を行う（ステップＳ１３２）。一方、深い階層がないならば（ステップＳ１３１においてＮＯ）、ファイル識別子比較フェーズに移行する（ステップＳ１３３）。
【００９０】
本実施の形態では、まず第１の実施の形態と同様の効果を奏する。
【００９１】
更に本実施の形態では、時間計測部が、ディレクトリ識別子の生成及び比較に掛かる時間に応じて、更に深いディレクトリ階層に関するディレクトリ識別子の生成及び比較を行うよう指示を行うことから、システムユーザから指定された制限時間内に、ディレクトリ識別子の生成及び比較に掛かる時間を抑えることができる。
【００９２】
［第４の実施の形態］
次に、本発明の第４の実施の形態について、図面を参照して詳細に説明する。
【００９３】
本実施の形態は、図１で示した第１の実施の形態と同じ構成である。ただディレクトリ識別子生成部１１０の動作が異なるのでこの点について説明する。
【００９４】
本実施の形態におけるディレクトリ識別子生成部１１０は、第１の実施の形態におけるディレクトリ識別子生成部１１０と同様、基準ファイルシステム２１０及び対象ファイルシステム２２０内のディレクトリごとにディレクトリ識別子の生成及びディレクトリ識別子管理テーブルへの登録を行う。加えて、あるディレクトリのディレクトリ識別子を生成中に、識別子の作成対象である当該ディレクトリにサブディレクトリが含まれていることを発見した場合、そのサブディレクトリのディレクトリ識別子もディレクトリ識別子管理テーブルに登録する。
【００９５】
例えばディレクトリ識別子生成手法として、Ｌｉｎｕｘのｄｕコマンドにより、ディレクトリ識別子生成対象ディレクトリ以下の全ファイル名とファイルサイズを出力し、その出力文字列をＳＨＡ１ハッシュでハッシングする手法を利用したとする（図１６参照）。
【００９６】
本発明の第１の実施の形態では、ディレクトリ識別子生成対象のディレクトリに関してのみ、生成されたディレクトリ識別子を、ディレクトリ識別子管理テーブルに登録していた。しかし本実施の形態では、ｄｕコマンドにより出力されるファイル名とファイルサイズのうち、サブディレクトリごとにもＳＨＡ１ハッシュでファイル名とファイルサイズをハッシングし、ディレクトリ管理テーブルに登録する。
【００９７】
次に、本実施の形態の動作を、図面を参照して詳細に説明する。
【００９８】
本実施の形態の動作は、第１の実施の形態と同様、ディレクトリ識別子比較フェーズ、ファイル識別子比較フェーズ、重複排除フェーズという３つのフェーズから構成される。
【００９９】
このうちファイル識別子比較フェーズ及び重複排除フェーズについては、第１の実施の形態の動作と同じであるので説明は省略し、第１の実施の形態と違いのあるディレクトリ識別子比較フェーズについてのみ説明する。
【０１００】
図６を参照すると、まずディレクトリ識別子生成部１１０が、基準ファイルシステム管理部２１１に含まれている情報をもとに、基準ファイルシステム２１０内のディレクトリごとにディレクトリ識別子を生成し、ディレクトリ識別子管理テーブルに追加する。
【０１０１】
この時識別子生成対象のディレクトリにサブディレクトリが含まれている場合、そのサブディレクトリに関するディレクトリ識別子も生成し、ディレクトリ識別子管理テーブルに登録する（図６のステップＳ１０１）。
【０１０２】
次に、対象ファイルシステム２２０管理部に含まれている情報をもとに、対象ファイルシステム２２０内のディレクトリごとにディレクトリ識別子を生成し、ディレクトリ識別子管理テーブルに追加する。この時識別子生成対象のディレクトリにサブディレクトリが含まれている場合、そのサブディレクトリに関するディレクトリ識別子も生成し、ディレクトリ識別子管理テーブルに登録する（ステップＳ１０２）。
【０１０３】
これ以降の動作は、第１の実施の形態におけるディレクトリ識別子比較フェーズと同様であるので、説明は省略する。
【０１０４】
本実施の形態では、第１の実施の形態と同様の効果を奏する。
【０１０５】
更に本実施の形態では、ディレクトリ識別子生成部１１０が、識別子生成対象ディレクトリのディレクトリ識別子生成中に、サブディレクトリのディレクトリ識別子も生成するよう構成されている。そのため識別子生成ディレクトリ及びそのサブディレクトリに関するディレクトリ識別子生成が求められる場合であっても、まず対象ディレクトリのディレクトリ識別子生成を行い、次にサブディレクトリのディレクトリ識別子を生成する、というように２度に分けてディレクトリ識別子を生成する方法に比べて、ディレクトリ識別子生成に掛かる時間を短縮することができる。
【０１０６】
［第５の実施の形態］
次に、本発明の第５の実施の形態について、図面を参照して詳細に説明する。
【０１０７】
本実施の形態は、上述した第１の実施の形態において、単一の計算機上で実施していた重複排除システムを、複数の計算機上で分割して実現した形態である。よって以下の本実施の形態の構成は、第１の実施の形態の構成（図１）を参照して説明する。
【０１０８】
図１７に本実施の形態の構成を示す。図１７を参照すると、本実施の形態は、第１の計算機７１０と第２の計算機７２０と第３の計算機７３０と、それらの計算機をつなぐネットワークを有している。
【０１０９】
第１の計算機７１０は第１のデータ処理装置７１１と第１の記憶装置７１２を有する。第２の計算機７２０は第２のデータ処理装置７２１と第２の記憶装置７２２とを有する。第３の計算機７３０は第３のデータ処理装置７３１と第３の記憶装置７３２とを有する。
【０１１０】
まず第１の計算機７１０の構成について説明する。第１の記憶装置７１２は、基準ファイルシステムを記憶するための記憶装置である。第１のデータ処理装置７１１は、基準ファイルシステムに関するディレクトリ識別子の生成を行う装置である。つまり第１のデータ処理装置７１１は、第１の実施の形態におけるディレクトリ識別子生成部１１０に相当する。
【０１１１】
次に第２の計算機７２０の構成について説明する。第２の記憶装置７２２は、対象ファイルシステムを記憶するための記憶装置である。第２のデータ処理装置７２１は、対象ファイルシステムに関するディレクトリ識別子の生成を行う装置である。つまり第２のデータ処理装置７２１も、第１のデータ処理装置７１１と同様、第１の実施の形態におけるディレクトリ識別子生成部１１０に相当する。
【０１１２】
最後に第３の計算機７３０の構成について説明する。第３の記憶装置７３２は、第１の計算機７１０及び第２の計算機７２０からネットワークを介して受信した基準ファイルシステム及び対象ファイルシステムを記憶するための記憶装置である。
【０１１３】
第３のデータ処理装置７３１は、第１の計算機７１０及び第２の計算機７２０からネットワークを介して受信した基準ファイルシステムと対象ファイルシステムの間で、ディレクトリ識別子比較、ファイル識別子生成、ファイル識別子比較、ファイルデータ比較、ファイル重複排除を行う。つまり、第３のデータ処理装置７３１は、第１の実施の形態におけるディレクトリ識別子比較部１２０からファイル重複排除部１６０までの処理を行う。
【０１１４】
次に本実施の形態の動作について説明する。
【０１１５】
まず第１のデータ処理装置７１１が、基準ファイルシステムに関するディレクトリ識別子の生成を行う。これは第１の実施の形態におけるディレクトリ識別子生成部と同様の動作であり、生成したディレクトリ識別子をディレクトリ識別子管理テーブルに追加する。すなわち、第１のデータ処理装置７１１の動作は、図６のステップＳ１０１の動作を、異なる計算機上で行った時の動作と言うことができる。
【０１１６】
次に第２のデータ処理装置７２１が、対象ファイルシステムに関するディレクトリ識別子の生成を行う。これは第１の実施の形態におけるディレクトリ識別子生成部と同様の動作であり、生成したディレクトリ識別子をディレクトリ識別子管理テーブルに追加する。すなわち、第１のデータ処理装置７１１の動作は、図６のステップＳ１０１の動作を、異なる計算機上で行った時の動作と言うことができる。
【０１１７】
次に第３のデータ処理装置７３１が、第１計算機７１０からネットワークを介して、基準ファイルシステム本体と基準ファイルシステムのディレクトリ識別子管理テーブル、ファイル識別子管理テーブルを受信する。同様に第２の計算機７２０からネットワークを介して、対象ファイルシステム本体と対象ファイルシステムのディレクトリ識別子管理テーブル、ファイル識別子管理テーブルを受信する。
【０１１８】
次に、第３のデータ処理装置７３１は、ディレクトリ識別子比較、ファイル識別子生成、ファイル識別子比較、ファイルデータ比較、ファイル重複排除の動作を行うが、これらの動作は、図６のステップＳ１０２以降の動作と同じであるのでここでは省略する。
【０１１９】
本実施の形態では、第１の実施の形態と同様の効果を奏する。
【０１２０】
更に本実施の形態では、ファイルシステムのディレクトリ識別子生成処理を複数の計算機で分散して処理するよう構成されている。これにより、ファイルシステムの重複データ排除を実行する計算機（第３計算機７３０）が複数存在する場合であっても、複数存在する当該計算機上でそれぞれの計算機がその都度ディレクトリ識別子を生成する必要がなくなり、重複データ排除処理に掛かる時間を短縮することができる。
【０１２１】
なお本実施の形態では、ファイル識別子の生成を第３のデータ処理装置７３１で実行したが、第１のデータ処理装置７１１もしくは第２のデータ処理装置７２１がファイル識別子の生成を行うようにしてもよい。
【０１２２】
［第６の実施の形態］
次に、本発明の第６の実施の形態について、図面を参照して詳細に説明する。
【０１２３】
図１８を参照すると、本実施の形態は、図１で示した第１の実施形態と同様にデータ処理装置１００と記憶装置２００、メモリ３００、通信装置４００、入力装置５００、出力装置６００を有し、更に重複排除プログラム８００を有する。
【０１２４】
重複排除プログラム８００は、データ処理装置１００に読み込まれ、データ処理装置１００の動作を制御するプログラムである。データ処理装置１００は、重複排除プログラム８００の制御により、第１乃至第３の実施の形態におけるデータ処理装置１００と同一の処理を実行する。本実施の形態の構成のようにすることにより、プログラムにより本発明の実現を図ることができる。また、本実施の形態と第５の実施の形態を組み合わせることも可能である。この場合は第５の実施の形態における第３の計算機７３０に重複排除プログラム８００が読み込まれる。そして、第３の計算機７３０は重複排除プログラム８００の制御により動作する。
【０１２５】
以上説明した本発明の実施形態は以下の様な効果を奏する。
【０１２６】
第１の効果は、重複データの排除に掛かる時間を短縮できることにある。その理由は、ディレクトリ識別子が一致するディレクトリ内に含まれるファイルについては、ディレクトリ識別子の生成及び比較より時間が掛かるファイル識別子の生成及び比較を省略することができるからである。
【０１２７】
第２の効果は、比較を行う両ファイルシステム内に含まれるＯＳ情報をもとに、重複データ排除に掛かる時間をより短縮できることにある。その理由は、ファイルシステム内に含まれるＯＳ情報を参照し、それによってディレクトリ識別子の生成及び比較を行うディレクトリ階層が決定されるよう構成されているためである。
【０１２８】
第３の効果は、システムユーザから指定された制限時間内に、ディレクトリ識別子の生成及び比較に掛かる時間を抑えられることにある。その理由は、ディレクトリ識別子の生成、比較に掛かる時間及び指定された制限時間内に応じて、更に深いディレクトリ階層に関するディレクトリ識別子の生成及び比較を行うよう構成されているからである。
【０１２９】
第４の効果は、識別子生成ディレクトリ及びそのサブディレクトリに関するディレクトリ識別子生成が求められる場合において、ディレクトリ識別子生成に掛かる時間を短縮できることにある。その理由は、識別子生成対象ディレクトリのディレクトリ識別子生成中に、サブディレクトリのディレクトリ識別子も生成するよう構成されているからである。
【０１３０】
第５の効果は、ファイルシステムの重複データ排除を行う計算機が複数存在する場合、重複データ排除に掛かる時間を短縮することができる。その理由は、ファイルシステムのディレクトリ識別子生成処理を複数の計算機で分散して処理するよう構成されているからである。
【０１３１】
なお、本発明の実施形態である重複データ排除システムは、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【０１３２】
また、本発明の重複データ排除システムを、ファイル識別子の生成及び比較を行う前に、基準ファイルシステム管理部及び対象ファイルシステム管理部に記憶されている情報をもとに、両ファイルシステムのディレクトリごとにディレクトリ識別子を生成及び比較を行い、ディレクトリ識別子が一致するディレクトリ内のファイルは、ファイル識別子生成及び比較の対象外とすることで、本発明の目的を達成することもできる。
【０１３３】
更に、本発明の重複データ排除システム変形例として、上述の重複データ排除システムの構成に加え、基準ファイルシステム及び対象ファイルシステム内にＯＳ情報が含まれている場合、ＯＳ情報をもとに、基準ファイルシステム及び前記対象ファイルシステムの種別ごとに、トップディレクトリからどのディレクトリ階層まで、ディレクトリ識別子の生成を行うか記憶されている類似性検証テーブル記憶部を参照し、ディレクトリ識別子の生成及び比較を行うディレクトリ階層を制御することで、ディレクトリ識別子の生成を行うディレクトリを変更するという手段でも、本発明の目的を達成することができる。
【０１３４】
更に、本発明の重複データ排除システム変形例として、上述の重複データ排除システムの構成に加え、ディレクトリ識別子の生成及び比較に掛かった時間を計測し、制限時間に達すると、ディレクトリ識別子の生成ならびに比較を終了させて、ファイル識別子の生成及び比較に移行させることでも、本発明の目的を達成することができる。
【０１３５】
更に、本発明の重複データ排除システム変形例として、上述の重複データ排除システムの構成に加え、あるディレクトリのディレクトリ識別子を生成中にサブディレクトリを発見した場合、そのサブディレクトリのディレクトリ識別子もディレクトリ識別子管理テーブルに登録させることでも、本発明の目的を達成することができる。
【０１３６】
更に、本発明の重複データ排除システム変形例として、上述の重複データ排除システムにおいて、基準ファイルシステムのディレクトリ識別子を生成する第１計算機と、対象ファイルシステムのディレクトリ識別子を生成する第２計算機と、それ以外の処理を、第１計算機及び第２計算機とネットワークを介して接続された第３計算機で行うことでも、本発明の目的を達成することができる。
【産業上の利用可能性】
【０１３７】
本発明によれば、複数のファイルシステムが存在する計算機において、重複するファイルデータを排除し記憶装置の使用量を節約するといった用途や、計算機が複数の仮想計算機のディスクイメージを有する時に、仮想計算機のディスクイメージを重複排除し記憶装置の使用量を節約するといった用途にも適用可能である。
【図面の簡単な説明】
【０１３８】
【図１】第１の実施の形態の構成を示すブロック図である。
【図２】ディレクトリ識別子管理テーブルの具体例を示す表である。
【図３】ファイル識別子管理テーブルの具体例を示す表である。
【図４】Ａ  識別子一致ディレクトリ管理テーブルの具体例を示す表である。  Ｂ  識別子一致ファイル管理テーブルの具体例を示す表である。  Ｃ  データ一致ファイル管理テーブルの具体例を示す表である。
【図５】第１の実施の形態の動作を示す図である。
【図６】第１の実施の形態におけるディレクトリ識別子比較フェーズの動作を示す図である。
【図７】第１の実施の形態におけるファイル識別子比較フェーズの動作を示す図である。
【図８】第１の実施の形態における重複排除フェーズの動作を示す図である（１／２）。
【図９】第１の実施の形態における重複排除フェーズの動作を示す図である（２／２）。
【図１０】短縮された時間を計測するにあたっての変数設定を示す図である。
【図１１】第２の実施の形態の構成を示すブロック図である。
【図１２】類似性検証テーブルの具体例を示す表である。
【図１３】第２の実施の形態におけるディレクトリ識別子比較フェーズの動作を示す図である。
【図１４】第３の実施の形態の構成を示すブロック図である。
【図１５】Ａ  第３の実施の形態におけるディレクトリ識別子比較フェーズの動作を示す図である（１／２）。  Ｂ  第３の実施の形態におけるディレクトリ識別子比較フェーズの動作を示す図である（２／２）。
【図１６】第４の実施の形態におけるサブディレクトリのディレクトリ識別子生成を示す図である。
【図１７】第５の実施の形態の構成を示すブロック図である。
【図１８】第６の実施の形態の構成を示すブロック図である。
【符号の説明】
【０１３９】
１００  データ処理装置
１１０  ディレクトリ識別子生成部
１２０  ディレクトリ識別子比較部
１３０  ファイル識別子生成部
１４０  ファイル識別子比較部
１５０  ファイルデータ比較部
１６０  ファイル重複排除部
１７０  システムファイル参照部
１８０  時間計測部
２００  記憶装置
２１０  基準ファイルシステム
２１１  基準ファイルシステム管理部
２１２  基準ファイルシステムデータ部
２２０  対象ファイルシステム
２２１  対象ファイルシステム管理部
２２２  対象ファイルシステムデータ部
２３０  類似性検証テーブル記憶部
３００  メモリ
４００  通信装置
５００  入力装置
６００  出力装置
７００  ネットワーク
７１０  第１計算機
７１１  第１データ処理装置
７１２  第１記憶装置
７２０  第２計算機
７２１  第２データ処理装置
７２２  第２記憶装置
７３０  第３計算機
７３１  第３データ処理装置
７３２  第３記憶装置
８００  重複排除プログラム
【図１】
2009282604.tif 000003
【図２】
2009282604.tif 000004
【図３】
2009282604.tif 000005
【図４】
2009282604.tif 000006
【図５】
2009282604.tif 000007
【図６】
2009282604.tif 000008
【図７】
2009282604.tif 000009
【図８】
2009282604.tif 000010
【図９】
2009282604.tif 000011
【図１０】
2009282604.tif 000012
【図１１】
2009282604.tif 000013
【図１２】
2009282604.tif 000014
【図１３】
2009282604.tif 000015
【図１４】
2009282604.tif 000016
【図１５】
2009282604.tif 000017
【図１６】
2009282604.tif 000018
【図１７】
2009282604.tif 000019
【図１８】
2009282604.tif 000020