JP6020803B2 - 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム - Google Patents

分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム Download PDF

Info

Publication number
JP6020803B2
JP6020803B2 JP2012173536A JP2012173536A JP6020803B2 JP 6020803 B2 JP6020803 B2 JP 6020803B2 JP 2012173536 A JP2012173536 A JP 2012173536A JP 2012173536 A JP2012173536 A JP 2012173536A JP 6020803 B2 JP6020803 B2 JP 6020803B2
Authority
JP
Japan
Prior art keywords
data
nodes
node
distributed storage
logical connection
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
JP2012173536A
Other languages
English (en)
Other versions
JP2014032575A (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 JP2012173536A priority Critical patent/JP6020803B2/ja
Publication of JP2014032575A publication Critical patent/JP2014032575A/ja
Application granted granted Critical
Publication of JP6020803B2 publication Critical patent/JP6020803B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラムに関し、特に実システムに伴う制約を守ることができる分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラムに関する。
分散ストレージシステムは、ネットワークを介して接続された多数の計算機を有し、これらの計算機のハードディスクドライブ(HDD:Hard Disk Drive)、メモリ等を用いてデータの格納及びデータの提供を行う。分散ストレージシステムでは、いずれの計算機にデータを配置し、いずれの計算機によってデータを処理するのかを、ソフトウェアまたは特別なハードウェアが決定する。分散ストレージシステムではまた、分散ストレージシステムの動作を動的に変更することにより、システム内のリソース使用量を調整するとともに、クライアント端末及びその利用者に対する性能を向上させることが要求される。
分散ストレージシステムにおいては、データは複数のストレージノード(以下、単に「ノード」という)に分散して格納されている。また、非特許文献1に記載された技術のように、複数のノードにデータの複製を保持することで高可用性を維持する分散ストレージシステムが知られている。
このような電力制御や、分散ストレージシステムに対する負荷分散を行うために、分散ストレージシステムのデータ配置を制御することが行われる。例えば、あるデータの複製数を増加させたり、あるノードに格納されている任意のデータを別のノードに移動(マイグレーション)させたり、といった制御がある。これらを駆使し、分散ストレージのデータを再配置してノード間のデータアクセスの偏りを改善したり、必要データを別のノードに待避させた上でノードを停止することで、ノードを停止させてもデータアクセスに問題が起きないようにしたり、といったことを実現する。
非特許文献2に記載された“write off−loading”によると、停止したディスクへの書き込み要求を、一時的に停止していないディスクへと書き込むことで、利用されているデータを保持しているディスクを停止することができる。
Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. 2007. Dynamo: amazon's highly available key-value store. In Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles (SOSP '07). ACM, New York, NY, USA, 205-220. DOI=10.1145/1294261.1294281 http://doi.acm.org/10.1145/1294261.1294281 Narayanan,D.,Donnelly,A.,Rowstron,A.,"Write Off-Loading: Practical Power Management for Enterprise Storage,"ACM Trans.Storage,Vol.4,No.3,Article 10,November 2008
第1の問題点は、任意の既存の負荷分散アルゴリズムに基づいてデータ配置制御を行うことにより、実システム上で考慮しなければならない制約を破ることがある、ということである。その理由は、負荷分散制御アルゴリズムがシステムの制約を考慮せずに開発されていることがあるためである。さらに、既に実績がある負荷分散アルゴリズムに対して、実システム毎に異なる制約条件があった場合、それらの負荷分散アルゴリズムを制約条件の異なるシステムに適用するためには負荷分散アルゴリズムの修正が必要になり、その修正には高度な技術的知見を必要としてしまい汎用的なシステムとして利用が困難になってしまう。
例えば、分散ストレージシステムに対し、各構成ノードが自律分散的にデータの転送を行う事で、負荷分散を実現する制御アルゴリズムを動作させるとする。その場合、分散ストレージシステムが、例えば非特許文献1のような複数ノードにデータの複製を配置することで可用性を維持する仕組みになっている場合には、負荷分散アルゴリズムによるデータの移動によってその可用性が失われないように調整しなければならない。つまり、データの複製が同一ノードに複数保持されてはならない、という制約がある。このとき負荷分散アルゴリズムがその制約を考慮していない場合には、データは無規律に転送されてしまい、ある時点でデータの複製が同一ノードに置かれることを回避できなくなるために、可用性を維持できなくなりシステムとして問題を起こしてしまう。
第2の問題点は、負荷分散のために移動できるデータが存在せず、データ移動制御が行えないことがある、ということである。その理由は、本発明で想定するような自律負荷分散制御システムにおいては、各構成ノードが負荷分散のためのデータ移動制御を自律的に判断して行う。そして、このようなシステムにおいては、各構成ノードは分散システムの一部のノードのみを転送候補として制御内容を計算することで計算コストを削減しようとしている。このような制御方式において、前述のように制約を考慮したデータ転送を行う場合に、各構成ノードの転送候補となるノードが少ない場合には、保護する制約によっては移動制御の出来るデータが存在しないことがあるためである。
本発明の課題は、システムに対する制約を守ったまま自律負荷分散制御ができる、分散ストレージシステムを提供することにある。
本発明の第1の態様による分散ストレージシステムは、システムを構成する各構成ノードが、それぞれ論理的に接続された幾つかのノードに対しデータの転送制御を行うシステム構成を持つ。具体的には、各構成ノードが、それぞれ論理的に接続された任意の数の論理的接続先ノードに対しデータを転送するデータ転送手段と、前記記憶手段のデータ保持状態情報及び前記任意の数の論理的接続先ノードと構成ノード自身の負荷情報を負荷状態として取得する状態取得手段と、取得した負荷状態から転送すべきデータ量を転送先ノード毎に計算する制御内容計算手段と、転送されるデータが満たすべき制約ルールを格納している制約ルール保持手段と、計算された転送すべきデータ量から制約を満たすデータを選択し、前記制約ルールを参照して選択したデータが制約ルールを満たしているか確認するデータ選択/ルールチェック手段と、を含む制御手段を備え、各構成ノードが定期的に独立して負荷状態に応じてデータの転送制御を行うよう動作する。
このような構成を採用し、転送データを決定する際に制約ルールを満たすデータだけを選ぶよう動作することにより、本発明の課題を達成する事が出来る。
本発明の第2の態様によれば、データを保持するための記憶手段を備える複数の構成ノードがネットワークを介して接続された分散ストレージシステムにおける分散ストレージデータ移動制御方法が提供される。本方法においては、各構成ノードが、それぞれ転送されるデータが満たすべき制約ルールをあらかじめ制約ルール保持手段に格納している。各構成ノードはまた、それぞれ論理的に接続された任意の数の論理的接続先ノードに対しデータを転送するステップと、前記記憶手段のデータ保持状態情報及び前記任意の数の論理的接続先ノードと構成ノード自身の負荷情報を負荷状態として取得するステップと、取得した負荷状態から転送すべきデータ量を転送先ノード毎に計算するステップと、計算された転送すべきデータ量から制約を満たすデータを選択し、前記制約ルールを参照して選択したデータが制約ルールを満たしているか確認するステップと、を実行することにより、データ転送の必要性の有無判断、データ転送量及び転送先を決定する。
本発明の第3の態様によれば、データを保持するための記憶手段を備える複数の構成ノードがネットワークを介して接続された分散ストレージシステムであって各構成ノードは、それぞれ転送されるデータが満たすべき制約ルールをあらかじめ制約ルール保持手段に格納している分散ストレージシステムに適用されるデータ移動制御用プログラムが提供される。本プログラムは、各構成ノードのコンピュータに、論理的に接続された任意の数の論理的接続先ノードに対しデータを転送するステップと、前記記憶手段のデータ保持状態情報及び前記任意の数の論理的接続先ノードと構成ノード自身の負荷情報を負荷状態として取得するステップと、取得した負荷状態から転送すべきデータ量を転送先ノード毎に計算するステップと、計算された転送すべきデータ量から制約を満たすデータを選択し、前記制約ルールを参照して選択したデータが制約ルールを満たしているか確認するステップと、を実行させる。
第1の効果は、システムの制約を守ったまま自律負荷分散制御ができることである。その理由は、各構成ノードが転送データを選択する際に、制約ルールを満たすデータだけを選んで転送するためである。
本発明の第1の実施の形態の構成の概要を示すブロック図である。 図1に示された第1の実施の形態における、論理的なノード接続形態を示すブロック図である。 図1に示された第1の実施の形態の構成のうち、構成ノード100を中心として制御手段2の構成を詳細に示したブロック図である。 図3に示された制御内容計算手段22の実施例における評価関数について説明するための図である。 図3に示された制御内容計算手段22の実施例における起動停止判断の指標について説明するための図である。 本発明の第1の実施の形態の動作を説明するための流れ図である。 本発明の第1の実施の形態の動作のうち、転送データ選択処理動作を説明するための流れ図である。 本発明の第2の実施の形態の構成を示すブロック図である。
次に、本発明を実施するための形態について図面を参照して詳細に説明する。
図1は本発明の第1の実施の形態におけるシステムの概要を示す構成図である。図1を参照すると、本発明の第1の実施の形態は、ネットワーク200によって結合された構成ノード100〜108から構成される。以下では、構成ノード10Xと記載する場合、Xは0から8の値を取り得ることを意味する。構成ノードの数は図1では9個であるが、任意の複数の数となることは言うまでもない。
構成ノード10X(すなわち100〜108)は、分散ストレージシステムを構成するストレージノードである。構成ノード10Xは、データを保持するための記憶装置(例えばHDD、半導体メモリ等)と、ストレージ機能を実現するための演算装置(例えばCPU:Central Processing Unit)を備える計算機(コンピュータ)によって実現される。
構成ノード10Xは、データストア(記憶手段)1と、CPU等により実現される制御手段2と、データ受信手段3と、負荷監視手段4とを備える。データストア1は分散ストレージシステムに格納されるデータを格納する機能を果たす。データストア1は構成ノード10Xが保持する記憶装置と、それに対する記憶処理を実現するソフトウェアによって実現され、構成ノードの計算機リソースによって実現される。制御手段2は、それぞれの構成ノード10Xのデータストア1に格納されているデータのうち、任意のデータを別のノードに配置制御(マイグレーションや複製数の増加)を行う。データ受信手段3は、制御手段2によって行われる配置制御処理によって転送される、自身以外の構成ノードからの転送データを受信しデータストア1へ保持する。負荷監視手段4は、構成ノード10Xのノード負荷情報(例として、データアクセス量、構成ノード10XのCPU利用率やIO(Input−Output)量などの計算機負荷量)を既存の監視ソフトウェアなどによって取得し、制御手段2と、自身以外の構成ノード10Xの一部に送信する機能を果たす。
ネットワーク200は、構成ノード100〜108間を接続し、データ及び制御メッセージをやり取りするために用いられる。ネットワーク200は、例えば、Ethernet(登録商標)、Fibre ChannelやFCoE(Fibre Channel over Ethernet)、InfiniBand、または、これらを利用するTCP/IP(Transmission Control Protocol/Internet Protocol)、RDMA(Remote Direct Memory Access)などの上位プロトコルにより実現されるが、実現方法としてはこれらに限られない。
分散ストレージシステムに格納されるデータは、固定長または意味的に区切られたデータ断片(以下「オブジェクト」という)の集合として、構成ノード10Xのそれぞれのデータストア1のいずれか1つまたは、複数に格納される。複数のノードに格納される場合には、オブジェクトの複製として格納される。分散ストレージシステムのクライアントは、オブジェクト単体あるいは集合に対して、一意の識別子(キー)によってアクセスする。各オブジェクトの他に、オブジェクトに基づいて計算された冗長符号情報が複製として他のノードに格納されるようにしてもよい。冗長符号情報は、ノード故障時において、データの消失を防ぐために用いられる。
オブジェクトの例として、例えば、ファイルシステムのファイル、ファイルと関連するメタデータの集合、関係データベースのタプルもしくはテーブル、オブジェクトデータベースのデータ、Key−Valueデータ格納システムのValue、JSON(Java Script(登録商標) Object Notation)、BSON(Binary JSON)で記載されたドキュメント等が挙げられる。しかし、本発明におけるオブジェクトは、これらのオブジェクトに限られない。また、これらの例について、さらに固定長または意味的に区切ったデータ断片をデータストア1への格納単位としてもよい。
[制御手法の概要]
第1の実施の形態での配置制御手法は、各構成ノード10Xの制御手段2によってデータ転送の必要性と、データ転送量及び転送先を決定し実行する手法である。各構成ノード10Xは、図1に示した通り、ネットワークを介して結合されているため、どのノードに対してもデータを転送することは可能である。ただ、全てのノードを転送先にしてデータ転送量を計算することは計算コストが大きくなるため、各構成ノードを任意のトポロジで論理的に結合し、その論理的な結合先のノードだけを各制御手段2における転送先候補ノードとし、その転送先候補ノードに対するデータの転送必要性可否判断やデータ転送量及び転送先を算出するための計算処理を行う事で、計算量を削減する。
各構成ノード10Xの論理的な結合形式としては、メッシュ型、ツリー型、フルコネクト型、スター型、キューブ型などや、またこれら複数の結合方式を階層的に接続したり、複合的に組み合わせたりする形式がある。本実施の形態としては、説明を簡略化するために、図2に示すような2次元メッシュ構造で接続されるものとする。この場合、構成ノード100における論理的な接続ノード(転送先候補ノード)は、構成ノード101及び103である。この接続形態に関する情報は、論理的接続情報として各構成ノード10Xが保持しており、変更された場合には各構成ノードに通知されるものとする。
図3に第1の実施の形態の構成のうち、構成ノード100を中心として、制御手段2の構成をより詳細に表現したブロック図を示す。制御手段2は、状態取得手段21、制御内容計算手段22、データ選択/ルールチェック手段23、データ移動制御手段(データ転送手段)24、制約ルール保持手段25から構成される。それぞれの手段は、構成ノード10Xを実現するハードウェア装置を用いたソフトウェアとして動作する。
構成ノード100の状態取得手段21は、データストア1のデータ保持状態情報(例えば、データ保持量、種類)及び構成ノード100とその論理的接続先ノード(図3の場合、構成ノード101及び103)の負荷情報を負荷状態として負荷監視手段4(図3の場合、構成ノード100、101、103の負荷監視手段4)から取得する。このデータ保持状態情報及び負荷情報の詳細内容は、制御内容計算手段22のアルゴリズムによって具体的に決定される。
制御内容計算手段22は、以下に説明するアルゴリズムに基づいて、状態取得手段21が取得したデータ保持状態情報及び負荷情報を用い、転送すべきデータ量を転送先候補ノード毎に算出し決定する機能を果たす。
まず、図4のような、データストア1と関係する評価関数を導入する。この場合、横軸λはデータストア1の負荷量に相当する。縦軸fi(λ)は、何らかの効率または利潤に関わる指標である。データストア1の場合、レスポンス効率、エネルギー効率に関する指標を設定する。レスポンス効率によれば、系全体のレスポンスを好適にし、エネルギー効率によれば系全体のエネルギー効率を好適にすることができる。この効率に関わる評価関数を凸関数で表す。凸関数を使用するのも本制御手法の特徴である。図4のような、上に凸な関数を凹関数と呼び、下に凸な関数を凸関数と呼ぶこともあるが、ここでは、関数の性質上で区別する表現を採用し、凹関数も凸関数と表現することにする。
評価関数が凸関数である要素を連携させて、全体で最適化(各要素の評価関数の値の総和が最大となる状態)する問題は、「凸計画問題」として知られており、各要素の動作レベルにおける評価関数の微分値が等しい状況で最適化が達成されることが数学的に明らかにされている。本実施の形態はこの原理を応用している。本実施の形態において、評価関数として凸関数を使った理由がここにある。
この原理を勘案し、各要素の状態変化(本実施の形態のサーバのケースでは負荷分散)を以下の式(1)に従い制御する。
Figure 0006020803
ここで、λiはデータストア1の負荷量であり、K1は状態変更のゲインに相当する係数である。この制御をかけることで、各要素は評価関数の微分値dfi/dλiを等しくするように状態を変更しようとする。これは「凸計画問題」のところで説明したように、全体利潤を最大化するポイントに各要素の状態(負荷量)を制御するのと等価である。つまり、上記式(1)の制御により、評価関数の縦軸で設定された効率が系全体として最大化される。kは要素iに隣接する要素の番号(図2の構成で論理的に接続されている場合には、要素iが構成ノード100の場合、構成ノード101、103)を意味する。このように隣接要素が複数個ある場合は、順次、上記式(1)の制御を繰り返せばよい。
上記までの説明の手法で、負荷の配置の問題をリアルタイムに解くことができるが、場合によっては、データストア1(及び構成ノード10X)が停止していた方が、効率の上がる場合がある。また、停止していたデータストア1(構成ノード10X)を起動したほうが、効率の上がる場合もある。上記式(1)だけでは、この起動停止の判断ができないので、以下の指標を使って、データストア1の起動停止の判断を行う。
まず、要素自身と、その要素に隣接するノードの評価関数間に、ある指標を定義する。図5は、その評価関数を説明するための図である。負荷量λが0のときに、効率または利潤(縦軸)fi(λ)が負の値を取っている意味は、起動によりコストが発生することを意味している。縦軸を利潤と考えれば、運転(起動)しているにも関わらず、需要がなければ、運転コストが回収(需要家から集める金額)を上回り、利潤がマイナスになるというイメージである。評価関数の値が0になったところが、運転コストと回収が均衡した点であり、評価関数の値がプラスになるということは利益が発生している事を意味する。
ここで、ノードi(自身)のゼロクロス点をλ0,i、隣接ノードjの評価関数における、ノードiのゼロクロス点と同じ傾きの点をZij、隣接ノードjの現在の負荷をλとする。したがって、Zijは以下の式(2)で表すことができる。
Figure 0006020803
そして、ここで以下の式(3)で表される指標Siを定義する。
Figure 0006020803
この指標Siは、現在の隣接ノードの負荷(総和)が、自身のゼロクロス点よりどれだけ大きいかを意味している。もしノードiが停止しているとして、ノードiを起動すべき条件は、起動することでノードiがゼロクロス点以上の負荷を担当する状況にあるかどうかである。そうすれば利潤はマイナス(評価関数値が負)にならないため、ノードiを起動することで不利はない。指標Siはそれを数値化したものである。隣接ノードがノードiのゼロクロス点における評価関数微分値と等価なZijよりどれだけ負荷を担当しているかを示すのが式(3)の右辺第1項であり、それをゼロクロス点λ0,iで減算することで(右辺第2項)、自身のゼロクロス点以上の負荷が周りに存在しているかを示す指標となっている。指標Siが0より大きければ、ノードiを起動したときにいずれ隣接ノードが担当している負荷はノードiが担当することになり、かつノードiの担当負荷はゼロクロス点以上となる。逆に、指標Siが0より小さければ、ノードiが隣接ノードの担当負荷を新たに担っても、ゼロクロス点以下となり、ノードiの起動により利潤をマイナスにしてしまう。指標Siはこのようなものであり、指標Siの正負を見ることでノードiを起動すべきか停止すべきかがわかる。指標Siが負の時とは、その時点でノードiの負荷は評価関数が負の値をとる領域にあるということで、起動しているノードは評価関数が0以下になった時点で停止すると考えても良い。
以上のように、上記式(1)で各要素の状態変化を制御しながら、上記式(3)の指標Siをモニタすることで、リアルタイムにデータストア1の好適な負荷量の算出、及びノードを起動すべきか停止すべきかの判断をすることができる。これは従来のように予め予測シナリオでスケジューリングして制御していたものに比べ画期的なアルゴリズムとなっている。なぜなら、想定外の外乱や需給変化があってもリアルタイムに即応できるからである。
また、このアルゴリズムは、自律分散的に独立に動くので、どこかが故障したりしても、故障した要素からの信号が途絶えた分だけ、他の要素が自律的にリカバーするという動作を行う。また、突然要素を増やしたり、減らしたりしても、徐々に自律的に適正な動作に向かうことができる。つまり、外乱に対して、非常にロバストであり、また、要素の増減を自由にできるスケーラビリティを有している。
従来のシステムは、故障に対して無力であったり、様々なエラー用のシーケンスを用意したりしなければならなかった。また、勝手に要素(リソース)を増やしたり、減らしたりすればシステム全体の安定性が保たれるか保証はなく、そのたびにプログラム、処理を見直さなければならなかった。本実施の形態のアルゴリズムはこれらの問題を自律分散適応的な制御ですべて解決することができる。
データ選択/ルールチェック手段23は、制御内容計算手段22によって決定される、接続先毎のノード及び、転送すべきデータ量及びその転送先ノードの情報から、実際にデータを選択する。その際に、データ選択/ルールチェック手段23は、制約ルール保持手段25に格納されているルールを参照し、ルールを満たしているデータを転送データとして選ぶ機能を果たす。
データ移動制御手段24は、データ選択/ルールチェック手段23によって選択指定されたデータを、データストア1から取得し、転送先ノードに対してデータを転送する。転送先ノードのデータ受信手段3がそのデータを受信し、転送先ノードのデータストア1に反映する。
制約ルール保持手段25は、データの保持方式として実システムとして考慮しなければならない制約となる情報である、1つあるいは複数の制約ルールを保持する。
[制約ルールの実施例]
制約ルールを保持する実施例としては、決められたインタフェースを持つ実行プログラムとして保持する方法がある。例えば、転送先ノード番号と転送候補断片データを渡し、転送可ならばYESを応答し、転送不可ならばNOを応答するようなプログラムである。これらの実行プログラムを制約ルール保持手段25に保持させておき、データ選択/ルールチェック手段23は、制約ルールとなる実行プログラムを制約ルール保持手段25から取り出し、実行プログラムに対し転送先ノード番号と転送候補断片データを渡し実行することで、転送可否判定を行う。このインタフェースは別の形であってもよい。例えば、転送先ノード番号と転送候補断片データのデータ配置状態情報(全体の情報)を渡す、あるいは転送候補断片データのID情報から配置先を決定するプログラムを渡す、ということが考えられる。
また、制約ルールをテキストやその他の形式によって記述し、それをプログラムに変換して判定するような仕組みによって実現しても良い。
[全体動作]
次に、図6、図7のフローチャートを参照して、第1の実施の形態の全体動作について詳細に説明する。図6は各構成ノード10Xにおけるデータの転送制御処理フローである。このフローが定期的に実行されることによりシステムを安定的に負荷分散させ動作させる。図7は図6のステップS103を詳細に説明するフローチャートであり、ある転送先ノードに対し、実際に転送するデータ断片を選択する処理である。
まず、図3、図6を用いて基本的なデータ転送制御処理フローについて説明する。状態取得手段21は、データストア1からデータの保持状態情報を取得すると共に、自身及び論理的な接続ノードである、構成ノード100及び101、103の負荷監視手段4から負荷情報を取得し、負荷状態として制御内容計算手段22に渡す(ステップS101)。次に、制御内容計算手段22は、渡されたデータ保持状態情報と負荷情報を用いて、制御内容(転送先毎の転送データ量)を算出する(ステップS102)。ステップS102の具体的方法については制御内容計算手段22の項に示す。
続いて、データ選択/ルールチェック手段23は、制約ルール保持手段25に格納されているルールを満たすよう、転送先ノード毎に転送データ断片を選択し、選択した転送データ断片を指定する情報をデータ移動制御手段24に渡しデータ移動制御の実行を要求する(ステップS103)。ステップS103については詳細を図7のフローチャートによって後述する。
データ移動制御手段24は、データ選択/ルールチェック手段23からの転送データ断片を指定する情報に基づいてデータストア1から転送すべきデータ断片を取得し、転送先のデータ受信手段3へデータを転送する(ステップS104)。
[ステップS103における転送データ選択]
次に、図7を用いてデータ選択/ルールチェック手段23によるステップS103の動作について説明する。前述したように、データ選択/ルールチェック手段23は、制御内容計算手段22によって決定された、接続先毎のノード、データ転送量及びその転送先ノードの情報から、データ転送量を満たす分のデータ断片を、状態取得手段21を介してデータストア1から選ぶ(ステップS201)。例えば、決定されたデータ転送量がデータ断片100個分に相当するのであれば、データ選択/ルールチェック手段23はデータストア1に格納されているデータ断片を100個選ぶ。選ぶ方法としては、ランダムに選ぶ、FIFO(First in First out)順に選ぶ、FILO(First in Last out)順に選ぶ、など様々な方法が考えられるが、ここではどのような方法に基づいてもよい。
次に、データ選択/ルールチェック手段23は、制約ルール保持手段25から制約ルールを取り出す(ステップS202)。ステップS201とS202は独立して実行できるため、任意の順序で実行して良い。
さらに、データ選択/ルールチェック手段23は、ステップS202で取得した制約ルールと、ステップS201で選択した(転送候補となる)データ断片から、各データ断片が制約ルールを満たしているか判定する(ステップS203)。
さらに、データ選択/ルールチェック手段23は、ステップS201で選択した転送候補データ断片全てが、ステップS203での判定で制約ルールを満たしているかどうか確認する(ステップS204)。転送候補データ断片全てがルールを満たしている場合(ステップS204がYESの場合)、すなわち制約を満たす指定データ量の転送データ断片のリストアップが完了したことになるため、本処理は終了し、図6のステップS104に進む。
データ断片のうち、制約ルールを満たさないデータがある場合(ステップS204がNOである場合)、データ選択/ルールチェック手段23は、制約ルールを満たさないデータ量分の新たなデータ断片を再度、データストア1に格納されているデータ断片から選択する(ステップS205)。基本的な選択方法としてはステップS201と同様にしてよいが、以前に選択され、ルールを満たさなかったデータ断片は選択候補から外すべきである。データ選択/ルールチェック手段23は、新しい転送データ断片候補を選んだ後に、ステップS203に戻り、再度のルール判定処理を行う。
[第2の実施の形態:論理的接合形態の変更]
次に、図8を参照して、本発明の第2の実施の形態について詳細に説明する。図8において、第2の実施の形態は、構成ノードが第1の実施の形態とほぼ同じ構成を持つが、制御手段2内に論理的接合形態管理手段26を備える点が異なる。
論理的接合形態管理手段26は、構成ノードの論理的接続先ノードについて応答する手段である。第1の実施の形態においては、構成ノードの論理的接合形態は図2に示すように静的に定められており、各構成ノードが論理的接続情報を保持することとした。第2の実施の形態ではこれを可変にすることが出来る。そのため、状態取得手段21、制御内容計算手段22は、この論理的接合形態管理手段26から論理的接合形態の情報を取得し、取得した論理的接合形態の情報を踏まえて動作する。第1の実施の形態は、構成ノード100の論理的接合形態管理手段26が常に構成ノード101と103を接続先として応答した形の構成と見なすことも出来る。
具体的な実施例としては、構成ノード10Xが保持する記憶装置にファイルなどの形式として論理的接続形態の情報を保持し、他の手段の要求に応じて接続先を応答する、といった方法がある。またその他の手段によって接続形態を変更する場合には、該当ファイルを編集することとなる。この方法はあくまで一例であり、その他の方法に基づいても良いし、実際にはロックなどの管理が必要であるが、本発明の本質と関係が無いため説明は省略する。
第2の実施の形態において、第1の実施の形態と異なる点について説明する。構成ノード100の状態取得手段21は、自身及び論理的接続先ノード(ここでは、構成ノード101,103)の負荷監視手段4から負荷情報を取得するが、この論理的接続先ノードについては、論理的接続形態管理手段26から接続先情報を受け取った上で、負荷情報を取得する。例えば、構成ノード101、103に加え、構成ノード104が接続先に追加された場合には、構成ノード104の負荷監視手段4からも負荷情報を取得する(図8では矢印による図示を省略)。
制御内容計算手段22は、論理的接合形態管理手段26から取得した論理的接続先ノード分の転送データ量の計算を行う。例えば、構成ノード101、103に加え構成ノード104が接続先に追加されている場合には、構成ノード104についても転送データ量の計算を行う。従って、このように計算対象が増加する場合にはその分の計算コストが増大する。
データ選択/ルールチェック手段23は、論理的接合形態管理手段26の情報を制約ルールチェックの結果に応じて変更するように動作する。データ選択/ルールチェック手段23は、例えば、図7の動作フローのステップS203においてデータ断片が制約ルールに適合しない頻度が増加したときに、接続先を変更する。例えば、構成ノード103の代わりに構成ノード104を追加する、あるいは構成ノード104を単純に追加する、という方法がある。勿論、その他の構成ノードを追加してもよい。このように論理的接続先ノードを変更することによって、転送データが制約ルールに反せず負荷分散のためのデータ転送制御を実行しやすくなり、データ断片が見つけやすくなる、計算コストが下がる等の効果が得られる。前述した通り、論理的接続先ノードの増加は計算コストの増大を引き起こすため、それとのトレードオフとなる。
接続形態の変更契機として、データ断片が制約ルールに適合しない頻度の他に、制約ルール違反があらかじめ指定された閾値以上発生した場合、といった方法が考えられる。また接続先を変更するか、接続する構成ノードを増加するかについても、接続先数が閾値以下の場合には構成ノードを増加し、それ以上の場合には接続先(論理的接続形態)を変更する、という制御が考えられる。
データ移動制御手段24についても論理的接続形態が変更されるため、転送先ノードが追加される。図8の構成では構成ノード104が追加されているため、転送先が追加されている。
その他については第1の実施の形態とほぼ同じ動作をするため、説明を省略する。
本発明は、複数のノードによってストレージシステムを実現する、分散ストレージシステムといった用途に適用できる。
1 データストア
2 制御手段
3 データ受信手段
4 負荷監視手段
21 状態取得手段
22 制御内容計算手段
23 データ選択/ルールチェック手段
24 データ移動制御手段
25 制約ルール保持手段
26 論理的接合形態管理手段
100〜108 構成ノード
200 ネットワーク

Claims (8)

  1. データを保持するための記憶手段を備える複数の構成ノードがネットワークを介して接続された分散ストレージシステムであって、
    各構成ノードが、それぞれ論理的に接続された、前記複数の構成ノードの数より少ない数の論理的接続先ノードに対しデータを転送するデータ転送手段と、
    前記記憶手段のデータ保持状態情報及び前記複数の構成ノードの数より少ない数の論理的接続先ノードと構成ノード自身の負荷情報を負荷状態として取得する状態取得手段と、
    取得した負荷状態から転送すべきデータ量を転送先ノード毎に計算する制御内容計算手段と、
    転送されるデータが満たすべき制約ルールを格納している制約ルール保持手段と、
    計算された転送すべきデータ量から制約を満たすデータを選択し、前記制約ルールを参照して選択したデータが制約ルールを満たしているか確認するデータ選択/ルールチェック手段と、
    を含む制御手段を備えることにより、データ転送の必要性の有無判断、データ転送量及び転送先を決定する制御を実行することを特徴とする、分散ストレージシステム。
  2. 前記各構成ノードが、それぞれ自身以外の構成ノードからの転送データを受信し前記記憶手段へ保持するデータ受信手段と、
    前記複数の構成ノードの負荷情報を取得し、前記状態取得手段と前記任意の数の論理的接続先ノードに送信する負荷監視手段と、をさらに備えることを特徴とする請求項1に記載の分散ストレージシステム。
  3. 前記制御手段が、論理的接合形態の情報を管理しあらかじめ定めた契機でその情報を変更する論理的接合形態管理手段をさらに備えたことを特徴とする請求項1または2に記載の分散ストレージシステム。
  4. 前記論理的接合形態管理手段は、前記制約ルールを満たさない転送データ断片の選択頻度が一定以上の場合に、前記論理的接合形態の情報を変更することを特徴とする請求項3に記載の分散ストレージシステム。
  5. データを保持するための記憶手段を備える複数の構成ノードがネットワークを介して接続された分散ストレージシステムにおけるデータ移動制御方法であって、
    各構成ノードは、それぞれ転送されるデータが満たすべき制約ルールをあらかじめ制約ルール保持手段に格納しており、
    各構成ノードはまた、
    それぞれ論理的に接続された、前記複数の構成ノードの数より少ない数の論理的接続先ノードに対しデータを転送するステップと、
    前記記憶手段のデータ保持状態情報及び前記前記複数の構成ノードの数より少ない数の論理的接続先ノードと構成ノード自身の負荷情報を負荷状態として取得するステップと、
    取得した負荷状態から転送すべきデータ量を転送先ノード毎に計算するステップと、
    計算された転送すべきデータ量から制約を満たすデータを選択し、前記制約ルールを参照して選択したデータが制約ルールを満たしているか確認するステップと、を実行することにより、データ転送の必要性の有無判断、データ転送量及び転送先を決定することを特徴とする、分散ストレージデータ移動制御方法。
  6. 前記各構成ノードは更に、論理的接合形態の情報を管理しあらかじめ定めた契機でその情報を変更するステップを実行することを特徴とする請求項5に記載の分散ストレージデータ移動制御方法。
  7. 前記論理的接合形態の情報を変更するステップは、前記制約ルールを満たさない転送データ断片の選択頻度が一定以上の場合に、前記論理的接合形態の情報を変更することを特徴とする請求項6に記載の分散ストレージデータ移動制御方法。
  8. データを保持するための記憶手段を備える複数の構成ノードがネットワークを介して接続された分散ストレージシステムであって各構成ノードは、それぞれ転送されるデータが満たすべき制約ルールをあらかじめ制約ルール保持手段に格納している分散ストレージシステムに適用されるデータ移動制御用プログラムであって、
    各構成ノードのコンピュータに、論理的に接続された、前記複数の構成ノードの数より少ない数の論理的接続先ノードに対しデータを転送するステップと、
    前記記憶手段のデータ保持状態情報及び前記前記複数の構成ノードの数より少ない数の論理的接続先ノードと構成ノード自身の負荷情報を負荷状態として取得するステップと、
    取得した負荷状態から転送すべきデータ量を転送先ノード毎に計算するステップと、
    計算された転送すべきデータ量から制約を満たすデータを選択し、前記制約ルールを参照して選択したデータが制約ルールを満たしているか確認するステップと、
    を実行させるための分散ストレージデータ移動制御用プログラム。
JP2012173536A 2012-08-06 2012-08-06 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム Active JP6020803B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012173536A JP6020803B2 (ja) 2012-08-06 2012-08-06 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012173536A JP6020803B2 (ja) 2012-08-06 2012-08-06 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム

Publications (2)

Publication Number Publication Date
JP2014032575A JP2014032575A (ja) 2014-02-20
JP6020803B2 true JP6020803B2 (ja) 2016-11-02

Family

ID=50282344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012173536A Active JP6020803B2 (ja) 2012-08-06 2012-08-06 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム

Country Status (1)

Country Link
JP (1) JP6020803B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109034617A (zh) * 2018-07-26 2018-12-18 国网浙江省电力有限公司温州供电公司 基于大数据的配电网指标分析方法及系统
KR20210077329A (ko) * 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4263927B2 (ja) * 2003-03-05 2009-05-13 国立大学法人東京工業大学 蓄積制御装置
JP4887955B2 (ja) * 2006-07-21 2012-02-29 日本電気株式会社 データ配置管理システム及び方法とプログラム
JP5381336B2 (ja) * 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法

Also Published As

Publication number Publication date
JP2014032575A (ja) 2014-02-20

Similar Documents

Publication Publication Date Title
US10853337B2 (en) Lifecycle transition validation for storage objects
US10642654B2 (en) Storage lifecycle pipeline architecture
US9971823B2 (en) Dynamic replica failure detection and healing
CA2978889C (en) Opportunistic resource migration to optimize resource placement
US9460185B2 (en) Storage device selection for database partition replicas
KR101925696B1 (ko) 대규모 데이터 스트림들의 획득, 저장, 및 소비를 위한 관리 서비스
AU2014346366B2 (en) Partition-based data stream processing framework
US9489443B1 (en) Scheduling of splits and moves of database partitions
US9355060B1 (en) Storage service lifecycle policy transition management
US8140791B1 (en) Techniques for backing up distributed data
AU2018202230A1 (en) Client-configurable security options for data streams
CN102981929B (zh) 磁盘镜像的管理方法和系统
US20120159102A1 (en) Distributed storage system, distributed storage method, and program and storage node for distributed storage
US10810054B1 (en) Capacity balancing for data storage system
JP6011786B2 (ja) 分散ストレージシステム、分散ストレージデータ配置制御方法及び分散ストレージデータ配置制御用プログラム
Sadooghi et al. Fabriq: Leveraging distributed hash tables towards distributed publish-subscribe message queues
US10019182B2 (en) Management system and management method of computer system
JP6020803B2 (ja) 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US10909094B1 (en) Migration scheduling for fast-mutating metadata records
JP2024514467A (ja) 地理的に分散されたハイブリッドクラウドクラスタ
Pippal et al. High availability of databases for cloud
Shen Distributed storage system model design in internet of things based on hash distribution
US11233738B1 (en) Dynamic performance configuration for data traffic workflows
US11586608B1 (en) Handling requests to access separately stored items in a non-relational database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150702

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160620

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160920

R150 Certificate of patent or registration of utility model

Ref document number: 6020803

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150