ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除方法であって、前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、前記データを分割後の前記データ断片の構成によって記録するステップと、前記データ断片について、同一の前記データ断片が存在するか判定するステップと、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する、格納データの重複排除方法。請求項1に記載の格納データの重複排除方法であって、前記データ断片属性情報は当該データ断片について所定のハッシュ関数を使用して算出されたハッシュ値と当該データ断片の前記記憶領域における保存先情報とを含み、前記データ断片に重複データ断片が存在するかは、各データ断片について前記ハッシュ値を比較することで実行される、格納データの重複排除方法。請求項2に記載の格納データの重複排除方法であって、前記統合データ断片に含まれている複数の前記データ断片について前記保存先情報を取得し、前記統合データ断片に含まれている前記データ断片が前記保存先情報に従って、前記ストレージ装置との前記記憶領域上で連続して格納されるように再配置する、格納データの重複排除方法。請求項1に記載の格納データの重複排除方法であって、検出した前記繰り返しデータパターンの中に、同一の前記データ断片が複数含まれる場合、前記繰り返しデータパターンを分割して前記同一のデータ断片が含まれないようにする、格納データの重複排除方法。請求項1に記載の格納データの重複排除方法であって、前記繰り返しデータパターンが所定の長さに満たない場合、又は前記繰り返しデータパターンの検出数が所定値に満たない場合、該当する繰り返しデータパターンを記録しない、格納データの重複排除方法。請求項1に記載の格納データの重複排除方法であって、検出された複数の前記繰り返しデータパターンが、同一の前記データ断片を含んでいる場合、所定の規則により選択したいずれか1の前記繰り返しデータパターン以外の繰り返しデータパターンを記録しない、格納データの重複排除方法。請求項1に記載の格納データの重複排除方法であって、前記データ断片を取得して連結する際に、前記ストレージ装置に対して書き込みあるいは読み出しされる前記データの区切り位置をまたいで前記繰り返しデータパターンを認識しない、格納データの重複排除方法。請求項1に記載の格納データの重複排除方法であって、前記繰り返しデータパターンを検出する際に、すでに記録されている前記統合データ断片の長さより短い箇所に存在する前記データ断片の区切り位置は、前記繰り返しデータパターンの検出に関しては認識しないように構成されている、格納データの重複排除方法。ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除装置であって、プロセッサとメモリとを有し、それぞれが前記メモリ上で該当するプログラムを前記プロセッサが実行することにより実現される、前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するデータ分割部と、前記データを分割後の前記データ断片の構成によって記録するデータ登録部と、前記データ断片について、同一の前記データ断片が存在するか判定し、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するデータ照合部と、前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するデータ復元部と、記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するデータ解析部と、検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するデータ更新部とを有する、格納データの重複排除装置。請求項9に記載の格納データの重複排除装置であって、前記データ断片属性情報は当該データ断片について所定のハッシュ関数を使用して算出されたハッシュ値と当該データ断片の前記記憶領域における保存先情報とを含み、前記データ断片に重複データ断片が存在するかは、各データ断片について前記ハッシュ値を比較することで実行される、格納データの重複排除装置。請求項10に記載の格納データの重複排除装置であって、前記統合データ断片に含まれている複数の前記データ断片について前記保存先情報を取得し、前記統合データ断片に含まれている前記データ断片が前記保存先情報に従って、前記ストレージ装置との前記記憶領域上で連続して格納されるように再配置する、格納データの重複排除装置。請求項9に記載の格納データの重複排除装置であって、検出した前記繰り返しデータパターンの中に、同一の前記データ断片が複数含まれる場合、前記繰り返しデータパターンを分割して前記同一のデータ断片が含まれないようにする、格納データの重複排除装置。請求項9に記載の格納データの重複排除装置であって、前記繰り返しデータパターンが所定の長さに満たない場合、又は前記繰り返しデータパターンの検出数が所定値に満たない場合、該当する繰り返しデータパターンを記録しない、格納データの重複排除装置。請求項9に記載の格納データの重複排除装置であって、検出された複数の前記繰り返しデータパターンが、同一の前記データ断片を含んでいる場合、所定の規則により選択したいずれか1の前記繰り返しデータパターン以外の繰り返しデータパターンを記録しない、格納データの重複排除装置。請求項10に記載の格納データの重複排除装置であって、前記データ断片を取得して連結する際に、前記ストレージ装置に対して書き込みあるいは読み出しされる前記データの区切り位置をまたいで前記繰り返しデータパターンを認識しない、格納データの重複排除装置。請求項9に記載の格納データの重複排除装置であって、前記繰り返しデータパターンを検出する際に、すでに記録されている前記統合データ断片の長さより短い箇所に存在する前記データ断片の区切り位置は、前記繰り返しデータパターンの検出に関しては認識しないように構成されている、格納データの重複排除装置。ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するために使用される重複排除プログラムであって、前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、前記データを分割後の前記データ断片の構成によって記録するステップと、前記データ断片について、同一の前記データ断片が存在するか判定するステップと、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとをコンピュータに実行させる重複排除プログラム。上述した特許文献1には、データ内で連続するチャンクを1つの大きなチャンクにまとめることで、重複排除率を大きく低下させることなく、データ復元時のディスクアクセスの回数を減らすことができ、結果として、データ復元にかかる時間を短縮できると述べられている。また、特許文献2には、データの重複、非重複に合わせてチャンクサイズを変えることで、高い重複排除率と少ないメタデータとを両立できると述べられている。しかし、特許文献1、2の手法は、全データのチャンクのパターンを分析する処理、過去のチャンキングの履歴を参照しつつチャンキングを行う処理を、それぞれ含む。一般に、これらの処理は、非常に時間がかかる。重複排除処理は、データの定期的バックアップ処理と並行して行われることが多く、バックアップウィンドウ内に処理が終わることを求められる。毎回のバックアップ処理実行時に特許文献1、2の手法でチャンキング処理を行うことは、実際の運用においては困難な可能性がある。本発明は、上記の問題点を考慮し、ストレージシステムの実際の運用において実施可能な重複排除処理を提供し、重複排除処理後のデータから元のデータ復元に要する時間を短縮することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムを提供することを目的とする。前記の、及び他の目的を達成するための本発明の一態様は、ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除方法であって、前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、前記データを分割後の前記データ断片の構成によって記録するステップと、前記データ断片について、同一の前記データ断片が存在するか判定するステップと、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する。また、本発明の他の態様は、上記の重複排除方法を実現するための重複排除装置である。また、本発明のさらに他の態様は、コンピュータに前記の重複排除方法を実行させるための重複排除プログラムである。本発明により、ストレージシステムの実際の運用において実施可能な重複排除処理を提供し、重複排除処理後のデータから元のデータ復元に要する時間を短縮することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムを提供することができる。前記目的を達成するため、毎回のバックアップ時などに行う通常の重複排除の処理と、データ復元にかかる時間削減のために行うデータの再分析処理を分ける。その結果、短時間で終わることが求められる通常の重複排除の処理を高速に行い、サーバメンテナンス時などある程度作業時間を確保できるときに再分析処理を行うことができる。上記のデータ再分析処理を特許文献1、2で開示されている方法で行うことには、以下のような問題がある。特許文献1、2は、ともに、背景技術で述べた重複排除の3つのプロセスのうち、チャンキングに関する処理しか開示していない。そのため、データ再分析時に特許文献1、2の手法でチャンキングを行っても、メタデータを介して、通常の重複排除処理に反映することができない。また、特許文献1、2では、既に重複排除を行った後のデータに対して、メタデータを利用して、チャンキングを行う方法は開示されていない。そのため、実データを再度分析する必要がある。これらの問題に対し、データの再分析を行った後、通常の重複排除処理で利用できるメタデータを作成する。具体的には、まず、通常の重複排除の処理で生成されたチャンクの集合を分析し、重複排除率を変えずに統合できるチャンクを決定する。次に、決定したチャンクから通常の重複排除の処理で利用するメタデータを作成し、統合する前のチャンクのメタデータとともに管理する。これにより、通常の重複排除の処理において、メタデータを使った重複判定及びデータ復元が可能になる。また、通常の重複排除処理で生成されたチャンクのメタデータを用いて分析をすることで、実データを再度分析するよりも効率的に統合チャンクを決定することができる。以下、本発明を実施するための形態以下、実施形態という。について、適宜図面を参照しつつ、説明する。≪第1の実施形態≫以下、本発明の第1の実施形態について、説明する。図1は、本発明の第1実施形態を適用したストレージシステム1のシステム構成の例を示した図である。図1に示すように、本システム1は、ホストコンピュータ110、ストレージ装置120、及び重複排除装置130を含み、これらの装置はネットワーク101を介して相互に通信可能に接続されて構成される。ホストコンピュータ110は、少なくともCPUCentralProcessingUnit111、メモリ112、及びネットワークインターフェース113を備える一般的なコンピュータである。ホストコンピュータ110は、ストレージ装置120に格納されたデータを、ネットワークインターフェース113を介しメモリ112上に読み出す機能、及びメモリ112上のデータを、ネットワークインターフェース113を介しストレージ装置120に書き込む機能を備える。ホストコンピュータ110は、メモリ112の他に、ハードディスクドライブHDD、半導体ドライブSolidStateDriveSSD等の補助記憶デバイスを備えていてもよい。また、ネットワークインターフェース113は、ホストコンピュータ110が接続されるネットワーク101の種類により選定され、例えばネットワーク101がLANLocalAreaNetworkであれば、ネットワークインターフェース113としてはNICNetworkInterfaceCardが設けられる。なお、以下の説明では、データは1つ以上のファイルから構成されると仮定するが、本発明で扱うデータはそのような構成に限らず、バイナリ列として表現されるデジタルデータ一般を含むものとする。ストレージ装置120は、少なくともストレージ制御装置121、及び記憶装置123を備える。ストレージ装置120は、例えばデータをファイル単位で格納することができるファイルストレージの形式をとることができるが、ブロックストレージを含む他の形式であってもよい。ストレージ制御装置121は、ネットワークインターフェース122を備え、ホストコンピュータ110及び重複排除装置130からデータ読み出し/書き込み命令を受け付け、記憶装置123に対しデータ読み出し/書き込みを行うことができる。記憶装置123は、HDDHardDiskDrive124などの記憶媒体で構成され、ホストコンピュータ110及びあるいは重複排除装置130から書き込み命令を受けたデータを格納する。ストレージ制御装置121は、図示を省略するCPU等のプロセッサ、メモリ、及び記憶装置123との間のI/OInputOutputインターフェースとしてのディスクアダプタを備える。ストレージ制御装置121は、そのような構成に基づいて、記憶装置123の物理的記憶領域から適宜のRAIDレベルにより論理記憶領域を編成する機能、及び論理記憶領域から複数の論理ボリュームを作成してホストコンピュータ110に提供する機能等を備える。重複排除装置130は、少なくともネットワークインターフェース135、CPU131、メモリ132、補助記憶装置133、I/Oインターフェース134、及び入出力装置136を備える。重複排除装置130は、ストレージ装置120に格納されたデータを、ネットワークインターフェース135を介しメモリ132上に読み出す機能及び、及びメモリ132上のデータを、ネットワークインターフェース135を介しストレージ装置120に書き込む機能を備える。I/Oインターフェース134は、キーボード、マウス等のデータ入力デバイス、ディスプレイ、プリンタ等のデータ出力デバイスであり、コンピュータのデータ入出力機能を有する種々のデバイスを含む。なお、図1の例では重複排除装置130は、ストレージ装置120とは別個のコンピュータとして構成されているが、後述する重複排除装置130の機能をストレージ装置120内に実装するように構成してもよい。次に、図2を参照して、第1実施形態による重複排除装置130の機能の例について説明する。重複排除装置130の機能は、補助記憶装置133に格納されている、各機能を実現するためのプログラム及びデータを、CPU131がメモリ132へ読み出して実行することによって提供される。重複排除装置130は、標準重複排除機能部210とチャンク統合機能部220とを備える。標準重複排除機能210は、ストレージ装置120に格納するデータを、複数のチャンクデータ断片のシーケンスに分割し、互いに重複するチャンク重複データ断片については1つのチャンクのみについて実データをストレージ装置120に格納する機能を提供する。この標準重複排除機能部210の機能により、記憶装置123の利用可能な容量を増やすことが可能となる。チャンク統合機能部220は、標準重複排除機能部210により生成されたチャンクのシーケンス中で、繰り返し現れるチャンクのデータパターンを解析し、複数のチャンクを一つの統合チャンクとして管理することで、データ再構築に要するコストを削減する機能を提供する。以下、各機能を実現するための手段について具体的に説明する。標準重複排除機能部210は、少なくともチャンキングモジュール211データ分割部、チャンク照合モジュール212データ照合部、チャンク登録モジュール213データ登録部、ファイル復元モジュール214データ復元部、チャンク管理テーブル216、及びファイル管理テーブル215を備えて構成される。まず、上記した標準重複排除機能部210に設けられている各部の概要を説明する。チャンキングモジュール211は、ストレージ装置120に格納されたデータを読み込み、複数のチャンクに分割する機能を有する。チャンキングモジュール211による処理の詳細は、図8を参照して後述する。チャンク照合モジュール212は、チャンキングモジュール211が生成した各チャンクについて、データが重複するチャンクが存在するかを判定する。チャンキングモジュール211による処理の詳細は、図9を参照して後述する。チャンク登録モジュール213は、チャンキングモジュール211が生成した各チャンクから、チャンクID301、ハッシュ値302、及びチャンクサイズ303を含む、各チャンクを管理するために用いられる属性情報を生成し、ファイル管理テーブル215及びチャンク管理テーブル216に、それらの属性情報を登録する機能を有する。さらに、チャンク登録モジュール213は、チャンク照合モジュール212が重複するチャンクが存在しないと判定したチャンクのみの実データを、ストレージ装置120に格納する機能をも有する。チャンク登録モジュール213による処理の詳細は、図10を参照して後述する。ファイル復元モジュール214は、ファイル管理テーブル215及びチャンク管理テーブル216が格納する属性情報と、ストレージ装置120に格納された、チャンクに対応するデータとを用いて、チャンキングモジュール213によってチャンクに分割される前のデータを復元する機能を有する。ファイル復元モジュール214による処理の詳細は、図11を参照して後述する。チャンク管理テーブル216は、チャンキングモジュール213が生成したチャンクの属性情報を保持し、チャンク照合モジュール212による重複チャンクの判定処理、及びファイル復元モジュール214がチャンクからデータを復元する際に参照される。チャンク管理テーブル216の詳細は、図3を参照して後述する。ファイル管理テーブル215は、各ファイルを構成しているチャンクのシーケンスに関する情報を保持しており、ホストコンピュータ110からのデータ読み出し命令に従って、読み出し対象データファイルを復元する際に参照される。ファイル管理テーブル215の詳細は、図4を参照して後述する。以上説明した標準重複排除機能部210の機能により、ホストコンピュータ110から書き込まれるもとのデータは、互いに重複しない複数のチャンクの集合と、ファイル管理テーブル215及びチャンク管理テーブル216が保持する書くチャンクの属性情報とに変換される。本願では、この一連の変換処理を重複排除処理と呼び、互いに重複しない複数のチャンクの集合を重複排除されたデータと、ファイル管理テーブル215及びチャンク管理テーブル216が保持する各チャンクの属性情報をメタデータと呼ぶこととする。重複排除されたデータ及びメタデータからもとのデータを復元することが可能であるから、重複排除処理を行って重複するチャンクに関する1つの実データを格納した後は、ホストコンピュータ110から受信したもとのデータを保持しておく必要はない。そのため、重複する複数のチャンクが存在する場合には、もとのデータをそのまま格納する場合と比較して、重複排除処理されたデータのサイズは小さくなる。次に、チャンク統合機能部220について説明する。チャンク統合機能部220は、少なくともチャンクパターン解析モジュール221データ解析部、チャンク管理テーブル更新モジュール222データ更新部、チャンクパターン情報テーブル223、及び統合チャンク情報テーブル224を備えて構成される。チャンクパターン解析モジュール221は、ファイル管理テーブル215が管理する各ファイルについてのチャンクのシーケンスを分析し、再構築コスト削減のために統合すべきチャンクを決定する機能を有する。チャンクパターン解析モジュール221による処理の詳細は、図12を参照して後述する。チャンク管理テーブル更新モジュール222は、チャンクパターン解析モジュール221が決定した統合すべきチャンクに応じて、ストレージ装置120に格納されたデータを再配置し、そのデータ再配置結果に従ってファイル管理テーブル215及びチャンク管理テーブル216に保持されている情報を更新する機能を有する。チャンク管理テーブル更新モジュール222による処理の詳細は、図13を参照して後述する。チャンクパターン情報テーブル223は、チャンクパターン解析モジュール221が、統合すべきチャンクを決定するために利用する情報を保持する。チャンクパターン情報テーブル223の構成の詳細は、図6を参照して後述する。統合チャンク情報テーブル224は、チャンクパターン解析モジュール221が統合すべきと判定したチャンクに関する情報を保持している。統合チャンク情報テーブル224の構成の詳細は、図7を参照して後述する。重複排除装置130にはまた、オペレーティングシステムOperatingSystemOS230及びデータI/O部240が実装されている。OS230は、重複排除装置130のコンピュータとしての基本的なデータ処理機能を有する基本ソフトウェアであり、一般的なコンピュータのOSとして利用可能なものを適宜採用することができる。データI/O部240は、OS230の制御下で、標準重複排除機能部210あるいはチャンク統合機能部220に備えられる各モジュールと、ネットワークインターフェース135を介した外部とのデータI/O処理を管理する。次に、図3A、図3Bを参照して、第1の実施形態に係るチャンク管理テーブル216の例について説明する。なお、以下の各テーブルの説明については、各テーブルの構成要素に付す符号を分かりやすくするために、図2において使用した符号とは別個の符号を付して説明する。例えば、チャンク管理テーブル216の単体について説明する場合には、チャンク管理テーブル300の符号を用いることとし、必要に応じてチャンク管理テーブル300216と表示する。図3Aは、重複排除装置130の標準重複排除機能部210が、データの重複排除処理を行った後のファイル管理テーブル215の状態の例を表す。図3Bは、重複排除装置130のチャンク統合機能部220が、チャンクID301が1、2、3で特定されるチャンクを統合し、チャンクID301が9の新たなチャンクを生成しチャンク管理テーブル216に登録した後の状態を表す。チャンク統合処理については後述する。図3A、図3Bに例示するチャンク管理テーブル300は、チャンクID301、ハッシュ値302、チャンクサイズ303、重複数304、及び保存先306の各項目を含む。チャンクID301は、各チャンクを一意に識別するためのIDであり、チャンク登録モジュール213がチャンク管理テーブル216に新たなチャンクの属性情報を追加する際、他のチャンクID301と同じにならないように、チャンク登録モジュール213が各チャンクに割り当てる。ハッシュ値302は、各チャンクに含まれているデータをハッシュ関数に入力して得られる出力値を格納している。ハッシュ関数としては、例えばSHA-1などを利用することができる。なお、ここで、各チャンクについて算出したハッシュ値302を、チャンクID301として利用してもよい。ただし、その場合、異なるチャンクに対しハッシュ値302が同一の値となった場合は、同一ハッシュ値302を有する複数のチャンクを互いに区別する識別子を追加するものとする。チャンクサイズ303は、各チャンクのデータとしてのサイズを表し、図3A、図3Bの例ではキロバイト単位で表示している。重複数304は、重複排除処理を実行する前のデータ中に、対応するチャンクID301又はハッシュ値302によって特定されるチャンクが何回出現したかを表す。保存先305は、対応するチャンクID301又はハッシュ値302によって特定されるチャンクが保存されている記憶装置123上の位置を表し、例えば記憶装置123が提供する論理記憶領域上のブロックアドレス等として記録される。保存先305は、重複排除装置130が記憶装置123上にあるチャンクのデータを取得する際に利用される。ファイル復元モジュール214は、チャンク管理テーブル300に保持されている保存先305とチャンクサイズ303とを参照することで、読み出し対象であるファイルを構成するチャンクを記憶装置123上から読み込むことができる。次に、図4を参照して、チャンクの統合処理が実行された場合の、記憶装置123上のデータの再配置について説明する。図4aは、チャンク統合機能部220がチャンクの再配置を行う前における、記憶装置123上に格納されているチャンクの例を表す。図4aの例では、チャンクID301が1、2、3のチャンクが、保存先305がL1、L2、L3で示される不連続な位置にそれぞれ保存されている。これに対し、図4bは、チャンク統合機能部220が、チャンクID301が1、2、3で特定されるチャンクを統合してチャンクID301が9のチャンクを生成し、ディスク上のチャンクを再配置した後の状態の例を表す。図4bでは、チャンクID301が9で特定される新たなチャンクとして、もとの3つのチャンクが連続する位置に保存されている。記憶装置123の論理記憶領域においてこのようなデータ配置にすることで、チャンクID301が9で特定されるチャンクを取得する際、重複排除装置130から記憶装置123上へのアクセス回数は、データ再配置前の3回から1回で済むことになる。次に、図5A、図5Bを参照して、ファイル管理テーブル500215について説明する。図5A、図5Bは、それぞれファイル管理テーブル500の構成例を示しており、図5Aはチャンク統合処理前の状態を、図5Bはチャンク統合処理後の状態を例示している。ファイル管理テーブル500は、ファイル名501、ファイルサイズ502、チャンク数503、及び構成チャンクID505の各項目を含む。ファイル名501は、各ファイルを一意に識別する識別子を表す。ファイルサイズ502は、各ファイルのサイズを、例えばキロバイト単位で表す。チャンク数503は、各ファイルを構成するチャンクの数を表す。構成チャンクID505は、各ファイルを構成するチャンクのシーケンスを、チャンクID301の並びとして表す。ホストコンピュータ110からファイルの読み出し命令を受領した場合、重複排除装置130は、このファイル管理テーブル500において記録されている読み出し対象ファイルのファイル名501と、それに対応して記録されている構成チャンクID505とを取得することにより、記憶装置123に格納されているチャンクから読み出し対象ファイルを復元することができる。図5Aの例では、ファイル名501がsample1txtで特定されるファイルは、構成チャンクID505に記録されている10個のチャンクから構成される。構成チャンクID505に記録されているように、各チャンクのIDは1-2-3-4-1-2-3-5-6-1であり、この順番でチャンクが並んでいる。一方、チャンク統合処理後の状態を表している図5Bでは、ファイル名501がsample1txtのファイルは6個のチャンクから構成されている。これは、図3Bに示したように、チャンクID301が1-2-3で構成される新たなチャンクをチャンクID301が9のチャンクと定義したためである。したがって、図5Bにおいては、ファイル名sample1txtを構成している各チャンクのIDの配列は、9-4-9-5-6-1となる。次に、図6A、図6Bを参照して、チャンクパターン情報テーブル600223について説明する。図6Aは後述する繰り返しチャンクパターン検出処理後のチャンクパターン情報テーブル600の構成例を、図6Bは同一チャンクを有するパターンを分割した後のチャンクパターン情報テーブル600の構成例を示している。チャンクパターン情報テーブル223は、チャンクパターン601、長さ602、出現数603、及び出現位置604の各項目を含む。チャンクパターン601は、記憶装置123が提供する論理記憶領域に格納される一連のチャンクシーケンス内に繰り返し現れるパターンを、チャンクID301の並びとして表している。長さ602は、チャンクパターン601を構成するチャンクの個数を表す。出現数603は、チャンクパターン601がチャンクシーケンス内で何回出現するかを表す。出現位置604は、記憶装置123が提供する論理記憶領域に格納される一連のデジタルデータシーケンス内のどの位置に、チャンクパターン601が出現するかを、論理記憶領域内のブロックアドレス等を用いて表す。例えば、図6Aでは、チャンクID301が1-2-3で表されるチャンクパターン601が、デジタルデータシーケンスの先頭から数えて、1番目、100番目、212番目に出現することを表している。チャンクパターン解析モジュール221は、統合するチャンクを決定するために、チャンクパターン情報テーブル223を動的に更新する。チャンクパターン解析モジュール221によるチャンクパターン解析処理の詳細は、図12を参照して後述する。次に、図7を参照して、統合チャンク情報テーブル700224について説明する。図7は、統合チャンク情報テーブル700の構成例を示している。統合チャンク情報テーブル700は、統合チャンクID701、サブチャンクID702、出現数703、及び更新日時704の各項目を含む。統合チャンクID701は、チャンクパターン解析モジュール221が統合すべきと決定したチャンクパターン601に対して、チャンクパターン解析モジュール221が新たに割り当てたチャンクID301である。サブチャンクID702は、統合されたチャンクを構成する、より小さなチャンク以下サブチャンクと呼ぶ。を表すチャンクID301である。出現数703は、統合したチャンクが記憶装置123の論理記憶領域上にあるチャンクのシーケンス内で何回出現するかを表す。図7の例では、サブチャンク1-2-3を統合して統合チャンクを生成し、新たなチャンクID301として9を割り当てている。更新日時704は、チャンクパターン解析モジュール221が統合したチャンクを登録した日時を表す。次に、図8を参照して、チャンキングモジュール211による処理の流れを説明する。図8は、チャンキングモジュール211によって実行されるデータ処理フローの一例を示している。チャンキングモジュール211が処理を開始することで、重複排除装置130の標準重複排除機能部210による一連の重複排除処理が開始される。重複排除処理の開始のタイミングを決定するには、大別して2つの方式がある。1つ目は、ホストコンピュータ110がストレージ装置120へデータを送信したタイミングで重複排除処理を行う方式である。この場合は、ストレージ制御装置121が記憶装置123にデータを書き込む前に、重複排除装置130がネットワークインターフェース135を介してデータを受信し、重複排除処理を行った後記憶装置123に、チャンクに分割したデータを書き込む。この1つ目の方式は、インライン方式と呼ばれる。2つ目は、ホストコンピュータ110がストレージ装置120へ送信したデータを、ストレージ制御装置121が記憶装置123にデータを書き込んだ後に重複排除処理を行う方式である。この場合は、重複排除装置130が、記憶装置123上のデータを読み込み、重複排除処理を行った後、再び記憶装置123に重複排除処理されたデータを書き込む。この2つ目の方式はポストプロセス方式と呼ばれる。ポストプロセス方式の場合、重複排除装置130による重複排除処理は、例えば記憶装置123に格納されたデータのバックアップ処理等のタイミングに合わせて、毎週決められた時刻などに開始される。以下では、説明の便宜上、ポストプロセス方式を想定して説明するが、重複排除処理の開始タイミングと重複排除装置130のデータ読み込み先を変更するだけで、インライン方式にも本発明は適用可能である。図8に戻ると、S801符号Sはステップを表す。以下本明細書中で同じ。において、チャンキングモジュール211は新規データを読み込む。ここで、新規データとは、ストレージ装置120が格納するデータのうち、標準重複排除機能部210がまだ重複排除を行っていないデータを指す。ストレージ装置120における新規データの識別は、例えば記憶装置123の論理記憶領域のアドレスに対してビットマップで、あるいは受信したファイル単位で重複排除処理を実施済みか否か記録しておくことで行うことができる。チャンキングモジュール211は、新規データを読み込んだ後S802の処理に進む。S802において、チャンキングモジュール211は、S801で読み込んだデータをチャンクに分割する。チャンクへの分割方式には、大別して、1KB単位など固定のデータサイズで分割する固定長方式と、デジタルデータシーケンス中に特定のバイトパターンが現れた場合にその箇所を分割位置とする可変長方式とがある。固定長方式のチャンキングについては、例えば以下の文献で説明されている。SQuinlanandSDorwardVentianewapproachtoarchivalstorageTheFirstUSENIXconferenceonFileandStorageTechnologiesJanuary2002可変長方式のチャンキングについては、例えば以下の文献で説明されている。AMuthitacharoenBChenandDMazieresAlowbandwidthnetworkfilesystemThe18thACMSymposiumonOperatingSystemsPrinciplesBanffAlbertaCanadaOctober2001BZhuKLiandHPattersonAvoidingthediskbottleneckintheDataDomaindeduplicationfilesystemThe6thUSENIXConferenceonFileandStorageTechnologiesFebruary2008本実施形態では、図4で例示したように、各々のチャンクサイズ303が異なる、すなわち可変長方式のチャンキングを行うものとして説明しているが、本発明は、分割方式によらず適用可能である。チャンキングモジュール211は、適宜の分割方式によってチャンクの分割位置を決定した後、S803の処理に進む。S803において、チャンキングモジュール211は、S802で決定したチャンクの情報をチャンク照合モジュール212に送信する。チャンキングモジュール211は、このチャンクの情報に、新規データとチャンクへの分割位置を表すアドレス等の情報を含める。次に、図9を参照して、チャンク照合モジュール212の処理の流れについて説明する。図9は、本実施形態のチャンク照合モジュール212が実行するデータ処理フローの一例である。まず、S901において、チャンク照合モジュール212は、チャンキングモジュール211が送信したチャンク情報を受信する。チャンク照合モジュール212は、チャンク情報を受信した後S902の処理に進む。S902において、チャンク照合モジュール212は、S802で決定した各チャンクがチャンク管理テーブル300にすでに存在するかを確認する。この確認は、例えば次のように行う。まず、チャンク照合モジュール212は、チャンク管理テーブル300において各チャンクについて記録されているハッシュ値302を求めるのに用いたハッシュ関数と同一のハッシュ関数を用いて、受信した各チャンクのハッシュ値を計算する。次に、算出された各ハッシュ値に基づいて、チャンク管理テーブル300に記録されている各チャンクのハッシュ値302との照合を行い、同一のハッシュ値を持つチャンクが存在するかを確認する。このチャンク照合処理は、例えば以下の文献で説明しているように、ブルームフィルタBloomFilterを用いて行ってもよい。BZhuKLiandHPattersonAvoidingthediskbottleneckintheDataDomaindeduplicationfilesystemThe6thUSENIXConferenceonFileandStorageTechnologiesFebruary2008理想的なハッシュ関数を用いる場合、異なるチャンクについてハッシュ値が同一になるハッシュ値の衝突が起こる可能性は限りなく小さい。そのため、チャンクの同一性をそれらについて算出したハッシュ値の同一性で判断することができる。よりチャンク照合処理の精度を高めるために、ハッシュ値の衝突が起こる可能性を考慮する場合には、同一のハッシュ値を持つと判定されたチャンクに対しては、記憶装置123が格納するチャンクのバイナリデータを直接比較することで、正しくチャンクの同一性を判定することができる。以上のように、受信した各チャンクがチャンク管理テーブル216に存在するかを確認した後、チャンク照合モジュール212はS903の処理に進む。S903において、チャンク照合モジュール212は、S902で照合した結果をチャンク登録モジュール213へ送信して処理を終了する。次に、図10を参照して、チャンク登録モジュール213の処理の流れを説明する。図10は、チャンク登録モジュール213により実行されるデータ処理フローの一例を示している。S1001において、チャンク登録モジュール213は、S903でチャンク照合モジュールが送信した照合結果を受信する。照合結果は、受信したチャンクと同一のチャンクが既にチャンク管理テーブル300に格納されているかの情報を含む。チャンク登録モジュール213は、各チャンクについての照合結果を受信した後、各チャンクを対象にS1002以下の処理を行う。S1002において、チャンク登録モジュール213は、対象チャンクがチャンク管理テーブル300に存在するかを判定する。判定は、S902においてチャンク照合モジュール212が確認した結果をもとに行われる。対象チャンクがチャンク管理テーブル216に存在する場合は、記憶装置123内にすでに同一チャンクが存在するので、対象チャンクは重複するチャンクと呼ばれる。チャンク登録モジュール213は、対象チャンクが重複すると判定した場合S1002、Yes、S1005の処理に進む。対象チャンクが重複しないと判定した場合はS1002、No、チャンク登録モジュール213は、S1003の処理に進む。S1003において、チャンク登録モジュール213は、対象チャンクのデータを記憶装置123に保存する。このとき、対象チャンクごとに記憶装置123に保存せず、一時的にメモリ132に保存しておき、他の重複しないチャンクと合わせて一度に記憶装置123へ保存する方式をとってもよい。記憶装置123あるいはメモリ132に保存した後、チャンク登録モジュール213は、S1004の処理に進む。S1004において、チャンク登録モジュール213は、チャンク管理テーブル300に、対象チャンクの属性情報を登録する。チャンク登録モジュール213は、チャンクID301には、既存のチャンクID301と同一にならない値あるいは符号を割り当てる。ハッシュ値302には、S902において計算した値を登録する。チャンクサイズ303には、対象チャンクのサイズを計算して登録する。重複数304には、他に重複するチャンクは存在しないため数値1を登録する。保存先305には、S1003でチャンクを保存した場所を表す情報を登録する。チャンク登録モジュール213は、以上のようにチャンク管理テーブル300に各チャンクの属性情報を登録した後、S1006の処理に進む。一方、S1005において、チャンク登録モジュール213は、チャンク管理テーブル300内にすでに登録されている対象チャンクと重複するチャンクの属性情報を更新する。この場合、チャンク登録モジュール213は、該当するチャンクについて記録されている重複数304の値を1つ増加させる。チャンク管理テーブル300の属性情報を更新した後、チャンク登録モジュール213はS1006の処理に進む。S1006において、チャンク登録モジュール213は、ファイル管理テーブル500に、処理した新規データ新規ファイルの情報を追加する。すなわち、チャンク登録モジュール213は、その新規データに含まれる各ファイルについて、ファイル名501、ファイルサイズ502、チャンク数503、及び構成チャンクID505を、ファイル管理テーブル500に登録する。次に、図11を参照して、ファイル復元モジュール214の処理の流れについて説明する。図11は、本実施形態のファイル復元モジュール214が実行するデータ処理フローの一例を示している。ファイル復元モジュール214は、ホストコンピュータ110がストレージ装置120へデータ読み込み命令を送信し、このデータ読み込み命令を重複排除装置130の標準重複排除機能部210がネットワークインターフェース135を介して受信したタイミングで処理を開始する。重複排除されて記憶装置123に格納されているデータは、もとのデータと同一ではないので、データ読み込み命令を受け付けた場合、重複排除装置130は、重複排除されたデータをもとのデータファイルに戻す必要がある。本明細書では、この処理をデータの復元と呼ぶ。データの復元は、記憶装置123が格納する全部あるいは一部のデータに対して行われる。以下では、1つのファイルを復元する処理を説明するが、一般のデータの場合にも、そのデータを複数のファイルに分割してファイルごとにチャンキングを行い、データ復元にあたっては分割したファイルごとに同様の処理を行うことでデータを復元できる。まず、S1101において、ファイル復元モジュール214は、データ読み込み命令に含まれている復元対象のファイル名501をもとにファイル管理テーブル500を検索する。復元対象のファイル名を有するファイルがファイル管理テーブル500に記録されていると判定した場合S1101、Yes、ファイル復元モジュール214は、S1103において該当ファイルの構成チャンクID505を取得した後S1104の処理に進む。該当するファイル名501によるファイルのエントリがファイル管理テーブル500にないと判定した場合S1101、No、ファイル復元モジュール214は、S1102においてエラーメッセージを出すなどして処理を終了する。一方、S1104において、ファイル復元モジュール214は、ファイルを構成するチャンクのデータを記憶装置123から取得する。具体的には、S1103で取得した構成チャンクID505に含まれるチャンクID301ごとに以下の処理を行う。まず、チャンクID301をもとに、チャンク管理テーブル300を検索し、該当チャンクの保存先305を取得する。次に取得した保存先305をもとに、記憶装置123からチャンクのデータを取得する。取得したチャンクのデータは、一時的にメモリ132に保存する。構成チャンクID505に含まれるすべてのチャンクID301に対して、上記の処理を行った後、取得した各チャンクのデータを構成チャンクID505の順番に連結する。その後、S1105に進む。S1105において、ファイル復元モジュール214は、S1104で連結したデータを、ネットワークインターフェース135を介して、ホストコンピュータ110へ送信し、処理を終了する。次に、図12を参照して、チャンクパターン解析モジュール221の処理の流れについて説明する。図12は、本実施形態のチャンクパターン解析モジュール221が実行するデータ処理フローの一例を示している。チャンクパターン解析モジュール221は、重複排除装置130のOS230からのタイマー起動により週一回など定期的に、あるいは管理者の手動により開始されるように構成することができる。まず、S1201において、チャンクパターン解析モジュール221は、ファイル管理テーブル500に含まれる構成チャンクID505を読み込む。このとき、チャンクパターン解析モジュール221は、ファイル管理テーブル500に含まれるすべてのファイルを読み込み対象にしてもよいし、一部のファイルを対象にしてもよい。構成チャンクID505を読み込んだ後、チャンクパターン解析モジュール221は、S1202の処理に進む。S1202において、チャンクパターン解析モジュール221は、S1201で読み込んだ構成チャンクID505に含まれるチャンクID301のうち、統合チャンクであるチャンクID301をサブチャンクIDに置き換える。この処理は、チャンクパターン解析モジュール221が、統合チャンク情報テーブル700を参照し、読み込んだチャンクID301が統合チャンクID701に登録されているかを確認することで行う。例えば、S1201で読み込んだチャンクID301に9が含まれている場合、チャンクパターン解析モジュール221は、統合チャンク情報テーブル700を参照し、サブチャンクID1-2-3で置換え、S1203の処理に進む。次に、S1203において、チャンクパターン解析モジュール221は、図6Aに示すチャンクパターン情報テーブル600を作成する。これは、以下の処理で実現する。まず、チャンクパターン解析モジュール221は、S1202でサブチャンクIDへの書き換えを行った後の構成チャンクID505の集合を連結して一つの文字列とする。構成チャンクID505を連結する際、チャンクパターン解析モジュール221は、構成チャンクID505の間のファイルの区切りとなる位置に、そのファイルの区切りを示す識別子を挿入する。この識別子には、チャンクID301及び他のファイル間の区切りを示す識別子と異なる値が割り当てられる。例えば、3つのファイルを構成する構成チャンクID5051-2-3-4-1-2-3-5-6-1、7-8-4-2-5、及び3-2を連結する場合、チャンクパターン解析モジュール221は、ファイルの区切り位置に識別子、を挿入して1-2-3-4-1-2-3-5-6-1--7-8-4-2-5―-3-2とする。このようにして、チャンクID301及びファイル区切り識別子からなる1つの文字列が生成される。次に、この生成した文字列の中で、互いに一致し、直前及び直後の文字が異なる部分文字列を検索する。このような文字列を、本明細書では繰り返しパターンと定義する。例えば、前記の文字列1-2-3-4-1-2-3-5-6-1--7-8-4-2-5―-3-2では、1-2-3が繰り返しパターンとして抽出される。なお、部分文字列1-2も上記の文字列中に2回現れるが、直後の文字が同じ3なので、繰り返しパターンには該当しない。このような文字列に対する操作は、SuffixTree、SuffixArrayと呼ばれるデータ構造を利用することで効率的に行えることが知られている。繰り返しパターン検索の詳細は、例えば、以下の文献で説明されている。GusfieldDan1997AlgorithmsonStringsTreesandSequencesComputerScienceandComputationalBiologyUSACambridgeUniversityPressp143このようにして、チャンクパターン解析モジュール221は、部分文字列検索対象となる、構成チャンクID505を連結してなる文字列について、すべての繰り返しパターンを検索する。さらに、チャンクパターン解析モジュール221は、各繰り返しパターンの長さ602、出現数603、及び出現位置604を取得し、チャンクパターン情報テーブル600に登録する。以上がチャンクパターン情報テーブル600作成の処理である。なお、上記の処理では、読み込んだすべての構成チャンクID505を対象に繰り返しパターン検索を実行したが、あらかじめ重複しているチャンクのみを対象に同様の処理を行うことで、検索に必要なメモリの削減及び検索速度の向上を実現することができる。各チャンクが重複しているかどうかの判定は、チャンク管理テーブル500を参照し、各チャンクID301に対応する重複数503が2以上であるかを確認することで行うことができる。チャンクパターン解析モジュール221は、チャンクパターン情報テーブル223を作成した後、S1204の処理へ進む。S1204において、チャンクパターン解析モジュール221は、チャンクパターン情報テーブル223に含まれるチャンクパターンのうち、内部に同一チャンクを含むチャンクパターンを複数のチャンクパターンに分割する。例えば、図6Aの3行目のチャンクパターン1-2-3-1-5-6は、その内部に同一チャンク1を持つ。そこで、図6B上表のように、内部に同一チャンクを持たないチャンクパターンである1-2-3と1-5-6とに分割する。一般に、この分割は、一意ではないが、なるべく分割後のチャンクが大きくなるよう分割を採用する。この分割の結果、チャンクパターン情報テーブル223内に同一のチャンクパターン601が生じることがある。その場合は、同一のチャンクパターン601を一つのエントリにまとめる。その際、出現数603はそれぞれの出現数603の和に、出現位置604はそれぞれの出現位置604の連結に書き換える。例えば図6B上表では、チャンクパターン1-2-3が2つ存在しているので、図6B下表のように、1つのエントリにまとめることができる。内部に同一チャンクを持つチャンクパターンを分割した後、チャンクパターン解析モジュール221は、S1205の処理に進む。次に、S1205において、チャンクパターン解析モジュール221は、チャンクパターン601についてのポリシを満たさないチャンクパターンをチャンクパターン情報テーブル600から除外する。ここで、チャンクパターンについてのポリシは、チャンクパターン601の最小長さ、最小出現数などを含み、これらの値は、管理者などがチャンク統合機能部220にパラメータ記憶領域を用意して予め設定しておくものとする。一般に、チャンクパターン601の長さ602は長いほど、出現数603が多いほど、チャンクを統合した場合の効果が高い。よって、チャンクパターンの長さ602の最小値、最小出現数603をポリシに設定することで、チャンク統合の効果が高い場合のみ統合チャンクを生成するように構成することができる。また、ポリシとして、チャンクパターン601の長さ602の最大値、最大出現数603などを設定してもよい。チャンクパターン解析モジュール221は、上記設定されたポリシに応じてチャンクパターン601のエントリをチャンクパターン情報テーブル600から除外した後、S1206の処理に進む。S1206において、チャンクパターン解析モジュール221は、他のチャンクパターン601と同一のチャンクを含むチャンクパターン601を除外する。これは、異なる統合チャンク内に含まれる重複するチャンクの格納を行わないようにして、重複排除効率をより一層高めるための処理である。例えば、図6B下表において、チャンクパターン1-2-3と1-5-6とは同一のチャンク1を含む。よって、どちらかをチャンクパターン情報テーブル600から除外する。どちらのチャンクパターンを除外するかは、予め設定したルールに従い決定することができる。このルールは、例えば、出現数603が低いほうを除外、長さ602が小さいほうを除外というように設定することができる。チャンクパターン解析モジュール221は、同一チャンクを含むチャンクパターン601のエントリをチャンクパターン情報テーブル600から除外した後、S1207の処理に進む。S1207において、チャンクパターン解析モジュール221は、統合チャンク情報テーブル700を更新する。チャンクパターン解析モジュール221は、S1206の処理を実行後のチャンクパターン情報テーブル600に含まれるチャンクパターン601を統合するチャンクとして決定し、各チャンクパターン601に関する情報を統合チャンク情報テーブル700に新規登録する。その際、チャンクパターン解析モジュール221は、各チャンクパターン601に新たなチャンクID301を割り当て、統合チャンクID701に登録する。また、各統合チャンクID701で特定されるチャンクパターンを構成するチャンクID301をサブチャンクID702に、当該チャンクパターンの出現数を出現数703に、統合チャンクID701の新規登録を行った日時を更新日時704にそれぞれ登録する。以上説明したチャンクパターン解析処理によれば、ストレージ装置120への格納データをいったん分割して生成したチャンクを、より長い統合チャンクとして再構成することができる。ので、ストレージ装置120の格納効率を向上させることができ、またストレージ装置120からのデータの読み出し速度を向上させることができる。次に、図13を参照して、チャンク管理テーブル更新モジュール222の処理の流れを説明する。図13は、チャンク管理テーブル更新モジュール222が実行するデータ処理フローの一例を示している。チャンク管理テーブル更新モジュール222は、チャンクパターン解析モジュール221の処理が終わった直後、または、しばらく時間が経過した後に処理を開始させることができる。S1301において、チャンク管理テーブル更新モジュール222は、記憶装置123上のデータの再配置を行う。この処理は、統合チャンク情報テーブル700に含まれる統合チャンクID701に対応するエントリごとに以下の処理を行うことで実現する。まず、チャンク管理テーブル更新モジュール222は、統合チャンクに含まれるサブチャンクに対し、チャンク管理テーブル300を参照し、各サブチャンクのデータ保存先305を取得する。次に、チャンク管理テーブル更新モジュール222は、記憶装置123から各サブチャンクのデータを取得し、連結してメモリ132に一時的に保存する。次に、チャンク管理テーブル更新モジュール222は、連結したサブチャンクのデータを新たなチャンクとして、記憶装置123に書き込む。このとき、チャンク管理テーブル更新モジュール222は、書き込んだ位置を内部で保持しておく。最後に、チャンク管理テーブル更新モジュール222は、記憶装置123上のもとのサブチャンクのデータを消去する。チャンク管理テーブル更新モジュール222は、以上のデータ再配置処理を行った後、S1302の処理に進む。S1302において、チャンク管理テーブル更新モジュール222は、統合チャンクの属性情報をチャンク管理テーブル300に追加する。例として、図4Bに、統合チャンク9を新たにチャンク管理テーブル300に追加した後の状態を示している。ハッシュ値302には、登録する統合チャンクのデータに対して所定のハッシュ関数を用いて計算した値を登録する。チャンクサイズ303には、統合チャンク情報テーブル700の出現数703の値を登録する。保存先305には、S1301において、統合チャンクのデータを記憶装置123に書き込んだ位置を登録する。統合チャンクを追加した後、チャンク管理テーブル更新モジュール222は、統合チャンクに含まれるサブチャンクの保存先305を変更する。サブチャンクの保存先305は、統合チャンクの保存先305、統合チャンクの中のサブチャンクの順序、及び統合チャンクを構成するサブチャンクのサイズをもとに決定することができる。例えば、チャンク3は、チャンク9の保存先305から、チャンク1と2のデータ長分進めた位置で指定できる。チャンク管理テーブル更新モジュール222は、チャンク管理テーブル300を更新した後、S1303の処理に進む。次に、S1303において、チャンク管理テーブル更新モジュール222は、ファイル管理テーブル500の構成チャンクID505を統合チャンクで置換えて処理を終了する。図5Bに、ファイル名sample1txtで特定されるファイルの構成チャンクID505である1-2-3を統合チャンク9で置換えた後のファイル管理テーブル500の状態を示している。以上説明したチャンク管理テーブル更新処理によれば、再構成された統合チャンクを用いてストレージ装置120へのデータ格納を行うので、ストレージ装置120の格納効率を向上させることができ、またストレージ装置120からのデータの読み出し速度を向上させることができる。≪第2の実施形態≫次に、本発明の第2実施形態について説明する。上述した第1の実施形態では、標準重複排除機能部210のチャンキングモジュール211は、図8に例示するデータ処理フローのS802において、基本的に、サブチャンクを生成した時と同様のチャンキング方式でチャンキングを行う。仮に、ホストコンピュータ110がストレージ装置120に格納しようとするデータの特性等から、そのデータ内にはサブチャンクが単体で現れることはほとんどなく、統合チャンクとしてのみ現れることがあらかじめわかっている場合には、チャンキング方式を一時的に変更し、サブチャンクに分割することなくはじめから統合チャンクとして出力することができる。以下第2の実施形態でそのチャンキング方式について説明する。第2の実施形態に係る重複排除装置130は、基本的に第1の実施形態と同一の構成を有して、同様のデータ処理を実行する。ここでは、第2の実施形態の構成のうち、第1の実施形態と異なる部分のみを説明する。第2の実施形態では、第1の実施形態での構成とは異なるチャンク管理テーブル300216を使用する。図14A、図14Bを参照して、第2の実施形態に係るチャンク管理テーブル300の構成例について説明する。第2の実施形態に係るチャンク管理テーブル300は、第1実施形態にはなかったあらたな項目として、スキップサイズ1403を含む。スキップサイズ1403は、チャンキングモジュール211が、ホストコンピュータ110から受信した新規データをチャンクに分割する際に、分割位置検索処理をスキップすることができるようにあらかじめ設定したデータサイズを表す。具体的には、チャンキングモジュール211は、図8のS802において、ホストコンピュータ110から受信した新規データを先頭から順に走査していき、新規データをチャンクに分割するための分割位置を探す。その際、チャンキングモジュール211が、ある1つのチャンクを生成したとする。生成したチャンクが、チャンク管理テーブル216に登録されているチャンク例えば1と同一であると判定した場合、チャンキングモジュール211は、スキップサイズ1403の2.3KB分先に走査する位置を移動する。チャンク1-2-3が連続で現れる場合この可能性は上記データ特性から高いと仮定される、チャンキングモジュール211は、2.3KB分スキップ後の走査でチャンク3の終わりの区切り位置を発見する。その結果、チャンキングモジュールは、統合チャンクである1-2-3を分割したチャンクとして出力する。チャンク照合モジュール212は、図9のデータ処理フロー例において、S902でチャンク管理テーブル300と前記分割されたチャンクの照合を行い、チャンキングモジュール211が出力したチャンクが統合チャンク9と同一であることを判定する。第2の実施形態によれば、分割位置判定のスキップによるチャンキング処理の速度向上と、照合対象のチャンク数削減を実現することができる。本実施形態の構成は統合チャンクの長さが長いほど特に有効であり、チャンキング処理に要する時間をより短縮することにより、重複排除処理の所要時間を短縮することができる。以上説明した本実施形態の重複排除方法によれば、格納データの重複排除率を低下させることなくデータ復元処理に要する時間を短縮することができる。以上、本発明についてその実施形態に基づき詳細に説明したが、本発明はこれらの実施形態に制約されることはない。また、本発明の範囲には、請求の範囲に記載された発明の均等物も含まれる。