(57)【要約】  ストレージ装置は、受信したコンテンツのデータ処理を実行するコントローラと、データ処理を実行されたコンテンツを格納するメディア領域とを含む。コントローラは、コンテンツ内のセグメントを分類し、分類されたセグメントにおいて同一種類のセグメントを集約する、データ再配置処理を行う。コントローラは、データ再配置処理されたコンテンツのデータ量削減処理を行い、データ量削減処理されたコンテンツをメディア領域に格納する。
2016084228.tif 000002
【特許請求の範囲】
【請求項１】
受信したコンテンツのデータ処理を実行するコントローラと、
前記データ処理を実行されたコンテンツを格納するメディア領域と、を含み、
前記コントローラは、
前記コンテンツ内のセグメントを分類し、
前記分類されたセグメントにおいて同一種類のセグメントを集約する、データ再配置処理を行い、
前記データ再配置処理されたコンテンツのデータ量削減処理を行い、
前記データ量削減処理されたコンテンツを前記メディア領域に格納する、ストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記コントローラは、
前記コンテンツにおけるセグメント種類とデータ量削減方法とを関連付けるコンテンツ処理情報を予め保持し、
前記セグメントそれぞれのセグメント種類と、前記コンテンツ処理情報とに基づき、前記セグメントそれぞれのデータ量削減方法を決定する、ストレージ装置。
【請求項３】
請求項２に記載のストレージ装置であって、
前記コンテンツ処理情報は、複数コンテンツ種類のそれぞれについて、セグメント種類とデータ量削減方法とを関連付け、
前記コントローラは、前記受信したコンテンツのコンテンツ種類についての情報を前記コンテンツ処理情報から取得する、ストレージ装置。
【請求項４】
請求項２に記載のストレージ装置であって、
前記コントローラは、ユーザ指定された前記コンテンツにおけるセグメント種類とデータ量削減方法との関係を、前記コンテンツ処理情報に格納する、ストレージ装置。
【請求項５】
請求項１に記載のストレージ装置であって、
前記コントローラは、
前記コンテンツが規定サイズを超える場合に、前記コンテンツを複数部分に分割し、
前記複数部分のそれぞれについて、データ再配置処理及びデータ量削減処理を実行する、ストレージ装置。
【請求項６】
請求項１に記載のストレージ装置であって、
前記コントローラは、前記コンテンツにおける前記データ再配置処理前後のデータ位置関係を示すレシピを生成し、
前記レシピを添付した前記コンテンツを前記メディア領域に格納する、ストレージ装置。
【請求項７】
請求項１に記載のストレージ装置であって、
前記コントローラは、前記受信したコンテンツがデータ圧縮されている場合、前記コンテンツを解凍した後に前記データ再配置処理を実行する、ストレージ装置。
【請求項８】
請求項１に記載のストレージ装置であって、
第１コントローラを含むストレージヘッドと、
第２コントローラと前記メディア領域を含むブロックストレージ装置とを含み、
前記コントローラは、前記第１コントローラと前記第２コントローラとを含み、
前記第１コントローラは、前記コンテンツを解析して、再配置前後のデータ位置関係とデータ量削減方法を指定するコンテンツ処理指示を生成し、
前記第２コントローラは、
前記コンテンツと前記コンテンツ処理指示を前記ストレージヘッドから受信し、
前記コンテンツ処理指示に従って、前記コンテンツの前記データ再配置処理及び前記データ量削減処理を実行し、前記メディア領域に格納する、ストレージ装置。
【請求項９】
ストレージ装置におけるコンテンツの格納方法であって、
コンテンツを受信し、
前記受信したコンテンツ内のセグメントを分類し、
前記分類されたセグメントにおいて、同一種類のセグメントを集約する、データ再配置処理を行い、
前記データ再配置処理されたコンテンツのデータ量削減処理を行い、
前記データ量削減処理されたコンテンツをメディア領域に格納する、方法。
【請求項１０】
請求項９に記載の方法であって、
前記データ量削減処理は、前記セグメントそれぞれのセグメント種類と、前記コンテンツにおけるセグメント種類とデータ量削減方法とを関連付けるコンテンツ処理情報と、に基づき、前記セグメントそれぞれのデータ量削減方法を決定する、方法。
【請求項１１】
請求項１０に記載の方法であって、
前記コンテンツ処理情報は、複数コンテンツ種類のそれぞれについて、セグメント種類とデータ量削減方法とを関連付ける、方法。
【請求項１２】
請求項１０に記載の方法であって、
さらに、ユーザ指定された前記コンテンツにおけるセグメント種類とデータ量削減方法との関係を前記コンテンツ処理情報に格納することを含む、方法。
【請求項１３】
請求項９に記載の方法であって、
前記コンテンツが規定サイズを超える場合に、前記コンテンツを複数部分に分割することをさらに含み、
前記データ再配置処理及びデータ量削減処理は、前記複数部分のそれぞれについて、データ再配置処理及びデータ量削減処理を実行することを含む、方法。
【請求項１４】
請求項９に記載の方法であって、
前記コンテンツにおける前記データ再配置処理前後のデータ位置関係を示すレシピを生成する、ことをさらに含み、
前記格納は、前記レシピを添付した前記コンテンツを前記メディア領域に格納する、方法。
【請求項１５】
請求項９に記載の方法であって、
前記受信したコンテンツがデータ圧縮されている場合、前記データ再配置処理の前に前記コンテンツを解凍することをさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に関する。
【背景技術】
【０００２】
データのメディアへの格納保存において、メディアにかかるコストを低減するために、データ量を削減して格納することが行われる。例えば、ファイル圧縮は、１ファイル内の同内容のデータセグメントを縮約してデータ容量を削減する。重複排除は、１ファイル内に限らず、ファイル間に見出される同内容のデータセグメントを縮約し、ファイルシステム及びストレージ装置におけるデータ総量を削減する。【０００３】
特許文献１には、コンテンツを構成する要素を検出し、その要素単位で重複排除を適用する方法、及び重複排除適用後の非重複データに対して圧縮を適用する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１１／０１２５７１９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１は、ファイルを構成する、ヘッダ、データ配置やフォントについての情報等を格納するメタデータ、及びボディデータを、要素ごとに切り出し、各要素に対して重複排除及び圧縮を適用する。【０００６】
しかし、ヘッダやメタデータはそのサイズが小さく、また、日時等の情報を格納しているため、重複排除の効果が低い又は略無い。特許文献１の方法は、そうしたデータに対して、重複排除用のメタデータ（例えばＦｉｎｇｅｒｐｒｉｎｔ）を作成する必要がある。そのため、重複排除用メタデータが増加し、重複排除効果が低下する。更に、メモリ領域の使用効率低下によりメディア領域へのＩ／Ｏが多発し、性能が低下する。【０００７】
また、特許文献１は、重複排除適用後の非重複データの先頭から順番に圧縮処理を適用する。非重複データは系統の異なるデータのパターンであるため、圧縮効果が低下する。
【課題を解決するための手段】
【０００８】
本発明の代表的な一例は、受信したコンテンツのデータ処理を実行するコントローラと、前記データ処理を実行されたコンテンツを格納するメディア領域と、を含むストレージ装置であって、前記コントローラは、前記コンテンツ内のセグメントを分類し、前記分類されたセグメントにおいて同一種類のセグメントを集約する、データ再配置処理を行い、前記データ再配置処理されたコンテンツのデータ量削減処理を行い、前記データ量削減処理されたコンテンツを前記メディア領域に格納する、ものである。
【発明の効果】
【０００９】
本発明の一態様によれば、メディア領域へのデータ格納量を効果的に削減することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１の概略を示す。
【図２】ファイルストレージ装置のハードウェア構成例を示す。
【図３】コンテンツ処理情報の構成例を示す。
【図４Ａ】コンテンツ種類Ａのコンテンツ例を示す。
【図４Ｂ】コンテンツ種類Ｂのコンテンツの例を示す。
【図４Ｃ】コンテンツ種類Ｃのコンテンツの例を示す。
【図４Ｄ】コンテンツ種類Ｄのコンテンツの例を示す。
【図４Ｅ】コンテンツ種類Ｅのコンテンツの例を示す。
【図５Ａ】コンテンツ種類Ｃのコンテンツの、データ再配置プログラムによる再配置後のコンテンツを示す。
【図５Ｂ】コンテンツ種類Ｄのコンテンツの、データ再配置プログラムによる再配置後のコンテンツＤ’を示す。
【図５Ｃ】コンテンツ種類Ｄのコンテンツの、データ再配置プログラムによる再配置後のコンテンツＤ’を示す。
【図５Ｄ】コンテンツ種類Ｅのコンテンツの、データ再配置プログラムによる再配置後のコンテンツＥ’１を示す。
【図５Ｅ】コンテンツ種類Ｅのコンテンツの、データ再配置プログラムによる再配置後のコンテンツＥ’２を示す。
【図５Ｆ】コンテンツ種類Ｅのコンテンツの、データ再配置プログラムによる再配置後のコンテンツＥ’３を示す。
【図６】Ｆｉｌｅ  Ｒｅｃｉｐｅの構成例を示す。
【図７】ファイルストレージ装置がコンテンツに対して実行する処理の概要のフローチャートを示す。
【図８】図７が示すフローチャートにおけるステップ８７４、すなわちコンテンツ種類Ｄのコンテンツに対する処理の詳細のフローチャートを示す。
【図９】図７が示すフローチャートにおけるステップ８７５、すなわちコンテンツ種類Ｅのコンテンツに対する処理の詳細のフローチャートを示す。
【図１０】コンテンツの読み出し処理のフローチャートを示す。
【図１１】実施例２の概略を示す。
【図１２】ファイルストレージヘッドとブロックストレージ装置のハードウェア構成例を示す。
【図１３】コンテンツ処理指示の例を示す。
【発明を実施するための形態】
【００１１】
幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
以下の説明では、「ＸＸテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために、「ＸＸテーブル」を「ＸＸ情報」と呼ぶことができる。
【００１３】
以下の説明では、プログラムを主語として処理を説明する場合があるが、プログラムは、ハードウェア自体、またはハードウェアが有するプロセッサ（例えば、ＭＰ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インターフェースデバイス（例えばポート）を用いながら行うため、処理の主語がハードウェア又はプロセッサとされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであってもよい。
【００１４】
以下において、ストレージ装置におけるデータ量削減技術が開示される。ストレージ装置は、データを格納する１以上の記憶デバイスを含む。以下において、１以上の記憶デバイスが与える記憶領域をメディア領域と呼ぶ。記憶デバイスは、例えば、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、複数ドライブからなるＲＡＩＤ等である。
【００１５】
ストレージ装置は、データを、論理的にまとまったデータであるコンテンツごとに管理する。また、データへのアクセスは、コンテンツごとに発生する。コンテンツとしては、通常のファイルの他、アーカイブファイル、バックアップファイル、仮想計算機のボリュームファイルのような、通常のファイルを集約したファイルがある。コンテンツは、ファイルの一部でもあり得る。
【００１６】
本実施形態のストレージ装置は、コンテンツを受信すると、コンテンツ内データの再配置処理を実行し、コンテンツのデータ構造を変更する。具体的には、ストレージ装置は、コンテンツ内のセグメントを分類し、同一種類のセグメントを集約する。セグメントは、コンテンツ内で意味のあるデータのまとまりである。
【００１７】
データ再配置処理により、コンテンツ内のセグメント順序が変更され、新たなデータ構造のコンテンツが生成される。新たなデータ構造のコンテンツにおいて、集約された複数セグメントは、連続配置されている。
【００１８】
ストレージ装置は、データ再配置処理によりデータ構造を変更されたコンテンツに対して、データ量削減処理を実行する。データ再配置処理を行った後にデータ量削減処理を実行することで、効率的にコンテンツのデータ量を削減できる。
【００１９】
一例において、ストレージ装置は、セグメント毎にデータ削減方法を決定する。ストレージ装置は、再配置後の各セグメントのセグメント種類を特定し、当該セグメント種類に予め関連付けられているデータ量削減方法に従って、データ削減処理を実行する。
【００２０】
データ量削減処理は、例えば、重複排除のみ、圧縮のみ、または、重複排除及び圧縮からなる。一部のセグメント種類に対しては、データ量削減処理が適用されなくてもよい。セグメント種類毎にデータ量削減方法が決められているため、セグメント種類に応じて適切にデータ量を削減できる。
【実施例１】
【００２１】
図１は本実施例の概略を示す。ファイルストレージ装置１４のメモリ領域２０は、コンテンツ解析プログラム３０、データ再配置プログラム３２、重複排除プログラム３４及び圧縮伸長プログラム３６を格納している。メモリ領域２０は、さらに、コンテンツ処理情報５０及びコンテンツ構造情報５１を格納している。コンテンツ処理情報５０は、コンテンツ種類毎のデータ量削減方法に関する情報を示す。コンテンツ構造情報５１は、コンテンツ種類毎のコンテンツ構造の情報を示す。コンテンツ構造の情報は、例えば、ヘッダ部の情報を示す。【００２２】
ホスト１０は、ネットワーク１２を介して、更新要求と共に、コンテンツＸ４０をファイルストレージ装置１４に送信する。コンテンツ解析プログラム３０は、コンテンツＸ４０を解析する。具体的には、コンテンツ解析プログラム３０は、コンテンツＸ４０内の管理情報を参照して、コンテンツＸ４０の種類を同定する。コンテンツ解析プログラム３０は、当該コンテンツ種類及びコンテンツ構造情報５１に基づいて、コンテンツＸ４０のセグメントを分類する。【００２３】
データ再配置プログラム３２は、コンテンツ解析プログラム３０による解析結果及びコンテンツ処理情報５０に従って、コンテンツＸ４０のデータ再配置処理を行う。データ再配置プログラム３２は、同一種類のセグメントを集約する。これにより、コンテンツＸ４０とは異なるデータ構造のコンテンツＸ’４４を生成する。【００２４】
より具体的には、データ再配置プログラム３２は、同一種類の複数セグメントを集約セグメントグループに集約し、集約セグメントグループそれぞれと残りの非集約セグメント（もしあれば）とを連結する。これにより、コンテンツＸ４０は、異なるデータ構造のコンテンツＸ’４４に変化する。【００２５】
重複排除プログラム３４及び圧縮伸長プログラム３６は、それぞれ、コンテンツ処理情報５０に基づき、コンテンツＸ’４４に対して必要な重複排除処理及び圧縮処理を実行する。コンテンツ処理情報５０は、コンテンツＸ’４４のコンテンツ種類に対するデータ削減方法を示す。【００２６】
後述するように、コンテンツ処理情報５０は、セグメント種類毎のデータ削減方法を規定する。重複排除プログラム３４及び圧縮伸長プログラム３６は、それぞれ、コンテンツ処理情報５０を参照して、コンテンツＸ’４４のコンテンツ種類に応じた重複排除処理及び圧縮処理を実行する。【００２７】
重複排除処理及び圧縮処理が適用されたコンテンツＸ’４４は、コンテンツＣ（Ｄ（Ｘ’））４６に変化する。コンテンツＣ（Ｄ（Ｘ’））４６は、メディア領域２２に格納される。メディア領域２２は、ストレージデバイスが提供する記憶領域である。【００２８】
ホスト１０が、ネットワーク１２を介して、コンテンツＸ４０の参照要求をストレージ装置１４に送信すると、コンテンツＣ（Ｄ（Ｘ’））４６は、メディア領域２２から読み出される。圧縮伸長プログラム３６及び重複排除プログラム３４は、コンテンツＸ’４４を再構成する。【００２９】
具体的には、圧縮伸長プログラム３６は、コンテンツＣ（Ｄ（Ｘ’））４６の伸長処理を実行する。重複排除プログラム３４は、コンテンツＸ’４４から排除された構成データをコンテンツ内及びメディア領域２２から取得し、追加する。【００３０】
データ再配置プログラム３２は、コンテンツＸ’４４をデータ再配置処理前のコンテンツＸ４０に戻す。再構築されたコンテンツＸ４０は、ネットワーク１２を介して、ホスト１０へ転送される。【００３１】
本実施例により、重複排除処理及び圧縮処理をコンテンツ内において効果が高いデータに適用し、データ量削減効果を向上できる。その結果、ビッグデータ分析などによるデータ量の増大に対し、保存されるデータ量を効率的に削減できる。【００３２】
本実施例において、ファイルストレージ装置が自動的にコンテンツのデータ量を削除するため、管理者の負担を軽減し、管理コストを低減することができる。特に、クラウドサービスにおいて、サービス提供のために必要な記憶容量が減るため、クラウドベンダは、ユーザにコストパフォーマンスのよいストレージを提供できる。【００３３】
図２は、ファイルストレージ装置１４のハードウェア構成例を示す。ファイルストレージ装置１４は、管理ネットワーク１６を介して、管理システム１８に接続されている。ファイルストレージ装置１４は、データネットワーク１２を介して、１又は複数のホスト１０に接続されている。ホスト１０は、例えば、サーバ計算機である。【００３４】
管理システム１８は、１又は複数の計算機で構成される。管理システム１８は、例えば、サーバ計算機と当該サーバ計算機にネットワークを介してアクセスする端末とを含む。管理者は、端末の表示デバイス及び入力デバイスを介して、ファイルストレージ装置１４を管理及び制御する。【００３５】
管理ネットワーク１６及びデータネットワーク１２は、それぞれ、例えば、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、公衆回線、または専用回線などである。管理ネットワーク１６及びデータネットワーク１２は、同一ネットワークでもよい。【００３６】
ファイルストレージ装置１４は、プロセッサ２１、メモリ２５、記憶デバイスインタフェース２８、記憶デバイス２３、２４及びネットワークインタフェース２６を含んで構成されている。ファイルストレージ装置１４内のデバイスは、システムバス２９を介して通信するように接続される。プロセッサ２１及びメモリ２５は、ファイルストレージ装置１４のコントローラの一例である。プロセッサ２１の機能の少なくとも一部は、他の論理回路で実装されてもよい。【００３７】
図１に戻って、メモリ２５は、コンテンツ解析プログラム３０、データ再配置プログラム３２、重複排除プログラム３４、圧縮伸長プログラム３６を格納している。メモリ２５は、さらに、コンテンツ処理情報５０を格納している。メモリに格納されるデータは、典型的には、記憶デバイス２３、２４からロードされる。記憶デバイス２３、２４のそれぞれは、例えば、ＨＤＤ、ＳＳＤ又はＲＡＩＤである。【００３８】
メモリ２５は、記憶デバイス２３、２４から読みだされた情報を記憶するために用いられるほか、ホスト装置１０から受信したデータを一時的に格納するキャッシュメモリとして用いられる。メモリ２５は、さらに、プロセッサ２１のワークメモリとして用いられる。【００３９】
メモリ２５には、ＤＲＡＭ等の揮発性メモリまたはＦｌａｓｈ  Ｍｅｍｏｒｙ等の不揮発性メモリが使用される。メモリ２５は、記憶デバイス２３、２４よりも高速にデータの読み書きができる。【００４０】
コンテンツ処理情報５０は、コンテンツ毎のデータ量削減処理方法を示す。管理システム１８は、コンテンツ処理情報５０及びコンテンツ構造情報５１の設定を行う。コンテンツ構造情報５２は、コンテンツ毎のデータ構造についての情報を格納している。コンテンツデータ構造については、例を用いて後述する。【００４１】
プロセッサ２１は、メモリ２５に記憶されているプログラムや演算パラメータ等に従って動作する。プロセッサ２１は、プログラムに従って動作することで、特定の機能部として働く。たとえば、プロセッサ２１は、コンテンツ解析プログラム３０に従ってコンテンツ解析処理を実行する。同様に、プロセッサ２１は、データ再配置プログラム３２、重複排除プログラム３４、及び圧縮伸長プログラム３６に従って、データ再配置処理、重複排除処理、及び圧縮伸長処理をそれぞれ実行する。【００４２】
コンテンツ解析プログラム３０は、ファイルストレージ装置１４に格納されたコンテンツを解析する。データ再配置プログラム３２は、コンテンツ解析プログラム３０による解析結果を参照して、コンテンツのデータ再配置処理を行う。【００４３】
具体的には、コンテンツ解析プログラム３０は、コンテンツを構成するセグメントをセグメント種類毎に集約する。データ再配置プログラム３２は、複数セグメントを集約して構成された集約セグメントグループ及び集約されなかった残りのセグメントを連結する。【００４４】
重複排除プログラム３４は、コンテンツ内の対象ブロックと重複するブロック（同一データのブロック）を当該コンテンツ内及びメディア領域２２において検索し、重複ブロックが存在する場合において、対象ブロックを、重複ブロックを示すポインタに変換する。コンテンツ内の対象ブロックは、メディア領域２２には格納されない。圧縮伸長プログラム３６は、コンテンツ内のデータを圧縮及び伸長する。重複排除処理と圧縮処理の順序は逆でもよい。【００４５】
記憶デバイス２３は、ファイルストレージ装置１４がホスト１０から受信したコンテンツを一時的に格納する領域を提供する。プロセッサ２１は、記憶デバイス２３に格納されたコンテンツを非同期に読み出し、コンテンツ解析処理、重複排除処理、及び圧縮処理を実行してもよい。プロセッサ２１は、データ削減されたコンテンツ適用し、記憶デバイス２４に格納する。記憶デバイス２４は、メディア領域２２を提供する。メモリ２５が受信したコンテンツを保持し、記憶デバイス２３を省略してもよい。【００４６】
図３は、コンテンツ処理情報５０の構成例を示す。本例のコンテンツ処理情報５０は、テーブル構造を有する。コンテンツ処理情報５０は、コンテンツ毎のデータ量削減方法を記述する。これにより、コンテンツ種類毎に効果的なデータ量削減を実現する。各コンテンツのデータ削減方法は、セグメント種類毎のデータ削減方法を示す。これにより、セグメント種類毎に効果的なデータ量削減を実現する。管理システム１８においてコンテンツ処理情報５０を作成し、ファイルストレージ装置１４に格納する。ユーザは、コンテンツ処理情報５０により、コンテンツ種類毎の処理方法を指定することができる。【００４７】
コンテンツ処理情報５０は、コンテンツ種類カラムＴ２と、データ量削減処理内容カラムＴ６とを有する。さらに、データ量削減処理内容カラムＴ６は、分割サイズカラムＴ１０、解凍カラムＴ１１、再配置カラムＴ１２、ヘッダカラムＴ１３、メタデータカラムＴ１４、ボディカラムＴ１５、及びトレイラカラムＴ１６を含む。【００４８】
分割サイズカラムＴ１０は、データ再配置処理前にコンテンツを分割する場合のサイズを示す。分割サイズにより分割された各部分は、その後の処理を適用する単位である。例えば、データ再配置プログラム３２は、各分割部分内においてデータ再配置を行う。プロセッサ２１は、コンテンツサイズが閾値より大きいコンテンツを、当該コンテンツ種類の分割サイズカラムＴ１０が示すサイズで分割し、分割部分毎にデータ再配置処理及びデータ量削減処理を実行する。これにより、データ再配置処理及びデータ量削減処理の処理速度を向上させる。【００４９】
解凍カラムＴ１１は、コンテンツのデータ量削減処理の前に、圧縮処理されたコンテンツを解凍するか否かを示す。データ再配置解凍及びデータ量削減処理前に圧縮コンテンツを解凍することで、より効果的なデータ量削減を実現することができる。【００５０】
再配置カラムＴ１２は、コンテンツのデータ量削減処理の前に、コンテンツにおけるデータ再配置を実行するか否かを示す。再配置カラムＴ１２がデータ再配置を行うことを示す場合、データ再配置プログラム３２は、コンテンツにおいて同一種類のセグメントを集約する。【００５１】
ヘッダカラムＴ１３〜トレイラカラムＴ１６は、それぞれ、対応するセグメント種類のデータ量削減方法を示す。ヘッダカラムＴ１３は、コンテンツ内のヘッダのデータ削減方法を示す。メタデータカラムＴ１４は、コンテンツ内のメタデータのデータ削減方法を示す。ボディカラムＴ１５は、コンテンツ内のボディのデータ削減方法を示す。トレイラカラムＴ１６は、コンテンツ内のトレイラのデータ削減方法を示す。【００５２】
本例において、データ量削減処理内容カラムＴ６は、対象データに対して適用され得る四つのデータ削減方法を示す。一つの方法は、重複排除処理と圧縮処理の双方を行い、一つの方法は重複排除処理のみ行い、一つの方法は圧縮処理のみ行い、一つの方法はデータ量削減処理を実行しない。【００５３】
例えば、コンテンツ種類が「Ｄ」のコンテンツは、分割サイズＤＤ（ＭＢ）で分割される。コンテンツ種類が「Ｄ」のコンテンツに対して、データ再配置処理が適用され、さらに、ヘッダセグメントとメタデータセグメントに対しては圧縮処理のみが適用される。同様に、ボディセグメントとトレイラセグメントに、重複排除と圧縮が適用される。また、コンテンツ種類が「Ｂ」のコンテンツには、ファイル単位の重複排除処理のみが適用される。【００５４】
図４Ａ〜図４Ｅは、それぞれ、コンテンツの例を示す。ファイルストレージ装置１４が格納する全てのコンテンツに共通の構造は存在しない。コンテンツの特定の位置に特定のデータが存在し、かつそのことを、コンテンツを処理するファイルストレージ装置１４が知っている場合、当該コンテンツの構造が定義される。【００５５】
すなわち、たとえコンテンツ内に特徴あるデータが存在しても、ファイルストレージ装置１４がそれを認識しない場合、当該コンテンツが構造を有していないことと同義である。本例において、コンテンツ構造情報５１がコンテンツ構造を示すコンテンツ種類のみが、コンテンツ構造を有する。【００５６】
例えば、コンテンツ構造情報５１は、コンテンツ種類毎の構造情報を示す。例えば、コンテンツ構造情報は、ヘッダ部のコンテンツ内の位置、サイズ、及びヘッダ部を読むためのフォーマット情報の他、コンテンツの他の管理セグメントを読むためのフォーマット情報を示す。管理セグメントはボディ部以外のセグメントである。【００５７】
図４Ａは、コンテンツ種類Ａのコンテンツ例であるコンテンツ１００を示す。コンテンツＡ（１００）は、コンテンツＩＤ部１０２及び実質的に構造を有してないボディ部１０６から構成されている。これらはセグメントである。コンテンツＩＤ部１０２はコンテンツ種類と、当該コンテンツを作ったアプリケーションを示す。【００５８】
コンテンツＩＤ部１０２は、マジックナンバとも呼ばれ、一般にコンテンツの先頭に存在する。コンテンツ種類Ａの他のコンテンツの例として、コンテンツＩＤ部を有さず、全体が構造のないデータであるコンテンツが存在する。コンテンツ解析プログラム３０は、コンテンツ種類Ａのコンテンツにおいて、コンテンツＩＤ部１０２とボディ部１０６を一括して取り扱う。【００５９】
図４Ｂは、コンテンツ種類Ｂのコンテンツ１１０を示す。コンテンツＢ（１１０）は、コンテンツＩＤ部１１２、ヘッダ部１１４、ボディ部１１６、トレイラ部１１８から構成されている。これらはセグメントである。【００６０】
ヘッダ部１１４はコンテンツの構造を記述し、コンテンツの先頭付近に置かれる。コンテンツ解析プログラム３０は、コンテンツ構造情報５１を参照し、コンテンツ種類によって、ヘッダ部１１４のコンテンツ１１０上での位置、サイズ、及びヘッダ部１１４の読み方が分かる。【００６１】
ヘッダ部１１４は、他のセグメントの構造情報を示す。コンテンツ解析プログラム３０は、ヘッダ部１１４を解析することにより、ボディ部１１６及びトレイラ部１１８のコンテンツ１１０上での位置及びサイズが分かるコンテンツ解析プログラム３０は、ヘッダ部１１４から、ボディ部１１６の詳細な構成要素やそれらの位置に関する情報を得る。なお、コンテンツＩＤ部１１２とヘッダ部１１４とは、一つのセグメントと見なしてもよい。ヘッダ部１１４は、ヘッダ部１１４の位置及びサイズの情報を含んでもよい。【００６２】
トレイラ部１１８はコンテンツ１１０の最後尾におかれ、格納される情報は一定していない。例えば、トレイラ部１１８は、コンテンツサイズのようなコンテンツ１１０全体に関する情報を含み、コンテンツ処理の正当性のチェックなどに使うことができる。トレイラ部１１８は、論理的な意味のないパディングデータを含むこともある。【００６３】
図４Ｃは、コンテンツ種類Ｃのコンテンツ例であるコンテンツ１２０を示す。コンテンツＣ（１２０）は、コンテンツＩＤ部（１２１）、ヘッダ部０（１２２）、メタデータ部０（１２３）、ヘッダ部１（１２４）、ボディ部０（１２５）、ヘッダ部２（１２６）、メタデータ部１（１２７）、ヘッダ部３（１２８）、ボディ部１（１２９）、及びトレイラ部１１８から構成されている。これらはセグメントである。【００６４】
コンテンツＣ（１２０）において、１以上のヘッダ部は、１以上のメタデータ部及び１以上のボディ部を、１つのコンテンツとしてつなぐための情報を含む。つまり、ヘッダ部０（１２２）、ヘッダ部１〜ヘッダ部３は、メタデータ部０、メタデータ部１、ボディ部０、ボディ部１を１つのコンテンツとしてつなぐための情報を示す。【００６５】
ヘッダ部は、例えば、次のヘッダ部までの後続セグメントの構造情報を示す。ヘッダ部は、コンテンツ内の全セグメントの構造情報を示してもよい。ヘッダ部は、それぞれ、自セグメントの種類、位置及びサイズの情報を含んでもよい。ヘッダ部は、それぞれ、後続の全セグメントの構造情報を示してもよい。【００６６】
例えば、コンテンツ構造情報５１は、ヘッダ部０（１２２）の構造情報を示す。ヘッダ部０（１２２）は、メタデータ部０（１２３）及び次のヘッダ部Ｈ１（１２４）の位置及びサイズを示す。【００６７】
ヘッダ部Ｈ１（１２４）は、ボディ部１（１２５）及び次のヘッダ部Ｈ２（１２６）の種類、位置、及びサイズを示す。ヘッダ部Ｈ２（１２６）は、メタデータ部１（１２７）及び次のヘッダ部Ｈ３（１２８）の種類、位置、及びサイズを示す。ヘッダ部Ｈ３（１２８）は、ボディ部２（１２９）及びトレイラ部１１８の種類、位置、及びサイズを示す。【００６８】
ボディ部０（１２３）、ボディ部１（１２９）は、ユーザデータを格納する。メタデータ部０（１２３）、メタデータ部１（１２７）は、ボディ部０（１２５）、ボディ部１（１２９）に格納されたデータのボディ部内の位置やフォント情報などを、それぞれ格納する。【００６９】
図４Ｄは、コンテンツ種類Ｄのコンテンツ例であるコンテンツ１３０を示す。コンテンツ１３０は、コンテンツＩＤ部（１３１）、ヘッダ部Ｈ０（１３２）、ヘッダ部Ｈ１（１３４）、ヘッダ部Ｈ２（１３６）、ボディ部Ｄ０（１３３）、ボディ部Ｄ１（１３５）、ボディ部Ｄ２（１３７）、トレイラ部Ｔ０（１１８）からなる。【００７０】
図４Ｄの例において、ボディ部Ｄ０（１３３）、Ｄ１（１３５）、Ｄ２（１３７）は１又は複数のサブコンテンツを含む。図４Ｄにおいて、ボディ部Ｄ０（１３３）はサブコンテンツ０、ボディ部Ｄ１（１３５）はサブコンテンツ１、ボディ部Ｄ２（１３７）はサブコンテンツ２（１２０）である。【００７１】
ヘッダ部Ｈ０（１３２）、ヘッダ部Ｈ１（１３４）、及びヘッダ部Ｈ２（１３６）は、ボディ部Ｄ０（１３３）、ボディ部Ｄ１（１３５）、ボディ部Ｄ２（１３７）、トレイラ部Ｔ０（１１８）を１つのコンテンツとしてつなぐための情報を示す。【００７２】
コンテンツＤ（１３０）のヘッダ部が示す情報についての説明は、図４Ｃに示すコンテンツＣ（１２０）と同様である。例えば、ヘッダ部Ｈ０（１３２）、ヘッダ部Ｈ１（１３４）、及びヘッダ部Ｈ２（１３６）は、それぞれ、次のヘッダ部までの各セグメントの構造情報を示す。ヘッダ部におけるボディ部の種類の情報は、当該ボディ部がサブコンテンツであることを示す。【００７３】
サブコンテンツは、ヘッダ部、ボディ部、メタデータ部などを含み得る。サブコンテンツ内のヘッダ部は、サブコンテンツの内部構造についての情報を示し、サブコンテンツ内の他のセグメントを一つのサブコンテンツとしてつなぐための情報を含む。この構成において、サブコンテンツであるボディ部は、複数セグメントからなる。【００７４】
図４Ｄの例において、サブコンテンツ０、１、２のコンテンツ構造は、それぞれ、コンテンツＡ（１００）、コンテンツＢ（１１０）、コンテンツＣ（１２０）と同様である。つまり、サブコンテンツ０、１、２のコンテンツＩＤがそれぞれ示すコンテンツ種類は、コンテンツＡ（１００）、コンテンツＢ（１１０）、コンテンツＣ（１２０）のコンテンツ種類と一致する。コンテンツ解析プログラム３０は、サブコンテンツのコンテンツＩＤ部が示すコンテンツ種類に従って、サブコンテンツを解析する。【００７５】
上記サブコンテンツ構造は、例えば、コンテンツＤ（１３０）がサブコンテンツ０、サブコンテンツ１、サブコンテンツ２を一つにまとめたアーカイブファイルである場合に発生する。この他、バックアップファイル、仮想ディスクボリューム、リッチメディアファイルも、このような構造を持ち得る。【００７６】
図４Ｅは、コンテンツ種類Ｅのコンテンツ例であるコンテンツ１４０を示す。コンテンツ１４０は特定の規則で書込まれたコンテンツであり、例えばログファイルである。列Ｃｏｌ．０（１４１）〜Ｃｏｌ．５（１４６）は、それぞれ、区切り文字（カンマやタブなど）で区切られた同一データ種別の値の集合である。データ種別は、例えば、日付、時間である。図４Ｅにおいて、コンテンツＩＤ部を含む一部データは省略されている。この点は、図５Ｄ〜５Ｆにおいて同様である。【００７７】
コンテンツ１４０のデータ配列において、例えば、最上段の行から再下段の行の順次で、行がつながっている。行及び列により特定される各値がセグメントであり、列は同一セグメント種別のセグメントの集合である。列それぞれに異なるセグメント種別が定義される。【００７８】
図５Ａは、コンテンツ種類Ｃのコンテンツ１２０の、データ再配置プログラム３２による再配置後のコンテンツ２２０を示す。データ再配置プログラム３２は、ヘッダ部１２２、１２４、１２６、１２８を集約して一つの集約セグメントグループ２２５を生成する。同様に、データ再配置プログラム３２は、メタデータ部１２３、１２７を集約して一つの集約セグメントグループ２２６を生成し、さらに、ボディ部１２５、１２９を集約して一つの集約セグメントグループ２２７を生成する。【００７９】
データ再配置プログラム３２は、集約されていないセグメントであるコンテンツＩＤ部１２１及びトレイラ部１１８、並びに集約セグメントグループ２５５〜２５７を連結する。さらに、データ再配置プログラム３２は、Ｆｉｌｅ  Ｒｅｃｉｐｅ２２２を生成し、再配置後コンテンツＣ’（２２０）の先頭に付加する。Ｆｉｌｅ  Ｒｅｃｉｐｅ２２２は、再配置後コンテンツＣ’（２２０）におけるオフセットと再配置前コンテンツ１２０との間の関係を示す。Ｆｉｌｅ  Ｒｅｃｉｐｅは、図６を参照して後述される。【００８０】
図５Ｂは、コンテンツ種類Ｄのコンテンツ１３０の、データ再配置プログラム３２による再配置後のコンテンツＤ’１（２３０）を示す。データ再配置プログラム３２は、コンテンツ１３０を分割することなく、コンテンツ１３０の再配置を実行する。再配置後コンテンツＤ’１（２３０）は、コンテンツＣ’（２２０）と同様に、先頭のＦｉｌｅ  Ｒｅｃｉｐｅ２３２と後続の連結されたセグメントを含む。【００８１】
集約セグメントグループ２３４に集約されているセグメントの種類は、コンテンツＩＤである。具体的には、集約セグメントグループ２３４は、コンテンツ１３０のコンテンツＩＤ部１３１とサブコンテンツ１３３、１３５、１３７のコンテンツＩＤ部からなる。なお、コンテンツ１３０のコンテンツＩＤ部と、サブコンテンツ１３３、１３５、１３７のコンテンツＩＤ部とは、別のセグメント種類に属すよう定義されていてもよい。【００８２】
集約セグメントグループ２３５で集約されているセグメントの種類はヘッダである。具体的には、集約セグメントグループ２３５は、サブコンテンツ１３３、１３５、１３７のヘッダ部１３２、１３４、及び１３６並びにサブコンテンツ１３５、１３７内のヘッダ部からなる。サブコンテンツ外のヘッダ部とサブコンテンツ内のヘッダ部とは別のセグメント種類に属すよう定義されていてもよい。【００８３】
集約セグメントグループ２３６で集約されているセグメント種類はボディである。集約セグメントグループ２３６は、サブコンテンツ１３３、１３５、１３７内のボディ部からなる。ボディ部は「Ｄ」で表わされている。さらに、集約セグメントグループ２３７で集約されているセグメントの種類はトレイラである。集約セグメントグループ２３７は、サブコンテンツ１３３、１３５、１３７のトレイラ部と再配置前コンテンツ１３０のトレイラ部１１８からなる。サブコンテンツのトレイラ部とコンテンツのトレイラ部とは別のセグメント種類に属すよう定義されていてもよい。【００８４】
図５Ｃは、コンテンツ種類Ｄのコンテンツ１３０の、データ再配置プログラム３２による再配置後のコンテンツＤ’２（２４０）を示す。データ再配置プログラム３２は、コンテンツ処理情報５０における分割サイズカラムＴ１０が示す分割サイズおいて、コンテンツ１３０を分割し、分割部毎にデータ再配置処理を実行する。図５Ｃの例において、ＩＤ部（１３１）、ヘッダ部Ｈ０（１３２）、サブコンテンツ０（１３３）、ヘッダ部Ｈ１（１３４）、サブコンテンツ１（１３５）が一つの分割部に含まれる。サブコンテンツ２（１３７）及びトレイラ部Ｔ０（１１８）が、他の分割部に含まれる。【００８５】
データ再配置プログラム３２は、分割部毎にＦｉｌｅ  Ｒｅｃｉｐｅ２４２、２４４を生成し、再配置後の分割部２４１、２４３それぞれの先頭に付加する。Ｆｉｌｅ  Ｒｅｃｉｐｅをデータ再配置の単位データ毎に作成及び付与することで、適切にコンテンツの構造を基の構造に戻すことができる。【００８６】
例えば、再配置後分割部２４１において、集約セグメントグループ２４５のセグメント種類はＩＤであり、コンテンツＩＤ部１３１、サブコンテンツ０（１３３）のコンテンツＩＤ部ＩＤ０、及びサブコンテンツ１（１３５）のコンテンツＩＤ部ＩＤ１からなる。【００８７】
例えば、集約セグメントグループ２４６のセグメント種類はヘッダであり、ヘッダ部Ｈ０（１３２）、ヘッダ部Ｈ１（１３４）、及びサブコンテンツ１（１３５）のヘッダ部Ｈ１１からなる。集約セグメントグループ２４７のセグメント種類はボディであり、サブコンテンツ０（１３３）のボディ部Ｄ００及びサブコンテンツ１（１３５）のボディ部Ｄ１１からなる。【００８８】
図５Ｄは、コンテンツ種類Ｅのコンテンツ１４０の、データ再配置プログラム３２による再配置後のコンテンツＥ’１（２５０）を示す。データ再配置プログラム３２は、コンテンツ１４０を分割することなく、コンテンツ１４０の再配置を実行する。再配置後コンテンツＥ’１（２５０）は、先頭のＦｉｌｅ  Ｒｅｃｉｐｅ２５２と後続の連結されたセグメントを含む。【００８９】
集約セグメントグループ２５３に集約されているセグメントの種類は、列Ｃｏｌ．１である。集約セグメントグループ２５３は、コンテンツ１４０の列Ｃｏｌ．１に含まれる値からなる。同様に、集約セグメントグループ２５４〜２５８のそれぞれに集約されているセグメントの種類は、列Ｃｏｌ．２〜列Ｃｏｌ．５である。コンテンツ種類Ｅにコンテンツ処理情報５０は、図３に示す例と異なり、各列についてデータ量削減方法を規定する。【００９０】
図５Ｅは、コンテンツ種類Ｅのコンテンツ１４０の、データ再配置プログラム３２による再配置後のコンテンツＥ’２（２６０）を示す。データ再配置プログラム３２は、コンテンツ処理情報５０における分割サイズカラムＴ１０が示す分割サイズおいて、コンテンツ１４０を分割し、分割部毎にデータ再配置処理を実行する。【００９１】
データ再配置プログラム３２は、分割部毎にＦｉｌｅ  Ｒｅｃｉｐｅ２６２、２６４を生成し、再配置後の分割部２６１、２６３それぞれの先頭に付加する。再配置後の分割部２６１、２６３は、それぞれ、列Ｃｏｌ．０（１４１）〜列Ｃｏｌ．５（１４６）それぞれの一部のデータを含む。分割部２６１、２６３において、同一列の値（セグメント）が集約され、連続して配列される。【００９２】
図５Ｆは、コンテンツ種類Ｅのコンテンツ１４０の、データ再配置プログラム３２による再配置後のコンテンツＥ’３（２７０）を示す。コンテンツＥ’３（２７０）は、複数ファイル２７１〜２７５を含む。データ再配置プログラム３２は、コンテンツＥ’３（２７０）のファイル２７１〜２７５に共通の一つのファイルレシピ２７０を生成する。【００９３】
ファイル２７１は、列Ｃｏｌ．０（１４１）の集約セグメントグループと、列Ｃｏｌ．２（１４３）の集約セグメントグループで構成されている。他のファイル２７２〜２７５は、それぞれ、一つの列の集約セグメントグループである。データ量削減処理は、ファイル毎に実行される。データ量削減効率が高い集約セグメントグループが一つのファイルに纏められる。【００９４】
図６は、Ｆｉｌｅ  Ｒｅｃｉｐｅの構成例５２を示す。Ｆｉｌｅ  Ｒｅｃｉｐｅ５２は、再配置前後のデータ位置の関係を示す。Ｆｉｌｅ  Ｒｅｃｉｐｅにより、データ再配置プログラム３２は、再配置後の構造から適切に再配置前の構造にコンテンツを変換することができる。本例において、Ｆｉｌｅ  Ｒｅｃｉｐｅは、さらに、データ削減処理についての情報を含む。これにより、データ削減処理が実行されたコンテンツをデータ削減処理実行前の構造に変換することができる。Ｆｉｌｅ  Ｒｅｃｉｐｅをコンテンツに添付してメディア領域２２に格納することで、Ｆｉｌｅ  Ｒｅｃｉｐｅの管理が効率化される。【００９５】
本例において、Ｆｉｌｅ  Ｒｅｃｉｐｅ５２は、分割有無フィールドＴ２０、再配置前オフセットカラムＴ２１、サイズカラムＴ２２、格納先圧縮単位番号カラムＴ２３、格納先圧縮単位内オフセット／排除データ再配置後オフセットカラムＴ２４、及び重複排除先カラムＴ２５を有する。カラムＴ２１〜Ｔ２５の同一行のセルが、一つのエントリを構成する。一つのエントリは、コンテンツ内の一つのデータブロックを示す。各データブロックには同一のデータ量削減方法が適用される。データブロックは、例えば、１セグメント、複数セグメント、１セグメント内の部分データで構成される。【００９６】
Ｆｉｌｅ  Ｒｅｃｉｐｅ５２は、さらに、圧縮単位番号カラムＴ２６、圧縮適用後データオフセットカラムＴ２７、適用圧縮タイプカラムＴ２８、圧縮前サイズカラムＴ２９、及び圧縮後サイズカラムＴ３０を有する。カラムＴ２６〜Ｔ３０の同一行のセルが、一つのエントリを構成する。各エントリは、一つの圧縮単位の情報を示す。圧縮単位は、再配置後に圧縮処理が実行されたデータ単位であり、再配置処理及び重複排除処理後の集約セグメントグループ及び非集約セグメントである。例えば、再配置処理後の集約セグメントの一部に重複排除処理が適用されている場合、当該集約セグメントの残データが圧縮単位である。【００９７】
分割有無フィールドＴ２０は、再配置後コンテンツが、分割された後にデータ再配置されたか、分割されることなくデータ再配置されたかを示す。図６の例において、コンテンツは分割され、分割部毎にデータ再配置が実行されている。Ｆｉｌｅ  Ｒｅｃｉｐｅは分割部毎に作成され、分割部の先頭に添付される。分割有無フィールドＴ２０は、さらに、分割部毎にデータ再配置されている場合に、次のＦｉｌｅ  Ｒｅｃｉｐｅが格納されている位置のオフセットを示す。【００９８】
再配置前オフセットカラムＴ２１は、再配置前のコンテンツ内のデータブロックのオフセットを示す。サイズカラムＴ２５は、データブロックそれぞれのデータ長を示す。格納先圧縮単位番号カラムＴ２３は、データブロックが格納されている圧縮単位の番号を示す。格納先圧縮単位内オフセット／排除データ再配置後オフセットカラムＴ２４は、重複排除されていないデータブロックが格納されている圧縮単位におけるオフセット、又は重複排除されたデータブロックの再配置後のコンテンツ内のオフセットを示す。【００９９】
重複排除先カラムＴ２５は、重複排除処理が適用されたデータブロックの参照先データ位置を示す。参照先は、ファイル名とオフセットで示される。図６の例においては一番上のデータブロックのみに重複排除処理が適用される。【０１００】
圧縮単位番号カラムＴ２６は、圧縮単位の番号を示す。圧縮単位番号は、再配置及び重複排除後であって、圧縮前のコンテンツにおける、先頭圧縮単位から順に付与される。圧縮適用後データオフセットカラムＴ２７は、圧縮後の圧縮単位のコンテンツ内でのオフセットを示す。したがって、格納先圧縮単位番号カラムＴ２３及び格納先圧縮単位内オフセット／排除データ再配置後オフセットカラムＴ２４の値から、データブロックの再配置後の位置が特定される。【０１０１】
適用圧縮タイプカラムＴ２８は、圧縮単位に適用されたデータ圧縮のタイプを示す。圧縮前サイズカラムＴ２９は、圧縮単位の圧縮前のデータサイズを示し、圧縮後サイズカラムＴ３０は、圧縮単位の圧縮後のデータサイズを示す。【０１０２】
例えば、３段目のエントリのデータブロックは、再配置前オフセット１５０（Ｂ）、データサイズ１００Ｂを有する。当該データブロックは、再配置後、圧縮前のコンテンツにおいて、圧縮単位番号４の圧縮単位におけるオフセット１０２（Ｂ）の位置に格納されている。つまり、当該データブロックは、メディア領域２２に格納されているコンテンツの伸長処理後、先頭から４番目の圧縮単位のオフセット１０２（Ｂ）の位置から１００Ｂのデータである。【０１０３】
図７は、ファイルストレージ装置１４がコンテンツに対して実行する処理の概要のフローチャートを示す。ファイルストレージ装置１４は、コンテンツ受信と同期又は非同期に、当該処理を実行する。例えば、ファイルストレージ装置１４は、受信したコンテンツを記憶デバイス２３に一時的に格納し、コンテンツ受信と非同期にメモリ領域２０に読み出して、当該処理を実行する。【０１０４】
ステップ８１０において、コンテンツ解析プログラム３０は、コンテンツ全体のサイズが閾値以下であるか判定する。コンテンツ解析プログラム３０は、例えば、コンテンツ内の管理情報又はストレージ装置１４がコンテンツと共に受信したコマンドから、コンテンツ長に関する情報を取得する。【０１０５】
コンテンツ長が所定の閾値以下である場合（８１０：ＹＥＳ）、ステップ８７０において、圧縮伸長プログラム３６は、コンテンツ全体で圧縮処理を実行する。小さいサイズのデータ再配置処理を実行しても、データ格納効率が大きくは向上しないため、データ再配置処理を省略することで、効率的な処理を実現できる。小サイズコンテンツに、重複排除が適用されてもよい。【０１０６】
コンテンツ長が所定の閾値より大きい場合（８１０：ＮＯ）、ステップ８２０において、コンテンツ解析プログラム３０は、コンテンツ内のコンテンツＩＤ部を参照し、コンテンツ種類の情報を取得する。コンテンツＩＤ部は、コンテンツ構造に拠らず、コンテンツの先頭など一定の場所に存在するため、コンテンツ解析プログラム３０は、いずれの構造のコンテンツにおいてもコンテンツＩＤ部を特定することができる。コンテンツ解析プログラム３０は、コンテンツＩＤ部から取得したコンテンツ種類を示す値を、装置内でのみ使用する値に変換してもよい。【０１０７】
ファイルストレージ装置１４は、以下、ステップ８２０で得たコンテンツ種類の情報をもとに、受信したコンテンツに対応する処理を選択及び実行する。ステップ８３１において、コンテンツ解析プログラム３０は、受信したコンテンツのコンテンツ種類が「Ａ」であるか否か判定する。【０１０８】
コンテンツ種類が「Ａ」である場合（８３１：ＹＥＳ）、コンテンツ解析プログラム３０は、ステップ８７１に進む。ステップ８７１において、ファイルストレージ装置１４は、コンテンツ種類が「Ａ」のコンテンツに用意された処理を実行する。コンテンツ種類が「Ａ」でない場合（８３１：ＮＯ）、コンテンツ解析プログラム３０は、ステップ８３２に進む。ステップ８３２において、コンテンツ解析プログラム３０は、受信したコンテンツのコンテンツ種類が「Ｂ」であるか否か判定する。【０１０９】
コンテンツ種類が「Ｂ」である場合（８３２：ＹＥＳ）、コンテンツ解析プログラム３０は、ステップ８７２に進む。ステップ８７２において、ファイルストレージ装置１４は、コンテンツ種類が「Ｂ」のコンテンツに用意された処理を実行する。コンテンツ種類が「Ｂ」でない場合（８３２：ＮＯ）、コンテンツ解析プログラム３０は、ステップ８３３に進む。ステップ８３３において、コンテンツ解析プログラム３０は、受信したコンテンツのコンテンツ種類が「Ｃ」であるか否か判定する。【０１１０】
コンテンツ種類が「Ｃ」である場合（８３３：ＹＥＳ）、コンテンツ解析プログラム３０は、ステップ８７３に進む。ステップ８７３において、ファイルストレージ装置１４は、コンテンツ種類が「Ｃ」のコンテンツに用意された処理を実行する。コンテンツ種類が「Ｃ」でない場合（８３３：ＮＯ）、コンテンツ解析プログラム３０は、ステップ８３４に進む。ステップ８３４において、コンテンツ解析プログラム３０は、受信したコンテンツのコンテンツ種類が「Ｄ」であるか否か判定する。【０１１１】
コンテンツ種類が「Ｄ」である場合（８３４：ＹＥＳ）、コンテンツ解析プログラム３０は、ステップ８７４に進む。ステップ８７４において、ファイルストレージ装置１４は、コンテンツ種類が「Ｄ」のコンテンツに用意された処理を実行する。コンテンツ種類が「Ｄ」でない場合（８３３：ＮＯ）、コンテンツ解析プログラム３０は、ステップ８３５に進む。ステップ８３５において、コンテンツ解析プログラム３０は、受信したコンテンツのコンテンツ種類が「Ｅ」であるか否か判定する。【０１１２】
コンテンツ種類が「Ｅ」である場合（８３５：ＹＥＳ）、コンテンツ解析プログラム３０は、ステップ８７５に進む。ステップ８７５において、ファイルストレージ装置１４は、コンテンツ種類が「Ｅ」のコンテンツに用意された処理を実行する。コンテンツ種類が「Ｅ」でない場合（８３５：ＮＯ）、コンテンツ解析プログラム３０は、次のコンテンツ種類判定ステップに進む。【０１１３】
ファイルストレージ装置１４は、他のコンテンツ種類についても、上記ステップと同様のステップを実行する。コンテンツ種類固有の処理が用意してあるコンテンツ種類は有限個である。コンテンツ解析プログラム３０は、コンテンツ種類を順次判定する。受信したコンテンツのコンテンツ種類が、予め定義されているいずれのコンテンツ種類にも該当しない場合、コンテンツ解析プログラム３０は、ステップ８７６に進む。プロセッサ２１は、その他のコンテンツに対して用意されている処理を実行する。【０１１４】
各コンテンツ種類のステップ８７１〜８７６において、コンテンツ解析プログラム３０は、コンテンツ及び当該コンテンツの解析結果をデータ再配置プログラム３２に渡す。データ再配置プログラム３２は、コンテンツ処理情報５０を参照し、コンテンツ種類に対して予め定義されている方法に従って、コンテンツのデータ再配置処理を行う。【０１１５】
再配置後、重複排除プログラム３４及び圧縮伸長プログラム３６は、コンテンツ処理情報５０を参照し、コンテンツ種類に対して予め定義された方法により、再配置後コンテンツの重複排除処理及び圧縮処理をそれぞれ実行する。その後、コンテンツは、メディア領域２２に格納され、本フローは終了する。【０１１６】
図８は、図７が示すフローチャートにおけるステップ８７４、すなわちコンテンツ種類Ｄのコンテンツに対する処理の詳細のフローチャートを示す。コンテンツ種類Ｄのコンテンツ例１３０は、図４Ｄに示されている。【０１１７】
コンテンツ解析プログラム３０は、コンテンツＩＤ部１３１からコンテンツ種類の情報を得る。ステップ８７４は、コンテンツ解析プログラム３０がコンテンツ種類を決定した後に実行される。ステップ８７３において、ファイルストレージ装置１４（プロセッサ２１）は、対象コンテンツのコンテンツ種類が「Ｄ」であることを前提に処理を実行する。以下において、図４Ｄが示すコンテンツＤ（１３０）を図５Ｃに示すコンテンツＤ’（２４０）に変換する例を、図８のフローチャートに従って説明する。【０１１８】
コンテンツ解析プログラム３０は、コンテンツ処理情報５０の解凍カラムＴ１１を参照し、必要に応じてコンテンツを解凍する（３１０）。次に、コンテンツ解析プログラム３０は、コンテンツ構造情報５１におけるヘッダ部Ｈ０（１３２）の構造情報を参照し、ヘッダ部Ｈ０（１３２）から後続セグメントの構造情報を取得する（３１２）。ヘッダ部Ｈ０（１３２）は、ボディ部Ｄ０（１３３）の種類、位置（オフセット）及びデータ長、並びにヘッダ部Ｈ１（１３４）の種類、位置（オフセット）及びデータ長に関する情報を含む。【０１１９】
ヘッダ部Ｈ０（１３２）は、ボディ部Ｄ０（１３３）がサブコンテンツであることを示す。コンテンツ解析プログラム３０は、ボディ部Ｄ０（１３３）を解析する。コンテンツ解析プログラム３０は、ボディ部Ｄ０（１３３）のコンテンツＩＤ部ＩＤ１を参照して、サブコンテンツ０のコンテンツ種類を決定する。コンテンツ解析プログラム３０は、サブコンテンツ０の各セグメントの種類、位置（オフセット）及びサイズを決定する。【０１２０】
コンテンツ解析プログラム３０は、解析結果を、メモリ領域２０内で一時的に保持し、管理する（３１４）。解析結果は、各セグメントの再配置前オフセット、サイズ、再配置後オフセット及びセグメント種類を含む。ここでは、解析結果は、コンテンツＩＤ部１３１及びヘッダ部Ｈ０（１３２）の種類、位置及びサイズの情報に加え、ボディ部Ｄ０（１３３）の解析から得られた各セグメントの種類、位置及びサイズについての情報を含む。【０１２１】
コンテンツ解析プログラム３０は、コンテンツ処理情報５０を参照し、解析済みデータサイズが、分割サイズカラムＴ１０が示す分割サイズより大きいか判定する（３１６）。解析済みデータサイズが分割サイズ以下である場合（３１６：ＮＯ）、コンテンツ解析プログラム３０は、ステップ３１２に戻る。【０１２２】
本例において、解析済みデータサイズは分割サイズ以下であるため（３１６：ＮＯ）、コンテンツ解析プログラム３０は、次のヘッダ部Ｈ１（１３４）から、後続セグメントの構造情報を取得する。コンテンツ解析プログラム３０は、具体的には、ボディ部Ｄ１（１３５）及びヘッダ部Ｈ２（１３６）の種類、位置、及びサイズの情報を取得する（３１２）。【０１２３】
さらに、コンテンツ解析プログラム３０は、ボディ部Ｄ１（１３５）を解析する。コンテンツ解析プログラム３０は、ヘッダ部Ｈ１（１３４）及びボディ部Ｄ１（１３５）の構造情報を、メモリ領域２０に格納されている解析結果に追加する（３１４）。【０１２４】
コンテンツ解析プログラム３０は、解析済みデータサイズが分割サイズより大きいか判定する（３１６）。本例において、解析済みデータサイズは分割サイズより大きい（３１６：ＹＥＳ）。データ再配置プログラム３２は、コンテンツ解析プログラム３０からの指示に応じて、解析済みデータにおけるデータ再配置処理を実行する（３１８）。【０１２５】
データ再配置プログラム３２は、メモリ領域２０に一時的に格納されている解析済みデータの解析結果を参照し、解析済みデータにおけるデータ再配置処理を実行する。データ再配置プログラム３２は、解析済みデータにおいて、同一種類のセグメントを集約する。再配置済みデータは、図５Ｄにおける再配置後の分割部２４１からＦｉｌｅ  Ｒｅｃｉｐｅ２４２を除いたデータである。【０１２６】
データ再配置プログラム３２は、例えば、解析済みデータをコンテンツＤ（１３０）から選択する。データ再配置プログラム３２は、選択したデータにおいて同一種類のセグメントを集約するように、セグメントの順序を変更する。データ再配置プログラム３２は、セグメント順序を変更した再配置済みデータを、メモリ領域２０の他の領域に格納する。データ再配置プログラム３２は、再配置済みデータの各セグメントの種類、位置（オフセット）、及びサイズの情報をメモリ領域２０内に一時的に保持する。【０１２７】
次に、データ再配置プログラム３２は、再配置済み分割部２４１のＦｉｌｅ  Ｒｅｃｉｐｅ２４２を作成する（３２０）。データ再配置プログラム３２は、再配置前の解析結果から、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４２における、分割有無フィールドＴ２０、再配置前オフセットカラムＴ２１、及びサイズカラムＴ２２に値を格納する。ここでは、各エントリのブロックは、１セグメントに対応するとする。【０１２８】
次に、データ再配置プログラム３２は、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４２における各ブロックのデータ量削減方法を決定する（３２２）。データ再配置プログラム３２は、コンテンツ処理情報５０におけるコンテンツ種類Ｄのエントリを参照し、各セグメント種類のデータ削減方法を決定する。各セグメントのデータ量削減方法は、メモリ領域２０に格納される。データ再配置プログラム３２は、各ブロックとデータ削減方法との関係をメモリ領域２０内に格納する。【０１２９】
次に、コンテンツ解析プログラム３０からの指示に応じて、重複排除プログラム３４は、重複排除処理を実行する（３２４）。重複排除プログラム３４は、ステップ３２２において決定された重複排除処理適用ブロック（セグメント）の情報をメモリ領域２０から取得し、各適用ブロックにおいて重複排除処理を実行する。【０１３０】
重複排除プログラム３４は、固定長分割、可変長分割、又はファイル単位でデータを分割し、Ｆｉｎｇｅｒｐｒｉｎｔ（Ｈａｓｈなど）計算、バイナリ比較、又はＦｉｎｇｅｒｐｒｉｎｔとバイナリ比較の組み合わせなどを使用して、重複判定を行う。特定ブロックの重複排除を行うと決定した場合、重複排除プログラム３４は、当該ブロックを削除する。重複排除プログラム３４は、さらに、排除したデータの再配置後オフセットの値を格納先圧縮単位内オフセット／排除データ再配置後オフセットカラムＴ２４に格納し、重複排除先の参照情報で重複排除先カラムＴ２５を更新する。【０１３１】
重複排除プログラム３４は、本例において、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４のエントリのデータブロック全体で重複排除の判定を行う。重複排除プログラム３４は、エントリ内の部分データについて重複判定を行ってもよい。部分データについて重複判定を行う場合、重複排除先カラムＴ２８の一つのセルは、複数の参照を格納する場合がある。また、格納先圧縮単位内オフセット／排除データ再配置後オフセットカラムＴ２４は、削除データのサイズも示す。なお、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４の重複排除先の情報に加え又は代えて、重複排除先を示すポインタを削除したデータの開始位置に格納してもよい。【０１３２】
次に、コンテンツ解析プログラム３０からの指示に応じて、圧縮伸長プログラム３６は、圧縮処理を実行する（３２６）。圧縮伸長プログラム３６は、再配置及び重複排除後のコンテンツにおいて、圧縮単位を決定する。圧縮伸長プログラム３６は、同一種類の連続セグメントを一つの圧縮単位と決定する。圧縮伸長プログラム３６は、先頭の圧縮単位から連続番号を付与し、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４の圧縮番号カラムＴ２６及び圧縮前サイズカラムＴ２９に値を格納する。【０１３３】
圧縮伸長プログラム３６は、ステップ３２２において決定された圧縮処理適用ブロック（セグメント）の情報をメモリ領域２０から取得する。圧縮適用ブロックを含む圧縮単位に対して、圧縮処理が実行される。圧縮伸長プログラム３６は、圧縮アルゴリズムを、セグメント種類に応じて決定してもよい。圧縮適用後データが元データよりも大きい場合、圧縮伸長プログラム３６は、元データを採用する。【０１３４】
圧縮伸長プログラム３６は、各圧縮単位の圧縮処理に関する情報を、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４２に格納する。具体的には、圧縮伸長プログラム３６は、圧縮適用後オフセットカラムＴ２７、適用圧縮タイプカラムＴ２８、及び圧縮後サイズカラムＴ３０に各圧縮単位の情報を格納する。【０１３５】
次に、コンテンツ解析プログラム３０は、未解析データが残っているかを判定する（３２８）。未解析データが残っている場合（３２８：ＮＯ）、コンテンツ解析プログラム３０は、ステップ３１０に戻る。を繰り返す。未解析データが残っていない場合（３２８：ＹＥＳ）、コンテンツ解析プログラム３０は、当該フローを終了する。【０１３６】
図９は、図７で説明したステップ８７５、すなわち種別Ｄのコンテンツ処理の詳細を示すフローチャートである。コンテンツ種類Ｅのコンテンツ例１４０は、図４Ｅに示されている。コンテンツ１４０は、ログファイルのような特定の規則で書込まれたコンテンツである。【０１３７】
コンテンツ解析プログラム３０は、コンテンツＩＤ部からコンテンツ種類の情報を得る。ステップ８７４は、コンテンツ解析プログラム３０がコンテンツ種類を決定した後に実行される。ステップ８７４において、ファイルストレージ装置１４（プロセッサ２１）は、対象コンテンツのコンテンツ種類が「Ｅ」であることを前提に処理を実行する。【０１３８】
ステップ３５０は、図８のフローチャートにおけるステップ３１０と同様である。次に、コンテンツ解析プログラム３０は、コンテンツ１４０を先頭データから解析し、セグメントの種類、位置、及びサイズを決定する。セグメントは、区切り文字（カンマなど）で区切られ、列毎にセグメント種類が定義される。図４Ｅの例において、セグメント種類は、Ｃｏｌ．０〜Ｃｏｌ．５である。コンテンツ解析プログラム３０は、セグメントの解析結果をメモリ領域２０に格納する（３５４）。【０１３９】
次に、コンテンツ解析プログラム３０は、解析済みデータのサイズが、コンテンツ処理情報５０が示す分割サイズより大きいか判定する（３５６）。解析済みデータのサイズが分割サイズ以下である場合（３５６：ＮＯ）、コンテンツ解析プログラム３０は、ステップ３５４に戻る。【０１４０】
解析済みデータのサイズが分割サイズより大きい場合（３５６：ＹＥＳ）、データ再配置プログラム３２は、コンテンツ解析プログラム３０からの指示に応じて、解析済みデータにおけるデータ再配置処理を実行する（３５８）。なお、分割サイズが定義されていない場合、又はコンテンツサイズが分割サイズ以下である場合、コンテンツの全てのセグメントの解析終了後に、解析済みデータであるコンテンツ全体のデータ再配置処理（３５８）が実行される。【０１４１】
データ再配置プログラム３２は、解析済みデータをコンテンツＥ（１４０）から選択する。データ再配置プログラム３２は、選択したデータにおいて同一列のセグメントを集約するように、セグメントの順序を変更する。データ再配置プログラム３２は、セグメント順序を変更した再配置済みデータを、メモリ領域２０の他の領域に格納する。データ再配置プログラム３２は、再配置済みデータの各セグメントの種類、位置（オフセット）、及びサイズの情報をメモリ領域２０内に一時的に保持する。【０１４２】
次に、データ再配置プログラム３２は、再配置済みデータのＦｉｌｅ  Ｒｅｃｉｐｅ２４２を作成する（３６０）。データ再配置プログラム３２は、再配置前の解析結果から、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４２における、分割有無フィールドＴ２０、再配置前オフセットカラムＴ２１、及びサイズカラムＴ２２に値を格納する。ここでは、各エントリのブロックは、１セグメントに対応するとする。【０１４３】
次に、データ再配置プログラム３２は、各列のデータ量削減方法を決定する（３６２）。データ再配置プログラム３２は、コンテンツ処理情報５０におけるコンテンツ種類Ｅのエントリを参照し、各セグメント種類（各列）のデータ削減方法を決定する。本例において、重複排除処理は適用されず、所定の列に対して所定の圧縮処理が適用されるとする。各列の圧縮処理の適用の有無及び適用される圧縮方法は、メモリ領域２０に格納される。【０１４４】
次に、コンテンツ解析プログラム３０からの指示に応じて、圧縮伸長プログラム３６は、圧縮処理を実行する（３６６）。圧縮伸長プログラム３６は、圧縮単位を決定する。圧縮単位は、各列の集約セグメントグループである。圧縮伸長プログラム３６は、先頭の圧縮単位から連続番号を付与し、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４の圧縮番号カラムＴ２６及び圧縮前サイズカラムＴ２９に値を格納する。【０１４５】
圧縮伸長プログラム３６は、ステップ３６２において決定された各列の圧縮方法の情報をメモリ領域２０から取得する。各列の集約セグメントグループに対して、圧縮処理が実行される。圧縮伸長プログラム３６は、圧縮アルゴリズムを、列に応じて決定してもよい。圧縮適用後データが元データよりも大きい場合、圧縮伸長プログラム３６は、元データを採用する。【０１４６】
圧縮伸長プログラム３６は、各圧縮単位の圧縮処理に関する情報を、Ｆｉｌｅ  Ｒｅｃｉｐｅ２４２に格納する。具体的には、圧縮伸長プログラム３６は、圧縮適用後オフセットカラムＴ２７、適用圧縮タイプカラムＴ２８、及び圧縮後サイズカラムＴ３０に各圧縮単位の情報を格納する。【０１４７】
次に、コンテンツ解析プログラム３０は、未解析データが残っているかを判定する（３６８）。未解析データが残っている場合（３６８：ＮＯ）、コンテンツ解析プログラム３０は、ステップ３１０に戻る。を繰り返す。未解析データが残っていない場合（３６８：ＹＥＳ）、コンテンツ解析プログラム３０は、当該フローを終了する。【０１４８】
図１０は、コンテンツの読み出し処理４００のフローチャートを示す。不図示のメディアＩ／Ｏプログラムは、対象コンテンツをメディア領域２２から読み出す（４１０）。次に、圧縮伸長プログラム３６は、Ｆｉｌｅ  ＲｅｃｉｐｅのカラムＴ２６〜Ｔ３０を参照し、圧縮単位の伸長処理を行う（４１２）。【０１４９】
次に、重複排除プログラム３４は、Ｆｉｌｅ  ＲｅｃｉｐｅのカラムＴ２４及びＴ２５を参照し、重複排除されたブロックのデータを重複排除先から取得し、コンテンツに格納する（４１４）。次に、データ再配置プログラム３２は、Ｆｉｌｅ  ＲｅｃｉｐｅのカラムＴ２１〜Ｔ２４を参照し、ブロック毎にデータを再配置する（４１６）。【０１５０】
上記ステップ４１２、４１４、及び４１６により、ホストが格納したデータ構造のコンテンツが再現される。ファイルストレージ装置１４は、再現されたコンテンツをホストへ転送する（４１８）。以上のステップにより、ホストが格納したデータ構造のコンテンツをホストに返すことができる。【０１５１】
本実施例は、同一種類のセグメントを集約するデータ再配置処理の後にデータ量削減処理を実行するので、効果的にコンテンツのデータ量を削減することができる。なお、データ量削減方法の情報は、Ｆｉｌｅ  Ｒｅｃｉｐｅとか異なる場所に格納されていてもよい。本実施例のコンテンツ処理は、ファイルストレージ装置とは異なる構成のストレージ装置に適用することができる。【０１５２】
なお、セグメント種類は、ファイルストレージ装置内で定義された種類であって、他の定義におけるセグメント種類と異なっていてよい。ファイルストレージ装置は、一部のセグメント種類のセグメントのみを集約してもよい。
【実施例２】
【０１５３】
本実施例は、ファイルストレージヘッド６４とブロックストレージ装置７０から構成されるファイルストレージ装置を説明する。ファイルストレージヘッド６４とブロックストレージ装置７０が協調して、実施例１で示した処理を実行する。以下においては、実施例１との相違点を主に説明する。【０１５４】
図１１は、本実施例の概略を示す。ファイルストレージヘッド６４のメモリ領域２０は、コンテンツ解析プログラム３０を格納している。ブロックストレージ装置７０のメモリ領域７２は、データ再配置プログラム３２、重複排除プログラム３４、及び圧縮伸長プログラム３６を格納している。【０１５５】
ホスト１０は、更新要求と共に、コンテンツＸ４０をファイルストレージヘッド６４に送信する。コンテンツ解析プログラム３０は、コンテンツ処理情報５０及びコンテンツ構造情報５１に従って、コンテンツＸ４０を解析する。【０１５６】
コンテンツ解析プログラム３０は、コンテンツ処理指示５４を作成し、コンテンツ処理指示５４をコンテンツＸ４０と共に、ブロックストレージ装置７０に送信する。ブロックストレージ装置７０は、コンテンツ処理指示５４に従って、コンテンツＸ４０のデータ再配置処理、重複排除処理、及び圧縮処理を行い、メディア領域２２に格納する。【０１５７】
図１２は、ファイルストレージヘッド６４とブロックストレージ装置７０のハードウェア構成例を示す。ファイルストレージヘッド６４とブロックストレージ装置７０は、１つの管理システム１８と管理ネットワーク１６を介して通信する。ファイルストレージヘッド６４とブロックストレージ装置７０は、データネットワークによって接続されている。データネットワーク１７は、例えば、ＳＡＮである。【０１５８】
ファイルストレージヘッド６４は、Ｉ／Ｆ８０を介してデータネットワーク１７に接続する。ブロックストレージ装置７０は、Ｉ／Ｆ８２を介してデータネットワーク１７に接続し、Ｉ／Ｆ７６を介して管理システム１８と通信する。ブロックストレージ装置７０はプロセッサ８４を含む。プロセッサ８４は、メモリ７５に格納されているデータ再配置プログラム３２、重複排除プログラム３４、及び圧縮伸長プログラム３６を含む様々なプログラムに従って動作して、所定の機能を実現する。【０１５９】
プロセッサ２１及びメモリ２５は、ファイルストレージヘッド６４のコントローラの一例であり、プロセッサ８４及びメモリ７５は、ブロックストレージ装置７０のコントローラの一例である。プロセッサ２１、８４それぞれの少なくとも一部機能は、他の論理回路で実装されてもよい。【０１６０】
図１３は、コンテンツ処理指示５４の例を示す。コンテンツ処理指示５４は、Ｆｉｌｅ  Ｒｅｃｉｐｅと同法の構造を有している。具体的には、コンテンツ処理指示５４は、分割有無フィールドＴ３１、再配置後オフセットカラムＴ３６、サイズカラムＴ３５、再配置前オフセットカラムＴ３４、圧縮カラムＴ３７、及び重複排除カラムＴ３８を含む。【０１６１】
コンテンツ解析プログラム３０は、実施例１において説明したＦｉｌｅ  Ｒｅｃｉｐｅの作成と同様の方法で、受信したコンテンツのコンテンツ種類、コンテンツ処理情報５０、及びコンテンツ構造情報５１に基づいて、コンテンツ処理指示５４を作成する。コンテンツが複数部分に分割される場合、分割部毎にコンテンツ処理指示５４が作成される。例えば、各コンテンツ処理指示５４には再配置前の分割部の順序に応じたシーケンス番号が付与される。【０１６２】
分割有無フィールドＴ３１は、再配置前の分割を実行するか否かを示す。分割を実行する場合、分割有無フィールドＴ３１は、さらに、分割サイズを示す。コンテンツ解析プログラム３０は、コンテンツサイズと規定の分割サイズとを比較して、コンテンツサイズが規定の分割サイズよりも大きい場合、コンテンツを、それぞれが分割サイズ以下である複数部分に分割することを決定する。各分割部の決定は、図８のフローチャートを参照して説明した通りである。【０１６３】
再配置後オフセットカラムＴ３６は、再配置後の各ブロックのオフセットを示す。サイズカラムＴ３５は、各ブロックのデータ長を示す。再配置前オフセットカラムＴ３４は、再配置前の各ブロックのオフセットを示す。コンテンツ解析プログラム３０は、実施例１においてデータ再配置プログラム３２により実行されたデータ再配置処理と同様の方法で、各ブロックの再配置先を決定する。【０１６４】
圧縮カラムＴ３７、及び重複排除カラムＴ３８は、それぞれ、各ブロックに圧縮及び重複排除を適用するか否かを示す。コンテンツ解析プログラム３０は、実施例１において説明した方法により各ブロックのデータ量削減方法を決定し、それらを示す情報を圧縮カラムＴ３７及び重複排除カラムＴ３８に格納する。【０１６５】
ブロックストレージ装置７０において、データ再配置プログラム３２、重複排除プログラム３４及び圧縮伸長プログラム３６は、それぞれ、コンテンツ処理指示５４に従ってコンテンツに対する処理を実行する。コンテンツに対して複数のコンテンツ処理指示５４が存在する場合、ブロックストレージ装置７０は、コンテンツ処理指示５４が示す部分毎に処理を行う。【０１６６】
データ再配置プログラム３２は、分割有無フィールドＴ３１を参照し、分割有無フィールドＴ３１が「有」を示す場合、分割有無フィールドＴ３１が示すサイズのデータに対してデータ再配置を実行する。データ再配置プログラム３２は、コンテンツ処理指示５４における各エントリのブロックを、再配置後オフセットカラムＴ３６が示す位置に再配置する。【０１６７】
重複排除プログラム３４は、再配置処理されたデータにおいて、コンテンツ処理指示５４が重複排除処理の適用を示すブロックを選択し、重複排除処理を実行する。重複排除処理は実施例１と同様でよい。重複排除プログラム３４は、重複排除先を示すポインタをコンテンツ内に格納する、又はコンテンツ処理指示５４に格納する。【０１６８】
圧縮伸長プログラム３６は、重複排除処理されたデータの圧縮処理を実行する。圧縮伸長プログラム３６は、コンテンツ処理指示５４が圧縮処理の適用を示すブロックを選択し、圧縮処理を実行する。圧縮処理は実施例１と同様でよい。【０１６９】
コンテンツ処理指示５４は、コンテンツと共にメディア領域２２に格納される。コンテンツの読み出しにおいて、データ再配置プログラム３２、重複排除プログラム３４及び圧縮伸長プログラム３６は、コンテンツ処理指示５４を参照してコンテンツを処理する。コンテンツ読み出しにおける各プログラムのデータ処理は、実施例１において説明したコンテンツ読み出しにおいて説明した通りである。【０１７０】
本実施例においては、ファイルストレージヘッド６４がコンテンツ解析を実行し、ブロックストレージ装置７０がデータ再配置処理及びデータ量削減処理を実行することで、ファイルストレージヘッド６４の負荷を低減し、ファイルストレージ装置全体のパフォーマンスを向上することができる。【０１７１】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。【０１７２】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示すとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【図１】
2016084228.tif 000003
【図２】
2016084228.tif 000004
【図３】
2016084228.tif 000005
【図４Ａ】
2016084228.tif 000006
【図４Ｂ】
2016084228.tif 000007
【図４Ｃ】
2016084228.tif 000008
【図４Ｄ】
2016084228.tif 000009
【図４Ｅ】
2016084228.tif 000010
【図５Ａ】
2016084228.tif 000011
【図５Ｂ】
2016084228.tif 000012
【図５Ｃ】
2016084228.tif 000013
【図５Ｄ】
2016084228.tif 000014
【図５Ｅ】
2016084228.tif 000015
【図５Ｆ】
2016084228.tif 000016
【図６】
2016084228.tif 000017
【図７】
2016084228.tif 000018
【図８】
2016084228.tif 000019
【図９】
2016084228.tif 000020
【図１０】
2016084228.tif 000021
【図１１】
2016084228.tif 000022
【図１２】
2016084228.tif 000023
【図１３】
2016084228.tif 000024
【国際調査報告】
2016084228.tif 000025
2016084228.tif 000026
2016084228.tif 000027
2016084228.tif 000028