(57)【特許請求の範囲】
【請求項１】
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファと、
前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除するデータ書込手段と、
前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する分離前データ書込手段と、
前記ファイルを構成する前記データを全て外部から受信した後に、前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する再分離処理手段と、を備えた、
ストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記分離前データ書込手段は、前記分離前データ格納手段に格納した前記データのデータ量を表す有効長情報を記憶する、
ストレージ装置。
【請求項３】
請求項２に記載のストレージ装置であって、
前記再分離処理手段は、前記分離前データ格納手段に格納された前記データを前記データ格納手段に記憶したときに、当該データのデータ量の値を前記有効長情報から減算し、
前記有効長情報の値に応じて、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
ストレージ装置。
【請求項４】
請求項３に記載のストレージ装置であって、
前記有効長情報の値が０である場合に、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
ストレージ装置。
【請求項５】
請求項１乃至４のいずれか一項に記載のストレージ装置であって、
外部からの前記ファイルの読み込み要求に応じて、当該ファイルを構成する前記データを、当該データが格納されている前記データ格納手段あるいは前記分離前データ格納手段から読み込むデータ読込手段を備えた、
ストレージ装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のストレージ装置であって、
前記データ部分は、前記ファイルのデータ内容に応じたデータであり、
前記マーカ部分は、前記ファイルの保存時の状況に応じて変化するデータである、
ストレージ装置。
【請求項７】
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファを備えた情報処理装置に、
前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除するデータ書込手段と、
前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する分離前データ書込手段と、
前記ファイルを構成する前記データを全て外部から受信した後に、前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する再分離処理手段と、
を実現させるためのプログラム。
【請求項８】
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時バッファに一時的に格納し、
前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除し、
前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納し、
前記ファイルを構成する前記データを全て外部から受信した後に、前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置にかかり、特に、同一内容のデータの重複記憶を排除するストレージ装置に関する。
【背景技術】
【０００２】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。【０００３】
このような状況に応じて、近年では、特許文献１に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。【０００４】
そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。【０００５】
また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される例えばデータのハッシュ値を用いる。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。【０００６】
また、コンテンツアドレスストレージシステムでは、ツリー型ファイルシステムが用いられている。これは、格納したデータを参照するコンテンツアドレス自体を、さらに上位階層に位置するコンテンツアドレスにて参照し、コンテンツアドレスをツリー構造に形成して格納する、というものである。これにより、上位階層から下位階層に向かって、コンテンツアドレスの参照先を辿っていくことで、目的の格納データにアクセスすることができる。【０００７】
ここで、図１を参照して、ツリー型ファイルシステムに構造型ファイルを格納するときのファイルの特徴について説明する。図１は、一般的な構造型ファイルの様子を示している。ツリー型ファイルシステムを持つコンテンツアドレスストレージシステムでは、図１の上図に示すように、ファイルを重複排除するまとまり（以下、格納単位）毎にフラグメントに分割して格納する。そして、例えば、アーカイブファイルや通信データのようなデータ列は、データにヘッダやトレーラと言われる付属情報が付いており、ひとまとまりのデータとして分離できる（以下、分離単位）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２３５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述したファイルを構成するデータの一部であるヘッダやトレーラの中に、タイムスタンプや通番などのように時間や回数の違いによって値が変化するものがあると、重複排除の妨げとなる。ここで、図１の下図に示すように、重複排除の妨げとなる部分を特に「マーカ」と示し、時間や回数を経過しても値が変わらない部分を「データ」と示す。そして、図１の上図に示すファイル１の構造を、「マーカ」と「データ」とを用いて下図のように示す。この図に示すように、ファイルの格納単位に「マーカ」が含まれると、同じデータの２回目以降の書き込みであっても、格納単位全体におけるデータ内容が完全に同一とはならないため、データの重複排除ができず、データの格納効率が低下する、という問題が生じる。【００１０】
このため、本発明の目的は、上述した課題である、データ格納効率の低下を解決することにある。
【課題を解決するための手段】
【００１１】
かかる目的を達成するため本発明の一形態であるストレージ装置は、
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファと、
上記一時バッファに格納された上記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、上記一時バッファから削除するデータ書込手段と、
上記一時バッファに格納された上記データのうち、相互に対応する上記データ部分と上記マーカ部分とに分離できない上記データを、分離前データ格納手段に格納する分離前データ書込手段と、
上記分離前データ格納手段に格納された上記データを、予め設定された基準に従って、相互に対応する上記データ部分と上記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて上記データ格納手段に記憶すると共に、上記分離前データ格納手段から削除する再分離処理手段と、を備えた、
という構成をとる。【００１２】
また、本発明の他の形態であるプログラムは、
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファを備えた情報処理装置に、
上記一時バッファに格納された上記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、上記一時バッファから削除するデータ書込手段と、
上記一時バッファに格納された上記データのうち、相互に対応する上記データ部分と上記マーカ部分とに分離できない上記データを、分離前データ格納手段に格納する分離前データ書込手段と、
上記分離前データ格納手段に格納された上記データを、予め設定された基準に従って、相互に対応する上記データ部分と上記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて上記データ格納手段に記憶すると共に、上記分離前データ格納手段から削除する再分離処理手段と、
を実現させるためのプログラムである。【００１３】
また、本発明の他の形態であるデータ処理方法は、
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時バッファに一時的に格納し、
上記一時バッファに格納された上記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、上記一時バッファから削除し、
上記一時バッファに格納された上記データのうち、相互に対応する上記データ部分と上記マーカ部分とに分離できない上記データを、分離前データ格納手段に格納し、
上記分離前データ格納手段に格納された上記データを、予め設定された基準に従って、相互に対応する上記データ部分と上記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて上記データ格納手段に記憶すると共に、上記分離前データ格納手段から削除する、
という構成をとる。
【発明の効果】
【００１４】
本発明は、以上のように構成されることにより、データ格納効率の向上を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】ファイルのデータ構造の一例を示す図である。
【図２】本発明の実施形態１におけるストレージシステムを含むシステム全体の構成を示すブロック図である。
【図３】本発明の実施形態１におけるストレージシステムの構成の概略を示すブロック図である。
【図４】本発明の実施形態１におけるストレージシステムの構成を示す機能ブロック図である。
【図５】図４に開示したストレージシステムにおけるデータ記憶処理の様子を説明するための説明図である。
【図６】図４に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。
【図７】図４に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。
【図８】図４に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。
【図９】図４に開示したストレージシステムにおけるデータ記憶処理及び読込処理の様子を説明する説明図である。
【図１０】図４に開示したストレージシステムにおけるファイルの受信時の様子を説明する説明図である。
【図１１】図４に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。
【図１２】図４に開示したストレージシステムにおけるデータ記憶処理の様子を説明する説明図である。
【図１３】図４に開示したストレージシステムにおけるデータ記憶処理の動作を示すフローチャートである。
【図１４】図４に開示したストレージシステムにおけるデータ記憶処理の動作を示すフローチャートである。
【図１５】付記１におけるストレージシステムの構成を示す機能ブロック図である。
【発明を実施するための形態】
【００１６】
＜実施形態１＞
本発明の第１の実施形態を、図２乃至図１４を参照して説明する。図２は、システム全体の構成を示すブロック図である。図３は、ストレージシステムの概略を示すブロック図であり、図４は、構成を示す機能ブロック図である。図５乃至図１２は、ストレージシステムにおけるデータ記憶処理の動作を説明するための説明図である。図１３乃至図１４は、ストレージシステムの動作を示すフローチャートである。
【００１７】
ここで、本実施形態は、後述する付記に記載のストレージ装置等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、１台のコンピュータで構成されていてもよい。
【００１８】
［構成］
図２に示すように、本発明におけるストレージシステム１００は、ネットワークＮを介してバックアップ処理を制御するバックアップシステム１１０に接続している。そして、バックアップシステム１１０は、ネットワークＮを介して接続されたバックアップ対象装置１２０に格納されているバックアップ対象データ（ファイル）を取得し、ストレージシステム１００に対して記憶するよう要求する。これにより、ストレージシステム１００は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
【００１９】
そして、図３に示すように、本実施形態におけるストレージシステム１００は、複数のサーバコンピュータが接続されて構成を採っている。具体的に、ストレージシステム１００は、ストレージシステム１００自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード１０１と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード１０２と、を備えている。なお、アクセラレータノード１０１の数とストレージノード１０２の数は、図３に示したものに限定されず、さらに多くの各ノード１０１，１０２が接続されて構成されていてもよい。
【００２０】
さらに、本実施形態におけるストレージシステム１００は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
【００２１】
なお、以下では、ストレージシステム１００が１つのシステムであるとして、当該ストレージシステム１００が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム１００が有する構成及び機能は、アクセラレータノード１０１あるいはストレージノード１０２のいずれに備えられていてもよい。なお、ストレージシステム１００は、図３に示すように、必ずしもアクセラレータノード１０１とストレージノード１０２とを備えていることに限定されず、いかなる構成であってもよく、例えば、１台のコンピュータにて構成されていてもよい。さらには、ストレージシステム１００は、コンテンツアドレスストレージシステムであることにも限定されない。
【００２２】
図４に、本実施形態におけるストレージシステム１０の構成を示す。この図に示すように、ストレージシステム１０は、上述したバックアップ対象装置１２０やバックアップシステム１１０に該当するユーザアプリケーション１に接続されており、このユーザアプリケーション１からの要求に応じて、ファイルを記憶したり、読み出す処理を行うものである。
【００２３】
そして、ストレージシステム１０は、データを記憶するハードディスクドライブなどの記憶装置である、データ格納部３１と、分離前データ格納部３２と、を備えている。また、ストレージシステム１０は、フラッシュメモリなどの一時的な記憶装置である到着待ちバッファ３０を備えている。さらに、ストレージシステム１０は、装備された演算装置にプログラムが組み込まれることによって構築された、書込処理部１１と、読込処理部１２と、データ・マーカ検索部１３と、データ・マーカ分離部１４と、データ・マーカ結合部と、分離前データ書込部２１と、分離前データ読込部２２と、再処理部２３と、データ書込部２４と、マーカ書込部２５と、インデックス書込部２６と、インデックス読込部２７と、データ読込部２８と、マーカ読込部２９と、を備えている。
【００２４】
なお、実際には、上述したストレージシステム１０が備える構成は、図３に示したアクセラレータノード１０１及びストレージノード１０２が備えているＣＰＵ（Central Processing Unit）などの複数の演算装置や記憶装置にて構成されている。
【００２５】
ここで、上述したように、本実施形態におけるストレージシステム１０は、コンテンツアドレスストレージシステムである。このため、上述したデータ格納部３１は、コンテンツアドレスを利用してデータが格納される記憶部であり、データ書込部２４、マーカ書込部２５、インデックス書込部２６は、以下のように、データを分割及び分散し、かつ、コンテンツアドレスにて格納位置を特定して、データを格納する。以下、ストレージシステム１０にてコンテンツアドレスを利用したデータ記憶処理について、図５乃至図６を参照して説明する。
【００２６】
まず、図５に示すように、ユーザアプリケーション１から書き込み要求されたファイルＡの入力を受けると（矢印Ｙ１）、図５及び図６の矢印Ｙ２に示すように、当該ファイルＡを、所定容量（例えば、６４ＫＢ）のブロックデータＤに分割する。そして、このブロックデータＤのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Ｈを算出する（矢印Ｙ３）。例えば、ハッシュ値Ｈは、予め設定されたハッシュ関数を用いて、ブロックデータＤのデータ内容から算出する。
【００２７】
続いて、ファイルＡのブロックデータＤのハッシュ値Ｈを用いて、当該ブロックデータＤが既に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータＤは、そのハッシュ値Ｈと格納位置を表すコンテンツアドレスＣＡとが、関連付けられてＭＦＩ（Ｍａｉｎ  Ｆｒａｇｍｅｎｔ  Ｉｎｄｅｘ）ファイルに登録されている。従って、格納前に算出したブロックデータＤのハッシュ値ＨがＭＦＩファイル内に存在している場合には、既に同一内容のブロックデータＤが格納されていると判断できる（図６の矢印Ｙ４）。この場合には、格納前のブロックデータＤのハッシュ値Ｈと一致したＭＦＩ内のハッシュ値Ｈに関連付けられているコンテンツアドレスＣＡを、当該ＭＦＩファイルから取得する。そして、このコンテンツアドレスＣＡを、書き込み要求されたブロックデータＤのコンテンツアドレスＣＡとして返却する。これにより、このコンテンツアドレスＣＡにて参照される既に格納されているデータが、書き込み要求されたブロックデータＤとして使用されることとなり、当該書き込み要求にかかるブロックデータＤを記憶する必要がなくなる。
【００２８】
また、書き込み要求にかかるブロックデータＤがまだ記憶されていないと判断された場合には、かかるブロックデータＤを圧縮して、図６の矢印Ｙ５に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図５の符号Ｄ１〜Ｄ９に示すように、９つのフラグメントデータ（分割データ４１）に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ４１に追加する。例えば、図５の符号Ｄ１０〜Ｄ１２に示すように、３つのフラグメントデータ（冗長データ４２）を追加する。これにより、９つの分割データ４１と、３つの冗長データとにより構成される１２個のフラグメントデータからなるデータセット４０を生成する。
【００２９】
続いて、上述したように生成されたデータセットを構成する各フラグメントデータを、記憶装置に形成された各記憶領域に、それぞれ分散して格納する。例えば、図５に示すように、１２個のフラグメントデータＤ１〜Ｄ１２を生成した場合には、複数の記憶装置内にそれぞれ形成したデータ格納ファイルに、各フラグメントデータＤ１〜Ｄ１２を１つずつそれぞれ格納する（図６の矢印Ｙ６参照）。
【００３０】
続いて、ストレージシステム１０は、上述したように格納したフラグメントデータＤ１〜Ｄ１２の格納位置、つまり、当該フラグメントデータＤ１〜Ｄ１２にて復元されるブロックデータＤの格納位置を表すコンテンツアドレスＣＡを生成して管理する。具体的には、格納したブロックデータＤの内容に基づいて算出したハッシュ値Ｈの一部（ショートハッシュ）（例えば、ハッシュ値Ｈの先頭８Ｂ（バイト））と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスＣＡを生成する。そして、このコンテンツアドレスＣＡを、ストレージシステム１０内のファイルシステムに返却する（図６の矢印Ｙ７）。すると、ストレージシステム１０は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスＣＡとを関連付けてファイルシステムで管理する。
【００３１】
また、ブロックデータＤのコンテンツアドレスＣＡと、当該ブロックデータＤのハッシュ値Ｈと、を関連付けて、各ストレージノード１０２がＭＦＩファイルにて管理する。このように、上記コンテンツアドレスＣＡは、ファイルを特定する情報やハッシュ値Ｈなどと関連付けられて、アクセラレータノード１０１やストレージノード１０２の記憶装置に格納される。
【００３２】
さらに、ストレージシステム１０は、上述したように格納したファイルを読み出す制御を行う。例えば、ユーザアプリケーション１からストレージシステム１０に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスＣＡを指定する。そして、コンテンツアドレスＣＡがＭＦＩファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
【００３３】
一方、読み出し要求にかかるコンテンツアドレスＣＡが登録されている場合には、上記コンテンツアドレスＣＡにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち１つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
【００３４】
そして、読み出し要求に応じて読み出した各フラグメントデータからブロックデータＤを復元する。さらに、復元したブロックデータＤを複数連結し、ファイルＡなどの一群のデータに復元して返却する。
【００３５】
以上のようにして、本実施形態におけるストレージシステム１０はデータの重複を排除しているが、さらにデータ格納効率を高めるための構成をとなっている。かかる構成について詳述する。
【００３６】
まず、本実施形態におけるストレージシステム１０は、上述したようにデータ・マーカ分離部１４を備えている。このデータ・マーカ分離部１４は、ファイルの実データ部分であり生成された時間や更新回数などによっても値が変化しない「データ」部分と、タイムスタンプや通番などのように時間や更新回数などの違いによって値が変化する「マーカ」部分と、に分離する。そして、データ・マーカ分離部１４は、ユーザアプリケーション１から書き込み要求されたファイルを構成する一部データを、所定のタイミングで「データ」部分と「マーカ」部分とに分離する。このとき、後述するように、書き込み要求されたファイルを構成するデータであり順次送信される一部データは、到着待ちバッファ３０、あるいは、分離前データ格納部３２に格納されるが、データ・マーカ分離部１４は、状況に応じて、いずれか一方から読み出して、「データ」部分と「マーカ」部分とに分離する。ここで、データ・マーカ分離部１４によるデータ分離処理の基本的な動作を説明する。
【００３７】
なお、ここでは、ストレージシステム１０に構築されたファイルシステムの構成は、例えば、分離前データファイルを格納する一般的なUNIX（登録商標）ファイルシステムUFS1（UFS：Unix File System）と、インデックスで参照可能なように分離されたデータとマーカを格納するコンテンツアドレスファイルシステムCAFS1（CAFS：Content Address File System）と、これらふたつのファイルシステムに格納されたファイルを間接的に参照可能とする仮想FS1と、から構成される。そして、仮想FS1（FS：File System）の配下には、ツリー型ファイルシステムがあり、例えば、ファイル１に対する書き込みのアクセスは、ユーザアプリケーション１からの書き込み要求のことを示している。
【００３８】
但し、上述したファイルシステムの名称や、マウントしている場所などは、上述したものに限定されない。また、参照先をシンボリックリンクファイルと同様の実装としてもよく、i-node番号のような一意な値を利用し、計算で求めるように実装してもよい。さらに、仮想ファイルシステムは、OS（Operating System）カーネルの変更やカーネルモジュールの追加によって実現しても良いし、FUSE（Filesystem in Userspace）に代表されるユーザ空間でファイルシステムを作成する技術を用いてもよく、これら技術によって本発明の構成が限定されるものではない。
【００３９】
図７は、到着待ちバッファ３０に格納されたファイル１を構成する一部データを、「データ」部分と「マーカ」部分とに分離するときの様子を示している。この場合に、まず、ストレージシステム１０は、ファイル１を構成する一部データを順次受信し、到着待ちバッファ３０に格納するが、データ・マーカ分離部１４は、到着待ちバッファ３０に格納された一部データを、当該到着待ちバッファ３０に格納されるとすぐに、「データ」部分と「マーカ」部分とに分離する。なお、かかる分離処理を、「インライン方式」と呼ぶこととする。
【００４０】
そして、ファイルを構成する一部データは、分離した「データ」部分と「マーカ」部分とを読み込み時に結合できるよう、インデックス情報を付け加え、図７の下図に示すように、インデックス情報からリンクされたデータファイルとマーカファイルの３つのファイルに分離して格納される（図９参照）。そして、ファイル１の参照先は、インデックスファイルに向けられる。
【００４１】
なお、上記３つのファイルのうち、データファイルは重複排除の効果が期待でき、インデックスファイルやマーカファイルは重複排除の効果があまり期待できない。このため、データファイルのみをコンテンツアドレスを利用して格納するデータ格納部３１に格納するのが最も効率的である。但し、インデックスファイルやマーカファイルもコンテンツアドレスを利用してデータ格納部３１に格納してもよい。
【００４２】
そして、ユーザアプリケーション１からのファイルの参照は、読込処理部１２を経由して行うことができる。例えば、ユーザアプリケーション１から仮想ファイルシステム上のファイル１に対応するインデックス情報と、データと、マーカとを読み出して結合することによって（図９参照）、ファイル１を復元し、ユーザアプリケーション１へ渡す。
【００４３】
次に、図８は、データ・マーカ分離部１４にて、分離前データ格納部３２に格納された一部データを分離する処理を示している。なお、かかる分離処理を、「オフライン方式」と呼ぶこととする。
【００４４】
この場合には、まず、ユーザアプリケーション１からファイル１の書き込み要求があると、当該ファイル１が、図８の下図に示すように、分離前データ格納部３２内に分離前データファイル１として格納される。このとき、図８に示すように、仮想ファイルシステム（仮想ＦＳ）１上のファイル１は実体を持たず、その参照先だけを持っている。これは、例えば、シンボリックリンクファイルのような実装としても良いし、ファイルのi-node番号を利用し計算によって参照先を求める方式をとってもよい。なお、参照先となっている分離前データ格納部３２は、コンテンツアドレスストレージシステムではなく、通常のファイルシステムが望ましい。なぜなら、この時点ではファイル１にマーカが含まれており、そのようなファイルおよびデータは、重複排除が困難であるからである。
【００４５】
そして、ファイル１がすべて書き込まれ、クローズされたことを契機に、データ・マーカ分離部１４にて、分離前データ格納部３２に格納された一部データを、「データ」部分と「マーカ」部分とに分離する。このとき、後の読み込みに備え、結合できるようにインデックス情報を付け加える。分離がすべて終了と、上述した図７や図９に示すように、インデックス情報からリンクされたデータファイルとマーカファイルの３つのファイルに分離され、データ格納部３１にコンテンツアドレスを利用して格納される。このとき、ファイル１の参照先は、インデックスファイルに向けられる。
【００４６】
なお、上述したようにファイル１をデータ格納部３１に格納した後に、分離前データ格納部３２に格納されているファイルを、直ちに消しても良いし、十分な空き容量があるならば、残しておいても良い。そしてさらには、空き容量の不足に対処するために、例えば、LRU（Least Recently Used）制御で使用頻度の低いものから順に消しても良い。これは、ファイルの更新や追加を行うときは、再度、分離前データ格納部３２にファイルイメージを作成したのち、再度、データとマーカの分離を行うときのキャッシュイメージとして用いることができるためである。
【００４７】
また、上述したファイル１の読み込みは、分離前データ格納部３２からも可能である。例えば、ユーザアプリケーション１から仮想ファイルシステム上のファイル１に対する読み込みが行われるとは、ファイル１の参照先より、対象のファイルが、分離前データ格納部３２にあるか、データ格納部３１にあるかを判断する。そして、対象のファイルが分離前データ格納部３２にあるときは、当該分離前データ格納部３２からファイル１の内容を取得する。また、対象のファイルがデータ格納部３１にあるときは、上述したようにインデックス情報を取得し、当該インデックス情報にてリンクされているデータとマーカとを結合することによって（図９参照）、元のファイルに復元される。
【００４８】
ここで、上述したファイル１の書き込み方法においては、ネットワークを経由して書き込みを行うときの速度を向上させるために、通信の多重度を増やすことがある。特にレイテンシが長いときは、多重度を増やしウインドウ制御を行うことで帯域をかせぐ工夫が行われる。このようなとき、図１０に示すように、ファイルの一部が未到着となることがある。例えば、LinuxやSolarisなどUNIX系OSで多く実装されているNFS（Network File System）では、ファイルオフセットを示し、独立してデータが到着する方式をとり、帯域をかせいでいる。一般的なファイルシステムの場合、オフセットをずらし、書き込むことができる。
【００４９】
しかし、データとマーカを分離し格納する場合は、一般に、マーカは次のマーカを示しているため、ファイルの先頭から順に走査する構造を持つ。このため、データの一部が未到着のときは、バッファリングし、データがそろうまで走査をペンディングする必要がある。
【００５０】
このとき、データ到着に対する応答を返却しない方法や、リトライを返却する方法で、未到着部分がそろうのを待つ方法が考えられる。ところが、インライン方式でデータとマーカを分離する場合には、全データ格納完了までの時間が伸びてしまい、スループットが低下する。一方で、スループットの低下を避けるために、後続のデータとマーカの分離をあきらめることができるが、かかる場合には重複排除率が低くなる。
【００５１】
さらに、オフライン方式でデータとマーカを分離する手段では、一旦、すべてを分割前データ格納部に格納し、後に一括して分離処理を行うため、オフセットをずらした書き込みは問題なく処理可能であるが、追加の記憶容量が必要となり、また、データ格納完了までの時間がかかる。
【００５２】
上述したようなことから、本実施形態におけるストレージシステム１０では、さらに、重複排除効率を高めつつ、追加の記憶容量を抑制すべく、以下のような構成をとっている。
【００５３】
まず、書込処理部１１は、ユーザアプリケーション１からの書き込みの要求を受ける。そして、データ・マーカ検索部１３は、ユーザアプリケーション１から書き込み要求され順次受信したファイルを構成する一部データを、到着待ちバッファ３０（一時バッファ）に一時的に格納する。このとき、データ・マーカ検索部１３は、直ちに到着待ちバッファ３０に格納された一部データ内に、相互に対応する「データ」部分と「マーカ」部分とが存在するか否かを検索する。
【００５４】
なお、ファイルを構成する一部データに対する相互に対応する「データ」部分と「マーカ」部分との検索は、所定のデータ内から、予め「データ」部分と「マーカ」部分とを区別するための基準が設定されており、かかる基準に対応する箇所を、相互に対応する「データ」部分と「マーカ」部分として特定する。例えば、予め「マーカ」部分であると判断する特定のデータ形式を設定しておき、このデータ形式部分が検索範囲内に存在していた場合には、かかる部分を「マーカ」部分であると判断する。そして、かかる「マーカ」部分のデータ内容に基づいて、当該「マーカ」部分と関連付けられている「データ」部分を、相互に対応する「データ」部分と「マーカ」部分として判断する。
【００５５】
ここで、上記「データ」部分とは、例えば、ファイルのデータ内容に応じたデータ、つまり、タイムスタンプなどの保存時の状況によっても変化しないデータである。また、「マーカ」部分は、ファイルの保存時の状況に応じて変化するデータ、例えば、タイムスタンプや通板などのように時間や更新回数などの違いによって値が変化するデータである。
【００５６】
そして、データ・マーカ検索部１３は、相互に対応する「データ」部分と「マーカ」部分とを検索すると、かかる範囲のデータを、データ・マーカ分離部１４に渡す。このとき、データ・マーカ分離部１４に渡した範囲のデータを、到着待ちバッファ３０から削除する。
【００５７】
これを受けたデータ・マーカ分離部１４は、データ・マーカ分離部１４から渡された範囲のデータを、直ちに「データ」部分と「マーカ」部分とに分離する。このとき、上述したように、予め設定された基準に基づいて、「データ」部分と「マーカ」部分とに分離する。そして、上述したように、データ書込部２４、マーカ書込部２５、インデックス書込部２６にて、「データ」部分、「マーカ」部分、これらをリンクする「インデックス」を、コンテンツアドレスを利用してデータ格納部３１に分散して格納する。
【００５８】
以上をまとめると、本実施形態におけるストレージシステム１０は、以下のインライン方式によるデータ書込機能（データ書込手段）を有する。まず、ユーザアプリケーション１から書き込み要求されたファイル１を構成する一部データを、受信するごとに順次、到着待ちバッファ３０に格納する。これと同時に、順次、到着待ちバッファ３０に格納された一部データ内に、予め設定された基準に従って相互に対応するデータ部分とマーカ部分とに分類されるデータが存在すると、これらを分離してデータ格納部３１に格納すると共に、到着待ちバッファ３０から削除する。つまり、到着待ちバッファ３０には、書き込み要求されたファイル１を構成する一部データのうち、相互に対応する「データ」部分と「マーカ」部分とに分離できないデータが残ることとなる。
【００５９】
また、本実施形態におけるデータ・マーカ検索部１３は、ファイル１を構成する一部データを受け付けたときに、到着待ちバッファ３０にこれ以上一部データを記憶する空きがないと判断すると、当該到着待ちバッファ３０に格納されていた一部データを全て分離前データ書込部２１に渡す。また、ユーザアプリケーション１から受信した一部データを、順次、分離前データ書込部２１に渡す。
【００６０】
そして、分離前データ書込部２１（分離前データ書込手段）は、データ・マーカ検索部１３から渡されたデータを、分離前データ格納部３２に格納する。つまり、到着待ちバッファ３０に格納されていた分離できないファイル１を構成する一時データ、及び、到着待ちバッファ３０に空き容量が無くなった後にユーザアプリケーション１から受け付けたファイル１を構成する残りの一部データを、分離前データ格納部３２に格納する。
【００６１】
ここで、分離前データ書込部２１は、到着待ちバッファ３０から分離前データ格納部３２に格納した一部データのデータ量を表す「有効長情報」を、ストレージシステム１０に装備されている記憶装置に記憶する。例えば、到着待ちバッファ３０内に格納されていた一時データの最後尾に該当するファイル１上のオフセットから先頭に該当するファイル上のオフセットを減算して、分離前データ格納部３２に格納した一部データの有効長情報として記憶する。さらに、分離前データ書込部２１は、ユーザアプリケーション１から受信して分離前データ格納部３２に格納するファイル１を構成する一部データのデータ量、つまり、ファイル上１のオフセットも、上記有効長情報に加算して当該有効長情報を更新する。
【００６２】
また、再処理部２３は、ユーザアプリケーション１から書き込み要求されたファイル１のファイルクローズを契機に、つまり、ファイル１を構成する一部データを全て書込処理部１１が受信した後に、分離前データ格納部３２に格納されているデータの分離処理を開始する。具体的に、再処理部２３は、分離前データ格納部３２に格納されているデータをデータ・マーカ分離部１４に渡す。このとき、再処理部２３は、データ・マーカ分離部１４に渡したデータを、分離前データ格納部３２から削除する。そして、データ・マーカ分離部１４は、上述したように、分離前データ格納部３２に格納されているデータを、予め設定された基準に従って、相互に対応する「データ」部分と「マーカ」部分とに分離して、データ格納部３１にコンテンツアドレスを利用して格納する。
【００６３】
このとき、再処理部２３は、データ・マーカ分離部１４にて分離前データ格納部３２に格納されているデータを分離し、その後、当該分離したデータ量の値を、記憶されている有効長情報から減算する。
【００６４】
以上をまとめると、本実施形態におけるストレージシステム１０は、以下のオフライン方式によるデータ書込機能（分離前データ書込手段、再分離処理手段）を有する。まず、到着待ちバッファ３０の空きが無くなると、当該バッファ３０内のデータを分離前データ格納部３２に格納すると共に、ユーザアプリケーション１から受信したファイルを構成する一部データの残りも、到着待ちバッファ３０に格納することなく、順次、分離前データ格納部３２に格納する。そして、ユーザアプリケーション１から書き込み要求されたファイル１のファイルクローズを契機に、分離前データ格納部３２に格納されているデータを、相互に対応する「データ」部分と「マーカ」部分とに分離して、データ格納部３１にコンテンツアドレスを利用して格納する。
【００６５】
なお、上述したデータ・マーカ検索部１３は、上記「有効長情報」が「０」になったとき、つまり、分離前データ格納部３２に格納された全ての一部データが分離された後に、再度、ユーザアプリケーション１から受信された書き込み要求にかかるファイルの一部データを、順次、到着待ちバッファ３０に格納する。そして、上述同様に、到着待ちバッファ３０がいっぱいになるまで、インライン方式による分離処理を実行する。
【００６６】
また、読込処理部１２（データ読込手段）は、ユーザアプリケーション１からのファイルの読み込みの要求を受けると、対象となるファイルが、分離前データ格納部３２かデータ格納部３１のどちらに格納されているかを判断し、格納されている格納部からファイルを構成する一時データを読み込む。そして、分離前データ格納部３２に格納されている場合には、分離前データ読込部２２を介してデータを読み込む。また、データ格納部３１に格納されている場合には、インデックス読込部２７、データ読込部２８、マーカ読込部２９を介して、データ格納部３１からインデックス情報を元に「データ」部分と「マーカ」部分を読み込み、データ・マーカ結合部１５にて結合して、ファイルを復元させ、読み込む。
【００６７】
［動作］
次に、上述したストレージシステム１０の動作を、図１１乃至図１４を参照して説明する。まず、ユーザアプリケーション１からの書き込み要求により、仮想ファイルシステムにファイル１が作成されると、図１２に示すように、データファイル１、マーカファイル１、インデックスファイル１が準備される。このとき、図１２に示す参照先１、参照先２有効長（有効長情報）、参照先２が初期化される。ここで、参照先２有効長は、「０」で初期化する。また、参照先１は、インデックスファイルを示し、参照先２は、後ほど用意するためブランクとする。
【００６８】
そして、ファイルの書き込みが行われると、データ・マーカ検索部１３は、参照先２有効長が「０」であるため（ステップＳ１：Ｎｏ）、インライン方式にて処理を行う。具体的には、到着待ちバッファの空きを確認して、空きがあるときは（ステップＳ２：Ｙｅｓ）、ユーザアプリケーション１から受信したファイル１の一部データを、到着待ちバッファ３０へ順次格納する（ステップＳ３）。
【００６９】
そして、データ・マーカ検索部１３は、到着待ちバッファ３０中に相互に対応する「データ」部分と「マーカ」部分とに分離できるデータがあるときは（ステップＳ４：Ｙｅｓ）、かかる分離できるデータを、順次、分離範囲を指定してデータ・マーカ分離部１４に渡し、到着待ちバッファ３０内から削除する（ステップＳ５）。なお、分離可能データが複数みつかったときは、それらをすべてデータ・マーカ分離部１４へ渡し、到着待ちバッファ３０から削除する。
【００７０】
その後、データ・マーカ分離部１４が、データ・マーカ検索部１３から渡された到着待ちバッファ３０に格納されたデータを、順次、相互に対応する「データ」部分と「マーカ」部分とに分離する。そして、図１１及び図１２に示すように、データ格納部３１に、「データ」部分と「マーカ」部分とをインデックスデータにてリンクして、コンテンツアドレスを利用して格納する。このとき、ファイル１の参照先は、インデックスファイルに向けられる。
【００７１】
上述したインライン方式による処理により、到着待ちバッファ３０内には、ファイル１を構成する一部データのうち分離できないデータが残り、その後、到着待ちバッファ３０に空きがない状態となる（ステップＳ２：Ｎｏ）。すると、データ・マーカ検索部１３は、図１１及び図１２に示すように、分離前データ格納部３２内に分離前データファイル１を作成し、「参照先２」がこれを示すようにする（ステップＳ６）。そして、到着待ちバッファ３０内の全てのデータを、分離前データ格納部３２内の分離前データファイル１に書き出す。このとき、到着待ちバッファ３０内の最後尾に該当するファイル上のオフセットから先頭に該当するファイル上のオフセットを減算し、「参照先２有効長」として記録する。これにより、以降は、「参照先２有効長」の値が「０」ではなくなるため（ステップＳ１：Ｎｏ）、オフライン方式による動作となる。
【００７２】
以上のようにしてオフライン方式の動作となると（ステップＳ１：Ｎｏ）、ストレージシステム１０は、ユーザアプリケーション１から受信したファイルを構成する一部データを、分離前データ格納部３２内の分離前データファイル１に追加して書き込む（ステップＳ８）。このとき、「参照先２」の分離前データファイル１の有効長が増える場合には、当該「参照先２有効長」を更新する。なお、ファイル上のこれまでに受信したデータの間に該当する抜け部分である未到着部分の一部データが到着したときは、ファイルの更新として扱われ、有効長は更新しない。
【００７３】
その後、ユーザアプリケーション１からのデータ受信が終了つまりファイルの書き込みが終了し、ファイルがクローズされると、再処理部２３による再分離処理を開始する。具体的には、まず、「参照先２」には有効なデータが格納されており、「参照先２有効長」が「０」ではないため（ステップＳ１１：Ｙｅｓ）、「参照先２」の分離前データファイル１内のデータから分離可能なデータがあるかどうか調べる。分離可能なデータがある場合には（ステップＳ１２：Ｙｅｓ）、再処理部２３は、分離前データ格納部３２に格納された分離前データファイル１内から分離単位のデータをデータ・マーカ分離部１４へ渡し、該当部分を参照先２から削除する（ステップＳ１３）。
【００７４】
そして、データ・マーカ分離部１４は、上述同様に、渡されたデータを相互に対応する「データ」部分と「マーカ」部分とに分離する。そして、図１１及び図１２に示すように、データ格納部３１に、インデックスデータにてリンクして、コンテンツアドレスを利用して格納する。このとき、ファイル１の参照先は、インデックスファイルに向けられる。
【００７５】
そして、上述したように、分離前データ格納部３２内のデータを分離すると、再処理部２３は、分離した分だけ「参照先２有効長」を減算する（ステップＳ１４）。このようにして、分離するものが無くなるまで、つまり、「参照先２有効長」が「０」になるまで、再処理を行う。これにより、最終的には、ファイルを、コンテンツアドレスを利用したデータ格納部３１に格納する。
【００７６】
なお、上述したように「参照先２有効長」が「０」に戻ると、インライン方式による分離処理に戻る。
【００７７】
以上のように、本実施形態におけるストレージ装置によると、ファイルから「マーカ」部分を抽出し、「データ」部分と「マーカ」部分とに分け格納しているため、重複率の高いデータ部分を効果的に記憶するデータの重複を排除することができる。
【００７８】
また、インライン方式とオフライン方式とによる「データ」部分と「マーカ」部分との分離を、バッファ量が一定量を超えた場合に切り替えているため、スループットを高めつつ、記憶容量を抑制することができる。
【００７９】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置５０の構成の概略について図１５を参照して説明する。また、本発明における、プログラム、データ処理方法の構成について説明する。但し、本発明は、以下の構成に限定されない。
【００８０】
（付記１）
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファ５１と、
前記一時バッファ５１に格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段６１に記憶すると共に、前記一時バッファから削除するデータ書込手段５２と、
前記一時バッファ５１に格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段６２に格納する分離前データ書込手段５３と、
前記分離前データ格納手段６２に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段６１に記憶すると共に、前記分離前データ格納手段６２から削除する再分離処理手段５４と、を備えた、
ストレージ装置５０。
【００８１】
（付記２）
付記１に記載のストレージ装置であって、
前記分離前データ書込手段は、前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを前記分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する、
ストレージ装置。
【００８２】
（付記３）
付記２に記載のストレージ装置であって、
前記再分離処理手段は、前記ファイルを構成する前記データを全て外部から受信した後に作動する、
ストレージ装置。
【００８３】
（付記４）
付記１乃至３のいずれかに記載のストレージ装置であって、
前記分離前データ書込手段は、前記分離前データ格納手段に格納した前記データのデータ量を表す有効長情報を記憶する、
ストレージ装置。
【００８４】
（付記５）
付記４に記載のストレージ装置であって、
前記再分離処理手段は、前記分離前データ格納手段に格納された前記データを前記データ格納手段に記憶したときに、当該データのデータ量の値を前記有効長情報から減算し、
前記有効長情報の値に応じて、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
ストレージ装置。
【００８５】
（付記６）
付記５に記載のストレージ装置であって、
前記有効長情報の値が０である場合に、前記一時バッファは、外部から受信するデータを、順次、一時的に格納する、
ストレージ装置。
【００８６】
（付記７）
付記１乃至６のいずれかに記載のストレージ装置であって、
外部からの前記ファイルの読み込み要求に応じて、当該ファイルを構成する前記データを、当該データが格納されている前記データ格納手段あるいは前記分離前データ格納手段から読み込むデータ読込手段を備えた、
ストレージ装置。
【００８７】
（付記８）
付記１乃至７のいずれかに記載のストレージ装置であって、
前記データ部分は、前記ファイルのデータ内容に応じたデータであり、
前記マーカ部分は、前記ファイルの保存時の状況に応じて変化するデータである、
ストレージ装置。
【００８８】
（付記９）
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時的に格納する一時バッファを備えた情報処理装置に、
前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除するデータ書込手段と、
前記一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段に格納する分離前データ書込手段と、
前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する再分離処理手段と、
を実現させるためのプログラム。
【００８９】
（付記１０）
付記９に記載のプログラムであって、
前記分離前データ書込手段は、前記一時バッファの空きがなくなったときに、当該一時バッファに格納されている前記データを前記分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する、
プログラム。
【００９０】
（付記１１）
書き込み要求された所定容量のファイルを構成するデータを、外部から受信するごとに、順次、一時バッファに一時的に格納し、
前記一時バッファに格納された前記データを、直ちに、予め設定された基準に従って分類される相互に対応するデータ部分とマーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けてデータ格納手段に記憶すると共に、前記一時バッファから削除し、
前記一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、分離前データ格納手段に格納し、
前記分離前データ格納手段に格納された前記データを、予め設定された基準に従って、相互に対応する前記データ部分と前記マーカ部分とに分離して、当該データ部分とマーカ部分とを関連付けて前記データ格納手段に記憶すると共に、前記分離前データ格納手段から削除する、
データ処理方法。
【００９１】
（付記１２）
付記１１に記載のデータ処理方法であって、
前記一時バッファの空きがなくなったときに、当該一時バッファに格納された前記データのうち、相互に対応する前記データ部分と前記マーカ部分とに分離できない前記データを、前記分離前データ格納手段に格納すると共に、外部から受信した前記データを、受信するごとに順次、前記分離前データ格納手段に格納する、
データ処理方法。
【００９２】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【００９３】
なお、本発明は、日本国にて２０１０年２月１０日に特許出願された特願２０１０−２７１２５の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
【符号の説明】
【００９４】
１０    ストレージシステム
１１    書込処理部
１２    読込処理部
１３    データ・マーカ検索部
１４    データ・マーカ分離部
１５    データ・マーカ結合部
２１    分離前データ書込部
２２    分離前データ読込部
２３    再処理部
２４    データ書込部
２５    マーカ書込部
２６    インデックス書込部
２７    インデックス読込部
２８    データ読込部
２９    マーカ読込部
３０    到着待ちバッファ
３１    データ格納部
３２    分離前データ格納部
４０    データセット
４１    分割データ
４２    冗長データ
５０    ストレージ装置
５１    一時バッファ
５２    データ書込手段
５３    分離前データ書込手段
５４    再分離処理手段
６１    データ格納手段
６２    分離前データ格納手段
１００  ストレージシステム
１０１  アクセラレータノード
１０２  ストレージノード
１１０  バックアップシステム
１２０  バックアップ対象装置
【図１】
0005533888.tif 000002
【図２】
0005533888.tif 000003
【図３】
0005533888.tif 000004
【図４】
0005533888.tif 000005
【図５】
0005533888.tif 000006
【図６】
0005533888.tif 000007
【図７】
0005533888.tif 000008
【図８】
0005533888.tif 000009
【図９】
0005533888.tif 000010
【図１０】
0005533888.tif 000011
【図１１】
0005533888.tif 000012
【図１２】
0005533888.tif 000013
【図１３】
0005533888.tif 000014
【図１４】
0005533888.tif 000015
【図１５】
0005533888.tif 000016