[go: up one dir, main page]

JP5369807B2 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JP5369807B2
JP5369807B2 JP2009071081A JP2009071081A JP5369807B2 JP 5369807 B2 JP5369807 B2 JP 5369807B2 JP 2009071081 A JP2009071081 A JP 2009071081A JP 2009071081 A JP2009071081 A JP 2009071081A JP 5369807 B2 JP5369807 B2 JP 5369807B2
Authority
JP
Japan
Prior art keywords
storage
target data
data
redundancy
storage target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009071081A
Other languages
English (en)
Other versions
JP2010224845A (ja
Inventor
健二 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009071081A priority Critical patent/JP5369807B2/ja
Priority to PCT/JP2009/006947 priority patent/WO2010109568A1/ja
Priority to US13/148,894 priority patent/US8725969B2/en
Publication of JP2010224845A publication Critical patent/JP2010224845A/ja
Application granted granted Critical
Publication of JP5369807B2 publication Critical patent/JP5369807B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ装置にかかり、特に、格納したデータの内容に応じて格納位置を管理するコンテンツアドレス型のストレージ装置に関する。
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。
そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
特開2005−235171号公報
しかしながら、上述したような重複記録を排除したコンテンツアドレスストレージシステムでは、格納済みの所定のデータブロックが消失した場合には、その影響は当該データブロックを参照している全ての他のデータに及ぶ。例えば、参照数が100のデータブロックが存在していたとすると、このデータブロックは、他の100個のデータブロックと同一のデータであるため、当該100個のデータブロック自体は存在せず、実際に格納されたているのは1つのデータブロックだけである。従って、この参照数が100のデータブロックが消失した場合には、当該データブロックを参照する他の100個の論理データが失われることになる。
このため、通常、コンテンツアドレスストレージシステムでは、格納したデータの耐障害性を高めるため、各データブロックの冗長度を高く保つ処理を行っている。例えば、予め設定した一定の冗長度を確保すべく、冗長データを付与してデータブロックを格納している。ところが、このような冗長度は、全てのデータブロックに対して一律に行われている。つまり、例えば、参照数が「1」のデータブロックと参照数が「100」のデータブロックとの冗長度が同一に扱われることとなる。このような場合には、参照数が「100」のデータブロックの方が、格納データに与える影響が大きいが、参照数が「1」のデータブロックにも同様の冗長度を与える処理や格納領域が費やされる。すると、ストレージシステムのリソースを効率よく使用できておらず、システム性能のさらなる向上を図ることができない、という問題が生じる。
このため、本発明の目的は、上述した課題である、信頼性及びシステム性能の向上を図ることができるストレージ装置を提供することにある。
かかる目的を達成するため本発明の一形態であるストレージ装置は、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている上記記憶対象データと同一のデータ内容の他の記憶対象データを上記記憶装置に格納する場合に、当該記憶装置に既に記憶されている上記記憶対象データを上記他の記憶対象データとして参照させるデータ格納制御部と、
上記記憶装置に記憶されている上記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶する参照数管理部と、
上記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する冗長度制御部と、
を備える。
また、本発明の他の形態であるプログラムは、
情報処理装置に、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている上記記憶対象データと同一のデータ内容の他の記憶対象データを上記記憶装置に格納する場合に、当該記憶装置に既に記憶されている上記記憶対象データを上記他の記憶対象データとして参照させるデータ格納制御部と、
上記記憶装置に記憶されている上記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶する参照数管理部と、
上記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する冗長度制御部と、
を実現させるためのプログラムである。
また、本発明の他の形態であるデータ格納方法は、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている上記記憶対象データと同一のデータ内容の他の記憶対象データを上記記憶装置に格納する場合に、当該記憶装置に既に記憶されている上記記憶対象データを上記他の記憶対象データとして参照させるデータ格納処理を実行すると共に、
上記記憶装置に記憶されている上記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
上記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する、
という構成を採る。
本発明は、以上のように構成されることにより、ストレージ装置の信頼性及びシステム性能の向上を図ることができる。
実施形態1におけるストレージ装置の構成を示す機能ブロック図である。 図1に開示したストレージ装置に格納されるデータの一例を示す図である。 図1に開示したストレージ装置におけるデータ格納時の様子を示す図である。 図1に開示したストレージ装置におけるデータ格納時の様子を示す図である。 図1に開示したストレージ装置の動作を示すフローチャートである。 図1に開示したストレージ装置の動作を示すフローチャートである。 実施形態2におけるストレージ装置の構成を示す機能ブロック図である。
<実施形態1>
本発明の第一の実施形態を、図1乃至図6を参照して説明する。図1は、ストレージ装置の構成を示す機能ブロック図である。図2は、ストレージ装置に格納されるデータの一例を示す図である。図3乃至図4は、ストレージ装置におけるデータ格納時の様子を示す図であり、図5乃至図6は、ストレージ装置の動作を示すフローチャートである。
[構成]
本実施形態におけるストレージ装置1は、図1に示すように、演算処理を行うCPU(Central Processing Unit)などの演算装置と、データを格納するハードディスクドライブなどの記憶装置と、を備えた一般的なコンピュータである。そして、演算装置は、プログラムが組み込まれることにより構築された、データ格納処理部11と、コンテンツアドレス管理部12と、冗長度制御部13と、を備えている。また、記憶装置は、データ格納部21と、コンテンツアドレス管理テーブル22と、適正冗長度定義テーブル23と、を備えている。なお、図1では、ストレージ装置1を1台のコンピュータとして図示しているが、複数台のコンピュータにて構成されていてもよい。また、記憶装置、特に、データ格納部21は、複数台のハードディスクドライブといった複数台の記憶装置にて構成されている。以下、各構成について詳述する。
上記データ格納処理部11(データ格納制御部)は、基本的な機能として、入力されるファイル記憶要求や読み出し要求に応じて、ファイルをデータ格納部21に書き込んだり、当該データ格納部21から読み出すよう作動する。
具体的に、データ格納処理部11によるファイルを書き込むときの様子を、図3を参照して説明する。まず、データ格納処理部11は、記憶対象であるファイルAを、所定容量(例えば、64KB)のブロックデータDに分割する。そして、このブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値を算出する。なお、ハッシュ値は、例えば、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容に基づいて算出する。
そして、データ格納処理部11は、ブロックデータDから算出したハッシュ値に基づいて、同一のデータ内容の別のブロックデータDが、既にデータ格納部21に格納されているか否かを調べる。ここで、同一のデータ内容のブロックデータがまだ格納されていない場合を考える。この場合には、データ格納処理部11は、ブロックデータを冗長化し、分散して複数の記憶装置に記憶する。具体的には、まず、ブロックデータDを圧縮して、複数の所定の容量のフラグメントデータに分割する。例えば、図3の符号D1〜D9に示すように、9つのフラグメントデータ(分割データ41)に分割する。そして、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ41に追加する。例えば、図3の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データ42)を付加する。これにより、9つの分割データ41と、3つの冗長データ42とにより構成される12個のフラグメントデータからなるデータセット40を生成する。
そして、データ格納処理部11は、上述したように冗長データが付加されたブロックデータの各フラグメントデータを、データ格納部21を構成する複数の記憶装置に、それぞれ分散して格納する。これにより、上記ブロックデータを形成するフラグメントデータのうち、3つのフラグメントデータを損失した場合であっても、元のブロックデータを復元することができる。
次に、上記データ格納処理部11にて、新規に書き込むブロックデータから算出したハッシュ値に基づいて、同一のデータ内容の別のブロックデータが、既にデータ格納部21に格納されていると判断された場合を考える。この場合に、データ格納処理部11は、新規のブロックデータを書き込むことなく、既に格納されているブロックデータを、新規に書き込むブロックデータとして参照する。具体的には、既に格納されているブロックデータの格納先アドレスを参照するコンテンツアドレスを、新規に書き込むブロックデータの格納位置を参照するデータとして用いる。これにより、同一データの重複記録を排除することができる。
次に、上記コンテンツアドレス管理部12について説明する。コンテンツアドレス管理部12は、上述したデータ格納処理部11にてデータ格納部21に格納したブロックデータの格納位置を、当該ブロックデータの内容に応じて特定されるコンテンツアドレスを用いて管理する。具体的に、コンテンツアドレス部12は、上述したように新規にブロックデータが格納されると、コンテンツアドレス管理テーブル22に新規エントリを追加し、図2(A)に示すように、実際にブロックデータを格納した格納先アドレスに、当該ブロックデータに対応するコンテンツアドレス(アドレスデータ)を関連付けて記憶する。なお、コンテンツアドレスは、例えば、格納したブロックデータのデータ内容に基づいて算出されたハッシュ値を含むデータであるため、コンテンツアドレス自体も、ブロックデータのデータ内容に基づいて固有となるよう生成される。これにより、コンテンツアドレスに関連付けられた格納先アドレスを参照することで、ブロックデータを読み出すことができる。なお、上述したコンテンツアドレスと格納先アドレスとを対応付けて記憶する処理は、上述したデータ格納部11にて実行されてもよい。
また、コンテンツアドレス管理部12は、上述したコンテンツアドレス管理テーブル22に、コンテンツアドレス、格納先アドレスのほかに、参照カウンタと冗長度を記憶して管理する。このとき、参照カウンタは、コンテンツアドレスが参照している数、つまり、コンテンツアドレスが参照する格納先アドレスに格納されているブロックデータが、他のデータとして参照されている数を表す。従って、新規にブロックデータが格納された際には、参照カウンタが「1」となる。また、冗長度は、格納されているブロックデータの冗長度を示す値であり、数が多いほど冗長性の度合いが高いことを表している。そして、本実施形態における冗長度は、上述したようにブロックデータに付加される冗長データの個数を表す。なお、新規にブロックデータを格納する際には、参照カウンタが「1」であり、これに対応する冗長度は、後述するように「3」に設定されている。
ここで、参照カウンタの値(参照数)に対応して適正な冗長度は、適正冗長度定義テーブル23(冗長度定義テーブル)に予め設定されて記憶されている。この適正冗長度定義テーブル23の一例を、図2(B)に示す。この図に示すように、参照数(参照カウンタの値)「1〜10」の場合には冗長度が「3」に設定され、参照数が「11〜100」の場合には冗長度が「6」に設定され、さらに、参照数が「101〜1000」の場合には冗長度が「9」に設定されている。このように、適正冗長度定義テーブル23には、参照数が多いほど、高い値の冗長度が設定されている。そして、冗長度は、所定範囲の参照数毎(例えば、「1〜10」、「11〜100」、「101〜100」毎)に、それぞれ対応して設定されている。なお、上述した適正冗長度定義テーブル23に開示した参照数と冗長度との関係は一例であって、他の設定値であってもよい。
また、上記コンテンツアドレス管理部12は、上述したようにデータ格納処理部11にて、新規に書き込むブロックデータと同一内容のデータブロックが既に格納されており、当該既に格納されているブロックデータを参照させた場合には、この既に格納されているブロックデータの参照数を「1」加算する。つまり、コンテンツアドレス管理テーブル22にて、既に格納されているブロックデータを参照するコンテンツアドレスに関連付けられた参照数を加算する。このように、コンテンツアドレス管理部12は、格納しているブロックデータ毎に、当該ブロックデータが参照されている数をカウントして記憶している。
次に、冗長度制御部13について詳述する。まず、冗長度制御部13は、上記コンテンツアドレス管理部12にて管理されているコンテンツアドレス管理テーブル22と、適正冗長度定義テーブル23と、を読み出す。そして、コンテンツアドレス管理テーブル22内の参照カウンタ(参照数)及びこれに関連付けられた冗長度が、適正冗長度定義テーブル23内の参照数と適正冗長度との間に差異がないか、比較する。例えば、図2(A)に示すコンテンツアドレス管理テーブル22では、コンテンツアドレスCA6の参照カウンタは「11」であり、冗長度は「3」である。一方、図2(B)に示す適正冗長度定義テーブル23においては、上記参照カウンタ「11」の値が該当する参照数「11〜100」では、適正冗長度が「6」に設定されている。この場合には、冗長度に差異があり、適正ではない、と判断する。
そして、冗長度が適正ではないと判断した冗長度制御部13は、このコンテンツアドレスCA6にて特定されるデータブロックが、適正冗長度に対応する冗長性を有するよう、データ格納部21に格納する。本実施形態では、冗長度は冗長データの数に対応させているため、冗長データを「3」個から「6」個に変更して、コンテンツアドレスCA6のブロックデータを格納する。具体的に冗長度を変更して格納する処理は、まず、冗長度が異なるコンテンツアドレスCA6から格納先アドレスを取得して、この格納先のブロックデータを読み出す。そして、読み出したブロックデータに対して、冗長度が「6」となるよう、つまり、冗長データが「6」個なるよう、当該ブロックデータを分割し、冗長データを付加する。例えば、図4に示すように、該当するデータブロックDを符号D101〜D106に示す6個の分割データ41’に分割すると共に、符号D107〜D112に示す6個の冗長データ42’を付加して、全体としてデータ数は変化がない12個のフラグメントデータから成るデータセット40’を生成する。そして、各フラグメントデータを複数の記憶装置に分散して書き込む。
このように、冗長度制御部は、ブロックデータの参照数に応じた冗長度、つまり、参照数が多いほど高い冗長度の冗長処理を施して、当該ブロックデータをデータ格納部21に格納する。なお、本実施形態のける冗長度制御部13では、冗長度に対応する冗長処理の一例として、冗長度に対応する数の冗長データをブロックデータに付加する処理を挙げたが、冗長度に対応する冗長処理は上述した処理に限定されない。例えば、冗長度の値に対応する数の記憶装置に、ブロックデータの複製を格納して、冗長性を確保してもよい。
また、冗長度制御部13は、上述したように冗長度を変更したブロックデータをデータ格納部21に書き込むと、当該データ格納部21に格納されている冗長度を変更する前のブロックデータを削除する。
さらに、冗長度制御部13は、コンテンツアドレス管理テーブル22内のデータを更新する機能を有する。具体的には、上述したように冗長度制御部13が冗長度を変更して格納したブロックデータのコンテンツアドレスに関連付けて、当該ブロックデータの冗長度を変更した後の格納先アドレスを記憶する。つまり、ブロックデータのデータ内容には変更がないため、当該ブロックデータを参照するコンテンツアドレスは変更せずに、このコンテンツアドレスに関連付けられた格納先アドレスを、冗長度変更後に格納した格納先アドレスに変更して更新する。また、このコンテンツアドレスに関連付けて、変更後の冗長度を記憶して更新する。
なお、上述した冗長度記憶部13による処理は、コンテンツアドレス管理部12にてコンテンツアドレス管理テーブル22内の参照カウンタの変化を検出したときに、実行されてもよい。つまり、コンテンツアドレス管理テーブル22内の参照カウンタの変化を検出すると、その参照カウンタが関連付けられているレコード内の冗長度を読み出して、上述したように適正冗長度定義テーブルを比較する。そして、冗長度が適正ではない場合に、上述したようにブロックデータを読み出して、冗長度を変更して再度記憶する。但し、冗長度記憶部13による処理のタイミングは、必ずしも上述したタイミングであることに限定されず、一定の時間間隔にて行われてもよい。
[動作]
次に、上述したストレージ装置1の動作を、図5乃至図6のフローチャートを参照して説明する。
まず、ファイルの書込み要求があると(ステップS1)、当該ファイルを複数のブロックデータに分割して、このブロックデータを記憶対象とする。そして、ブロックデータ毎にハッシュ値を計算し(ステップS2)、このハッシュ値と同じデータが既に記憶されているか判定する。例えば、コンテンツアドレス管理テーブル22に記憶されているハッシュ値を含むコンテンツアドレスを調べて、その一部であるハッシュ値に相当する部分に、同一のデータが記憶されているかを調べる。なお、同一データが既に記憶されているか否かの処理は、例えば、ストレージ装置が、既に格納したブロックデータのハッシュ値を他の方法で記憶保持しており、この記憶保持しているハッシュ値と、新たに記憶するブロックデータから算出したハッシュ値とを比較して行ってもよい。
そして、新たに記憶するブロックデータと同一データが記憶されていないと判定された場合には(ステップS3でNo)、図3に示すように、新たに記憶するブロックデータDを圧縮して分割し(符号41)、さらに冗長データ(符号42)を付加した複数のフラグメントデータからなるデータセット40を生成する(ステップS4)。このとき、新規に記憶するブロックデータの場合には、参照カウンタ(参照数)が「1」であるため、適正冗長度定義テーブル23に基づいて、冗長度を「3」に設定し、3つの冗長データを付加している。
そして、新規に記憶するブロックデータを構成する複数のフラグメントデータを、複数の記憶装置に分散して記憶する(ステップS5)。その後、コンテンツアドレス管理テーブル22に新規エントリを追加し、図2(A)に示すように、新規に記憶したブロックデータのコンテンツアドレス、参照カウンタ、冗長度、格納先アドレスを記憶する(ステップS6)。なお、この時点では、参照カウンタは「1」であり、冗長度は「3」である。
次に、新たに記憶するブロックデータと同一データが記憶されていると判定された場合(ステップS3でYes)の動作について説明する。この場合には、新たに記憶するブロックデータをデータ格納部21には記憶せず、既に記憶されているブロックデータを参照する処理を行う(ステップS7)。そして、この既に記憶されているブロックデータが参照されている数、つまり、コンテンツアドレス管理テーブル22内に記憶されているデータブロックの参照カウンタを加算して、更新する(ステップS8)。
続いて、ストレージ装置1は、上述したコンテンツアドレス管理テーブル22内のデータ更新のタイミング、あるいは、一定の時間間隔にて、冗長度制御処理を実行する。なお、以下では、一定の時間間隔にて冗長度制御処理を実行する場合を説明する。
まず、コンテンツアドレス管理テーブル22から、各データブロックの参照カウンタおよび冗長度を取得し、適正冗長度定義テーブル23で定義されている参照数毎の適正冗長度の値と比較する(ステップS11)。この時、例えば、コンテンツアドレス管理テーブル22の内容が図2(A)に示すデータであり、適正冗長度定義テーブル23の内容が図2(B)に示すデータであるとする。すると、コンテンツアドレスCA6のデータブロックの参照カウンタが「11」であり、冗長度は「3」であるが、適正冗長度定義テーブル23によると、適正な冗長度は「6」であり、冗長度に差異があり、適正ではない、と判定できる(ステップS12でNo)。
この場合に、ストレージ装置1は、コンテンツアドレス管理テーブル22からコンテンツアドレスCA6に関連付けられた格納先アドレスを取得し、当該コンテンツアドレスCA6が参照するブロックデータを読み出す(ステップS13)。続いて、読み出したコンテンツアドレスCA6のブロックデータに対して、冗長度が適正値の「6」になるよう冗長データを付加する(ステップS14)。このとき、例えば、図4に示すように、ブロックデータ自体を6個の分割データに分割し、これに6個の冗長データを付加する。そして、冗長データを付与されたブロックデータを、複数の記憶装置にて構成されたデータ格納部21に分散して書き込む(ステップS15)。これにより、ブロックデータに、参照されている数に応じて適正な冗長度に対応する冗長性を付与して、記憶したこととなる。
その後、ストレージ装置1は、データ格納部21に格納されていた冗長度を変更する前のブロックデータを、当該データ格納部21内から削除する(ステップS16)。また、ストレージ装置1は、コンテンツアドレス管理テーブル22内のデータ、特に、コンテンツアドレスCA6のデータブロックの冗長度と、冗長度を変更したブロックデータの新たな格納先アドレスを更新する(ステップS17)
以上のように、本発明のストレージ装置によると、既に記憶されているブロックデータが参照される数が多くなり、当該ブロックデータの冗長度が適正でなくなった場合には、当該ブロックデータの冗長度が適正な値に変更され、記憶される。従って、記憶されているデータの重要度に応じて、適切な度合の冗長性を持たせて記憶することができると共に、記憶容量や格納処理に費やすリソースも効率よく使用することができる。その結果、信頼性及びシステム性能の向上を図ることができるストレージ装置を提供することができる。
また、記憶されているブロックデータの冗長度を変更して記憶しなおした場合であっても、このブロックデータの新たな格納位置を特定する格納先アドレスが、冗長度変更前のブロックデータを参照していたコンテンツアドレスに参照されて記憶される。従って、ブロックデータにアクセスするコンテンツアドレスを変更しないため、外部からは引き続き同一のコンテンツアドレスで同一のブロックデータにアクセスすることができ、データ管理が容易となり、ストレージ装置の性能の向上を図ることができる。
<実施形態2>
本発明の第2の実施形態を、図7を参照して説明する。図7は、ストレージ装置の構成を示す機能ブロック図である。なお、本実施形態では、ストレージ装置の概略を説明する。
図7に示すように、本実施形態におけるストレージ装置100は、
記憶対象データを記憶装置121に格納すると共に、当該記憶装置に既に記憶されている上記記憶対象データと同一のデータ内容の他の記憶対象データを上記記憶装置に格納する場合に、当該記憶装置に既に記憶されている上記記憶対象データを上記他の記憶対象データとして参照させるデータ格納制御部111と、
上記記憶装置に記憶されている上記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶する参照数管理部112と、
上記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する冗長度制御部113と、
を備える。
そして、上記ストレージ装置では、
上記冗長度制御部は、上記記憶対象データの参照数が多いほど高い度合の上記冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する、
という構成を採る。
また、上記ストレージ装置では、
上記冗長度制御部は、上記記憶対象データに、当該記憶対象データの参照数に応じた冗長度に対応した数の冗長データを付加して、複数の記憶装置に分散して格納する、
という構成を採る。
上記発明によると、まず、ストレージ装置では、記憶対象データを記憶装置に格納する。このとき、既に同一のデータ内容の記憶対象データが記憶装置に記憶されている場合には、新たな記憶対象データを記憶することなく、既に記憶されている記憶対象データを参照して利用する。また、ストレージ装置では、記憶装置に記憶されている記憶対象データが参照されている数を記憶する。そして、ストレージ装置は、記憶対象データの参照数に応じて設定される冗長度に対応する冗長処理を施して、当該記憶対象データを記憶装置に記憶する。このとき、特に、参照数が多いほど高い度合の冗長度に設定する。そして、例えば、冗長度に対応した数の冗長データを記憶対象データに付加して、複数の記憶装置に分散して記憶する。
以上により、本発明では、記憶対象データの重要度に相当する参照数に応じて、当該記憶対象データの冗長度を設定して記憶装置に記憶している。従って、記憶対象データの重要度に応じて適切な度合の冗長性を持たせて当該記憶対象データを記憶することができると共に、記憶容量や格納処理に費やすリソースも効率よく使用することができる。その結果、信頼性及びシステム性能の向上を図ることができるストレージ装置を提供することができる。
また、上記ストレージ装置では、
上記冗長度制御部は、上記記憶装置に既に記憶されている上記記憶対象データの冗長度を変更するよう冗長処理を施して当該記憶対象データを上記記憶装置に記憶した場合に、冗長度を変更する前の上記記憶対象データを上記記憶装置から削除する、
という構成を採る。
これにより、参照数に応じて適切な冗長度に設定した記憶対象データを記憶した後に、同一内容である冗長度を変更する前の記憶対象データを削除するため、記憶容量の効率化を図ることができる。
また、上記ストレージ装置では、
上記データ格納制御部は、上記記憶装置に格納した上記記憶対象データの格納位置を特定する格納先アドレスと、当該格納先アドレスを参照するアドレスデータと、を対応付けて記憶し、
上記冗長度制御部は、上記冗長度を変更して格納した上記記憶対象データの格納位置を特定する新たな上記格納先アドレスを、当該記憶対象データの上記アドレスデータに対応付けて記憶する、
という構成を採る。
また、上記ストレージ装置では、
上記冗長度制御部は、上記参照数管理部にて上記記憶対象データの参照数の変化を検出したときに、当該記憶対象データの冗長度を変更する処理を実行するよう作動する、
という構成を採る。
これにより、記憶対象データの冗長度を変更して記憶しなおした場合であっても、この記憶対象データの新たな格納位置を特定する格納先アドレスが、変更前のアドレスデータにて参照されて記憶される。従って、記憶対象データにアクセスするアドレスデータは変更しないため、データ管理が容易となり、性能の向上を図ることができる。また、参照数が変化したときにのみ冗長度の変更処理を実行するよう作動するため、ストレージ装置の処理負荷を抑制することができる。
また、上記ストレージ装置では、
所定の範囲の参照数毎にそれぞれ対応する冗長度が設定された冗長度定義テーブルを記憶し、
上記冗長度制御部は、上記記憶対象データの冗長度が、当該記憶対象データの参照数に対応する上記冗長度定義テーブルに設定された冗長度となるよう、当該冗長度に対応する冗長処理を施して、上記記憶対象データを上記記憶装置に格納する、
という構成を採る。
これにより、参照数が所定範囲内では冗長度の変化がないよう設定されるため、頻繁に冗長度が変更されることを抑制できる。従って、ストレージ装置の処理負荷を抑制することができ、ストレージ装置の性能の向上を図ることができる。
また、上述したストレージ装置は、情報処理装置にプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、
情報処理装置に、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている上記記憶対象データと同一のデータ内容の他の記憶対象データを上記記憶装置に格納する場合に、当該記憶装置に既に記憶されている上記記憶対象データを上記他の記憶対象データとして参照させるデータ格納制御部と、
上記記憶装置に記憶されている上記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶する参照数管理部と、
上記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する冗長度制御部と、
を実現させるためのプログラムである。
そして、上記プログラムでは、
上記冗長度制御部は、上記記憶対象データの参照数が多いほど高い度合の上記冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する、
という構成を採る。
また、上述したストレージ装置が作動することにより実行される、本発明の他の形態であるデータ格納方法は、
記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている上記記憶対象データと同一のデータ内容の他の記憶対象データを上記記憶装置に格納する場合に、当該記憶装置に既に記憶されている上記記憶対象データを上記他の記憶対象データとして参照させるデータ格納処理を実行すると共に、
上記記憶装置に記憶されている上記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
上記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する、
という構成を採る。
そして、上記データ格納方法では、
冗長処理を施して上記記憶対象データを格納する際に、上記記憶対象データの参照数が多いほど高い度合の上記冗長度に対応する冗長処理を施して、当該記憶対象データを上記記憶装置に格納する、
という構成を採る。
上述した構成を有する、プログラム、又は、データ格納方法、の発明であっても、上記ストレージ装置と同様の作用を有するために、上述した本発明の目的を達成することができる。
本発明は、格納したデータの内容に応じて格納位置を管理するコンテンツアドレス型のストレージ装置に適用でき、産業上の利用可能性を有する。
1 ストレージ装置
11 データ格納処理部
12 コンテンツアドレス管理部
13 冗長度制御部
21 データ格納部
22 コンテンツアドレス管理テーブル
23 適正冗長度定義テーブル
100 ストレージ装置
111 データ格納制御部
112 参照数管理部
113 冗長度制御部
121 記憶装置

