(57)【要約】【課題】  異なる仮想マシンで実行され、起動順序が決まっている複数のサービスを起動するときの起動時間を短縮する。【解決手段】  サービスのグループについて、ａ）各サービスのグループ内における起動順序と、ｂ）各サービスの実行に使用される仮想マシンと、を定義するグループ定義を格納する設定情報記憶手段と、グループの起動時に、１）グループ内の各サービスの実行に使用される各仮想マシンの起動を物理マシンで並列に開始し、２）サービスを起動順序に従って、グループ定義でサービスに対応して定められた仮想マシンの起動完了後に、当該仮想マシンで起動する仮想マシン制御手段と、を備える起動管理装置。【選択図】      図２
2019079309.tif 000002
【特許請求の範囲】
【請求項１】
サービスのグループについて、ａ）各前記サービスのグループ内における起動順序と、ｂ）各前記サービスの実行に使用される仮想マシンと、を定義するグループ定義を格納する設定情報記憶手段と、
前記グループの起動時に、１）前記グループ内の各前記サービスの実行に使用される各前記仮想マシンの起動を物理マシンで並列に開始し、２）前記サービスを前記起動順序に従って、前記グループ定義で前記サービスに対応して定められた前記仮想マシンの起動完了後に、当該仮想マシンで起動する仮想マシン制御手段と、を備える起動管理装置。
【請求項２】
前記設定情報記憶手段は、起動順序の定めのない前記サービスである単独の前記サービスと当該サービスの実行に使用される前記仮想マシンを定義する単独サービス定義を、さらに格納し、
前記仮想マシン制御手段は、前記設定情報記憶手段に格納されている前記グループ、および、単独の前記サービスを所定の順番で、起動に要するリソース量が前記物理マシンの使用可能なリソース量の範囲内で選択し、選択した前記グループ、および、単独の前記サービスを起動する、請求項１の起動管理装置。
【請求項３】
前記仮想マシン制御手段は、同時に起動を開始する、前記グループ、および、単独サービスを実行する前記仮想マシンの数を所定値以下にする、請求項２の起動管理装置。
【請求項４】
前記設定情報記憶手段は、前記グループ、および、単独の前記サービスに関連付けて優先度を格納し、
前記仮想マシン制御手段は、前記グループ、および、単独の前記サービスを前記優先度の順番で起動する、請求項２乃至請求項３の何れか一項の起動管理装置。
【請求項５】
前記起動管理装置は前記物理マシンであり、
前記仮想マシン制御手段は、前記サービスを起動するサービス制御手段を備える前記仮想マシンを自装置に起動して、前記サービスの起動を前記仮想マシンの前記サービス制御手段に要求する、請求項１乃至請求項４の何れか一項の起動管理装置。
【請求項６】
前記仮想マシン制御手段は、前記仮想マシンの起動を、前記物理マシンが備えている仮想化手段に要求し、前記サービスの起動を前記仮想マシンが備えるサービス制御手段に要求する請求項１乃至請求項４の何れか一項の起動管理装置と、
前記仮想マシン制御手段からの要求を受けて、前記サービスを起動する前記サービス制御手段を備える前記仮想マシンを自装置に起動する前記仮想化手段を備える前記物理マシンと、を包含する起動管理システム。
【請求項７】
サービスのグループについて、ａ）各前記サービスのグループ内における起動順序と、ｂ）各前記サービスの実行に使用される仮想マシンと、を定義するグループ定義を記憶し、
前記グループの起動時に、１）前記グループ内の各前記サービスの実行に使用される各前記仮想マシンの起動を物理マシンで並列に開始し、２）前記サービスを前記起動順序に従って、前記グループ定義で前記サービスに対応して定められた前記仮想マシンの起動完了後に、当該仮想マシンで起動する起動管理方法。
【請求項８】
起動順序の定めのない前記サービスである単独の前記サービスと当該サービスの実行に使用される前記仮想マシンを定義する単独サービス定義を、さらに記憶し、
記憶している前記グループ、および、単独の前記サービスを所定の順番で、起動に要するリソース量が前記物理マシンの使用可能なリソース量の範囲内で選択し、選択した前記グループ、および、単独の前記サービスを起動する、請求項７の起動管理方法。
【請求項９】
同時に起動を開始する、前記グループ、および、単独サービスの前記仮想マシンの数を所定値以下にする、請求項８の起動管理方法。
【請求項１０】
サービスのグループについて、ａ）各前記サービスのグループ内における起動順序と、ｂ）各前記サービスの実行に使用される仮想マシンと、を定義するグループ定義を記憶する設定情報記憶処理と、
前記グループの起動時に、１）前記グループ内の各前記サービスの実行に使用される各前記仮想マシンの起動を物理マシンで並列に開始し、２）前記サービスを前記起動順序に従って、前記グループ定義で前記サービスに対応して定められた前記仮想マシンの起動完了後に、当該仮想マシンで起動する仮想マシン制御処理と、をコンピュータに実行させる起動管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動管理装置、起動管理システム、起動管理方法、および、起動管理プログラム、特に、異なる仮想マシンで実行され、起動順序が決まっている複数のサービスを起動する技術に関する。
【背景技術】
【０００２】
業務システムを構成する複数のサービス（アプリケーションプログラム）間で、起動される順番が決められている場合が有る。例えば、サービスＡの或る処理がサービスＢに依存する場合、サービスＢはサービスＡより先に起動されていなければならない。ここで、サービスＡの或る処理がサービスＢに依存する場合とは、サービスＡの或る処理がサービスＢを利用するような場合を指す。特許文献１が開示するシステムは、このようなニーズに対応するため、リソースの起動順序やサービス開始順序を設定できるようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３２５２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
業務システムにおいて、複数の仮想マシンが実行している複数のサービスの間に依存関係があり、起動される順序が決まっている場合が有る。業務システムは、仮想マシンを実行する物理マシンの立ち上げ時や障害からの復旧時に、定められた順序で複数のサービスを開始させていく。この開始過程は、仮想システムの起動と、起動された仮想システムがサービスを起動することを含む。
【０００５】
これらの順序に従って仮想マシンを起動する場合、仮想マシンの数が多く順序制御の列が長くなると処理時間が増大してしまう。このことは、物理マシンの障害からの復旧時に、特に課題となる。
【０００６】
特許文献１に開示されているシステムは、仮想マシンを用いないシステムであり、上述の課題を解決しない。
【０００７】
本発明は、上記課題を解決し、異なる仮想マシンで実行され、起動順序が決まっている複数のサービスを起動するときの起動時間を短縮できるシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の１実施の形態の起動管理装置は、サービスのグループについて、ａ）各前記サービスのグループ内における起動順序と、ｂ）各前記サービスの実行に使用される仮想マシンと、を定義するグループ定義を格納する設定情報記憶手段と、前記グループの起動時に、１）前記グループ内の各前記サービスの実行に使用される各前記仮想マシンの起動を物理マシンで並列に開始し、２）前記サービスを前記起動順序に従って、前記グループ定義で前記サービスに対応して定められた前記仮想マシンの起動完了後に、当該仮想マシンで起動する仮想マシン制御手段と、を備える。
【０００９】
本発明の１実施の形態の起動管理方法は、サービスのグループについて、ａ）各前記サービスのグループ内における起動順序と、ｂ）各前記サービスの実行に使用される仮想マシンと、を定義するグループ定義を記憶し、前記グループの起動時に、１）前記グループ内の各前記サービスの実行に使用される各前記仮想マシンの起動を物理マシンで並列に開始し、２）前記サービスを前記起動順序に従って、前記グループ定義で前記サービスに対応して定められた前記仮想マシンの起動完了後に、当該仮想マシンで起動する。
【００１０】
本発明の１実施の形態の起動管理プログラムは、サービスのグループについて、ａ）各前記サービスのグループ内における起動順序と、ｂ）各前記サービスの実行に使用される仮想マシンと、を定義するグループ定義を記憶する設定情報記憶処理と、前記グループの起動時に、１）前記グループ内の各前記サービスの実行に使用される各前記仮想マシンの起動を物理マシンで並列に開始し、２）前記サービスを前記起動順序に従って、前記グループ定義で前記サービスに対応して定められた前記仮想マシンの起動完了後に、当該仮想マシンで起動する仮想マシン制御処理と、をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明にかかる起動管理装置は、異なる仮想マシンで実行され、起動順序が決まっている複数のサービスを起動するときの起動時間を短縮できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、第一の実施の形態にかかる起動管理システム９０の構成図の例である。
【図２】図２は、起動管理装置１０、及び、物理マシン２０の内部構成を示す図である。
【図３】図３は、設定情報記憶手段１２に格納されるグループ定義の構成を示す図である。
【図４】図４は、設定情報記憶手段１２に格納される単独サービス定義の構成を示す図である。
【図５】図５は、設定情報記憶手段１２に格納される優先度定義の構成を示す図である。
【図６】図６は、コンピュータ装置６０の構成図である。
【図７】図７は、起動管理システム９０が起動されたときの仮想マシン制御手段１４の動作フローチャート（その１）である。
【図８】図８は、起動管理システム９０が起動されたときの仮想マシン制御手段１４の動作フローチャート（その２）である。
【図９】図９は、弟二の実施の形態にかかる起動管理装置１０の構成図の例である。
【図１０】図１０は、第三の実施の形態にかかる起動管理装置１０の構成図の例である。
【発明を実施するための形態】
【００１３】
＜第１の実施の形態＞
＜概要＞
本実施の形態にかかる起動管理システム９０において、サービスは仮想マシン３０で実行され、さらに、起動の順序関係で繋がる複数のサービスはグループとして管理される。サービスのグループ、および、順序関係を持たない単独のサービスは、優先度が与えられている。システムの起動または物理マシン２０の障害からの復旧時、各サービスは上記順序関係および優先度に従った順序で起動され、システムの停止時、各サービスは上記順序関係の逆順に停止される。
【００１４】
起動時、起動管理装置１０は、グループについては、グループ内のサービス実行に必要な全ての仮想マシン３０の起動を並列に行う一方、サービスの起動は順序関係に従って行う。停止時、起動管理装置１０は、グループについては、サービスの停止は順序関係の逆順に行うが、グループ内の仮想マシン３０の停止は並列に行う。
【００１５】
起動管理装置１０は、仮想マシン３０の起動に必要なリソースが物理マシン２０に不足している場合や、物理マシン２０上で起動処理が集中し過ぎてしまうことが見込まれる場合に、優先度の高いサービスを実行する仮想マシン３０の起動を優先する。
【００１６】
＜構成＞
図１は、本実施の形態にかかる起動管理システム９０の構成図の例である。起動管理システム９０は、通信ネットワーク７０で接続された物理マシン２０、起動管理装置１０、および、端末装置５０を包含する。物理マシン２０は複数存在しても良い。
【００１７】
物理マシン２０は、１台以上の仮想マシン３０を実行している。図１の起動管理システム９０は２台の物理マシン２０を包含し、１台の物理マシン２０は２台の仮想マシン３０を実行し、他の１台の物理マシン２０は３台の仮想マシン３０を実行している。
【００１８】
各仮想マシン３０はサービスを実行する。複数のサービスが起動の順序関係で繋がる場合、それらのサービスはグループを構成する。例えば、３つのサービスが有り、サービスＡ，サービスＢ，サービスＣの順に起動されなければならないとき、サービスＡ，Ｂ，Ｃはグループを構成する。順序関係はこのような直列関係でなくても良い。例えば、サービスＡが先に起動され、その後、サービスＢとＣが相互に順序関係なく起動されても良い。また、サービスＡとＢが相互に順序関係なく起動され、その後、サービスＣが起動されても良い。グループを構成するサービスの数は３に限らない。簡単のため、以降の説明は直列関係を前提とする。
【００１９】
起動管理システム９０において、グループに属するサービスを実行する仮想マシン３０は、ほぼ同時に並列的に起動開始され、起動完了後、各々が定められたサービスを起動順序に従って起動する。例えば、図１中の点線で囲んだ３台の仮想マシン３０は、グループに属するサービスを実行する仮想マシン３０である。この３台は並行して起動され、矢印の順にサービスを起動していく。
【００２０】
図１が例示するように、グループに属するサービスは、複数の物理マシン２０に分散して実行されても良い。
【００２１】
利用者は端末装置５０を利用することにより各仮想マシン３０を操作することができる。なお、端末装置５０は、複数、例えば仮想マシン３０対応に存在しても良い。
【００２２】
図２は、起動管理装置１０、及び、物理マシン２０の内部構成を示す図である。本図は、本発明に係る構成部分を抜き出して示している。
【００２３】
起動管理装置１０は、管理用ユーザインタフェース１１、設定情報記憶手段１２、仮想マシン制御手段１４、及び、障害検出手段１５を備えている。物理マシン２０は、仮想化手段２１を備え、仮想マシン３０を実行する。仮想マシン３０は、サービス制御手段３１を備えている。
【００２４】
管理用ユーザインタフェース１１は、システム管理者が端末装置５０から管理作業を行うためのユーザインタフェースを実現する。設定情報記憶手段１２は、サービスのグループ定義、起動順序関係の定めがない単独サービスの定義、サービスの優先度定義の情報を格納する。これらの情報は、システム管理者が端末装置５０から管理用ユーザインタフェース１１に入力して、設定情報記憶手段１２に格納される。
【００２５】
仮想マシン制御手段１４は、起動管理システム９０の起動/停止時に、仮想マシン３０の起動/停止、及び、サービスの起動/停止を実行する。また、仮想マシン制御手段１４は、物理マシン２０の障害からの復旧時に、仮想マシン３０の起動、仮想マシン３０の他の物理マシン２０への移動、及び、サービスの起動を実行する。この時、仮想マシン制御手段１４は、仮想マシン３０の起動/停止、及び、他の物理マシン２０への移動を物理マシン２０の仮想化手段２１に指示し、サービスの起動/停止を仮想マシン３０のサービス制御手段３１に指示する。この時、仮想マシン制御手段１４は、設定情報記憶手段１２に格納されている情報に基づいて、仮想マシン３０および仮想マシン３０で動作するサービスの起動/停止を制御する。
【００２６】
障害検出手段１５は、物理マシン２０に障害が発生していないか監視を行う。物理マシン２０の障害による停止を検出した場合、障害検出手段１５は、その物理マシン２０上で動作していた仮想マシン３０を復旧するため、仮想マシン制御手段１４に障害検出を通知する。
【００２７】
物理マシン２０上の仮想化手段２１は、起動管理装置１０の仮想マシン制御手段１４から指示を受けて、仮想マシン３０の起動、実行、停止を行う。仮想化手段２１は各仮想マシン３０の構成情報を記憶しており、与えられた仮想マシンのＩＤ（identification）に関連付けられている構成情報に基づいて仮想マシン３０を自装置に起動する。仮想化手段２１は、ハイパーバイザとか仮想計算機モニタと呼ばれることが有る。仮想マシン３０のサービス制御手段３１は、起動管理装置１０の仮想マシン制御手段１４から、仮想化手段２１経由で指示を受けて、指示されたサービスを仮想マシン３０内で起動する。
【００２８】
図３は、設定情報記憶手段１２に格納されるグループ定義の構成を示す図である。グループ定義は、グループに属するサービスごとに、以下の情報を格納する。
【００２９】
・グループのＩＤ
・サービス名、当該サービスを実行する仮想マシンのＩＤ
・当該サービスに先行して起動する先行サービス名、当該先行サービスを実行する仮想マシンのＩＤ
図４は、設定情報記憶手段１２に格納される単独サービス定義の構成を示す図である。単独定義は、単独サービスごとに、サービス名、当該サービスを実行する仮想マシンのＩＤを格納する。
【００３０】
図５は、設定情報記憶手段１２に格納される優先度定義の構成を示す図である。優先度定義は、サービスのグループごとにグループＩＤと優先度を格納し、さらに、単独サービスごとにサービス名と優先度を格納する。
【００３１】
ここで、起動管理装置１０の、管理用ユーザインタフェース１１、仮想マシン制御手段１４、及び、障害検出手段１５は、論理回路、または、専用プロセッサとファームウェアで構成される。設定情報記憶手段１２は、半導体記憶装置、ＨＤＤ（Hard Disk Drive）、または、ＳＤＤ(Solid State Drive)等の記憶装置である。
【００３２】
起動管理装置１０は、コンピュータ装置６０で構成されても良い。図６は、コンピュータ装置６０の構成図である。コンピュータ装置６０は、バス６４で相互に接続された、プロセッサ６１、主記憶手段６３、及び、外部記憶手段６２を備える。
【００３３】
プロセッサ６１は、バス６４を経由して、主記憶手段６３、及び、外部記憶手段６２に対してデータの読み書きを行う。
【００３４】
また、プロセッサ６１は、主記憶手段６３に格納されている起動管理プログラム６５を実行する。なお、起動管理プログラム６５は、当初外部記憶手段６２に格納されており、コンピュータ装置６０の初期設定時に、プロセッサ６１が外部記憶手段６２から主記憶手段６３にロードしても良い。
【００３５】
ここで、主記憶手段６３は半導体メモリ手段である。外部記憶手段６２は、ＨＤＤ、または、ＳＤＤ等の記憶手段である。
【００３６】
コンピュータ装置６０のプロセッサ６１は、起動管理プログラム６５を実行することにより、管理用ユーザインタフェース１１、仮想マシン制御手段１４、及び、障害検出手段１５として機能する。すなわち、プロセッサ６１は、起動管理プログラム６５を実行することにより、管理用ユーザインタフェース１１、仮想マシン制御手段１４、及び、障害検出手段１５が行う処理を実行する。
【００３７】
主記憶手段６３、または、外部記憶手段６２は、設定情報記憶手段１２として使用される。
【００３８】
＜動作＞
起動管理システム９０の利用に先立ち、システム管理者は予め、起動管理装置１０の管理用ユーザインタフェース１１を利用して、設定情報記憶手段１２に、図３のグループ定義、図４の単独サービス定義、及び、図５の優先度定義の情報を格納する。
【００３９】
その後、起動管理システム９０が起動されて、起動管理装置１０や各物理マシン２０が起動される。
【００４０】
＜１．起動管理システム９０起動時の動作＞
図７及び図８は、起動管理システム９０が起動されたときの仮想マシン制御手段１４の動作フローチャートである。
【００４１】
ステップＳ１において、仮想マシン制御手段１４は、物理マシン２０の使用可能リソース量ＲＡ（以降、ＲＡと略記）を取得する。ここで、リソース量は、例えば、記憶域量、通信量、および、計算能力量のうち、起動管理システム９０でネックになり易いリソース量である。
【００４２】
さらに、仮想マシン制御手段１４は、起動スケジュール済みのサービスのリストを空（Ｎｕｌｌ）に設定し、使用予定リソース量ＲＢ（以降、ＲＢと略記）と、起動される仮想マシン３０のカウントをゼロに設定する。使用可能な物理マシン２０が複数ある時、ＲＡ、ＲＢ、カウントは、物理マシン２０ごとに存在する値である。
【００４３】
ステップＳ２において、仮想マシン制御手段１４は、優先度が最も高い未スケジュールのサービスのグループ、または、単独のサービスを優先度定義から選択し、その起動に要するリソース量ＲＣ（以降、ＲＣと略記）を見積もる。サービスのグループを選択した時、ＲＣは、グループ内のサービスごとに存在する値である。
【００４４】
ステップＳ３において、仮想マシン制御手段１４は、ＲＢとＲＣの加算値がＲＡ以下となる当該単独サービスを実行可能な物理マシン２０が存在するか否かを判定し、存在すれば（Ｓ３でＹ）Ｓ４に進む。Ｓ２でサービスのグループを選択した時、仮想マシン制御手段１４は、グループ内の各サービスに対して実行可能なリソースを備えた物理マシン２０が存在すれば（Ｓ３でＹ）Ｓ４に進む。
【００４５】
ステップＳ４において、仮想マシン制御手段１４は、単独サービスを実行可能な物理マシン２０のカウントが１加算されても所定値以下であれば（Ｓ４でＹ）、Ｓ５に進む。Ｓ２でサービスのグループを選択した時、仮想マシン制御手段１４は、グループ内の各サービスに対して当該サービスを実行可能な物理マシン２０のカウントが１加算されても所定値以下であれば（Ｓ４でＹ）、Ｓ５に進む。
【００４６】
ステップＳ５において、仮想マシン制御手段１４は、Ｓ２で選択したサービスのグループ、または、単独のサービスを起動スケジュール済みのサービスのリストに追加する。サービスのグループを登録する時、仮想マシン制御手段１４は、サービスのグループＩＤとともに、グループ内の各サービスのサービス名に関連付けて、仮想マシン３０と物理マシン２０のＩＤをリストに記録する。また、単独サービスを登録する時、仮想マシン制御手段１４は、単独サービスのサービス名に関連付けて、仮想マシン３０と物理マシン２０のＩＤをリストに記録する。
【００４７】
さらに、仮想マシン制御手段１４は、当該単独サービスを実行可能な物理マシン２０のカウントに１を加算し、ＲＢにＲＣを加算する。Ｓ２でサービスのグループを選択した時、仮想マシン制御手段１４は、グループ内の各サービスに対して当該サービスを実行可能な物理マシン２０のカウントに１を加算し、ＲＢにＲＣを加算する。その後、仮想マシン制御手段１４はＳ２に戻る。
【００４８】
Ｓ２で選択したサービスの仮想マシン３０を実行可能な物理マシン２０が存在しない場合（Ｓ３でＮ）、仮想マシン制御手段１４は、Ｓ８において、既に起動スケジュール済みのサービスのリストに登録されているサービスを起動する（図８参照）。これは、リソース不足が発生したため、優先度の高いサービスから、リソース量の許す範囲で起動することを意味する。
【００４９】
ステップＳ４において、起動される仮想マシン３０の数を加算すると、カウントが所定値を超える場合（Ｓ４でＮ）、仮想マシン制御手段１４はステップＳ５に進む。ステップＳ５において仮想マシン制御手段１４は、既に起動スケジュール済みのサービスのリストに登録されているサービスを起動し（図８参照）、全てのサービスの起動が完了すれば（Ｓ６でＹ）、処理を終了する。全てのサービスの起動が完了していなければ（Ｓ６でＮ）、仮想マシン制御手段１４は、所定時間の待ち合わせ（Ｓ７）後、Ｓ１に戻る。並行して起動するサービス数を優先度の高い順に所定値以下に抑えるのは、次の起動を所定の時間遅らせることで、多数の仮想マシン３０を同時起動することで物理マシン２０およびストレージ装置への負荷が集中することを避ける為である。
【００５０】
図８は、仮想マシン制御手段１４が、起動スケジュール済みのサービスのリストに登録されているサービスを起動するときのフローチャートである。
【００５１】
ステップＳ１１において、仮想マシン制御手段１４は、起動スケジュール済みのサービスのリストに登録されている全てのサービスに関連付けられている仮想マシン３０を起動する。これには、単独サービスに関連付けられている仮想マシン３０も、グループを構成する各サービスに関連付けられている仮想マシン３０も含まれる。仮想マシン制御手段１４は、この起動を各サービスに関連付けられている物理マシン２０の仮想化手段２１に要求する。仮想化手段２１は、各仮想マシン３０の起動が完了するたびに、起動完了報告を仮想マシン制御手段１４に通知する。
【００５２】
ステップＳ１２において、仮想マシン制御手段１４は、起動完了報告を待ち合わせる。報告を受信し、起動が完了した仮想マシン３０がグループを構成するサービスに関連付けられたものである場合（Ｓ１２及びＳ１３でＹ）、仮想マシン制御手段１４は、ステップＳ１４に進む。
【００５３】
ステップＳ１４において、仮想マシン制御手段１４は、起動が完了したのが、グループ内の起動順序関係における先頭の未起動サービスに関連付けられた仮想マシン３０であるか否かを判定する。起動が完了した仮想マシン３０がグループ内の起動順序関係における先頭の未起動サービスの仮想マシン３０でない場合（Ｓ１４でＮ）、仮想マシン制御手段１４は、ステップＳ１２に戻って、次の起動完了報告を待ち合わせる。
【００５４】
起動が完了した仮想マシン３０が、起動順序関係における先頭の未起動サービスの仮想マシン３０である場合（Ｓ１４でＹ）、ステップＳ１５において、仮想マシン制御手段１４は、順序関係の先頭から、仮想マシン３０の起動が完了している各サービスを順次起動する。このとき、仮想マシン制御手段１４は、サービスごとに、関連付けられている仮想マシン３０のサービス制御手段３１にサービスの起動を要求し、その完了を待ち合わせる。サービス制御手段３１は、サービスの起動が完了すると、仮想マシン３０の起動完了報告を仮想マシン制御手段１４に通知する。
【００５５】
次にステップＳ１６において、仮想マシン制御手段１４は、グループ内の全てのサービスを起動済みか否か判定し、完了していれば（Ｓ１６でＹ）ステップＳ１８に進み、完了していなければ（Ｓ１６でＮ）ステップＳ１２に戻って次の起動完了報告を待ち合わせる。
【００５６】
ステップＳ１８において、仮想マシン制御手段１４は、リスト内の全てのサービスを起動済みか否か判定し、完了していれば（Ｓ１８でＹ）処理を終了し、完了していなければ（Ｓ１８でＮ）ステップＳ１２に戻って、次の仮想マシン３０の起動完了報告を待ち合わせる。
【００５７】
ステップＳ１２において報告を受信し、起動が完了した仮想マシン３０が単独サービスに関連付けられたものである場合（Ｓ１２でＹ、Ｓ１３でＮ）、ステップＳ１７において仮想マシン制御手段１４は当該単独サービスを起動し、ステップ１８に進む。
【００５８】
＜３．物理マシン２０の障害からの復旧時の動作＞
起動管理システム９０が起動されると、障害検出手段１５が、物理マシン２０に障害が発生していないか監視を行う。障害検出手段１５は、障害が発生したかどうかを、物理マシン２０に対して定期的に接続確認することによって検出しても良いし、仮想化手段２１が提供する障害イベント通知により検出してもよい。物理マシン２０の障害を検出した場合、障害検出手段１５は、仮想マシン制御手段１４に当該障害を通知する。
【００５９】
障害通知を受信した仮想マシン制御手段１４は、障害を発生した物理マシン２０の運転が停止され、他に運転中の物理マシン２０が存在すれば、障害を発生した物理マシン２０上の仮想マシン３０を他の物理マシン２０に移動させてサービスを復旧する。この時の仮想マシン制御手段１４の動作は、概ね図７、及び、図８に記載した通りである。無論、停止中の物理マシン２０は、図７のＳ１における使用可能リソース量ＲＡの取得対象外となる。
【００６０】
また、復旧対象の仮想マシン３０が実行していたサービスがグループを構成している場合、他の物理マシン２０が実行し続けている仮想マシン３０のサービスとの間で、起動の順番が狂う恐れがある。したがって、この場合、仮想マシン制御手段１４は、復旧対象のサービスが属するグループのサービスを一旦すべて停止し、グループ内の全てのサービスを起動し直す。仮想マシン制御手段１４は、復旧対象の仮想マシン３０が実行していたサービスと、他の物理マシン２０が実行し続けている仮想マシン３０のサービスとの順序関係をグループ定義から解析し、順序矛盾を発生するサービスだけ再起動しても良い。
【００６１】
なお、障害を発生した物理マシン２０上の仮想マシン３０を他の物理マシン２０に移動させてサービスを復旧する場合、他の物理マシン２０上に十分な空きリソースが無ければ、全てのサービスを復旧することは出来ない。この場合、図７のＳ３の判断に基づき、優先度の高いサービスだけが復旧されることになる。
【００６２】
他に運転中の物理マシン２０が存在しない場合、仮想マシン制御手段１４は、障害を発生した物理マシンの再起動を待って、仮想マシン３０、及び、サービスの再起動を実行しても良い。この場合、全てのサービスの復旧が可能となる。
【００６３】
間欠障害でサービスが一時停止されたが、物理マシン２０の運転は継続していた場合や、直ぐに再起動された場合、仮想マシン制御手段１４は、サービスを元の物理マシン２０上で再起動する。
【００６４】
＜３．起動管理システム９０が停止時の動作＞
起動管理システム９０が停止する場合、仮想マシン制御手段１４は、まず、サービスを停止する。この時、仮想マシン制御手段１４は、単独のサービス、及び、サービスの各グループ単位には、並行して停止を開始して良い。但し、仮想マシン制御手段１４は、グループ内では、各サービスを起動と逆順に停止していく。仮想マシン３０については、実行しているサービスの停止後、順次停止する。
【００６５】
＜効果＞
起動管理装置１０は、異なる仮想マシン３０で実行され、起動順序が決まっている複数のサービスを起動するときの起動時間を短縮できる。その理由は、仮想マシン制御手段１４が、起動順序が決まっているサービス実行に必要な全ての仮想マシン３０の起動を並列に行う一方、サービスの起動は順序関係に従って行うからである。起動順序が決まっているサービスの起動に際し、実行に必要な仮想マシン３０の起動も当該順序で実行した場合、仮想マシン３０の起動待ちの行列が長くなると全体の処理時間が増大してしまうが、仮想マシン制御手段１４はこれを防止する。
【００６６】
第二に、起動管理装置１０は、物理マシン２０およびストレージ装置への負荷集中を避けて、物理マシン２０の過負荷による全体の処理遅延を抑制することが出来る。その理由は、仮想マシン制御手段１４が、並行して起動する仮想マシン３０の数に上限を設けているからである。その場合であっても、仮想マシン制御手段１４は、優先度が高いサービスを先に起動することにより、サービス全体への悪影響を抑制する。
【００６７】
第三に、物理マシン２０に障害が発生し、物理マシン２０の数を減らして起動管理システム９０を復旧しなければならない場合でも、仮想マシン制御手段１４は、サービス全体への悪影響を抑制する。その理由は、仮想マシン制御手段１４が、運転継続可能な物理マシン２０のリソースが有る範囲で、優先度が高いサービスを起動するからである。
【００６８】
＜変形例＞
仮想マシン制御手段１４は、優先度による制御に代えて、起動に要するリソース量が小さいサービス優先して起動しても良い。これにより、仮想マシン制御手段１４は、なるべく多数のサービスを優先して起動できることになる。
【００６９】
仮想マシン制御手段１４は、優先度による制御に代えて、起動に要するリソース量が大きなサービスを優先して起動しても良い。これにより、仮想マシン制御手段１４は、主要なサービスを優先して起動可能となる。
【００７０】
仮想マシン制御手段１４は、仮想マシン３０のユーザの種別や、仮想マシン３０の利用状態、および仮想マシン３０間の通信状態などから優先度を動的に決定しても良い。
【００７１】
さらに、仮想マシン制御手段１４は、特に優先度制御をおこなわず、任意の順、例えば、グループ定義や単独定義の順にサービスの起動を行っても良い。
【００７２】
＜第二の実施形態＞
図９は、本実施の形態にかかる起動管理装置１０の構成図の例である。本実施の形態において、起動管理装置１０が物理マシン２０としての機能も果たす。すなわち、起動管理装置１０と物理マシン２０は同一の装置である。
【００７３】
本実施の形態にかかる起動管理装置１０において、仮想マシン制御手段１４は、その内部に第一の実施の形態における仮想化手段２１相当を包含している。
【００７４】
また、起動管理装置１０は、障害検出手段１５を備えていなくても良い。起動管理装置１０が障害を発生し停止した場合、修理などの作業後、あるいは単なる再起動後、仮想マシン制御手段１４は、正常な立ち上げ時と同様にサービスを開始すれば良い。
【００７５】
他の点において、本実施の形態にかかる起動管理装置１０は、第一の実施形態と同じである。
【００７６】
本実施の形態にかかる起動管理装置１０は、物理マシン２０が無くても、異なる仮想マシン３０で実行され、起動順序が決まっている複数のサービスを起動するときの起動時間を短縮できる。その理由は、仮想マシン制御手段１４が、仮想化手段２１相当の機能を包含するからである。
【００７７】
＜変形例＞
本実施の形態にかかる起動管理装置１０は、他の物理マシン２０と接続されて、第一の実施の形態のような起動管理システム９０を構成しても良い。この場合、仮想マシン制御手段１４は、第一の実施の形態と同様に他の物理マシン２０の制御を行うとともに、自装置も一つの物理マシン２０として扱う。
【００７８】
＜第三の実施形態＞
図１０は、本実施の形態にかかる起動管理装置１０の構成図の例である。本実施の形態において、起動管理装置１０は、設定情報記憶手段１２と仮想マシン制御手段１４と、を備える。
【００７９】
設定情報記憶手段１２は、サービスのグループについて、各サービスのグループ内における起動順序と、各サービスの実行に使用される仮想マシン３０と、を定義するグループ定義を格納する。仮想マシン制御手段１４は、グループの起動時に、１）グループ内の各サービスの実行に使用される各仮想マシン３０の起動を物理マシン２０上で並列に開始し、２）サービスを起動順序に従って、グループ定義でサービスに対応して定められた仮想マシン３０の起動完了後に、当該仮想マシンで起動する。
【００８０】
起動管理装置１０は、異なる仮想マシン３０で実行され、起動順序が決まっている複数のサービスを起動するときの起動時間を短縮できる。その理由は、仮想マシン制御手段１４が、起動順序が決まっているサービス実行に必要な全ての仮想マシン３０の起動を並列に行う一方、サービスの起動は順序関係に従って行うからである。起動順序が決まっているサービスの起動に際し、実行に必要な仮想マシン３０の起動も当該順序で実行した場合、仮想マシン３０の起動待ちの行列が長くなると全体の処理時間が増大してしまうが、仮想マシン制御手段１４はこれを防止する。
【００８１】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８２】
１０    起動管理装置
１１    管理用ユーザインタフェース
１２    設定情報記憶手段
１４    仮想マシン制御手段
１５    障害検出手段
２０    物理マシン
２１    仮想化手段
３０    仮想マシン
３１    サービス制御手段
５０    端末装置
６０    コンピュータ装置
６１    プロセッサ
６２    外部記憶手段
６３    主記憶手段
６４    バス
６５    起動管理プログラム
７０    通信ネットワーク
９０    起動管理システム
【図１】
2019079309.tif 000003
【図２】
2019079309.tif 000004
【図３】
2019079309.tif 000005
【図４】
2019079309.tif 000006
【図５】
2019079309.tif 000007
【図６】
2019079309.tif 000008
【図７】
2019079309.tif 000009
【図８】
2019079309.tif 000010
【図９】
2019079309.tif 000011
【図１０】
2019079309.tif 000012