JP2013228793A - 情報処理装置、クラスタシステムおよびフェイルオーバ方法 - Google Patents

情報処理装置、クラスタシステムおよびフェイルオーバ方法 Download PDF

Info

Publication number
JP2013228793A
JP2013228793A JP2012098772A JP2012098772A JP2013228793A JP 2013228793 A JP2013228793 A JP 2013228793A JP 2012098772 A JP2012098772 A JP 2012098772A JP 2012098772 A JP2012098772 A JP 2012098772A JP 2013228793 A JP2013228793 A JP 2013228793A
Authority
JP
Japan
Prior art keywords
load amount
node
failover
failover destination
information 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.)
Pending
Application number
JP2012098772A
Other languages
English (en)
Inventor
Masataka Sugimoto
昌隆 杉本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2012098772A priority Critical patent/JP2013228793A/ja
Publication of JP2013228793A publication Critical patent/JP2013228793A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】クラスタシステムの稼働効率を向上する。
【解決手段】負荷量算出部は、所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出する。負荷量蓄積部は、フェイルオーバ先候補ノードが算出する負荷量を受信して候補ノード負荷量として、自ノード負荷量とともに蓄積する。負荷量予測部は、自ノード負荷量と候補ノード負荷量とに基づいて、自ノード負荷量を算出する時点以降の予測負荷量を算出する。フェイルオーバ先選択部は、予測負荷量に基づいて、自ノード負荷量を算出する時点毎にフェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定する。前述の情報処理装置がネットワークを介して複数台接続してクラスタを形成するクラスタシステムは、第1情報処理装置に障害が発生したときにフェイルオーバ先候補ノードとして登録されている第2情報処理装置にフェイルオーバする。
【選択図】図5

Description