Claims (11)

  1. 記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部と、
    前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶する参照数管理部と、
    前記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを前記記憶装置に格納する冗長度制御部と、
    を備えたストレージ装置。
  2. 請求項1記載のストレージ装置であって、
    前記冗長度制御部は、前記記憶対象データの参照数が多いほど高い度合の前記冗長度に対応する冗長処理を施して、当該記憶対象データを前記記憶装置に格納する、
    ストレージ装置。
  3. 請求項1又は2記載のストレージ装置であって、
    前記冗長度制御部は、前記記憶対象データに、当該記憶対象データの参照数に応じた冗長度に対応した数の冗長データを付加して、複数の記憶装置に分散して格納する、
    ストレージ装置。
  4. 請求項1乃至3のいずれか一項に記載のストレージ装置であって、
    前記冗長度制御部は、前記記憶装置に既に記憶されている前記記憶対象データの冗長度を変更するよう冗長処理を施して当該記憶対象データを前記記憶装置に記憶した場合に、冗長度を変更する前の前記記憶対象データを前記記憶装置から削除する、
    ストレージ装置。
  5. 請求項1乃至4のいずれか一項に記載のストレージ装置であって、
    前記データ格納制御部は、前記記憶装置に格納した前記記憶対象データの格納位置を特定する格納先アドレスと、当該格納先アドレスを参照するアドレスデータと、を対応付けて記憶し、
    前記冗長度制御部は、前記冗長度を変更して格納した前記記憶対象データの格納位置を特定する新たな前記格納先アドレスを、当該記憶対象データの前記アドレスデータに対応付けて記憶する、
    ストレージ装置。
  6. 請求項1乃至5のいずれか一項に記載のストレージ装置であって、
    前記冗長度制御部は、前記参照数管理部にて前記記憶対象データの参照数の変化を検出したときに、当該記憶対象データの冗長度を変更する処理を実行するよう作動する、
    ストレージ装置。
  7. 請求項1乃至6のいずれか一項に記載のストレージ装置であって、
    所定の範囲の参照数毎にそれぞれ対応する冗長度が設定された冗長度定義テーブルを記憶し、
    前記冗長度制御部は、前記記憶対象データの冗長度が、当該記憶対象データの参照数に対応する前記冗長度定義テーブルに設定された冗長度となるよう、当該冗長度に対応する冗長処理を施して、前記記憶対象データを前記記憶装置に格納する、
    ストレージ装置。
  8. 情報処理装置に、
    記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納制御部と、
    前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶する参照数管理部と、
    前記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを前記記憶装置に格納する冗長度制御部と、
    を実現させるためのプログラム。
  9. 請求項8記載のプログラムであって、
    前記冗長度制御部は、前記記憶対象データの参照数が多いほど高い度合の前記冗長度に対応する冗長処理を施して、当該記憶対象データを前記記憶装置に格納する、
    プログラム。
  10. 記憶対象データを記憶装置に格納すると共に、当該記憶装置に既に記憶されている前記記憶対象データと同一のデータ内容の他の記憶対象データを前記記憶装置に格納する場合に、当該記憶装置に既に記憶されている前記記憶対象データを前記他の記憶対象データとして参照させるデータ格納処理を実行すると共に、
    前記記憶装置に記憶されている前記記憶対象データ毎に、当該記憶対象データが他の記憶対象データとして参照されている数である参照数を記憶し、
    前記記憶対象データの参照数に応じた冗長度に対応する冗長処理を施して、当該記憶対象データを前記記憶装置に格納する、
    データ格納方法。
  11. 請求項10記載のデータ格納方法であって、
    冗長処理を施して前記記憶対象データを格納する際に、前記記憶対象データの参照数が多いほど高い度合の前記冗長度に対応する冗長処理を施して、当該記憶対象データを前記記憶装置に格納する、
    データ格納方法。
JP2009071081A 2009-03-24 2009-03-24 ストレージ装置 Active JP5369807B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009071081A JP5369807B2 (ja) 2009-03-24 2009-03-24 ストレージ装置
PCT/JP2009/006947 WO2010109568A1 (ja) 2009-03-24 2009-12-17 ストレージ装置
US13/148,894 US8725969B2 (en) 2009-03-24 2009-12-17 Distributed content storage system supporting different redundancy degrees

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009071081A JP5369807B2 (ja) 2009-03-24 2009-03-24 ストレージ装置

Publications (2)

Publication Number Publication Date
JP2010224845A JP2010224845A (ja) 2010-10-07
JP5369807B2 true JP5369807B2 (ja) 2013-12-18

Family

ID=42780278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009071081A Active JP5369807B2 (ja) 2009-03-24 2009-03-24 ストレージ装置

Country Status (3)

Country Link
US (1) US8725969B2 (ja)
JP (1) JP5369807B2 (ja)
WO (1) WO2010109568A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124257A1 (ja) * 2011-03-14 2012-09-20 株式会社ニコン 電子機器、電子機器の制御方法およびプログラム
WO2012127566A1 (ja) * 2011-03-18 2012-09-27 富士通株式会社 ストレージ装置,制御装置及び制御方法
JP2013004067A (ja) * 2011-06-22 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> ストレージシステム、ストレージ制御方法、プログラム
JP5891842B2 (ja) * 2012-02-24 2016-03-23 日本電気株式会社 ストレージシステム
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
US9645944B2 (en) * 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance
US9110815B2 (en) 2012-05-07 2015-08-18 International Business Machines Corporation Enhancing data processing performance by cache management of fingerprint index
JP6155029B2 (ja) * 2013-01-17 2017-06-28 三菱重工業株式会社 航空機の通信システム、航空機の通信方法及び通信機器
JP5941494B2 (ja) * 2014-05-01 2016-06-29 ウイングアーク1st株式会社 インメモリ管理システムおよびインメモリ管理用プログラム
US20170123676A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Reference Block Aggregating into a Reference Set for Deduplication in Memory Management
JP6330824B2 (ja) * 2016-01-20 2018-05-30 日本電気株式会社 ストレージシステム、アクセス装置、クライアント装置、方法およびプログラム
US10788988B1 (en) 2016-05-24 2020-09-29 Violin Systems Llc Controlling block duplicates
JP6911443B2 (ja) * 2017-03-27 2021-07-28 日本電気株式会社 情報処理装置
JP6802209B2 (ja) 2018-03-27 2020-12-16 株式会社日立製作所 ストレージシステム
JP7065928B2 (ja) * 2020-11-06 2022-05-12 株式会社日立製作所 ストレージシステム及びその制御方法
JP7244482B2 (ja) * 2020-12-16 2023-03-22 株式会社日立製作所 ストレージ管理システム、管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
US5664187A (en) * 1994-10-26 1997-09-02 Hewlett-Packard Company Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables
JP3481391B2 (ja) * 1996-05-23 2003-12-22 日本電気株式会社 ファイルデータ分散格納方式
US7444389B2 (en) 2003-12-09 2008-10-28 Emc Corporation Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time
JP4307982B2 (ja) * 2003-12-19 2009-08-05 株式会社日立製作所 データ多重化制御方法
US20060136668A1 (en) * 2004-12-17 2006-06-22 Rudelic John C Allocating code objects between faster and slower memories
JP2007200182A (ja) * 2006-01-30 2007-08-09 Hitachi Ltd ストレージ装置、及びストレージシステム
US8200923B1 (en) * 2008-12-31 2012-06-12 Emc Corporation Method and apparatus for block level data de-duplication

