説明

ストレージ装置

【課題】データ格納効率の低下を解決すること。
【解決手段】本発明のストレージシステムは、書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を備え、上記データ書き込み部は、ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納されたユーザデータ部分に関連付けられたメタデータとして管理データ部分を前記ファイルに含めて格納し、ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、という構成を取る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置にかかり、特に、同一内容のデータの重複記憶を排除するストレージ装置に関する。
【背景技術】
【0002】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
【0003】
このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。
【0004】
そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
【0005】
また、上記コンテンツアドレスとして、データの内容に応じて固有となるよう生成される例えばデータのハッシュ値を用いる。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−235171号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、上述したデータの重複排除の判定は、一般的に、ファイルのデータをある長さ(固定長または可変長)に区切って、それらを比較することにより行っている。このため、1つのファイル中のデータの差異が、ファイルを区切った長さより小さな間隔で存在すると、それらは同一内容のデータとは判定されない。つまり、区切ったデータ間に同一内容のデータ部分が存在していた場合であっても、わずかな差異が存在すると、両方の区切ったデータが記憶されることとなり、効率よく記憶するデータの重複排除ができない。
【0008】
例えば、データをバックアップするソフトウェアは、バックアップするデータの他に、独自の管理情報をバックアップファイルへ挿入することを行っている。すると、この挿入される独自の管理情報がバックアップ毎に異なり、かつ、この管理情報の挿入間隔がデータ重複判定時のデータ区切り間隔より短い場合には、上述したように、記憶するデータの重複排除ができない。その結果、データの格納効率が低下する、という問題が生じる。
【0009】
このため、本発明の目的は、上述した課題である、データ格納効率の低下を解決することにある。
【課題を解決するための手段】
【0010】
上記目的を達成すべく、本発明の一形態であるストレージシステムは、
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を備え、
前記データ書き込み部は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、
という構成を取る。
【0011】
また、本発明の他の形態であるプログラムは、
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部を備えた情報処理装置に、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部を実現させると共に、
前記データ書き込み部は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、ことを実現させるためのプログラムである。
【0012】
また、本発明の他の形態であるデータ格納方法は、
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み工程を有するデータ格納方法であって、
前記データ書き込み工程の前に、書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離工程を有し、
前記データ書き込み工程は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、
という構成を取る。
【発明の効果】
【0013】
本発明は、以上のように構成されることにより、データ格納効率の向上を図ることができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態1におけるストレージシステムを含むシステム全体の構成を示すブロック図である。
【図2】本発明の実施形態1におけるストレージシステムの構成の概略を示すブロック図である。
【図3】本発明の実施形態1におけるストレージシステムの構成を示す機能ブロック図である。
【図4】図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明するための説明図である。
【図5】図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。
【図6】図3に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。
【図7】図6に開示したインデックスデータのデータ構造の一例を示す図である。
【図8】図3に開示したストレージシステムにおけるデータ書き込み処理の動作を示すフローチャートである。
【図9】図3に開示したストレージシステムにおけるデータ読み取り処理の動作を示すフローチャートである。
【図10】付記1におけるストレージシステムの構成を示す機能ブロック図である。
【発明を実施するための形態】
【0015】
<実施形態1>
本発明の第1の実施形態を、図1乃至図9を参照して説明する。図1は、システム全体の構成を示すブロック図である。図2は、ストレージシステムの概略を示すブロック図であり、図3は、ストレージシステムの構成を示す機能ブロック図である。図4乃至図6は、ストレージシステムにおけるデータ書き込み処理の動作を説明するための説明図である。図7は、記憶装置に記憶されるインデックスデータのデータ構造を示す図である。図8乃至図9は、ストレージシステムの動作を示すフローチャートである。
【0016】
ここで、本実施形態は、後述する付記に記載のストレージ装置等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
【0017】
[構成]
図1に示すように、本発明におけるストレージシステム1は、ネットワークNを介してバックアップ処理を制御するバックアップシステム4に接続している。そして、バックアップシステム4は、ネットワークNを介して接続されたバックアップ対象装置5に格納されているバックアップ対象データ(書き込み対象となるデータ)を取得し、ストレージシステム1に対して記憶するよう要求する。これにより、ストレージシステム1は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
【0018】
そして、図2に示すように、本実施形態におけるストレージシステム1は、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム1は、ストレージシステム1自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード2と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード3と、を備えている。なお、アクセラレータノード2の数とストレージノード3の数は、図2に示したものに限定されず、さらに多くの各ノード2,3が接続されて構成されていてもよい。
【0019】
さらに、本実施形態におけるストレージシステム1は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
【0020】
なお、以下では、ストレージシステム1が1つのシステムであるとして、当該ストレージシステム1が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム1が有する構成及び機能は、アクセラレータノード2あるいはストレージノード3のいずれに備えられていてもよい。なお、ストレージシステム1は、図2に示すように、必ずしもアクセラレータノード2とストレージノード3とを備えていることに限定されず、いかなる構成であってもよく、例えば、1台のコンピュータにて構成されていてもよい。さらには、ストレージシステム1は、コンテンツアドレスストレージシステムであることにも限定されず、重複排除機能を有しているストレージシステムであればよい。
【0021】
図3に、本実施形態におけるストレージシステム1の構成を示す。図3に示すストレージシステム1は、上述したアクセラレータノード2及びストレージノード3内に仮想的に構築されたデータ分離/結合装置10とCAS装置20とを備えている。そして、データ分離/結合装置10は、上述したバックアップ対象装置5やバックアップシステム4に装備されたデータ書き込み/読み取りソフトウェア30に接続されており、このソフトウェア30からの要求に応じて、ファイルを記憶したり、読み出す処理を行うものである。
【0022】
そして、上記データ分離/結合装置10は、装備された演算装置にプログラムが組み込まれることによって構築された、分離データ書き込み部11と、データ分離部12と、分離データ関連付け部13と、分離データ読み取り部14と、を備えている。また、CAS装置20のファイル21には、ユーザデータ記憶部22と、管理データ及びインデックスデータ記憶部23と、が形成されている。
【0023】
なお、実際には、上述したストレージシステム1が備える構成は、図2に示したアクセラレータノード2及びストレージノード3がそれぞれ備えているCPU(Central Processing Unit)などの演算装置やハードディスクドライブなどの記憶装置にて構成されている。
【0024】
ここで、上述したように、本実施形態におけるストレージシステム1は、コンテンツアドレスストレージシステムである。このため、上述した分離データ書き込み部11(データ書き込み部)及びCAS装置20は、コンテンツアドレスを利用してデータを記憶装置25に格納する機能を有しており、以下に説明するように、データを分割及び分散し、かつ、コンテンツアドレスにて格納位置を特定して、当該データを格納する。以下、ストレージシステム1にてコンテンツアドレスを利用したデータ書き込み処理について、図4乃至図5を参照して説明する。
【0025】
まず、図4及び図5の矢印Y1に示すように、データ書き込み/読み取りソフトウェア30から分離データ書き込み部11を介して書き込み要求されたファイルAの入力を受けると、図4及び図5の矢印Y2に示すように、当該ファイルAを、所定容量(例えば、64KB)のブロックデータDに分割する。なお、上記ファイルAは、例えば、後述するように、データ分離部12にて分離されたユーザデータ部分22を含むファイル21であり、このファイル21は、図3に示すように、ユーザデータ22に関連付けられた拡張属性及び/又は代替データストリーム23を含む。そして、拡張属性及び/又は代替データストリーム23には、データ分離部12にて分離された管理データ部分及びインデックスデータ部分が格納される。
【0026】
そして、ファイルAが分割されたブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Hを算出する(図5の矢印Y3)。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容から算出する。
【0027】
続いて、ファイルAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAとが、関連付けられてMFI(Main Fragment Index)ファイルに登録されている。従って、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる(図5の矢印Y4)。この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFI内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、書き込み要求されたブロックデータDのコンテンツアドレスCAとして返却する。これにより、このコンテンツアドレスCAにて参照される既に格納されているデータが、書き込み要求されたブロックデータDとして使用されることとなり、当該書き込み要求にかかるブロックデータDを記憶する必要がなくなる。
【0028】
また、書き込み要求にかかるブロックデータDがまだ記憶されていないと判断された場合には、かかるブロックデータDを圧縮して、図5の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図4の符号D1〜D9に示すように、9つのフラグメントデータ(分割データ41)に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ41に追加する。例えば、図4の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データ42)を追加する。これにより、9つの分割データ41と、3つの冗長データとにより構成される12個のフラグメントデータからなるデータセット40を生成する。
【0029】
続いて、上述したように生成されたデータセットを構成する各フラグメントデータを、記憶装置に形成された各記憶領域に、それぞれ分散して格納する。例えば、図4に示すように、12個のフラグメントデータD1〜D12を生成した場合には、複数の記憶装置内にそれぞれ形成したデータ格納ファイルに、各フラグメントデータD1〜D12を1つずつそれぞれ格納する(図5の矢印Y6参照)。
【0030】
続いて、ストレージシステム1は、上述したように格納したフラグメントデータD1〜D12の格納位置、つまり、当該フラグメントデータD1〜D12にて復元されるブロックデータDの格納位置を表すコンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム1内のファイルシステムに返却する(図5の矢印Y7)。すると、ストレージシステム1は、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けてファイルシステムで管理する。
【0031】
また、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード3がMFIファイルにて管理する。このように、上記コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、アクセラレータノード2やストレージノード3の記憶装置に格納される。
【0032】
さらに、ストレージシステム1は、上述したように格納したファイルを読み出す制御を行う。例えば、ストレージシステム1に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
【0033】
一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
【0034】
そして、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して返却する。
【0035】
以上のようにして、本実施形態におけるストレージシステム1はデータの重複を排除しているが、さらにデータ格納効率を高めるための構成となっている。かかる構成について詳述する。
【0036】
まず、データ分離/結合装置10が備えるデータ分離部12は、図6に示すように、所定のファイルを構成する分離前データ30を、ファイルの実データ部分であり、当該ファイルが生成された時間や更新回数などによっても値が変化しない「ユーザデータ」群からなるユーザデータ部分31と、タイムスタンプや通番などのように時間や更新回数などの違いによって値が変化しファイル自体の管理情報を含む「管理データ」群からなる管理データ部分32と、に分離する。つまり、ユーザデータ部分31は、他のユーザデータと同一内容となる可能性があり、重複排除効果が期待できるデータである。一方、管理データ部分32は、他の管理データと同一内容となる可能性が低く、重複排除効果が期待しづらいデータである。なお、ユーザデータ部分31と管理データ部分32との分離は、予めデータ分離部12に各データ部分を区別するための基準情報が設定されており、かかる基準情報に基づいて行われる。
【0037】
そして、データ分離部12は、書き込み対象となるデータを、必ずしも「ユーザデータ部分」と「管理データ部分」とに分離することに限定されない。予め設定された基準に従って分類される1種類あるいは複数種類の他のデータ部分に分離してもよい。
【0038】
また、データ分離部12は、図6に示すように、分離結果に基づいて、各ユーザデータや各管理データの分離前のデータに対する格納位置をそれぞれ特定する情報を含むインデックスデータ群からなるインデックスデータ部分33を生成する。例えば、上記インデックデータは、図7に示すように、ファイル種別、分離前ファイルにおけるファイル内オフセット、分離後の各ファイルにおけるファイル内オフセット、分離後のデータ長など、種々の管理情報を含んでいる。具体的に、上記「ファイル種別」は、対応するユーザデータあるいは管理データが格納されているファイル種別やファイル自体を特定するファイル情報である。また、「分離前ファイルにおけるファイル内オフセット」は、分離されたユーザデータあるいは管理データの分離される前のファイル内における位置情報である。また、「分離後の各ファイルにおけるファイル内オフセット」は、分離されたユーザデータあるいは管理データが分離後に格納されたユーザデータファイルあるいは管理データファイル内における位置情報である。そして、「分離後のデータ長」は、分離されたユーザデータあるいは管理データ自体のデータ長である。但し、インデックスデータに記憶される情報は、上述した情報に限定されない。
【0039】
そして、分離データ書き込み部11(データ書き込み部)は、上記データ分離部12にて分離されたデータを記憶装置25に格納するが、このとき、図6に示すように分離されたユーザデータ部分31と管理データ部分32と生成されたインデックスデータ部分33とを、同一のファイル21に格納する。具体的に、分離データ書き込み部11は、図3のファイル21に示すように、ユーザデータ部分31のみをユーザデータ22としてファイル21に格納し、このユーザデータ22に関連付けられたメタデータである拡張属性や代替ストリーム23に、管理データ部分32とインデックスデータ部分33とを格納する。例えば、ファイル21は、拡張属性及び代替データストリームといったメタデータを含んでおり、拡張属性に管理データ部分32を格納し、代替データストリームにインデックスデータ部分33を格納している。但し、管理データ部分やインデックスデータ部分は、ファイル21に関連付けられたメタデータであれば、いかなるデータに格納されていてもよい。
【0040】
ここで、上述したファイルの「拡張属性」は、ファイル21の属性データを拡張したデータであり、検索キーと任意の内容のデータの組み合わせを要素とする検索可能なリスト構造のデータである。このリスト構造は、ファイル21のオフセットをキーに、データを取り出すユーザデータ22と類似しており、当該ユーザデータ22と同様の扱いができる。
【0041】
また、上述した「代替データストリーム」は、ファイル21上、ユーザデータ22とは区分けして管理されたデータであり、代替データストリームごとに、データにアクセスするための識別子が割り当てられる。なお、1個のファイル21に、複数の代替データストリームを持たせることも可能である。ファイル21に代替データストリームの識別子を与え、ファイルを参照・更新すると、ユーザデータ22の代わりに、識別子に対応した代替データストリームを参照・更新できる。
【0042】
ここで、ファイル21と、ファイル21の拡張属性、代替データストリームの存在の整合性は、ストレージシステムが保障することとなる。
【0043】
以上のように、ファイル21の拡張属性と代替データストリームは、1個のファイル21に複数のサブデータを持たせる効果がある。ファイル21の拡張属性と代替データストリームを、ユーザデータ22に対するサブデータストリームとみなすことで、ユーザデータ、管理データ、インデックスデータを、1個のファイルに書き込むことを実現している。
【0044】
そして、上述したように一旦分離された後に1つのファイル21に含められた書き込み対象となるデータは、当該ファイルが書き込み対象となるデータとして、分離データ書き込み部11にてCAS装置20に書き込まれる。以降のファイル21の書き込み動作は、通常のコンテンツアドレスストレージシステムにおける書き込み動作と同様であり、上記図4,5を参照して説明したように、上述したファイル21をさらに分割して、冗長化を行った上で分散して複数の記憶装置に記憶される。
【0045】
このとき、分離データ書き込み部11は、ファイル21中の拡張属性及び/あるいは代替データストリームに書き込まれた管理データとインデックスデータを、可変長のブロックに区切り、記憶装置25内にブロック集合26、ブロック集合27として格納する。例えば、管理データをブロック集合26に格納し、インデックスデータをブロック集合27に格納する。これにより、ブロック集合26とブロック集合27とは、重複排除が望めない管理データとインデックスデータのみを含むこととなる。また、分離データ書き込み部11は、ファイル21に書き込まれたユーザデータ22を、可変長のブロックに区切り、記憶装置25内にブロック集合28として格納する。このブロック集合28は、重複排除が望めるユーザデータのみを含むこととなる。なお、各ブロック集合26,27,28は、上述したように予め特定のデータが格納される領域として記憶装置25内に設定されている。
【0046】
また、データ分離/結合装置10が有する分離データ読み取り部14(データ読み取り部)は、データ書き込み/読み取りソフトウェア30から読み取りの要求があったファイル名をもとに、ファイル21を記憶装置25内から取得する。そして、分離データ関連付け部13が、取得したファイル21に関連付けられている拡張属性及び/又は代替データストリーム23内のインデックスデータに記憶されている情報に基づいて、ユーザデータ及び管理データを読み取る。そして、これらをインデックスデータに記憶されている情報に従って、分離前のデータにおけるユーザデータ及び管理データの位置を特定し、当該ユーザデータ及び管理データを結合して、分離前のデータを生成する。
【0047】
その後、分離データ読み取り部14は、生成された分離前のデータを、データ書き込み/読み取りソフトウェア30に返却する。これらにより、データ書き込み/読み取りソフトウェア30は、データが分離され格納されていることを意識せずにファイルを参照することができる。
【0048】
ここで、ストレージシステム1は、上述したように、記憶装置25内で別々のブロック集合26,27,28として格納されている拡張属性、代替データストリーム、ユーザデータを、1個のユーザデータファイル21に関連付けて管理していることから、以下のような処理も可能である。例えば、拡張属性更新要求を受け取ると、ファイル21の拡張属性部分を更新し、拡張属性部分だけを可変長のブロックに区切り、記憶装置25にブロック集合26として格納する。また、拡張属性参照要求を受けると、記憶装置25に格納済みのブロックの集合26から、拡張属性を再生して返却する。また、代替データストリーム更新要求を受け取ると、ファイル21の代替データストリーム部分を更新し、代替データストリームだけを可変長のブロックに区切り、記憶装置25にブロック集合27として格納する。代替データストリーム参照要求を受けると、記憶装置25に格納済みのブロック集合27から、代替データストリームを再生して返却する。さらに、ユーザデータ更新要求を受け取ると、ファイル21のユーザデータ部分を更新し、ユーザデータだけを可変長のブロックに区切り、記憶装置25にブロックの集合28として格納する。ユーザデータ参照要求を受けると、記憶装置25に格納済みのブロックの集合28からユーザデータを再生して返却する。
【0049】
なお、書き込み対象となるデータの分離後のデータ(ユーザデータ、管理データ、インデックスデータ)と、データ書き込み先(ファイル21のユーザデータ22、拡張属性23、代替データストリーム23)の組み合わせの自由度は、データ格納先となるCAS装置20の仕様に依存する。拡張属性および代替データストリームにおいても、ユーザデータを重複排除するCAS装置20に格納することで、重複排除性能を確保できる。但し、拡張属性や代替データストリームを重複排除しないストレージ装置にデータを格納してもよい。かかる場合であっても、分離後のデータのうち、重複排除が望めない管理データとインデックスデータを、拡張属性や代替データストリームに書き込むが、ユーザデータ部分をユーザデータ22に書き込んで重複排除機能を有するCAS装置20に書き込むことで、重複排除性能を実現できる。
【0050】
[動作]
次に、上述したストレージシステム1つまりデータ分離/結合装置10の動作を、図3と、図8及び図9のフローチャートを参照して説明する。
【0051】
まず、ファイルへのデータ書き込み時の動作について説明する。データ書き込み/読み取りソフトウェア30は、データ分離/結合装置10へデータ書き込み要求を発行する(ステップS1)。分離データ書き込み部11は、受け取ったデータをデータ分離部12に渡す。データ分離部12は、受け取ったデータをユーザデータと管理データに分離し(ステップS2)、インデックスデータを生成して(ステップS3)、これらを分離データ書き込み部11に返却する。
【0052】
分離データ書き込み部11は、ユーザデータを、CAS装置20へ、ファイル21のユーザデータ22として書き込む。管理データとインデックスデータについては、ファイル21の拡張属性及び/又は代替データストリームとして書き込む(ステップS4)。拡張属性や代替データストリームに書き込まれた管理データとインデックスデータは、可変長のブロックに区切られ、記憶装置25内に、ブロック集合26、ブロック集合27として格納される。これにより、ブロック集合26とブロック集合27は、重複排除が望めない管理データとインデックスデータのみを含むこととなる。また、ファイル21に書き込まれたユーザデータ22は、可変長のブロックに区切られ、データ重複排除機構を備えた記憶装置25内に、ブロック集合28として格納される。これにより、ブロック集合28は、重複排除が望めるユーザデータのみを含むこととなる。
【0053】
次に、読み取り時の動作について説明する。データ書き込み/読み取りソフトウェア30は、データ分離/結合装置10へデータ読み取り要求を発行する(ステップS11)。分離データ読み込み部14は、ファイル21の拡張属性及び/又は代替データストリーム23、ユーザデータ22の形で格納されている管理データ、インデックスデータ、ユーザデータを、各ブロック集合26,27,28内から取得し(ステップS12)、分離データ関連付け部13を用いてインデックスデータをもとに、順序良くブロックを結合して、元のデータを再生する(ステップS13)。その後、再生したデータを、データ書き込み/読み取りソフトウェア30へ返却する。
【0054】
以上のように、本発明では、データの分離後に生成される図6に示すようなユーザデータ部分31、管理データ部分32、インデックスデータ部分33を、それぞれ個々のファイルとして記憶装置に書き込むことを行っていない。このため、ファイル再生時であっても、3個のファイルの存在を確認する処理が不要となり、また、いずれかのファイルが消失することによってデータにアクセス不可能となることを防止することができる。つまり、本発明では、重複排除の効率を高めるべく、データを分離するものの、分離後のデータを1つのファイルとして扱うため、これら分離後のデータが常に存在することが保証される。そして、分離後の3つのデータのフラッシュの順序をアトミックに制御するとこで、分離後のデータの矛盾を抑制できる。その結果、高効率な重複排除を実現しつつ、障害からの復旧処理を簡素化でき、ストレージシステムの耐障害性の向上を図ることができる。
【0055】
また、一般的に、ストレージ装置には格納可能なファイル数に上限があるが、上述したように、分離後に3つのデータが存在するものの、これらを1つのファイルとして管理するため、格納できるバックアップファイル数の増加を図ることができる。仮に分離後の3つのデータを3つのファイルとして扱う場合と比較すると、その場合よりも3倍のファイル数を扱うことができる。
【0056】
なお、上記では、データ分離/結合装置10を、データ重複排除機構を搭載したCAS装置20とは別の装置とした構成を説明したが、データ分離/結合装置10を、データ重複排除機構を搭載したCAS装置20内に実装した構成としてもよい。
【0057】
また、上記では、データ分離/結合装置10は、バックアップファイルのデータを3つのデータに分離していたが、重複が望めるユーザデータと、重複が望めないデータ(管理情報データ、インデックスデータ)の2つに分離してもよい。この場合、単一の拡張属性、または単一の代替データストリームしか備えていないデータ重複排除機構を搭載したストレージと組み合わせた構成でも実現できる。
【0058】
さらに、上記では、ファイルの拡張属性および代替データストリームが、ユーザデータと同様に重複排除されるストレージ装置と組み合わせた構成であったが、拡張属性や代替データストリームを重複排除しないストレージ装置と組み合わせた構成でも、上述と同等な効果を得ることができる。
【0059】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム110の構成の概略について図10を参照して説明する。また、本発明における、プログラム、データ格納方法の構成について説明する。但し、本発明は、以下の構成に限定されない。
【0060】
(付記1)
書き込み対象となるデータを所定容量に分割して記憶装置120に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部111と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部112と、を備え、
前記データ書き込み部111は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置120に記憶する、
ストレージシステム110。
【0061】
(付記2)
付記1に記載のストレージシステムであって、
前記データ分離部は、分離された前記ユーザデータ部分と前記管理データ部分との分離前におけるデータ中の位置情報を含むインデックスデータを生成し、
前記データ書き込み部は、前記ファイルに格納された前記ユーザデータ部分に関連付けられた前記メタデータとして前記インデックスデータを前記ファイルに格納し、前記ファイルを書き込み対象となるデータとして記憶装置に記憶する、
ストレージシステム。
【0062】
(付記3)
付記1又は2に記載のストレージシステムであって、
前記データ書き込み部は、前記ファイルに格納された前記ユーザデータ部分の拡張属性及び/又は代替データストリームを前記メタデータとして用いる、
ストレージシステム。
【0063】
(付記4)
付記1乃至3のいずれかに記載のストレージシステムであって、
前記データ書き込み部は、前記ファイルを分割することによって形成された前記ユーザデータ部分の分割データを前記記憶装置内の所定領域に格納する、
ストレージシステム。
【0064】
(付記5)
付記2に記載のストレージシステムであって、
前記データ書き込み部は、前記ファイルを分割することによって形成された前記ユーザデータ部分と前記拡張属性部分と前記代替データストリーム部分との分割データを、当該各部分に応じた前記記憶装置内の各所定領域にそれぞれ格納する、
ストレージシステム。
【0065】
(付記6)
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部を備えた情報処理装置に、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部を実現させると共に、
前記データ書き込み部は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、ことを実現させるためのプログラム。
【0066】
(付記7)
付記6に記載のプログラムであって、
前記データ分離部は、分離された前記ユーザデータ部分と前記管理データ部分との分離前におけるデータ中の位置情報を含むインデックスデータを生成し、
前記データ書き込み部は、前記ファイルに格納された前記ユーザデータ部分に関連付けられた前記メタデータとして前記インデックスデータを前記ファイルに格納し、前記ファイルを書き込み対象となるデータとして記憶装置に記憶する、
プログラム。
【0067】
(付記8)
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み工程を有するデータ格納方法であって、
前記データ書き込み工程の前に、書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離工程を有し、
前記データ書き込み工程は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、
データ格納方法。
【0068】
(付記9)
付記8に記載のデータ格納方法であって、
前記データ分離工程は、分離された前記ユーザデータ部分と前記管理データ部分との分離前におけるデータ中の位置情報を含むインデックスデータを生成し、
前記データ書き込み工程は、前記ファイルに格納された前記ユーザデータ部分に関連付けられた前記メタデータとして前記インデックスデータを前記ファイルに格納し、前記ファイルを書き込み対象となるデータとして記憶装置に記憶する、
データ格納方法。
【符号の説明】
【0069】
1 ストレージシステム
2 アクセラレータノード
3 ストレージノード
4 バックアップシステム
5 バックアップ対象装置
10 データ分離/結合装置
11 分離データ書き込み部
12 データ分離部
13 分離データ関連付け部
14 分離データ読み取り部
20 CAS装置
21 ファイル
22 ユーザデータ
23 拡張属性、代替データストリーム
25 記憶装置
30 分離前データ
31 ユーザデータ部分
32 管理データ部分
33 インデックスデータ部分
110 ストレージシステム
111 データ書き込み部
112 データ分離部
120 記憶装置


【特許請求の範囲】
【請求項1】
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部と、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部と、を備え、
前記データ書き込み部は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、
ストレージシステム。
【請求項2】
請求項1に記載のストレージシステムであって、
前記データ分離部は、分離された前記ユーザデータ部分と前記管理データ部分との分離前におけるデータ中の位置情報を含むインデックスデータを生成し、
前記データ書き込み部は、前記ファイルに格納された前記ユーザデータ部分に関連付けられた前記メタデータとして前記インデックスデータを前記ファイルに格納し、前記ファイルを書き込み対象となるデータとして記憶装置に記憶する、
ストレージシステム。
【請求項3】
請求項1又は2に記載のストレージシステムであって、
前記データ書き込み部は、前記ファイルに格納された前記ユーザデータ部分の拡張属性及び/又は代替データストリームを前記メタデータとして用いる、
ストレージシステム。
【請求項4】
請求項1乃至3のいずれかに記載のストレージシステムであって、
前記データ書き込み部は、前記ファイルを分割することによって形成された前記ユーザデータ部分の分割データを前記記憶装置内の所定領域に格納する、
ストレージシステム。
【請求項5】
請求項2に記載のストレージシステムであって、
前記データ書き込み部は、前記ファイルを分割することによって形成された前記ユーザデータ部分と前記拡張属性部分と前記代替データストリーム部分との分割データを、当該各部分に応じた前記記憶装置内の各所定領域にそれぞれ格納する、
ストレージシステム。
【請求項6】
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み部を備えた情報処理装置に、
書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離部を実現させると共に、
前記データ書き込み部は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、ことを実現させるためのプログラム。
【請求項7】
請求項6に記載のプログラムであって、
前記データ分離部は、分離された前記ユーザデータ部分と前記管理データ部分との分離前におけるデータ中の位置情報を含むインデックスデータを生成し、
前記データ書き込み部は、前記ファイルに格納された前記ユーザデータ部分に関連付けられた前記メタデータとして前記インデックスデータを前記ファイルに格納し、前記ファイルを書き込み対象となるデータとして記憶装置に記憶する、
プログラム。
【請求項8】
書き込み対象となるデータを所定容量に分割して記憶装置に格納すると共に、当該記憶装置に既に記憶されているデータと同一内容の他のデータを前記記憶装置に格納する場合に当該記憶装置に既に記憶されているデータを他のデータとして参照させるデータ書き込み工程を有するデータ格納方法であって、
前記データ書き込み工程の前に、書き込み対象となるデータを、予め設定された基準に従って分類されるユーザデータ部分と管理データ部分とに分離するデータ分離工程を有し、
前記データ書き込み工程は、前記ユーザデータ部分を格納したファイルを生成すると共に、当該ファイルに格納された前記ユーザデータ部分に関連付けられたメタデータとして前記管理データ部分を前記ファイルに含めて格納し、前記ファイルを書き込み対象となるデータとして前記記憶装置に記憶する、
データ格納方法。
【請求項9】
請求項8に記載のデータ格納方法であって、
前記データ分離工程は、分離された前記ユーザデータ部分と前記管理データ部分との分離前におけるデータ中の位置情報を含むインデックスデータを生成し、
前記データ書き込み工程は、前記ファイルに格納された前記ユーザデータ部分に関連付けられた前記メタデータとして前記インデックスデータを前記ファイルに格納し、前記ファイルを書き込み対象となるデータとして記憶装置に記憶する、
データ格納方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−208650(P2012−208650A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−72791(P2011−72791)
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(000222059)NECソフトウェア東北株式会社 (10)