JP5890452B2 - クラスタシステムのサーバ装置およびそのプログラム - Google Patents

クラスタシステムのサーバ装置およびそのプログラム Download PDF

Info

Publication number
JP5890452B2
JP5890452B2 JP2014036941A JP2014036941A JP5890452B2 JP 5890452 B2 JP5890452 B2 JP 5890452B2 JP 2014036941 A JP2014036941 A JP 2014036941A JP 2014036941 A JP2014036941 A JP 2014036941A JP 5890452 B2 JP5890452 B2 JP 5890452B2
Authority
JP
Japan
Prior art keywords
data
memory
original
replicated
server
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
JP2014036941A
Other languages
English (en)
Other versions
JP2015162092A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014036941A priority Critical patent/JP5890452B2/ja
Publication of JP2015162092A publication Critical patent/JP2015162092A/ja
Application granted granted Critical
Publication of JP5890452B2 publication Critical patent/JP5890452B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、データの冗長度を管理するクラスタシステムを構成する各サーバ装置、および、そのプログラムに関する。
近年、複数のサーバを協調動作させて、全体で1台のコンピュータのように動作させるクラスタシステムが利用されている。クラスタシステムは、多量なデータの処理や再配置を効率的に実行するためにコンシステント・ハッシュ法などによってデータを管理することが多い。
非特許文献1には、コンシステント・ハッシュ法によるデータ管理方法が記載されている。非特許文献2には、コンシステント・ハッシュ法より実際に運用されている例が記載されている。
コンシステント・ハッシュ法では、各サーバが持つ複数の仮想的なID(メンバ)を、ID空間上に配置することで、各メンバが担当する領域を平均化し、各サーバの処理負荷を分散させている。また、コンシステント・ハッシュ法では、障害発生時に他のメンバでも処理を行えるように、冗長化した原本データと複製データとをクラスタシステム内に保持する。これにより、クラスタシステムは、サーバ故障などの障害発生時にもサービスを継続することが可能となる。
クラスタシステムは、複数のサーバ装置で構成される。各サーバ装置は、信号処理を行うメンバを1つ以上保持する。各メンバは、コンシステント・ハッシュ法などを用いたID空間上に配置される。
各メンバは、信号の受信/データの保持/データの操作/信号の送信の一連の処理を行い、ユーザへサービスを提供する。サービスで利用されるユーザデータは、実際のデータである「実データ」と、ユーザやデータの状態などを表す「メタデータ」とを含んでいる。各メンバは、ユーザ単位のユーザデータを保持する。
ユーザデータは、クラスタシステム上で原本データと、原本データのバックアップ用としての1以上の複製データが存在する。クラスタシステムは、同一のユーザデータを冗長度の数だけ保持することで、冗長性を担保する。冗長度の数とは、同一のクラスタシステム内に存在する原本データと複製データの総数である。
激甚災害などによるサーバの障害や故障により、メンバの一部が停止して冗長度が不足した場合、クラスタシステムは、残存するサーバ集合でクラスタを組み直し、自律的に冗長化構成などを回復する。クラスタシステムは、自律的にデータの探索およびデータの再配置(原本昇格・複製データの作成・削除)を行う。具体的にいうと、クラスタシステムは、故障してクラスタから離脱したサーバが保持しているデータを、残存している他のサーバへ自律的に引き継き、処理を行わせる。
これによりクラスタシステムは、激甚災害の発生時においても、サービスの継続が可能である。クラスタシステムは、故障したサーバが持つ冗長度が低下したデータについて、自動的に他のサーバがそのデータの複製を作成し、冗長度を回復する。
図17(a),(b)は、比較例のメモリ閾値超え時の複製データ保持動作を示す説明図である。
図17(a)は、障害や故障により冗長度が不足した場合のデータの再配置動作を示している。
コンシステント・ハッシュ法などを用いたID空間6には、メンバ61−1〜61−5が配置される。原本データを保持するメンバ61−2は、障害や故障により停止する。クラスタシステムは、メンバ61−3〜61−5上に、複製データを作成する。この状況は、冗長度が低下した過渡状態である。
このときメンバ61−5は、メモリ利用率が閾値を超えている。図17(a)では、メモリ利用率が閾値を超えたメンバ61−5を、ハッチングで示している。
図17(b)は、データの再配置後のID空間6を示している。
ID空間6には、メンバ61−1,61−3,61−4が配置される。障害や故障により停止したメンバ61−2は、消滅する。メンバ61−3は、原本データを保持する。メンバ61−4,61−5は、複製データを保持する。このとき、メンバ61−5は、サーバのメモリ量を超えたデータを保持したため、処理不可に陥り故障する。図17(b)では、故障したメンバ61−5を、「×」印で示している。
David Karger、他5名、"Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web"、[online]、[2014年2月19日検索]、インターネット<URL:http://www.akamai.com/dl/technical_publications/ConsistenHashingandRandomTreesDistributedCachingprotocolsforrelievingHotSpotsontheworldwideweb.pdf> Giuseppe DeCandia他8名、"Dynamo: Amazon’s Highly Available Key-value Store"、[online]、[2014年2月19日検索]、インターネット<URL:http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf>
データの冗長度を自律的に確保するクラスタシステムにおいて、激甚災害などにより第1のサーバの故障が発生すると、ユーザのデータは第2のサーバへ引き継がれる。第2のサーバは、自装置の利用可能なメモリの許容量を超えてデータを保持すると、処理不可に陥り故障となる。故障となった第2のサーバの持つデータは、第3サーバへ割り振られる。第3のサーバも、自装置の利用可能なメモリの許容量を超えてデータを保持すると、処理不可に陥り故障となる。
大規模な激甚災害や多数のサーバの故障により、メモリ不足のサーバが多数存在する場合には、このようにメモリ不足によるサーバの故障が連鎖的に発生する虞がある。このとき、クラスタシステム全体が解体して、サービスが継続不能となる。
本発明は、前記した問題を解決し、データの冗長度を自律的に確保しつつ、クラスタシステムの解体を抑制してサービスを継続するクラスタシステムのサーバ装置およびプログラムを提供することを課題とする。
前記課題を解決するため、請求項1に記載の発明では、クラスタシステムに含まれるサーバ装置とした。前記サーバ装置は、メタデータと実データとを含む、複製データまたは/および原本データを保持するメモリと、前記メモリの利用率を測定するメモリ利用率測定部と、前記メモリの利用率が第1の閾値を超え、かつ、前記複製データの実データが有るならば,前記複製データへのアクセスを契機に当該複製データの実データを前記メモリから削除し、前記メモリの利用率が前記第1の閾値よりも小さい第2の閾値以下ならば、前記複製データへのアクセスを契機に、アクセスされた当該複製データの実データの有無を判断し、当該複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得する実データ削除/取得部と、を備える。
このようにすることで、サーバ装置は、データの冗長度を自律的に確保しつつ、メモリの利用率が増えたときには、自律的にデータの冗長度を低下させる。よって、クラスタシステムの解体を抑制して、サービスを継続することができる。更にサーバ装置は、データの冗長度を自律的に低下させたのちにメモリの利用率が低下(回復)したときに、自律的にデータの冗長度を回復させることができる。
請求項に記載の発明では、前記原本データおよび前記複製データは、コンシステント・ハッシュ法によるID空間で管理される、ことを特徴とする請求項1または請求項2に記載のクラスタシステムのサーバ装置とした。
このようにすることで、サーバ装置は、コンシステント・ハッシュ法によるID空間でデータを管理すると共に、データの冗長度を自律的に確保しつつ、クラスタシステムの解体を抑制して、サービスを継続することができる。
請求項に記載の発明では、メタデータと実データとを含む原本データを複製した複製データへのアクセスを受け付けるステップ、前記原本データまたは/および前記複製データを保持するメモリの利用率を測定するステップ、前記メモリの利用率が第1の閾値を超えたならば、アクセスされた当該複製データの実データの有無を判断するステップ、および、当該複製データの実データが有るならば、前記メモリから当該複製データの実データを削除するステップ、または、前記メモリの利用率が前記第1の閾値よりも小さい第2の閾値以下ならば、前記複製データへのアクセスを契機に、アクセスされた当該複製データの実データの有無を判断するステップ、および、当該複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得するステップ、をクラスタシステムのサーバ装置に実行させるためのプログラムとした。
このようにすることで、プログラムは、サーバ装置に、データの冗長度を自律的に確保させつつ、メモリの利用率が増えたときには、自律的にデータの冗長度を低下させることができる。よって、クラスタシステムの解体を抑制して、サービスを継続することができる。更にプログラムは、サーバ装置に、データの冗長度を自律的に低下させたのちにメモリの利用率が低下(回復)したときに、自律的にデータの冗長度を回復させることができる。
本発明によれば、データの冗長度を自律的に確保しつつ、クラスタシステムの解体を抑制してサービスを継続するクラスタシステムのサーバ装置およびプログラムを提供することが可能となる。
第1の実施形態におけるクラスタシステムを示す概略の構成図である。 クラスタシステム内のユーザデータ例を示す図である。 第1の実施形態におけるクラスタシステムのID空間上のメンバ配置の説明図である。 第1の実施形態の変形例のクラスタシステムのID空間上のメンバ配置の説明図である。 第1の実施形態における各サーバ装置の信号処理を示すフローチャートである。 通常時のメンバとユーザデータの例を示す説明図である。 激甚災害発生によるメモリ不足時のメンバとユーザデータの例を示す説明図である。 複製データ削除時のメンバとユーザデータの例を示す説明図である。 冗長度回復時のメンバとユーザデータの例を示す説明図である。 複製データの取得ができないパターンを示す説明図である。 第2の実施形態における過渡状態のデータ探索範囲を示す説明図である。 データ探索範囲の根拠を示す説明図である。 複製データ保持メンバの隣接時における通常状態のID空間を示す説明図である。 複製データ保持メンバの隣接時におけるデータ探索処理を示す説明図である。 複製データ保持メンバの非隣接時における通常状態を示す説明図である。 複製データ保持メンバの隣接時におけるデータ探索処理を示す説明図である。 比較例のメモリ閾値超え時の複製データ保持動作を示す説明図である。
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照して詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態におけるクラスタシステム1を示す概略の構成図である。
クラスタシステム1は、複数のサーバ2−1〜2−n(サーバ装置)からなるクラスタ3と、振分装置4−1〜4−mと、ロードバランサ5とを含んで構成される。以下、サーバ2−1〜2−nを特に区別しない場合には、単にサーバ2と記載する。振分装置4−1〜4−mを特に区別しない場合には、単に振分装置4と記載する。
各サーバ2は、コンピュータなどの物理装置や仮想マシンなどの論理装置である。サーバ2は、信号処理部21と、メモリ利用率測定部22と、実データ削除/取得部23と、記憶部24と、メモリ25とを備えている。記憶部24は、例えばハードディスクやフラッシュメモリなどの二次記憶装置であり、信号処理プログラム241を格納する。メモリ25は、例えばDRAM(Dynamic Random Access Memory)などの一次記憶装置であり、各メンバ61を保持する。
信号処理部21は、他のサーバ2の信号のアクセスを受け付けて処理する。
メモリ利用率測定部22は、メモリ利用率を測定する。メモリ利用率測定部22は、メモリ測定命令によって、その都度測定を行うだけでなく、定期的に測定を行うことも可能である。ここでメモリ利用率とは、例えばメモリ25の実装量に対する使用量の割合である。
実データ削除/取得部23は、後記する図2に示すユーザデータの実データを削除/取得する。
信号処理プログラム241は、このサーバ2上の不図示のCPU(Central Processing Unit)によって実行されて、信号処理部21と、メモリ利用率測定部22と、実データ削除/取得部23と、各メンバ61とを具現化する。
振分装置4は、コンピュータなどの物理装置であり、受信したメッセージを振り分ける振分部41と、不図示の入出力部、制御部、記憶部などを備える。
クライアント端末9や、ロードバランサ5は、コンピュータなどの物理装置であり、それぞれ不図示の入出力部、制御部、記憶部などを備える。
クライアント端末9からのメッセージは、ロードバランサ5にて、単純なラウンドロビン法などにより、振分装置4に振り分けられる。振分装置4は、例えばコンシステント・ハッシュ法などに基づき、受信したメッセージが要求するデータの識別子を参照して、このデータを管理しているサーバ2を特定する。振分装置4は、特定したサーバ2に、受信したメッセージを振り分ける。
各サーバ2は、信号を処理する1つ以上の論理的な処理機能であるメンバ61を保持している。各サーバ2は、データの識別子により処理するメンバ61を特定してメッセージに記載された処理を行わせ、クライアント端末9にサービスを提供する。
なお、第1の実施形態では、振分装置4と各サーバ2とを別に記載したが、同一筐体上で別々の機能として動作させてもよい。また、振分装置4をクラスタ構成としてもよい。更に、ロードバランサ5が存在せず、クライアント端末9から任意の振分装置4にメッセージを送信するように構成してもよい。
図2は、クラスタシステム1内のユーザデータ例を示す図である。
メンバ61−1〜61−Mは、メモリ25(図1参照)にユーザデータを保持している。このユーザデータは、クライアント端末9などのユーザへサービスを提供するためのユーザ個別のデータである。ユーザデータは、データに係る情報を表す「メタデータ」と、実際のサービスで用いられる「実データ」とを含む。「メタデータ」は、例えば、原本として保持するメンバ61の識別子や、データへのアクセス時刻などの情報である。
メンバ61−1は、メモリ25(図1参照)にユーザデータの原本である原本データを格納している。メンバ61−2〜61−Mは、メモリ25(図1参照)に原本データの複製である複製データを格納している。これにより、クラスタシステム1(図1参照)は、ユーザデータの冗長性を確保することができる。冗長度Mは、原本データと複製データとを併せた数である。クラスタシステム1には、同一データが冗長度Mだけ存在する。
クラスタシステム1は、複製データが消失した場合には原本データより復元して冗長性を回復し、原本データが消失した場合には複製データより実データを取得してサービスを継続する。
図3は、第1の実施形態におけるクラスタシステム1のID空間6上のメンバ61の配置の説明図である。
クラスタシステム1は、複数のサーバ2を含む分散システムである。各サーバ2は、拠点7−1〜7−3のいずれかに相互に通信可能に配置されて分散システムを構成する。
第1の実施形態では、コンシステント・ハッシュ法のID空間6上に、メンバ61を配置している。各サーバ2は、1個以上のメンバ61を保持している。例えば拠点7−1のサーバ2−1は、2個のメンバ61−1,61−2を保持している。
各サーバ2は、メンバ61とデータの双方にIDを割り当て、データのIDから仮想ノードID空間であるID空間6を時計回りに辿り、最初に当たったメンバ61を担当とする。ノードに対するIDの与え方は、例えば、IPアドレスのハッシュ関数値などがある。
各サーバ2は、担当となったメンバ61が持つデータを原本データと判断し、データの更新・削除などは原本データのみに実施する。各サーバ2は、原本データが変更された場合、定期的もしくは逐次的に複製データへ変更差分を反映する。データの取得・更新・削除も、同様な方法により各データに対してメンバ61を特定する。
図4は、第1の実施形態の変形例のクラスタシステム1AのID空間6上のメンバ61の配置の説明図である。
クラスタシステム1Aは、複数のサーバ2を含み、複数の現用系が並列に動作するN−ACT構成のシステムである。各サーバ2は、相互に通信可能に配置される。
このように、信号処理を行う論理的なメンバ61は、分散システムの不特定のサーバ2上に限られず、N−ACT構成の特定のサーバ2上に配置されてもよい。
図5は、第1の実施形態における各サーバの信号処理を示すフローチャートである。
事前にサーバ2毎にメモリ25の利用率の閾値X,Yを設定する。閾値Xは、メモリ25の利用率がこの閾値Xを超過した場合に、複製データを削除するための第1の閾値である。閾値Yは、メモリ25の利用率がこの閾値Yを下回った場合に、削除した複製データを回復するための第2の閾値である。閾値Xと閾値Yとは、異なる値または同値となる。メモリ利用率の対象となるメモリ25とは、例えば、物理メモリ・仮想メモリ・永続メモリなどを含めた記憶リソースである。
サーバ2が、クライアント端末9のメッセージを受信すると、図5の信号処理が開始する。
ステップS10において、サーバ2は、メッセージによるデータへのアクセスを受け付ける。
ステップS11において、サーバ2は、複製データへのアクセスであったか否かを判断する。サーバ2は、複製データへのアクセスであったならば(Yes)、ステップS12の処理を行い、複製データへのアクセスではなかったならば(No)、図5の処理を終了する。
なお、複製データへのアクセスとは、原本データへの登録や変更、削除を契機に複製データへアクセスする処理と,整合処理や浮きチェックなどの定期的な複製データへのアクセスを含む処理とが含まれる。
ステップS12において、サーバ2は、メモリ利用率測定部22(図1参照)により、メモリ利用率を測定するか、または、メモリ利用率測定部22により定期的に読み込んだ値を取得する。
ステップS13において、サーバ2は、測定したメモリ利用率を閾値X,Yと比較して判定する。サーバ2は、メモリ利用率が閾値X(第1の閾値)を超えていたならば、ステップS14の処理を行い、メモリ利用率が閾値Y(第2の閾値)未満ならば、ステップS16の処理を行い、メモリ利用率が閾値Y以上かつ閾値X以下ならば、図5の処理を終了する。ここで閾値Yは、閾値Xよりも小さい値である。
ステップS14において、サーバ2は、アクセスされた複製データに実データが存在するか否かを判断する。サーバ2は、この複製データに実データが存在するならば(Yes)、ステップS15の処理を行い、この複製データに実データが存在しないならば(No)、図5の処理を終了する。
ステップS15において、サーバ2は、実データ削除/取得部23(図1参照)により、この複製データの実データを削除する。ステップS15の処理が終了すると、サーバ2は、図5の処理を終了する。
ステップS16において、サーバ2は、アクセスされた複製データに実データが存在するか否かを判断する。サーバ2は、この複製データに実データが存在するならば(Yes)、図5の処理を終了し、この複製データに実データが存在しないならば(No)、ステップS17の処理を行う。
ステップS17において、サーバ2は、実データ削除/取得部23により、この複製データのメタデータに基づき、原本データを有するサーバ2から実データを取得する。ステップS17の処理が終了すると、サーバ2は、図5の処理を終了する。
コンシステント・ハッシュ法を用いてメンバ61をID空間6上に配置した例を、以下の図6から図9に示す。ここでは、クラスタシステム1が保持するユーザデータの冗長度を3としている。
図6は、通常時のメンバ61とユーザデータの例を示す説明図である。
各メンバ61−1〜61−5は、同一のサーバ2または異なるサーバ2内に存在する。各メンバ61−1〜61−5は、ID空間6上に配置される。
メンバ61−1は、データAの原本と、データH,Gの複製とを保持する。メンバ61−2は、データBの原本と、データA,Hの複製とを保持する。メンバ61−3は、データCの原本と、データB,Aの複製とを保持する。メンバ61−4は、データDの原本と、データC,Bの複製とを保持する。メンバ61−5は、データEの原本と、データD,Cの複製とを保持する。各データは、メタデータと実データとを含む。
図7は、激甚災害発生によるメモリ不足時のメンバ61とユーザデータの例を示す説明図である。
激甚災害により、メンバ61−1,61−2が減設する。これにより、メンバ61−1,61−2が持つ下記のデータがメンバ61−3〜61−5へ引き継がれる。図7は、各データ引き継ぎの際の過渡状態を示している。データを新たに取得することにより、メンバ61−3〜61−5を保持するサーバ2は、メモリ不足に陥る。
メンバ61−1は、データAの原本と、データHの複製と、データGの複製とを保持していた。メンバ61−2は、データBの原本と、データAの複製と、データHの複製とを保持していた。
メンバ61−3は、データCの原本と、データB,Aの複製とに加えて、データH,Gの複製を新たに引き継ぐ。データH,Gの引き継ぎにより、メンバ61−3を保持するサーバ2のメモリ利用率は、閾値Xを超える。メンバ61−3は、データB,Aの複製を原本に昇格させる。
メンバ61−4は、データDの原本と、データC,Bの複製とに加えて、データA,Hの複製を新たに引き継ぐ。データA,Hの引き継ぎにより、メンバ61−4を保持するサーバ2のメモリ利用率は、閾値Xを超える。
メンバ61−5は、データEの原本と、データD,Cの複製とに加えて、データB,Aの複製を新たに引き継ぐ。データB,Aの引き継ぎにより、メンバ61−5を保持するサーバ2のメモリ利用率は、閾値Xを超える。
メンバ61−3,61−4,61−5は、複製データ削除フェーズへ移行する。
図7では、メンバ61−3,61−4,61−5を保持するサーバ2のメモリ利用率が、閾値Xを超えたことを示すため、ハッチングで示している。
図8は、複製データ削除時のメンバ61とユーザデータの例を示す説明図である。
複製データ削除フェーズにおいて、複製データへのアクセスがあった場合、アクセスされたメンバ61は、アクセスされた複製データに対して実データを保持せず、メタデータのみを保持する。既に実データを保持している場合は実データを削除し、システムにおけるデータの冗長度を一時的に低下させる。
メンバ61−3は、データA,Bへアクセスがあった場合、これらデータA,Bが原本であるため実データを削除しない。メンバ61−3は、データG,Hへアクセスがあった場合、これらデータG,Hが複製であるためメタデータのみを保持し、実データを削除する。図8では、メンバ61−3が保持するデータG,Hは、実データが削除されている。
メンバ61−4は、データDへアクセスがあった場合、このデータDが原本であるため実データを削除しない。メンバ61−4は、データC,B,A,Hへアクセスがあった場合、これらデータC,B,A,Hが複製であるためメタデータのみを保持し、実データを削除する。図8では、メンバ61−4が保持するデータB,A,Hは、これらに対するアクセスがあったので、実データが削除されている。
メンバ61−5は、データEへアクセスがあった場合、このデータEが原本であるため実データを削除しない。メンバ61−4は、データD,C,B,Aへアクセスがあった場合、これらデータD,C,B,Aが複製であるためメタデータのみを保持し、実データを削除する。図8では、メンバ61−5が保持するデータD,B,Aは、これらに対するアクセスがあったので、実データが削除されている。メンバ61−5が保持するデータCは、これに対するアクセスが無かったので、実データが削除されていない。
各サーバ2のメモリ利用率が閾値Yを下回るまで、各メンバ61は、この複製データ削除フェーズを継続し、上記の動作を行う。
図9は、冗長度回復時のメンバ61とユーザデータの例を示す説明図である。
冗長度回復とは、サーバ2のメモリ・リソースが十分に回復し、複数のサーバ2にてメモリ25の利用率が閾値Yを下回った場合のことをいう。
保守者やシステムにより充分なメモリ・リソースが確保されると、メンバ61−3,61−4を保持するサーバ2は、メモリ利用率が閾値Yを下回る。
閾値Yを下回ることで、各メンバ61−3,61−4は、通常状態へ遷移する。通常状態で複製データにアクセスされたとき、各メンバ61は、この複製データの実データがないことを判断し、原本データを保持する他のメンバ61から実データを取得する。クラスタシステム1は、このようにしてデータの冗長度を自律的に回復する。
ここでは、データG,H,A,Dに対してデータのアクセスがあった場合を示している。
メンバ61−3は、データG,Hへのアクセスにより、原本データを保持する他のメンバ61からデータG,Hの実データを取得する。メンバ61−4は、データA,Hへのアクセスにより、原本データを保持する他のメンバ61からデータA,Hの実データを取得する。
なお、メンバ61−5を保持するサーバ2は、メモリ25の利用率が閾値Yを下回っていないため、メンバ61−5は、通常状態には遷移しない。この後、メンバ61−5を保持するサーバ2のメモリ利用率が閾値Yを下回ると、メンバ61−5も通常状態に遷移し、データの冗長度を回復する。このようにクラスタシステム1は、自律的にデータの冗長度を回復する。
比較例のクラスタシステム(図17参照)は、自律的な機能によりシステムの解体へ発展してしまう機能を持っている。大規模な激甚災害や複数のサーバ2が故障しメモリ25が不足している状況でデータの複製を作成することで、メモリ25の枯渇による故障が発生する。このデータの引き継ぎ先の他サーバ2においても、メモリ25の枯渇による故障が連鎖して発生することで、クラスタシステム1の全体が解体し、サービスが停止してしまう。
第1の実施形態のクラスタシステム1(図1参照)は、一時的に冗長度を低下させることによりメモリ25を確保しつつ、データの探索・取得を行う。これにより、クラスタシステム1は、原本のデータは救済かつ確保しつつ、自身の解体を抑制してサービスの継続を可能とする。
第1の実施形態のクラスタシステム1によれば、メモリ25が不足している状況においては、メタデータのみを保持しつつメモリ25の利用を抑制することで、クラスタシステム1の解体を回避でき、激甚災害時においてもサービスの継続を可能とする。また、第1の実施形態のクラスタシステム1によれば、激甚災害時などの一時的にメモリ25が必要になる場合に備えて多量のメモリ・リソースを用意せずともよく、効率的にメモリ25を利用することが可能となる。
第1の実施形態により、多数のサーバ2が故障した場合であっても、クラスタシステム1は、サービスの継続が可能である。
更に各サーバ2が故障から回復し、またはサーバ2が増設されて利用可能なメモリ25が増えた場合に、クラスタシステム1は、データの冗長度を自律的に回復する。この冗長度の低下と回復とは、各データへのアクセスが契機である。これにより、アクセスされたデータのみに処理を限定して、処理負荷を低減することができる。
なお、メモリの利用率が閾値を超えたことを契機に、複製データの実データを削除してもよい。メモリの利用率が閾値を下回ったことを契機に、複製データの実データを回復してもよい。
(第2の実施形態)
サーバ2の増減設などでメンバ61の追加/削除が発生することにより原本データが消失した場合、新たなメンバ61は、複製データを保持する他のメンバ61から実データを取得して原本データとして復旧させる。
このような過渡状態において、新たなメンバ61は、適切な範囲だけ他のメンバ61を探索しなければならない。探索範囲が適切でないならば、複製データを保持しているメンバ61のいずれかが探索範囲外になる。ここで、探索範囲内のメンバ61がメモリ不足により複製データの実データを削除していた場合を考える。この場合、新たなメンバ61は、クラスタシステム1内に複製データを保持しているメンバ61が存在するにも関わらず、その複製データを取得できず、そのデータが消失する。
第2の実施形態では、このような追加課題を解決するため、過渡状態時のデータの探索範囲を適切に設定している。これにより、原本データが消失した際に、新たなメンバ61は、複製データを保持するメンバ61全てを探索することが可能となる。
図10(a),(b)は、複製データの取得ができない事例を示す説明図である。
図10(a)は、原本データを持つメンバ61−1の減設と新たなメンバ61−9の増設とが行われた場合を示している。図10(a)の事例において、冗長度M=4である。
増設されたメンバ61−9は、データの探索範囲H0を、増設されたメンバ61の数と減設されたメンバ61の数との和である増減設数ΔNとしている。この場合、増設されたメンバ61−9は、複製データを保持するメンバ61−2〜61−4のうちいずれかから複製データの実データを取得する必要がある。しかし、本事例では、メンバ61−2,61−3は、メモリ25の不足が発生している。よって、メンバ61−2,61−3は、複製データの実データを削除する。増設されたメンバ61−9は、メンバ61−2,61−3を探索しても、実データを取得できない。
図10(b)は、データの探索後のID空間6を示している。
メンバ61−9は、複製データを取得できない。メンバ61−2,61−3は、メモリ25の不足などにより実データを保持していない。この状態およびこの状態後において、メンバ61−4がメモリ25の不足などにより複製データの実データを削除すると、このユーザデータの実データは、クラスタシステム1から消失してしまう。
この課題を解決するため、原本データが消失した際に、新たに原本データを保持するメンバ61は、複製データを保持するメンバ61の全てを探索範囲に含めるように、過渡状態時のデータの探索範囲を設定しなければならない。
図11(a),(b)は、第2の実施形態における過渡状態のデータ探索範囲を示す説明図である。
図11(a)は、原本データを持つメンバ61−1の減設と新たなメンバ61−9の増設とが行われた場合を示している。
データ探索を行う際の増減設数をΔN、冗長度をMとする。冗長度Mとは、あるユーザデータに対する原本データと複製データの総数である。図11(a)において、冗長度M=4であり、増減設数ΔN=2である。
データが再配置中である過渡状態において、新たに原本データを保持するメンバ61−9は、(ΔN+M−3)=3の探索範囲に対して、ユーザデータを探索する。メンバ61−9は、ホップ数3の範囲を探索することで、複製データを保持するメンバ61−2〜61−4全てを探索対象とすることができる。
データ探索範囲H0は、新たに原本を保持するメンバ61−9から旧複製データを保持する左端のメンバ61−2への最大ホップ数H1と、旧複製データを保持する左端のメンバ61−2から右端のメンバ61−4への最大ホップ数H2との和である。
最大ホップ数H1は、増減設数ΔNから1を減ずることで求める。ここでは、最大ホップ数H1=1である。
最大ホップ数H2は、旧複製データを保持するメンバ61の数であり、冗長度Mから2を減ずることで求める。ここでは、最大ホップ数H2=2である。
よって、データ探索範囲H0=(ΔN+M−3)=3となる。
新たなメンバ61−9は、ID空間6をホップ数3だけ探索することで、複製データを持つ全てのメンバ61−2〜61−4を探索できる。
図11(b)は、データの探索後のID空間6を示している。
新たなメンバ61−9は、メンバ61−4が保持するデータを取得して、新たな原本データとして、これを保持する。これにより、クラスタシステム1からのユーザデータの消失を防止することができる。
以下、データ探索範囲H0=(ΔN+M−3)とすることで、複製データを保持するメンバ61全てを探索することができることを別事例で説明する。
図12(a),(b)は、データ探索範囲の根拠を示す説明図である。
図12(a)は、データ探索時を示している。
本事例では、冗長度M=5とする。各メンバ61が保持するデータは、図12(b)に示すデータαの保持メンバリストに従う。
この状態において、原本データを保持するメンバ61−1が減設し、原本データは一時的に消失する。更にメンバ61−2,61−3が増設され、増減設数ΔN=3となる。このとき、メンバ61−2は、新たに原本データを探索する。
図12(b)は、メンバ61−1の減設前におけるデータαの保持メンバリストを示している。
保持メンバリストには、原本データを保持するメンバ61−1が第1行に記載される。以降、複製データを保持するメンバ61−4〜61−7が、第2行〜第5行に記載される。
最初に、新たに原本を保持するメンバ61−2から、旧複製データを保持する最も近いメンバ61−4までの最大ホップ数H1を計算する。
最大ホップ数H1は、旧原本を保持していたメンバ61−1から旧複製データを保持する最も近いメンバ61−4までの区間に、メンバ61が増設された場合に最大となる。本事例では、メンバ61−2,61−3の2台が増設されている。この場合、増減設数ΔN=3である。つまり、増減設数ΔNから旧原本を保持していたメンバ61−1を引いた(ΔN−1)だけホップすることで、最も近い旧複製データ保持メンバ61−4へ辿り着くことができる。最大ホップ数H1は、以下の式(1)となる。
Figure 0005890452
次に旧複製データを保持する最も近いメンバ61−4から、旧複製データを保持する最も遠いメンバ61−7への最大ホップ数H2を計算する。複製データ保持メンバ数は、(M−1)である。複製データ保持メンバ数(M−1)から、旧複製データを保持する左端のメンバ61−4の1台を引いた(M−2)だけホップすることで、旧複製データを保持する左端のメンバ61−4から旧複製データを保持する右端のメンバ61−7へ辿り着くことができる。最大ホップ数H2は、以下の式(2)となる。
Figure 0005890452

新たに原本データを保持するメンバ61−2から、旧複製データを保持する右端のメンバ61−7へ探索を行うためのデータ探索範囲H0は、最大ホップ数H1,H2の和であり、以下の式(3)となる。
Figure 0005890452
本事例においても、メンバ61−2は、データ探索範囲H0=(ΔN+M−3)=5により、新たに原本データを保持するメンバ61−2から旧複製データを保持する右端のメンバ61−7まで探索することができる。
図13(a),(b)は、複製データ保持メンバの隣接時における通常状態のID空間を示す説明図である。ここでは、ID空間6上で連続したメンバ61の群が原本データおよび複製データを保持する例を示している。
図13(a)は、メンバ61−1の減設時のID空間6を示している。
当初、メンバ61−1は、データαの原本データを保持する。メンバ61−2,61−3,61−4が複製データを保持する。図13(b)に示す保持メンバリストにより、このデータαを保持する各メンバ61と冗長度M=4とを把握できる。この状態において、データαの原本データを保持するメンバ61−1が減設し、新たにメンバ61−9が増設された場合を想定する。
メンバ61−1の減設に伴い、原本データが消失する。クラスタシステム1は、他のメンバ(新原本保持メンバ)が原本データを保持するように、データを自律的に再配置する。本事例において、データαの新原本保持メンバは、メンバ61−9と決定される。増設されたメンバ61−9は、原本データを保持していないため複製データを探索する。この探索処理の詳細は、後記する図14(a),(b)で説明する。
図13(b)は、ID空間6上でIDが連続したメンバ61がデータを保持する場合の保持メンバリストの例である。
保持メンバリストには、原本データを保持するメンバ61−1が第1行に記載される。以降、複製データを保持するメンバ61−2〜61−4が、第2行〜第4行に記載される。
図14(a),(b)は、複製データ保持メンバの隣接時におけるデータ探索処理を示す説明図である。
図14(a)は、データ探索時のID空間6を示している。図14(a)に示すID空間6は、図13(a)に示したID空間6の後の状態を示している。
新原本保持メンバであるメンバ61−9は、ホップ数3の範囲のメンバ61−2〜61−4に対して複製データの探索を行い、これらのうちいずれかからデータを取得する。
メンバ61−9は、取得したデータを原本データとして保持する。以降のデータαの信号処理は、メンバ61−9が実行する。これによりクラスタシステム1は、サービスを継続して提供することができる。
図14(b)は、データ探索後の保持メンバリストの例である。
保持メンバリストには、原本データを保持するメンバ61−9が第1行に記載される。以降、複製データを保持するメンバ61−2〜61−4が、第2行〜第4行に記載される。
ID空間6上で連続しないメンバ61が原本データおよび複製データを保持するには、IDの値の剰余によりメンバ61を規定する方法や、ランダムなID値によりメンバ61を規定する方法がある。この状態において、データαの原本データを保持するメンバ61−1が減設し、新たにメンバ61−9が増設された場合を、図15・図16に基づき説明する。
図15(a),(b)は、複製データ保持メンバの非隣接時における通常状態を示す説明図である。
図15(a)は、メンバ61−1の減設時のID空間6を示している。
当初、メンバ61−1は、データαの原本データを保持する。メンバ61−4,61−6,61−8は、複製データを保持する。図15(b)に示す保持メンバリストにより、このデータαを保持する各メンバ61と冗長度M=4とを把握できる。この状態において、データαの原本データを保持するメンバ61−1が減設し、新たにメンバ61−9が増設された場合を想定する。
メンバ61−1の減設に伴い、原本データが消失する。クラスタシステム1は、他のメンバ(新原本保持メンバ)が原本データを保持するように、データを自律的に再配置する。本事例においても、データαの新原本保持メンバは、メンバ61−9と決定される。増設されたメンバ61−9は、原本データを保持していないため複製データを探索する。この探索処理の詳細は、後記する図16(a),(b)で説明する。
図15(b)は、ID空間6上でIDが連続しないメンバ61がデータを保持する場合の保持メンバリストの例である。
保持メンバリストには、原本データを保持するメンバ61−1が第1行に記載される。以降、複製データを保持するメンバ61−4,61−6,61−8が、第2行〜第4行に記載される。
図16(a),(b)は、複製データ保持メンバの隣接時におけるデータ探索処理を示す説明図である。
図16(a)は、データ探索時のID空間6を示している。図16(a)に示すID空間6は、図15(a)に示したID空間6の後の状態を示している。
新原本保持メンバであるメンバ61−9は、保持メンバリストの1行目に自装置を追加し、この保持メンバリスト上のホップ数3の範囲のメンバ61−4,61−6,61−8に対して複製データの探索を行い、これらのうちいずれかからデータを取得する。
メンバ61−9は、取得したデータを原本データとして保持する。以降のデータαの信号処理は、メンバ61−9が実行する。これによりクラスタシステム1は、サービスを継続して提供することができる。
図16(b)は、データ探索後の保持メンバリストの例である。
保持メンバリストには、原本データを保持するメンバ61−9が第1行に記載される。以降、複製データを保持するメンバ61−4,61−6,61−8が、第2行〜第4行に記載される。
クラスタシステム1上にて、サーバ2の増減設などでメンバ61の追加/削除が発生し、原本データが消失した場合、新原本保持メンバを選定して、複製データを保持するメンバ61のいずれかからデータを取得して原本データとする。この複製データを保持するメンバ61は、メモリ25の不足などにより一時的にデータを削除している場合がある。このような場合に、新原本保持メンバは実データを取得できず、救済するべきデータが消失してしまう虞がある。新原本保持メンバは、複製データを保持している全てのメンバ61に対してデータの探索を行うことが望ましい。
第2の実施形態では、複製データを保持している全てのメンバ61に対してデータの探索を行う。これにより、過渡状態においても冗長度によらず複製データを持つ全てのメンバ61に対してデータの探索を行うことができ、データの取得および救済を可能とする。
上記実施形態は、前記したような処理を実行させる装置またはプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体(CD−ROMなど)に記憶して提供することが可能である。また、そのプログラムを、インターネットなどのネットワークを通して提供することも可能である。
上記実施形態は、コンシステント・ハッシュ法でデータ管理するクラスタシステムに限定されず、データを冗長化して管理するクラスタシステムであればよい。
1 クラスタシステム
1A N−ACTシステム (クラスタシステムの一例)
2,2−1〜2−n サーバ (サーバ装置)
21 信号処理部
22 メモリ利用率測定部
23 実データ削除/取得部
24 記憶部
241 信号処理プログラム
25 メモリ
4,4−1〜4−m 振分装置
41 振分部
5 ロードバランサ
6 ID空間
61,61−0〜61−9 メンバ
7,7−1〜7−3 拠点
9 クライアント端末
X 閾値 (第1の閾値)
Y 閾値 (第2の閾値)

Claims (3)

  1. クラスタシステムに含まれるサーバ装置であって、
    前記サーバ装置は、
    メタデータと実データとを含む、複製データまたは/および原本データを保持するメモリと、
    前記メモリの利用率を測定するメモリ利用率測定部と、
    前記メモリの利用率が第1の閾値を超え、かつ、前記複製データの実データが有るならば,前記複製データへのアクセスを契機に当該複製データの実データを前記メモリから削除し、前記メモリの利用率が前記第1の閾値よりも小さい第2の閾値以下ならば、前記複製データへのアクセスを契機に、アクセスされた当該複製データの実データの有無を判断し、当該複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得する実データ削除/取得部と、
    を備えることを特徴とするクラスタシステムのサーバ装置。
  2. 前記原本データおよび前記複製データは、コンシステント・ハッシュ法によるID空間によって管理される、
    ことを特徴とする請求項1に記載のクラスタシステムのサーバ装置。
  3. メタデータと実データとを含む原本データを複製した複製データへのアクセスを受け付けるステップ、
    前記原本データまたは/および前記複製データを保持するメモリの利用率を測定するステップ、
    前記メモリの利用率が第1の閾値を超えたならば、アクセスされた当該複製データの実データの有無を判断するステップ、および、当該複製データの実データが有るならば、前記メモリから当該複製データの実データを削除するステップ、
    または、前記メモリの利用率が前記第1の閾値よりも小さい第2の閾値以下ならば、前記複製データへのアクセスを契機に、アクセスされた当該複製データの実データの有無を判断するステップ、および、当該複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得するステップ、
    をクラスタシステムのサーバ装置に実行させるためのプログラム。
JP2014036941A 2014-02-27 2014-02-27 クラスタシステムのサーバ装置およびそのプログラム Active JP5890452B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014036941A JP5890452B2 (ja) 2014-02-27 2014-02-27 クラスタシステムのサーバ装置およびそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014036941A JP5890452B2 (ja) 2014-02-27 2014-02-27 クラスタシステムのサーバ装置およびそのプログラム

Publications (2)

Publication Number Publication Date
JP2015162092A JP2015162092A (ja) 2015-09-07
JP5890452B2 true JP5890452B2 (ja) 2016-03-22

Family

ID=54185144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014036941A Active JP5890452B2 (ja) 2014-02-27 2014-02-27 クラスタシステムのサーバ装置およびそのプログラム

Country Status (1)

Country Link
JP (1) JP5890452B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003308238A (ja) * 2002-04-17 2003-10-31 Digion Inc ストレージネットワークシステム
JP5760350B2 (ja) * 2010-09-03 2015-08-12 日本電気株式会社 情報処理システム
JP5684671B2 (ja) * 2011-08-05 2015-03-18 日本電信電話株式会社 条件検索データ保存方法、条件検索データベースクラスタシステム、ディスパッチャ、およびプログラム

Also Published As

Publication number Publication date
JP2015162092A (ja) 2015-09-07

Similar Documents

Publication Publication Date Title
JP6491210B2 (ja) 分散データグリッドにおいて永続性パーティションリカバリをサポートするためのシステムおよび方法
WO2018059032A1 (zh) 一种虚拟节点的数据迁移方法和虚拟节点
JP6434131B2 (ja) 分散処理システム、タスク処理方法、記憶媒体
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
US20140351636A1 (en) Method, device, and system for data reconstruction
CN113010496B (zh) 一种数据迁移方法、装置、设备和存储介质
US9031906B2 (en) Method of managing data in asymmetric cluster file system
JP2007279890A (ja) バックアップシステム及びバックアップ方法
US20200409584A1 (en) Load balancing for scalable storage system
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
US11188258B2 (en) Distributed storage system
JP5969315B2 (ja) データ移行処理システムおよびデータ移行処理方法
JP5723309B2 (ja) サーバおよびプログラム
CN107943615B (zh) 基于分布式集群的数据处理方法与系统
JP5890452B2 (ja) クラスタシステムのサーバ装置およびそのプログラム
WO2014054173A1 (ja) 分散データ管理システム及びプログラム
US20240176762A1 (en) Geographically dispersed hybrid cloud cluster
JP6127005B2 (ja) クラスタシステムのサーバ装置およびプログラム
JP5745445B2 (ja) 管理装置およびプログラム
JP5815000B2 (ja) ノードおよびプログラム
Segura et al. Scality's experience with a geo-distributed file system
JP6506156B2 (ja) ノードおよびグラビテーション抑止方法
JP6473425B2 (ja) ノードおよびデータ配置方法
JP5845298B2 (ja) ノードおよびプログラム
JP2015194973A (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160218

R150 Certificate of patent or registration of utility model

Ref document number: 5890452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150