JP2008234356A - サーバ検出システム及びプログラム - Google Patents

サーバ検出システム及びプログラム Download PDF

Info

Publication number
JP2008234356A
JP2008234356A JP2007073610A JP2007073610A JP2008234356A JP 2008234356 A JP2008234356 A JP 2008234356A JP 2007073610 A JP2007073610 A JP 2007073610A JP 2007073610 A JP2007073610 A JP 2007073610A JP 2008234356 A JP2008234356 A JP 2008234356A
Authority
JP
Japan
Prior art keywords
server
load
processing
servers
application
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.)
Pending
Application number
JP2007073610A
Other languages
English (en)
Inventor
Takuya Kumagai
卓也 熊谷
Masa Tanaka
雅 田中
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2007073610A priority Critical patent/JP2008234356A/ja
Publication of JP2008234356A publication Critical patent/JP2008234356A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】縮退可能サーバを高い信頼性で検出すること。
【解決手段】サーバ10(#1,#2,・・・#n)の各々について、アプリケーションaに関する負荷情報をロードバランサ12を介して取得し、負荷情報と、他のアプリケーションとの依存関係とから、処理停止が可能と推定されるサーバ10(#1)を決定し、サーバ10(#1)をロードバランサ12による制御から切り離す。その後、アプリケーションaによる処理を待機させ、待機後、サーバ10(#2,・・・#n)の処理負荷に基づいて、サーバ10(#1)によるアプリケーションaの処理停止が可能かを判定し、可能な場合には、サーバ1(#1)によるアプリケーションaの処理を停止させ、不可な場合には、サーバ10(#1)を、ロードバランサ12によって制御されるように復帰させる。
【選択図】 図1

Description

本発明は、複数のサーバと、前記複数のサーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させる負荷分散クラスタシステムに適用され、前記複数のサーバのうち、前記アプリケーションによる処理を停止させることが可能なサーバ、すなわち縮退可能サーバを検出するシステム及びプログラムに関する。
負荷分散クラスタシステムとは、複数のサーバから構成され、同じアプリケーションを複数のサーバで同時並列に稼動させて、負荷を分散させるシステムである。この負荷分散クラスタシステムにおいて、各サーバのアプリケーションの負荷状態を監視し、負荷状態に応じて、サービスの開始、停止、リセット(強制停止)を制御する機能をワークロード管理と呼ぶ。ここで、サービスとは、アプリケーション、共有ディスク、IPアドレスなどを運用するために必要な制御対象を総称している。
この種のワークロード管理におけるサービスの制御は、例えば特許文献1や特許文献2により知られており、従来、アプリケーションの監視を行うモジュールは、アプリケーションの負荷状態を判断するための情報として、各サーバ(または負荷分散装置)からアプリケーションが使用しているCPU、メモリ、ディスクI/O、コネクション数、レスポンスタイムなどを収集している(対象アプリケーションにより収集情報は異なる)。ワークロード管理では、収集した負荷情報から、高負荷であると判断したら、サービスを実行しているノード数(サービス実行ノード数)を増加させ、低負荷であると判断したら、サービスを実行しているノード数を減少させる処理を行う。このワークロード管理により、アプリケーションが使用するサーバ資源を有効利用し、高いサービスレベルの維持を実現する。サービス実行サーバ数の増減方法には、大きく以下の2通りある。
1)OSが起動している状態で、サービスの開始・停止を行う。
2)サービスの開始・停止に加え、OSの起動・シャットダウンまで行う。
特開2002−163241号公報 特開2005−346204号公報
しかしながら、このような従来のワークロード管理におけるサービスの制御では、以下のような問題がある。
すなわち、従来方式では、あるサーバを低負荷であると判断し、縮退処理(サービスを停止させてサービス実行サーバ数を減少させる処理)を行った場合、他のサーバにクライアントからのリクエストが分散され、他のサーバが高負荷になり、負荷を減少させるために再びサーバの追加(サービスを開始させてサービス実行サーバ数を増加させる)が行われる。これは、従来収集している負荷情報からは、サーバの縮退による別のサーバへの影響が正確に判断できないためである。
このようなケースでは、サービスの開始、停止が繰り返されることになり、アプリケーションの開始、停止や共有ディスクの制御などを行うため、エラーが発生する可能性がある処理を頻繁に実行することになる。そのため、短い期間でサービスの開始、停止を繰り返し行うと、アプリケーションの開始、停止エラーやディスクの制御エラーにより、障害が発生する可能性が高くなる。特に、OSの起動・シャットダウンまで行う場合には、障害発生の確率が大きくなり、サービス停止時間が長くなる。
上記問題は、縮退処理を行う前に、他サーバに最も影響を及ぼさないサーバを検出することにより解決できる。このような縮退可能サーバが検出できれば、縮退処理を実行後に他のサーバが高負荷になる可能性が低くなるため、再びサーバの追加処理が発生しなくなる。
本発明はこのような事情に鑑みてなされたものであり、低負荷であると推定されるサーバを一時的に切り離すことにより、高い信頼性で、縮退可能サーバを検出することが可能なサーバ検出システム及びプログラムを提供することを目的とする。
上記の目的を達成するために、本発明では、以下のような手段を講じる。
すなわち、請求項1の発明は、複数のサーバと、複数のサーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように複数のサーバを制御する負荷分散装置とを備えた負荷分散クラスタシステムに適用され、複数のサーバのうち、アプリケーションによる処理を停止させることが可能なサーバを検出するシステムである。このシステムは、複数のサーバのおのおのについて、アプリケーションによる処理に関する負荷情報を負荷分散装置を介して取得する取得手段と、取得手段によって取得された負荷情報と、他のアプリケーションとの依存関係とから、処理を停止させることが可能であると推定されるサーバを決定する推定手段と、推定手段によって決定されたサーバを、負荷分散装置による制御から切り離す切離手段と、切離手段による切り離し後、複数のサーバのうち、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷が安定するまでアプリケーションによる処理を待機させる待機手段と、待機手段による待機後、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷に基づいて、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止することが可能であるかを判定する判定手段と、判定手段によって停止可能と判定された場合には、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止させる停止手段と、判定手段によって停止不可と判定された場合には、負荷分散装置から切り離されたサーバを、負荷分散装置によって制御されるように復帰させる復帰手段とを備える。
請求項2の発明は、1又は複数のサーバからなる複数のサーバ層と、複数のサーバ層に含まれる各サーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように各サーバ層にそれぞれ設けられ、複数のサーバを制御する複数の負荷分散装置とを備えた負荷分散クラスタシステムに適用され、複数のサーバのうち、アプリケーションによる処理を停止させることが可能なサーバを検出するシステムである。このシステムは、複数のサーバのおのおのについて、アプリケーションにより処理に関する負荷情報を各負荷分散装置を介して取得する取得手段と、取得手段によって取得された負荷情報から、サーバ層毎の処理負荷の平均値を求め、平均値が最も低いサーバ層を決定する決定手段と、決定手段によって決定されたサーバ層に含まれるサーバのうち、取得手段によって取得された負荷情報と、他のアプリケーションとの依存関係とから、処理を停止させることが可能であると推定されるサーバを決定する推定手段と、推定手段によって決定されたサーバを、負荷分散装置による制御から切り離す切離手段と、切離手段による切り離し後、切り離されたサーバが属するサーバ層に属する複数のサーバのうち、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷が安定するまでアプリケーションによる処理を待機させる待機手段と、待機手段による待機後、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷に基づいて、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止することが可能であるかを判定する判定手段と、判定手段によって停止可能と判定された場合には、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止させる停止手段と、判定手段によって停止不可と判定された場合には、負荷分散装置から切り離されたサーバを、負荷分散装置によって制御されるように復帰させる復帰手段とを備える。そして、復帰手段によってサーバが負荷分散装置によって制御されるように復帰された場合には、決定手段は、平均値が次に低いサーバ層を決定し、推定手段、切離手段、待機手段、判定手段、停止手段、及び復帰手段は、決定手段によって決定された平均値が次に低いサーバ層を対象とした処理を行うことを繰り返すようにしている。
請求項3の発明は、判定手段は、処理負荷が、予め定めた閾値を超えない場合に、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止することが可能であると判定する請求項1又は請求項2のサーバ検出システムである。
請求項4の発明は、複数のサーバと、複数のサーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように複数のサーバを制御する負荷分散装置とを備えた負荷分散クラスタシステムに適用され、複数のサーバのうち、アプリケーションによる処理を停止させることが可能なサーバを検出するプログラムである。このプログラムは、複数のサーバのおのおのについて、アプリケーションにより処理に関する負荷情報を負荷分散装置を介して取得する機能、取得された負荷情報と、他のアプリケーションとの依存関係とから、処理を停止させることが可能であると推定されるサーバを決定する機能、決定されたサーバを、負荷分散装置による制御から切り離す機能、切り離し後、複数のサーバのうち、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷が安定するまでアプリケーションによる処理を待機させる機能、待機後、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷に基づいて、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止することが可能であるかを判定する機能、停止可能と判定された場合には、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止させる機能、停止不可と判定された場合には、負荷分散装置から切り離されたサーバを、負荷分散装置によって制御されるように復帰させる機能をコンピュータに実現させるためのプログラムである。
請求項5の発明は、1又は複数のサーバからなる複数のサーバ層と、複数のサーバ層に含まれる各サーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように各サーバ層にそれぞれ設けられ、複数のサーバを制御する複数の負荷分散装置とを備えた負荷分散クラスタシステムに適用され、複数のサーバのうち、アプリケーションによる処理を停止させることが可能なサーバを検出するプログラムである。このプログラムは、複数のサーバのおのおのについて、アプリケーションによる処理に関する負荷情報を各負荷分散装置を介して取得する機能、取得された負荷情報から、サーバ層毎の処理負荷の平均値を求め、平均値が最も低いサーバ層を決定する機能、決定されたサーバ層に含まれるサーバのうち、取得された負荷情報と、他のアプリケーションとの依存関係とから、処理を停止させることが可能であると推定されるサーバを決定する機能、決定されたサーバを、負荷分散装置による制御から切り離す機能、切り離し後、切り離されたサーバが属するサーバ層に属する複数のサーバのうち、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷が安定するまでアプリケーションによる処理を待機させる機能、待機後、負荷分散装置から切り離されたサーバ以外のサーバの処理負荷に基づいて、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止することが可能であるかを判定する機能、停止可能と判定された場合には、負荷分散装置から切り離されたサーバによるアプリケーションの処理を停止させる機能、停止不可と判定された場合には、負荷分散装置から切り離されたサーバを、負荷分散装置によって制御されるように復帰させる機能をコンピュータに実現させ、サーバが負荷分散装置によって制御されるように復帰された場合には、平均値が次に低いサーバ層を対象に各機能を繰り返すプログラムである。
本発明によれば、低負荷であると推測されるサーバを一時的に切り離すことにより、高い信頼性で、縮退可能サーバを検出することが可能なサーバ検出システム及びプログラムを実現することができる。
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るサーバ検出システムが適用される負荷分散クラスタシステムの構成例を示す機能ブロック図である。このブロック図では、一例として、単一のアプリケーションaにより処理がなされる場合を示している。
すなわち、本実施の形態に係るサーバ検出システムは、図1に示すように、複数のサーバ(以下、「ノード」とも称する)10(#1,#2,・・・,#n)と、これら複数のノード10(#1,#2,・・・,#n)において同時並列して動作するアプリケーションaによる処理負荷を分散させるように各ノード10(#1,#2,・・・,#n)を制御するロードバランサ12とを備えた負荷分散クラスタシステム14に適用され、複数のノード10(#1,#2,・・・,#n)のうち、アプリケーションaによる処理を停止させることが可能なノード(縮退可能サーバ)を検出するサーバ検出システムであり、図1におけるノード10(#A)に備えられる。各ノード10(#1,#2,・・・,#n)の負荷制御及び負荷情報の取得を行うロードバランサ12及びノード10(#A)は、通信ネットワーク16に接続されている。この通信ネットワーク16は、イーサネット(登録商標)等のLAN、あるいは公衆回線や専用回線を介して複数のLANが接続されるWAN等からなる。LANの場合には、必要に応じてルータを介した多数のサブネットから構成される。また、WANの場合には、公衆回線に接続するためのファイアウォール等を適宜備えているが、ここではその図示及び詳細説明を省略する。
この負荷分散クラスタシステム14では、負荷が低下した場合、サーバ検出システムによって、ノード10(#1,#2,・・・,#n)のうちの何れかが停止される。
これを実現するために、各ノード10(#1,#2,・・・,#n)及びノード10(#A)は、それぞれ図2及び図3に示すような構成をしている。
まず図2に示すように、各ノード10(#1,#2,・・・,#n)はそれぞれ、サービス制御部22を実行させるクラスタデーモン20と、クラスタデーモン20による制御の下、サービス制御を行うサービス制御部22とから構成している。サービスの制御対象としては、例えば、監視対象のアプリケーションaと、そのアプリケーションaで使用するIPアドレス(仮想IPアドレス)bがある。
一方、図3に示すように、ノード10(#A)は、クラスタデーモン30と、負荷情報取得部32と、負荷情報分析部34と、縮退可能サーバ分析部36とから構成している。
クラスタデーモン30は、負荷情報取得部32及び負荷情報分析部34を実行させる。
負荷情報取得部32は、クラスタデーモン30によって実行され、対象とするアプリケーションaの負荷情報をロードバランサ12を介して取得し、負荷情報分析部34に通知する。負荷情報の取得は、ロードバランサ12が収集した各ノード10(#1,#2,・・・,#n)の負荷情報を取得する他に、各ノード10(#1,#2,・・・,#n)のアプリケーションaから直接取得するようにしても良い。
負荷情報分析部34は、クラスタデーモン30によって実行され、負荷情報取得部32からノード10(#1,#2,・・・,#n)毎の負荷情報を受け取り、負荷情報からノード10(#1,#2,・・・,#n)全体の負荷状態を分析する。そして、ノード10(#1,#2,・・・,#n)全体が高負荷となる閾値(あらかじめユーザが設定しておく)を超えた場合は高負荷であると判断し、負荷分散クラスタシステム14にサービス実行ノード数の増加リクエストを行う。
一方、ノード全体が低負荷となる閾値(あらかじめユーザが設定しておく)を下回った場合は、各ノード10(#1,#2,・・・,#n)の負荷情報や他のアプリケーションとの依存関係などから縮退可能サーバと推定されるノードを指定して、縮退可能サーバ分析部36を呼び出す(通常、ロードバランサ12によって負荷が分散されているため、各ノード10(#1,#2,・・・,#n)の負荷はほぼ均一になっていると考えられるが、最も負荷が低いノードを選択するものとする。)。そして、縮退可能サーバ分析部36の分析結果により、指定したノードが縮退可能ならば、そのノードのサービスを停止させ、縮退不可能ならば、低負荷と判断する閾値が高い可能性あるため、閾値を下げる。
縮退可能サーバ分析部36は、負荷情報分析部34から実行され、図4に示すような処理を行い、指定されたノード(以下、例としてノード10(#1)として説明する)が縮退可能であるかを分析する。すなわち、図4に示すように、負荷情報分析部34は、先ず指定されたノード10(#1)のIPアドレスをダウンさせる(ステップS1)。これによって、指定されたノード10(#1)を、ロードバランサ12による制御から切り離す。ただし、このIPアドレスは、アプリケーションa用の仮想IPアドレスであり、負荷分散クラスタシステム14との通信で使用するIPアドレスとは異なるため、負荷分散クラスタシステム14からは、このノード10(#1)にアクセスすることができる。
このように、1台のノード10(#1)をロードバランサ12から切り離すことにより、このノード10(#1)で処理されていたクライアントからのリクエストが他のノード10(#2,・・・#n)に分散されるため、切り離し直後はこれらノード10(#2,・・・#n)による負荷変動が大きくなる。そのため、縮退可能サーバ分析部36は、他のノード10(#2,・・・#n)で実行しているアプリケーションaの負荷が安定するまでスリープする(ステップS2)。どれくらいの時間で負荷が安定するかは、サーバのスペックやアプリケーションの種類によって異なり、一概には言えない。したがって、ここでは、一例として、ユーザがあらかじめ設定しておいた時間スリープするものとする。
次に、ステップS2のスリープ後、負荷が安定した段階で、ロードバランサ12から切り離されたノード10(#1)以外のノード10(#2,・・・#n)の処理負荷に基づいて、ノード10(#1)によるアプリケーションaの処理を停止することが可能であるかを判定する。この判定基準としては、例えば、高負荷と判定される閾値を予め定めておき、処理負荷が、この閾値を超えていない場合(ステップS3:Yes)には縮退可能と判定し(ステップS4)、ノード10(#1)によるアプリケーションaの処理を停止させる。
一方、閾値を超えた場合(ステップS3:No)には、縮退不可能と判定し、ノード10(#1)のIPアドレスを元に戻し、ノード10(#1)を、ロードバランサ12によって再び制御されるように復帰させる(ステップS5)。
このようなサーバ検出システムは、例えば磁気ディスク等の記録媒体に記録されたプログラムや、インターネット等の通信ネットワークを介してダウンロードしたプログラムを読み込み、このプログラムによって動作が制御されるコンピュータによって実現される。
また、このプログラムは、コンピュータに実行させることができるものであって、例えば磁気ディスク(フロッピー(登録商標)ディスク、ハ一ドディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記録媒体に格納し、またインターネット等の通信媒体により伝送して頒布することもできる。
なお、記録媒体に格納されるプログラムは、コンピュータに実行させるソフトウエア手段(実行プログラムのみならずテーブルやデータ構造も含む)をコンピュータ内に構成させる設定プログラムをも含む。
また、このプログラムは、記録媒体から、あるいは通信媒体からコンピュータに読み込まれると、このコンピュータを動作させることによって上述した処理を実行させる。
次に、以上のように構成した本実施の形態に係るサーバ検出システムの動作について図5のフローチャートを用いて説明する。
まず、ノード10(#1,#2,・・・#n)のうち、予め設定されたノードに対するサービスがクラスタデーモン20によって開始され、運用状態とされる(ステップS11)。
次に、サーバ検出システムとして動作するノード10(#A)において、クラスタデーモン30によって、負荷情報取得部32および負荷情報分析部34が実行される(ステップS12)。
次のステップS13では、負荷情報取得部32および負荷情報分析部34において、負荷分散クラスタシステム14から停止要求を受け取るまで、下記ステップS14〜ステップS19の処理が繰り返される。
そして、ステップS14では、負荷情報取得部32によって、対象とするアプリケーションaの負荷情報がロードバランサ12を介して取得され、更に、負荷情報分析部34に通知される。負荷情報の取得は、ロードバランサ12が収集した各ノード10(#1,#2,・・・,#n)の負荷情報を取得する他に、各ノード10(#1,#2,・・・,#n)のアプリケーションaから直接取得するようにしても良い。また、負荷情報分析部34では、負荷情報取得部32からのノード10(#1,#2,・・・,#n)毎の負荷情報が受け取られ、受け取られた負荷情報からノード10(#1,#2,・・・,#n)全体の負荷状態が分析される。
そして、ノード10(#1,#2,・・・,#n)全体が高負荷となる閾値(あらかじめユーザが設定しておく)を超えた場合(ステップS15:高負荷)には高負荷であると判断され、ステップS16の処理に進み、その後、ステップS17において、次の監視時間まで待機し、しかる後にステップS13の処理に戻る。
また、ステップS15において、高負荷でも低負荷でもない状態、つまり負荷が正常な範囲にある場合(ステップS15:正常)には、ステップS17に進み、次の監視時間まで待機し(ステップS17)、しかる後にステップS13の処理に戻る。
一方、ノード10(#1,#2,・・・,#n)全体が低負荷となる閾値(あらかじめユーザが設定しておく)を下回った場合(ステップS15:低負荷)には、ステップS18の処理に進み、図6に示すような低負荷時における処理が縮退可能サーバ分析部36によってなされ、その後、ステップS19において、次の監視時間まで待機し、しかる後にステップS13の処理に戻る。
ステップS18では、図6に示すように、先ず、負荷情報分析部34によって、各ノード10(#1,#2,・・・,#n)の負荷情報や他のアプリケーションとの依存関係などから縮退可能サーバであると推定されるノードが指定され(通常は、ロードバランサ12により負荷が分散されているため、各ノードの負荷は均一になっていると考えられるが、例えば、最も負荷が低いノード10が選択される)(ステップS21)、縮退可能サーバ分析部36が呼び出される(ステップS22)。
そして、縮退可能サーバ分析部36によって、指定されたノード(以下、例としてノード10(#1)として説明する)のIPアドレスがダウンされる(ステップS23)。これによって、指定されたノード10(#1)が、ロードバランサ12による制御から切り離され、サービスを停止させたときと同じ状態になる。ただし、このIPアドレスは、アプリケーションa用の仮想IPアドレスであり、負荷分散クラスタシステム14との通信で使用するIPアドレスとは異なるため、負荷分散クラスタシステム14からは、このノード10(#1)に依然としてアクセスすることができる。
次に、この切り離し後、切り離されたノード10(#1)以外のノード10(#2,・・・#n)の処理負荷が安定するまでアプリケーションaによる処理を待機(スリープ)させる(ステップS24)。どれくらいの時間で負荷が安定するかは、サーバのスペックやアプリケーションの種類によって異なり、一概には言えない。したがって、ここでは、一例として、ユーザがあらかじめ設定しておいた時間スリープするものとする。
次に、ステップS24のスリープ後、ロードバランサ12から切り離されたノード10(#1)以外のノード10(#2,・・・#n)の処理負荷に基づいて、ノード10(#1)によるアプリケーションaの処理を停止することが可能であるかが判定される。この判定基準としては、例えば、高負荷と判定される閾値を予め定めておき、処理負荷が、この閾値を超えているか否かに基づいて判定される。そして、処理負荷が、閾値を超えていない場合(ステップS25:Yes)には、縮退可能と判定され(ステップS27:Yes)、ノード10(#1)によるアプリケーションaのサービスが停止される(ステップS28)。その後ステップS19の処理に戻る。
一方、ステップS25において閾値を超えた場合(ステップS25:No)には、縮退不可能と判定され、ノード10(#1)のIPアドレスが元に戻され、ノード10(#1)が、ロードバランサ12によって再び制御されるように復帰され(ステップS26)、しかる後にステップS27を介してステップS29に移行する。
低負荷と判定される閾値が高すぎる可能性もあるために、ステップS29では、同じような縮退可能サーバ分析処理を繰り返さないように、低負荷と判定される閾値が下げられた後にステップS19の処理に戻る。
上述したように、本実施の形態に係るサーバ検出システムにおいては、上記のような作用により、サービスを停止させる代わりに、IPアドレスを停止させてノード10(#1)を切り離しているため、アプリケーションaに与える影響が少ない。
また、縮退可能なノード10(#1)を分析して、低負荷と判定される閾値を動的に変更するために、低負荷と判定される閾値を適切な値に設定することができる。
更に、低負荷であると推定されるノード10(#1)を一時的にロードバランサ12から切り離すことにより縮退可能なノード10(#1)を検出しているため、縮退後にアプリケーションaが高負荷になる可能性を低くすることが可能となる。これにより、縮退後に仮に高負荷になった場合であっても、サービスの開始、停止処理による障害の発生を阻止することができる。
更にまた、OSの起動やシャットダウンまでを行う場合であっても、障害発生の確率の上昇と、これによるサービス停止時間の長期化とを回避することも可能となる。
(第2の実施の形態)
図7は、本発明の第2の実施の形態に係るサーバ検出システムが適用される負荷分散クラスタシステムの構成例を示す機能ブロック図である。
すなわち、本実施の形態に係るサーバ検出システムは、複数の異なるアプリケーションを実行するノードが、アプリケーション毎の複数の層状に構成されてなる負荷分散クラスタシステム40に適用されるものである。図7では、Webサーバ層と、アプリケーションサーバ層と、データベースサーバ層とによる3層構造からなる負荷分散クラスタシステム40を示しているが、もちろんこれは一例であって、3層構造に限定されるものではない。
図7に示す例では、Webサーバ層にはWebサーバである複数のノード50(#1,#2,・・・#n)が存在し、アプリケーションサーバ層にはアプリケーションサーバである複数のノード60(#1,#2,・・・#n)が存在し、データベースサーバ層にはデータベースサーバである複数のノード70(#1,#2,・・・#n)がそれぞれ存在する。
各サーバ層に存在するノードにはそれぞれロードバランサ12(#1,#2,#3)が設けられ、通信ネットワーク16(#1,#2,#3)を介して互いに、かつノード10(#A)と通信可能となっている。
これらノード50,60,70、ロードバランサ12(#1,#2,#3)、及びノード10(#A)の構成についてはそれぞれ、第1の実施の形態で説明したノード10(#1,#2,・・・#n)が、ロードバランサ12、及びノード10(#A)と同じであるので、重複説明を避ける。また、以下の説明においても、第1の実施の形態と異なる点について説明する。
このような複数の層構造の何れかに属するノードの縮退の可否を判定する場合、本実施の形態に係るサーバ検出システムでは、負荷情報取得部32が、複数のノード50,60,70(#1,#2,・・・#n)のおのおのについて、各アプリケーションに関する負荷情報を各ロードバランサ12(#1,#2,#3)を介して取得する。
そして、負荷情報分析部34は、負荷情報取得部32から各ノード50,60,70(#1,#2,・・・,#n)毎の負荷情報を受け取り、負荷情報から、サーバ層毎の処理負荷の平均値を求め、平均値が最も低いサーバ層(例えば、Webサーバ層)を決定する。
更に、負荷情報分析部34は、平均値が最も低いと決定されたサーバ層に含まれるノード(例えば、Webサーバ層に属するノード50(#1,#2,・・・#n))のうち、負荷情報と、他のアプリケーションとの依存関係とから、処理を停止させることが可能であると推定されるノード(例えば、ノード50(#1))を決定する。
その後は、第1の実施の形態と同様に、負荷情報分析部34が、推定されたノード(以下、例えば、ノード50(#1)として説明する)を、ロードバランサ12(#1)による制御から切り離す。
縮退可能サーバ分析部36は、第1の実施の形態と同様に、処理負荷が安定するまでスリープがなされた後に、ノード50(#1)による処理の停止が可能であるか、すなわち縮退可能であるかを判定し、停止可能と判定した場合には、ノード50(#1)によるアプリケーションの処理を停止させる。一方、停止不可と判定した場合には、縮退不可能と判定し、ノード50(#1)のIPアドレスを元に戻し、ノード50(#1)を、ロードバランサ12(#1)によって再び制御されるように復帰させる。
このように、ノード50(#1)がロードバランサ12(#1)によって制御されるように復帰された場合には、負荷情報分析部34は、負荷情報取得部32から受け取った負荷情報に基づいて、サーバ層の処理負荷の平均値が、次に低いサーバ層(例えば、アプリケーションサーバ層)を決定し、このサーバ層を対象として、上述した処理を繰り返すことによって、ノード(例えば、ノード60(#1))の縮退の可否を判定する。次に低いサーバ層(例えば、アプリケーションサーバ層)でも縮退可能なノード60が得られない場合には、サーバ層の処理負荷の平均値が、その次に低いサーバ層(例えば、データベースサーバ層)を決定し、このサーバ層を対象として、上述した処理を繰り返すことによって、ノード(例えば、ノード70(#1))の縮退の可否の判定を繰り返す。
次に、以上のように構成した本実施の形態に係るサーバ検出システムの動作について説明する。
本実施の形態に係るサーバ検出システムの全体動作もまた、図5のフローチャートに示す通りであるが、ステップS18における詳細動作は、図6のフローチャートとは一部異なる図8のフローチャートに示す通りとなる。従って、ここでは、図8のフローチャートを用いて、図5におけるステップS18における動作を簡単に説明する。
まず、負荷情報分析部34において、負荷情報取得部32から各ノード50,60,70(#1,#2,・・・,#n)毎の負荷情報が受け取られ、システム全体の負荷が、閾値より低くなった場合には、負荷情報から、サーバ層毎の処理負荷の平均値が求められ、平均値が最も低いサーバ層(例えば、Webサーバ層)が決定される(ステップS31)。
更に、縮退可能サーバ分析部36では、平均値が最も低いと決定されたサーバ層に含まれるノード(例えば、ノード50(#1,#2,・・・#n))のうち、負荷情報と、他のアプリケーションとの依存関係とから、縮退可能であると推定されるノード(例えば、ノード50(#1))が決定され(ステップS32)、縮退可能サーバ分析部36が呼び出される(ステップS33)。
そして、縮退可能サーバ分析部36によって、指定されたノード(以下、ノード50(#1)として説明する)のIPアドレスがダウンされる(ステップS34)。これによって、指定されたノード50(#1)が、ロードバランサ12(#1)から切り離され、サービスを停止させたときと同じ状態になる。ただし、このIPアドレスは、例えばWebアプリケーションのようなアプリケーション用の仮想IPアドレスであり、負荷分散クラスタシステム40との通信で使用するIPアドレスとは異なるため、負荷分散クラスタシステム40からは、このノード50(#1)に依然としてアクセスすることができる。
このようにして1台のノード50(#1)をロードバランサ12(#1)から切り離すことにより、このノード50(#1)で処理されていたクライアントからのリクエストが他のノード50(#2,・・・#n)に分散されるため、切り離し直後は負荷変動が大きくなる。そのため、縮退可能サーバ分析部36によって、他のノード50(#2,・・・#n)で実行されているアプリケーションの負荷が安定するまでスリープされる(ステップS35)。
スリープ後、負荷が安定したら、縮退可能サーバ分析部36によって、負荷情報取得部32からの負荷情報に基づいて、高負荷となる閾値を超えていないかが確認される(ステップS36)。閾値を超えていない場合(ステップS36:Yes)には、指定されたノード50(#1)は、縮退可能(ステップS38:Yes)となり、閾値を超えた場合(ステップS36:No)は、縮退不可能となる。
縮退不可能な場合(ステップS36:No)、縮退可能サーバ分析部36から負荷分散クラスタシステム40へリクエストが出され、切り離されたIPアドレスが元に戻され(ステップS37)、その後ステップS38(ステップS38:No)を経由してステップS40に移行する。
縮退可能な場合(ステップS38:Yes)、縮退可能サーバ分析部36の処理結果にしたがって、負荷情報分析部34によって、ノード50(#1)によるサービスが停止させられ、ノード50(#1)が縮退される(ステップS39)。
ステップS40では、ステップS32〜ステップS39で行われた処理が未だになされていないサーバ層がある場合(ステップS40:No)には、他のサーバ層(例えば、アプリケーションサーバ層又はデータベースサーバ層)が縮退対象となる可能性があるため、ステップS31の処理と同様にして、次に平均負荷が低いサーバ層(例えば、アプリケーションサーバ層)が負荷情報分析部34によって決定され(ステップS42)、ステップS32〜ステップS40までの処理が繰り返される。
一方、ステップS40では、ステップS31〜ステップS39の処理が全てのサーバ層に対して行われている場合(ステップS40:Yes)には、低負荷と判定される閾値が高すぎる可能性もあるために、同じような縮退可能サーバ分析処理を繰り返さないように、低負荷と判定される閾値が下げられた後に処理を終了する。
上述したように、本実施の形態に係るサーバ検出システムは、各サーバ層毎に縮退可能サーバを判定するため、第1の実施の形態に係るサーバ検出システムによって奏される作用効果に加えて、更に、複数の異なるアプリケーションが連携して動作する負荷分散クラスタシステム40に対しても縮退可能なサーバを検出することが可能となる。
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
第1の実施の形態に係るサーバ検出システムが適用される負荷分散クラスタシステムの構成例を示す機能ブロック図。 アプリケーションの処理を行うノードの構成例を示す機能ブロック図。 サーバ検出システムが備えられたノードの構成例を示す機能ブロック図。 縮退可能サーバ分析部によってなされる処理手順を示すフローチャート。 第1の実施の形態に係るサーバ検出システムの動作を示すフローチャート。 第1の実施の形態における縮退可能判定のための処理手順を示すフローチャート。 第2の実施の形態に係るサーバ検出システムが適用される負荷分散クラスタシステムの構成例を示す機能ブロック図。 第2の実施の形態における縮退可能判定のための処理手順を示すフローチャート。
符号の説明
10…ノード(サーバ)、12…ロードバランサ、14…負荷分散クラスタシステム、16…通信ネットワーク、20…クラスタデーモン、22…サービス制御部、30…クラスタデーモン、32…負荷情報取得部、34…負荷情報分析部、36…縮退可能サーバ分析部、40…負荷分散クラスタシステム、50,60,70…ノード(サーバ)

Claims (5)

  1. 複数のサーバと、前記複数のサーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように前記複数のサーバを制御する負荷分散装置とを備えた負荷分散クラスタシステムに適用され、前記複数のサーバのうち、前記アプリケーションによる処理を停止させることが可能なサーバを検出するシステムであって、
    前記複数のサーバのおのおのについて、前記アプリケーションによる処理に関する負荷情報を前記負荷分散装置を介して取得する取得手段と、
    前記取得手段によって取得された負荷情報と、他のアプリケーションとの依存関係とから、前記処理を停止させることが可能であると推定されるサーバを決定する推定手段と、
    前記推定手段によって決定されたサーバを、前記負荷分散装置による制御から切り離す切離手段と、
    前記切離手段による切り離し後、前記複数のサーバのうち、前記切り離されたサーバ以外のサーバの処理負荷が安定するまで前記アプリケーションによる処理を待機させる待機手段と、
    前記待機手段による待機後、前記切り離されたサーバ以外のサーバの処理負荷に基づいて、前記切り離されたサーバによる前記アプリケーションの処理を停止することが可能であるかを判定する判定手段と、
    前記判定手段によって停止可能と判定された場合には、前記切り離されたサーバによる前記アプリケーションの処理を停止させる停止手段と、
    前記判定手段によって停止不可と判定された場合には、前記切り離されたサーバを、前記負荷分散装置によって制御されるように復帰させる復帰手段と
    を備えたサーバ検出システム。
  2. 1又は複数のサーバからなる複数のサーバ層と、前記複数のサーバ層に含まれる各サーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように前記各サーバ層にそれぞれ設けられ、前記複数のサーバを制御する複数の負荷分散装置とを備えた負荷分散クラスタシステムに適用され、前記複数のサーバのうち、前記アプリケーションによる処理を停止させることが可能なサーバを検出するシステムであって、
    前記複数のサーバのおのおのについて、前記アプリケーションによる処理に関する負荷情報を前記各負荷分散装置を介して取得する取得手段と、
    前記取得手段によって取得された負荷情報から、前記サーバ層毎の処理負荷の平均値を求め、前記平均値が最も低いサーバ層を決定する決定手段と、
    前記決定手段によって決定されたサーバ層に含まれるサーバのうち、前記取得手段によって取得された負荷情報と、他のアプリケーションとの依存関係とから、前記処理を停止させることが可能であると推定されるサーバを決定する推定手段と、
    前記推定手段によって決定されたサーバを、前記負荷分散装置による制御から切り離す切離手段と、
    前記切離手段による切り離し後、前記切り離されたサーバが属するサーバ層に属する複数のサーバのうち、前記切り離されたサーバ以外のサーバの処理負荷が安定するまで前記アプリケーションによる処理を待機させる待機手段と、
    前記待機手段による待機後、前記切り離されたサーバ以外のサーバの処理負荷に基づいて、前記切り離されたサーバによる前記アプリケーションの処理を停止することが可能であるかを判定する判定手段と、
    前記判定手段によって停止可能と判定された場合には、前記切り離されたサーバによる前記アプリケーションの処理を停止させる停止手段と、
    前記判定手段によって停止不可と判定された場合には、前記切り離されたサーバを、前記負荷分散装置によって制御されるように復帰させる復帰手段とを備え、
    前記復帰手段によって前記サーバが前記負荷分散装置によって制御されるように復帰された場合には、前記決定手段は、前記平均値が次に低いサーバ層を決定し、前記推定手段、前記切離手段、前記待機手段、前記判定手段、前記停止手段、及び前記復帰手段は、前記決定手段によって決定された平均値が次に低いサーバ層を対象とした処理を行うことを繰り返すようにしたサーバ検出システム。
  3. 前記判定手段は、前記処理負荷が、予め定めた閾値を超えない場合に、前記切り離されたサーバによる前記アプリケーションの処理を停止することが可能であると判定する請求項1又は請求項2のサーバ検出システム。
  4. 複数のサーバと、前記複数のサーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように前記複数のサーバを制御する負荷分散装置とを備えた負荷分散クラスタシステムに適用され、前記複数のサーバのうち、前記アプリケーションによる処理を停止させることが可能なサーバを検出するプログラムであって、
    前記複数のサーバのおのおのについて、前記アプリケーションによる処理に関する負荷情報を前記負荷分散装置を介して取得する機能、
    前記取得された負荷情報と、他のアプリケーションとの依存関係とから、前記処理を停止させることが可能であると推定されるサーバを決定する機能、
    前記決定されたサーバを、前記負荷分散装置による制御から切り離す機能、
    前記切り離し後、前記複数のサーバのうち、前記切り離されたサーバ以外のサーバの処理負荷が安定するまで前記アプリケーションによる処理を待機させる機能、
    前記待機後、前記切り離されたサーバ以外のサーバの処理負荷に基づいて、前記切り離されたサーバによる前記アプリケーションの処理を停止することが可能であるかを判定する機能、
    停止可能と判定された場合には、前記切り離されたサーバによる前記アプリケーションの処理を停止させる機能、
    停止不可と判定された場合には、前記切り離されたサーバを、前記負荷分散装置によって制御されるように復帰させる機能
    をコンピュータに実現させるためのプログラム。
  5. 1又は複数のサーバからなる複数のサーバ層と、前記複数のサーバ層に含まれる各サーバにおいて同時並列して動作するアプリケーションによる処理負荷を分散させるように前記各サーバ層にそれぞれ設けられ、前記複数のサーバを制御する複数の負荷分散装置とを備えた負荷分散クラスタシステムに適用され、前記複数のサーバのうち、前記アプリケーションによる処理を停止させることが可能なサーバを検出するプログラムであって、
    前記複数のサーバのおのおのについて、前記アプリケーションにより処理に関する負荷情報を前記各負荷分散装置を介して取得する機能、
    前記取得された負荷情報から、前記サーバ層毎の処理負荷の平均値を求め、前記平均値が最も低いサーバ層を決定する機能、
    前記決定されたサーバ層に含まれるサーバのうち、前記取得された負荷情報と、他のアプリケーションとの依存関係とから、前記処理を停止させることが可能であると推定されるサーバを決定する機能、
    前記決定されたサーバを、前記負荷分散装置による制御から切り離す機能、
    前記切り離し後、前記切り離されたサーバが属するサーバ層に属する複数のサーバのうち、前記切り離されたサーバ以外のサーバの処理負荷が安定するまで前記アプリケーションによる処理を待機させる機能、
    前記待機後、前記切り離されたサーバ以外のサーバの処理負荷に基づいて、前記切り離されたサーバによる前記アプリケーションの処理を停止することが可能であるかを判定する機能、
    停止可能と判定された場合には、前記切り離されたサーバによる前記アプリケーションの処理を停止させる機能、
    停止不可と判定された場合には、前記切り離されたサーバを、前記負荷分散装置によって制御されるように復帰させる機能をコンピュータに実現させ、
    前記サーバが前記負荷分散装置によって制御されるように復帰された場合には、前記平均値が次に低いサーバ層を対象に前記各機能を繰り返すプログラム。
JP2007073610A 2007-03-20 2007-03-20 サーバ検出システム及びプログラム Pending JP2008234356A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007073610A JP2008234356A (ja) 2007-03-20 2007-03-20 サーバ検出システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007073610A JP2008234356A (ja) 2007-03-20 2007-03-20 サーバ検出システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2008234356A true JP2008234356A (ja) 2008-10-02

Family

ID=39907050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007073610A Pending JP2008234356A (ja) 2007-03-20 2007-03-20 サーバ検出システム及びプログラム

Country Status (1)

Country Link
JP (1) JP2008234356A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075656B2 (en) 2010-09-17 2015-07-07 Canon Kabushiki Kaisha Cloud computing system and method for controlling same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075656B2 (en) 2010-09-17 2015-07-07 Canon Kabushiki Kaisha Cloud computing system and method for controlling same

Similar Documents

Publication Publication Date Title
US7475108B2 (en) Slow-dynamic load balancing method
US10348577B2 (en) Discovering and monitoring server clusters
US9154549B2 (en) Dynamic server farms
US10609159B2 (en) Providing higher workload resiliency in clustered systems based on health heuristics
TWI595760B (zh) 伺服器資源之管理系統及其管理方法
US7543174B1 (en) Providing high availability for an application by rapidly provisioning a node and failing over to the node
US7895468B2 (en) Autonomous takeover destination changing method in a failover
JP5089380B2 (ja) 仮想マシン・コンピュータ・プログラムの動的マイグレーション
US7181524B1 (en) Method and apparatus for balancing a load among a plurality of servers in a computer system
JP4107676B2 (ja) トランザクション引継ぎシステム
JP2005084963A (ja) ファイル共有装置及びファイル共有装置間のデータ移行方法
CN107872517B (zh) 一种数据处理方法及装置
US9900359B2 (en) System and method for supporting video processing load balancing for user account management in a computing environment
US20090164565A1 (en) Redundant systems management frameworks for network environments
JP5753030B2 (ja) キャッシュクラウド構造を利用したキャッシュシステムおよびキャッシングサービスの提供方法
KR20150121891A (ko) 클라우드 스트리밍 서버 관리 시스템, 클라우드 스트리밍 서버 관리 방법 및 이를 위한 장치
JP2008234356A (ja) サーバ検出システム及びプログラム
JP6269199B2 (ja) 管理サーバおよび障害復旧方法、並びにコンピュータ・プログラム
CN114363356B (zh) 数据同步方法、系统、装置、计算机设备和存储介质
JP2008305353A (ja) クラスタシステム及びフェイルオーバ方法
Kitamura et al. Development of a Server Management System Incorporating a Peer-to-Peer Method for Constructing a High-availability Server System
JP6311282B2 (ja) 起動制御プログラム、装置、及び方法
TWI584654B (zh) 一種服務最佳化的電腦系統及其方法
US9166897B1 (en) System and method for supporting dynamic offloading of video processing for user account management in a computing environment
US20160380855A1 (en) Efficient replacement of clients running large scale applications

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Written amendment

Effective date: 20090529

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090728