(57)【特許請求の範囲】
【請求項１】
無停電電源装置と、
停電が発生した場合に、前記無停電電源装置から電力が供給される複数のコンピュータと、
稼働管理装置と、を備え、
前記複数のコンピュータの各々は複数のサーバ種別に応じた処理を実行可能であって、前記複数のコンピュータは、前記複数のサーバ種別に応じて取りうる組み合わせに対応した複数の依存関係の何れかの下で稼働し、
前記稼働管理装置は、
前記複数のコンピュータの各々のサーバ種別と、前記複数のコンピュータの各々の稼働停止順序と、前記複数のコンピュータの各々の稼働停止時間とを、前記複数の依存関係毎に定めた情報を記憶する記憶部と、
照合部と、を備え、
前記照合部は、停電が発生した場合に、前記複数の依存関係毎に定めた情報を参照して、稼働中の前記複数のコンピュータの各々のサーバ種別と前記複数の依存関係毎に定めた情報に含まれる前記複数のコンピュータの各々のサーバ種別とを照合することで、前記サーバ種別が一致する数が最も多い依存関係を前記複数の依存関係の中から求め、求めた前記依存関係に対応する、前記複数のコンピュータの各々の稼働停止順序と、前記複数のコンピュータの各々の稼働停止時間を求める
ことを特徴とする稼働管理システム。
【請求項２】
各々が複数のサーバ種別に応じた処理を実行可能であって、前記複数のサーバ種別に応じて取りうる組み合わせに対応した複数の依存関係の何れかの下で稼働する複数のコンピュータの各々のサーバ種別と、前記複数のコンピュータの各々の稼働停止順序と、前記複数のコンピュータの各々の稼働停止時間とを、前記複数の依存関係毎に定めた情報を記憶し、
停電が発生した場合に、前記複数の依存関係毎に定めた情報を参照して、稼働中の前記複数のコンピュータの各々のサーバ種別と前記複数の依存関係毎に定めた情報に含まれる前記複数のコンピュータの各々のサーバ種別とを照合することで、前記サーバ種別が一致する数が最も多い依存関係を前記複数の依存関係の中から求め、求めた前記依存関係に対応する、前記複数のコンピュータの各々の稼働停止順序と、前記複数のコンピュータの各々の稼働停止時間を求める
ことを特徴とする稼働管理方法。
【請求項３】
コンピュータに、
各々が複数のサーバ種別に応じた処理を実行可能であって、前記複数のサーバ種別に応じて取りうる組み合わせに対応した複数の依存関係の何れかの下で稼働する複数のコンピュータの各々のサーバ種別と、前記複数のコンピュータの各々の稼働停止順序と、前記複数のコンピュータの各々の稼働停止時間とを、前記複数の依存関係毎に定めた情報を記憶させ、
停電が発生した場合に、前記複数の依存関係毎に定めた情報を参照して、稼働中の前記複数のコンピュータの各々のサーバ種別と前記複数の依存関係毎に定めた情報に含まれる前記複数のコンピュータの各々のサーバ種別とを照合することで、前記サーバ種別が一致する数が最も多い依存関係を前記複数の依存関係の中から求め、求めた前記依存関係に対応する、前記複数のコンピュータの各々の稼働停止順序と、前記複数のコンピュータの各々の稼働停止時間を求める
処理を実行させるための稼働管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
業務に使用するサーバなどのコンピュータは、停電などの緊急時に電力供給が遮断された状態になったときに継続的に電力供給を行う無停電電源装置に接続されることが一般的である。また、無停電電源装置に接続された稼働停止に関して依存関係を有する複数のコンピュータが稼働される情報処理システムも知られている。例えば、複数のコンピュータが稼働している情報処理システムにおいて、各コンピュータは無停電電源装置を監視する監視プロセスを実行する。監視プロセスの一例としては、停電などの緊急時に無停電電源装置への電力供給が遮断された状態を検知すると、コンピュータの稼働停止処理を実行してコンピュータを稼働停止（所謂シャットダウン）する。【０００３】
複数のコンピュータの稼働を停止する例として、管理装置が無停電電源装置等の非常用電源やコンピュータを監視する技術が知られている。この技術では、ユーザが管理装置に、コンピュータの稼働停止処理を実行する優先度を、手動で設定する。また、無停電電源装置等の非常用電源に接続された１台のコンピュータで実行中の複数のアプリケーションプロセスを監視し、そのプロセスの優先順位を記憶して、コンピュータの稼働停止処理に使用する技術が知られている。この技術では、停電などの緊急時に、非常用電源の給電時間内に処理を終了するようにプログラムの実行順序を制御する。【０００４】
ところで、情報処理システムにおいて、依存関係を有する複数のコンピュータを稼働停止する場合、稼働中のコンピュータが非常用電源の給電時間内に稼働停止しない状態を防止する必要がある。このため、全コンピュータに一定の復電待機時間を設けて、一定の復電待機時間を経過した後に稼働停止処理を実行する。【０００５】
例えば、無停電電源装置の電源容量と給電可能時間を求めてコンピュータの稼働停止処理に使用する技術が知られている。この技術では、無停電電源装置の給電可能時間から無停電電源装置に接続された１台のコンピュータの稼働停止処理に要する時間を差し引いて稼働停止処理を開始する。また、コンピュータの稼働停止完了後に通電を終了するために、無停電電源装置からコンピュータに対する通信結果が非通信の状態のときに、コンピュータへの通電を停止する技術が知られている。また、無停電電源装置が接続されたコンピュータおよび周辺機器に対して稼働停止に要する時間の長い順序で稼働停止を示す命令を送出する技術が知られている。
【特許文献１】特開２００９−２８２７１４号公報
【特許文献２】特開平７−１６０３７０号公報
【特許文献３】特開平６−１１３４８３号公報
【特許文献４】特開２００５−４３８１号公報
【特許文献５】特開平１１−１５５２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、依存関係を有する複数のコンピュータが稼働されている場合、複数のコンピュータに対して一律に稼働停止処理を実行すると、稼働停止処理が終了しないコンピュータが発生する。【０００７】
１つの側面では、本発明は、稼働停止に関して依存関係を有する複数のコンピュータの稼働停止による障害発生を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
開示の技術は、記憶部に、複数のコンピュータの間で移動可能な複数のノードについて、複数のノードの稼働停止順序情報と、複数のノードの各々の稼働停止に要する稼働停止時間情報とを記憶する。記憶部に記憶された稼働停止順序情報と稼働停止時間情報に基づき、複数のノードの稼働停止時間の総和を求めることができる。そこで、コンピュータシステムの稼働を停止させるよりも、複数のノードの稼働停止時間の総和以上前のタイミングから、稼働停止順序情報によって示される稼働停止順序で、複数のノードの稼働を停止させる。
【発明の効果】
【０００９】
１つの実施態様では、稼働停止処理に伴うコンピュータの障害発生を抑制することができる、という効果を有する。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る稼働管理システムの概略構成を示すブロック図である。
【図２】本実施形態に係るコンピュータシステムの概略構成を示すブロック図である。
【図３】モデルテーブルの一例を示すイメージ図である。
【図４】サーバ種別一覧テーブルの一例を示すイメージ図である。
【図５】稼働停止履歴テーブルの一例を示すイメージ図である。
【図６】稼働管理プログラムの処理の流れを示すフローチャートである。
【図７】モデル照合処理の流れを示すフローチャートである。
【図８】稼働停止順序決定処理の流れを示すフローチャートである。
【図９】復電待機時間計算処理の流れを示すフローチャートである。
【図１０】稼働停止実行処理の流れを示すフローチャートである。
【図１１】復電待機時間の説明図である。
【図１２】仮想マシンの移設の説明図である。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。【００１２】
図１には、本実施形態に係る稼働管理システム１０の概略構成が示されている。稼働管理システム１０は、ＬＡＮ等によるネットワーク３０に、稼働管理装置１２と、無停電電源装置３２と、稼働管理装置１２が管理する複数台のコンピュータ（本実施形態では、コンピュータ３４，４４，５２）と、が各々接続されている。なお、ネットワーク３０はインターネット等の通信ネットワークを含むことができる。また、無停電電源装置３２は、コンピュータ３４，４４，５２の各々に、専用線３３を介して互いにデータを授受可能に接続されている。【００１３】
なお、図１では、稼働管理装置１２が管理する複数台のコンピュータとして、３台のコンピュータ３４，４４，５２を一例として示したが、３台に限定されるものではなく、２台以上であれば何台あってもよい。【００１４】
稼働管理装置１２は、管理下のコンピュータ３４，４４，５２について稼働停止（所謂シャットダウン）の処理を管理するためのものである。詳細は後述するが、稼働管理装置１２は例えばコンピュータで実現される。稼働管理装置１２は、モデル照合部１４，稼働停止順序決定部１６、復電待機時間計算部１８，稼働停止実行部２０及び記憶部２２を備えている。また、記憶部２２は、モデルテーブル２４，サーバ種別一覧テーブル２６，及び稼働停止履歴テーブル２８の情報が格納されている。【００１５】
なお、本実施形態では、稼働管理装置１２がコンピュータ、仮想化サーバ及び仮想マシンについて稼働停止処理を管理する一例として、所謂シャットダウンなどのコンピュータの電源遮断処理を説明する。しかし、開示の技術は、電源遮断処理に限定されるものではない。例えば、コンピュータ等の稼働停止の処理を管理する他の例として、強制的にシステムを終了させる処理や再起動等のシステム処理を含むものである。【００１６】
また、本実施形態におけるコンピュータに含まれる、仮想化サーバ及び仮想マシンの各々は、開示技術のノードの一例である。【００１７】
無停電電源装置３２は、停電等の緊急時に、接続された機器へ給電可能時間として予め定められた一定時間だけ電力供給する装置である。無停電電源装置３２は、稼働管理装置１２とデータやコマンドを授受すると共に、コンピュータ３４，４４，５２の各々とデータやコマンドを授受する。【００１８】
また、詳細は後述するが、コンピュータ３４は、１台のコンピュータで複数のシステムを構築可能とする処理として一般的に知られた仮想化によって得られる仮想化サーバ３６，及び３台の仮想マシン３８，４０，４２を含んでいる。また、コンピュータ４４は、仮想化サーバ４６，及び２台の仮想マシン４８，５０を含んでいる。また、コンピュータ５２は、仮想化サーバ５４，及び１台の仮想マシン５６を含んでいる。【００１９】
なお、本実施形態では稼働管理システム１０は、稼働管理装置１２，無停電電源装置３２、及び３台のコンピュータ３４，４４，５２が含まれる構成例を示したが、稼働管理システム１０に含まれるコンピュータの数は３台に限定されるものではない。例えばコンピュータは１台であってもよく、２台以上であってもよい。また、コンピュータに含まれる仮想マシンの数は１台以上であればよい。【００２０】
また、本実施形態ではコンピュータ３４，４４，５２に仮想化サーバ及び仮想マシンが含まれる構成の一例を示したが、仮想化サーバ及び仮想マシンが含まれるコンピュータのみに限定されるものではない。例えば稼働管理システム１０に含まれるコンピュータは１つのシステムを構築したサーバであってもよい。【００２１】
図２には、本実施形態に係る稼働管理装置１２を含みかつ例えばコンピュータにより実現される管理装置６０を備えたコンピュータシステム５８の概略構成が示されている。【００２２】
稼働管理装置１２は、例えば図２に示す管理装置６０の一部の機能により実現することができる。管理装置６０は、コンピュータにより実現することができる。詳細には、管理装置６０はＣＰＵ６２、メモリ６４、不揮発性の記憶部６６を備え、これらはバス９６を介して互いに接続されている。記憶部６６はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。また、管理装置６０はネットワーク３０に接続するためのインタフェース（Ｉ／Ｏ）８６を備え、Ｉ／Ｏ８６はバス９６に接続されている。また、管理装置６０は、出力デバイスの一例の表示装置であるディスプレイ８８、入力デバイスの一例の入力装置であるキーボード９０とマウス９２を備え、これらはバス９６に接続されている。また、管理装置６０は、記録媒体が挿入され、挿入された記録媒体に対して読み書きするための装置（Ｒ／Ｗ）９４を備え、これらはバス９６に接続されている。なお、ディスプレイ８８、キーボード９０、マウス９２、装置（Ｒ／Ｗ）９４は、省略してもよく、必要に応じてバス９６に接続するようにしてもよい。【００２３】
記憶部６６には、管理装置６０を、コンピュータ３４，４４，５２の稼働を管理させる処理、例えばコンピュータの処理停止を実行する稼働管理装置１２として機能させるための稼働管理プログラム６８が記憶されている。ＣＰＵ６２は、稼働管理プログラム６８を記憶部６６から読み出してメモリ６４に展開し、稼働管理プログラム６８に含まれるプロセスを順次実行する。つまり、稼働管理装置１２が管理装置６０で実現され、ＣＰＵ６２が稼働管理プログラム６８を実行することで、管理装置６０は稼働管理装置１２として動作される。【００２４】
なお、稼働管理プログラムは、開示の技術における稼働管理プログラムの一例である。また、稼働管理プログラムは、管理装置６０を稼働管理装置１２として機能させるためのプログラムでもある。【００２５】
稼働管理プログラム６８は、モデル照合プロセス７０、稼働停止順序決定プロセス７２、復電待機時間計算プロセス７４及び稼働停止実行プロセス７６を有する。ＣＰＵ６２は、モデル照合プロセス７０を実行することで、図１の稼働管理装置１２におけるモデル照合部１４として動作する。すなわち、稼働管理装置１２が管理装置６０で実現され、モデル照合プロセス７０を実行することで管理装置６０は稼働管理装置１２のモデル照合部１４として動作される。また、ＣＰＵ６２は、稼働停止順序決定プロセス７２を実行することで、図１の稼働管理装置１２における稼働停止順序決定部１６として動作する。すなわち、稼働管理装置１２が管理装置６０で実現され、稼働停止順序決定プロセス７２を実行することで管理装置６０は稼働管理装置１２の稼働停止順序決定部１６として動作される。【００２６】
ＣＰＵ６２は、復電待機時間計算プロセス７４を実行することで、図１の稼働管理装置１２における復電待機時間計算部１８として動作する。すなわち、稼働管理装置１２がコンピュータによる管理装置６０で実現され、復電待機時間計算プロセス７４を実行することで管理装置６０は稼働管理装置１２の復電待機時間計算部１８として動作される。また、ＣＰＵ６２は、稼働停止実行プロセス７６を実行することで、図１の稼働管理装置１２における稼働停止実行部２０として動作する。すなわち、稼働管理装置１２が管理装置６０で実現され、稼働停止実行プロセス７６を実行することで管理装置６０は稼働管理装置１２の稼働停止実行部２０として動作される。【００２７】
また、管理装置６０の記憶部６６には、状態監視プログラム７８，制御プログラム８０，及びデータ管理プログラム８２が記憶されている。状態監視プログラム７８は、コンピュータシステム５８において管理装置６０が管理する無停電電源装置３２，コンピュータ３４、４４，５２の各々の状態を監視するプログラムである。制御プログラム８０は、稼働管理プログラム６８の処理に基づきコンピュータ３４、４４，５２の各々の稼働停止制御するプログラムである。また、制御プログラム８０は、後述する仮想マシンの移動を制御するプログラムを含む。データ管理プログラム８２は、コンピュータ３４、４４，５２の各々の稼働停止に関係する履歴データを記録するプログラムである。また、データ管理プログラム８２は、コンピュータシステム５８で稼働するモデルを管理するプログラムを含む。【００２８】
また、記憶部６６には、モデルテーブル２４，サーバ種別一覧テーブル２６，及び稼働停止履歴テーブル２８を含むデータベース８４が記憶されている。管理装置６０の記憶部６６に記憶されたデータベース８４は図１の稼働管理装置１２の記憶部２２に対応する。【００２９】
モデルテーブル２４は、コンピュータシステム５８において依存関係を有して稼働する複数のコンピュータをモデルと称し、当該モデルに関係する情報をデータベース８４に格納したものである。なお、本実施形態では、モデルとは、ネットワークアーキテクチャが対応する。例えば、３階層システム（3-tier system）、サーバクライアントモデル（client-server）、ピアツーピアモデル（Peer to Peer）などのネットワークアーキテクチャがモデルに対応される。３階層システム（3-tier system）は、クライアントサーバシステムを「プレゼンテーション層」「アプリケーション層」「データ層」の３層に分割して構築したシステムである。サーバクライアントモデル（client-server）は、特定の役割を担当するコンピュータ（サーバ）と、ユーザの操作するコンピュータ（クライアント）に役割を分担し、相互にネットワークで接続されるシステムである。ピアツーピアモデル（Peer to Peer）は、役割を固定化しないで、ネットワークに参加するコンピュータ同士が情報を授受し、サーバまたはクライアントの双方の機能を有するものである。【００３０】
データベース８４に格納されるモデルテーブル２４は、一例として図３に示すように、「モデル名」、「稼働停止順序」、「バッファ時間」、「稼働停止時間」の各情報が対応付けて各々登録されている。図３に示すモデルテーブル２４における「モデル名」の情報は、依存関係を有して稼働する複数のコンピュータの呼称やグループ名を示す情報である。また、「稼働停止順序」の情報は、依存関係を有して稼働する複数のコンピュータについて、稼働停止順序を示す情報である。図３では、コンピュータの種別を示すデータを、稼働停止順序で配列した一例を示した。また、「バッファ時間」の情報は、依存関係を有して稼働する複数のコンピュータの各々について稼働停止後に設定する一定時間を示す情報である。図３では、「バッファ時間」として初期値が格納される一例を示した。また、「稼働停止時間」の情報は、依存関係を有して稼働する複数のコンピュータの各々について稼働停止に要する時間を示す情報である。図３では、「稼働停止時間」として初期値が格納される一例を示した。【００３１】
サーバ種別一覧テーブル２６は、コンピュータシステム５８で稼働する複数のコンピュータの各々について、他のコンピュータに対する依存関係や自身を識別するための識別子などの情報を、データベース８４に格納したものである。データベース８４に格納されるサーバ種別一覧テーブル２６の一例を図４に示す。サーバ種別一覧テーブル２６には、「ｕｕｉｄ」、「サーバ種別」、「依存先」、「復電待機時間」、「稼働停止時間」、「バッファ時間」、「稼働停止不可フラグ」、「稼働停止順位」の各情報が対応付けて各々登録されている。【００３２】
図４に示すサーバ種別一覧テーブル２６における「ｕｕｉｄ」の情報は、個々のコンピュータを管理・識別するための情報である。図４では、「サーバ種別」としてコンピュータを一意に特定できるＩＤとして、ＵＵＩＤ（universally unique identifier）を使用した一例を示した。また、「サーバ種別」の情報は、コンピュータシステム５８で稼働する複数のコンピュータの各々について、コンピュータの種別を示す情報である。図４では、コンピュータで提供するサービスシステムの呼称や名称を示す情報を使用した一例を示した。また、「依存先」の情報は、自身のコンピュータが稼働するにあたり依存関係を有する他のコンピュータを示す情報である。図４では、他のコンピュータを一意に特定できるＩＤとして、ＵＵＩＤを使用した一例を示した。【００３３】
また、「復電待機時間」の情報は、コンピュータが稼働停止処理を開始するまでに待機する時間を示す情報である。また、「稼働停止時間」の情報は、コンピュータが稼働停止処理に要した時間を示す情報である。また、「バッファ時間」の情報は、コンピュータの稼働停止後に要する一定時間を示す情報である。また、「稼働停止不可フラグ」の情報は、コンピュータが無停電電源装置３２による給電可能時間内に稼働停止することが可能か否かを示す情報である。また、「稼働停止順位」の情報は、コンピュータの稼働停止順序を示す情報である。【００３４】
稼働停止履歴テーブル２８は、コンピュータシステム５８で稼働する複数のコンピュータの各々について、コンピュータの稼働停止に要した稼働停止時間の履歴を示す情報を、データベース８４に格納したものである。データベース８４に格納される稼働停止履歴テーブル２８の一例を図５に示す。稼働停止履歴テーブル２８には、「ｕｕｉｄ」、「稼働停止時間」の各情報が対応付けて各々登録されている。稼働停止履歴テーブル２８における「ｕｕｉｄ」の情報は、コンピュータを管理・識別するための情報である。図５では、コンピュータを一意に特定できるＵＵＩＤを使用した一例を示した。また、「稼働停止時間」の情報は、コンピュータの稼働停止に要した稼働停止時間を履歴データとして格納した情報である。図５では、稼働停止に要した稼働停止時間を、過去から順に配列した一例を示した。【００３５】
図２に示すように、管理装置６０が管理するコンピュータ３４は、ＣＰＵ１００、メモリ１０２、不揮発性の記憶部１０４を備え、これらはバス１２２を介して互いに接続されている。記憶部１０４はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。また、コンピュータ３４はネットワーク３０に接続するためのインタフェース（Ｉ／Ｏ）１１２を備え、Ｉ／Ｏ１１２はバス１２２に接続されている。また、コンピュータ３４は、ディスプレイ１１４、キーボード１１６及びマウス１１８を備え、これらはバス１２２に接続されている。また、コンピュータ３４は、記録媒体が挿入され、挿入された記録媒体に対して読み書きするための装置（Ｒ／Ｗ）１２０を備え、これらはバス１２２に接続されている。なお、ディスプレイ１１４、キーボード１１６、マウス１１８、装置（Ｒ／Ｗ）１２０は、省略してもよく、必要に応じてバス１２２に接続するようにしてもよい。【００３６】
コンピュータ３４の記憶部１０４には、ＯＳ(Operating System)１０６、コンピュータ３４を仮想化する仮想化プログラム１０８、及びコンピュータ３４において仮想マシンを稼働させるための仮想マシンプログラム１１０が記憶されている。ＣＰＵ１００は、ＯＳ１０６を記憶部１０４から読み出してメモリ１０２に展開して実行することで、コンピュータ３４は物理サーバとして動作される。また、ＣＰＵ１００は、仮想化プログラム１０８を記憶部１０４から読み出してメモリ１０２に展開して実行することで、コンピュータ３４で仮想化サーバ３６（図１）として動作される。また、仮想マシンプログラム１１０を記憶部１０４から読み出してメモリ１０２に展開して実行することで、コンピュータ３４で動作される仮想化サーバ上で稼働される仮想マシン（図１の仮想マシン３８，４０，４２）が動作される。すなわち、仮想化サーバ３６は、コンピュータ３４内に仮想的に作成されたコンピュータである。また、仮想マシンは、仮想サーバの管理下にあるコンピュータ３４内に仮想的に作成されたコンピュータである。【００３７】
なお、例えば、仮想化サーバ３６は、例えば仮想ホストと呼ばれる場合がある。また、仮想マシンは、仮想ゲストやゲストＯＳと呼ばれる場合もある。【００３８】
一般的に、１台のコンピュータに所謂サーバ機能を有するＯＳを搭載することで物理サーバを得ることができる。物理サーバは、メールサーバ等のように１つのアプリケーションプログラムを実行する１つのシステムを構築することが一般的である。近年、物理サーバの利用効率向上などを目的として、１台の物理サーバで、複数のシステムを構築する仮想化システムの技術が実現されている。【００３９】
そこで、本実施形態は、１台のコンピュータによって、複数のシステムを構築可能にする仮想化が施されたコンピュータを一例として説明する。【００４０】
本実施形態では、コンピュータ３４が物理サーバとして機能されるとき、コンピュータ３４に仮想サーバ及び仮想マシンを含むシステムが構築できるようにすることができる。すなわち、ＣＰＵ１００がＯＳ１０６を記憶部１０４から読み出してメモリ１０２に展開して実行することで、コンピュータ３４は物理サーバとして動作される。さらに、ＣＰＵ１００が仮想化プログラム１０８を記憶部１０４から読み出してメモリ１０２に展開して実行することで、コンピュータ３４は仮想化サーバ３６として動作される。さらにまた、ＣＰＵ１００が仮想マシンプログラム１１０を記憶部１０４から読み出してメモリ１０２に展開して実行することで、仮想化サーバ３６が管理する仮想マシン（図１では、仮想マシン３８，４０，４２）が構築される。【００４１】
なお、コンピュータ４４とコンピュータ５２の構成は、コンピュータ３４と略同一のため、詳細な説明を省略する。【００４２】
図１には、稼働管理システム１０に含まれる複数のコンピュータの一例として、コンピュータ３４が、仮想化サーバ３６として動作し、仮想化サーバ３６の管理下に仮想マシン３８，４０，４２の３つの仮想マシンが接続された場合を示している。また、コンピュータ４４が、仮想化サーバ４６として動作し、仮想化サーバ４６の管理下に仮想マシン４８，５０の２つの仮想マシンが接続された場合を示している。さらに、コンピュータ５２が、仮想化サーバ５４として動作し、仮想化サーバ５４の管理下に仮想マシン５６の１つの仮想マシンが接続された場合を示している。なお、図１では、仮想化サーバの管理下に３つ，２つ，１つの仮想マシンが接続される場合を示したが、開示の技術は３つ以下の仮想マシンに限定されるものではなく、４つ以上であってもよい。【００４３】
（稼働管理処理）
次に本実施形態の作用を説明する。
本実施形態では、停電発生時に、無停電電源装置３２に接続された各サーバ（３６や３８等）の稼働状況により稼働停止時間（シャットダウン時間）と、各サーバ間の依存関係を算出する。次に、予め定めた複数のモデルから、算出した稼働停止時間と、各サーバ間の依存関係基づき、最も適したモデルの稼働停止順序に従って稼働停止（シャットダウン）を行う。【００４４】
なお、本実施形態では、コンピュータ３４に構築された仮想化サーバ３６の管理下の仮想マシン３８、仮想化サーバ４６の管理下の仮想マシン４８、仮想化サーバ５４の管理下の仮想マシン５６に、サーバが構築され稼働している場合について説明する。仮想マシン３８，４８，５６は、依存性を有するシステムとして稼働される。本実施形態では、依存性を有するシステムの一例として、３階層システム（3-tier system）が稼働される場合について説明する。３階層システム（3-tier system）は、クライアントサーバシステムを「プレゼンテーション層」「アプリケーション層」「データ層」の３層に分割して構築したシステムである。本実施形態では３階層システムの構築時に、「プレゼンテーション層」を担当するウェブサーバ（WEB_SERVER）が仮想マシン５６に設定される。また、「アプリケーション層」を担当するアプリケーションサーバ（AP_SERVER）が仮想マシン４８に設定される。また、「データ層」を担当するデータベースサーバ（DB_SERVER）が仮想マシン３８に設定される。【００４５】
また、本実施形態では、管理装置６０において状態監視プログラム７８、制御プログラム８０、及びデータ管理プログラム８２による処理が実行されているものとする。例えば、管理装置６０のＣＰＵ６２は、状態監視プログラム７８を記憶部６６から読み出してメモリ６４に展開して実行することで、状態監視処理を実行する。状態監視処理は、例えば、ユーザによりキーボード９０で指示されて実行できる。【００４６】
状態監視処理の一例は、コンピュータシステム５８において管理装置６０が管理する無停電電源装置３２，コンピュータ３４、４４，５２の各々の状態を監視する。状態監視処理の具体例は、電力供給状態監視処理として、無停電電源装置３２から受信または取得した電力供給可否信号に基づいて、無停電電源装置３２に電力供給が成されているか否かの状態を判別する処理である。また、状態監視処理の他の例は、無停電電源装置３２の状態監視処理として、無停電電源装置３２の給電可能時間や給電可能残存時間等の時間、無停電電源装置３２に接続されたコンピュータ等の稼働状態を確認する処理である。また、状態監視処理のその他の例は、仮想化状態監視処理として、コンピュータシステム５８において稼働中の仮想化サーバ及び仮想マシンの状態を確認する処理である。この確認処理により、コンピュータシステム５８において稼働中の仮想化サーバ及び仮想マシンのサーバ種別、名称や識別子（例えばｕｕｉｄ等）などを取得できる。【００４７】
また、管理装置６０のＣＰＵ６２は、制御プログラム８０を記憶部６６から読み出してメモリ６４に展開して実行することで、制御処理を実行する。制御処理の一例は、管理装置６０が管理するコンピュータ３４、４４，５２の各々に対する電源制御処理や仮想マシンの移動制御処理である。制御処理の具体例は、ネットワーク３０を介して接続されたコンピュータ３４、４４，５２及びコンピュータ３４、４４，５２に含まれる仮想化サーバ３４，４６，５４と仮想マシン３８，４０，４２，４８，５０，５６の電源制御を行う。詳細には、コンピュータ、仮想化サーバ、仮想マシンに対して電源遮断命令や休止状態への移行命令のコマンドを送信する制御を行う。また、制御処理の他例は、コンピュータ３４、４４，５２に含まれる仮想マシンを、他の仮想化サーバの管理下に移動する制御処理である。【００４８】
また、管理装置６０のＣＰＵ６２は、データ管理プログラム８２を記憶部６６から読み出してメモリ６４に展開して実行することで、データ管理処理を実行する。データ管理処理の一例は、稼働停止履歴記録処理（シャットダウン履歴記録処理）、モデル管理処理（モデルの登録、修正、削除等）をする。データ管理処理の具体例である稼働停止履歴記録処理（シャットダウン履歴記録処理）は、少なくとも仮想マシンの稼働を停止したことの履歴をデータベース８４に格納された稼働停止履歴テーブル２８に記録する処理である。データ管理処理の他の例であるモデル管理処理は、コンピュータシステム５８に含まれる依存関係を有するコンピュータ、または仮想化サーバ或いは仮想マシンについて、モデルとして登録すること、修正すること、削除すること等の処理を行うことである。このモデル管理処理では、ユーザによりキーボード９０で入力されたデータやコマンドによって、データベース８４のモデルテーブル２４に登録したり修正したり削除したりする。【００４９】
稼働管理装置１２による稼働管理処理は、例えば、稼働管理システム１０においてコンピュータ（仮想マシン及び仮想化サーバ）の稼働を停止することによりコンピュータのよる処理を停止する処理である（図１参照）。例えば、稼働管理システム１０において停電などの緊急時に電力供給が遮断された状態になると、無停電電源装置３２が一定時間だけ継続的に電力供給を行う。本実施形態では、稼働管理システム１０に含まれるコンピュータを稼働停止したときのコンピュータの状態に起因した障害を抑制するように、無停電電源装置３２による一定時間の電力供給中に、依存関係を有する複数のコンピュータの各々を稼働停止する。【００５０】
つまり、稼働管理システム１０において、停電などの電力供給が遮断された状態を無停電電源装置３２が検知すると、稼働管理装置１２は、モデル照合部１４においてモデルを特定する（図１参照）。つまり、モデル照合部１４は、稼働管理システム１０で稼働中の依存関係を有する複数の仮想化サーバ及び仮想マシンに適するモデルをモデルテーブル２４を参照して特定する。次に、稼働停止順序決定部１６は、特定されたモデルの仮想化サーバ及び仮想マシンについて、サーバ種別一覧テーブル２６を参照して稼働停止をする順序を決定する。次に、復電待機時間計算部１８は、無停電電源装置３２の電力供給が可能な時間内で特定されたモデルの仮想化サーバ及び仮想マシンの各々の稼働停止を開始する時間を計算する。次に、稼働停止実行部２０は、復電待機時間計算部１８で計算された時間に従って複数の仮想化サーバ及び仮想マシン、そして物理サーバの稼働停止処理を実行してコンピュータを稼働停止（所謂シャットダウン）する指示を実行する。すなわち、稼働停止実行部２０は、仮想マシン３８，４０，４２，４８，５０，５６、仮想化サーバ３６，４６，５４、そしてコンピュータ３４，４４，５２を稼働停止（所謂シャットダウン）する指示を実行する。【００５１】
図６は、本実施形態に係る稼働管理装置１２で実行される稼働管理プログラム６８の流れを示すフローチャートである。コンピュータシステム５８における管理装置６０において稼働管理プログラム６８が実行されることで、管理装置６０は稼働管理装置１２として動作し、稼働管理処理を実行する。図６に示すように、稼働管理プログラムが実行されると、ステップ２００へ進み、稼働管理装置１２は無停電電源装置３２の監視を開始し、停電等の緊急状態（緊急時）を検知するまで（ステップ２０２で肯定）、無停電電源装置３２の監視を継続する。ここでは、状態監視プログラム７８が実行され、一例である電力供給状態監視処理の結果、無停電電源装置３２に電力供給が成されているか否かの状態を示す電力供給可否信号が非電力供給を示すときに、停電等を検知したこととする。【００５２】
停電等が検知されると、稼働管理装置１２のモデル照合部１４は、ステップ２０４において、モデル照合処理を実行する。モデル照合処理は、モデル照合プロセス７０の処理ルーチン（図７参照）が実行され、稼働中の依存関係を有する複数の仮想化サーバ及び仮想マシンによるモデルを特定する。【００５３】
図７は、本実施形態に係るモデル照合処理の流れを示すフローチャートである。モデル照合処理が実行されると、ステップ２２０においてサーバ種別一覧テーブル２６を参照し、無停電電源装置３２に接続されたサーバの種別が取得される。ここでは、仮想マシン５６のウェブサーバ（WEB_SERVER）、仮想マシン４８のアプリケーションサーバ（AP_SERVER）、仮想マシン３８のデータベースサーバ（DB_SERVER）が取得される。【００５４】
次のステップ２２２では、モデルテーブル２４を参照して、モデルテーブル２４に稼働中のサーバ種別に最適なモデルが存在するか否かが判断される。最適なモデルとは、稼働中のサーバ種別の組み合わせに対するモデルテーブル２４の項目におけるサーバ種別の組み合わせの一致度が所定値以上のネットワークアーキテクチャである。つまり、稼働中のサーバ種別の組み合わせがモデルテーブル２４の項目のサーバ種別の組み合わせに一致するときが最も一致度が高い。一方、稼働中のサーバ種別の組み合わせのサーバ種別数がモデルテーブル２４の項目のサーバ種別の組み合わせのサーバ種別数より少なくなるに従って一致度が低くなる。なお、モデルテーブル２４の項目におけるサーバ種別の組み合わせとは、図３の例では、稼働停止順序の項目に含まれる、サーバ種別の組み合わせである。【００５５】
ステップ２２２の判定が肯定されると、ステップ２２４において該当モデルを取得し、次のステップ２２８において、ステップ２２４で取得したモデルを戻り値に設定され、本ルーチンを終了する。一方、ステップ２２２の判定が否定されると、ステップ２２６において初期値として設定されたモデル（デフォルトモデル）が取得され、次のステップ２２８において、ステップ２２６で取得されたデフォルトモデルを戻り値に設定し、本ルーチンを終了する。本実施形態では、３階層システム（3-tier system）が稼働されているので、モデルテーブル２４の稼働停止順序の欄に、登録されたサーバ種別（WEB_SERVER、AP_SERVER、DB_SERVER）が一致し、モデル名Model-1を該当モデルとして取得し、戻り値に設定される。【００５６】
なお、初期値として設定されたモデル（デフォルトモデル）の一例には、サーバクライアントモデルがある。サーバクライアントモデルでは、コンピュータは、仮想マシンがサーバ（サーバ装置）、またはクライアント（クライアント端末）の何れかのコンピュータとして稼働している。【００５７】
次に、稼働停止順序決定部１６（図１）は、図６のステップ２０６において、特定されたモデルの仮想化サーバ及び仮想マシンについて、稼働停止をする順序を決定する。この稼働停止順序決定処理では、稼働停止順序決定プロセス７２の処理ルーチン（図８参照）が実行される。【００５８】
図８は、本実施形態に係る稼働停止順序決定処理の流れを示すフローチャートである。稼働停止順序決定処理が実行されると、ステップ２３０においてサーバ種別一覧テーブル２６を参照し、上述のステップ２２４またはステップ２２６（図７）で取得されたモデルの稼働停止順序が読み取られる。ここでは、稼働停止順序として仮想マシン５６のウェブサーバ（WEB_SERVER）、仮想マシン４８のアプリケーションサーバ（AP_SERVER）、仮想マシン３８のデータベースサーバ（DB_SERVER）の順序を示す情報が読み取られる。【００５９】
次のステップ２３２では、取得されたモデルにおける最初の順序のサーバが指定される。ここでは、仮想マシン５６のウェブサーバ（WEB_SERVER）が指定される。【００６０】
次のステップ２３４では、サーバ種別一覧テーブル２６（図４）を参照し、指定されたサーバに関する情報が取得される。例えば、ウェブサーバ（WEB_SERVER）が指定されている場合、図４では、項目「ｕｕｉｄ」の「ｕｕｉｄ−１」が該当する。次のステップ２３６では、稼働停止履歴テーブル２８（図５）を参照すると共に、稼働停止履歴テーブル２８に、指定されたサーバの稼働停止時間の履歴データが存在するか否かが判断される。例えば、ウェブサーバ（WEB_SERVER）が指定されている場合、図５では項目「ｕｕｉｄ」の「ｕｕｉｄ−１」に対応する稼働停止時間の欄に履歴データは登録されていない。【００６１】
ステップ２３６で肯定されるとステップ２６８へ進み、履歴データのうち最長時間が取得される。なお、本実施形態では、履歴データのうち最長時間を取得する場合について説明するが、開示の技術はこれに限定されるものではない。例えば、最長時間に予め定めた所定時間を増減してもよい。また、履歴データの平均時間を求めて、その平均時間を使用してもよい。また、履歴データのうち出現頻度が所定値以上の時間を使用しても良い。【００６２】
一方、ステップ２３６で否定されると、ステップ２４０においてモデルテーブル２４を参照して、初期値として登録されている稼働停止時間が取得される。ここでは、ウェブサーバ（WEB_SERVER）が指定されているので、モデルテーブル２４から稼働停止時間として［３００秒］が取得される。【００６３】
次のステップ２４２では、モデルテーブル２４を参照し、該当するサーバのバッファ時間が取得される。ここでは、ウェブサーバ（WEB_SERVER）が指定されているので、モデルテーブル２４におけるバッファ時間として［３０秒］が取得される。次のステップ２４４では、モデルテーブル２４を参照し、該当するサーバの稼働停止順序を示す情報が取得される。ここでは、ウェブサーバ（WEB_SERVER）の稼働停止順序として、順位［１］が取得される。これら取得した稼働停止時間、バッファ時間、及び稼働停止順序を示す情報を、次のステップ２４６においてサーバ種別一覧テーブル２６に格納（登録）する。【００６４】
次に、ステップ２４８において、現在処理しているサーバが該当モデルの最後のサーバであるか否かを判断し、最後のサーバであるときは（ステップ２４８で肯定）、本ルーチンを終了する。一方、モデルに残存するサーバが存在するときは（ステップ２４８で否定）、ステップ２５０においてモデルの次のサーバを指定し、ステップ２３４へ戻り、上記処理が繰り返し実行される。【００６５】
次に、復電待機時間計算部１８（図１）は、図６のステップ２０８において復電待機時間計算処理を実行する。すなわち、復電待機時間計算処理では、無停電電源装置３２の電力供給が可能な時間内で特定されたモデルの仮想化サーバ及び仮想マシンの各々の稼働停止を開始する時間が計算される。復電待機時間計算処理は、復電待機時間計算プロセス７４の処理ルーチン（図９参照）が実行される。【００６６】
図９は、本実施形態に係る復電待機時間計算処理の流れを示すフローチャートである。復電待機時間計算処理が実行されると、ステップ２５２において無停電電源装置３２の給電可能時間が取得される。すなわち、ステップ２５２では、既に実行中の状態監視プログラム７８で取得されている無停電電源装置３２の給電可能時間が取得される。次のステップ２５４では、ステップ２０４（図６）で取得したモデルにおける各サーバが稼働停止するのに要する所要時間（稼働停止時間とバッファ時間）が取得され、次のステップ２５６では合計所要時間として、取得した時間の合計時間が計算される。【００６７】
次のステップ２５８では、ステップ２５２で取得した給電可能時間が、ステップ２５６で計算した合計所要時間以上か否かが判断される。給電可能時間が合計所要時間以上のときには（ステップ２５８で肯定）、ステップ２７２へ進み、最初に稼働を停止するサーバの復電待機時間を計算する。復電待機時間は、給電可能時間から合計所要時間を減算することにより求めることができる。次のステップ２７４では、最初に稼働を停止するサーバの所要時間を計算する。所要時間は、復電待機時間、稼働停止時間、及びバッファ時間の合計により求めることができる。【００６８】
次のステップ２７６では、ステップ２０４（図６）で取得したモデルにおける次のサーバを指定し、次のステップ２７８において該当サーバの不可フラグが真（Ｔｒｕｅ）か否かが判断される。該当サーバの不可フラグが偽（Ｆａｌｓｅ）のときは（ステップ２７８で否定）、ステップ２８０において該当サーバの復電待機時間及び所要時間を計算し、ステップ２８２へ進む。ステップ２８２では、該当サーバがステップ２０４（図６）で取得したモデルにおける最後のサーバか否かが判断され、肯定されると、ステップ２８４へ進み、否定されると、ステップ２７６へ戻り、上記処理を繰り返す。【００６９】
一方、ステップ２７８で肯定されると、該当サーバ以降のサーバは給電可能時間内に稼働停止が困難であるため、ステップ２８０の計算は不要であり、そのままステップ２８４へ進む。ステップ２８４では、各サーバの不可フラグ及び復電待機時間をサーバ種別一覧テーブル２６に登録し、本ルーチンを終了する。【００７０】
ステップ２５６で計算した合計所要時間が給電可能時間未満のときは、ステップ２５８で否定され、ステップ２６０へ進む。ステップ２６０では、ステップ２０４（図６）で取得したモデルにおける最初のサーバを指定し、次のステップ２６２において、該当サーバまでの所要時間を取得し、合計所要時間を計算する。次のステップ２６４では、ステップ２６２で計算した合計所要時間が、ステップ２５６で計算した給電可能時間未満か否かが判断される。給電可能時間が合計所要時間以下のときには（ステップ２６４で否定）、ステップ２６６へ進み、稼働停止順序が該当サーバ以降のサーバについて不可フラグを真（Ｔｒｕｅ）に設定し、ステップ２７２へ進む。一方、給電可能時間が合計所要時間を超えるときには（ステップ２６４で肯定）、ステップ２６８へ進み、該当サーバがモデルの最後のサーバか否かが判断される。ステップ２６８で肯定されると、ステップ２７２へ進み、否定されると、ステップ２７０において稼働停止順で次のサーバを指定した後にステップ２６２へ戻り、上記処理を繰り返す。【００７１】
上述のようにして、復電待機時間計算部１８（図１）による復電待機時間の計算処理を終了すると、図６のステップ２１０へ進む。ステップ２１０では、サーバ種別一覧テーブル２６を参照すると共に、サーバ種別一覧テーブル２６に不可フラグが偽（Ｆａｌｓｅ）のサーバが有るか否かが判断される。ステップ２１０で否定されると、給電時間内に依存性を有する全サーバを稼働停止することができるので、そのままステップ２１４へ進む。一方、ステップ２１０で肯定されたときには、給電時間内に依存性を有するサーバのうち稼働停止することが困難なサーバが存在する。ところで、サーバを休止モードへ移行させることは、所謂シャットダウンさせるに必要な時間に比較して、所要時間が短い。そこで、本実施形態では、稼働停止困難なサーバに対する対処の一例としてサーバを休止モードに移行させる。従って、ステップ２１２では、サーバ種別一覧テーブル２６に不可フラグが偽（Ｆａｌｓｅ）のサーバを休止モードに移行させるように設定し、ステップ２１４へ進み、稼働停止実行部２０（図１）の処理へ移行する。【００７２】
次に、稼働停止実行部２０（図１）は、図６のステップ２１４において、復電待機時間計算部１８で計算された時間に従ってサーバの稼働停止処理を実行してコンピュータを稼働停止（所謂シャットダウン）する指示を実行する。すなわち、稼働停止実行部２０は、仮想マシン３８，４０，４２，４８，５０，５６、仮想化サーバ３６，４６，５４、そしてコンピュータ３４，４４，５２を稼働停止（所謂シャットダウン）する指示を実行する。稼働停止実行部２０による稼働停止実行処理は、稼働停止実行プロセス７６の処理ルーチン（図１０参照）が実行され、稼働中の依存関係を有する複数の仮想化サーバ及び仮想マシンを稼働停止させる。【００７３】
図１０は、本実施形態に係る稼働停止実行処理の流れを示すフローチャートである。稼働停止実行処理が実行されると、ステップ２８６においてステップ２０４で取得したモデルの稼働停止順序を読み取る。ここでは、仮想マシン５６のウェブサーバ（WEB_SERVER）、仮想マシン４８のアプリケーションサーバ（AP_SERVER）、仮想マシン３８のデータベースサーバ（DB_SERVER）の順序を示す情報が読み取られる。【００７４】
次のステップ２８８では、取得されたモデルにおける最初の順序のサーバが指定される。ここでは、仮想マシン５６のウェブサーバ（WEB_SERVER）が指定される。次のステップ２９０では、該当サーバを稼働停止する指示を実行する。すなわち、ステップ２９０では、既に実行中の制御プログラム８０に対して、該当サーバへのシャットダウン命令または休止モードへの移行命令を出力する指示を出力する。該当サーバへのシャットダウン命令または休止モードへの移行命令の判別は、サーバ種別一覧テーブル２６の稼働停止不可フラグの値から判断できる。【００７５】
次のステップ２９２では、該当サーバ（仮想マシン）が稼働されている物理サーバに、他の仮想マシンが存在するか否かが判断され、肯定されるとステップ２９４へ進み、否定されるとステップ２９６へ進む。ステップ２９２の判断は、既に実行中の状態監視プログラム７８において監視している物理サーバが担当している仮想マシンの有無を、状態監視プログラム７８において記憶している情報から判別できる。ステップ２９２で肯定されると、ステップ２９４へ進み、該当物理サーバで稼働中の他の仮想マシンが全て休止モードに移行しているか否かが判断され、肯定されると、ステップ２９６へ進み、否定されるとステップ２９８へ進む。【００７６】
ステップ２９６では、該当する物理サーバを稼働停止する指示を実行する。すなわち、ステップ２９６では、既に実行中の制御プログラム８０に対して、該当物理サーバへのシャットダウン命令を出力する指示を出力する。【００７７】
次のステップ２９８では、ステップ２８８で指定されたサーバ（仮想マシン）が、ステップ２０４で取得したモデルの最後のサーバであるか否かが判断され、肯定されるとそのまま本ルーチンを終了する。一方、ステップ２９８で否定されると、ステップ３００へ進み、ステップ２８８で指定された該当サーバの稼働停止を確認する。該当サーバの稼働停止が確認された後に、ステップ３０２においてステップ２０４で取得したモデルの次のサーバを指定した後にステップ２９２へ戻り、上記処理を繰り返す。【００７８】
本実施形態では、無停電電源装置３２に接続された各仮想化サーバ及び仮想化マシンの稼働状況と、各仮想化サーバ及び仮想化マシンの依存関係から、各々の復電待機時間及び稼働停止の順番を設定する。【００７９】
図１１に示すように、コンピュータシステム５８は、コンピュータ３４の管理下に仮想マシン３８，４０，４２が稼働し、コンピュータ４４の管理下に仮想マシン４８，５０が稼働し、コンピュータ５２の管理下に仮想マシン５６が稼働している。例えば、３台の仮想マシン３８，４０，４２が稼働するコンピュータ３４は、コンピュータ４４及びコンピュータ５２に比べてＣＰＵの処理負荷が大きい。このため、コンピュータ３４を稼働停止するのに要する時間（稼働停止時間）は、コンピュータ４４及びコンピュータ５２に比べて長時間になる。本実施形態では、停電等が検知されてから稼働停止処理へ移行するまでの時間である復電待機時間を、仮想化サーバ及び仮想化マシンの稼働状況と依存関係から動的に求めている。【００８０】
例えば、無停電電源装置３２により給電可能な時間（給電可能時間）は一定の時間ｔ１とすると、停電から時間ｔ１を経過するまでに、稼働停止されることが要求される。しかし、復電待機時間を一定の時間ｔ２とすると、コンピュータ３４，４４は稼働停止処理中に無停電電源装置３２からの給電が停止され、コンピュータ３４，４４に障害が生じる虞がある。これに対して、本実施形態では、コンピュータ３４では稼働停止に必要な時間ｔ６及びバッファ時間ｔ８の合計時間より以前の時期を稼働停止開始時期としている。つまり、無停電電源装置３２の給電可能時間ｔ１から、稼働停止時間ｔ６とバッファ時間ｔ８の合計時間を減算した時間ｔ３以内となる。また、コンピュータ４４では、無停電電源装置３２の給電可能時間ｔ１から、稼働停止時間ｔ７とバッファ時間ｔ９の合計時間を減算した時間ｔ４以内となる。このように、本実施形態では、復電待機時間を一定値とする技術に比べて、復電待機時間を調整することで稼働停止開始時期の自由度が増加し、稼働停止に伴って生じるコンピュータの障害を抑制できる。なお、給電可能時間ｔ１以内の時間ｔ２で、停電が解消されれば、通常の稼働に復旧することができる。【００８１】
また、本実施形態では、仮想化マシン等の稼働状況と、仮想化マシン等の依存関係から、稼働停止の順序を設定している。【００８２】
図１２に示すように、コンピュータシステム５８において、コンピュータ３４にデータベースサーバとして仮想マシン３８が含まれる。また、コンピュータ４４にアプリケーションサーバとして仮想マシン４８が含まれる。そしてコンピュータ５２にウェブブサーバとして仮想マシン５６が含まれる３階層システムを当初に構築したものとする。この場合、３階層システムの構築当初は、稼働停止順序は、コンピュータ３４，４４，５２であり、一般的にはこの順序に従って各コンピュータの稼働が停止されるように例えばバッチ処理等によって稼働停止処理が実行されるように設定される。しかし、コンピュータシステム５８の運用中に、仮想マシンの移動が可能である機能を把握するユーザ（管理者）は、仮想マシンの移動を求める場合がある。例えば、システムメインテナンスやＣＰＵ負荷などの移動条件によって、例えばアプリケーションサーバの仮想マシン４８をコンピュータ５２に移動したり、ウェブブサーバの仮想マシン５６をコンピュータ４４に移動する場合がある。また、１台のコンピュータに複数の仮想亜ｍしんを片寄せする場合もある。【００８３】
仮想マシンを構築当初より移動させた場合、構築当初に設定した稼働停止順序と相違する順序となり、誤った順序で稼働停止処理が実行されることになる。本実施形態では、仮想化マシン等の稼働状況と、仮想化マシン等の依存関係から、稼働停止の順序を決定し、決定した稼働停止順序に従って仮想マシン等の稼働を停止させる。従って、構築当初の稼働停止順序から変更があった場合であっても、変更された仮想マシンの位置に応じて仮想マシンの稼働を停止することができる。これにより、仮想化サーバ及び仮想化マシンが移動を伴って稼働されたシステムの状態に対応して、コンピュータの稼働を停止することができる。【００８４】
以上説明したように、本実施形態では、管理装置６０は、無停電電源装置３２と、無停電電源装置３２から電源が供給される物理サーバに含まれる仮想化サーバ及び仮想マシンを制御・監視する。管理装置６０は無停電電源装置３２を介して停電等を検知すると、無停電電源装置３２に接続された各仮想化サーバ及び仮想マシンの稼働状況、及び依存関係から動的に復電待ち時間・稼働停止（シャットダウン）の順番を設定する。【００８５】
また、復電待機時間は、無停電電源装置３２の給電可能時間から、稼働停止時間（例えばシャットダウン時間）とバッファ時間の合計時間を引いた時間に設定する。つまり、復電待機時間、稼働停止時間とバッファ時間の合計が、給電可能時間以内となるように計算する。稼働停止時間は、仮想マシンが通常時に稼働停止に要する時間を履歴として記録しておき、その履歴より求めた最大時間や平均時間を使用する。また、バッファ時間はモデルから各サーバ（仮想化サーバ、仮想マシン）に設定する。なお、履歴がない場合は初期値を設定する。【００８６】
稼働停止するための順序は、システムの稼働状況を監視し、依存関係として登録された複数のモデル（ネットワークアーキテクチャ）と照合して決定する。また、モデルテーブル２４にはモデルごとに依存関係を考慮した適切な稼働停止順序が定義されている。依存関係は、予め定義されたサーバ種別と仮想マシンの識別情報（UUID）から確認できる。【００８７】
また、稼働停止順序と稼働停止に要する時間を考慮した結果、給電可能時間内に稼働停止が完了しないことが予測される場合は、ＯＳの休止モードを設定する。これにより稼働中の仮想マシンの容が記憶部に書き込まれるので、実行中の処理は保護される。【００８８】
なお、復電待機時間が一定で稼働停止する技術では、復電時期により、稼働停止するコンピュータと、稼働停止しないコンピュータが混在するという問題が生じる。この問題は、本実施形態では、管理装置６０が復電の検出時期で、無停電電源装置３２に接続される全コンピュータ（物理サーバ、仮想化サーバ、仮想マシン）を起動することで解決する。【００８９】
このように、本実施形態では、給電中に稼働停止を完了することができ、停電等の際にも安全なシステム管理ができる。また、動的に物理マシンや仮想マシンの状況・依存関係から稼働停止時間を算出し、十分な稼働停止時間を確保した上で復電待機時間を設定するので、停電等の緊急時のサーバ間の依存関係を考慮して給電中に稼働停止を完了することができる。これによって、稼働停止中に強制電源遮断になる障害を抑制でき、強制電源遮断によるコンピュータ資産の破壊や故障等の不具合発生を抑制することができる。【００９０】
なお、上記では物理サーバに含まれる仮想マシンに機能を有するサーバの一例を説明したが、仮想マシンに機能を有するサーバに限定されるものではない。例えば、物理サーバを仮想化サーバを含めた何れかのコンピュータについて適用可能である。【００９１】
また、上記では３階層システムをモデルとしたシステムを一例としたが、３階層システムをモデルとしたシステムに限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。【００９２】
また、上記ではプログラムがコンピュータの記憶部に予め記憶（インストール）されている態様を説明したが、プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。【００９３】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【符号の説明】
【００９４】
１０    稼働管理システム
１２    稼働管理装置
１４    モデル照合部
１６    稼働停止順序決定部
１８    復電待機時間計算部
２０    稼働停止実行部
２２    記憶部
２４    モデルテーブル
２６    サーバ種別一覧テーブル
２８    稼働停止履歴テーブル
３２    無停電電源装置
３４、４４、５２    コンピュータ
３６、４６，５４    仮想化サーバ
３８、４０、４２、４８、５０    仮想マシン
５８    コンピュータシステム
６０    管理装置
６２    ＣＰＵ
６４    メモリ
６６    記憶部
６８    稼働管理プログラム
７０    モデル照合プロセス
７２    稼働停止順序決定プロセス
７４    復電待機時間計算プロセス
７６    稼働停止実行プロセス
【図１】
0005861767.tif 000002
【図２】
0005861767.tif 000003
【図３】
0005861767.tif 000004
【図４】
0005861767.tif 000005
【図５】
0005861767.tif 000006
【図６】
0005861767.tif 000007
【図７】
0005861767.tif 000008
【図８】
0005861767.tif 000009
【図９】
0005861767.tif 000010
【図１０】
0005861767.tif 000011
【図１１】
0005861767.tif 000012
【図１２】
0005861767.tif 000013