(57)【特許請求の範囲】
【請求項１】
第１の物理マシンが、第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信するステップと、
前記仮想マシンが、前記問い合わせコマンドを受信したことに応答し、前記第１の物理マシンに応答情報を送信するステップと、
前記第１の物理マシンが、前記応答情報が第２の所定時間にわたって中断することに応答して、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、前記故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信するステップと、
前記第２の物理マシンが、前記仮想マシンリセットコマンドに基づいて、前記故障した仮想マシンをリセットするステップと、
を含み、
前記の故障した仮想マシンが予め設定されたリセット条件を満たす場合に、前記故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信するステップにおいては、
故障した仮想マシンの割合がプリセットされた割合より小さい場合に、仮想マシンリセットコマンドを前記第２の物理マシンに送信するステップ、又は、
故障した仮想マシンの、前回の仮想マシンリセット又は仮想マシン再構築からの時間が第３の所定時間を超える場合に、仮想マシンリセットコマンドを前記第２の物理マシンに送信するステップ、
を含むことを特徴とする仮想マシンクラスタの監視方法。
【請求項２】
前記第２の物理マシンが、前記故障した仮想マシンをリセットする時に、リセット応答信号を前記第１の物理マシンに送信するステップと、
前記第１の物理マシンが、前記リセット応答信号を受信したことに応答し、予め記録された仮想マシンのメタ情報から故障した仮想マシンのアドレスを取得し、前記アドレスに基づいて、前記リセットされた仮想マシンと接続し、第１のサービスプロセスリセット信号を前記リセットされた仮想マシンに送信するステップと、
前記リセットされた仮想マシンが、前記第１のサービスプロセスリセット信号に基づいて、前記リセットされた仮想マシンのサービスプロセスを起動するステップと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の物理マシンが、前記仮想マシンリセットコマンドを送信した後の所定時間内に前記リセット応答信号を受信していないことに応答し、前記故障した仮想マシンのリセットが失敗したと判断し、リセット失敗の回数がプリセットされた回数に達することに応答し、前記仮想マシンクラスタのホスト物理マシンクラスタにおける、前記第２の物理マシン以外の物理マシンである第３の物理マシンに仮想マシン再構築コマンドを送信するステップと、
前記第３の物理マシンが、前記仮想マシン再構築コマンドに基づいて、前記故障した仮想マシンを再構築するステップと、
をさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記第３の物理マシンが、再構築応答信号を前記第１の物理マシンに送信するステップと、
前記第１の物理マシンが、前記再構築応答信号を受信したことに応答し、前記仮想マシンのメタ情報から故障した仮想マシンのメタ情報を取得し、取得されたメタ情報に基づいて、ノード回復コマンドを前記再構築された仮想マシンに送信するステップと、
前記再構築された仮想マシンが、前記ノード回復コマンドに基づいて前記再構築された仮想マシンが管理ノードであると判断した場合に、前記ノード回復コマンドに基づいて、予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、前記増分データに基づいて、前記再構築された管理ノードのメタデータを回復し、前記仮想マシンクラスタにおける計算ノードの登録を受けており、前記ノード回復コマンドに基づいて前記再構築された仮想マシンが計算ノードであると判断した場合に、前記ノード回復コマンドに基づいて、前記仮想マシンクラスタにおける管理ノードに登録するステップと、
をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記再構築された管理ノードが、所定時間内に登録された前記仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を前記第１の物理マシンに送信しており、所定時間内に登録された前記仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を前記第１の物理マシンに送信するステップと、
前記第１の物理マシンが、前記の再構築が成功したことを指示する信号に基づいて、前記再構築された管理ノードに受信されたユーザージョブを投入しており、前記の再構築が失敗したことを指示する警告信号に基づいて、警告報知を表示するステップと、
をさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記仮想マシンのメタ情報に基づいて、前記故障した仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断することと、
故障した仮想マシンが管理ノードを含む又は故障した計算ノードの割合が閾値を超えると判断したことに応答し、前記仮想マシンクラスタが故障したと判断することと、
前記仮想マシンクラスタが故障したことに応答し、引き続きユーザージョブを受信し、ユーザージョブの前記仮想マシンクラスタにおける管理ノードへの投入を停止することと、
前記応答情報がリセット又は再構築された仮想マシンからのものであることに応答し、前記リセット又は再構築された仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が前記閾値を超えるか否かを判断することと、
前記リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が前記閾値を超えていないと判断したことに応答し、前記仮想マシンクラスタが故障から回復したと判断することと、
前記仮想マシンクラスタが故障から回復したことに応答し、引き続き前記仮想マシンクラスタにおける管理ノードにジョブを投入し、及び前記管理ノードから問い合わせられたジョブ状態情報に基づいて、前記仮想マシンクラスタが故障する前に実行したジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入することと、
故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、ユーザージョブを受信し続け、前記ユーザージョブを前記仮想マシンクラスタにおける管理ノードに投入することと、
を前記第１の物理マシンによって実行するステップをさらに含んでおり、
ここで、前記ジョブ状態情報は、前記管理ノードが前記計算ノードのジョブログに基づいて取得するものである
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記仮想マシンクラスタにおける管理ノードが、増分操作ログをリモートメモリに定期的にバックアップするステップと、
前記リモートメモリが、バックアップされた操作ログを定期的にマージし、マージ時点
前の操作ログを削除するステップと、
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記仮想マシンクラスタにおける計算ノードが、第２の所定時間毎に前記仮想マシンクラスタにおける管理ノードに第１のハートビート情報を送信して計算ノードに実行されている第２のサービスプロセスの状態情報を報告するステップと、
前記仮想マシンクラスタにおける管理ノードが、前記第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、前記第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、前記第２のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、前記第２のサービスプロセスが異常であると判断し、第２のサービスプロセスリセット信号を異常な第２のサービスプロセスに位置する計算ノードに送信するステップと、
前記異常な第２のサービスプロセスに位置する計算ノードが、前記第２のサービスプロセスリセット信号に基づいて、異常な第２のサービスプロセスをリセットするステップと、
をさらに含むことを特徴とする請求項４〜７のいずれか一項に記載の方法。
【請求項９】
前記仮想マシンクラスタにおける計算ノードが、前記仮想マシンクラスタにおける管理ノードに第２のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告するステップと、
前記仮想マシンクラスタにおける管理ノードが、前記仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示するステップと、
をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記仮想マシンの状態パラメータ情報が、仮想マシンのディスク使用率、仮想マシンネットワークＩ／Ｏ負荷及び仮想マシンのＣＰＵ使用率の一項又は複数項を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
仮想マシンクラスタの監視システムであって、第１の物理マシンと、仮想マシンと、第２の物理マシンとを備えており、
前記第１の物理マシンは、第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信し、応答情報が第２の所定時間にわたって中断することに応答し、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、前記故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信することに用いられ、
前記仮想マシンは、前記問い合わせコマンドを受信したことに応答し、前記第１の物理マシンに前記応答情報を送信することに用いられ、
前記第２の物理マシンは、前記仮想マシンリセットコマンドに基づいて、前記故障した仮想マシンをリセットすることに用いられ、
前記予め設定されたリセット条件は、故障した仮想マシンの割合がプリセットされた割合より小さい、又は、故障した仮想マシンの、前回の仮想マシンリセット又は仮想マシン再構築からの時間が第３の所定時間を超えることである、
ことを特徴とする仮想マシンクラスタの監視システム。
【請求項１２】
前記第２の物理マシンはさらに、前記故障した仮想マシンをリセットする時に、リセット応答信号を前記第１の物理マシンに送信し、前記リセットされた仮想マシンが第１のサービスプロセスリセット信号に基づいて、前記リセットされた仮想マシンのサービスプロセスを起動することに用いられ、
前記第１の物理マシンはさらに、前記リセット応答信号を受信したことに応答し、予め記録された仮想マシンのメタ情報から故障した仮想マシンのアドレスを取得し、前記アド
レスに基づいて、前記リセットされた仮想マシンと接続し、前記第１のサービスプロセスリセット信号を前記リセットされた仮想マシンに送信することに用いられる、
ことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記システムは、
仮想マシン再構築コマンドに基づいて、前記故障した仮想マシンを再構築するための第３の物理マシンをさらに備えており、
前記第１の物理マシンはさらに、前記仮想マシンリセットコマンドを送信した後の所定時間内に前記リセット応答信号を受信していないことに応答し、前記故障した仮想マシンのリセットが失敗したと判断し、リセット失敗の回数がプリセットされた回数に達することに応答し、前記仮想マシンクラスタのホスト物理マシンクラスタにおける、前記第２の物理マシン以外の物理マシンである第３の物理マシンに前記仮想マシン再構築コマンドを送信することに用いられる、
ことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記第３の物理マシンはさらに、再構築応答信号を前記第１の物理マシンに送信し、前記再構築された仮想マシンが、ノード回復コマンドに基づいて前記再構築された仮想マシンが管理ノードであると判断した場合に、前記ノード回復コマンドに基づいて、予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、前記増分データに基づいて、前記再構築された管理ノードのメタデータを回復し、前記仮想マシンクラスタにおける計算ノードの登録を受けており、ノード回復コマンドに基づいて前記再構築された仮想マシンが計算ノードであると判断した場合に、前記ノード回復コマンドに基づいて、前記仮想マシンクラスタにおける管理ノードに登録することに用いられ、
前記第１の物理マシンはさらに、前記再構築応答信号を受信したことに応答し、前記仮想マシンのメタ情報から故障した仮想マシンのメタ情報を取得し、取得されたメタ情報に基づいて、前記ノード回復コマンドを前記再構築された仮想マシンに送信することに用いられる、
ことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記再構築された管理ノードはさらに、所定時間内に登録された、前記仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を前記第１の物理マシンに送信し、所定時間内に登録された、前記仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を前記第１の物理マシンに送信することに用いられ、
前記第１の物理マシンはさらに、再構築が成功したことを指示する前記信号に基づいて、前記再構築された管理ノードに受信されたユーザージョブを投入しており、再構築が失敗したことを指示する前記警告信号に基づいて、警告報知を表示することに用いられる、
ことを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記第１の物理マシンはさらに、
前記仮想マシンのメタ情報に基づいて、前記故障した仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断することと、
故障した仮想マシンが管理ノードを含む又は故障した計算ノードの割合が閾値を超えると判断したことに応答し、前記仮想マシンクラスタが故障したと判断することと、
前記仮想マシンクラスタが故障したことに応答し、引き続きユーザージョブを受信し、前記仮想マシンクラスタにおける管理ノードへの、ユーザージョブの投入を停止することと、
前記応答情報がリセット又は再構築された仮想マシンからのものであることに応答し、
前記リセット又は再構築された仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が前記閾値を超えるか否かを判断することと、
前記リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が前記閾値を超えていないと判断したことに応答し、前記仮想マシンクラスタが故障から回復したと判断することと、
前記仮想マシンクラスタが故障から回復したことに応答し、引き続き前記仮想マシンクラスタにおける管理ノードにジョブを投入し、及び前記管理ノードから問い合わせられたジョブ状態情報に基づいて、前記仮想マシンクラスタが故障する前に実行したジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入することと、
故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、引き続きユーザージョブを受信し、前記ユーザージョブを前記仮想マシンクラスタにおける管理ノードに投入することと、
に用いられて、
ここで、ジョブ状態情報は、前記管理ノードが前記計算ノードのジョブログに基づいて取得するものであることを特徴とする請求項１５に記載のシステム。
【請求項１７】
バックアップされた操作ログを定期的にマージし、マージ時点前の操作ログを削除するためのリモートメモリをさらに備えており、
前記仮想マシンクラスタにおける管理ノードはさらに、増分操作ログを前記リモートメモリに定期的にバックアップすることに用いられる、
ことを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記仮想マシンクラスタにおける計算ノードはさらに、第２の所定時間毎に前記仮想マシンクラスタにおける管理ノードに第１のハートビート情報を送信して計算ノードに実行されている第２のサービスプロセスの状態情報を報告すること、及び異常な第２のサービスプロセスに位置する計算ノードが第２のサービスプロセスリセット信号に基づいて、前記異常な第２のサービスプロセスをリセットすることに用いられ、
前記仮想マシンクラスタにおける管理ノードはさらに、前記第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、前記第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、前記第２のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、前記第２のサービスプロセスが異常であると判断し、第２のサービスプロセスリセット信号を前記異常な第２のサービスプロセスに位置する計算ノードに送信することに用いられる、
ことを特徴とする請求項１４〜１７のいずれか一項に記載のシステム。
【請求項１９】
前記仮想マシンクラスタにおける計算ノードはさらに、前記仮想マシンクラスタにおける管理ノードに第２のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告することに用いられ、
前記仮想マシンクラスタにおける管理ノードはさらに、前記仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示することに用いられる、
ことを特徴とする請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータの技術分野に関し、具体的にコンピュータネットワークの技術分野に関し、特に仮想マシンクラスタの監視方法及びシステムに関する。
【背景技術】
【０００２】
現在のインターネットの急速な発展に伴って、仮想化とビッグデータ処理はますます業界に重視され、両者の組み合わせは、現在業界の研究の人気のある方向となっている。仮想化環境にビッグデータ処理対策を配置して実行することによって、システムリソースの使用率と設定の柔軟性を大幅に向上させることができる。しかしながら、物理環境に対して、仮想環境はより高い不確実性が存在し、システムの高可用性が特に重要である。
【０００３】
従来の技術において、仮想システムの高可用性を保持するために、通常、仮想マシンの物理ホストマシンを監視して、ホストマシンが故障するか否かを判断する。
しかし、上記した仮想マシンの物理ホストマシンを監視する方法は、ホストマシンが故障した時に維持管理スタッフが手動で物理ホストマシンにおけるすべての仮想マシンを修復する必要があり、手間がかかり、且つ長時間のサービス中断を引き起こし、ユーザーに損失をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、仮想マシンクラスタの監視方法及びシステムを提供して、以上の背景技術に言及された技術的課題を解決することを目的とする。
【課題を解決するための手段】
【０００５】
第１の態様において、本発明は仮想マシンクラスタの監視方法を提供し、この方法は、第１の物理マシンが第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信するステップと、仮想マシンが問い合わせコマンドを受信したことに応答し、第１の物理マシンに応答情報を送信するステップと、第１の物理マシンが、応答情報が第２の所定時間にわたって中断することに応答して、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信するステップと、第２の物理マシンが仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットするステップと、を含む。
【０００６】
第２の態様において、本発明は仮想マシンクラスタの監視システムを提供し、このシステムは、第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信し、応答情報が第２の所定時間にわたって中断することに応答し、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信する第１の物理マシンと、問い合わせコマンドを受信したことに応答し、第１の物理マシンに応答情報を送信する仮想マシンと、仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする第２の物理マシンとを備える。
【発明の効果】
【０００７】
本発明に係る仮想マシンクラスタの監視方法及びシステムにおいて、第１の物理マシンが第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信し、次に仮想マシンが問い合わせコマンドを受信したことに応答し、第１の物理マシンに応答情報を送信し、その後、第１の物理マシンが、応答情報が第２の所定時間にわたって中断することに応答して、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信し、最後に第２の物理マシンが仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする。当該方法及びシステムは、仮想マシンに対する監視を実現でき、仮想マシンが故障する時に自動的に回復でき、仮想マシンクラスタの可用性を向上させ、サービスの中断時間を減少させる。
【０００８】
以下、図面を参照しながら非限定的な実施例を詳細に説明することにより、本発明の他の特徴、目的、および利点は、より明らかになる。
【図面の簡単な説明】
【０００９】
【図１】本願を適用できる例示的なシステムアーキテクチャ図である。
【図２】本発明の実施例に係る仮想マシンクラスタの監視方法を示す１つの模式的フローチャートである。
【図３】本発明の実施例に係る仮想マシンクラスタの監視方法を示す別の模式的フローチャートである。
【図４】本発明の実施例に係る仮想マシンクラスタの監視方法を示す第３の模式的フローチャートである。
【図５ａ】本発明の実施例に係る仮想マシンが管理ノードであることを示す回復フローチャートである。
【図５ｂ】本発明の実施例に係る仮想マシンが計算ノードであることを示す回復フローチャートである。
【図６】本発明の実施例に係る仮想マシンクラスタの監視方法を示す第４の模式的フローチャートである。
【図７】ユーザーが本発明の実施例に係る仮想マシンクラスタの監視方法を応用してジョブを投入することを示すフローチャートである。
【図８】本発明の実施例に係る仮想マシンクラスタの監視方法を示す第５の模式的フローチャートである。
【図９】本発明の実施例に係る仮想マシンクラスタの監視システムを示す例示的なアーキテクチャ図である。
【図１０】本願の実施例を実現するための端末装置又はサーバーに適用されるコンピュータシステムを示す構造模式図である。
【発明を実施するための形態】
【００１０】
以下、図面および実施例を参照しながら、本発明をさらに詳しく説明する。ただし、ここで説明されている具体的な実施例は、係る発明を解釈するためのものに過ぎず、本発明の範囲を制限するものでないことが理解されるべきである。なお、説明の便宜上、図面に本発明と関連する部分のみが示されている。
【００１１】
ただし、衝突がない限り、本願における実施例及び実施例における特徴は互いに組み合せてもよい。以下、図面を参照しながら実施例に基づいて本願を詳しく説明する。
図１は本発明の実施例に係る仮想マシンクラスタの監視方法を適用できる例示的なシステムアーキテクチャ１００を示す。
【００１２】
図１に示すように、システムアーキテクチャ１００は、端末装置１０１と、仮想マシンクラスタが配置されたサーバークラスタ１０２と、仮想マシンが配置されていないサーバー１０４とを備えてもよい。ネットワーク１０３は端末装置１０１、サーバークラスタ１０２及びサーバー１０４の間に通信リンクの媒体を提供することに用いられる。ネットワーク１０３は様々な接続タイプ、例えば有線、無線通信リンクや光ケーブルなどを含んでもよい。
【００１３】
ユーザー１１０は端末装置１０１を利用してネットワーク１０３を介してサーバー１０４とインタラクティブすることによりユーザージョブを投入することができ、サーバー１０４はネットワーク１０３を介してサーバークラスタ１０２とインタラクティブし、ユーザーにより投入されたジョブをサーバークラスタ１０２に実行されている仮想マシンクラスタに投入することができる。端末装置１０１には、様々なアクライアントプリケーション、例えば、ウェブブラウザアプリケーション、検索アプリケーション、インスタントメッセージツール、電子メールクライアント、ソーシャルプラットフォームソフトウェア、クラウドプラットフォームアプリケーションなどがインストールされてもよい。
【００１４】
端末装置１０１はヒューマンコンピュータインタラクションアセンブリを有し且つジョブ投入をサポートする各種の電子装置であってもよく、モバイルインテリジェント端末、タブレットパソコン、ラップトップポータブルコンピュータ、デスクトップコンピュータ、マルチメディアプレーヤー及び電子書籍リーダー等を含むが、それらに限定されない。
【００１５】
サーバークラスタ１０２はデータ分析処理を提供する複数のサーバーからなり、その上で大量の仮想マシンからなる仮想マシンクラスタを実行することができる。仮想マシンクラスタにおける仮想マシンは、管理ノードと計算ノードの２種類に分けられる。管理ノードはクラスタ全体の管理、リソーススケジューリング及びユーザーにより投入されるジョブの管理を担当し、計算ノードは主に具体的なサブタスクの実行を計算することを担当する。
【００１６】
サーバー１０４はデータ分析処理を提供するサーバーであってもよく、複数のサーバーからなるサーバークラスタであってもよい。例えば、端末装置１０１により投入されたユーザージョブに対して分析処理を行うサーバーが挙げられる。サーバー１０４はサーバークラスタ１０２に実行されている仮想マシンクラスタにより提供された実行データに対して分析処理を行って、端末装置１０１により投入されたユーザージョブをサーバークラスタ１０２に実行されている仮想マシンクラスタにおける管理ノードに割り当て、さらに管理ノードは投入されたユーザージョブを仮想マシンクラスタにおける計算ノードに割り当て、その後、管理ノードは計算ノードによる、投入されたユーザージョブに対するデータ分析処理結果を取得し、当該処理結果をサーバー１０４に返し、さらにサーバー１０４は投入されたユーザージョブのデータ分析処理結果を端末装置１０１に返す。
【００１７】
なお、本発明の実施例に係る仮想マシンクラスタの監視方法における操作ステップは、一般的にサーバークラスタ１０２と、サーバークラスタ１０２に実行されている仮想マシンクラスタと、サーバー１０４とにより実行され、サーバー１０４にユーザージョブを投入する操作ステップは、一般的に端末装置１０１により実行される。
【００１８】
図１における端末装置、ネットワーク及びサーバーの数が例示的なものであることを理解すべきである。必要に応じて、端末装置、ネットワーク及びサーバーの数が任意である。
【００１９】
引き続き、本発明の実施例に係る仮想マシンクラスタの監視方法を示す１つの模式的フローチャート２００である図２を参照する。当該仮想マシンクラスタの監視方法２００は、以下のステップを含む。
【００２０】
ステップ２０１において、第１の物理マシンは第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信する。
本実施例において、第１の物理マシンは仮想マシンが配置されていない物理マシンであり、例えば図１におけるサーバー１０４を指す。仮想マシンクラスタは複数の仮想マシンを集めて同一のサービスを行い、クライアントにとって１つだけの仮想マシンのようである。１つのコンピュータに１つ以上の仮想マシンを配置することができ、複数のコンピュータに配置される仮想マシンが仮想マシンクラスタを形成し、仮想マシンクラスタが同時に並列計算を行うことができ、それにより高い計算速度を取得する。
【００２１】
上記第１の所定時間は第１の物理マシンが仮想マシンに問い合わせコマンドを送信する間隔時間であり、物理マシンのパラメータ、ネットワークパラメータ、仮想マシンのパラメータ、仮想マシンシステムリソースの使用率及び仮想マシンシステム設定の柔軟性等を統合的に考慮して設定することができる。
【００２２】
上記問い合わせコマンドは、仮想マシンの健康状態をポーリングするコマンドであってもよく、例えば、仮想マシンのディスク使用率、仮想マシンネットワークＩ／Ｏ負荷及び仮想マシンのＣＰＵ使用率等の一項又は複数項の仮想マシンの状態パラメータ情報を問い合わせるコマンドである。
【００２３】
ステップ２０２において、仮想マシンは問い合わせコマンドを受信したことに応答し、第１の物理マシンに応答情報を送信する。
本実施例において、仮想マシンは第１の物理マシンにより送信された問い合わせコマンドを受信した後に、仮想マシンに実行されているサービスプロセスによって第１の物理マシンに応答情報を送信する。
【００２４】
ステップ２０３において、第１の物理マシンは、応答情報が第２の所定時間にわたって中断することに応答して、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信する。
【００２５】
本実施例において、第１の物理マシンに第２の所定時間が予め設定されおり、第２の所定時間は正常に作動する時に許可される応答情報の応答間隔時間であり、応答情報が第２の所定時間にわたって中断する場合に、仮想マシンが故障したと判断する。
【００２６】
故障した仮想マシンが予め設定されたリセット条件を満たす場合に、即ち、故障した仮想マシンが仮想マシンクラスタの作動効率に影響を与えるが、修復を試みる条件を満たす場合に、故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信することができる。例えば、１つの代替の実施形態において、故障した仮想マシンの割合がプリセットされた割合より小さい場合に、仮想マシンリセットコマンドを第２の物理マシンに送信することができ、別の代替の実施形態において、故障した仮想マシンの、前回の仮想マシンリセット又は仮想マシン再構築からの時間が第３の所定時間を超える場合に、仮想マシンリセットコマンドを第２の物理マシンに送信する。故障した仮想マシンの割合とは、故障した仮想マシンが仮想マシンクラスタにおけるすべての仮想マシンを占める割合を指す。
【００２７】
ステップ２０４において、第２の物理マシンは仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする。
第１の物理マシンが仮想マシンリセットコマンドを第２の物理マシンに送信した後に、第２の物理マシンが受信した仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする。
【００２８】
いくつかの代替の実施形態において、第２の物理マシンは故障した仮想マシンをリセットした後に、さらに当該仮想マシンのサービスプロセスをリセットすることができる。例えば、第２の物理マシンは故障した仮想マシンをリセットする時に、リセット応答信号を第１の物理マシンに送信する。第１の物理マシンはリセット応答信号を受信したことに応答し、予め記録された仮想マシンのメタ情報から故障した仮想マシンのアドレスを取得し、当該アドレスに基づいて、リセットされた仮想マシンと接続し、第１のサービスプロセスリセット信号をリセットされた仮想マシンに送信する。リセットされた仮想マシンは第１のサービスプロセスリセット信号に基づいて、リセットされた仮想マシンのサービスプロセスを起動する。第１のサービスプロセスはリセットされた仮想マシンに実行されているサービスプロセスである。
【００２９】
本実施例の１つの具体的な応用場面において、当該仮想マシンクラスタの監視方法は、仮想マシンクラスタの外の第１の物理マシンに監視プロセスを配置するとともに、仮想マシン内にエージェントプロセスを直接に配置するステップを含んでもよい。監視プロセスと仮想マシン内のエージェントプロセスとはハートビートメッセージを定期的に送信することによって通信する。ハートビートが中断する場合に、監視プロセスはエージェントプロセスに位置する仮想マシンが不健康な状態にあると認識する。仮想マシンが不健康な状態にある時間は指定された時間閾値を超える場合に、仮想マシンが故障したと判断する。仮想マシンが故障状態にある場合に、仮想マシンの回復規則は、まずクラスタ全体の仮想マシンの故障状態を検出し、クラスタにおける大量の仮想マシンが故障する場合に、仮想ネットワークが故障したと認識し、この時に回復すると多くの誤動作を引き起こすことである。したがって、この状態で仮想マシンを回復せず、ネットワーク故障の修復を待ってもよい。また、頻繁な回復によるシステムへの過大な圧力を防止するために、回復しようとする仮想マシンが一定の時間内に回復されたことがある場合に回復せず、それにより仮想マシンを回復するトラフィックを制御し、システム圧力を軽減させる。
【００３０】
本発明の上記実施例に係る仮想マシンクラスタの監視方法は、物理マシンにおける各仮想マシンを別々に監視し、仮想マシンレベルの仮クラッシュと故障を発見することができ、同時に仮想マシンクラスタの状況を判断し、ネットワーク故障による誤動作を防止し、仮想マシンの回復頻度を制御し、システムへの圧力を防止する。
【００３１】
さらに、本発明の実施例に係る図２の仮想マシンクラスタの監視方法に基づく模式的フローチャート３００を示す図３を参照する。
当該仮想マシンクラスタの監視方法３００は、図２の仮想マシンクラスタの監視方法を基とし、さらに以下のステップを含んでもよい。
【００３２】
ステップ３０１において、第１の物理マシンは、仮想マシンリセットコマンドを送信した後の所定時間内にリセット応答信号を受信していないことに応答し、故障した仮想マシンのリセットが失敗したと判断し、リセット失敗の回数がプリセットされた回数に達することに応答し、仮想マシン再構築コマンドを第３の物理マシンに送信する。
【００３３】
本実施例において、第３の物理マシンは仮想マシンクラスタのホスト物理マシンクラスタにおける第２の物理マシン以外の物理マシンである。
ステップ３０２において、第３の物理マシンは仮想マシン再構築コマンドに基づいて、故障した仮想マシンを再構築する。
【００３４】
図３から分かるように、図２に対応する実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー３００は、第１の物理マシンが仮想マシン再構築コマンドを送信すること及び第３の物理マシンが仮想マシン再構築コマンドに基づいて故障した仮想マシンを再構築することを強調する。それにより、本実施例に記述された解決手段は故障した仮想マシンを再構築することを導入することができ、第１の物理マシンが仮想マシンリセットコマンドを送信した後の所定時間内にリセット応答信号を受信していない場合に、仮想マシン再構築コマンドを第３の物理マシンに送信し、故障した仮想マシンを再構築することができる。
【００３５】
さらに本発明の実施例に係る図３の仮想マシンクラスタの監視方法に基づく模式的フローチャート４００を示す図４を参照する。
当該仮想マシンクラスタの監視方法４００は、図３の仮想マシンクラスタの監視方法を基とし、以下のステップを含んでもよい。
【００３６】
ステップ４０１において、第３の物理マシンは再構築応答信号を第１の物理マシンに送信する。
本実施例において、第３の物理マシンは受信した仮想マシン再構築コマンドに基づいて仮想マシンを再構築した後に、再構築応答信号を第１の物理マシンに送信して、仮想マシンの再構築動作が完了することを第１の物理マシンに通知する。
【００３７】
ステップ４０２において、第１の物理マシンは再構築応答信号を受信したことに応答し、仮想マシンのメタ情報から故障した仮想マシンのメタ情報を取得し、取得されたメタ情報に基づいて、ノード回復コマンドを再構築された仮想マシンに送信する。
【００３８】
本実施例において、第１の物理マシンは受信された再構築応答信号に基づいて第３の物理マシンが仮想マシンの再構築動作を完了すると判断した後に、故障した仮想マシンのアドレスに基づいて、第１の物理マシンに予め記録された仮想マシンのメタ情報から、故障した仮想マシンのメタ情報を問い合わせて、且つ故障した仮想マシンのメタ情報に指示される仮想マシンノードのタイプに基づいて、ノード回復コマンドを生成し、故障した仮想マシンのアドレスに応じて、ノード回復コマンドを再構築された仮想マシンに送信する。ここで、再構築された仮想マシンのアドレスと故障した仮想マシンのアドレスとが同じであり、ノード回復コマンドは仮想マシンノードのタイプを含み、且つノード回復コマンドが仮想マシンノードのタイプに適する。
【００３９】
ステップ４０３において、再構築された仮想マシンは、ノード回復コマンドに基づいて再構築された仮想マシンが管理ノードであると判断した場合に、ノード回復コマンドに基づいて、予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、増分データに基づいて、再構築された管理ノードのメタデータを回復し、仮想マシンクラスタにおける計算ノードの登録を受ける。
【００４０】
本実施例において、上記ノード回復コマンドにおける仮想マシンノードのタイプが管理ノードである場合に、再構築された仮想マシンは、ノード回復コマンドに基づいて、まず予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、次に、増分データに基づいて、再構築された管理ノードのメタデータを回復し、その後、仮想マシンクラスタにおける計算ノードの登録を受ける。
【００４１】
１つの代替の実施形態において、第１の物理マシンが再構築された仮想マシンを監視しやすくするために、上記仮想マシンクラスタの監視方法は、再構築された管理ノードが、所定時間内に登録した仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を第１の物理マシンに送信し、所定時間内に登録した仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を第１の物理マシンに送信するステップと、第１の物理マシンが、再構築が成功したことを指示する信号に基づいて、再構築された管理ノードに受信されたユーザージョブを投入し、再構築が失敗したことを指示する警告信号に基づいて、警告報知を表示するステップと、をさらに含んでもよい。
【００４２】
本実施例の１つの具体的な応用場面において、本発明の実施例に係る仮想マシンが管理ノードであることを示す回復フローチャートである図５ａに示すようになる。
図５ａにおいて、管理ノードの回復フローは以下のステップを含む。
【００４３】
ステップ５０１において、故障した仮想マシンが管理ノードとして判断された。
ステップ５０２において、管理ノードは受信された仮想マシンリセットコマンドに基づいて、管理ノードに位置する仮想マシンをリセットし、リセットが成功した場合に、引き続き仮想ノードにおける業務サービスプロセスをリセットする。
【００４４】
ステップ５０３において、管理ノードのリセットが失敗した場合に、試み続け、数回試みても失敗した場合に、仮想マシンに位置するホスト物理マシンが故障すると認め、物理マシンが故障する場合に、警告して第１の物理マシンに報知し、その後、別のホストマシンは受信された第１の物理マシンの再構築コマンドに基づいて、当該ホストマシンで無効な仮想ノードの再構築を試みる。
【００４５】
ステップ５０４において、管理ノードの構成が成功した後に、リモートメモリから増分バックアップされたメタ情報を回復する。
ステップ５０５において、管理ノードは増分バックアップされたメタ情報によって管理ノードにおけるデータを回復する。
【００４６】
ステップ５０６において、管理ノードはサービスプロセスを起動する。
ステップ５０７において、管理ノードは計算ノードの登録を待つ。
ステップ５０８において、管理ノードは登録された計算ノードを計算クラスタにもう一度加入する。
【００４７】
図４に戻り、ステップ４０４において、再構築された仮想マシンは、ノード回復コマンドに基づいて再構築された仮想マシンが計算ノードであると判断した場合に、ノード回復コマンドに基づいて、仮想マシンクラスタにおける管理ノードに登録する。
【００４８】
本実施例において、上記ノード回復コマンドで回復された仮想マシンノードのタイプは計算ノードである場合に、ノード回復コマンドに基づいて、仮想マシンクラスタにおける管理ノードに登録する。
【００４９】
本実施例の１つの具体的な応用場面において、本発明の実施例に係る仮想マシンが計算ノードであることを示す回復フローチャートである図５ｂに示すようになる。
図５ｂにおいて、計算ノードの回復フローは以下のステップを含む。
【００５０】
ステップ５５１において、故障した仮想マシンが計算ノードとして判断された。
ステップ５５２において、計算ノードに位置する物理マシンは受信された仮想マシンリセットコマンドに基づいて、計算ノードに位置する仮想マシンをリセットし、成功した場合に、計算ノードサービスプロセスを回復する。
【００５１】
ステップ５５３において、計算ノードのリセットが失敗すれば、数回試みても失敗した場合に、警告して第１の物理マシンに報知し、別の物理マシンは第１の物理マシンの仮想マシン再構築コマンドを受信した後に、その上で仮想計算ノードを再構築する。
【００５２】
ステップ５５４において、計算ノードは計算ノードサービスプロセスを起動する。
ステップ５５５において、計算ノードクラスタにおける管理ノードに登録する。
ステップ５５６において、計算ノードが仮想計算クラスタにもう一度加入される。
【００５３】
図４に戻り、図４から分かるように、図３に対応する実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー４００は、再構築された仮想マシンがノード回復コマンドに基づいてノードを回復するステップを強調する。それにより、本実施例に記述された解決手段においては仮想マシンノードの回復を導入することができ、管理ノード及び計算ノードはノード回復コマンドに基づいてそれぞれ異なる回復ステップを用いて、管理ノード又は計算ノードを回復する。
【００５４】
さらに、本発明の実施例に係る図４の仮想マシンクラスタの監視方法に基づく模式的フローチャート６００を示す図６を参照する。当該仮想マシンクラスタの監視方法６００は、図４の仮想マシンクラスタの監視方法を基とし、以下のステップをさらに含む。
【００５５】
ステップ６０１において、仮想マシンのメタ情報に基づいて、故障した仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断する。
本実施例において、第１の物理マシンに予め記録された仮想マシンのメタ情報に基づいて、故障した仮想マシンノードのノードタイプが管理ノードであるか計算ノードであるかを判断することができ、故障した仮想マシンノードのノードタイプが計算ノードである場合に、故障した計算ノードの割合が閾値を超えるか否かを判断することもできる。
【００５６】
ステップ６０２において、故障した仮想マシンが管理ノードを含む又は故障した計算ノードの割合が閾値を超えると判断したことに応答し、仮想マシンクラスタが故障したと判断する。
【００５７】
本実施例において、ステップ６０１で故障した仮想マシンが管理ノードを含むと判断した場合に、管理ノードが故障すると計算ノードにおけるサービスプロセスを監視できなくなってしまうため、仮想マシンクラスタが故障したと判断することができ、又は、ステップ６０１で故障した計算ノードの割合が閾値を超えると判断した場合、仮想マシンクラスタに大量の仮想マシンが故障し、計算ノードのデータ処理能力に影響を与えるため、仮想マシンクラスタが故障したと判断することもできる。
【００５８】
ステップ６０３において、仮想マシンクラスタが故障したことに応答し、引き続きユーザージョブを受信し、仮想マシンクラスタにおける管理ノードへの、ユーザージョブの投入を停止する。
【００５９】
本実施例において、仮想マシンクラスタが故障した場合に、第１の物理マシンが仮想マシンクラスタと別に設置されるため、第１の物理マシンがユーザージョブを受信し続けるが、仮想マシンクラスタにおける管理ノードへの、ユーザージョブの投入を停止する。
【００６０】
ステップ６０４において、応答情報がリセット又は再構築された仮想マシンからのものであることに応答し、リセット又は再構築された仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断する。
【００６１】
本実施例において、応答情報がリセット又は再構築された仮想マシンからのものである場合に、リセット又は再構築された仮想マシンが管理ノードを含むか否かを判断し、且つ故障した計算ノードの割合が閾値を超えるか否かを判断する。ここで、応答情報の元は、少なくとも応答情報を送信する仮想マシンのアドレスに基づいて決定される。
【００６２】
ステップ６０５において、リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、仮想マシンクラスタが故障から回復したと判断する。
【００６３】
本実施例において、リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が閾値を超えていないと判断した場合に、仮想マシンクラスタが故障から回復した、即ち、仮想マシンクラスタがユーザージョブを受信して処理する能力を有する。
【００６４】
ステップ６０６において、仮想マシンクラスタが故障から回復したことに応答し、引き続き仮想マシンクラスタにおける管理ノードにジョブを投入し、管理ノードから問い合わせられたジョブ状態情報に基づいて、仮想マシンクラスタが故障する前に実行されたジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入する。
【００６５】
本実施例において、仮想マシンクラスタが故障から回復した場合に、第１の物理マシンが受信されたユーザージョブを仮想マシンクラスタにおける管理ノードに投入するとともに、管理ノードから問い合わせられた計算ノードのジョブ状態情報に基づいて、仮想マシンクラスタが故障する前に実行したジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入する。ここで、ジョブ状態情報は管理ノードが計算ノードのジョブログに基づいて取得するものである。
【００６６】
ステップ６０７において、故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、引き続きユーザージョブを受信し、ユーザージョブを仮想マシンクラスタにおける管理ノードに投入する。
【００６７】
本実施例において、第１の物理マシンは故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、仮想マシンクラスタの実行状態が正常であると判断し、引き続きユーザージョブを受信し、ユーザージョブを仮想マシンクラスタにおける管理ノードに投入する。
【００６８】
いくつかの代替の実施形態において、上記仮想マシンクラスタの監視方法は、仮想マシンクラスタにおける管理ノードが増分操作ログをリモートメモリに定期的にバックアップするステップと、リモートメモリがバックアップされた操作ログを定期的にマージし、マージ時点前の操作ログを削除するステップとをさらに含んでもよい。
【００６９】
本実施例の１つの具体的な応用場面において、ユーザーが本発明の実施例に係る仮想マシンクラスタの監視方法を応用してジョブを投入することを示すフローチャートである図７に示すようになる。
【００７０】
図７において、仮想マシンクラスタの外の第１の物理マシン７２０にジョブ管理プロセスを配置して、仮想マシンクラスタにおけるユーザージョブを管理及びスケジューリングする。ユーザー７１０はまずジョブを第１の物理マシン７２０におけるジョブ管理プロセスに投入し、ジョブ管理プロセスがさらに具体的なジョブを仮想計算クラスタにおける管理ノード７３０に投入する。仮想ノードが故障した場合、故障ノードが計算ノード７４０であり且つ故障した計算ノード７４０の割合が一定の閾値より低い場合に、引き続きジョブを受信して仮想計算クラスタに投入する。故障ノードが管理ノード７３０であり又は故障した計算ノード７４０の数が一定の閾値より大きい場合に、仮想計算クラスタが故障したと認識し、引き続きジョブ管理プロセスがタスクジョブを受信するが、計算クラスタへの、ジョブの投入を停止する。同時に一定の時間毎に仮想クラスタの状態を検査する。管理ノード７３０が正常に回復し且つ正常な計算ノード７４０の数が一定の閾値より大きい場合に、引き続き仮想クラスタにジョブを投入する。ジョブ管理プロセスが投入されたジョブ及び実行されているジョブを記録し、仮想クラスタが故障から回復した場合に、ジョブ管理プロセスがその前に仮想クラスタに実行されたジョブを検出する。失敗した場合に、当該ジョブ再投入する。成功した場合に、次のユーザージョブを投入する。
【００７１】
図６に戻り、図６から分かるように、図４に対応する実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー６００は、ジョブ管理プロセスを仮想マシンクラスタと分離させて、ユーザーにより投入されたジョブを管理するステップを強調する。それにより、本実施例に記述された解決手段はジョブ管理プロセスを導入することができ、それにより仮想マシンが故障する時にユーザージョブを受信し続けるとともに、仮想ノード又はクラスタの故障の原因で実行が失敗したジョブを再投入することができ、ユーザージョブに対する管理能力を向上させる。
【００７２】
さらに、本発明の実施例に係る図６の仮想マシンクラスタの監視方法に基づく模式的フローチャート８００を示す図８を参照する。当該仮想マシンクラスタの監視方法８００は、図６の仮想マシンクラスタの監視方法を基とし、以下のステップを含んでもよい。
【００７３】
ステップ８０１において、仮想マシンクラスタにおける計算ノードは第２の所定時間毎に仮想マシンクラスタにおける管理ノードに第１のハートビート情報を送信して計算ノードに実行されている第２のサービスプロセスの状態情報を報告する。
【００７４】
本実施例において、第２の所定時間は、計算ノードが管理ノードに第１のハートビート情報を送信する、予め設定された間隔時間であり、第２のサービスプロセスは計算ノードに実行されているサービスプロセスである。
【００７５】
ステップ８０２において、仮想マシンクラスタにおける管理ノードは、第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、第２のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、第２のサービスプロセスが異常であると判断し、第２のサービスプロセスリセット信号を異常な第２のサービスプロセスに位置する計算ノードに送信する。
【００７６】
本実施例において、ステップ８０１において計算ノードが管理ノードに第１のハートビート情報を送信して計算ノードに実行されている第２のサービスプロセスの状態情報を報告した後に、管理ノードは第２のサービスプロセスの状態情報が正常であるか否かを判断し、異常である場合に、異常回数を記録し、異常回数が一定の回数に達する場合に、第２のサービスプロセスが異常であると判断し、関連する業務プロセスをリセットすることをエージェントプロセスに通知して、サービスを回復する。
【００７７】
ステップ８０３において、異常な第２のサービスプロセスに位置する計算ノードは第２のサービスプロセスリセット信号に基づいて、異常な第２のサービスプロセスをリセットする。
【００７８】
いくつかの代替の実施形態において、仮想マシンクラスタにおける計算ノードは仮想マシンクラスタにおける管理ノードに第２のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告し、仮想マシンクラスタにおける管理ノードは、仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示し、それにより維持管理スタッフは迅速に介入して関連する問題を解決し、計算ノードを修復することができる。
【００７９】
図８から分かるように、図６に示される実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー８００は、第２のサービスプロセスを監視及び管理するステップを強調する。それにより、本実施例に記述された解決手段は異常な第２のサービスプロセスのリセットを導入することができ、第２のサービスプロセスが異常である場合に、異常な第２のサービスプロセスをリセットして、仮想マシンのサービスを回復する。
【００８０】
さらに、上記各図に示される方法を実現する形態として、当該システム実施例は図２に示される方法実施例に対応し、本発明の実施例に係る仮想マシンクラスタの監視システムの例示的なアーキテクチャ図を提供する図９を参照する。
【００８１】
図９に示すように、仮想マシンクラスタの監視システム９００は、第１の物理マシン９１０、仮想マシンクラスタ９２０及び仮想マシンクラスタを実行する物理マシンクラスタ（すべて図示されるわけではない）を備える。
【００８２】
第１の物理マシン９１０は、第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信し、応答情報が第２の所定時間にわたって中断することに応答し、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信することに用いられる。
【００８３】
仮想マシンクラスタ９２０は仮想マシン９２１を備えて、仮想マシン９２１が、問い合わせコマンドを受信したことに応答し、第１の物理マシンに応答情報を送信するように配置されている。
【００８４】
物理マシンクラスタは、故障した仮想マシン９２２を実行する第２の物理マシン９２３を備える。第２の物理マシン９２３は、仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットように配置されている。
【００８５】
いくつかの代替の実施形態において、第２の物理マシンはさらに、故障した仮想マシンをリセットする時に、リセット応答信号を第１の物理マシンに送信し、リセットされた仮想マシンが第１のサービスプロセスリセット信号に基づいて、リセットされた仮想マシンのサービスプロセスを起動することに用いられる。第１の物理マシンはさらに、リセット応答信号を受信したことに応答し、予め記録された仮想マシンのメタ情報から故障した仮想マシンのアドレスを取得し、当該アドレスに基づいて、リセットされた仮想マシンと接続し、第１のサービスプロセスリセット信号をリセットされた仮想マシンに送信することに用いられる。
【００８６】
図３に示される方法実施例に対応し、いくつかの代替の実施形態において、システムは、仮想マシン再構築コマンドに基づいて、故障した仮想マシンを再構築するための第３の物理マシンをさらに備える。第１の物理マシンはさらに、仮想マシンリセットコマンドを送信した後の所定時間内にリセット応答信号を受信していないことに応答し、故障した仮想マシンのリセットが失敗したと判断し、リセットが失敗した回数がプリセットされた回数に達することに応答し、仮想マシンクラスタのホスト物理マシンクラスタにおける第２の物理マシン以外の物理マシンである第３の物理マシンに仮想マシン再構築コマンドを送信することに用いられる。
【００８７】
図４に示される方法実施例に対応し、いくつかの代替の実施形態において、第３の物理マシンはさらに、再構築応答信号を第１の物理マシンに送信し、再構築された仮想マシンが、ノード回復コマンドに基づいて再構築された仮想マシンが管理ノードであると判断した場合に、ノード回復コマンドに基づいて、予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、増分データに基づいて、再構築された管理ノードのメタデータを回復し、仮想マシンクラスタにおける計算ノードの登録を受け、ノード回復コマンドに基づいて再構築された仮想マシンが計算ノードであると判断した場合に、ノード回復コマンドに基づいて、仮想マシンクラスタにおける管理ノードに登録することに用いられる。第１の物理マシンはさらに、再構築応答信号を受信したことに応答し、仮想マシンのメタ情報から故障した仮想マシンのメタ情報を取得し、取得したメタ情報に基づいて、ノード回復コマンドを再構築された仮想マシンに送信することに用いられる。
【００８８】
いくつかの代替の実施形態において、再構築された管理ノードはさらに、所定時間内に登録された仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を第１の物理マシンに送信し、所定時間内に登録された仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を第１の物理マシンに送信することに用いられる。第１の物理マシンはさらに、再構築が成功したことを指示する信号に基づいて、再構築された管理ノードに受信したユーザージョブを投入し、再構築が失敗したことを指示する警告信号に基づいて、警告報知を表示することに用いられる。
【００８９】
図６に示される方法実施例に対応し、いくつかの代替の実施形態において、第１の物理マシンはさらに、仮想マシンのメタ情報に基づいて、故障した仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断することと、故障した仮想マシンが管理ノードを含む又は故障した計算ノードの割合が閾値を超えると判断したことに応答し、仮想マシンクラスタが故障したと判断することと、仮想マシンクラスタが故障したことに応答し、引き続きユーザージョブを受信し、仮想マシンクラスタにおける管理ノードへの、ユーザージョブの投入を停止することと、応答情報がリセット又は再構築された仮想マシンからのものであることに応答し、リセット又は再構築された仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断することと、リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、仮想マシンクラスタが故障から回復したと判断することと、仮想マシンクラスタが故障から回復したことに応答し、引き続き仮想マシンクラスタにおける管理ノードにジョブを投入し、及び管理ノードから問い合わせられたジョブ状態情報に基づいて、仮想マシンクラスタが故障する前に実行したジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入することと、故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、引き続きユーザージョブを受信し、ユーザージョブを仮想マシンクラスタにおける管理ノードに投入することと、に用いられ、ここで、ジョブ状態情報が、管理ノードが計算ノードのジョブログに基づいて取得するものである。
【００９０】
いくつかの代替の実施形態において、システムは、バックアップされた操作ログを定期的にマージし、マージ時点前の操作ログを削除するためのリモートメモリをさらに備える。仮想マシンクラスタにおける管理ノードがさらに、増分操作ログをリモートメモリに定期的にバックアップすることに用いられる。
【００９１】
いくつかの代替の実施形態において、仮想マシンクラスタにおける計算ノードはさらに、第２の所定時間毎に仮想マシンクラスタにおける管理ノードに第１のハートビート情報を送信して計算ノードに実行されている第２のサービスプロセスの状態情報を報告し、及び異常な第２のサービスプロセスに位置する計算ノードが第２のサービスプロセスリセット信号に基づいて、異常な第２のサービスプロセスをリセットすることに用いられる。仮想マシンクラスタにおける管理ノードはさらに、第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、第２のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、第２のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、第２のサービスプロセスが異常であると判断し、第２のサービスプロセスリセット信号を異常な第２のサービスプロセスに位置する計算ノードに送信することに用いられる。
【００９２】
いくつかの代替の実施形態において、仮想マシンクラスタにおける計算ノードはさらに、仮想マシンクラスタにおける管理ノードに第２のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告することに用いられる。仮想マシンクラスタにおける管理ノードはさらに、仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示することに用いられる。
【００９３】
本発明の上記実施例による仮想マシンクラスタの監視システムは、仮想マシンに対する監視を実現でき、仮想マシンが故障する時に仮想マシン及び仮想マシンに実行されているサービスを自動的に回復でき、仮想マシンクラスタの可用性を向上させ、サービスの中断時間を減少させる。
【００９４】
上記各ノードは、例えば、プロセッサ、メモリなどのいくつかの他の公知の構造をさらに備えてもよく、本発明の実施例を曖昧にすることを回避するために、これらの公知の構造が図９に示されていないことを、当業者は理解することができる。
【００９５】
以下、本発明の実施例を実現するための端末装置またはサーバーに適用されるコンピュータシステム１０００を示す構造模式図である図１０を参照する。
図１０に示すように、コンピュータシステム１０００は、読み出し専用メモリ（ＲＯＭ）１００２に記憶されているプログラムまたは記憶部１００８からランダムアクセスメモリ（ＲＡＭ）１００３にロードされたプログラムに基づいて様々な適当な動作および処理を実行することができる中央処理装置（ＣＰＵ）１００１を備える。ＲＡＭ１００３には、システム１０００の操作に必要な様々なプログラムおよびデータがさらに記憶されている。ＣＰＵ１００１、ＲＯＭ１００２およびＲＡＭ１００３は、バス１００４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース１００５もバス１００４に接続されている。
【００９６】
キーボード、マウスなどを含む入力部１００６、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、およびスピーカなどを含む出力部１００７、ハードディスクなどを含む記憶部１００８、およびＬＡＮカード、モデムなどを含むネットワークインターフェースカードの通信部１００９は、Ｉ／Ｏインターフェース１００５に接続されている。通信部１００９は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ１０１０は、必要に応じてＩ／Ｏインターフェース１００５に接続される。リムーバブルメディア１０１１は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ１０１０に取り付けられ、したがって、ドライバ１０１０から読み出されたコンピュータプログラムが必要に応じて記憶部１００８にインストールされる。
【００９７】
特に、本発明の実施例によれば、上記のフローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、コンピュータプログラム製品を含み、当該コンピュータプログラム製品は、機械可読媒体に有形に具現化されるコンピュータプログラムを含み、前記コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信部１００９を介してネットワークからダウンロードされてインストールされてもよく、および／またはリムーバブルメディア１０１１からインストールされてもよい。
【００９８】
図面におけるフローチャートおよびブロック図は、本発明の各実施例に係るシステム、方法およびコンピュータプログラム製品により実現可能なアーキテクチャ、機能および操作を示す。ここで、フローチャートまたはブロック図における各枠は、１つのモジュール、プログラムセグメント、またはコードの一部を代表してもよく、前記モジュール、プログラムセグメント、またはコードの一部は、規定された論理機能を実現するための１つ以上の実行可能な命令を含む。なお、いくつかの代替実施態様として、枠に示された機能は、図面に示された順番と異なる順番で実行されてもよい。例えば、連続して示された２つの枠は、関連する機能に応じて、実際にほぼ並行に実行されてもよく、逆の順番で実行されてもよい。なお、ブロック図および／またはフローチャートにおける各枠と、ブロック図および／またはフローチャートにおける枠の組合せは、規定された機能または操作を実行する、ハードウェアに基づく専用システムで実現されてもよく、あるいは、専用ハードウェアとコンピュータの命令との組合せで実行されてもよい。
【００９９】
一方、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、当該不揮発性コンピュータ記憶媒体は、上記した実施例の前記装置に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立に存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。前記不揮発性コンピュータ記憶媒体は、１つ以上のプログラムが記憶され、前記１つ以上のプログラムが１つの機器により実行された場合、上記したシステムに以下の通りにさせ、すなわち、第１の物理マシンが、第１の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信し、仮想マシンが、問い合わせコマンドを受信したことに応答し、第１の物理マシンに応答情報を送信し、第１の物理マシンが、応答情報が第２の所定時間にわたって中断することに応答して、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第２の物理マシンに仮想マシンリセットコマンドを送信し、第２の物理マシンが、仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする。
【０１００】
以上の記載は、本発明の好ましい実施例、および使用された技術的原理の説明に過ぎない。本発明に係る特許請求の範囲が、上記した技術的特徴の特定な組合せからなる技術案に限定されることではなく、本発明の趣旨を逸脱しない範囲で、上記の技術的特徴または同等の特徴の任意の組合せからなる他の技術案も含むべきであることを、当業者は理解すべきである。例えば、上記の特徴と、本発明に開示された類似の機能を持っている技術的特徴（これらに限定されていない）とを互いに置き換えてなる技術案が挙げられる。
【図１】
0006285511.tif 000002
【図２】
0006285511.tif 000003
【図３】
0006285511.tif 000004
【図４】
0006285511.tif 000005
【図５ａ】
0006285511.tif 000006
【図５ｂ】
0006285511.tif 000007
【図６】
0006285511.tif 000008
【図７】
0006285511.tif 000009
【図８】
0006285511.tif 000010
【図９】
0006285511.tif 000011
【図１０】
0006285511.tif 000012