(57)【特許請求の範囲】
【請求項１】
第１の情報処理装置と、前記第１の情報処理装置を監視する第２の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
第１の入出力装置と、
オペレーティングシステムが動作するプロセッサと、
前記第２の情報処理装置と通信可能であって、オペレーティングシステムからの通知が得られない場合であっても、前記第１の入出力装置から送信する通知信号を前記第２の情報処理装置に送信する第１の入出力部と、を有し、
前記第２の情報処理装置は、
第２の入出力装置と、
前記第２の入出力装置が、前記第１の入出力装置から前記通知信号を受信しなかった場合に、前記第１の情報処理装置と前記第２の情報処理装置とを接続するネットワークに障害が発生したと検知する障害検知部と、
を有することを特徴とする情報処理システム。
【請求項２】
前記第１の入出力部は、オペレーティングシステムからの通知に応じて該オペレーティングシステムの状態情報を生成する生成部を有し、
前記第１の入出力部は、該生成部が生成した該状態情報を、前記通知信号に含めて前記第２の情報処理装置に送信する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第１の情報処理装置の生成部は、
前記オペレーティングシステムからの通知の発生周期が不規則になった場合、または、前記オペレーティングシステムからの通知を受信できなくなった場合に、前記第１の情報処理装置で異常が発生したことを示す異常通知情報を生成し、
前記第１の入出力部は、前記生成部が生成した前記異常通知情報を、前記通知信号に含めて前記第２の情報処理装置に送信し、
前記第２の情報処理装置の障害検知部は、
前記第１の情報処理装置から受信した通知信号に、前記異常通知情報が含まれている場合には、前記第１の情報処理装置で障害が発生したと検知することを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記第１の情報処理装置の生成部は、
前記第１の情報処理装置が実行対象とするジョブが存在しなくなった場合に、電力消費を抑制する省電力モードに移行することを示す移行通知情報を生成し、
前記第１の入出力部は、前記生成部が生成した前記移行通知情報を、前記通知信号に含めて前記第２の情報処理装置に送信し、
前記第２の情報処理装置の障害検知部は、
前記第１の情報処理装置から受信した通知信号に、前記移行通知情報が含まれている場合には、前記第１の情報処理装置を監視対象から除外することを特徴とする請求項２に記載の情報処理システム。
【請求項５】
前記第１の情報処理装置の第１の入出力部は、前記移行通知情報を含む前記通知信号が前記第２の情報処理装置に送信された後、前記省電力モードが解除されるまで、前記通知信号の送信を抑制することを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記第１の情報処理装置の生成部は、
前記第１の情報処理装置に前記ジョブが発生した場合に、前記省電力モードを解除することを示す解除通知情報を生成し、
前記第１の入出力部は、前記生成部が生成した前記解除通知情報を、前記通知信号に含めて前記第２の情報処理装置に送信し、
前記第２の情報処理装置の障害検知部は、
前記第１の情報処理装置から受信した通知信号に、前記解除通知情報が含まれている場合には、前記第１の情報処理装置を監視対象に戻すことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
第１の情報処理装置と、前記第１の情報処理装置を監視する第２の情報処理装置とを含む情報処理システムに適した障害検知方法において、
前記第１の情報処理装置が、
前記第２の情報処理装置と通信可能であって、プロセッサが動作させるオペレーティングシステムからの通知が得られない場合であっても、第１の入出力装置から送信する通知信号を前記第２の情報処理装置に送信し、
前記第２の情報処理装置が、
第２の入出力装置が、前記第１の入出力装置から前記通知信号を受信しなかった場合に、前記第１の情報処理装置と前記第２の情報処理装置とを接続するネットワークに障害が発生したと検知する、
を実行することを特徴とする障害検知方法。
【請求項８】
情報処理装置と、前記情報処理装置を監視する監視装置とを含む情報処理システムの前記情報処理装置において、
第１の入出力装置と、
オペレーティングシステムが動作するプロセッサと、
前記第１の入出力装置から送信される通知信号を受信しなかった場合に前記情報処理装置と前記監視装置とを接続するネットワークに障害が発生したと検知する前記監視装置に、前記監視装置と通信可能であってオペレーティングシステムからの通知が得られない場合であっても前記通知信号を送信する第１の入出力部と、
を有することを特徴とする情報処理装置。
【請求項９】
監視対象の装置と、前記監視対象の装置を監視する情報処理装置とを含む情報処理システムの前記情報処理装置において、
第２の入出力装置と、
前記情報処理装置と通信可能であってプロセッサが動作させるオペレーティングシステムからの通知が得られない場合であっても前記監視対象の装置が送信する通知信号を、前記第２の入出力装置が前記監視対象の装置から受信しなかった場合に、前記監視対象の装置と自装置との間のネットワークに障害が発生したと検知する障害検知部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、障害検知方法および情報処理装置に関する。
【背景技術】
【０００２】
従来、大規模データを効率的に分散処理するオープンソースソフトウェアとして、Ｈａｄｏｏｐが知られている。Ｈａｄｏｏｐは、多くの要素で構成されるが、主に分散ファイルシステムのＨＤＦＳ（Hadoop  Distributed  File  System）や大規模データの分散処理を実行するHadoop  MapReduceが知られている。【０００３】
Ｈａｄｏｏｐを用いたシステムは、システム全体を管理する「マスタサーバ」と、並列処理を実行する複数台の「スレーブサーバ」とを有する。マスタサーバは、スレーブサーバの生存状態を監視するのに、ハートビートを利用する。例えば、各スレーブサーバは、マスタサーバに対して、３秒ごとにハートビートを送信する。マスタサーバは、スレーブサーバからのハートビートを１０分間受信できない場合に、そのスレーブサーバが故障したと判定し、当該スレーブサーバをシステムから切り離す。このようにして、当該スレーブサーバは、復旧モードに入る。【０００４】
また、新規のスレーブサーバをシステムに追加する場合、マスタサーバは、新規のスレーブサーバに命令を送出し、システムへの組み込み作業を実行させる。そして、マスタサーバは、新規のスレーブサーバから周期的にハートビートを受信すると、当該新規のスレーブサーバがシステムに正常に組み込まれたと認識する。このように、Ｈａｄｏｏｐを用いたシステムは、ハートビートによってスレーブサーバの障害監視や管理を行う。【０００５】
一般的なシステムの障害監視としては、例えば、監視対象機器としてのスレーブサーバの生存状態を監視し、クライアント端末からの要求に応じて、監視対象機器の生存状態や状態の変化をクライアント端末に応答する技術が知られている。また、スレーブサーバとして利用されるサーバ装置のソフトウェアの障害をデバイス自身で検出し、他デバイスとの接続を切断するデバイス装置なども知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１８２６６７号公報
【特許文献２】特開２０００−３０７６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術では、スレーブサーバから、スレーブサーバが正常に動作していることを示すハートビートなどの死活通知情報を受信できなかった場合に、スレーブサーバ自体に障害が発生したのか、ネットワークで障害が発生したのかを切り分けることができないという問題がある。【０００８】
例えば、マスタサーバがスレーブサーバからハートビートを受信できなくなった場合には２つの原因が考えられる。１つ目は、スレーブサーバ自体が故障してハートビートを送信していない場合である。２つ目は、スレーブサーバはハートビートを送信しているが、スレーブサーバとマスタサーバとを接続するネットワークで障害が発生していることから、マスタサーバにハートビートが届かない場合である。【０００９】
ところが、マスタサーバは、スレーブサーバからハートビートを受信したか否かによって障害監視を行うので、いずれの原因でハートビートを受信できないかを特定することができない。また、マスタサーバは、ハートビートを受信できない場合には、障害を解析することもできない。さらに、マスタサーバは、ハートビートを受信できない場合に、一律にスレーブサーバに障害が発生したと判定して、当該スレーブサーバをシステムから切り離す。このため、ネットワークに障害がある場合でも、スレーブサーバに復旧作業が実行されることになり、無駄な作業が行われることにもなる。【００１０】
１つの側面では、障害発生箇所を切分けることができる情報処理システム、障害検知方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の案では、第１の情報処理装置と、前記第１の情報処理装置を監視する第２の情報処理装置とを含む情報処理システムである。前記第１の情報処理装置は、第１の入出力装置と、オペレーティングシステムが動作するプロセッサとを有する。また、前記第１の情報処理装置は、前記第２の情報処理装置と通信可能であって、オペレーティングシステムからの通知が得られない場合であっても、前記第１の入出力装置から送信する通知信号を前記第２の情報処理装置に送信する第１の入出力部を有する。前記第２の情報処理装置は、第２の入出力装置と、前記第２の入出力装置が、前記第１の入出力装置から前記通知信号を受信しなかった場合に、前記ネットワークに障害が発生したと検知する障害検知部とを有する。
【発明の効果】
【００１２】
本発明の１実施態様によれば、障害の発生箇所を切分けることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るシステムの全体構成例を示す図である。
【図２】図２は、ＮＩＣビートの流れを説明する図である。
【図３】図３は、ハードウェア構成例を示す図である。
【図４】図４は、スレーブサーバの構成を示す機能ブロック図である。
【図５】図５は、ハートビートのデータ構成例を示す図である。
【図６】図６は、状態管理部が管理する情報の例を示す図である。
【図７】図７は、ＮＩＣビートのデータ構造例を示す図である。
【図８】図８は、マスタサーバの構成を示す機能ブロック図である。
【図９】図９は、スレーブサーバ管理部が管理する情報の例を示す図である。
【図１０】図１０は、正常時のシーケンスを示す図である。
【図１１】図１１は、ＯＳ異常時のシーケンスを示す図である。
【図１２】図１２は、省電力移行時のシーケンスを示す図である。
【図１３】図１３は、ネットワーク異常時のシーケンスを示す図である。
【図１４】図１４は、スレーブサーバが実行するＮＩＣビート送信処理の流れを示すフローチャートである。
【図１５】図１５は、マスタサーバが実行するＮＩＣビート受信処理の流れを示すフローチャートである。
【図１６】図１６は、マスタサーバが実行する状態監視処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる情報処理システム、障害検知方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
［全体構成］
図１は、実施例１に係るシステムの全体構成例を示す図である。図１に示すように、このシステムは、マスタサーバ５０と複数のラック５とをＬ２スイッチ（レイヤ２スイッチ）を有し、ネットワークを介して相互に通信可能に接続される。このシステムは、Ｈａｄｏｏｐを用いた分散処理システムである。【００１６】
マスタサーバ５０は、複数のラック５やラック５に搭載される各スレーブサーバ１０を管理するサーバ装置である。例えば、マスタサーバ５０は、ＨＤＦＳ（Hadoop  Distributed  File  System）のネームサーバやＭａｐＲｅｄｕｃｅのジョブトラッカーなどである。【００１７】
Ｌ２スイッチ２は、各ラック５に収納されるＬ２スイッチ６やスレーブサーバ１０と、マスタサーバ５０とを接続する中継装置である。また、Ｌ２スイッチ２は、Ｌ３スイッチやルータなどであってもよい。【００１８】
ラック５は、データセンター等に設置される電子機器を収納する装置である。このラック５は、１台以上のスレーブサーバ１０とＬ２スイッチ６とを収納する。Ｌ２スイッチ６は、各スレーブサーバ１０とＬ２スイッチ２との通信を中継する中継装置である。また、Ｌ２スイッチ６は、Ｌ３スイッチやルータなどであってもよい。スレーブサーバ１０は、分散処理を実行するサーバである。例えば、スレーブサーバ１０は、ＨＤＦＳのデータノードやＭａｐＲｅｄｕｃｅのタスクトラッカーなどである。【００１９】
このような状態において、各スレーブサーバ５は、ネットワークカードを有する。このネットワークカードは、ネットワークカードは、ネットワークカードが正常に動作していれば、上位のＯＳなどの死活にかかわらずに、ネットワークが正常に動作していることを通知する通知信号を送信する。ここでは、そのような通知信号をＮＩＣ（Network  Interface  Card）ビートと称することとする。各スレーブサーバ１０のネットワークカードは、生成したＮＩＣビートをマスタサーバ５０に送信する。マスタサーバ５０は、各スレーブサーバ１０のネットワークカードからＮＩＣビートを受信しなかった場合に、ネットワークに障害が発生したと検知する。なお、ネットワークカードに障害が発生する可能性は、上位のＯＳに障害が発生することよりも高いことが一般である。また、上位のＯＳが正常に動作しているかどうか等の上位のＯＳの状態を上位のＯＳからのハートビートなどから検出し、検出した上位の状態情報をハートビートに含めることとしてもよい。これにより、ネットワークの障害がないものの、上位のＯＳに障害が発生していることを通知することができる。【００２０】
ここで、ＮＩＣビートの流れを説明する。図２は、ＮＩＣビートの流れを説明する図である。図２に示すように、各スレーブサーバ１０内で実行されるＨａｄｏｏｐは、定期的に、ＯＳ（Operating  System）が正常に動作していることを示す死活通知情報であるハートビートを発行する。このハートビートは、ドライバを介してＮＩＣに送出される。そして、ＮＩＣ内のＮＩＣビート装置は、受信したハートビートとは別にＮＩＣビートを生成し、ＬＡＮ（Local  Area  Network）ポートを介してマスタサーバ５０に送信する。このＮＩＣビートは、Ｌ２スイッチ２に受信されて、マスタサーバ５０に中継される。【００２１】
マスタサーバ５０のＮＩＣ内で実行されるＮＩＣビート装置は、Ｌ２スイッチ２を介して、各スレーブサーバ５から送信されたＮＩＣビートを受信する。そして、ＮＩＣビート装置は、ＮＩＣビートの解析を実行する。その後、ＮＩＣビート装置は、ＮＩＣビートからハートビートを取り出し、ドライバを介してＨａｄｏｏｐに送出する。【００２２】
このようにして、各スレーブサーバ１０のＮＩＣビート装置は、ＯＳのハートビートとは別に生成したＮＩＣビートをマスタサーバ５０に通知し、マスタサーバ５０は、各スレーブサーバ１０のＮＩＣビート装置からＮＩＣビートを受信する。各スレーブサーバ１０のＮＩＣビート装置は、ハートビートが発生した場合にはハートビートの発生内容をＮＩＣビートに含めて送信し、ハートビートが発生しなかった場合にはハートビートが発生していないことをＮＩＣビートに含めて送信する。この結果、マスタサーバ５０は、ＮＩＣビートを受信できた場合には、少なくもネットワークに障害が発生していないと判定することができる。したがって、マスタサーバ５０は、障害切分けを行うことができる。【００２３】
［ハードウェア構成］
次に、スレーブサーバ１０とマスタサーバ５０のハードウェア構成を説明する。各サーバは、同様の構成を有するので、ここでは、サーバ１００として説明する。図３は、ハードウェア構成例を示す図である。【００２４】
図３に示すように、サーバ１００は、ＣＰＵ（Central  Processing  Unit）１０１とメモリ１０２とハードディスク１０３とＮＩＣ１０４とを有する。なお、ここで示したハードウェアはあくまで例示であり、これに限定されるものではない。【００２５】
ＣＰＵ１０１は、サーバ１００全体の処理を司る処理部である。例えば、ＣＰＵ１０１は、Ｈａｄｏｏｐやドライバを実行する。このＨａｄｏｏｐは、ハートビートを生成してＮＩＣに送出する。メモリ１０２は、ＣＰＵ１０１が実行するプログラムや各プログラムが使用するデータを記憶する記憶装置である。ハードディスク１０３は、分散処理の対象となるデータ、テーブル、データベース等を記憶する記憶装置である。【００２６】
ＮＩＣ１０４は、フラッシュＲＯＭ（Read  Only  Memory）１０４ａとコントローラ１０４ｂとを有し、ＮＩＣビートの生成、送信、受信等を実行する。このＮＩＣ１０４には、ＣＰＵ１０１とは別に電流が供給される。つまり、ＣＰＵ１０１の電源供給が遮断された場合でも、ＮＩＣ１０４には電源が供給されるようになっている。【００２７】
フラッシュＲＯＭ１０４ａは、後述する図４や図８に示す処理部と同様の機能を実行する電子回路等を保持する。すなわち、フラッシュＲＯＭ１０４ａは、スレーブサーバ１０のＮＩＣビート装置またはマスタサーバ５０のＮＩＣビート装置と同様の機能を実行する。コントローラ１０４ｂは、ＮＩＣ１０４から他装置へのデータ送信や他装置から送信されたデータの受信を実行する。例えば、コントローラ１０４ｂは、ＮＩＣビートの送信や受信を実行する。【００２８】
なお、ここでは、フラッシュＲＯＭ１０４ａが図４や図８に示す処理部と同様の機能を実行する電子回路等を保持する例を説明したが、これに限定されるものではない。例えば、フラッシュＲＯＭ１０４ａが、図４や図８に示す処理部と同様の機能を実行するプログラムを記憶し、コントローラ１０４ｂが、このプログラムを読み出して実行することで、図４や図８に示す処理部と同様の機能を実行してもよい。【００２９】
［スレーブサーバ構成］
図４は、スレーブサーバの構成を示す機能ブロック図である。図４に示すように、スレーブサーバ１０は、Ｈａｄｏｏｐ１１、省電力処理デーモン１２、ＯＳ１３、ドライバ１４、ＮＩＣ１５を有する。【００３０】
Ｈａｄｏｏｐ１１は、大規模データを効率的に分散処理するオープンソースソフトウェアであり、ＯＳ１３によって実行される。また、Ｈａｄｏｏｐ１１は、スレーブサーバ１０内の正常監視を実行する。例えば、Ｈａｄｏｏｐ１１は、３秒間に１回ハートビートを生成してＮＩＣ１５に向けて送出する。【００３１】
ここで、ハートビートについて説明する。図５は、ハートビートのデータ構成例を示す図である。図５に示すように、ハートビートは、例えば、「ｓｔａｔｕｓ」データ、「ｒｅｓｔａｒｔｅｄ」データ、「ｉｎｉｔｉａｌＣｏｎｔａｃｔ」データ、「ａｃｃｅｐｔＮｅｗＴａｓｋｓ」データ、「ｒｅｓｐｏｎｓｅＩｄ」データから構成される。【００３２】
「ｓｔａｔｕｓ」データは、タスクの名前、Ｈｏｓｔ識別子、ｈｔｔｐ（hypertext  transfer  protocol）リクエストを処理しているｐｏｒｔ番号、実行中タスクの詳細情報、失敗したタスク数、最大実行中Ｍａｐタスク数、最大実行中Ｒｅｄｕｃｅタスク数から構成される。「ｒｅｓｔａｒｔｅｄ」データは、プロセス実行中には「１」が設定され、その他の場合には「０」が設定される。「ｉｎｉｔｉａｌＣｏｎｔａｃｔ」データは、リフレッシュ後の初の通信の場合には「１」が設定され、その他の場合には「０」が設定される。「ａｃｃｅｐｔＮｅｗＴａｓｋｓ」データは、新たなタスクが実行可能である場合には「１」が設定され、新たなタスクが実行不可能である場合には「０」が設定される。「ｒｅｓｐｏｎｓｅＩｄ」データは、最後に成功したレスポンスのＩＤ番号である。【００３３】
図４に戻り、省電力処理デーモン１２は、スレーブサーバ１０を省電力モードに遷移させたり、スレーブサーバ１０を省電力モードから復活させたりする処理部である。この省電力処理デーモン１２は、ＯＳ１３によって実行される。【００３４】
例えば、省電力処理デーモン１２は、スレーブサーバ１０が実行対象とするジョブやタスクが存在しなくなったことを検出すると、ＮＩＣ１５以外の電源をオフにする。なお、ここでいう電源オフとは、全ての電源を遮断するのではなく、ジョブやタスクが発生することができる、最低限の電力量に調整することをいう。また、省電力処理デーモン１２は、スレーブサーバ１０でジョブやタスクが発生したことを検知した場合や、マスタサーバ５０から復帰指示を受信した場合に、省電力モードから通常モードに電源状態を遷移させる。【００３５】
ＯＳ１３は、ハードディスクやメモリの管理、アプリケーションを実行する処理部である。このＯＳ１３は、Ｈａｄｏｏｐ１１、省電力処理デーモン１２、ドライバ１４を実行する。また、ＯＳ１３は、省電力モード時は、最低限の電力量でジョブやタスクの発生を管理する。【００３６】
ドライバ１４は、スレーブサーバ１０内部に装着された装置や、外部に接続した機器を制御する処理部である。具体的に、ドライバ１４は、ＯＳ１３やアプリケーションと、ＮＩＣ１５との通信を制御する。例えば、ドライバ１４は、Ｈａｄｏｏｐ１１が送出したハートビートをＯＳ１３から受信してＮＩＣ１５に送出する。また、ドライバ１４は、ＮＩＣ１５が送出したエラー通知を受信し、ＯＳ１３を介してＨａｄｏｏｐ１１に送出する。なお、ドライバ１４は、ＯＳ１３によって実行される。また、ドライバ１４は、ＯＳ１３に内蔵されていてもよい。【００３７】
ＮＩＣ１５は、コントローラ１６とＮＩＣビート装置１７とを有し、ＮＩＣビートの生成や送信を制御する。このＮＩＣ１５は、ＮＩＣビート以外にも、分散処理システムで発生するデータやメッセージ等を送受信する。【００３８】
コントローラ１６は、送信処理部１６ａと受信処理部１６ｂとを有し、ネットワークを介して、他のスレーブサーバやマスタサーバ５０との間で、各種データを送受信する処理部である。【００３９】
送信処理部１６ａは、各データを送信する処理部である。例えば、送信処理部１６ａは、ＮＩＣビート装置１７から送出されたＮＩＣビートをマスタサーバ５０に送信する。また、送信処理部１６ａは、Ｈａｄｏｏｐ１１から送出された各種データやメッセージを宛先のサーバに送信する。【００４０】
受信処理部１６ｂは、各データを受信する処理部である。例えば、受信処理部１６ｂは、他のスレーブサーバから各種データやメッセージを受信してＨａｄｏｏｐ１１に送出する。また、受信処理部１６ｂは、マスタサーバ５０から省電力モードからの復帰指示を受信して、省電力処理デーモン１２に送出する。【００４１】
ＮＩＣビート装置１７は、ハートビート判定部１７ａ、省電力モード処理部１７ｂ、状態管理部１７ｃ、ＮＩＣビート生成部１７ｄ、及びＮＩＣビート送信部１７ｅを有し、これらによって、ＮＩＣビートの生成や送信を実行する処理部である。このＮＩＣビート装置１７は、他の処理部とは電源供給が分離されており、他の処理部への電源供給が遮断された場合でも、電源が供給される。【００４２】
ハートビート判定部１７ａは、ハートビートの受信有無やハートビートの内容を判定した判定結果を、状態管理部１７ｃに通知する処理部である。具体的には、ハートビート判定部１７ａは、ジョブの実行状況、ＯＳ１３の状態、ハートビートの送信間隔等をハートビートから特定して状態管理部１７ｃに通知する。例えば、ハートビート判定部１７ａは、受信したハートビートに「失敗したタスク数」が「１」以上である場合や「ａｃｃｅｐｔＮｅｗＴａｓｋｓ」が「０」である場合には、ＯＳ１３が異常であることを示す障害通知情報を状態管理部１７ｃに通知する。【００４３】
また、ハートビート判定部１７ａは、ハートビートの受信タイミングが不定期になった場合に、ＯＳ１３が異常であることを示す障害通知情報を状態管理部１７ｃに通知する。より具体的には、ハートビート判定部１７ａは、３秒間１回のタイミングでハートビートを受信できない場合やハートビート自体を受信できない場合に、ＯＳ１３が異常であることを示す障害通知情報を状態管理部１７ｃに通知する。このとき、ハートビート判定部１７ａは、スレーブサーバ１０が省電力モードであれば、異常と判定せずに正常と判定する。なお、ハートビート判定部１７ａは、受信したハートビート自体をＮＩＣビート生成部１７ｄに送出する。【００４４】
省電力モード処理部１７ｂは、省電力モードへの移行状況情報を状態管理部１７ｃに通知する処理部である。例えば、省電力モード処理部１７ｂは、省電力処理デーモン１２によって、スレーブサーバ１０が省電力モードに移行した場合に、移行通知情報を状態管理部１７ｃに通知する。また、省電力モード処理部１７ｂは、省電力処理デーモン１２によって、スレーブサーバ１０が省電力モードから通常モードに移行した場合に、解除通知情報を状態管理部１７ｃに通知する。また、省電力モード処理部１７ｂは、マスタサーバ５０から省電力モードへの移行指示情報や通常モードへの移行指示情報を受信した場合には、当該指示情報を省電力処理デーモン１２に送出する。【００４５】
状態管理部１７ｃは、スレーブサーバ１０の状態を管理する処理部である。具体的には、状態管理部１７ｃは、ハートビート判定部１７ａから通知された判定結果情報や省電力モード処理部１７ｂから通知された移行状況情報を管理する処理部である。図６は、状態管理部が管理する情報の例を示す図である。図６に示すように、状態管理部１７ｃは、「ハートビート送信時刻」、「ＯＳ異常検出フラグ」、「省電力モード」、及び「ＮＩＣビート送信時刻」を管理する。【００４６】
ここで管理される「ハートビート送信時刻」は、Ｈａｄｏｏｐ１１からハートビートが送信された時刻を示す。「ＯＳ異常検出フラグ」は、ＯＳ１３に異常があるか否かを示し、異常がある場合には１が設定され、異常がない場合には０が設定される。「省電力モード」は、スレーブサーバ１０が省電力モードであるか否かを示し、省電力モード中であれば１が設定され、通常モードであれば０が設定される。「ＮＩＣビート送信時刻」は、ＮＩＣビート送信部１７ｅがＮＩＣビートを送信した時刻を示す。【００４７】
例えば、状態管理部１７ｃは、ハートビート判定部１７ａからハートビートの受信時刻を受け付けた場合、当該時刻を「ハートビート送信時刻」に格納する。また、状態管理部１７ｃは、ハートビート判定部１７ａからＯＳが異常であることが通知された場合、ＯＳ異常検出フラグを１に設定する。同様に、状態管理部１７ｃは、省電力モード処理部から１７ｂから移行通知情報が通知された場合、省電力モードを１に設定し、省電力モード処理部１７ｂから解除通知情報が通知された場合、省電力モードを０に設定する。また、状態管理部１７ｃは、ＮＩＣビート送信部１７ｅがＮＩＣビートを送信した時刻を「ＮＩＣビート送信時刻」に格納する。【００４８】
ＮＩＣビート生成部１７ｄは、ＮＩＣビートを生成する処理部である。具体的には、ＮＩＣビート生成部１７ｄは、１分間１回の間隔で、状態管理部１７ｃで管理されるＯＳ状況と、ハートビート判定部１７ａから入力されたハートビートとからＮＩＣビートを生成して、ＮＩＣビート送信部１７ｅに送出する。図７は、ＮＩＣビートのデータ構造例を示す図である。図７に示すように、ＮＩＣビートは、「ハートビート」、「ＯＳ状態ビット」、「ＷＯＬ（Wake−on−LAN）機能ビット」、及び「ＯＳ異常ビット」から構成される。【００４９】
「ハートビート」は、図５で説明したハートビートの内容である。「ＯＳ状態ビット」は、ジョブが実行中であるか否かを示し、ＯＳがジョブを実行している場合すなわち通常モードであれば「１」が設定され、ＯＳがジョブを実行していない場合すなわち省電力モードであれば「０」が設定される。「ＷＯＬ機能ビット」は、ＷＯＬ機能が有効であるか否かを示し、省電力モードで動作している場合には「１」が設定され、通常モードで動作している場合には「０」が設定される。「ＯＳ異常ビット」は、ＯＳに異常が発生しているか否かを示し、ＯＳに異常が発生している場合には「１」が設定され、ＯＳが正常である場合には「０」が設定される。【００５０】
例えば、ＮＩＣビート生成部１７ｄは、１分間１度のタイミングで、状態管理部１７ｃを参照する。そして、ＮＩＣビート生成部１７ｄは、状態管理部１７ｃの「ＯＳ異常検出フラグ」が「１」である場合には、ＯＳに異常が発生していると判定して、「ＯＳ異常ビット」を「１」に設定する。また、ＮＩＣビート生成部１７ｄは、状態管理部１７ｃの「省電力モード」が「１」である場合には、「ＯＳ状態ビット」を「０」に設定し、「ＷＯＬ機能ビット」を「１」に設定する。その後、ＮＩＣビート生成部１７ｄは、ハートビート判定部１７ａから送出された最新のハートビートに、上記各ビット情報を付加したＮＩＣビートを生成して、ＮＩＣビート送信部１７ｅに送出する。【００５１】
ＮＩＣビート送信部１７ｅは、ＮＩＣビートをマスタサーバ５０に送信する処理部である。具体的には、ＮＩＣビート送信部１７ｅは、ＮＩＣビート生成部１７ｄから送出されたＮＩＣビートを送信処理部１６ａに送出する。そして、ＮＩＣビート送信部１７ｅは、ＮＩＣビートを送出した時刻を、状態管理部１７ｃに通知する。【００５２】
［マスタサーバ構成］
図８は、マスタサーバの構成を示す機能ブロック図である。図８に示すように、マスタサーバ５０は、Ｈａｄｏｏｐ５１、状態監視デーモン５２、ＯＳ５３、ドライバ５４、ＮＩＣ５５を有する。【００５３】
Ｈａｄｏｏｐ５１は、大規模データを効率的に分散処理するオープンソースソフトウェアであり、ＯＳ５３によって実行される。Ｈａｄｏｏｐ５１は、ハートビートの内容や状態監視デーモン５２の通知に基づいて、スレーブサーバ１０の生存状態を監視する。そして、Ｈａｄｏｏｐ５１は、スレーブサーバ１０に異常があると判定された場合には、スレーブサーバ１０をネットワークから切り離す。また、Ｈａｄｏｏｐ５１は、ネットワークに異常があると判定した場合には、管理者等に異常を通知する。例えば、Ｈａｄｏｏｐ５１は、受信されたハートビートの「ｓｔａｔｕｓ」の「失敗したタスク数」が記載されている場合には、当該タスクの再実行を該当するスレーブサーバ１０に依頼したり、管理者にタスクの異常を通知したりする。【００５４】
状態監視デーモン５２は、ＮＩＣビートに基づいてスレーブサーバ１０の状態を監視する処理部であり、ＯＳ５３によって実行される。具体的には、状態監視デーモン５２は、スレーブサーバ管理部５７ｂが管理する情報を参照し、スレーブサーバ１０の異常やネットワークの異常を検出した場合に、Ｈａｄｏｏｐ５１に障害内容情報を通知する。通知の方法としては、メッセージを送信してもよく、ログを出力してもよい。【００５５】
例えば、状態監視デーモン５２は、スレーブサーバ管理部５７ｂによって管理されるＯＳ異常通知フラグが１（ＯＮ）であるスレーブサーバ１０を検出した場合、当該スレーブサーバ１０のＯＳ５３が異常であることをＨａｄｏｏｐ５１に通知する。また、状態監視デーモン５２は、スレーブサーバ管理部５７ｂによって管理され省電力モードが１（ＯＮ）であるスレーブサーバ１０を検出した場合、当該スレーブサーバ１０が省電力モードで動作していることをＨａｄｏｏｐ５１に通知する。また、状態監視デーモン５２は、スレーブサーバ管理部５７ｂによって管理されるＮＩＣビート受信時刻に基づいて、ＮＩＣビートを１分間隔で受信できていないスレーブサーバ１０を検出した場合、ネットワークに異常があることをＨａｄｏｏｐ５１に通知する。【００５６】
ＯＳ５３は、ハードディスクやメモリの管理、アプリケーションを実行する処理部である。このＯＳ５３は、Ｈａｄｏｏｐ５１、状態監視デーモン５２、ドライバ５４を実行する。【００５７】
ドライバ５４は、マスタサーバ５０内部に装着された装置や、外部に接続した機器を制御する処理部である。具体的に、ドライバ５４は、ＯＳ５３やアプリケーションと、ＮＩＣ５５との通信を制御する。例えば、ドライバ５４は、ＮＩＣビート装置５７から送出されたハートビートをＨａｄｏｏｐ５１に送出する。また、ドライバ５４は、ＯＳ５３に内蔵されていてもよい。【００５８】
ＮＩＣ５５は、コントローラ５６とＮＩＣビート装置５７とを有し、ＮＩＣビートの受信、ハートビートの抽出等を制御する。このＮＩＣ５５は、ＮＩＣビート以外にも、分散処理システムで発生するデータやメッセージ等を送受信する。【００５９】
コントローラ５６は、送信処理部５６ａと受信処理部５６ｂとを有し、ネットワークを介して、各スレーブサーバ１０との間で、各種データを送受信する処理部である。送信処理部５６ａは、各データを送信する処理部である。例えば、送信処理部５６ａは、省電力モードからの復帰指示、分散処理システムで発生するデータやメッセージ等を各スレーブサーバ１０に送信する。受信処理部５６ｂは、各データを受信する処理部である。例えば、受信処理部５６ｂは、各スレーブサーバ１０からＮＩＣビートを受信して、ＮＩＣビート受信部５７ａに送出する。【００６０】
ＮＩＣビート装置５７は、ＮＩＣビート受信部５７ａとスレーブサーバ管理部５７ｂと通知部５７ｃとを有し、これらによって、各スレーブサーバ１０の状態を管理する処理部である。このＮＩＣビート装置５７は、他の処理部とは電源供給が分離されており、他の処理部への電源供給が遮断された場合でも、電源が供給される。【００６１】
ＮＩＣビート受信部５７ａは、各スレーブサーバ１０から送信されたＮＩＣビートを受信して情報を抽出する処理部である。具体的には、ＮＩＣビート受信部５７ａは、受信処理部５６ｂが受信したＮＩＣビートからハートビートを抽出し、通知部５７ｃに送出する。また、ＮＩＣビート受信部５７ａは、受信されたＮＩＣビートに含まれるＯＳ異常検出フラグ、省電力モード、スレーブサーバ名等に基づいて、スレーブサーバ管理部５７ｂに管理される情報を更新する。【００６２】
例えば、ＮＩＣビート受信部５７ａは、ＮＩＣビートやハートビートからスレーブサーバ名を抽出し、スレーブサーバ管理部５７ｂ内で該当するレコードを特定する。なお、ＮＩＣビート受信部５７ａは、該当するレコードがなければ、スレーブサーバ管理部５７ｂ内に新たなレコードを生成する。【００６３】
そして、ＮＩＣビート受信部５７ａは、ＮＩＣビートを受信した時刻をスレーブサーバ管理部５７ｂに通知する。また、ＮＩＣビート受信部５７ａは、ＮＩＣビート内の「ＯＳ異常検出フラグ」が「１」であれば、当該スレーブサーバ１０のＯＳ５３が異常であることをスレーブサーバ管理部５７ｂに通知する。一方、ＮＩＣビート受信部５７ａは、ＮＩＣビート内の「ＯＳ異常検出フラグ」が「０」であれば、当該スレーブサーバ１０のＯＳ５３が正常であることをスレーブサーバ管理部５７ｂに通知する。同様に、ＮＩＣビート受信部５７ａは、ＮＩＣビート内の「省電力モード」が「１」であれば、当該スレーブサーバ１０が省電力モードで動作していることをスレーブサーバ管理部５７ｂに通知する。また、ＮＩＣビート受信部５７ａは、ＮＩＣビート内の「省電力モード」が「０」であれば、当該スレーブサーバ１０が通常モードで動作していることをスレーブサーバ管理部５７ｂに通知する。【００６４】
スレーブサーバ管理部５７ｂは、各スレーブサーバ１０の状態を管理する処理部である。具体的には、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７ａから通知された各種情報に基づいて、スレーブサーバ１０の状態を示す情報を生成して管理する。図９は、スレーブサーバ管理部が管理する情報の例を示す図である。【００６５】
図９に示すように、スレーブサーバ管理部５７ｂは、「スレーブサーバ名」、「ＮＩＣビート受信時刻」、「ＯＳ異常通知フラグ」、及び「省電力モード」を管理する。ここで管理される「スレーブサーバ名」は、スレーブサーバ１０を識別する情報であり、例えばホスト名などが設定される。「ＮＩＣビート受信時刻」は、ＮＩＣビートが受信された時刻を示す。「ＯＳ異常通知フラグ」は、スレーブサーバのＯＳが異常であるか否かを示す情報であり、異常がある場合には１が設定され、異常がない場合には０が設定される。「省電力モード」は、スレーブサーバ１０の動作モードが省電力モードであるか否かを示す情報であり、省電力モード中であれば１が設定され、通常モードであれば０が設定される。【００６６】
例えば、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７ａから通知されたスレーブサーバの名称及び受信時刻を、不図示のスレーブサーバ名の格納部、及びＮＩＣビート受信時刻の格納部にそれぞれ格納する。また、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７ａからＯＳ５３が異常であることが通知された場合、該当するスレーブサーバ名のＯＳ異常通知フラグを１に設定する。一方、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７ａからＯＳ５３が正常であることが通知された場合、該当するスレーブサーバ名のＯＳ異常通知フラグを０に設定する。また、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７ａから省電力モードで動作中であることが通知された場合、該当するスレーブサーバ名の省電力モードを１に設定する。一方、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７ａから通常モードで動作中であることが通知された場合、該当するスレーブサーバ名の省電力モードを０に設定する。【００６７】
通知部５７ｃは、スレーブサーバ１０から受信されたＮＩＣビートに含まれるハートビートをＮＩＣビート受信部５７ａから受信する。そして、通知部５７ｃは、ドライバ５４とＯＳ５３とを介して、受信したハートビートをＨａｄｏｏｐ５１に送出する。なお、ここで送出されたハートビートは、例えば図５に示したデータ構造である。【００６８】
［処理の流れ（シーケンス）］
次に、スレーブサーバ１０が、ハートビートからＮＩＣビートを生成してマスタサーバ５０に送信し、マスタサーバ５０が、ＮＩＣビートからスレーブサーバの状態を把握する一連の流れを説明する。ここでは、正常時、ＯＳ異常時、省電力モード移行時、ネットワーク異常時の各々について説明する。【００６９】
（正常時）
図１０は、正常時のシーケンスを示す図である。スレーブサーバ１０のＨａｄｏｏｐ１１は、ＯＳ１３やドライバ１４を介してＮＩＣビート装置１７に、３秒ごとにハートビートを送信する（Ｓ１０１とＳ１０２）。すると、ＮＩＣビート装置１７のハートビート判定部１７ａは、３秒ごとにハートビートを受信して状態管理部１７ｃを更新する（Ｓ１０３）。【００７０】
そして、ＮＩＣビート生成部１７ｄが、１分間ごとにスレーブサーバ１０が正常であることを示すＮＩＣビートを生成し、ＮＩＣビート送信部１７ｅが、ＮＩＣビートをマスタサーバ５０に送信する（Ｓ１０４とＳ１０５）。このときのＮＩＣビートは、ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝０から構成される。【００７１】
一方で、マスタサーバ５０のＮＩＣビート受信部５７ａは、ＮＩＣビートを受信する（Ｓ１０６）。このとき、ＮＩＣビート受信部５７ａは、ハートビートを抽出して通知部５７ｃに送出する。また、スレーブサーバ管理部５７ｂは、ＮＩＣビートからＯＳ１３が正常であることを特定して管理情報を更新する。【００７２】
そして、通知部５７ｃは、ドライバ５４やＯＳ５３を介して、正常稼動中を示すハートビートをＨａｄｏｏｐ５１に通知する（Ｓ１０７とＳ１０８）。この結果、Ｈａｄｏｏｐ５１は、スレーブサーバ１０が正常稼動中であることを認識する（Ｓ１０９）。【００７３】
（ＯＳ異常時）
図１１は、ＯＳ異常時のシーケンスを示す図である。スレーブサーバ１０のＨａｄｏｏｐ１１は、ＯＳ１３やドライバ１４を介してＮＩＣビート装置１７に送信するハートビートの送信タイミングが不規則になる（Ｓ２０１とＳ２０２）。すると、ＮＩＣビート装置１７のハートビート判定部１７ａ、省電力モードがＯＦＦかつハートビートが不定期であることに基づいてＯＳ１３が異常であると判定し、状態管理部１７ｃを更新する（Ｓ２０３）。【００７４】
そして、ＮＩＣビート生成部１７ｄがスレーブサーバ１０のＯＳ１３が異常であることを示すＮＩＣビートを生成し、ＮＩＣビート送信部１７ｅがＮＩＣビートをマスタサーバ５０に送信する（Ｓ２０４とＳ２０５）。このときのＮＩＣビートは、ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝１から構成される。【００７５】
一方で、マスタサーバ５０のＮＩＣビート受信部５７ａは、ＮＩＣビートを受信する（Ｓ２０６）。このとき、ＮＩＣビート受信部５７ａは、ハートビートを抽出して通知部５７ｃに送出する。また、スレーブサーバ管理部５７ｂは、ＮＩＣビートからＯＳ１３が異常であることを特定して管理情報を更新する。【００７６】
そして、通知部５７ｃは、ドライバ５４やＯＳ５３を介して、ＯＳ異常であることを状態監視デーモン５２に通知する（Ｓ２０７とＳ２０８）。なお、状態監視デーモン５２が定期的にスレーブサーバ管理部５７ｂを監視して、ＯＳ１３が異常であることを特定してもよい。また、通知部５７ｃは、ハートビートをＨａｄｏｏｐ５１に通知する。この結果、状態監視デーモン５２は、スレーブサーバ１０のＯＳ１３が異常であるログを出力する（Ｓ２０９）。このログを参照してＨａｄｏｏｐ５１や管理者は、スレーブサーバ１０のＯＳ異常を検出する。なお、ログは、ハードディスク等に格納される。【００７７】
（省電力モード移行時）
図１２は、省電力移行時のシーケンスを示す図である。図１２に示すように、スレーブサーバ１０の省電力処理デーモン１２は、ＯＳ１３等で実行されるジョブやタスクがないことを検出すると（Ｓ３０１）、スレーブサーバ１０を省電力モードに移行させる（Ｓ３０２）。続いて、省電力処理デーモン１２は、移行したことをＮＩＣビート装置１７に通知する（Ｓ３０３とＳ３０４）。【００７８】
そして、省電力モード処理部１７ｂが省電力モードへ移行したことを検出して状態管理部１７ｃに通知し、状態管理部１７ｃが管理情報を更新する（Ｓ３０５）。その後、ＮＩＣビート生成部１７ｄが、スレーブサーバ１０が省電力モードへ移行したことを示すＮＩＣビートを生成し、ＮＩＣビート送信部１７ｅが、ＮＩＣビートをマスタサーバ５０に送信する（Ｓ３０６とＳ３０７）。このときのＮＩＣビートは、ハートビート、ＯＳ状態ビット＝０、ＷＯＬ機能ビット＝１、ＯＳ異常ビット＝０から構成される。【００７９】
一方で、マスタサーバ５０のＮＩＣビート受信部５７ａは、ＮＩＣビートを受信する（Ｓ３０８）。このとき、ＮＩＣビート受信部５７ａは、ハートビートを抽出して通知部５７ｃに送出する。また、スレーブサーバ管理部５７ｂは、ＮＩＣビートからスレーブサーバ１０が省電力モードへ移行したことを特定して管理情報を更新する。【００８０】
そして、通知部５７ｃは、ドライバ５４やＯＳ５３を介して、省電力モードへ移行したことを状態監視デーモン５２に通知する（Ｓ３０９とＳ３１０）。なお、状態監視デーモン５２が定期的にスレーブサーバ管理部５７ｂを監視して、省電力モードへ移行したことを特定してもよい。また、通知部５７ｃは、ハートビートをＨａｄｏｏｐ５１に通知する。この結果、状態監視デーモン５２は、スレーブサーバ１０が省電力モードへ移行したことを示すログを出力する（Ｓ３１１）。このログを参照してＨａｄｏｏｐ５１や管理者は、スレーブサーバ１０が省電力モードへ移行したことを検出する。省電力モードへ移行したスレーブサーバ１０は、省電力モードが解除されるまで、ＮＩＣビートの生成や送信を抑止する。【００８１】
その後、スレーブサーバ１０側がジョブ等の発生を検知して、スレーブサーバ１０が主導で省電力モードを解除して通常モードに移行することもできる。また、マスタサーバ５０がスレーブサーバ１０へのジョブ等の発生を検知して、マスタサーバ５０が主導で省電力モードを解除させることもできる。【００８２】
（ネットワーク異常時）
図１３は、ネットワーク異常時のシーケンスを示す図である。図１３に示すように、スレーブサーバ１０のＨａｄｏｏｐ１１は、正常時と同様、ＯＳ１３やドライバ１４を介してＮＩＣビート装置１７に、３秒ごとにハートビートを送信する（Ｓ４０１とＳ４０２）。すると、ＮＩＣビート装置１７のハートビート判定部１７ａは、３秒ごとにハートビートを受信して状態管理部１７ｃを更新する（Ｓ４０３）。【００８３】
そして、ＮＩＣビート生成部１７ｄが、１分間ごとにスレーブサーバ１０が正常であることを示すＮＩＣビートを生成し、ＮＩＣビート送信部１７ｅが、ＮＩＣビートをマスタサーバ５０に送信する（Ｓ４０４とＳ４０５）。このときのＮＩＣビートは、「ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝０」から構成される。【００８４】
一方で、マスタサーバ５０のＮＩＣビート受信部５７ａでは、１分間または所定時間経過してもＮＩＣビートを受信できない（Ｓ４０６）。このとき、スレーブサーバ管理部５７ｂは、ＮＩＣビートが受信できないことを特定し、ネットワークに異常が発生したことを特定する。【００８５】
そして、通知部５７ｃは、スレーブサーバ管理部５７ｂから通知されたネットワーク異常を、ドライバ５４やＯＳ５３を介してＨａｄｏｏｐ５１に通知する（Ｓ４０７とＳ４０８）。その後、Ｈａｄｏｏｐ５１は、ネットワークに異常が発生したことを示すログを出力する（Ｓ４０９）。このログを参照してＨａｄｏｏｐ５１や管理者は、ネットワークに異常が発生したことを検出する。【００８６】
［スレーブサーバ（フローチャート）］
次に、スレーブサーバ１０が実行するＮＩＣビート送信処理の流れを説明する。図１４は、スレーブサーバが実行するＮＩＣビート送信処理の流れを示すフローチャートである。【００８７】
図１４に示すように、スレーブサーバ１０の状態管理部１７ｃは、管理する「省電力モード」に「１」が格納されているか否かを判定する（Ｓ５０１）。そして状態管理部１７ｃは、「省電力モード」に「１」が格納されていると判定した場合（Ｓ５０１：Ｙｅｓ）、「ＯＳ異常検出フラグ」に「０」を格納する（Ｓ５０２）。【００８８】
続いて、ＮＩＣビート生成部１７ｄは、状態管理部１７ｃに管理される「ＮＩＣビート送信時刻」から１分経過したか否かを判定する（Ｓ５０３）。そして、ＮＩＣビート生成部１７ｄは、「ＮＩＣビート送信時刻」から１分経過したと判定した場合（Ｓ５０３：Ｙｅｓ）、「ハートビート、ＯＳ状態ビット＝０、ＷＯＬ機能ビット＝１、ＯＳ異常ビット＝０」から構成されるＮＩＣビートを生成する（Ｓ５０４）。【００８９】
そして、ＮＩＣビート送信部１７ｅは、Ｓ５０４で生成されたＮＩＣビートのパケットの送信を、コントローラ１６の送信処理部１６ａに依頼する（Ｓ５０５）。こうして、送信処理部１６ａは、ＮＩＣビートをマスタサーバ５０に送信する。その後、ＮＩＣビート送信部１７ｅが送信時刻を状態管理部１７ｃに通知し、状態管理部１７ｃが、「ＮＩＣビート送信時刻」を更新する（Ｓ５０６）。【００９０】
その後、ＮＩＣビート装置１７は、１秒間待機した後（Ｓ５０７）、Ｓ５０１以降を繰り返す。なお、Ｓ５０３において、ＮＩＣビート生成部１７ｄが「ＮＩＣビート送信時刻」から１分経過していないと判定した場合（Ｓ５０３：Ｎｏ）、ＮＩＣビート装置１７は、Ｓ５０７を実行する。【００９１】
一方、状態管理部１７ｃは、「省電力モード」に「０」が格納されていると判定した場合（Ｓ５０１：Ｎｏ）、「ハートビート送信時刻」から３秒が経過したか否かを判定する（Ｓ５０８）。【００９２】
そして、状態管理部１７ｃは、「ハートビート送信時刻」から３秒が経過したと判定した場合（Ｓ５０８：Ｙｅｓ）、「ＯＳ異常検出フラグ」に「０」が格納されているか否かを判定する（Ｓ５０９）。状態管理部１７ｃは、「ＯＳ異常検出フラグ」に「０」が格納されていると判定した場合（Ｓ５０９：Ｙｅｓ）、「ＯＳ異常検出フラグ」を「１」に更新する（Ｓ５１０）。つまり、状態管理部１７ｃは、ハートビートを定期的に受信できないことから、ＯＳ１３に異常が発生したと判定する。その後、Ｓ５１２以降が実行される。【００９３】
一方、状態管理部１７ｃによって「ＯＳ異常検出フラグ」に「０」が格納されていないと判定された場合（Ｓ５０９：Ｎｏ）、ＮＩＣビート生成部１７ｄは、状態管理部１７ｃに管理される「ＮＩＣビート送信時刻」から１分経過したか否かを判定する（Ｓ５１１）。そして、ＮＩＣビート生成部１７ｄは、「ＮＩＣビート送信時刻」から１分経過したと判定した場合（Ｓ５１１：Ｙｅｓ）、「ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝１」から構成されるＮＩＣビートを生成する（Ｓ５１２）。【００９４】
そして、ＮＩＣビート送信部１７ｅは、Ｓ５１２で生成されたＮＩＣビートのパケットの送信を、コントローラ１６の送信処理部１６ａに依頼する（Ｓ５１３）。こうして、送信処理部１６ａは、ＮＩＣビートをマスタサーバ５０に送信する。その後、ＮＩＣビート送信部１７ｅが送信時刻を状態管理部１７ｃに通知し、状態管理部１７ｃが、「ＮＩＣビート送信時刻」を更新する（Ｓ５１４）。【００９５】
その後、ＮＩＣビート装置１７は、１秒間待機した後（Ｓ５０７）、Ｓ５０１以降を繰り返す。なお、Ｓ５１１において、ＮＩＣビート生成部１７ｄが「ＮＩＣビート送信時刻」から１分経過していないと判定した場合（Ｓ５１１Ｎｏ）、ＮＩＣビート装置１７は、Ｓ５０７を実行する。【００９６】
一方、状態管理部１７ｃは、「ハートビート送信時刻」から３秒が経過していないと判定した場合（Ｓ５０８：Ｎｏ）、「ＯＳ異常検出フラグ」に「０」を格納する（Ｓ５１５）。【００９７】
そして、ＮＩＣビート生成部１７ｄは、状態管理部１７ｃに管理される「ＮＩＣビート送信時刻」から１分経過したか否かを判定する（Ｓ５１６）。そして、ＮＩＣビート生成部１７ｄは、「ＮＩＣビート送信時刻」から１分経過したと判定した場合（Ｓ５１６：Ｙｅｓ）、「ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝０」から構成されるＮＩＣビートを生成する（Ｓ５１７）。【００９８】
続いて、ＮＩＣビート送信部１７ｅは、Ｓ５１７で生成されたＮＩＣビートのパケットの送信を、コントローラ１６の送信処理部１６ａに依頼する（Ｓ５１８）。こうして、送信処理部１６ａは、ＮＩＣビートをマスタサーバ５０に送信する。その後、ＮＩＣビート送信部１７ｅが送信時刻を状態管理部１７ｃに通知し、状態管理部１７ｃが、「ＮＩＣビート送信時刻」を更新する（Ｓ５１９）。【００９９】
その後、ＮＩＣビート装置１７は、１秒間待機した後（Ｓ５０７）、Ｓ５０１以降を繰り返す。なお、Ｓ５１６において、ＮＩＣビート生成部１７ｄが「ＮＩＣビート送信時刻」から１分経過していないと判定した場合（Ｓ５１６：Ｎｏ）、ＮＩＣビート装置１７は、Ｓ５０７を実行する。【０１００】
［マスタサーバ（フローチャート）］
次に、マスタサーバ５０が実行するＮＩＣビート受信処理の流れと状態監視処理の流れとを説明する。【０１０１】
（ＮＩＣビート受信処理）
図１５は、マスタサーバが実行するＮＩＣビート受信処理の流れを示すフローチャートである。マスタサーバ５０のＮＩＣビート受信部５７ａは、スレーブサーバ１０からＮＩＣビートを受信すると（Ｓ６０１）、現在の時刻をスレーブサーバ管理部５７ｂに通知する（Ｓ６０２）。すなわち、スレーブサーバ管理部５７ｂは、該当するスレーブサーバ１０のレコードにおける「ＮＩＣビート受信時刻」に、通知された現在の時刻を格納する。【０１０２】
続いて、ＮＩＣビート受信部５７ａは、「ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝０」から構成されるＮＩＣビートを受信したか否かを判定する（Ｓ６０３）。つまり、ＮＩＣビート受信部５７ａは、異常がないＮＩＣビートを受信したか否かを判定する。【０１０３】
そして、ＮＩＣビート受信部５７ａは、異常がないＮＩＣビートを受信したと判定した場合（Ｓ６０３：Ｙｅｓ）、通知部５７ｃは、ＮＩＣビート受信部５７ａがＮＩＣビートから抽出したハートビートをＨａｄｏｏｐ５１に送出する（Ｓ６０４）。【０１０４】
一方、ＮＩＣビート受信部５７ａは、「ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝０」から構成されるＮＩＣビートではないと判定した場合（Ｓ６０３：Ｎｏ）、Ｓ６０５を実行する。すなわち、ＮＩＣビート受信部５７ａは、「ハートビート、ＯＳ状態ビット＝０、ＷＯＬ機能ビット＝１、ＯＳ異常ビット＝０」から構成されるＮＩＣビートを受信したか否かを判定する。つまり、ＮＩＣビート受信部５７ａは、スレーブサーバ１０が省電力モードで動作中であるか否かを判定する。【０１０５】
そして、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７ａによってスレーブサーバ１０が省電力モードで動作中であると判定された場合（Ｓ６０５：Ｙｅｓ）、該当するスレーブサーバ１０に対応する「省電力モード」に「１」を格納する（Ｓ６０６）。その後、ＮＩＣビート装置５７は、Ｓ６０４を実行する。【０１０６】
また、Ｓ６０５において、ＮＩＣビート受信部５７ａは、「ハートビート、ＯＳ状態ビット＝０、ＷＯＬ機能ビット＝１、ＯＳ異常ビット＝０」から構成されるＮＩＣビートではないと判定した場合（Ｓ６０５：Ｎｏ）、Ｓ６０７を実行する。すなわち、ＮＩＣビート受信部５７ａは、「ハートビート、ＯＳ状態ビット＝１、ＷＯＬ機能ビット＝０、ＯＳ異常ビット＝１」から構成されるＮＩＣビートを受信したか否かを判定する。つまり、ＮＩＣビート受信部５７ａは、スレーブサーバ１０のＯＳ１３に異常が発生したか否かを判定する。【０１０７】
そして、スレーブサーバ管理部５７ｂは、ＮＩＣビート受信部５７によってスレーブサーバ１０のＯＳ１３に異常が発生したと判定された場合（Ｓ６０７：Ｙｅｓ）、該当するスレーブサーバ１０に対応する「ＯＳ異常通知フラグ」に「１」を格納する（Ｓ６０８）。その後、ＮＩＣビート装置５７は、Ｓ６０４を実行する。なお、ＮＩＣビート受信部５７ａによってスレーブサーバ１０のＯＳ１３に異常が発生したと判定されなかった場合（Ｓ６０７：Ｎｏ）、ＮＩＣビート装置５７は、処理を終了する。【０１０８】
（状態監視処理）
図１６は、マスタサーバが実行する状態監視処理の流れを示すフローチャートである。図１６に示すように、マスタサーバ５０の状態監視デーモン５２は、スレーブサーバ管理部５７ｂを参照し、ＮＩＣビート受信時刻から３分以上が経過しているスレーブサーバ１０が存在するか否かを判定する（Ｓ７０１）。つまり、状態監視デーモン５２は、スレーブサーバ管理部５７ｂが管理するＮＩＣビート受信時刻が３分以上更新されないスレーブサーバ１０が存在するか否かを判定する。【０１０９】
そして、状態監視デーモン５２は、ＮＩＣビート受信時刻から３分以上が経過しているスレーブサーバ１０が存在すると判定した場合（Ｓ７０１：Ｙｅｓ）、ネットワークに障害が発生していることを示すログを出力する（Ｓ７０２）。その後、状態監視デーモン５２は、１秒間待機した後（Ｓ７０３）、Ｓ７０１に戻って以降の処理を繰り返す。【０１１０】
一方、状態監視デーモン５２は、ＮＩＣビート受信時刻から３分以上が経過しているスレーブサーバ１０が存在しないと判定した場合（Ｓ７０１：Ｎｏ）、「ＯＳ異常通知フラグ」に「１」が格納されているスレーブサーバが存在するか否かを判定する（Ｓ７０４）。【０１１１】
そして、状態監視デーモン５２は、「ＯＳ異常通知フラグ」に「１」が格納されているスレーブサーバ１０が存在すると判定した場合（Ｓ７０４：Ｙｅｓ）、当該スレーブサーバ１０でＯＳに異常が発生していることを示すログを出力する（Ｓ７０５）。その後、状態監視デーモン５２は、１秒間待機した後（Ｓ７０３）、Ｓ７０１に戻って以降の処理を繰り返す。【０１１２】
また、状態監視デーモン５２は、「ＯＳ異常通知フラグ」に「１」が格納されているスレーブサーバ１０が存在しないと判定した場合（Ｓ７０４：Ｎｏ）、「省電力モード」に「１」が格納されているスレーブサーバ１０が存在するか否かを判定する（Ｓ７０６）。【０１１３】
そして、状態監視デーモン５２は、「省電力モード」に「１」が格納されているスレーブサーバ１０が存在すると判定した場合（Ｓ７０６：Ｙｅｓ）、当該スレーブサーバ１０が省電力モードに移行したことを示すログを出力する（Ｓ７０７）。その後、状態監視デーモン５２は、１秒間待機した後（Ｓ７０３）、Ｓ７０１に戻って以降の処理を繰り返す。なお、状態監視デーモン５２は、「省電力モード」に「１」が格納されているスレーブサーバ１０が存在しないと判定した場合（Ｓ７０６：Ｎｏ）、１秒間待機した後（Ｓ７０３）、Ｓ７０１に戻って以降の処理を繰り返す。【０１１４】
このように、従来のように３秒間に１度送信されたハートビートと比べ、単一な送信ルールではなく、送信時間等を柔軟に変更できるＮＩＣビートを使用することによって、マスタサーバ５０の負荷を軽減することができる。また、ＮＩＣビートを用いることで、ハートビートが持っていた生存情報を伝える機能を保持した上、故障した場所の特定ができる。さらに、スレーブサーバ１０に対する故障箇所の誤判断を防ぐことができ、故障原因に対して作業の効率向上を実現できる。【０１１５】
また、ジョブ処理に関して、処理が完了したスレーブサーバ１０が省電力になることから、電力コストの大幅な減少が実現できる。さらに、ＮＩＣビートを送信することによって、省電力モードになったスレーブサーバ１０に対して、マスタサーバ５０の誤判断を防ぐことができる。また、マスタサーバ５０のジョブ処理の要求に応じて、スレーブサーバ１０が、省電力モードから通常処理モードに戻ることができる。【０１１６】
さらに、ＯＳ異常とネットワーク障害の切り分けができ、ＯＳ異常のときは代替スレーブサーバ１０への切り替えを即時に開始できる。そして、ネットワーク障害のときはスレーブサーバ１０に保存されたデータが破損する可能性がないためネットワークの復旧を待つなど、マスタサーバ５０がスレーブサーバ１０に対する対処方法を柔軟に変更することができる。
【実施例２】
【０１１７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【０１１８】
（通知内容）
実施例１では、ＯＳ状態ビット、省電力モード、ＯＳ異常ビットをＮＩＣビートで送信する例を説明したが、これに限定されるものではなく、いずれか１つを送信するようにしてもよい。また、任意の組み合わせで送信してもよい。【０１１９】
（送信間隔）
実施例１では、ハートビートが３秒間隔で送信され、ＮＩＣビートが１分間隔で送信される例を説明したが、これに限定されるものではなく、いずれの送信間隔も任意に設定変更することができる。ただし、マスタサーバ５０の負荷を軽減するために、ＮＩＣビートの送信間隔は、ハートビートの送信間隔よりも長いことが好ましい。【０１２０】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１２１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【符号の説明】
【０１２２】
１０  スレーブサーバ
１１  Ｈａｄｏｏｐ
１２  省電力処理デーモン
１３  ＯＳ
１４  ドライバ
１５  ＮＩＣ
１６  コントローラ
１６ａ  送信処理部
１６ｂ  受信処理部
１７  ＮＩＣビート装置
１７ａ  ハートビート判定部
１７ｂ  省電力モード処理部
１７ｃ  状態管理部
１７ｄ  ＮＩＣビート生成部
１７ｅ  ＮＩＣビート送信部
５０  マスタサーバ
５１  Ｈａｄｏｏｐ
５２  状態監視デーモン
５３  ＯＳ
５４  ドライバ
５５  ＮＩＣ
５６  コントローラ
５６ａ  送信処理部
５６ｂ  受信処理部
５７  ＮＩＣビート装置
５７ａ  ＮＩＣビート受信部
５７ｂ  スレーブサーバ管理部
５７ｃ  通知部
【図１】
0005858144.tif 000002
【図２】
0005858144.tif 000003
【図３】
0005858144.tif 000004
【図４】
0005858144.tif 000005
【図５】
0005858144.tif 000006
【図６】
0005858144.tif 000007
【図７】
0005858144.tif 000008
【図８】
0005858144.tif 000009
【図９】
0005858144.tif 000010
【図１０】
0005858144.tif 000011
【図１１】
0005858144.tif 000012
【図１２】
0005858144.tif 000013
【図１３】
0005858144.tif 000014
【図１４】
0005858144.tif 000015
【図１５】
0005858144.tif 000016
【図１６】
0005858144.tif 000017