JP6387330B2 - 管理サーバ装置及び管理プログラム - Google Patents

管理サーバ装置及び管理プログラム Download PDF

Info

Publication number
JP6387330B2
JP6387330B2 JP2015163829A JP2015163829A JP6387330B2 JP 6387330 B2 JP6387330 B2 JP 6387330B2 JP 2015163829 A JP2015163829 A JP 2015163829A JP 2015163829 A JP2015163829 A JP 2015163829A JP 6387330 B2 JP6387330 B2 JP 6387330B2
Authority
JP
Japan
Prior art keywords
value
processing node
load
threshold
processing
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
JP2015163829A
Other languages
English (en)
Other versions
JP2017041185A (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 JP2015163829A priority Critical patent/JP6387330B2/ja
Publication of JP2017041185A publication Critical patent/JP2017041185A/ja
Application granted granted Critical
Publication of JP6387330B2 publication Critical patent/JP6387330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、クラウド環境において、複数の処理ノードによって構成される処理ノードクラスタを管理する技術に関する。
近年、サーバ仮想化技術をはじめとしたクラウド技術の進展に伴い、仮想化されたサーバをリモートで利用するWebサービスが一般的になっている。かかるWebサービスでは、プール化された汎用サーバを需要に応じて払い出すIaaS(Infrastructure as a Service)が知られている。
クラウドサービスの提供者は、IaaSサービスを利用することによって、需要(クラウド上で提供するサービスに対するトラフィック、換言すると、処理ノードクラスタにおいて稼働中の処理ノードの負荷)に応じてサーバ規模(処理ノードクラスタの構成、すなわち、処理ノードとして機能するサーバ又は仮想マシンの台数)を柔軟に増減させ、ハードウェアリソースの利用効率を最適化することが可能である。
サーバ規模の変更を可能とする方法としては、クラウドサービスの提供者側で需要変化から予測を行い、オペレータが手動で操作する手法、一定のポリシーを事前に設定し、そのポリシーに従って自動的に操作する手法(オートスケーリング)が挙げられる。
オートスケーリングの具体例としては、負荷状態(CPU使用率、メモリ使用率等)を監視し、負荷状態の値が設定した閾値を上回ったり下回ったりした場合に、所定台数や稼働中の仮想マシンに対する所定割合の仮想マシン(例えば、所定割合20%、仮想マシン数10で運用していた場合には、2台の仮想マシン)を追加又は削除するといった手法が挙げられる(非特許文献1,2参照)。
「Getting Started with Auto Scaling」、[on line]、[平成27年8月17日検索]、インターネット(URL : http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/GettingStartedTutorial.html) 「ニフティクラウドのオートスケール仕様詳細」、[on line]、[平成27年8月17日検索]、インターネット(URL : http://cloud.nifty.com/service/autoscale_detail.htm)
前記した手法において、オートスケーリングの実行後には、処理ノードクラスタ内部でクラスタ構成の変更に伴う処理が実施される。かかるクラスタ構成の変更は、処理ノードクラスタを有するシステムに対してリクエスト処理以外の負荷がかかる処理である。特に、statefulな情報を扱うシステムにおいては、オートスケーリングの実行後に処理ノードクラスタ内部でデータの移行処理を行う必要があるため、追加又は削除される仮想マシンの台数が多い場合には、移行すべきデータが多くなり、データ移行処理の負荷が大きくなってしまい、通常のリクエスト処理が妨げられるおそれがある。
本発明は、前記事情に鑑みて創案されたものであり、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することが可能な管理サーバ装置及び管理プログラムを提供することを目的とする。
前記目的を達成するために、本発明の管理サーバ装置は、複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置であって、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集する負荷情報収集部と、前記負荷値に関する閾値、前記負荷値の目標値である目標負荷値、前記処理ノードクラスタにおいて稼働中の前記処理ノードの数、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数が記憶されるデータ記憶部と、前記負荷値及び前記データ記憶部に記憶された前記閾値を用いて、前記処理ノードの追加又は削除を判定する判定部と、前記判定部の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御部と、前記処理ノードの追加又は削除を行うと判定された場合に、前記データ記憶部に記憶された前記処理ノードの前記負荷値の目標値である目標負荷値、前記処理ノードクラスタにおいて稼働中の前記処理ノードの数、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて前記閾値を更新し、更新された前記閾値を前記データ記憶部に記憶させる閾値算出部と、を備えることを特徴とする。
かかる構成によると、構成変更前の処理ノードの数及び追加又は削除される処理ノードの数に基づいて閾値を更新するので、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、前記閾値算出部は、稼働中の前記処理ノードの数が小さいほど、前記上限閾値及び前記下限閾値が小さくなるように当該上限閾値及び当該下限閾値を更新する構成であってもよい。
かかる構成によると、稼働中の前記処理ノードの数が小さいほど閾値が小さくなるように当該閾値を更新するので、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、稼働中の前記処理ノードの数をN、追加又は削除される前記処理ノードの数をM、稼働中の前記処理ノードの目標負荷値をP、0よりも大きく1以下の定数をαとしたとき、更新後の前記上限閾値T及び前記下限閾値Tは、
={1+α・N/(N+M)}P
={α・N/(N+M)}P
によって表される構成であってもよい。
かかる構成によると、構成変更前の処理ノードの数及び追加又は削除される処理ノードの数を用いた前記式に基づいて上限閾値及び下限閾値を更新するので、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
また、本発明の管理サーバ装置は、複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置であって、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集するとともに、収集された前記負荷値に基づいて、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値の一定期間における初期値と最終値との差分に関連する値である負荷変動関連値を測定する負荷情報収集部と、収集された前記負荷値に関する閾値、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数が記憶されるデータ記憶部と、収集された前記負荷値及び前記データ記憶部に記憶された前記閾値を用いて、前記処理ノードの追加又は削除を判定する判定部と、前記判定部の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御部と、測定された前記負荷変動関連値に応じて前記閾値を補正し、補正された前記閾値を前記データ記憶部に記憶させる閾値算出部と、を備え、前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、前記閾値算出部は、測定された前記負荷変動関連値が大きいほど、補正後の前記上限閾値及び前記下限閾値が補正前の前記上限閾値及び前記下限閾値に対してより小さくなるように、当該上限閾値及び当該下限閾値を補正することを特徴とする。
かかる構成によると、処理ノードの負荷変動関連値に応じて閾値を補正するので、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
また、かかる構成によると、負荷変動関連値が大きいほど、補正後の上限閾値及び下限閾値が補正前の上限閾値及び下限閾値に対してより小さくなるように、当該上限閾値及び当該下限閾値を補正するので、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
また、本発明の管理サーバ装置は、複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置であって、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集するとともに、収集された前記負荷値に基づいて、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値の一定期間における初期値と最終値との差分に関連する値である負荷変動関連値を測定する負荷情報収集部と、収集された前記負荷値に関する閾値、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数が記憶されるデータ記憶部と、収集された前記負荷値及び前記データ記憶部に記憶された前記閾値を用いて、前記処理ノードの追加又は削除を判定する判定部と、前記判定部の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御部と、測定された前記負荷変動関連値に応じて前記閾値を補正し、補正された前記閾値を前記データ記憶部に記憶させる閾値算出部と、を備え、前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、前記上限閾値及び前記下限閾値の補正前の値をT、−1以上1以下の値をとるように正規化された前記負荷変動関連値をR、負荷変動枠の上限値をCMAX、負荷変動枠の下限値をCMIN、CMAX−CMINよりも小さい所定値である負荷変動測定幅をx、aを自然数としたとき、前記上限閾値及び前記下限閾値の補正後の値Tは、
R>CMAXの場合、
=T(1−CMAX
MIN<R≦CMAXである場合において、CMAX−a・x<R≦CMAX−(a−1)・xである場合に、
=T(1−CMAX+a・x)
R≦CMINの場合、
=T(1−CMIN+x)
によって表されることを特徴とする。
かかる構成によると、処理ノードの負荷変動関連値に応じて閾値を補正するので、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
また、かかる構成によると、負荷変動関連値の大きさに応じて上限閾値及び下限閾値を段階的に補正するので、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
また、本発明は、コンピュータを前記した管理サーバ装置として機能させる管理プログラムとしても具現化可能である。
本発明によれば、処理ノードクラスタに対する処理ノードの追加又は削除に伴う処理負荷を一定化した状態において、処理ノードの負荷変動に柔軟に対応することができる。
本発明の実施形態に係る管理サーバ装置を備える処理ノードクラスタ管理システムを示す模式図である。 本発明の実施形態に係る処理ノードとしての仮想マシンを構成する処理ノード用サーバ装置を示す模式図である。 閾値設定の第一の動作例を説明するためのフローチャートである。 閾値設定の第二の動作例を説明するためのフローチャートである。 第二の動作例における負荷変動関連値と閾値との関係を示す図である。 処理ノードの追加(スケールアウト)の動作例を説明するためのフローチャートである。 処理ノードの削除(スケールイン)の動作例を説明するためのフローチャートである。
続いて、本発明の実施形態について図面を参照して説明する。以下の説明では、各装置の本発明に関連する機能部のみを説明しているが、各装置は、それ以外の機能部を備えることも可能である。
図1に示すように、本発明の実施形態に係る処理ノードクラスタ管理システム1は、処理ノードクラスタ2が複数のクライアント装置10からのリクエストをロードバランサ20を介して受信して処理し、処理結果をレスポンスとしてロードバランサ20を介してクライアント装置10へ返信するに際して、需要(処理ノード30の負荷)変動に応じて処理ノードクラスタ2の規模(すなわち、稼働中の処理ノード30の数)を増減させる(オートスケーリング)ためのサーバ管理装置50を備えるシステムである。
[クライアント装置]
クライアント装置10は、処理ノードクラスタ2が提供するサービスを要求するためのリクエストを送信する。クライアント装置10は、入力部11と、表示部12と、制御部13と、を備える。
入力部11は、キーボード、マウス等によって構成されている。表示部12は、モニタである。制御部13は、ユーザによる入力部11の操作に基づいてリクエストを生成し、生成されたリクエストをネットワーク(例えば、インターネット)NW及びロードバランサ20を介して処理ノードクラスタ2へ送信する。また、制御部13は、処理ノードクラスタ2によるリクエストの処理結果(サービス)を受信し、受信した処理結果を表示部12に表示させる。
[ロードバランサ]
ロードバランサ20は、ネットワークNWを介して複数のクライアント装置10と通信可能に接続されており、クライアント装置10によって送信されたリクエストを、ネットワークNWを介して受信し、受信したリクエストを処理ノードクラスタ2内の稼働中の1台の処理ノード30へ転送する。また、ロードバランサ20は、処理ノード30による処理結果を受信し、受信した処理結果を、ネットワークNWを介して、対応するクライアント装置10へ送信する。クライアント装置10からは、ロードバランサ20という出入口を介して、処理ノードクラスタ2があたかも単一の装置として動作しているように見えるため、処理ノードクラスタ管理システム1は、処理ノードクラスタ2の構成を柔軟に変更することができる。
ロードバランサ20がリクエストを処理ノードクラスタ2内の複数の処理ノード30に振り分ける手法としては、負荷分散の観点から複数の処理ノード30間の負荷が均等になる手法が望ましく、簡単な手法としては、リクエストを複数の処理ノード30に対して順番に振り分けるラウンドロビン法等が挙げられる。1台の処理ノード30が1台のクライアント装置10のセッション状態を保持する(stateful)場合、換言すると、1台の処理ノード30が1台のクライアント装置10からのリクエストを処理している場合には、関連リクエストは同一の処理ノード30によって処理されることが望ましいため、ロードバランサ20は、クライアント装置10に固有の情報(例えば、IPアドレス等)、cookieの登録情報等に基づいて、関連リクエストを同一の処理ノード30へ振り分けて送信する構成であってもよい。
(処理ノードクラスタ)
処理ノードクラスタ2は、複数の処理ノード30によって構成されている。図1では1つのロードバランサ20及び処理ノードクラスタ2のセットが図示されているが、管理サーバ装置50は、複数の複数のロードバランサ20及び処理ノードクラスタ2のセットを管理することも可能である。
[処理ノード]
処理ノード30は、ロードバランサ20によって振り分けられたリクエストを受信し、受信したリクエストを処理し、処理結果をレスポンスとして、ロードバランサ20及びネットワークNWを介して、対応するクライアント装置10へ返信する。なお、処理ノード30は、他のデータベース装置(図示せず)等にアクセスし、リクエストの処理に必要なデータの取得、及び、リクエストの処理に伴うデータの更新を行う構成であってもよい。
処理ノード30は、1台のサーバ装置が1台の処理ノード30として機能するように実現されてもよく、仮想化技術を用いることによって、1台のサーバ装置内に設定される複数の仮想マシンがそれぞれ処理ノード30として機能するように実現されてもよい。後者の場合には、1台のサーバ装置内に設定される複数の仮想マシンが、それぞれ異なる処理ノードクラスタ2に所属する(すなわち、異なるサービスに使用される)構成であってもよい。以下、仮想マシンが1台の処理ノード30として機能する場合を例にとって説明する。
[処理ノード用サーバ装置]
本実施形態において、処理ノードクラスタ2は、1台以上の処理ノード用サーバ装置60(図2参照)を備える。
図2に示すように、処理ノード用サーバ装置60は、CPU(Central Processing Unit)、メモリ(ROM(Read-Only Memory)、RAM(Random Access Memory)等)、ハードディスク(記憶手段)、入出力回路等といったハードウェアリソース61によって構成されている。かかる処理ノード用サーバ装置60は、ハードウェアリソース61上に仮想化層62として仮想化ソフトウェア(Hypervisor等)が実装されることによって仮想化されており、機能部として、1つの管理用仮想マシン63と、複数の仮想マシン64と、を備える。
<管理用仮想マシン>
管理用仮想マシン63は、仮想リソース(仮想CPU、仮想メモリ、仮想ディスク、仮想ネットワークインターフェース)63aに、管理用OS(Operating System)63b及び管理用モジュール63cが実装されることによって実現される。
管理用仮想マシン63は、複数の仮想マシン64のゲストOS64bを管理するための管理用OS63bを用いて、ゲストOS64bのリソース(仮想リソース64a)割り当て及び割り当てられたリソースに対するゲストOS64bのインストールを実行する。
また、管理用仮想マシン63は、管理用モジュール63cを用いて、ゲストOS64bのリソース情報を表示するためのコマンドを処理ノード用サーバ装置60に接続された入力部及び表示部(図示せず)に提供したり、ゲストOS64bのリソース情報のグラフを表示部に表示させたりする。
また、管理用仮想マシン63は、複数の仮想マシン64のリソース情報を管理サーバ装置50へ送信する。
<仮想マシン>
仮想マシン64は、仮想リソース(仮想CPU、仮想メモリ、仮想ディスク、仮想ネットワークインターフェース)64aに、ゲストOS64b及び処理アプリケーション64cが実装されることによって実現される。1つの仮想マシン64は、1台の処理ノード30として機能する。
(処理ノードクラスタ管理システム)
図1に示すように、処理ノードクラスタ管理システム1は、処理ノードクラスタ2を管理してオートスケーリングを指示するためのシステムであって、管理端末装置40と、管理サーバ装置50と、を備える。なお、ロードバランサ20、処理ノードクラスタ2、管理端末装置40及び管理サーバ装置50は、クライアント装置10からのリクエストを処理するとともに処理ノードクラスタの自動的な構成変更(オートスケーリング)を実行するオートスケーリングシステムを構成しているといえる。
[管理端末装置]
管理端末装置40は、オペレータによって使用される端末装置である。管理端末装置40は、入力部41と、表示部42と、制御部43と、を備える。
入力部41は、キーボード、マウス等によって構成されている。表示部42は、モニタである。制御部43は、CPU、メモリ(ROM、RAM等)、ハードディスク(記憶手段)等、入出力回路等といったハードウェアリソースによって構成されている。
制御部43は、オペレータによる入力部41の操作に基づいて各種情報を生成し、生成された各種情報を管理サーバ装置50へ送信する。また、制御部43は、管理サーバ装置50による処理ノードクラスタ2の管理状況を受信し、受信した管理状況を表示部42に表示させる。
[管理サーバ装置]
管理サーバ装置50は、複数の処理ノード30によって構成される処理ノードクラスタ2を管理するものであって、処理ノードクラスタ2に対してオートスケーリングを指示する装置である。オートスケーリングとしては、処理ノードクラスタ2に対して処理ノード30を追加するスケールアウト、及び、処理ノードクラスタ2から処理ノード30を削除するスケールインが挙げられる。管理サーバ装置50は、CPU、メモリ(ROM、RAM等)、ハードディスク(記憶手段)等、入出力回路等といったハードウェアリソースによって構成されている。管理サーバ装置50は、機能部として、管理端末装置インターフェース部51と、リソース管理部52と、クラスタ構成判定部53と、リソース制御部54と、を備える。
<管理端末装置インターフェース部>
管理端末装置インターフェース部51は、管理端末装置40とのインターフェースであって、管理端末装置40に対してサービス管理用のポータルサイトを提供する。管理端末装置インターフェース部51は、管理端末装置40の制御部43によって送信された各種情報を受信し、受信した各種情報を後記する記憶部52a,53a,54aに記憶させる。また、管理端末装置インターフェース部51は、記憶部52a,53aに記憶された各種情報に基づいて、処理ノードクラスタ2の管理状況を管理端末装置40へ送信する。
<リソース管理部>
リソース管理部52は、処理ノードクラスタ2のリソース情報を管理する。リソース管理部52は、機能部として、リソース情報記憶部52aと、リソース情報収集部52bと、を備える。
≪リソース情報記憶部≫
リソース情報記憶部52aには、処理ノードクラスタ2のリソース情報が記憶されている。リソース情報は、処理ノード30のハードウェアリソースに関する情報と、当該処理ノード30の現在の使用状況(処理ノードクラスタ2に追加されて稼働中であるか、処理ノードクラスタ2から削除されて停止中であるか、処理ノード30である仮想マシン64とハードウェアリソースとのマッピングの情報等)と、を含む。すなわち、リソース情報は、処理ノードクラスタ2において稼働中の処理ノード30の数Nを含む。
≪リソース情報収集部≫
リソース情報収集部52bは、リソース情報を処理ノードクラスタ2(本実施形態では、処理ノード用サーバ装置60の管理用仮想マシン63)から収集し、収集されたリソース情報をリソース情報記憶部52aに記憶させる。また、リソース情報収集部52bは、収集されたリソース情報のうち、処理ノードクラスタ2において稼働中の処理ノード30の数Nを後記するデータ記憶部53aに記憶させる。
<クラスタ構成判定部>
クラスタ構成判定部53は、処理ノードクラスタ2に対して処理ノード30を追加するか削除するか現状維持とするかを判定する。クラスタ構成判定部53は、機能部として、データ記憶部53aと、負荷情報収集部53bと、判定部53cと、閾値算出部53dと、を備える。
≪データ記憶部≫
データ記憶部53aには、閾値を用いた判定及び閾値の算出のための情報が記憶されている。かかる情報としては、後記する第一の動作例及び第二の動作例で用いられる情報として、閾値T、すなわち、スケールアウトのための閾値である上限閾値T、及び、スケールインのための閾値である下限閾値Tが挙げられる。
また、後記する第一の動作例で用いられる情報として、各処理ノード30の目標負荷値P(例えば、処理ノード30のCPUの使用率70%)、稼働中の処理ノード30の数N、及び、追加又は削除される処理ノード30の数Mが挙げられる。追加又は削除される処理ノード30の数Mは、所定値(予め定められた一定の値)であってもよく、追加又は削除の前の処理ノード30の数Nをパラメータとする式(例えば、Nの所定割合、M=0.2N等)であってもよい。
また、後記する第二の動作例で用いられる情報として、負荷変動枠上限値CMAX、負荷変動枠下限値CMIN、負荷変動測定幅x、及び、負荷情報Qが上限閾値Tと下限閾値Tとの間の範囲から外れた回数をカウントするためのカウンタ閾値Kが挙げられる。負荷変動枠上限値CMAX、負荷変動枠下限値CMIN、及び、負荷変動測定幅xについては、後記する第二の動作例において詳細に説明する。
≪負荷情報収集部≫
負荷情報収集部53bは、稼働中の処理ノード30の負荷に関する情報である負荷情報Q(負荷値、例えば、処理ノード30のCPU使用率)を処理ノードクラスタ2(本実施形態では、処理ノード用サーバ装置60の管理用仮想マシン63又は、各処理ノード30としての仮想マシン64)から収集し、収集された負荷情報Qを判定部53cへ出力する。
負荷情報Qとしては、稼働中の処理ノード30の負荷情報Qの平均値、稼働中の処理ノード30の負荷情報Qの最大値及び最小値、代表の処理ノード30の負荷情報Qの値、等が挙げられる。
また、負荷情報Qの平均値が採用される場合には、負荷情報収集部53bは、稼働中の処理ノード30の負荷情報Qを収集し、収集された負荷情報Qに基づいて平均値を算出する構成であってもよく、処理ノードクラスタ2(本実施形態では、処理ノード用サーバ装置60の管理用仮想マシン63)によって算出されて送信された平均値としての負荷情報Qを収集する構成であってもよい。
また、負荷情報収集部53bは、収集された負荷情報Qに基づいて、所定期間における負荷情報Qの初期値と最終値との差分に関連する値である負荷変動関連値Rを測定し、測定された負荷変動関連値Rを閾値算出部53dへ出力する。
負荷変動関連値Rは、負荷情報Qの増減傾向を示す値であって、負荷情報Qの初期値(所定期間の開始時刻Tの値)と最終値(所定期間の終了時刻Tの値)との差分を用いたものであって、所定期間において負荷情報Qが増加傾向にある場合は正の値をとり、負荷情報Qが減少傾向にある場合は負の値をとる。負荷情報Qは、その絶対値が大きいほど、、増加傾向又は減少傾向が大きいということを示す。かかる負荷情報Rは、所定期間をT(=T−T)、負荷情報Qの初期値をQ、負荷情報Qの最終値をQとしたとき、
R=Q−Q
R=(Q−Q)/T
等とすることができる。
また、負荷変動関連値Rは、第二の動作例で用いるために、−1以上1以下の値をとるように正規化されたものであってもよく、例えば、前記したものを所定期間T内の負荷情報Qの平均値Q等で割った値を採用することも可能である。
例えば、平均値Qが初期値Q及び最終値Qを用いて算出される場合(Q=(Q+Q)/2)には、正規化された負荷変動関連値Rは、
R=(Q−Q)/Q
=2(Q−Q)/(Q+Q
又は、
R=(Q−Q)/(T・Q
=2(Q−Q)/{T(Q+Q)}
等となる。
≪判定部≫
判定部53cは、負荷情報収集部53bから出力された負荷情報Qを取得し、取得された負荷情報Q及びデータ記憶部53aに記憶された閾値T(上限閾値T及び下限閾値T)に基づいて処理ノード30の追加又は削除を判定し、判定結果をリソース制御部54へ出力する。
Q≧Tであれば、判定部53cは、処理ノードクラスタ2に対してM台の処理ノード30を追加すると判定する。
<Q<Tであれば、判定部53cは、処理ノードクラスタ2に対する処理ノード30の追加も削除も必要ない(現状維持)と判定する。
Q≦Tであれば、判定部53cは、処理ノードクラスタ2からM台の処理ノード30を削除すると判定する。
≪閾値算出部≫
閾値算出部53dは、処理ノードクラスタ2に対する処理ノード30の追加又は削除が行われた場合に、処理ノード30の目標負荷値P、処理ノードクラスタ2において稼働中の処理ノード30の数N、及び、処理ノードクラスタ2に追加又は削除される処理ノード30の数Mに基づいて、新たな閾値T,Tを算出し、算出された閾値T,Tをデータ記憶部53aに記憶させる(構成変更前の稼働中の処理ノードの数N及び追加又は削除される処理ノードの数Mに基づいた閾値T,Tの更新)。本実施形態において、閾値算出部53dは、稼働中の処理ノード30の数Nが小さいほど、上限閾値T及び下限閾値Tが小さくなるように上限閾値T及び下限閾値Tを更新する。かかる閾値T,Tの設定手法については、第一の動作例において詳細に説明する。
また、閾値算出部53dは、負荷変動関連値Rに基づいて閾値T(T,T)を算出し、算出された閾値T(T,T)をデータ記憶部53aに記憶させる(負荷変動関連値Rに応じた閾値T,Tの補正)。すなわち、閾値算出部53dは、第一の動作例後に処理ノード30の追加も削除も行われない状態が続く場合に、負荷変動関連値Rに応じて閾値T(T,T)を補正する。本実施形態において、閾値算出部53dは、測定された負荷変動関連値Rが大きいほど、補正後の上限閾値T及び下限閾値Tが補正前の上限閾値T及び下限閾値Tに対してより小さくなるように、当該上限閾値T及び当該下限閾値Tを補正する。かかる閾値Tの設定手法については、第二の動作例において詳細に説明する。
<リソース制御部>
リソース制御部54は、判定部53cの判定結果に基づいて、処理ノードクラスタ2に対する処理ノード30の追加及び削除を実行する。リソース制御部54は、機能部として、イメージファイル記憶部54aと、処理ノード選択部54bと、処理ノード設定部54cと、通知部54dと、を備える。
≪イメージファイル記憶部≫
イメージファイル記憶部54aには、処理ノード30の起動、及び、config等の設定に必要な情報がイメージファイルとして記憶されている。
≪処理ノード選択部≫
処理ノード選択部54bは、判定部53cの判定結果を取得し、取得された判定結果に基づいてリソース情報記憶部52aを参照し、追加又は削除される処理ノード30を選択し、選択結果を処理ノード設定部54c又は通知部54dへ出力する。処理ノード30を追加する場合には、処理ノード選択部54bは、リソース情報記憶部52aを参照することによって、停止中の処理ノード30の中から追加対象の処理ノード30を選択する。処理ノード30を削除する場合には、処理ノード選択部54bは、リソース情報記憶部52aを参照することによって、稼働中の処理ノード30の中から削除対象の処理ノード30を選択する。処理ノード選択部54bは、事前に設定されたAffinityルール等のポリシーに基づいて、追加又は削除される処理ノード30を選択することができる。
≪処理ノード設定部及び通知部≫
処理ノード30を追加する場合には、処理ノード設定部54cは、処理ノード選択部54bの選択結果を取得し、取得された選択結果及びイメージファイル記憶部54aに記憶されたイメージファイルに基づいて、追加対象として選択された処理ノード30の起動及びConfig等の設定を実行し、実行した旨を通知部54dへ出力する。続いて、通知部54dは、起動及び設定を実行した旨を取得し、取得された情報に基づいて、処理ノードクラスタ2に対して、追加する処理ノード30の通知を実行し、かかる通知を受信した処理ノードクラスタ2からのレスポンスを待つ。処理ノードクラスタ2は、通知を受信すると、受信した通知に基づいて、追加対象の処理ノード30が処理ノードクラスタ2に追加されているかを確認し、追加されている場合にレスポンスを返信するとともに、追加された処理ノード30に対するデータ移行等を実行する。また、通知部54d又は処理ノードクラスタ2は、処理ノード30の追加をロードバランサ20に対して通知し、ロードバランサ20は、かかる通知に基づいて自装置内の設定変更を実行する。かかる通知の受信、レスポンスの返信等は、処理ノードクラスタ2の代表処理ノード、又は、管理用仮想マシン63が行う。
処理ノード30を削除する場合には、通知部54dは、処理ノード選択部54bの選択結果を取得し、取得された選択結果に基づいて、処理ノードクラスタ2に対して、削除対象として選択された処理ノード30の通知を実行し、かかる通知を受信した処理ノードクラスタ2からのレスポンスを待つ。処理ノードクラスタ2は、通知を受信すると、受信した通知に基づいて、処理ノード30の削除を実行し、レスポンスを返信する。ここで、処理ノードクラスタ2は、削除対象の処理ノード30で実行中のリクエスト処理を他の稼働中の処理ノード30に移行してから削除対象の処理ノード30を停止させ、その後、削除対象の処理ノード30を停止させ、当該処理ノード30を処理ノードクラスタ2から削除する。また、通知部54d又は処理ノードクラスタ2は、処理ノード30の削除をロードバランサ20に対して通知し、ロードバランサ20は、かかる通知に基づいて自装置内の設定変更を実行する。かかる通知の受信、レスポンスの返信等は、処理ノードクラスタ2の代表処理ノード、又は、管理用仮想マシン63が行う。
通知部54dは、処理ノード30の追加又は削除後の処理ノードクラスタ2からのレスポンスを受信すると、リソース情報収集部52bに対して、処理ノードクラスタ2に対する処理ノード30の追加又は削除の処理が完了した旨を通知する。
また、通知部54dは、かかる通知を受信した後に、データ記憶部53aに記憶された稼働中の処理ノード30の数Nを、追加の場合はN+M、削除の場合はN−Mに更新する。なお、データ記憶部53aに記憶された稼働中の処理ノード30の数Nの更新は、判定部53c又は閾値算出部53dが行う構成であってもよい。また、追加又は削除される処理ノード30の数Mが稼働中の処理ノード30の数Nの所定割合である場合には、通知部54d、判定部53c又は閾値算出部53dがMを算出し、算出されたMをデータ記憶部53aに記憶させる構成であってもよい。
(閾値設定の第一の動作例)
続いて、クラスタ構成判定部53における閾値T(T,T)の設定手法の第一の動作例について、図1及び図3を参照して説明する。第一の動作例において、閾値T,Tは、処理ノードクラスタ2に対して追加又は削除される処理ノード30の数Mに応じて変更される。本動作例において、追加又は削除される処理ノードの数Mは、所定値である。
なお、閾値T,Tの初期値は、最初に稼働される処理ノード30の数がN+M又はN−Mであるとして、後記する式を用いて算出することが可能である。これは、最初の稼働前に0回目の稼働があってN台の処理ノード30が稼働していたと仮定し、そこにM台の処理ノード30が追加されて最初の稼働台数(N+M)となった、又は、M台の処理ノード30が削除されて最初の稼働台数(N−M)となった、と考えて閾値T,Tの初期値を決定したものである。
まず、判定部53cが、負荷情報収集部53bから出力された負荷情報Qを取得し、取得された負荷情報Q及びデータ記憶部53aに記憶された閾値T,Tに基づいて処理ノード30の追加又は削除を判定する(ステップS1)。
Q≧Tであれば、判定部53cは、処理ノードクラスタ2に対してM台の処理ノード30を追加すると判定する(ステップS1でYes)。
<Q<Tであれば、判定部53cは、処理ノードクラスタ2に対する処理ノード30の追加も削除も必要ないと判定する(ステップS1でNo)。
Q≦Tであれば、判定部53cは、処理ノードクラスタ2からM台の処理ノード30を削除すると判定する(ステップS1でYes)。
なお、負荷情報Qが稼働中の処理ノード30の負荷情報の最大値及び最小値である場合には、判定部53cは、負荷情報の最大値と上限閾値Tとを比較するとともに、負荷情報の最小値と下限閾値Tとを比較する構成であってもよい。
処理ノード30の追加又は削除を実行すると判定された場合(ステップS1でYes、処理ノードクラスタ2の構成変更)には、閾値算出部53dが、処理ノード30の目標負荷値P、変更前の稼働中の処理ノード30の数N、及び、追加又は削除される処理ノード30の数Mをデータ記憶部53aから読み出す(ステップS2)。
続いて、閾値算出部53dが、読み出された処理ノード30の目標負荷値P、処理ノードクラスタ2において稼働中の処理ノード30の数N、及び、処理ノードクラスタ2に対して追加又は削除される処理ノード30の数Mに基づいて、閾値T,Tを算出する(ステップS3)。
本動作例では、閾値算出部53dは、下記式に基づいて新たな上限閾値T又は下限閾値Tを算出する。
={1+α・N/(N+M)}P
={α・N/(N+M)}P
ここで、αは、処理ノードクラスタ2ごとに設定された定数である。
定数αは、0よりも大きく1以下の値であって、上限閾値Tが100%を超えないように設定される。
定数αは、閾値T,Tの変更の度合い、すなわち、処理ノードクラスタ2の構成変更の起こりやすさを決めるものであって、オペレータによる管理端末装置40の入力部41の操作によって設定され、データ記憶部53aに記憶されている。
続いて、閾値算出部53dが、算出された閾値T,Tをデータ記憶部53aに記憶させる(ステップS4、閾値T,Tの設定)。
このように、M台の処理ノード30が追加された場合には、閾値算出部53dは、新たな上限閾値Tを算出し、算出された上限閾値Tをデータ記憶部53aに記憶させる(上限閾値Tの設定)。また、M台の処理ノード30が削除された場合には、閾値算出部53dは、新たな下限閾値Tを算出し、算出された下限閾値Tをデータ記憶部53aに記憶させる(下限閾値Tの設定)。
なお、閾値算出部53dによる閾値Tの設定更新は、処理ノード30が追加された場合には上限閾値Tのみを更新する(下限閾値Tは更新せず)とともに、処理ノード30が削除された場合には下限閾値Tのみを更新する(上限閾値Tは更新せず)構成であってもよく、処理ノードが追加された場合にも削除された場合にも上限閾値T及び下限閾値Tの両方を更新する構成であってもよい。
構成変更前の稼働中の処理ノード30の数Nが小さい場合には、追加又は削除される処理ノード30の数Mの比率が相対的に大きいので、追加又は削除に伴うデータ移行等の処理による影響を受けやすい。したがって、管理サーバ装置50は、構成変更前の稼働中の処理ノード30の数Nが小さい場合には、上限閾値Tを小さく設定することによって、負荷情報Qが上限閾値T以上となりやすい状況を作り、処理ノード30の追加を早い段階で実行することが可能となり、処理ノードクラスタ2の構成変更時に追加される処理ノード30の数Mを一定又は所定割合に保った状況でも処理ノードクラスタ2の構成変更を速やかに実行することができる。また、管理サーバ装置50は、構成変更前の稼働中の処理ノード30の数Nが小さい場合には、下限閾値Tを小さく設定することによって、負荷情報Qが下限閾値T以下となりにくい状況を作り、処理ノード30の削除の開始タイミングを遅らせて実行することが可能となり、処理ノードクラスタ2の構成変更時に削除される処理ノード30の数Mを一定又は所定割合に保った状況でも処理ノードクラスタ2の構成変更をリソースに余裕がある状況で実行することができる。すなわち、管理サーバ装置50は、負荷変動に応じた柔軟な処理ノードクラスタ2の構成変更を実現することができる。
(閾値設定の第二の動作例)
続いて、クラスタ構成判定部53における閾値T,Tの設定手法の第二の動作例について、図1、図4及び図5を参照して説明する。第二の動作例において、閾値T(T,T)は、所定期間の負荷情報Qの差分に関連する負荷変動関連値Rに応じて変更される。
まず、負荷情報収集部53bが、負荷情報Qを収集し、収集された負荷情報Qに基づいて、所定期間の負荷変動関連値Rを算出し(負荷変動関連値Rの測定、ステップS11)、算出された負荷変動関連値Rを閾値算出部53dへ出力する。ここで、算出された負荷変動関連値Rは、−1以上1以下の値となるように正規化されている。
続いて、閾値算出部53dが、負荷変動関連値Rを取得するとともに、補正前の閾値T(T,T)をデータ記憶部53aから読み出し、取得された負荷変動関連値R及び読み出された補正前の閾値T(T,T)に基づいて、補正後の閾値T(T,T)を算出する。
ここで、R>CMAXである場合(ステップS12でYes)には、閾値算出部53dは、下記式に基づいて補正後の閾値Tを算出する(ステップS17)。
=T(1−CMAX
MAXは、負荷変動枠の上限値であり、1未満の正の値である。負荷変動関連値RがCMAXよりも大きい場合には、前記した式によって閾値T(T,T)を補正する。
また、R≦CMAXである場合(ステップS12でNo)には、閾値算出部53dは、CMAXをCに代入し(ステップS13)、R>C−xである場合(ステップS14でYes)には、閾値算出部53dは、下記式に基づいて補正後の閾値Tを算出する(ステップS18)。
=T(1−C+x)
xは、負荷変動測定幅であり、前記した負荷変動枠の上限値CMAXと後記する負荷変動枠の下限値CMINとの差CMAX−CMINよりも小さい値に設定される所定値である。Cは、負荷変動枠であり、前記した負荷変動枠の上限値CMAXと後記する負荷変動枠の下限値CMINとの間の値であって、負荷変動測定幅xごとに刻まれる値である。
また、R≦C−xである場合(ステップS14でNo)には、閾値算出部53dは、C−xをCに代入し(ステップS15)、C≧CMINである場合(ステップS16でNo)には、本フローは、ステップS14に戻る。すなわち、ステップS15が繰り返されるたびに、後記する式における自然数aが、1から順に2,3,4,…と1ずつ増えていく。
また、C≦CMINである場合(ステップS16でYes)には、閾値算出部53dは、下記式に基づいて補正後の閾値Tを算出する(ステップS19)。
=T(1−CMIN+x)
MINは、負荷変動枠の下限値であり、CMAXよりも小さい値であって、−1よりも大きいマイナスの値もとり得る(−1<CMIN<CMAX<1)。負荷変動関連値RがCMIN以下である場合には、前記した式によって閾値T(T,T)を補正する。
図5は、負荷変動関連値Rの数直線であって、当該数直線における負荷変動関連値Rの範囲と、当該範囲における補正後の閾値Tと、が記載されている。すなわち、図5に示すように、R>CMAXである場合には、
=T(1−CMAX
となる。
また、R≦CMINである場合には、
=T(1−CMIN+x)
となる。
また、CMIN<R≦CMAXである場合には、CMAX−a・x<R≦CMAX−(a−1)・xである場合(aは自然数)に、
=T(1−CMAX+a・x)
となる。
これらの式が上限閾値T及び下限閾値Tにそれぞれ適用されることによって、補正後の上限閾値T及び下限閾値Tが求められる。
第二の動作例によると、管理サーバ装置50は、負荷変動関連値Rが大きいほど、補正後の閾値T(上限閾値T及び下限閾値T)が補正前の閾値T(上限閾値T及び下限閾値T)に対してより小さくなるように、当該上限閾値T及び当該下限閾値Tを補正する。管理サーバ装置50は、負荷変動関連値Rが大きい場合には、処理ノードクラスタ2の負荷が増加傾向にあって処理ノード30の追加を必要とする状況であるので、特に上限閾値Tを小さく設定することによって、負荷情報Qが上限閾値T以上となりやすい状況を作り、処理ノード30の追加を早い段階で実行することが可能となり、処理ノードクラスタ2の構成変更時に追加される処理ノード30の数Mを一定又は所定割合に保った状況でも処理ノードクラスタ2の構成変更を速やかに実行することができる。また、管理サーバ装置50は、負荷変動関連値Rが小さい場合には、処理ノードクラスタ2の負荷が減少傾向にあって処理ノード30の削除を行いやすい状況であるので、特に下限閾値Tを大きく設定することによって、負荷情報Qが下限閾値T以下となりやすい状況を作り、処理ノード30の削除を早い段階で実行することが可能となり、処理ノードクラスタ2の構成変更時に削除される処理ノード30の数Mを一定又は所定割合に保った状況でも処理ノードクラスタ2の構成変更を速やかに実行することができる。すなわち、管理サーバ装置50は、負荷変動に応じた柔軟な処理ノードクラスタ2の構成変更を実現することができる。
(スケールアウトの動作例)
続いて、リソース制御部54におけるスケールアウトの動作例について、図1及び図6を参照して説明する。
本フローにおいて、負荷情報Qが上限閾値T以上である状態がどれだけ続いているかを示す値であるカウンタ値の初期値は0である。まず、処理ノード選択部54bが、カウンタ値に1を足す(カウンタ更新、ステップS21)。カウンタ値がK以下である場合(ステップS22でNo)には、処理ノード選択部54bが、負荷情報収集部53bから出力された負荷情報Qとデータ記憶部53aから読み出された上限閾値Tとを比較する(ステップS23)。負荷情報Qが上限閾値T未満である場合(ステップS23でNo)には、処理ノード選択部54bが、カウンタ値をリセットして0に戻す(ステップS24)。負荷情報Qが上限閾値T以上である場合(ステップS23でYes)、及び、ステップS24の実行後には、処理ノード選択部54bが、所定時間待機し(ステップS25)、本フローは、ステップS21に戻る。
一方、カウンタ値がKよりも大きい場合(ステップS22でYes)には、処理ノード選択部54bが、前記した手法によって追加する処理ノード30を選択する(ステップS26)。続いて、処理ノード設定部54cが、追加する処理ノード30を起動させ(ステップS27)、さらに、追加する処理ノード30の設定を実行する(ステップS28)。続いて、通知部54dが、処理ノードクラスタ2及びロードバランサ20に対して、追加する処理ノード30を通知する(ステップS29)。
かかる動作例によると、負荷情報Qが上限閾値T以上である状態が所定時間×カウンタ閾値Kを超える時間だけ継続した場合にのみ、処理ノードクラスタ2に対して処理ノード30を追加するので、短時間だけ負荷情報Qが上限閾値T以上となった場合等に処理ノード30を追加することを抑制することができる。
(スケールインの動作例)
続いて、リソース制御部54におけるスケールインの動作例について、図1及び図7を参照して説明する。
本フローにおいて、負荷情報Qが下限閾値T以下である状態がどれだけ続いているかを示す値であるカウンタ値の初期値は0である。まず、処理ノード選択部54bが、カウンタ値に1を足す(カウンタ更新、ステップS31)。カウンタ値がK以下である場合(ステップS32でNo)には、処理ノード選択部54bが、負荷情報収集部53bから出力された負荷情報Qとデータ記憶部53aから読み出された下限閾値Tとを比較する(ステップS33)。負荷情報Qが下限閾値Tよりも大きい場合(ステップS33でNo)には、処理ノード選択部54bが、カウンタ値をリセットして0に戻す(ステップS34)。負荷情報Qが下限閾値T以下である場合(ステップS33でYes)、及び、ステップS34の実行後には、処理ノード選択部54bが、所定時間待機し(ステップS35)、本フローは、ステップS31に戻る。
一方、カウンタ値がKよりも大きい場合(ステップS32でYes)には、処理ノード選択部54bが、前記した手法によって削除する処理ノード30を選択する(ステップS36)。続いて、通知部54dが、処理ノードクラスタ2及びロードバランサ20に対して、削除する処理ノード30を通知する(ステップS37)。続いて、処理ノード設定部54cが、前記通知に対するレスポンスを処理ノードクラスタ2から受信すると、削除する処理ノード30を停止させる(ステップS38)。
かかる動作例によると、負荷情報Qが下限閾値T以下である状態が所定時間×カウンタ閾値Kを超える時間だけ継続した場合にのみ、処理ノードクラスタ2に対して処理ノード30を削除するので、短時間だけ負荷情報Qが下限閾値T以下となった場合等に処理ノード30を削除することを抑制することができる。
本発明の実施形態に係る処理ノードクラスタ管理システム1における管理サーバ装置50は、処理ノードクラスタ2の構成変更が行われる場合に、構成変更前の処理ノード30の数N及び所定値又は所定割合である追加又は削除される処理ノード30の数Mに基づいて閾値を更新するので、処理ノードクラスタ2に対する処理ノード30の追加又は削除に伴う処理負荷を一定化した状態、すなわち、追加又は削除される処理ノード30の数Mが所定値である場合にはかかる所定値に応じた一定の処理負荷量とした状態、また、追加又は削除される処理ノードの数30が所定割合である場合には、かかる所定割合に応じて一定割合で増減する処理負荷量とした状態において、負荷変動に応じた柔軟な処理ノードクラスタ2の構成変更を実現することができる。
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、処理ノード30の負荷情報Qは、CPU使用率に限定されず、メモリ使用率等であってもよい。
また、第一の動作例及び第二の動作例における閾値の算出手法は、前記したものに限定されない。
例えば、第一の動作例において、処理ノード30を削除する場合には、更新後の閾値T,T
={1+α・(N−M)/N}P
={α・(N−M)/N}P
とする構成であってもよく、処理ノード30を追加する場合には、
={1+α・N/(N+M)}P
とする(下限閾値Tは更新せず)とともに、処理ノード30を削除する場合には、
={α・(N−M)/N}P
とする(上限閾値Tは更新せず)構成であってもよい。
また、第一の動作例において、追加又は削除される処理ノード30の数Mが所定割合である場合における閾値T,Tの更新式は、稼働中の処理ノード30の数Nが小さいほど、上限閾値T及び下限閾値Tが小さくなるように当該上限閾値T及び当該下限閾値Tを更新可能な式に適宜設定することが可能である。
また、本発明は、コンピュータを前記した管理サーバ装置50として機能させる管理プログラムとしても具現化可能である。
1 処理ノードクラスタ管理システム
2 処理ノードクラスタ
10 クライアント装置
20 ロードバランサ
30 処理ノード
40 管理端末装置
50 管理サーバ装置
53a データ記憶部
53b 負荷情報収集部
53c 判定部
53d 閾値算出部
54 リソース制御部

Claims (8)

  1. 複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置であって、
    前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集する負荷情報収集部と、
    前記負荷値に関する閾値、前記負荷値の目標値である目標負荷値、前記処理ノードクラスタにおいて稼働中の前記処理ノードの数、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数が記憶されるデータ記憶部と、
    前記負荷値及び前記データ記憶部に記憶された前記閾値を用いて、前記処理ノードの追加又は削除を判定する判定部と、
    前記判定部の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御部と、
    前記処理ノードの追加又は削除を行うと判定された場合に、前記データ記憶部に記憶された前記処理ノードの前記負荷値の目標値である目標負荷値、前記処理ノードクラスタにおいて稼働中の前記処理ノードの数、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて前記閾値を更新し、更新された前記閾値を前記データ記憶部に記憶させる閾値算出部と、
    を備えることを特徴とする管理サーバ装置。
  2. 前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、
    前記閾値算出部は、稼働中の前記処理ノードの数が小さいほど、前記上限閾値及び前記下限閾値が小さくなるように当該上限閾値及び当該下限閾値を更新する
    ことを特徴とする請求項1に記載の管理サーバ装置。
  3. 前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、
    稼働中の前記処理ノードの数をN、追加又は削除される前記処理ノードの数をM、稼働中の前記処理ノードの目標負荷値をP、0よりも大きく1以下の定数をαとしたとき、
    更新後の前記上限閾値T及び前記下限閾値Tは、
    ={1+α・N/(N+M)}P
    ={α・N/(N+M)}P
    によって表される
    ことを特徴とする請求項1又は請求項2に記載の管理サーバ装置。
  4. 複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置であって、
    前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集するとともに、収集された前記負荷値に基づいて、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値の一定期間における初期値と最終値との差分に関連する値である負荷変動関連値を測定する負荷情報収集部と、
    収集された前記負荷値に関する閾値、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数が記憶されるデータ記憶部と、
    収集された前記負荷値及び前記データ記憶部に記憶された前記閾値を用いて、前記処理ノードの追加又は削除を判定する判定部と、
    前記判定部の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御部と、
    測定された前記負荷変動関連値に応じて前記閾値を補正し、補正された前記閾値を前記データ記憶部に記憶させる閾値算出部と、
    備え、
    前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、
    前記閾値算出部は、測定された前記負荷変動関連値が大きいほど、補正後の前記上限閾値及び前記下限閾値が補正前の前記上限閾値及び前記下限閾値に対してより小さくなるように、当該上限閾値及び当該下限閾値を補正する
    ことを特徴とする管理サーバ装置。
  5. 複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置であって、
    前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集するとともに、収集された前記負荷値に基づいて、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値の一定期間における初期値と最終値との差分に関連する値である負荷変動関連値を測定する負荷情報収集部と、
    収集された前記負荷値に関する閾値、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数が記憶されるデータ記憶部と、
    収集された前記負荷値及び前記データ記憶部に記憶された前記閾値を用いて、前記処理ノードの追加又は削除を判定する判定部と、
    前記判定部の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御部と、
    測定された前記負荷変動関連値に応じて前記閾値を補正し、補正された前記閾値を前記データ記憶部に記憶させる閾値算出部と、
    備え、
    前記判定部は、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、
    前記上限閾値及び前記下限閾値の補正前の値をT 、−1以上1以下の値をとるように正規化された前記負荷変動関連値をR、負荷変動枠の上限値をC MAX 、負荷変動枠の下限値をC MIN 、C MAX −C MIN よりも小さい所定値である負荷変動測定幅をx、aを自然数としたとき、
    前記上限閾値及び前記下限閾値の補正後の値T は、
    R>C MAX の場合、
    =T (1−C MAX
    MIN <R≦C MAX である場合において、C MAX −a・x<R≦C MAX −(a−1)・xである場合に、
    =T (1−C MAX +a・x)
    R≦C MIN の場合、
    =T (1−C MIN +x)
    によって表されることを特徴とする管理サーバ装置。
  6. 複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置としてのコンピュータを、
    前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集する負荷情報収集手段、
    前記負荷値及びデータ記憶部に記憶された前記負荷値に関する閾値を用いて、前記処理ノードの追加又は削除を判定する判定手段、
    前記判定手段の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御手段、
    前記処理ノードの追加又は削除を行うと判定された場合に、前記データ記憶部に記憶された前記処理ノードの前記負荷値の目標値である目標負荷値、前記処理ノードクラスタにおいて稼働中の前記処理ノードの数、及び、前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて前記閾値を更新し、更新された前記閾値を前記データ記憶部に記憶させる閾値算出手段、
    として機能させるための管理プログラム。
  7. 複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置としてのコンピュータを、
    前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集するとともに、収集された前記負荷値に基づいて、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値の一定期間における初期値と最終値との差分に関連する値である負荷変動関連値を測定する負荷情報収集手段、
    収集された前記負荷値及びデータ記憶部に記憶された前記負荷値に関する閾値を用いて、前記処理ノードの追加又は削除を判定する判定手段、
    前記判定手段の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御手段、
    測定された前記負荷変動関連値に応じて前記閾値を補正し、補正された前記閾値を前記データ記憶部に記憶させる閾値算出手段、
    として機能させるための管理プログラムであって、
    前記判定手段により、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、
    前記閾値算出手段により、測定された前記負荷変動関連値が大きいほど、補正後の前記上限閾値及び前記下限閾値が補正前の前記上限閾値及び前記下限閾値に対してより小さくなるように、当該上限閾値及び当該下限閾値を補正する
    ことを特徴とする管理プログラム。
  8. 複数の処理ノードによって構成される処理ノードクラスタに対して前記処理ノードの追加及び削除を指示する管理サーバ装置としてのコンピュータを、
    前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値を収集するとともに、収集された前記負荷値に基づいて、前記処理ノードクラスタにおいて稼働中の前記処理ノードの負荷値の一定期間における初期値と最終値との差分に関連する値である負荷変動関連値を測定する負荷情報収集手段、
    収集された前記負荷値及びデータ記憶部に記憶された前記負荷値に関する閾値を用いて、前記処理ノードの追加又は削除を判定する判定手段、
    前記判定手段の判定結果、及び、前記データ記憶部に記憶された前記処理ノードクラスタに追加又は削除される前記処理ノードの数に基づいて、前記処理ノードクラスタに対して前記処理ノードの追加及び削除のいずれかを指示するリソース制御手段、
    測定された前記負荷変動関連値に応じて前記閾値を補正し、補正された前記閾値を前記データ記憶部に記憶させる閾値算出手段、
    として機能させるための管理プログラムであって、
    前記判定手段により、前記負荷値が前記閾値の一つである上限閾値以上である場合に、前記処理ノードを追加すると判定するとともに、前記負荷値が前記閾値の一つである下限閾値以下である場合に、前記処理ノードを削除すると判定し、
    前記上限閾値及び前記下限閾値の補正前の値をT 、−1以上1以下の値をとるように正規化された前記負荷変動関連値をR、負荷変動枠の上限値をC MAX 、負荷変動枠の下限値をC MIN 、C MAX −C MIN よりも小さい所定値である負荷変動測定幅をx、aを自然数としたとき、
    前記上限閾値及び前記下限閾値の補正後の値T は、
    R>C MAX の場合、
    =T (1−C MAX
    MIN <R≦C MAX である場合において、C MAX −a・x<R≦C MAX −(a−1)・xである場合に、
    =T (1−C MAX +a・x)
    R≦C MIN の場合、
    =T (1−C MIN +x)
    によって表されることを特徴とする管理プログラム。
JP2015163829A 2015-08-21 2015-08-21 管理サーバ装置及び管理プログラム Active JP6387330B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015163829A JP6387330B2 (ja) 2015-08-21 2015-08-21 管理サーバ装置及び管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015163829A JP6387330B2 (ja) 2015-08-21 2015-08-21 管理サーバ装置及び管理プログラム

Publications (2)

Publication Number Publication Date
JP2017041185A JP2017041185A (ja) 2017-02-23
JP6387330B2 true JP6387330B2 (ja) 2018-09-05

Family

ID=58206621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015163829A Active JP6387330B2 (ja) 2015-08-21 2015-08-21 管理サーバ装置及び管理プログラム

Country Status (1)

Country Link
JP (1) JP6387330B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160149A (ja) 2017-03-23 2018-10-11 富士ゼロックス株式会社 情報処理システム、オートスケーリング連携装置及びプログラム
US10599499B2 (en) 2017-09-30 2020-03-24 Oracle International Corporation API registry in a container platform providing property-based API functionality
US10824413B2 (en) * 2018-07-23 2020-11-03 International Business Machines Corporation Maintenance of computing nodes concurrently in a number updated dynamically

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5378946B2 (ja) * 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法
JP2012181580A (ja) * 2011-02-28 2012-09-20 Fujitsu Ltd リソース制御装置、リソース制御方法、及びリソース制御プログラム
JP2014147003A (ja) * 2013-01-30 2014-08-14 Nec Corp Ict資源管理装置

Also Published As

Publication number Publication date
JP2017041185A (ja) 2017-02-23

Similar Documents

Publication Publication Date Title
US10884802B2 (en) Message-based computation request scheduling
US10798016B2 (en) Policy-based scaling of network resources
US10102040B2 (en) Adjusting variable limit on concurrent code executions
US9977691B2 (en) Adjusting variable limit on concurrent code executions based on communication between frontends
US10616370B2 (en) Adjusting cloud-based execution environment by neural network
US20160156567A1 (en) Allocation method of a computer resource and computer system
US7634560B2 (en) Method for measuring server performance, system for measuring server performance and computer programs therefor
JP6548540B2 (ja) 管理システムおよび管理システムの制御方法
KR20170029263A (ko) 부하 분산 장치 및 방법
CN107273211B (zh) 一种云计算环境下基于虚拟机的数据处理方法
JP6387330B2 (ja) 管理サーバ装置及び管理プログラム
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
JP2019008454A (ja) 情報処理システムおよびリソース割り当て方法
JP2009086741A (ja) 異種ノード混在の分散環境における分散処理制御方法、そのシステム及びそのプログラム
WO2019034091A1 (zh) 分布式数据计算的分配方法、装置、服务器及存储介质
JP2011013711A (ja) サービスシステム、クラウドコンピューティングシステム及びサービスプログラム
JP5879117B2 (ja) 情報処理システムおよび運用管理方法
JP2017215933A (ja) 情報処理装置、及び、負荷分散制御方法
JP5997659B2 (ja) 分散処理システムおよび分散処理方法
Guo et al. Model-driven geo-elasticity in database clouds
JP2016153929A (ja) 分散システム、負荷分散方法及びプログラム
JP6080217B2 (ja) トラヒック監視システム、そのプログラムおよびトラヒック監視方法
US20230396677A1 (en) Computing power information processing method, first network device, and system
KR20180029635A (ko) 자원 예측 장치 및 클라우드 서버
JP5488029B2 (ja) 分散処理システム、分散処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180813

R150 Certificate of patent or registration of utility model

Ref document number: 6387330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150