(57)【要約】【課題】クラスタシステムにおいて消費電力を抑制しつつ信頼性を維持することができる制御装置を提供する。【解決手段】制御装置を、コア選択手段１、ノード制御手段２を備える構成とする。コア選択手段１は、割り当てられたジョブをそれぞれ実行する複数のノードのうち選択されたノードのＣＰＵの複数のコアから、選択されたノードが一部のコアで動作する省電力モードにおいて動作を継続させるコアを選択する。ノード制御手段２は、選択されたノードを、コア選択手段１が選択したコアを動作させた省電力モードに移行させる。また、ノード制御手段２は、省電力モードにおいても継続して動作しているコアでテストプログラムを実行させる。【選択図】      図１
2018132876.tif 000002
【特許請求の範囲】
【請求項１】
割り当てられたジョブをそれぞれ実行する複数のノードのうち選択された前記ノードのＣＰＵ（Central Processing Unit）の複数のコアから、選択された前記ノードが一部の前記コアで動作する省電力モードにおいて動作を継続させる前記コアを選択するコア選択手段と、
選択された前記ノードを、前記コア選択手段が選択した前記コアを動作させた前記省電力モードに移行させ、前記省電力モードにおいても継続して動作している前記コアでテストプログラムを実行させるノード制御手段と
を備えることを特徴とする制御装置。
【請求項２】
前記コア選択手段は、前記省電力モードにおける前記コアの選択履歴が前記ノードごとの前記コア間で平準化されるように、前記省電力モードで動作を継続させる前記コアを選択することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記ノード制御手段は、前記テストプログラムの実行によって正常に動作すると判断された前記ノードを、全ての前記コアが動作している通常モードに移行させることを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記コア選択手段は、選択された前記ノードが前記省電力モードのときに動作を継続させる前記コアを、前記ノードの前記省電力モードでの動作中に再選択し、
前記ノード制御手段は、再選択された前記コアを動作させた前記省電力モードで動作するように前記ノードを制御し、再選択された前記コアに前記テストプログラムを実行させることを特徴とする請求項１から３いずれかに記載の制御装置。
【請求項５】
複数の前記ノードのうち前記省電力モードに移行するノードを、前記ノード間において前記省電力モードに移行する回数が平準化されるように選択するノード選択手段をさらに備え、
前記ノード制御手段は、前記ノード選択手段が選択した前記ノードを前記省電力モードに移行させることを特徴とする請求項１から４いずれかに記載の制御装置。
【請求項６】
複数のコアを有するＣＰＵと、
複数の前記コアのそれぞれの動作を制御するＣＰＵ制御手段と、
テストプログラムの実行の要求を受けたときに前記ＣＰＵで前記テストプログラムを実行して結果を出力するテスト実行制御手段と
を備え、
前記ＣＰＵ制御手段は、省電力モードへ移行する要求を受けたときに、複数の前記コアのうち一部の前記コアのみを動作状態とし、
前記テスト実行制御手段は、前記省電力モードにおいて動作している前記コアにおいて前記テストプログラムを実行することを特徴とするノード。
【請求項７】
請求項１から５いずれかに記載の制御装置と、
請求項６に記載の複数のノードと
を備え、
前記制御装置の前記ノード制御手段は、複数の前記ノードの一部を前記省電力モードに移行させ、
前記省電力モードに移行した前記ノードの前記ＣＰＵ制御手段は、前記コア選択手段によって選択された前記コアを動作させた前記省電力モードで動作することを特徴とする情報システム。
【請求項８】
割り当てられたジョブをそれぞれ実行する複数のノードのうち選択された前記ノードのＣＰＵの複数のコアから、前記ノードが一部の前記コアで動作する省電力モードにおいて動作を継続させる前記コアを選択し、
選択された前記ノードを、選択した前記コアを動作させた前記省電力モードに移行し、
前記省電力モードにおいても継続して動作している前記コアでテストプログラムを実行させることを特徴とする制御方法。
【請求項９】
前記省電力モードにおける前記コアの選択履歴が前記ノードごとの前記コア間で平準化されるように、前記省電力モードで動作を継続させる前記コアを選択することを特徴とする請求項８に記載の制御方法。
【請求項１０】
複数の前記ノードのうち前記省電力モードに移行するノードを、前記ノード間において前記省電力モードに移行する回数が平準化されるように選択し、
選択した前記ノードを前記省電力モードに移行させることを特徴とする請求項８または９に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムに関するものであり、特に、ノードの制御技術に関するものである。
【背景技術】
【０００２】
処理能力や可用性の向上のため複数のノードでジョブを分散して実行するクラスタシステムが広く用いられている。そのような、クラスタシステムでは、各ノードにおいてジョブの実行を行うＣＰＵ（Central Processing Unit）は、コアの複数化や回路の高集積度化が進み消費電力が増大している。そのため、各ノードや情報システム全体での消費電力の抑制の要求も強くなっている。
【０００３】
情報システムの消費電力を抑制する方法としては、例えば、負荷の状況等に応じてノードの一部をジョブの割り当て対象から除外してオフライン状態とし、省電力モードで動作させる方法が用いられる。オフラインとして省電力モードとなっていたノードは、負荷の増加時や現用系と待機系の入れ替えの際に、再度、オンラインに移行する。しかし、一定時間オフラインとなっていたノードをオンライン状態に戻し、ジョブの割り当てを再開した際に、故障等が発生した場合、そのノードに割り当てられたジョブはアボートされる。アボートされたジョブは、再度、スケジューリングされて他のノードに割り当てられて実行される。
【０００４】
そのようなノードの故障等の発生は、情報システムの信頼性や可用性を維持するためにできるだけ抑制されている必要がある。そのため、クラスタシステムにおいて各ノードの異常の有無を確認し、ノードの停止を抑制するための技術の開発が行われている。そのような、クラスタシステムにおいてノードの異常の有無を確認し、ノードの停止の発生を抑制する技術としては、例えば、特許文献１のような技術が開示されている。
【０００５】
特許文献１は、複数のホストでジョブを実行するクラスタシステムに関するものである。特許文献１のクラスタシステムのサービスプロセッサは、複数のホストを順に１つずつオフライン状態として、オフライン状態にしたホストの試験を行っている。サービスプロセッサは、１つのホストの試験が完了すると、試験が完了したホストをオンラインに戻し、他のホストの試験を実施する。特許文献１は、そのような構成で順にホストの試験を行うことで効率的にホストの試験を行うことができるとしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−１８５５２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術は次のような点で十分ではない。特許文献１のクラスタシステムは、各ノードを順にオフラインにして試験を行っている。特許文献１では、試験の対象となるノードは、オフラインの状態でも通常と同様の動作を行える状態で試験を実行する。そのため、試験の対象となるノードの消費電力を削減することはできない。よって、特許文献１の技術は、複数のノードでジョブを実行するクラスタシステムにおいて、消費電力を抑制しつつ信頼性を維持するための技術としては十分ではない。
【０００８】
本発明は、上記の課題を解決するため、クラスタシステムにおいて消費電力を抑制しつつ信頼性を維持することができる制御装置を提供することを目的としている。
を目的としている。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明の制御装置は、コア選択手段と、ノード制御手段を備えている。コア選択手段は、割り当てられたジョブをそれぞれ実行する複数のノードのうち選択されたノードのＣＰＵの複数のコアから、選択されたノードが一部のコアで動作する省電力モードにおいて動作を継続させるコアを選択する。ノード制御手段は、選択されたノードを、コア選択手段が選択したコアを動作させた省電力モードに移行させる。また、ノード制御手段は、省電力モードにおいても継続して動作しているコアでテストプログラムを実行させる。
【００１０】
本発明の制御方法は、割り当てられたジョブをそれぞれ実行する複数のノードのうち選択されたノードのＣＰＵの複数のコアから、ノードが一部のコアで動作する省電力モードにおいて動作を継続させるコアを選択する。本発明の制御方法は、選択されたノードを、選択したコアを動作させた省電力モードに移行する。本発明の制御方法は、省電力モードにおいても継続して動作しているコアでテストプログラムを実行させる。
【発明の効果】
【００１１】
本発明によると、クラスタシステムにおいて消費電力を抑制しつつ信頼性を維持することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態のクラスタシステムの例を模式的に示した図である。
【図４】本発明の第２の実施形態のクラスタシステムの例を模式的に示した図である。
【図５】本発明の第２の実施形態の動作フローの概要を示した図である。
【図６】本発明の第２の実施形態の動作フローの概要を示した図である。
【図７】本発明の第２の実施形態における動作フローの例を示した図である。
【図８】本発明の第２の実施形態における動作フローの例を示した図である。
【図９】本発明の第２の実施形態における動作フローの例を示した図である。
【図１０】本発明の第２の実施形態における動作フローの例を示した図である。
【図１１】本発明の第２の実施形態における動作フローの例を示した図である。
【図１２】本発明の第２の実施形態における動作フローの例を示した図である。
【発明を実施するための形態】
【００１３】
（第１の実施形態）
本発明の第１の実施形態について図を参照して詳細に説明する。図１は、本実施形態の制御装置の構成の概要を示したものである。本実施形態の制御装置は、コア選択手段１と、ノード制御手段２を備えている。コア選択手段１は、割り当てられたジョブをそれぞれ実行する複数のノードのうち選択されたノードのＣＰＵ（Central Processing Unit）の複数のコアから、選択されたノードが一部のコアで動作する省電力モードにおいて動作を継続させるコアを選択する。ノード制御手段２は、選択されたノードを、コア選択手段１が選択したコアを動作させた省電力モードに移行させる。また、ノード制御手段２は、省電力モードにおいても継続して動作しているコアでテストプログラムを実行させる。
【００１４】
本実施形態の制御装置は、コア選択手段１において省電力モードのときに稼動させるコアを選択し、ノード制御手段２が選択されたノードを省電力モードに移行する。また、ノード制御手段２は、省電力モードで動作しているコアでテストプログラムを実行させている。そのため、ノードが有する一部のコアのみが動作している省電力モードで、動作しているコアによってテストプログラムを実行するので、電力の消費を抑制しつつノードの試験を実行することができる。その結果、本実施形態の制御装置を用いることで、クラスタシステムにおいて、消費電力を抑制しつつ信頼性を維持することができる。
【００１５】
（第２の実施形態）
本発明の第２の実施形態について図を参照して詳細に説明する。図２は、本実施形態の情報システムの構成の概要を示したものである。本実施形態の情報システムは、制御サーバ１０と、複数のノード２０を備えている。本実施形態の情報システムは、複数のノード２０において制御サーバの制御に基づいてジョブの分散処理を行うクラスタシステムである。
【００１６】
制御サーバ１０の構成について説明する。制御サーバ１０は、スケジューラ部１１と、診断部１２と、記憶部１３を備えている。制御サーバ１０は、ジョブを各ノード２０に割り当てるスケジューラとしての機能と、各ノード２０のオンラインとオフラインの切り替えや試験を制御する機能を有する制御装置である。制御サーバ１０は、情報処理装置やネットワークを介して要求されたジョブを、各ノードに分散して実行し、各ノードから受け取るジョブの実行結果を要求元の情報処理装置等に送る。
【００１７】
スケジューラ部１１は、スケジュール制御部１４と、履歴保存部１５をさらに備えている。スケジュール制御部１４は、実行するジョブのノード２０への割り当てを行う機能と、ノード２０のオンラインとオフラインの切り替えを管理する機能を有する。
【００１８】
スケジュール制御部１４は、ジョブが発生すると、ジョブの実行を割り当てるノード２０を決定する。スケジュール制御部１４は、ジョブの割り当て先のノード２０を決定すると、決定したノード２０にジョブの実行の指示を送る。
【００１９】
スケジュール制御部１４は、ジョブの割り当て先として用いるオンラインのノード２０と、ジョブの割り当てを行わないオフラインのノード２０を選択する。スケジュール制御部１４は、例えば、クラスタシステムの負荷に応じてジョブの実行に必要なノード２０の数を予測し、必要な数のノード２０をオンラインに設定し、それ以外のノード２０をオフラインに設定する。また、現用系と待機系のノード２０を有する情報システムでは、スケジュール制御部１４は、現用系のノード２０をオンライン、待機系のノード２０をオフラインとする制御を行う。
【００２０】
本実施形態の情報システムでは、オフラインのノード２０は、省電力モードで動作する。省電力モードとは、ノード２０が有するＣＰＵの複数のコアのうち一部のコアのみを動作させた状態でノード２０が動作している状態のことをいう。省電力モードにおいて、動作対象とならないコアは、低クロック周波数の動作状態か停止状態となる。低クロック周波数の動作状態とは、起動の制御信号等が入力された際に動作を開始することができる最小限の動作のみが可能な程度までクロック周波数を下げた状態のことをいう。また、通常モードとは、ＣＰＵの全てのコアがジョブの実行が可能な状態で動作または待機している状態のことをいう。
【００２１】
スケジュール制御部１４は、オフラインのノード２０を選択する際に、オフラインにした履歴がノード２０間で偏らないように選択し、ノード２０間でオフラインにした履歴を平準化する。スケジュール制御部１４は、ノード２０ごとのオフラインにした履歴を履歴保存部１５に保存している。スケジュール制御部１４は、オフラインにした回数に基づいて、ノード２０ごとのオフラインにした回数が平準化、すなわち、均等になるようにオフラインにするノード２０を選択する。また、スケジュール制御部１４は、情報システムが備えているノード２０の情報をあらかじめ保存している。
【００２２】
履歴保存部１５は、ノード２０ごとのオンラインとオフラインの履歴を保存する機能を有する。履歴保存部１５は、例えば、読み書きが可能な不揮発性の半導体記憶素子によって構成されている。
【００２３】
診断部１２は、ノード制御部１６と、診断履歴保存部１７をさらに備えている。ノード制御部１６は、スケジュール制御部１４の指示に基づいてノード２０のオンラインとオフラインの切り替えを制御する機能を有する。また、ノード制御部１６は、オフラインのノード２０にテストプログラムの実行を要求する機能を有する。
【００２４】
ノード制御部１６は、スケジュール制御部１４からノード２０のオンラインとオフラインの切り替えの要求を受け取ると、ノード２０のオンラインとオフラインの切り替えを行う。またノード制御部１６は、ノード２０のオンラインとオフラインの切り替えを実行したことを示す情報をスケジュール制御部１４に送る。
【００２５】
ノード制御部１６は、オフラインにするノード２０を省電力モードに移行するように制御する。ノード制御部１６は、オフラインにするノード２０を省電力モードに移行させる際に、省電力モードにおいて動作を継続するＣＰＵのコアを選択する。省電力モードにおいて動作を継続するＣＰＵのコアは、ＣＰＵが有する複数のコアの中からテストプログラムの実行に必要な１つまたは複数のコアが選択される。すなわち、省電力モードにおいても継続して動作するＣＰＵのコアは、ＣＰＵが有する全てのコアのうち一部のコアが選択される。また、ノード制御部１６は、各ノード２０が備えているＣＰＵのコアの構成の情報をあらかじめ保存している。
【００２６】
ノード制御部１６は、省電力モードにおいても継続して動作するＣＰＵのコアを選択する際に、省電力モードで動作した履歴が、ＣＰＵごとのコア間で偏らないように選択し、ＣＰＵのコア間で省電力モードにおいて動作した履歴が平準化されるように選択する。ノード制御部１６は、ＣＰＵのコアごとの履歴を診断履歴保存部１７に保存している。ノード制御部１６は、例えば、省電力モードで動作している際にテストプログラムを実行した回数がＣＰＵごとにコア間で平準化、すなわち、均等になるように省電力モードにおいて継続して動作させるＣＰＵのコアを選択する。
【００２７】
ノード制御部１６は、オフラインで省電力モードのノード２０に対して、省電力モードにおいて継続して動作しているＣＰＵのコアでのテストプログラムの実行を要求する。ノード制御部１６は、テストプログラムの実行の要求と、記憶部１３から読み出したテストプログラムのデータを、テストプログラムを実行するノード２０に送る。また、ノード制御部１６は、テストプログラムを実行したノード２０からテストの実行結果の情報を取得する。ノード制御部１６は、テストの実行結果をスケジュール制御部１４に送る。
【００２８】
ノード制御部１６は、スケジュール制御部１４からノード２０をオンラインにする指示を受けると、ノード２０を全てのＣＰＵコアでジョブの実行を行える状態のオンラインに移行させる。
【００２９】
本実施形態のノード制御部１６の省電力モードにおいても動作を継続するＣＰＵのコアを選択する機能は、第１の実施形態のコア選択手段１に相当する。また、本実施形態のノード制御部１６が、ノードを省電力モードに移行する機能と、ノードにテストプログラムを実行させる機能は、第１の実施形態のノード制御手段２に相当する。
【００３０】
診断履歴保存部１７は、ノード２０ごとの省電力モードで動作している際に継続して動作しているＣＰＵのコアの履歴と、テストプログラムを実行した履歴を保存する機能を有する。履歴保存部１５は、例えば、読み書きが可能な不揮発性の半導体記憶素子によって構成されている。
【００３１】
記憶部１３は、ノード２０の異常の有無をチェックするテストプログラムのデータを保存する機能を有する。記憶部１３は、ノード制御部１６の要求に基づいてテストプログラムのデータをノード制御部１６に出力する。記憶部１３は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの記憶装置によって構成されている。また、スケジューラ部１１の履歴保存部１５および診断部１２の診断履歴保存部１７は、記憶部１３に形成されていてもよい。
【００３２】
ノード２０は、複数のコアを有するＣＰＵと、メモリを備えている。ノード２０は、制御サーバ１０に割り当てられたジョブを実行し、実行結果を制御サーバ１０に送る。また、ノード２０は、制御サーバ１０の制御に基づいて、ジョブを実行可能な状態で待機するオンラインの状態と、ジョブの実行を行わないオフラインの状態とのいずれかによって動作する。
【００３３】
ノード２０は、オフラインの状態では、複数のＣＰＵのコアのうち一部のコアのみを動作状態とする省電力モードで動作する。例えば、ノード２０は、オフラインの状態では、テストプログラムの実行を可能とするために１つのＣＰＵのコアとメモリを動作可能な省電力モードの状態で待機する。ノード２０は、１つのＣＰＵコアとメモリを動作可能な状態として待機することで他のＣＰＵのコアの電力の消費を抑制しつつ、テストプログラムの実行が可能な状態で待機することができる。省電力モードおいて動作しないＣＰＵのコアは、低クロック周波数で動作する状態か停止状態として設定される。
【００３４】
ノード２０は、制御サーバ１０の指示に基づいて省電力モードにおいてテストプログラムを実行し、実行結果を制御サーバ１０に送る。テストプログラムは、ノード２０のＣＰＵやメモリ等の各デバイスや、処理機能が正常に動作するかを確認するプログラムである。
【００３５】
ノード２０は、上記の動作を行うためＣＰＵの複数のコアのそれぞれの動作を制御する制御回路と、テストプログラムの実行の要求を受けたときにＣＰＵでテストプログラムを実行して結果を出力する機能を有している。
【００３６】
図６は、クラスタシステムとして構成されている本実施形態の情報システムの構成を模式的に示したものである。図６の情報システムでは、複数のノードがクラスタを形成している。また、ノードは、複数のコアを有するＣＰＵと、メモリを備えている。図６に示すように、制御サーバのスケジューラ部によってクラスタを形成するノードにジョブが割り当てられて投入されている。また、スケジューラ部は、診断部を介してノードのオンラインとオフラインの指示を行うことで、ノードのオンラインとオフラインの切り替えを制御する。
【００３７】
図７は、図６の情報システムでテストプログラムを実行する際の動作を模式的示したものである。図７では、「ノード３」がオフラインの状態である様子を示している。また、オフラインの「ノード３」のＣＰＵのうち「コア２」が動作し、「ノード３」は、省電力モードで動作している。ＣＰＵのコアのうち「コア２」以外のコアは、低クロック周波数での動作状態か停止状態となっている。図７の状態で、制御サーバの診断部は、記憶部からテストプログラムを読み出して、省電力モードの「ノード３」にテストプログラムの実行を要求する。「ノード３」は、動作している「コア２」とメモリによってテストプログラムを実行する。
【００３８】
本実施形態の情報システムの動作について説明する。以下の説明では、ノード２０として第１のノード３１、第２のノード３２および第３のノード３３が用いられている場合を例に説明する。ノード２０の数は、４つ以上であってもよい。
【００３９】
始めに、本実施形態の情報システムにおいて負荷の変動や現用系と待機系のノードの切り替えなどを行う際に、一部のノードを省電力モードに切り替えて試験を行う際の動作について説明する。図５は、本実施形態の情報システムにおいて、第３のノード３３をオフラインに移行して試験を行う際の動作フローを示したシーケンス図である。また、図５および以下の各図において第１のノード３１、第２のノード３２および第３のノード３３の実線部はオンラインの状態を示し、破線部はオフラインの状態を示している。
【００４０】
制御サーバ１０のスケジュール制御部１４は、ノードの省電力モードへの切り替え動作を開始すると、履歴保存部１５を参照して省電力モードへ移行したノードの履歴を確認する。スケジュール制御部１４は、ノード間で省電力モードへ移行する頻度に偏りが生じないように、省電力モードに移行するノードを選択する（ステップ１０１）。例えば、第１のノード３１と、第２のノード３２に省電力モードに移行した記録が残っていたとき、スケジュール制御部１４は、第３のノード３３を省電力モードに移行するノードとして選択する。
【００４１】
スケジュール制御部１４は、第３のノード３３を省電力モードに移行するノードとして選択すると、診断部１２のノード制御部１６に第３のノード３３をオフラインにする指示を送る（ステップ１０２）。また、スケジュール制御部１４は、オフラインにする第３のノード３３の識別子と、オフラインに移行した日時の情報を履歴保存部１５に保存する。
【００４２】
診断部１２のノード制御部１６は、第３のノード３３をオフラインにする指示を受け取ると、第３のノード３３をオフラインに切り替える（ステップ１０３）。第３のノード３３をオフラインにすると、ノード制御部１６は、第３のノード３３のオフラインへの切り替えが完了したことを示す通知をスケジュール制御部１４に送る（ステップ１０４）。
【００４３】
オフラインにしたことを示す通知を送ると、ノード制御部１６は、第３のノード３３を省電力モードにする動作を開始する。省電力モードにする動作を開始すると、診断履歴保存部１７を参照して、第３のノード３３を省電力モードで動作させた際のＣＰＵのコアの動作履歴を確認する。省電力モード時の第３のノード３３のＣＰＵのコアの動作履歴を確認すると、省電力モード時のＣＰＵのコアの動作履歴に偏りがないように動作させるコアを１つ選択する（ステップ１０５）。動作回数が同じコアが複数ある場合には、コアの選択はランダムに行われてもよく、コアの番号順などあらかじめ設定された優先順位に基づいてコアの選択が行われてもよい。
【００４４】
省電力モード時に動作させるＣＰＵのコアを選択すると、ノード制御部１６は、省電力モードへの移行の要求と、動作させるＣＰＵのコアの情報を第３のノード３３に送る（ステップ１０６）。第３のノード３３は、省電力モードへ移行の要求を受け取ると、指定されたＣＰＵのコアとメモリで動作する省電力モードで動作する状態に移行する（ステップ１０７）。
【００４５】
省電力モードへの移行の要求等を送ると、ノード制御部１６は、第３のノード３３のノードの識別子と、動作させるＣＰＵのコアの情報と、省電力モードに移行した日時を関連づけて診断履歴保存部１７に保存する。
【００４６】
第３のノード３３が省電力モードで動作している間、スケジュール制御部１４は、発生したジョブを第１のノード３１および第２のノード３２に割り当てることでジョブの実行を制御する。
【００４７】
第３のノード３３が省電力モードで動作している間、ノード制御部１６は、所定のタイミングでテストプログラムを第３のノード３３に実行させることによって、第３のノード３３の異常の有無を確認する。所定のタイミングは、例えば、時刻や時間間隔を基にあらかじめ設定されている。所定のタイミングには、省電力モードへの移行の直後が含まれていてもよい。
【００４８】
第３のノード３３でテストプログラムを実行させる際に、ノード制御部１６は、記憶部１３からテストプログラムを読み出して、テストの実行の要求とテストプログラムのデータを第３のノード３３に送る（ステップ１０８）。第３のノード３３は、テストの実行の要求を受け取ると、省電力モードにおいても継続して動作しているＣＰＵのコアとメモリでテストプログラムを実行する（ステップ１０９）。テストプログラムを実行すると、第３のノード３３は、テストの実行結果をノード制御部１６に通知する（ステップ１１０）。
【００４９】
ノード制御部１６は、テストの実行結果を受け取ると、実行結果の情報を、第３のノード３３のノードの識別子と、省電力モードで動作を継続しているＣＰＵのコアの情報と、テストの日時と、テスト結果を関連づけて診断履歴保存部１７に保存する。また、ノード制御部１６は、テストの実行結果に基づいて、第３のノード３３の異常の有無の情報をスケジュール制御部１４に送る（ステップ１１１）。
【００５０】
次に、図５のフローの動作を行った際に、オフラインにしてテストプログラムを実行した第３のノード３３を、再び、オンラインに移行させる際の動作について説明する。図６は、図５においてオフラインにしてテストプログラムを実行した第３のノード３３をオンラインに移行させる際の動作フローを示すシーケンス図である。
【００５１】
スケジュール制御部１４は、負荷の増加等によってオンラインへ移行するノードが生じたときにオンラインに切り替えるノードを選択する（ステップ１１２）。ここでは、スケジュール制御部１４は、第３のノード３３をオンラインに切り替えるノードとして選択したとする。
【００５２】
スケジュール制御部１４は、第３のノード３３をオンラインへ移行するときに、ノード制御部１６に第３のノード３３をオンラインに移行する要求を送る（ステップ１１３）。第３のノード３３をオンラインに移行する要求を受け取ると、ノード制御部１６は、第３のノード３３の省電力モードを解除し、通常モードに移行させる（ステップ１１４）。
【００５３】
第３のノード３３は、省電力モードを解除の通知を受けると、ＣＰＵの全てのＣＰＵのコアが動作可能な状態である通常モードに移行する（ステップ１１５）。
【００５４】
第３のノード３３の省電力モードを解除すると、ノード制御部１６は、第３のノード３３をオンラインに切り替える（ステップ１１６）。第３のノード３３をオンラインに切り替えると、ノード制御部１６は、第３のノード３３のオンラインへの切り替えが完了したことを示す通知をスケジュール制御部１４に送る（ステップ１１７）。
【００５５】
スケジュール制御部１４は、第３のノード３３のオンラインへの切り替えが完了したことを示す通知を受け取ると、オンラインに移行した第３のノード３３へのジョブの割り当てを開始する（ステップ１１８）。
【００５６】
次に、本実施形態の情報システムの他の動作の例として、省電力モードのノードのテストを実行する際の例について説明する。図７、図８および図９は、第１のノード３１、第２のノード３２および第３のノード３３にジョブを割り当てて実行している際に、第１のノード３１を省電力モードに移行してテストを実行する際の動作フローを示したシーケンス図である。
【００５７】
ノードのテストを開始すると、制御サーバ１０のスケジューラ部１１のスケジュール制御部１４は、テストを行うノードを選択する（ステップ１２１）。ここでは。スケジュール制御部１４は、第１のノード３１をテストと行うノードとして選択したとして説明する。
【００５８】
第１のノード３１をテストの対象として選択すると、スケジュール制御部１４は、第１のノード３１をシステムから切り離すため、診断部１２のノード制御部１６に第１のノード３１をオフラインに切り替える指示を送る（ステップ１２２）。また、スケジュール制御部１４は、オフラインにするノード、すなわち、第１のノード３１の識別子と、オフラインに移行した日時の情報を履歴保存部１５に保存する。
【００５９】
ノード制御部１６は、第１のノード３１をオフラインにする指示を受け取ると、第１のノード３１をオフラインに切り替える（ステップ１２３）。第１のノード３１をオフラインに移行させると、ノード制御部１６は、第１のノード３１がオフラインへの切り替えが完了したことを示す通知をスケジュール制御部１４に送る（ステップ１２４）。
【００６０】
スケジュール制御部１４にオフラインに移行したことを示す通知を送ると、ノード制御部１６は、第１のノード３１を省電力モードに移行させる。省電力モードに移行させる際に、ノード制御部１６は、ＣＰＵのコアの省電力モードでの動作履歴に偏りがないようにコアを選択する（ステップ１２５）。省電力モードにおいて継続して動作させるＣＰＵのコアを選択すると、ノード制御部１６は、第１のノード３１を省電力モードに移行する（ステップ１２６）。また、ノード制御部１６は、省電力モードに移行する第１のノード３１の識別子と、動作を継続させるコアの識別子の情報を診断履歴保存部１７に保存する。
【００６１】
省電力モードへの移行の指示を受け取ると、第１のノード３１は、ノード制御部１６によって選択されたＣＰＵのコアを動作状態とした省電力モードに移行する。第１のノード３１は、ノード制御部１６によって選択されたＣＰＵのコア１つとメモリで動作する（ステップ１２７）。
【００６２】
スケジュール制御部１４は、第１のノード３１がオフラインに移行したことを示す通知をノード制御部１６から受け取ると、次に発生したジョブを第１のノード３１以外のノードに割り当てる。図７および図８では、スケジュール制御部１４は、ステップ１２８およびステップ１２９において、第２のノード３２および第３のノード３３にジョブを投入している。また、第２のノード３２および第３のノード３３は、それぞれ導入されたジョブをステップ１２９およびステップ１３１で実行し、ジョブの実行結果をステップ１３６およびステップ１３７においてスケジュール制御部１４に送っている。ステップ１２８およびステップ１２９におけるジョブの投入と、ステップ１２９およびステップ１３１におけるジョブの実行は、ジョブが発生するごとに繰り返し行われる。
【００６３】
ノード制御部１６は、第１のノード３１を省電力モードに移行させると、第１のノード３１で異常の有無を確認するためのテストプログラムを実行させる。ノード制御部１６は、記憶部１３からテストプログラムのデータを読み出し、テストプログラムの実行の要求と、データを第１のノード３１に送る（ステップ１３２）。
【００６４】
テストプログラムの実行の要求と、データを受け取ると、第１のノード３１は、テストプログラムを実行する（ステップ１３３）。第１のノード３１は、テストプログラを実行すると実行結果をノード制御部１６に送る（ステップ１３４）。
【００６５】
テストプログラムの実行結果の情報を受け取ると、ノード制御部１６は、実行結果の情報を、テストを行ったノードの異常の有無の情報の通知としてスケジュール制御部１４に送る（ステップ１３５）。
【００６６】
第１のノード３１が正常であることを示す情報を受け取ると、スケジュール制御部１４は、オフラインのノードをオンラインに移行する必要があるタイミングでノード制御部１６に第１のノード３１をオンラインに切り替える指示を送る（ステップ１３８）。ノード制御部１６は、第１のノード３１をオンラインにする指示を受け取ると、第１のノード３１の省電力モードを解除する（ステップ１３９）。
【００６７】
省電力モードの解除の指示を受け取ると、第１のノード３１は、ＣＰＵの全てのコアを動作状態として通常モードに移行する（ステップ１４０）。
【００６８】
第１のノード３１の省電力モードを解除すると、ノード制御部１６は、第１のノード３１をオンラインに切り替える（ステップ１４１）。第１のノード３１をオンラインに切り替えると、ノード制御部１６は、第１のノード３１のオンラインへの移行が完了したことを示す通知をスケジュール制御部１４に送る（ステップ１４２）。第１のノード３１がオンラインに移行したことを示す通知を受け取ると、スケジューラ部１１は、それまでオンラインだった第２のノード３２および第３のノード３３に加えて、第１のノード３１にジョブを割り当てて、ジョブの実行を行う。
【００６９】
図９では、スケジュール制御部１４は、ステップ１４３、ステップ１４５およびステップ１４７において、第１のノード３１、第２のノード３２および第３のノード３３にそれぞれジョブを投入している。また、第１のノード３１、第２のノード３２および第３のノード３３は、ステップ１４４、ステップ１４６およびステップ１４８において投入されたジョブを実行している。
【００７０】
次に、本実施形態の情報システムの他の動作の例として、テストを行った第１のノード３１において異常が検知されて、待機系としてオフライン状態の第３のノード３３をオンラインに移行する場合の例について説明する。図１０、図１１および図１２は、テストを実行した第１のノード３１において異常が検知されて、オフラインの第３のノード３３をオンラインに移行する際の動作フローを示したシーケンス図である。
【００７１】
ノードのテストを開始すると、制御サーバ１０のスケジューラ部１１のスケジュール制御部１４は、テストを行うノードを選択する（ステップ１５１）。ここでは、スケジュール制御部１４は、第１のノード３１をテストと行うノードとして選択したとして説明する。
【００７２】
スケジュール制御部１４は、第１のノード３１をシステムから切り離すため、ノード制御部１６に第１のノード３１をオフラインに切り替える指示を送る（ステップ１５２）。また、スケジュール制御部１４は、オフラインにするノード、すなわち第１のノード３１の識別子と、オフラインに移行した日時の情報を履歴保存部１５に保存する。
【００７３】
ノード制御部１６は、第１のノード３１をオフラインに切り替える指示を受け取ると、第１のノード３１をオフラインに切り替える（ステップ１５３）。第１のノード３１をオフラインに切り替えると、ノード制御部１６は、第１のノード３１のオフラインへの切り替えが完了したことを示す通知をスケジュール制御部１４に送る（ステップ１５４）。
【００７４】
スケジュール制御部１４にオフラインへの切り替えが完了したことを示す通知を送ると、ノード制御部１６は、第１のノード３１を省電力モードに移行させる。省電力モードに移行させる際に、ノード制御部１６は、ＣＰＵのコアの省電力モードでの動作履歴に偏りがないように、省電力モードにおいて動作させるコアを選択する（ステップ１５５）。また、ノード制御部１６は、省電力モードに移行する第１のノード３１の識別子と、省電力モードにおいて動作させるコアの識別子の情報を診断履歴保存部１７に保存する。
【００７５】
スケジュール制御部１４は、第１のノード３１のオフラインへの切り替えが完了したことを示す通知をノード制御部１６から受け取ると、発生したジョブをオンラインの第２のノード３２に割り当てる。図１０および図１１では、ステップ１５８においてスケジュール制御部１４によって第２のノード３２にジョブが投入され、第２のノード３２は、ステップ１５９においてジョブを実行している。また、ステップ１６４において、第２のノード３２は、ジョブの実行結果をスケジュール制御部１４に送っている。ステップ１５８におけるジョブの投入およびステップ１５９におけるジョブの実行等は、ジョブが発生数ごとに繰り返し行われる。
ステップ１５６において第１のノード３１を省電力モードに移行させると、ノード制御部１６は、第１のノード３１に異常の有無を確認するためのテストプログラムを実行させる。ノード制御部１６は、記憶部１３からテストプログラムのデータを読み出し、テストプログラムの実行の要求と、データを第１のノード３１に送る（ステップ１６０）。
【００７６】
テストプログラムの実行の要求と、データを受け取ると、第１のノード３１は、継続して動作しているＣＰＵのコアとメモリによってテストプログラムを実行する（ステップ１６１）。テストプログラムを実行すると、第１のノード３１は、テストプログラムの実行結果をノード制御部１６に送る（ステップ１６２）。
【００７７】
テストプログラムの実行結果の情報を受け取ると、ノード制御部１６は、実行結果の情報を基に第１のノード３１の異常の有無の情報をスケジュール制御部１４に通知する（ステップ１６３）。
【００７８】
例えば、第１のノード３１に異常が生じているとすると、ノード制御部１６は、テストプログラムの実行結果を基に異常の発生を検知して、第１のノード３１に異常が発生していることを示す情報をスケジュール制御部１４に送る。
【００７９】
第１のノード３１に異常が発生していることを示す情報を受け取ると、スケジュール制御部１４は、ノード制御部１６に第３のノード３３をオンラインに切り替える指示を送る（ステップ１６５）。ノード制御部１６は、第３のノード３３をオンラインに切り替える指示を受け取ると、第３のノード３３の省電力モードを解除する（ステップ１６６）。第３のノード３３は、省電力モードの解除の指示を受け取ると、ＣＰＵの全てのコアを動作させる通常モードに移行する。
【００８０】
第３のノード３３の省電力モードを解除すると、ノード制御部１６は、第３のノード３３をオンラインに切り替える（ステップ１６８）。第３のノード３３をオンラインに切り替えると、ノード制御部１６は、第３のノード３３のオンラインへの切り替えが完了したことを示す通知をスケジュール制御部１４に送る（ステップ１６９）。
【００８１】
第３のノード３３のオンラインへの切り替えが完了したことを示す通知を受け取ると、スケジュール制御部１４は、第２のノード３２に加えて、オンラインに移行した第３のノード３３にジョブを割り当てて、ジョブの実行を行う。図１２では、スケジュール制御部１４は、ステップ１７０およびステップ１７２において、第３のノード３３および第２のノード３２にそれぞれジョブを投入している。また、第２のノード３２および第３のノード３３は、ステップ１７１およびステップ１７３において投入されたジョブを実行している。このとき、異常が検知されている第１のノード３１はオフラインを継続し、作業者等によって故障の修理や置き換えが行われる。
【００８２】
本実施形態の情報システムでは、オフラインのノード２０は、省電力モードで動作する際に複数ＣＰＵのコアのうち１つのコアとメモリのみ動作させ、他のコアはクロック周波数を低下させるか停止させることによって消費電力を抑制している。制御サーバ１０のノード制御部１６は、省電力モードで継続して動作している１つのコアとメモリを使用してテストプログラムを実行し故障の有無を確認することで、通常モードに復帰させた後に、ジョブを再開させた際のジョブアボートを未然に防ぐことができる。また、故障を検出した場合には、早期に保守作業の開始を行うことができる。
【００８３】
また、本実施形態の情報システムでは、スケジュール制御部１４は、ノードのオンラインとオフラインを管理しているため、オフラインにしたノード２０の履歴を残している。また、スケジュール制御部１４は、オフラインにするノード２０に偏りがなく全ノード２０をオフラインするように制御をする。また、ノード制御部１６は、ノード２０の省電力モードを管理している。省電力モードでは使用するコアは１つまたはテストに必要な最小限のコアのみであるため、ノード制御部１６は、ノード２０毎に使用したコア番号等の履歴を残し使用コアに偏りがなく全コアを使用するように制御する。このように、本実施形態の情報システムでは、システムの全ノード２０およびＣＰＵの全コアに対して巡回的に省電力モードを適用した上でテストプログラムを実行し故障の有無を確認する。その結果、本実施形態の情報システムは、クラスタシステムにおいて消費電力を抑制しつつ信頼性を維持することができる。
【００８４】
第２の実施形態では、各ノード２０は、複数のコアを有するＣＰＵを１つ備えている例について示したが、各ノードは、複数のＣＰＵを備えていてもよい。そのような構成の場合には、省電力モードにおける動作の継続の有無の管理をＣＰＵ単位で行ってもよい。
【００８５】
また、第２の実施形態の制御サーバ１０のスケジュール制御部１４およびノード制御部１６の動作は、情報処理装置においてコンピュータプログラムを実行することで行われてもよい。そのような動作を行うコンピュータプログラムは、ハードディスクドライブ、半導体記憶装置、光学ディスクおよびその他の記録媒体に記録して頒布することもできる。
【符号の説明】
【００８６】
１    コア選択手段
２    ノード制御手段
１０    制御サーバ
１１    スケジューラ部
１２    診断部
１３    記憶部
１４    スケジュール制御部
１５    履歴保存部
１６    ノード制御部
１７    診断履歴保存部
２０    ノード
【図１】
2018132876.tif 000003
【図２】
2018132876.tif 000004
【図３】
2018132876.tif 000005
【図４】
2018132876.tif 000006
【図５】
2018132876.tif 000007
【図６】
2018132876.tif 000008
【図７】
2018132876.tif 000009
【図８】
2018132876.tif 000010
【図９】
2018132876.tif 000011
【図１０】
2018132876.tif 000012
【図１１】
2018132876.tif 000013
【図１２】
2018132876.tif 000014