(57)【要約】【課題】管理装置の負荷を減らしつつ、管理装置が複数の管理対象装置の各々を確実に管理する。【解決手段】サーバ管理システム１０は、複数の管理対象サーバと、複数の管理対象サーバの各々を管理する管理サーバ１２と、複数の管理対象サーバ及び管理サーバ１２とは別に設けられ、かつ複数の管理対象サーバ及び管理サーバ１２が共用する共用ＤＢ１４Ａとを含む。各管理対象サーバは、自装置の状態を示す状態情報を、所定のタイミングで共用ＤＢ１４Ａに書き込み、管理サーバ１２は、共用ＤＢ１４Ａに書き込まれた状態情報を、該所定のタイミングに対応するタイミングで確認することにより、管理対象サーバの各々の状態を管理する。【選択図】図１
2015194878.tif 000002
【特許請求の範囲】
【請求項１】
複数の管理対象装置と、前記複数の管理対象装置の各々を管理する管理装置と、前記複数の管理対象装置及び前記管理装置とは別に設けられ、かつ前記複数の管理対象装置及び前記管理装置が共用する記憶装置と、を含み、
前記複数の管理対象装置の各々は、自装置の状態を示す状態情報を、所定のタイミングで前記記憶装置に書き込み、
前記管理装置は、前記記憶装置に書き込まれた状態情報を、前記所定のタイミングに対応するタイミングで確認することにより、前記管理対象装置の各々の状態を管理する
管理システム。
【請求項２】
前記複数の管理対象装置の各々は、自装置が生存していることを示す生存情報を前記状態情報として前記記憶装置に書き込み、
前記管理装置は、前記記憶装置に書き込まれた生存情報に基づいて、前記複数の管理対象装置の各々の生存状態を確認する
請求項１記載の管理システム。
【請求項３】
前記複数の管理対象装置の各々は、自装置の動作状態を示す動作情報を前記状態情報として前記記憶装置に書き込み、
前記管理装置は、前記記憶装置に書き込まれた動作情報に基づいて、前記複数の管理対象装置の各々の動作状態を確認する
請求項１または請求項２記載の管理システム。
【請求項４】
前記管理装置は、前記複数の管理対象装置のいずれかに処理を実行させるための動作指示情報を前記記憶装置に書き込み、
前記複数の管理対象装置の各々は、前記記憶装置に書き込まれた動作指示情報を所定のタイミングで確認し、前記複数の管理対象装置のいずれかが、前記動作指示情報が示す処理を実行すると共に、前記処理を実行した管理対象装置が、処理の実行状態及び実行結果を前記動作情報として前記記憶装置に書き込む
請求項３記載の管理システム。
【請求項５】
前記管理装置は、管理対象装置を追加する場合、管理対象装置の追加を指示する動作指示情報を前記記憶装置に書き込み、
前記管理対象装置の追加を指示する動作指示情報に従って動作する管理対象装置は、自装置が使用する前記記憶装置の情報を、追加された管理対象装置に送信する
請求項１〜請求項４のいずれか１項記載の管理システム。
【請求項６】
前記複数の管理対象装置の各々を複数のグループに分類し、各グループに属する管理対象装置の各々と前記管理装置とが共用する前記記憶装置をグループ毎に設け、
前記管理装置は、前記記憶装置に書き込まれた動作状態に基づいて、動作指示情報を書き込んだ記憶装置に対応するグループで、指示した処理が完了していないことを確認した場合には、他のグループに対応する記憶装置に、前記動作指示情報を書き込む
請求項１〜請求項５のいずれか１項記載の管理システム。
【請求項７】
複数の管理対象装置の各々を管理する管理装置であって、
前記複数の管理対象装置及び自装置とは別に設けられ、かつ前記複数の管理対象装置及び自装置が共用する記憶装置に、前記複数の管理対象装置の各々により所定のタイミングで書き込まれた各管理対象装置の状態を示す状態情報を、前記所定のタイミングに対応するタイミングで取得する取得部と、
取得した前記状態情報に基づいて、前記管理対象装置の各々の状態を判断する判断部と、
を含む管理装置。
【請求項８】
管理装置に管理される管理対象装置であって、
自装置を含む複数の管理対象装置及び前記管理装置とは別に設けられ、かつ前記複数の管理対象装置及び前記管理装置が共用する記憶装置に、自装置の状態を示す状態情報を所定のタイミングで書き込む書き込み部
を含む管理対象装置。
【請求項９】
コンピュータに、
複数の管理対象装置、及び前記複数の管理対象装置の各々を管理する自装置とは別に設けられ、かつ前記複数の管理対象装置及び自装置が共用する記憶装置に、前記複数の管理対象装置の各々により所定のタイミングで書き込まれた各管理対象装置の状態を示す状態情報を、前記所定のタイミングに対応するタイミングで確認することにより、前記管理対象装置の各々の状態を管理する
ことを含む処理を実行させるための管理プログラム。
【請求項１０】
コンピュータに、
自装置を含む複数の管理対象装置、及び前記複数の管理対象装置の各々を管理する管理装置とは別に設けられ、かつ前記複数の管理対象装置及び前記管理装置が共用する記憶装置に、自装置の状態を示す状態情報を所定のタイミングで書き込む
ことを含む処理を実行させるための管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理システム、管理装置、管理対象装置、及び管理プログラムに関する。
【背景技術】
【０００２】
企業等に設けられるサーバ管理システムは、管理サーバと複数のサーバとを含む。各サーバは、企業等の業務処理を実行する情報処理装置である。何れかのサーバが停止すると業務の遂行に支障が生ずる。業務の遂行に支障が生ずることを防止するために、管理サーバは、各サーバを管理する。具体的には、管理サーバは、各サーバの稼働状態を把握したり、故障の発生を予知したりしている。より詳細には、管理サーバは、各サーバから個別に、稼働状態を示す情報を取得する。また、管理サーバは、各サーバに個別に処理の実行態様を設定する。実行態様として、例えば、サーバのＣＰＵの利用率が高い場合、例えば、８０％以上等の場合、ＣＰＵの利用率が高くないサーバに仮想マシン（ＶＭ（virtual machine））を移動させる態様がある。
【０００３】
しかし、管理サーバが各サーバから稼働状態を示す情報を個別に取得する方法等では、例えば、クラウドコンピューティング（cloud computing）のように管理サーバが多数のサーバを管理する場合には、管理サーバの管理性能が劣化する。なぜなら、管理サーバが各サーバと通信する際の管理サーバの負荷が大きくなり、全てのサーバから取得した情報を処理するのに時間がかかるからである。
【０００４】
そこで、管理サーバの負荷を減らす従来技術として、以下のような技術が提案されている。
【０００５】
例えば、最下層、中間層、及び最上層の各々に、複数のサーバをグループ化し、各サーバを管理する技術がある。この技術では、中間層にある複数のサーバの中の代表サーバが、最下層の複数のサーバの各々を管理する。また、最上層にある複数のサーバの中の代表サーバが、中間層にある複数のサーバの各々を管理する。そして、最上位代表サーバが、最上層にある複数のサーバと、最上層にある代表サーバとから、各サーバの稼働情報を取得し、取得した各サーバの稼働情報を、管理サーバに送信する。この従来技術では、管理サーバは最上位代表サーバとだけ通信するので、管理サーバの負荷が減る。
【０００６】
また、複数のサーバが、複数のグループに分けられ、各グループでは、同じグループに属する複数のサーバの各々が、互いに管理する技術もある。管理サーバは、各グループの何れかのサーバと通信する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１７１４７６号公報
【特許文献２】特開２０１１−１９１８４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、各階層の代表サーバが下層のサーバを管理する技術では、例えば、最下層の複数のサーバの各々を管理する中間層にある代表サーバに異常が発生した場合、管理サーバは、最下層の複数のサーバの情報を取得できない。
【０００９】
また、同じグループに属する複数のサーバの各々が互いに管理する技術では、各サーバは、各サーバの都合のいいタイミングで、他のサーバから稼働状態を示す情報を取得する。そのため、管理サーバと通信するサーバが、他のサーバから稼動状態を示す情報を取得するタイミングによっては、管理サーバは他のサーバの稼動状態について、最新の情報を取得できない場合がある。最新の情報を取得するためには、管理サーバは、各サーバにアクセスする必要があり、管理サーバの負荷を減らすことができない。
【００１０】
このように、従来技術では、管理サーバの負荷を減らすにあたり、管理サーバが、管理対象の複数のサーバの各々を管理するための情報を取得できない場合がある、という問題がある。
【００１１】
開示の技術は、１つの側面として、管理装置の負荷を減らしつつ、管理装置が複数の管理対象装置の各々を確実に管理することを目的とする。
【課題を解決するための手段】
【００１２】
一つの態様では、管理システムは、複数の管理対象装置と、前記複数の管理対象装置の各々を管理する管理装置と、前記複数の管理対象装置及び前記管理装置とは別に設けられ、かつ前記複数の管理対象装置及び前記管理装置が共用する記憶装置とを含む。前記複数の管理対象装置の各々は、自装置の状態を示す状態情報を、所定のタイミングで前記記憶装置に書き込む。そして、前記管理装置は、前記記憶装置に書き込まれた状態情報を、前記所定のタイミングに対応するタイミングで確認することにより、前記管理対象装置の各々の状態を管理する。
【発明の効果】
【００１３】
開示の技術は、１つの側面として、管理装置の負荷を減らしつつ、管理装置が複数の管理対象装置の各々を確実に管理することができる、という効果を有する。
【図面の簡単な説明】
【００１４】
【図１】実施形態のサーバ管理システムの概略構成を示すブロック図である。
【図２】管理サーバの概略構成を示すブロック図である。
【図３】管理対象サーバの概略構成を示すブロック図である。
【図４】アクションテーブルの一例を示す図である。
【図５】サーバ管理テーブルの一例を示す図である。
【図６】管理サーバの機能的構成を示すブロック図である。
【図７】管理対象サーバの機能的構成を示すブロック図である。
【図８】管理サーバのＨＤＤに記憶された管理プログラムの一例を示す図である。
【図９】管理対象サーバのＨＤＤに記憶された管理対象プログラムの一例を示す図である。
【図１０】管理サーバが実行する生存確認処理の一例を示すフローチャートである。
【図１１】管理対象サーバが実行する生存情報書き込み処理の一例を示すフローチャートである。
【図１２】管理サーバが実行する管理対象サーバに対する動作指示処理の一例を示すフローチャートである。
【図１３】図１２のステップ１４２の生存確認処理の一例を示すフローチャートである。
【図１４】（Ａ）は、管理サーバから共用ＤＢへの動作指示の書き込みを示し、（Ｂ）は、（Ａ）の場合のアクションテーブルの一例を示す図である。
【図１５】（Ａ）は、管理対象サーバによる動作指示の取得を示し、（Ｂ）は、（Ａ）の場合のアクションテーブルの一例を示す図である。
【図１６】（Ａ）は、動作指示を取得した管理対象サーバにおける動作エラーの発生を示し、（Ｂ）は、（Ａ）の場合のアクションテーブルの一例を示す図である。
【図１７】（Ａ）は、他の管理サーバによる動作指示の引継ぎを示し、（Ｂ）は、（Ａ）の場合のアクションテーブルの一例を示す図である。
【図１８】（Ａ）は、同一グループの管理対象サーバの全てに動作エラーが発生した場合を示し、（Ｂ）は、（Ａ）の場合のアクションテーブルの一例を示す図である。
【図１９】管理対象サーバが実行する指示実行処理の一例を示すフローチャートである。
【図２０】図１９のステップ２０６における指定有り実行処理の一例を示すフローチャートである。
【図２１】図１９のステップ２０８における指定無し実行処理の一例を示すフローチャートである。
【図２２】管理サーバが実行するサーバの追加処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１６】
図１には、実施形態のサーバ管理システム１０のブロック図が示される。図１に示すように、サーバ管理システム１０は、管理サーバ１２を備える。サーバ管理システム１０は、各々管理サーバ１２にネットワーク２２を介して接続される複数の管理対象サーバを備える。複数の管理対象サーバは、複数のグループＡ、Ｂ・・・にグループ化される。グループＡ、Ｂ・・・の各々は同様の構成であるので、以下、グループＡの構成を説明し、他のグループＢ・・・の構成の説明を省略する。グループＡは、複数、例えば、３個の管理対象サーバ１６Ａ、１８Ａ、２０Ａを備える。サーバ管理システム１０は、各グループに対応して設けられかつ対応するグループ内の複数の管理対象サーバがアクセス可能な複数の共用データベース（以下、共用ＤＢ（database）という）を備える。例えば、グループＡに対応する共用ＤＢ１４Ａは、ネットワーク２２を介して、管理サーバ１２、及び３個の管理対象サーバ１６Ａ、１８Ａ、２０Ａに接続される。共用ＤＢ１４Ａは、独立したサーバに設けてもよいし、独立したストレージを共用ＤＢ１４Ａとして用いてもよい。なお、共用ＤＢ１４Ａは、開示の技術の「記憶装置」の一例である。
【００１７】
図２には、管理サーバ１２のブロック図が示される。図２に示すように、管理サーバ１２は、管理サーバ１２本体として機能するコンピュータ３０と、コンピュータ３０に接続されたモニタ３２、マウス５２、及びキーボード５４とを備える。コンピュータ３０は、ＣＰＵ（中央処理装置：Central Processing Unit）３４、ＲＡＭ（Random Access Memory）３６、及びＨＤＤ（ハードディスクドライブ：Hard disk drive）３８を備える。また、コンピュータ３０は、モニタ３２が接続される表示処理部４０、及びマウス５２及びキーボード５４が接続される入力インターフェイス（以下、「Ｉ／Ｆ」という）４２を備える。また、コンピュータ３０は、可搬型記憶媒体５６へのデータの書き込み、及び可搬型記憶媒体５６からのデータの読み出しを行う書き込み／読み取り部４４を備える。さらに、コンピュータ３０は、ネットワーク２２に接続されるＬＡＮ（ローカル・エリア・ネットワーク：Local Area Network）Ｉ／Ｆ４６を備える。
【００１８】
モニタ３２としては、液晶表示装置（ＬＣＤ：Liquid Crystal Display）、ブラウン管（ＣＲＴ：Cathode Ray Tube）、有機エレクトロルミネセンス表示装置（ＯＥＬＤ：organic electroluminescence display）が適用できる。また、モニタ３２としては、プラズマディスプレイパネル（ＰＤＰ：Plasma Display Panel）、及び電界放出ディスプレイ（ＦＥＤ：Field Emission Display）等が適用できる。
【００１９】
可搬型記憶媒体５６としては、ＳＳＤ（Solid State Drive）、ＤＶＤ(Digital Versatile Disc)ディスク、ＩＣカード（integrated circuit card）、光磁気ディスク、及びＣＤ−ＲＯＭ（Compact Disc Read Only Memory）等が適用できる。
【００２０】
図３には、管理対象サーバ１６Ａのブロック図が示される。なお、各管理対象サーバの構成は同様であるため、ここでは、管理対象サーバ１６Ａについて説明する。図３に示すように、管理対象サーバ１６Ａは、管理対象サーバ１６Ａ本体として機能するコンピュータ３１を備える。コンピュータ３１は、管理サーバ１２本体として機能するコンピュータ３０と同様に、ＣＰＵ３５、ＲＡＭ３７、ＨＤＤ３９、表示処理部４１、入力Ｉ／Ｆ４３、書き込み／読み取り部４５、及びＬＡＮ  Ｉ／Ｆ４７、可搬型記憶媒体５６を備える。なお、管理対象サーバ１６Ａも、管理サーバ１２と同様に、モニタ、マウス、及びキーボードを備えてもよい。
【００２１】
各グループＡ、Ｂ・・・に対応して設けられる共用ＤＢ１４Ａ、１４Ｂ・・・は同様の構成であるので、以下、共用ＤＢ１４Ａのみ説明し、共用ＤＢ１４Ｂ・・・の説明は省略する。共用ＤＢ１４Ａは、以下のアクションテーブル６２（図４参照）及びサーバ管理テーブル６４（図５参照）における各インデックスのデータ及び各インデックスに対応するデータが対応して記憶される領域１４Ａ１、１４Ａ２（図１参照）を有する。管理サーバ１２及び管理対象サーバ１６Ａ、１８Ａ、２０Ａは、各インデックスのデータ及び各インデックスに対応するデータを共用ＤＢ１４Ａから読み出し、ＲＡＭ３６に展開し、アクションテーブル６２及びサーバ管理テーブル６４を作成する。
【００２２】
すなわち、ＲＡＭ３６に展開された各テーブルに設けられた各インデックスに対応した各カラムに書き込まれたデータは、共用ＤＢ１４Ａの各領域１４Ａ１、１４Ａ２に、各インデックスのデータと共に、各インデックスに対応するデータとして記憶される。以下では、説明を簡単にするため、共用ＤＢ１４Ａに記憶された各データを、ＲＡＭ３６に作成されたアクションテーブル６２又はサーバ管理テーブル６４として説明する場合もある。
【００２３】
図４には、アクションテーブル６２が示される。図４に示すように、アクションテーブル６２では、インデックスとして、「対象サーバ」、「サーバ履歴」、「指示」、「動作状態」、及び「カウント」が定められる。アクションテーブル６２には、インデックス「対象サーバ」に対応して対象サーバカラム６２Ａが設けられる。対象サーバカラム６２Ａは、後述するように指示された処理を実行させる管理対象サーバを指定する場合に、指定する管理対象サーバを識別する識別情報が記憶される。識別情報は、管理対象サーバを一意に識別可能な情報であればよく、例えばＩＰ（Internet Protocol）アドレス（例えば、192.168.0.1等）、サーバ名等を用いることができる。本実施形態では、管理対象サーバの識別情報としてサーバ名を用いることとし、管理対象サーバ１６Ａ、１８Ａ、２０Ａの各々の識別情報を、「サーバ１」、「サーバ２」、及び「サーバ３」とする。
【００２４】
また、アクションテーブル６２には、インデックス「サーバ履歴」に対応してサーバ履歴カラム６２Ｂが設けられる。サーバ履歴カラム６２Ｂには、詳細には後述するが、指示された処理を同じ管理対象サーバが再度実行しないようにするために、すでに処理を取得または引き継いだ管理対象サーバの識別情報が記憶される。
【００２５】
また、アクションテーブル６２には、インデックス「指示」に対応して指示カラム６２Ｃが設けられる。指示カラム６２Ｃには、管理対象サーバに処理の実行を指示するための動作指示情報が記憶される。動作指示情報が示す処理には、例えば、電源ON/OFF、仮想マシン（ＶＭ（virtual machine））の作成や移動、管理対象サーバの追加等がある。
【００２６】
また、アクションテーブル６２には、インデックス「動作状態」に対応して動作状態カラム６２Ｄが設けられる。動作状態カラム６２Ｄには、管理対象サーバの動作状態を示す動作情報が記憶される。本実施形態では、動作情報として、処理の実行を開始していないことを示す「未実行」、処理を実行中であることを示す「実行中」、処理の実行が完了したことを示す「完了」、処理が異常終了した場合の「異常終了」または「実行不可」が書き込まれる。
【００２７】
また、アクションテーブル６２には、インデックス「カウント」に対応してカウントカラム６２Ｅが設けられる。カウントカラム６２Ｅには、指示された処理を実行した管理対象サーバの数が記憶される。
【００２８】
図５には、サーバ管理テーブル６４が示される。図５に示されるように、サーバ管理テーブル６４には、管理対象サーバ１６Ａ、１８Ａ、及び２０Ａに対応して定められた記憶領域６４Ａ、６４Ｂ、６４Ｃが設けられる。また、サーバ管理テーブル６４には、管理対象サーバ１６Ａ、１８Ａ、及び２０Ａに共通する記憶領域６４Ｄが設けられる。記憶領域６４Ａ、６４Ｂ、６４Ｃはそれぞれ同様であるので、以下、記憶領域６４Ａについてのみ説明し、他の記憶領域６４Ｂ、６４Ｃの説明を省略する。
【００２９】
記憶領域６４Ａのインデックス（項目）として、「サーバ種別」、「電源状態」、「ＣＰＵ」、「メモリ」、「サーバ種類」、「生存状態」、及び「生存途絶」が定められる。
【００３０】
記憶領域６４Ａには、インデックス「サーバ種別」に対応してサーバ種別カラム６４Ａ１が設けられる。サーバ種別カラム６４Ａ１には、管理対象サーバ１６Ａの型番、例えば、BX922S2等が記憶される。
【００３１】
また、記憶領域６４Ａには、インデックス「電源状態」に対応して電源状態カラム６４Ａ２が設けられる。電源状態カラム６４Ａ２には、管理対象サーバ１６Ａの電源状態、例えば、ON/OFFが記憶される。
【００３２】
また、記憶領域６４Ａには、インデックス「ＣＰＵ」に対応してＣＰＵカラム６４Ａ３が設けられる。ＣＰＵカラム６４Ａ３には、ＣＰＵの周波数、ＣＰＵのコア数などが記憶される。
【００３３】
また、記憶領域６４Ａには、インデックス「メモリ」に対応してメモリカラム６４Ａ４が設けられる。メモリカラム６４Ａ４には、メモリ容量が記憶される。
【００３４】
また、記憶領域６４Ａには、インデックス「サーバ種類」に対応してサーバ種類カラム６４Ａ５が設けられる。サーバ種類カラム６４Ａ５には、管理対象サーバ１６ＡがＶＭか物理サーバかを示す情報、例えば、ＶＭ／物理が記憶される。
【００３５】
また、記憶領域６４Ａには、インデックス「生存状態」に対応して生存状態カラム６４Ａ６が設けられる。生存状態カラム６４Ａ６には、管理対象サーバ１６Ａの生存を確認するための生存情報が記憶される。生存情報の一例として、本実施形態では、管理対象サーバ１６Ａが共用ＤＢ１４Ａにアクセスした時刻（通信時間）、例えば、年/月/日/時：分：秒（yy/mm/dd/hh:mm:ss）を用いる。なお、単純な１、０のフラグを用いてもよい。
【００３６】
また、記憶領域６４Ａには、インデックス「生存途絶」に対応して生存途絶カラム６４Ａ７が設けられる。生存途絶カラム６４Ａ７には、管理対象サーバ１６Ａが生存途絶しているか否かを示すデータが記憶される。例えば、管理対象サーバ１６Ａが生存途絶している場合には、生存途絶していることを示すtrueが記憶される。管理対象サーバ１６Ａが生存している場合は何も記憶されない（空欄)。管理サーバ１２は、生存途絶カラム６４Ａ７の内容から、管理対象サーバ１６Ａが生存（稼働）しているか否かを判断することができる。
【００３７】
記憶領域６４Ｄには、インデックス「生存サーバ数」に対応して生存サーバ数カラム６４Ｄ１が設けられる。生存サーバ数カラム６４Ｄ１には、対応するグループ内で稼働（生存）中の管理対象サーバの数が記憶される。初期状態では、対応するグループ内の管理対象サーバの総数（上記例では３）が生存サーバ数カラム６４Ｄ１に記憶される。初期状態後、例えば、１台の管理対象サーバが生存しなくなった場合、生存サーバ数カラム６４Ｄ１に記憶された数が１減少する。また、非生存であった管理対象サーバが復帰した場合、生存サーバ数カラム６４Ｄ１に記憶された数が１増加する。管理対象サーバ１６Ａが当該グループに追加された場合も、生存サーバ数カラム６４Ｄ１に記憶された数が１増加する。
【００３８】
管理サーバ１２本体として機能するコンピュータ３０は、機能的には、図６に示すよう、取得部７２、第１判断部７４、更新部７６、通知部７８、書き込み部８２、第２判断部８４、及び通知削除部８６を有する。取得部７２、第１判断部７４、更新部７６、及び通知部７８は、後述する生存確認処理が実行される際に機能する機能部である。書き込み部８２、第２判断部８４、及び通知削除部８６は、後述する動作指示処理が実行される際に機能する機能部である。
【００３９】
また、管理対象サーバ１６Ａ本体として機能するコンピュータ３１は、機能的には、図７に示すように、第１書き込み部８０、取得部８８、判断部９０、実行部９２、及び第２書き込み部９４を有する。第１書き込み部８０は、後述する生存情報書き込み処理が実行される際に機能する機能部である。取得部８８、判断部９０、実行部９２、及び第２書き込み部９４は、後述する指示実行処理が実行される際に機能する機能部である。
【００４０】
図８に示すように、管理サーバ１２のＨＤＤ３８には、後述する生存確認処理及び動作指示処理を実行するための管理プログラム５００が記憶されている。管理サーバ１２のＣＰＵ３４は、ＨＤＤ３８から管理プログラム５００を読み出してＲＡＭ３６に展開し、管理プログラム５００が有するプロセスを順次実行する。
【００４１】
管理プログラム５００は、取得プロセス５７２と、第１判断プロセス５７４と、更新プロセス５７６と、通知プロセス５７８と、書き込みプロセス５８２と、第２判断プロセス５８４と、通知削除プロセス５８２とを有する。ＣＰＵ３４は、取得プロセス５７２を実行することで、図６に示す取得部７２として動作する。また、ＣＰＵ３４は、第１判断プロセス５７４を実行することで、図６に示す第１判断部７４として動作する。また、ＣＰＵ３４は、更新プロセス５７６を実行することで、図６に示す更新部７６として動作する。また、ＣＰＵ３４は、通知プロセス５７８を実行することで、図６に示す通知部７８として動作する。また、ＣＰＵ３４は、書き込みプロセス５８２を実行することで、図６に示す書き込み部８２として動作する。また、ＣＰＵ３４は、第２判断プロセス５８４を実行することで、図６に示す第２判断部８４として動作する。また、ＣＰＵ３４は、通知削除プロセス５８６を実行することで、図６に示す通知削除部８６として動作する。
【００４２】
図９に示すように、管理対象サーバ１６ＡのＨＤＤ３９には、後述する生存情報書き込み処理及び指示実行処理を実行するための管理対象プログラム６００が記憶されている。管理対象サーバ１６ＡのＣＰＵ３５は、ＨＤＤ３９から管理対象プログラム６００を読み出してＲＡＭ３７に展開し、管理対象プログラム６００が有するプロセスを順次実行する。
【００４３】
管理対象プログラム６００は、第１書き込みプロセス６８０と、取得プロセス６８８と、判断プロセス６９０と、実行プロセス６９２と、第２書き込みプロセス６９４とを有する。ＣＰＵ３５は、第１書き込みプロセス６８０を実行することで、図７に示す第１書き込み部８０として動作する。また、ＣＰＵ３５は、取得プロセス６８８を実行することで、図７に示す取得部８８として動作する。また、ＣＰＵ３５は、判断プロセス６９０を実行することで、図７に示す判断部９０として動作する。また、ＣＰＵ３５は、実行プロセス６９２を実行することで、図７に示す実行部９２として動作する。また、ＣＰＵ３５は、第２書き込みプロセス６９４を実行することで、図７に示す第２書き込み部９４として動作する。
【００４４】
なお、上記では、各プログラムをＨＤＤ３８及び３９の各々から読み出す場合を例示したが、必ずしも最初からＨＤＤ３８及び３９の各々に記憶させておく必要はない。例えば、管理サーバ１２や管理対象サーバ１６Ａに接続されて使用される可搬型記憶媒体５６に、対応する各プログラムを記憶させておいてもよい。そして、管理サーバ１２や管理対象サーバ１６Ａが可搬型記憶媒体５６から、対応する各プログラムを取得して実行するようにしてもよい。また、通信回線を介し管理サーバ１２や管理対象サーバ１６Ａに接続される他のコンピュータ又はサーバ装置等の記憶部に、上記プログラムを記憶させておいてもよい。この場合、管理サーバ１２や管理対象サーバ１６Ａは他のコンピュータ又はサーバ装置等から、対応するプログラムを取得して実行する。
【００４５】
管理対象サーバ１８Ａや管理対象サーバ２０Ａも、管理対象サーバ１６Ａにおける機能部（図７）と同様の機能部を有する。また、管理対象サーバ１８Ａや管理対象サーバ２０ＡのＨＤＤ３９にも、管理対象プログラム６００が記憶される。管理対象サーバ１８Ａや管理対象サーバ２０Ａの管理対象プログラム６００の記憶場所や読み出し方法も、管理対象サーバ１６Ａの場合と同様である。
【００４６】
次に、実施形態の作用を説明する。管理サーバ１２が起動されると、管理サーバ１２において、管理対象サーバの生存を確認する生存確認処理が実行される。また、マウス５２及びキーボード５４等を介して、管理者から管理対象サーバに実行させる処理が入力されると、管理サーバ１２において、管理対象サーバに処理の実行を指示する動作指示処理が実行される。一方、管理対象サーバ１６Ａが起動されると、管理対象サーバ１６Ａにおいて、生存情報書き込み処理及び指示実行処理が実行される。なお、以下では、管理サーバ１２、及びグループＡの管理対象サーバ１６Ａの処理を主として説明する。また、同じグループＡの管理対象サーバ１８Ａ、２０Ａ、他のグループＢ・・・の各管理対象サーバについても同様であるので、その説明を省略する。以下、各処理について詳述する。
【００４７】
まず、生存確認処理について説明する。図１０には、管理サーバ１２が繰り返し実行する管理対象サーバ１６Ａの生存確認処理の一例を示すフローチャートが示される。
【００４８】
ステップ１０２で、第１判断部７４は、本処理がスタートしてから所定時間待機する。
【００４９】
ステップ１０４で、取得部７２は、共用ＤＢ１４Ａから、サーバ管理テーブル６４のデータを取得し、管理対象サーバ１６Ａに対応する記憶領域６４Ａから各インデックス及びインデックスに対応するデータを取得する。
【００５０】
以下では、管理対象サーバ１６Ａの生存を確認する処理が説明されるが、管理サーバ１２は、他の管理対象サーバ１８Ａ、２０Ａの生存の確認もする。管理サーバ１２が他の管理対象サーバ１８Ａ、２０Ａの生存を確認する場合におけるステップ１０４の処理では、サーバ管理テーブル６４のデータは既に取得しているので、サーバ管理テーブル６４のデータを新たに取得はしない。管理サーバ１２が他の管理対象サーバ１８Ａ、２０Ａの生存を確認する場合におけるステップ１０４の処理では、既に取得したサーバ管理テーブル６４のデータの中から、他の管理対象サーバ１８Ａ、２０Ａに対応するデータを取得する。
【００５１】
ステップ１０６で、第１判断部７４は、生存状態カラム６４Ａ６に生存情報（ここでは通信時間）が記憶さているか否かを判断する。
【００５２】
ここで、ステップ１０６の処理の技術的意味を説明する。
【００５３】
まず、管理対象サーバ１６Ａは、図１１に一例を示す生存情報書き込み処理を繰り返し実行する。図１１のステップ１２２で、第１書き込み部８０は、生存情報書き込み処理がスタートしたときから所定時間待機する。次に、ステップ１２４で、第１書き込み部８０は、共用ＤＢ１４Ａに記憶されたサーバ管理テーブル６４における、管理対象サーバ１６Ａに対応する生存状態カラム６４Ａ６に、通信時間（現在時刻）を生存情報として書き込む。
【００５４】
上記ステップ１２４で生存状態カラム６４Ａ６に書き込まれた生存情報は、後述するように、管理サーバ１２により消去される（図１０のステップ１１４）。管理対象サーバ１６Ａは、生存情報書き込み処理を繰り返し実行するので、管理対象サーバ１６Ａの第１書き込み部８０は、ステップ１２２で所定時間待機し、再び共用ＤＢ１４Ａにアクセスした通信時間を生存情報として生存状態カラム６４Ａ６に書き込む。管理サーバ１２においても、生存確認処理を繰り返し実行するため、管理サーバ１２は、生存状態カラム６４Ａ６に書き込まれた生存情報を消去する。このように、管理対象サーバ１６Ａが生存していれば、生存状態カラム６４Ａ６に新しい通信時間が生存情報として一定間隔で書き込まれる。一方、管理対象サーバ１６Ａの電源が遮断されたり管理対象サーバ１６Ａに故障が発生したりして、管理対象サーバ１６Ａが生存しなくなると、共用ＤＢ１４Ａには、管理対象サーバ１６Ａからアクセスできない。従って、生存状態カラム６４Ａ６には、管理対象サーバ１６Ａから新たな生存情報の書き込みが行われない。よって、生存状態カラム６４Ａ６に生存情報が書き込まれていない場合には、管理対象サーバ１６Ａが生存していないと判断される。一方、生存状態カラム６４Ａ６に生存情報が書き込まれている場合には、管理対象サーバ１６Ａが生存していると判断される。
【００５５】
このように、管理サーバ１２は、生存状態カラム６４Ａ６に書き込まれた生存情報に基づいて管理対象サーバ１６Ａの生存を判断する。管理対象サーバ１６Ａは、上記ステップ１２２で所定時間待機することにより、所定のタイミングで生存状態カラム６４Ａ６に生存情報を書き込む。なお、所定のタイミングは、各管理対象サーバに対する管理サーバによる生存確認の実施周期に基づいて予め決められた一定間隔のタイミングとすることができる。また、管理サーバ１２は、管理対象サーバ１６Ａにより生存情報が書き込まれたタイミングに対応するタイミングで生存状態カラム６４Ａ６を確認する。対応するタイミングとして、各管理対象サーバにより生存情報が書き込まれるタイミングに基づいて予め決められた定期的なタイミングを設定することができる。この対応するタイミングで生存状態カラム６４Ａ６の確認が実施されるように、上記ステップ１０２で管理サーバ１２が待機する所定時間に適切な値に設定する。
【００５６】
以上のように、ステップ１０６では、管理サーバ１２の第１判断部７４は、管理対象サーバ１６Ａが生存しているか否かを判断する。
【００５７】
ステップ１０６の判定結果が肯定判定の場合には、管理対象サーバ１６Ａは生存していると判断され、ステップ１０８で、第１判断部７４は、生存途絶カラム６４Ａ７にtrueが書き込まれているか否かを判断する。詳細には後述するが、第１判断部７４は、生存途絶カラム６４Ａ７にtrueが書き込まれているか否かにより、一旦生存しなくなった管理対象サーバ１６Ａが復帰したか否かを判断する。
【００５８】
ステップ１０８の判定結果が否定判定の場合には、管理対象サーバ１６Ａは、復帰したのではなく、生存し続けていると判断できる。ステップ１０８の判定結果が否定判定の場合には、生存確認処理はステップ１１４にスキップする。ステップ１１４で、更新部７６は、上記ステップ１０６で管理対象サーバ１６Ａが生存しているか否かを判断できるように生存状態カラム６４Ａ６の生存情報を消去する。よって、共用ＤＢ１４Ａでは、生存状態のインデックスに対応してデータが記憶されないことになる。
【００５９】
このように、管理対象サーバ１６Ａが生存していれば、管理対象サーバ１６Ａによる生存状態カラム６４Ａ６への生存情報の書き込みと、管理サーバ１２による生存状態カラム６４Ａ６に書き込まれた生存情報の消去とが交互に連続して行われる。
【００６０】
一方、管理対象サーバ１６Ａが生存していなければ、生存状態カラム６４Ａ６への生存情報の書き込みは行われないため、ステップ１０６の判定結果が否定判定となる。ステップ１０６の判定結果が否定判定の場合には、生存確認処理はステップ１１６に進む。ステップ１１６で、通知部７８は、生存途絶を管理者に通知する。具体的には、表示処理部４０を制御して、モニタ３２に、管理対象サーバ１６Ａが生存していないことを表示する。
【００６１】
ステップ１１７で、第１判断部７４は、生存途絶カラム６４Ａ７にtrueが書き込まれているか否かを判断する。ステップ１１７の判定結果が否定判定の場合には、前回生存確認処理を実行した際には生存していた管理対象サーバ１６Ａが、今回の生存確認処理が実行された際に生存していないと判断された場合である。ステップ１１７の判定結果が否定判定の場合には、ステップ１１８で、更新部７６は、サーバ管理テーブル６４における生存サーバ数カラム６４Ｄ１の値から１引く。次に、ステップ１２０で、更新部７６は、生存途絶カラム６４Ａ７に、trueを記憶する。ステップ１１７の判定結果が肯定判定の場合は、前回までに実行された生存確認処理で、管理対象サーバ１６Ａが生存していないことが既に判断されている場合である。ステップ１１７の判定結果が肯定判定の場合には、ステップ１１８、１２０がスキップされ、生存確認処理は終了する。
【００６２】
以上説明したように、管理対象サーバ１６Ａが生存し続けると、ステップ１０６の判定結果は肯定判定となりステップ１０８の判定結果は否定判定となる。
【００６３】
一方、管理対象サーバ１６Ａが非生存中はステップ１０６の判定結果は否定判定となる。しかし。管理対象サーバ１６Ａが復帰して生存するようになると、復帰した管理対象サーバ１６Ａにより図１１の生存情報書き込み処理が実行され、生存状態カラム６４Ａ６に生存情報が書き込まれ、ステップ１０６の判定結果は肯定判定となる。一方、次のステップ１０８の判定結果は肯定判定となる。なぜなら、生存途絶カラム６４Ａ７は、管理対象サーバ１６Ａが生存しなくなったときからtrueが記憶され続けるからである。以上のように、管理対象サーバ１６Ａが生存しなくなった後、復帰した場合には、ステップ１０６の判定結果は肯定判定となり、かつステップ１０８の判定結果も肯定判定となる。
【００６４】
ステップ１０８の判定結果が肯定判定の場合には、管理対象サーバ１６Ａが復帰したと分かるので、ステップ１１０で、更新部７６は、生存途絶カラム６４Ａ７を空にし、ステップ１１２で、更新部７６は、生存サーバ数カラム６４Ｄ１の値を１増やす。なお、ステップ１１０の処理はステップ１１２の処理の後に実行してもよい。
【００６５】
（管理対象サーバ１６Ａの状態を特定する態様における効果）
【００６６】
以上説明したように、上記実施形態では、管理サーバ１２は、共用ＤＢ１４Ａにおける管理対象サーバ１６Ａ〜２０Ａの各々に対応する生存途絶カラムを参照すれば、管理対象サーバ１６Ａ〜２０Ａのそれぞれが生存しているか否かを確認することができる。よって、管理サーバ１２は、管理対象サーバ１６Ａ〜２０Ａの各々と通信しなくとも、管理対象サーバ１６Ａ〜２０Ａが生存中か否かを確認することができるので、管理サーバ１２の負荷を減らすことができる。また、管理サーバ１２は、管理対象サーバ１６Ａ〜２０Ａの各々と通信しないので、管理対象サーバ１６Ａ〜２０Ａにおける通信量も削減される。また、管理対象サーバ１６Ａ〜２０Ａのいずれかに異常が発生した場合でも、他の管理対象サーバの生存確認に影響を及ぼさないため、確実に各管理対象サーバの生存確認を行うことができる。
【００６７】
（管理対象サーバ１６Ａの状態を特定する態様における変形例）
【００６８】
以上説明した実施形態では、管理対象サーバ１６Ａは、管理対象サーバ１６Ａに対応して設けられた生存状態カラム６４Ａ６に所定のタイミングで生存情報として通信時間を書き込む。また、管理サーバ１２は、該所定のタイミングに対応するタイミングで、この書き込まれた通信時間を確認する。確認後、管理サーバ１２は、通信時間を消去する。本実施形態は、上記のような態様に限定されず、以下のような変形例とすることも可能である。
【００６９】
（第１の変形例）
第１の変形例では、管理対象サーバ１６Ａが、所定のタイミングで生存状態カラム６４Ａ６の通信時間を消した後、生存状態カラム６４Ａ６に新しい通信時間を書き込む。管理サーバ１２は、この書き込みを該所定のタイミングに対応するタイミングで取得し、前回取得した通信時間と今回取得した通信時間とを比較する。書き込まれていた通信時間が前回から変化している場合には、管理対象サーバは生存していると判断することができる。このように、第１の変形例でも上記実施形態と同様に管理対象サーバ１６Ａの生存状態を確認することができる。
【００７０】
（第２の変形例）
第２の変形例では、管理サーバ１２が、生存状態カラム６４Ａ６に新しい通信時間を所定のタイミングで書き込む。管理対象サーバ１６Ａは、この書き込みを該所定のタイミングに対応するタイミングで消去する。管理サーバ１２は、新しい通信時間を書き込む際に、前回書き込んだ通信時間が消去されていれば、管理対象サーバ１６Ａは生存していると判断することができる。このように、第２の変形例でも上記実施形態と同様に管理対象サーバ１６Ａの生存状態を確認することができる。
【００７１】
（第３の変形例）
上記実施形態では、予め管理対象サーバ１６Ａに対応して設けられた生存状態カラム６４Ａ６に通信時間を記憶する。しかし、第３の変形例では、管理対象サーバ１６Ａは、通信時間のデータを、管理対象サーバ１６Ａの識別情報と対応して、共用ＤＢ１４Ａの任意の領域に記憶する。管理サーバ１２は、管理対象サーバ１６Ａが識別情報及び通信時間を新たに記憶する所定のタイミングに対応するタイミングで、管理対象サーバ１６Ａの識別情報に基づいて記憶された通信時間を探し、当該通信時間が新たに記憶されたか否かを判断する。第３の変形例でも上記実施形態と同様に管理対象サーバ１６Ａの生存状態を確認することができる。
【００７２】
（第４の変形例）
第４の変形例では、管理対象サーバ１６Ａは、生存状態カラム６４Ａ６に通信時間を書き込むことに代え、又は生存状態カラム６４Ａ６に通信時間を書き込むと共に、自装置の動作状態を書き込む。よって、管理サーバ１２は、管理対象サーバ１６Ａの動作状態を確認することができる。
【００７３】
なお、上記実施形態及び変形例において、生存状態として通信時間を生存状態カラム６４Ａ６に書き込む場合について説明したが、これに限定されない。数字、記号、その他生存を示すフラグ等を書き込むようにしてもよい。また、例えば、生存状態カラム６４Ａ６に書き込む毎に、数字を１ずつ増やすなど、前回書き込んだ生存情報と異なる生存情報を書き込むことで、第１の変形例と同様に、書き込まれた生存情報の変化から、管理対象サーバ１６Ａの生存を判断することもできる。
【００７４】
（管理対象サーバへの動作指示）
次に、管理サーバ１２が管理対象サーバ１６Ａ〜２０Ａに処理の実行を指示する動作指示処理、及び管理対象サーバ１６Ａ〜２０Ａが指示された処理を実行する指示実行処理について説明する。
【００７５】
図１２には、管理サーバ１２が実行する管理対象サーバ１６Ａ〜２０Ａに対する動作指示処理の一例を示すフローチャートが示される。
【００７６】
図１４（Ａ）には、管理サーバ１２から共用ＤＢ１４Ａに動作指示があることが示され、図１４（Ｂ）には、管理サーバ１２が動作指示をする場合にデータが書き込まれるアクションテーブル６２が示される。なお、図１４（Ｂ）において、説明の便宜のため、サーバ管理テーブル６４の生存サーバ数カラム６４Ｄ１に記憶される生存サーバ数も、アクションテーブル６２と合わせて表記している（図１４（Ｂ）中の６２Ｆ）。以下、図１５（Ｂ）、図１６（Ｂ）、図１７（Ｂ）、及び図１８（Ｂ）においても同様である。
【００７７】
管理サーバ１２は、グループＡの管理対象サーバ１６Ａ〜２０Ａに直接動作指示するのではなく、図１４（Ａ）に示すように、共用ＤＢ１４Ａに動作指示情報を書き込む。具体的には、図１２のステップ１３２で、書き込み部８２は、図１４（Ｂ）に示すように、指示カラム６２Ｃに、動作指示情報を書き込む。図１４（Ｂ）では、処理として、ＶＭゲストの作成を指示する動作指示情報が書き込まれた場合の例である。グループＡに属する管理対象サーバ１６Ａ〜２０Ａの何れかを選択することなく指示した処理を実行させる場合には、書き込み部８２は、対象サーバカラム６２Ａには何も書き込まない。一方、グループＡに属する管理対象サーバ１６Ａ〜２０Ａから選択した一つまたは複数の管理対象サーバに指示した処理を実行させる場合には、書き込み部８２は、対象サーバカラム６２Ａに、指示した処理を実行させる管理対象サーバの識別情報を書き込む。
【００７８】
次に、ステップ１３４で、書き込み部８２は、図１４（Ｂ）に示すように、動作状態カラム６２Ｄに「未実行」を書き込む。次に、ステップ１３６で、書き込み部８２は、図１４（Ｂ）に示すように、カウントカラム６２Ｅに「０」を書き込む。
【００７９】
なお、ステップ１３２〜１３６の処理の順番は、ステップ１３２〜１３６の順番に限定されず、何れのステップが最初に、中間に、及び最後に実行されてもよい。
【００８０】
ステップ１４０で、第２判断部８４は、共用ＤＢ１４Ａにおけるアクションテーブル６２の動作状態カラム６２Ｄのデータを取得し、動作状態が「未実行」か否かを判断する。ステップ１４０の処理は、ステップ１４０の判定結果が否定判定となるまで繰り返される。
【００８１】
図１５（Ａ）には、管理サーバ１２からの動作指示を管理対象サーバ１６Ａが取得することが示され、図１５（Ｂ）には、管理対象サーバ１６Ａが動作指示を取得した場合にデータが書き込まれるアクションテーブル６２が示される。詳細には後述するが、対象サーバカラム６２Ａに管理対象サーバの識別情報が書き込まれている場合には、グループＡに属する管理対象サーバ１６Ａ〜２０Ａのうち、その識別情報が示す管理対象サーバが動作指示を取得する。対象サーバカラム６２Ａに管理対象サーバの識別情報が書き込まれていない場合には、グループＡに属する管理対象サーバ１６Ａ〜２０Ａのうちの何れかの管理対象サーバが動作指示を取得する。例えば、共用ＤＢ１４Ａに動作指示が書き込まれてから、最初に共用ＤＢ１４Ａにアクセスした管理対象サーバが動作指示を取得する。ここでは、最初にアクセスした管理対象サーバが、管理対象サーバ１６Ａであった場合について説明する。動作指示を取得した管理対象サーバ１６Ａは、図１５（Ｂ）に示すように、動作状態カラム６２Ｄに「実行中」を書き込む。
【００８２】
このように、例えば、管理対象サーバ１６Ａが動作状態カラム６２Ｄに「実行中」を書き込むと、ステップ１４０の判定結果が否定判定となる。ステップ１４０の判定結果が否定判定となった場合には、ステップ１４２で、管理サーバ１２は、動作中の管理対象サーバ１６Ａの生存確認を実行する。ステップ１４２の処理は後述する。なお、「動作中の管理対象サーバ」とは、動作指示を取得または引き継いだ管理対象サーバである。なお、動作指示の引継ぎについては後述する。
【００８３】
なお、ステップ１４０の判定は、動作状態カラム６２Ｄに書き込まれた動作状態が「未実行」から「実行中」へ変更になったことを検出するものである。しかし、管理サーバ１２が、指示カラム６２Ｃに動作指示情報を書き込んでから、ステップ１４０の判定を行うまでの時間が長すぎると、動作指示を取得した管理対象サーバの動作状態が、「実行中」から「異常終了」、「実行不可」、または「完了」に変わる場合もある。このような場合に、ステップ１４０の判定が否定判定となってしまうことを回避するため、ステップＳ１４０の判定は、ごく短い時間間隔で実行するように設定しておく。
【００８４】
ステップ１４４で、共用ＤＢ１４Ａから、アクションテーブル６２における動作状態カラム６２Ｄに記憶されたデータを取得し、動作状態が「実行中」か否かを判断する。ここでは、上記のように動作指示を取得した管理対象サーバ１６Ａの動作状態が「実行中」である。よって、ステップ１４４の判定結果が肯定判定となり、動作指示処理はステップ１４２に戻り、動作中の管理対象サーバ１６Ａの生存確認処理を実行する。
【００８５】
ステップ１４４の判定結果が否定判定の場合には、ステップ１４６で、第２判断部８４は、上記ステップ１４４で取得した動作状態カラム６２Ｄに記憶された動作状態が「完了」か否かを判断する。指示された処理の実行が完了した場合には、処理を完了した管理対象サーバにより、アクションテーブル６２における動作状態カラム６２Ｄの「実行中」（図１５（Ｂ）参照）が、「完了」に書き変えられる。動作状態カラム６２Ｄにおける動作状態が「完了」の場合には、ステップ１４６の判定結果が肯定判定となる。ステップ１４６の判定結果が肯定判定の場合には、ステップ１４８で、通知削除部８６は、指示された処理の完了を管理者に通知する。具体的には、通知削除部８６は、表示処理部４０を制御して、モニタ３２に支持された処理が完了したことを表示する。更に、通知削除部８６は、アクションテーブル６２における指示カラム６２Ｃから動作指示情報を削除する。ステップ１４８の処理が実行されると、動作指示処理は終了する。
【００８６】
ステップ１４６の判定結果が否定判定の場合には、ステップ１５０で、第２判断部８４は、上記ステップ１４４で取得した動作状態カラム６２Ｄに記憶された動作状態が「異常終了」か否かを判断する。
【００８７】
図１６（Ａ）には、管理対象サーバ１６Ａに動作エラーが発生することが示され、図１６（Ｂ）には、動作エラーの発生の際にデータが書き込まれるアクションテーブル６２が示される。動作指示を取得した管理対象サーバ１６Ａで、指示された処理が完了せず、図１６（Ａ）に示すように、動作エラーが発生する場合がある。例えば、上記の例では、指示された処理はＶＭの作成であるが、管理対象サーバ１６ＡにおけるＣＰＵ３４の利用率やＨＤＤ３８のメモリ容量からＶＭを新たに作成できない場合がある。このように管理対象サーバ１６Ａにおいて取得した動作指示が示す処理の実行を完了できない動作エラーが発生すると、管理対象サーバ１６Ａは、図１６（Ｂ）に示すように、アクションテーブル６２における動作状態カラム６２Ｄに、「異常終了」を記憶させる。アクションテーブル６２における動作状態カラム６２Ｄに「異常終了」が記憶された場合は、ステップ１５０の判定結果が肯定判定となる。
【００８８】
図１７（Ａ）には、管理サーバ１２からの動作指示を管理対象サーバ１８Ａが引き継ぐことが示され、図１７（Ｂ）には、管理対象サーバ１８Ａが動作指示を引き継ぐ場合にデータが書き込まれるアクションテーブル６２が示される。ステップ１５０の判定結果が肯定判定の場合には、動作指示処理はステップ１４２に戻る。詳細には後述するが、動作指示を取得した管理対象サーバ１６Ａで動作エラーが発生した場合（図１６（Ａ））、図１７（Ａ）に示すように、例えば、管理対象サーバ１８Ａが動作指示を引き継ぐ。動作指示を引き継いだ管理対象サーバ１８Ａは、図１７（Ｂ）に示すように、アクションテーブル６２の動作状態カラム６２Ｄに「実行中」を記憶させる。よって、ステップ１４２を経てステップ１４４で判定結果が肯定判定となる。管理対象サーバ１８Ａで指示された処理の実行が完了すると、ステップ１４６の判定結果が肯定判定となって、ステップ１４８の上記処理が実行される。
【００８９】
管理対象サーバ１８Ａでも動作エラーが生じた場合には、動作指示は管理対象サーバ２０Ａに引き継がれる。管理対象サーバ２０Ａで指示された処理が完了すると、ステップ１４６の判定結果が肯定判定となって、ステップ１４８の上記処理が実行される。
【００９０】
図１８（Ａ）には、管理対象サーバ１６Ａ〜２０Ａの全てに動作エラーが発生したことが示され、図１８（Ｂ）には、管理対象サーバ１６Ａ〜２０Ａの全てに動作エラーが発生した際にデータが書き込まれるアクションテーブル６２が示される。図１８（Ａ）に示すように、グループＡに属する全ての管理対象サーバ１６Ａ〜２０Ａで動作エラーが生ずる場合もある。詳細には後述するが、動作指示を引き継いでいない管理対象サーバが、残り１つとなり、最後の管理対象サーバ２０Ａが動作指示を引き継ぎ、最後の管理対象サーバ２０Ａでも動作エラーが生ずる場合がある。最後の管理対象サーバ２０Ａでも動作エラーが生じた場合、管理対象サーバ２０Ａは、図１８（Ｂ）に示すように、動作状態カラム６２Ｄに「実行不可」を書き込む。動作状態カラム６２Ｄに「実行不可」が記憶されると、ステップ１５０の判定結果が否定判定となる。
【００９１】
ところで、詳細には後述するが、動作指示が示す処理の実行を指定された管理対象サーバで動作エラーが発生する場合がある。動作指示が示す処理の実行を指定された管理対象サーバで動作エラーが発生しても、別の管理対象サーバには動作指示が引き継がれない。この場合、動作指示が示す処理の実行を指定された管理対象サーバが、グループ内の最後の管理対象サーバか否かに関わらず、アクションテーブル６２における動作状態カラム６２Ｄに「実行不可」が書き込まれ、ステップ１５０の判定結果が否定判定となる。
【００９２】
ステップ１５０の判定結果が否定判定の場合、ステップ１５２で、第２判断部８４は、アクションテーブル６２の対象サーバカラム６２Ａに管理対象サーバの識別情報が記憶されているか否かに基づいて、管理対象サーバが指定されているか否かを判断する。
【００９３】
ステップ１５２の判定結果が肯定判定の場合には、動作指示が引き継がれることを予定していないので、動作指示を引き継ぐことができる管理対象サーバが存在しない。そこで、ステップ１５４で、通知削除部８６は、指示された処理の実行が未完了であることを管理者に通知する。具体的には、通知削除部８６は、表示処理部４０を制御して、モニタ３２に指示された処理の実行が未完了となったことを表示する。更に、通知削除部８６は、アクションテーブル６２における指示カラム６２Ｃから動作指示情報を削除する。ステップ１５４の処理が実行されると、動作指示処理は終了する。
【００９４】
ステップ１５２の判定結果が否定判定の場合には、動作指示が引き継がれることが予定されている。また、動作指示処理がステップ１５２に移行するのは、動作指示を引き継ぐ管理対象サーバがグループＡに存在しない場合である。
【００９５】
ここで、図１に示すように、実施形態におけるサーバ管理システム１０は、各グループに対応して共用ＤＢを設けている。各グループに対応して共用ＤＢを設けている理由は次の通りである。多数の管理対象サーバが１つのＤＢを共用すると、全体としての処理時間が長くなるからである。より詳細に説明すると、１つの管理対象サーバがアクセスしている１つのＤＢに、他の多数の管理対象サーバがアクセスすると、他の多数の管理対象サーバには一定時間待つように指示（排他処理）がされる。このような排他処理が繰り返され、全体としての処理時間が長くなるからである。そこで、実施形態では、適切な数、例えば、３個の管理対象サーバを１つのグループに属させている。
【００９６】
このように、複数のグループＡ、Ｂ・・・を設けるのは主として、全体としての処理時間が長くなることを防止するためである。よって、処理を実行する管理対象サーバを指定することなく、あるグループに指示した動作指示は、当該グループに属する管理対象サーバのみにより実行されることを予定しているわけではない。
【００９７】
そこで、ステップ１５２の判定結果が否定判定の場合には、ステップ１５６で、書き込み部８２は、まず、共用ＤＢ１４Ａに記憶された実行中のアクションテーブル６２から動作指示情報を削除する。そして、書き込み部８２は、他グループＢにおける共用ＤＢ１４Ｂに記憶されたアクションテーブル６２の指示カラム６２Ｃに動作指示情報を書き込む。その後、今度はグループＢにおいて管理対象サーバ１６Ｂ〜２０Ｂにおいて指示実行処理が実行される。
【００９８】
次に、図１２のステップ１４２の生存確認処理を説明する。図１３には、図１２のステップ１４２の生存確認処理の一例を示すフローチャートが示される。
【００９９】
ステップ１６２で、第２判断部８４は、所定時間待機する。この所定時間は、動作中の管理対象サーバの生存確認処理を実行する時間間隔を定めるものであり、動作指示に対する管理対象サーバの処理時間、管理対象サーバが共用ＤＢに生存情報を書き込むタイミング等に応じて予め定めておく。
【０１００】
次に、ステップ１６４で、第２判断部８４は、生存確認の対象である管理対象サーバ（以下、「確認対象の管理対象サーバ」という）を特定する。具体的には、第２判断部８４は、アクションテーブル６２の動作状態カラム６２Ｄが「実行中」の場合において、サーバ履歴カラム６２Ｂに記憶された最新の管理対象サーバの識別情報から、確認対象の管理対象サーバを特定する。サーバ履歴カラム６２Ｂには、後述するように、処理を実行した管理対象サーバの履歴が記憶される。例えば、図１５（Ｂ）の場合、サーバ履歴カラム６２Ｂに記憶された「サーバ１」から、管理対象サーバ１６Ａを確認対象の管理対象サーバとして特定する。第２判断部８４は、確認対象の管理対象サーバ１６Ａの生存を確認できるか否かを判断する。具体的には、第２判断部８４は、サーバ管理テーブル６４における生存状態カラム６４Ａ６に対応して共用ＤＢ１４Ａに通信時間が記憶されているか否かを判断することにより、確認対象の管理対象サーバ１６Ａの生存を確認できるか否かを判断する。
【０１０１】
ところで、図１０に示す処理でも、各管理対象サーバの生存確認をしている。しかし、図１０に示す処理のタイミングでは、既に生存していない管理対象サーバについて、生存していないことを確認できない場合もある。そこで、ステップ１６４で、第２判断部８４は、確認対象の管理対象サーバの生存を確認する。
【０１０２】
ステップ１６４の判定結果が肯定判定の場合には、生存確認処理が終了して、動作指示処理はステップ１４４（図１２参照）に進む。ステップ１６４の判定結果が否定判定の場合には、ステップ１６５で、第２判断部８４は、生存途絶カラム６４Ａ７にtrueが記憶されているか否かを判断する。
【０１０３】
ステップ１６５の判定結果が否定判定の場合は、図１０に示す生存確認処理で、確認対象の管理対象サーバに対して生存確認がされていない。そこで、ステップ１６６で、書き込み部８２は、サーバ管理テーブル６４の生存サーバ数カラム６４Ｄ１に記憶された値からを１引く。また、書き込み部８２は、生存途絶カラム６４Ａ７にtrueを記憶する。
【０１０４】
ステップ１６５の判定結果が肯定判定の場合には、図１０に示す生存確認処理で、確認対象の管理対象サーバが生存していないことが確認され、上記ステップ１６６と同様の処理が実行されている（ステップ１１８及びステップ１２０）。そこで、ステップ１６５の判定結果が肯定判定の場合には、ステップ１６６の処理を重ねて実行することを防止するため、ステップ１６６がスキップされ、生存確認処理はステップ１７０に移行する。
【０１０５】
ステップ１７０で、書き込み部８２は、アクションテーブル６２のサーバ履歴カラム６２Ｂから確認対象の管理対象サーバ１６Ａの識別情報を削除し、カウントカラム６２Ｅに記憶されている値から１引く。
【０１０６】
ステップ１６８及びステップ１７０の処理がある理由を説明する。
【０１０７】
管理対象サーバ１６Ａは、上記のようにアクションテーブル６２の動作状態カラム６２Ｄに「実行中」を書き込む（図１５（Ｂ）参照）。更に、管理対象サーバ１６Ａは、サーバ履歴カラム６２Ｂに管理対象サーバ１６Ａの識別情報（サーバ１）を書き込み、カウントカラム６２Ｅの値を１増やす。
【０１０８】
ここで、管理対象サーバ１６Ａがカウントカラム６２Ｅの値を１増やした後、管理対象サーバ１６Ａが生存しなくなった場合を考える。
【０１０９】
管理対象サーバ１６Ａが生存しなくなった場合、上記ステップ１１８または１６６で、サーバ管理テーブル６４の生存サーバ数カラム６４Ｄ１の値（アクションテーブル６２に便宜的に表記した生存サーバ数カラム６２Ｆの値）は１減少される。この段階では、生存サーバ数カラム６４Ｄ１の値は２となる。管理対象サーバ１６Ａが生存しなくなった場合に、カウントカラム６２Ｅの値を１減少しないと、グループＡの全ての管理対象サーバ１６Ａ〜２０Ａが異常終了すると、カウントカラム６２Ｅの値は３となる。
【０１１０】
一方、グループＡの全ての管理対象サーバ１６Ａ〜２０Ａが異常終了したか否かは、後述するように、カウントカラム６２Ｅの値と生存サーバ数カラム６４Ｄ１の値とが一致するか否か判断することにより行われる。
【０１１１】
よって、管理対象サーバ１６Ａが生存しなくなった場合、カウントカラム６２Ｅの値を１減少しないと、カウントカラム６２Ｅの値と生存サーバ数カラム６２Ｆの値とが一致しない。このため、管理サーバ１２は、管理対象サーバ１６Ａ〜２０Ａ以外に管理対象サーバが存在すると判断する。よって、生存確認処理が継続する。
【０１１２】
そこで、書き込み部８２は、管理対象サーバ１６Ａが生存しなくなった場合、カウントカラム６２Ｅの値を１減少する。
【０１１３】
次に、ステップ１７２で、第２判断部８４は、アクションテーブル６２における対象サーバカラム６２Ａに基づいて、処理を実行する管理対象サーバが指定されているか否かを判断する。ステップ１７２の判定結果が肯定判定の場合には、動作指示が引き継がれることを予定していないので、動作指示を引き継ぐことができる管理対象サーバが存在しない。そこで、ステップ１７４で、通知削除部８６は、指示した処理が未完了であることを管理者に通知する。具体的には、通知削除部８６は、表示処理部４０を制御して、モニタ３２に指示した処理が未完了となったことを表示する。更に、通知削除部８６は、アクションテーブル６２における指示カラム６２Ｃから動作指示情報を削除する。ステップ１７４の処理が実行されると、生存確認処理及び動作指示処理は終了する。
【０１１４】
ステップ１７２の判定結果が否定判定の場合には、ステップ１７６で、第２判断部８４は、アクションテーブル６２のカウントカラム６２Ｅにある値と、サーバ管理テーブル６４の生存サーバ数カラム６４Ｄ１にある生存サーバ数とが一致する否かを判断する。
【０１１５】
アクションテーブル６２のカウントカラム６２Ｅにある値は、動作指示を取得または引き継ぎ、かつ実行中に生存途絶しなかった管理対象サーバの数である。また、生存サーバ数カラム６４Ｄ１にある生存サーバ数は、グループＡで現在生存している管理対象サーバの数である。従って、ステップ１７６の判定結果が肯定判定の場合には、グループＡの内の生存している全ての管理対象サーバが動作指示を取得または引き継いだが処理を完了できなかったと判断することができる。特に、動作指示を最後に引き継いだ管理対象サーバが生存しなくなった場合であると判断できる。
【０１１６】
ステップ１７６の判定結果が肯定判定の場合には、ステップ１８０で、通知削除部８６は、指示された処理の実行が未完了であることを管理者に通知する。具体的には、通知削除部８６は、表示処理部４０を制御して、モニタ３２に指示された処理が未完了となったことを表示する。更に、通知削除部８６は、アクションテーブル６２における指示カラム６２Ｃから動作指示情報を削除する。ステップ１８０の処理が実行されると、生存確認処理及び動作指示処理は終了する。なお、ステップ１７６の判定結果が肯定判定の場合には、ステップ１８０に代えて、動作指示処理は、ステップ１５６に進むこともできる。
【０１１７】
ステップ１７６の判定結果が否定判定の場合には、ステップ１７８で、書き込み部８２は、動作状態カラム６２Ｄに「異常終了」を書き込む。これにより、次に共用ＤＢ１４ＡにアクセスしたグループＡの他の管理対象サーバにより動作指示が引き継がれる。
【０１１８】
次に、グループＡに属する管理対象サーバ１６Ａ〜２０Ａの各々において実行される指示実行処理について説明する。管理対象サーバ１６Ａ〜２０Ａの各々で実行される指示実行処理は同様であるので、以下、管理対象サーバ１６Ａで実行される指示実行処理について説明する。
【０１１９】
図１９には、管理対象サーバ１６Ａが繰り返し実行する指示実行処理の一例を示すフローチャートが示される。図１９のステップ２００で、判断部９０は、所定時間待機する。ここで、グループＡに属する各管理対象サーバは、それぞれ所定タイミングで共用ＤＢ１４Ａにアクセスする。共用ＤＢ１４Ａへのアクセスが重複しないように、各管理対象サーバが共用ＤＢ１４Ａにアクセスする所定タイミングは、それぞれ異なるタイミングとする。所定タイミングは、一定間隔で繰り返すタイミングとすることができる。従って、本ステップで待機する所定時間は、各管理対象サーバが共用ＤＢ１４Ａに所定タイミングでアクセスできるような時間を予め設定しておく。
【０１２０】
次に、ステップ２０２で、取得部８８は、共用ＤＢ１４Ａからアクションテーブル６２のデータを取得し、管理対象サーバ１６ＡのＲＡＭ３６に、取得したデータからアクションテーブル６２を作成する。判断部９０は、作成したアクションテーブル６２の動作状態カラム６２Ｄを確認し、動作指示が書き込まれているか否かを判断する。ステップ２０２の判定結果が否定判定の場合には、指示実行処理は終了する。ステップ２０２の判定結果が肯定判定の場合には、ステップ２０４で、判断部９０は、対象サーバカラム６２Ａの内容に基づいて、処理を実行する管理対象サーバが指定されているか否かを判断する。
【０１２１】
ステップ２０４の判定結果が肯定判定の場合には、ステップ２０６で、指定有り実行処理が実行され、ステップ２０４の判定結果が否定判定の場合には、ステップ２０８で、指定無し実行処理が実行される。
【０１２２】
図２０には、図１９のステップ２０６における指定有り実行処理のフローチャートが示される。
【０１２３】
図２０のステップ２１４で、判断部９０は、アクションテーブル６２の対象サーバカラム６２Ａに、自装置の識別情報が記憶されているか否か判断することにより、自装置に対して処理の実行が指示されているか否か判断する。ステップ２１４の判定結果が否定判定の場合には、指定有り実行処理及び指示実行処理は終了する。
【０１２４】
ステップ２１４の判定結果が肯定判定の場合には、自装置の管理対象サーバ１６Ａに対して処理の実行が指示されているので、ステップ２１６で、実行部９２は、指示カラム６２Ｃに記憶された動作指示情報が示す処理、例えば、ＶＭの作成を開始する。処理の実行を開始すると、第２書き込み部９４は、アクションテーブル６２の動作状態カラム６２Ｄに「実行中」を書き込む。これにより、「実行中」のデータが、共用ＤＢ１４Ａに、インデックス「動作状態」に対応して記憶され、図１２のステップ１４４の判定結果が肯定判定となる。
【０１２５】
ステップ２１８で、判断部９０は、指示された処理を正常に終了できたか否かを判断する。ステップ２１８の判定結果が否定判定の場合には、ステップ２２２で、第２書き込み部９４は、アクションテーブル６２の動作状態カラム６２Ｄに「実行不可」を書き込む。これにより、「実行不可」のデータが、共用ＤＢ１４Ａに、インデックス「動作状態」に対応して記憶され、図１２のステップ１５０の判定結果が肯定判定となり、ステップ１５２の判定結果が肯定判定となる。
【０１２６】
ステップ２１８の判定結果が肯定判定の場合には、ステップ２２０で、第２書き込み部９４は、動作状態カラム６２Ｄに「完了」を書き込む。これにより、「完了」のデータが、共用ＤＢ１４Ａに、インデックス「動作状態」に対応して記憶され、図１２のステップ１４６の判定結果が肯定判定となる。
【０１２７】
図２１には、図１９のステップ２０８における指定無し実行処理のフローチャートが示される。
【０１２８】
図２１のステップ２３４で、判断部９０は、サーバ履歴カラム６２Ｂに自装置の識別情報が書き込まれておらず、かつ動作状態カラム６２Ｄに「未実行」又は「異常終了」が書き込まれているか否かを判断する。
【０１２９】
ここで、サーバ履歴カラム６２Ｂに自装置の識別情報が書き込まれている場合は、動作指示を取得または引き継いだが、動作エラーが発生した場合であり、今回も処理の実行を開始しても、同様に動作エラーが発生する。よって、サーバ履歴カラム６２Ｂに自装置の識別情報が書き込まれている場合には、ステップ２３４の判定結果が否定判定となり、指定無し実行処理及び指示実行処理が終了する。
【０１３０】
また、動作状態カラム６２Ｄに「実行中」が書き込まれている場合には、他の管理対象サーバが動作指示を取得または引き継いでいる。他の管理対象サーバにおいて動作指示が示す処理の実行が完了する可能性があり、現段階では、自装置で動作指示が示す処理を実行する必要がない。よって、ステップ２３４の判定結果が否定判定となり、指定無し実行処理及び指示実行処理が終了する。また、動作状態カラム６２Ｄに「実行不可」が書き込まれている場合は、グループＡに属する生存している管理対象サーバの全てで処理を完了できなかった場合である。よって、ステップ２３４の判定結果が否定判定となり、指定無し実行処理及び指示実行処理が終了する。
【０１３１】
一方、ステップ２３４の判定結果が肯定判定の場合は、自装置が動作指示を取得または引き継ぎ、ステップ２３６で、第１に、実行部９２は、指示カラム６２Ｃに書き込まれている動作指示情報が示す処理、例えば、ＶＭを作成する等の処理を実行する。第２に、第２書き込み部９４は、動作状態カラム６２Ｄに「実行中」を書き込む。これにより、共用ＤＢ１４Ａに、「実行中」のデータが動作状態カラム６２Ｄに対応して記憶され、図１２のステップ１４４の判定結果が肯定判定となる。
【０１３２】
第３に、第２書き込み部９４は、サーバ履歴カラム６２Ｂに自装置の識別情報を追加する。なお、サーバ履歴カラム６２Ｂに既に書き込まれている他の管理対象サーバの識別情報は消去しない。異常終了した管理対象サーバによる再実行を防止するための上記ステップ２３４の判定に用いるためである。
【０１３３】
そして、第４に、第２書き込み部９４は、アクションテーブル６２のカウントカラム６２Ｅの値を１増加する。処理を実行した管理対象サーバの数を保存し、グループＡにおける生存している全ての管理対象サーバが処理を実行したか否かを判断できるようにするためである。
【０１３４】
以上説明したステップ２３６における上記第１〜第４の処理の順番は、第１〜第４の順番に限定されず、いずれの順番でもよい。
【０１３５】
ステップ２３７で、判断部９０は所定時間待機する。次に、ステップ２３８で、判断部９０は、動作が終了したか否かを判断する。ステップ２３８の判定結果が否定判定の場合には、指定無し実行処理はステップ２３７に戻る。一方、ステップ２３８の判定結果が肯定判定の場合には、ステップ２４０で、判断部９０は、処理が正常に終了したか否かを判断する。
【０１３６】
ステップ２４０の判定結果が肯定判定の場合には、ステップ２４２で、第２書き込み部９４は、アクションテーブル６２の動作状態カラム６２Ｄに「完了」を書き込む。これにより、「完了」のデータは、共用ＤＢ１４Ａに、インデックス「動作状態」に対応して記憶され、図１２のステップ１４６の判定結果が肯定判定となる。
【０１３７】
ステップ２４０の判定結果が否定判定の場合には、ステップ２４４で、判断部９０は、サーバ管理テーブル６４の生存サーバ数カラム６４Ｄ１に記憶されている生存サーバ数が、アクションテーブル６２のカウントカラム６２Ｅに記憶されている値か否かを判断する。アクションテーブル６２のカウントカラム６２Ｅに記憶されている値は、動作指示を取得または引き継いぎ、かつ実行中に生存途絶しなかった管理対象サーバの数である。また、生存サーバ数カラム６４Ｄ１に記憶されている生存サーバ数は、グループＡで現在生存している管理対象サーバの数である。従って、ステップ２４４の判定結果が肯定判定の場合には、グループＡの内の生存してる全ての管理対象サーバが動作指示を取得または引き継いだが処理を完了できなかったと判断できる。特に、動作指示を最後に引き継いだ管理対象サーバでも正常終了できなかった場合であると判断できる。
【０１３８】
ステップ２４４の判定結果が肯定判定の場合には、ステップ２４８で、アクションテーブル６２の動作状態カラム６２Ｄに「実行不可」を書き込む。これにより、「実行不可」のデータが、共用ＤＢ１４Ａに、インデックス「動作状態」に対応して記憶され、図１２のステップ１５０の判定結果が否定判定となる。
【０１３９】
ステップ２４４の判定結果が否定判定の場合には、ステップ２４６で、第２書き込み部９４は、動作状態カラム６２Ｄに「異常終了」を書き込む。これにより、「異常終了」のデータが、共用ＤＢ１４Ａに、インデックス「動作状態」に対応して記憶され、図１２のステップ１５０の判定結果が肯定判定となる。
【０１４０】
（動作指示する場合の効果）
【０１４１】
（第１の効果）
以上説明したように、管理サーバ１２は、ある処理を、グループＡのうちの何れかの管理対象サーバで実行させたい場合、管理サーバ１２は、共用ＤＢ１４Ａのアクションテーブル６２の指示カラム６２Ｃに実行させたい処理を示す動作指示情報を書き込む。より詳細には、管理サーバ１２は、グループＡのうちの何れの管理対象サーバとも通信せずに、共用ＤＢ１４Ａのアクションテーブル６２の指示カラム６２Ｃに実行させたい処理を示す動作指示を書き込む。その後、例えば、動作指示を取得した管理対象サーバ１６Ａで動作を完了できない場合、管理サーバ１２が関与することなく、他の管理対象サーバ１８Ａが動作指示を引き継ぐ。管理対象サーバ１８Ａでも処理を完了できない場合、管理サーバ１２が関与することなく、更に他の管理対象サーバ２０Ａが動作指示を引き継ぐ。更に、グループＡに属する全ての管理対象サーバが処理を完了できない場合、管理サーバ１２は、他のグループＢの共用ＤＢ１４Ｂに記憶されたアクションテーブル６２の指示カラム６２Ｃに動作指示情報を書き込めば、他のグループＢにおいて動作指示が引き継がれる。
【０１４２】
このように、一旦動作指示を取得または引き継いだ管理対象サーバで処理を完了していない場合でも、管理サーバ１２が他の管理対象サーバと通信することなく、同じ又は異なるグループの管理対象サーバに動作指示が引き継がれる。よって、管理サーバ１２の負荷を減らすことができる。また、管理サーバ１２は、各管理対象サーバと通信しないので、各管理対象サーバにおける通信量も削減される。
【０１４３】
（第２の効果）
【０１４４】
上記のように、グループＡに属する全ての管理対象サーバが処理を実行できない場合、管理サーバ１２は、他のグループＢの共用ＤＢ１４Ｂに記憶されたアクションテーブル６２の指示カラム６２Ｃに動作指示情報を書き込む。これにより、他のグループＢにおいて動作指示が引き継がれる。よって、他グループへの動作指示の引き継ぎを容易に行うことができる。
【０１４５】
（第３の効果）
上記のように動作を取得又は引き継いだ管理対象サーバは、実行結果を共用ＤＢ１４Ａのアクションテーブル６２における動作状態カラム６２Ｄに書き込むので、管理サーバ１２は、管理対象サーバの実行結果を確認することができる。また、いずれかの管理対象サーバに異常が発生しても、他の管理対象サーバが自装置の実行結果を共用ＤＢに書き込むことに影響を及ぼさないため、管理サーバは確実に動作指示に対する実行結果を確認することができる。
【０１４６】
（変形例）
上記実施形態では、管理対象サーバに指示する処置の一例として、ＶＭの作成について説明した。その他の処理としては、例えば、作成したＶＭを他の管理対象サーバに移動させる条件の変更を指示することができる。具体的には、当該条件として、ＣＰＵの利用率：５０％を、８０％に変更させる場合である。上記の処理が終了すると、対象の管理対象サーバは、ＣＰＵの利用率が５０％を超えても、８０％に到達しないかぎり、ＶＭを移動させない。また、その他の処理としては、例えば、各管理対象サーバや選択した管理対象サーバについて電源のＯＮ／ＯＦＦを指示することができる。あるＶＭを稼働させている管理対象サーバの電源をＯＦＦにする場合を考えてみる。アクションテーブル６２の対象サーバカラム６２Ａに、電源をＯＦＦしたい管理対象サーバで稼動しているＶＭの移動先の管理対象サーバを指定する。指示カラム６２Ｃに当該ＶＭの移動を指示すれば、管理サーバ１２が管理対象サーバと通信しなくとも、ＶＭを、指定した管理対象サーバに移動させることができる。ＶＭの移動完了後、移動元の管理対象サーバを指定して電源ＯＦＦの動作指示をすればよい。
【０１４７】
更に、ＶＭの移動において、例えば、グループＡに属する管理対象サーバ１６Ａ〜２０Ａでは、リソースに空きがないため、他のグループＢの何れかの管理対象サーバに移動させたい場合もある。他のグループＢの何れかの管理対象サーバに移動させたい場合には、共用ＤＢ１４Ｂのアクションテーブル６２の対象サーバカラム６２Ａにはなにも書き込まず、指示カラム６２Ｃに当該ＶＭの移動を指示すればよい。他のグループＢの何れかの管理対象サーバに移動させたい場合でも、管理サーバ１２が管理対象サーバと通信しなくとも、ＶＭを移動させることができる。
【０１４８】
更に、上記処理には、グループに、管理対象サーバを追加する場合も含まれる。以下、グループに、管理対象サーバを追加する場合を詳細に説明する。
【０１４９】
図２２には、管理サーバ１２が実行するサーバの追加処理のフローチャートが示される。図２２のステップ３０２で、書き込み部８２は、共用ＤＢ１４Ａに、アクションテーブル６２の指示カラム６２Ｃに、管理対象サーバを新たに追加すること及び新たに追加する管理対象サーバの情報（例えば、ＩＰアドレス等）を書き込む。なお、例えば、対象サーバカラム６２Ａには何も書き込まない場合には、管理対象サーバの追加処理の実行をさせる対象の管理対象サーバを指定しないことを意味する。
【０１５０】
例えば、グループＡの管理対象サーバ１６Ａが動作指示を最初に取得したとする。図２１のステップ２３４の判定結果が肯定判定となり、ステップ２３６で、管理対象サーバ１６Ａの実行部９２は、指示された処理を実行する。具体的には、新たに追加された管理対象サーバに、共用ＤＢ１４Ａの情報（ＩＰアドレス）を送信する。
【０１５１】
共用ＤＢ１４Ａの情報を受信した新たに追加された管理対象サーバは、図１１に示す生存情報書き込み処理を開始する。なお、サーバ管理テーブル６４には、新たに追加された管理対象サーバ用の記憶領域が管理サーバ１２により設けられる。この記憶領域は、管理対象サーバ１６Ａに対応する記憶領域６４Ａと同様の記憶領域であり、サーバ種別カラム６４Ａ１〜生存途絶カラム６４Ａ７に対応する各カラムが設けられる。よって、新たに追加された管理対象サーバが図１１に示す生存情報書き込み処理を開始すると、新たに追加された管理対象サーバに対応する生存状態カラムに通信時間が書き込まれる。
【０１５２】
上記のように共用ＤＢ１４Ａに、新たに追加された管理対象サーバ用の記憶領域がサーバ管理テーブル６４に設けられる。図２２のステップ３０４で、書き込み部８２は、サーバ管理テーブル６４における、新たに追加された管理対象サーバに対応する記憶領域の生存途絶カラムに、trueを書き込む。
【０１５３】
ステップ３０６で、判断部２５４は、新たに追加された管理対象サーバに対応する生存状態カラムに通信時間の値があるか否かを判断する。ステップ３０６の判定結果が肯定判定の場合には、新たに追加された管理対象サーバが、自装置に対応する生存状態カラムに通信時間を書き込めると判断できる。よって、管理対象サーバが正常に追加されたと判断できる。そこで、ステップ３１０で、書き込み部８２は、生存サーバ数カラム６４Ｄ１の数を１増加する。また、書き込み部８２は、サーバ管理テーブル６４における、新たに追加された管理対象サーバに対応する記憶領域の生存途絶カラムを空にする。
【０１５４】
一方、ステップ３０６の判定結果が否定判定の場合には、新たに追加された管理対象サーバが、自装置に対応する生存状態カラムに通信時間を書き込めないと判断できる。よって、管理対象サーバの追加は失敗したと判断できる。そこで、ステップ３０８で、通知部７８は、管理対象サーバの追加は失敗したことを管理者に通知する。具体的には、通知部７８は、表示処理部４０を制御して、モニタ３２に、管理対象サーバの追加は失敗したことを表示する。
【０１５５】
以上説明したように、管理サーバ１２は、共用ＤＢ１４Ａのアクションテーブル６２の指示カラム６２Ｃに、管理対象サーバの追加を指示する動作指示情報を書き込む。より詳細には、管理サーバ１２は、グループＡのうちの何れの管理対象サーバとも通信することなく、共用ＤＢ１４Ａのアクションテーブル６２の指示カラム６２Ｃに、上記追加を指示する動作指示情報を書き込む。例えば、管理対象サーバ１６Ａで処理を完了できない場合、管理サーバ１２が関与することなく、他の管理対象サーバ１８Ａが動作指示を引き継ぐ。管理対象サーバ１８Ａでも処理を完了できない場合、管理サーバ１２が関与することなく、更に他の管理対象サーバ２０Ａが動作指示を引き継ぐ。このように、一旦動作指示を取得または引き継いだ管理対象サーバで処理を完了できない場合でも、管理サーバ１２が他の管理対象サーバと通信することなく、動作指示が他の管理対象サーバに引き継がれる。よって、管理サーバ１２の負荷を減らすことができる。
【０１５６】
（全体的な効果）
【０１５７】
（第１の効果）
上記実施形態では、管理サーバ１２が複数の管理対象サーバの生存を確認することや処理の実行を指示する際の、管理サーバ１２の負荷を減らすことができるので、管理サーバ１２は、従来の技術より多くの管理対象サーバを管理することが可能となる。
【０１５８】
各階層の代表サーバが下層のサーバを管理する従来の技術では、例えば、最下層の複数のサーバの各々を管理する中間層にある代表サーバに異常が発生した場合、管理サーバは、最下層の複数のサーバの情報を取得できない。しかし、実施形態では、階層的に管理対象サーバを管理せずに、共用ＤＢを用いて各管理対象サーバを管理するので、管理できない管理対象サーバが生ずることがない。
【０１５９】
同じグループに属する複数のサーバの各々が互いに管理する従来の技術では、管理サーバは、最新の情報を取得するために、各サーバにアクセスしたり、実行態様（上記例の８０％等）を変更するために、全てのサーバに個別に実行態様を変更したりする。しかし、実施形態では、共用ＤＢを用いて各管理対象サーバを管理するので、管理サーバ１２は、管理対象サーバと通信することがない。
【０１６０】
このように、実施形態では、従来の技術の問題を解決しながら、管理サーバ１２の負荷を減らすことができる。
【０１６１】
（第２の効果）
また、従来技術では、管理サーバが各サーバと通信するので、管理サーバの負荷が大きくなり、全てのサーバから取得した情報を処理するのに時間がかかり、管理サーバの管理性能が劣化する。管理性能を向上させるためには、管理サーバの数を増やす必要がある。これに対し、実施形態では、管理サーバ１２の負荷を減らすことができるので、同じ数の管理対象サーバを適切に管理するための管理サーバ１２の数を、従来技術より減らすことができる。このように、管理サーバ１２の数を減らすことができるので、サーバ管理システム１０の構成を、従来よりも簡素化することができる。サーバ管理システム１０の構築のコストも従来技術より削減できる。
【０１６２】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１６３】
以上の各実施形態に関し、更に以下の付記を開示する。
【０１６４】
（付記１）
複数の管理対象装置と、前記複数の管理対象装置の各々を管理する管理装置と、前記複数の管理対象装置及び前記管理装置とは別に設けられ、かつ前記複数の管理対象装置及び前記管理装置が共用する記憶装置と、を含み、
前記複数の管理対象装置の各々は、自装置の状態を示す状態情報を、所定のタイミングで前記記憶装置に書き込み、
前記管理装置は、前記記憶装置に書き込まれた状態情報を、前記所定のタイミングに対応するタイミングで確認することにより、前記管理対象装置の各々の状態を管理する
管理システム。
【０１６５】
（付記２）
前記複数の管理対象装置の各々は、自装置が生存していることを示す生存情報を前記状態情報として前記記憶装置に書き込み、
前記管理装置は、前記記憶装置に書き込まれた生存情報に基づいて、前記複数の管理対象装置の各々の生存状態を確認する
付記１記載の管理システム。
【０１６６】
（付記３）
前記複数の管理対象装置の各々は、自装置の動作状態を示す動作情報を前記状態情報として前記記憶装置に書き込み、
前記管理装置は、前記記憶装置に書き込まれた動作情報に基づいて、前記複数の管理対象装置の各々の動作状態を確認する
付記１または付記２記載の管理システム。
【０１６７】
（付記４）
前記管理装置は、前記複数の管理対象装置のいずれかに処理を実行させるための動作指示情報を前記記憶装置に書き込み、
前記複数の管理対象装置の各々は、前記記憶装置に書き込まれた動作指示情報を所定のタイミングで確認し、前記複数の管理対象装置のいずれかが、前記動作指示情報が示す処理を実行すると共に、前記処理を実行した管理対象装置が、処理の実行状態及び実行結果を前記動作情報として前記記憶装置に書き込む
付記３記載の管理システム。
【０１６８】
（付記５）
前記管理装置は、前記処理を実行させる管理対象装置を指定する場合には、指定する管理対象装置を識別する識別情報を、前記動作指示情報に対応付けて前記記憶装置に書き込み、
前記管理対象装置は、確認した動作指示情報に対応付けられた識別情報が示す管理対象装置が自装置の場合、及び確認した動作指示情報に識別情報が対応付けられておらず、かつ該動作指示情報が示す処理を他の管理対象装置が実行していることを示す動作情報が前記記憶装置に書き込まれていない場合に、前記動作指示情報が示す処理を実行する
付記４記載の管理システム。
【０１６９】
（付記６）
前記管理装置は、管理対象装置を追加する場合、管理対象装置の追加を指示する動作指示情報を前記記憶装置に書き込み、
前記管理対象装置の追加を指示する動作指示情報に従って動作する管理対象装置は、自装置が使用する前記記憶装置の情報を、追加された管理対象装置に送信する
付記１〜付記５のいずれか１項記載の管理システム。
【０１７０】
（付記７）
前記複数の管理対象装置の各々を複数のグループに分類し、各グループに属する管理対象装置の各々と前記管理装置とが共用する前記記憶装置をグループ毎に設け、
前記管理装置は、前記記憶装置に書き込まれた動作状態に基づいて、動作指示情報を書き込んだ記憶装置に対応するグループで、指示した処理が完了していないことを確認した場合には、他のグループに対応する記憶装置に、前記動作指示情報を書き込む
付記１〜付記５のいずれか１項記載の管理システム。
【０１７１】
（付記８）
コンピュータに、
複数の管理対象装置、及び前記複数の管理対象装置の各々を管理する自装置とは別に設けられ、かつ前記複数の管理対象装置及び自装置が共用する記憶装置に、前記複数の管理対象装置の各々により所定のタイミングで書き込まれた各管理対象装置の状態を示す状態情報を、前記所定のタイミングに対応するタイミングで確認することにより、前記管理対象装置の各々の状態を管理する
ことを含む処理を実行させるための管理プログラム。
【０１７２】
（付記９）
コンピュータに、
自装置を含む複数の管理対象装置、及び前記複数の管理対象装置の各々を管理する管理装置とは別に設けられ、かつ前記複数の管理対象装置及び前記管理装置が共用する記憶装置に、自装置の状態を示す状態情報を所定のタイミングで書き込む
ことを含む処理を実行させるための管理プログラム。
【０１７３】
（付記１０）
複数の管理対象装置の各々を管理する管理装置であって、
前記複数の管理対象装置及び自装置とは別に設けられ、かつ前記複数の管理対象装置及び自装置が共用する記憶装置に、前記複数の管理対象装置の各々により所定のタイミングで書き込まれた各管理対象装置の状態を示す状態情報を、前記所定のタイミングに対応するタイミングで取得する取得部と、
取得した前記状態情報に基づいて、前記管理対象装置の各々の状態を判断する判断部と、
を含む管理装置。
【０１７４】
（付記１１）
前記判断部は、前記複数の管理対象装置の各々により、前記状態情報として前記記憶装置に書き込まれた、各管理対象装置が生存していることを示す生存情報に基づいて、前記複数の管理対象装置の各々の生存状態を判断する付記１０記載の管理装置。
【０１７５】
（付記１２）
前記判断部は、前記複数の管理対象装置の各々により、前記状態情報として前記記憶装置に書き込まれた、各管理対象装置の動作状態を示す動作情報に基づいて、前記複数の管理対象装置の各々の動作状態を判断する付記１０または付記１１記載の管理装置。
【０１７６】
（付記１３）
前記複数の管理対象装置のいずれかに処理を実行させるための動作指示情報を前記記憶装置に書き込む書き込み部を含む付記１０〜付記１２のいずれか１項記載の管理装置。
【０１７７】
（付記１４）
前記書き込み部は、前記処理を実行させる管理対象装置を指定する場合には、指定する管理対象装置を識別する識別情報を、前記動作指示情報に対応付けて前記記憶装置に書き込む付記１３記載の管理装置。
【０１７８】
（付記１５）
前記書き込み部は、管理対象装置を追加する場合、管理対象装置の追加を指示する動作指示情報を前記記憶装置に書き込む付記１０〜付記１４のいずれか１項記載の管理装置。
【０１７９】
（付記１６）
前記複数の管理対象装置の各々を複数のグループに分類し、各グループに属する管理対象装置の各々と自装置とが共用する前記記憶装置をグループ毎に設け、
前記書き込み部は、前記記憶装置に書き込まれた動作状態に基づいて、動作指示情報を書き込んだ記憶装置に対応するグループで、指示した処理が完了していないことを確認した場合には、他のグループに対応する記憶装置に、前記動作指示情報を書き込む付記１０〜付記１５のいずれか１項記載の管理装置。
【０１８０】
（付記１７）
管理装置に管理される管理対象装置であって、
自装置を含む複数の管理対象装置及び前記管理装置とは別に設けられ、かつ前記複数の管理対象装置及び前記管理装置が共用する記憶装置に、自装置の状態を示す状態情報を所定のタイミングで書き込む書き込み部
を含む管理対象装置。
【０１８１】
（付記１８）
前記書き込み部は、自装置が生存していることを示す生存情報を前記状態情報として前記記憶装置に書き込む付記１７記載の管理対象装置。
【０１８２】
（付記１９）
前記書き込み部は、自装置の動作状態を示す動作情報を前記状態情報として前記記憶装置に書き込む付記１７または付記１８記載の管理対象装置。
【符号の説明】
【０１８３】
１０    サーバ管理システム
１２    管理サーバ
１４Ａ    共用ＤＢ
１６Ａ、１８Ａ、２０Ａ    管理対象サーバ
６２    アクションテーブル
６４    サーバ管理テーブル
６４Ａ６    生存状態カラム
７２    取得部
７４    第１判断部
７６    更新部
７８    通知部
８０    第１書き込み部
８２    書き込み部
８４    第２判断部
８６    通知削除部
８８    取得部
９０    判断部
９２    実行部
９４    第２書き込み部
【図１】
2015194878.tif 000003
【図２】
2015194878.tif 000004
【図３】
2015194878.tif 000005
【図４】
2015194878.tif 000006
【図５】
2015194878.tif 000007
【図６】
2015194878.tif 000008
【図７】
2015194878.tif 000009
【図８】
2015194878.tif 000010
【図９】
2015194878.tif 000011
【図１０】
2015194878.tif 000012
【図１１】
2015194878.tif 000013
【図１２】
2015194878.tif 000014
【図１３】
2015194878.tif 000015
【図１４】
2015194878.tif 000016
【図１５】
2015194878.tif 000017
【図１６】
2015194878.tif 000018
【図１７】
2015194878.tif 000019
【図１８】
2015194878.tif 000020
【図１９】
2015194878.tif 000021
【図２０】
2015194878.tif 000022
【図２１】
2015194878.tif 000023
【図２２】
2015194878.tif 000024