Also Published As

Publication number Publication date
WO2010109568A1 (ja) 2010-09-30
US20120011318A1 (en) 2012-01-12
US8725969B2 (en) 2014-05-13
JP2010224845A (ja) 2010-10-07

Similar Documents

Publication Publication Date Title
JP5369807B2 (ja) ストレージ装置
US20210182160A1 (en) System and method for generating file system and block-based incremental backups using enhanced dependencies and file system information of data blocks
JP5407430B2 (ja) ストレージシステム
US20140149700A1 (en) Managing write operations to an extent of tracks migrated between storage devices
WO2010095183A1 (ja) ストレージシステム
JP6805816B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
US9009430B2 (en) Restoration of data from a backup storage volume
WO2016082559A1 (zh) 一种数据写入方法及存储设备
CN106227769B (zh) 数据存储方法及装置
EP2669806B1 (en) Storage system
JP5585116B2 (ja) ストレージシステム
JP5517224B2 (ja) ストレージ装置
US11429311B1 (en) Method and system for managing requests in a distributed system
US10430287B2 (en) Computer
JPWO2011108041A1 (ja) ストレージ装置
US11163642B2 (en) Methods, devices and computer readable medium for managing a redundant array of independent disks
JP2013058133A (ja) データ書き込み装置
US8977814B1 (en) Information lifecycle management for binding content
JP2009053961A (ja) ファイル検索システム
US11816088B2 (en) Method and system for managing cross data source data access requests
JP5818569B2 (ja) ファイルシステム、ファイル管理方法、半導体記憶装置、情報処理装置、及びプログラム
CN116431848B (zh) 一种基于数据污染传播分析的纹理动态索引方法
US11494382B2 (en) Optimization of first set of ordered items
KR101375794B1 (ko) 데이터베이스의 성능을 향상하기 위한 방법 및 장치
JP2012133551A (ja) 書き込み制御システム及び書き込み制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111018

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130902

R150 Certificate of patent or registration of utility model

Ref document number: 5369807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250