JP5446985B2 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP5446985B2
JP5446985B2 JP2010038559A JP2010038559A JP5446985B2 JP 5446985 B2 JP5446985 B2 JP 5446985B2 JP 2010038559 A JP2010038559 A JP 2010038559A JP 2010038559 A JP2010038559 A JP 2010038559A JP 5446985 B2 JP5446985 B2 JP 5446985B2
Authority
JP
Japan
Prior art keywords
data
storage
stored
block
block data
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.)
Expired - Fee Related
Application number
JP2010038559A
Other languages
English (en)
Other versions
JP2011175421A (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 JP2010038559A priority Critical patent/JP5446985B2/ja
Publication of JP2011175421A publication Critical patent/JP2011175421A/ja
Application granted granted Critical
Publication of JP5446985B2 publication Critical patent/JP5446985B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージシステムにかかり、特に、記憶するデータの重複排除機能を有するストレージシステムに関する。
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。
具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。このようにすることで、データへのアクセス性能を高めつつ、フラグメントのいくつかを消失した場合であってもデータを復元でき、耐障害性を高めている。
また、格納されたデータを参照する上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
上述したコンテンツアドレスストレージシステムの一例について、さらに詳述する。コンテンツアドレスストレージシステムは、例えば、図1に示すように、記憶対象データを記憶する1台以上のストレージノード320と、当該ストレージノード320にデータの対する書き込み及び読み出しを制御する1台以上のアクセラレータノード310と、を備える。
まず、上記アクセラレータノード310は、クライアント301から送信されたファイルを構成するブロック列B100を受け取る(図1の(1))。図1の例では、送信されたデータB100は、「ABCDE」という5つのブロックから構成されるものとしている。
アクセラレータノード310は、上記ブロック列B100を受け取ると、ファイルシステム311が有するブロック処理部312が、受け取った各ブロックのハッシュ値を取得して、当該各ブロックを圧縮する(図1の(2))。続いて、ファイルシステム311が有するブロック送信部313が、各ブロックのハッシュ値列B102と圧縮されたブロック列B101を、ストレージノード320へ送信する(図1の(3))。
ストレージノード320は、アクセラレータノード310から圧縮されたブロック列B101とハッシュ値列B102を受け取ると、ブロック保存部321が有する重複確認部322が、ハッシュ値列B102のうち同じハッシュ値を持つブロックが既にディスク325に格納されているかを確認する(図1の(4))。図1の例では、ハッシュ値列B103を確認したところ、ブロックB,Dに対応するハッシュ値b,dが、既にディスク325に存在していたことが確認されたこととする。すると、ストレージノード320は、重複しているブロックのハッシュ値列B104を取得する。
続いて、ストレージノード320のブロック保存部321が有するブロック書込部323が、重複しているブロックのハッシュ値を元に、重複していないブロックと、そのブロックのハッシュ値を、ディスク25に格納する(図1の(5))。図1の例では、重複していない符号A,C,EのブロックB105と、そのハッシュ値B106を、ディスク325に格納している。
以上により、クライアント301とは別のクライアントから、上述したようにストレージノード320に格納されたブロック列B100と全く同じブロック列B110が送信された場合であっても、ストレージノード320に新たなブロックが書き込まれることが抑制され、格納するデータの重複を排除することができる。
特開2005−235171号公報
しかしながら、上述したストレージシステムにおけるデータ格納方法では、ストレージノードの記憶装置に書き込まれないブロックであっても、アクセラレータノードで圧縮処理を行うと共に、ストレージノードへの送信を行う必要がある(図1の符号B111,B112を参照)。このため、ブロックの送信に使用する通信資源と、ブロックの圧縮に使用するアクセラレータノードのCPU資源が必要となる。すると、多数のクライアントから重複度が高いブロック列が送信された場合には、通信資源とCPU資源の浪費により、ストレージシステムの性能が低下する、という問題が生じる。
このため、本発明の目的は、上述した課題である、ストレージシステムの性能の低下、ということを解決することにある。
かかる目的を達成するため本発明の一形態であるストレージシステムは、
記憶対象となるデータを記憶する記憶装置を備えると共に、当該記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部を備えたストレージサーバと、
上記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御するアクセラレータサーバと、を備える。
そして、上記ストレージサーバは、上記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を上記アクセラレータサーバに返送する重複確認部を備える。
さらに、上記アクセラレータサーバは、
上記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの上記内容識別データを送信して、当該ブロックデータが上記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
上記ストレージサーバが有する上記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを上記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各上記内容識別データを上記ストレージサーバに送信して各ブロックデータが上記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する上記ストレージサーバが有する上記重複確認部からの重複確認結果に応じて上記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、を備えた、
という構成をとる。
また、本発明の他の形態である情報処理装置は、
記憶対象となるデータを記憶する記憶装置を備えると共に、
上記記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部と、
上記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を上記アクセラレータサーバに返送する重複確認部と、を備えたストレージサーバに接続された情報処理装置である。
そして、上記情報処理装置は、
上記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御する書き込み制御部と、
上記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの上記内容識別データを送信して、当該ブロックデータが上記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
上記ストレージサーバが有する上記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを上記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各上記内容識別データを上記ストレージサーバに送信して各ブロックデータが上記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する上記ストレージサーバが有する上記重複確認部からの重複確認結果に応じて上記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、
を備えた、
という構成をとる。
また、本発明の他の形態であるプログラムは、
記憶対象となるデータを記憶する記憶装置を備えると共に、
上記記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部と、
上記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を上記アクセラレータサーバに返送する重複確認部と、を備えたストレージサーバに接続された情報処理装置に、組み込まれるプログラムである。
そして、上記プログラムは、情報処理装置に、
上記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御する書き込み制御部と、
上記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの上記内容識別データを送信して、当該ブロックデータが上記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
上記ストレージサーバが有する上記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを上記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各上記内容識別データを上記ストレージサーバに送信して各ブロックデータが上記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する上記ストレージサーバが有する上記重複確認部からの重複確認結果に応じて上記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、
を実現させるためのプログラムである。
また、本発明の他の形態であるデータ格納方法は、
記憶対象となるデータを記憶する記憶装置を備えると共に、当該記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部を備えたストレージサーバと、
上記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御するアクセラレータサーバと、を備えたストレージシステムにて、実行される方法である。
そして、上記データ格納方法は、
上記アクセラレータサーバが、上記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの内容に固有の内容識別データを送信して、当該ブロックデータが上記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行い、
上記ストレージサーバが、上記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された上記内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を上記アクセラレータサーバに返送し、
上記アクセラレータサーバは、上記ストレージサーバからの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを上記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各上記内容識別データを上記ストレージサーバに送信して各ブロックデータが上記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する上記ストレージサーバからの重複確認結果に応じて上記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行する、
という手順にて実行される。
本発明は、以上のように構成されることにより、格納するデータの重複排除を実現しつつ、ストレージシステムの性能の向上を図ることができる。
本発明に関連するストレージシステムの構成及び動作を示すブロック図である。 本発明の実施形態1におけるストレージシステムの構成の概略を示すブロック図である。 図2に開示したストレージシステムにおけるデータ記憶処理の様子を説明するための説明図である。 図2に開示したストレージシステムにおけるデータ記憶処理の様子を説明するための説明図である。 本発明の実施形態1におけるストレージシステムの構成及び動作を示すブロック図である。 図5に開示した重複度スコアの一例を示す図である。 図5に開示したストレージシステムの動作を示す説明図である。 図5に開示したストレージシステムの動作を示す説明図である。 図5に開示したアクセラレータノードの動作を示すフローチャートである。 図5に開示したアクセラレータノードの動作を示すフローチャートである。 図5に開示したアクセラレータノードの動作を示すフローチャートである。 図5に開示したストレージシステムの動作の他の例を示す説明図である。 本発明の付記におけるストレージシステムの構成を示すブロック図である。
<実施形態1>
本発明の第1の実施形態を、図2乃至図12を参照して説明する。図2は、本実施形態におけるストレージシステムの全体構成を示すブロック図である。図3乃至図4は、データ書き込み処理の様子を示す説明図である。図5は、ストレージシステムの構成を示すブロック図であり、図6は、重複度スコアの一例を示す図である。図7乃至図8は、ストレージシステムの動作を説明する図であり、図9乃至図11は、アクセラレータノードの動作を示すフローチャートである。図12は、ストレージシステムの他の動作を説明する図である。
ここで、本実施形態は、後述する付記に記載のストレージシステム等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
[構成]
本実施形態におけるストレージシステム100は、図2に示すように、バックアップを必要とするデータなど、所定のデータの書き込み要求を行う情報処理装置であるクライアント101にネットワークを介して接続されている。
そして、図2に示すように、本実施形態におけるストレージシステム100は、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム100は、ストレージシステム100自体における記憶再生動作を制御する情報処理装置であるアクセラレータノード10と、データを格納する記憶装置を備えた情報処理装置であるストレージノード20と、を備えている。なお、アクセラレータノード10の数とストレージノード20の数は、図2に示したものに限定されず、さらに多くの各ノード10,20が接続されて構成されていてもよい。
さらに、本実施形態におけるストレージシステム100は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。
ここで、ストレージシステム100が、記憶対象となるデータを、コンテンツアドレスを利用して記憶装置に書き込むときの処理を、図3乃至図4を参照して説明する。なお、ここでは、ストレージシステム100が1つのシステムであるとして、当該ストレージシステム100が備えている構成及び機能を説明する。
まず、図4に示すように、クライアントから書き込み要求されたファイルAの入力を受けると(矢印Y1)、図3及び図4の矢印Y2に示すように、当該ファイルAを、所定容量(例えば、64KB)のブロックデータDに分割する。そして、このブロックデータDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Hを算出する(矢印Y3)。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容から算出する。
続いて、ファイルAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に格納されているか否かを調べる。具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAとが、関連付けられてMFI(Main Fragment Index)ファイルに登録されている。従って、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる(図4の矢印Y4)。この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFI内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、書き込み要求されたブロックデータDのコンテンツアドレスCAとして返却する。これにより、このコンテンツアドレスCAにて参照される既に格納されているデータが、書き込み要求されたブロックデータDとして使用されることとなり、当該書き込み要求にかかるブロックデータDを記憶する必要がなくなる。
また、書き込み要求にかかるブロックデータDがまだ記憶されていないと判断された場合には、かかるブロックデータDを圧縮して、図4の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する。例えば、図3の符号D1〜D9に示すように、9つのフラグメントデータ(分割データ31)に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ31に追加する。例えば、図3の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データ32)を追加する。これにより、9つの分割データ31と、3つの冗長データ32とにより構成される12個のフラグメントデータからなるデータセット30を生成する。
続いて、上述したように生成されたデータセットを構成する各フラグメントデータを、記憶装置に形成された各記憶領域に、それぞれ分散して格納する。例えば、図3に示すように、12個のフラグメントデータD1〜D12を生成した場合には、複数の記憶装置内にそれぞれ形成したデータ格納ファイルに、各フラグメントデータD1〜D12を1つずつそれぞれ格納する(図4の矢印Y6参照)。
続いて、ストレージシステム100は、上述したように格納したフラグメントデータD1〜D12の格納位置、つまり、当該フラグメントデータD1〜D12にて復元されるブロックデータDの格納位置を表すコンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム100内のファイルシステムに返却する(図4の矢印Y7)。すると、ストレージシステム100は、記憶対象であるデータのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けてファイルシステムで管理する。
また、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード20がMFIファイルにて管理する。このように、上記コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、アクセラレータノード10やストレージノード20の記憶装置に格納される。
さらに、ストレージシステム100は、上述したように格納したファイルを読み出す制御を行う。例えば、クライアント101からストレージシステム100に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。
そして、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して返却する。
以上のようにして、本実施形態におけるストレージシステム100は、同一内容のデータの重複記憶を排除している。
次に、本実施形態におけるストレージシステム100を構成するアクセラレータノード10及びストレージノード20の具体的な構成を、図5を参照して説明する。なお、以下の説明は、特に、ストレージシステム100が、上記図3,4を参照して説明した処理の一部である、ブロックデータDが既に格納されているか否かを確認して、記憶されていないブロックデータDのみを記憶する、という処理を実行するための具体的な構成や動作を説明するものである。従って、ブロックデータDをさらにフラグメントデータに分割して分散記憶する処理までは言及していないが、ストレージノード20の記憶装置25にブロックデータを記憶する際には、上述したように、当該ブロックデータをフラグメントに分割して、さらに冗長データを付加して、分散記憶する処理が実行されることとなる。
まず、アクセラレータノード10は、演算装置及び記憶装置を備えた一般的な情報処理装置である。そして、アクセラレータノード10は、演算装置にプログラムが組み込まれることによって構築された、ファイルシステム11と、重複確認部12と、ブロック処理部13と、ブロック送信部14と、重複度スコア15と、を備えている。また、ストレージノード20は、演算装置及び記憶装置25を備えた一般的な情報処理装置である。そして、ストレージノード20は、演算装置にプログラムが組み込まれることによって構築された、ブロック保存部21と、重複確認部22と、ブロック書込部23と、を備えている。
そして、アクセラレータノード10のファイルシステム11は、上述したように、ストレージノード20に対する記憶対象となるデータを構成するブロックデータの書き込みを制御する書き込み制御部として機能する。また、ストレージノード20のブロック保存部21は、上述したように、記憶装置(ディスク)25にブロックデータを格納する際に、新たに記憶するブロックデータが既に記憶されている場合には、コンテンツアドレスを用いて既に記憶されているブロックデータの格納位置を新たに記憶するブロックデータとして参照することで、同一内容のデータの重複記憶を排除するデータ格納制御部として機能する。
そして、さらに、本実施形態におけるアクセラレータノード10とストレージノード20とは、以下の機能を有する。まず、アクセラレータノード10の重複確認部12(一部重複確認依頼部)は、クライアント101から記憶対象となるデータを受け取ると(図5の(1)参照)、当該受け取ったデータのブロック列のうち、一部のブロックデータの内容に固有となるハッシュ値(内容識別データ)を算出する(図5の(2)参照)。このとき、重複確認部12は、ブロック列から1つまたは複数のブロックデータを選択(サンプリング)して、当該選択された各ブロックデータの各ハッシュ値をそれぞれ算出する。
ここで、ブロック列からブロックデータのサンプリングは、例えば、複数のブロック列からなる所定のデータ長の範囲から、予め設定された位置またはランダムに選択された位置に配置された1つのブロックデータを抽出する、という方法で実行される。具体的に、図5に示す例では、クライアント101から「ABCDE」というブロックデータで構成されたブロック列B10が送信されたときに、当該ブロック列B10からブロックデータ「B」をサンプリングしたこととする。
そして、重複確認部12は、サンプリングしたブロックデータのハッシュ値をストレージノード20に送信して、送信したハッシュ値に対応するブロックデータがストレージノード20に既に記憶されているかどうか、つまり、既に記憶されているブロックデータと重複するかどうか、ということの確認を要求(重複確認要求)する(図5(3)参照)。例えば、図5の例では、ブロックデータ「B」のハッシュ値「b」(B11)をストレージノード20に送信する。
そして、上記アクセラレータノード10の重複確認部12からの重複確認要求に応じて、ストレージノード20の重複確認部22は、受信したハッシュ値に対応するブロックデータが記憶装置25に記憶されているか否かを調べる(図5の(4)参照)。具体的には、受信したハッシュ値が記憶装置25記憶されているか否かを調べる。そして、ハッシュ値が記憶装置25に記憶されている場合には、当該ハッシュ値に対応するブロックデータが記憶されていると判断でき、その判断結果である重複確認結果をアクセラレータノード10に返却する。図5の例では、ハッシュ値「b」(B12)が記憶装置25内に記憶されているため(符号B16参照)、このハッシュ値「b」に対応するブロックデータ「B」(符号B15参照)も記憶されていると判断できる。すると、ストレージノード20の重複確認部22は、既に記憶されているハッシュ値「b」(符号B14)をアクセラレータノード10に返信する(図5の(5)参照)。
なお、ストレージノード20の重複確認部22は、後述するように、アクセラレータノード10からさらに多くのハッシュ値が同時に送信され、当該各ハッシュ値に対応するブロックデータが既に記憶装置25に記憶されているか否かの確認の要求をしてきた場合も同様に作動し、既に記憶されているハッシュ値をアクセラレータノード10に返送する機能も有する。また、アクセラレータノード10のブロック送信部14から記憶するブロックデータと共にハッシュ値が送信された場合も、上述同様に既に記憶されているハッシュ値を調べる処理を行い、ブロック書込部23に通知する。これらの処理については後述する。
また、アクセラレータノード10の重複確認部12は、上述したストレージノード20の重複確認部22から返信された重複確認結果、つまり、既にストレージノード20に記憶されているブロックデータの重複確認結果に応じて、重複度スコア15(重複度)を更新する。なお、重複度スコア15は、例えば、1つの整数値であり、重複度スコア15の更新例を図6に示す。
まず、重複度スコア15は、例えば、初期値「0」として設定される。そして、図6の左端の場面では、重複度スコア15の値が「6」であるとする。このとき、上述したように、アクセラレータノード10の重複確認部12にてブロックデータOの重複確認要求がされ、ストレージノード20から既に記憶されているといった重複確認結果が返却されたとすると、重複確認部12は、重複度スコア15を「1」加算して、その値を「7」に更新する。一方で、図6のブロック列のうちブロックデータXの重複確認要求がされ、ストレージノード20から既に記憶されているといった重複確認結果が返却された場合を考えると、重複確認部12は、重複度スコア15を「1」減算して、その値を「7」から「6」に更新する。
なお、図6の例では、符号(1)と符号(3)の区間では、所定範囲のブロック列のうち、サンプリングされた一部のブロックデータのハッシュ値のみを重複確認している場合を示しているが、符号(2)の区間では、後述するように、所定範囲のブロック列の全てのブロックデータの各ハッシュ値について重複確認した場合を示している。この場合には、一度に複数のブロックデータR,S,T,U,Vの重複確認結果が返却されるが、それぞれの結果に応じて、重複度スコア15の値を更新する。つまり、重複しているブロックデータの数だけ重複度スコア15は加算され、重複していないブロックデータの数だけ重複度スコア15は減算されることとなる。なお、上記では、重複している場合には「1」を加算し、重複していない場合には「1」を減算する場合を例示したが、重複度スコア15を変化させる数値は「1」であることに限定されない。
以上のように、重複度スコア15の更新処理はアクセラレータノード10の重複確認部12で実行されるため(図5の(6)参照)、当該重複確認部12は、ブロックデータがストレージノード20に既に記憶されていることの度合いを表す上記重複度スコア15を計測する重複度計測部として機能している。
そして、さらに、アクセラレータノード10の重複確認部12は、上述したように更新した重複度スコア15に従って、ブロック列をストレージノード20に記憶する際の重複排除処理の一部を、アクセラレータノード10側で実行するか、ストレージノード20側で実行するか、を決定する。そして、アクセラレータノード10は、決定したいずれかの処理を実行する機能(ブロック送信部)を有する。
例えば、本実施形態では、重複度スコア15の閾値(基準値)が「8」と設定されており、重複度スコア15の値が「8」より小さい場合には、重複排除処理の一部をストレージノード20側で実行する「全ブロック送信処理」を実行する。一方で、重複度スコア15の値が「8」以上である場合には、重複排除処理の一部をアクセラレータノード10側で実行する「一部ブロック送信処理」を実行する。
ここで、上述した重複排除処理の一部をストレージノード20側で実行する「全ブロック送信処理」について、図8を参照して説明する。まず、図8の(1)〜(6)に示すように、上述同様に、クライアント101から受け取ったブロック列B50のうちサンプリングしたブロックデータのハッシュ値B51を用いて、ストレージノード20に重複確認を行い、かかるブロックデータが既に記憶されていたとする。このとき、更新した重複度スコア15の値が、閾値より小さい値である場合には、アクセラレータノード10は、ブロック処理部13にてクライアントから受け取ったブロック列B50を構成する全てのブロックデータに対して、ハッシュ値の計算とブロックの圧縮処理を行う(図8の(7))。そして、アクセラレータノード10のブロック送信部14は、上述したように圧縮した全てのブロックデータB55とそのハッシュ値B56を、ストレージノード20に送信する(図8の(8))。
なお、ストレージノード20の重複確認部22は、上述したようにアクセラレータノード10から送信された全てのブロックデータB55に対応するハッシュ値B56を用いて、当該ハッシュ値B56に対応するブロックデータB55が記憶装置25に記憶されているかどうかを調べる(図8の(9)、符号B57,B58参照)。そして、ブロック書込部23にて、まだ記憶されていないブロックデータB59とそのハッシュ値B60のみを記憶装置25に記憶する(図8の(10))。これにより、ストレージノード20側で重複排除処理を行っている。
次に、上述した重複排除処理の一部をアクセラレータノード10側で実行する「一部ブロック送信処理」について、図7を参照して説明する。まず、図7の(1)〜(6)に示すように、上述同様に、クライアント101から受け取ったブロック列B50のうちサンプリングしたブロックデータのハッシュ値B51を用いて、ストレージノード20に重複確認を行い、かかるブロックデータが既に記憶されていたとする。そして、更新した重複度スコア15の値が、閾値以上の値である場合に、以下の「一部ブロック送信処理」が実行される。
具体的に、「一部ブロック送信処理」では、まず、アクセラレータノード10の重複確認部12が、クライアントから受け取ったブロック列B30を構成する全てのブロックデータのハッシュ値を算出して、当該ハッシュ値B35をストレージノード20に送信し、当該ハッシュ値B35に対応する全てのブロックデータが既に記憶されているかどうかの重複確認要求を行う(図7の(7))。すると、ストレージノード20の重複確認部22は、アクセラレータノード10から受信したハッシュ値B36に対応するブロックデータが既に記憶されているか否かの重複確認を行い(図7の(8))、その結果である重複しているブロックデータのハッシュ値B38を、アクセラレータノード10に返却する(図7の(9))。これを受けて、アクセラレータノード10は、ブロック処理部13にて、まだストレージノード20に記憶されていないブロックデータのみに対して、圧縮処理を行う(図7の(10))。そして、アクセラレータノード10のブロック送信部14は、上述したように圧縮した一部のブロックデータB39とそのハッシュ値B40を、ストレージノード20に送信する(図7の(11))。
なお、ストレージノード20は、上述したようにアクセラレータノード10から送信された一部のブロックデータB41はまだ記憶されていないことがわかっているため、ブロック書込部23にて、送信されたブロックデータB41とそのハッシュ値B42とを、記憶装置25に記憶する(図7の(12))。以上のように、「一部ブロック送信処理」では、アクセラレータノード10側で重複排除処理を行っている。
また、「一部ブロック送信処理」では、上述したようにアクセラレータノード10から全てのブロックデータのハッシュ値をストレージノード20に送信して重複確認を行っているが、アクセラレータノード10の重複確認部12は、全てのブロックデータの重複確認結果を重複度スコア15に反映する(図7の(13))。例えば、図6のブロックデータR,S,T,U,Vの重複確認結果を行った場合には、全ての結果を重複度スコア15に反映する。そして、このとき、最終的に、重複度スコア15が閾値以上である場合には、上述した「一部ブロック送信処理」を繰り返す。一方で、最終的に、重複度スコア15が閾値よりも小さい値になった場合には、「一部ブロック送信処理」を停止する。そして、上述したアクセラレータノード10の重複確認部12にて、クライアント101から受信した後続するブロック列に対しては、当該ブロック列からサンプリングした一部のブロックデータに対応するハッシュ値のみをストレージノード20に送信して、重複確認要求する処理に戻る。
[動作]
次に、上述したストレージシステムの動作を、図5乃至11、特に、図9乃至図11のフローチャートを参照して説明する。
まず、図5に示すように、クライアント101からアクセラレータノード10に対して、記憶対象となるデータであるブロック列B10が送信される(図5の(1)、図9のステップS1)。すると、アクセラレータノード10は、受け取ったブロック列B10からブロックデータ(ここではブロックデータB)をサンプリングする(図9のステップS2)。なお、サンプリングの方法の一例としては、指定された間隔で1つのブロックを抽出する方法があるが、かかる手法に限定されない。
続いて、アクセラレータノード10の重複確認部12は、サンプリングしたブロックのハッシュ値を取得する(図1の(2)、図9のステップS2)。そして、そのハッシュ値B11をストレージノード20に送信して、当該ハッシュ値に対応するブロックデータが、ストレージノード20の記憶装置25に既に格納さているかの確認を要求する(図1の(3)、図9のステップS3)。
続いて、重複確認要求を受けたストレージノード20は、重複確認部22にて、受信したハッシュ値B12と同一のハッシュ値が記憶装置25に記憶されているかどうかを確認し(図5の(4))、その確認結果をアクセラレータノード10に返却する(図5の(5))。ここでは、重複確認要求にかかるブロックデータが、既に記憶装置25に記憶されていることを示すべく、そのハッシュ値B14がアクセラレータノード10に返却されたとする。
続いて、アクセラレータノード10は、ストレージノードから返却された重複確認結果を受け付け(図9のステップS4)、当該重複確認結果に応じて、重複度スコア15を更新する(図5の(6)、図9のステップS5)。ここでは、重複確認要求にかかるブロックデータが既に記憶装置25に記憶されていたため、重複度スコア15を「1」増加させる。但し、重複確認要求にかかるブロックデータが記憶装置25に記憶されていなかった場合には、重複度スコア15を「1」減少させる。
そして、アクセラレータノード10は、上述したように更新した重複度スコア15の値を調べて、重複排除処理をいずれのノード10,20で行うか決定する(図5の(7))。具体的には、重複度スコア15の値が閾値以上である場合には(図9のステップS6:Yes)、アクセラレータノード10で重複排除処理を行うと決定し(図9のステップS7)、重複度スコア15の値が閾値より小さい場合には(図9のステップS6:No)、ストレージノード20で重複排除処理を行うと決定する(図9のステップS8)。
ここでは、例えば、図6に示すように、ブロック例のうちブロックデータOがサンプリングされた場合には、重複度スコア15の値は「7」であるため、ストレージノード20で重複排除処理を行う「全ブロック送信処理」を実行することとなる。この処理について、図8と図11のフローチャートを参照して説明する。なお、図7の(1)から(6)までの処理は、上述した図5で説明した動作を同一動作であるため、その説明は省略する。
上述したように、重複度スコア15が閾値より低い場合には、アクセラレータノード10は、クライアント101から受け取ったブロック列のうち全てのブロックデータに対して、ハッシュ値の計算とブロックの圧縮処理を行う(図8の(7)、図11のステップS21,S22)。そして、全ての圧縮したブロックデータB55とハッシュ値B56を、ストレージノード20に送信する(図8の(8)、図11のステップS23)。
すると、その後は、ストレージノード20が、アクセラレータノード10から受け取ったハッシュ値を持つブロックが記憶装置25に存在するか確認し(図8の(9))、まだ記憶されていないブロックデータB59とハッシュ値B60のみを、記憶装置25に記憶する(図8の(10))。
なお、クライアント101からの書き込み要求にかかる後続のブロックデータが存在する場合には(図11のステップS24:Yes)、アクセラレータノード10にて、上述同様の処理が実行される。つまり、後続のブロック列からサンプリングされたブロックデータのハッシュ値を用いて、重複確認を行うと共に重複度スコアの更新を行い、当該重複度スコアの値に応じて、どちらのノード10,20で重複排除処理を行うか決定する。
次に、重複度スコアの値が閾値以上となり、アクセラレータノード10で重複排除処理を行う「一部ブロック送信処理」を実行する場合を、図7と図10のフローチャートを参照して説明する。例えば、図6に示すように、ブロック例のうちブロックデータQがサンプリングされ、重複度スコア15の値が「8」となった場合に、以下に説明する処理が実行される。なお、図7の(1)から(6)までの処理は、上述した図5で説明した動作を同一動作であるため、その説明は省略する。
上述したように、重複度スコア15が閾値以上の場合には、アクセラレータノード10は、クライアント101から受け取ったブロック列の全てのブロックデータに対応するハッシュ値を計算する(図10のステップS11)。そして、全てのブロックデータのハッシュ値B35を、ストレージノード20に送信して(図7の(7)、図10のステップS12)、重複確認を要求する。
すると、ストレージノード20は、アクセラレータノード10から受信したハッシュ値B36に対応するブロックデータが既に記憶されているか否かの重複確認を行い(図7の(8))、その結果である重複しているブロックデータのハッシュ値B38を、アクセラレータノード10に返却する(図7の(9))。図7の例では、ブロックデータB,Dが既に記憶されており、そのハッシュ値B38がアクセラレータノード10に返却される。
そして、ストレージノード20から重複確認結果を受けたアクセラレータノード10は(図10のステップS13)、まだストレージノード20に記憶されていない一部のブロックデータのみに対して、圧縮処理を行う(図7の(10)、図10のステップS14)。さらに、アクセラレータノード10は、圧縮した一部のブロックデータB39とそのハッシュ値B40を、ストレージノード20に送信する(図7の(11)、図10のステップS15)。
すると、ストレージノード20は、アクセラレータノード10から送信された一部のブロックデータB41を、ハッシュ値B42と共に、記憶装置25に記憶する(図7の(12))。
その後、アクセラレータノード10は、上述したように全てのブロック列のハッシュ値をストレージノード20に送信して行った重複確認要求に対する重複確認結果(図7の(9)参照)を、重複度スコア15に反映する(図7の(13)、図10のステップS16)。そして、後続の書き込み要求にかかるブロック列が存在する場合には(図10のステップS17:Yes)、更新された重複度スコア15に応じて、かかるブロック列に対してどちらのノード10,20で重複排除処理を行うか決定する。
例えば、重複度スコア15が閾値以上の状態が続く場合には、上述したように、アクセラレータノード10側での重複排除処理を継続する。つまり、後続のブロック列に対しては、図9のステップS2,S3に示した処理を行わず、つまり、ブロックデータをサンプリングしてそのハッシュ値をストレージノード20に送信する処理は行わずに、図10に示すように、全てのブロックのハッシュ値を送信して、重複確認結果に応じてまだ記憶されていないブロックデータのみを送信する。
一方で、例えば、図6の符号(2)に示すブロック列に対して重複確認結果を行い、最終的に、重複度スコア15の値「7」が閾値「8」より小さくなったとすると、後続するブロック例に対しては、ストレージノード20側での重複排除処理に切り替える。このとき、後続のブロック列に対しては、図9のステップS2,S3に示したように、ブロックデータをサンプリングしてそのハッシュ値をストレージノード20に送信し、重複確認を行う処理を再開する。そして、その重複確認結果を反映した重複度スコアに応じて、上述同様に、いずれかのノード20で重複排除処理を実行する。
以上のように、本発明によると、重複度スコア15の値に応じて、重複排除処理を主に実行するノード10,20を切り替えているため、アクセラレータノード10の処理負荷を抑制しつつ、アクセラレータノード10とストレージノード20との間における通信量を削減することができる。つまり、いずれか一方で主に重複排除処理を行う場合には、通信量が増加するか、あるいは、アクセラレータノード10の圧縮処理による負荷が高くなるが、これらを抑制することができる。これにより、ストレージシステムの性能の向上を図ることができる。
次に、本発明の変形例を、図12を参照して説明する。この例では、上述した重複度スコア15を算出するための一例であり、例えば、まだストレージノード20の記憶装置25に記憶されているデータが少ない場合の初期動作として実行される。但し、以下の動作は、いかなるときに実行されてもよい。
具体的には、まず、アクセラレータノード10がクライアント101から書き込み要求を受けると(図12の(1))、書き込み要求にかかるブロック列B70の全てのブロックデータのハッシュ値の取得と圧縮処理を行う(図12の(2))。そして、ストレージノード20に、圧縮したブロックデータB71とハッシュ値B72を送信する(図12の(3))。
続いて、ストレージノード20は、アクセラレータノード10から受け取ったハッシュ値を持つブロックが記憶装置25に存在するか確認し(図12の(4))、まだ記憶されていないブロックデータB75とハッシュ値B76のみを、記憶装置25に記憶する(図12の(5))。さらに、ストレージノード20は、上述した重複確認結果に応じて、重複しているブロックデータのハッシュ値B77を、アクセラレータノード10に返却する(図12の(6))。
そして、ストレージノード20から重複確認結果を受けたアクセラレータノード10は、当該重複確認結果を重複度スコア15に反映する(図12の(7))。その後は、更新された重複度スコア15の値に応じて、後続の書き込み要求にかかるブロック列に対して、上述したようにいずれかのノード10,20で重複排除処理を実行する。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステムの構成の概略について図13を参照して説明する。また、本発明における、情報処理装置、プログラム、データ格納方法の構成について説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
記憶対象となるデータを記憶する記憶装置223を備えると共に、当該記憶装置223に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置223に格納する場合に当該記憶装置223に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部222を備えたストレージサーバ220と、
前記ストレージサーバ220に対する記憶対象となるデータを構成するブロックデータの書き込みを制御するアクセラレータサーバ210と、を備え、
前記ストレージサーバ220は、前記アクセラレータサーバ210からの重複確認要求に応じて、当該アクセラレータサーバ210から送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置223に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバ210に返送する重複確認部221を備え、
前記アクセラレータサーバ210は、
前記ストレージサーバ220に対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの前記内容識別データを送信して、当該ブロックデータが前記ストレージサーバ220に記憶されているか否かの重複確認要求を当該ストレージサーバ220に行う一部重複確認依頼部211と、
前記ストレージサーバ220が有する前記重複確認部221からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバ220に送信する全ブロック送信処理213、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバ220に送信して各ブロックデータが前記ストレージサーバ220に既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバ220が有する前記重複確認部221からの重複確認結果に応じて前記ストレージサーバ220に記憶されていないブロックデータを当該ストレージサーバ220に送信する一部ブロック送信処理214、のいずれかを実行するブロックデータ送信部212と、を備えた、
ストレージシステム。
(付記2)
付記1に記載のストレージシステムであって、
前記ストレージサーバが有する前記重複確認部からの重複確認結果に基づいて、記憶対象となるデータを構成するブロックデータが前記ストレージサーバに記憶されていると判断された度合いを表す重複度を計測する重複度計測部を備えると共に、
前記ブロックデータ送信部は、前記重複度の値に応じて、前記全ブロック送信処理、あるいは、前記一部ブロック送信処理、のいずれかを実行する、
ストレージシステム。
(付記3)
付記2に記載のストレージシステムであって、
前記ブロックデータ送信部は、前記重複度が予め設定された基準値より低い場合には前記全ブロック送信処理を実行し、前記重複度が予め設定された基準値以上である場合には前記一部ブロック送信処理を実行する、
ストレージシステム。
(付記4)
付記3に記載のストレージシステムであって、
前記重複度計測部は、前記ストレージサーバが有する前記重複確認部からの重複確認結果により、前記ブロックデータが前記ストレージサーバに既に記憶されていると判断された場合には、前記重複度に所定値を加算し、前記ブロックデータが前記ストレージサーバに記憶されていないと判断された場合には、前記重複度から所定値を減算する、
ストレージシステム。
(付記5)
付記4に記載のストレージシステムであって、
前記重複度計測部は、前記ストレージサーバが有する前記重複確認部からの重複確認結果により前記ストレージサーバに既に記憶されていると判断された前記ブロックデータの数を前記重複度に加算し、前記ストレージサーバに記憶されていない判断された前記ブロックデータの数を前記重複度から減算する、
ストレージシステム。
(付記6)
付記3乃至5のいずれかに記載のストレージシステムであって、
前記一部重複確認依頼部は、前記重複度が予め設定された基準値以上の値に変化したときには作動を停止し、前記重複度が予め設定された基準値以上の値から当該基準値より低い値に変化したときには作動を再開する、
ストレージシステム。
(付記7)
付記1乃至6のいずれかに記載のストレージシステムであって、
前記全ブロック送信処理及び前記一部ブロック送信処理は、前記ストレージサーバに送信する前記ブロックデータを圧縮して当該ストレージノードに送信する、
ストレージシステム。
(付記8)
記憶対象となるデータを記憶する記憶装置を備えると共に、
前記記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部と、
前記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバに返送する重複確認部と、を備えたストレージサーバに接続された情報処理装置であって、
前記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御する書き込み制御部と、
前記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの前記内容識別データを送信して、当該ブロックデータが前記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバに送信して各ブロックデータが前記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて前記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、
を備えた情報処理装置。
(付記9)
付記8に記載の情報処理装置であって、
前記ストレージサーバが有する前記重複確認部からの重複確認結果に基づいて、記憶対象となるデータを構成するブロックデータが前記ストレージサーバに記憶されていると判断された度合いを表す重複度を計測する重複度計測部を備えると共に、
前記ブロックデータ送信部は、前記重複度の値に応じて、前記全ブロック送信処理、あるいは、前記一部ブロック送信処理、のいずれかを実行する、
情報処理装置。
(付記10)
記憶対象となるデータを記憶する記憶装置を備えると共に、
前記記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部と、
前記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバに返送する重複確認部と、を備えたストレージサーバに接続された情報処理装置に、
前記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御する書き込み制御部と、
前記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの前記内容識別データを送信して、当該ブロックデータが前記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバに送信して各ブロックデータが前記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて前記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、
を実現させるためのプログラム。
(付記11)
付記10に記載のプログラムであって、
前記情報処理装置に、さらに、前記ストレージサーバが有する前記重複確認部からの重複確認結果に基づいて、記憶対象となるデータを構成するブロックデータが前記ストレージサーバに記憶されていると判断された度合いを表す重複度を計測する重複度計測部を実現させると共に、
前記ブロックデータ送信部は、前記重複度の値に応じて、前記全ブロック送信処理、あるいは、前記一部ブロック送信処理、のいずれかを実行する機能を有する、
プログラム。
(付記12)
記憶対象となるデータを記憶する記憶装置を備えると共に、当該記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部を備えたストレージサーバと、
前記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御するアクセラレータサーバと、を備えたストレージシステムにて、
前記アクセラレータサーバが、前記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの内容に固有の内容識別データを送信して、当該ブロックデータが前記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行い、
前記ストレージサーバが、前記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された前記内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバに返送し、
前記アクセラレータサーバは、前記ストレージサーバからの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバに送信して各ブロックデータが前記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバからの重複確認結果に応じて前記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行する、
データ格納方法。
(付記13)
付記12に記載のデータ格納方法であって、
前記ストレージサーバからの重複確認結果に基づいて、記憶対象となるデータを構成するブロックデータが前記ストレージサーバに記憶されていると判断された度合いを表す重複度を計測し、前記重複度の値に応じて、前記全ブロック送信処理、あるいは、前記一部ブロック送信処理、のいずれかを実行する、
データ格納方法。
10 アクセラレータノード
11 ファイルシステム
12 重複確認部
13 ブロック処理部
14 ブロック送信部
15 重複度スコア
20 ストレージノード
21 ブロック保存部
22 重複確認部
23 ブロック書込部
25 ディスク
25 記憶装置
30 データセット
31 分割データ
32 冗長データ
100 ストレージシステム
101 クライアント
210 アクセラレータサーバ
211 一部重複確認依頼部
212 ブロックデータ送信部
213 全ブロック送信処理
214 一部ブロック送信処理
220 ストレージサーバ
221 重複確認部
222 データ格納制御部
223 記憶装置
301 クライアント
310 アクセラレータノード
311 ファイルシステム
312 ブロック処理部
313 ブロック送信部
320 ストレージノード

Claims (10)

  1. 記憶対象となるデータを記憶する記憶装置を備えると共に、当該記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部を備えたストレージサーバと、
    前記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御するアクセラレータサーバと、を備え、
    前記ストレージサーバは、前記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバに返送する重複確認部を備え、
    前記アクセラレータサーバは、
    前記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの前記内容識別データを送信して、当該ブロックデータが前記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
    前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバに送信して各ブロックデータが前記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて前記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、を備えた、
    ストレージシステム。
  2. 請求項1に記載のストレージシステムであって、
    前記ストレージサーバが有する前記重複確認部からの重複確認結果に基づいて、記憶対象となるデータを構成するブロックデータが前記ストレージサーバに記憶されていると判断された度合いを表す重複度を計測する重複度計測部を備えると共に、
    前記ブロックデータ送信部は、前記重複度の値に応じて、前記全ブロック送信処理、あるいは、前記一部ブロック送信処理、のいずれかを実行する、
    ストレージシステム。
  3. 請求項2に記載のストレージシステムであって、
    前記ブロックデータ送信部は、前記重複度が予め設定された基準値より低い場合には前記全ブロック送信処理を実行し、前記重複度が予め設定された基準値以上である場合には前記一部ブロック送信処理を実行する、
    ストレージシステム。
  4. 請求項3に記載のストレージシステムであって、
    前記重複度計測部は、前記ストレージサーバが有する前記重複確認部からの重複確認結果により、前記ブロックデータが前記ストレージサーバに既に記憶されていると判断された場合には、前記重複度に所定値を加算し、前記ブロックデータが前記ストレージサーバに記憶されていないと判断された場合には、前記重複度から所定値を減算する、
    ストレージシステム。
  5. 請求項4に記載のストレージシステムであって、
    前記重複度計測部は、前記ストレージサーバが有する前記重複確認部からの重複確認結果により前記ストレージサーバに既に記憶されていると判断された前記ブロックデータの数を前記重複度に加算し、前記ストレージサーバに記憶されていない判断された前記ブロックデータの数を前記重複度から減算する、
    ストレージシステム。
  6. 請求項3乃至5のいずれかに記載のストレージシステムであって、
    前記一部重複確認依頼部は、前記重複度が予め設定された基準値以上の値に変化したときには作動を停止し、前記重複度が予め設定された基準値以上の値から当該基準値より低い値に変化したときには作動を再開する、
    ストレージシステム。
  7. 請求項1乃至6のいずれかに記載のストレージシステムであって、
    前記全ブロック送信処理及び前記一部ブロック送信処理は、前記ストレージサーバに送信する前記ブロックデータを圧縮して当該ストレージノードに送信する、
    ストレージシステム。
  8. 記憶対象となるデータを記憶する記憶装置を備えると共に、
    前記記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部と、
    前記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバに返送する重複確認部と、を備えたストレージサーバに接続された情報処理装置であって、
    前記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御する書き込み制御部と、
    前記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの前記内容識別データを送信して、当該ブロックデータが前記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
    前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバに送信して各ブロックデータが前記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて前記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、
    を備えた情報処理装置。
  9. 記憶対象となるデータを記憶する記憶装置を備えると共に、
    前記記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部と、
    前記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された、記憶対象となるデータを構成するブロックデータの内容に固有の内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバに返送する重複確認部と、を備えたストレージサーバに接続された情報処理装置に、
    前記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御する書き込み制御部と、
    前記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの前記内容識別データを送信して、当該ブロックデータが前記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行う一部重複確認依頼部と、
    前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバに送信して各ブロックデータが前記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバが有する前記重複確認部からの重複確認結果に応じて前記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行するブロックデータ送信部と、
    を実現させるためのプログラム。
  10. 記憶対象となるデータを記憶する記憶装置を備えると共に、当該記憶装置に既に記憶されているデータを構成するブロックデータと同一内容の他のブロックデータを記憶装置に格納する場合に当該記憶装置に既に記憶されているブロックデータを他のブロックデータとして参照させるデータ格納制御部を備えたストレージサーバと、
    前記ストレージサーバに対する記憶対象となるデータを構成するブロックデータの書き込みを制御するアクセラレータサーバと、を備えたストレージシステムにて、
    前記アクセラレータサーバが、前記ストレージサーバに対して、記憶対象となるデータを構成する所定範囲のブロックデータのうち一部のブロックデータの内容に固有の内容識別データを送信して、当該ブロックデータが前記ストレージサーバに記憶されているか否かの重複確認要求を当該ストレージサーバに行い、
    前記ストレージサーバが、前記アクセラレータサーバからの重複確認要求に応じて、当該アクセラレータサーバから送信された前記内容識別データを受け、当該内容識別データに対応するブロックデータが記憶装置に格納されているか否かを確認し、その結果である重複確認結果を前記アクセラレータサーバに返送し、
    前記アクセラレータサーバは、前記ストレージサーバからの重複確認結果に応じて、記憶対象となるデータを構成する所定範囲の全てのブロックデータを前記ストレージサーバに送信する全ブロック送信処理、あるいは、記憶対象となるデータを構成する所定範囲の全てのブロックデータのそれぞれに対応する各前記内容識別データを前記ストレージサーバに送信して各ブロックデータが前記ストレージサーバに既に記憶されているか否かの重複確認要求を行い、これに対する前記ストレージサーバからの重複確認結果に応じて前記ストレージサーバに記憶されていないブロックデータを当該ストレージサーバに送信する一部ブロック送信処理、のいずれかを実行する、
    データ格納方法。
