(57)【要約】  ジョブを処理する複数のジョブ処理装置と接続され、複数のジョブ処理装置のうち、いずれかのジョブ処理装置にジョブを割り当てるジョブ割当装置の制御プログラムにおいて、ジョブ割当装置に、ジョブを受け付ける受付ステップと、受け付けたジョブを、複数のジョブ処理装置のうち、既に割り当てられたジョブに対応するジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当ステップと、複数のジョブ処理装置のそれぞれと、割当ステップにより複数のジョブ処理装置のそれぞれに割り当てられたジョブに対応するプロセス数を対応付けて管理する管理ステップと、割当ステップによりジョブが割り当てられたジョブ処理装置について、管理ステップによりジョブに対応付けられたプロセス数に、割当ステップにより割り当てられたジョブに対応するプロセス数を加算する第１加算ステップと、割当ステップにより割り当てられたジョブに対応するプロセス数を、ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する第１通知ステップとを実行させることを特徴とする。
2009113172.tif 000002
【特許請求の範囲】
【請求項１】
ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置のうち、いずれかのジョブ処理装置にジョブを割り当てるジョブ割当装置の制御プログラムにおいて、
前記ジョブ割当装置に、
ジョブを受け付ける受付ステップと、
前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当ステップと、
前記複数のジョブ処理装置のそれぞれと、前記割当ステップにより前記複数のジョブ処理装置のそれぞれに割り当てられたジョブに対応するプロセス数を対応付けて管理する管理ステップと、
前記割当ステップによりジョブが割り当てられたジョブ処理装置について、前記管理ステップにより前記ジョブに対応付けられたプロセス数に、前記割当ステップにより割り当てられたジョブに対応するプロセス数を加算する第１加算ステップと、
前記割当ステップにより前記割り当てられたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する第１通知ステップを実行させることを特徴とする制御プログラム。
【請求項２】
前記制御プログラムはさらに、
前記管理ステップは、前記他のジョブ割当装置によりジョブが割り当てられたジョブ処理装置と、前記他のジョブ割当装置により前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数を対応付けて管理するとともに、
前記他のジョブ割当装置が前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数の通知を、前記他のジョブ割当装置から受信する第１受信ステップと、
前記管理ステップにより管理される、前記他のジョブ割当装置が既に前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を、前記受信した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて更新する第１更新ステップを有することを特徴とする請求項１記載の制御プログラム。
【請求項３】
前記制御プログラムはさらに、
前記割り当てられたジョブを前記ジョブ処理装置が終了したことを表す終了通知を前記ジョブ処理装置から通知された場合には、前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数から、前記終了したジョブに対応するプロセス数を減算する減算ステップと、
前記ジョブ処理装置において終了したジョブに対応するプロセス数を前記他のジョブ割当装置に通知する第２通知ステップを有することを特徴とする請求項１記載の制御プログラム。
【請求項４】
前記制御プログラムにおいて、
前記他のジョブ割当装置から通知された、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブのうち終了したジョブに対応するプロセス数を受信する第２受信ステップと、
前記他のジョブ割当装置から通知された前記終了したジョブに対応するプロセス数を、前記管理ステップにより管理される前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数から減算する第２減算ステップを有することを特徴とする制御プログラム。
【請求項５】
前記制御プログラムにおいて、
前記他のジョブ割当装置の動作停止を示す情報である動作停止情報を受信する動作停止情報受信ステップと、
前記動作停止情報が受信された場合に、前記管理ステップにより管理される前記ジョブ装置に割り当てられたジョブに対応するプロセス数から、前記動作が停止した他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を減算する第３減算ステップを有することを特徴とする請求項２記載の制御プログラム。
【請求項６】
前記制御プログラムはさらに、
該ジョブ割当装置が起動した場合に、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を、前記他のジョブ割当装置から取得する取得ステップと、
前記取得した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて、前記管理ステップにより管理される前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を更新する第２更新ステップを有することを特徴とする請求項２記載の制御プログラム。
【請求項７】
ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置にジョブを割り当てるジョブ割当装置において、
ジョブを受け付ける受付部と、
前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当部と、
前記複数のジョブ処理装置のそれぞれと、前記割当部が前記複数のジョブ処理装置のそれぞれに割り当てたジョブに対応するプロセス数を対応付けて管理する管理部と、
前記割当部においてジョブが割り当てられたジョブ処理装置について、前記管理部が管理する前記ジョブに対応付けられたプロセス数に、前記割当部が割り当てたジョブに対応するプロセス数を加算する加算部と、
前記割当部が前記割り当てたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する通知部を有することを特徴とするジョブ割当装置。
【請求項８】
前記ジョブ割当装置はさらに、
前記他のジョブ割当装置によりジョブが割り当てられたジョブ処理装置と、前記他のジョブ割当装置により前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数を対応付けて管理し、
前記他のジョブ割当装置が前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数の通知を、前記他のジョブ割当装置から受信する受信部と、
前記管理部において管理される、前記他のジョブ割当装置が既に前記ジョブ処理装置に割り当てたたジョブに対応するプロセス数を、前記受信部が受信した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて更新する更新部をさらに有することを特徴とする請求項７記載のジョブ割当装置。
【請求項９】
前記ジョブ割当装置はさらに、
前記割り当てられたジョブを前記ジョブ処理装置が終了したことを表す終了通知を前記ジョブ処理装置から通知された場合には、前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数から、前記終了したジョブに対応するプロセス数を減算する減算部を有し、
前記通知部は、前記ジョブ処理装置において終了したジョブに対応するプロセス数を前記他のジョブ割当装置に通知することを特徴とする請求項７記載のジョブ割当装置。
【請求項１０】
前記ジョブ割当装置において、
前記受信部は、前記他のジョブ割当装置から通知された、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブのうち終了したジョブに対応するプロセス数を受信し、
前記減算部は、前記他のジョブ割当装置から通知された前記終了したジョブに対応するプロセス数を、前記管理部が管理する前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数から減算することを特徴とする請求項７記載のジョブ割当装置。
【請求項１１】
前記ジョブ割当装置において、
前記受信部は、前記他のジョブ割当装置の動作停止を示す情報である動作停止情報を受信し、
前記減算部は、前記受信部が前記動作停止情報を受信した場合に、前記管理部が管理する前記ジョブ装置に割り当てられたジョブに対応するプロセス数から、前記動作が停止した他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を減算することを特徴とする請求項８記載のジョブ割当装置。
【請求項１２】
前記ジョブ割当装置はさらに、
該ジョブ割当装置が起動した場合に、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を、前記他のジョブ割当装置から取得する取得部を有し、
前記更新部は、前記取得した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて、前記管理部が管理する前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を更新することを特徴とする請求項８記載のジョブ割当装置。
【請求項１３】
ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置のうち、いずれかのジョブ処理装置にジョブを割り当てるジョブ割当装置の制御方法において、
前記ジョブ割当装置に、
ジョブを受け付ける受付ステップと、
前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当ステップと、
前記複数のジョブ処理装置のそれぞれと、前記割当ステップにより前記複数のジョブ処理装置のそれぞれに割り当てられたジョブに対応するプロセス数を対応付けて管理する管理ステップと、
前記割当ステップによりジョブが割り当てられたジョブ処理装置について、前記管理ステップにより前記ジョブに対応付けられたプロセス数に、前記割当ステップにより割り当てられたジョブに対応するプロセス数を加算する第１加算ステップと、
前記割当ステップにより前記割り当てられたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する第１通知ステップを実行させることを特徴とする制御方法。
【請求項１４】
前記制御方法はさらに、
前記管理ステップは、前記他のジョブ割当装置によりジョブが割り当てられたジョブ処理装置と、前記他のジョブ割当装置により前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数を対応付けて管理するとともに、
前記他のジョブ割当装置が前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数の通知を、前記他のジョブ割当装置から受信する第１受信ステップと、
前記管理ステップにより管理される、前記他のジョブ割当装置が既に前記ジョブ処理装置に割り当てたたジョブに対応するプロセス数を、前記受信した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて更新する第１更新ステップを有することを特徴とする請求項１３記載の制御方法。
【請求項１５】
前記制御方法はさらに、
前記割り当てられたジョブを前記ジョブ処理装置が終了したことを表す終了通知を前記ジョブ処理装置から通知された場合には、前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数から、前記終了したジョブに対応するプロセス数を減算する減算ステップと、
前記ジョブ処理装置において終了したジョブに対応するプロセス数を前記他のジョブ割当装置に通知する第２通知ステップを有することを特徴とする請求項１３記載の制御方法。
【請求項１６】
前記制御方法において、
前記他のジョブ割当装置から通知された、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブのうち終了したジョブに対応するプロセス数を受信する第２受信ステップと、
前記他のジョブ割当装置から通知された前記終了したジョブに対応するプロセス数を、前記管理ステップにより管理される前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数から減算する第２減算ステップを有することを特徴とする制御方法。
【請求項１７】
前記制御方法において、
前記他のジョブ割当装置の動作停止を示す情報である動作停止情報を受信する動作停止情報受信ステップと、
前記動作停止情報が受信された場合に、前記管理ステップにより管理される前記ジョブ装置に割り当てられたジョブに対応するプロセス数から、前記動作が停止した他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を減算する第３減算ステップを有することを特徴とする請求項１４記載の制御方法。
【請求項１８】
前記制御方法はさらに、
該ジョブ割当装置が起動した場合に、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を、前記他のジョブ割当装置から取得する取得ステップと、
前記取得した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて、前記管理ステップにより管理される前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を更新する第２更新ステップを有することを特徴とする請求項１４記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムにおける計算ノードにジョブを割り当てるジョブ割当装置、ジョブ割当装置の制御プログラム及び制御方法に関するものである。
【背景技術】
【０００２】
従来、多くの利用者がＴＳＳ（Ｔｉｍｅ  Ｓｈａｒｉｎｇ  Ｓｙｓｔｅｍ：時分割システム）のような対話型処理で１つの計算処理（以下、この計算処理をジョブと呼ぶ）を１台または複数台のコンピュータ上で計算させるクラスタシステムが知られている。このようなクラスタシステムにおいて、ジョブを処理する計算ノードでプログラムを実行する処理単位をプロセスと呼ぶ。例えば、クラスタシステムにおいて投入されるジョブは、複数のプロセスからなる並列ジョブと、１プロセスからなる逐次ジョブがある。また、クラスタシステムは、利用者がログインしてジョブを投入するためのコンピュータであるログインノードと、ジョブを処理するコンピュータである計算ノードから構成される。また、近年のネットワーク性能の向上により、クラスタシステムは、計算ノードが数千台という規模の構成になってきている。【０００３】
また、クラスタシステムは、多くの利用者により投入されるジョブを負荷の低い計算ノードに処理させることにより、システム全体の稼働率を向上させている。計算ノードの負荷の指標としては、計算ノードのＣＰＵ使用率、または計算ノードに割り当てられたプロセス数が用いられるが、ＣＰＵ使用率は負荷の高低が一過性である場合がある。例えば、計算ノードに対してジョブが多く投入されているにも関わらず、測定時のＣＰＵ使用率がたまたま低いためにさらにジョブが投入されることがあり得る。そのため、計算ノードに割り当てられたプロセス数を負荷の指標とすることが多い。【０００４】
以下、上述した計算ノードに割り当てられたプロセス数を負荷の指標とするクラスタシステムについて説明する。図９は、従来のクラスタシステムを示す図である。また、図１０は他の従来のクラスタシステムを示す図である。【０００５】
図９に示すように、従来のクラスタシステムは、管理ノード３０、ログインノード４０、計算ノード５０からなる。また、管理ノード３０は、負荷情報ＤＢ３１を備えるものである。負荷情報ＤＢ３１は、計算ノード５０と計算ノード５０に割り当てられたプロセス数を管理するものである。また、従来のクラスタシステムにおいて、従来のログインノード４０は、管理ノード３０に対して負荷の低い計算ノード５０を要求する。これに対して管理ノード３０は、負荷情報ＤＢ３１を参照し、割り当てられたプロセス数が最も少ない計算ノード５０を選択し、選択した計算ノード５０をログインノード４０に対して通知し、通知した計算ノード５０のプロセス数に関して負荷情報ＤＢ３１を更新する。【０００６】
上述のように、従来のクラスタシステムにおける管理ノード３０は、ログインノード４０に負荷が最も少ない計算ノード５０を選択して通知することができる。【０００７】
また、図１０に示す他の従来のクラスタシステムは、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）６０、ログインノード７０、計算ノード５０を備えるものであり、図９に示す従来のシステムとは、管理ノード３０の代わりにＮＡＳ６０を備え、またログインノード４０とは異なる動作を実行するログインノード７０を備える点が異なる。【０００８】
この他の従来のクラスタシステムにおいて、ＮＡＳ６０は、計算ノード５０のプロセス数を管理する負荷情報ＤＢ６１を備えるものであり、ログインノード７０は、負荷情報ＤＢ６１を参照し、割り当てられたプロセス数が最も少ない計算ノード５０を選択し、選択した計算ノード５０に関して更新を行うものである。【０００９】
上述のように、他の従来のクラスタシステムにおけるログインノード７０は、ＮＡＳ６０の負荷情報ＤＢ６１を参照することにより、負荷が最も少ない計算ノード５０を選択することができる。【００１０】
なお、本発明の関連ある従来技術として、複数の計算機をネットワークで結合し、複数の計算機で同じサービスを提供し、負荷分散を行っている分散オンラインシステムにおいて、処理要求を効率的に負荷分散することを可能とし、また、システム運用に柔軟性を持たせることを可能とする分散オンラインシステムの負荷分散方式が知られている（例えば、特許文献１参照）。
【特許文献１】特開平７−３１９８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、図９に示した従来のクラスタシステムは、計算ノード５０、ログインノード４０が多い場合、管理ノード３０や従来のクラスタシステムに係るファイルサーバへの負荷が高くなり、対話型処理のレスポンスが低下し、システム全体の性能を低下させてしまうという問題がある。【００１２】
また、図１０に示した他の従来のクラスタシステムは、負荷分散ＤＢ６１を備えたＮＡＳ６０、または他の従来のクラスタシステムに係る管理ノード、ファイルサーバがダウンした場合、負荷を分散することができず、信頼性を低下させてしまうという問題がある。【００１３】
本発明は上述した問題点を解決するためになされたものであり、システム管理に係る処理負荷を分散することができ、且つ信頼性の高いシステムを実現することができるジョブ割当装置、ジョブ割当装置の制御プログラム及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決するため、制御プログラムは、ジョブを処理するジョブ処理装置と接続され、前記ジョブ処理装置にジョブを割り当てるジョブ割当装置においてコンピュータに実行させることができるプログラムであって、ジョブを受け付けるジョブ受付ステップと、前記ジョブ受付ステップにより受け付けられたジョブを該ジョブ処理装置に割り当てられたジョブの所定の処理単位数が最小であるジョブ処理装置に割り当てるジョブ割り当てステップと、前記ジョブ処理装置と前記ジョブ割り当てステップにより割り当てられたジョブの所定の処理単位数とを対応付けて管理する管理ステップと、前記ジョブ割り当てステップにより割り当てられたジョブの所定の処理単位数を前記ジョブ割り当てステップによりジョブが割り当てられたジョブ処理装置と前記管理ステップにより対応付けられたジョブの所定の処理単位数に加算する第１加算ステップと、前記ジョブ割り当てステップにより割り当てられたジョブの所定の処理単位数を前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する第１通知ステップをコンピュータに実行させる。【００１５】
また、ジョブ割当装置は、ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置にジョブを割り当てるジョブ割当装置により、ジョブを受け付ける受付部と、前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当部と、前記複数のジョブ処理装置のそれぞれと、前記割当部が前記複数のジョブ処理装置のそれぞれに割り当てたジョブに対応するプロセス数を対応付けて管理する管理部と、前記割当部によりジョブが割り当てられたジョブ処理装置について、前記管理部が管理する前記ジョブに対応付けられたプロセス数に、前記割当部が割り当てたジョブに対応するプロセス数を加算する加算部と、前記割当部が割り当てたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する通知部を有することを特徴とする。【００１６】
また、制御方法は、ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置のうち、いずれかのジョブ処理装置にジョブを割り当てるジョブ割当装置の制御方法において、前記ジョブ割当装置に、ジョブを受け付ける受付ステップと、前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当ステップと、前記複数のジョブ処理装置のそれぞれと、前記割当ステップにより前記複数のジョブ処理装置のそれぞれに割り当てられたジョブに対応するプロセス数を対応付けて管理する管理ステップと、前記割当ステップによりジョブが割り当てられたジョブ処理装置について、前記管理ステップにより前記ジョブに対応付けられたプロセス数に、前記割当ステップにより割り当てられたジョブに対応するプロセス数を加算する第１加算ステップと、前記割当ステップにより割り当てられたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する第１通知ステップを実行させることを特徴とする。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態に係るクラスタシステムを示す図である。
【図２】本実施の形態に係るクラスタシステムにおけるログインノードの構成を示す図である。
【図３】プロセステーブルを示す図である。
【図４】本実施の形態に係るクラスタシステムにおける計算ノードの構成を示す図である。
【図５】ジョブ投入処理の動作を示すフローチャートである。
【図６】ジョブ終了処理の動作を示すフローチャートである。
【図７】ダウン検出処理の動作を示すフローチャートである。
【図８】復旧処理の動作を示すフローチャートである。
【図９】従来のクラスタシステムを示す図である。
【図１０】他の従来のクラスタシステムを示す図である。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について図面を参照しつつ説明する。【００１９】
まず、本実施の形態に係るクラスタシステムの構成について説明する。図１は、本実施の形態に係るクラスタシステムを示す図である。また、図２は、本実施の形態に係るクラスタシステムにおけるログインノードの構成を示す図である。また、図３は、プロセステーブルを示す図である。また、図４は、本実施の形態に係るクラスタシステムにおける計算ノードの構成を示す図である。【００２０】
図１に示すように、本実施の形態に係るクラスタシステムは、ログインノード１（ジョブ割当装置、他のジョブ割当装置）、計算ノード２（ジョブ処理装置）により構成されるものである。このクラスタシステムにおいて、ユーザは例えばＤＮＳラウンドロビン機能を使ってログインノード１にログインする。計算ノード２は並列ジョブまたは逐次ジョブを実行するものがあり、ログインノード１はジョブの種類、計算ノード２の負荷に基づいてジョブを投入する計算ノード２を決定する。【００２１】
また、ログインノード１は、図２に示すようにシステム管理機構１０、ジョブ制御機構１１、ＣＰＵ１１７、メモリ１１８、ネットワークインターフェイス１１９を備えるものである。ログインノード１のシステム管理機構１０は、ノード監視部１０１を備えるものである。また、ジョブ制御機構１１は、ジョブ受付部１１１（受付部）、ジョブ投入終了部１１２（減算部）、負荷情報更新部１１３（管理部、更新部、減算部）、ノード割り当て部１１４（割当部、通知部、加算部、更新部、受信部、取得部）、ＲＡＳ（Ｒｅｌｉａｂｉｌｉｔｙ  Ａｖａｉｌａｂｉｌｉｔｙ  Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ：信頼性、可用性及び保守性）部１１５（受信部、減算部）、負荷情報ＤＢ１１６を備えるものである。【００２２】
以下、システム管理機構１０及びジョブ制御機構１１を構成する各部の概要について説明する。なお、各部の詳細については後述するログインノード１の動作により説明する。ノード監視部１０１は、ログインノード１の状態（起動しているか否か）を監視し、ログインノード１の状態の変化を他のログインノード１及び計算ノード２へ通知するものである。また、ジョブ受付部１１１は、ログインノード１のユーザを認証し、認証したユーザが依頼するジョブのプロセス数、ノード数、プログラム名を受け取るものである。また、ジョブ投入終了部１１２は、割り当てられた計算ノードに対してジョブのプロセスの生成及び実行を依頼するものである。また、負荷情報更新部１１３は、後述する負荷情報ＤＢ１１６に対して参照、更新するものである。また、ノード割り当て部１１４は、負荷情報ＤＢ１１６における計算ノード２のプロセス数が最も少ない計算ノード２を選択するものである。また、ＲＡＳ部１１５は、他のログインノード１のシステム管理機構１０により送信される他のログインノード１の情報に基づいて、負荷情報ＤＢ１１６を更新するものである。また、負荷情報ＤＢは、図３に示すプロセステーブルを管理するものである。また、メモリ１１６は、上述した各部をプログラムとして格納するＲＯＭまたはＲＡＭもしくはフラッシュメモリ等の記憶装置である。また、ＣＰＵ１１７は、プログラムとしてメモリ１１６に格納された各部を実行する演算装置である。また、ネットワークインターフェイス１１９は、ログインノード１がネットワークに接続するためのインターフェイスである。また、システム管理機構１０はハードウェアであっても良い。また、ログインノード１における通知及び送受信はネットワークインターフェイス１１９を介してなされるものとする。【００２３】
ここでプロセステーブルについて説明する。プロセステーブルは、図３に示すようにクラスタシステムを構成するログインノード１と、クラスタシステムを構成する計算ノード２とをそれぞれ対応付けて管理するものである。なお、図３において計算ノード２は昇順で並べられているが、ログインノード１においてプロセス数が最小である計算ノード２を選択するための処理を軽減させるために、割り当てられたプロセス数が小さい順に計算ノード２をソートしても良い。【００２４】
また、計算ノード２は、図４に示すように、システム管理機構２０、ジョブ制御機構２１を備えるものである。システム管理機構２０は、ノード監視部２０１を備えるものである。また、ジョブ制御機構２１は、ジョブ実行部２１１、ＲＡＳ部２１２を備えるものである。【００２５】
以下、システム管理機構１０及びジョブ制御機構１１を構成する各部の概要について説明する。ノード監視部２０１は、ログインノード１の状態を監視し、ログインノード１の状態の変化を他のログインノード１及び計算ノード２へ通知するものである。また、ジョブ実行部２１１は、ログインノード１からプロセス生成依頼を受信し、プロセスを生成し、プロセスを実行するものである。また、ＲＡＳ部２１２は、他の計算ノードの状態の変化に関する情報を受信するものである。また、メモリ２１４は、上述した各部をプログラムとして格納するＲＯＭまたはＲＡＭもしくはフラッシュメモリ等の記憶装置である。また、ＣＰＵ２１３は、プログラムとしてメモリ２１４に格納された各部を実行する演算装置である。また、ネットワークインターフェイス２１５は、計算ノード２がネットワークに接続するためのインターフェイスである。また、計算ノード２における監視、通知及び送受信はネットワークインターフェイス２１５を介してなされるものとする。【００２６】
次に、本実施の形態に係るクラスタシステムの動作について説明する。まず、ジョブ投入処理について説明する。図５は、ジョブ投入処理の動作を示すフローチャートである。【００２７】
まず、ログインノード１のジョブ受付部１１１が、対話型処理によりユーザが投入したジョブを受け付けると（Ｓ１０１、ジョブ受け付けステップ）、負荷情報更新部１１３は、負荷情報ＤＢのプロセステーブルを参照し、ノード割り当て部１１４は、参照されたプロセステーブルに基づいてプロセス数が少ない計算ノード２を選択し（Ｓ１０２、ジョブ割り当てステップ）、選択した計算ノード２に対して投入されたジョブを割り当て（Ｓ１０３、ジョブ割り当てステップ）、ノード割り当て部１１４は、投入されたジョブに基づいて計算ノードに何個プロセスを割り当てるかを決定し、負荷情報ＤＢのプロセステーブルにおいて、選択した計算ノード２に割り当てたプロセス数を加算する（Ｓ１０４、第１加算ステップ）。【００２８】
次に、ノード割り当て部１１４は、割り当てた計算ノード２とこの計算ノード２に割り当てたプロセス数を含む割り当てノード情報を他のログインノード１に通知する（Ｓ１０５、第１通知ステップ）。【００２９】
ログインノード１から割り当てノード情報を通知された他のログインノード１のノード割り当て部１１４は割り当てノード情報を受信し（Ｓ１０６、第１受信ステップ）、受信した割り当てノード情報に基づいて計算ノード２に割り当てられたプロセス数を更新する（Ｓ１０７、第１更新ステップ）。【００３０】
上述したように、ログインノード１は、ジョブを投入した計算ノード２とこの計算ノード２に割り当てたプロセス数を他のログインノード１に通知することにより、計算ノード２に割り当てられたプロセス数を共有することができる。なお、図５において、計算ノード２に割り当てたジョブのプロセス数をプロセステーブルに加算したが、計算ノード２に投入したジョブのプロセス数をプロセステーブルに加算しても構わない。【００３１】
次に、ジョブ終了処理について説明する。このジョブ終了処理は、上述したジョブ投入処理により計算ノードに投入されたジョブが終了した場合にログインノードにおいてなされる処理である。図６は、ジョブ終了処理の動作を示すフローチャートである。【００３２】
まず、ログインノード１のジョブ投入終了部１１２が計算ノード２のジョブ実行部２１１から投入されたジョブの終了通知を受信すると（Ｓ２０１、第２減算ステップ）、負荷情報更新部１１３が負荷情報ＤＢ１１６を更新する（Ｓ２０２、第２減算ステップ）。具体的には終了したプロセスの数を割り当てた計算ノード２のプロセス数から減算する。【００３３】
次に、ログインノード１のノード割り当て部１１４は、他のログインノード１に対して、投入したジョブを終えた計算ノード２と、この計算ノード２に割り当てたプロセス数とを、割り当て解放ノード情報として通知する（Ｓ２０３、第２通知ステップ）。【００３４】
ログインノード１から割り当て解放ノード情報を通知された他のログインノード１のノード割り当て部１１４が割り当て解放ノード情報を受信し（Ｓ２０４、第２受信ステップ）、負荷情報更新部１１３がこの割り当て解放ノード情報に基づいて負荷情報ＤＢ１１６を更新する（Ｓ２０５、第３減算ステップ）。具体的には受信した割り当て解放ノード情報において示される計算ノード２のプロセス数をプロセステーブルから減算する。【００３５】
上述したように、ログインノード１は、計算ノード２において投入したジョブが終了すると、ジョブを終了した計算ノード２と、この計算ノード２に割り当てたプロセス数を他のログインノード１に通知することにより、計算ノード２において終了したプロセス数を共有することができる。【００３６】
次に、ダウン検出処理について説明する。このダウン検出処理は、他のログインノードの状態変化（起動しているか否か）において、ダウンしているログインノードを検出する処理である。図７は、ダウン検出処理の動作を示すフローチャートである。なお、本実施の形態において、計算ノードは、プロセスを割り当てたログインノードがダウンした場合、ダウンしたログインノードに割り当てられたプロセスを強制終了させるものとする。これは、ログインノードがダウンするとセッションが切れ、計算ノードでプロセスの実行を継続する意味がなくなるためである。【００３７】
まず、ログインノード１のノード監視部１０１は、他のログインノード１のノード監視部１０１より、他のログインノード１がダウンしたことを示すダウン通知（動作停止情報）を受信したかどうかを判断し、ダウンを検出する（Ｓ３０1、動作停止情報受信ステップ）。【００３８】
ダウン通知を受信した場合（Ｓ３０１，ＹＥＳ）、ログインノード１の負荷情報更新部１１３は、負荷情報ＤＢを更新する（Ｓ３０２、第１減算ステップ）。具体的には、ダウンを通知した他のログインノード１の計算ノード２に割り当てたプロセス数をプロセステーブルにおいてゼロクリアすることで、ダウンしたログインノード１により計算ノード２に割り当てられたプロセス数を減算する。【００３９】
一方、ダウン通知を受信しなかった場合（Ｓ３０１，ＮＯ）、ログインノード１のノード監視部１０１は、再び他のログインノード１のノード監視部１０１より、ダウン通知を受信したかどうかを判断する（Ｓ３０１）。【００４０】
上述したように、ログインノード１は、ダウンを検出した他のログインノード１が計算ノード２に割り当てたプロセス数をプロセステーブルにおいてゼロクリアすることによって、計算ノード２に割り当てられているプロセス数を把握することができる。【００４１】
次に、復旧処理について説明する。この復旧処理は、ダウンしたログインノードが起動した際に実行される処理である。図８は、復旧処理の動作を示すフローチャートである。【００４２】
まず、ログインノード１のノード監視部１０１が他のログインノード１のノード監視部１０１に対してログインノード１の起動を通知するとともに、ＲＡＳ部１１５が他のログインノード１に対して割り当て情報を要求する（Ｓ４０１、取得ステップ）。この割り当て情報は、他のログインノード１がクラスタシステムにおける計算ノード１に対して割り当てたプロセス数を示す情報である。【００４３】
次に、他のログインノード１のＲＡＳ部１１５がログインノード１の起動の通知を受信するとともに、ノード割り当て部１１４が割り当て情報の要求を受信し（Ｓ４０２）、割り当て情報を要求したログインノード１に対して、割り当て情報を送信する（Ｓ４０３）。【００４４】
他のログインノード１から割り当て情報が送信されると、ログインノード１のノード割り当て部１１４が他のログインノード１から送信された割り当て情報を受信し（Ｓ４０４、取得ステップ）、受信した割り当て情報に基づいて負荷情報更新部１１３が負荷情報ＤＢのプロセステーブルを更新する（Ｓ４０５、第２更新ステップ）。【００４５】
上述したように、ログインノード１は、復旧時に他のログインノード１に割り当て情報を要求し、受信した割り当て情報に基づいてプロセステーブルを更新することにより、計算ノード２に割り当てられたプロセス数を把握することができる。【００４６】
以上説明した構成及び動作により、本実施の形態に係るクラスタシステムは、ログインノード１が負荷情報ＤＢを備えることにより計算ノード２におけるプロセス数を管理するためのノード、負荷情報を参照するためのデータベースを必要としない。また、本実施の形態に係るクラスタシステムは、プロセス数の管理と計算ノードに対するプロセスの割り当てをログインノード１が行うことによって、対話型処理のレスポンスを劣化させることなく、信頼性の高いシステムを実現することができる。【００４７】
本発明は、その要旨または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。【００４８】
更に、判定装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、制御プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、判定装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【産業上の利用可能性】
【００４９】
本発明によれば、システム管理に係る処理負荷を分散することができ、且つ信頼性の高いシステムを実現することができる。
【図１】
2009113172.tif 000003
【図２】
2009113172.tif 000004
【図３】
2009113172.tif 000005
【図４】
2009113172.tif 000006
【図５】
2009113172.tif 000007
【図６】
2009113172.tif 000008
【図７】
2009113172.tif 000009
【図８】
2009113172.tif 000010
【図９】
2009113172.tif 000011
【図１０】
2009113172.tif 000012
【手続補正書】
【提出日】平成22年6月15日(2010.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置のうち、いずれかのジョブ処理装置にジョブを割り当てるジョブ割当装置の制御プログラムにおいて、
前記ジョブ割当装置に、
ジョブを受け付ける受付ステップと、
前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当ステップと、
前記複数のジョブ処理装置のそれぞれと、前記割当ステップにより前記複数のジョブ処理装置のそれぞれに割り当てられたジョブに対応するプロセス数を対応付けて管理する管理ステップと、
前記割当ステップによりジョブが割り当てられたジョブ処理装置について、前記管理ステップにより前記ジョブに対応付けられたプロセス数に、前記割当ステップにより割り当てられたジョブに対応するプロセス数を加算する第１加算ステップと、
前記割当ステップにより前記割り当てられたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する第１通知ステップを実行させることを特徴とする制御プログラム。
【請求項２】
前記制御プログラムはさらに、
前記管理ステップは、前記他のジョブ割当装置によりジョブが割り当てられたジョブ処理装置と、前記他のジョブ割当装置により前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数を対応付けて管理するとともに、
前記他のジョブ割当装置が前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数の通知を、前記他のジョブ割当装置から受信する第１受信ステップと、
前記管理ステップにより管理される、前記他のジョブ割当装置が既に前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を、前記受信した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて更新する第１更新ステップを有することを特徴とする請求項１記載の制御プログラム。
【請求項３】
前記制御プログラムにおいて、
前記他のジョブ割当装置の動作停止を示す情報である動作停止情報を受信する動作停止情報受信ステップと、
前記動作停止情報が受信された場合に、前記管理ステップにより管理される前記ジョブ装置に割り当てられたジョブに対応するプロセス数から、前記動作が停止した他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を減算する第３減算ステップを有することを特徴とする請求項２記載の制御プログラム。
【請求項４】
前記制御プログラムはさらに、
該ジョブ割当装置が起動した場合に、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を、前記他のジョブ割当装置から取得する取得ステップと、
前記取得した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて、前記管理ステップにより管理される前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を更新する第２更新ステップを有することを特徴とする請求項２記載の制御プログラム。
【請求項５】
ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置にジョブを割り当てるジョブ割当装置において、
ジョブを受け付ける受付部と、
前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当部と、
前記複数のジョブ処理装置のそれぞれと、前記割当部が前記複数のジョブ処理装置のそれぞれに割り当てたジョブに対応するプロセス数を対応付けて管理する管理部と、
前記割当部においてジョブが割り当てられたジョブ処理装置について、前記管理部が管理する前記ジョブに対応付けられたプロセス数に、前記割当部が割り当てたジョブに対応するプロセス数を加算する加算部と、
前記割当部が前記割り当てたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する通知部を有することを特徴とするジョブ割当装置。
【請求項６】
前記ジョブ割当装置はさらに、
前記他のジョブ割当装置によりジョブが割り当てられたジョブ処理装置と、前記他のジョブ割当装置により前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数を対応付けて管理し、
前記他のジョブ割当装置が前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数の通知を、前記他のジョブ割当装置から受信する受信部と、
前記管理部において管理される、前記他のジョブ割当装置が既に前記ジョブ処理装置に割り当てたたジョブに対応するプロセス数を、前記受信部が受信した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて更新する更新部をさらに有することを特徴とする請求項５記載のジョブ割当装置。
【請求項７】
ジョブを処理する複数のジョブ処理装置と接続され、前記複数のジョブ処理装置のうち、いずれかのジョブ処理装置にジョブを割り当てるジョブ割当装置の制御方法において、
前記ジョブ割当装置に、
ジョブを受け付ける受付ステップと、
前記受け付けたジョブを、前記複数のジョブ処理装置のうち、既に割り当てられたジョブに対応する前記ジョブ処理装置における処理単位数であるプロセス数が最小であるジョブ処理装置に割り当てる割当ステップと、
前記複数のジョブ処理装置のそれぞれと、前記割当ステップにより前記複数のジョブ処理装置のそれぞれに割り当てられたジョブに対応するプロセス数を対応付けて管理する管理ステップと、
前記割当ステップによりジョブが割り当てられたジョブ処理装置について、前記管理ステップにより前記ジョブに対応付けられたプロセス数に、前記割当ステップにより割り当てられたジョブに対応するプロセス数を加算する第１加算ステップと、
前記割当ステップにより前記割り当てられたジョブに対応するプロセス数を、前記ジョブ処理装置にジョブを割り当てる他のジョブ割当装置に通知する第１通知ステップを実行させることを特徴とする制御方法。
【請求項８】
前記制御方法はさらに、
前記管理ステップは、前記他のジョブ割当装置によりジョブが割り当てられたジョブ処理装置と、前記他のジョブ割当装置により前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数を対応付けて管理するとともに、
前記他のジョブ割当装置が前記ジョブ処理装置に割り当てられたジョブに対応するプロセス数の通知を、前記他のジョブ割当装置から受信する第１受信ステップと、
前記管理ステップにより管理される、前記他のジョブ割当装置が既に前記ジョブ処理装置に割り当てたたジョブに対応するプロセス数を、前記受信した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて更新する第１更新ステップを有することを特徴とする請求項７記載の制御方法。
【請求項９】
前記制御方法において、
前記他のジョブ割当装置の動作停止を示す情報である動作停止情報を受信する動作停止情報受信ステップと、
前記動作停止情報が受信された場合に、前記管理ステップにより管理される前記ジョブ装置に割り当てられたジョブに対応するプロセス数から、前記動作が停止した他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を減算する第３減算ステップを有することを特徴とする請求項８記載の制御方法。
【請求項１０】
前記制御方法はさらに、
該ジョブ割当装置が起動した場合に、前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を、前記他のジョブ割当装置から取得する取得ステップと、
前記取得した前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数に基づいて、前記管理ステップにより管理される前記他のジョブ割当装置が前記ジョブ処理装置に割り当てたジョブに対応するプロセス数を更新する第２更新ステップを有することを特徴とする請求項８記載の制御方法。
【国際調査報告】
2009113172.tif 000013
2009113172.tif 000014
2009113172.tif 000015
2009113172.tif 000016