(57)【要約】【課題】システムの立ち上げまたは終了時には、システムを構成するサーバを正しい順序で起動または終了させる必要がある。【解決手段】サーバシステム１００において、ジョブ制御サーバ２０は、外部から特定の信号を受信したとき、サーバグループ１０内のすべてのサーバを正常に起動または終了させるための予め定められた手順にしたがって、各サーバまたはサブグループに対して起動指令または終了指令を発行する。ジョブ制御サーバ２０は、手順にしたがって終了指令を発したサーバが正常に終了したか否かを確認する確認コマンドを当該サーバに対して発行し、未終了の応答を受け取ったとき、電源制御サーバ３０に対して当該サーバへの電力を遮断するよう要求する。電源制御サーバ３０は、要求を受け取ると、電源タップ群５０に対して当該サーバに対応する電源ポートを遮断させる指令を発行する。【選択図】図１
2007179252.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバを含むサーバグループと、
外部から供給される電力を個別の電源ポートを介してサーバグループ内の各サーバに分配し、電源ポートへの電力供給または遮断を個別に制御できるように構成された電力分配装置と、
各サーバへの電力供給または遮断を電力分配装置に指令する電源制御サーバと、
外部から特定の信号を受信したとき、サーバグループ内のすべてのサーバを正常に起動または終了させるための予め定められた手順にしたがって、各サーバに対して起動指令または終了指令を発行するジョブ制御サーバと、
を備えることを特徴とするサーバシステム。
【請求項２】
サーバグループ内に、同様の機能を有するひとつまたは複数のサーバからなるサブグループが複数含まれることを特徴とする請求項１に記載のサーバシステム。
【請求項３】
ジョブ制御サーバは、前記手順にしたがって終了指令を発したサーバが正常に終了したか否かを確認する確認コマンドを当該サーバに対して発行し、未終了の応答を受け取ったとき、電源制御サーバに対して当該サーバへの電力を遮断するよう要求し、
電源制御サーバは、前記要求を受け取ると、電力分配装置に対して当該サーバに対応する電源ポートを遮断させる指令を発行することを特徴とする請求項１または２に記載のサーバシステム。
【請求項４】
電源制御サーバは、サーバグループ内のサーバと各サーバが接続された電力分配装置の電源ポートとの対応関係が予め登録されたテーブルを有し、ジョブ制御サーバから電力遮断の要求を受け取ったとき、該テーブルを参照して対象となるサーバの電源ポートを特定することを特徴とする請求項３に記載のサーバシステム。
【請求項５】
電力分配装置への電力供給が途絶したときにバッテリに蓄えた電力を別系統から電力分配装置に供給する無停電電源装置と、無停電電源装置とともに起動し発電した電力を電力分配装置に供給する発電機とをさらに備え、
ジョブ制御サーバは、無停電電源装置が作動開始してから所定時間内に発電機が起動しないとき、サーバグループ内のすべてのサーバに対して終了指令を発行することを特徴とする請求項２ないし４のいずれかに記載のサーバシステム。
【請求項６】
電力分配装置は各電源ポートの異常を検出する検出部を有し、該検出部は、異常を検出した電源ポートに接続されたサーバを終了するようジョブ制御サーバに依頼することを特徴とする請求項２ないし４のいずれかに記載のサーバシステム。
【請求項７】
ジョブ制御サーバは、前記手順にしたがってサーバグループ内のサーバに起動指令を発行してから一定時間経過後に、正常に起動したか否かを確認する確認コマンドを当該サーバに対して発行することを特徴とする請求項１または２に記載のサーバシステム。
【請求項８】
電源制御サーバは、サーバグループ内のサーバと各サーバが接続された電力分配装置の電源ポートとの対応関係が予め登録されたテーブルを有し、ジョブ制御サーバから起動指令を受け取ったとき、該テーブルを参照して対象となるサーバの電源ポートを特定することを特徴とする請求項７に記載のサーバシステム。
【請求項９】
複数のサーバを含むサーバグループと、
サーバグループを統括的に制御するサーバ制御装置と、を備えるサーバシステムであって、
前記サーバ制御装置は、
外部から供給される電力を個別の電源ポートを介してサーバグループ内の各サーバに分配し、電源ポートへの電力供給または遮断を個別に制御できるように構成された電力分配装置と、
各サーバへの電力供給または遮断を電力分配装置に指令する電源制御部と、
サーバグループ内のすべてのサーバを正常に起動または終了させるための予め定められた手順を格納する格納部と、
外部から特定の信号を受信したとき、前記手順にしたがってサーバグループ内のサーバに対して起動指令または終了指令を発行するジョブ制御部と、を含むことを特徴とするサーバシステム。
【請求項１０】
複数のサーバを含むサーバグループと、
外部から供給される電力を個別の電源ポートを介してサーバグループ内の各サーバに分配し、電源ポートへの電力供給または遮断を個別に制御できるように構成された電力分配装置と、
を備えるサーバシステムにおいて、
外部からの特定の信号を受信すると、サーバグループ内のすべてのサーバを正常に起動または終了させるための予め定められた手順にしたがって、サーバグループ内の各サーバに対して起動指令または終了指令を発行することを特徴とするサーバシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバを含むサーバシステムにおいて、サーバを統括的に制御する技術に関する。
【背景技術】
【０００２】
ネットワークに接続されたサーバシステムにおいて、サーバ装置やデータ等を災害から守るために、万が一の被災時に備えて予め対策を講じておくことが重要である。被災した場合、その被害をいかに最小限に止めるか、またどれだけ短時間かつ効率的に復旧できるかが大変重要となる。
【０００３】
そこで、サーバシステムを短時間で復旧できるＤＲ（ディザスタリカバリ）システムが知られている。これによって、データセンタなどが被災してシステム機能に支障をきたした場合でも、ＤＲシステムを迅速に始動することで、同等のサービスを継続して提供することができる。
特許文献１には、データのディザスタリカバリのためにデータを分散して格納しておく技術が開示されている。
【特許文献１】特開２００５−３０１８２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、一般にＤＲシステムのようなサーバシステムでは、システムの立ち上げまたは終了時に、システムを構成するサーバを正しい順序で起動または終了させる必要がある。他のサーバの機能に依存しているサーバが多数ある場合には、サーバの起動順序、終了順序が重要である。また、各サーバが適切に起動または終了したかをシステム担当者が逐一チェックしなければならない。このような作業は時間がかかるために、非常時の立ち上げの際に問題となる。さらに、マニュアルの紛失やシステム担当者の異動などによって、適切な手順が不明となる可能性がある。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、サーバシステムを構成する各サーバの起動、または終了を自動化する技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様のサーバシステムは、複数のサーバを含むサーバグループと、外部から供給される電力を個別の電源ポートを介してサーバグループ内の各サーバに分配し、電源ポートへの電力供給または遮断を個別に制御できるように構成された電力分配装置と、各サーバへの電力供給または遮断を電力分配装置に指令する電源制御サーバと、外部から特定の信号を受信したとき、サーバグループ内のすべてのサーバを正常に起動または終了させるための予め定められた手順にしたがって、各サーバに対して起動指令または終了指令を発行するジョブ制御サーバと、を備える。
【０００７】
この態様によると、複数のサーバから構成されるサーバシステムの起動、終了手順を予めジョブ定義データとして作成しておくことで、迅速かつ確実にサーバシステムの起動、終了をすることが可能になる。
【０００８】
サーバグループ内に、同様の機能を有するひとつまたは複数のサーバからなるサブグループが複数含まれてもよい。
【０００９】
ジョブ制御サーバは、手順にしたがって終了指令を発したサーバが正常に終了したか否かを確認する確認コマンドを当該サーバに対して発行し、未終了の応答を受け取ったとき、電源制御サーバに対して当該サーバへの電力を遮断するよう要求し、電源制御サーバは、要求を受け取ると、電力分配装置に対して当該サーバに対応する電源ポートを遮断させる指令を発行してもよい。ジョブ制御サーバが、サーバの起動または終了を一台ずつ、またはサブグループ毎に、正常に起動または終了したかを確認するコマンドを出し、確認した後に次のステップに進む。これによって、不具合が発生時にはそのことを報知できるし、サーバ単位で強制終了に切り替えるなどの処理を実現できる。
【００１０】
電源制御サーバは、サーバグループ内のサーバと各サーバが接続された電力分配装置の電源ポートとの対応関係が予め登録されたテーブルを有し、ジョブ制御サーバから電力遮断の要求を受け取ったとき、該テーブルを参照して対象となるサーバの電源ポートを特定してもよい。
【００１１】
電力分配装置への電力供給が途絶したときにバッテリに蓄えた電力を別系統から電力分配装置に供給する無停電電源装置と、無停電電源装置とともに起動し発電した電力を電力分配装置に供給する発電機とをさらに備えてもよい。この場合、ジョブ制御サーバは、無停電電源装置が作動開始してから所定時間内に発電機が起動しないとき、サーバグループ内のすべてのサーバに対して終了指令を発行してもよい。
【００１２】
電力分配装置は各電源ポートの異常を検出する検出部を有し、該検出部は、異常を検出した電源ポートに接続されたサーバを終了するようジョブ制御サーバに依頼してもよい。
【００１３】
本発明の別の態様もまた、サーバシステムである。このサーバシステムは、複数のサーバを含むサーバグループと、サーバグループを統括的に制御するサーバ制御装置と、を備えるサーバシステムであって、サーバ制御装置は、外部から供給される電力を個別の電源ポートを介してサーバグループ内の各サーバに分配し、電源ポートへの電力供給または遮断を個別に制御できるように構成された電力分配装置と、各サーバへの電力供給または遮断を電力分配装置に指令する電源制御部と、サーバグループ内のすべてのサーバを正常に起動または終了させるための予め定められた手順を格納する格納部と、外部から特定の信号を受信したとき、手順にしたがってサーバグループ内のサーバに対して起動指令または終了指令を発行するジョブ制御部と、を含む。
【００１４】
本発明のさらに別の態様は、サーバシステムの制御方法である。この方法は、複数のサーバを含むサーバグループと、外部から供給される電力を個別の電源ポートを介してサーバグループ内の各サーバに分配し、電源ポートへの電力供給または遮断を個別に制御できるように構成された電力分配装置と、を備えるサーバシステムにおいて、外部からの特定の信号を受信すると、サーバグループ内のすべてのサーバを正常に起動または終了させるための予め定められた手順にしたがって、サーバグループ内の各サーバに対して起動指令または終了指令を発行する。
【００１５】
なお、以上の構成要素の任意の組合せ、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、サーバシステムを構成する各サーバの起動、または終了を自動化することができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本実施の形態に係るサーバシステム１００の全体構成を示す。サーバグループ１０には、同様の機能を有するひとつまたは複数のサーバからなるサブグループが複数含まれる。図１では、それぞれがウェブサイトを提供するウェブサーバＷ１〜ＷＬからなるウェブサーバグループＷと、ウェブサーバに対してウェブアプリケーションを提供するアプリケーションサーバＡ１〜ＡＭからなるアプリケーションサーバグループＡと、アプリケーションサーバからの問い合わせに対してデータベースを参照してその結果を返すデータベースサーバＤ１〜ＤＮからなるデータベースサーバグループＤとが含まれる。ウェブサーバＷ１〜ＷＬは、ＬＡＮ、インターネット、イントラネット等のネットワーク１２に接続され、それぞれ個別のウェブサイトをネットワーク上で提供する。なお、Ｌ、Ｍ、Ｎは自然数であり、各サーバグループに含まれるサーバの数に制限はない。
【００１８】
サーバグループ１０内のサーバは、電源タップから電力の供給を受ける。図１では、ウェブサーバＷ１〜ＷＬのプラグＧＷ１〜ＧＷＬは、電源タップＴ１のポートＰ１〜ＰＬにそれぞれ接続される。アプリケーションサーバＡ１〜ＡＭのプラグＧＡ１〜ＧＡＭは、電源タップＴ２のポートＰ１〜ＰＭにそれぞれ接続される。データベースサーバＤ１〜ＤＮのプラグＧＤ１〜ＧＤＮは、電源タップＴ３のポートＰ１〜ＰＮに接続される。各電源タップＴ１〜Ｔ３（以下、総称してこれらを「電源タップ群５０」とも呼ぶ）は、配線１４に電気的に接続され、外部から電力の供給を受けてポートを経由して各サーバに電力を分配している。
【００１９】
本実施形態における電源タップＴ１〜Ｔ３は、ポートへの電力供給または遮断を個別に制御できるように構成されている。より具体的には、各電源タップにはポート毎に電源をオン／オフするスイッチが内蔵されており、電源タップ内の図示しない制御回路に対して外部からコマンドを発することで、所望のポートの電源をオン／オフすることが可能である。
【００２０】
サーバシステム１００は、ジョブ制御サーバ２０と電源制御サーバ３０とを含む。これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２１】
ジョブ制御サーバ２０は、サーバの起動、終了の順序等を予め定義してあるジョブ定義データを格納するジョブ定義格納部２４と、ジョブ定義データにしたがって、サーバグループ１０内の各サーバおよび電源制御サーバ３０に対してコマンドを発するジョブ制御部２２と、ジョブ定義データで定義されている制御内容を予め準備されたプログラムにしたがって画像化し、ＣＲＴ、液晶などのモニタ４０に制御状況を逐一表示する表示制御部２６とを含む。
【００２２】
ジョブ制御サーバ２０は、外部から特定の信号を受信したとき、サーバグループ１０内のすべてのサーバを正常に起動または終了させるための予め定められた手順にしたがって、各サーバ各サーバおよび電源制御サーバ３０に対して起動指令または終了指令を発行し、サーバグループ１０の起動、終了を制御する。
【００２３】
なお、ジョブ定義データは、サーバグループに含まれるサブグループ、サーバ間の接続や、サブグループの構成、データの依存関係などを考慮して、サーバグループ内のすべてのサーバを正常に起動または終了させるように、予めシステムの担当者がサーバの起動または終了の順序や、確認すべき事項などを所定の形式にしたがって作成し、事前にジョブ定義格納部２４に格納しておく。
【００２４】
電源制御サーバ３０は、ジョブ制御サーバ２０から発せられるコマンドにしたがって、各サーバへの電源の投入、切断を制御する電源制御部３２と、電源タップＴ１〜Ｔ３のポートとサーバグループ１０内の各サーバとの対応関係をテーブルとして記録しておくテーブル格納部３４とを含む。電源制御部３２は、このテーブルを参照して、各サーバへの電力供給または遮断を電力分配装置に指令する。
【００２５】
図２は、テーブル格納部３４に格納されている、サーバグループ１０内のサーバと電源タップＴ１〜Ｔ３のポートの対応関係を表すテーブルの一例である。このテーブルは各サーバに予め割り振られているサーバＩＤ（ここでは、図１の符号を示す）、サーバの電源プラグが差し込まれているタップとポートに予め割り振られている番号とが対応づけて記録されている。ジョブ制御部２２からサーバＩＤが送信されると、電源制御部３２は、そのサーバＩＤをキーとしてテーブルを探索し、対応するタップ番号およびポート番号を取得する。これにしたがって、電源タップの制御回路に対してポートの電源投入または遮断の指令を出す。電源制御部３２がこのテーブルを参照することで、サーバの電源を個別にオンオフすることが可能となる。
なお、このテーブルは、図示しないキーボード等の入力装置を介してシステムの担当者が事前に入力しておく。
【００２６】
以下、サーバグループ１０の起動処理について説明する。
図３は、サーバグループの起動時におけるジョブ制御サーバ２０の基本動作のフローチャートである。まず、トリガとなる信号がジョブ制御サーバ２０に入力される（Ｓ１０）。この信号は、例えば、後述するＤＲサイトの場合などは、メインサイトが停止したときに発せられる起動信号であり、メンテナンス後の再起動の場合には、システム担当者により入力される起動指示である。続いて、ジョブ制御部２２は、ジョブ定義格納部２４内のジョブ定義データを参照し（Ｓ１２）、それにしたがって制御を開始する。ジョブ定義にしたがって、起動指令を発する対象となるサーバを決定し（Ｓ１４）、対象サーバの起動指令を電源制御サーバ３０に発信する（Ｓ１６）。すると、電源制御部３２は要求を受け取った旨の応答を返し、ジョブ制御部２２はその応答を受け取ってからタイマを始動する（Ｓ１８）。所定時間の経過後、ジョブ制御部２２は、起動指令を発したサーバが正常に起動したか否かを確認するためのコマンドを出し（Ｓ２０）、対象サーバからの応答がなければ（Ｓ２２のＮ）、トラブルが発生したと考えられるためシステム担当者をコールする（Ｓ２４）。応答があれば（Ｓ２２のＹ）、ジョブ定義データで起動対象となっている全サーバの起動が終了したか否かを確認し（Ｓ２６）、未終了であれば（Ｓ２６のＮ）、次のサーバの起動処理に移る。
【００２７】
ジョブ定義データには、サブグループ単位で処理を実施する順序が定められており、そのサブグループ内に含まれるサーバの数だけ同様の処理が繰り返される。図１の例であれば、データベースサーバ、アプリケーションサーバ、ウェブサーバの順で起動する。そして、サーバの起動処理を発するごとに、正常に起動したか否かを確認するコマンドを発するようにしている。これによって、状況に応じた適切な回復処理が実行できる。
【００２８】
図４を参照して、ジョブ定義データにしたがって図１のサーバグループ１０を起動したときのシーケンスの一例を説明する。
ジョブ制御部２２が電源制御サーバ３０に対してデータベースサーバＤ１の起動を指令すると（Ｓ１００）、電源制御部３２は図２に示したテーブルを検索し、サーバＤ１に対応するポートとして電源タップＴ３のポートＰ１を取得する（Ｓ１０２）。電源制御部３２は、電源タップＴ３に対して、ポートＰ１の電源を投入するように指令する（Ｓ１０４）。指令後、電源制御部３２は、指令を出したことを通知する信号をジョブ制御部２２に出す（Ｓ１０６）。ジョブ制御部２２は、この信号を受け取ると、図示しないタイマを始動する（Ｓ１０７）。タイマが所定時間ｔ秒（例えば、６０秒）経過すると、ジョブ制御部２２は、正常に起動したことを確認するコマンドを、データベースサーバＤ１に対して発信する（Ｓ１０８）。なお、タイマの時間は、電源投入からサーバがコマンドを受信できる状態になるまでの時間を想定して設定される。ジョブ制御部２２が起動を確認するために発信するコマンドは、サブグループによって異なる。例えば、データベースサーバであれば、ジョブ制御部２２はＳＱＬを出す。これに対して、データベースサーバＤ１から要求した応答が戻ってくることで（Ｓ１１０）、データベースサーバＤ１の正常起動を確認する。
【００２９】
この一連の処理（Ｓ１００〜Ｓ１１０）は、サブグループＤに含まれるデータベースサーバの数と同じ回数（つまり、Ｎ回）繰り返す。サブグループＤ内のすべてのサーバが起動すると、次のサブグループＡの起動処理に移る。
【００３０】
または、ジョブ制御部２２は、一連の処理をサーバの数だけ繰り返す代わりに、サブグループＤに含まれるすべてのデータベースサーバの起動指令を一度に出すようにしてもよい。サブグループ内のすべてのサーバが起動した時点で、改めてサブグループ内のサーバに対して正常起動の確認を行うようにしてもよい。
【００３１】
続いて、ジョブ制御部２２が電源制御サーバ３０に対してアプリケーションサーバＡ１の起動を指令すると（Ｓ１１２）、電源制御部３２はテーブルを検索し、サーバＡ１に対応するポートとして電源タップＴ２のポートＰ１を取得する（Ｓ１１４）。電源制御部３２は、電源タップＴ２に対して、ポートＰ１の電源を投入するように指令する（Ｓ１１６）。指令後、電源制御部３２は、指令を出したことを通知する信号をジョブ制御サーバ２０に出す（Ｓ１１８）。ジョブ制御部２２は、この信号を受け取ると、図示しないタイマを始動する（Ｓ１１９）。タイマが所定時間ｔ秒経過すると、ジョブ制御部２２は、正常に起動したことを確認するコマンドをアプリケーションサーバＡ１に対して発信する（Ｓ１２０）。この場合、ジョブ制御部２２はウェブサーバの要求、例えばＣＧＩプログラムを動作させて、要求した応答が戻ってくるか否かで確認する。アプリケーションサーバＡ１から要求した応答が戻ってくることで（Ｓ１２２）、アプリケーションサーバＡ１の正常起動を確認する。
【００３２】
上述と同様に、この一連の処理（Ｓ１１２〜Ｓ１２２）は、サブグループＡに含まれるアプリケーションサーバの数と同じ回数（つまり、Ｍ回）繰り返す。サブグループＡ内のすべてのサーバが起動すると、次のサブグループＷの起動処理に移る。
【００３３】
続いて、ジョブ制御部２２が電源制御サーバ３０に対してウェブサーバＷ１の起動を指令すると（Ｓ１２４）、電源制御部３２はテーブルを検索し、サーバＷ１に対応するポートとして電源タップＴ１のポートＰ１を取得する（Ｓ１２６）。電源制御部３２は、電源タップＴ１に対して、ポートＰ１の電源を投入するように指令する（Ｓ１２８）。指令後、電源制御部３２は、指令を出したことを通知する信号をジョブ制御部２２に出す（Ｓ１３０）。ジョブ制御部２２は、この信号を受け取ると、図示しないタイマを始動する（Ｓ１３１）。タイマが所定時間ｔ秒経過すると、ジョブ制御部２２は、正常に起動したことを確認するコマンドを、ウェブサーバＷ１に対して発信する（Ｓ１３２）。この場合、ジョブ制御部２２はｈｔｔｐ／ｇｅｔを発して、対応するページが送信されてくるか否かで確認する。ウェブサーバＷ１から要求した応答が戻ってくることで（Ｓ１３４）、ウェブサーバＷ１の正常起動を確認する。
【００３４】
上述と同様に、この一連の処理（Ｓ１２４〜Ｓ１３４）は、サブグループＡに含まれるアプリケーションサーバの数と同じ回数（つまり、Ｌ回）繰り返す。こうして、サーバグループ１０の起動処理が終了する。
【００３５】
なお、ジョブ制御部２２の発した確認コマンドに対する応答が返ってこない場合、または予期した応答と異なる場合には、ジョブ制御部２２は、図３のＳ２４に示したように、システム担当者をコールするか、別に定めたエラー時の処理を実行する。この処理は、サーバの機能に応じて定められる。例えば、データベースサーバやウェブサーバであれば、複数のサーバのうちひとつだけが起動しない場合には、そのサーバの処理を保留し、次のアプリケーションサーバのサブグループの起動処理に移ってもよい。
【００３６】
図５は、サーバグループ１０の起動時にモニタ４０に表示される画面４２の一例を示す。図中の四角形は処理を表し、矢印は処理の順序を表す。図示するように、第１段階のデータベースサーバＤ１〜ＤＮの起動および確認、第２段階のアプリケーションサーバＡ１〜ＡＭの起動および確認、第３段階のウェブサーバＷ１〜ＷＬの起動および確認が、モニタ画面に表示される。各段階の終了時には、サブグループ全体の確認を実行する。表示制御部２６は、ジョブ制御部２２より実行されている処理に対応する四角形を強調表示する。これによって、システム担当者は現在のジョブの進行状況を確認できる。
【００３７】
続いて、サーバグループ１０の終了処理について説明する。
図６は、サーバグループの終了時におけるジョブ制御サーバ２０の基本動作のフローチャートである。まず、トリガとなる信号がジョブ制御サーバ２０に入力される（Ｓ３０）。この信号は、例えば、後述する停電時などの場合は、ＵＰＳ等から発せられる信号であり、メンテナンスのための機能停止の場合には、システム担当者により入力される終了指示である。続いて、ジョブ制御部２２は、ジョブ定義格納部２４内のジョブ定義データを参照を参照し（Ｓ３２）、それにしたがって制御を開始する。終了指令を発する対象となるサーバを決定し（Ｓ３４）、アプリケーションの停止指令を対象サーバに直接発行する（Ｓ３６）。続いて、シャットダウンの指令をサーバに発行し、それとともにタイマを始動する（Ｓ３８）。所定時間が経過すると、ジョブ制御部２２は、対象サーバに対して正常にシャットダウンされたか否かを確認するコマンドを出す（Ｓ４０）。対象サーバからの応答があると（Ｓ４２のＹ）、サーバがシャットダウンできなかったことを意味するので、ジョブ制御部２２は電源制御サーバ３０に対し、対象サーバの電源を遮断するように指令する（Ｓ４４）。対象サーバからの応答がなければ（Ｓ４２のＮ）、Ｓ４４をスキップする。そして、ジョブ定義データで終了対象となっている全サーバを終了したか否かを確認し（Ｓ４６）、未終了であれば（Ｓ４６のＮ）、次のサーバの終了処理に移る。
【００３８】
図７を参照して、ジョブ定義データにしたがって図１のサーバグループ１０を終了したときのシーケンスの一例を説明する。起動時と逆に、ウェブサーバ、アプリケーションサーバ、データベースサーバの順で終了処理を実行する。
【００３９】
ジョブ制御部２２がはウェブサーバＷ１に対して実行中の処理を停止するよう指令し（Ｓ２００）、続いてシャットダウンの指令を出す（Ｓ２０２）。指令後、ジョブ制御部２２は、図示しないタイマを始動する（Ｓ２０３）。タイマが所定時間ｔ’秒（例えば、６０秒）経過すると、ジョブ制御サーバ２０は、正常にシャットダウンされたか否かを確認するために、例えばｐｉｎｇをウェブサーバＷ１に発信する（Ｓ２０４）。なお、タイマの時間は、シャットダウンに要する時間を想定して設定される。ウェブサーバＷ１がシャットダウンしていれば応答は来ないので、以降のステップＳ２０６〜Ｓ２１２は実行されない。何らかの原因でウェブサーバＷ１がシャットダウンしていなければ、ｐｉｎｇに対する応答が戻ってくる（Ｓ２０６）。すると、ジョブ制御部２２は、電源制御サーバ３０に対して、ウェブサーバＷ１の電源をオフにするよう指令を出す（Ｓ２０８）。これに応答して、電源制御部３２は図２に示したテーブルを検索し、サーバＷ１に対応するポートとして電源タップＴ１のポートＰ１を取得する（Ｓ２１０）。電源制御部３２は、電源タップＴ１に対して、ポートＰ１の電源を遮断するように指令する（Ｓ２１２）。これによって、サーバＷ１は強制終了されることになる。
【００４０】
この一連の処理（Ｓ２００〜Ｓ２１２）は、サブグループＷに含まれるウェブサーバの数と同じ回数（つまり、Ｌ回）繰り返す。サブグループＷ内のすべてのサーバが終了すると、次のサブグループの終了処理に移る。
【００４１】
以下、サブグループＡに含まれるアプリケーションサーバの終了処理（２１４〜Ｓ２２６）、および、サブグループＤに含まれるデータベースサーバの終了処理（Ｓ２２８〜Ｓ２４０）も、上述のウェブサーバに対する処理と同様に、シャットダウン、確認のためのｐｉｎｇ発信、未終了時の強制終了を繰り返す。なお、エラー発生時の処理は強制終了に限られず、状況に応じた処理を定めることができる。
なお、ｐｉｎｇに対する応答が無く、シャットダウンが正常に完了した場合であっても、所定期間が経過した後にポートの電源を遮断するようにしてもよい。
【００４２】
図８は、サーバグループ１０の終了時にモニタ４０に表示される画面４４の一例を示す。図５と同様に、第１段階のウェブサーバＷ１〜ＷＬの終了および確認、第２段階のアプリケーションサーバＡ１〜ＡＭの起動終了および確認、第３段階のデータベースサーバＤ１〜ＤＮの終了および確認が、モニタ画面に表示される。各段階の終了時には、サブグループ全体の確認を実行する。
【００４３】
以上説明したように、本実施形態によれば、複数のサーバから構成されるサーバシステムの起動、終了手順をジョブ定義データとして予め作成しておくことで、迅速かつ確実にサーバシステムの起動、終了をすることが可能になる。システムのメンテナンス時などに、大規模なシステムでは手順にしたがって作業することで大変な手間を必要としたが、本実施形態によれば、その手順をジョブ定義データとして登録しておけるため、容易に作業をすることができる。また、手順を登録しておくことで、メンテナンス担当者やマニュアルを配置しておく必要がなくなる。
【００４４】
また、ジョブ制御サーバは、サーバの起動または終了を一台ずつ、またはサブグループ毎に、正常に起動または終了したかを確認するコマンドを出し、確認した後に次のステップに進む。これによって、起動時に不具合が発生したときはそのことを報知できるし、終了時にはサーバ単位で強制終了することができる。
このように、本実施形態では、ジョブ定義データと、外部指令によりポート単位で電源の投入、遮断を実行する電源タップとを組み合わせた点に特徴のひとつがある。
【００４５】
次に、上述の実施形態を応用した実施例を説明する。
【００４６】
実施例１．
図９は、メインサイトであるデータセンタＡ１２０に対して、ＤＲサイトであるデータセンタＢ１４０を設けた構成を示す。データセンタＡ１２０とデータセンタＢ１４０のシステム構成は基本的に同一であるが、ＤＲサイトであるデータセンタにはジョブ制御サーバ（「Ｊ」と表記する）２０と電源制御サーバ（「Ｐ」と表記する）３０を備える。なお、図中の「Ｗ」はウェブサーバ、「Ａ」はアプリケーションサーバ、「Ｄ」はデータベースサーバを表す。これらの機能は、図１で説明したのと同様である。データセンタＢ１４０のサーバグループ１０に含まれるサーバの電源は、待機中はオフにしておき、通常はデータセンタＡ１２０のみがネットワーク１２上でサービスを提供する。但し、データセンタＢ１４０のジョブ制御サーバ２０と電源制御サーバ３０のみは常にオンにしておく。
【００４７】
データセンタＡ１２０において災害発生や停電などの障害が発生すると、データセンタＡに駐在する監視要員の操作に応じて、または、障害発生時に自動送信される信号が、データセンタＢ１４０のジョブ制御サーバ２０に入力される。この信号をトリガとして、ジョブ制御サーバ２０は、ジョブ定義データにしたがって、データセンタＢ１４０のサーバグループ１０を起動する。これによって、データセンタＡ１２０が停止しても直ちに同等の機能を提供できる。
【００４８】
このようなＤＲサイトの電源を常時オンにしておくと、電気代およびメンテナンスコストが高額になる。また、人手でＤＲサイトを立ち上げようとすると、順序のミスが発生しうるし、迅速な起動も困難である。これに対し、本実施例の構成では、ＤＲサイトのジョブ制御サーバと電源制御サーバのみ常時立ち上げておけば、後のサーバは待機中はオフにしておくことができ、経済的である。
【００４９】
実施例２．
図１０は、無停電電源装置（以下、「ＵＰＳ」と表記する）１５０と発電機１６０を備えるサーバシステム２００を示す。図中の英字は、図９と同様にサーバを表している。サーバシステム２００では、通常配線１７２を介した電力分配装置（図示せず）への電力供給が途絶したときに、ＵＰＳ１５０が作動して、図示しないバッテリに蓄えた電力を非常時配線１７０を介してサーバグループ１０、ジョブ制御サーバ２０、電源制御サーバ３０に供給する。その間、発電機１６０を起動させてその発電した電力を供給する。しかし、ＵＰＳ１５０の有効時間（例えば、１０分）以内に発電機１６０が起動しない場合、サーバグループ１０を正常に終了させる必要がある。したがって、ジョブ制御サーバ２０は、ＵＰＳ１５０の作動と同時にタイマを始動させ、所定の時間内に発電機１６０の作動が確認されないときは、ジョブ定義データにしたがってサーバグループ１０の終了処理を開始する。
ジョブ制御サーバ２０は、ＵＰＳ１５０の作動時、ＵＰＳ１５０のバッテリの蓄電量を確認し、所定量未満だった場合、ジョブ定義データにしたがってサーバグループ１０の終了処理を開始してもよい。
【００５０】
以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【００５１】
実施の形態では、ジョブ制御サーバと電源制御サーバを別に設ける例について説明したが、同様の機能を持つ単体のサーバとして構成してもよい。
また、図１１に示すサーバグループ制御装置３００のように、ジョブ制御部２２、ジョブ定義格納部２４、表示制御部２６、電源制御部３２、テーブル格納部３４および電源タップ５６を一体の構成としてもよい。電源タップ５６はサーバの電源プラグを挿入するためのポートを複数備えており、テーブル格納部３４にサーバとポートとの対応関係を予め登録しておく。電源制御部３２は、電源タップ５６の各ポートを直接オンオフする。
【００５２】
図１２に示すように、電源タップ６６に各電源ポートの異常を検出する検出部６８を設けてもよい。検出部６８は、ポート単位で電流または電圧を監視し、過容量によるショートなどの異常が発生したときに、異常を検出したポートに接続されたサーバを終了するようジョブ制御サーバ２０に依頼する。ジョブ制御サーバ２０は、ポートの異常発生をトリガとして、そのポートに対応するサーバＩＤをテーブル格納部（図示せず）内のテーブルから検索し、そのサーバの終了処理を実行する。
【００５３】
実施の形態では、サーバグループにウェブサーバ、アプリケーションサーバおよびデータベースサーバのサブグループが含まれる場合について述べたが、本発明はこの組合せに限定されるものではない。サブグループがひとつしか含まれていなくてもよいし、あるいは、サブグループとして明確に分かれている必要もない。また、起動時には、データベースサーバ、アプリケーションサーバ、ウェブサーバ順で起動し、終了時にはこの逆順で終了することを述べたが、この順序に限定されるものではない。サーバグループ内に含まれるサーバの種類、数、それらの依存関係等に基づいて、起動／終了の順序は、ジョブ定義データでいかようにも定めることができる。
【図面の簡単な説明】
【００５４】
【図１】本実施の形態に係るサーバシステムの全体構成図である。
【図２】テーブル格納部に格納されるテーブルの一例を示す図である。
【図３】サーバグループの起動時におけるジョブ制御サーバの基本動作のフローチャートである。
【図４】サーバグループ起動時のシーケンス図である。
【図５】サーバグループ起動時にモニタに表示される画面の一例を示す図である。
【図６】サーバグループの終了時におけるジョブ制御サーバの基本動作のフローチャートである。
【図７】サーバグループ終了時のシーケンス図である。
【図８】サーバグループ終了時にモニタに表示される画面の一例を示す図である。
【図９】メインサイトとＤＲサイトの構成を示す図である。
【図１０】無停電電源装置と発電機とを備えるサーバシステムの構成を示す図である。
【図１１】ジョブ制御部、電源制御部および電力分配装置が一体構成されたサーバグループ制御装置の構成を示す図である。
【図１２】検出部を備える電源タップを示す図である。
【符号の説明】
【００５５】
１０  サーバグループ、  １２  ネットワーク、  １４  配線、  ２０  ジョブ制御サーバ、  ２２  ジョブ制御部、  ２４  ジョブ定義格納部、  ２６  表示制御部、  ３０  電源制御サーバ、  ３２  電源制御部、  ３４  テーブル格納部、  ４０  モニタ、    ５０  電源タップ群、  ５６、６６  電源タップ、  ６８  検出部、  １００  サーバシステム、  １５０  ＵＰＳ、  １６０  発電機、  １７０  非常時配線、  １７２  通常配線、  ２００  サーバシステム、  ３００  サーバグループ制御装置。
【図１】
2007179252.tif 000003
【図２】
2007179252.tif 000004
【図３】
2007179252.tif 000005
【図４】
2007179252.tif 000006
【図５】
2007179252.tif 000007
【図６】
2007179252.tif 000008
【図７】
2007179252.tif 000009
【図８】
2007179252.tif 000010
【図９】
2007179252.tif 000011
【図１０】
2007179252.tif 000012
【図１１】
2007179252.tif 000013
【図１２】
2007179252.tif 000014