JP5803908B2 - ストレージシステム及びストレージシステムの制御方法 - Google Patents

ストレージシステム及びストレージシステムの制御方法 Download PDF

Info

Publication number
JP5803908B2
JP5803908B2 JP2012512877A JP2012512877A JP5803908B2 JP 5803908 B2 JP5803908 B2 JP 5803908B2 JP 2012512877 A JP2012512877 A JP 2012512877A JP 2012512877 A JP2012512877 A JP 2012512877A JP 5803908 B2 JP5803908 B2 JP 5803908B2
Authority
JP
Japan
Prior art keywords
storage
node
data
storage node
group
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
JP2012512877A
Other languages
English (en)
Other versions
JPWO2011136261A1 (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 JP2012512877A priority Critical patent/JP5803908B2/ja
Publication of JPWO2011136261A1 publication Critical patent/JPWO2011136261A1/ja
Application granted granted Critical
Publication of JP5803908B2 publication Critical patent/JP5803908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、大量のデータを保持するストレージシステム及びストレージシステムの制御方法に関する。
本願は、2010年4月28日に、日本に出願された特願2010−103859号に基づき優先権を主張し、その内容をここに援用する。
ネット上で提供されるデータ量の増加に伴って、大量のデータを保持するストレージが必要とされている。例えば、ウェブ検索サービスを提供する企業では、複数のサーバを並列に並べた分散ストレージ技術を採用している。この分散ストレージ技術は、数千のノード(「ピア」ともいう)にデータを分散して配置し、全体として一つの大きなストレージを構成する技術である。また、分散ストレージ技術は、高価なストレージ専用装置ではなく、比較的安価なサーバを複数並べることによって大容量のストレージを実現することができる技術として、扱うデータ量が増大しているエンタープライズやキャリアの事業分野でも注目されている技術である。一部のペタ(1015)バイトを超えた大容量のデータを格納する事業分野では、ストレージ専用装置においてデータを格納することができる容量がボトルネックとなってしまうため、大量のデータ格納を実現するための方法として、分散ストレージ技術を使用するしか解がないというケースも出始めている。
しかし、分散ストレージ技術においては、データが複数のノードに分散している。このため、データにアクセスしようとするクライアントは、まず、データを持っているノードの位置を知る必要がある。従って、近年注目されている分散ストレージ技術においては、データを保持しているノードの位置を知るための方法が、技術的なポイントとなっている。
データを保持しているノードの位置を知るための一つの方法として、データの位置情報を管理するメタサーバを設けるメタサーバ方式がある。このメタサーバ方式では、ストレージシステムの構成が大規模になることに伴って、データを格納しているノードの位置を検出するメタサーバの性能がボトルネックになることがある。
そのため、データを保持しているノードの位置を知るための別の方法として、分散関数(例えば、ハッシュ関数)を用いてデータの位置を求める方法が注目されている。これは、以前からP2P(Peer to Peer:ピアツーピア)ネットワークの分野で用いられている分散ハッシュテーブル(Distributed Hash Table:DHT)の技術を利用しており、キーバリューストレージ(Key−Valueストレージ:KVS)と呼ばれている。このKVSは、データにアクセスする識別子をキー(Key)、データをバリュー(Value)とし、キー(Key)を分散関数にかけて、すなわち、キーを分散関数の入力値として、データを格納しているノード(以下、「データ格納ノード」という)の位置を算術的に求める。
KVSのメタサーバ方式との違いは、メタサーバ方式が全てのデータの位置情報をもたなければならないのに対し、KVSでは、全てのクライアントで分散関数とノードリストとを共有すればよいだけなので、分散関数とノードリストとを共有する際のコストが小さく、性能的なボトルネックがないことである。KVSを用いれば、メタサーバ方式のようなメタサーバの性能によるボトルネックがなく、ストレージシステムが大規模になった場合でも、性能拡張性(スケーラビリティ)のある大容量ストレージを実現することができる(特許文献1〜3参照)。
特開2009−289161号公報 特開2009−151403号公報 特開2008−269141号公報
既存のKVS技術では、分散関数としてハッシュ関数(あるいは、それに類似の分散関数)を用いて、算術的にデータ格納ノードが決定されている。また、DHT技術では、分散ハッシュテーブルのルーティングにより、オーバーレイルーティングが行われている。このため、既存のKVS技術を用いたストレージシステムでは、大きく分けて、例えば、以下のような2つの点がみられる。
まず、1つ目の点は、既存のKVS技術ではデータ配置の自由度が高いとはいえないことがある点である。KVS技術は、大規模のストレージシステムで利用されるため、必然的に各ストレージが大規模ネットワークに分散して配置されることとなる。すると、データにアクセスするノード(クライアント)とデータを保持しているデータ格納ノードとのネットワーク上の距離が遠くなるケースがあり得る。クライアントとデータ格納ノードとの間の遅延が大きければ、ストレージシステムにおける処理の速度も遅くなる。このため、クライアントとデータ格納ノードとをできるだけ近くに配置することによってストレージシステムの処理速度を向上することが求められている。そのためには、データ配置を自由に変更できることが求められる。
また、データを分散させて保持するのではなく、逆にデータを予め定めたデータ格納ノードに集めて、空いているデータ格納ノードを作ることによって、ストレージシステムの省電力化を実現することも考えられる。このようなときにも、データ配置を自由に変更することができれば、ストレージシステムの省電力モードによる制御も可能となる。しかしながら、既存のKVS技術では、データ格納ノードがハッシュ関数によって決まってしまうため、例えば、あるデータを特定のデータ格納ノードに配置しようとしても、データ配置を自由に制御することができない可能性がある。
そして、2つ目の点は、分散ハッシュテーブルのオーバーレイルーティングが実際のネットワークトポロジーと連動していないため、効率的でないルーティングがなされて、結果的に性能が高いものではないことがある点である。極端な例では、東京から大阪に行くのにアメリカを経由するというようなこともあり得る。
従来、スケーラブルなストレージシステムにおいて、データ配置の自由度を向上させることができるストレージシステムの制御方法が求められていた。
本発明は、例えば、以下の側面を有しても良い。ただし、以下の記述は本発明を限定するものではない。
第1の側面はストレージシステムの制御方法であって、データを格納する複数のストレージノードによって構成されたストレージシステムの制御方法において、該ストレージシステムに含まれる前記複数のストレージノードを、該ストレージシステム内においてネットワーク的な距離が予め定められた距離の範囲内であるストレージノードからなる第1のグループと、データを格納しているストレージノードの位置の情報を共有しているストレージノードからなる第2のグループと、にグループ化し、前記第2のグループ毎に該第2のグループを識別する論理的な空間上の識別子を割り当て、データ識別子を分散関数の入力値として前記論理的な空間上の位置を算出し、前記算出された位置に対応する識別子が割り当てられた前記第2のグループに属する前記ストレージノードに該データ識別子に対応するデータを格納する。
また、上記複数のストレージノードのそれぞれは、1つ以上の前記第1のグループと1つ以上の前記第2のグループとに必ず属し、該ストレージノードが属している前記第2のグループ内の他の全てのストレージノードのリストと、該ストレージノードが属している前記第1のグループ内の他の全てのストレージノードのリストとを、記憶してもよい。
また、上記ストレージシステム内でデータのアクセス要求をするストレージノードは、データ識別子を分散関数の入力値として、前記論理的な空間上の位置を算出し、該算出された位置に対応する識別子が割り当てられた前記第2のグループを選択し、該ストレージノードに記憶しているノードリストから、該ストレージノードが属している前記第1のグループ内で前記選択した第2のグループに属している他のストレージノードを検索し、前記検索した他のストレージノードにデータのアクセス要求を出力してもよい。
また、上記ストレージシステム内でデータのアクセス要求を受けたストレージノードは、前記アクセス要求を受けたデータを該ストレージノード内に格納している場合は、該データを要求した前記ストレージノードに要求されたデータを出力し、前記アクセス要求を受けたデータを該ストレージノード内に格納していない場合は、該ストレージノードに記憶しているノードリストから、該ストレージノードが属している前記第2のグループ内で要求されたデータを格納している他のストレージノードを検索し、前記検索した他のストレージノードに、前記データのアクセス要求を転送してもよい。
また、上記ストレージシステム内でデータのアクセス要求を受けたストレージノードは、前記アクセス要求を受けたデータを該ストレージノード内に格納している場合は、該データを要求した前記ストレージノードに要求されたデータを出力し、前記アクセス要求を受けたデータを該ストレージノード内に格納していない場合は、該ストレージノードに記憶しているノードリストから、該ストレージノードが属している前記第2のグループ内で要求されたデータを格納している他のストレージノードを検索し、前記検索した他のストレージノードを、前記アクセス要求をするストレージノードに通知してもよい。
上記側面によれば、例えば、スケーラブルなストレージシステムにおいて、データ配置の自由度を向上させることができるという効果が得られる。
一実施形態によるストレージシステムの概略構成を示したブロック図である。 従来のストレージシステムにおける既存のKVS技術を説明する図である。 一実施形態のストレージシステムにおける論理的なノード構成の一例を示した図である。 一実施形態のストレージシステムにおけるKVS技術を説明する図である。 一実施形態のストレージシステムにおける物理構成の一例を示した図である。 一実施形態のストレージシステムにおけるデータアクセス処理の流れを示したシーケンス図である。
以下、一実施形態について、図面を参照して説明する。図1は、本実施形態によるストレージシステムの概略構成を示したブロック図である。図1において、ストレージシステム3は、データ格納ノードである複数のストレージノード1を備えている。各ストレージノード1には、1つもしくは複数のIDが付与されている。そして、これら複数のストレージノード1が、管理サーバ10によってストレージシステム3内でマッピングされて、1つのグローバルネームスペースとして構成されている。なお、ストレージシステム3内の各ストレージノード1が設置されている物理的な位置は1カ所ではなく、複数の場所に設置されている各ストレージノード1が、例えば、ネットワークなどによって接続されることによって、1つのグローバルネームスペースを構成している。
クライアント2は、ストレージシステム3のデータにアクセスするノードである。そして、クライアント2は、ストレージシステム3を、1つの大きなストレージとみなしてアクセスする。
ここで、既存のKVS技術について説明する。図2は、従来のストレージシステムにおける既存のKVS技術を説明する図である。図2では、それぞれ「a」、「b」、「c」、「d」というIDが付与されたデータ格納ノードが、論理的な空間の円周上にマッピングされている場合を示している。既存のKVS技術では、データ識別子であるKeyを、分散関数FにかけてF(Key)が求められる。そして、この円周上で、F(Key)の位置から右回りに最も近いIDを持つデータ格納ノードに、F(Key)に対応するデータが保持される。図2においては、a<F(Key)≦bを満たすF(Key)に対応するデータが、IDとして「b」が付与されたデータ格納ノードに格納されることを示している。
この既存のKVS技術によるデータ格納の方法は、クライアントが、分散関数Fとデータ格納ノードのリストを共有するのみであるので、クライアントが共有する情報が少なくて済むという利点がある。しかし、データ識別子であるKeyは、一度データに付与された後に変更することができないため、任意のデータ格納ノードにデータを移動することができず、データ配置の自由度がない。
次に、本実施形態のストレージシステム3におけるデータ格納の方法について説明する。図3は、本実施形態のストレージシステム3における論理的なノード構成の一例を示した図である。図3に示すように、本実施形態のストレージシステム3では、ストレージシステム3内の各ストレージノード1を、ストレージグループ4およびネットワークグループ5という2種類のグループにグループ化する。このストレージシステム3内における各ストレージノード1のグループ化は、管理サーバ10によって行われる。
ストレージグループ4は、ストレージシステム3で用いるKVS技術に基づいてデータを格納しているストレージノード1の位置の情報を共有するストレージノード1で構成されたグループである。
また、ネットワークグループ5は、ストレージシステム3におけるネットワーク的な距離に基づいて、管理サーバ10によって決定されたグループであり、ネットワーク的な距離が予め定められた距離の範囲内で比較的近いストレージノード1で構成されたグループである。すなわち、ネットワークグループ5に属する任意の2つのストレージノード1間のネットワーク的な距離は、予め定められた距離の範囲内の距離となる。
ストレージシステム3における各ストレージノード1は、管理サーバ10によって管理されるいずれかのストレージグループ4に属していると同時に、いずれかのネットワークグループ5に属している。
なお、図3において白抜きの○は、ストレージノード1を示しており、各ストレージノード1を表す○内には、ストレージグループ4における識別番号とネットワークグループ5における識別番号とを表している。より具体的には、各ストレージノード1を表す○内の2桁の符号のうち、左側の符号は、1つのストレージグループ4(図3においては、符号“Y”が付与されたストレージグループ4)におけるストレージノード1の識別番号(1,2,・・・,X,・・・,m)を表し、右側の符号は、1つのネットワークグループ5(図3においては、符号“X”が付与されたネットワークグループ5)におけるストレージノード1の識別番号(1,2,・・・,Y,・・・,n)を表している。
次に、本実施形態のストレージシステム3におけるKVS技術について説明する。図4は、本実施形態のストレージシステム3におけるKVS技術を説明する図である。図4に示すように、本実施形態のストレージシステム3におけるKVS技術では、複数のストレージノード1をグループ化することによって、データ配置の自由度を増加させる。そして、ストレージシステム3では、管理サーバ10によって、各ストレージグループ4に1つもしくは複数のIDを付与され、IDを付与されたストレージグループ4を、ストレージシステム3内にマッピングする。図4では、それぞれ「A」、「B」、「C」、「D」というIDが付与されたストレージグループ4が、図2に示した既存のKVS技術と同様に、論理的な空間の円周上にマッピングされている場合を示している。
そして、本実施形態のストレージシステム3におけるKVS技術では、図2に示した既存のKVS技術と同様に、データ識別子であるKeyを、分散関数FにかけてF(Key)を求める。そして、この円周上で、F(Key)の位置から右回りに最も近いIDを持つストレージグループ4を、データを保持するストレージグループ4と決定する。続いて、決定されたストレージグループ4内のどのストレージノード1がデータを保持するかを決定し、決定されたストレージノード1に、F(Key)に対応したデータを保持する。
次に、本実施形態のストレージシステム3におけるネットワークグループ5について説明する。図5は、本実施形態のストレージシステム3における物理構成の一例を示した図である。上記に述べたとおり、ネットワークグループ5は、ネットワーク的な距離が比較的近いストレージノード1をグループ化したものである。このネットワーク的な距離とは、例えば、ネットワーク経路上のスイッチの段数と考えることができる。より具体的には、図5に示したように、複数のストレージノード1とスイッチ7とから構成される複数のラック6と、それぞれのラック6を束ねる上位スイッチ8からなるストレージシステム3を想定する。この場合、各ラック6がそれぞれのネットワークグループ5に相当する。
ストレージシステム3における各ストレージノード1は、上記に述べたとおり、必ず1つ以上のネットワークグループ5に属していると同時に、必ず1つ以上のストレージグループ4に属している。また、各ストレージノード1が属するストレージグループ4は、ネットワークグループ5内に属しているストレージノード1から、ストレージシステム3における全てのストレージグループ4をたどることができるように、管理サーバ10によって割り当てられている。つまり、ある1つのストレージノード1が属するネットワークグループ5内の全てのストレージノード1の和集合をとれば、全てのストレージグループ4をカバーすることができるように、各ストレージノード1のストレージグループ4が割り当てられている。
なお、各ストレージグループ4やネットワークグループ5に属するストレージノード1の数は、それぞれのストレージグループ4やネットワークグループ5で異なる数であってもよい。例えば、1つのストレージノード1が、複数のストレージグループ4やネットワークグループ5に属するように、このストレージノード1のストレージグループ4やネットワークグループ5を割り当てることもできる。
各ストレージノード1は、自ストレージノード1が属しているストレージグループ4内の他の全てのストレージノード1のリストと、ネットワークグループ5内の他の全てのストレージノード1のリストとを、ノードリストとして記憶している。それぞれのノードリストには、各ストレージノード1が属しているストレージグループ4およびネットワークグループ5のIDと、各ストレージノード1のアドレス(位置)情報と、各ストレージノード1が格納しているデータ(例えば、データの一覧など)の情報が含まれている。
次に、本実施形態のストレージシステム3において各ストレージノード1が記憶しているノードリストの数について説明する。上記に述べたとおり、全てのストレージノード1は、自ストレージノード1が属するネットワークグループ5内の全てのストレージノード1のリストと、自ストレージノード1が属するストレージグループ4内の全てのストレージノード1のリストとを自ストレージノード1のメモリ上に記憶している。ストレージシステム3において各ストレージノード1が記憶しているストレージノード1のリストの総数は、従来のストレージシステムに比べて非常に少ない数となるため、ストレージシステム内におけるメモリ容量の削減と、メンテナンスコストの削減とを実現することができる。
より具体的には、例えば、1000台のストレージノードで構成されたストレージシステムを考える。従来のストレージシステムにおいて全てのストレージノードのノードリストを記憶する場合、各ストレージノードは、1000個のリストをノードリストとして記憶する必要がある。
これに対して、本実施形態のストレージシステム3では、自ストレージノード1が属するネットワークグループ5内の全てのストレージノード1の個数のリストと、自ストレージノード1が属するストレージグループ4内の全てのストレージノード1の個数のリストとを、ノードリストとして記憶するのみである。例えば、1000台のストレージノード1が、Nグループのストレージグループ4、およびMグループのネットワークグループ5にそれぞれグループ化され、各ストレージノード1が、それぞれ、1つのストレージグループ4および1つのネットワークグループ5に属している場合を想定する。この場合、各ストレージノード1は、自ストレージノード1が属するネットワークグループ5内のN個のストレージノード1のリストと、ストレージグループ4内のM個のストレージノード1のリストのみを記憶するのみであるため、各ストレージノード1が記憶するノードリストは、N+M−1個のリストとなる。ここで、−1個としたのは、図3からもわかるように、自ストレージノード1のリストは、ストレージグループ4とネットワークグループ5とで重複しており、この重複を回避するためである。より具体的には、ストレージグループ4が100グループ、ネットワークグループ5が10グループであった場合には、100+10−1=109個のリストを各ストレージノード1が記憶するのみとなる。
これは、従来のストレージシステムにおいて各ストレージノード1が1000個のリストを記憶していたのに対して、本実施形態のストレージシステム3のストレージノード1が記憶するリストの数は、約10分の1の数であり、各ストレージノード1内でノードリストの記憶に使用するメモリ容量の削減を実現していることとなる。
また、一般的に、ストレージシステムでは、データにアクセスできない時間を極力減らすため、ストレージシステムの死活監視を定期的に行っている。このストレージシステムの死活監視では、ストレージシステム内の各ストレージノードのエラーをなるべく早く検出する必要があり、ノードリストに含まれているストレージノードが正常に稼動しているか否かという稼働状況をチェックすることによって行われている。もし、ストレージシステム内のいずれかのストレージノードにエラーが発生している、ストレージシステムのネットワークが不通になっている、などの原因によって、ストレージシステムが正常に稼動していない場合には、ノードリストの変更が必要となる。この稼働状況のチェックにかかるコストは、ノードリストに含まれるリストの数に比例して大きくなるため、リストの数が多くなると、ストレージシステム全体のスケーラビリティを大きく損なう要因となってしまう。そのため、ノードリストに含まれるリストの数を少なく保つことは、スケーラブルなストレージシステムにとっては重要な項目である。本実施形態のストレージシステム3では、各ストレージノード1がノードリストに記憶しているストレージノード1のリストの数が少ないため、メンテナンスコストの削減を実現することができる。
次に、本実施形態のストレージシステム3において各ストレージノード1がデータを保持しているストレージノード1の検索方法について説明する。図6は、本実施形態のストレージシステム3におけるデータアクセス処理の流れを示したシーケンス図である。図6では、図3に示した符号“X”が付与されたネットワークグループ5(以下、「ネットワークグループNG_X」という)に属する識別番号“1”が付与されたストレージノード1(以下、「ストレージノードX1」という)がクライアント2となってデータにアクセスする場合について説明する。
まず、ストレージノードX1は、データ識別子(Key)を分散関数FにかけてF(Key)を求める(ステップS10)。そして、F(Key)に対応するデータを保持しているストレージノード1が属しているストレージグループ4(以下、「ストレージグループSG_Y」という)を求める(ステップS20)。例えば、「A」、「B」をストレージグループ4のIDとすると、A<F(Key)≦Bを満たす「B」がIDとして付与されたストレージグループ4が求められる(図4参照)。
そして、自ストレージノードX1が属するネットワークグループNG_X内で、ストレージグループSG_Yに属するストレージノード1をノードリストから求める(ステップS30)。図6では、ネットワークグループNG_X内でストレージグループSG_Yに属するストレージノードXY(図3参照)が求められたものとする。そして、ストレージノードX1は、ストレージノードXYにデータの要求(リクエスト)を送信する(ステップS40)。
続いて、リクエストを受信したストレージノードXYは、要求されたデータが、自ストレージノードXYが保持しているデータであるか否かを検索する(ステップS50)。要求されたデータが自ストレージノードXYの保持しているデータである場合、ストレージノードXYは、ストレージノードX1からのリクエストに応答し、要求されたデータをストレージノードX1に送信する(ステップS60)。そして、ストレージノードX1が、ストレージノードXYから送信されてきたデータを受信することによって、ストレージノードX1によるデータのアクセスを完了する。
また、ステップS50において、要求されたデータが自ストレージノードXYの保持しているデータでない場合、ストレージノードXYは、自ストレージノードXYが属しているストレージグループSG_Y内の他のストレージノード1に、要求されたデータが分散されていると判断する。そして、ストレージノードXYは、ノードリストから要求されたデータを格納しているストレージグループSG_Y内の他のストレージノード1を求め、ストレージノードX1からのリクエストを、ストレージグループSG_Y内の他のストレージノード1に転送する(ステップS61)。図6では、ストレージグループSG_Yに属するストレージノード2Y(図3参照)にリクエストが転送された場合を示している。
なお、ストレージノードXYがストレージグループ4内の他のストレージノード1にリクエストを転送する方法は、ストレージグループ4内におけるデータ分散方法に依存する。
このデータ分散方法に関しては、後述する。
そして、リクエストが転送されたストレージノード2Yは、自ストレージノード2Yが保持しているデータから、要求されたデータを検索する(ステップS70)。そして、ストレージノード2Yは、ストレージノードXYから転送されてきたストレージノードX1からのリクエストに応答し、要求されたデータをストレージノードXYに送信する(ステップS80)。そして、ストレージノードXYは、ストレージノード2Yからのリクエストの応答とデータとを、同じネットワークグループNG_X内のストレージノードX1に転送する(ステップS81)。そして、ストレージノードX1が、ストレージノードXYから転送されてきたデータを受信することによって、ストレージノードX1によるデータのアクセスを完了する。
なお、図6の説明においては、ステップS50において、リクエストを受信したストレージノード1が要求されたデータを保持していない場合に、要求されたデータを格納しているストレージノード1にリクエストを転送する例を説明したが、ストレージノード1が他のストレージノード1にリクエストを転送せず、要求元のストレージノード1に他のストレージノード1を通知する方法とすることもできる。より具体的には、まず、ステップS50において、ストレージノードXYは、ノードリストから要求されたデータを格納しているストレージグループSG_Y内の他のストレージノード1であるストレージノード2Yを求める。そして、ステップS60において、ストレージノードXYが要求されたデータをストレージノードX1に送信する代わりに、要求したデータがストレージグループSG_Y内のストレージノード2Yに格納されていること通知する。そして、ストレージノードX1は、通知されたストレージノード2Yに直接データの要求(リクエスト)を送信(再送信)し、ストレージノード2Yから送信されてきた要求したデータを受信する。
このように、ストレージノードX1が、ストレージノード2Yにリクエストを送信し直すことによって、ストレージノード2Yから送信されてきたデータを直接受信することができる。
次に、本実施形態のストレージシステム3におけるストレージグループ4内のデータ分散方法について、2つの方法を説明する。まず、1つ目の方法は、ストレージグループ4内の全てのデータ配置を管理する1つのストレージノード1(以下、「メタサーバ」という)を決め、そのメタサーバがストレージグループ4内の全てのデータ配置を集中して管理する集中メタサーバ方式である。この集中メタサーバ方式は、データ配置を集中して管理するため、データの移動や複製の管理が容易である。
この集中メタサーバ方式では、クライアント2がストレージシステム3内のデータをアクセスする際に、必ずメタサーバに対しての問い合わせが行われる。しかし、ストレージシステム3において、データを移動する頻度はそれほど多くないため、例えば、クライアント2からアクセスされるデータが特定のデータに集中している(局所性がある)可能性がある。この場合には、各ストレージノード1が、自ストレージノード1内でアクセスされたデータの位置情報を、例えば、キャッシュメモリなどに一時記憶(キャッシュ)しておくことによって、メタサーバに対しての問い合わせを行わずに、ストレージシステム3内のデータをアクセスすることもできる。
なお、ストレージシステム3内のデータをアクセスする際に、メタサーバに対しての問い合わせを行う場合には、メタサーバの性能がボトルネックになる可能性がある。また、ストレージシステム3の構成が大規模である場合には、ストレージシステム3内のストレージグループ4がネットワークに分散しているため、ネットワークトラフィックが増えてしまう可能性がある。この場合においても、各ストレージノード1におけるキャッシュの機能と組み合わせることによって、上記に述べた欠点を解決することができる可能性が高い。
また、本実施形態のストレージシステム3におけるストレージグループ4内のデータ分散方法の2つ目の方法は、ストレージグループ4間のデータ配置と同様に、分散関数によってストレージノード1を決定するハッシュ方式である。このハッシュ方式では、ハッシュ値の範囲と対応するストレージノード1とが組となったハッシュテーブルに基づいて、ハッシュ値からストレージノード1を求める。この方法は、従来のハッシュテーブルを用いた方法と同様である。ただし、本実施形態のストレージシステム3においては、データ配置の自由度を高めるために、ハッシュ値の範囲を細かい単位(最も小さくなるハッシュ値)に分割していることが異なる。
例えば、あるデータを別のストレージノード1に移動するときには、ハッシュテーブル上で移動するデータのハッシュ値が対応するストレージノード1を変えることによって、データを別のストレージノード1に移動することができる。このデータの移動方法は、従来のハッシュテーブルを用いたデータの移動においても同様である。しかし、従来のハッシュテーブルでは、ハッシュ値の範囲を分割していないため、データの移動を行う際に、ハッシュ値の範囲に含まれる全てのデータを移動する必要があり、データの移動におけるコストがかかりすぎる場合がある。これに対して、本実施形態のストレージシステム3では、ハッシュ値の範囲を細かい単位に分割しているため、分割したハッシュ値の範囲に含まれるデータのみを移動することができ、従来のハッシュテーブルを用いたデータの移動のように、全てのデータを移動する必要がない。
なお、本実施形態のストレージシステム3では、ハッシュ値の範囲を細かい単位に分割することによって、移動するデータの量を少なくすることができるが、ハッシュ値の範囲の分割によってハッシュテーブルが大きくなる。しかし、ハッシュテーブルのサイズに上限を設け、ハッシュテーブルのサイズが上限に達したときに、アクセスの少ないハッシュ範囲を隣接するハッシュ範囲と融合することによって、ハッシュテーブルのサイズを小さく(圧縮)することができる。
次に、本実施形態のストレージシステム3において、データを移動させる場合の一例を説明する。データの移動は、同一のストレージグループ4内のストレージノード1間で行う。例えば、図3に示したノード構成の一例では、符号“Y”が付与されたストレージグループ4に属する識別番号“1”が付与されたストレージノード1(1Y)から“m”が付与されたストレージノード1(mY)までのいずれか1つのストレージノード1にデータを移動する。このように、本実施形態のストレージシステム3では、同一のストレージグループ4内のいずれか1つのストレージノード1にデータを移動することができる。
上記に述べたとおり、本実施形態によるストレージシステム3によれば、同一のストレージグループ4内のストレージノード1間でデータを移動させることによって、データ配置の自由度を向上させることができる。また、データ配置の変更を行う理由としては、ストレージシステム3のデータにアクセスするクライアント2とアクセスされるデータを保持しているストレージノード1とにおけるネットワーク上の距離が遠いことが考えられるが、本実施形態によるストレージシステム3では、ネットワークトポロジーに応じてネットワークグループ5を設定しているため、ストレージグループ4内でクライアント2とネットワークグループ5が同じストレージノード1を必ず見つけることができる。このように、ストレージグループ4内でデータを移動することができる自由度があれば、十分にストレージシステム3の効率を向上することができる。そして、データ配置の自由度が向上することによって、省電力モードによる制御も可能となり、ストレージシステム3の省電力化を実現することもできる。
なお、ストレージシステム内の任意のストレージノードにデータを移動することができれば、データ配置の自由度が最大となるが、その場合には、データ配置が変更されたことをストレージシステム内の全てのストレージノードが把握する必要がある。しかし、これは、ストレージシステムの構成が大規模になるにしたがって、全てのストレージノードがデータ配置の変更を把握するためのコストが上昇し、結果としてストレージシステム全体のスケーラビリティを大きく損なう要因となる。それに対して本実施形態のストレージシステム3における制御方法であれば、データ配置を変更したストレージグループ4内のストレージノード1のみがデータ配置の変更を把握していればよい。そして、データ配置の変更をしていない他のストレージグループ4内のストレージノード1にとっては、データ配置を変更したストレージグループ4であってもストレージグループとしての変更がされていないため、データ配置の変更を把握する必要がない。従って、データ配置の変更を把握するためのコストを低く抑えることができ、結果としてストレージシステム全体のスケーラビリティが向上することとなる。そして、これは、ストレージシステム3のデータにアクセスするクライアント2とアクセスされるデータを保持しているストレージノード1とにおけるネットワーク上の距離を近くするという目的を、十分に達成しているということができる。
上記実施形態におけるストレージシステムの制御方法では、スケーラブルなストレージシステムにおいて、ストレージグループとネットワークグループという直交したグループでストレージノードをグルーピングする。ストレージグループの中ではネットワークトポロジーを考慮したデータ配置を行えるようにして、データ配置の自由度を向上させることができる。これにより、柔軟なデータ配置をすることができるため、例えば、処理ノードとデータとを近くに配置することによって、ストレージシステムの効率を向上することができる。また、上記実施形態のストレージシステムの制御方法では、データ配置の自由度が向上するため、例えば、データを予め定めたストレージノードに集めることによって、ストレージシステムの低消費電力化を実現する省電力の制御を行うことや、不要なトラフィックを防いでアクセス速度を向上させることができる。
以上、一実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、種々の変更も含まれる。
なお、上記実施の形態におけるストレージノード1は、CPU(Central Processing Unit)、メモリ、ハードディスク、ネットワークインタフェース、などを有してもよい。上記ストレージノード1は、一般に広く用いられるサーバコンピュータ、パソコン、などであってもよい。また、上記の実施形態はソフトウェア、もしくは、ハードウェアによって実装されてもよい。
上記の実施形態は、例えば、大量のデータを保持するストレージシステムに適用が可能である。
1・・・ストレージノード
2・・・クライアント
3・・・ストレージシステム
4・・・ストレージグループ
5・・・ネットワークグループ
6・・・ラック
7・・・スイッチ
8・・・上位スイッチ
10・・・管理サーバ

Claims (6)

  1. 複数のストレージノードと管理サーバを具備するストレージシステムにおいて、
    前記各ストレージノードは、
    データを格納する第1の記憶部と、
    ネットワーク的な距離が所定の範囲内にある前記ストレージノードからなるネットワークグループと、前記データに対応するデータ識別情報に基づくストレージグループと、に関するノード情報を格納する第2の記憶部と、を具備し、
    前記管理サーバは、
    複数の前記ストレージグループの何れに属するかを複数の前記ストレージノードのそれぞれに対して特定し、前記ネットワーク的な距離が所定の範囲内にある複数の前記ネットワークグループの何れに属するかを複数の前記各ストレージノードに対して特定し、複数の前記各ストレージノードに、前記特定した前記ストレージグループの識別情報と前記特定した前記ネットワークグループの識別情報とを割り当て、
    前記各ストレージノードは、該ストレージノードが属する前記ネットワークグループ内の全ての前記ストレージノードの情報である当該全ての前記ストレージノードの識別情報と、該ストレージノードが属する前記ストレージグループ内の全ての前記ストレージノードの情報である当該全ての前記ストレージノードの識別情報とを含む前記ノード情報を前記第2の記憶部に記憶し、
    前記各ストレージノードは、前記データのアクセス要求を受信したときに、前記データのアクセス要求に基づいて、前記ノード情報に含まれる前記ネットワークグループと前記ストレージグループとに関する情報である当該データのアクセスに用いるデータ識別子を分散関数に入力して得られる値と、前記ノード情報とを参照して前記データへのアクセス処理を行う、ストレージシステム。
  2. 前記各ストレージノードは、該ストレージノードが属する前記ネットワークグループ内の全ての前記ストレージノードの情報と、該ストレージノードが属する前記ストレージグループ内の全ての前記ストレージノードの情報とを含む前記ノード情報を前記第2の記憶部に記憶する、請求項1に記載のストレージシステム。
  3. 前記各ストレージノードは、前記データへのアクセス要求に基づいて、当該データのアクセスに用いるデータ識別子を分散関数に入力して得られる値に基づいて前記ストレージグループの識別情報を特定し、当該ストレージグループの識別情報と自ノードと同一のネットワークグループの識別情報が割り当てられた他ストレージノードに対して、前記アクセス要求の対象となるデータのリクエスト要求を行う、
    請求項1または請求項2に記載のストレージシステム。
  4. データを格納する複数のストレージノードを含むストレージシステムにおけるストレージシステムの制御方法であって、
    前記データのアクセス要求を受信したときに、ネットワーク的な距離が所定の範囲内にある前記ストレージノードからなるネットワークグループと、前記データに対応するデータ識別情報に基づくストレージグループと、に関するノード情報を参照するステップと、
    前記ノード情報に基づいて前記データへのアクセス処理を行うステップと、
    を具備し、
    前記アクセス要求を受信した前記ストレージノードにおいて、前記データ識別情報に基づいて前記ストレージグループを判定するステップと、
    前記ノード情報を参照し、前記アクセス要求を受信した前記ストレージノードが属している前記ネットワークグループ内で前記判定した前記ストレージグループに属する前記ストレージノードを検出するステップと、
    前記検出されたストレージノードに前記データへのアクセスを要求するステップと、
    前記検出されたストレージノードからの応答に基づいて前記アクセス要求に対して応答するステップと、
    を更に具備する、ストレージシステムの制御方法。
  5. 前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納している場合は、前記アクセス要求に対応するデータを、前記アクセス要求を受信した前記ストレージノードに送信するステップと、
    前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納していない場合は、前記ノード情報を参照して、前記検出されたストレージノードが属する前記ストレージグループ内の他の前記ストレージノードに対して前記アクセス要求に対応するデータを要求し、前記アクセス要求を受信した前記ストレージノードに前記アクセス要求に対応するデータを送信するステップと、
    を更に具備する、請求項に記載のストレージシステムの制御方法。
  6. 前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納している場合は、前記アクセス要求を受信した前記ストレージノードに前記アクセス要求に対応するデータを送信するステップと、
    前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納していない場合は、前記ノード情報を参照して、前記検出されたストレージノードが属する前記ストレージグループ内の前記アクセス要求に対応するデータを格納している他の前記ストレージノードを検索し、前記検索されたストレージノードを、前記アクセス要求を受信した前記ストレージノードに通知するステップと、
    を更に具備する、請求項に記載のストレージシステムの制御方法。
JP2012512877A 2010-04-28 2011-04-27 ストレージシステム及びストレージシステムの制御方法 Active JP5803908B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012512877A JP5803908B2 (ja) 2010-04-28 2011-04-27 ストレージシステム及びストレージシステムの制御方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010103859 2010-04-28
JP2010103859 2010-04-28
PCT/JP2011/060238 WO2011136261A1 (ja) 2010-04-28 2011-04-27 ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム
JP2012512877A JP5803908B2 (ja) 2010-04-28 2011-04-27 ストレージシステム及びストレージシステムの制御方法

Publications (2)

Publication Number Publication Date
JPWO2011136261A1 JPWO2011136261A1 (ja) 2013-07-22
JP5803908B2 true JP5803908B2 (ja) 2015-11-04

Family

ID=44861559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012512877A Active JP5803908B2 (ja) 2010-04-28 2011-04-27 ストレージシステム及びストレージシステムの制御方法

Country Status (4)

Country Link
US (1) US20130046845A1 (ja)
EP (1) EP2565791A4 (ja)
JP (1) JP5803908B2 (ja)
WO (1) WO2011136261A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2701363B1 (en) * 2011-07-22 2015-09-02 Huawei Technologies Co., Ltd. Content processing method, device and system
JP6197666B2 (ja) * 2014-01-27 2017-09-20 富士通株式会社 記憶装置、複製方法及び複製プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148545A (ja) * 2005-11-24 2007-06-14 Brother Ind Ltd 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
JP2007280304A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP2008011330A (ja) * 2006-06-30 2008-01-17 Kddi Corp データ管理装置
JP2008146119A (ja) * 2006-12-06 2008-06-26 Hitachi Ltd センサ情報処理サーバおよびセンサ情報処理システム。
JP2010074604A (ja) * 2008-09-19 2010-04-02 Nec Corp データアクセスシステム、データアクセス方法およびデータアクセス用プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003903967A0 (en) * 2003-07-30 2003-08-14 Canon Kabushiki Kaisha Distributed data caching in hybrid peer-to-peer systems
EP1832976A4 (en) * 2004-10-12 2009-04-29 Fujitsu Ltd SOFTWARE UPDATE PROGRAM, SOFTWARE UPDATE DEVICE, AND SOFTWARE UPDATE METHOD
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP2008269141A (ja) 2007-04-18 2008-11-06 Nec Corp オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
JP2009151403A (ja) 2007-12-19 2009-07-09 Hitachi Ltd ストレージノード、クラスタストレージシステム及びその運用方法
US7870133B2 (en) * 2008-01-14 2011-01-11 Infosys Technologies Ltd. Method for semantic based storage and retrieval of information
JP2009289161A (ja) 2008-05-30 2009-12-10 Nippon Telegr & Teleph Corp <Ntt> クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148545A (ja) * 2005-11-24 2007-06-14 Brother Ind Ltd 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
JP2007280304A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP2008011330A (ja) * 2006-06-30 2008-01-17 Kddi Corp データ管理装置
JP2008146119A (ja) * 2006-12-06 2008-06-26 Hitachi Ltd センサ情報処理サーバおよびセンサ情報処理システム。
JP2010074604A (ja) * 2008-09-19 2010-04-02 Nec Corp データアクセスシステム、データアクセス方法およびデータアクセス用プログラム

Also Published As

Publication number Publication date
EP2565791A4 (en) 2013-12-25
EP2565791A1 (en) 2013-03-06
US20130046845A1 (en) 2013-02-21
JPWO2011136261A1 (ja) 2013-07-22
WO2011136261A1 (ja) 2011-11-03

Similar Documents

Publication Publication Date Title
Peng et al. VDN: Virtual machine image distribution network for cloud data centers
KR101928529B1 (ko) 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
CN102591970B (zh) 一种分布式键-值查询方法和查询引擎系统
US20150215405A1 (en) Methods of managing and storing distributed files based on information-centric network
US8463788B2 (en) Balancing caching load in a peer-to-peer based network file system
US10001942B1 (en) Asynchronous semi-inline deduplication
US20100235409A1 (en) System and method for managing data stored in a data network
JP5967673B2 (ja) データメンテナンス用の方法
US10908834B2 (en) Load balancing for scalable storage system
JP2016062609A (ja) コンピュータ実装された動的シャーディング方法
CN103150394A (zh) 面向高性能计算的分布式文件系统元数据管理方法
US10031682B1 (en) Methods for improved data store migrations and devices thereof
CN101674233A (zh) 基于彼得森图的存储网络结构及数据读写方法
CN103067461A (zh) 一种文件的元数据管理系统以及元数据管理方法
US20150106468A1 (en) Storage system and data access method
CN104184812A (zh) 一种基于私有云的多点数据传输方法
KR101371202B1 (ko) 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법
JP5803908B2 (ja) ストレージシステム及びストレージシステムの制御方法
CN107908713A (zh) 一种基于Redis集群的分布式动态杜鹃过滤系统及其过滤方法
KR20150061316A (ko) 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 부하 분산 방법 및 시스템
JP2010271797A (ja) 分散ストレージにおけるデータ位置管理方法及び装置及びプログラム
WO2012046585A1 (ja) 分散ストレージシステム、その制御方法、およびプログラム
CN111212138B (zh) 一种跨站点存储系统及数据信息访问方法
US11064020B2 (en) Connection load distribution in distributed object storage systems
Sun et al. A lightweight data location service for nondeterministic exascale storage systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150701

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150817

R150 Certificate of patent or registration of utility model

Ref document number: 5803908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150