(57)【特許請求の範囲】
【請求項１】
コンピュータに、
ネットワーク接続のためのアドレスが設定された管理対象の複数の仮想マシンより、前記コンピュータの内部時刻に基づく識別情報を記憶しておらず、第１のアドレスが設定された第１の仮想マシンを検出したとき、該検出時における前記コンピュータの内部時刻に基づく第１の識別情報を、前記第１の仮想マシンに記憶させ、
前記複数の仮想マシンのなかから、前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから第２のアドレスに変更されている前記第１の仮想マシン、または前記第１の識別情報を記憶した前記第１の仮想マシンの複製であり、前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから前記第２のアドレスに変更されている第２の仮想マシンを検出したとき、該検出時における前記コンピュータの内部時刻に基づく第２の識別情報を、検出した前記第１の仮想マシンまたは前記第２の仮想マシンに記憶させる、
処理を実行させる管理プログラム。
【請求項２】
前記コンピュータに、さらに、
前記第１の仮想マシンと前記第２の仮想マシンそれぞれが記憶する前記第１または第２の識別情報に基づいて、前記第１の仮想マシンと前記第２の仮想マシンとを識別する、
処理を実行させる請求項１記載の管理プログラム。
【請求項３】
前記コンピュータに、さらに、
前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから前記第２のアドレスに変更されている仮想マシンを検出した時点で、前記第１のアドレスにより、前記第１の識別情報を記憶している前記第１の仮想マシンに接続可能なとき、検出した該仮想マシンが、前記第１の仮想マシンの複製である前記第２の仮想マシンであると判断し、
前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから前記第２のアドレスに変更されている仮想マシンを検出した時点で、前記第１のアドレスにより、前記第１の識別情報を記憶している前記第１の仮想マシンに接続できないとき、検出した該仮想マシンが、アドレス設定を変更した前記第１の仮想マシンであると判断する、
処理を実行させる請求項２記載の管理プログラム。
【請求項４】
前記コンピュータに、さらに、
前記第１の仮想マシンに前記第１の識別情報を記憶させたとき、記憶させた前記第１の識別情報に対応付けて、前記第１の仮想マシンの管理に用いる第１の管理情報を、記憶装置に格納し、
前記第２の仮想マシンに前記第２の識別情報を記憶させたとき、前記第２の仮想マシン検出時点で前記第２の仮想マシンが記憶する前記第１の識別情報に対応する前記第１の管理情報の複製を、前記第２の仮想マシンの管理に用いる第２の管理情報として、前記記憶装置に格納する、
処理を実行させる請求項１乃至３のいずれかに記載の管理プログラム。
【請求項５】
前記第１の識別情報を前記第１の仮想マシンに記憶させる際には、前記第１の仮想マシンに設定された前記第１のアドレスを、前記第１の識別情報に含め、
前記第２の識別情報を前記第１の仮想マシンまたは前記第２の仮想マシンに記憶させる際には、記憶する前記第１の識別情報に含まれる前記第１のアドレスが、ネットワーク接続のために設定された現在のアドレスと異なる仮想マシンを、アドレスが前記第１のアドレスから前記第２のアドレスに変更されている前記第１の仮想マシンまたは前記第２の仮想マシンとして検出する、
請求項１乃至４のいずれかに記載の管理プログラム。
【請求項６】
前記第１の識別情報を前記第１の仮想マシンに記憶させる際には、前記コンピュータを識別する装置識別情報を、前記第１の識別情報に含め、
前記第２の識別情報を前記第１の仮想マシンまたは前記第２の仮想マシンに記憶させる際には、前記コンピュータを識別する前記装置識別情報を、前記第２の識別情報に含める、
請求項１乃至５のいずれかに記載の管理プログラム。
【請求項７】
コンピュータが、
ネットワーク接続のためのアドレスが設定された管理対象の複数の仮想マシンのなかから、前記コンピュータの内部時刻に基づく識別情報を記憶しておらず、第１のアドレスが設定された第１の仮想マシンを検出したとき、該検出時における前記コンピュータの内部時刻に基づく第１の識別情報を、前記第１の仮想マシンに記憶させ、
前記複数の仮想マシンのなかから、前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから第２のアドレスに変更されている前記第１の仮想マシン、または前記第１の識別情報を記憶した前記第１の仮想マシンの複製であり、前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから前記第２のアドレスに変更されている第２の仮想マシンを検出したとき、該検出時における前記コンピュータの内部時刻に基づく第２の識別情報を、検出した前記第１の仮想マシンまたは前記第２の仮想マシンに記憶させる、
管理方法。
【請求項８】
管理装置であって、
演算部を有し、
前記演算部は、
ネットワーク接続のためのアドレスが設定された管理対象の複数の仮想マシンのなかから、前記管理装置の内部時刻に基づく識別情報を記憶しておらず、第１のアドレスが設定された第１の仮想マシンを検出したとき、該検出時における前記管理装置の内部時刻に基づく第１の識別情報を、前記第１の仮想マシンに記憶させ、
前記複数の仮想マシンのなかから、前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから第２のアドレスに変更されている前記第１の仮想マシン、または前記第１の識別情報を記憶した前記第１の仮想マシンの複製であり、前記第１の識別情報を記憶していると共に、アドレスが前記第１のアドレスから前記第２のアドレスに変更されている第２の仮想マシンを検出したとき、該検出時における前記管理装置の内部時刻に基づく第２の識別情報を、検出した前記第１の仮想マシンまたは前記第２の仮想マシンに記憶させる、
管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理プログラム、管理方法、および管理装置に関する。
【背景技術】
【０００２】
クラウドコンピューティングシステム（以下、クラウドと呼ぶ）の運用では、従来は、サーバ環境を提供していたインフラストラクチャ（以下、インフラと呼ぶ）の管理者がシステム監視と業務監視を兼任で実施していた。それに対し、近年、クラウドコンピューティング技術の発達に伴い、システム監視はインフラの管理者が行い、業務監視はクラウド利用者が行うように、運用者が分離されるようになってきている。
【０００３】
業務監視では、各サーバを直接監視するわけではなく、監視サーバの構成管理情報内に用意されたノード管理情報を用いて監視操作を行う。ここで、ノード管理情報とは、監視対象のサーバと一対一で対応付けられ、監視対象サーバに関するバードウェアやソフトウェアの構成情報や、監視対象項目などの監視設定を含む情報である。例えば監視サーバは、監視対象のサーバを監視し、監視対象のサーバの構成と一致するように、ノード管理情報を定期的に更新すると共に、利用者がノード管理情報に対して設定した監視設定で各サーバを監視する。
【０００４】
監視技術としては、例えば、ＰＣ（パーソナルコンピュータ）の物理的位置を自動的に検出し、ＰＣの移動を追跡するネットワーク構成管理システムがある。またＭＡＣ（Media Access Control）アドレスの重複を検出するネットワーク監視システムも考えられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０７９３５０号公報
【特許文献２】特開２０１３−１６８７７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クラウドでは、物理マシン上で仮想マシン（ＶＭ：Virtual Machine）を動作させ、利用者に仮想マシンを利用させる。仮想マシンでは、従来ハードウェアで実現されていたものが、ソフトウェアによって実現される。そのため仮想マシンは、ユニークな固定情報を持たない。
【０００７】
例えばＩＰ（Internet Protocol）アドレスは、予めプールされたＩＰアドレスが、複数のＶＭ上で動作するＯＳの設定により使い回されるため、１つのＶＭで固定的に使用されるわけではない。
【０００８】
また物理マシンであれば、ネットワークに接続するインターフェースに設定されたＭＡＣアドレスのような、ハードウェアに対応づけて設定された情報を用いて、その物理マシンを一意に特定できる。
【０００９】
それに対して、ＶＭは仮想デバイスを利用するため、ＭＡＣアドレスはハードウェアに対応づいたものではなく、一意に特定する情報としては用いることができない。このようにＶＭはユニークな固定情報を持たないため、監視サーバから複数のＶＭそれぞれを確実に識別することが困難となっている。
【００１０】
また、ＶＭは複製が可能であることから、ＶＭに何らかの識別情報が付与されていても、そのＶＭが複製されると、同じ識別情報を有するＶＭが複数存在することになる。そのため、識別情報を有していないＶＭに識別情報を付与するだけでは、複製により生成されたＶＭと複製元のＶＭとを区別できず、ＶＭ識別の確実性に欠ける。
【００１１】
１つの側面では、本発明は、複数のＶＭそれぞれを確実に識別できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
１つの案では、複数の仮想マシンを管理するための管理プログラムが提供される。この管理プログラムは、コンピュータに、以下の処理を実行させる。
コンピュータは、管理対象の複数の仮想マシンより、コンピュータの内部時刻に基づく識別情報を記憶していない第１の仮想マシンを検出したとき、該検出時におけるコンピュータの内部時刻に基づく第１の識別情報を、第１の仮想マシンに記憶させる。またコンピュータは、第１の識別情報を記憶し、かつ、第１の識別情報の記憶後にネットワーク接続に関する設定が変更された第２の仮想マシンを検出したとき、該検出時におけるコンピュータの内部時刻に基づく第２の識別情報を、第２の仮想マシンに記憶させる。
【発明の効果】
【００１３】
１態様によれば、複数のＶＭそれぞれを確実に識別できるようになる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係るシステムの構成例を示す図である。
【図２】ＶＭが複製された場合の例を示す図である。
【図３】ＶＭの複製と接続情報の変更とが行われた場合の例を示す図である。
【図４】時刻を用いたＶＭの識別例を示す図である。
【図５】第２の実施の形態のシステム構成例を示す図である。
【図６】第２の実施の形態に用いる監視サーバのハードウェアの一構成例を示す図である。
【図７】監視サーバとＶＭホストとの機能を示すブロック図である。
【図８】ノード管理情報の一例を示す図である。
【図９】接続履歴情報の一例を示す図である。
【図１０】接続履歴間の関係を示すツリー構造を示す図である。
【図１１】監視情報の一例を示す図である。
【図１２】ＶＭに保持される接続履歴情報ファイルの一例を示す図である。
【図１３】複製されたＶＭの区別例を示す図である。
【図１４】ノード管理情報の生成例を示す図である。
【図１５】監視処理の手順の一例を示すシーケンス図である。
【図１６】監視部における監視処理の手順の一例を示すフローチャートである。
【図１７】接続履歴情報の存在の有無判断例を示す図である。
【図１８】接続履歴情報は異なるが接続情報は同じＶＭの例を示す図である。
【図１９】スナップショットが戻された場合の接続履歴情報の比較例を示す図である。
【図２０】他監視サーバ配下のＶＭが移設された場合の例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るシステムの構成例を示す図である。管理装置１０は、仮想マシン（ＶＭ）１−１，１−２を実行する物理マシン１に、ネットワークを介して接続されている。管理装置１０は、複数のＶＭ１−１，１−２を管理するため、記憶部１１と演算部１２とを有する。
【００１６】
記憶部１１は、ＶＭ１−１，１−２の識別情報１１ａ〜１１ｃや、ＶＭ１−１，１−２の管理情報１１ｄ〜１１ｆを記憶する。識別情報１１ａ〜１１ｃは、管理装置１０の内部時刻に基づいて生成されている。識別情報１１ａ〜１１ｃには、例えば、対応するＶＭのアドレスなどの、ネットワーク接続のための設定を示す接続情報が含まれる。接続情報は、例えばネットワーク上でＶＭを一意に識別するためのアドレスである。管理情報１１ｄ〜１１ｆには、例えばＶＭの監視方法に関する設定などが含まれる。
【００１７】
演算部１２は、ＶＭ１−１，１−２を監視し、内部時刻に基づく識別情報を記憶していないＶＭを検出したとき、検出時における管理装置１０の内部時刻に基づく識別情報を、そのＶＭに記憶させる。例えばＶＭ１−１，１−２は、１以上の識別情報を、履歴情報１ａ−１，１ａ−２として記憶する。ＶＭ１−１が、他のＶＭからの複製ではなく、新たに作成されたものである場合、作成時には、ＶＭ１−１は履歴情報１ａ−１を有していない。そのようなＶＭ１−１を演算部１２が検知すると、演算部１２は、検知時の時刻に基づく識別情報１１ａを生成し、その識別情報１１ａを含む履歴情報１ａ−１を、ＶＭ１−１に記憶させる。このとき演算部１２は、ＶＭ１−１に記憶させた識別情報１１ａを、記憶部１１に格納すると共に、識別情報１１ａに関連付けて、ＶＭ１−１管理用の管理情報１１ｄを記憶部１１に格納する。
【００１８】
また演算部１２は、既に識別情報を記憶し、かつ、識別情報の記憶後にネットワーク接続に関する設定が変更されたＶＭを検出したとき、該検出時における管理装置１０の内部時刻に基づく識別情報を、そのＶＭに記憶させる。ネットワーク接続に関する設定の変更の有無の判断には、ＶＭに記憶させた識別情報を利用することができる。例えば演算部１２は、識別情報をＶＭに記憶させる際に、そのＶＭのネットワーク接続に関する設定を示す接続情報を、識別情報に含める。そして、演算部１２は、記憶する識別情報に含まれる接続情報が、現在のネットワーク接続に関する設定と異なるＶＭを検出する。
【００１９】
例えば、ＶＭ１−１から複製したＶＭ１−２のアドレスが変更され、起動されたものとする。このときＶＭ１−２は、既に識別情報を記憶しており、アドレスが変更されている。そこで演算部１２はＶＭ１−２を検出し、検出時の管理装置１０の内部時刻に基づく新たな識別情報１１ｂを生成し、その識別情報１１ｂをＶＭ１−２に記憶させる。ＶＭ１−２は、識別情報１１ｂを履歴情報１ａ−２に追加する。このとき演算部１２は、ＶＭ１−２に記憶させた識別情報１１ｂを、記憶部１１に格納すると共に、識別情報１１ｂに関連付けて、ＶＭ１−２管理用の管理情報１１ｅを記憶部１１に格納する。
【００２０】
なお、ＶＭ１−２の履歴情報１ａ−２を参照すると、ＶＭ１−１の構成を引き継いで、アドレスを変えたものであることが分かる。そこで演算部１２は、ＶＭ１−１管理用の管理情報１１ｄの複製を、ＶＭ１−２管理用の管理情報１１ｅとすることができる。
【００２１】
また、ＶＭ１−１のアドレスが変更される場合もある。なお図１の例では、２台のＶＭ１−１，１−２のアドレスが同一となっている。この場合、ＶＭ１−１，１−２の一方が動作している間は、他方は停止している。アドレスが変更されたＶＭ１−１が起動されると、演算部１２はＶＭ１−１を検出し、検出時の管理装置１０の内部時刻に基づく新たな識別情報１１ｃを生成し、その識別情報１１ｃをＶＭ１−１に記憶させる。ＶＭ１−１は、識別情報１１ｃを履歴情報１ａ−１に追加する。このとき演算部１２は、ＶＭ１−１に記憶させた識別情報１１ｃを、記憶部１１に格納すると共に、識別情報１１ｃに関連付けて、ＶＭ１−１管理用の管理情報１１ｆを記憶部１１に格納する。このとき演算部１２は、アドレス変更前のＶＭ１−１管理用の管理情報１１ｄの複製を、アドレス変更後のＶＭ１−１管理用の管理情報１１ｆとすることができる。
【００２２】
演算部１２は、ＶＭ１−１，１−２に記憶させた識別情報に基づいて、仮想マシン１−１，１−２それぞれを識別する。例えば、図１の例では、２台のＶＭ１−１，１−２のアドレスが同一となっているが、識別情報の違いにより、ＶＭ１−１とＶＭ１−２とを区別できる。
【００２３】
また演算部１２は、アドレスが「Ｂ」となったＶＭ１−１とＶＭ１−２とが、ＶＭ１−１から複製されたものなのか、ＶＭ１−１のアドレスを変更したものなのかを、判断することもできる。例えば、演算部１２は、ＶＭの検出時点で、そのＶＭが記憶する識別情報に基づいて識別されたＶＭに接続可能なとき、検出したＶＭが、識別されたＶＭの複製であると判断する。またＶＭの検出時点で、そのＶＭが記憶する識別情報に基づいて識別されたＶＭに接続できないとき、検出されたＶＭが、識別されたＶＭの、ネットワーク接続に関する設定を変更したものであると判断する。
【００２４】
例えばアドレスが「Ｂ」に変更されたＶＭ１−２が起動されたとき、アドレス「Ａ」のＶＭ１−１に接続可能であれば、ＶＭ１−２は、ＶＭ１−１の複製であることが判断できる。またアドレスが「Ｂ」に変更されたＶＭ１−１が起動されたとき、アドレス「Ａ」のＶＭは存在せず、そのようなＶＭには接続不可能であるため、アドレスが「Ｂ」のＶＭ１−１は、単にアドレスの設定を変更したものであることが判断できる。
【００２５】
このように、ＶＭ１−１，１−２に管理装置１０の内部時刻に基づく識別情報を記憶させ、その識別情報に基づいてＶＭ１−１，１−２を識別するようにしたことで、アドレスが重複しても、各ＶＭ１−１，１−２を適切に識別することができる。しかもＶＭが複製された場合でも、複製されたＶＭのアドレスが変更され起動されたときに、そのＶＭに新たな識別情報が付与される。そのため、複製元のＶＭと複製先のＶＭとを、明確に区別することができる。さらに、複製元のＶＭの存在の有無により、複製されたＶＭなのか、アドレスなどの設定が変更されただけのＶＭなのかの判別も可能となる。
【００２６】
また、複製されたＶＭ１−２の管理情報１１ｅを、複製元のＶＭ１−１の管理情報１１ｄの複製によって作成できるため、管理情報１１ｅの作成の手間が削減される。例えばＶＭの監視設定が管理情報１１ｄに含まれる場合、複製されたＶＭ１−２用の監視設定を、管理情報１１ｅに登録する手間が省ける。
【００２７】
さらに、管理装置１０の内部時刻に基づいて識別情報を生成するため、異なるＶＭに付与した識別情報が偶然一致するようなこともない。
なお、識別情報をＶＭに記憶させる際には、管理装置１０を識別するＩＤ（装置識別情報）を、識別情報に含めてもよい。管理装置１０のＩＤを識別情報に含めることで、複数の管理装置それぞれで個別に管理されている複数のネットワーク間でＶＭが移行されたときでも、識別情報が偶然一致することを抑止できる。
【００２８】
なお、演算部１２は、例えば管理装置１０が有するプロセッサにより実現することができる。また、記憶部１１は、例えば管理装置１０が有するメモリにより実現することができる。
【００２９】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、ＩａａＳ（Infrastructure as a Service）をクラウドによって提供する場合において、ＶＭを監視する監視サーバから、各ＶＭを継続的に一意に特定できるようにするものである。例えばＶＭのＭＡＣアドレスが変更された場合でも、そのＶＭを以前と同じＶＭであると特定できるようにする。
【００３０】
まず、ＶＭを継続的に一意に特定することの困難性について説明する。
従来は、ＶＭをネットワークに接続するための接続情報はユニークな固定情報である。接続情報には、ＩＰアドレス、ＭＡＣアドレス、ホスト名などが含まれる。そのため、接続情報は、運用システム設計時に重複なしに設定される。そのため、接続情報をキーにサーバを見分けて管理することが可能である。しかし、クラウド環境では接続情報がテンポラリ化している。例えばあるサーバに割り当てられた接続情報がそのサーバの停止により解放され、解放された接続情報が、まったく別のサーバに割り当てられることもある。またＶＭは、複製も容易であり、ＶＭが複製されると、接続情報も複製される。
【００３１】
図２は、ＶＭが複製された場合の例を示す図である。監視サーバ８０は、ネットワークを介してＶＭホスト９０で動作しているＶＭを監視する。図２の例では、監視サーバ８０は、ＶＭ９１を監視対象としており、ＶＭ９１のノード管理情報８１を保持している。ノード管理情報８１には、ＩＰアドレス、ＭＡＣアドレス、ホスト名などの接続情報が含まれる。また、ノード管理情報８１には、ＶＭの監視内容を示す設定情報なども含まれる。
【００３２】
ＶＭホスト９０は、稼働しているＶＭ９１を複製して、別のＶＭ９２を作成することができる。ＶＭ９２の作成直後は、ＶＭ９２の接続情報は、ＶＭ９１と同じである。そのため、監視サーバ８０は、ＶＭ９１が停止してＶＭ９２が起動したとき、ノード管理情報８１と照らし合わせても、ＶＭ９２が、以前動作していたＶＭ９１とは別ＶＭであることが認識できない。
【００３３】
またＶＭの運用では、現在動作しているＶＭについて、スナップショットで保存しておいた過去の状態を、別のＶＭで再現することがある。この場合にも、複数のＶＭ間で、接続情報の重複が発生する。
【００３４】
このように、クラウド環境では、ＶＭの複製やスナップショットの戻しなどで、ＶＭ間のネットワーク接続のための接続情報の重複が当たり前になり、監視サーバから各ＶＭを区別するのが困難となっている。
【００３５】
なお、複製元のＶＭ９１を動作させたまま、複製されたＶＭ９２が別の接続情報で起動されたとき、監視サーバ８０において、ＶＭ９２を、ＶＭ９１とは別ＶＭと認識させることもできる。しかしこのような識別方法を採用すると、ＶＭ９１の接続情報が変更されたとき、ＶＭ９１とは全く別のＶＭと認識されてしまう。
【００３６】
図３は、ＶＭの複製と接続情報の変更とが行われた場合の例を示す図である。図３の例では、ＶＭ９１のＰアドレスは「Ａ」であるが、複製されたＶＭ９２のＩＰアドレスは「Ｂ」である。ＶＭ９２が、ＶＭ９１と異なるＩＰアドレスを有していることから、監視サーバ８０において、ＶＭ９１に対応するノード管理情報８１とは別のノード管理情報８２が生成される。その後、ＶＭ９１のＩＰアドレスが「Ｃ」に変更された場合、ＶＭ９１が以前と異なるＩＰアドレスを有していることから、監視サーバ８０において、ＶＭ９１に対応する新たなノード管理情報８３が生成される。
【００３７】
ノード管理情報８１〜８３には、ＶＭ９１，９２を監視するための監視項目に対する設定値が含まれている。新たに検出されたＶＭ９２が、ＶＭ９１の複製であることが分かれば、ＶＭ９１のノード管理情報８１をコピーしてノード管理情報８２を生成することで、監視用の設定作業を省略可能となる。しかし、従来の技術では、監視サーバ８０において、ＶＭ９２がＶＭ９１の複製であると認識することができない。
【００３８】
同様に、ＩＰアドレス「Ｃ」として新たに検出されたＶＭ９１が、ノード管理情報８１に対応するＶＭ９１のＩＰアドレスが変更されたものであることが分かれば、ノード管理情報８３の生成処理を効率化できる。しかし、従来の技術では、監視サーバ８０において、ＩＰアドレスが「Ｃ」のＶＭ９１を検出したとき、単にＶＭ９１のＩＰアドレスが変更されただけであることを認識することができない。
【００３９】
また、例えばＭＡＣアドレスが同一であれば、ＩＰアドレス「Ｃ」として新たに検出されたＶＭ９１を、複製されたＶＭまたは設定変更されたものであると判断することも考えられる。しかし、この場合、複製後のＶＭ９２と設定変更後のＶＭ９１とが区別できなくなる。
【００４０】
ここで、ユニークな固定情報を持たないＶＭ９１，９２について、ＶＭ９１，９２ごとの時刻の変化に伴い変更される情報を使って見分けることが考えられる。例えば各ＶＭ９１，９２に監視サーバ８０から接続した時刻を、各ＶＭ９１，９２の識別情報として用いることが考えられる。
【００４１】
図４は、時刻を用いたＶＭの識別例を示す図である。各ＶＭ９１，９２は、接続履歴情報９３，９４を保持している。各ＶＭ９１，９２は、監視サーバ８０から接続されたとき、ＶＭ９１，９２自身のローカル時刻を、接続履歴情報９３，９４に格納する。格納された時刻が異なっていれば、接続履歴情報９３，９４に基づいて、ＶＭ９１とＶＭ９２とを区別可能となる。
【００４２】
しかし、ＶＭ９１，９２のローカル時刻は重複する場合があり得る。例えば、一般的にＶＭは停止時に時刻が止まり、起動時に補正される。そのため、タイミングにより誤った時刻が取得される場合があり、重複する接続履歴情報が生成される可能性がある。そのため、接続履歴情報９３，９４を用いても、完全に識別できるとは限らない。
【００４３】
そこで、第２の実施の形態では、監視サーバ８０の内部時計で計時した時刻を、ＶＭの識別に用いる。これにより、複数のＶＭ９１，９２それぞれの接続履歴情報に格納される時刻が偶然に一致してしまうことを抑止し、ＶＭ９１とＶＭ９２とを確実に区別可能となる。
【００４４】
図５は、第２の実施の形態のシステム構成例を示す図である。複数の監視サーバ１００，１００ａは、ネットワーク２０を介して複数のＶＭホスト２００，２００ａ，・・・に接続されている。またネットワーク２０には、複数の端末装置３１，３２，・・・が接続されている。
【００４５】
ＶＭホスト２００，２００ａ，・・・は、内部でＶＭを動作させ、ＶＭを用いたサービスを提供するコンピュータである。監視サーバ１００，１００ａは、ＶＭホスト２００，２００ａ，・・・で動作するＶＭを監視するコンピュータである。端末装置３１，３２，・・・は、ＶＭにアクセスしてサービスを利用するコンピュータである。端末装置３１，３２，・・・の利用者は、監視サーバ１００，１００ａを介して、自身が使用するＶＭの状態を監視する。
【００４６】
なお図５に示す監視サーバ１００，１００ａは、図１に示した第１の実施の形態における管理装置１０の一例である。また図５に示すＶＭホスト２００，２００ａ，・・・は、図１に示した第１の実施の形態における物理マシン１の一例である。
【００４７】
図６は、第２の実施の形態に用いる監視サーバのハードウェアの一構成例を示す図である。監視サーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４８】
メモリ１０２は、監視サーバ１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４９】
バス１０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００５０】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、監視サーバ１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置（ＳＳＤ：Solid State Drive）を使用することもできる。
【００５１】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００５２】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５３】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５４】
機器接続インタフェース１０７は、監視サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００５５】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５６】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、図６には監視サーバ１００のハードウェア構成を示したが、監視サーバ１００ａ、ＶＭホスト２００，２００ａ，・・・、および端末装置３１，３２，・・・も、監視サーバ１００と同様のハードウェアで実現できる。また第１の実施の形態に示した管理装置１０および物理マシン１も、図６に示した監視サーバ１００と同様のハードウェアにより実現することができる。
【００５７】
監視サーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。監視サーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、監視サーバ１００に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また監視サーバ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５８】
図７は、監視サーバとＶＭホストとの機能を示すブロック図である。監視サーバ１００は、構成管理データベース（ＤＢ）１１０、監視情報ＤＢ１２０、および監視部１３０を有する。
【００５９】
構成管理ＤＢ１１０は、ＶＭホスト２００，２００ａ，・・・で動作している各ＶＭの構成を管理するＤＢである。構成管理ＤＢ１１０には、例えばノード管理情報群１１１と接続履歴情報群１１２とが含まれる。ノード管理情報群１１１は、ＶＭごとに設けられたノード管理情報の集合である。ノード管理情報には、対応するＶＭの接続情報、監視設定などの情報が含まれる。接続履歴情報群１１２は、各ＶＭに対する監視サーバ１００からの接続履歴を示す接続履歴情報の集合である。接続履歴情報には、接続した時刻が含まれる。
【００６０】
監視情報ＤＢ１２０は、ＶＭホスト２００，２００ａ，・・・で動作している各ＶＭの監視結果を管理するＤＢである。監視情報ＤＢ１２０には、監視情報群１２１が含まれる。監視情報群１２１は、ＶＭで発生したイベントなどの監視情報の集合である。
【００６１】
監視部１３０は、ＶＭホスト２００で動作しているＶＭ２１０を監視する。例えば監視部１３０は、定期的にＶＭ２１０に接続して、構成管理ＤＢ１１０内のＶＭ２１０に関する情報を更新する。また監視部１３０は、ＶＭ２１０で発生したイベントなどの情報をＶＭ２１０から取得し、監視情報ＤＢ１２０に格納する。
【００６２】
ＶＭホスト２００は、ＶＭ２１０の新規作成・複製・削除、およびスナップショットでのＶＭ２１０の退避・復元をすることができる。ＶＭ２１０は、記憶部２１１と監視エージェント２１２とを有する。記憶部２１１は、接続履歴情報ファイル２１１ａを記憶する。接続履歴情報ファイル２１１ａは、監視サーバ１００から受信した接続履歴情報を格納するファイルである。接続履歴情報には、監視サーバ１００から送られた時刻が、識別情報として含まれる。
【００６３】
監視エージェント２１２は、監視サーバ１００の監視部１３０と連携し、監視部１３０によるＶＭ２１０の監視を支援する。例えば監視エージェント２１２は、ＶＭ２１０を監視し、システムや業務アプリケーションの異常などのイベントを検出し、イベントの詳細を示す監視情報を監視部１３０へ通知する。また監視エージェント２１２は、監視部１３０からの要求に応じて、接続履歴情報ファイル２１１ａ内の接続履歴情報を監視部１３０に送信する。さらに監視エージェント２１２は、監視部１３０から送られた接続履歴情報を、接続履歴情報ファイル２１１ａに書き込む。
【００６４】
このような構成のシステムにより、複数のＶＭを適切に区別して、ＶＭの監視が行われる。なお、図７に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図７に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００６５】
なお、ＩａａＳのクラウドサービスでは、利用者は、監視サーバ１００やＶＭ２１０を操作することはできるが、ＶＭホスト２００のハイパーバイザを操作することはできない。そのため、利用者が管理しているネットワーク上では、監視サーバ１００とＶＭ２１０間、ＶＭ２１０とＶＭホスト２００間は各々通信が可能であるが、監視サーバ１００とＶＭホスト２００は直接ネットワークが接続されておらず、通信できない。
【００６６】
次に、監視サーバ１００によるＶＭ２１０の監視に利用する情報について、詳細に説明する。
図８は、ノード管理情報の一例を示す図である。ノード管理情報群１１１は、例えばデータテーブル形式の複数のノード管理情報１１１ａ，１１１ｂ，１１１ｃ，・・・によって、各ＶＭの情報が管理されている。
【００６７】
例えばノード管理情報１１１ａには、ノードＩＤ、監視サーバＩＤ、ホスト名、ＩＰアドレス、ＭＡＣアドレス、ＯＳ種別、文字コード種別、インタフェース名、接続履歴情報ＩＤ、フィルタ設定、ノードの死活監視、アプリケーションの稼働監視、アプリケーション名などのデータが設定されている。ノードＩＤのデータは、監視対象のＶＭの識別情報を示している。監視サーバＩＤのデータは、ＶＭを監視する監視サーバの識別情報を示している。ホスト名のデータは、ＶＭのホスト名を示している。ＩＰアドレスのデータは、ＶＭに設定されたＩＰアドレスを示している。ＭＡＣアドレスのデータは、ＶＭに設定されたＭＡＣアドレスを示している。ＯＳ種別のデータは、ＶＭで動作しているＯＳの種別を示している。文字コード種別のデータは、ＶＭで使用している文字コードの種別を示している。インタフェース名のデータは、ＶＭが通信に使用しているインタフェースのデバイス名を示している。接続履歴情報ＩＤのデータは、対応する接続履歴情報の識別番号を示している。フィルタ設定のデータは、ＶＭに設定するフィルタの種別を示している。ノードの死活監視のデータは、ＶＭの稼働状態の監視を行うかどうかを示している。アプリケーションの稼働監視のデータは、ＶＭに導入されているアプリケーションソフトウェアの稼働状態の監視を行うか否かを示している。アプリケーション名のデータは、ＶＭに導入されているアプリケーションソフトウェアの名称を示している。
【００６８】
図９は、接続履歴情報の一例を示す図である。接続履歴情報群１１２は、例えば接続履歴情報テーブル１１２ａによって、接続履歴情報が管理されている。接続履歴情報テーブル１１２ａは、各接続履歴情報をエントリとするデータテーブルである。接続履歴情報テーブル１１２ａには、ＩＤ、監視サーバＩＤ、更新日時、ＩＰアドレス、ＭＡＣアドレス、ホスト名、および直前の履歴ＩＤの欄が設けられている。
【００６９】
ＩＤの欄には、接続履歴情報の識別番号が設定される。監視サーバＩＤの欄には、接続履歴情報を生成した監視サーバの識別情報が設定される。更新日時の欄には、接続履歴情報を生成したときの監視サーバにおける時刻が設定される。ＩＰアドレスの欄には、接続履歴情報を生成したときのＶＭのＩＰアドレスが設定される。ＭＡＣアドレスの欄には、接続履歴情報を生成したときのＶＭのＭＡＣアドレスが設定される。ホスト名の欄には、接続履歴情報を生成したときのＶＭのホスト名が設定される。直前の履歴ＩＤの欄には、該当する接続履歴情報が付与されたＶＭがそれ以前に有していた、最も新しい接続履歴情報の識別番号が設定される。
【００７０】
接続履歴情報テーブル１１２ａに登録された各接続履歴情報は、直前の履歴ＩＤにより互いに関連付けられている。接続履歴間の関係は、ツリー構造で表される。
図１０は、接続履歴間の関係を示すツリー構造を示す図である。始点４０の下には、接続履歴情報テーブル１１２ａにおいて、直前の履歴ＩＤの欄に値が設定されていない接続履歴情報４１〜４３が接続されている。接続履歴情報４１の下位には、接続履歴のＩＤが、直前の履歴ＩＤの欄に設定された接続履歴情報４４〜４６が接続されている。このように、直前の履歴ＩＤの値に基づいて、接続履歴情報がツリー構造で表される。
【００７１】
図１１は、監視情報の一例を示す図である。監視情報群１２１は、例えば監視情報テーブル１２１ａによって監視の結果取得された監視情報が管理されている。監視情報テーブル１２１ａには、ＩＤ、種類、発生日時、重要度、メッセージテキスト、ノードＩＤ、および状態の欄が設けられている。
【００７２】
ＩＤの欄には、監視情報の識別番号が設定される。種類の欄には、監視情報の種別が設定される。発生日時の欄には、監視情報の発生日時が設定される。重要度の欄には、イベント等の監視情報の重要度が設定される。メッセージテキストの欄には、監視情報を説明するメッセージの文字列が設定される。ノードＩＤの欄には、監視情報取得時の監視対象のＶＭに対応するノード管理情報のノードＩＤが設定される。状態の欄には、監視情報に対する対処の有無が設定される。対処の有無については、初期状態が「未対処」であり、対処が行われたときに、利用者の入力により「対処済」に変更される。
【００７３】
図１２は、ＶＭに保持される接続履歴情報ファイルの一例を示す図である。接続履歴情報ファイル２１１ａには、監視サーバ１００，１００ａからＶＭ２１０への接続履歴情報が記録されている。接続履歴情報には、先頭から順に、監視サーバＩＤ、更新日時、ＩＰアドレス、ＭＡＣアドレス、およびホスト名が記録されている。
【００７４】
次に、第２の実施の形態におけるＶＭの監視処理について説明する。第２の実施の形態では、例えばＶＭが複製されることにより、同じ接続情報を有するＶＭが複数生成されても、各ＶＭを区別することができる。
【００７５】
図１３は、複製されたＶＭの区別例を示す図である。図１３の例では、ＶＭホスト２００において、ＶＭ２１０を複製したＶＭ２２０が生成されている。ＶＭ２１０，２２０は、それぞれ同じ接続情報（ＩＰアドレス、ＭＡＣアドレス、ホスト名）を有している。なお、接続情報が同一のＶＭ２１０，２２０を、同時にネットワークに接続することはできない。図１３の例では、ＶＭ２２０を生成時には、ＶＭ２１０がネットワークに接続されており、その後、ＶＭ２１０が停止されると共に、ＭＡＣアドレスが「１」から「２」に変更されたＶＭ２２０が起動されたものとする。さらにその後、ＶＭ２２０が停止されると共に、ＭＡＣアドレスが「１」から「２」に変更されたＶＭ２１０が起動されたものとする。
【００７６】
このようなＶＭホスト２００におけるＶＭ２１０，２２０の起動・停止が、監視サーバ１００で監視される。例えば監視サーバ１００の監視部１３０は、ＶＭ２２０が生成される前に、ＶＭ２１０から接続情報を受信する。受信したネットワーク情報に対して、監視部１３０は、監視サーバ１００の時刻とユニークな監視サーバＩＤを付加した接続履歴情報６１を作成する。例えば「[2014/01/01 00:00:00] [A][1][host1]」という接続履歴情報６１が生成される。この接続履歴情報６１は、更新日時、ＩＰアドレス、ＭＡＣアドレス、およびホスト名を並べたものである（図１３の例では、監視サーバＩＤは省略されている）。接続履歴情報６１に含まれる更新日時は、監視サーバ１００の内部時計の時刻に基づいて設定される。
【００７７】
監視部１３０は、接続履歴情報を生成すると、ＶＭ２１０に対応するノード管理情報５１を、構成管理ＤＢ１１０に格納する。また監視部１３０は、生成した接続履歴情報６１をノード管理情報５１に関連付け、構成管理ＤＢ１１０に格納する。また監視部１３０は、生成した接続履歴情報６１をＶＭ２１０に送信する。ＶＭ２１０では、接続履歴情報６１の内容が、接続履歴情報ファイル２１１ａに書き込まれる。
【００７８】
その後、監視部１３０は、接続履歴情報に含まれる接続情報と、現行の接続情報とが一致しないＶＭを検出すると、ノード管理情報５２，５３と接続履歴情報６２，６３とを新たに生成する。そして生成した接続履歴情報を、検出したＶＭ２１０，２２０に送信して、接続履歴情報ファイル２１１ａ，２２１ａを更新させることで、複製元のＶＭ２１０と複製先のＶＭ２２０とが区別可能となる。
【００７９】
例えばＶＭ２１０が停止し、ＶＭ２１０から複製され、ＭＡＣアドレスが「２」に変更されたＶＭ２２０が起動されると、監視部１３０がＶＭ２２０を検出する。すると監視部１３０は、ＶＭ２２０から接続履歴情報を取得する。このとき取得される履歴情報は、「[2014/01/01 00:00:00] [A][1][host1]」であり、ＭＡＣアドレスがＶＭ２２０のものと一致しない。そこでノード管理情報５２と接続履歴情報６２とが生成され構成管理ＤＢ１１０に格納されると共に、接続履歴情報６２がＶＭ２２０の接続履歴情報ファイル２２１ａに書き込まれる。
【００８０】
なお、複製されたＶＭ２２０が起動されたとき、複製元のＶＭ２１０が動作中であり、ＭＡＣアドレスによってＶＭ２１０が動作中であることを確認できれば、監視サーバ１００において、ＶＭ２２０が、ＶＭ２１０の複製であることを認識できる。この場合、監視サーバ１００では、例えば、ＶＭ２２０が複製であることを、監視情報として監視情報ＤＢ１２０に記憶する。
【００８１】
その後、ＶＭ２２０が停止し、ＭＡＣアドレスが「２」に変更された複製元のＶＭ２１０が起動されると、監視部１３０がＶＭ２１０を検出する。すると監視部１３０は、ＶＭ２１０から履歴情報を取得する。このとき取得される履歴情報は、「[2014/01/01 00:00:00] [A][1][host1]」であり、ＭＡＣアドレスがＶＭ２１０のものと一致しない。そこでノード管理情報５３と接続履歴情報６３とが生成され構成管理ＤＢ１１０に格納されると共に、接続履歴情報６３がＶＭ２１０の接続履歴情報ファイル２１１ａに書き込まれる。
【００８２】
なお、ＭＡＣアドレス変更後のＶＭ２１０が起動されたとき、ＭＡＣアドレス変更前の接続情報を有するＶＭは存在しないことを確認した監視サーバ１００において、ＶＭ２１０に対するＭＡＣアドレスの変更が行われたことを認識できる。この場合、監視サーバ１００では、例えば、ＶＭ２１０のＭＡＣアドレスが変更されたことを、監視情報として監視情報ＤＢ１２０に記憶する。
【００８３】
図１３に示すように、複製されたＶＭ２２０の接続履歴情報ファイル２２１ａに記録された接続履歴情報と、設定変更されたＶＭ２１０の接続履歴情報ファイル２１１ａに記録された接続履歴情報とは異なる。そのため、接続履歴情報をキーに、複製されたＶＭ２２０と設定変更されたＶＭ２１０とを識別することができるようになる。しかも接続履歴情報群をツリー構造で管理し、ツリー構造を構成する各接続履歴情報にノード管理情報を関連付けることで、ＶＭの複製・変更に関係なく、各々のＶＭを監視対象として区別することができる。
【００８４】
ここで、既存のＶＭ２１０からの複製、または既存のＶＭ２１０の接続情報の設定変更により、新たなノード管理情報を生成する場合、ＶＭ２１０のノード管理情報５１がコピーされる。
【００８５】
図１４は、ノード管理情報の生成例を示す図である。ＶＭ２１０を複製したＶＭ２２０の接続情報２２３が変更されると、監視サーバ１００は、接続履歴情報ファイル２２１ａの内容が、ＶＭ２１０に対応するノード管理情報５１と関連する接続履歴情報６１に一致することを検出する。そして監視サーバ１００は、ＶＭ２１０のノード管理情報５１に基づいて、ＶＭ２２０に対応するノード管理情報５２を生成する。例えば、監視サーバ１００は、ＶＭ２１０に対応するノード管理情報５１を複製し、ＭＡＣアドレスを更新したものを、ノード管理情報５２とする。
【００８６】
監視サーバ１００は、新たに生成されたノード管理情報５２を、ＶＭ２２０に接続した時刻を含む接続履歴情報６２に関連付ける。接続履歴情報６２は、ＶＭ２２０の接続履歴情報ファイル２２１ａに追加される。
【００８７】
次に、監視サーバ１００による、ＶＭ２１０，２２０の監視処理について詳細に説明する。なお、監視サーバ１００の監視部１３０は、監視エージェント２１２を介して、例えば１分間隔でＶＭ２１０，２２０の運用状態を監視する。また、監視部１３０は、同じタイミングで接続履歴情報の確認を行う。
【００８８】
図１５は、監視処理の手順の一例を示すシーケンス図である。例えばＶＭ２１０内の監視エージェント２１２が、ネットワークの接続情報を、監視部１３０に送信する（ステップＳ１１）。例えば監視エージェント２１２は、１分間隔で、接続情報を送信する。また監視エージェント２１２は、接続履歴情報ファイル２１１ａを読み込む（ステップＳ１２）。そして監視エージェント２１２は、接続履歴情報ファイル２１１ａに記載されている接続履歴情報を、監視部１３０に送信する（ステップＳ１３）。
【００８９】
接続情報と接続履歴情報とを受信した監視部１３０は、ＶＭ２１０に接続履歴情報が存在しないか、あるいは最新の接続履歴情報内の接続情報と現在のＶＭ２１０の接続情報とが一致しないかを判断する。何れかの要件が満たされる場合、監視部１３０は、監視サーバ１００の時刻を付加した接続履歴情報を、監視エージェント２１２に送信する（ステップＳ１４）。監視エージェント２１２は、受信した接続履歴情報を、接続履歴情報ファイル２１１ａに書き込む（ステップＳ１５）。
【００９０】
また監視部１３０は、ノード管理情報群１１１内の各ノード管理情報を読み込む（ステップＳ１６）。次に監視部１３０は、接続履歴情報群１１２内の各接続履歴情報を読み込む（ステップＳ１７）。
【００９１】
その後、監視部１３０は、ＶＭ２１０から取得した接続履歴情報と一致する接続履歴情報が、接続履歴情報群１１２内に存在しない場合、ノード管理情報群１１１内に、ＶＭ２１０に対応する新たなノード管理情報を追加する（ステップＳ１８）。次に、監視部１３０は、追加したノード管理情報に対応付けて、取得した接続履歴情報を接続履歴情報群１１２に追加する（ステップＳ１９）。
【００９２】
その後、監視エージェント２１２は、監視部１３０へ、ＶＭ２１０内の監視情報（イベントログなど）を送信する（ステップＳ２０）。監視部１３０は、受信した監視情報に、ＶＭに対応するノード管理情報のノードＩＤを付加して、監視情報群１２１に追加する（ステップＳ２１）。
【００９３】
次に、監視部１３０における監視処理手順の詳細について説明する。
図１６は、監視部における監視処理の手順の一例を示すフローチャートである。以下、図１６に示す処理を、ステップ番号に沿って説明する。
【００９４】
［ステップＳ１０１］監視部１３０は、監視エージェント２１２を介して、ＶＭ２１０のネットワークの接続情報を取得する。
［ステップＳ１０２］監視部１３０は、監視エージェント２１２を介して、ＶＭ２１０の接続履歴情報を取得する。
【００９５】
［ステップＳ１０３］監視部１３０は、ＶＭ２１０に接続履歴情報ファイルが存在したか否かを確認する。例えば、新規に作成されたＶＭ２１０を初めて監視対象とした場合、対応する接続履歴情報は存在しないこととなる。
【００９６】
［ステップＳ１０４］監視部１３０は、接続履歴情報ファイルが存在する場合、処理をステップＳ１０５に進める。また監視部１３０は、接続履歴情報ファイルが存在しない場合、処理をステップＳ１０７に進める。
【００９７】
［ステップＳ１０５］監視部１３０は、ＶＭから取得した接続履歴情報のうちの時刻が最新の接続履歴情報における接続情報が、ＶＭ２１０の現在の接続情報と一致するか否かを確認する。
【００９８】
［ステップＳ１０６］監視部１３０は、接続情報が一致する場合、処理をステップＳ１０８に進める。また監視部１３０は、接続情報が一致しない場合、処理をステップＳ１０７に進める。
【００９９】
［ステップＳ１０７］監視部１３０は、監視サーバ１００の内部時計が示す時刻を付加した接続履歴情報を、監視エージェント２１２に通知する。
［ステップＳ１０８］監視部１３０は、構成管理ＤＢ１１０内のノード管理情報群１１１と接続履歴情報群１１２とを読み込む。
【０１００】
［ステップＳ１０９］監視部１３０は、構成管理ＤＢ１１０内の接続履歴情報と、ＶＭ２１０から取得した接続履歴情報とを比較する。例えば監視部１３０は、図１０に示すようなツリー構造から、ＶＭ２１０から取得した１以上の接続履歴情報の並びに沿って、始点４０から順に、同じ接続履歴情報を探索する。ＶＭ２１０から取得したすべての接続履歴情報について、構成管理ＤＢ１１０内に対応する接続履歴情報があれば、構成管理ＤＢ１１０内の最後に見つかった接続履歴情報が、現在のＶＭ２１０に対応する接続履歴情報となる。
【０１０１】
［ステップＳ１１０］監視部１３０は、現在のＶＭ２１０に対応する接続履歴情報が既に存在する場合、処理をステップＳ１１３に進める。また監視部１３０は、現在のＶＭ２１０に対応する接続履歴情報が存在しない場合、処理をステップＳ１１１に進める。
【０１０２】
［ステップＳ１１１］監視部１３０は、構成管理ＤＢ１１０のノード管理情報群１１１に、現在のＶＭ２１０に対応するノード管理情報を追加する。例えば監視部１３０は、図１０に示すツリー構造上で、接続履歴情報が分岐する元の接続履歴情報に対応するノード管理情報を複写する。分岐元が始点４０の場合は、監視部１３０は、初期値が設定されたノード管理情報を生成する。そして監視部１３０は、複写または生成されたノード管理情報内の接続情報の値を、現在のＶＭ２１０の接続情報の値に変更する。
【０１０３】
［ステップＳ１１２］監視部１３０は、追加したノード管理情報に関連付けて、構成管理ＤＢ１１０の接続履歴情報群１１２に、接続履歴情報を追加する。追加される接続履歴情報の内容は、現在のＶＭ２１０の接続履歴情報ファイル２１１ａの最後にエントリされた接続履歴情報と同じである。
【０１０４】
［ステップＳ１１３］監視部１３０は、ＶＭ２１０の監視エージェント２１２を介して、監視情報を取得する。
［ステップＳ１１４］監視部１３０は、取得した監視情報に、ＶＭ２１０に対応するノード管理情報のノードＩＤを付加し、監視情報ＤＢ１２０に格納する。例えば、異常が通知されている場合は、ＶＭ２１０のノード管理情報を示すノードＩＤと共に、異常内容が格納される。
【０１０５】
なお監視部１３０は、ノード管理情報の追加および接続履歴情報の追加が行われた場合、監視対象のＶＭ２１０が、他のＶＭの複製なのか、あるいは、既存のＶＭのアドレスを変更したものなのかを判断し、判断結果を監視情報に含めてもよい。例えば、監視部１３０は、構成管理ＤＢ１１０から、監視対象のＶＭ２１０への接続履歴情報追加前の、そのＶＭ２１０の接続履歴情報ファイル２１１ａ内の最後の接続履歴情報に対応するノード管理情報を探索する。そして監視部１３０は、該当するノード管理情報に対応するＶＭへの接続を試みる。接続できた場合、監視部１３０は、複製されたＶＭであると判断し、判断結果を、監視情報として監視情報ＤＢ１２０に格納する。接続できなかった場合、監視部１３０は、接続情報が変更されたＶＭであると判断し、判断結果を、監視情報として監視情報ＤＢ１２０に格納する。
【０１０６】
［ステップＳ１１５］監視部１３０は、一定時間（例えば１分）待機する。
［ステップＳ１１６］監視部１３０は、監視処理が終了か否かを判断する。例えば監視部１３０は、監視処理の終了を示す入力が行われた場合、監視処理終了と判断する。終了であれば、処理が終了する。監視終了でなければ、処理がステップＳ１０１に進められる。
【０１０７】
以上のようにして、各ＶＭを適切に区別した監視が可能となる。以下、ＶＭの状態について、起こり得る場合ごとに、ＶＭを区別した監視例を説明する。起こり得る場合とは、「ＶＭに変更がない場合」、「ＶＭを新規に追加した場合」、「ＶＭが複製された場合」、「ＶＭの接続情報が変更された場合」、「接続履歴情報は異なるが接続情報は同じＶＭが交互に起動された場合」、「ＶＭのスナップショットが戻された場合」、及び「他監視サーバ配下のＶＭが移設された場合」である。
【０１０８】
＜ＶＭに変更がない場合について＞
同じ運用状態が継続しており、ＶＭの変更がない場合、図１６のステップＳ１０４で、接続履歴情報ファイルが存在すると判断される。そして、図１６のステップＳ１０６で、接続情報が一致すると判断される。例えばＶＭ２１０の接続履歴情報ファイル２１１ａの最後に登録された接続履歴情報に含まれる接続情報（ＩＰアドレス、ＭＡＣアドレス、ホスト名）と、ＶＭ２１０の現在の接続情報とが比較され、一致すると判断される。
【０１０９】
その後、図１６のステップＳ１１０において、構成管理ＤＢ１１０の接続履歴情報群に、ＶＭから取得した接続履歴情報と一致する接続履歴情報が存在すると判断される。
図１７は、接続履歴情報の存在の有無判断例を示す図である。例えばＶＭ２２０の接続履歴情報ファイル２２１ａに、「0001, 20140101000000, 192.168.0.1, 00-00-00-00-00-01, host1」と「0001, 20140101001000, 192.168.0.2, 00-00-00-00-00-02, host1」との接続履歴情報が書き込まれているものとする。構成管理ＤＢ１１０には、複数の接続履歴情報４１〜４６がツリー構造で接続されており、接続履歴情報４１〜４６それぞれは、ノード管理情報７１〜７６に関連付けられている。
【０１１０】
監視部１３０は、構成管理ＤＢ１１０の接続履歴情報群を示すツリー構造の始点４０から、接続履歴情報ファイル２２１ａに含まれる接続履歴情報と一致する接続履歴情報を辿り、接続履歴情報ファイル２２１ａと一致する接続履歴情報を確定する。例えば、始点４０直下の接続履歴情報４１〜４３のうち、接続履歴情報ファイル２２１ａ内の最初の接続履歴情報「0001, 20140101000000, 192.168.0.1, 00-00-00-00-00-01, host1」と一致する接続履歴情報４１が検出される。次に、接続履歴情報４１直下の接続履歴情報４４〜４６のうち、接続履歴情報ファイル２２１ａ内の２番目の接続履歴情報「0001, 20140101001000, 192.168.0.2, 00-00-00-00-00-02, host1」と一致する接続履歴情報４６が検出される。接続履歴情報４６が、接続履歴情報ファイル２２１ａ内の接続履歴情報と一致する接続履歴情報として確定する。
【０１１１】
そこで、監視部１３０は、接続履歴情報４６に対応するノード管理情報７６に示される監視設定に従って、ＶＭ２２０を監視する。
＜ＶＭを新規に追加した場合について＞
次に、複製や設定変更ではない、新規のＶＭが生成された場合における、監視処理について説明する。
【０１１２】
新規のＶＭが生成された場合、そのＶＭは接続履歴情報ファイルを有していない。そのため監視部１３０において、図１６のステップＳ１０４で、接続履歴情報ファイルが存在しないと判断され、ステップＳ１０７で接続履歴情報が通知される。そして新規に作成されたＶＭにおいて接続履歴情報ファイルが作成される。
【０１１３】
その後、図１６のステップＳ１１０において、構成管理ＤＢ１１０内に、ＶＭに通知した接続履歴情報と一致する接続履歴情報が存在しないと判断され、対応するノード管理情報と接続履歴情報とが、構成管理ＤＢ１１０に追加される。新規に作成されたＶＭに対応する接続履歴情報は、直前の履歴ＩＤの欄（図９参照）が空欄であり、ツリー構造上は、始点４０の直下に接続される。また新規に作成されたＶＭのノード管理情報における監視設定については、処理の初期値が設定される。利用者は、初期値が設定されたノード管理情報の監視設定を、任意に変更できる。そして、監視部１３０は、新たに生成したノード管理情報７６に示される監視設定に従って、新規に追加されたＶＭを監視する。
【０１１４】
＜ＶＭが複製された場合について＞
次に、ＶＭが複製された場合について説明する。既存のＶＭの複製は、例えば、複製元のＶＭと同じ構成のＶＭを、複製元のＶＭと同じ用途で利用するために行われる。複製されたＶＭは、ネットワークに接続するための接続情報を変更して起動されるものとする。
【０１１５】
複製されたＶＭでは、接続履歴情報ファイルについても、接続元のものが複製される。そのため、複製されたＶＭが監視対象となると、図１６のステップＳ１０４で、接続履歴情報ファイルが存在すると判断される。しかし、図１６のステップＳ１０６において、接続情報が一致しないと判断され、現在の接続情報に基づく接続履歴情報が、監視対象のＶＭの接続履歴情報ファイルに追加される。
【０１１６】
その後、図１６のステップＳ１１０において、構成管理ＤＢ１１０内に、ＶＭに通知した接続履歴情報と一致する接続履歴情報が存在しないと判断され、対応するノード管理情報と接続履歴情報とが、構成管理ＤＢ１１０に追加される（図１４参照）。この際、追加されるノード管理情報は、複製元のＶＭに対応するノード管理情報を複写することで生成される。そして、監視部１３０は、追加されたノード管理情報に示される監視設定に従って、複製されたＶＭを監視する。
【０１１７】
このようにして、複製されたＶＭに対応するノード管理情報が、監視サーバ１００上に追加され、利用者は複製元のＶＭと同じ設定で、複製されたＶＭの監視が可能になる。
＜ＶＭの接続情報が変更された場合について＞
次に、既存のＶＭの接続情報を変更された場合について説明する。
【０１１８】
既存のＶＭの接続情報が変更され、その後、そのＶＭが監視対象になると、図１６のステップＳ１０４で、接続履歴情報ファイルが存在すると判断される。しかし、図１６のステップＳ１０６において、接続情報が一致しないと判断され、現在の接続情報に基づく接続履歴情報が、監視対象のＶＭの接続履歴情報ファイルに追加される。
【０１１９】
その後、図１６のステップＳ１１０において、構成管理ＤＢ１１０内に、ＶＭに通知した接続履歴情報と一致する接続履歴情報が存在しないと判断され、対応するノード管理情報と接続履歴情報とが、構成管理ＤＢ１１０に追加される（図１４参照）。この際、追加されるノード管理情報は、複製元のＶＭに対応するノード管理情報を複写することで生成される。そして、監視部１３０は、追加されたノード管理情報に示される監視設定に従って、接続情報が変更されたＶＭを監視する。
【０１２０】
このようにして、設定変更したＶＭに対応するノード管理情報が、監視サーバ１００上に追加されるため、利用者は、変更元のノード管理情報と同じ設定でＶＭを監視できる。
＜接続履歴情報は異なるが接続情報は同じＶＭが、交互に起動された場合について＞
既存の２つのＶＭにテンポラリの接続情報を割り当て、交互に使用する場合がある。例えば、一方のＶＭを使用している間、他方のＶＭのバックアップなどの保守作業を行う場合などがある。
【０１２１】
図１８は、接続履歴情報は異なるが接続情報は同じＶＭの例を示す図である。例えば、ＶＭ２１０からＶＭ２２０が複製されたとき、ＶＭ２２０のＭＡＣアドレスが変更されたものとする。ＶＭ２２０が生成された時点では、ＶＭ２２０の接続履歴情報ファイル２２１ａの内容は、ＶＭ２１０の接続履歴情報ファイル２１１ａと同じである。ＶＭ２２０に対する最初の監視処理において、ＶＭ２２０の接続情報２２３と、接続履歴情報ファイル２２１ａ内の最新の接続履歴情報に含まれる接続情報とが相違するため、接続履歴情報ファイル２２１ａが更新される。その後、ＶＭ２２０の接続情報２２３のＭＡＣアドレスとホスト名とが変更されると、再度、接続履歴情報ファイル２２１ａが更新される。またＶＭ２１０の接続情報２１３のホスト名が更新されると、その後の監視処理によって、接続履歴情報ファイル２１１ａが更新される。その結果、ＶＭ２１０とＶＭ２２０との接続情報２１３，２２３が同じになっている。
【０１２２】
以後、ＶＭ２１０，２２０それぞれに対する監視処理では、図１６のステップＳ１０４において、接続履歴情報ファイルが存在すると判断される。また、図１６のステップＳ１０６において、ネットワークの接続情報が一致すると判断される。
【０１２３】
そして図１６のステップＳ１１０において、構成管理ＤＢ１１０内に、ＶＭ２１０，２２０それぞれの最新の接続履歴情報と一致する接続履歴情報が存在すると判断される。ただし、ステップＳ１１０における判定は、接続履歴情報ファイル２１１ａ，２２１ａに登録された接続履歴情報の順に、構成管理ＤＢ１１０内の接続履歴情報群１１２のツリー構造を始点４０から辿ることとなる。ＶＭ２２０の接続履歴情報ファイル２２１ａには、ＶＭ２１０の接続履歴情報ファイル２１１ａと異なる接続履歴情報「監視サーバＩＤ：0001 [2014/01/01 00:10:00][A][2][host1]」が含まれる。そのためＶＭ２１０に対応する構成管理ＤＢ１１０内の接続履歴情報と、ＶＭ２２０に対応する構成管理ＤＢ１１０内の接続履歴情報とは別となる。その結果、監視サーバ１００において、ＶＭ２１０とＶＭ２２０とが別のＶＭであることが認識される。すなわち監視サーバ１００上で、ＶＭ２１０とＶＭ２２０とが、各々別のＶＭとして監視される。
【０１２４】
このようにして、ＶＭの複製や接続情報の変更により、接続情報が同じＶＭが複数生成され、交互に使用される場合でも、各ＶＭを区別して監視することができる。
＜ＶＭのスナップショットが戻された場合について＞
ＶＭのスナップショットを作成した後、そのスナップショットを用いて、ＶＭを過去の状態に戻す場合がある。この場合、ネットワークの接続情報も以前の状態で、ＶＭが起動される。
【０１２５】
以前の状態に戻されたＶＭが監視対象となった場合、図１６のステップＳ１０４では、接続履歴情報ファイルが存在すると判断される。また、図１６のステップＳ１０６では、接続情報が一致すると判断される。そして、図１６のステップＳ１１０では、接続履歴情報ファイルに含まれる接続履歴情報に該当する接続履歴情報が、構成管理ＤＢ１１０内に存在すると判断される。
【０１２６】
図１９は、スナップショットが戻された場合の接続履歴情報の比較例を示す図である。例えばＶＭ２１０の接続情報が一度変更された後、変更前に取得したスナップショットにより、ＶＭ２１０が過去の状態に戻されたものとする。その場合、ＶＭ２１０の接続履歴情報ファイル２１１ａに含まれる接続履歴情報に沿って、構成管理ＤＢ１１０内の接続履歴情報群のツリー構造を辿ると、始点４０直下の接続履歴情報４１で探索が終了する。そして、その接続履歴情報４１に対応するノード管理情報７１が、現在のＶＭ２１０に対応するノード管理情報７１に決定される。その結果、ノード管理情報７１に示される監視設定に従って、スナップショット作成当時と同じ設定で監視が行われる。
【０１２７】
このように、スナップショットが戻されることで、ＶＭが過去の状態に戻された場合、スナップショット作成当時の設定で、ＶＭを監視することができる。
＜他監視サーバ配下のＶＭが移設された場合について＞
複数のＶＭホスト２００，２００ａが、それぞれ別のネットワークシステムを構成している場合がある。この場合、各ネットワークシステムは、個別の監視サーバでＶＭが監視される。このとき、別のＶＭホストで監視されているネットワーク間で、ＶＭを移設（マイグレーション）させることができる。テンポラリの接続情報を利用していると、ＶＭを別のシステムに移設させることにより、接続情報が重複する複数のＶＭが、移設先のワークシステム上に同時に存在してしまう可能性がある。第２の実施の形態は、接続履歴情報に監視サーバのＩＤを付与するため、ＶＭがネットワークシステムを跨がって移設されても、移設先のネットワークシステム上で、各ＶＭを確実に識別できる。
【０１２８】
図２０は、他監視サーバ配下のＶＭが移設された場合の例を示す図である。図２０の例は、監視サーバＩＤが「0002」の監視サーバ１００ａで監視されていたＶＭ２２０が、監視サーバＩＤが「0001」の監視サーバ１００の監視下に移設された場合を示している。監視サーバ１００配下には、既にＶＭ２１０が動作しており、ＶＭ２１０の接続情報２１３とＶＭ２２０の接続情報２２３とが一致している。
【０１２９】
この場合、移設されたＶＭ２２０を監視対象として監視処理が行われると、図１６のステップＳ１０４では、接続履歴情報ファイルが存在すると判断される。図１６のステップＳ１０６では、接続情報が一致すると判断される。
【０１３０】
新たに監視を開始した監視サーバ１００においては、構成管理ＤＢ１１０で、ＶＭ２２０の接続履歴情報ファイル２２１ａに示された、監視サーバＩＤ「0002」の接続履歴情報を管理してない。そのため、図１６のステップＳ１１０では、対応する接続履歴情報が存在しないと判断される。その結果、構成管理ＤＢ１１０に、ノード管理情報と接続履歴情報とが追加される。その後、監視サーバ１００に追加されたＶＭ２２０に対応するノード管理情報に従って、移設されたＶＭ２２０が監視される。
【０１３１】
このように、他の監視サーバ１００ａ配下のＶＭ２２０が、監視サーバ１００配下に移設されたとき、以前から監視サーバ１００配下にあったＶＭ２１０と接続情報が同じであっても、異なるＶＭとして監視することができる。
【０１３２】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１３３】
１  物理マシン
１−１，１−２  ＶＭ
１ａ−１，１ａ−２  履歴情報
１０  管理装置
１１  記憶部
１１ａ，１１ｂ，１１ｃ  識別情報
１１ｄ，１１ｅ，１１ｆ  管理情報
１２  演算部
【図１】
0006447258.tif 000002
【図２】
0006447258.tif 000003
【図３】
0006447258.tif 000004
【図４】
0006447258.tif 000005
【図５】
0006447258.tif 000006
【図６】
0006447258.tif 000007
【図７】
0006447258.tif 000008
【図８】
0006447258.tif 000009
【図９】
0006447258.tif 000010
【図１０】
0006447258.tif 000011
【図１１】
0006447258.tif 000012
【図１２】
0006447258.tif 000013
【図１３】
0006447258.tif 000014
【図１４】
0006447258.tif 000015
【図１５】
0006447258.tif 000016
【図１６】
0006447258.tif 000017
【図１７】
0006447258.tif 000018
【図１８】
0006447258.tif 000019
【図１９】
0006447258.tif 000020
【図２０】
0006447258.tif 000021