(57)【要約】【課題】複数のノードをネットワーク上に配置して処理を行う分散サーバシステムにおいて、各ノードの利用状態の推定を行う装置を得る。【解決手段】複数のノード３０を有する分散サーバシステムにおいて、前記各ノード３０の駆動状態を管理する管理ノード１０を備え、前記管理ノード１０は、前記各ノードの駆動状態を複数のパラメータとして定期的に受信するノードパラメータ受信部１１と、前記各ノードパラメータから所定式に基づいて健全度を算出するノード健全度判定部１２と、算出した健全度を履歴情報として記録する健全度履歴管理部１４と、算出した現在の健全度と健全度履歴によりノード状態を判定するノード状態判定部１３を備えることで状態推定装置を構成する。【選択図】図２
2012008935.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを有する分散サーバシステムにおいて、
前記各ノードの駆動状態を管理する管理ノードを備え、
前記管理ノードは、
前記各ノードの駆動状態を複数のパラメータとして定期的に受信するノードパラメータ受信部と、
前記各ノードパラメータから所定式に基づいて健全度を算出するノード健全度判定部と、
算出した健全度を履歴情報として記録する健全度履歴管理部と、
算出した現在の健全度と健全度履歴によりノード状態を判定するノード状態判定部と、
を具備する分散サーバシステムの状態推定装置。
【請求項２】
複数のノード毎にネットワークを設定して管理するネットワーク設定部と、
前記ノード健全度判定部で算出した健全度を受信するノード健全度受信部と、
前記ネットワーク設定部で設定されたネットワーク毎に健全度を算出するネットワーク健全度判定部と、
算出した現在の健全度と健全度履歴によりネットワーク状態を判定するネットワーク状態判定部と
を更に備えた請求項１に記載の分散サーバシステムの状態推定装置。
【請求項３】
前記ネットワーク健全度判定部で算出した健全度を受信するネットワーク健全度受信部と、
システム全体の健全度を算出するシステム健全度判定部と、
算出した現在の健全度と健全度履歴によりシステム状態を判定するシステム状態判定部と
を更に備えた請求項２に記載の分散サーバシステムの状態推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードをネットワーク上に配置してディスクを共有する分散サーバシステムに関し、特に、障害の発生等を未然に防止するために、システムにおけるノード等の利用状態を把握するための状態推定装置に関する。
【背景技術】
【０００２】
分散サーバシステムは、ネットワークを介して散在する複数のコンピュータのディレクトリ、もしくはファイルを仮想的に統合して利用するための技術である。この種の技術としては、非特許文献１や非特許文献２で示されるように、複数のマシンのディスクを組み合わせて１つのファイルシステムとして機能する分散プラットフォームが提案されている。
【０００３】
非特許文献１に示されたGfarmは、広域ネットワーク上で、大容量、大規模データ処理の要求に応えるスケーラブルな分散ファイルシステムプラットフォームであり、広域なネットワーク上での効率的なファイル共有に適した分散プラットフォームである。
一方、非特許文献２に示されたHadoopは、１つのディスクで保存できない大量のデータを並列化することで高速かつ効率良く処理できるものであり、比較的大きなサイズかつ基本的に更新されることのないファイルのI/Oに適した分散プラットフォームである。
【０００４】
また、特許文献１には、コンピュータシステムにおける障害発生イベントの検出を支援する方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１０８２２４号公報
【非特許文献】
【０００６】
【非特許文献１】URL：http://datafarm.apgrid.org/index.ja.html
【非特許文献２】URL：http://hadoop.apache.org/
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来、分散ファイルシステムにおいて、サーバやシステムがどのような状態かを判断するには、複数の監視項目と分散サーバシステムの仕組みや構成について知識がないと難しいため、運用者が簡単に判断できないという問題があった。
分散サーバシステムは故障を許容するシステムであり、利用状況を監視することで故障の有無の判断は可能であるがどのような対処が必要かの判断が難しい。
また、特許文献１には、障害の発生を検出することはできるが、障害発生に至る前段階における状態を検知することができない。
【０００８】
本発明は上記事情に鑑みて提案されたもので、複数のノードをネットワーク上に配置して処理を行う分散サーバシステムにおいて、ノードやシステムの利用状態の推定を行う分散サーバシステムにおける状態推定装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため本発明の分散サーバシステムにおける状態推定装置は、複数のノードをネットワーク上に配置し処理を行うシステムにおいて、各ノードから複数のパラメータを取得し、ノードやシステムの状態の推定を行うものである。
【００１０】
すなわち、請求項１は、複数のノードを有する分散サーバシステムにおいて、前記各ノードの駆動状態を管理する管理ノードを備え、前記管理ノードが次の構成を含むことを特徴としている。
ノードパラメータ受信部。このノードパラメータ受信部は、前記各ノードの駆動状態を複数のパラメータとして定期的に受信するものである。
ノード健全度判定部。このノード健全度判定部は、前記各ノードパラメータから所定式に基づいて健全度を算出するものである。
健全度履歴管理部。この健全度履歴管理部は、算出した健全度を履歴情報として記録するものである。
ノード状態判定部。このノード状態判定部は、算出した現在の健全度と健全度履歴によりノード状態を判定するものである。
【００１１】
請求項２は、請求項１の分散サーバシステムの状態推定装置において、複数のノード毎にネットワークを設定して管理するネットワーク設定部と、前記ノード健全度判定部で算出した健全度を受信するノード健全度受信部と、前記ネットワーク設定部で設定されたネットワーク毎に健全度を算出するネットワーク健全度判定部と、算出した現在の健全度と健全度履歴によりネットワーク状態を判定するネットワーク状態判定部とを更に備えたことを特徴としている。
【００１２】
請求項３は、請求項２の分散サーバシステムの状態推定装置において、前記ネットワーク健全度判定部で算出した健全度を受信するネットワーク健全度受信部と、システム全体の健全度を算出するシステム健全度判定部と、算出した現在の健全度と健全度履歴によりシステム状態を判定するシステム状態判定部とを更に備えたことを特徴としている。
【発明の効果】
【００１３】
本発明によれば、各パラメータから健全度を算出し、健全度の履歴及び現在の健全度からノードの状態を判断するので、障害が発生する前の状態を把握して、ノードやシステムに対する対処の必要性や緊急度を判断でき、簡易な判断で適切な運用を行うことが可能になる。
【図面の簡単な説明】
【００１４】
【図１】本発明の分散サーバシステムの全体構成を示すモデル図である。
【図２】分散サーバシステムにおける管理ノード及びノードの機能を説明するためのブロック図である。
【図３】分散サーバシステムにおける健全度算出の動作を説明するためのフローチャート図である。
【図４】分散サーバシステムにおいて健全度から状態を判断する場合の処理を説明するためのフローチャート図である。
【発明を実施するための形態】
【００１５】
本発明の分散サーバシステムの状態推定装置の実施形態の一例について、図面を参照しながら説明する。
分散サーバシステムは、図１に示すように、複数のファイルサーバ１から構成されるネットワークＡ〜Ｆと、各ネットワークＡ〜Ｆを管理する管理サーバ２と、クライアントサーバ３から構成されている。分散サーバシステムは、ｎ個（数量に規定はない）のノード（N1〜Nn）を、管理サーバ２を介してアクセスさせることで、各ノードを意識せず単一のサーバとしてユーザに提供するシステムである。すなわち、分散サーバシステムのファイルサーバ１へは、複数のクライアントサーバ３が管理サーバ２を介してアクセスすることで、データの書込みや読み出し処理が行われる。
【００１６】
本発明の分散サーバシステムの状態推定装置の詳細構成について、図２を参照して説明する。
分散サーバシステムの状態推定装置は、分散サーバシステムに対して、ノード単体やネットワーク、システムの健全度を判定する管理ノード１０を設けることで、ノード、ネットワーク、システムの状態を推定する。管理ノード１０において、ノード単体やネットワーク、システムの健全度や状態を判断する際の構成では、ファイルサーバ１、管理サーバ２、クライアントサーバ３は、全てノード３０として同等に扱われる。また、ネットワークやシステムの健全度を算出する際には、各ノードの役割に応じた重みづけを行った各健全度から算出するようにしてもよい。
【００１７】
ノード３０は、パラメータ収集部３１とパラメータ送信部３２を備えている。パラメータ収集部３１では、ノード内部の駆動状態に関係する複数の情報源となるパラメータを定期的に収集する。パラメータ送信部３２では、収集した複数のパラメータを管理ノード１０へ送信する。
【００１８】
管理ノード１０は、ノードパラメータ受信部１１、ノード健全度判定部１２、ノード状態判定部１３、ネットワーク設定部１４、ノード健全度受信部１６、ネットワーク健全度判定部１７、ネットワーク状態判定部１８、ネットワーク健全度受信部１９、システム健全度判定部２０、システム状態判定部２１、健全度履歴管理部１４を備えている。健全度履歴管理部１４は、ノード、ネットワーク、システムの健全度を算出する毎に順次格納し履歴を保存する。
【００１９】
ノードパラメータ受信部１１では、複数のノード３０のパラメータ送信部３２から送信されたパラメータを定期的に受信する。ノード健全度判定部１２では、受信した各ノードのパラメータから各ノードの健全度を定期的に算出する。健全度の算出は、予め設定された所定式によって求められる。算出の具体例については後述する。また、算出された各ノードの健全度は、健全度履歴管理部１４に記憶されて管理される。
ノード状態判定部１３では、算出したノードの健全度（暫定状態）と、履歴から取得した直近Ｎ個（数量に規定はない）の健全度の平均値（履歴状態）からノードの状態を判定する。Ｎは、「１」より大きい数とし、予め設定されている。ノード状態の判定は、「正常」「異常」「危険」の３つの状態で行う。具体的な判定方法については後述する。
【００２０】
ノード健全度受信部１６では、ノード健全度判定部１２で算出された各ノードの健全度を受信する。ネットワーク設定部１５では、各ネットワークを構成するノードの情報を保持している。ネットワーク健全度判定部１７では、ノード健全度受信部１６で受信したノードの健全度とネットワーク設定部１５から受信したネットワークを構成するノードの情報から、ネットワークの健全度を算出する。ネットワークの健全度は、例えば、ネットワークを構成する各ノードの健全度の平均値に類する値で算出される。具体的な算出の計算式は後述する。算出された各ネットワークの健全度は、健全度履歴管理部１４に記憶されて管理される。
ネットワーク状態判定部１８では、算出したネットワーク健全度（暫定状態）と履歴のネットワーク健全度（履歴状態）を用いて、現在のネットワークの状態を判定する。
【００２１】
ネットワーク健全度受信部１９では、ネットワークの健全度を受信する。システム健全度判定部２０では、全てのネットワーク健全度からシステムの健全度を算出する。システムの健全度は、例えば、システム全体を構成する各ネットワークの健全度の平均値に類する値で算出される。具体的な算出の計算式は後述する。算出されたシステムの健全度は、健全度履歴管理部１４に記憶されて管理される。
システム状態判定部２１では、算出したシステムの健全度（暫定状態）と、履歴から取得したシステムの健全度（履歴状態）から、現在のシステムの状態を判定する。
【００２２】
次に、各ノードに対して算出される健全度からノードの状態の推定を行う場合の手順について、図３を参照しながら説明する。
先ず、ノードからのパラメータを収集し（ステップ４１）、履歴から今までの状態（直近Ｎ個の履歴状態）を取得する（ステップ４２）。
次に、ノードから収集したパラメータから健全度を算出し暫定的に現在の状態を決定し（ステップ４３）、暫定状態と履歴状態から現在の状態を判断する（ステップ４４）。その後、履歴に現在の状態を追加し終了する（ステップ４５）。
この処理手順は、サーバ単体のノードにおける状態推定だけでなく、ネットワークやシステムの状態推定にも用いられる。ただし、健全度の判定方法は、サーバ単体、ネットワーク、システムによって算出方法が異なる。具体的な判定方法については後述する。また、健全度とは「０〜１．０」までの範囲をとり、「１」に近いほど健全度が高く０に近いほど健全度が低いとする。
【００２３】
サーバ単体での健全度算出に際して、パラメータとして使用する項目例を表１に示す。
項目としては、ロードアベレージ、ファン回転数、電源、プロセス、ＨＤＤ容量を設定している。各項目に、異常値と危険値の閾値と、重みを設ける。電源及びプロセスについては、駆動と停止の２通りで閾値は設定されない。状態の係数として、異常値を０．５、危険値を１．０に設定する。重みは、故障頻度が高い項目は小さな値とし、故障頻度が低い項目は大きな値とする。例として、一時的に異常値や危険値を超える可能性が高い項目は重みを低くする。
【００２４】
ロードアベレージとは、実行プロセス数の平均である。ファン回転数とは、CPUのファン回転数を指す。プロセスとは、対象とするノードが分散サーバシステムの一部として使用可能なように動作しているプログラムを指す。例えば、Gfarmだとgfmdやgfsd、HadoopだとNameNodeやDataNodeなどである。
【００２５】
【表１】
2012008935.tif 000003
【００２６】
ノードの健全度の算出例として、次の計算式を用いる。
１−（Σ（項目１の重み×状態の係数)／全項目の重みの合計）
ロードアベレージが４でかつＨＤＤ容量が８０％であった場合のサーバの健全度を算出すると、
１−((3*0.5 + 2*0+ 5*0+ 4*0 + 1*0.5 ) / 3+2+5+4+1) ≒ 0.83 
となる。
また、項目例としては、表１で例示したものの他に、ＣＰＵ温度等も考えられる。
【００２７】
ネットワークとシステムの健全度算出例について、表２のようなシステム構成である場合を例に説明する。
表２では、ノード単体の健全度、ノードが所属するネットワークを示している。
【００２８】
【表２】
2012008935.tif 000004
【００２９】
ネットワークを構成するノード数がｎである場合のネットワークの健全度の算出例として、次の計算式を用いる。
１−（Σ((１−健全度ｎ)*(健全度ｎのサーバ数／ネットワークの全サーバ数)))
これを基に表２におけるネットワーク１（ＮＷ１）の健全度を計算すると、
1-((1-0.9)*(2/6)+(1-0.8)*(1/6)+(1-0.4)*(1/6))≒0.83 
となる。
【００３０】
また、システムを構成するネットワーク数がＮである場合のシステムの健全度の算出例として、次の計算式を用いる。
１−(Σ((1-ネットワークＮの健全度)*(ネットワークＮに存在するサーバ数／システムに存在するサーバ数)))
これを基に表２のシステムの健全度を算出すると、
1-((1-0.83)*6/9+(1-0.97)*3/9)=0.88 
となる。
【００３１】
次に、算出した健全度からノードやネットワーク、システムの状態判定を行う場合の手順について、図４を参照して説明する。
状態判定については、「正常」「異常」「危険」の３つの分類で状態の判定を行う。
先ず、ノード、ネットワーク、システムのいずれかを対象とし健全度を算出し、暫定の状態を決定する（ステップ５１）。
次に、履歴から直近Ｎ個の健全度の平均値を取得し履歴の状態を決定する（ステップ５２）。
【００３２】
その後、暫定の状態と履歴の状態から現在の状態を決定する。状態の決定方法は次のようにして行う。
暫定状態が危険かどうか（ステップ５３）、履歴状態が危険かどうか（ステップ５４）をそれぞれ判断する。危険かどうかの判断は、健全度が危険閾値より小さいかどうかで判断する。
暫定状態が危険でかつ履歴状態も危険な場合、現在の状態を危険とし（ステップ５５）、現在の状態を履歴に追加する（ステップ５６）。
【００３３】
暫定状態が危険で履歴状態が危険でない場合、履歴状態が異常かどうか（ステップ５７）を判断し、履歴状態が異常である場合、現在の状態を危険とし（ステップ５８）、現在の状態を履歴に追加する（ステップ５６）。履歴状態が異常でない場合は、現在の状態を異常とし（ステップ５９）、現在の状態を履歴に追加する（ステップ５６）。異常かどうかの判断は、健全度が異常閾値より小さい（危険閾値より大きい値）かどうかで判断する。
【００３４】
暫定状態が危険でない場合（ステップ５３）、暫定状態が異常か（ステップ６０）、履歴状態が危険かをそれぞれ判断し（ステップ６１）、暫定状態が異常で履歴状態が危険な場合は、現在の状態を危険とし（ステップ６２）、現在の状態を履歴に追加する（ステップ５６）。
履歴状態が危険でない場合は（ステップ６１）、履歴状態が異常かを判断し（ステップ６３）、履歴状態が異常な場合は、現在の状態を異常とし（ステップ６４）、現在の状態を履歴に追加する（ステップ５６）。
履歴状態が異常でない場合（ステップ６３）、現在の状態を正常とし（ステップ６５）、現在の状態を履歴に追加する（ステップ５６）。
【００３５】
暫定状態が異常でない場合は（ステップ６０）、履歴状態が危険かを判断し（ステップ６６）、履歴状態が危険な場合は、現在の状態を異常とし（ステップ６７）、現在の状態を履歴に追加する（ステップ５６）。
履歴状態が危険でない場合（ステップ６６）、履歴状態が異常かを判断し（ステップ６８）、履歴状態が異常な場合は、現在の状態を異常とし（ステップ６９）、現在の状態を履歴に追加する（ステップ５６）。
履歴状態が異常でない場合（ステップ６８）、現在の状態を正常とし（ステップ７０）、現在の状態を履歴に追加する（ステップ５６）。
【００３６】
上述した分散サーバシステムの状態推定装置によれば、現在（暫定状態）及び過去（履歴状態）の健全度からサーバ単体、ネットワーク、システムの状態を把握することができる。
危険な状態であると判断された場合には、ノード等の停止を行うことで障害の発生を未然に防止することができる。
また、危険な状態ではないが異常な状態（例えば、高負荷な状態が続いている、又は、ネットワーク遅延が増大している）を検知することが可能になるため、それに応じた対策を講じることでシステムのパフォーマンス低下を防ぐことができる。
また、ノード、ネットワーク、システムの状態を常に監視するため、故障発生時の原因特定をより短時間で行うことができる。
【符号の説明】
【００３７】
１…ファイルサーバ（ノード）、  ２…管理サーバ（ノード）、  ３…クライアントサーバ（ノード）、  １０…管理ノード、  １１…ノードパラメータ受信部、  １２…ノード健全度判定部、  １３…ノード状態判定部、  １４…健全度履歴管理部、  １５…ネットワーク設定部、  １６…ノード健全度受信部、  １７…ネットワーク健全度判定部、  １８…ネットワーク状態判定部、  １９…ネットワーク健全度受信部、  ２０…システム健全度判定部、  ２１…システム状態判定部。  ３０…ノード、  ３１…パラメータ収集部、  ３２…パラメータ送信部。
【図１】
2012008935.tif 000005
【図２】
2012008935.tif 000006
【図３】
2012008935.tif 000007
【図４】
2012008935.tif 000008