JP6116102B2 - クラスタシステム、および、負荷分散方法 - Google Patents

クラスタシステム、および、負荷分散方法 Download PDF

Info

Publication number
JP6116102B2
JP6116102B2 JP2014036596A JP2014036596A JP6116102B2 JP 6116102 B2 JP6116102 B2 JP 6116102B2 JP 2014036596 A JP2014036596 A JP 2014036596A JP 2014036596 A JP2014036596 A JP 2014036596A JP 6116102 B2 JP6116102 B2 JP 6116102B2
Authority
JP
Japan
Prior art keywords
server
load
rebalancing
cluster
scale
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
JP2014036596A
Other languages
English (en)
Other versions
JP2015162066A (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 JP2014036596A priority Critical patent/JP6116102B2/ja
Publication of JP2015162066A publication Critical patent/JP2015162066A/ja
Application granted granted Critical
Publication of JP6116102B2 publication Critical patent/JP6116102B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、クラスタシステム、および、負荷分散方法の技術に関する。
近年、クラウドコンピューティングの隆盛に伴い、多量のデータの処理や保持を効率的に行うことが求められている。そこで、複数のサーバを協調動作させることにより効率的な処理を実現する分散処理技術が発展している。分散処理を行う際には、処理対象(管理対象)のデータを、クラスタを構成する各サーバ(以下、「クラスタメンバ」または「メンバ」とも称する。)に振り分けておく必要がある。
非特許文献1に記載のコンシステント・ハッシュ法(Consistent Hashing)を用いたデータ振り分け手法では、クラスタメンバとデータの双方にID(IDentifier)を割り当て、データのIDからID空間を時計回りに辿った場合に最初に出合ったクラスタメンバをそのデータの担当とする。
クラスタメンバに離脱があった場合には、その離脱したメンバに隣接するクラスタメンバが、新しくデータを担当するクラスタメンバとなる。
コンシステント・ハッシュ法を用いた分散サーバシステムでは、各サーバの担当領域がID空間内に割り当てられる。一方、同じID空間内に各サーバの処理対象となるデータも割り当てられるが、データの配置によっては、特定のサーバへと負荷が集中してしまう。
なお、負荷の集中は、単純に特定サーバの担当領域内に多くのデータが集中してしまうケースだけでなく、データ量が少なくても参照頻度が高いデータが、特定サーバに割り当てられるケースでも発生する。そのため、各サーバの担当領域の広さを単純に均等にしただけでは、負荷の集中を解消できないこともある。
また、非特許文献1に記載のように、ID空間内に新たなサーバを追加することにより、負荷の集中をある程度緩和することはできる。しかし、新たなサーバを追加するためのコスト増が発生してしまうため、無条件にサーバを追加できるわけでもない。
そこで、本発明は、クラスタを構成する各サーバへの負荷を適切に分散するとともに、サーバ増設のコスト増を抑制することを、主な課題とする。
前記課題を解決するために、本発明のクラスタシステムは、スケールアウト閾値およびリバランシング閾値が格納されている記憶手段と、クラスタを構成する各サーバの負荷値を取得する負荷測定部と、前記取得された各サーバの負荷値の合計が前記スケールアウト閾値に基づく前記クラスタの負荷基準を超過しているときに、前記クラスタへのスケールアウトが必要と判定するとともに、前記取得された各サーバの負荷値が前記リバランシング閾値を超過しているときに、その超過したサーバについてリバランシングが必要と判定する負荷判定部と、前記スケールアウトが必要と判定されたときに、前記クラスタを構成するサーバ群に対して新たなサーバを追加することにより、追加前のサーバ群が担当していた負荷の一部を前記新たなサーバに割り当てるスケールアウト処理を実施するスケールアウト部と、前記リバランシングが必要と判定されたときに、前記クラスタを構成するサーバ群に対して、前記リバランシング閾値を超過したサーバが担当していた負荷の一部を、前記クラスタを構成する別のサーバに割り当てるリバランシング処理を実施するリバランシング部とを有する管理装置と、前記クラスタを構成するサーバ群とがネットワークで接続されて構成され、前記記憶手段には、各サーバと各サーバの担当データとを対応付けるデータ構造として、環状のID空間内に各サーバを示すIDと、各担当データを示すIDとが配置されているID空間管理情報が記憶されており、前記リバランシング部は、前記リバランシング閾値を超過しているサーバに対して、前記環状のID空間において隣接する2つのサーバそれぞれの負荷を取得し、それらの取得した負荷の小さいサーバを、負荷の一部の割り当て先となる前記別のサーバとすることを特徴とする。
これにより、負荷判定部がリバランシングとスケールアウトとを適切に併用することで、クラスタを構成する各サーバへの負荷を適切に分散するとともに、サーバ増設のコスト増を抑制することができる。
さらに、負荷の小さいサーバが負荷の一部の割り当て先となることで、少ない手順で効率的なリバランシングを実施することができる。
本発明は、前記負荷判定部が、前記負荷値の合計が前記前記クラスタの負荷基準を超過しているうちは、前記スケールアウト部にスケールアウト処理を実施させ、前記負荷値の合計が前記前記クラスタの負荷基準を超過しなくなった後に、負荷値が前記リバランシング閾値を超過しているサーバについて、前記リバランシング部にリバランシング処理を実施させることを特徴とする。
これにより、新たなサーバを追加するスケールアウト処理を最小限に抑え、低コストで安定的なクラスタを構成することができる。
本発明は、前記負荷判定部が、負荷値が前記リバランシング閾値を超過しているサーバについて、前記リバランシング部にリバランシング処理を実施させる処理を所定回数実行した後でも、負荷値が前記リバランシング閾値を超過しているサーバが存在するときには、負荷値の合計が前記前記クラスタの負荷基準を超過していなくても、前記スケールアウト部にスケールアウト処理を実施させることを特徴とする。
これにより、負荷が高いデータが複数ハッシュ空間上で近接していて、リバランシングしても分散しきれないようなケースでも、適切に負荷分散できる。
本発明によれば、クラスタを構成する各サーバへの負荷を適切に分散するとともに、サーバ増設のコスト増を抑制することができる。
本発明の一実施形態に関する分散処理システムを示す構成図である。 本発明の一実施形態に関する管理装置を主に示す構成図である。 本発明の一実施形態に関するID空間を示す説明図である。図3(a)は、5台のサーバM1〜M5が配置された状態を示す。図3(b)は、図3(a)の状態から6台目のサーバM6が増設された状態を示す。 本発明の一実施形態に関するID空間を示す説明図である。図4(a)は、図3(a)の状態からサーバM4の負荷がサーバM3へとリバランシングされた状態を示す。図4(b)は、図3(a)の状態からサーバM4の負荷がサーバM5へとリバランシングされた状態を示す。 本発明の一実施形態に関する管理装置の処理を示す動作説明図である。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
図1は、分散処理システムを示す構成図である。
分散処理システムは、負荷分散装置3、管理装置4、クラスタ100を構成する複数のサーバ5を備えている。負荷分散装置3は、インターネットなどのネットワーク2を介して、複数のクライアントマシン1と接続されている。
クライアントマシン1からのデータ処理リクエストを、ネットワーク2経由で負荷分散装置3が受け取る。負荷分散装置3は、データのID空間上のサーバ割当表(図2のID空間管理情報411)に基づいて、そのリクエストを、データ処理を行う複数のサーバ5のいずれかに振り分ける。振り分けられたサーバ5は、そのリクエストの処理を行う。管理装置4は、ID空間管理情報411を管理する。
負荷分散装置3は、記憶部31、処理部32、通信部33を備える。
記憶部31は、情報を記憶する手段であり、RAM(Random Access Memory)やROM(Read Only Memory)などのメモリ、HDD(Hard Disk Drive)などによって構成される。記憶部31には、管理装置4から受信したID空間管理情報411が、格納されている。なお、記憶部31には、処理部32の動作プログラムなども格納されている(図示を省略)。
処理部32は、記憶部31に格納された情報に基づいて演算処理を行う手段であり、例えばCPU(Central Processing Unit)によって構成される。
通信部33は、外部装置との通信に用いられる通信インタフェースである。なお、負荷分散装置3は、ほかに、負荷分散装置3のユーザが情報を入力する入力部や、情報を表示する表示部などを備えていてもよい。
管理装置4は、記憶部41、処理部42、入力部43、表示部44、通信部45を備える。
記憶部41は、情報を記憶する手段であり、RAMやROMなどのメモリ、HDDなどによって構成される。記憶部41には、処理部42の動作プログラムと、その動作プログラムが参照する各データが格納されている。
処理部42は、記憶部41に格納された情報に基づいて演算処理を行う手段であり、例えばCPUによって構成される。
入力部43は、管理装置4のユーザが情報を入力する手段であり、例えば、キーボードやマウスによって実現される。
表示部44は、情報を表示する手段であり、例えば、LCD(Liquid Crystal Display)によって実現される。
通信部45は、外部装置との通信に用いられる通信インタフェースである。
図2は、管理装置4を主に示す構成図である。
管理装置4は、コンシステント・ハッシュ法などのID管理方法に基づいて、クライアントマシン1からのリクエストを複数のサーバ5(クラスタ100のメンバ)のいずれに振り分けるかを決定するコンピュータ装置である。
管理装置4の記憶部41には、負荷測定部413と、負荷判定部414と、スケールアウト部415と、リバランシング部416とをそれぞれ処理部42によって動作させるためのプログラムが格納されている。さらに、記憶部41には、ID空間管理情報411と、設定情報412とがプログラムの参照データとして格納されている。
ID空間管理情報411は、管理対象のデータについて所定のハッシュ値変換を行って算出されたIDを用いて、そのデータを担当するサーバ5を管理する情報である(図3で後記)。ID空間管理情報411は、通信部45を介して、負荷分散装置3(または各サーバ5)に配付される。
設定情報412は、各処理部(符号413〜416)の処理において参照される情報であり、入力部43を介して管理者などにより入力される。
負荷測定部413は、各サーバ5から負荷の情報(マシン負荷など)を収集する。
負荷判定部414は、負荷測定部413の収集結果をもとに、スケールアウトをすべきか否かの判断、および、リバランシングをすべきか否かの判断を行う。
スケールアウト部415は、負荷判定部414が「スケールアウトをすべき」と判断したときに、クラスタ100のメンバに新たなサーバ5を追加(増設)する。
リバランシング部416は、負荷判定部414が「リバランシングをすべき」と判断したときに、クラスタ100内の既存メンバに対して、サーバ5の役割分担を変更する。
これらのスケールアウト部415およびリバランシング部416の処理結果は、各サーバ5に指示されるとともに、ID空間管理情報411へと反映される(詳細は、図3,図4)。
図3は、ID空間管理情報411が示すID空間を示す説明図である。なお、本実施形態では、ID空間内の各情報を円形で表記したが、計算機に各情報を記憶するときには、ID空間内の位置を示すID列と、そのID位置に配置される要素(サーバ5、データ)列とを対応付ける表形式など、任意のデータ形式で記憶することとしてもよい。
図3(a)は、5台のサーバM1〜M5が配置された状態を示す。この「M1〜M5」は、クラスタ100を構成するサーバ5のID(識別子)を表す。
コンシステント・ハッシュ法では、環状のID空間に、管理対象の複数のデータ、および、データを管理しクラスタ100を構成する複数のサーバ5、が割り振られる。
ID空間内のデータは、低負荷データを示す白丸(○)と、高負荷データを示す黒丸(●)とでそれぞれ示される。ID空間内のサーバ5は、それぞれサーバIDを記載する矩形(M1〜M5)で示される。
そして、サーバ5とデータとの役割担当について、ID空間において自身の前のサーバ5から時計回り(所定方向回り)に自身のサーバ5までの間に位置するデータを管理(担当)する。例えば、M2のサーバ5は、自身の前であるM1のサーバ5の位置(360度の円における0度)から、M2の位置(70度)までのデータを担当する。
なお、ID空間内に配置される各サーバ(M1〜M5)は、1つのID空間内のサーバを、1台の物理的にクラスタ100内に組み込まれるサーバ5(物理計算機)としてもよい。一方、物理的な1台の計算機であるサーバ5を、論理的に複数台に分割した仮想計算機とし、1つのID空間内のサーバを、1台の仮想計算機と対応付けてもよい。
ここで、物理計算機に対応付けられる仮想計算機の台数は、例えば、物理計算機の性能に比例した台数の仮想計算機を構築するものとする。つまり、管理装置4の処理部42は、ID空間管理情報411内の各サーバ(M1〜M5)について、物理計算機か、仮想計算機かを意識して区別することなく、ID空間の管理を行う。
もし、ID空間内の仮想計算機を示すサーバにアクセスする場合は、あらかじめ記憶部41に登録されている物理計算機と仮想計算機との対応情報を参照することで、アクセスする物理計算機を特定すればよい。このように、物理計算機を仮想的に分割することでID空間内のサーバ数(領域分割するノード数)を増やすことができ、特定のサーバへの負荷集中の発生確率を低くすることができる。
図3(b)は、図3(a)の状態から6台目のサーバM6が増設された状態を示す。
スケールアウト部415は、最高負荷であるサーバM4の担当を緩和するため、サーバM4の旧担当領域をID空間の中間で分割し、その分割位置に新たなサーバM6を増設する。
これにより、サーバM4の負荷の約半分が新たなサーバM6へと移行することにより、サーバM4の負荷が軽減される。
図4(a)は、図3(a)の状態からサーバM4の負荷がサーバM3へとリバランシングされた状態を示す。
リバランシング部416は、最高負荷であるサーバM4の負荷を緩和するため、そのサーバM4に隣接するサーバM3の配置を、サーバM3の担当領域が多くなるように時計回りに移動する。
これにより、サーバM4の負荷の一部がサーバM3へと移行することにより、サーバM4の負荷が軽減される。
図4(b)は、図3(a)の状態からサーバM4の負荷がサーバM5へとリバランシングされた状態を示す。
リバランシング部416は、最高負荷であるサーバM4の負荷を緩和するため、そのサーバM4の配置を、担当領域が少なくなるように反時計回りに移動する。
これにより、サーバM4の負荷の一部が隣接するサーバM5へと移行することにより、サーバM4の負荷が軽減される。
図5は、管理装置の処理を示す動作説明図である。
S101は、入力部43が設定情報412の入力を受け付ける処理である。
設定情報412は、例えば、負荷測定部413や負荷判定部414が処理する「負荷」を定義するための情報と、負荷測定部413によって測定される負荷と比較される各種閾値(スケールアウト閾値、リバランシング閾値)の情報を含む。
S101のうちの「負荷」を定義するための情報を入力させるために、入力部43は、以下に例示する各種の定量的なパラメータ値から、参照するパラメータを選択させる。
・各サーバ5のCPU使用率
・各サーバ5のメモリ使用率
・各サーバ5の担当するデータ(key)へのアクセス頻度
ここで、入力部43は、選択された各パラメータについて、現在の瞬間値を用いるか、所定期間の統計値(平均値や中央値など)を用いるかを、併せて指定させてもよい。例えば、平均値を用いることで、上下の変動が激しい負荷に対しても、適切な負荷値を取得することができる。
次に、入力部43は、複数の選択されたパラメータをどのように使用するかを指定させる。つまり、入力部43は、以下の2つの内のいずれか1つを選択させる。
・複数のパラメータをそれぞれ独立に使用する。つまり、パラメータの個数分だけのID空間(ID空間管理情報411)を構築する。
・複数のパラメータを組み合わせて(統合させて)1つのパラメータ(負荷代表値)へと集約し、その負荷代表値に対応する1つのID空間(ID空間管理情報411)を構築する。なお、負荷代表値の計算方法としては、例えば、あらかじめ指定されるパラメータごとの重み値を用いた重みづけ加算により、負荷代表値を求める方法が挙げられる。
S101のうちの入力される各種閾値には、スケールアウトが必要と判断される「スケールアウト閾値」と、リバランシングが必要と判断される「リバランシング閾値」とが存在する。負荷を「CPU使用率」と定義したときには、例えば、スケールアウト閾値を「65%」とし、リバランシング閾値を「75%」とする。
スケールアウトが必要な場合とは、クラスタ100のメンバである各サーバ5のリソースの合計値が不足している状況である。
リバランシングが必要な場合とは、クラスタ100のメンバである各サーバ5のリソースの合計値は充分だが、負荷が特定のサーバ5に集中することにより、アンバランスな状態である。
なお、リバランシング閾値とスケールアウト閾値とを同じ値(または互いに近い値)とすることにより、クラスタ100全体でのリソースの余裕を減らす(増設の頻度を下げる)ことで、サーバ5導入のコストパフォーマンスを向上させることができる。
一方、リバランシング閾値よりもスケールアウト閾値を低く設定することにより、クラスタ100全体でのリソースの余裕が増える(増設の頻度を上げる)ことで、特定拠点が激甚災害でダウンした際にもサービスが継続可能なようになり、信頼性が向上する。
さらに、リバランシング閾値をサーバ5の能力に比べて低めに(例えば、「50%」)設定することで、リバランシングを行う頻度が上がり、特定のサーバ5への負荷集中を予防できる。
S102は、負荷測定部413が各サーバ5の負荷を測定する処理である。
負荷測定部413は、分散処理システムの運用中に、S101で設定情報412として入力された負荷パラメータを各サーバ5から繰り返し(定期または不定期に)取得する。
そして、負荷測定部413は、各サーバ5から取得した各種の負荷パラメータを、負荷判定部414へと通知する。ここで、負荷測定部413は、設定情報412に従って、前記した負荷代表値への集約処理や、負荷統計値の計算処理を行い、その計算結果を負荷判定部414へと通知してもよい。
ここで、各サーバ5の性能情報をあらかじめ記憶部41に登録させておき、負荷測定部413は、各サーバ5から取得した負荷パラメータの実測値を、登録されている性能情報で補正してから、負荷判定部414へと通知してもよい。
例えば、CPU性能が「100」のサーバ5(第1サーバ)からCPU使用率「20%」を取得し、CPU性能が「10」のサーバ5(第2サーバ)からCPU使用率「50%」を取得したときに、負荷測定部413は、以下のいずれかを負荷判定部414へと通知する。
・第1サーバの負荷=「20%」、第2サーバの負荷=「50%」(補正なし)
・第1サーバの負荷=「100×20%=20」、第2サーバの負荷=「10×50%=5」(補正あり)
S103は、負荷判定部414がスケールアウトが必要か否かを判定する処理である。
負荷判定部414は、S102で測定されたN台のサーバ5の負荷合計値が、(スケールアウト閾値×N)を超過したときに、スケールアウトが必要である(S103,Yes)と判定する。S103でYesならS104へ進み、NoならS111へ進む。
なお、(スケールアウト閾値×N)とは、スケールアウト閾値に基づくクラスタ100の負荷基準の一例であり、他の例として、入力された所定値をそのままクラスタ100の負荷基準として用いてもよい。
例えば、4台のサーバ5の負荷がそれぞれ「70%,65%,65%,65%」であり、かつ、スケールアウト閾値が「65%」であるときは、負荷合計値「70%+65%+65%+65%=265%」>負荷基準「65%×4=260%」なので、スケールアウトが必要であると判定される。
S104は、スケールアウト部415がスケールアウトを実施する処理である。
スケールアウト部415は、待機中のサーバ5をクラスタ100に増設する場合、その増設するサーバ5のID空間における挿入位置を、図3(b)で説明したように決定する。
そして、スケールアウト部415は、増設したサーバ5の挿入位置と、その挿入位置を元にした各サーバ5の新たな役割分担をID空間管理情報411に対して更新する。なお、S104の処理後は、S102へと戻って、再度負荷が測定される。
なお、S104の処理の変形例として、スケールアウト部415は、最も広い区間を挿入位置の区間として決定してもよいし、区間内の挿入位置について、図3(b)のように区間中央でなくても任意の位置としてもよい。例えば、スケールアウト部415は、増設するサーバ5のIPアドレスに対して所定のハッシュ関数を計算した結果のハッシュ値をIDとして、そのIDを挿入位置としてもよい。
さらに、スケールアウト部415は、1回のスケールアウト(S104)で1台のサーバ5を増設してもよいし、複数台のサーバ5を一度に増設してもよい。例えば、スケールアウト部415は、(N台のサーバ5の負荷合計値)≦(スケールアウト閾値×(N+M)台)となるように、一度に増設するM台のサーバ5を決定してもよい。これにより、システム全体のリソース不足を短期間で解消できる。
一方、1回のスケールアウト(S104)で1台ずつサーバ5を増設する場合には、増設のしすぎを予防できる。
S111は、負荷判定部414がリバランシングが必要か否かを判定する処理である。
スケールアウトは不要である(S103,No)状況下で、負荷判定部414は、クラスタ100の各サーバ5に対して、(サーバ5の負荷)>リバランシング閾値となる負荷超過サーバ、つまり、リバランシングを要するサーバであるか否かを判定する。リバランシングを要するサーバが1台でも存在する場合は(S111,Yes)、S112へ進み、存在しない場合は(S111,No)、処理を終了する。
例えば、4台のサーバ5の負荷がそれぞれ「80%,60%,50%,40%」であり、かつ、リバランシング閾値が「75%」であるときは、負荷「80%」のサーバ5だけが、リバランシングを要するサーバ5であると判定される。
S112〜S116は、リバランシング処理のループである。リバランシング部416は、ループを1回実行するたびに、1回のリバランシング処理を実施する(S113)。
このループの繰り返し回数は、あらかじめ設定情報412として登録されている。繰り返し回数を多くすることで、負荷のアンバランスが平滑化される。繰り返し回数を少なくすることで、負荷移動のオーバーヘッドを抑制する。
S113は、リバランシング部416がリバランシングを実施する処理である。
リバランシング部416は、負荷超過サーバのうちの負荷が最も高いサーバ5(図3(a)では「M4」)からみて、ID空間において両隣のサーバ5を特定する(図3(a)では「M3,M5」)。
そして、リバランシング部416は、両隣のサーバ5のうちの現在負荷が少ないほうのサーバ5に対して、今後負荷を増やすようにリバランシングする。
(M3の負荷)<(M5の負荷)なら、リバランシング部416は、図4(a)で説明したように、負荷の低いM3の負荷を増やす。
(M3の負荷)≧(M5の負荷)なら、リバランシング部416は、図4(b)で説明したように、負荷の低い(または同じ)M5の負荷を増やす。
このような、負荷の移動は、サーバ5の位置を一度に多く移動させてもよいし、少しずつ移動させて、(サーバ5「M4」の負荷)<リバランシング閾値となった時点で移動を終了させてもよい。
S114は、S102と同様に、負荷測定部413が各サーバ5の負荷を測定する処理である。ここでは、リバランシング実施後の負荷が測定される。
S115は、負荷判定部414がサーバ5の負荷が解消されたか否かを判定する処理である。S111と同様に、負荷判定部414は、(S114で測定されたサーバ5の負荷)>リバランシング閾値となる負荷超過サーバが存在するときには、サーバ負荷が解消されていない(S115,No)として、S116へ進む。一方、負荷超過サーバが存在しないときには(S115,Yes)、ループから脱出して処理を終了する。
なお、S112〜S116のループを実行しても、負荷超過サーバが残る場合も発生する。例えば、4台のサーバ5でクラスタ100を構築し、それぞれの負荷値が「100%,50%,50%,50%」である場合、100%の負荷超過サーバについての負荷をリバランシングしても、負荷移転先の50%の負荷が100%へと増加されてしまうだけで、負荷超過サーバの台数が減るわけではない。
このように、負荷が高いデータが複数ハッシュ空間上で近接していて、リバランシングしても分散しきれないようなケースも存在する。このケースでは、S103でスケールアウト不要と判定されたにもかかわらず、S112〜S116のループ後に強制的にS104でスケールアウトを実施して5台目のサーバ5を増設することで、負荷値を「50%,50%,50%,50%,50%」と分散させることができる。
なお、4台のサーバ5の負荷合計値が250%であり、スケールアウト閾値「75%」×4台=300%なので、S103ではスケールアウト不要(250%<300%)となる。
以上説明した本実施形態では、分散システム上でマシン負荷を適切に分散させるリソース管理を行う管理装置4を提案した。管理装置4は、コンシステント・ハッシュ法を用いたID空間管理情報411内に配置するクラスタ100のサーバ5群について、スケールアウト部415によるサーバ増設やリバランシング部416によるデータ再配置を制御する。
負荷判定部414は、スケールアウトが必要ならスケールアウトを起動し(S103→S104)、スケールアウトが不要でリバランシングが必要ならリバランシングを起動する(S111→S112〜S116)。これにより、サーバ5の増設とリバランシングとを併用することにより、サーバ5の増設をできるだけ抑制したまま、サーバ5間での負荷分散を実現することができる。
つまり、スケールアウトが不要である状況とは、マシンリソースの総量は充分である状況であり、その状況下では、リバランシングがスケールアウトよりも優先されて実施される。よって、使用リソース量を偏りを是正するリバランシングによって効率的に負荷低減を行うことができるので、コストがかかる過剰なサーバ増設を抑止できる。
なお、本実施形態の態様は、前記した構成に限定されるものではない。
例えば、管理装置4と負荷分散装置3を同一のハードウェアに並存させる構成としてもよい。また、負荷分散装置3を使用せず、それぞれのクライアントマシン1が管理装置4から受信したID空間管理情報411を保持して、ネットワーク2経由で複数のサーバ5のいずれかに直接アクセスするようにしてもよい。
また、本実施形態ではコンシステント・ハッシュ法を前提としたが、他の手法を前提としてもよい。
また、本実施形態は、コンピュータを管理装置4として機能させるためのプログラムとしても具現化可能である。
1 クライアントマシン
2 ネットワーク
3 負荷分散装置
4 管理装置
5 サーバ
31 記憶部
32 処理部
33 通信部
41 記憶部
42 処理部
43 入力部
44 表示部
45 通信部
100 クラスタ
411 ID空間管理情報
412 設定情報
413 負荷測定部
414 負荷判定部
415 スケールアウト部
416 リバランシング部

Claims (4)

  1. スケールアウト閾値およびリバランシング閾値が格納されている記憶手段と、
    クラスタを構成する各サーバの負荷値を取得する負荷測定部と、
    前記取得された各サーバの負荷値の合計が前記スケールアウト閾値に基づく前記クラスタの負荷基準を超過しているときに、前記クラスタへのスケールアウトが必要と判定するとともに、前記取得された各サーバの負荷値が前記リバランシング閾値を超過しているときに、その超過したサーバについてリバランシングが必要と判定する負荷判定部と、
    前記スケールアウトが必要と判定されたときに、前記クラスタを構成するサーバ群に対して新たなサーバを追加することにより、追加前のサーバ群が担当していた負荷の一部を前記新たなサーバに割り当てるスケールアウト処理を実施するスケールアウト部と、
    前記リバランシングが必要と判定されたときに、前記クラスタを構成するサーバ群に対して、前記リバランシング閾値を超過したサーバが担当していた負荷の一部を、前記クラスタを構成する別のサーバに割り当てるリバランシング処理を実施するリバランシング部とを有する管理装置と、
    前記クラスタを構成するサーバ群とがネットワークで接続されて構成され
    前記記憶手段には、各サーバと各サーバの担当データとを対応付けるデータ構造として、環状のID空間内に各サーバを示すIDと、各担当データを示すIDとが配置されているID空間管理情報が記憶されており、
    前記リバランシング部は、前記リバランシング閾値を超過しているサーバに対して、前記環状のID空間において隣接する2つのサーバそれぞれの負荷を取得し、それらの取得した負荷の小さいサーバを、負荷の一部の割り当て先となる前記別のサーバとすることを特徴とする
    クラスタシステム。
  2. 前記負荷判定部は、
    前記負荷値の合計が前記クラスタの負荷基準を超過しているうちは、前記スケールアウト部にスケールアウト処理を実施させ、
    前記負荷値の合計が前記クラスタの負荷基準を超過しなくなった後に、負荷値が前記リバランシング閾値を超過しているサーバについて、前記リバランシング部にリバランシング処理を実施させることを特徴とする
    請求項1に記載のクラスタシステム。
  3. 前記負荷判定部は、負荷値が前記リバランシング閾値を超過しているサーバについて、前記リバランシング部にリバランシング処理を実施させる処理を所定回数実行した後でも、負荷値が前記リバランシング閾値を超過しているサーバが存在するときには、負荷値の合計が前記クラスタの負荷基準を超過していなくても、前記スケールアウト部にスケールアウト処理を実施させることを特徴とする
    請求項2に記載のクラスタシステム。
  4. 記憶手段と、負荷測定部と、負荷判定部と、スケールアウト部と、リバランシング部とを有する管理装置、および、クラスタを構成するサーバ群がネットワークで接続されて構成されるクラスタシステムによって実行され、
    前記記憶手段には、スケールアウト閾値およびリバランシング閾値が格納されており、
    前記負荷測定部は、前記クラスタを構成する各サーバの負荷値を取得し、
    前記負荷判定部は、前記取得された各サーバの負荷値の合計が前記スケールアウト閾値に基づく前記クラスタの負荷基準を超過しているときに、前記クラスタへのスケールアウトが必要と判定するとともに、前記取得された各サーバの負荷値が前記リバランシング閾値を超過しているときに、その超過したサーバについてリバランシングが必要と判定し、
    前記スケールアウト部は、前記スケールアウトが必要と判定されたときに、前記クラスタを構成するサーバ群に対して新たなサーバを追加することにより、追加前のサーバ群が担当していた負荷の一部を前記新たなサーバに割り当てるスケールアウト処理を実施し、
    前記リバランシング部は、前記リバランシングが必要と判定されたときに、前記クラスタを構成するサーバ群に対して、前記リバランシング閾値を超過したサーバが担当していた負荷の一部を、前記クラスタを構成する別のサーバに割り当てるリバランシング処理を実施し、
    前記記憶手段には、各サーバと各サーバの担当データとを対応付けるデータ構造として、環状のID空間内に各サーバを示すIDと、各担当データを示すIDとが配置されているID空間管理情報が記憶されており、
    前記リバランシング部は、前記リバランシング閾値を超過しているサーバに対して、前記環状のID空間において隣接する2つのサーバそれぞれの負荷を取得し、それらの取得した負荷の小さいサーバを、負荷の一部の割り当て先となる前記別のサーバとすることを特徴とする
    負荷分散方法。
JP2014036596A 2014-02-27 2014-02-27 クラスタシステム、および、負荷分散方法 Active JP6116102B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014036596A JP6116102B2 (ja) 2014-02-27 2014-02-27 クラスタシステム、および、負荷分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014036596A JP6116102B2 (ja) 2014-02-27 2014-02-27 クラスタシステム、および、負荷分散方法

Publications (2)

Publication Number Publication Date
JP2015162066A JP2015162066A (ja) 2015-09-07
JP6116102B2 true JP6116102B2 (ja) 2017-04-19

Family

ID=54185125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014036596A Active JP6116102B2 (ja) 2014-02-27 2014-02-27 クラスタシステム、および、負荷分散方法

Country Status (1)

Country Link
JP (1) JP6116102B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107231399B (zh) * 2016-03-25 2020-11-06 阿里巴巴集团控股有限公司 高可用服务器集群的扩容方法以及装置
CN107844376A (zh) * 2017-11-21 2018-03-27 北京星河星云信息技术有限公司 计算系统的资源调配方法、计算系统、介质和服务器
KR102680101B1 (ko) * 2019-01-23 2024-07-02 엔에이치엔 주식회사 소프트웨어를 실행할 수 있는 서버와 통신하는 네트워크 서버 및 그것의 동작 방법
KR102413923B1 (ko) * 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 전력효율을 위한 로드 밸런싱 방법 및 그 시스템
KR102413924B1 (ko) * 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 프로세스 그룹 관리 방법 및 그 시스템
CN113452767B (zh) * 2021-06-23 2022-11-25 新华三大数据技术有限公司 一种应用于服务集群内的负载均衡方法及装置
WO2024122729A1 (ko) * 2022-12-09 2024-06-13 주식회사 컴투버스 물리 시뮬레이션 서버의 스케일링 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086145A (ja) * 2008-09-30 2010-04-15 Hitachi East Japan Solutions Ltd 分散処理システム
JP5540269B2 (ja) * 2011-05-10 2014-07-02 日本電信電話株式会社 データ負荷分散配置システムおよびデータ負荷分散配置方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6116102B2 (ja) クラスタシステム、および、負荷分散方法
US20200287961A1 (en) Balancing resources in distributed computing environments
US10635664B2 (en) Map-reduce job virtualization
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US8424059B2 (en) Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment
CN109684074B (zh) 物理机资源分配方法及终端设备
US8589558B2 (en) Method and system for efficient deployment of web applications in a multi-datacenter system
KR20170029263A (ko) 부하 분산 장치 및 방법
US20180234492A1 (en) Multi-priority service instance allocation within cloud computing platforms
Ajit et al. VM level load balancing in cloud environment
US10356150B1 (en) Automated repartitioning of streaming data
US11614977B2 (en) Optimizing clustered applications in a clustered infrastructure
KR101941282B1 (ko) 가상 데스크톱 서비스 제공 방법 및 장치
US20140215076A1 (en) Allocation of Virtual Machines in Datacenters
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
US20220329651A1 (en) Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same
CN106133693A (zh) 虚拟机的迁移方法、装置及设备
Yao et al. A network-aware virtual machine allocation in cloud datacenter
EP4029197A1 (en) Utilizing network analytics for service provisioning
Mishra et al. Whither tightness of packing? The case for stable VM placement
Li et al. PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters
JP2015103094A (ja) 仮想リソース管理装置、選択方法及び選択プログラム
CN112565388A (zh) 一种基于打分体系的分布式采集服务调度系统及方法
JP2014167713A (ja) 情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法
Tang et al. QKnober: A knob-based fairness-efficiency scheduler for cloud computing with QoS guarantees

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170302

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170320

R150 Certificate of patent or registration of utility model

Ref document number: 6116102

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150