(57)【要約】【課題】クラスタシステムの稼働効率を向上する。【解決手段】負荷量算出部は、所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出する。負荷量蓄積部は、フェイルオーバ先候補ノードが算出する負荷量を受信して候補ノード負荷量として、自ノード負荷量とともに蓄積する。負荷量予測部は、自ノード負荷量と候補ノード負荷量とに基づいて、自ノード負荷量を算出する時点以降の予測負荷量を算出する。フェイルオーバ先選択部は、予測負荷量に基づいて、自ノード負荷量を算出する時点毎にフェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定する。前述の情報処理装置がネットワークを介して複数台接続してクラスタを形成するクラスタシステムは、第１情報処理装置に障害が発生したときにフェイルオーバ先候補ノードとして登録されている第２情報処理装置にフェイルオーバする。【選択図】図５
2013228793.tif 000002
【特許請求の範囲】
【請求項１】
所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出する負荷量算出部と、
障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する前記負荷量を受信して候補ノード負荷量として、前記自ノード負荷量とともに蓄積する負荷量蓄積部と、
前記負荷量蓄積部に蓄積される前記自ノード負荷量と前記候補ノード負荷量とに基づいて、前記自ノード負荷量を算出する時点以降の予測負荷量を算出する負荷量予測部と、
前記予測負荷量に基づいて、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定するフェイルオーバ先選択部と
を具備する
情報処理装置。
【請求項２】
前記負荷量予測部は、同一時点における前記自ノード負荷量と前記候補ノード負荷量とを加算して前記予測負荷量を算出する
請求項１に記載の情報処理装置。
【請求項３】
前記フェイルオーバ先選択部は、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちの前記予測負荷量が最小となるフェイルオーバ先候補ノードをフェイルオーバ先ノードに設定する
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記負荷量算出部は、所定の期間のＣＰＵ使用率とメモリ使用量とを乗算し、時間積分して算出する
請求項１から請求項３のいずれかに記載の情報処理装置。
【請求項５】
請求項１から請求項４のいずれかに記載の情報処理装置がネットワークを介して複数台接続してクラスタを形成する
クラスタシステム。
【請求項６】
前記複数の情報処理装置のうちの第１情報処理装置に障害が発生したときに前記フェイルオーバ先候補ノードとして設定されている前記複数の情報処理装置のうちの第２情報処理装置にフェイルオーバする
請求項５に記載のクラスタシステム。
【請求項７】
所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出するステップと、
障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する前記負荷量を候補ノード負荷量として受信するステップと、
前記自ノード負荷量と前記候補ノード負荷量とを蓄積するステップと、
蓄積される前記自ノード負荷量と前記候補ノード負荷量とに基づいて、前記自ノード負荷量を算出する時点以降の予測負荷量を算出するステップと、
前記予測負荷量に基づいて、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定するステップと、
障害発生時に、設定されているフェイルオーバ先ノードにフェイルオーバするステップと
を具備する
フェイルオーバ方法。
【請求項８】
前記予測負荷量を算出するステップは、同一時点における前記自ノード負荷量と前記候補ノード負荷量とを加算して前記予測負荷量を算出するステップを備える
請求項７に記載のフェイルオーバ方法。
【請求項９】
前記設定するステップは、前記自ノード負荷量を算出する時点毎に前記フェイルオーバ先候補ノードのうちの前記予測負荷量が最小となるフェイルオーバ先候補ノードをフェイルオーバ先ノードに設定するステップを備える
請求項７または請求項８に記載のフェイルオーバ方法。
【請求項１０】
前記負荷量を算出するステップは、所定の期間のＣＰＵ使用率とメモリ使用量とを乗算し、時間積分して算出するステップを備える
請求項７から請求項９のいずれかに記載のフェイルオーバ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報処理装置を備えるクラスタシステム、そのクラスタシステムにおけるフェイルオーバ方法に関する。
【背景技術】
【０００２】
フェイルオーバとは、ネットワークを介して接続される複数のノードのうちのいずれかのノードが故障したときに、故障したノード上で動作していたシステムリソースを他のノードが引き継ぐ技術である。この技術を用いることにより、システムを停止することなく業務を継続できる。このフェイルオーバ方式では、例えば、特開平１１−３５３２９２号公報に記載されるように、故障時点での稼働状況に応じてフェイルオーバ先の優先度を変更する。この場合、例えば１週間のうちの業務負荷が一時的に上昇する時間帯のみ、負荷が比較的少ないノードにフェイルオーバさせておくといった方法がとれない。すなわち、故障時点での負荷状況しか判断しておらず、負荷を予測したフェイルオーバを行っていないため、効率的な業務運用ができない。
【０００３】
また、特開２００６−０７９１６１号公報には、フェイルオーバ後の複数の計算機の負荷を均一にして、さらに、リソースの競合を防ぐ技術が開示されている。この技術では、クラスタ内の各ノードの負荷を取得し、取得した負荷に基づいて複数のノードのいずれかに障害が発生したときの引き継ぎ情報を予め作成し、複数のノードで共有する共有ストレージ装置に格納しておく。複数のノードは、相互に稼動状態を監視する。障害の発生を検知したときに、障害が発生したノードを除くクラスタ内の各ノードが、共有ストレージ装置から引き継ぎ情報を読み込んで、障害のパターンと引き継ぎ情報に基づいて障害が発生したノードの処理を引き継ぐ。
【０００４】
また、特開２００７−２４９４４５号公報には、構成変更処理中のリソース不足による処理遅延を抑え、構成変更前に予測した負荷状況と実際の負荷状況の大幅なズレの発生を防止して、サービスの適切な配置を可能にする技術が開示されている。負荷分散機構は、各サーバノードの負荷が分散するようにクライアント端末から受信したリクエストを複数のサーバノード間で振り分ける。構成変更機構は、サービスの起動又は停止に関する構成変更に際し、必要なリソース量を算定する。負荷分散機構は、負荷管理テーブルを参照して、算定されたリソース量を必要とするサーバノードについてそのリソース量を確保する。その後、構成変更機構は、構成変更を実行し、サービスの再配置を行なう。
【０００５】
また、特開２０１１−０９０５９４号公報には、クラスタシステムのスケールイン／スケールアウトや片寄せ時の移行コストを削減し、消費電力を削減することができるサーバ管理装置が開示されている。サーバ管理装置は、仮想サーバ群を稼働する物理サーバ群を管理し、物理サーバ群に配置された複数の仮想サーバを含んでなるクラスタシステムを運用する際に、仮想サーバ群の負荷状態により仮想サーバの配置状態を管理する。スケールイン実行時には、稼働中の仮想サーバ数が最も少ない物理サーバで稼働する仮想サーバを停止対象とする。スケールアウト実行時には、負荷変動を予測し、負荷の変動が類似したクラスタシステムが同じ物理サーバ上に集まるようにクラスタシステムのスケールアウト先を制御する。スケールインの実行タイミングは、予測した負荷変動が上昇傾向なら実行を遅らせ、下降傾向なら実行を早める。このように、クラスタシステムのスケールイン／スケールアウトが行なわれる。
【０００６】
また、特開平１１−２９６４９２号公報には、マルチ計算機システムにおけるリカバリ処理の技術が開示されている。ある計算機に障害が発生した場合、正常に動作している計算機の中で、その時点において最もシステム負荷の低い計算機でリカバリ処理を実施させることにより、通常の運用中において、計算機間で動作負荷を分散させ、柔軟な運用を可能にする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−３５３２９２号公報
【特許文献２】特開２００６−０７９１６１号公報
【特許文献３】特開２００７−２４９４４５号公報
【特許文献４】特開２０１１−０９０５９４号公報
【特許文献５】特開平１１−２９６４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、稼働効率を上げることである。
【課題を解決するための手段】
【０００９】
本発明の観点では、情報処理装置は、負荷量算出部と、負荷量蓄積部と、負荷量予測部と、フェイルオーバ先選択部とを具備する。負荷量算出部は、所定の単位時間の負荷を示す負荷量を自ノード負荷量として定期的に算出する。負荷量蓄積部は、障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する負荷量を受信して候補ノード負荷量として、自ノード負荷量とともに蓄積する。負荷量予測部は、負荷量蓄積部に蓄積される自ノード負荷量と候補ノード負荷量とに基づいて、自ノード負荷量を算出する時点以降の予測負荷量を算出する。フェイルオーバ先選択部は、予測負荷量に基づいて、自ノード負荷量を算出する時点毎にフェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定する。また、前述の情報処理装置は、ネットワークを介して複数台接続してクラスタを形成し、そのクラスタシステムは、複数の情報処理装置のうちの第１情報処理装置に障害が発生したときにフェイルオーバ先候補ノードとして登録されている複数の情報処理装置のうちの第２情報処理装置にフェイルオーバする。
【００１０】
本発明の他の観点では、フェイルオーバ方法は、所定の単位時間の負荷を示す負荷量を自ノード負荷量として算出するステップと、障害発生時にフェイルオーバ先となるフェイルオーバ先候補ノードが算出する負荷量を候補ノード負荷量として受信するステップと、自ノード負荷量と候補ノード負荷量とを蓄積するステップと、蓄積される自ノード負荷量と候補ノード負荷量とに基づいて、自ノード負荷量を算出する時点以降の予測負荷量を算出するステップと、予測負荷量に基づいて、自ノード負荷量を算出する時点毎にフェイルオーバ先候補ノードのうちのいずれかを選択してフェイルオーバ先ノードに設定するステップと、障害発生時に、設定されているフェイルオーバ先ノードにフェイルオーバするステップとを具備する。
【発明の効果】
【００１１】
本発明によれば、一定期間の負荷予測に基づいてフェイルオーバ先のノードを決定することにより、稼働効率を改善することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施の形態に係るクラスタシステムの構成を示す図である。
【図２】図２は、負荷を数値として示す負荷量を算出するための情報の例を示す図である。
【図３】図３は、算出された負荷量の例を示す図である。
【図４】図４は、比較する合計負荷量の例を示す図である。
【図５】図５は、フェイルオーバさせる際の動作手順を説明するフローチャートである。
【図６】図６は、本実施の形態に係るクラスタシステムの各ノードの構成を示す図である。
【図７】図７は、本実施の形態に係る各ノードの機能構成を示す図である。
【発明を実施するための形態】
【００１３】
図面を参照して、本発明の実施の形態を説明する。
【００１４】
図１は、本発明の実施の形態に係るクラスタシステムの構成を示す図である。クラスタシステムは、ノード１０、ノード２０、ノード３０を備える。ノード１０はリソース１１を有し、ノード２０はリソース２１を有し、ノード３０はリソース３１を有する。ノード１０、２０、３０は、パブリックＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）およびインターコネクトＬＡＮによって相互に接続され、各種データを送受している。各ノード１０、２０、３０は、互いにシステムリソース状況を参照して、フェイルオーバ先を決定する。
【００１５】
図２は、各ノード１０、２０、３０における負荷を数値として示す負荷量を算出するための情報の例を示す。ここでは、各ノードにおけるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の使用率とメモリの使用量とを、負荷量を算出するための基礎情報とする。すなわち、負荷量は、ＣＰＵ使用率とメモリ使用量とを乗算し、時間積分して求める。時間積分する単位時間ΔＴは、例えば６０秒間とする。このように算出される負荷量は、ノード毎に一定期間、例えば４週間蓄積される。また、この情報は、フェイルオーバ先の候補となる各ノードに配信されて共有化される。
【００１６】
図３には、上述のように算出されたノード１０、２０、３０の負荷量が示される。ここでは、負荷量は、単位時間ΔＴ＝６０秒として算出され、算出された負荷量の１０分間の平均値を４週間にわたって蓄積されたものとする。図３は、各日の２４時間（０時〜２３時５０分）分の負荷量の経時変化を１０分毎に対応付けてグラフ化して示したものである。負荷量は、４週間分のデータの平均であってもよいし、４週間分のデータの総和であってもよい。また、曜日毎に負荷量が変動する場合は、曜日毎の総和あるいは平均であってもよい。
【００１７】
図３に示されるように、負荷量は時刻毎に変動する。そのため、障害発生時、およびその後のフェイルオーバ期間の負荷量がどのように変化するか予測して、フェイルオーバ先のノードを決めることができる。例えば、図３に示されるように、１３時３０分にノード１０に障害が発生すると、ノード２０、３０の１３時３０分以降の負荷量に基づいて、ノード１０のリソース１１をノード２０またはノード３０にフェイルオーバすることができる。すなわち、フェイルオーバ先を時刻毎に過去の負荷量の実績に基づいて、その先の負荷量を予測し、フェイルオーバ先を設定しておくことにより、障害発生時に効率よくフェイルオーバすることができる。
【００１８】
フェイルオーバ先の選択は、例えば、図４に示されるように、ノード１０がフェイルオーバ先を選択する場合には、ノード１０の負荷量と、ノード２０、３０の負荷量とを時刻毎に加えた合計負荷量を比較して行なわれる。すなわち、フェイルオーバ先のノードのフェイルオーバ後の予測される負荷量が比較される。ノード１０の負荷量は、図３に示されるように、１３時３０分頃から増加し、１５時前後に最大に達し、業務終了の１７時３０分まで徐々に減少する。ノード２０の負荷量は、同様に、１４時頃から１４時３０分頃まで増加して最大となり、その後徐々に減少する。また、ノード３０の負荷量は、１３時３０分以降減少して１４時３０分頃から１６時頃まで落ち着き、その後再度増加して１６時３０分から１７時頃に業務終了前のピークを迎え、その後減少する。
【００１９】
ノード１０の負荷量と、ノード２０の負荷量とを加算すると、図４に示されるように、１５時頃から１７時３０分頃まで負荷のピークとなることが分かる。また、ノード１０の負荷量と、ノード３０の負荷量とを加算すると、図４に示されるように、１３時３０分頃から１７時３０分頃まで比較的負荷量が少ないことが分かる。１３時３０分頃、ノード１０の負荷量とノード３０の負荷量との合計負荷量は、ノード１０の負荷量とノード２０の負荷量との合計負荷量より大きい。しかし、１４時３０分頃合計負荷量は逆転し、ノード１０の負荷量とノード２０の負荷量との合計の方が大きくなる。したがって、１３時３０分にノード１０に障害が発生した場合、業務終了までの負荷量を考えると、ノード１０の負荷は、ノード３０にフェイルオーバする方が有利であることが分かる。
【００２０】
このように、一定期間の負荷予測からフェイルオーバ後の負荷量を正確に予測でき、フェイルオーバ先のノードを決定することができるため、稼働効率の改善を行なうことができる。
【００２１】
図５を参照して、フェイルオーバさせる際の動作手順を説明する。
【００２２】
各ノードは、動作を開始すると、負荷グラフの基になる情報を収集し、記録する。上述のように、各ノードにおける負荷を数値として示す負荷量を算出するための基礎情報として、各ノードにおけるＣＰＵの使用率と、メモリの使用量とが収集され、負荷量が算出される。負荷量は、ＣＰＵ使用率とメモリ使用量とを乗算し、時間積分して求められる。時間積分する単位時間ΔＴは、例えば６０秒間とする。このように算出される負荷量は、ノード毎に一定期間、例えば４週間蓄積される。また、この情報は、各ノードに配信されて共有化される（ステップＳ１０）。
【００２３】
各ノードは、現状の負荷量を収集、蓄積しつつ、過去に蓄積された情報に基づいて、システムのリソースを所定のタイミングで確認する（ステップＳ１２）。すなわち、例えばその時点以降の１０分毎に、図４に示されるように、各ノードは、自ノード（ノード１０）の負荷量と、フェイルオーバ先となるノード（ノード２０、３０）の負荷量との合計を算出して比較する。上述のノード１０の場合、その時点以降の自ノードの負荷量とノード２０の負荷量とを合計して負荷量Ａを算出し、ノード３０の負荷量とを合計して負荷量Ｂを算出する。また、ノード２０は、ノード１０の負荷量との合計負荷量、ノード３０の負荷量との合計負荷量を算出して比較し、ノード３０は、ノード１０の負荷量との合計負荷量、ノード２０の負荷量との合計負荷量を算出して比較する。図５では、ノード１０の場合が示される。
【００２４】
ノード１０は、比較の結果、負荷量Ａが負荷量Ｂより大きい場合（ステップＳ１４−ＹＥＳ）、フェイルオーバ先をノード３０に設定し（ステップＳ１６）、それ以外は、フェイルオーバ先をノード２０に設定する（ステップＳ１８）。これを例えば１０分毎に繰り返す。フェイルオーバ先の設定を繰り返し行なうことにより、時々刻々変化する負荷量に応じて最適なフェイルオーバ先を見直すことができる。ここでは、ノード１０について示したが、他のノードの場合も同様に予測される合計負荷量に基づいて、フェイルオーバ先のノードを設定する。
【００２５】
このように、各ノードは、各日の００時００分から２３時５０分まで、１０分間隔でフェイルオーバ先を算出する。すなわち、各ノードは、最新の負荷を観測して負荷量を算出し、直後に各ノードの負荷グラフを更新する。したがって、次の観測時刻までにフェイルオーバ先が算出し直され、時々刻々変化する予測される負荷量に対応してフェイルオーバ先が見直される。すなわち、本発明によれば、一定期間の負荷予測からフェイルオーバ先のノードを決定することにより、稼働効率の改善を行なうことができる。
【００２６】
本実施の形態に係るクラスタシステムの各ノードは、図６に示されるように、ＣＰＵ９１と、メモリ９２と、入出力部９３と、パブリックＬＡＮ４０およびインターコネクトＬＡＮ５０に接続されるＬＡＮ制御部９４とを備える情報処理装置９０であることが好ましい。この情報処理装置９０は、図７に示されるように、負荷量算出部９５、負荷量蓄積部９６、負荷量予測部９７、フェイルオーバ先選択部９８を実現するプログラムをメモリ９２に備える。これらの機能は、プログラムにより実現することが好ましいが、その一部あるいは全部をハードウェアによって実現することも可能である。
【００２７】
負荷量算出部９５は、各ノードにおける負荷を数値として示す負荷量を算出するための基礎情報として、各ノードにおけるＣＰＵの使用率と、メモリの使用量とを収集し、負荷量を算出する。負荷量は、ＣＰＵ使用率とメモリ使用量とを乗算し、時間積分して求められる。負荷量蓄積部９６は、一定期間、例えば４週間分の算出された負荷量を蓄積する。フェイルオーバ先の候補であるノードの負荷量も蓄積しておくことが好ましい。負荷量予測部９７は、蓄積された負荷量に基づいて、その時点以降の自ノードの負荷量とフェイルオーバ先の候補ノードの負荷量とを合計して合計負荷量を算出する。すなわち、負荷量予測部９７は、算出時点以降の負荷を予測する。
【００２８】
フェイルオーバ先選択部９８は、算出された合計負荷量に基づいて、算出時点におけるフェイルオーバ先を選択する。すなわち、合計負荷量が少ないフェイルオーバ先候補のノードが、その時点におけるフェイルオーバ先として設定される。ノードに障害が発生した場合、そのノードのシステムリソースは、設定されたフェイルオーバ先のノードにフェイルオーバさせることができる。このように、予測される負荷量に基づいてフェイルオーバ先を選択することにより、稼働効率を改善することができる。
【００２９】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００３０】
１０、２０、３０  ノード
１１、２１、３１  リソース
４０  パブリックＬＡＮ
５０  インターコネクトＬＡＮ
９０  情報処理装置
９１  ＣＰＵ
９２  メモリ
９３  入出力装置
９４  ＬＡＮ制御部
９５  負荷量算出部
９６  負荷量蓄積部
９７  負荷量予測部
９８  フェイルオーバ先選択部
【図１】
2013228793.tif 000003
【図２】
2013228793.tif 000004
【図３】
2013228793.tif 000005
【図４】
2013228793.tif 000006
【図５】
2013228793.tif 000007
【図６】
2013228793.tif 000008
【図７】
2013228793.tif 000009