JP2010038559A 2010-02-24 2010-02-24 ストレージシステム Expired - Fee Related JP5446985B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010038559A JP5446985B2 (ja) 2010-02-24 2010-02-24 ストレージシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010038559A JP5446985B2 (ja) 2010-02-24 2010-02-24 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2011175421A JP2011175421A (ja) 2011-09-08
JP5446985B2 true JP5446985B2 (ja) 2014-03-19

Family

ID=44688227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010038559A Expired - Fee Related JP5446985B2 (ja) 2010-02-24 2010-02-24 ストレージシステム

Country Status (1)

Country Link
JP (1) JP5446985B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9218314B2 (en) 2013-02-01 2015-12-22 International Business Machines Corporation Boosting remote direct memory access performance using cryptographic hash based approach
JP6164042B2 (ja) 2013-10-24 2017-07-19 富士通株式会社 中継装置、中継方法、中継プログラム、および中継システム
JP6269163B2 (ja) 2014-02-27 2018-01-31 富士通株式会社 中継装置、ストレージ装置、および中継プログラム
EP3190521A4 (en) * 2014-09-04 2017-09-27 Fujitsu Limited Information processing system, information processing device, information processing method, and information processing program
WO2016132538A1 (ja) * 2015-02-20 2016-08-25 富士通株式会社 通信システム、通信装置、情報処理方法、及び、情報処理プログラム
WO2016181479A1 (ja) * 2015-05-12 2016-11-17 株式会社日立製作所 ストレージシステムおよび記憶制御方法
US10606499B2 (en) 2015-09-11 2020-03-31 Hitachi, Ltd. Computer system, storage apparatus, and method of managing data
KR102351720B1 (ko) * 2015-11-25 2022-01-13 주식회사 케이티 기회적 연결성을 제공하는 데이터 백홀 장치 및 이를 이용한 데이터 전송 방법

Also Published As

Publication number Publication date
JP2011175421A (ja) 2011-09-08

Similar Documents

Publication Publication Date Title
JP5446985B2 (ja) ストレージシステム
CN107045422B (zh) 分布式存储方法和设备
JP5339432B2 (ja) ストレージシステム
CN102591947B (zh) 用于数据去重复的快速且低ram占用的索引
JP5637552B2 (ja) ストレージシステム
CN110096891B (zh) 对象库中的对象签名
JP5369807B2 (ja) ストレージ装置
JP5413948B2 (ja) ストレージシステム
CN102938784A (zh) 应用于分布式存储系统中的数据存储方法和系统
US11455100B2 (en) Handling data slice revisions in a dispersed storage network
US8683121B2 (en) Storage system
JP6135226B2 (ja) 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム
JP5585116B2 (ja) ストレージシステム
JP5517224B2 (ja) ストレージ装置
JP5459388B2 (ja) ストレージ装置
JP6083268B2 (ja) レプリケーションシステム
JP5929326B2 (ja) ストレージシステム
JP6269120B2 (ja) ストレージシステム
JP6281333B2 (ja) ストレージシステム
JP6201340B2 (ja) レプリケーションシステム
JP5998517B2 (ja) ストレージシステム
CN117614973B (zh) 一种基于多云架构的文件存储方法
JP6343952B2 (ja) ストレージシステム
JP2010211713A (ja) バックアップ装置、バックアップシステム、バックアップ方法、及びプログラム

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120717

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131122

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: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Ref document number: 5446985

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees