(57)【要約】【課題】運用に便利であるサーバーの監視システム及びその方法を提供する。【解決手段】サーバーの監視システムは、設定ファイルと監視プログラムを設定する設定モジュールと、ＤＨＣＰサービスを介してＩＰアドレスをデータセンターの各サーバーに配信して、各サーバーと通信する配信モジュールと、設定されているサーバーの名称に基づいて、設定ファイル及び監視プログラムをサーバーに送信した後、監視プログラムを実行してサーバークラスタを確立する送信モジュールと、サーバーの実行パラメータを獲得する獲得モジュールと、実行パラメータに基づいて故障されたサーバーがあるかどうかを判断する判断モジュールと、故障されたサーバーで実行された仮想マシンに対応するイメージファイルを検索する検索モジュールと、を備える。送信モジュールは、検索されたイメージファイルを他のサーバーに送信して仮想マシンを再度インストールする。【選択図】図２
2013218687.tif 000002
【特許請求の範囲】
【請求項１】
リモートコンピュータに設定ファイルと監視プログラムを設定する設定モジュールと、
前記リモートコンピュータのＤＨＣＰサービスを介して、ＩＰアドレスをデータセンターの各サーバーに配信して、各サーバーと通信する配信モジュールと、
前記設定ファイルに設定されているサーバーの名称に基づいて、前記設定ファイル及び前記監視プログラムをサーバーに送信し、前記設定ファイル及び前記監視プログラムを受信したサーバー内で前記監視プログラムを実行することによって、サーバークラスタを確立する送信モジュールと、
前記監視プログラムによって、前記サーバークラスタのサーバーの実行パラメータを獲得する獲得モジュールと、
獲得されたサーバークラスタのサーバーの実行パラメータに基づいて、前記サーバークラスタの中で、故障されたサーバーがあるかどうかを判断する判断モジュールと、
前記リモートコンピュータ中において、故障されたサーバーで実行されている仮想マシンに対応するイメージファイルを検索する検索モジュールと、
を備え、
前記送信モジュールは、検索されたイメージファイルを前記サーバークラスタの他のサーバーに送信し、前記サーバークラスタの他のサーバーに仮想マシンを再度インストールすることを特徴とするサーバーの監視システム。
【請求項２】
前記サーバークラスタ中の各サーバー同士は、互いに通信可能であることを特徴とする請求項１に記載のサーバーの監視システム。
【請求項３】
前記サーバークラスタには、ハイパーバイザがインストールされることを特徴とする請求項１又は２に記載のサーバーの監視システム。
【請求項４】
前記実行パラメータは、電源データであることを特徴とする請求項１から３のいずれか１項に記載のサーバーの監視システム。
【請求項５】
サーバーが故障するとは、サーバーの電源データがゼロであることを特徴とする請求項１から４のいずれか１項に記載のサーバーの監視システム。
【請求項６】
リモートコンピュータに設定ファイルと監視プログラムを設定するステップと、
前記リモートコンピュータのＤＨＣＰサービスを介して、ＩＰアドレスをデータセンターの各サーバーに配信して、各サーバーと通信するステップと、
前記設定ファイルに設定されているサーバーの名称に基づいて、前記設定ファイル及び前記監視プログラムをサーバーに送信し、前記設定ファイル及び前記監視プログラムを受信したサーバー内で前記監視プログラムを実行することによって、サーバークラスタを確立するステップと、
前記監視プログラムによって、前記サーバークラスタのサーバーの実行パラメータを獲得するステップと、
獲得されたサーバークラスタのサーバーの実行パラメータに基づいて、前記サーバークラスタの中で、故障されたサーバーがあるかどうかを判断するステップと、
前記リモートコンピュータ中において、故障されたサーバーで実行されている仮想マシンに対応するイメージファイルを検索するステップと、
検索されたイメージファイルを前記サーバークラスタの他のサーバーに送信し、前記サーバークラスタの他のサーバーに仮想マシンを再度インストールするステップと、
を有することを特徴とするサーバーの監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの制御システム及びその方法に関するものであり、特にサーバー監視システム及びその方法に関するものである。
【背景技術】
【０００２】
仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、ＶＭ）とは、ソフトウェアを介して、エミュレートするもので、完全なハードウェアのシステム機能を持つ。サーバーに仮想マシンを設置することにより、１つのコンピュータ上で一台又は複数台のサーバーをエミュレートする（即ち、前記仮想マシンに複数のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）をインストールする）ことができ、同じコンピュータ上で独立して実行される。しかし、コンピュータに異常（例えば、クラッシュ）が発生すると、仮想マシンは、動作を停止するため、この場合、仮想マシンを再度インストールする必要がある。一般的には、仮想マシンを手作業によって再度インストールするため、運用が面倒であるだけでなく、効率も悪い。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
以上の問題点に鑑みて、本発明は、使用に便利であるサーバー監視システム及びその方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明に係るサーバーの監視システムは、リモートコンピュータに設定ファイルと監視プログラムを設定する設定モジュールと、前記リモートコンピュータのＤＨＣＰサービスを介して、ＩＰアドレスをデータセンターのサーバーに配信して、各サーバーと通信する配信モジュールと、設定ファイルに設定されたサーバーの名称に基づいて、前記設定ファイル及び前記監視プログラムをサーバーに送信し、前記設定ファイル及び前記監視プログラムを受信したサーバー内で前記監視プログラムを実行することによって、サーバークラスタを確立する送信モジュールと、前記監視プログラムによって、前記サーバークラスタのサーバーの実行パラメータを獲得する獲得モジュールと、獲得されたサーバークラスタのサーバーの実行パラメータに基づいて、前記サーバークラスタの中で、故障されたサーバーがあるかどうかを判断する判断モジュールと、前記リモートコンピュータ中において、故障されたサーバーで実行された仮想マシンに対応するイメージファイルを検索する検索モジュールと、を備え、前記送信モジュールは、検索されたイメージファイルを前記サーバークラスタの他のサーバーに送信し、前記サーバークラスタの他のサーバーに仮想マシンを再度インストールする。
【０００５】
また、本発明に係るサーバーの監視方法は、リモートコンピュータに設定ファイルと監視プログラムを設定するステップと、前記リモートコンピュータのＤＨＣＰサービスを介して、ＩＰアドレスをデータセンターのサーバーに配信して、各サーバーと通信するステップと、設定ファイルに設定されたサーバーの名称に基づいて、前記設定ファイル及び前記監視プログラムをサーバーに送信し、前記設定ファイル及び前記監視プログラムを受信したサーバー内で前記監視プログラムを実行することによって、サーバークラスタを確立するステップと、前記監視プログラムによって、前記サーバークラスタのサーバーの実行パラメータを獲得するステップと、獲得されたサーバークラスタのサーバーの実行パラメータに基づいて、前記サーバークラスタの中で、故障されたサーバーがあるかどうかを判断するステップと、前記リモートコンピュータ中において、故障されたサーバーで実行された仮想マシンに対応するイメージファイルを検索するステップと、検索されたイメージファイルを前記サーバークラスタの他のサーバーに送信し、前記サーバークラスタの他のサーバーに仮想マシンを再度インストールするステップと、を備える。
【発明の効果】
【０００６】
従来の技術に比べて、本発明のサーバーの監視システム及びその方法は、データセンターのあるサーバーが実行の故障を送信すると、当該サーバーの仮想マシンを他のサーバーにインストールするため、使用に便利であり、仮想マシンの利用率を向上させるとともに、ユーザーの待ち時間も大幅に短縮される。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係るサーバーの監視システムの応用環境を示す図である。
【図２】本発明の実施形態に係る監視コンピュータのブロック図である。
【図３】本発明の実施形態に係るサーバーの監視方法のフローチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照して、本発明の実施形態について説明する。
【０００９】
図１は、本発明の実施形態に係るサーバーの監視システムの応用環境を示す図である。サーバー監視システム２００は、リモートコンピュータ２０に応用される。リモートコンピュータ２０とデータセンター５０とは、インターネット４０によって通信して接続される。また、インターネット４０は、ネットワーク、ローカルエリアネットワーク又は通信ネットワークであることができる。
【００１０】
データセンター５０は、複数のサーバー５００（本実施形態において、四つを例とする）を備え、サーバー５００はブレードサーバーである。本実施形態において、サーバー５００は、ホストコンピュータである。各ホストコンピュータには、１つ又は複数の仮想マシンがインストールされる。仮想マシンを効果的に管理するために、各ホストコンピュータには、ハイパーバイザ（Ｈｙｐｅｒｖｉｓｏｒ）がインストールされる。このハイパーバイザは、サーバー５００とサーバー５００のオペレーティングシステムとの間で実行されるソフトウェア層であり、複数のオペレーティングシステムは、サーバー５００のハードウェアを共有することができる。ハイパーバイザは、サーバー５００内の、例えば、ＣＰＵ、磁気ディスク、内部メモリーなどの全てのハードウェアにアクセスすることができる。サーバー５００を起動してハイパーバイザを実行すると、ハイパーバイザは、各仮想マシンに適量のＣＰＵ、磁気ディスク、内部メモリーなどのリソースをそれぞれ分配して、仮想マシンの実行を確保する。
【００１１】
リモートコンピュータ２０は、データセンター５０のサーバー５００の実行状態を監視するために用いられる。１つのサーバー５００が実行される過程において故障（例えば、電源の故障、ハードウェアの損傷）した場合、直ちに該サーバー５００の１つ又は複数の仮想マシンを他のサーバー５００にインストールする。これにより、サーバー５００にインストールされた仮想マシンは、他のサーバー５００において実行し続けることができる。具体的には、リモートコンピュータ２０には、各サーバー５００の仮想マシンに対応するイメージファイルが記憶されている。例えば、あるサーバーＡでは、三つの仮想マシンが実行され、リモートコンピュータ２０には三つのイメージファイルが記憶され、ユーザーがこの三つのイメージファイルをサーバー５００に送信することによって仮想マシンをインストールすることができる。
【００１２】
リモートコンピュータ２０には、さらに、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サービスがインストールされ、このＤＨＣＰサービスによって、ネットワーク間において互いに接続されたインターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ，ＩＰ）アドレスを配信して、データセンター５０のサーバー５００に提供する。これにより、リモートコンピュータ２０をデータセンター５０のサーバー５００と通信させることができる。リモートコンピュータ２０は、パーソナルコンピュータ又は他のコンピュータであっても良い。さらに、リモートコンピュータ２０は、データセンター５０の内部に設置することもでき、ユーザーは、クライアント１０を操作することによってサーバー５００に対して監視することができる。
【００１３】
リモートコンピュータ２０は、データベースコネクティビティによって、データベース３０に接続される。該データベースコネクティビティは、オープンデータベースコネクティビティ（Ｏｐｅｎ  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ，ＯＤＢＣ）又はＪａｖａ（登録商標）データベースコネクティビティ（Ｊａｖａ  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ，ＪＤＢＣ）であることができる。データベース３０は、データセンター５０から伝送されたデータを記憶するために用いられる。前記データは、データセンター５０におけるサーバー５００の実行パラメータを含む。
【００１４】
また、本発明において、データベース３０は、リモートコンピュータ２０の外部に単独で設置する或いはリモートコンピュータ２０の内部に設置することができる。また、データベース３０は、リモートコンピュータ２０のハードディスク又はフラッシュディスクに記憶される。本実施形態において、システムの安全性を確保するために、データベース３０は、リモートコンピュータ２０の外部に単独で設置される。
【００１５】
また、クライアント１０は、インタラクティブなインターフェイスを提供するため、ユーザーに対して便利な操作をもたらし、並びに、操作する過程において、各種のデータは、リモートコンピュータ２０に記憶される。この時、クライアント１０は、パーソナルコンピュータ、ノートブック及びその他任意のリモートコンピュータ２０に接続できる設備又はシステムであることができる。
【００１６】
図２を参照すると、リモートコンピュータ２０は、サーバー監視システム２００と、ストレージシステム２７０と、プロセッサ２８０と、を備える。サーバー監視システム２００は、設定モジュール２１０と、配信モジュール２２０と、送信モジュール２３０と、獲得モジュール２４０と、判断モジュール２５０と、検索モジュール２６０と、を備える。設定モジュール２１０から検索モジュール２６０までのコンピュータ化されたコードは、ストレージシステム２７０内に記憶される。プロセッサ２８０は、これらコンピュータ化されたコードを実行して、サーバーの監視システム２００によって提供された機能を達成する。
【００１７】
設定モジュール２１０は、リモートコンピュータ２０に設定ファイルと監視プログラムを設定する。この設定ファイルは、サーバー５００の数量及び名称を含む。通常、設定ファイルにおける少なくとも２つのサーバー５００の名称を設定する。本実施形態において、設定ファイル上に、四つのサーバー５００の名称を設定する。前記監視プログラムは、サーバー５００におけるハイパーバイザの情報を獲得して、サーバー５００が故障して、停止しているかどうかを判断する。具体的には、監視プログラムは、定期的にハイパーバイザからサーバー５００の電源データを獲得する。電源データがゼロである場合、サーバー５００は、故障していることを意味する。
【００１８】
配信モジュール２２０は、リモートコンピュータ２０の中のＤＨＣＰサービスを介して、ＩＰアドレスをデータセンター５０のサーバー５００に配信して、各サーバー５００と通信する。具体的には、図１を参照すると、データセンター５０は、四つのサーバー５００を含み、ＤＨＣＰサービスによって、各サーバー５００にＩＰアドレスをそれぞれ配信する。
【００１９】
送信モジュール２３０は、設定ファイルに設定されたサーバー５００の名称に基づいて、設定ファイル及び監視プログラムをサーバー５００に送信し、設定ファイル及び監視プログラムを受信したサーバー５００内で監視プログラムを実行することによって、サーバークラスタを確立する。具体的には、設定ファイルには、四つのサーバー５００の名称が設定されており、この四つのサーバー５００に設定ファイル及び監視プログラムを送信した後、プログラムを実行して、四つのサーバー５００の間を互いに通信させる。これにより、サーバークラスタを確立する。
【００２０】
獲得モジュール２４０は、前記監視プログラムによって、サーバークラスタのサーバー５００の実行パラメータを獲得する。この実行パラメータは、サーバー５００の電源データである。具体的には、サーバークラスタにインストールされた各サーバー５００の監視プログラムは、ハイパーバイザからサーバー５００の電源データを獲得し、該獲得した電源データをリモートコンピュータ２０の監視プログラムに送信する。リモートコンピュータ２０の演算量を軽減するために、サーバークラスタから１つのサーバー５００を選択してリモートコンピュータ２０と通信する。サーバークラスタ中の各サーバー５００同士は、互いに通信することができるため、選択されたサーバー５００は、他のサーバーの実行パラメータを獲得した後、全てのサーバー５００の実行パラメータをリモートコンピュータ２０に送信することができる。
【００２１】
判断モジュール２５０は、獲得されたサーバークラスタのサーバー５００の実行パラメータに基づいて、サーバークラスタの中で、故障されたサーバー５００があるかどうかを判断する。具体的には、電源データがゼロであるサーバー５００があるかどうかを判断する。判断モジュール２５０が、電源データがゼロであるサーバー５００があると判断した場合、該サーバー５００は故障していることを意味する。
【００２２】
検索モジュール２６０は、リモートコンピュータ２０中において、故障されたサーバー５００で実行された仮想マシンに対応するイメージファイルを検索する。具体的には、例えば、サーバーＡが故障された際、このサーバーＡ上では、三つの仮想マシンが実行されており、この三つの仮想マシンの番号に基づいて、リモートコンピュータ２０から三つの仮想マシンに対応するイメージファイルを検索する。
【００２３】
送信モジュール２３０は、検索されたイメージファイルをサーバークラスタの他のサーバー５００に送信し、サーバークラスタの他のサーバー５００に仮想マシンを再度インストールする。具体的には、三つの仮想マシンに対応するイメージファイルをサーバークラスタの他のサーバー５００に送信した後、この三つの仮想マシンを再度インストールする。これにより、三つの仮想マシンの実行を確保する。説明する必要があることは、他のサーバー５００に仮想マシンを再度インストールする前に、他のサーバー５００のリソース利用率（例えば、ＣＰＵ、内部メモリー等のリソースの利用率を含む）は検出されており、リソース利用率が最低であるサーバー５００においてインストールする。これにより、サーバー５００のリソースが合理的に分配され、データセンター５０の中のサーバー５００の利用率を向上させることができる。
【００２４】
図３を参照すると、サーバーの監視方法は、以下のステップを含む。
【００２５】
ステップＳ１０：設定モジュール２１０は、リモートコンピュータ２０に設定ファイルと監視プログラムを設定する。この設定ファイルは、サーバー５００の数量及び名称を含む。通常、設定ファイル上に、少なくとも２つのサーバー５００の名称を設定する。本実施形態において、設定ファイルに四つのサーバー５００の名称を設定する。前記監視プログラムは、サーバー５００におけるハイパーバイザの情報を獲得して、サーバー５００が故障して、停止しているかどうかを判断する。具体的には、監視プログラムは、定期的にハイパーバイザからサーバー５００の電源データを獲得する。電源データがゼロである場合、サーバー５００は、故障していることを意味する。
【００２６】
ステップＳ２０：配信モジュール２２０は、リモートコンピュータ２０の中のＤＨＣＰサービスを介して、ＩＰアドレスをデータセンター５０のサーバー５００に配信して、各サーバー５００と通信する。具体的には、図１を参照すると、データセンター５０は、四つのサーバー５００を含み、ＤＨＣＰサービスによって、各サーバー５００にＩＰアドレスをそれぞれ配信する。
【００２７】
ステップＳ３０：送信モジュール２３０は、設定ファイル中に設定されたサーバー５００の名称に基づいて、設定ファイル及び監視プログラムをサーバー５００に送信し、設定ファイル及び監視プログラムを受信したサーバー５００内で監視プログラムを実行することによって、サーバークラスタが確立される。具体的には、設定ファイルには、四つのサーバー５００の名称が設定されており、この四つのサーバー５００に設定ファイル及び監視プログラムを送信した後、プログラムを実行して、四つのサーバー５００間を互いに通信させる。これにより、サーバークラスタを確立する。
【００２８】
ステップＳ４０：獲得モジュール２４０は、監視プログラムによってサーバークラスタのサーバー５００の実行パラメータを獲得する。この実行パラメータは、サーバー５００の電源データである。具体的には、サーバークラスタにインストールされた各サーバー５００の監視プログラムは、ハイパーバイザからサーバー５００の電源データを獲得し、該獲得した電源データをリモートコンピュータ２０の監視プログラムに送信する。リモートコンピュータ２０の演算量を軽減するために、サーバークラスタから１つのサーバー５００を選択してリモートコンピュータ２０と通信する。サーバークラスタ中の各サーバー５００同士は、互いに通信することができるため、選択されたサーバー５００は、他のサーバーの実行パラメータを獲得した後、全てのサーバー５００の実行パラメータをリモートコンピュータ２０に送信することができる。
【００２９】
ステップＳ５０：判断モジュール２５０は、獲得されたサーバークラスタのサーバー５００の実行パラメータに基づいて、サーバークラスタの中で、故障されたサーバー５００があるかどうかを判断する。
【００３０】
具体的には、判断モジュール２５０は、電源データがゼロであるサーバー５００があるかどうかを判断する。判断モジュール２５０が、電源データがゼロであるサーバー５００があると判断した場合、ステップＳ６０を実行し、電源データがゼロであるサーバー５００はないと判断した場合ステップＳ４０に戻る。
【００３１】
ステップＳ６０：検索モジュール２６０は、リモートコンピュータ２０中において、故障されたサーバー５００で実行された仮想マシンに対応するイメージファイルを検索する。具体的には、例えば、サーバーＡが故障された際、このサーバーＡ上では、三つの仮想マシンが実行されており、この三つの仮想マシンの番号に基づいて、リモートコンピュータ２０から三つの仮想マシンに対応するイメージファイルを検索する。
【００３２】
ステップＳ７０：送信モジュール２３０は、検索されたイメージファイルをサーバークラスタの他のサーバー５００に送信し、サーバークラスタ中の他のサーバー５００に仮想マシンを再度インストールする。具体的には、三つの仮想マシンに対応するイメージファイルをサーバークラスタの他のサーバー５００に送信した後、この他のサーバー５００上で三つの仮想マシンを再度インストールする。これにより、三つの仮想マシンの実行を確保する。説明する必要があることは、他のサーバー５００に前記三つの仮想マシンを再度インストールする前に、他のサーバー５００のリソース利用率（例えば、ＣＰＵ、内部メモリー等のリソースの利用率を含む）は検出されており、リソース利用率が最低であるサーバー５００においてインストールする。これにより、サーバー５００のリソースは合理的に分配され、データセンター５０の中のサーバー５００の利用率を向上させることができる。
【００３３】
以上、本発明を実施形態に基づいて具体的に説明したが、本発明は、上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲において、種々の変更が可能であることは勿論であって、本発明の保護範囲は、添付の特許請求の範囲によって決まる。
【符号の説明】
【００３４】
１０  クライアント
２０  リモートコンピュータ
３０  データベース
４０  インターネット
５０  データセンター
２００  サーバー監視システム
２１０  設定モジュール
２２０  配信モジュール
２３０  送信モジュール
２４０  獲得モジュール
２５０  判断モジュール
２６０  検索モジュール
２７０  ストレージシステム
２８０  プロセッサ
５００  サーバー
【図１】
2013218687.tif 000003
【図２】
2013218687.tif 000004
【図３】
2013218687.tif 000005