説明

仮想環境における故障復旧方法及びサーバ及びプログラム

【課題】 仮想環境において、故障のカテゴリを判断でき、故障時の系切り替えによるサービス提供の処理速度の性能劣化を招くことなく運用可能とする。
【解決手段】 本発明は、仮想環境における現用機と予備機で構成されるクラスタシステムにおいて、ログによる故障箇所のカテゴリを特定し、故障箇所がリソースの場合は、現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」に遷移させる。また、特定された故障のカテゴリがゲストマシンからホストマシンへの導通不良や、ネットワーク故障の場合には、導通確認を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想環境における故障復旧方法及びシステムに係り、特に、仮想化技術を実現する仮想マシンモニタ(例えば、XenまたはKVM等)が導入されている仮想機能を有する冗長系のシステムにおいて、現用機がシステムに組み入れられていない原因を特定し、復旧させるための仮想環境における故障復旧方法及びサーバ及び故障復旧プログラムに関する。
【背景技術】
【0002】
サービスの重要性が増すにつれ、ダウンタイムの少ないシステムの要求が高まっている。このため、複数のサーバで冗長構成されたクラスタシステムを構築し、何らかの故障が発生したときに自動的にサーバを切り替えることにより、サービスの継続を可能とするHeartbeat及びPacemakerなどの高可用性クラスタソフトが開発されている(非特許文献1参照)。
【0003】
高可用性クラスタソフトでは、サーバ上のリソース、ネットワーク、共有ディスク等を監視しており、サービス稼働中のサーバで故障を検知すると、予め待機しているサーバに切り替え、サービスを継続させる。
【0004】
図1に、高可用性クラスタソフトを用いたクラスタシステムの概略図を示す。クラスタシステムは、ネットワークに接続されている複数のサーバ(現用機及び予備機)と、これらの複数のサーバで共有して用いられる共有ディスクとを有する。
【0005】
現用機及び予備機は、オペレーティングシステム(OS)と、高可用性クラスタソフトと、サービスを提供するために必要な構成要素であるリソースとをそれぞれ有する。高可用性クラスタソフトは、現用機での故障の発生を検知し、故障が発生したときに自動的に予備機に切り替える。サーバにおけるサービスの稼働状態、リソースの稼働状態及び故障状態は、内蔵ディスクの状態記憶部に格納され、故障箇所等の詳細な情報は、内蔵ディスクのログ記憶部に格納される。
【0006】
現用機及び予備機は、サービスLANと呼ばれるネットワークに接続されており、リソースによるサービスをクライアントに提供する。また、現用機及び予備機は、インターコネクトLANと呼ばれるネットワークに接続されており、サーバにおけるサービスの稼働状態、リソースの稼働状態、故障状態等の情報を交換する。更に、現用機及び予備機は、管理LANと呼ばれるネットワークに接続されており、保守端末からのコマンドを受け付けることができる。
【0007】
また、現用機及び予備機には、故障時に他サーバの電源を強制的に切断する強制電源断機能を設定することができる。強制電源断機能は、管理LANを経由して他サーバのハードウェア制御ボードに対して電源を切断する指示を送信することにより、他サーバの電源を切断する。
【0008】
共有ディスクは、サービスの一貫性を保つために、サービス提供に用いられるデータを保存する記憶装置である。共有ディスクにより、現用機から予備機に切り替わった後も、同じデータを用いてサービスを継続できる。
【0009】
このように、高可用性クラスタソフトでリソースの故障を監視しているため、リソース故障が発生した場合に、予備機に切り替えてサービスを継続させることができる。予備機に系切り替えを行った後は、予備機でサービスが継続される(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特許第4353005号公報,「クラスタ構成コンピュータシステムの系切り替え方法」
【非特許文献】
【0011】
【非特許文献1】三井 一能 他,「サービスの可用性を向上させるOSSミドルHeartbeatの開発」,NTT技術ジャーナル,2009年3月,46〜49ページ
【発明の開示】
【発明が解決しようとする課題】
【0012】
上記の技術は、現用機に障害が発生した場合に予備機に系切り替えを行う処理であるが、仮想環境については考慮されておらず、また、障害発生時に、リソース故障、ネットワーク障害等の故障原因の特定を行うことができないため、現用機の故障箇所によっては現用機を単に起動させたとしても、正常に動作するとは限らない。
【0013】
更に、クラスタシステムにおいて予備機の性能が現用機の性能より劣る場合には、予備機でのサービス提供中は、処理速度が低下する。このような処理速度の低下は、予備機の性能が現用機の性能より劣っている場合だけでなく、2つ以上の現用機と1つの予備機とでクラスタシステムが構成されている場合にも生じる可能性がある。
【0014】
本発明は、上記の点に鑑みなされたもので、文献「"オープンソース仮想化技術"NTT技術ジャーナル2009 vol. 21. No.8. 2009.8, pp.82-86」等に示されるXen等のオープンソースの仮想化プロダクトによる仮想環境において、故障のカテゴリを判断でき、故障時の系切り替えによるサービス提供の処理速度の性能劣化を招くことなく運用が可能な仮想環境における故障復旧方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明の上記の課題を解決するため、本発明(請求項1)の仮想環境における故障復旧方法は、ハイパーバイザが導入された仮想環境における現用機及び予備機から構成されるクラスタシステムにおいて、該現用機及び該予備機が、該現用機及び該予備機サービス稼動状態を示すクラスタ状態を管理するクラスタ状態管理手段、クラスタ状態及び故障状態を格納する状態管理情報記憶手段、故障箇所を示す故障ログを格納するログ記憶手段をそれぞれ含み、該予備機がサービス稼動中であり、該現用機がクラスタ構成に組み込まれていない場合に、障害原因を特定するための仮想環境における故障復旧方法であって、
現用機の故障推定手段が、現用機のログ記憶手段から検索した結果に基づいて、該現用機の故障箇所を推定する故障箇所推定ステップと、
故障箇所推定ステップにおいて、現用機の故障箇所がネットワーク故障であると推定された場合には、該現用機の導通確認手段が、該現用機に接続されたルータまでの導通を確認する導通確認ステップと、
ルータまでの導通確認が成功した場合に、現用機のクラスタ構成起動手段が、該現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させるクラスタ構成起動ステップと、を行う。
【0016】
また、本発明(請求項2)は、現用機に、ホストマシンとゲストマシンが導入されている環境において、
導通確認ステップにおいてホストマシンとゲストマシン間の通信故障であると特定された場合には、
導通確認ステップにおいて、
ゲストマシンからホストマシンへの導通不良を確認し、
クラスタ構成起動ステップにおいて、
ゲストマシンからホストマシンへの導通が成功した場合には、現用機のクラスタ状態を「サービス稼働中へ遷移できる状態」へ遷移させる。
【0017】
また、本発明(請求項3)は、故障箇所推定ステップにおいて故障箇所のカテゴリがリソースであると推定された場合は、
クラスタ構成起動ステップにおいて、現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させる。
【0018】
また、本発明(請求項4)は、故障箇所推定ステップにおいて、現用機及び予備機に、故障時に他サーバの電源を強制的に切断する強制電源断機能が導入されており、該予備機のログ記憶手段から強制電源断機能に関するエラーが検索された場合には、該現用機に重大なエラーが検出されたものと判定し、
導通確認ステップにおいて、
予備機から現用機の電源制御手段に対して導通確認を行い、
クラスタ構成起動ステップにおいて、
導通確認ステップにて電源制御手段への導通が成功した場合には、現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」に遷移させる。
【0019】
本発明(請求項5)のサーバ(現用機)は、ハイパーバイザが導入された仮想環境における現用機及び予備機から構成されるクラスタシステムにおいて、該現用機及び該予備機が、該現用機及び該予備機サービス稼動状態を示すクラスタ状態を管理するクラスタ状態管理手段、クラスタ状態及び故障状態を格納する状態管理情報記憶手段、故障箇所を示す故障ログを格納するログ記憶手段をそれぞれ含み、該予備機がサービス稼動中であり、該現用機がクラスタ構成に組み込まれていない場合に、障害原因を特定するための現用機として動作するサーバであって、
ログ記憶手段から検索した結果に基づいて、該現用機の故障箇所を推定する故障箇所推定手段と、
故障箇所推定手段において、現用機の故障箇所がネットワーク故障であると推定された場合には、該現用機に接続されたルータまでの導通を確認する導通確認手段と、
ルータまでの導通確認が成功した場合に、当該現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させるクラスタ構成起動手段と、を有することを特徴とする。
【0020】
また、本発明(請求項6)のサーバは、当該サーバに、ホストマシンとゲストマシンが導入されている環境において、導通確認手段に、該ホストマシンと該ゲストマシン間の通信故障であると特定された場合には、該ゲストマシンから該ホストマシンへの導通を確認する手段を含み、
クラスタ構成起動手段に、導通確認手段にてゲストマシンからホストマシンへの導通が成功した場合には、現用機のクラスタ状態を「サービス稼働中へ遷移できる状態」へ遷移させる手段を含む。
【0021】
また、本発明(請求項7)のサーバのクラスタ構成起動手段は、故障箇所推定手段において、故障箇所のカテゴリがリソースである場合は、当該サーバのクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させる手段を更に有する。
【0022】
また、本発明(請求項8)のサーバは、現用機及び予備機に、故障時に他サーバの電源を強制的に切断する強制電源断機能が導入されている環境では、
クラスタ構成起動手段に、予備機にて強制電源断機能に関するエラーが検出され、かつ、予備機の導通確認手段が予備機から現用機の電源制御手段への導通確認を行い、導通不良であると判った場合には、当該サーバのクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させない手段を含む。
【0023】
本発明(請求項9)は、請求項5乃至8のいずれか1項に記載のサーバを構成する各手段としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0024】
上記のように、本発明によれば、仮想環境において、現用機がクラスタ構成に組み込まれていない故障原因を推測することにより、復旧への対処が容易になる。
【0025】
また、推測された故障原因のカテゴリがリソース故障である場合には、予備機でサービス稼働中である場合は、現用機でサービスを再開させることが可能になるため、対故障性と対パフォーマンス性を向上させることが可能となる。
【図面の簡単な説明】
【0026】
【図1】高可用性クラスタソフトを用いたクラスタシステムの概略図である。
【図2】本発明の一実施の形態におけるシステム構成図である。
【図3】本発明の一実施の形態における要部の詳細構成図である。
【図4】本発明の一実施の形態における状態管理情報記憶部の格納項目を示す図である。
【図5】本発明の一実施の形態における初期状態と終了状態を示す図である。
【図6】本発明の一実施の形態における動作の概要を示す図である。
【図7】本発明の一実施例における一連の動作のフローチャート(その1)である。
【図8】本発明の一実施例における一連の動作のフローチャート(その2)である。
【図9】本発明の一実施例における図7のステップ101の動作を示す図である。
【図10】本発明の一実施例における図7のステップ101,104,107の動作を示す図である。
【図11】本発明の一実施例における図7のステップ103の動作を示す図である。
【図12】本発明の一実施例における図7のステップ105の動作を示す図である。
【図13】本発明の一実施例における図7のステップ108の動作を示す図である。
【図14】本発明の一実施例における図8のステップ109の動作を示す図である。
【図15】本発明の一実施例における図8のステップ110の動作を示す図である。
【図16】本発明の一実施例における図8のステップ111の動作を示す図である。
【図17】本発明の一実施例における図8のステップ112の動作を示す図である。
【図18】本発明の一実施例における図8のステップ113の動作を示す図である。
【図19】本発明の一実施例における図8のステップ114の動作を示す図である。
【発明を実施するための形態】
【0027】
以下図面と共に、本発明の実施の形態を説明する。
【0028】
最初に、本明細書で用いる用語について定義する。
【0029】
・クラスタ構成:
複数サーバを相互に接続し、ユーザや他サーバに対して全体で1台のサーバであるかのように振舞わせる技術であり、複数サーバを1台のサーバを扱うように管理することができる。1台が停止してもシステム全体が止まることはなく、処理を続行したまま修理や交換が可能である。
【0030】
・リソース:
サービスを提供するために必要な構成要素を指す。クラスタ構成におけるリソースとは、高可用性クラスタソフトが起動、停止、監視等の制御対象とするアプリケーションを指す。アプリケーションには、データベース(DB)などが含まれる。
【0031】
・ACT:
サーバでサービス稼働中のことを指す。クラスタ構成において、DBなどサービスを提供するリソースが稼動しているサーバの状態を"ACT"と記す。
【0032】
・SBY[online]:
"ACT"へ遷移できる状態のことをいう。クラスタ構成において、故障などによる系切り替えが発生した場合、"ACT"からリソースを切り替えることが可能なサーバを"SBY[online]"と記す。
【0033】
・SBY[standby]:
クラスタ構成において、故障などによる系切り替えが発生した場合でも、"ACT"にならないように抑制されている状態のサーバを"SBY[standby]"と記す。
【0034】
・SBY[遷移中]:
"ACT"へ遷移しようとしている状態(系切り替え中の状態)を指す。クラスタ構成において、故障などによる系切り替えが発生し"ACT"へ遷移しようとしているが、現用機側で実施されているリソースの停止処理が正常終了するのを待っている状態のサーバを"SBY[遷移中]"と記す。
【0035】
・NONE:
サーバがクラスタ構成に組み込まれていない状態を指す。サーバや高可用性クラスタソフト停止が停止していることにより、クラスタ構成に組み込まれていないサーバを"NONE"と記す。
【0036】
図2は、本発明の一実施の形態におけるシステム構成を示す。
【0037】
同図に示すクラスタシステムは、仮想環境における仮想サーバのベースであるホストマシンとゲストマシン及び仮想マシンを制御するための制御プログラムであるハイパーバイザを有する複数のサーバ(本実施の形態では現用機10、予備機20と記す)。これらのサーバは、共有ディスク30、クライアント装置1、サービスLAN2、ルータ3、保守端末4、管理LAN5に接続されている。
【0038】
現用機10、予備機20はそれぞれルータ3を介してクライアント装置1にサービスを提供する。なお、現用機10の性能は予備機20の性能より優れていてもよい。同図には、現用機10、予備機20をそれぞれ1つずつ記載しているが、2つ以上の現用機と1つの予備機20としてもよい。
【0039】
現用機10は、ホストマシン用に割り当てられたホストマシン割当ディスク161、ゲストマシン用に割り当てられたゲストマシン割当ディスク162を含む内蔵ディスク160、ハードウェア制御ボード17、及び、これらの構成要素間の通信を行うためのインタフェースを有する。内蔵ディスク160のゲストマシン割当ディスク162はログ記憶部163と状態管理情報記憶部164を含む。
【0040】
現用機10のホストマシン150は、ディスク監視機能とネットワーク監視機能を有するデバイス一括監視部151を有し、ホストマシン150とハイパーバイザ170との間には、管理LANネットワーク仮想インタフェース(I/F)13とサービスLANネットワーク仮想I/F14を有する。
【0041】
現用機10のホストマシン150のデバイス一括監視部151のディスク監視機能は、内蔵ディスク160と共有ディスク30のディスク管理を行い、その導通結果をホストマシン150とゲストマシン110の間で通信を行い、ホストマシンの管理LANネットワーク仮想I/F13、ハイパーバイザ170、ゲストマシンの管理LANネットワーク仮想I/F15を介して、ゲストマシンの高可用性クラスタソフト140に通知すると共に、ログ記憶部163に格納する。当該ディスク監視機能からエラーメッセージ出力が出力された場合は、現用機10とルータ3間のサービスLAN通信故障または、ホストマシンとゲストマシン間の経路故障が考えられる。
【0042】
現用機10のホストマシン150のデバイス一括監視部151のネットワーク監視機能は、サービスLANネットワーク仮想I/F14、ハイパーバイザ170、サービスLANネットワークI/F11を介してルータ3との導通確認を行う。その導通結果をホストマシンとゲストマシンの間で通信を行い、ホストマシン150のサービスLANネットワーク仮想I/F16、ハイパーバイザ170、ゲストマシン110のサービスLANネットワーク仮想I/F16を介して、ゲストマシン110の高可用性クラスタソフト140に通知すると共に、ログ記憶部163に格納する。当該ネットワーク監視機能からエラーメッセージ出力が出力された場合は、現用機10とルータ3間のサービスLAN通信故障または、ホストマシン150とゲストマシン110間の経路故障が考えられる。
【0043】
現用機10のゲストマシン110は、リソース120、制御実行部130、自身の稼動状態を外部に通知するための高可用性クラスタソフト140を有し、ゲストマシン110とハイパーバイザ170との間には、管理LANネットワーク仮想I/F15とサービスLANネットワーク仮想I/F16を有する。当該ゲストマシンの構成については図3にて後述する。
【0044】
予備機20も現用機10と同様に、ホストマシン150とゲストマシン110と、ハイパーバイザ270がインストールされている。また、ホストマシン割当ディスク261とゲストマシン割当ディスク262を含む内蔵ディスク240、ハードウェア制御ボード27を有する。ゲストマシン割当ディスク262にはログ記憶部263と状態管理情報記憶部264が含まれる。
【0045】
予備機20のホストマシン250は、ディスク監視機能とネットワーク監視機能を有するデバイス一括監視部251を有し、ホストマシン250とハイパーバイザ270との間には、管理LANネットワーク仮想インタフェース(I/F)23とサービスLANネットワーク仮想I/F24を有する。
【0046】
予備機20のゲストマシン210は、リソース220、制御実行部230、高可用性クラスタソフト240を有し、ゲストマシン210とハイパーバイザ270との間には、管理LANネットワーク仮想I/F25とサービスLANネットワーク仮想I/F26を有する。
【0047】
以下に、故障の可能性があり、状態が「NONE」となり、クラスタ構成に組み込まれていない現用機10のゲストマシンを中心とした構成を示す。
【0048】
図3は、本発明の一実施の形態における要部の詳細構成を示す。
【0049】
現用機10のゲストマシン110は、リソース120、制御実行部130、高可用性クラスタソフト140を有し、高可用性クラスタソフト140には、内蔵ディスク160の状態管理情報記憶部164が接続されている。なお、ここでは、現用機10のみを記すが、予備機20も同様の構成である。
【0050】
制御実行部130は、ログ検索部131、導通確認部132、系切り替え部133、状態確認実行部134、起動実行部135、コマンド実行部136、故障箇所推定部137を有し、ログ検索部131には、内蔵ディスク160のログ記憶部163が接続されている。
【0051】
ログ検索部131は、保守端末4からログインされると、故障箇所推定部137からの制御によりログ記憶部163を検索し、エラーメッセージを取得し故障箇所推定部137に渡す。
【0052】
導通確認部132は、故障箇所推定部137からの制御により、Ping処理を実行し、ルータ3までの導通を確認し、故障箇所推定部137に渡す。
【0053】
系切り替え部133は、現用機10及び予備機20のクラスタ状態を変更する。
【0054】
状態確認実行部134は、高可用性クラスタソフトの状態コマンドを実行することにより取得したクラスタ状態を確認する。
【0055】
起動実行部135は、高可用性クラスタソフト140を起動する。
【0056】
コマンド実行部136は、高可用性クラスタソフト140にコマンドを実行させる。
【0057】
故障箇所推定部137は、ログ検索部131、導通確認部132から取得したエラーメッセージにより故障箇所を推定する。
【0058】
高可用性クラスタソフト140は、「クラスタ状態管理手段」として動作し、サーバの故障状態を監視する故障監視機能と、クラスタ状態及び故障状態に基づいてリソースを起動及び停止させるリソース起動・停止機能と、故障状態に基づいて状態管理情報記憶部164のクラスタ状態を管理する状態管理機能とが含まれる。故障監視機能として、ネットワーク監視結果取得部141とディスク監視結果取得部142を有し、制御実行部130の起動実行部135により起動され、コマンド実行部136からの制御によりコマンドを実行することにより、状態管理情報記憶部164の内容を更新すると共に、他のサーバ(予備機20)にクラスタ状態等を通知する。ネットワーク監視結果取得部141は、ゲストマシンのデバイス一括監視部151のネットワーク監視機能からサービスLANネットワーク仮想I/F14、ハイパーバイザ170、サービスLANネットワーク仮想I/F16を介して、ルータ3の導通結果を取得する。ディスク監視結果取得部142は、ホストマシンのデバイス一括監視部151からホストマシンの管理LANネットワーク仮想I/F13、ハイパーバイザ170、ゲストマシン110の管理LANネットワーク仮想I/F15を介して、ディスクの監視結果を取得する。
【0059】
ログ記憶部163には、ホストマシンのデバイス一括監視部151から取得した、ディスク、ネットワーク等の故障ログが格納されている。予備機20のログ記憶部263にも同様に、ホストマシンのデバイス一括監視部251から取得した故障ログが格納される。
【0060】
状態管理情報記憶部164には、図4に示すように、クラスタ状態、故障回数、エラーステータス、リソース状態のフラグや値が格納され、これらの値は、高可用性クラスタソフト140の状態管理機能により管理される。
【0061】
以下に、上記の構成における一連の故障検出から復旧までの動作の概要を示す。
【0062】
まず、図5に初期状態と終了状態を示す。
【0063】
初期状態は、予備機20で状態確認処理が実行され、状態管理情報記憶部264の故障回数が"0"、エラーステータスが"0"となり、予備機20のクラスタ状態が"ACT"、現用機10のクラスタ状態が"NONE"状態のとき、現用機10の電源スイッチONの処理を行いOSを立ち上げた状態である。
【0064】
また、終了状態は、故障の推測処理を行い、その結果、故障カテゴリとして「リソース」故障であった場合に、当該リソースの復旧処理を行い、現用機10のクラスタ状態を"ACT"、予備機20のクラスタ状態を"SBY[online]"とするものである。
【0065】
以下に、上記図5の一連の処理を説明する。
【0066】
図6は、本発明の一実施の形態における動作の概要を示すシーケンスチャートである。
【0067】
ステップ1) 現用機10がクラスタ構成に組み込まれていない"NONE"状態で、当該現用機10のOSを立ち上げる。このとき、予備機20は、サービス稼動中の"ACT"の状態である。
【0068】
現用機10、予備機20において保守端末4から管理LAN5を介してログインを受け付け、制御実行部130のログ検索部131がログ記憶部163を検索してエラーメッセージを取得する。ここでは、リソースエラーを示すエラーメッセージを取得したものとする。
【0069】
ステップ2) さらに、制御実行部130は、保守端末4に対して、エラーメッセージを出力することで、強制電源断機能の導通確認を依頼する。これにより、保守端末4から予備機20にログインし、予備機20の実行制御部の導通確認部232から現用機10のハードウェア制御ボード17宛に導通確認を行う。ここでは、導通は成功したものとする。なお、仮に導通確認に失敗したとしても、サービス続行には大きく影響しないため、現用機10をクラスタ構成に組み入れることが可能である。
【0070】
ステップ3) 故障推定部137は、上記のステップ1,2の結果から故障発生箇所が「リソース」であると判定する。
【0071】
ステップ4) 起動実行部135は、高可用性クラスタソフト140を起動させる。
【0072】
ステップ5) 高可用性クラスタソフト140は、状態管理情報記憶部164の現用機10のクラスタ状態を"SBY[online]"にする。
【0073】
ステップ6) 次に、高可用性クラスタソフト140は予備機20のクラスタ状態を"ACT"から"SBY[standby]"に変更し、予備機20に対して、更新された現用機10、予備機20の状態管理情報を通知する。これにより、予備機20の高可用性クラスタソフ240において、状態管理情報記憶部264の内容を更新する。
【0074】
ステップ7) 状態確認実行部134は、予備機20のクラスタ状態が"SBY[standby]"、現用機10のクラスタ状態が"SBY[online]"となっていることを確認し、予備機20の系切り替えを終了させるために、予備機20のクラスタ状態を"SBY[online]"に戻す。
【0075】
ステップ8) 状態確認実行部134は、状態確認処理を実行し、予備機20のクラスタ状態が"SBY[online]"になっていなければエラーを出力し、処理を終了する。
【実施例】
【0076】
以下、図面と共に、本発明の処理を詳細に説明する。
【0077】
図7、図8は、本発明の一実施例における一連の動作のフローチャートである。
【0078】
なお、以下の各ステップに記載されている「クラスタ状態」、「故障回数」、「エラーステータス」、「リソース状態」等は、現用機10及び予備機20の状態管理情報記憶部164,264に格納されている値である。
【0079】
復旧方法の実行に先立ち、状態確認実行部134は、状態確認コマンドを実行して、現用機の状態管理情報記憶部164に格納されたクラスタ状態を読み取り、現用機10のクラスタ状態が"NONE"であり、予備機20のクラスタ状態が"ACT"であることを確認してもよい。ここで、高可用性クラスタソフト140,240により、現用機10と予備機20との間で状態管理情報記憶部164,264の情報交換が行われているため、状態確認コマンドにより現用機10及び予備機20の双方の状態を読み取ることができる。
【0080】
ステップ101) 図9に示すように、保守端末4から管理LAN5上にある制御部から現用機10及び予備機20の制御実行部130,230に対してログインする。現用機10へのログインに失敗した場合は、保守端末4に接続される表示装置等にエラー出力を行い、当該処理を終了する。
【0081】
この時点でのログイン時の現用機10、予備機20は以下の状態である。
【0082】
(現用機の状態)
クラスタ状態:"NONE"
故障回数:0
エラーステータス:0
リソース状態:0
(予備機の状態)
クラスタ状態:"ACT"
故障回数:0
エラーステータス:0
リソース状態:1(Started)
ステップ102) 次に、図10に示すように、現用機10のゲストマシン110の制御実行部130のログ検索部131からOS機能である検索のコマンドを実行し、該当するエラーメッセージを取得する。ルータに対するエラーメッセージを取得した場合は、現用機10とルータ3間のエラーとしてステップ103に移行して導通確認処理を行う。
【0083】
ルータに関して該当するメッセージがない場合は、ディスクに対するエラーメッセージを検索する。ディスクに対するメッセージが得られた場合は、共有ディスク30へのアクセスに問題が発生したと推測できるため、保守端末4にエラーメッセージを出力して当該処理を終了する。
【0084】
ステップ103) ステップ102において、ルータに関するエラーメッセージを取得した場合は、図11に示すように、故障推定の精度を高めるため、現用機10のゲストマシンの制御実行部130の導通確認部132は、OS機能であるルータ3のIPアドレス宛に、ネットワーク疎通を確認するためのコマンドであるPINGを送信することで導通の確定診断を行う。なお、ネットワーク上で瞬断による一時的な故障も想定されるため、所定の時間毎に所定回数PINGを送信するようにしてもよい。導通が失敗の場合は、現用機10をクラスタ構成に組み込んでも再び故障が発生する可能性が高いため、保守端末4に対してエラーを出力して、当該処理を終了する。一方、導通が成功した場合は、ルータ3の一時的な故障であるとし、現用機10をクラスタ構成に組み込むことができる。
【0085】
ステップ104) 次に、現用機10の故障箇所推定部137ではログ検索結果によりリソース故障かどうかの判別を行う。図10に示すように、現用機10のゲストマシンの制御実行部130のログ検索部131は、ログ記憶部163からエラーメッセージを検索する。故障箇所推定部137は、検索されたエラーメッセージからリソースIDを取得することにより、当該リソースIDから故障リソースを特定する。特定されたリソースがDBなどの場合は、対故障性と対パフォーマンス性を向上させるためにステップ106に移行し、系切り替え処理のための強制電源断機能の故障推定を行う。
【0086】
現用機停止時の故障発生箇所の特定後、強制電源断機能が導入されている場合は、ステップ105に移行し、導入されていない場合はステップ107に移行する。なお、強制電源断機能の有無を判断するために、予め状態管理情報記憶部164に強制電源断機能有無を示すフラグを設定しておき、当該フラグを参照するようにしてもよい。また、当該強制電源断機能の設定状態は、システム全体として設定されていてもよく、または、サーバ毎に設定されてもよい。さらに、現用機10及び予備機20にネットワークや共有ディスク30に故障が発生した場合等に、他のサーバの電源制御部に対して強制的に電源を切断する指示を送信する強制電源断機能部を設けても良い。強制電源断機能部を有する場合には、保守端末4に対してエラーを出力する。
【0087】
ステップ105) 強制電源断機能が導入されている場合は、保守端末4からの指示により、図12に示すように、予備機20において、強制電源断機能の故障原因を特定する。予備機20のゲストマシンの制御実行部230のログ検索部231において、OS機能である検索のコマンドを実行し、ログ記憶部263から該当するエラーメッセージのログを取得し、故障箇所推定部237において、強制電源断機能による強制電源断処理(リセット)が失敗したかどうかの判定を行い、判定結果を保守端末4に通知する。
【0088】
具体的には、予備機20の制御実行部230のログ検索部231において、キーワードを入力し、予備機20のログ記憶部263から該当するエラーメッセージを検索する。該当するエラーメッセージが1個以上出力された場合、強制電源断(リセット)に失敗したと判定される。
【0089】
ステップ106) ハードウェア制御ボード17の故障推定精度を向上させるために、保守端末4の指示により、予備機20の実行制御部230の導通確認部232は、現用機10のハードウェア制御ボード17宛に管理LAN5を介してPING処理を行い、導通が成功することを確認し、ステップ107に移行する。一方、PINGが失敗した場合、エラーが出力される。この場合、予備機20の強制電源断機能の故障、現用機10のハードウェア制御ボード17の故障、或いは管理LAN5のネットワーク故障であると推定されるが、サービスの提供には影響が小さいため、現用機をクラスタ構成に組み込むことも可能である(本実施例では、ステップ107に移行するものとする)。PING処理が成功した場合、ネットワークの瞬断による一時的な故障と考えられるため、現用機をクラスタ構成に組み込むことができるものとし、ステップ107に移行する。
【0090】
このときの現用機10、予備機20の状態は以下の通りである。
【0091】
(現用機の状態)
クラスタ状態:"NONE"
故障回数:0
エラーステータス:0
リソース状態:0
(予備機の状態)
クラスタ状態:"ACT"
故障回数:0
エラーステータス:0
リソース状態:1(Started)
ステップ107) 現用機10の故障推定部137では、ログ検索結果によりホストマシン150、ゲストマシン110間の通信に問題が発生したと推測できる場合は、ステップ108に移行し、特定できない場合は、ステップ109に移行する。
【0092】
ステップ108) 現用機10では、図13に示すように、ゲストマシン110の制御実行部130の導通確認部132は、PINGを実行し、ホストマシン150の管理LANネットワーク仮想I/F13及びサービスLANネットワークI/F11を介してルータ3への導通を確認し、導通が成功した場合はステップ109に移行し、「不可」であることを確認した場合は、保守端末4にエラーを出力して当該処理を終了する。
【0093】
具体的には、該当したメッセージが、クライアント装置がアクセスに使用するサービスLAN側の導通が失敗したことを示している場合は、現用機10の導通確認部132からホストマシンのサービスLANネットワークI/F11のIPアドレス宛にPINGコマンドを実行し、導通が不可であることを確認する。また、該当したエラーメッセージの属性値がゲストマシンからホストマシンへの導通不良を示す場合は、現用機10の導通確認部123からホストマシンの管理LAN用インタフェース12のIPアドレス宛にPINGコマンドを実行し、導通が成功した場合はステップ109に移行し、「不可」であることを確認した場合は、保守端末4にエラーを出力し、当該処理を終了する。
【0094】
ステップ109) 現用機10の制御実行部130の起動実行部135、及び高可用性クラスタソフト140は、
・ステップ104で故障発生箇所が「リソース」であるとき;
・ステップ105で強制電源断機能(リセット)が失敗したが、ステップ106において現用機10のハードウェア制御ボード17への導通が成功した(失敗でも許容可)場合、または、ステップ107でルータ3への導通が成功し、かつ、ゲストマシンからホストマシンへの導通が成功した場合;
図14に示すように、以下の復旧処理を行う。以下の括弧内の数字と図14中の括弧内の数字が示す処理が対応する。
【0095】
(1)保守端末4から現用機10のゲストマシン110の制御実行部130に起動実行を指示する。
【0096】
(2)現用機10の制御実行部130のコマンド実行部136は、起動実行部135により現用機10の高可用性クラスタソフト140を起動する。
【0097】
(3)現用機10の高可用性クラスタソフト140が起動されると、現用機10の状態管理記憶部164のクラスタ状態を"NONE"から"SBY[online]"に更新する。
【0098】
(4)高可用性クラスタソフト140は、予備機20の高可用性クラスタソフト240へ更新されたクラスタ状態を通知する。
【0099】
(5)予備機20の高可用性クラスタソフト240は、現用機10の高可用性クラスタソフト140から通知により、状態管理記憶部264のクラスタ状態を"ACT"から"SBY[online]"に変更する。
【0100】
この時点の現用機10、予備機20は以下の状態である。
【0101】
(現用機の状態)
クラスタ状態:"SBY[online]"
故障回数:0
エラーステータス:0
リソース状態:0
(予備機の状態)
クラスタ状態:"ACT"
故障回数:0
エラーステータス:0
リソース状態:1(Started)
ステップ110) 現用機10は、図15に示すように、ゲストマシン110の制御実行部130のコマンド実行部136において、高可用性クラスタソフト140の状態確認コマンドを実行し、状態管理情報記憶部164からクラスタ状態を取得し、"SBY[online]"であることを確認する。この状態でない場合は、エラーを出力する。
【0102】
ステップ111) 現用機10で対故障性と対パフォーマンス性を向上させるために、図16に示す処理を行う。以下の括弧内の数字と図16中の数字が示す処理が対応する。
【0103】
(1)保守端末4の制御部が、現用機10のゲストマシン110の制御実行部130に系切り替えの処理を実行させる。
【0104】
(2)現用機10の制御実行部130のコマンド実行部136は、系切り替え部133により、クラスタ状態を現用機10"ACT"、予備機"SBY[standby]"に変更させるため高可用性クラスタソフト140に対して系切り替えコマンドを実行させる。
【0105】
(3)現用機10の状態管理記憶部164に格納された予備機のクラスタ状態を "SBY[standby]"へ遷移させることで、現用機10のクラスタ状態を"ACT"へ遷移させる。
【0106】
(4)現用機10の高可用性クラスタソフト140は、予備機20の高可用性クラスタソフト240に対して、上記の(3)で更新されたクラスタ状態を通知する。
【0107】
(5)予備機20の高可用性クラスタソフト240は、その通知を受け、予備機20の状態管理記憶部264の現用機と予備機のクラスタ状態を上記の(3)と同様に更新する。
【0108】
(6)予備機20の高可用性クラスタソフト240は、予備機20のリソース220を停止する。
【0109】
(7)現用機10の高可用性クラスタソフト140は、現用機10のリソース120を起動する。
【0110】
ステップ112) 現用機10のゲストマシン110の制御実行部130は、図17に示すように、高可用性クラスタソフト140の状態確認コマンドを実行し、状態管理情報記憶部164のクラスタ状態が"ACT"、リソース状態が"1"で"Started"になっていることを確認する。
【0111】
この時点の現用機10、予備機20は以下の状態である。
【0112】
(現用機の状態)
クラスタ状態:"ACT"
故障回数:0
エラーステータス:0
リソース状態:1(Started)
(予備機の状態)
クラスタ状態:"SBY[standby]"
故障回数:0
エラーステータス:0
リソース状態:0
ステップ113) 現用機10において、図18に示す終了処理を行う。以下の括弧内の数字と図18中の括弧内の数字が示す処理が対応する。
【0113】
(1)管理LAN5に接続される保守端末4は、現用機10のゲストマシン110の制御実行部130に系切り替えの処理要求を送信する。
【0114】
(2)現用機10の制御実行部130のコマンド実行部136は、系切り替え部133により予備機20のクラスタ状態を"SBY[standby]"から"SBY[online]"に変更させるため、高可用性クラスタソフト140に系切り替えコマンドを実行させる。
【0115】
(3)現用機10の高可用性クラスタソフト140は系切り替えコマンドにより、現用機10の状態管理記憶部164の予備機20のクラスタ状態を更新する。
【0116】
(4)現用機10の高可用性クラスタソフト140から予備機20の高可用性クラスタソフト240へ"SBY[standby]"から"SBY[online]"への更新処理を通知する。
【0117】
(5)予備機20の高可用性クラスタソフト240は、その通知を受け、予備機20の状態管理記憶部264の予備機のクラスタ状態を"SBY[online]"に更新する。
【0118】
ステップ114) 現用機10は、図19に示すように、ゲストマシン110の制御実行部130の状態確認実行部134で高可用性クラスタソフト140の状態コマンドを実行し、予備機20のクラスタ状態が"SBY[online]"になっていなければ、エラーを管理LAN5に接続される保守端末4に出力する。
【0119】
この時点の現用機10、予備機20は以下の状態である。
【0120】
(現用機の状態)
クラスタ状態:"ACT"
故障回数:0
エラーステータス:0
リソース状態:1(Started)
(予備機の状態)
クラスタ状態:"SBY[online]"
故障回数:0
エラーステータス:0
リソース状態:0
ステップ115) 現用機10からログアウトする。
【0121】
上記のように、本発明によれば、仮想環境における、現用機がクラスタ構成に組み込まれていない原因を、当該現用機のリソース、ゲストマシンからホストマシンへの導通不良、ディスク、ネットワークのいずれのカテゴリの故障であるのかを特定することができる。これにより、少なくとも、リソース故障である場合には、予備機でサービス稼働中である場合は、現用機でサービスを再開させることが可能になる。また、エラーのカテゴリが特定されることにより、エラーを保守者に提示することにより当該故障箇所を容易に同定することが可能となる。
【0122】
また、故障箇所の推定後に導通確認を行うことにより、故障推定精度を向上させることができる。更に、ネットワークの瞬断による一時的な故障が原因で発生したリソース故障を自動的に回復することができる。
【0123】
また、予備機の性能が現用機の性能より劣る場合、又は、2つ以上の現用機と1つの予備機とでクラスタシステムが構成されている場合に、予備機でのサービス提供による処理速度の低下を回避することができる。
【0124】
説明の便宜上、本発明の実施例に係るシステムは機能的なブロック図を用いて説明しているが、本発明のシステムは、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、サーバ(現用機及び予備機)の各機能部がソフトウェアで実現され、オペレーションシステム上にインストールされてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。
【0125】
以上、本発明の実施の形態及び実施例について説明したが、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
【符号の説明】
【0126】
1 クライアント装置
2 サービスLAN
3 ルータ
4 保守端末
5 管理LAN
10 サーバ(現用機)
11,21 サービスLANネットワークインタフェース
12,22 管理LANネットワークインタフェース
13,23 管理LANネットワーク仮想インタフェース
14,24 サービスLANネットワーク仮想インタフェース
15,25 管理LANネットワーク仮想インタフェース
16,26 サービスLANネットワーク仮想インタフェース
17,27 ハードウェア制御ボード
20 サーバ(予備機)
30 共有ディスク
110、210 ゲストマシン
151,251 デバイス一括監視部
120,220 リソース
130,230 制御実行部
131,231 ログ検索部
132,232 導通確認部
133,233 系切り替え部
134,234 状態確認実行部
135,235 起動実行部
136,236 コマンド実行部
137,237 故障箇所推定部
140,240 高可用性クラスタソフト
141,241 ネットワーク監視結果取得部
142,242 ディスク監視結果取得部
160,260 内蔵ディスク
161,261 ホストマシン割当ディスク
162,262 ゲストマシン割当ディスク
163,263 ログ記憶部
164,264 状態管理情報記憶部
170,270 ハイパーバイザ

【特許請求の範囲】
【請求項1】
ハイパーバイザが導入された仮想環境における現用機及び予備機から構成されるクラスタシステムにおいて、該現用機及び該予備機が、該現用機及び該予備機サービス稼動状態を示すクラスタ状態を管理するクラスタ状態管理手段、クラスタ状態及び故障状態を格納する状態管理情報記憶手段、故障箇所を示す故障ログを格納するログ記憶手段をそれぞれ含み、該予備機がサービス稼動中であり、該現用機がクラスタ構成に組み込まれていない場合に、障害原因を特定するための仮想環境における故障復旧方法であって、
前記現用機の故障推定手段が、前記現用機のログ記憶手段から検索した結果に基づいて、該現用機の故障箇所を推定する故障箇所推定ステップと、
前記故障箇所推定ステップにおいて、前記現用機の故障箇所がネットワーク故障であると推定された場合には、該現用機の導通確認手段が、該現用機に接続されたルータまでの導通を確認する導通確認ステップと、
前記ルータまでの導通確認が成功した場合に、前記現用機のクラスタ構成起動手段が、該現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させるクラスタ構成起動ステップと、
を有することを特徴とする仮想環境における故障復旧方法。
【請求項2】
前記現用機に、ホストマシンとゲストマシンが導入されている環境において、
前記導通確認ステップにおいて前記ホストマシンと前記ゲストマシン間の通信故障であると特定された場合には、
前記導通確認ステップにおいて、
前記ゲストマシンから前記ホストマシンへの導通不良を確認し、
前記クラスタ構成起動ステップにおいて、
前記ゲストマシンから前記ホストマシンへの導通が成功した場合には、前記現用機のクラスタ状態を「サービス稼働中へ遷移できる状態」へ遷移させる
請求項1記載の仮想環境における故障復旧方法。
【請求項3】
前記故障箇所推定ステップにおいて故障箇所のカテゴリがリソースであると推定された場合は、
前記クラスタ構成起動ステップにおいて、前記現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させる
請求項1または2記載の仮想環境における故障復旧方法。
【請求項4】
前記故障箇所推定ステップにおいて、前記現用機及び前記予備機に、故障時に他サーバの電源を強制的に切断する強制電源断機能が導入されており、該予備機のログ記憶手段から強制電源断機能に関するエラーが検索された場合には、該現用機に重大なエラーが検出されたものと判定し、
前記導通確認ステップにおいて、
前記予備機から前記現用機の電源制御手段に対して導通確認を行い、
前記クラスタ構成起動ステップにおいて、
前記導通確認ステップにて前記電源制御手段への導通が成功した場合には、前記現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」に遷移させる
請求項3記載の仮想環境における故障復旧方法。
【請求項5】
ハイパーバイザが導入された仮想環境における現用機及び予備機から構成されるクラスタシステムにおいて、該現用機及び該予備機が、該現用機及び該予備機サービス稼動状態を示すクラスタ状態を管理するクラスタ状態管理手段、クラスタ状態及び故障状態を格納する状態管理情報記憶手段、故障箇所を示す故障ログを格納するログ記憶手段をそれぞれ含み、該予備機がサービス稼動中であり、該現用機がクラスタ構成に組み込まれていない場合に、障害原因を特定するための現用機として動作するサーバであって、
前記ログ記憶手段から検索した結果に基づいて、該現用機の故障箇所を推定する故障箇所推定手段と、
前記故障箇所推定手段において、前記現用機の故障箇所がネットワーク故障であると推定された場合には、該現用機に接続されたルータまでの導通を確認する導通確認手段と、
前記ルータまでの導通確認が成功した場合に、当該現用機のクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させるクラスタ構成起動手段と、
を有することを特徴とするサーバ。
【請求項6】
前記導通確認手段は、
当該サーバに、ホストマシンとゲストマシンが導入されている環境において、該ホストマシンと該ゲストマシン間の通信故障であると特定された場合には、該ゲストマシンから該ホストマシンへの導通を確認する手段を含み、
前記クラスタ構成起動手段は、
前記導通確認手段にて前記ゲストマシンから前記ホストマシンへの導通が成功した場合には、現用機のクラスタ状態を「サービス稼働中へ遷移できる状態」へ遷移させる手段を含む請求項5記載のサーバ。
【請求項7】
前記クラスタ構成起動手段は、
前記故障箇所推定手段において、故障箇所のカテゴリがリソースである場合は、当該サーバのクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させる手段を
更に有する請求項5または6記載のサーバ。
【請求項8】
前記現用機及び前記予備機に、故障時に他サーバの電源を強制的に切断する強制電源断機能が導入されている環境において、
前記クラスタ構成起動手段は、
前記予備機にて強制電源断機能に関するエラーが検出され、かつ、予備機の導通確認手段が予備機から現用機の電源制御手段への導通確認を行い、導通不良であると判った場合には、当該サーバのクラスタ状態を「サービス稼動中へ遷移できる状態」へ遷移させない手段を含む
請求項7記載のサーバ。
【請求項9】
請求項5乃至8のいずれか1項に記載のサーバを構成する各手段としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−14674(P2012−14674A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−252891(P2010−252891)
【出願日】平成22年11月11日(2010.11.11)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】