本発明は、複数の情報処理装置を備えるクラスタシステム、そのクラスタシステムにおけるフェイルオーバ方法に関する。
フェイルオーバとは、ネットワークを介して接続される複数のノードのうちのいずれかのノードが故障したときに、故障したノード上で動作していたシステムリソースを他のノードが引き継ぐ技術である。この技術を用いることにより、システムを停止することなく業務を継続できる。このフェイルオーバ方式では、例えば、特開平11−353292号公報に記載されるように、故障時点での稼働状況に応じてフェイルオーバ先の優先度を変更する。この場合、例えば1週間のうちの業務負荷が一時的に上昇する時間帯のみ、負荷が比較的少ないノードにフェイルオーバさせておくといった方法がとれない。すなわち、故障時点での負荷状況しか判断しておらず、負荷を予測したフェイルオーバを行っていないため、効率的な業務運用ができない。
また、特開2006−079161号公報には、フェイルオーバ後の複数の計算機の負荷を均一にして、さらに、リソースの競合を防ぐ技術が開示されている。この技術では、クラスタ内の各ノードの負荷を取得し、取得した負荷に基づいて複数のノードのいずれかに障害が発生したときの引き継ぎ情報を予め作成し、複数のノードで共有する共有ストレージ装置に格納しておく。複数のノードは、相互に稼動状態を監視する。障害の発生を検知したときに、障害が発生したノードを除くクラスタ内の各ノードが、共有ストレージ装置から引き継ぎ情報を読み込んで、障害のパターンと引き継ぎ情報に基づいて障害が発生したノードの処理を引き継ぐ。
また、特開2007−249445号公報には、構成変更処理中のリソース不足による処理遅延を抑え、構成変更前に予測した負荷状況と実際の負荷状況の大幅なズレの発生を防止して、サービスの適切な配置を可能にする技術が開示されている。負荷分散機構は、各サーバノードの負荷が分散するようにクライアント端末から受信したリクエストを複数のサーバノード間で振り分ける。構成変更機構は、サービスの起動又は停止に関する構成変更に際し、必要なリソース量を算定する。負荷分散機構は、負荷管理テーブルを参照して、算定されたリソース量を必要とするサーバノードについてそのリソース量を確保する。その後、構成変更機構は、構成変更を実行し、サービスの再配置を行なう。
また、特開2011−090594号公報には、クラスタシステムのスケールイン/スケールアウトや片寄せ時の移行コストを削減し、消費電力を削減することができるサーバ管理装置が開示されている。サーバ管理装置は、仮想サーバ群を稼働する物理サーバ群を管理し、物理サーバ群に配置された複数の仮想サーバを含んでなるクラスタシステムを運用する際に、仮想サーバ群の負荷状態により仮想サーバの配置状態を管理する。スケールイン実行時には、稼働中の仮想サーバ数が最も少ない物理サーバで稼働する仮想サーバを停止対象とする。スケールアウト実行時には、負荷変動を予測し、負荷の変動が類似したクラスタシステムが同じ物理サーバ上に集まるようにクラスタシステムのスケールアウト先を制御する。スケールインの実行タイミングは、予測した負荷変動が上昇傾向なら実行を遅らせ、下降傾向なら実行を早める。このように、クラスタシステムのスケールイン/スケールアウトが行なわれる。
また、特開平11−296492号公報には、マルチ計算機システムにおけるリカバリ処理の技術が開示されている。ある計算機に障害が発生した場合、正常に動作している計算機の中で、その時点において最もシステム負荷の低い計算機でリカバリ処理を実施させることにより、通常の運用中において、計算機間で動作負荷を分散させ、柔軟な運用を可能にする。
特開平11−353292号公報 特開2006−079161号公報 特開2007−249445号公報 特開2011−090594号公報 特開平11−296492号公報
本発明の目的は、稼働効率を上げることである。
本発明の観点では、情報処理装置は、負荷量算出部と、負荷量蓄積部と、負荷量予測部と、フェイルオーバ先選択部とを具備する。負荷量算出部は、所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出する。負荷量蓄積部は、障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する負荷量を受信して候補ノード負荷量として、自ノード負荷量とともに蓄積する。負荷量予測部は、負荷量蓄積部に蓄積される自ノード負荷量と候補ノード負荷量とに基づいて、自ノード負荷量を算出する時点以降の予測負荷量を算出する。フェイルオーバ先選択部は、予測負荷量に基づいて、自ノード負荷量を算出する時点毎にフェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定する。また、前述の情報処理装置は、ネットワークを介して複数台接続してクラスタを形成し、そのクラスタシステムは、複数の情報処理装置のうちの第1情報処理装置に障害が発生したときにフェイルオーバ先候補ノードとして登録されている複数の情報処理装置のうちの第2情報処理装置にフェイルオーバする。
本発明の他の観点では、フェイルオーバ方法は、所定の単位時間の負荷を示す負荷量を自ノード負荷量として算出するステップと、障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する負荷量を候補ノード負荷量として受信するステップと、自ノード負荷量と候補ノード負荷量とを蓄積するステップと、蓄積される自ノード負荷量と候補ノード負荷量とに基づいて、自ノード負荷量を算出する時点以降の予測負荷量を算出するステップと、予測負荷量に基づいて、自ノード負荷量を算出する時点毎にフェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定するステップと、障害発生時に、設定されているフェイルオーバ先ノードにフェイルオーバするステップとを具備する。
本発明によれば、一定期間の負荷予測に基づいてフェイルオーバ先のノードを決定することにより、稼働効率を改善することができる。
図1は、本発明の実施の形態に係るクラスタシステムの構成を示す図である。 図2は、負荷を数値として示す負荷量を算出するための情報の例を示す図である。 図3は、算出された負荷量の例を示す図である。 図4は、比較する合計負荷量の例を示す図である。 図5は、フェイルオーバさせる際の動作手順を説明するフローチャートである。 図6は、本実施の形態に係るクラスタシステムの各ノードの構成を示す図である。 図7は、本実施の形態に係る各ノードの機能構成を示す図である。
図面を参照して、本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係るクラスタシステムの構成を示す図である。クラスタシステムは、ノード10、ノード20、ノード30を備える。ノード10はリソース11を有し、ノード20はリソース21を有し、ノード30はリソース31を有する。ノード10、20、30は、パブリックLAN(Local Area Network)およびインターコネクトLANによって相互に接続され、各種データを送受している。各ノード10、20、30は、互いにシステムリソース状況を参照して、フェイルオーバ先を決定する。
図2は、各ノード10、20、30における負荷を数値として示す負荷量を算出するための情報の例を示す。ここでは、各ノードにおけるCPU(Central Processing Unit)の使用率とメモリの使用量とを、負荷量を算出するための基礎情報とする。すなわち、負荷量は、CPU使用率とメモリ使用量とを乗算し、時間積分して求める。時間積分する単位時間ΔTは、例えば60秒間とする。このように算出される負荷量は、ノード毎に一定期間、例えば4週間蓄積される。また、この情報は、フェイルオーバ先の候補となる各ノードに配信されて共有化される。
図3には、上述のように算出されたノード10、20、30の負荷量が示される。ここでは、負荷量は、単位時間ΔT=60秒として算出され、算出された負荷量の10分間の平均値を4週間にわたって蓄積されたものとする。図3は、各日の24時間(0時〜23時50分)分の負荷量の経時変化を10分毎に対応付けてグラフ化して示したものである。負荷量は、4週間分のデータの平均であってもよいし、4週間分のデータの総和であってもよい。また、曜日毎に負荷量が変動する場合は、曜日毎の総和あるいは平均であってもよい。
図3に示されるように、負荷量は時刻毎に変動する。そのため、障害発生時、およびその後のフェイルオーバ期間の負荷量がどのように変化するか予測して、フェイルオーバ先のノードを決めることができる。例えば、図3に示されるように、13時30分にノード10に障害が発生すると、ノード20、30の13時30分以降の負荷量に基づいて、ノード10のリソース11をノード20またはノード30にフェイルオーバすることができる。すなわち、フェイルオーバ先を時刻毎に過去の負荷量の実績に基づいて、その先の負荷量を予測し、フェイルオーバ先を設定しておくことにより、障害発生時に効率よくフェイルオーバすることができる。
フェイルオーバ先の選択は、例えば、図4に示されるように、ノード10がフェイルオーバ先を選択する場合には、ノード10の負荷量と、ノード20、30の負荷量とを時刻毎に加えた合計負荷量を比較して行なわれる。すなわち、フェイルオーバ先のノードのフェイルオーバ後の予測される負荷量が比較される。ノード10の負荷量は、図3に示されるように、13時30分頃から増加し、15時前後に最大に達し、業務終了の17時30分まで徐々に減少する。ノード20の負荷量は、同様に、14時頃から14時30分頃まで増加して最大となり、その後徐々に減少する。また、ノード30の負荷量は、13時30分以降減少して14時30分頃から16時頃まで落ち着き、その後再度増加して16時30分から17時頃に業務終了前のピークを迎え、その後減少する。
ノード10の負荷量と、ノード20の負荷量とを加算すると、図4に示されるように、15時頃から17時30分頃まで負荷のピークとなることが分かる。また、ノード10の負荷量と、ノード30の負荷量とを加算すると、図4に示されるように、13時30分頃から17時30分頃まで比較的負荷量が少ないことが分かる。13時30分頃、ノード10の負荷量とノード30の負荷量との合計負荷量は、ノード10の負荷量とノード20の負荷量との合計負荷量より大きい。しかし、14時30分頃合計負荷量は逆転し、ノード10の負荷量とノード20の負荷量との合計の方が大きくなる。したがって、13時30分にノード10に障害が発生した場合、業務終了までの負荷量を考えると、ノード10の負荷は、ノード30にフェイルオーバする方が有利であることが分かる。
このように、一定期間の負荷予測からフェイルオーバ後の負荷量を正確に予測でき、フェイルオーバ先のノードを決定することができるため、稼働効率の改善を行なうことができる。
図5を参照して、フェイルオーバさせる際の動作手順を説明する。
各ノードは、動作を開始すると、負荷グラフの基になる情報を収集し、記録する。上述のように、各ノードにおける負荷を数値として示す負荷量を算出するための基礎情報として、各ノードにおけるCPUの使用率と、メモリの使用量とが収集され、負荷量が算出される。負荷量は、CPU使用率とメモリ使用量とを乗算し、時間積分して求められる。時間積分する単位時間ΔTは、例えば60秒間とする。このように算出される負荷量は、ノード毎に一定期間、例えば4週間蓄積される。また、この情報は、各ノードに配信されて共有化される(ステップS10)。
各ノードは、現状の負荷量を収集、蓄積しつつ、過去に蓄積された情報に基づいて、システムのリソースを所定のタイミングで確認する(ステップS12)。すなわち、例えばその時点以降の10分毎に、図4に示されるように、各ノードは、自ノード(ノード10)の負荷量と、フェイルオーバ先となるノード(ノード20、30)の負荷量との合計を算出して比較する。上述のノード10の場合、その時点以降の自ノードの負荷量とノード20の負荷量とを合計して負荷量Aを算出し、ノード30の負荷量とを合計して負荷量Bを算出する。また、ノード20は、ノード10の負荷量との合計負荷量、ノード30の負荷量との合計負荷量を算出して比較し、ノード30は、ノード10の負荷量との合計負荷量、ノード20の負荷量との合計負荷量を算出して比較する。図5では、ノード10の場合が示される。
ノード10は、比較の結果、負荷量Aが負荷量Bより大きい場合(ステップS14−YES)、フェイルオーバ先をノード30に設定し(ステップS16)、それ以外は、フェイルオーバ先をノード20に設定する(ステップS18)。これを例えば10分毎に繰り返す。フェイルオーバ先の設定を繰り返し行なうことにより、時々刻々変化する負荷量に応じて最適なフェイルオーバ先を見直すことができる。ここでは、ノード10について示したが、他のノードの場合も同様に予測される合計負荷量に基づいて、フェイルオーバ先のノードを設定する。
このように、各ノードは、各日の00時00分から23時50分まで、10分間隔でフェイルオーバ先を算出する。すなわち、各ノードは、最新の負荷を観測して負荷量を算出し、直後に各ノードの負荷グラフを更新する。したがって、次の観測時刻までにフェイルオーバ先が算出し直され、時々刻々変化する予測される負荷量に対応してフェイルオーバ先が見直される。すなわち、本発明によれば、一定期間の負荷予測からフェイルオーバ先のノードを決定することにより、稼働効率の改善を行なうことができる。
本実施の形態に係るクラスタシステムの各ノードは、図6に示されるように、CPU91と、メモリ92と、入出力部93と、パブリックLAN40およびインターコネクトLAN50に接続されるLAN制御部94とを備える情報処理装置90であることが好ましい。この情報処理装置90は、図7に示されるように、負荷量算出部95、負荷量蓄積部96、負荷量予測部97、フェイルオーバ先選択部98を実現するプログラムをメモリ92に備える。これらの機能は、プログラムにより実現することが好ましいが、その一部あるいは全部をハードウェアによって実現することも可能である。
負荷量算出部95は、各ノードにおける負荷を数値として示す負荷量を算出するための基礎情報として、各ノードにおけるCPUの使用率と、メモリの使用量とを収集し、負荷量を算出する。負荷量は、CPU使用率とメモリ使用量とを乗算し、時間積分して求められる。負荷量蓄積部96は、一定期間、例えば4週間分の算出された負荷量を蓄積する。フェイルオーバ先の候補であるノードの負荷量も蓄積しておくことが好ましい。負荷量予測部97は、蓄積された負荷量に基づいて、その時点以降の自ノードの負荷量とフェイルオーバ先の候補ノードの負荷量とを合計して合計負荷量を算出する。すなわち、負荷量予測部97は、算出時点以降の負荷を予測する。
フェイルオーバ先選択部98は、算出された合計負荷量に基づいて、算出時点におけるフェイルオーバ先を選択する。すなわち、合計負荷量が少ないフェイルオーバ先候補のノードが、その時点におけるフェイルオーバ先として設定される。ノードに障害が発生した場合、そのノードのシステムリソースは、設定されたフェイルオーバ先のノードにフェイルオーバさせることができる。このように、予測される負荷量に基づいてフェイルオーバ先を選択することにより、稼働効率を改善することができる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
10、20、30 ノード
11、21、31 リソース
40 パブリックLAN
50 インターコネクトLAN
90 情報処理装置
91 CPU
92 メモリ
93 入出力装置
94 LAN制御部
95 負荷量算出部
96 負荷量蓄積部
97 負荷量予測部
98 フェイルオーバ先選択部

Claims (10)

  1. 所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出する負荷量算出部と、
    障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する前記負荷量を受信して候補ノード負荷量として、前記自ノード負荷量とともに蓄積する負荷量蓄積部と、
    前記負荷量蓄積部に蓄積される前記自ノード負荷量と前記候補ノード負荷量とに基づいて、前記自ノード負荷量を算出する時点以降の予測負荷量を算出する負荷量予測部と、
    前記予測負荷量に基づいて、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定するフェイルオーバ先選択部と
    を具備する
    情報処理装置。
  2. 前記負荷量予測部は、同一時点における前記自ノード負荷量と前記候補ノード負荷量とを加算して前記予測負荷量を算出する
    請求項1に記載の情報処理装置。
  3. 前記フェイルオーバ先選択部は、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちの前記予測負荷量が最小となるフェイルオーバ先候補ノードをフェイルオーバ先ノードに設定する
    請求項1または請求項2に記載の情報処理装置。
  4. 前記負荷量算出部は、所定の期間のCPU使用率とメモリ使用量とを乗算し、時間積分して算出する
    請求項1から請求項3のいずれかに記載の情報処理装置。
  5. 請求項1から請求項4のいずれかに記載の情報処理装置がネットワークを介して複数台接続してクラスタを形成する
    クラスタシステム。
  6. 前記複数の情報処理装置のうちの第1情報処理装置に障害が発生したときに前記フェイルオーバ先候補ノードとして設定されている前記複数の情報処理装置のうちの第2情報処理装置にフェイルオーバする
    請求項5に記載のクラスタシステム。
  7. 所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出するステップと、
    障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する前記負荷量を候補ノード負荷量として受信するステップと、
    前記自ノード負荷量と前記候補ノード負荷量とを蓄積するステップと、
    蓄積される前記自ノード負荷量と前記候補ノード負荷量とに基づいて、前記自ノード負荷量を算出する時点以降の予測負荷量を算出するステップと、
    前記予測負荷量に基づいて、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定するステップと、
    障害発生時に、設定されているフェイルオーバ先ノードにフェイルオーバするステップと
    を具備する
    フェイルオーバ方法。
  8. 前記予測負荷量を算出するステップは、同一時点における前記自ノード負荷量と前記候補ノード負荷量とを加算して前記予測負荷量を算出するステップを備える
    請求項7に記載のフェイルオーバ方法。
  9. 前記設定するステップは、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちの前記予測負荷量が最小となるフェイルオーバ先候補ノードをフェイルオーバ先ノードに設定するステップを備える
    請求項7または請求項8に記載のフェイルオーバ方法。
  10. 前記負荷量を算出するステップは、所定の期間のCPU使用率とメモリ使用量とを乗算し、時間積分して算出するステップを備える
    請求項7から請求項9のいずれかに記載のフェイルオーバ方法。
JP2012098772A 2012-04-24 2012-04-24 情報処理装置、クラスタシステムおよびフェイルオーバ方法 Pending JP2013228793A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012098772A JP2013228793A (ja) 2012-04-24 2012-04-24 情報処理装置、クラスタシステムおよびフェイルオーバ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012098772A JP2013228793A (ja) 2012-04-24 2012-04-24 情報処理装置、クラスタシステムおよびフェイルオーバ方法

Publications (1)

Publication Number Publication Date
JP2013228793A true JP2013228793A (ja) 2013-11-07

Family

ID=49676387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012098772A Pending JP2013228793A (ja) 2012-04-24 2012-04-24 情報処理装置、クラスタシステムおよびフェイルオーバ方法

Country Status (1)

Country Link
JP (1) JP2013228793A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017083935A (ja) * 2015-10-23 2017-05-18 日本電気株式会社 情報処理装置、クラスタシステム、クラスタリング方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017083935A (ja) * 2015-10-23 2017-05-18 日本電気株式会社 情報処理装置、クラスタシステム、クラスタリング方法、及びプログラム

Similar Documents

Publication Publication Date Title
EP3637733B1 (en) Load balancing engine, client, distributed computing system, and load balancing method
US11748154B2 (en) Computing node job assignment using multiple schedulers
CN108632365B (zh) 服务资源调整方法、相关装置和设备
CN107959705B (zh) 流式计算任务的分配方法和控制服务器
US8095935B2 (en) Adapting message delivery assignments with hashing and mapping techniques
JP5729466B2 (ja) 仮想マシン管理装置、仮想マシン管理方法、及び、プログラム
EP3335120B1 (en) Method and system for resource scheduling
CN110825544A (zh) 计算节点及其失效检测方法与云端数据处理系统
JP6881575B2 (ja) 資源割当システム、管理装置、方法およびプログラム
US20120215876A1 (en) Information processing system
CN108633311A (zh) 一种基于调用链的并发控制的方法、装置及控制节点
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
WO2008110983A1 (en) Dynamic load balancing
WO2013037619A1 (en) Method and system for managing an elastic server farm
US10216593B2 (en) Distributed processing system for use in application migration
CN113672345A (zh) 一种基于io预测的云虚拟化引擎分布式资源调度方法
JP5957965B2 (ja) 仮想化システム、負荷分散装置、負荷分散方法、及び負荷分散プログラム
CN117492944A (zh) 任务调度方法、装置、电子设备及可读存储介质
KR101448413B1 (ko) Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치
US20190227859A1 (en) Data store device and data management method
Keerthika et al. A multiconstrained grid scheduling algorithm with load balancing and fault tolerance
US10171572B2 (en) Server pool management
JP2009086741A (ja) 異種ノード混在の分散環境における分散処理制御方法、そのシステム及びそのプログラム
US20210392082A1 (en) Methods and apparatus for data traffic control in networks
JP2013228793A (ja) 情報処理装置、クラスタシステムおよびフェイルオーバ方法