(57)【特許請求の範囲】
【請求項１】
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を備え、
前記データ書き込み部は、前記ユーザデータ部分をユーザデータ用ファイルに格納し、前記管理データ部分を管理データ用ファイルに格納し、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分の分離前におけるデータ中の位置情報と、前記ユーザデータ部分及び前記管理データ部分の分離後における前記ユーザデータ用ファイル及び前記管理データ用ファイルのそれぞれの中の位置情報と、を含むインデックスデータをインデックスデータ用ファイルに格納し、さらに、前記ユーザデータ用ファイルと前記管理データ用ファイルと前記インデックスデータ用ファイルとを、それぞれ所定容量のブロックデータに分割して、当該各ブロックデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させる、
ストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記データ書き込み部が前記インデックスデータ用ファイルに格納する前記インデックスデータは、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分がそれぞれ格納されている前記ユーザデータ用ファイル及び前記管理データ用ファイルを特定するファイル情報を含む、
ストレージ装置。
【請求項３】
請求項１又は２に記載のストレージ装置であって、
前記データ書き込み部が前記インデックスデータ用ファイルに格納する前記インデックスデータは、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分のそれぞれのデータ長を表すデータ長情報を含む、
ストレージ装置。
【請求項４】
請求項１乃至３のいずれかに記載のストレージ装置であって、
前記インデックスデータ用ファイルに格納された前記インデックスデータを読み取り、当該インデックスデータに含まれた情報に基づいて、記憶装置に記憶された前記ユーザデータ部分及び前記管理データ部分を読み取り、前記データ分離部にて分離される前のデータを復元するデータ読み取り部を備えた、
ストレージ装置。
【請求項５】
請求項１乃至４のいずれかに記載のストレージ装置であって、
前記管理データ部分は、書き込み対象となるデータを管理するための管理情報である、
ストレージ装置。
【請求項６】
情報処理装置に、
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を実現させると共に、
前記データ書き込み部は、前記ユーザデータ部分をユーザデータ用ファイルに格納し、前記管理データ部分を管理データ用ファイルに格納し、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分の分離前におけるデータ中の位置情報と、前記ユーザデータ部分及び前記管理データ部分の分離後における前記ユーザデータ用ファイル及び前記管理データ用ファイルのそれぞれの中の位置情報と、を含むインデックスデータをインデックスデータ用ファイルに格納し、さらに、前記ユーザデータ用ファイルと前記管理データ用ファイルと前記インデックスデータ用ファイルとを、それぞれ所定容量のブロックデータに分割して、当該各ブロックデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させる、
プログラム。
【請求項７】
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させる機能を有する情報処理装置にて、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離して、
前記ユーザデータ部分をユーザデータ用ファイルに格納し、前記管理データ部分を管理データ用ファイルに格納し、分離された前記ユーザデータ部分及び前記管理データ部分の分離前におけるデータ中の位置情報と、前記ユーザデータ部分及び前記管理データ部分の分離後における前記ユーザデータ用ファイル及び前記管理データ用ファイルのそれぞれの中の位置情報と、を含むインデックスデータをインデックスデータ用ファイルに格納し、さらに、前記ユーザデータ用ファイルと前記管理データ用ファイルと前記インデックスデータ用ファイルとを、それぞれ所定容量のブロックデータに分割して、当該各ブロックデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させる、
データ格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置にかかり、特に、同一内容のデータの重複記憶を排除するストレージ装置に関する。
【背景技術】
【０００２】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。【０００３】
このような状況に応じて、近年では、特許文献１に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。【０００４】
そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。【０００５】
また、上記コンテンツアドレスとして、データの内容に応じて固有となるよう生成される例えばデータのハッシュ値を用いる。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２３５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、上述したデータの重複排除の判定は、一般的に、ファイルのデータをある長さ（固定長または可変長）に区切って、それらを比較することにより行っている。このため、１つのファイル中のデータの差異が、ファイルを区切った長さより小さな間隔で存在すると、それらは同一内容のデータとは判定されない。つまり、区切ったデータ間に同一内容のデータ部分が存在していた場合であっても、わずかな差異が存在すると、両方の区切ったデータが記憶されることとなり、効率よく記憶するデータの重複排除ができない。【０００８】
例えば、データをバックアップするソフトウェアは、バックアップするデータの他に、独自の管理情報をバックアップファイルへ挿入することを行っている。すると、この挿入される独自の管理情報がバックアップ毎に異なり、かつ、この管理情報の挿入間隔がデータ重複判定時のデータ区切り間隔より短い場合には、上述したように、記憶するデータの重複排除ができない。その結果、データの格納効率が低下する、という問題が生じる。【０００９】
このため、本発明の目的は、上述した課題である、データ格納効率の低下を解決することにある。
【課題を解決するための手段】
【００１０】
かかる目的を達成するため本発明の一形態であるストレージ装置は、
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を備える。
そして、上記データ書き込み部は、上記ユーザデータ部分をユーザデータ用ファイルに格納すると共に、上記管理データ部分を管理データ用ファイルに格納して、上記データ分離部にて分離された上記ユーザデータ部分と上記管理データ部分とを記憶装置に記憶する、という構成をとる。【００１１】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を実現させるプログラムである。
そして、上記データ書き込み部は、上記ユーザデータ部分をユーザデータ用ファイルに格納すると共に、上記管理データ部分を管理データ用ファイルに格納して、上記データ分離部にて分離された上記ユーザデータ部分と上記管理データ部分とを記憶装置に記憶する、という構成をとる。【００１２】
また、本発明の他の形態であるデータ格納方法は、
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させる機能を有する情報処理装置にて、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離して、
上記ユーザデータ部分をユーザデータ用ファイルに格納すると共に、上記管理データ部分を管理データ用ファイルに格納して、分離された上記ユーザデータ部分と上記管理データ部分とを記憶装置に記憶する、
という構成をとる。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、データ格納効率の向上を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態１におけるストレージシステムを含むシステム全体の構成を示すブロック図である。
【図２】本発明の実施形態１におけるストレージシステムの構成の概略を示すブロック図である。
【図３】本発明の実施形態１におけるストレージシステムの構成を示す機能ブロック図である。
【図４】図３に開示したストレージシステムにおけるデータ書き込み処理の様子を説明するための説明図である。
【図５】図３に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。
【図６】図３に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。
【図７】図６に開示したインデックスデータのデータ構造の一例を示す図である。
【図８】図３に開示したストレージシステムにおけるデータ書き込み処理の動作を示すフローチャートである。
【図９】図３に開示したストレージシステムにおけるデータ読み取り処理の動作を示すフローチャートである。
【図１０】付記１におけるストレージシステムの構成を示す機能ブロック図である。
【発明を実施するための形態】
【００１５】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図９を参照して説明する。図１は、システム全体の構成を示すブロック図である。図２は、ストレージシステムの概略を示すブロック図であり、図３は、ストレージシステムの構成を示す機能ブロック図である。図４乃至図６は、ストレージシステムにおけるデータ書き込み処理の動作を説明するための説明図である。図７は、記憶装置に記憶されるインデックスデータのデータ構造を示す図である。図８乃至図９は、ストレージシステムの動作を示すフローチャートである。
【００１６】
ここで、本実施形態は、後述する付記に記載のストレージ装置等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、１台のコンピュータで構成されていてもよい。
【００１７】
［構成］
図１に示すように、本発明におけるストレージシステム１は、ネットワークＮを介してバックアップ処理を制御するバックアップシステム４に接続している。そして、バックアップシステム４は、ネットワークＮを介して接続されたバックアップ対象装置５に格納されているバックアップ対象データ（書き込み対象となるデータ）を取得し、ストレージシステム１に対して記憶するよう要求する。これにより、ストレージシステム１は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
【００１８】
そして、図２に示すように、本実施形態におけるストレージシステム１は、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム１は、ストレージシステム１自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード２と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード３と、を備えている。なお、アクセラレータノード２の数とストレージノード３の数は、図２に示したものに限定されず、さらに多くの各ノード２，３が接続されて構成されていてもよい。
【００１９】
さらに、本実施形態におけるストレージシステム１は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
【００２０】
なお、以下では、ストレージシステム１が１つのシステムであるとして、当該ストレージシステム１が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム１が有する構成及び機能は、アクセラレータノード２あるいはストレージノード３のいずれに備えられていてもよい。なお、ストレージシステム１は、図２に示すように、必ずしもアクセラレータノード２とストレージノード３とを備えていることに限定されず、いかなる構成であってもよく、例えば、１台のコンピュータにて構成されていてもよい。さらには、ストレージシステム１は、コンテンツアドレスストレージシステムであることにも限定されず、重複排除機能を有しているストレージシステムであればよい。
【００２１】
図３に、本実施形態におけるストレージシステム１の構成を示す。この図に示すように、ストレージシステム１は、サーバコンピュータにて構成され、相互に接続されたデータ分離／結合装置１０と記憶装置２０とを備えている。そして、データ分離／結合装置１０は、上述したバックアップ対象装置５やバックアップシステム４に装備されたデータ書き込み／読み取りソフトウェア３０に接続されており、このソフトウェア３０からの要求に応じて、ファイルを記憶したり、読み出す処理を行うものである。
【００２２】
そして、上記データ分離／結合装置１０は、装備された演算装置にプログラムが組み込まれることによって構築された、分離データ書き込み部１１と、データ分離部１２と、分離データ関連付け部１３と、分離データ読み取り部１４と、を備えている。また、記憶装置２０には、ユーザデータファイル記憶部２１と、管理データファイル記憶部２２と、インデックスデータファイル記憶部２３と、が形成されている。
【００２３】
なお、実際には、上述したストレージシステム１が備える構成は、図２に示したアクセラレータノード２及びストレージノード３がそれぞれ備えているＣＰＵ（Central Processing Unit）などの演算装置やハードディスクドライブなどの記憶装置にて構成されている。
【００２４】
ここで、上述したように、本実施形態におけるストレージシステム１は、コンテンツアドレスストレージシステムである。このため、上述した分離データ書き込み部１１（データ書き込み部）及び記憶装置２０は、コンテンツアドレスを利用してデータを記憶装置２０に格納する機能を有しており、以下に説明するように、データを分割及び分散し、かつ、コンテンツアドレスにて格納位置を特定して、データを格納する。以下、ストレージシステム１にてコンテンツアドレスを利用したデータ書き込み処理について、図４乃至図５を参照して説明する。
【００２５】
まず、図４及び図５の矢印Ｙ１に示すように、データ書き込み／読み取りソフトウェア３０から書き込み要求されたファイルＡの入力を受けると、図４及び図５の矢印Ｙ２に示すように、当該ファイルＡを、所定容量（例えば、６４ＫＢ）のブロックデータＤに分割する。なお、上記ファイルＡは、例えば、後述するように、データ分離部１２にて分離されたユーザデータファイル、管理データファイル、インデックスデータファイルである。あるいは、上記ブロックデータＤは、例えば、データ分離部１２にて分離された各ユーザデータ、各管理データ、各インデックスデータであってもよい。
【００２６】
そして、このブロックデータＤのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Ｈを算出する（図５の矢印Ｙ３）。例えば、ハッシュ値Ｈは、予め設定されたハッシュ関数を用いて、ブロックデータＤのデータ内容から算出する。
【００２７】
続いて、ファイルＡのブロックデータＤのハッシュ値Ｈを用いて、当該ブロックデータＤが既に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータＤは、そのハッシュ値Ｈと格納位置を表すコンテンツアドレスＣＡとが、関連付けられてＭＦＩ（Ｍａｉｎ  Ｆｒａｇｍｅｎｔ  Ｉｎｄｅｘ）ファイルに登録されている。従って、格納前に算出したブロックデータＤのハッシュ値ＨがＭＦＩファイル内に存在している場合には、既に同一内容のブロックデータＤが格納されていると判断できる（図５の矢印Ｙ４）。この場合には、格納前のブロックデータＤのハッシュ値Ｈと一致したＭＦＩ内のハッシュ値Ｈに関連付けられているコンテンツアドレスＣＡを、当該ＭＦＩファイルから取得する。そして、このコンテンツアドレスＣＡを、書き込み要求されたブロックデータＤのコンテンツアドレスＣＡとして返却する。これにより、このコンテンツアドレスＣＡにて参照される既に格納されているデータが、書き込み要求されたブロックデータＤとして使用されることとなり、当該書き込み要求にかかるブロックデータＤを記憶する必要がなくなる。
【００２８】
また、書き込み要求にかかるブロックデータＤがまだ記憶されていないと判断された場合には、かかるブロックデータＤを圧縮して、図５の矢印Ｙ５に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図４の符号Ｄ１〜Ｄ９に示すように、９つのフラグメントデータ（分割データ４１）に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ４１に追加する。例えば、図４の符号Ｄ１０〜Ｄ１２に示すように、３つのフラグメントデータ（冗長データ４２）を追加する。これにより、９つの分割データ４１と、３つの冗長データとにより構成される１２個のフラグメントデータからなるデータセット４０を生成する。
【００２９】
続いて、上述したように生成されたデータセットを構成する各フラグメントデータを、記憶装置に形成された各記憶領域に、それぞれ分散して格納する。例えば、図４に示すように、１２個のフラグメントデータＤ１〜Ｄ１２を生成した場合には、複数の記憶装置内にそれぞれ形成したデータ格納ファイルに、各フラグメントデータＤ１〜Ｄ１２を１つずつそれぞれ格納する（図５の矢印Ｙ６参照）。
【００３０】
続いて、ストレージシステム１は、上述したように格納したフラグメントデータＤ１〜Ｄ１２の格納位置、つまり、当該フラグメントデータＤ１〜Ｄ１２にて復元されるブロックデータＤの格納位置を表すコンテンツアドレスＣＡを生成して管理する。具体的には、格納したブロックデータＤの内容に基づいて算出したハッシュ値Ｈの一部（ショートハッシュ）（例えば、ハッシュ値Ｈの先頭８Ｂ（バイト））と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスＣＡを生成する。そして、このコンテンツアドレスＣＡを、ストレージシステム１内のファイルシステムに返却する（図５の矢印Ｙ７）。すると、ストレージシステム１は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスＣＡとを関連付けてファイルシステムで管理する。
【００３１】
また、ブロックデータＤのコンテンツアドレスＣＡと、当該ブロックデータＤのハッシュ値Ｈと、を関連付けて、各ストレージノード３がＭＦＩファイルにて管理する。このように、上記コンテンツアドレスＣＡは、ファイルを特定する情報やハッシュ値Ｈなどと関連付けられて、アクセラレータノード２やストレージノード３の記憶装置に格納される。
【００３２】
さらに、ストレージシステム１は、上述したように格納したファイルを読み出す制御を行う。例えば、ストレージシステム１に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスＣＡを指定する。そして、コンテンツアドレスＣＡがＭＦＩファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
【００３３】
一方、読み出し要求にかかるコンテンツアドレスＣＡが登録されている場合には、上記コンテンツアドレスＣＡにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち１つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
【００３４】
そして、読み出し要求に応じて読み出した各フラグメントデータからブロックデータＤを復元する。さらに、復元したブロックデータＤを複数連結し、ファイルＡなどの一群のデータに復元して返却する。
【００３５】
以上のようにして、本実施形態におけるストレージシステム１はデータの重複を排除しているが、さらにデータ格納効率を高めるための構成となっている。かかる構成について詳述する。
【００３６】
まず、データ分離／結合装置１０が備えるデータ分離部１２は、ファイルの実データ部分であり生成された時間や更新回数などによっても値が変化しない「ユーザデータ部分」と、タイムスタンプや通番などのように時間や更新回数などの違いによって値が変化しファイル自体の管理情報を含む「管理データ部分」と、に分離する。つまり、ユーザデータ部分は、他のユーザデータと同一内容となる可能性があり、重複排除効果が期待できるデータである。一方、管理データ部分は、他の管理データと同一内容となる可能性が低く、重複排除効果が期待しづらいデータである。なお、ユーザデータ部分と管理データ部分との分離は、予めデータ分離部１２に各データ部分を区別するための基準情報が設定されており、かかる基準情報に基づいて行われる。
【００３７】
但し、データ分離部１２は、書き込み対象となるデータを、必ずしも「ユーザデータ部分」と「管理データ部分」とに分離することに限定されない。予め設定された基準に従って分類される１種類あるいは複数種類の他のデータ部分に分離してもよい。
【００３８】
そして、分離データ書き込み部１１（データ書き込み部）は、上記データ分離部１２にて分離されたデータを記憶装置２０に格納する。このとき、分離されたデータは、分離されたデータの種別に応じて異なるファイルに格納されるが、このとき、分離データ関連付け部１３が、分離結果に基づいて、各ユーザデータ部分や各管理データ部分の格納位置をそれぞれ特定する情報を含むインデックスデータを生成する。
【００３９】
そして、分離データ書き込み部１１は、分離したユーザデータ部分と、管理データ部分と、インデックスデータとを、それぞれ異なるファイルに格納して、記憶装置２０に記憶する。具体的には、まず、ユーザデータ部分は、図６に示すように、記憶装置２０に形成されたユーザデータファイル記憶部２１内のユーザデータファイルに格納する。また、管理データ部分は、図６に示すように、記憶装置２０に形成された管理データファイル記憶部２２内の管理データファイルに格納する。さらに、インデックスデータは、図６に示すように、記憶装置２０に形成されたインデックスデータファイル記憶部２３内のインデックスデータファイルに格納する。
【００４０】
これにより、ユーザデータファイル記憶部２１には、ユーザデータのみが格納されたユーザデータファイルが記憶される。また、管理データファイル記憶部２２には、管理データのみが格納された管理データファイルが記憶される。また、インデックスデータファイル記憶部２３には、ユーザデータと管理データのインデックス情報のみが格納されたインデックスデータファイルが記憶される。
【００４１】
そして、上記インデックデータは、図７に示すように、ファイル種別、分離前ファイルにおけるファイル内オフセット、分離後の各ファイルにおけるファイル内オフセット、分離後のデータ長など、種々の管理情報を含んでいる。具体的に、上記「ファイル種別」は、対応するユーザデータあるいは管理データが格納されているファイル種別やファイル自体を特定するファイル情報である。また、「分離前ファイルにおけるファイル内オフセット」は、分離されたユーザデータあるいは管理データの分離される前のファイル内における位置情報である。また、「分離後の各ファイルにおけるファイル内オフセット」は、分離されたユーザデータあるいは管理データが分離後に格納されたユーザデータファイルあるいは管理データファイル内における位置情報である。そして、「分離後のデータ長」は、分離されたユーザデータあるいは管理データ自体のデータ長である。但し、インデックスデータに記憶される情報は、上述した情報に限定されない。
【００４２】
なお、上述した各ファイルは、上記図４，５を参照して説明したように、さらに分割及び冗長化され、分散して複数の記憶装置に記憶される。
【００４３】
また、データ分離／結合装置１０が有する分離データ読み取り部１４（データ読み取り部）は、データ書き込み／読み取りソフトウェア３０から読み取りの要求があったファイル名をもとに、ユーザデータファイル、管理データファイル、インデックスデータファイルを、記憶装置２０内から取得する。そして、分離データ関連付け部１３が、取得したインデックスデータファイルに記憶されている情報に基づいて、ユーザデータ及び管理データが格納されている各ファイルや当該ファイル内における格納位置を解析する。続いて、解析した結果に応じて、ユーザデータファイル及び管理データファイルからそれぞれユーザデータ及び管理データを読み取る。そして、これらをインデックスデータファイルに記憶されている情報に従って、分離前のデータにおけるユーザデータ及び管理データの位置を特定し、当該ユーザデータ及び管理データを結合して、分離前のデータを生成する。
【００４４】
その後、分離データ読み取り部１４は、生成された分離前のデータを、データ書き込み／読み取りソフトウェア３０に返却する。これらにより、データ書き込み／読み取りソフトウェア３０は、データが分離され格納されていることを意識せずにファイルを参照することができる。
【００４５】
［動作］
次に、上述したストレージシステム１つまりデータ分離／結合装置１０の動作を、図６と、図８及び図９のフローチャートを参照して説明する。
【００４６】
まず、データ書き込み時の動作を、図６及び図８を参照して説明する。データ書き込み／読み取りソフトウェア３０は、データ分離／結合装置１０に対してデータ書き込み要求を発行すると（ステップＳ１）、分離データ書き込み部１１は、受け取ったデータをデータ分離部１２に渡す。そして、データ分離部１２は、受け取ったデータを上述したようにユーザデータ部分と管理データ部分に分離し、その情報を分離データ書き込み部１１に返却する（ステップＳ２）。
【００４７】
続いて、分離データ書き込み部１１は、受け取ったデータ分離に関する情報を、分離データ関連付け部１３に渡す。すると、分離データ関連付け部１３は、受け取ったデータ分離に関する情報を元に、インデックスデータを作成し（ステップＳ３）、それを分離データ書き込み部１１に返却する。なお、インデックスデータには、図７に示すように、分離された各データが格納されるファイル種別と、データ分離前のファイルのファイル内オフセットと、データ分離後のユーザデータファイルまたは管理データファイルのファイル内オフセットと、分離後のデータの長さと、その他の管理情報が含まれる。
【００４８】
最後に、分離データ書き込み部１１は、データ分離に関する情報とインデックスデータをもとに、ユーザデータと、管理データと、インデックスデータを、記憶装置２０内に、それぞれ別ファイルとして書き込む（ステップＳ４）。つまり、図６に示すように、ユーザデータはユーザデータファイルへ、管理データは管理データファイルへ、インデックスデータはインデックスデータファイルへ、それぞれ書き込む。なお、図６の例では、インデックス１は、ユーザデータであるデータ２の位置情報等を含んでおり、インデックス２は、管理データであるデータ１の位置情報等を含んでいる。
【００４９】
次に、データ読み取り時の動作について、図６及び図９を参照して説明する。データ書き込み／読み取りソフトウェア３０は、データ分離／結合装置１０へデータ読み取り要求を発行すると（ステップＳ１１）、分離データ読み取り部１４は、読み取りが要求されたファイル名をもとに、記憶装置２０に格納されているユーザデータファイルと、管理データファイルと、インデックスデータファイルを取得し（ステップＳ１２）、それぞれの情報を分離データ関連付け部１３に渡す。
【００５０】
すると、分離データ関連付け部１３は、受け取った情報をもとに、要求されたデータに対応するインデックデータをインデックデータファイルから読み取る。更に、読み取ったインデックデータをもとに、要求されたデータに対応するユーザデータをユーザデータファイルから読み取り、要求されたデータに対応する管理データを管理データファイルから読み取る。このとき、インデックスデータに含まれているファイル種別、データ分離前のファイルのファイル内オフセット、データ分離後のユーザデータファイルまたは管理データファイルのファイル内オフセット、分離後のデータの長さ、などの情報に基づいて、要求されているデータを構成するユーザデータと管理データとを読み取る。例えば、図６の例では、インデックス１をもとに、ユーザデータであるデータ２を読み取り、インデックス２をもとに、管理データであるデータ１を読み取る。
【００５１】
そしてさらに、インデックスデータをもとに、読み取ったユーザデータと管理データとを結合して（ステップＳ１３）、分離前のもとのデータを生成し、当該結合したデータを分離データ読み取り部１４に返却する。
【００５２】
そして、分離データ読み取り部１４は、返却されたデータを、データ分離前のファイルのデータとして、データ書き込み／読み取りソフトウェア３０に返却する。
【００５３】
以上のように、本発明によると、例えば、データをバックアップする場合に、バックアップソフトウェアがバックアップファイルに挿入する管理情報によりデータ重複排除率の低下を招くことがあるが、バックアップファイル中のデータをユーザデータと管理データに分離して記憶装置に記憶することで、データ重複排除の効率の向上を図ることができる。つまり、データ量が少ない管理データやインデックデータに対してはデータ重複排除がほとんど行われないが、ユーザデータファイルへ書き込まれた多くのユーザデータに対してはデータ重複排除が効率良く動作し、高いデータ重複排除率を実現できる。
【００５４】
また、ストレージシステム内では上述したように重複排除率を高めるべくデータを分離して複数のファイルに格納しているが、データの読み取り時には分離されたデータを結合して１つのデータとして提供するため、外部からは１つのファイルとして扱うことができる。
【００５５】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置１１０の構成の概略について図１０を参照して説明する。また、本発明における、プログラム、データ格納方法の構成について説明する。但し、本発明は、以下の構成に限定されない。
【００５６】
（付記１）
書き込み対象となるデータを記憶装置１２０に格納すると共に、当該記憶装置１２０に既に記憶されているデータと同一内容の他のデータを記憶装置１２０に格納する場合に当該記憶装置１２０に既に記憶されているデータを他のデータとして参照させるデータ書き込み部１１１と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部１１２と、を備え、
前記データ書き込み部１１１は、前記ユーザデータ部分をユーザデータ用ファイル１２１に格納すると共に、前記管理データ部分を管理データ用ファイル１２２に格納して、前記データ分離部１１２にて分離された前記ユーザデータ部分と前記管理データ部分とを記憶装置１２０に記憶する、
ストレージ装置１１０。
【００５７】
（付記２）
付記１に記載のストレージ装置であって、
前記データ書き込み部は、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分の分離前におけるデータ中の位置情報と、前記ユーザデータ部分及び前記管理データ部分の分離後における前記ユーザデータ用ファイル及び前記管理データ用ファイルのそれぞれの中の位置情報と、を含むインデックスデータを、インデックスデータ用ファイルに格納して記憶装置に記憶する、
ストレージ装置。
【００５８】
（付記３）
付記２に記載のストレージ装置であって、
前記データ書き込み部が前記インデックスデータ用ファイルに格納する前記インデックスデータは、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分がそれぞれ格納されている前記ユーザデータ用ファイル及び前記管理データ用ファイルを特定するファイル情報を含む、
ストレージ装置。
【００５９】
（付記４）
付記２又は３に記載のストレージ装置であって、
前記データ書き込み部が前記インデックスデータ用ファイルに格納する前記インデックスデータは、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分のそれぞれのデータ長を表すデータ長情報を含む、
ストレージ装置。
【００６０】
（付記５）
付記２乃至４のいずれかに記載のストレージ装置であって、
前記インデックスデータ用ファイルに格納された前記インデックスデータを読み取り、当該インデックスデータに含まれた情報に基づいて、記憶装置に記憶された前記ユーザデータ部分及び前記管理データ部分を読み取り、前記データ分離部にて分離される前のデータを復元するデータ読み取り部を備えた、
ストレージ装置。
【００６１】
（付記６）
付記１乃至５のいずれかに記載のストレージ装置であって、
前記管理データ部分は、書き込み対象となるデータを管理するための管理情報である、
ストレージ装置。
【００６２】
（付記７）
情報処理装置に、
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を実現させると共に、
前記データ書き込み部は、前記ユーザデータ部分をユーザデータ用ファイルに格納すると共に、前記管理データ部分を管理データ用ファイルに格納して、前記データ分離部にて分離された前記ユーザデータ部分と前記管理データ部分とを記憶装置に記憶する、
プログラム。
【００６３】
（付記８）
付記７に記載のプログラムであって、
前記データ書き込み部は、前記データ分離部にて分離された前記ユーザデータ部分及び前記管理データ部分の分離前におけるデータ中の位置情報と、前記ユーザデータ部分及び前記管理データ部分の分離後における前記ユーザデータ用ファイル及び前記管理データ用ファイルのそれぞれの中の位置情報と、を含むインデックスデータを、インデックスデータ用ファイルに格納して記憶装置に記憶する、
プログラム。
【００６４】
（付記９）
書き込み対象となるデータを記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させる機能を有する情報処理装置にて、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離して、
前記ユーザデータ部分をユーザデータ用ファイルに格納すると共に、前記管理データ部分を管理データ用ファイルに格納して、分離された前記ユーザデータ部分と前記管理データ部分とを記憶装置に記憶する、
データ格納方法。
【００６５】
（付記１０）
付記９に記載のデータ格納方法であって、
分離された前記ユーザデータ部分及び前記管理データ部分の分離前におけるデータ中の位置情報と、前記ユーザデータ部分及び前記管理データ部分の分離後における前記ユーザデータ用ファイル及び前記管理データ用ファイルのそれぞれの中の位置情報と、を含むインデックスデータを、インデックスデータ用ファイルに格納して記憶装置に記憶する、
データ格納方法。
【００６６】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【００６７】
なお、本発明は、日本国にて２０１０年３月４日に特許出願された特願２０１０−４７４１１の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
【符号の説明】
【００６８】
１      ストレージシステム
２      アクセラレータノード
３      ストレージノード
４      バックアップシステム
５      バックアップ対象装置
１０    データ分離／結合装置
１１    分離データ書き込み部
１２    データ分離部
１３    分離データ関連付け部
１４    分離データ読み取り部
２０    記憶装置
２１    ユーザデータファイル記憶部
２２    管理データファイル記憶部
２３    インデックスデータファイル記憶部
３０    ソフトウェア
１１０  ストレージ装置
１１１  データ書き込み部
１１２  データ分離部
１２０  記憶装置
１２１  ユーザデータ用ファイル
１２２  管理データ用ファイル
【図１】
0005517224.tif 000002
【図２】
0005517224.tif 000003
【図３】
0005517224.tif 000004
【図４】
0005517224.tif 000005
【図５】
0005517224.tif 000006
【図６】
0005517224.tif 000007
【図７】
0005517224.tif 000008
【図８】
0005517224.tif 000009
【図９】
0005517224.tif 000010
【図１０】
0005517224.tif 000011