JP5650982B2 - ファイルの重複を排除する装置及び方法 - Google Patents

ファイルの重複を排除する装置及び方法 Download PDF

Info

Publication number
JP5650982B2
JP5650982B2 JP2010238487A JP2010238487A JP5650982B2 JP 5650982 B2 JP5650982 B2 JP 5650982B2 JP 2010238487 A JP2010238487 A JP 2010238487A JP 2010238487 A JP2010238487 A JP 2010238487A JP 5650982 B2 JP5650982 B2 JP 5650982B2
Authority
JP
Japan
Prior art keywords
file
identification information
unit
wwuid
file system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010238487A
Other languages
English (en)
Other versions
JP2012093827A (ja
Inventor
英司 戸坂
英司 戸坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010238487A priority Critical patent/JP5650982B2/ja
Priority to US13/240,042 priority patent/US8812460B2/en
Publication of JP2012093827A publication Critical patent/JP2012093827A/ja
Priority to US13/534,735 priority patent/US9256610B2/en
Application granted granted Critical
Publication of JP5650982B2 publication Critical patent/JP5650982B2/ja
Priority to US15/007,322 priority patent/US9710336B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Description

本発明は、ファイルの重複を排除する装置及び方法に関する。特に、本発明は、ファイルシステム内でのファイルの重複を排除する装置及び方法に関する。
コンピュータシステムにおけるデータのバックアップ方法としては、対象となるデータの全てを定期的に(例えば毎日)バックアップする完全バックアップが、データの再生(リストア)の観点からは理想的である。理由は、完全バックアップで取られたデータは1回のリストアで再生が可能であり、バックアップの世代の新旧も明解で必要な世代分を残し古いものから消去できるため管理も容易だからである。
しかしながら、完全バックアップには、記憶容量とバックアップ時間の無駄が生じるという欠点がある。完全バックアップに記憶容量と処理時間がかかる最大の理由は、日々変更されることのないデータを重複してバックアップするために他ならない。
また、重複してデータをバックアップすることのもう1つの原因として挙げられるのは、複数ユーザが所持する同一のファイルのバックアップである。例えば複数PC(Personal Computer)におけるデータのバックアップを例にとると、OSのシステムファイルやアプリケーションプログラムのファイルは、マシンごとに異なるものではないにも関わらず、各PCからのバックアップデータに重複して含まれてしまう。更に、別の例として、電子メールの文書、特に巨大な添付ファイルを複数ユーザが所有することがあるが、これらがバックアップデータにおいて重複してしまうことも挙げられる。その他にも、データが重複してしまう場面は色々と考えられる。
そこで、従来から、重複データを排除する技術が提案されてきた(例えば、特許文献1参照)。
特許文献1では、基準ファイルシステム及び対象ファイルシステム内に含まれているディレクトリごとにディレクト識別子を生成し、基準ファイルシステム内ディレクトリのディレクトリ識別子と、対象ファイルシステム内ディレクトリのディレクトリ識別子が一致しない場合にのみ、基準ファイルシステム及び対象ファイルシステム内に含まれているファイルごとにファイル識別子を生成し、ファイル識別子を比較し、ファイル識別子が一致したファイル同士のファイルデータを比較し、ファイルデータが一致すれば、データの重複を排除している。ここでディレクトリ識別子を生成する手法としては、例えばLinux(登録商標)OS上で、対象ディレクトリでduコマンドを実行し、出力されるファイル名及びファイルサイズの文字列をハッシングするという方法が挙げられている。また、ファイル識別子を生成する方法の例としては、ファイルのファイルデータのハッシュ値をとる方法が挙げられている。
特開2009−282604号公報
このように、特許文献1では、ディレクトリ識別子が一致するディレクトリ内に含まれるファイルについては、ディレクトリ識別子の生成及び比較より時間が掛かるファイル識別子(ファイルデータのハッシュ値)の生成及び比較を省略している。これにより、基準ファイルシステム及び対象ファイルシステム内の全てのファイルデータに関してハッシングをした場合に比べると、重複データの排除に掛かる時間は短縮されると考えられる。
しかしながら、ディレクトリ識別子が一致しないディレクトリ内に含まれるファイルについては、ファイル識別子(ファイルデータのハッシュ値)の生成及び比較を行っている。即ち、ファイルデータを利用して重複排除を行っており、ファイルの重複排除に掛かる時間が格段に短縮されることは期待できない。
また、特許文献1のようにファイルデータのハッシュ値を用いる方法では、重複する複数のファイルの少なくとも1つに圧縮や暗号化が施されていた場合に、ファイルデータを利用せずに重複を排除することは困難である。
本発明の目的は、ファイルデータを利用せずにファイルの重複排除に掛かる時間を短縮することにある。
本発明の他の目的は、重複する複数のファイルの少なくとも1つに圧縮や暗号化が施されていたとしても、ファイルデータを利用せずに重複を排除可能とすることにある。
かかる目的のもと、本発明は、ファイルシステム内でのファイルの重複を排除する装置であって、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報を取得する取得部と、取得部により取得された識別情報であって第1のファイルに付与された識別情報である第1の識別情報と、取得部により取得された識別情報であって第2のファイルに付与された識別情報である第2の識別情報とが一致するかどうかを判定する判定部と、判定部により第1の識別情報と第2の識別情報とが一致すると判定された場合に、ファイルシステム内に第1のファイル及び第2のファイルが重複して記憶されないように制御する制御部とを含む、装置を提供する。
ここで、取得部は、第1の時点でファイルシステム内にバックアップされた第1のファイルに付与された第1の識別情報を、第1の時点でファイルシステム内にバックアップされたファイルを管理する第1の管理情報から取得する第1の取得部と、第1の時点以降の第2の時点でファイルシステム内にバックアップされる第2のファイルに付与された第2の識別情報を取得する第2の取得部とを含み、制御部は、判定部により第1の識別情報と第2の識別情報とが一致すると判定された場合に、第2の時点でファイルシステム内に第2のファイルが複製されないように制御し、第2の時点でバックアップされたファイルを管理する第2の管理情報に第2の識別情報が含まれ、第2の識別情報が第1のファイルに関連付けられるように制御する、ものであってよい。その場合、本発明は、第2の識別情報が第1のファイルに関連付けられると、第1のファイルに関連付けられた識別情報が増えた旨を、識別情報の個数を示す個数情報に登録する第1の登録部と、第1の管理情報の削除指示に応じて、第1のファイルに関連付けられた識別情報が減った旨を、個数情報に登録する第2の登録部と、第1の管理情報の削除指示に応じて、第1の識別情報を削除し、第2の登録部による登録後に第1のファイルに関連付けられた識別情報がない旨が個数情報に登録されていれば、第1のファイルを更に削除する削除部とを更に含む、ものであってよい。
また、取得部は、サーバコンピュータに記憶された第1のファイルに付与された第1の識別情報を、サーバコンピュータに記憶されたファイルを管理する第1の管理情報から取得する第1の取得部と、クライアントコンピュータに記憶された第2のファイルに付与された第2の識別情報を、クライアントコンピュータに記憶されたファイルを管理する第2の管理情報から取得する第2の取得部とを含み、制御部は、判定部により第1の識別情報と第2の識別情報とが一致すると判定された場合に、クライアントコンピュータから第2のファイルが削除されるように制御する、ものであってよい。
更に、取得部は、サーバコンピュータに記憶された第1のファイルに付与された第1の識別情報を、サーバコンピュータに記憶されたファイルを管理する管理情報から取得する第1の取得部と、クライアントコンピュータが受信した電子メールに添付された第2のファイルに付与された第2の識別情報を、電子メールのデータから取得する第2の取得部とを含み、制御部は、判定部により第1の識別情報と第2の識別情報とが一致すると判定された場合に、クライアントコンピュータに第2のファイルが保存されないように制御する、ものであってよい。
また、本発明は、ファイルシステム内にファイルをバックアップする装置であって、第1の時点でファイルシステム内にバックアップされたファイルを管理する第1の管理情報を取得する第1の取得部と、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報であって、第1の時点以降の第2の時点でファイルシステム内にバックアップされるバックアップ対象ファイルに付与された識別情報であるバックアップ対象ファイル識別情報を取得する第2の取得部と、第1の取得部により取得された第1の管理情報が、第2の取得部により取得されたバックアップ対象ファイル識別情報を、第1の時点でファイルシステム内にバックアップされたバックアップ済ファイルに付与された識別情報であるバックアップ済ファイル識別情報として含むかどうかを判定する判定部と、判定部により第1の管理情報がバックアップ対象ファイル識別情報を含むと判定された場合に、第2の時点でファイルシステム内にバックアップ対象ファイルを複製せず、判定部により第1の管理情報がバックアップ対象ファイル識別情報を含まないと判定された場合に、第2の時点でファイルシステム内にバックアップ対象ファイルを複製する複製部と、第2の時点でバックアップされたファイルを管理する第2の管理情報に、バックアップ対象ファイル識別情報を、バックアップ対象ファイル識別情報がバックアップ済ファイルに関連付けられるように格納する格納部と、バックアップ対象ファイル識別情報がバックアップ済ファイルに関連付けられると、バックアップ済ファイルに関連付けられた識別情報が増えた旨を、識別情報の個数を示す個数情報に登録する第1の登録部と、第1の管理情報の削除指示に応じて、バックアップ済ファイルに関連付けられた識別情報が減った旨を、個数情報に登録する第2の登録部と、第1の管理情報の削除指示に応じて、バックアップ済ファイル識別情報を削除し、第2の登録部による登録後にバックアップ済ファイルに関連付けられた識別情報がない旨が個数情報に登録されていれば、バックアップ済ファイルを更に削除する削除部とを含む、装置も提供する。
また、本発明は、ファイルシステム内でファイルを管理する装置であって、ファイルシステム内で新規ファイルが作成された場合に、新規ファイルに識別情報を付与する第1の付与部と、ファイルシステム内で新規ファイルを複製することにより複製ファイルが生成された場合に、複製ファイルに、識別情報と同一の識別情報を付与する第2の付与部と、ファイルシステム内で新規ファイル又は複製ファイルを更新することにより更新ファイルが生成された場合に、更新ファイルに、識別情報とは異なる他の識別情報を付与する第3の付与部とを含む、装置も提供する。
ここで、本発明は、ファイルシステム内で特定のファイルに変更が加えられた場合に、特定のファイルとは別の変更の内容を示す他のファイルに、特定のファイルに付与された識別情報を付加する付加部を更に含む、ものであってよい。
更に、本発明は、ファイルシステム内でのファイルの重複を排除する方法であって、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報であって、第1のファイルに付与された識別情報である第1の識別情報を取得するステップと、第2のファイルに付与された識別情報である第2の識別情報を取得するステップと、第1の識別情報と第2の識別情報とが一致するかどうかを判定するステップと、第1の識別情報と第2の識別情報とが一致すると判定された場合に、ファイルシステム内に第1のファイル及び第2のファイルが重複して記憶されないように制御するステップとを含む、方法も提供する。
更にまた、本発明は、ファイルシステム内でのファイルの重複を排除する装置として、コンピュータを機能させるプログラムであって、コンピュータを、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報を取得する取得部と、取得部により取得された識別情報であって第1のファイルに付与された識別情報である第1の識別情報と、取得部により取得された識別情報であって第2のファイルに付与された識別情報である第2の識別情報とが一致するかどうかを判定する判定部と、判定部により第1の識別情報と第2の識別情報とが一致すると判定された場合に、ファイルシステム内に第1のファイル及び第2のファイルが重複して記憶されないように制御する制御部として機能させる、プログラムも提供する。
本発明によれば、ファイルデータを利用せずにファイルの重複排除に掛かる時間を短縮することができる。
既存のファイルシステムの例を示した図である。 本発明の実施の形態におけるファイルシステムの例を示した図である。 本発明の実施の形態におけるアプリケーションデータと拡張ディレクトリの統合について示した図である。 本発明の実施の形態におけるファイル管理装置の機能構成例を示したブロック図である。 本発明の実施の形態におけるファイル管理装置のファイル作成時の動作例を示したフローチャートである。 本発明の実施の形態におけるファイル管理装置のファイル複製時の動作例を示したフローチャートである。 本発明の実施の形態におけるファイル管理装置のファイル更新時の動作例を示したフローチャートである。 本発明の実施の形態における前日のバックアップファイルと当日のバックアップファイルの重複排除について示した図である。 本発明の実施の形態における複数のクライアントからのバックアップファイルの重複排除について示した図である。 本発明の実施の形態における前日のバックアップの消去について示した図である。 本発明の実施の形態におけるバックアップ装置の機能構成例を示したブロック図である。 本発明の実施の形態におけるバックアップ装置のバックアップ時の動作例を示したフローチャートである。 本発明の実施の形態におけるバックアップ装置のバックアップ管理情報消去時の動作例を示したフローチャートである。 本発明の実施の形態における重複判定対象のファイルの何れかに対して圧縮及び/又は暗号化がなされている場合について説明するための図である。 本発明の実施の形態における分散ファイルシステム上のファイルの重複排除について示した図である。 本発明の実施の形態における分散ファイル処理装置の機能構成例を示したブロック図である。 本発明の実施の形態における分散ファイル処理装置のファイル消去時の動作例を示したフローチャートである。 本発明の実施の形態における電子メールの添付ファイルの重複排除について示した図である。 本発明の実施の形態における電子メール処理装置の機能構成例を示したブロック図である。 本発明の実施の形態における電子メール処理装置の添付ファイル消去時の動作例を示したフローチャートである。 本発明の実施の形態における変更後の文書が包含する元文書の重複排除について説明するための図である。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
まず、本発明の実施の形態の前提として、既存のUNIX(登録商標)系ファイルシステムプログラムについて説明する。ここで「ファイルシステム」と記述すると、ファイルを管理するシステムプログラムを指す場合と、あるストレージ上に存在するファイル群を指す場合とがあり紛らわしいので、以降、前者は「ファイルシステムプログラム」と呼ぶことにする。
既存のファイルシステムプログラムは、ファイルシステムを構成するデバイス上にinode領域と呼ばれるエリアを確保している。このエリアには、複数有限個のinodeと呼ばれるデータ構造体が存在し、個々のinodeについて次のような情報(inode情報)を保持している。
inode情報
・デバイスID(ファイルを格納しているデバイスを識別する情報)
・ファイルシステム内でファイルを識別するinode番号
・最終inode更新時刻(ctime)、最終ファイル更新時刻(mtime)、最終参照時刻(atime)を示すタイムスタンプ群
・ファイルの長さ
・ファイル所有者のユーザID
・ファイルのグループID
・ファイルパーミッション
・ファイル種別(ファイル/ディレクトリ等)
・そのinodeを指すハードリンクがいくつあるかを示す参照カウント
ここで、木構造を構成する要となるディレクトリは、そのディレクトリ下のファイルのファイル名とinode番号を1セットとし、その複数セットをリストとして保持する特殊な属性を持ったファイルである。ファイルシステムプログラムは、パス名を与えられると、ルートディレクトリからファイル名とinode番号を辿って目的のファイルを特定する。
尚、この既存のファイルシステムプログラムでは、既にバックアップ済みのファイルをコピーしたファイルは、最終ファイル更新時刻が同じでもinode番号が異なるため、重複してバックアップされてしまう。
図1は、既存のファイルシステムプログラムによって管理される既存のファイルシステムを示した図である。
図では、既存のファイルシステム内に、ファイル51a及びファイル51bが記憶されている。ここでは、ファイル51aのデータ実体を「DataA」で表し、ファイル51bのデータ実体を「DataB」で表している。
また、既存のファイルシステム内には、ファイル51aを構成するデータブロックの位置を示すブロック番号等を含むinode情報52a、及び、ファイル51bを構成するデータブロックの位置を示すブロック番号等を含むinode情報52bが記憶されている。
更に、既存のファイルシステム内には、ディレクトリ53が記憶されている。ディレクトリ53は、ファイル51aのファイル名「fileA」をinode情報52aのinode番号と対応付けて格納しており、このinode番号によりinode情報52aを介してファイル51aに辿り着けるようになっている。また、ディレクトリ53は、ファイル51bのファイル名「fileB」をinode情報52bのinode番号と対応付けて格納しており、このinode番号によりinode情報52bを介してファイル51bに辿り着けるようになっている。
ところで、本実施の形態は、バックアップアプリケーションのみならず一般のアプリケーションにおいても重複排除を容易に行える拡張ファイルシステムプログラムを提案するものである。この場合、重複排除は、次の2つの方法、即ち、「ファイル実体ごとのユニークなIDの割り振り」、「ディレクトリ構造のアプリケーション利用への拡張」によって可能となる。
[ファイル実体ごとのユニークなIDの割り振り]
システムは、あるファイルがある期間不変であったことも別のファイルの複製であることも論理的には認識可能であり、上記で述べたようなデータの重複は回避できるはずである。しかし、それを困難にしている既存のファイルシステムプログラムの問題点は、前述のinode情報がストレージデバイス上のどこにファイルが存在しているかを示すものに過ぎないことである。つまり、inode情報のみでは、ファイルが同一であるか否かを確定できないことである。ファイルの長さや種別で2つのファイルが一致しないことは確定できるが、同一であるかまではファイル実体を全比較する必要がある。
そこで、本実施の形態では、ファイルごとにユニークなIDをファイル作成時又は更新時に付与することを提案する。このIDは、ファイルシステムプログラムが管理するストレージワイドで無二なIDである。以降、このIDをWWUID(World Wide Unique ID)と呼ぶ。本実施の形態における拡張ファイルシステムプログラム及びバックアップアプリケーションは、このWWUIDにてデータ実体を管理し、データ実体の複製及び移動に付随してWWUIDも移動させる。これにより、ストレージシステムは、既にバックアップ済み(コピー済み)であることを、全データを比較せずに認識可能となる。
ここで、WWUIDのサイズが妥当な範囲に収まり得るかが実現可能か否かに関わってくるが、以下のように、WWUIDのサイズは128ビット(16バイト)程度で十分であり、1ファイルの0.006%程度になると推定した。
ファイルシステムの総データ量を1エクサバイト(260バイト)と仮定する。これは、現存するストレージデバイスよりもはるかに巨大なサイズである。
平均のファイルサイズを256KB(218バイト)と仮定する。これは一般的なPC内の平均ファイルサイズよりやや小さめである。
上記仮定をすると、WWUIDの128ビットは1ファイルの0.0061%(=2バイト/218バイト)となる。また、ファイルシステム内のファイル数が平均242個であるのに対し、WWUIDの128ビットで2128個のファイルを表現可能であることから、全てのファイルが2128−42回更新されてもIDは枯渇しないため、WWUIDは128ビット程度で十分と思われる。
図2は、拡張ファイルシステムプログラムによって管理される拡張ファイルシステムの一実装例を示した図である。
図では、拡張ファイルシステム内に、ファイル51a及びファイル51bが記憶されている。ここでは、ファイル51aのデータ実体を「DataA」で表し、ファイル51bのデータ実体を「DataB」で表している。
また、拡張ファイルシステム内には、ファイル51aを構成するデータブロックの位置を示すブロック番号等を含むinode情報52a、及び、ファイル51bを構成するデータブロックの位置を示すブロック番号等を含むinode情報52bが記憶されている。
更に、拡張ファイルシステム内には、ディレクトリ54が記憶されている。ディレクトリ54は、ファイル51aのファイル名「fileA」に代えて、ファイル51aのWWUID「wwuidA」をinode情報52aのinode番号と対応付けて格納しており、このinode番号によりinode情報52aを介してファイル51aに辿り着けるようになっている。また、ディレクトリ54は、ファイル51bのファイル名「fileB」に代えて、ファイル51bのWWUID「wwuidB」をinode情報52bのinode番号と対応付けて格納しており、このinode番号によりinode情報52bを介してファイル51bに辿り着けるようになっている。
更にまた、拡張ファイルシステム内には、拡張ディレクトリ55が記憶されている。拡張ディレクトリ55は、ファイル51aのファイル名「fileA」をファイル51aのWWUID「wwuidA」と対応付けて格納しており、ディレクトリ54を参照してこのWWUID「wwuidA」と対応付けられているinode番号を求め、このinode番号によりinode情報52aを介してファイル51aに辿り着けるようになっている。また、拡張ディレクトリ55は、ファイル51bのファイル名「fileB」をファイル51bのWWUID「wwuidB」と対応付けて格納しており、ディレクトリ54を参照してこのWWUID「wwuidB」と対応付けられているinode番号を求め、このinode番号によりinode情報52bを介してファイル51bに辿り着けるようになっている。
尚、このように拡張ディレクトリ55からはディレクトリ54を介してファイル51a,51bに辿り着けるようになっているが、図では、太矢印で示すように、拡張ディレクトリ55のWWUIDが直接ファイル51a,51bを指し示す簡略化表現を用いている。このような簡略化表現は、以降の説明でも用いるものとする。
[ディレクトリ構造のアプリケーション利用への拡張]
既存のファイルシステムでは、ファイル種別がディレクトリのデータしかファイル実体へのポインタを持てない。これに対し、本実施の形態では、WWUIDを使用して、ファイルシステムが持つ木構造(ディレクトリ構造)をアプリケーションデータが利用することを許容する。DTP(DeskTop Publishing)のレビューコメント付文書を処理する既存のアプリケーションや、添付ファイル付き電子メールを送受信する既存のアプリケーションは、レビューコメントが付される元文書や添付ファイル等のデータストリームを独自の方法で包含している。しかし、そのため、同一データストリームを包含する複数のファイルが存在しても、そのアプリケーション以外はそのことを判別できない。アプリケーションデータを拡張ディレクトリのデータと同様にファイルの包含を扱えるようにすることで、異なるアプリケーションデータによって包含される同一ファイルの重複排除が容易になる。また、WWUIDごとの参照カウント(以下、「Rcnt」ともいう)を拡張ディレクトリのデータとアプリケーションデータとで共有することにより、アプリケーションがファイル実体の消去の可否を拡張ファイルシステムプログラムと同様に扱うことが可能になる。
図3は、このようなアプリケーションデータと拡張ディレクトリの統合を模式的に示した図である。
図では、拡張ファイルシステム内に、ファイル61a及びファイル61bが記憶されている。ここでは、ファイル61aのデータ実体を「DataA」で表し、ファイル61bのデータ実体を「DataB」で表している。
また、拡張ファイルシステム内には、拡張ディレクトリ65が記憶されている。拡張ディレクトリ65は、ファイル61aのファイル名「fileA」をファイル61aのWWUID「wwuidA」と対応付けて格納しており、このWWUID「wwuidA」によりファイル61aに辿り着けるようになっている。また、拡張ディレクトリ65は、ファイル61bのファイル名「fileB」をファイル61bのWWUID「wwuidB」と対応付けて格納しており、このWWUID「wwuidB」によりファイル61bに辿り着けるようになっている。更に、拡張ディレクトリ65は、ファイル61bと内容が同じ別ファイルのファイル名「fileB’」をファイル61bのWWUID「wwuidB」と対応付けて格納しており、このWWUID「wwuidB」によりファイル61bに辿り着けるようになっている。ここで、拡張ディレクトリ65のファイル名は「dirC」であるものとする。
更に、拡張ファイルシステム内には、親ディレクトリの拡張ディレクトリ(拡張親ディレクトリ)66が記憶されている。拡張親ディレクトリ66は、拡張ディレクトリ65のファイル名「dirC」と拡張ディレクトリ65のWWUID「wwuidC」とを対応付けて格納しており、このWWUID「wwuidC」により拡張ディレクトリ65に辿り着けるようになっている。これに対して、拡張ディレクトリ65は、親ディレクトリを表す「..」と拡張親ディレクトリ66のWWUID「wwuidP」とを対応付けて格納しており、このWWUID「wwuidP」により拡張親ディレクトリ66に辿り着けるようになっている。
また、拡張ファイルシステム内には、アプリケーションデータ67aが記憶されている。アプリケーションデータ67aは、ファイル61aのWWUID「wwuidA」を含んでおり、このWWUID「wwuidA」によりファイル61aに辿り着けるようになっている。
更に、拡張ファイルシステム内には、アプリケーションデータ67bも記憶されている。アプリケーションデータ67bは、ファイル61aのWWUID「wwuidA」とファイル61bのWWUID「wwuidB」とを含んでおり、WWUID「wwuidA」によりファイル61aに辿り着けるようになっていると共に、WWUID「wwuidB」によりファイル61bに辿り着けるようになっている。
尚、この例において、ファイル61aは、拡張ディレクトリ65、アプリケーションデータ67a、アプリケーションデータ67bのそれぞれの1つのWWUIDから辿り着くことができるので、ファイル61aに関連付けられたinode情報内のRcntは「3」になっている。また、ファイル61bは、拡張ディレクトリ65の2つのWWUID、アプリケーションデータ67bの1つのWWUIDから辿り着くことができるので、ファイル61bに関連付けられたinode情報内のRcntは「3」になっている。
[ファイル管理装置]
次に、以上述べた拡張ファイルシステムプログラムによって実現されるファイル管理装置10について具体的に説明する。尚、ここでは、図2に示した実装例を前提に説明する。
図4は、ファイル管理装置10の機能構成例を示した図である。
図示するように、ファイル管理装置10は、WWUID管理部11と、ファイル記憶部12と、管理情報記憶部13と、ファイル作成部14と、ファイル複製部15と、ファイル更新部16とを備える。
WWUID管理部11は、上述した2128個のWWUIDを、各WWUIDの使用状況の情報と共に管理する。本実施の形態では、ファイルの作成又は更新に応じてファイルに新たに付与され、ファイルが他のファイルの複製である場合には他のファイルから引き継がれることで、ファイルの内容を識別可能になっている識別情報の一例として、WWUIDを用いている。
ファイル記憶部12は、ファイルを記憶する。
管理情報記憶部13は、inode情報、ディレクトリ、拡張ディレクトリを記憶する。
ファイル作成部14は、ユーザ又はアプリケーションからディレクトリとファイル名を指定したファイル作成指示があると、指定されたディレクトリの下に、指定されたファイル名の新たなファイルを作成する。このとき、ファイル作成部14は、新たなファイルに未使用のWWUIDを付与する。本実施の形態では、新規ファイルに識別情報を付与する第1の付与部の一例として、ファイル作成部14を設けている。
ファイル複製部15は、ユーザ又はアプリケーションから複製元ディレクトリと複製先ディレクトリとファイル名とを指定したファイル複製指示があると、指定された複製元ディレクトリの下の指定されたファイル名のファイル(複製元ファイル)を複製することで、指定された複製先ディレクトリの下に同じファイル名のファイル(複製先ファイル)を生成する。このとき、ファイル複製部15は、複製元ファイルに付与されていたWWUIDを複製先ファイルに引き継ぐ。本実施の形態では、複製ファイルに同一の識別情報を付与する第2の付与部の一例として、ファイル複製部15を設けている。
ファイル更新部16は、ユーザ又はアプリケーションからディレクトリとファイル名を指定したファイル更新指示があると、指定されたディレクトリの下の指定されたファイル名のファイルを更新する。このとき、ファイル更新部16は、更新後のファイルに未使用のWWUIDを付与する。本実施の形態では、更新ファイルに異なる識別情報を付与する第3の付与部の一例として、ファイル更新部16を設けている。
次に、ファイル管理装置10の動作について説明する。
図5は、ファイル作成部14がファイルを作成するときの動作を示したものである。
ファイル作成部14は、まず、ディレクトリとファイル名とを指定したファイル作成指示を受け付ける(ステップ101)。すると、ファイル作成部14は、新たにファイルを作成してファイル記憶部12に記憶し(ステップ102)、このファイルのinode情報を管理情報記憶部13に記憶する(ステップ103)。
その後、ファイル作成部14は、WWUID管理部11から未使用のWWUIDを取得する(ステップ104)。
そして、ファイル作成部14は、ここで取得したWWUIDとステップ103で記憶したinode情報におけるinode番号との対応を、管理情報記憶部13に記憶されたディレクトリに含める(ステップ105)。
また、ファイル作成部14は、ステップ101で指定されたファイル名とステップ104で取得したWWUIDとの対応を、管理情報記憶部13に記憶された拡張ディレクトリに含める(ステップ106)。
図6は、ファイル複製部15がファイルを複製するときの動作を示したものである。
ファイル複製部15は、まず、複製元ディレクトリと複製先ディレクトリとファイル名とを指定したファイル複製指示を受け付ける(ステップ121)。すると、ファイル複製部15は、指定された複製元ディレクトリの下の指定されたファイル名の複製元ファイルをファイル記憶部12から読み出し、この複製元ファイルを複製した複製先ファイルを、複製先ディレクトリの下の同じファイル名のファイルとしてファイル記憶部12に記憶する(ステップ122)。そして、この複製先ファイルのinode情報を管理情報記憶部13に記憶する(ステップ123)。
その後、ファイル複製部15は、管理情報記憶部13に記憶された複製元ディレクトリに対する拡張ディレクトリ内をステップ121で指定されたファイル名で検索し、複製元ファイルのWWUIDを取得する(ステップ124)。
そして、ファイル複製部15は、ここで取得したWWUIDとステップ123で記憶したinode情報におけるinode番号との対応を、管理情報記憶部13に記憶された複製先ディレクトリに含める(ステップ125)。
また、ファイル複製部15は、ステップ121で指定されたファイル名とステップ124で取得したWWUIDとの対応を、管理情報記憶部13に記憶された複製先ディレクトリに対する拡張ディレクトリに含める(ステップ126)。
図7は、ファイル更新部16がファイルを更新するときの動作を示したものである。
ファイル更新部16は、まず、ディレクトリとファイル名とを指定したファイル更新指示を受け付ける(ステップ141)。すると、ファイル更新部16は、指定されたディレクトリの下の指定されたファイル名のファイルを更新したファイルをファイル記憶部12に記憶し(ステップ142)、管理情報記憶部13に記憶されたこのファイルのinode情報(最終更新時刻等)を更新する(ステップ143)。
その後、ファイル更新部16は、WWUID管理部11から未使用のWWUIDを取得する(ステップ144)。
そして、ファイル更新部16は、管理情報記憶部13に記憶されたディレクトリに含まれていた更新前ファイルのWWUIDとinode番号との対応を、ここで取得したWWUIDと同じinode番号との対応に置き換える(ステップ145)。
また、ファイル更新部16は、管理情報記憶部13に記憶された拡張ディレクトリに含まれていた更新前ファイルのファイル名とWWUIDとの対応を、同じファイル名とステップ144で取得したWWUIDとの対応に置き換える(ステップ146)。
[ファイルの重複排除]
以下、本実施の形態におけるファイルの重複排除のシナリオを列挙する。
[定期的完全バックアップにおける重複排除]
図8は、DtoD(Disk to Disk)バックアップアプリケーション(以下、単に「バックアップアプリケーション」という)が、当日のバックアップと前日のバックアップとを比較して重複排除を行っている例を示したものである。
まず、前日のバックアップについて説明する。
前日のクライアントファイルシステム71x内には、ファイル72x及びファイル73が記憶されている。ここでは、ファイル72xのデータ実体を「DataA」で表し、ファイル73のデータ実体を「DataB」で表している。
また、前日のクライアントファイルシステム71x内には、拡張ディレクトリ75xが記憶されている。拡張ディレクトリ75xは、ファイル72xのファイル名「fileA」をファイル72xのWWUID「wwuidA」と対応付けて格納しており、このWWUID「wwuidA」によりファイル72xに辿り着けるようになっている。また、拡張ディレクトリ75xは、ファイル73のファイル名「fileB」をファイル73のWWUID「wwuidB」と対応付けて格納しており、このWWUID「wwuidB」によりファイル73に辿り着けるようになっている。
そして、前日動作したバックアップアプリケーション(以下、「前日のバックアップアプリケーション」という)76xは、破線太矢印で示すように、ファイル72x及びファイル73を前日のクライアントファイルシステム71xからサーバファイルシステム77へコピーする。また、このとき、前日のバックアップアプリケーション76xは、同様に破線太矢印で示すように、サーバファイルシステム77内に、前日のバックアップ管理情報78xを作成する。この前日のバックアップ管理情報78xは、前日のバックアップファイルのリストを示すものであり、そのデータ構造は、拡張ディレクトリのデータ構造と類似している。
次いで、当日のバックアップについて説明する。
当日のクライアントファイルシステム71y内には、ファイル72y及びファイル74が記憶されている。ここでは、ファイル72yのデータ実体を「DataA」で表し、ファイル74のデータ実体を「DataC」で表している。
また、当日のクライアントファイルシステム71y内には、拡張ディレクトリ75yが記憶されている。拡張ディレクトリ75yは、ファイル72yのファイル名「fileA」をファイル72yのWWUID「wwuidA」と対応付けて格納しており、このWWUID「wwuidA」によりファイル72yに辿り着けるようになっている。また、拡張ディレクトリ75yは、ファイル74のファイル名「fileC」をファイル74のWWUID「wwuidC」と対応付けて格納しており、このWWUID「wwuidC」によりファイル74に辿り着けるようになっている。
そして、当日動作するバックアップアプリケーション(以下、「当日のバックアップアプリケーション」という)76yは、実線太矢印で示すように、前日のバックアップ管理情報78xを参照して、サーバファイルシステム77にコピーする必要がないファイル72yをファイル実体を比較せずに特定し、サーバファイルシステム77にコピーする必要があるファイル74のみコピーする。そして、最後に、当日のバックアップアプリケーション76yは、同様に実線太矢印で示すように、当日のバックアップ管理情報78yを保管する。尚、この当日のバックアップ管理情報78yは、当日のバックアップファイルのリストを示すものであり、そのデータ構造は、拡張ディレクトリのデータ構造と類似している。
ここで重要な点は、前日のバックアップ管理情報78xで管理されるバックアップファイルも、当日のバックアップ管理情報78yで管理されるバックアップファイルも、独立してリストアが可能であるということである。
尚、図8では、バックアップを比較する2つの時点として前日及び当日を例示したが、第1の時点及びこの第1の時点以降の第2の時点という関係にある2つの時点であれば、如何なる2つの時点を採用してもよい。
[複数システムからのバックアップにおける重複排除]
定期的完全バックアップの場合と同様に、複数のクライアントからのバックアップの場合も、バックアップ管理情報を参照することで、既にファイル実体がコピー済みであることが判断できる。ここで、複数のクライアントとしては、例えば、ユーザXが使用するクライアント(以下、「ユーザXのクライアント」という)及びユーザYが使用するクライアント(以下、「ユーザYのクライアント」という)が挙げられる。
図9は、バックアップアプリケーションが、ユーザXのクライアントからのバックアップとユーザYのクライアントからのバックアップとを比較して重複排除を行っている例を示したものである。
この例は、図8における前日のクライアントファイルシステム71x、当日のクライアントファイルシステム71y、前日のバックアップアプリケーション76x、当日のバックアップアプリケーション76y、前日のバックアップ管理情報78x、当日のバックアップ管理情報78yを、それぞれ、ユーザXのクライアントファイルシステム71x、ユーザYのクライアントファイルシステム71y、ユーザXのバックアップアプリケーション76x、ユーザYのバックアップアプリケーション76y、ユーザXのバックアップ管理情報78x、ユーザYのバックアップ管理情報78yに置き換えただけであるので、詳細な説明は省略する。
尚、図9では、ユーザXのクライアントにおけるファイルシステムを「ユーザXのクライアントファイルシステム」と表記し、ユーザYのクライアントにおけるファイルシステムを「ユーザYのクライアントファイルシステム」と表記し、ユーザXのクライアントからのバックアップを行ったバックアップアプリケーションを「ユーザXのバックアップアプリケーション」と表記し、ユーザYのクライアントからのバックアップを行うバックアップアプリケーションを「ユーザYのバックアップアプリケーション」と表記し、ユーザXのクライアントからのバックアップを管理するバックアップ管理情報を「ユーザXのバックアップ管理情報」と表記し、ユーザYのクライアントからのバックアップを管理するバックアップ管理情報を「ユーザYのバックアップ管理情報」と表記している。
また、図9では、ユーザXのクライアントからバックアップした時点が第1の時点に相当し、ユーザYのクライアントからバックアップした時点が第2の時点に相当する。
[旧世代バックアップの消去の容易さ]
図10は、サーバファイルシステム77内に前日のバックアップ管理情報78xと当日のバックアップ管理情報78yとが存在している状態で、前日のバックアップ管理情報78xのみを消去するときの様子を示したものである。
前日のバックアップ管理情報78xが消去されると、ファイルシステムプログラムは、関連する全てのファイルのRcntから「1」を減算する。具体的には、WWUID「wwuidA」のファイル72のRcntを「2」から「1」に変更し、WWUID「wwuidB」のファイル73のRcntを「1」から「0」に変更する。一方、ファイル74のWWUIDは前日のバックアップ管理情報78xに含まれていないので、そのRcntは変更しない。このようなRcntの減算処理の結果、ファイル72のRcntは「0」になっていないので、ファイルシステムプログラムはファイル72は前日のバックアップ管理情報78xからのリンクは切るが実体を消滅させず、ファイル73のRcntは「0」になったので、ファイルシステムプログラムはファイル73を消滅させる。
ここで重要な点は、古いバックアップから順に消去しても新しい世代のバックアップの整合性が保たれることにある。
尚、この旧世代バックアップの消去の例は、図8の定期的完全バックアップに対してのみならず、図9の複数のクライアントからのバックアップに対しても適用可能である。この場合、旧世代バックアップを消去することは、特定のクライアントからのバックアップを消去することに相当する。
[バックアップ装置]
次に、以上述べたようなバックアップ及び特定のバックアップの消去を行うバックアップ装置20について具体的に説明する。尚、ここでは、前日のクライアントファイルシステム71x及びユーザXのクライアントファイルシステム71xを単にクライアントファイルシステム71xと呼び、当日のクライアントファイルシステム71y及びユーザYのクライアントファイルシステム71yを単にクライアントファイルシステム71yと呼び、前日のバックアップ管理情報78x及びユーザXのバックアップ管理情報78xを第1管理情報78xと呼び、当日のバックアップ管理情報78y及びユーザYのバックアップ管理情報78yを第2管理情報78yと呼ぶことにする。また、このバックアップ装置20は、クライアントファイルシステム71yを含むコンピュータ、サーバファイルシステム77を含むコンピュータの何れからも独立した装置であることを前提とする。
図11は、バックアップ装置20の機能構成例を示した図である。
図示するように、バックアップ装置20は、ファイル名受付部21と、WWUID受信部22と、WWUID検索部23と、Rcnt更新指示部24と、第2管理情報更新指示部25と、ファイル操作指示部26と、第1管理情報削除指示部27とを備える。
ファイル名受付部21は、バックアップ対象ファイルのファイル名を受け付ける。
WWUID受信部22は、バックアップ対象ファイルのWWUIDをクライアントファイルシステム71yから受信する。具体的には、ファイル名受付部21が受け付けたファイル名にクライアントファイルシステム71y内の拡張ディレクトリ75yにおいて対応付けられたWWUIDを受信する。本実施の形態では、第2の時点でファイルシステム内にバックアップされる第2のファイルの一例として、バックアップ対象ファイルを用いており、第2のファイルに付与された第2の識別情報を取得する第2の取得部の一例として、WWUID受信部22を設けている。また、バックアップ対象ファイル識別情報を取得する第2の取得部の一例として、WWUID受信部22を設けている。
WWUID検索部23は、WWUID受信部22が受信したWWUIDを、サーバファイルシステム77内の第1管理情報78xから検索する。具体的には、サーバファイルシステム77内の第1管理情報78xを取得してその中からバックアップ済ファイルのWWUIDを取り出し、WWUID受信部22が受信したWWUIDと同じかどうかを判定する。本実施の形態では、第1の時点でファイルシステム内にバックアップされた第1のファイルの一例として、バックアップ済ファイルを用いており、第1のファイルに付与された第1の識別情報を取得する第1の取得部の一例として、WWUID検索部23を設けている。また、第1の管理情報を取得する第1の取得部の一例として、WWUID検索部23を設けている。更に、第1の識別情報と第2の識別情報とが一致するかどうかを判定する判定部、第1の管理情報がバックアップ対象ファイル識別情報を含むかどうかを判定する判定部の一例として、WWUID検索部23を設けている。
Rcnt更新指示部24は、WWUID検索部23が第1管理情報78xからWWUIDを見つけることができた場合には、そのWWUIDに対応するinode情報内のRcntに「1」を加算する更新処理をサーバファイルシステム77に指示し、WWUID検索部23が第1管理情報78xからWWUIDを見つけることができなかった場合には、そのWWUIDに対応するinode情報を新たに記憶してその中のRcntを「1」とする更新処理をサーバファイルシステム77に指示する。また、第1管理情報78xを削除する際に、第1管理情報78xに含まれるWWUIDに対応するinode情報内のRcntから「1」を減算する更新処理をサーバファイルシステム77に指示する。本実施の形態では、識別情報の個数を示す個数情報の一例として、Rcntを用いている。また、識別情報が増えた旨を登録する第1の登録部、識別情報が減った旨を登録する第2の登録部の一例として、Rcnt更新指示部24を設けている。
第2管理情報更新指示部25は、第1管理情報78x内のパス名及びWWUIDを第2管理情報78yに追加する更新処理を、サーバファイルシステム77に指示する。本実施の形態では、第2の管理情報に第2の識別情報が含まれ、第2の識別情報が第1のファイルに関連付けられるように制御する制御部の一例として、第2管理情報更新指示部25を設けている。また、第2の管理情報にバックアップ対象ファイル識別情報を格納する格納部の一例として、第2管理情報更新指示部25を設けている。
ファイル操作指示部26は、WWUID検索部23が第1管理情報78xからWWUIDを見つけることができなかった場合に、バックアップ対象ファイルを記憶するようサーバファイルシステム77に指示する。また、第1管理情報78xを削除する際に、条件が満たされれば、第1管理情報78xで管理されているファイルを削除するようサーバファイルシステム77に指示する。本実施の形態では、ファイルシステム内に第2のファイルが複製されないように制御する制御部、第1のファイルを削除する削除部の一例として、ファイル操作指示部26を設けている。また、ファイルシステム内にバックアップ対象ファイルを複製する複製部、バックアップ済ファイルを削除する削除部の一例として、ファイル操作指示部26を設けている。
第1管理情報削除指示部27は、第1管理情報78xを削除するようサーバファイルシステム77に指示する。本実施の形態では、第1の識別情報を削除する削除部、バックアップ済ファイル識別情報を削除する削除部の一例として、第1管理情報削除指示部27を設けている。
次に、バックアップ装置20の動作について説明する。
図12は、バックアップを行うときのバックアップ装置20の動作を示したものである。
バックアップ装置20では、まず、ファイル名受付部21が、バックアップ対象ファイルのファイル名を受け付ける(ステップ201)。
すると、WWUID受信部22が、ステップ201で受け付けたファイル名にクライアントファイルシステム71y内の拡張ディレクトリ75yで対応付けられたWWUIDを受信する(ステップ202)。
次に、WWUID検索部23が、WWUID受信部22が受信したWWUIDを取得し、サーバファイルシステム77内の第1管理情報78xからこのWWUIDを検索する(ステップ203)。そして、第1管理情報78xからWWUIDが見つかったかどうかを判定する(ステップ204)。
その結果、第1管理情報78xからWWUIDが見つかれば、WWUIDはWWUID検索部23からRcnt更新指示部24へと渡され、Rcnt更新指示部24が、サーバファイルシステム77に対し、WWUIDに対応するinode情報内のRcntに「1」を加算するよう指示する(ステップ205)。尚、このとき、WWUID検索部23は、見つかったWWUIDに対応付けられたパス名も保持しておくものとする。
一方、第1管理情報78xからWWUIDが見つからなければ、WWUID検索部23は、クライアントファイルシステム71yからバックアップ対象ファイルを取得する(ステップ206)。そして、バックアップ対象ファイルはWWUID検索部23からファイル操作指示部26へと渡され、ファイル操作指示部26が、サーバファイルシステム77に対し、バックアップ対象ファイルを記憶するよう指示する(ステップ207)。また、WWUID検索部23が保持するクライアントファイルシステム71yからのWWUIDはRcnt更新指示部24へと渡され、Rcnt更新指示部24が、サーバファイルシステム77に対し、WWUIDに対応するinode情報を新たに生成してそのinode情報内のRcntに「1」を設定するよう指示する(ステップ208)。
その後、パス名及びWWUIDはWWUID検索部23から第2管理情報更新指示部25へと渡され、第2管理情報更新指示部25が、サーバファイルシステム77に対し、第2管理情報78yにパス名及びWWUIDを登録するよう指示する(ステップ209)。
図13は、第1管理情報78xを消去するときのバックアップ装置20の動作を示したものである。
バックアップ装置20では、まず、第1管理情報削除指示部27が、第1管理情報78x内の1つのパス名及びWWUIDの組に着目する(ステップ251)。
すると、WWUIDは第1管理情報削除指示部27からRcnt更新指示部24へと渡され、Rcnt更新指示部24が、サーバファイルシステム77に対し、WWUIDに対応するinode情報内のRcntから「1」を減算するよう指示する(ステップ252)。
そして、第1管理情報削除指示部27は、Rcnt更新指示部24から返された減算後のRcntの値を参照し、Rcntが「0」になったかどうかを判定する(ステップ253)。
その結果、Rcntが「0」になっていれば、着目しているパス名が第1管理情報削除指示部27からファイル操作指示部26へと渡され、ファイル操作指示部26が、サーバファイルシステム77に対し、パス名で特定されるファイルを削除するよう指示する(ステップ254)。
一方、Rcntが「0」になっていなければ、着目しているパス名で特定されるファイルは、他のバックアップ管理情報からも参照されているので、ファイル操作指示部26は、サーバファイルシステム77に対し、ファイルの削除を指示しない。
その後、第1管理情報削除指示部27は、第1管理情報78x内の全てのパス名及びWWUIDの組に着目したかどうかを判定する(ステップ255)。
そして、第1管理情報78x内の全てのパス名及びWWUIDの組に着目していなければ、ステップ251〜254の処理を繰り返す。
また、第1管理情報78x内の全てのパス名及びWWUIDの組に着目していれば、第1管理情報削除指示部27は、サーバファイルシステム77に対し、第1管理情報78xを削除するよう指示する(ステップ256)。
尚、ここでは、バックアップ装置20を、クライアントファイルシステム71yを含むコンピュータ、サーバファイルシステム77を含むコンピュータの何れからも独立した装置としたが、これらのコンピュータの何れかの内部で実現されるものとしてもよい。
[圧縮又は暗号化により重複の判定が困難だったケース]
ファイルデータを参照して重複を判定する方式では、ストレージ上で圧縮や暗号化がなされたデータの重複排除は、データの伸張や復号が必要となるため困難である。これに対し、本実施の形態では、WWUIDによりデータの同一性を保証するものなので、データの伸張や復号を行う必要がない。
図14は、このことを説明するための図である。
クライアントファイルシステム71内には、ファイル72が記憶されている。ここでは、ファイル72のデータ実体を「DataA」で表している。
また、クライアントファイルシステム71内には、拡張ディレクトリ75が記憶されている。拡張ディレクトリ75は、ファイル72のファイル名「fileA」をファイル72のWWUID「wwuidA」と対応付けて格納しており、このWWUID「wwuidA」によりファイル72に辿り着けるようになっている。
一方、サーバファイルシステム77内には、ファイル73が記憶されている。ここで、ファイル73は、ファイル72を圧縮及び/又は暗号化したファイルである。
また、サーバファイルシステム77内には、拡張ディレクトリ78が記憶されている。拡張ディレクトリ78は、ファイル73のファイル名「fileA」をファイル73のWWUID「wwuidA」と対応付けて格納しており、このWWUID「wwuidA」によりファイル73に辿り着けるようになっている。
このような状態で、ファイルシステムプログラム79は、クライアントファイルシステム71内の拡張ディレクトリ75に格納されたWWUIDと、サーバファイルシステム77内の拡張ディレクトリ78に格納されたWWUIDとが同一であることを検出する。これにより、ファイル72のデータとファイル73のデータとを比較することなく、ファイル72とファイル73とが同一であることが認識できる。
[分散ファイルシステムにおけるファイルの重複判定]
図15は、本実施の形態を分散ファイルシステムに適用した例を示したものである。
この例において、クライアントファイルシステム71及びサーバファイルシステム77は1つのファイルシステムのサブファイルシステムであるので、クライアントファイルシステム71内及びサーバファイルシステム77内のファイルには、ファイルシステムプログラム79により、一貫するWWUIDが割り振られている。
まず、ファイル72について説明する。ここでは、ファイル72のデータ実体を「DataA」で表している。
図において、ファイル72の実体は容量の都合等でクライアントファイルシステム71から消去されたと仮定する。即ち、クライアントファイルシステム71内の拡張ディレクトリ75は、ファイル72のファイル名「fileA」をファイル72のWWUID「wwuidA」と対応付けて格納しているが、WWUIDで特定されるファイル72はクライアントファイルシステム71内には存在していない。このとき、サーバファイルシステム77内の拡張ディレクトリ78は、ファイル72のファイル名「fileA」をファイル72のWWUID「wwuidA」と対応付けて格納しており、WWUIDで特定されるファイル72がサーバファイルシステム77内に存在している。従って、ファイルシステムプログラム79は、WWUIDにより、サーバファイルシステム77からファイル72の実体を容易に特定し呼び出すことができる。
次に、ファイル73について説明する。ここでは、ファイル73のデータ実体を「DataB」で表している。
図において、ファイル73の実体は、クライアントファイルシステム71とサーバファイルシステム77の両方に存在している。即ち、クライアントファイルシステム71内の拡張ディレクトリ75は、ファイル73のファイル名「fileB」をファイル73のWWUID「wwuidB」と対応付けて格納しており、WWUIDで特定されるファイル73はクライアントファイルシステム71内に存在している。また、サーバファイルシステム77内の拡張ディレクトリ78は、ファイル73のファイル名「fileB」をファイル73のWWUID「wwuidB」と対応付けて格納しており、WWUIDで特定されるファイル73はサーバファイルシステム77内に存在している。従って、ファイルシステムプログラム79は、WWUIDによりファイルの重複を容易に認識することができ、その結果、クライアントファイルシステム71からファイル73を消去できるかどうかの判定も容易になる。
[分散ファイル処理装置]
次に、以上述べたような分散ファイルシステムにおけるファイルの消去を行う分散ファイル処理装置30について具体的に説明する。尚、この分散ファイル処理装置30は、クライアントファイルシステム71を含むコンピュータ、サーバファイルシステム77を含むコンピュータの何れからも独立した装置であることを前提とする。
図16は、分散ファイル処理装置30の機能構成例を示した図である。
図示するように、分散ファイル処理装置30は、ファイル名受付部31と、WWUID受信部32と、WWUID検索部33と、Rcnt更新指示部34と、ファイル削除指示部35とを備える。
ファイル名受付部31は、消去対象ファイルのファイル名を受け付ける。
WWUID受信部32は、消去対象ファイルのWWUIDを受信する。具体的には、ファイル名受付部31が受け付けたファイル名にクライアントファイルシステム71内の拡張ディレクトリ75において対応付けられたWWUIDを受信する。本実施の形態では、クライアントコンピュータに記憶された第2のファイルの一例として、消去対象ファイルを用いており、第2のファイルに付与された第2の識別情報を取得する第2の取得部の一例として、WWUID受信部32を設けている。
WWUID検索部33は、WWUID受信部32が受信したWWUIDを、サーバファイルシステム77内の拡張ディレクトリ78から検索する。具体的には、サーバファイルシステム77内の拡張ディレクトリ78から保存対象ファイルのWWUIDを取得し、WWUID受信部32が受信したWWUIDと同じかどうかを判定する。本実施の形態では、サーバコンピュータに記憶された第1のファイルの一例として、保存対象ファイルを用いており、第1のファイルに付与された第1の識別情報を取得する第1の取得部の一例として、WWUID検索部33を設けている。また、第1の識別情報と第2の識別情報とが一致するかどうかを判定する判定部の一例として、WWUID検索部33を設けている。
Rcnt更新指示部34は、WWUID検索部33が拡張ディレクトリ78からWWUIDを見つけることができた場合には、そのWWUIDに対応するinode情報内のRcntに「1」を加算する更新処理を、サーバファイルシステム77に指示する。
ファイル削除指示部35は、WWUID検索部33が拡張ディレクトリ78からWWUIDを見つけることができた場合には、そのWWUIDに対応するinode番号で特定されるファイルを削除するようクライアントファイルシステム71に指示する。本実施の形態では、クライアントコンピュータから第2のファイルが削除されるように制御する制御部の一例として、ファイル削除指示部35を設けている。
次に、分散ファイル処理装置30の動作について説明する。
図17は、分散ファイルシステムにおけるファイルの消去を行うときの分散ファイル処理装置30の動作を示したものである。尚、この動作は、例えばクライアントファイルシステム71の容量が閾値以下になったときに行われるものとする。
分散ファイル処理装置30では、まず、ファイル名受付部31が、消去対象ファイルのファイル名を受け付ける(ステップ301)。
すると、WWUID受信部32が、ステップ301で受け付けたファイル名にクライアントファイルシステム71内の拡張ディレクトリ75で対応付けられたWWUIDを受信する(ステップ302)。
次に、WWUID検索部33が、WWUID受信部32が受信したWWUIDを取得し、サーバファイルシステム77内の拡張ディレクトリ78からこのWWUIDを検索する(ステップ303)。そして、拡張ディレクトリ78からWWUIDが見つかったかどうかを判定する(ステップ304)。
その結果、拡張ディレクトリ78からWWUIDが見つかれば、WWUIDはWWUID検索部33からRcnt更新指示部34へと渡され、Rcnt更新指示部34が、サーバファイルシステム77に対し、WWUIDに対応するinode情報内のRcntに「1」を加算するよう指示する(ステップ305)。また、WWUIDはWWUID検索部33からファイル削除指示部35へも渡され、ファイル削除指示部35が、クライアントファイルシステム71に対し、WWUIDに対応するinode番号で特定されるファイルを削除するよう指示する(ステップ306)。尚、この削除指示には、WWUIDに対応するinode情報等の管理情報の削除指示も含まれるものとする。
一方、拡張ディレクトリ78からWWUIDが見つからなければ、クライアントファイルシステム71からファイルを削除せずに処理は終了する。
尚、ここでは、分散ファイル処理装置30を、クライアントファイルシステム71を含むコンピュータ、サーバファイルシステム77を含むコンピュータの何れからも独立した装置としたが、これらのコンピュータの何れかの内部で実現されるものとしてもよい。
また、ここでは、クライアントファイルシステム71内のファイルを消去対象とし、サーバファイルシステム77内のファイルを保存対象としたが、クライアントファイルシステム71内のファイルを保存対象とし、サーバファイルシステム77内のファイルを消去対象とする構成であっても構わない。
[電子メール送信により複数ユーザが保有することになった添付ファイルの重複判定]
図18は、本実施の形態を、電子メール送信によって添付ファイルが分配されるケースに適用した例を示したものである。
この例において、電子メールは、送信側で添付ファイルを包含してから送信され、受信側のメーラプログラムによってテキスト文書が分離され可視化されるのが一般的である。本実施の形態のファイルシステムプログラムをメーラプログラムが使用することにより、電子メールの本体と添付ファイルとをWWUIDで関連付け2つのファイルとして分離して保存する。ここで、送信側と受信側とが同一のサーバファイルシステムを参照しており、そこに添付ファイルと同一のファイル実体が存在するならば、受信側では受け取った添付ファイルを容易に重複と認識することが可能となる。
以下、図18を参照して、このことを具体的に説明する。
まず、サーバファイルシステム77内には、ファイル72が記憶されている。ここでは、ファイル72のデータ実体を「DataA」で表している。
この状態で、ユーザXのクライアントファイルシステム71xからユーザYのクライアントファイルシステム71yへファイル72を電子メールの添付ファイルとして送信する場合を考える。この場合、クライアントファイルシステム71xでは、ファイル72と、ファイル72のWWUID「wwuidA」とを含む電子メールデータ81が作成される。そして、その電子メールデータ81が白抜き矢印で示すようにクライアントファイルシステム71yへ送信される。これにより、クライアントファイルシステム71yでは、通常、ファイル72が電子メールデータ81から分離されて保存される。しかしながら、本実施の形態では、受信側のメーラプログラムが、電子メールデータ81からWWUIDを取り出し、サーバファイルシステム77内の図示しない拡張ディレクトリにこのWWUIDが存在するかどうかを判定する。その結果、WWUIDが存在するので、つまり、ファイル72は重複して存在するので、クライアントファイルシステム71yからファイル72を消去してもよいと判断する。
[電子メール処理装置]
次に、以上述べたような電子メールの添付ファイルの消去を行う電子メール処理装置40について具体的に説明する。尚、この電子メール処理装置40は、クライアントファイルシステム71y内のメーラプログラムによって実現されることを前提とする。
図19は、電子メール処理装置40の機能構成例を示した図である。
図示するように、電子メール処理装置40は、電子メール受信部41と、WWUID抽出部42と、WWUID検索部43と、Rcnt更新指示部44と、ファイル削除指示部45とを備える。
電子メール受信部41は、他のコンピュータから電子メールを受信する。
WWUID抽出部42は、電子メール受信部41が受信した電子メールのデータから添付ファイルのWWUIDを受信する。本実施の形態では、電子メールに添付された第2のファイルの一例として、添付ファイルを用いており、第2のファイルに付与された第2の識別情報を取得する第2の取得部の一例として、WWUID抽出部42を設けている。
WWUID検索部43は、WWUID抽出部42が抽出したWWUIDを、サーバファイルシステム77内の拡張ディレクトリ(図示せず)から検索する。具体的には、サーバファイルシステム77内の拡張ディレクトリから添付ファイルの元となるファイルのWWUIDを取得し、WWUID抽出部42が抽出したWWUIDと同じかどうかを判定する。本実施の形態では、サーバコンピュータに記憶された第1のファイルの一例として、添付ファイルの元となるファイルを用いており、第1のファイルに付与された第1の識別情報を取得する第1の取得部の一例として、WWUID検索部43を設けている。また、第1の識別情報と第2の識別情報とが一致するかどうかを判定する判定部の一例として、WWUID検索部43を設けている。
Rcnt更新指示部44は、WWUID検索部43が拡張ディレクトリからWWUIDを見つけることができた場合には、そのWWUIDに対応するinode情報内のRcntに「1」を加算する更新処理を、サーバファイルシステム77に指示する。
ファイル削除指示部45は、WWUID検索部43が拡張ディレクトリからWWUIDを見つけることができた場合には、添付ファイルを削除するようクライアントファイルシステム71yに指示する。本実施の形態では、クライアントコンピュータに第2のファイルが保存されないように制御する制御部の一例として、ファイル削除指示部45を設けている。
次に、電子メール処理装置40の動作について説明する。
図20は、添付ファイルの消去を行うときの電子メール処理装置40の動作を示したものである。
電子メール処理装置40では、まず、電子メール受信部41が、例えばクライアントファイルシステム71xから電子メールを受信する(ステップ401)。
すると、WWUID抽出部42が、ステップ401で受信した電子メールのデータからWWUIDを取り出す(ステップ402)。尚、このとき、電子メールの添付ファイルは、クライアントファイルシステム71y内の予め決められたディレクトリの下に一時的に記憶され、添付ファイルのWWUIDに対応するinode情報が新たに生成されてそのinode情報内のRcntに「1」が設定されているものとする。
次に、WWUID検索部43が、WWUID抽出部42が取り出したWWUIDを取得し、サーバファイルシステム77内の拡張ディレクトリからこのWWUIDを検索する(ステップ403)。そして、拡張ディレクトリからWWUIDが見つかったかどうかを判定する(ステップ404)。
その結果、拡張ディレクトリからWWUIDが見つかれば、WWUIDはWWUID検索部43からRcnt更新指示部44へと渡され、Rcnt更新指示部44が、サーバファイルシステム77に対し、WWUIDに対応するinode情報内のRcntに「1」を加算するよう指示する(ステップ405)。また、WWUIDはWWUID検索部43からファイル削除指示部45へも渡され、ファイル削除指示部45が、クライアントファイルシステム71yに対し、WWUIDに対応するinode番号で特定されるファイル、つまり、一時的に記憶された添付ファイルを削除するよう指示する(ステップ406)。尚、この削除指示には、WWUIDに対応するinode情報等の管理情報の削除指示も含まれるものとする。
一方、拡張ディレクトリからWWUIDが見つからなければ、クライアントファイルシステム71yから添付ファイルを削除せずに処理は終了する。
尚、ここでは、電子メール処理装置40を、クライアントファイルシステム71y内のメーラプログラムによって実現されるものとしたが、クライアントファイルシステム71yを含むコンピュータ、サーバファイルシステム77を含むコンピュータの何れからも独立した装置としてもよい。
[元文書と変更後の文書の部分的重複の回避]
図21は、本実施の形態をDTPアプリケーションに適用した例を示したものである。
(a)に、既存のDTPアプリケーションについて示す。
既存のDTPアプリケーションは、元文書ファイル82に変更(レビューコメントの付加等を含む)が加えられた場合、元文書ファイル82の情報と変更後の情報の両方を含む変更文書ファイル83を新たに出力する。
(b)に、本実施の形態におけるDTPアプリケーションについて示す。
本実施の形態におけるDTPアプリケーションは、本実施の形態のファイルシステムプログラムを使用し、元文書ファイル82と変更文書ファイル84とをWWUIDでリンクして保持することにより、元文書ファイル82の情報が重複することを回避可能としたものである。ここで、変更文書ファイル84内のベースWWUIDは、元文書ファイル82のWWUIDであり、DTPアプリケーションによって実現される付加部が付加したものである。また、元文書ファイル82は、自身を参照するデータの数をRcntによって管理しており、図では、1つのデータが自身を参照している状態から、2つのデータが自身を参照している状態へと変化したことが示されている。このように元文書ファイル82を参照するデータの数をRcntで管理することで、元文書ファイル82にURL(Uniform Resource Locator)等を挿入するような場合とは異なり、元文書ファイル82をうっかり削除しようとしても、Rcntが「0」でない限り、ファイルシステムプログラムは元文書ファイル82の実体を消去しない。
ところで、以上の重複排除のシナリオでは、重複を判定する2つのファイルが別々のファイルシステムに存在することを前提として、2つのファイルのWWUIDをそれぞれ別々の取得部で取得するようにしたが、重複を判定する2つのファイルが同じファイルシステムに存在することを前提として、2つのファイルのWWUIDを1つの取得部で取得するようにしてもよい。
また、以上の重複排除のシナリオでは、ファイルの重複排除を、何れかのファイルを保存しない、何れかのファイルを削除する等の動作により行ったが、これには限らない。より広く捉えて、2つのファイルが重複して記憶されないようにするための何らかの動作により行うものとしてもよい。その場合、このような動作を行う機能は、ファイルシステム内に第1のファイル及び第2のファイルが重複して記憶されないように制御する制御部の一例と言うことができる。
尚、本実施の形態では、UNIX(登録商標)系ファイルシステムを前提として説明したが、UNIX(登録商標)系ファイルシステム以外のファイルシステムを前提としてもよい。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
10…ファイル管理装置、11…WWUID管理部、12…ファイル記憶部、13…管理情報記憶部、14…ファイル作成部、15…ファイル複製部、16…ファイル更新部、20…バックアップ装置、21,31…ファイル名受付部、22,32…WWUID受信部、23,33,43…WWUID検索部、24,34,44…Rcnt更新指示部、25…第2管理情報更新指示部、26…ファイル操作指示部、27…第1管理情報削除指示部、30…分散ファイル処理装置、35,45…ファイル削除指示部、40…電子メール処理装置、41…電子メール受信部、42…WWUID抽出部

Claims (10)

  1. ファイルシステム内でのファイルの重複を排除する装置であって、
    ファイル作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報を取得する取得部と、
    前記取得部により取得された前記識別情報であって第1のファイルに付与された前記識別情報である第1の識別情報と、前記取得部により取得された前記識別情報であって第2のファイルに付与された前記識別情報である第2の識別情報とが一致するかどうかを判定する判定部と、
    前記判定部により前記第1の識別情報と前記第2の識別情報とが一致すると判定された場合に、前記ファイルシステム内に前記第1のファイル及び前記第2のファイルが重複して記憶されないように制御する制御部と
    を含む、装置。
  2. 前記取得部は、
    第1の時点で前記ファイルシステム内にバックアップされた前記第1のファイルに付与された前記第1の識別情報を、当該第1の時点で前記ファイルシステム内にバックアップされたファイルを管理する第1の管理情報から取得する第1の取得部と、
    前記第1の時点以降の第2の時点で前記ファイルシステム内にバックアップされる前記第2のファイルに付与された前記第2の識別情報を取得する第2の取得部と
    を含み、
    前記制御部は、前記判定部により前記第1の識別情報と前記第2の識別情報とが一致すると判定された場合に、前記第2の時点で前記ファイルシステム内に前記第2のファイルが複製されないように制御し、前記第2の時点でバックアップされたファイルを管理する第2の管理情報に前記第2の識別情報が含まれ、当該第2の識別情報が前記第1のファイルに関連付けられるように制御する、請求項1の装置。
  3. 前記第2の識別情報が前記第1のファイルに関連付けられると、当該第1のファイルに関連付けられた識別情報が増えた旨を、当該識別情報の個数を示す個数情報に登録する第1の登録部と、
    前記第1の管理情報の削除指示に応じて、前記第1のファイルに関連付けられた識別情報が減った旨を、前記個数情報に登録する第2の登録部と、
    前記第1の管理情報の削除指示に応じて、前記第1の識別情報を削除し、前記第2の登録部による登録後に前記第1のファイルに関連付けられた識別情報がない旨が前記個数情報に登録されていれば、当該第1のファイルを更に削除する削除部と
    を更に含む、請求項2の装置。
  4. 前記取得部は、
    サーバコンピュータに記憶された前記第1のファイルに付与された前記第1の識別情報を、当該サーバコンピュータに記憶されたファイルを管理する第1の管理情報から取得する第1の取得部と、
    クライアントコンピュータに記憶された前記第2のファイルに付与された前記第2の識別情報を、当該クライアントコンピュータに記憶されたファイルを管理する第2の管理情報から取得する第2の取得部と
    を含み、
    前記制御部は、前記判定部により前記第1の識別情報と前記第2の識別情報とが一致すると判定された場合に、前記クライアントコンピュータから前記第2のファイルが削除されるように制御する、請求項1の装置。
  5. 前記取得部は、
    サーバコンピュータに記憶された前記第1のファイルに付与された前記第1の識別情報を、当該サーバコンピュータに記憶されたファイルを管理する管理情報から取得する第1の取得部と、
    クライアントコンピュータが受信した電子メールに添付された前記第2のファイルに付与された前記第2の識別情報を、当該電子メールのデータから取得する第2の取得部と
    を含み、
    前記制御部は、前記判定部により前記第1の識別情報と前記第2の識別情報とが一致すると判定された場合に、前記クライアントコンピュータに前記第2のファイルが保存されないように制御する、請求項1の装置。
  6. ファイルシステム内にファイルをバックアップする装置であって、
    第1の時点で前記ファイルシステム内にバックアップされたファイルを管理する第1の管理情報を取得する第1の取得部と、
    ファイル作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報であって、前記第1の時点以降の第2の時点で前記ファイルシステム内にバックアップされるバックアップ対象ファイルに付与された識別情報であるバックアップ対象ファイル識別情報を取得する第2の取得部と、
    前記第1の取得部により取得された前記第1の管理情報が、前記第2の取得部により取得された前記バックアップ対象ファイル識別情報を、前記第1の時点で前記ファイルシステム内にバックアップされたバックアップ済ファイルに付与された前記識別情報であるバックアップ済ファイル識別情報として含むかどうかを判定する判定部と、
    前記判定部により前記第1の管理情報が前記バックアップ対象ファイル識別情報を含むと判定された場合に、前記第2の時点で前記ファイルシステム内に前記バックアップ対象ファイルを複製せず、前記判定部により前記第1の管理情報が前記バックアップ対象ファイル識別情報を含まないと判定された場合に、前記第2の時点で前記ファイルシステム内に前記バックアップ対象ファイルを複製する複製部と、
    前記第2の時点でバックアップされたファイルを管理する第2の管理情報に、前記バックアップ対象ファイル識別情報を、当該バックアップ対象ファイル識別情報が前記バックアップ済ファイルに関連付けられるように格納する格納部と、
    前記バックアップ対象ファイル識別情報が前記バックアップ済ファイルに関連付けられると、当該バックアップ済ファイルに関連付けられた識別情報が増えた旨を、当該識別情報の個数を示す個数情報に登録する第1の登録部と、
    前記第1の管理情報の削除指示に応じて、前記バックアップ済ファイルに関連付けられた識別情報が減った旨を、前記個数情報に登録する第2の登録部と、
    前記第1の管理情報の削除指示に応じて、前記バックアップ済ファイル識別情報を削除し、前記第2の登録部による登録後に前記バックアップ済ファイルに関連付けられた識別情報がない旨が前記個数情報に登録されていれば、当該バックアップ済ファイルを更に削除する削除部と
    を含む、装置。
  7. ファイルシステム内でファイルを管理する装置であって、
    前記ファイルシステム内で新規ファイルが作成された場合に、当該新規ファイルに、識別情報を管理する識別情報管理部から取得した未使用の特定の識別情報を付与する第1の付与部と、
    前記ファイルシステム内で前記新規ファイルを複製することにより複製ファイルが生成された場合に、当該複製ファイルに、前記特定の識別情報と同一の識別情報を付与する第2の付与部と、
    前記ファイルシステム内で前記新規ファイル又は前記複製ファイルを更新することにより更新ファイルが生成された場合に、当該更新ファイルに、前記識別情報管理部から取得した前記特定の識別情報とは異なる未使用の他の識別情報を付与する第3の付与部と
    を含む、装置。
  8. 前記ファイルシステム内で特定のファイルに変更が加えられた場合に、当該特定のファイルとは別の当該変更の内容を示す他のファイルに、当該特定のファイルに付与された前記識別情報を付加する付加部を更に含む、請求項7の装置。
  9. ファイルシステム内でのファイルの重複を排除する方法であって、
    ファイル作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報であって、第1のファイルに付与された識別情報である第1の識別情報を取得するステップと、
    第2のファイルに付与された前記識別情報である第2の識別情報を取得するステップと、
    前記第1の識別情報と前記第2の識別情報とが一致するかどうかを判定するステップと、
    前記第1の識別情報と前記第2の識別情報とが一致すると判定された場合に、前記ファイルシステム内に前記第1のファイル及び前記第2のファイルが重複して記憶されないように制御するステップと
    を含む、方法。
  10. ファイルシステム内でのファイルの重複を排除する装置として、コンピュータを機能させるプログラムであって、
    前記コンピュータを、
    ファイル作成又は更新された場合には、識別情報を管理する識別情報管理部から取得された未使用の識別情報が当該ファイルに新たに付与されることにより、ファイルが他のファイルから複製された場合には当該他のファイルに付与されていた識別情報が当該ファイルに引き継がれることにより、ファイルの内容を識別可能になっている識別情報を取得する取得部と、
    前記取得部により取得された前記識別情報であって第1のファイルに付与された前記識別情報である第1の識別情報と、前記取得部により取得された前記識別情報であって第2のファイルに付与された前記識別情報である第2の識別情報とが一致するかどうかを判定する判定部と、
    前記判定部により前記第1の識別情報と前記第2の識別情報とが一致すると判定された場合に、前記ファイルシステム内に前記第1のファイル及び前記第2のファイルが重複して記憶されないように制御する制御部と
    して機能させる、プログラム。
JP2010238487A 2010-10-25 2010-10-25 ファイルの重複を排除する装置及び方法 Expired - Fee Related JP5650982B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010238487A JP5650982B2 (ja) 2010-10-25 2010-10-25 ファイルの重複を排除する装置及び方法
US13/240,042 US8812460B2 (en) 2010-10-25 2011-09-22 File deduplication in a file system
US13/534,735 US9256610B2 (en) 2010-10-25 2012-06-27 File deduplication in a file system
US15/007,322 US9710336B2 (en) 2010-10-25 2016-01-27 File deduplication in a file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010238487A JP5650982B2 (ja) 2010-10-25 2010-10-25 ファイルの重複を排除する装置及び方法

Publications (2)

Publication Number Publication Date
JP2012093827A JP2012093827A (ja) 2012-05-17
JP5650982B2 true JP5650982B2 (ja) 2015-01-07

Family

ID=45973829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010238487A Expired - Fee Related JP5650982B2 (ja) 2010-10-25 2010-10-25 ファイルの重複を排除する装置及び方法

Country Status (2)

Country Link
US (3) US8812460B2 (ja)
JP (1) JP5650982B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468138B1 (en) * 2011-12-02 2013-06-18 International Business Machines Corporation Managing redundant immutable files using deduplication in storage clouds
US9262429B2 (en) 2012-08-13 2016-02-16 Microsoft Technology Licensing, Llc De-duplicating attachments on message delivery and automated repair of attachments
WO2014087508A1 (ja) * 2012-12-05 2014-06-12 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US9195736B2 (en) 2013-08-07 2015-11-24 Red Hat, Inc. System and method for content storage
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US9003200B1 (en) * 2014-09-22 2015-04-07 Storagecraft Technology Corporation Avoiding encryption of certain blocks in a deduplication vault
US10853257B1 (en) * 2016-06-24 2020-12-01 EMC IP Holding Company LLC Zero detection within sub-track compression domains
CN108073355B (zh) * 2016-11-15 2020-03-17 杭州海康威视数字技术股份有限公司 一种数据存储和删除方法及装置
JP7452840B2 (ja) 2020-02-10 2024-03-19 Necソリューションイノベータ株式会社 情報処理方法
CN116594961B (zh) * 2023-07-19 2023-09-22 安徽华云安科技有限公司 文件处理方法、装置、设备以及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202982A (en) * 1990-03-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for the naming of database component files to avoid duplication of files
JPH08328762A (ja) * 1995-06-06 1996-12-13 Mitsubishi Electric Corp 半導体ディスク装置及びそのメモリ管理方法
JP2001057564A (ja) * 1999-08-18 2001-02-27 Sony Corp 送信装置および送信方法、受信装置および受信方法、送受信システム、並びに媒体
KR100860821B1 (ko) * 2000-02-18 2008-09-30 이엠씨 코포레이션 공통부분 요소분화 시스템에 사용하기 위한 컴퓨팅 시스템, 식별자 설정 방법 및 컴퓨터 판독가능 프로그램을 구비한 기록 매체
US7512673B2 (en) * 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
EP1244221A1 (en) 2001-03-23 2002-09-25 Sun Microsystems, Inc. Method and system for eliminating data redundancies
US7149750B2 (en) * 2001-12-19 2006-12-12 International Business Machines Corporation Method, system and program product for extracting essence from a multimedia file received in a first format, creating a metadata file in a second file format and using a unique identifier assigned to the essence to access the essence and metadata file
JP2004280283A (ja) * 2003-03-13 2004-10-07 Hitachi Ltd 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法
JP4291077B2 (ja) * 2003-07-29 2009-07-08 株式会社日立製作所 分散ストレージ装置のファイル管理方法及び分散ストレージシステム
US8229985B2 (en) * 2005-02-07 2012-07-24 Cisco Technology, Inc. Arrangement for a distributed file system having data objects mapped independent of any data object attribute
US7523146B2 (en) * 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
WO2009032710A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
JP2009116839A (ja) * 2007-10-19 2009-05-28 Hitachi Ltd コンテンツ転送システムとその方法およびホームサーバ
US7870105B2 (en) * 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US20090150477A1 (en) * 2007-12-07 2009-06-11 Brocade Communications Systems, Inc. Distributed file system optimization using native server functions
US7797279B1 (en) 2007-12-31 2010-09-14 Emc Corporation Merging of incremental data streams with prior backed-up data
JP2009237979A (ja) * 2008-03-27 2009-10-15 Hitachi Software Eng Co Ltd 情報処理装置及び方法、並びにプログラム
JP2009282604A (ja) 2008-05-20 2009-12-03 Nec Corp 重複データ排除システム、重複データ排除方法及び重複データ排除プログラム
US8468320B1 (en) * 2008-06-30 2013-06-18 Symantec Operating Corporation Scalability of data deduplication through the use of a locality table
US8131687B2 (en) 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US20100306176A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. Deduplication of files
JP5162701B2 (ja) * 2009-03-05 2013-03-13 株式会社日立ソリューションズ 統合重複排除システム、データ格納装置、及びサーバ装置

Also Published As

Publication number Publication date
US9710336B2 (en) 2017-07-18
US20160246682A1 (en) 2016-08-25
US20120102000A1 (en) 2012-04-26
JP2012093827A (ja) 2012-05-17
US8812460B2 (en) 2014-08-19
US9256610B2 (en) 2016-02-09
US20120271800A1 (en) 2012-10-25

Similar Documents

Publication Publication Date Title
JP5650982B2 (ja) ファイルの重複を排除する装置及び方法
US11080232B2 (en) Backup and restoration for a deduplicated file system
JP6309103B2 (ja) スナップショットおよびクローンの複製
JP5991699B2 (ja) 情報処理装置、情報処理システム、バックアップ方法、およびプログラム
US10162555B2 (en) Deduplicating snapshots associated with a backup operation
JP5303038B2 (ja) 重複したデータを排除するストレージシステム
US8315985B1 (en) Optimizing the de-duplication rate for a backup stream
KR102187127B1 (ko) 데이터 연관정보를 이용한 중복제거 방법 및 시스템
CN104641365B (zh) 在文件存储系统中使用检查点管理去复制的系统和方法
US8504529B1 (en) System and method for restoring data to a storage device based on a backup image
JP5697754B2 (ja) 計算機システム、ファイル管理方法及びメタデータサーバ
JP5434705B2 (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP5313600B2 (ja) ストレージシステム、及びストレージシステムの運用方法
JP2017504924A (ja) ファイルシステムのコンテンツベースの編成
JP2016524220A (ja) 効率的なデータ複製及びガベージコレクション予測
JP2008257725A (ja) バックアップ・データの一番上への実装用読込み/書込み、マルチ・バージョン管理ファイル・システム
US9002800B1 (en) Archive and backup virtualization
JP2015530629A (ja) 移行先ファイルサーバ及びファイルシステム移行方法
JP2015510174A (ja) ロケーション非依存のファイル
JP2018097450A (ja) データ処理装置,データ処理プログラムおよびデータ処理方法
US20200089576A1 (en) Method of Detecting Source Change for File Level Incremental Backup
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
US20230376385A1 (en) Reducing bandwidth during synthetic restores from a deduplication file system
US10776321B1 (en) Scalable de-duplication (dedupe) file system
US11163748B1 (en) Fingerprint backward compatibility in deduplication backup systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140509

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141028

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141114

R150 Certificate of patent or registration of utility model

Ref document number: 5650982

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees