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

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

Info

Publication number
JP6127005B2
JP6127005B2 JP2014036481A JP2014036481A JP6127005B2 JP 6127005 B2 JP6127005 B2 JP 6127005B2 JP 2014036481 A JP2014036481 A JP 2014036481A JP 2014036481 A JP2014036481 A JP 2014036481A JP 6127005 B2 JP6127005 B2 JP 6127005B2
Authority
JP
Japan
Prior art keywords
data
memory
threshold
server device
cluster system
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
JP2014036481A
Other languages
English (en)
Other versions
JP2015162053A (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 JP2014036481A priority Critical patent/JP6127005B2/ja
Publication of JP2015162053A publication Critical patent/JP2015162053A/ja
Application granted granted Critical
Publication of JP6127005B2 publication Critical patent/JP6127005B2/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には、コンシステント・ハッシュ法によるデータ管理方法が記載されている。非特許文献2には、コンシステント・ハッシュ法より実際に運用されている例が記載されている。
コンシステント・ハッシュ法では、各サーバが持つ複数の仮想的なID(メンバ)を、ID空間上に配置することで、各メンバが担当する領域を平均化し、各サーバの処理負荷を分散させている。また、コンシステント・ハッシュ法では、障害発生時に他のメンバでも処理を行えるように、冗長化した原本データと複製データとをクラスタシステム内に保持する。これにより、クラスタシステムは、サーバ故障などの障害発生時にもサービスを継続することが可能となる。
クラスタシステムは、複数のサーバ装置で構成される。各サーバ装置は、信号処理を行うメンバを1つ以上保持する。各メンバは、コンシステント・ハッシュ法などを用いたID空間上に配置される。
各メンバは、信号の受信/データの保持/データの操作/信号の送信の一連の処理を行い、ユーザへサービスを提供する。サービスで利用されるユーザデータは、実際のデータである「実データ」と、ユーザやデータの状態などを表す「メタデータ」とを含んでいる。各メンバは、ユーザ単位のユーザデータを保持する。
ユーザデータは、クラスタシステム上で原本データと、原本データのバックアップ用としての1以上の複製データが存在する。クラスタシステムは、同一のユーザデータを冗長度の数だけ保持することで、冗長性を担保する。冗長度の数とは、同一のクラスタシステム内に存在する原本データと複製データの総数である。
激甚災害などによるサーバの障害や故障により、メンバの一部が停止して冗長度が不足した場合、クラスタシステムは、残存するサーバ集合でクラスタを組み直し、自律的に冗長化構成などを回復する。クラスタシステムは、自律的にデータの探索およびデータの再配置(原本昇格・複製データの作成・削除)を行う。具体的にいうと、クラスタシステムは、故障してクラスタから離脱したサーバが保持しているデータを、残存している他のサーバへ自律的に引き継き、処理を行わせる。
これによりクラスタシステムは、激甚災害の発生時においても、サービスの継続が可能である。クラスタシステムは、故障したサーバが持つ冗長度が低下したデータについて、自動的に他のサーバがそのデータの複製を作成し、冗長度を回復する。
図14(a),(b)は、比較例のメモリ閾値超え時の複製データ保持動作を示す説明図である。
図14(a)は、障害や故障により冗長度が不足した場合のデータの再配置動作を示している。
コンシステント・ハッシュ法などを用いたID空間6には、メンバ61−1〜61−5が配置される。原本データを保持するメンバ61−2は、障害や故障により停止する。クラスタシステムは、メンバ61−3〜61−5上に、複製データを作成する。この状況は、冗長度が低下した過渡状態である。
このときメンバ61−5は、メモリ利用量が閾値を超えている。図14(a)では、メモリ利用量が閾値を超えたメンバ61−5を、ハッチングで示している。
図14(b)は、データの再配置後のID空間6を示している。
ID空間6には、結果的にメンバ61−1,61−3,61−4が配置される。障害や故障により停止したメンバ61−2は、消滅する。メンバ61−3は、原本データを保持する。メンバ61−4,61−5は、複製データを保持する。このとき、メンバ61−5は、サーバのメモリ量を超えたデータを保持したため、処理不可に陥り故障する。図14(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に記載の発明では、クラスタシステムに含まれるサーバ装置であって、前記サーバ装置は、メタデータと実データとを含み複製番号が付与された複製データまたは/および原本データを保持するメモリと、前記メモリの利用量を測定するメモリ利用量測定部と、前記メモリの利用量がメモリ不足閾値以上ならば、所定の複製番号の順に、前記複製データの実データの有無を判断し、前記所定の複製番号の順に当該複製データの実データを前記メモリから削除し、前記メモリの利用量が前記メモリ不足閾値よりも小さいメモリ不足解消閾値以下ならば、前記所定の複製番号の逆順に各前記複製データの実データの有無を判断し、当該複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得する複製データ削除/回復処理部と、を備える。
このようにすることで、サーバ装置は、データ間の冗長度を、バランスをとりつつ減少させ、かつクラスタ解体を抑制することができる。更にサーバ装置は、メモリ不足が解消したときに、データ間の冗長度のバランスをとりつつデータを回復できる。
請求項2に記載の発明では、前記所定の複製番号の順とは、前記複製データに付与された複製番号の範囲の降順、前記複製データに付与された複製番号の範囲の昇順、前記複製データに付与された複製番号の範囲の任意の指定順のうちいずれかである、ことを特徴とする請求項1に記載のクラスタシステムのサーバ装置とした。
このようにすることで、サーバ装置は、データ間の冗長度増減のバランスを容易にとることができる。
請求項3に記載の発明では、前記複製データ削除/回復処理部は、前記メモリの利用量が前記メモリ不足閾値以上ならば、前記メモリの利用量が前記メモリ不足閾値と前記メモリ不足解消閾値との間のいずれかである所定の閾値未満になるまで、前記所定の複製番号の順に前記複製データの実データを前記メモリから削除する、ことを特徴とする請求項1に記載のクラスタシステムのサーバ装置とした。
このようにすることで、サーバ装置は、複製データ削除処理の動作回数を減らすことができる。
請求項に記載の発明では、前記複製データ削除/回復処理部は、前記メモリの利用量がメモリ不足解消閾値以下ならば、前記メモリの利用量がメモリ不足解消閾値と前記メモリ不足閾値との間のいずれかである所定の閾値を超過するまで、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得する、ことを特徴とする請求項に記載のクラスタシステムのサーバ装置とした。
このようにすることで、サーバ装置は、複製データ回復処理の動作回数を減らすことができる。
請求項5に記載の発明では、前記メモリに保持されるメタデータは、実データのサイズ情報を含む、ことを特徴とする請求項3または4に記載のクラスタシステムのサーバ装置とした。
このようにすることで、サーバ装置は、削除/回復するデータ量を容易に算出可能となる。
請求項に記載の発明では、前記原本データおよび前記複製データは、コンシステント・ハッシュ法によるID空間で管理される、ことを特徴とする請求項1ないしのいずれか1項に記載のクラスタシステムのサーバ装置とした。
このようにすることで、サーバ装置は、コンシステント・ハッシュ法によるID空間でデータを管理すると共に、データの冗長度を自律的に確保しつつ、クラスタシステムの解体を抑制して、サービスを継続することができる。
請求項に記載の発明では、メタデータと実データとを含む原本データまたは/および複製データを保持するメモリの利用量を測定するステップ、前記メモリの利用量がメモリ不足閾値以上ならば、所定の複製番号の順に、前記複製データの実データの有無を判断するステップ、前記所定の複製番号の順に前記複製データの実データを前記メモリから削除するステップ、前記メモリの利用量が前記メモリ不足閾値よりも小さいメモリ不足解消閾値以下ならば、前記所定の複製番号の逆順に各前記複製データの実データの有無を判断するステップ、前記複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得するステップ、をクラスタシステムのサーバ装置に実行させるためのプログラムとした。
このようにすることで、プログラムは、サーバ装置にデータ間の冗長度をバランスをとりつつ減少させ、クラスタ解体を抑制することができる。更にサーバ装置は、メモリ不足が解消したときに、データ間の冗長度のバランスをとりつつデータを回復できる。
本発明によれば、データ間の冗長度のバランスをとり、かつクラスタシステムの解体を抑制してサービスを継続するクラスタシステムのサーバ装置およびプログラムを提供することが可能となる。
本実施形態におけるクラスタシステムを示す概略の構成図である。 クラスタシステム内のユーザデータ例を示す図である。 本実施形態におけるクラスタシステムのID空間上のメンバ配置の説明図である。 本実施形態の変形例のクラスタシステムのID空間上のメンバ配置の説明図である。 通常時のメンバとユーザデータの例を示す説明図である。 激甚災害発生によるメモリ不足時のメンバとユーザデータの例を示す説明図である。 激甚災害発生による複製データ削除の例を示す説明図である。 災害回復時の複製データ回復の例を示す説明図である。 メモリ使用量と各種閾値におけるアクションを示す説明図である。 複製データ削除リスト例と複製データ回復リスト例を示す図である。 複製データ削除/回復処理を示すフローチャートである。 複製データ削除処理を示すフローチャートである。 複製データ回復処理を示すフローチャートである。 比較例のメモリ閾値超え時の複製データ保持動作を示す説明図である。
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照して詳細に説明する。
(第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は、メモリ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は、クラスタシステム内のユーザデータ例を示す図である。
メンバ61−1〜61−Mは、ユーザデータを保持している。このユーザデータは、クライアント端末9などのユーザへ、サービスを提供するためのユーザ個別のデータである。ユーザデータは、データに係る情報を表す「メタデータ」と、実際のサービスで用いられる「実データ」とを含む。
「メタデータ」は、データIDと、所有者・バディ情報と、データサイズと、実データ有無フラグとを有している。
データIDは、このユーザデータをユニークに識別する値である。
所有者・バディ情報は、このデータの所有者情報とバディ情報である。バディ情報は、複製データ番号を示すバディ番号と、この複製データの保持先情報との組合せである。
データサイズは、実データのサイズ情報である。
実データ有無フラグは、このユーザデータが、実データを含んでいるか否かの情報である。実データ有無フラグは、例えば0のときには実データが無いことを示し、1のときには実データが有ることを示す。
なお、「メタデータ」は、上記以外にも、原本として保持するメンバ61の識別子や、データへのアクセス時刻などの情報を含んでいてもよい。
メンバ61−1は、ユーザデータの原本である原本データを格納している。メンバ61−2〜61−Mは、原本データの複製である複製データを格納している。これにより、クラスタシステム1(図1参照)は、ユーザデータの冗長性を確保することができる。冗長度Mは、原本データと複製データとを併せた数である。クラスタシステム1には、同一データが冗長度Mだけ存在する。
クラスタシステム1は、複製データが消失した場合には原本データより復元して冗長性を回復し、原本データが消失した場合には複製データより実データを取得してサービスを継続する。
クラスタシステム1は、複数のサーバ2を含む分散システムである。図3に示すように、各サーバ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上に配置されてもよい。
コンシステント・ハッシュ法を用いてメンバ61をID空間6上に配置した例を、以下の図5から図8に示す。ここでは、クラスタシステム1が保持するユーザデータの冗長度を3としている。
図5は、通常時のメンバとユーザデータの例を示す説明図である。
各メンバ61−1〜61−5は、同一のサーバ2または異なるサーバ2内に存在する。各メンバ61−1〜61−5は、ID空間6上の一部に配置される。
メンバ61−1は、データGの第2複製と、データFの第1複製と、データAの原本とを保持する。データG,F,Aは、いずれもメタデータと実データとを含んでいる。
メンバ61−2は、データBの原本と、データFの第2複製と、データAの第1複製とを保持する。データB,F,Aは、いずれもメタデータと実データとを含んでいる。
メンバ61−3は、データBの第1複製と、データCの原本と、データAの第2複製とを保持する。データB,C,Aは、いずれもメタデータと実データとを含んでいる。
メンバ61−4は、データBの第2複製と、データCの第1複製と、データDの原本とを保持する。データB,C,Dは、いずれもメタデータと実データとを含んでいる。
メンバ61−5は、データEの原本と、データCの第2複製と、データDの第1複製とを保持する。データE,C,Dは、いずれもメタデータと実データとを含んでいる。
図5の通常時にて、激甚災害の発生によりメンバ61−1,61−2を保持するサーバ2が減設すると、図6の状態に遷移する。
図6は、激甚災害発生によるメモリ不足時のメンバとユーザデータの例を示す説明図である。図6は、図5の後の状態を示している。
メンバ61−1,61−2は、激甚災害の発生により減設する。メンバ61−1,61−2が保持していた各データは、メンバ61−3〜61−5に引き継がれる。更にメンバ61−3〜61−5が保持する各データは、必要に応じて昇格する。
メンバ61−3は、データBの原本と、データCの原本と、データAの原本と、データFの第1複製と、データGの第2複製とを保持する。データB,Aは、原本に昇格する。データF,Gは、メンバ61−3に新たに引き継がれる。これらデータB,C,A,F,Gは、いずれもメタデータと実データとを含んでいる。
メンバ61−4は、データBの第1複製と、データCの第1複製と、データAの第1複製と、データFの第2複製と、データDの原本とを保持する。データBは、第2複製から第1複製に昇格する。データA,Fは、メンバ61−4に新たに引き継がれる。これらデータB,C,A,F,Dは、いずれもメタデータと実データとを含んでいる。メンバ61−4は、データA,Fの引き継ぎにより、メモリ利用量αが閾値X(第1の閾値)以上となり、メモリ不足となる。図6では、メンバ61−4のメモリ不足を、ハッチングで示している。
メンバ61−5は、データBの第2複製と、データCの第2複製と、データAの第2複製と、データEの原本と、データDの第1複製とを保持する。データB,Aは、メンバ61−5に新たに引き継がれる。データB,C,A,E,Dは、いずれもメタデータと実データとを含んでいる。
ここで、メモリ不足のメンバ61−4は、複製データの実データを削除する。本実施形態における削除の優先順位は、複製データ番号の降順であり、第2複製から第1複製の順である。しかし、これに限られず、削除の優先順位は、特定の複製データ番号順であればよく、例えば複製データ番号の昇順や、任意に指定した複製データ番号順であってもよい。これにより、ユーザデータ間の冗長度増減のバランスを容易にとることができる。
本実施形態のメンバ61−4は、複製データ番号が同じ複数の複製データを所定の順序で削除する。これにより、データ間の冗長度のバランスを確保できる。しかし、これに限られず、メンバ61は、複製データ番号が同じ複数の複製データをランダムに削除してもよい。
図6に示す状態にて複製データが削除されると、図7に示す状態に遷移する。
図7は、激甚災害発生による複製データ削除の例を示す説明図である。
メンバ61−4は、データFの第2複製の実データを削除する。以降、メンバ61−4は、メモリ利用量が閾値Yを下回るまで、データAの第1複製、データBの第1複製、データCの第1複製の順で削除する。しかし、メンバ61−4は、メモリ利用量が閾値Yを下回るまで、データA,B,Cの第1複製をランダムに削除してもよい。
この事例にてメンバ61−4は、メモリ利用量が閾値Yを下回ったのち更に、自然減などにより閾値Z(第3の閾値)以下となると、図8に示す複製データ回復に遷移する。
図8は、災害回復時の複製データ回復の例を示す説明図である。図8は、図7の後の状態を示している。
メンバ61−4は、メモリ利用量が閾値Z以下となり、メモリ不足が解消されたため、データFの第2複製の実データを回復する。メンバ61−4は、データFの原本を保持するメンバ61−0にアクセスして、その実データを取得する。データの回復の優先順位は、データの削除の優先順位の逆順であり、第1複製から第2複製の順である。本事例では、メンバ61−4は、データFの第2複製の実データのみを削除していたため、第2複製からデータを回復させる。
図9は、メモリ使用量と各種閾値におけるアクションを示す説明図である。
各サーバ2は、所定の周期、または、データ操作の前後でメモリ利用量αをチェックする。メモリ利用量αが以下のときに、サーバ2のメンバ61は、所定のアクションを実施する。
サーバ2は、メモリ利用量αが閾値X(例えば容量の80%)以上であることを検知したら、メモリ不足と判断する。このときサーバ2のメンバ61は、遷移M2に示すように、閾値Y未満(例えば容量の60%)まで、複製データのメタデータのみを残して実データを削除する。これにより、複製データ削除処理の起動と停止との繰り返しを防き、その動作回数を減らすことができる。
閾値X,Yは、任意に設定可能であり、例えば両方とも容量の80%としてもよい。このときサーバ2は、メモリ利用量αが閾値X以上のときに、複製データのメタデータのみを残して実データを削除する。
遷移M3に示すように、メモリ利用量αは、閾値Z(例えば容量の40%)以下まで自然に減少する。
サーバ2は、メモリ利用量αが閾値Z以下であることを検知したら、メモリ不足が解消したと判断する。このときサーバ2のメンバ61は、遷移M0に示すように、閾値Yを超過するまで、複製データの実データを回復させる。これにより、複製データ回復処理の起動と停止との繰り返しを防き、その動作回数を減らすことができる。その後、遷移M1に示すように、メモリ利用量αが閾値X以上まで自然に増加すると、再び遷移M2の削除処理が行われる。
閾値Z,Yは、任意に設定可能であり、例えば両方とも容量の40%としてもよい。このときサーバ2は、メモリ利用量αが閾値Z以下のときに、複製データの実データを回復させる。
図10(a),(b)は、複製データ削除リスト例と複製データ回復リスト例を示す図である。
図10(a)は、複製データ削除リスト例を示す図である。
複製データ削除リストは、サーバ2がメモリ不足と判断したときに、このサーバ2のメンバ61が作成する。複製データ削除リストの各行は、各データに対応している。複製データ削除リストは、データ識別子と、複製データ番号と、データサイズと、実データ有無フラグの各カラムを含んでいる。メンバ61は、各ユーザデータのメタデータを参照して、この複製データ削除リストを生成する。複製データ削除リストは、データサイズの情報を含んでいるので、削除したデータ量を容易に算出可能である。
メンバ61は、自身が保持するデータのうち、ノードアドレスとバディとが一致し、かつ、実データ有無フラグが1(実データ有り)のものを抽出して複製データ削除リストを作成する。メンバ61は更に、複製データ番号が降順になるように、複製データ削除リストを並び替える。
図10(b)は、複製データ回復リスト例を示す図である。
複製データ回復リストは、サーバ2がメモリ不足が解消したと判断したときに、このサーバ2のメンバ61が作成する。複製データ回復リストの各行は、各データに対応している。複製データ回復リストの各カラムは、複製データ削除リストの各カラムと同様である。複製データ回復リストは、データサイズの情報を含んでいるので、回復したデータ量を容易に算出可能である。
メンバ61は、自身が保持するデータのうち、ノードアドレスとバディとが一致し、かつ、実データ有無フラグが0(実データ無し)のものを抽出して複製データ回復リストを作成する。メンバ61は更に、複製データ番号が昇順になるように、複製データ回復リストを並び替える。
図11は、複製データ削除/回復処理を示すフローチャートである。
サーバ2は、起動したのち、図11に示す複製データ削除/回復処理を繰り返す。
ステップS10において、サーバ2は、所定の周期であるか否かを判断する。サーバ2は、所定の周期であれば(Yes)、ステップS12の処理を行い、所定の周期でなかったならば(No)、ステップS11の処理を行う。
ステップS11において、サーバ2は、データ操作の前後であるか否かを判断する。サーバ2は、データ操作の前後であれば(Yes)、ステップS12の処理を行い、データ操作の前後でなかったならば(No)、ステップS10の処理に戻る。
ステップS12において、サーバ2は、メモリ利用量測定部22により、メモリ利用量αを測定する。
ステップS13において、サーバ2は、メモリ利用量αをチェックする。サーバ2は、メモリ利用量αが閾値X以上ならば、ステップS14の処理を行い、メモリ利用量αが閾値Z以下ならば、ステップS15の処理を行い、メモリ利用量αが閾値Zを超え、かつ閾値X未満ならば、ステップS10の処理に戻る。
ステップS14において、サーバ2は、自身の各メンバ61に複製データ削除処理を行わせ、ステップS10の処理に戻る。この複製データ削除処理は、後記する図12で詳細に説明する。
ステップS15において、サーバ2は、自身の各メンバ61に複製データ回復処理を行わせ、ステップS10の処理に戻る。この複製データ回復処理は、後記する図13で詳細に説明する。
図12は、複製データ削除処理を示すフローチャートである。
ステップS20において、メンバ61は、ノードアドレスとバディが一致し、かつ実データを持つ複製データを抽出して、複製データ削除リスト(図10(a)参照)を作成する。
ステップS21において、メンバ61は、複製データ削除リストを、特定の複製データ番号順にソートする。本実施形態において特定の複製データ番号順とは、降順である。
ステップS22において、メンバ61は、複製データの総容量格納変数を0で初期化する。
ステップS23において、メンバ61は、複製データ削除リストの先頭要素を取得し、この先頭要素を削除する。複製データ削除リストの先頭要素とは、第1行目の要素である。先頭要素の削除により、第2行目以降の要素が順に繰り上がる。
ステップS24において、メンバ61は、この要素に係る複製データの実データを削除する。
ステップS25において、メンバ61は、総容量格納変数に対象要素の実データサイズを加算する。
ステップS26において、メンバ61は、ステップS12で測定したメモリ利用量αから総容量格納変数を減算して現在のメモリ利用量を算出し、閾値Yと比較する。メンバ61は、現在のメモリ利用量が閾値Y未満ならば(Yes)、図12の処理を終了し、現在のメモリ利用量が閾値Y以下ならば(No)、ステップS23の処理に戻る。
このようにすることで、メモリ利用量測定部22の処理回数を削減し、かつ複製データの実データ削除の度に現在のメモリ利用量を算出することができる。
図13は、複製データ回復処理を示すフローチャートである。
ステップS30において、メンバ61は、ノードアドレスとバディが一致し、かつ実データを持たない複製データを抽出して、複製データ回復リスト(図10(b)参照)を作成する。
ステップS31において、メンバ61は、複製データ回復リストを、特定の複製データ番号の逆順にソートする。本実施形態において特定の複製データ番号順の逆順とは、昇順である。
ステップS32において、メンバ61は、複製データの総容量格納変数を0で初期化する。
ステップS33において、メンバ61は、複製データ回復リストの先頭要素を取得し、この先頭要素を削除する。複製データ回復リストの先頭要素とは、第1行目の要素である。先頭要素の削除により、第2行目以降の要素が順に繰り上がる。
ステップS34において、メンバ61は、この要素に係る複製データの実データを回復する。
ステップS35において、メンバ61は、総容量格納変数に対象要素の実データサイズを加算する。
ステップS36において、メンバ61は、ステップS12で測定したメモリ利用量αに総容量格納変数を加算して現在のメモリ利用量を算出し、閾値Yと比較する。メンバ61は、現在のメモリ利用量が閾値Yを超過したならば(Yes)、図13の処理を終了し、
現在のメモリ利用量が閾値Y以下ならば(No)、ステップS33の処理に戻る。
比較例のクラスタシステム(図14参照)は、自律的な機能によりシステムの解体へ発展してしまう機能を持っている。大規模な激甚災害や複数のサーバ2が故障しメモリ25が不足している状況でデータの複製を作成することで、メモリ25の枯渇による故障が発生する。このデータの引き継ぎ先の他サーバ2においても、メモリ25の枯渇による故障が連鎖して発生することで、クラスタシステム1の全体が解体し、サービスが停止してしまう。
本実施形態のクラスタシステム1(図1参照)は、一時的に冗長度を低下させることによりメモリ25を確保しつつ、データの探索・取得を行う。これにより、クラスタシステム1は、原本のデータは救済かつ確保しつつ、自身の解体を抑制してサービスの継続を可能とする。
本実施形態のクラスタシステム1によれば、メモリ25が不足している状況においては、各ユーザデータの冗長度のバランスをとりつつ実データを削除し、メタデータのみを保持しつつメモリ25の利用を抑制する。これにより、クラスタシステム1の解体を回避し、激甚災害時においてもサービスの継続を可能とする。更に、ユーザデータの冗長度の偏りによるデータ消失を抑止することができる。
また、本実施形態のクラスタシステム1によれば、激甚災害時などの一時的にメモリ25が必要になる場合に備えて多量のメモリ・リソースを用意せずともよく、効率的にメモリ25を利用することが可能となる。
本実施形態により、多数のサーバ2が故障した場合であっても、クラスタシステム1は、サービスの継続が可能である。
更に各サーバ2が故障から回復し、またはサーバ2が増設されて利用可能なメモリ25が増えた場合に、クラスタシステム1は、データの冗長度のバランスをとりつつ回復する。これにより、ユーザデータの冗長度の偏りによるデータ消失を抑止することができる。
本実施形態のサーバ2は、前記したような処理を実行させる信号処理プログラム241によって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体(CD−ROMなど)に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
上記実施形態は、コンシステント・ハッシュ法でデータ管理するクラスタシステムに限定されず、データを冗長化して管理するクラスタシステムであればよい。
1,1A クラスタシステム
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の閾値)
Z 閾値 (第3の閾値)

Claims (7)

  1. クラスタシステムに含まれるサーバ装置であって、
    前記サーバ装置は、
    メタデータと実データとを含み複製番号が付与された複製データまたは/および原本データを保持するメモリと、
    前記メモリの利用量を測定するメモリ利用量測定部と、
    前記メモリの利用量がメモリ不足閾値以上ならば、所定の複製番号の順に、前記複製データの実データの有無を判断し、前記所定の複製番号の順に当該複製データの実データを前記メモリから削除し、前記メモリの利用量が前記メモリ不足閾値よりも小さいメモリ不足解消閾値以下ならば、前記所定の複製番号の逆順に各前記複製データの実データの有無を判断し、当該複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得する複製データ削除/回復処理部と、
    を備えることを特徴とするクラスタシステムのサーバ装置。
  2. 前記所定の複製番号の順とは、前記複製データに付与された複製番号の範囲の降順、前記複製データに付与された複製番号の範囲の昇順、前記複製データに付与された複製番号の範囲の任意の指定順のうちいずれかである、
    ことを特徴とする請求項1に記載のクラスタシステムのサーバ装置。
  3. 前記複製データ削除/回復処理部は、前記メモリの利用量が前記メモリ不足閾値以上ならば、前記メモリの利用量が前記メモリ不足閾値と前記メモリ不足解消閾値との間のいずれかである所定の閾値未満になるまで、前記所定の複製番号の順に前記複製データの実データを前記メモリから削除する、
    ことを特徴とする請求項1に記載のクラスタシステムのサーバ装置。
  4. 前記複製データ削除/回復処理部は、前記メモリの利用量が前記メモリ不足解消閾値以下ならば、前記メモリの利用量が前記メモリ不足解消閾値と前記メモリ不足閾値との間のいずれかである所定の閾値を超過するまで、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得する、
    ことを特徴とする請求項に記載のクラスタシステムのサーバ装置。
  5. 前記メモリに保持されるメタデータは、実データのサイズ情報を含む、
    ことを特徴とする請求項3または4に記載のクラスタシステムのサーバ装置。
  6. 前記原本データおよび前記複製データは、コンシステント・ハッシュ法によるID空間で管理される、
    ことを特徴とする請求項1ないしのいずれか1項に記載のクラスタシステムのサーバ装置。
  7. メタデータと実データとを含む原本データまたは/および複製データを保持するメモリの利用量を測定するステップ、
    前記メモリの利用量がメモリ不足閾値以上ならば、所定の複製番号の順に、前記複製データの実データの有無を判断するステップ、
    前記所定の複製番号の順に前記複製データの実データを前記メモリから削除するステップ、
    前記メモリの利用量が前記メモリ不足閾値よりも小さいメモリ不足解消閾値以下ならば、前記所定の複製番号の逆順に各前記複製データの実データの有無を判断するステップ、
    前記複製データの実データが無いならば、当該複製データのメタデータに基づき当該複製データに対応する前記原本データの実データを他のサーバ装置から取得するステップ、
    をクラスタシステムのサーバ装置に実行させるためのプログラム。
JP2014036481A 2014-02-27 2014-02-27 クラスタシステムのサーバ装置およびプログラム Expired - Fee Related JP6127005B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2015162053A JP2015162053A (ja) 2015-09-07
JP6127005B2 true JP6127005B2 (ja) 2017-05-10

Family

ID=54185113

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP6127005B2 (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 ストレージネットワークシステム
US9395933B2 (en) * 2009-09-01 2016-07-19 Nec Corporation Distributed storage system, distributed storage method, and program and storage node for distributed storage
JP5915116B2 (ja) * 2011-11-24 2016-05-11 富士通株式会社 ストレージシステム、ストレージ装置、システム制御プログラムおよびシステム制御方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
AU2014218837A1 (en) Deduplication storage system with efficient reference updating and space reclamation
WO2013123449A1 (en) System and method for building a point-in-time snapshot of an eventually-consistent data store
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
JP5969315B2 (ja) データ移行処理システムおよびデータ移行処理方法
WO2024148824A1 (zh) 数据处理方法、系统、装置、存储介质及电子设备
EP3186720B1 (en) Organizing a computing system having multiple computers, distributing computing tasks among the computers, and maintaining data integrity and redundancy in the computing system
JP2014164554A (ja) 負荷分散判定システム
CN107943615B (zh) 基于分布式集群的数据处理方法与系统
JP2015035182A (ja) 分散データベースシステム
US20150039847A1 (en) Balancing data distribution in a fault-tolerant storage system
JP6127005B2 (ja) クラスタシステムのサーバ装置およびプログラム
CN116389233A (zh) 容器云管理平台主备切换系统、方法、装置和计算机设备
WO2014054173A1 (ja) 分散データ管理システム及びプログラム
JP5918802B2 (ja) ノードおよびプログラム
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
JP2024514467A (ja) 地理的に分散されたハイブリッドクラウドクラスタ
JP5890452B2 (ja) クラスタシステムのサーバ装置およびそのプログラム
JP5745445B2 (ja) 管理装置およびプログラム
JP5815000B2 (ja) ノードおよびプログラム
JP5711771B2 (ja) ノード離脱処理システム
JP6197666B2 (ja) 記憶装置、複製方法及び複製プログラム
Segura et al. Scality's experience with a geo-distributed file system
JP6506156B2 (ja) ノードおよびグラビテーション抑止方法
JP5711772B2 (ja) クラスタシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170330

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170410

R150 Certificate of patent or registration of utility model

Ref document number: 6127005

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees