(58)【調査した分野】(Int.Cl.,DB名)
前記第1の物理マシンが、前記仮想マシンリセットコマンドを送信した後の所定時間内に前記リセット応答信号を受信していないことに応答し、前記故障した仮想マシンのリセットが失敗したと判断し、リセット失敗の回数がプリセットされた回数に達することに応答し、前記仮想マシンクラスタのホスト物理マシンクラスタにおける、前記第2の物理マシン以外の物理マシンである第3の物理マシンに仮想マシン再構築コマンドを送信するステップと、
前記第3の物理マシンが、前記仮想マシン再構築コマンドに基づいて、前記故障した仮想マシンを再構築するステップと、
をさらに含むことを特徴とする請求項2に記載の方法。
前記再構築された管理ノードが、所定時間内に登録された前記仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を前記第1の物理マシンに送信しており、所定時間内に登録された前記仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を前記第1の物理マシンに送信するステップと、
前記第1の物理マシンが、前記の再構築が成功したことを指示する信号に基づいて、前記再構築された管理ノードに受信されたユーザージョブを投入しており、前記の再構築が失敗したことを指示する警告信号に基づいて、警告報知を表示するステップと、
をさらに含むことを特徴とする請求項4に記載の方法。
前記仮想マシンクラスタにおける計算ノードが、第2の所定時間毎に前記仮想マシンクラスタにおける管理ノードに第1のハートビート情報を送信して計算ノードに実行されている第2のサービスプロセスの状態情報を報告するステップと、
前記仮想マシンクラスタにおける管理ノードが、前記第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、前記第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、前記第2のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、前記第2のサービスプロセスが異常であると判断し、第2のサービスプロセスリセット信号を異常な第2のサービスプロセスに位置する計算ノードに送信するステップと、
前記異常な第2のサービスプロセスに位置する計算ノードが、前記第2のサービスプロセスリセット信号に基づいて、異常な第2のサービスプロセスをリセットするステップと、
をさらに含むことを特徴とする請求項4〜7のいずれか一項に記載の方法。
前記仮想マシンクラスタにおける計算ノードが、前記仮想マシンクラスタにおける管理ノードに第2のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告するステップと、
前記仮想マシンクラスタにおける管理ノードが、前記仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示するステップと、
をさらに含むことを特徴とする請求項8に記載の方法。
前記仮想マシンの状態パラメータ情報が、仮想マシンのディスク使用率、仮想マシンネットワークI/O負荷及び仮想マシンのCPU使用率の一項又は複数項を含むことを特徴とする請求項9に記載の方法。
前記第2の物理マシンはさらに、前記故障した仮想マシンをリセットする時に、リセット応答信号を前記第1の物理マシンに送信し、前記リセットされた仮想マシンが第1のサービスプロセスリセット信号に基づいて、前記リセットされた仮想マシンのサービスプロセスを起動することに用いられ、
前記第1の物理マシンはさらに、前記リセット応答信号を受信したことに応答し、予め記録された仮想マシンのメタ情報から故障した仮想マシンのアドレスを取得し、前記アド
レスに基づいて、前記リセットされた仮想マシンと接続し、前記第1のサービスプロセスリセット信号を前記リセットされた仮想マシンに送信することに用いられる、
ことを特徴とする請求項11に記載のシステム。
前記第3の物理マシンはさらに、再構築応答信号を前記第1の物理マシンに送信し、前記再構築された仮想マシンが、ノード回復コマンドに基づいて前記再構築された仮想マシンが管理ノードであると判断した場合に、前記ノード回復コマンドに基づいて、予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、前記増分データに基づいて、前記再構築された管理ノードのメタデータを回復し、前記仮想マシンクラスタにおける計算ノードの登録を受けており、ノード回復コマンドに基づいて前記再構築された仮想マシンが計算ノードであると判断した場合に、前記ノード回復コマンドに基づいて、前記仮想マシンクラスタにおける管理ノードに登録することに用いられ、
前記第1の物理マシンはさらに、前記再構築応答信号を受信したことに応答し、前記仮想マシンのメタ情報から故障した仮想マシンのメタ情報を取得し、取得されたメタ情報に基づいて、前記ノード回復コマンドを前記再構築された仮想マシンに送信することに用いられる、
ことを特徴とする請求項13に記載のシステム。
前記再構築された管理ノードはさらに、所定時間内に登録された、前記仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を前記第1の物理マシンに送信し、所定時間内に登録された、前記仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を前記第1の物理マシンに送信することに用いられ、
前記第1の物理マシンはさらに、再構築が成功したことを指示する前記信号に基づいて、前記再構築された管理ノードに受信されたユーザージョブを投入しており、再構築が失敗したことを指示する前記警告信号に基づいて、警告報知を表示することに用いられる、
ことを特徴とする請求項14に記載のシステム。
前記仮想マシンクラスタにおける計算ノードはさらに、第2の所定時間毎に前記仮想マシンクラスタにおける管理ノードに第1のハートビート情報を送信して計算ノードに実行されている第2のサービスプロセスの状態情報を報告すること、及び異常な第2のサービスプロセスに位置する計算ノードが第2のサービスプロセスリセット信号に基づいて、前記異常な第2のサービスプロセスをリセットすることに用いられ、
前記仮想マシンクラスタにおける管理ノードはさらに、前記第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、前記第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、前記第2のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、前記第2のサービスプロセスが異常であると判断し、第2のサービスプロセスリセット信号を前記異常な第2のサービスプロセスに位置する計算ノードに送信することに用いられる、
ことを特徴とする請求項14〜17のいずれか一項に記載のシステム。
前記仮想マシンクラスタにおける計算ノードはさらに、前記仮想マシンクラスタにおける管理ノードに第2のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告することに用いられ、
前記仮想マシンクラスタにおける管理ノードはさらに、前記仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示することに用いられる、
ことを特徴とする請求項18に記載のシステム。
【発明を実施するための形態】
【0010】
以下、図面および実施例を参照しながら、本発明をさらに詳しく説明する。ただし、ここで説明されている具体的な実施例は、係る発明を解釈するためのものに過ぎず、本発明の範囲を制限するものでないことが理解されるべきである。なお、説明の便宜上、図面に本発明と関連する部分のみが示されている。
【0011】
ただし、衝突がない限り、本願における実施例及び実施例における特徴は互いに組み合せてもよい。以下、図面を参照しながら実施例に基づいて本願を詳しく説明する。
図1は本発明の実施例に係る仮想マシンクラスタの監視方法を適用できる例示的なシステムアーキテクチャ100を示す。
【0012】
図1に示すように、システムアーキテクチャ100は、端末装置101と、仮想マシンクラスタが配置されたサーバークラスタ102と、仮想マシンが配置されていないサーバー104とを備えてもよい。ネットワーク103は端末装置101、サーバークラスタ102及びサーバー104の間に通信リンクの媒体を提供することに用いられる。ネットワーク103は様々な接続タイプ、例えば有線、無線通信リンクや光ケーブルなどを含んでもよい。
【0013】
ユーザー110は端末装置101を利用してネットワーク103を介してサーバー104とインタラクティブすることによりユーザージョブを投入することができ、サーバー104はネットワーク103を介してサーバークラスタ102とインタラクティブし、ユーザーにより投入されたジョブをサーバークラスタ102に実行されている仮想マシンクラスタに投入することができる。端末装置101には、様々なアクライアントプリケーション、例えば、ウェブブラウザアプリケーション、検索アプリケーション、インスタントメッセージツール、電子メールクライアント、ソーシャルプラットフォームソフトウェア、クラウドプラットフォームアプリケーションなどがインストールされてもよい。
【0014】
端末装置101はヒューマンコンピュータインタラクションアセンブリを有し且つジョブ投入をサポートする各種の電子装置であってもよく、モバイルインテリジェント端末、タブレットパソコン、ラップトップポータブルコンピュータ、デスクトップコンピュータ、マルチメディアプレーヤー及び電子書籍リーダー等を含むが、それらに限定されない。
【0015】
サーバークラスタ102はデータ分析処理を提供する複数のサーバーからなり、その上で大量の仮想マシンからなる仮想マシンクラスタを実行することができる。仮想マシンクラスタにおける仮想マシンは、管理ノードと計算ノードの2種類に分けられる。管理ノードはクラスタ全体の管理、リソーススケジューリング及びユーザーにより投入されるジョブの管理を担当し、計算ノードは主に具体的なサブタスクの実行を計算することを担当する。
【0016】
サーバー104はデータ分析処理を提供するサーバーであってもよく、複数のサーバーからなるサーバークラスタであってもよい。例えば、端末装置101により投入されたユーザージョブに対して分析処理を行うサーバーが挙げられる。サーバー104はサーバークラスタ102に実行されている仮想マシンクラスタにより提供された実行データに対して分析処理を行って、端末装置101により投入されたユーザージョブをサーバークラスタ102に実行されている仮想マシンクラスタにおける管理ノードに割り当て、さらに管理ノードは投入されたユーザージョブを仮想マシンクラスタにおける計算ノードに割り当て、その後、管理ノードは計算ノードによる、投入されたユーザージョブに対するデータ分析処理結果を取得し、当該処理結果をサーバー104に返し、さらにサーバー104は投入されたユーザージョブのデータ分析処理結果を端末装置101に返す。
【0017】
なお、本発明の実施例に係る仮想マシンクラスタの監視方法における操作ステップは、一般的にサーバークラスタ102と、サーバークラスタ102に実行されている仮想マシンクラスタと、サーバー104とにより実行され、サーバー104にユーザージョブを投入する操作ステップは、一般的に端末装置101により実行される。
【0018】
図1における端末装置、ネットワーク及びサーバーの数が例示的なものであることを理解すべきである。必要に応じて、端末装置、ネットワーク及びサーバーの数が任意である。
【0019】
引き続き、本発明の実施例に係る仮想マシンクラスタの監視方法を示す1つの模式的フローチャート200である
図2を参照する。当該仮想マシンクラスタの監視方法200は、以下のステップを含む。
【0020】
ステップ201において、第1の物理マシンは第1の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信する。
本実施例において、第1の物理マシンは仮想マシンが配置されていない物理マシンであり、例えば
図1におけるサーバー104を指す。仮想マシンクラスタは複数の仮想マシンを集めて同一のサービスを行い、クライアントにとって1つだけの仮想マシンのようである。1つのコンピュータに1つ以上の仮想マシンを配置することができ、複数のコンピュータに配置される仮想マシンが仮想マシンクラスタを形成し、仮想マシンクラスタが同時に並列計算を行うことができ、それにより高い計算速度を取得する。
【0021】
上記第1の所定時間は第1の物理マシンが仮想マシンに問い合わせコマンドを送信する間隔時間であり、物理マシンのパラメータ、ネットワークパラメータ、仮想マシンのパラメータ、仮想マシンシステムリソースの使用率及び仮想マシンシステム設定の柔軟性等を統合的に考慮して設定することができる。
【0022】
上記問い合わせコマンドは、仮想マシンの健康状態をポーリングするコマンドであってもよく、例えば、仮想マシンのディスク使用率、仮想マシンネットワークI/O負荷及び仮想マシンのCPU使用率等の一項又は複数項の仮想マシンの状態パラメータ情報を問い合わせるコマンドである。
【0023】
ステップ202において、仮想マシンは問い合わせコマンドを受信したことに応答し、第1の物理マシンに応答情報を送信する。
本実施例において、仮想マシンは第1の物理マシンにより送信された問い合わせコマンドを受信した後に、仮想マシンに実行されているサービスプロセスによって第1の物理マシンに応答情報を送信する。
【0024】
ステップ203において、第1の物理マシンは、応答情報が第2の所定時間にわたって中断することに応答して、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第2の物理マシンに仮想マシンリセットコマンドを送信する。
【0025】
本実施例において、第1の物理マシンに第2の所定時間が予め設定されおり、第2の所定時間は正常に作動する時に許可される応答情報の応答間隔時間であり、応答情報が第2の所定時間にわたって中断する場合に、仮想マシンが故障したと判断する。
【0026】
故障した仮想マシンが予め設定されたリセット条件を満たす場合に、即ち、故障した仮想マシンが仮想マシンクラスタの作動効率に影響を与えるが、修復を試みる条件を満たす場合に、故障した仮想マシンを実行する第2の物理マシンに仮想マシンリセットコマンドを送信することができる。例えば、1つの代替の実施形態において、故障した仮想マシンの割合がプリセットされた割合より小さい場合に、仮想マシンリセットコマンドを第2の物理マシンに送信することができ、別の代替の実施形態において、故障した仮想マシンの、前回の仮想マシンリセット又は仮想マシン再構築からの時間が第3の所定時間を超える場合に、仮想マシンリセットコマンドを第2の物理マシンに送信する。故障した仮想マシンの割合とは、故障した仮想マシンが仮想マシンクラスタにおけるすべての仮想マシンを占める割合を指す。
【0027】
ステップ204において、第2の物理マシンは仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする。
第1の物理マシンが仮想マシンリセットコマンドを第2の物理マシンに送信した後に、第2の物理マシンが受信した仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする。
【0028】
いくつかの代替の実施形態において、第2の物理マシンは故障した仮想マシンをリセットした後に、さらに当該仮想マシンのサービスプロセスをリセットすることができる。例えば、第2の物理マシンは故障した仮想マシンをリセットする時に、リセット応答信号を第1の物理マシンに送信する。第1の物理マシンはリセット応答信号を受信したことに応答し、予め記録された仮想マシンのメタ情報から故障した仮想マシンのアドレスを取得し、当該アドレスに基づいて、リセットされた仮想マシンと接続し、第1のサービスプロセスリセット信号をリセットされた仮想マシンに送信する。リセットされた仮想マシンは第1のサービスプロセスリセット信号に基づいて、リセットされた仮想マシンのサービスプロセスを起動する。第1のサービスプロセスはリセットされた仮想マシンに実行されているサービスプロセスである。
【0029】
本実施例の1つの具体的な応用場面において、当該仮想マシンクラスタの監視方法は、仮想マシンクラスタの外の第1の物理マシンに監視プロセスを配置するとともに、仮想マシン内にエージェントプロセスを直接に配置するステップを含んでもよい。監視プロセスと仮想マシン内のエージェントプロセスとはハートビートメッセージを定期的に送信することによって通信する。ハートビートが中断する場合に、監視プロセスはエージェントプロセスに位置する仮想マシンが不健康な状態にあると認識する。仮想マシンが不健康な状態にある時間は指定された時間閾値を超える場合に、仮想マシンが故障したと判断する。仮想マシンが故障状態にある場合に、仮想マシンの回復規則は、まずクラスタ全体の仮想マシンの故障状態を検出し、クラスタにおける大量の仮想マシンが故障する場合に、仮想ネットワークが故障したと認識し、この時に回復すると多くの誤動作を引き起こすことである。したがって、この状態で仮想マシンを回復せず、ネットワーク故障の修復を待ってもよい。また、頻繁な回復によるシステムへの過大な圧力を防止するために、回復しようとする仮想マシンが一定の時間内に回復されたことがある場合に回復せず、それにより仮想マシンを回復するトラフィックを制御し、システム圧力を軽減させる。
【0030】
本発明の上記実施例に係る仮想マシンクラスタの監視方法は、物理マシンにおける各仮想マシンを別々に監視し、仮想マシンレベルの仮クラッシュと故障を発見することができ、同時に仮想マシンクラスタの状況を判断し、ネットワーク故障による誤動作を防止し、仮想マシンの回復頻度を制御し、システムへの圧力を防止する。
【0031】
さらに、本発明の実施例に係る
図2の仮想マシンクラスタの監視方法に基づく模式的フローチャート300を示す
図3を参照する。
当該仮想マシンクラスタの監視方法300は、
図2の仮想マシンクラスタの監視方法を基とし、さらに以下のステップを含んでもよい。
【0032】
ステップ301において、第1の物理マシンは、仮想マシンリセットコマンドを送信した後の所定時間内にリセット応答信号を受信していないことに応答し、故障した仮想マシンのリセットが失敗したと判断し、リセット失敗の回数がプリセットされた回数に達することに応答し、仮想マシン再構築コマンドを第3の物理マシンに送信する。
【0033】
本実施例において、第3の物理マシンは仮想マシンクラスタのホスト物理マシンクラスタにおける第2の物理マシン以外の物理マシンである。
ステップ302において、第3の物理マシンは仮想マシン再構築コマンドに基づいて、故障した仮想マシンを再構築する。
【0034】
図3から分かるように、
図2に対応する実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー300は、第1の物理マシンが仮想マシン再構築コマンドを送信すること及び第3の物理マシンが仮想マシン再構築コマンドに基づいて故障した仮想マシンを再構築することを強調する。それにより、本実施例に記述された解決手段は故障した仮想マシンを再構築することを導入することができ、第1の物理マシンが仮想マシンリセットコマンドを送信した後の所定時間内にリセット応答信号を受信していない場合に、仮想マシン再構築コマンドを第3の物理マシンに送信し、故障した仮想マシンを再構築することができる。
【0035】
さらに本発明の実施例に係る
図3の仮想マシンクラスタの監視方法に基づく模式的フローチャート400を示す
図4を参照する。
当該仮想マシンクラスタの監視方法400は、
図3の仮想マシンクラスタの監視方法を基とし、以下のステップを含んでもよい。
【0036】
ステップ401において、第3の物理マシンは再構築応答信号を第1の物理マシンに送信する。
本実施例において、第3の物理マシンは受信した仮想マシン再構築コマンドに基づいて仮想マシンを再構築した後に、再構築応答信号を第1の物理マシンに送信して、仮想マシンの再構築動作が完了することを第1の物理マシンに通知する。
【0037】
ステップ402において、第1の物理マシンは再構築応答信号を受信したことに応答し、仮想マシンのメタ情報から故障した仮想マシンのメタ情報を取得し、取得されたメタ情報に基づいて、ノード回復コマンドを再構築された仮想マシンに送信する。
【0038】
本実施例において、第1の物理マシンは受信された再構築応答信号に基づいて第3の物理マシンが仮想マシンの再構築動作を完了すると判断した後に、故障した仮想マシンのアドレスに基づいて、第1の物理マシンに予め記録された仮想マシンのメタ情報から、故障した仮想マシンのメタ情報を問い合わせて、且つ故障した仮想マシンのメタ情報に指示される仮想マシンノードのタイプに基づいて、ノード回復コマンドを生成し、故障した仮想マシンのアドレスに応じて、ノード回復コマンドを再構築された仮想マシンに送信する。ここで、再構築された仮想マシンのアドレスと故障した仮想マシンのアドレスとが同じであり、ノード回復コマンドは仮想マシンノードのタイプを含み、且つノード回復コマンドが仮想マシンノードのタイプに適する。
【0039】
ステップ403において、再構築された仮想マシンは、ノード回復コマンドに基づいて再構築された仮想マシンが管理ノードであると判断した場合に、ノード回復コマンドに基づいて、予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、増分データに基づいて、再構築された管理ノードのメタデータを回復し、仮想マシンクラスタにおける計算ノードの登録を受ける。
【0040】
本実施例において、上記ノード回復コマンドにおける仮想マシンノードのタイプが管理ノードである場合に、再構築された仮想マシンは、ノード回復コマンドに基づいて、まず予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、次に、増分データに基づいて、再構築された管理ノードのメタデータを回復し、その後、仮想マシンクラスタにおける計算ノードの登録を受ける。
【0041】
1つの代替の実施形態において、第1の物理マシンが再構築された仮想マシンを監視しやすくするために、上記仮想マシンクラスタの監視方法は、再構築された管理ノードが、所定時間内に登録した仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を第1の物理マシンに送信し、所定時間内に登録した仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を第1の物理マシンに送信するステップと、第1の物理マシンが、再構築が成功したことを指示する信号に基づいて、再構築された管理ノードに受信されたユーザージョブを投入し、再構築が失敗したことを指示する警告信号に基づいて、警告報知を表示するステップと、をさらに含んでもよい。
【0042】
本実施例の1つの具体的な応用場面において、本発明の実施例に係る仮想マシンが管理ノードであることを示す回復フローチャートである
図5aに示すようになる。
図5aにおいて、管理ノードの回復フローは以下のステップを含む。
【0043】
ステップ501において、故障した仮想マシンが管理ノードとして判断された。
ステップ502において、管理ノードは受信された仮想マシンリセットコマンドに基づいて、管理ノードに位置する仮想マシンをリセットし、リセットが成功した場合に、引き続き仮想ノードにおける業務サービスプロセスをリセットする。
【0044】
ステップ503において、管理ノードのリセットが失敗した場合に、試み続け、数回試みても失敗した場合に、仮想マシンに位置するホスト物理マシンが故障すると認め、物理マシンが故障する場合に、警告して第1の物理マシンに報知し、その後、別のホストマシンは受信された第1の物理マシンの再構築コマンドに基づいて、当該ホストマシンで無効な仮想ノードの再構築を試みる。
【0045】
ステップ504において、管理ノードの構成が成功した後に、リモートメモリから増分バックアップされたメタ情報を回復する。
ステップ505において、管理ノードは増分バックアップされたメタ情報によって管理ノードにおけるデータを回復する。
【0046】
ステップ506において、管理ノードはサービスプロセスを起動する。
ステップ507において、管理ノードは計算ノードの登録を待つ。
ステップ508において、管理ノードは登録された計算ノードを計算クラスタにもう一度加入する。
【0047】
図4に戻り、ステップ404において、再構築された仮想マシンは、ノード回復コマンドに基づいて再構築された仮想マシンが計算ノードであると判断した場合に、ノード回復コマンドに基づいて、仮想マシンクラスタにおける管理ノードに登録する。
【0048】
本実施例において、上記ノード回復コマンドで回復された仮想マシンノードのタイプは計算ノードである場合に、ノード回復コマンドに基づいて、仮想マシンクラスタにおける管理ノードに登録する。
【0049】
本実施例の1つの具体的な応用場面において、本発明の実施例に係る仮想マシンが計算ノードであることを示す回復フローチャートである
図5bに示すようになる。
図5bにおいて、計算ノードの回復フローは以下のステップを含む。
【0050】
ステップ551において、故障した仮想マシンが計算ノードとして判断された。
ステップ552において、計算ノードに位置する物理マシンは受信された仮想マシンリセットコマンドに基づいて、計算ノードに位置する仮想マシンをリセットし、成功した場合に、計算ノードサービスプロセスを回復する。
【0051】
ステップ553において、計算ノードのリセットが失敗すれば、数回試みても失敗した場合に、警告して第1の物理マシンに報知し、別の物理マシンは第1の物理マシンの仮想マシン再構築コマンドを受信した後に、その上で仮想計算ノードを再構築する。
【0052】
ステップ554において、計算ノードは計算ノードサービスプロセスを起動する。
ステップ555において、計算ノードクラスタにおける管理ノードに登録する。
ステップ556において、計算ノードが仮想計算クラスタにもう一度加入される。
【0053】
図4に戻り、
図4から分かるように、
図3に対応する実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー400は、再構築された仮想マシンがノード回復コマンドに基づいてノードを回復するステップを強調する。それにより、本実施例に記述された解決手段においては仮想マシンノードの回復を導入することができ、管理ノード及び計算ノードはノード回復コマンドに基づいてそれぞれ異なる回復ステップを用いて、管理ノード又は計算ノードを回復する。
【0054】
さらに、本発明の実施例に係る
図4の仮想マシンクラスタの監視方法に基づく模式的フローチャート600を示す
図6を参照する。当該仮想マシンクラスタの監視方法600は、
図4の仮想マシンクラスタの監視方法を基とし、以下のステップをさらに含む。
【0055】
ステップ601において、仮想マシンのメタ情報に基づいて、故障した仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断する。
本実施例において、第1の物理マシンに予め記録された仮想マシンのメタ情報に基づいて、故障した仮想マシンノードのノードタイプが管理ノードであるか計算ノードであるかを判断することができ、故障した仮想マシンノードのノードタイプが計算ノードである場合に、故障した計算ノードの割合が閾値を超えるか否かを判断することもできる。
【0056】
ステップ602において、故障した仮想マシンが管理ノードを含む又は故障した計算ノードの割合が閾値を超えると判断したことに応答し、仮想マシンクラスタが故障したと判断する。
【0057】
本実施例において、ステップ601で故障した仮想マシンが管理ノードを含むと判断した場合に、管理ノードが故障すると計算ノードにおけるサービスプロセスを監視できなくなってしまうため、仮想マシンクラスタが故障したと判断することができ、又は、ステップ601で故障した計算ノードの割合が閾値を超えると判断した場合、仮想マシンクラスタに大量の仮想マシンが故障し、計算ノードのデータ処理能力に影響を与えるため、仮想マシンクラスタが故障したと判断することもできる。
【0058】
ステップ603において、仮想マシンクラスタが故障したことに応答し、引き続きユーザージョブを受信し、仮想マシンクラスタにおける管理ノードへの、ユーザージョブの投入を停止する。
【0059】
本実施例において、仮想マシンクラスタが故障した場合に、第1の物理マシンが仮想マシンクラスタと別に設置されるため、第1の物理マシンがユーザージョブを受信し続けるが、仮想マシンクラスタにおける管理ノードへの、ユーザージョブの投入を停止する。
【0060】
ステップ604において、応答情報がリセット又は再構築された仮想マシンからのものであることに応答し、リセット又は再構築された仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断する。
【0061】
本実施例において、応答情報がリセット又は再構築された仮想マシンからのものである場合に、リセット又は再構築された仮想マシンが管理ノードを含むか否かを判断し、且つ故障した計算ノードの割合が閾値を超えるか否かを判断する。ここで、応答情報の元は、少なくとも応答情報を送信する仮想マシンのアドレスに基づいて決定される。
【0062】
ステップ605において、リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、仮想マシンクラスタが故障から回復したと判断する。
【0063】
本実施例において、リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が閾値を超えていないと判断した場合に、仮想マシンクラスタが故障から回復した、即ち、仮想マシンクラスタがユーザージョブを受信して処理する能力を有する。
【0064】
ステップ606において、仮想マシンクラスタが故障から回復したことに応答し、引き続き仮想マシンクラスタにおける管理ノードにジョブを投入し、管理ノードから問い合わせられたジョブ状態情報に基づいて、仮想マシンクラスタが故障する前に実行されたジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入する。
【0065】
本実施例において、仮想マシンクラスタが故障から回復した場合に、第1の物理マシンが受信されたユーザージョブを仮想マシンクラスタにおける管理ノードに投入するとともに、管理ノードから問い合わせられた計算ノードのジョブ状態情報に基づいて、仮想マシンクラスタが故障する前に実行したジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入する。ここで、ジョブ状態情報は管理ノードが計算ノードのジョブログに基づいて取得するものである。
【0066】
ステップ607において、故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、引き続きユーザージョブを受信し、ユーザージョブを仮想マシンクラスタにおける管理ノードに投入する。
【0067】
本実施例において、第1の物理マシンは故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、仮想マシンクラスタの実行状態が正常であると判断し、引き続きユーザージョブを受信し、ユーザージョブを仮想マシンクラスタにおける管理ノードに投入する。
【0068】
いくつかの代替の実施形態において、上記仮想マシンクラスタの監視方法は、仮想マシンクラスタにおける管理ノードが増分操作ログをリモートメモリに定期的にバックアップするステップと、リモートメモリがバックアップされた操作ログを定期的にマージし、マージ時点前の操作ログを削除するステップとをさらに含んでもよい。
【0069】
本実施例の1つの具体的な応用場面において、ユーザーが本発明の実施例に係る仮想マシンクラスタの監視方法を応用してジョブを投入することを示すフローチャートである
図7に示すようになる。
【0070】
図7において、仮想マシンクラスタの外の第1の物理マシン720にジョブ管理プロセスを配置して、仮想マシンクラスタにおけるユーザージョブを管理及びスケジューリングする。ユーザー710はまずジョブを第1の物理マシン720におけるジョブ管理プロセスに投入し、ジョブ管理プロセスがさらに具体的なジョブを仮想計算クラスタにおける管理ノード730に投入する。仮想ノードが故障した場合、故障ノードが計算ノード740であり且つ故障した計算ノード740の割合が一定の閾値より低い場合に、引き続きジョブを受信して仮想計算クラスタに投入する。故障ノードが管理ノード730であり又は故障した計算ノード740の数が一定の閾値より大きい場合に、仮想計算クラスタが故障したと認識し、引き続きジョブ管理プロセスがタスクジョブを受信するが、計算クラスタへの、ジョブの投入を停止する。同時に一定の時間毎に仮想クラスタの状態を検査する。管理ノード730が正常に回復し且つ正常な計算ノード740の数が一定の閾値より大きい場合に、引き続き仮想クラスタにジョブを投入する。ジョブ管理プロセスが投入されたジョブ及び実行されているジョブを記録し、仮想クラスタが故障から回復した場合に、ジョブ管理プロセスがその前に仮想クラスタに実行されたジョブを検出する。失敗した場合に、当該ジョブ再投入する。成功した場合に、次のユーザージョブを投入する。
【0071】
図6に戻り、
図6から分かるように、
図4に対応する実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー600は、ジョブ管理プロセスを仮想マシンクラスタと分離させて、ユーザーにより投入されたジョブを管理するステップを強調する。それにより、本実施例に記述された解決手段はジョブ管理プロセスを導入することができ、それにより仮想マシンが故障する時にユーザージョブを受信し続けるとともに、仮想ノード又はクラスタの故障の原因で実行が失敗したジョブを再投入することができ、ユーザージョブに対する管理能力を向上させる。
【0072】
さらに、本発明の実施例に係る
図6の仮想マシンクラスタの監視方法に基づく模式的フローチャート800を示す
図8を参照する。当該仮想マシンクラスタの監視方法800は、
図6の仮想マシンクラスタの監視方法を基とし、以下のステップを含んでもよい。
【0073】
ステップ801において、仮想マシンクラスタにおける計算ノードは第2の所定時間毎に仮想マシンクラスタにおける管理ノードに第1のハートビート情報を送信して計算ノードに実行されている第2のサービスプロセスの状態情報を報告する。
【0074】
本実施例において、第2の所定時間は、計算ノードが管理ノードに第1のハートビート情報を送信する、予め設定された間隔時間であり、第2のサービスプロセスは計算ノードに実行されているサービスプロセスである。
【0075】
ステップ802において、仮想マシンクラスタにおける管理ノードは、第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、第2のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、第2のサービスプロセスが異常であると判断し、第2のサービスプロセスリセット信号を異常な第2のサービスプロセスに位置する計算ノードに送信する。
【0076】
本実施例において、ステップ801において計算ノードが管理ノードに第1のハートビート情報を送信して計算ノードに実行されている第2のサービスプロセスの状態情報を報告した後に、管理ノードは第2のサービスプロセスの状態情報が正常であるか否かを判断し、異常である場合に、異常回数を記録し、異常回数が一定の回数に達する場合に、第2のサービスプロセスが異常であると判断し、関連する業務プロセスをリセットすることをエージェントプロセスに通知して、サービスを回復する。
【0077】
ステップ803において、異常な第2のサービスプロセスに位置する計算ノードは第2のサービスプロセスリセット信号に基づいて、異常な第2のサービスプロセスをリセットする。
【0078】
いくつかの代替の実施形態において、仮想マシンクラスタにおける計算ノードは仮想マシンクラスタにおける管理ノードに第2のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告し、仮想マシンクラスタにおける管理ノードは、仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示し、それにより維持管理スタッフは迅速に介入して関連する問題を解決し、計算ノードを修復することができる。
【0079】
図8から分かるように、
図6に示される実施例に比べて、本実施例の仮想マシンクラスタの監視方法のフロー800は、第2のサービスプロセスを監視及び管理するステップを強調する。それにより、本実施例に記述された解決手段は異常な第2のサービスプロセスのリセットを導入することができ、第2のサービスプロセスが異常である場合に、異常な第2のサービスプロセスをリセットして、仮想マシンのサービスを回復する。
【0080】
さらに、上記各図に示される方法を実現する形態として、当該システム実施例は
図2に示される方法実施例に対応し、本発明の実施例に係る仮想マシンクラスタの監視システムの例示的なアーキテクチャ図を提供する
図9を参照する。
【0081】
図9に示すように、仮想マシンクラスタの監視システム900は、第1の物理マシン910、仮想マシンクラスタ920及び仮想マシンクラスタを実行する物理マシンクラスタ(すべて図示されるわけではない)を備える。
【0082】
第1の物理マシン910は、第1の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信し、応答情報が第2の所定時間にわたって中断することに応答し、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第2の物理マシンに仮想マシンリセットコマンドを送信することに用いられる。
【0083】
仮想マシンクラスタ920は仮想マシン921を備えて、仮想マシン921が、問い合わせコマンドを受信したことに応答し、第1の物理マシンに応答情報を送信するように配置されている。
【0084】
物理マシンクラスタは、故障した仮想マシン922を実行する第2の物理マシン923を備える。第2の物理マシン923は、仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットように配置されている。
【0085】
いくつかの代替の実施形態において、第2の物理マシンはさらに、故障した仮想マシンをリセットする時に、リセット応答信号を第1の物理マシンに送信し、リセットされた仮想マシンが第1のサービスプロセスリセット信号に基づいて、リセットされた仮想マシンのサービスプロセスを起動することに用いられる。第1の物理マシンはさらに、リセット応答信号を受信したことに応答し、予め記録された仮想マシンのメタ情報から故障した仮想マシンのアドレスを取得し、当該アドレスに基づいて、リセットされた仮想マシンと接続し、第1のサービスプロセスリセット信号をリセットされた仮想マシンに送信することに用いられる。
【0086】
図3に示される方法実施例に対応し、いくつかの代替の実施形態において、システムは、仮想マシン再構築コマンドに基づいて、故障した仮想マシンを再構築するための第3の物理マシンをさらに備える。第1の物理マシンはさらに、仮想マシンリセットコマンドを送信した後の所定時間内にリセット応答信号を受信していないことに応答し、故障した仮想マシンのリセットが失敗したと判断し、リセットが失敗した回数がプリセットされた回数に達することに応答し、仮想マシンクラスタのホスト物理マシンクラスタにおける第2の物理マシン以外の物理マシンである第3の物理マシンに仮想マシン再構築コマンドを送信することに用いられる。
【0087】
図4に示される方法実施例に対応し、いくつかの代替の実施形態において、第3の物理マシンはさらに、再構築応答信号を第1の物理マシンに送信し、再構築された仮想マシンが、ノード回復コマンドに基づいて再構築された仮想マシンが管理ノードであると判断した場合に、ノード回復コマンドに基づいて、予めバックアップされた元の管理ノードに関連する増分データをリモートメモリからダウンロードし、増分データに基づいて、再構築された管理ノードのメタデータを回復し、仮想マシンクラスタにおける計算ノードの登録を受け、ノード回復コマンドに基づいて再構築された仮想マシンが計算ノードであると判断した場合に、ノード回復コマンドに基づいて、仮想マシンクラスタにおける管理ノードに登録することに用いられる。第1の物理マシンはさらに、再構築応答信号を受信したことに応答し、仮想マシンのメタ情報から故障した仮想マシンのメタ情報を取得し、取得したメタ情報に基づいて、ノード回復コマンドを再構築された仮想マシンに送信することに用いられる。
【0088】
いくつかの代替の実施形態において、再構築された管理ノードはさらに、所定時間内に登録された仮想マシンクラスタにおける計算ノードがプリセットされた割合以上であることに応答し、再構築が成功したと判断し、再構築が成功したことを指示する信号を第1の物理マシンに送信し、所定時間内に登録された仮想マシンクラスタにおける計算ノードがプリセットされた割合より低いことに応答し、再構築が失敗したことを指示する警告信号を第1の物理マシンに送信することに用いられる。第1の物理マシンはさらに、再構築が成功したことを指示する信号に基づいて、再構築された管理ノードに受信したユーザージョブを投入し、再構築が失敗したことを指示する警告信号に基づいて、警告報知を表示することに用いられる。
【0089】
図6に示される方法実施例に対応し、いくつかの代替の実施形態において、第1の物理マシンはさらに、仮想マシンのメタ情報に基づいて、故障した仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断することと、故障した仮想マシンが管理ノードを含む又は故障した計算ノードの割合が閾値を超えると判断したことに応答し、仮想マシンクラスタが故障したと判断することと、仮想マシンクラスタが故障したことに応答し、引き続きユーザージョブを受信し、仮想マシンクラスタにおける管理ノードへの、ユーザージョブの投入を停止することと、応答情報がリセット又は再構築された仮想マシンからのものであることに応答し、リセット又は再構築された仮想マシンが管理ノードを含むか否か及び故障した計算ノードの割合が閾値を超えるか否かを判断することと、リセット又は再構築された仮想マシンが管理ノードを含み且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、仮想マシンクラスタが故障から回復したと判断することと、仮想マシンクラスタが故障から回復したことに応答し、引き続き仮想マシンクラスタにおける管理ノードにジョブを投入し、及び管理ノードから問い合わせられたジョブ状態情報に基づいて、仮想マシンクラスタが故障する前に実行したジョブが成功したか否かを判断し、成功した場合に、次のジョブを投入し、失敗した場合に、失敗したジョブを再投入することと、故障した仮想マシンが管理ノードを含まず且つ故障した計算ノードの割合が閾値を超えていないと判断したことに応答し、引き続きユーザージョブを受信し、ユーザージョブを仮想マシンクラスタにおける管理ノードに投入することと、に用いられ、ここで、ジョブ状態情報が、管理ノードが計算ノードのジョブログに基づいて取得するものである。
【0090】
いくつかの代替の実施形態において、システムは、バックアップされた操作ログを定期的にマージし、マージ時点前の操作ログを削除するためのリモートメモリをさらに備える。仮想マシンクラスタにおける管理ノードがさらに、増分操作ログをリモートメモリに定期的にバックアップすることに用いられる。
【0091】
いくつかの代替の実施形態において、仮想マシンクラスタにおける計算ノードはさらに、第2の所定時間毎に仮想マシンクラスタにおける管理ノードに第1のハートビート情報を送信して計算ノードに実行されている第2のサービスプロセスの状態情報を報告し、及び異常な第2のサービスプロセスに位置する計算ノードが第2のサービスプロセスリセット信号に基づいて、異常な第2のサービスプロセスをリセットすることに用いられる。仮想マシンクラスタにおける管理ノードはさらに、第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致するか否かを判断し、合致しない場合に、第2のサービスプロセスの状態情報が所定の正常なプロセス条件に合致しない回数を記録し、第2のサービスプロセスの状態情報が所定条件に合致しない回数が所定回数を超えることに応答し、第2のサービスプロセスが異常であると判断し、第2のサービスプロセスリセット信号を異常な第2のサービスプロセスに位置する計算ノードに送信することに用いられる。
【0092】
いくつかの代替の実施形態において、仮想マシンクラスタにおける計算ノードはさらに、仮想マシンクラスタにおける管理ノードに第2のハートビート情報を送信して仮想マシンの状態パラメータ情報を報告することに用いられる。仮想マシンクラスタにおける管理ノードはさらに、仮想マシンの状態パラメータ情報が予め設定された異常条件に合致するか否かを判断し、合致する場合に、警告報知を表示することに用いられる。
【0093】
本発明の上記実施例による仮想マシンクラスタの監視システムは、仮想マシンに対する監視を実現でき、仮想マシンが故障する時に仮想マシン及び仮想マシンに実行されているサービスを自動的に回復でき、仮想マシンクラスタの可用性を向上させ、サービスの中断時間を減少させる。
【0094】
上記各ノードは、例えば、プロセッサ、メモリなどのいくつかの他の公知の構造をさらに備えてもよく、本発明の実施例を曖昧にすることを回避するために、これらの公知の構造が
図9に示されていないことを、当業者は理解することができる。
【0095】
以下、本発明の実施例を実現するための端末装置またはサーバーに適用されるコンピュータシステム1000を示す構造模式図である
図10を参照する。
図10に示すように、コンピュータシステム1000は、読み出し専用メモリ(ROM)1002に記憶されているプログラムまたは記憶部1008からランダムアクセスメモリ(RAM)1003にロードされたプログラムに基づいて様々な適当な動作および処理を実行することができる中央処理装置(CPU)1001を備える。RAM1003には、システム1000の操作に必要な様々なプログラムおよびデータがさらに記憶されている。CPU1001、ROM1002およびRAM1003は、バス1004を介して互いに接続されている。入力/出力(I/O)インターフェース1005もバス1004に接続されている。
【0096】
キーボード、マウスなどを含む入力部1006、陰極線管(CRT)、液晶ディスプレイ(LCD)など、およびスピーカなどを含む出力部1007、ハードディスクなどを含む記憶部1008、およびLANカード、モデムなどを含むネットワークインターフェースカードの通信部1009は、I/Oインターフェース1005に接続されている。通信部1009は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ1010は、必要に応じてI/Oインターフェース1005に接続される。リムーバブルメディア1011は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ1010に取り付けられ、したがって、ドライバ1010から読み出されたコンピュータプログラムが必要に応じて記憶部1008にインストールされる。
【0097】
特に、本発明の実施例によれば、上記のフローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、コンピュータプログラム製品を含み、当該コンピュータプログラム製品は、機械可読媒体に有形に具現化されるコンピュータプログラムを含み、前記コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信部1009を介してネットワークからダウンロードされてインストールされてもよく、および/またはリムーバブルメディア1011からインストールされてもよい。
【0098】
図面におけるフローチャートおよびブロック図は、本発明の各実施例に係るシステム、方法およびコンピュータプログラム製品により実現可能なアーキテクチャ、機能および操作を示す。ここで、フローチャートまたはブロック図における各枠は、1つのモジュール、プログラムセグメント、またはコードの一部を代表してもよく、前記モジュール、プログラムセグメント、またはコードの一部は、規定された論理機能を実現するための1つ以上の実行可能な命令を含む。なお、いくつかの代替実施態様として、枠に示された機能は、図面に示された順番と異なる順番で実行されてもよい。例えば、連続して示された2つの枠は、関連する機能に応じて、実際にほぼ並行に実行されてもよく、逆の順番で実行されてもよい。なお、ブロック図および/またはフローチャートにおける各枠と、ブロック図および/またはフローチャートにおける枠の組合せは、規定された機能または操作を実行する、ハードウェアに基づく専用システムで実現されてもよく、あるいは、専用ハードウェアとコンピュータの命令との組合せで実行されてもよい。
【0099】
一方、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、当該不揮発性コンピュータ記憶媒体は、上記した実施例の前記装置に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立に存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。前記不揮発性コンピュータ記憶媒体は、1つ以上のプログラムが記憶され、前記1つ以上のプログラムが1つの機器により実行された場合、上記したシステムに以下の通りにさせ、すなわち、第1の物理マシンが、第1の所定時間毎に仮想マシンクラスタにおける仮想マシンに仮想マシン状態パラメータ問い合わせコマンドを送信し、仮想マシンが、問い合わせコマンドを受信したことに応答し、第1の物理マシンに応答情報を送信し、第1の物理マシンが、応答情報が第2の所定時間にわたって中断することに応答して、仮想マシンが故障したと判断し、故障した仮想マシンが予め設定されたリセット条件を満たすか否かを判断し、故障した仮想マシンが予め設定されたリセット条件を満たす場合に、故障した仮想マシンを実行する第2の物理マシンに仮想マシンリセットコマンドを送信し、第2の物理マシンが、仮想マシンリセットコマンドに基づいて、故障した仮想マシンをリセットする。
【0100】
以上の記載は、本発明の好ましい実施例、および使用された技術的原理の説明に過ぎない。本発明に係る特許請求の範囲が、上記した技術的特徴の特定な組合せからなる技術案に限定されることではなく、本発明の趣旨を逸脱しない範囲で、上記の技術的特徴または同等の特徴の任意の組合せからなる他の技術案も含むべきであることを、当業者は理解すべきである。例えば、上記の特徴と、本発明に開示された類似の機能を持っている技術的特徴(これらに限定されていない)とを互いに置き換えてなる技術案が挙げられる。