[go: up one dir, main page]

JP5851503B2 - 高可用性仮想機械環境におけるアプリケーションの高可用性の提供 - Google Patents

高可用性仮想機械環境におけるアプリケーションの高可用性の提供 Download PDF

Info

Publication number
JP5851503B2
JP5851503B2 JP2013522005A JP2013522005A JP5851503B2 JP 5851503 B2 JP5851503 B2 JP 5851503B2 JP 2013522005 A JP2013522005 A JP 2013522005A JP 2013522005 A JP2013522005 A JP 2013522005A JP 5851503 B2 JP5851503 B2 JP 5851503B2
Authority
JP
Japan
Prior art keywords
virtual machine
monitoring agent
agent
application
applications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013522005A
Other languages
English (en)
Other versions
JP2013535745A (ja
Inventor
ヴィジェイ・ジョグ・ロヒット
マンモハン・サリン・スミット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gen Digital Inc
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of JP2013535745A publication Critical patent/JP2013535745A/ja
Application granted granted Critical
Publication of JP5851503B2 publication Critical patent/JP5851503B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、高可用性に関し、且つ、より具体的には、仮想機械における高可用性アプリケーションの提供に関する。
仮想化システムによれば、(実際には、同一タイプのオペレーティングシステムの別個のインスタンスであり得る)複数のオペレーティングシステムが、同一期間に、同一ハードウェア上において稼働することができる。それぞれの稼働しているオペレーティングシステムは、独立した「仮想機械」として機能すると共に、独立したハードウェア上において稼働するスタンドアロンのオペレーティングシステムと実質的に同一の方式により、やり取り及び使用することができる。仮想機械によれば、事実上、1つのハードウェア演算装置をいくつかの仮想機械に分割することにより、ハードウェアリソースの使用効率を向上させることができる。
いくつかの仮想化システムは、1つ又は複数の装置上に実装された1つ又は複数の仮想機械を管理することができる仮想化コントローラを提供している。このような仮想化コントローラは、仮想機械と通信することが可能であり、且つ、それらの仮想機械の動作を制御することができる。いくつかの環境においては、特定の仮想機械に障害が発生した場合に、その障害が発生した仮想機械を仮想化コントローラが別の演算装置上において再起動することができるように、仮想化コントローラは、仮想機械の高可用性を提供する方式により、仮想機械を管理することもできる。しかしながら、高可用性仮想機械を提供している従来の仮想化システムにおいては、仮想機械において稼働しているアプリケーションの可用性を効果的に向上させることはできないであろう。
高可用性仮想機械環境において稼働するアプリケーションの高可用性を提供するための様々なシステム及び方法が開示される。例えば、一方法は、仮想機械において稼働している複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態を示す情報を仮想機械において稼働している監視エージェントから受信するステップを伴う。本方法は、仮想機械において稼働していない意思決定エージェントによって、複数のアプリケーションのうちのそれぞれのアプリケーションの優先順位を検出するステップを伴う。本方法は、仮想機械を再起動するべきであるかどうかを、複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態及び優先順位に基づいて、判定するステップを伴う。次いで、この判定に基づいて、本方法は、監視エージェントがタイムアウトインターバルの満了前にハートビートメッセージを仮想化コントローラに送信するべきであるかどうかを決定する。ハートビートメッセージは、前記複数のアプリケーションのそれぞれの動作状態を識別する。仮想化コントローラは、監視エージェントがタイムアウトインターバルの満了前にハートビートメッセージを送信しない場合に、その仮想機械を再起動するように構成されている。ハートビートメッセージを送信するかどうかを決定する動作は、演算装置によって実行される。いくつかの実施形態においては、判定動作は、意思決定エージェントを実装する演算装置によって実行され、この意思決定エージェントは、その仮想機械において稼働してはいない。
受信される情報は、仮想機械において稼働しているいくつかのアプリケーションのうちのそれぞれのアプリケーションの動作状態を識別することができる。仮想機械を再起動するかどうかに関する判定は、それぞれのアプリケーションの動作状態及び優先順位に基づいたものであってよい。
一例として、本方法は、複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションが適切に稼働しており、且つ、複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションに障害が発生していると情報が識別していることに応答して、仮想機械を再起動するべきではないと判定することができる。或いは、この代わりに、本方法は、複数のアプリケーションのうちの相対的に高い優先順位のアプリケーションに障害が発生しており、且つ、複数のアプリケーションのうちの相対的に低い優先順位のアプリケーションが適切に稼働していると情報が識別していることに応答して、仮想機械を再起動するべきであると判定することができる。一実施形態においては、本方法は、アプリケーションが適切に動作していないと情報が識別していることに応答して、監視エージェントがアプリケーションの再起動をまず試みるべきであると判定することが可能であり、この場合に、アプリケーションの再起動の試みは、仮想機械を再起動するべきかどうかに関する判定の前に、実行される。
本方法は、アプリケーションが意図的にオフライン状態とされていると情報が識別していることに応答して、仮想化コントローラに対してハートビートメッセージを提供しないように監視エージェントを登録解除するべく決定することができる。監視エージェントは、その監視エージェントが登録解除された後にも、アプリケーションの監視を継続することができる。本方法は、アプリケーションが再度オンライン状態にあると情報が識別していることに応答して、ハートビートメッセージを仮想化コントローラに提供するように監視エージェントを再登録するべく決定することができる。
本方法は、管理者から通知を受け取るステップを伴うことができる。通知は、例えば、アプリケーションが意図的にオフライン状態とされているのかどうか、及び/又は、監視エージェントがアプリケーションの監視を継続するべきであるのかどうか、を示すことができる。
システムの一例は、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに結合されたメモリと、を含むことができる。メモリは、上述の方法のような方法を実行するように稼働することができるプログラム命令を保存する。同様に、このようなプログラム命令は、コンピュータ可読ストレージ媒体上に保存することもできる。
以上の内容は、概要であり、且つ、従って、必然的に、詳細内容の単純化、一般化、及び省略を含んでおり、従って、当業者であれば、この概要は、例示を目的としたものに過ぎず、且つ、決して限定を意図したものと解釈するべきではないことを理解するであろう。請求項によってのみ規定される本発明のその他の態様、発明上の特徴、及び利点については、以下に提供される非限定的な詳細な説明から明らかとなろう。
本発明については、添付図面を参照することにより、更に十分に理解することが可能であり、且つ、その多数の目的、特徴、及び利点について、当業者に明らかとなろう。
本発明の一実施形態による高可用性仮想機械環境においてアプリケーションの高可用性を提供するシステムのブロックダイアグラムである。 本発明の別の実施形態による高可用性仮想機械環境においてアプリケーションの高可用性を提供する別のシステムのブロックダイアグラムである。 本発明の一実施形態による高可用性仮想機械環境においてアプリケーションの高可用性を提供する方法のフローチャートである。 本発明の一実施形態による、ハートビート信号を複数の監視対象アプリケーションを稼働させている仮想機械から仮想化コントローラに対して送信できるようにするかどうかを判定する方法のフローチャートである。 本発明の一実施形態による、監視エージェント及び意思決定エージェントの両方をソフトウェアに実装する方法を示す演算装置のブロックダイアグラムである。 本発明の一実施形態による、様々な演算装置がネットワークを介して通信する方法を示すネットワーク接続されたシステムのブロックダイアグラムである。
本発明には、様々な変更及び代替形態が可能であるが、添付図面及び詳細な説明には、例として、本発明の特定の実施形態が提供されている。これらの図面及び詳細な説明は、開示されている特定の形態に本発明を限定することを意図したものではないことを理解されたい。むしろ、本発明は、添付の請求項によって規定されている本発明の精神及び範囲に含まれるすべての変更形態、均等物、及び代替形態を含んでいる。
図1は、仮想化システムのブロックダイアグラムである。図示のように、仮想化システムは、2つのホスト10(1)及び10(2)を含む。この例においては、それぞれのホストは、2つの仮想機械(Virtual Machine:VM)を実装している。図示のように、ホスト10(1)は、VM30(1)及びVM302(2)を実装している。同様に、ホスト10(2)は、VM30(3)及びVM30(4)を実装している。代替実施形態は、この例に示されているものとは異なる数のVMをホスト当たりに実装することが可能であり、且つ、同一のシステムが、同一システム内のその他のホストとは異なる数のVMをそれぞれが実装する1つ又は複数のホストを含むことができることに留意されたい。
仮想機械VM30(1)〜VM30(4)は、それぞれ、稼働しているオペレーティングシステムの自己充足型インスタンスを提供している。同一ホスト上において稼働するVMは、同一の又は異なるオペレーティングシステムを使用して実装することができる。VMとやり取りするクライアントは、通常、独立したハードウェア上において稼働するスタンドアロンのオペレーティングシステムとやり取りするのと全く同一の方式によってやり取りすることになる。仮想機械は、Palo Alto, CAに所在するVMware, Inc.社が提供しているものなどの仮想化ソフトウェアを使用して実装することができる。
アプリケーションは、それぞれのVMにおいて稼働する。このようなアプリケーションは、データベースアプリケーション、メールサーバー、又はこれらに類似したものであってよい。この場合に、アプリケーション40(1)は、VM30(1)において稼働しており、アプリケーション40(2)は、VM30(2)において稼働しており、アプリケーション40(3)及び40(4)は、VM30(3)において稼働しており、且つ、アプリケーション40(5)は、VM30(4)において稼働している。図示のように、複数のアプリケーションが単一のVMにおいて稼働することができる。所与のVMにおいて稼働しているアプリケーションのタイプは、同一仮想化システム内の別のVMにおいて稼働しているアプリケーションのタイプと同一であっても異なっていてもよい。
監視エージェント(1つの特殊なタイプのアプリケーション)も、それぞれのVMにおいて稼働する。それぞれの監視エージェントは、同一のVMにおいて稼働している1つ又は複数のアプリケーションの状態を監視すると共に監視対象アプリケーションの状態を意思決定エージェントに報告するように構成されている。図示のように、監視エージェント50(1)は、VM30(1)において稼働し、且つ、アプリケーション40(1)の状態を監視している。監視エージェント50(2)は、VM30(2)において稼働し、且つ、アプリケーション40(2)の状態を監視している。監視エージェント50(3)は、VM30(3)において稼働し、且つ、アプリケーション40(3)及び40(4)のうちのそれぞれのアプリケーションの状態を監視している。監視エージェント50(4)は、VM30(4)において稼働し、且つ、アプリケーション40(5)の状態を監視している。図1は、単一の監視エージェントが複数のアプリケーションを監視することができる実施形態を示しているが、代替実施形態は、監視対象のアプリケーションと監視エージェントの間に1対1の対応関係が存在するように、VM当たり複数のエージェントを利用してもよい。監視エージェントは、所与のVMにおいて稼働しているアプリケーションのすべてではなく、その一部を監視するように構成することもできることに留意されたい。
いくつかの実施形態においては、監視エージェントは、Cupertino, CAに所在するSymantec, Corp.社から入手可能なVERITAS Cluster Server(VCS)エージェントとして実装されている。このような実施形態においては、それぞれのVMは、独立した単一ノードクラスタとして構成することができる。監視エージェントは、単一ノードクラスタの監視サービスグループとして構成することができる。又、VM内のそれぞれの監視対象アプリケーションも、単一ノードクラスタのサービスグループとして構成される。監視サービスグループは、同一の単一ノードクラスタ内のその他のサービスグループの状態を監視する。
意思決定エージェント(別の特殊なタイプのアプリケーション)は、それぞれのVMにおいて稼働する。意思決定エージェントは、1つ又は複数の対応する監視エージェントによって識別される1つ又は複数のアプリケーションの状態に基づいて、実行するべき動作が存在する場合に、実行するべき動作を判定するように、構成されている。意思決定エージェントの動作については、後程詳述する。図示されているように、意思決定エージェント60(1)は、VM30(1)において稼働しており、意思決定エージェント60(2)は、VM30(2)において稼働しており、意思決定エージェント60(3)は、VM30(3)において稼働しており、且つ、意思決定エージェント60(4)は、VM30(4)において稼働している。いくつかの実施形態においては、監視エージェント及び意思決定エージェントの機能を、それぞれのVMにおいて稼働する単一のエージェントとして組み合わせてもよい。
ホスト10(1)及び10(2)は、仮想化コントローラ80を実装するサーバー70と(例えば、ネットワークを介して)通信するように結合されている。仮想化コントローラ80は、ホスト10(1)及び10(2)上に実装されているVMを制御している。従って、仮想化コントローラ80は、それぞれのVMの状態を監視し、それぞれのVMが適切に稼働しているかどうかを識別する。VMの障害の検出に応答して、仮想化コントローラ80は、状況を是正するための動作を実行することができる。このような動作は、同一の又は別のホスト上における障害が発生したVMの再起動又は障害に結び付く問題を矯正するための試みを含むことができる。
仮想化コントローラ80は、いくつかの実施形態においては、VMware vCenter Server(商標)として実装することができる。このような実施形態においては、仮想化コントローラ80は、VMware Tool(商標)によって提供されるハートビートチャネルを介してVMと通信することが可能であり、VMware Tool(商標)は、それぞれのVMにおいて設置及び稼働することができる。このような実施形態において別のホスト上においてVMを再起動するために使用されるメカニズムは、vMotion(商標)であってよい。これらの機能は、Palo Alto, CAに所在するVMware Inc.社によって提供されるものなどの仮想化ソフトウェアを使用して実装することができる。
この場合に、仮想化コントローラ80は、それぞれのVMからのハートビートメッセージに依存してそのVMの状態を判定している。それぞれのVM上におけるアプリケーション(例えば、後程詳述する監視エージェント)は、仮想化コントローラ80に登録することにより、その登録されたアプリケーションがハートビートを仮想化コントローラ80に対して送信することを通知する。特定のVMからハートビートを受信している状態においては、仮想化コントローラ80は、その特定のVMから、期間(タイムアウトインターバルとも呼称する)当たりに1回ずつ、ハートビートを受信するものと予想する。ハートビートが所与の期間内に受信されない場合には(又は、一連のハートビートが連続した期間にわたって受信されない場合には)、仮想化コントローラ80は、VMに障害が発生したものと判定することになり、且つ、(例えば、そのVMを別のホスト上において再起動することによって)矯正動作を実行することになる。
図1の仮想化環境において稼働するアプリケーションの高可用性を提供するために、それぞれの監視エージェントは、仮想化コントローラ80に登録し、そのVMのハートビートを提供することになる。従って、監視エージェント50(1)は、登録してVM30(1)のハートビートメッセージを提供することになり、監視エージェント50(2)は、登録してVM30(2)のハートビートメッセージを提供することになり、監視エージェント50(3)は、登録してVM30(3)のハートビートメッセージを提供することになり、且つ、監視エージェント50(4)は、登録してVM30(4)のハートビートメッセージを提供することになる。
上述のように、監視エージェント50(1)〜50(4)は、アプリケーションを監視し、且つ、それらのアプリケーションの状態について意思決定エージェント60(1)〜60(4)のうちの個々の意思決定エージェントに対して報告することになる。特定のVMにおける監視対象アプリケーションの状態に基づいて、そのVM内の意思決定エージェントは、アプリケーションを再起動するべきかどうか、仮想化コントローラによるVMの監視を継続するべきかどうか、及び、VMのハートビートメッセージを送信するべきかどうかを決定することになる。次いで、意思決定エージェントは、その決定について監視エージェントに報告し、監視エージェントが、その決定された動作を実行することになる。
監視エージェントと同一のVM内のそれぞれの監視対象アプリケーションごとに、監視エージェントは、そのアプリケーションが適切に稼働しているかどうかを検出することができる。少なくともいくつかの実施形態においては、監視エージェントは、稼働していないアプリケーションが、障害に起因して稼働していないのか、又は、意図的にオフライン状態とされたことに起因して稼働していないのか、を弁別することもできる。例えば、監視エージェントは、アプリケーションがオフライン状態とされていることを管理者が監視エージェントに対して通知することができるインターフェイス(例えば、グラフィカルユーザーインターフェイス、コマンドラインインターフェイス、又はこれらに類似したもの)を提供することが可能であり、且つ、監視エージェントは、これに応答して、アプリケーションと関連する状態情報を更新し、アプリケーションが意図的にオフライン状態とされていることを通知することができる。管理者は、監視エージェントによって検出される現在の動作状態とは無関係に、任意の時点において、アプリケーションをオフライン状態としたり、又は、オンライン状態に復帰させ(且つ、その動作をインターフェイスを介して識別す)ることができることに留意されたい。
アプリケーションが稼働していないことを監視エージェントが検出した際に、監視エージェントは、(例えば、アプリケーションと関連付けられた保存されている情報にアクセスすることによって)アプリケーションが稼働を中止する前にそのアプリケーションがオフライン状態とされたことを管理者が通知しているかどうかを確認することができる。アプリケーションが、意図的にオフライン状態とされた後に再起動された際には、管理者は、再度、(例えば、インターフェイスを介して)アプリケーション状態の変化について監視エージェントに通知することができる。或いは、この代わりに、監視エージェントは、単純に、アプリケーションが次のハートビート期間において再起動されたことを検出すると共にそのアプリケーションと事前に関連付けられている任意の状態情報をクリアすることもできる。
従って、監視エージェントは、それぞれの監視対象アプリケーションが適切に稼働しているかどうかを識別する。適切に稼働していない場合には、監視エージェントは、少なくともいくつかの実施形態においては、アプリケーションが、障害に起因して稼働していないのか、又は、意図的にオフライン状態とされたことに起因して稼働していないのか、を更に弁別する。監視エージェントは、アプリケーション及びその検出された稼働状態について記述する情報を生成すると共にこの情報を意思決定エージェントに対して提供することができる。例えば、監視エージェント50(1)は、アプリケーション40(1)に障害が発生していることを検出すると共にそのアプリケーション40(1)に障害が発生していることを示す情報を意思決定エージェント60(1)に対して送信することができる。
監視エージェントから、それぞれのアプリケーションの状態(例えば、オンライン状態にある、障害状態にある、又は意図的にオフライン状態とされた状態にある)について記述した情報を受信することに応答して、意思決定エージェントは、実行するべき動作を決定する。VM内に監視対象アプリケーションが1つしか存在していない場合には、意思決定エージェントは、そのアプリケーションが正常に稼働している場合には、(仮想化コントローラがVMを再起動させないことを保証する)ハートビートメッセージを送信するように決定することになる。アプリケーションに障害が発生している場合には、意思決定エージェントは、ハートビートメッセージの送信を禁止するように決定し、この結果、仮想化コントローラは、その障害が発生したアプリケーションが稼働していたVMを再起動することになり、これにより、障害が発生したアプリケーションも、事実上、再起動されたVMにおいて再起動されることになる。
アプリケーションが意図的にオフライン状態とされている場合には(即ち、アプリケーションが稼働してはいないが、障害は発生していない場合には)、意思決定エージェントは、監視エージェントが、仮想化コントローラに対してハートビートを提供しないように登録を取り消すべきであると決定することができる。監視エージェントは、登録を取り消すための要求を仮想化コントローラに対して送信することにより、登録を取り消すことができる。この登録の取り消しにより、登録を取り消されたVMは、事実上、高可用性のための監視対象VMの組から外されることになる。この結果、仮想化コントローラは、そのVMから定期的なハートビートメッセージを受け取ることを予想しなくなり、且つ、ハートビートがそのVMから受信されない際にそのVMを再起動することもなくなる。
インターフェイス(例えば、アプリケーションが意図的にオフライン状態とされた際に管理者が通知できるように使用される)により、監視エージェントが再登録するべき時点を管理者が指定できるようにすることもできる。例えば、管理者は、アプリケーションがオンライン状態に復帰した際に、監視エージェントがハートビートメッセージを再登録するべきかどうかを指定することができる。例えば、アプリケーションがアップグレードのためにオフライン状態とされている際には、管理者は、登録の取り消しが一時的であるべきであると指定することができる。この代わりに、もはやサービスの提供に使用されなくなったことを理由としてアプリケーションがオフライン状態とされている場合には、管理者は、その登録の取り消しが永久的であるべきであると指定することもできる。
監視エージェントは、ハートビート期間当たりに一回ずつ、それぞれの監視対象アプリケーションの状態を取得及び報告することができる。同様に、意思決定エージェントは、ハートビート期間当たりに一回ずつ、情報を受信すると共にその情報に基づいて決定を生成することができる。監視エージェントがハートビートを仮想化コントローラに送信するように登録されていない期間中においては、監視エージェントは、それにも拘わらず、アプリケーションの状態を監視すると共に意思決定エージェントに対するアプリケーションの状態に関する報告を継続することができる。同様に、期間当たりに一回ずつ、意思決定エージェントは、監視エージェントから情報を受信すると共にその情報を使用して実行するべき動作(例えば、ハートビートを送信するのか、ハートビートを送信しないのか、又は、登録を取り消すのか)を決定することができる。登録が取り消されている際にもアプリケーションの監視を継続することにより、監視エージェントは、アプリケーションがオンライン状態に復帰したことを検出することができる。この動作の検出に応答して、意思決定エージェントは、仮想化コントローラに対してハートビートメッセージを送信するべく監視エージェントが再登録するようにさせてもよい。
複数のアプリケーションが監視されている場合には、監視エージェントは、それぞれの監視対象アプリケーションの状態について適切な意思決定エージェントに対して報告することになり、次いで、その意思決定エージェントは、それぞれのアプリケーションの状態及び優先順位に基づいて、実行するべき動作を決定する。アプリケーションの優先順位は、(例えば、情報をコマンドラインインターフェイス又はグラフィカルユーザーインターフェイスを介して入力することによって)管理者が構成することが可能であり、且つ、意思決定エージェントによって保存することができる。
一般に、意思決定エージェントは、その決定を下す際に、相対的に低い優先順位のアプリケーションよりも相対的に高い優先順位のアプリケーションの状態に対して大きな重みを付与することになる。アプリケーションの優先順位を考慮した様々な異なるアルゴリズムのいずれかを使用することにより、このプロセスを実装することができる。例えば、単純なアルゴリズムは、単純に、最高優先順位のアプリケーションの状態を評価すると共にそのアプリケーションの状態に基づいて判定を実行することができる。最高優先順位のアプリケーションが適切に稼働している場合には、意思決定エージェントは、任意の相対的に低い優先順位のアプリケーションの状態とは無関係に、監視エージェントがハートビートを送信するべきであると決定することができる。同様に、すべての相対的に低い優先順位のアプリケーションが適切に稼働している場合にも、最高優先順位のアプリケーションに障害が発生している場合には、意思決定エージェントは、監視エージェントがハートビートメッセージを送信するべきではないと決定することができる。この例においては、すべての重みが、最高優先順位のアプリケーションの状態に対して付与されている。
その他のアルゴリズムは、最高優先順位のアプリケーション以外のアプリケーションに対して重みを割り当てていない上述の例よりも大きな重みを相対的に低い優先順位のアプリケーションに対して割り当てることができる。例えば、1つのアルゴリズムは、VMにおいて監視されている障害が発生したアプリケーションの優先順位の合計をそのVM内において監視されている適切に稼働しているアプリケーションの優先順位の合計と比較することができる。障害が発生したアプリケーションに対応する合計が大きい場合には、意思決定エージェントは、ハートビートの送信を停止するように決定することができる。同様に、適切に稼働しているアプリケーションに対応する合計が大きい場合には、意思決定エージェントは、ハートビートの送信を継続するように決定することができる。合計が等しい場合には、意思決定エージェントは、一実施形態においては、ハートビートの送信を停止するように決定することができる。別のアルゴリズムは、適切に稼働している及び意図的にオフライン状態とされているアプリケーションの優先順位の合計を障害が発生しているアプリケーションの優先順位の合計と比較することができる。前者の合計が大きい場合には、意思決定エージェントは、監視エージェントがハートビートの送信を継続するようにさせることになる。後者の合計が大きい場合には、意思決定エージェントは、ハートビートの送信を妨げることになる。
意思決定エージェントは、複数のアプリケーションの状態を単一のハートビート通信チャネルに圧縮することにより、事実上、複数のアプリケーションの状態を単一通信チャネル上の単一のハートビートメッセージに多重化している。この結果、本システムは、単一のハートビート通信チャネルのみであるにも拘わらず、構成された優先順位に基づいて、複数のアプリケーションの高可用性を提供することができる。
上述の例において、アプリケーションに障害が発生した場合の標準的な応答は、ハートビートメッセージの送信を停止させることにより、障害が発生したアプリケーションが稼働しているVMを再起動させるというものである。その他の実施形態においては、障害が発生したアプリケーションを収容しているVMを自動的に再起動させる代わりに、意思決定エージェントは、まず、障害が発生したアプリケーションの再起動を監視エージェントが試みるべできあると決定してもよい。意思決定エージェントがVMを再起動するべきであると決定する前に、(例えば、管理者がインターフェイスを介して情報を入力することにより)、障害が発生したアプリケーションについてこの決定が下される回数を制御することができる再試行の試みの許容最大数によって意思決定エージェントを構成することができる。再起動のための時間をアプリケーションに付与するために、意思決定エージェントは、監視エージェントがアプリケーションの再起動を試みている際に仮想化コントローラへの登録を取り消すように、監視エージェントに対して指示してもよい。
上述のように、それぞれの意思決定エージェントを制御するために使用される様々な情報は、管理者が情報をインターフェイスを介して入力することによって構成することができる。この情報は、VMごとに、且つ、アプリケーションごとに、変化することができる。従って、1つのVMにおいて、管理者は、別のVMにおいてアプリケーションAのインスタンスに対して割り当てられているものよりも高い優先順位をアプリケーションAに付与するように、選択することができる。
図2は、可視化システムの別の例を示している。この例は、意思決定エージェントが監視エージェントとは異なる演算装置上において稼働するように、監視エージェントと意思決定エージェントの機能を分離する方法を示している。更には、この例は、監視エージェントと意思決定エージェントの間に1対1の対応関係が存在する必要がないことをも示している。
図2の例においては、サーバー70及びホスト10(1)及び10(2)は、図1に示されているものと同様の方式によって構成されている。但し、それぞれのVMにおいて稼働する独立した意思決定エージェントの代わりに、別個の意思決定エージェント60が演算装置90上において稼働しており、この演算装置90は、ホスト10(1)及び10(2)と通信するように結合されている。この例においては、それぞれの監視エージェント50(1)〜50(4)は、その監視エージェントによって生成された情報を単一の意思決定エージェント60に対して送信するように構成されており、次いで、この単一の意思決定エージェント60が、上述のもののような技法を使用することにより、その情報を処理し、決定を生成する。次いで、意思決定エージェント60は、その決定を表す情報を適切な監視エージェントに対して返す。例えば、アプリケーション40(3)よりも高い優先順位を有するアプリケーション40(4)に障害が発生したことを通知する情報を監視エージェント50(3)から受信するのに応答して、意思決定エージェント60は、監視エージェント50(3)が、仮想化コントローラ70へのハートビートメッセージの送信を停止するべきであると決定することができる。この決定を識別する情報の受信に応答して、監視エージェント50(3)は、仮想化コントローラ80へのハートビートメッセージの送信を中止することになり、その結果、仮想化コントローラ80は、VM30(3)を異なるホスト(例えば、ホスト10(1))上において再起動することになる。
図1の例と同様に、管理者は、それぞれのVM上の異なるアプリケーションが様々な優先順位を有するように、意思決定エージェント60を構成することができる。管理者は、それぞれのアプリケーションごとに、且つ、それぞれのVMごとに、異なる情報を提供することができる。意思決定エージェントは、監視エージェントがそれに基づいて情報を送信した監視エージェントから受け取った情報の所与の組を処理するために使用する優先順位及びその他の情報(例えば、障害が発生したアプリケーションが稼働しているVMをフェイルオーバーするように決定する前にアプリケーションの再起動を試みる回数など)を選択することができる。従って、監視エージェント50(1)からの情報の受信に応答して、意思決定エージェント60は、VM30(1)と関連する情報を使用して受信情報を処理するように選択することができる。
図3は、仮想化環境において高可用性アプリケーションを提供する方法を示している。この方法は、意思決定エージェントとの関連において動作する監視エージェントによって実行することができる。上述のように、これらのコンポーネントは、互いに同一の演算装置上において稼働してもしなくてもよい。
本方法は、300に示されているように、仮想機械において稼働している監視エージェントが仮想機械において稼働しているアプリケーションの状態を検出した際に始まる。動作300の実行は、監視サービスグループエージェントが、監視対象のアプリケーションを含む別のサービスグループの状態を監視するステップを伴ってもよい。動作300の結果を表す情報を監視エージェントから意思決定エージェントに送信することが可能であり、意思決定エージェントは、監視エージェントと統合してもしなくてもよい。
305の判定において、監視対象アプリケーションが適切に稼働している場合には、310に示されているように、仮想機械を監視している仮想化コントローラに対してハートビートメッセージを提供するように監視エージェントが現在登録されているかどうかについての判定を実行することができる。動作305及び310は、監視エージェントによって生成された情報を処理する意思決定エージェントによって実行することができる。
ハートビートメッセージを提供するように監視エージェントが現在登録されていない場合には、監視エージェントは、315に示されているように、ハートビートメッセージを提供するように登録され、且つ、その結果、現在の期間においてハートビートを送信することになる。監視エージェントがハートビートを提供するように現在登録されている場合には、320に示されているように、監視エージェントは、ハートビートメッセージを現在の期間において仮想化コントローラに対して送信することになる。動作315及び320の実行は、意思決定エージェントが、実行する動作を決定し、且つ、その決定を監視エージェントに伝達するステップと、次いで、監視エージェントが、意思決定エージェントによって選択された動作を実行するステップと、を伴うことができる。
アプリケーションが適切に稼働していない場合には、325に示されているように、アプリケーションに障害が発生しているのか、又は、意図的にオフライン状態とされているか、に関する決定が実行される。動作325の実行は、(例えば、意図的にオフライン状態とされているアプリケーションの場合には、管理者が入力した情報を使用することによって)監視エージェントがアプリケーションの状態を検出するステップと、意思決定エージェントがその情報を処理するステップと、を伴うことができる。
アプリケーションに障害が発生している場合には、監視エージェントは、340及び345に示されているように、(未だ登録されていない場合には)ハートビートを提供するように登録されることになる。この結果、監視エージェントは、330に示されているように、ハートビートメッセージを仮想化コントローラに対して送信しないことになる。
一方、アプリケーションが意図的にオフライン状態とされている場合には、監視エージェントは、335に示されているように、仮想化コントローラにハートビートを送信しないように登録解除されることになる。動作330及び335の実行は、意思決定エージェントが、実行するべき動作を決定し、且つ、その決定を監視エージェントに対して伝達するステップと、次いで、監視エージェントが、意思決定エージェントによって選択された動作を実行するステップと、を伴うことができる。
図3の方法(及び、同様に、後述する図4の方法)は、ハートビート期間当たりに一回ずつ、反復することができる。従って、一例として、1つの期間において、アプリケーションは、適切に動作していると検出される可能性があり、且つ、次の期間において、同一のアプリケーションが、意図的にオフライン状態とされていると検出される可能性がある。これに応答して、監視エージェントの登録を取り消すことができる。この後のいくつかの期間において、アプリケーションは、再度、オンライン状態にあると検出される可能性があり、従って、監視エージェントを、再度、ハートビートを提供するように登録することができる。この後のある時点において、監視エージェントは、アプリケーションに障害が発生していることを検出する可能性があり、その結果、監視エージェントは、ハートビートの送信を中止することにより、(アプリケーションが稼働している仮想機械を再起動させることによって)アプリケーションを再起動させることができる。
図4は、仮想化環境において複数のアプリケーションの高可用性を提供する方法の一例である。図3の方法と同様に、この方法は、意思決定エージェントとの関連において動作している監視エージェントによって実行することができる。
図3の方法は、監視エージェントが、監視エージェントと同一の仮想機械において稼働しているいくつかの監視対象アプリケーションのうちのそれぞれのアプリケーションの動作状態(例えば、適切に稼働している、障害が発生している、又は意図的にオフライン状態とされている)を検出した際に400において始まる。意思決定エージェントが、(例えば、管理者が入力した構成情報に対してアクセスすることによって)監視対象アプリケーションのうちのそれぞれのアプリケーションの優先順位を検出することもできる。
405において、意思決定エージェントは、アプリケーションの動作状態を識別する情報と、優先順位と、を使用し、1つ又は複数のアプリケーションの望ましい組が適切に稼働しているかどうかを判定する。意思決定エージェントは、この決定を下すために、上述のアルゴリズムのうちの1つを、又は、アプリケーションの優先順位を考慮した任意のその他のアルゴリズムを使用することができる。
望ましいアプリケーションが稼働しており、且つ、監視エージェントが、仮想化コントローラに対して仮想機械のハートビートを提供するように現在登録されている場合には、意思決定エージェントは、420に示されているように、監視エージェントが現在の期間においてハートビートメッセージを送信するべきであると決定する。監視エージェントが、現在登録されていない場合には、監視エージェントは、登録され(415)、且つ、その結果、ハートビートメッセージを送信することになる(420)。
望ましいアプリケーションが適切に稼働していない場合には、意思決定エージェントは、425に示されているように、(例えば、最高優先順位のアプリケーションの動作状態を調べることにより、障害が発生した及び意図的にオフライン状態とされたアプリケーションの優先順位の合計を比較することにより、又は、これらに類似したものにより)望ましいアプリケーションに障害が発生しているのか、又は、意図的にオフライン状態とされているのか、を判定することができる。望ましいアプリケーションに障害が発生している場合には、監視エージェントは、440及び445に示されているように、(未だ登録されていない場合には)ハートビートを提供するように登録されることになる。意思決定エージェントは、監視エージェントが現在の期間においてハートビートメッセージを送信しないようにさせることが可能であり(430)、この結果、仮想化コントローラは、障害が発生したアプリケーションが稼働していたVMを別のホスト上において再起動させることになる。一方、望ましいアプリケーションが意図的にオフライン状態とされている場合には、意思決定エージェントは、435に示されているように、監視エージェントが仮想化コントローラとの登録を取り消すようにすることができる。
図5は、上述の監視エージェント及び/又は意思決定エージェントを実装する能力を有する演算システム510のブロックダイアグラムである。演算システム510は、コンピュータ可読命令を実行する能力を有する任意のシングル又はマルチプロセッサ演算装置又はシステムを概略的に表している。演算システム510の例は、限定を伴うことなしに、ワークステーション、パーソナルコンピュータ、ラップトップ、クライアントサイド端末、サーバー、分散型演算システム、ハンドヘルド型装置(例えば、パーソナルデジタルアシスタント及び携帯電話機)、ネットワーク装置、ストレージコントローラ(例えば、アレイコントローラ、テープドライブコントローラ、又はハードドライブコントローラ)、及びこれらに類似したものを含む様々な装置のうちの任意の1つ又は複数の装置を含む。その最も基本的な構成においては、演算システム510は、少なくとも1つのプロセッサ514と、システムメモリ516と、を含んでもよい。監視エージェント及び/又は意思決定エージェントを実装するソフトウェアを実行することにより、演算システム510は、仮想化環境における1つ又は複数のアプリケーションの高可用性を提供するように構成された特殊目的演算装置となる。
プロセッサ514は、データを処理する又は命令を解釈及び実行する能力を有する任意のタイプ又は形態の処理ユニットを概略的に表している。特定の実施形態においては、プロセッサ514は、ソフトウェアアプリケーション又はモジュールから命令を受け取ってもよい。これらの命令は、本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数の実施形態の機能をプロセッサ514に実行させてもよい。例えば、プロセッサ514は、本明細書に記述されている動作を実行してもよいと共に/又は実行するための手段であってもよい。又、プロセッサ514は、本明細書に記述及び/又は図示されている任意のその他の動作、方法、又はプロセスを実行してもよいと共に/又は実行するための手段であってもよい。
システムメモリ516は、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態の揮発性又は不揮発性のストレージ装置又は媒体を概略的に表している。システムメモリ516の例は、限定を伴うことなしに、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、又は任意のその他の適切なメモリ装置を含む。必須ではないが、特定の実施形態においては、演算システム510は、揮発性のメモリユニット(例えば、システムメモリ516など)と不揮発性のストレージ装置(例えば、後程詳述する主ストレージ装置532など)の両方を含んでもよい。一例においては、監視エージェント50(例えば、図5及び図2の監視エージェント50(1)〜50(4)のうちの1つ)又は意思決定エージェント60(例えば、図1の意思決定エージェント60(1)〜60(4)のうちの1つ又は図2の意思決定エージェント60)の1つ又は複数をシステムメモリ516内に読み込んでもよい。
特定の実施形態においては、演算システム510は、プロセッサ514及びシステムメモリ516に加えて、1つ又は複数のコンポーネント又は要素も含んでもよい。例えば、図5に示されているように、演算システム510は、メモリコントローラ518、入出力(I/O)コントローラ520、及び通信インターフェイス522を含んでもよく、これらのそれぞれは、通信インフラストラクチャ512を介して相互接続されてもよい。通信インフラストラクチャ512は、演算装置の1つ又は複数のコンポーネントの間の通信を促進する能力を有する任意のタイプ又は形態のインフラストラクチャを概略的に表している。通信インフラストラクチャ512の例は、限定を伴うことなしに、通信バス(ISA(Industry Standard Architecture)、PCI(Peripheral Component Interconnect)、PCIe(PCI express)、又はこれらに類似したバスなど)と、ネットワークと、を含む。
メモリコントローラ518は、メモリ又はデータを処理するか又は演算システム510の1つ又は複数のコンポーネント間における通信を制御する能力を有する任意のタイプ又は形態の装置を概略的に表している。例えば、特定の実施形態においては、メモリコントローラ518は、プロセッサ514、システムメモリ516、及びI/Oコントローラ520の間における通信を通信インフラストラクチャ512を介して制御してもよい。特定の実施形態においては、メモリコントローラ518は、単独で又はその他の要素との組合せにおいて、本明細書に記述及び/又は図示されている動作又は機能のうちの1つ又は複数を実行してもよいと共に/又はこれを実行するための手段であってもよい。
I/Oコントローラ520は、演算装置の入出力機能を調整及び/又は制御する能力を有する任意のタイプ又は形態のモジュールを概略的に表している。例えば、特定の実施形態においては、I/Oコントローラ520は、プロセッサ514、システムメモリ516、通信インターフェイス522、ディスプレイアダプタ526、入力インターフェイス530、及びストレージインターフェイス534などの演算システム510の1つ又は複数の要素の間のデータの転送を制御又は促進してもよい。
通信インターフェイス522は、演算システム510と1つ又は複数の更なる装置の間の通信を促進する能力を有する任意のタイプ又は形態の通信装置又はアダプタを概略的に表している。例えば、特定の実施形態においては、通信インターフェイス522は、演算システム510と更なる演算システムを含むプライベート又はパブリックネットワークの間の通信を促進してもよい。通信インターフェイス522の例は、限定を伴うことなしに、有線ネットワークインターフェイス(ネットワークインターフェイスカードなど)、無線ネットワークインターフェイス(無線ネットワークインターフェイスカードなど)、モデム、及び任意のその他の適切なインターフェイスを含む。少なくとも1つの実施形態においては、通信インターフェイス522は、インターネットなどのネットワークに対する直接リンクを介してリモートサーバーに対する直接接続を提供してもよい。又、通信インターフェイス522は、例えば、ローカルエリアネットワーク(Ethernetネットワークなど)、パーソナルエリアネットワーク、電話又はケーブルネットワーク、セルラー電話接続、衛星データ接続、又は任意のその他の適切な接続を通じて、このような接続を間接的に提供してもよい。
又、特定の実施形態において、通信インターフェイス522は、演算システム510と1つ又は複数の更なるネットワーク又はストレージ装置の間の通信を外部バス又は通信チャネルを介して促進するように構成されたホストアダプタを表してもよい。ホストアダプタの例は、限定を伴うことなしに、SCSI(Small Computer System Interface)ホストアダプタ、USB(Universal Serial Bus)ホストアダプタ、IEEE(Institute of Electrical and Electronics Engineers)1394ホストアダプタ、SATA(Serial Advanced Technology Attachment)及びeSATA(external SATA)ホストアダプタ、ATA(Advanced Technology Attachment)及びPATA(Parallel ATA)ホストアダプタ、Fibre Channelインターフェイスアダプタ、Ethernetアダプタ、又は、これらに類似したものを含む。
通信インターフェイス522は又、演算システム510が分散又はリモート演算に関与することを許容してもよい。例えば、通信インターフェイス522は、リモート装置から命令を受信しても、実行のためにリモート装置に対して命令を送信してもよい。
図5に示されているように、演算システム510は、ディスプレイアダプタ526を介して通信インフラストラクチャ512に結合された少なくとも1つの表示装置524も含んでもよい。表示装置524は、ディスプレイアダプタ526によって転送された情報を視覚的に表示する能力の有る任意のタイプ又は形態の装置を概略的に表している。同様に、ディスプレイアダプタ526は、表示装置524上における表示ために通信インフラストラクチャ512から(又は、当技術分野において既知のように、フレームバッファから)グラフィックス、テキスト、及びその他のデータを転送するように構成された任意のタイプ又は形態の装置を概略的に表している。
図5に示されているように、演算システム510は、入力インターフェイス(530)を介して通信インフラストラクチャ512に結合された少なくとも1つの入力装置528も含んでもよい。入力装置528は、コンピュータ又は人間によって生成された入力を演算システム510に提供する能力を有する任意のタイプ又は形態の入力装置を概略的に表している。入力装置528の例は、限定を伴うことなしに、キーボード、ポインティング装置、音声認識装置、又は任意のその他の入力装置を含む。
図5に示されているように、演算システム510は、ストレージインターフェイス534を介して通信インフラストラクチャ512に結合された主ストレージ装置532及びバックアップストレージ装置533も含んでもよい。ストレージ装置532及び533は、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を概略的に表している。例えば、ストレージ装置532及び533は、磁気ディスクドライブ(例えば、所謂ハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、又はこれらに類似したものであってよい。ストレージインターフェイス534は、ストレージ装置532及び533と演算システム510のその他のコンポーネントの間においてデータを転送するための任意のタイプ又は形態のインターフェイス又は装置を概略的に表している。主ストレージ装置532のようなストレージ装置は、構成情報590(例えば、上述のアプリケーションの優先順位及びアプリケーション当たりの再試行の試みの数を示す構成情報)などの情報を保存することができる。
特定の実施形態においては、ストレージ装置532及び533は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読情報を保存するように構成された着脱自在のストレージユニットとの間において読取り及び/又は書込みを実行するように構成してもよい。適切な着脱自在のストレージユニットの例は、限定を伴うことなしに、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置、又はこれらに類似したものを含む。又、ストレージ装置532及び533は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読命令を演算システム510に読み込むことができるようにするためのその他の類似の構造又は装置を含んでもよい。例えば、ストレージ装置532及び533は、ソフトウェア、データ、又はその他のコンピュータ可読情報の読取り及び書込みを実行するように構成してもよい。又、ストレージ装置532及び533は、演算システム510の一部であってもよく、又は、その他のインターフェイスシステムを通じてアクセスされる別個の装置であってもよい。
多くのその他の装置又はサブシステムを演算システム510に接続してもよい。逆に、本明細書に記述及び/又は図示されている実施形態を実施するために、図5に示されているコンポーネント及び装置のすべてが存在する必要はない。又、以上において参照した装置及びサブシステムは、図5に示されているものとは異なる方法によって相互接続してもよい。
演算システム510は又、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を利用してもよい。例えば、本明細書に開示されている実施形態のうちの1つ又は複数をコンピュータ可読ストレージ媒体上のコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御ロジックとも呼称される)として符号化してもよい。コンピュータ可読ストレージ媒体の例は、磁気ストレージ媒体(例えば、ハードディスクドライブ及びフロッピーディスク)、光ストレージ媒体(例えば、CD−ROM又はDVD−ROM)、電子ストレージ媒体(例えば、半導体ドライブ及びフラッシュ媒体)、及びこれらに類似したものを含む。又、このようなコンピュータプログラムは、メモリ内における保存のために、インターネットなどのネットワークを介して、又は、担持媒体上において、演算システム510に転送することもできる。
コンピュータプログラムを収容するコンピュータ可読媒体を演算システム510に装着してもよい。次いで、コンピュータ可読媒体上に保存されているコンピュータプログラムのすべて又は一部をシステムメモリ516及び/又はストレージ装置532及び533の様々な部分に保存してもよい。演算システム510に読み込まれたコンピュータプログラムは、プロセッサ514によって実行された際に、プロセッサ514が本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数の実施形態の機能を実行するようにさせてもよいと共に/又は実行するための手段となるようにさせてもよい。更には、或いは、この代わりに、本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数をファームウェア及び/又はハードウェアとして実装してもよい。例えば、演算システム510は、本明細書に開示されている実施形態のうちの1つ又は複数を実装するように適合されたASIC(Application Specific Integrated Circuit)として構成してもよい。
図6は、クライアントシステム610、620、及び630並びにサーバー640及び645をネットワーク650に結合してもよいネットワークアーキテクチャ600のブロックダイアグラムである。クライアントシステム610、620、及び630は、図5の演算システム510などの任意のタイプ又は形態の演算装置又はシステムを概略的に表している。
同様に、サーバー640及び645は、様々なデータベースサービスを提供すると共に/又は特定のソフトウェアアプリケーションを稼働させるように構成されたアプリケーションサーバー又はデータベースサーバーなどの演算装置又はシステムを概略的に表している。ネットワーク650は、例えば、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、又はインターネットを含む任意の通信又はコンピュータネットワークを概略的に表している。一例においては、クライアントシステム610、620、及び/又は630並びに/若しくはサーバー640及び/又は645は、図1及び図2に示されているように、監視エージェント及び/又は意思決定エージェントを含んでもよい。
図6に示されているように、1つ又は複数のストレージ装置660(1)〜660(N)をサーバー640に対して直接的に装着してもよい。同様に、1つ又は複数のストレージ装置670(1)〜670(N)をサーバー645に対して直接的に装着してもよい。ストレージ装置660(1)〜660(N)及びストレージ装置670(1)〜670(N)は、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を概略的に表している。特定の実施形態においては、ストレージ装置660(1)〜660(N)及びストレージ装置670(1)〜670(N)は、NFS(Network File System)、SMB(Server Message Block)、又はCIFS(Common Internet File System)などの様々なプロトコルを使用してサーバー640及び645と通信するように構成されたNAS(Network−Attached Storage)装置を表してもよい。
又、サーバー640及び645をSAN(Storage Area Network)ファブリック680に接続してもよい。SANファブリック680は、複数のストレージ装置の間の通信を促進する能力を有する任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを概略的に表している。SANファブリック680は、サーバー640及び645、複数のストレージ装置690(1)〜690(N)、及び/又はインテリジェットストレージアレイ695の間の通信を促進してもよい。又、SANファブリック680は、装置690(1)〜690(N)及びアレイ695が、クライアントシステム610、620、及び630にとって、ローカルに装着された装置として見えるように、クライアントシステム610、620、及び630、及びストレージ装置690(1)〜690(N)、並びに/又はインテリジェントストレージアレイ695の間の通信をネットワーク650並びにサーバー640及び645を介して促進してもよい。ストレージ装置660(1)〜660(N)及びストレージ装置670(1)〜670(N)と同様に、ストレージ装置690(1)〜690(N)及びインテリジェントストレージアレイ695も、データ及び/又はその他のコンピュータ可読媒体命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を概略的に表している。
特定の実施形態においては、且つ、図5の演算システム510を参照すれば、図5の通信インターフェイス522などの通信インターフェイスを使用し、それぞれのクライアントシステム610、620、及び630とネットワーク650の間の接続を提供してもよい。クライアントシステム610、620、及び630は、例えば、ウェブブラウザ又はその他のクライアントソフトウェアを使用することにより、サーバー640又は645上の情報に対してアクセスすることができてもよい。このようなソフトウェアは、クライアントシステム610、620、及び630が、サーバー640、サーバー645、ストレージ装置660(1)〜660(N)、ストレージ装置670(1)〜670(N)、ストレージ装置690(1)〜690(N)、又はインテリジェットストレージアレイ695によってホスティングされたデータに対してアクセスできるようにしてもよい。図6は、データを交換するためのネットワーク(インターネットなど)の使用法を示しているが、本明細書に記述及び/又は図示されている実施形態は、インターネット又は任意の特定のネットワークに基づいた環境に限定されるものではない。
少なくとも一実施形態においては、本明細書に開示されている実施形態のうちの1つ又は複数の実施形態のすべて又は一部をコンピュータプログラムとして符号化してもよく、且つ、サーバー640、サーバー645、ストレージ装置660(1)〜660(N)、ストレージ装置670(1)〜670(N)、ストレージ装置690(1)〜690(N)、インテリジェントストレージアレイ695、又はこれらの任意の組合せに読み込んでもよく、且つ、これらによって実行してもよい。又、本明細書に開示されている実施形態のうちの1つ又は複数の実施形態のすべて又は一部をコンピュータプログラムとして符号化してもよく、サーバー640内に保存してもよく、サーバー645によって実行してもよく、且つ、ネットワーク650上においてクライアントシステム610、620、及び630に分配してもよい。
いくつかの例においては、図1のシステム100のすべて又は一部は、クラウド演算の又はネットワークに基づいた環境の一部を表してもよい。クラウド演算環境は、様々なサービス及びアプリケーションをインターネットを介して提供してもよい。これらのクラウドに基づいたサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど)には、ウェブブラウザ又はその他のリモートインターフェイスを通じてアクセス可能であってよい。本明細書に記述されている様々な機能は、リモートデスクトップ環境又は任意のその他のクラウドに基づいた演算環境を通じて提供してもよい。
更には、本明細書に記述されているコンポーネントの1つ又は複数は、データ、物理的装置、及び/又は物理的装置の表現を1つの形態から別の形態に変換してもよい。例えば、監視エージェントとの関連において動作する意思決定エージェントは、ハートビートメッセージの送信を制御することにより、仮想機械を別のホスト上において再起動させるように、仮想化システムの構成を変換してもよい。
以上、いくつかの実施形態との関連において、本発明について説明したが、本発明は、本明細書に記述されている特定の形態に限定されるものと解釈してはならない。逆に、本発明は、添付の請求項によって規定された本発明の範囲に合理的に含まれうる代替形態、変形形態、及び均等物も含むものと解釈されたい。
本発明は、演算装置及びネットワーク接続された演算装置の分野に適用される。

Claims (12)

  1. 仮想機械において稼働している複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態を示す情報を前記仮想機械において稼働している監視エージェントから受信するステップと、
    前記仮想機械において稼働していない意思決定エージェントによって、前記複数のアプリケーションのうちのそれぞれのアプリケーションの優先順位を検出するステップと、
    前記仮想機械を再起動するべきであるかどうかを、前記複数のアプリケーションのうちのそれぞれのアプリケーションの前記動作状態及び前記優先順位に基づいて、判定するステップと、
    前記仮想機械を再起動するべきであるかどうかに関する前記判定に基づいて、前記監視エージェントがタイムアウトインターバルの満了前にハートビートメッセージを仮想化コントローラに対して送信するべきであるかどうかを決定するステップであって、前記ハートビートメッセージは、前記複数のアプリケーションのそれぞれの動作状態を識別し、前記仮想化コントローラは、前記監視エージェントが前記タイムアウトインターバルの満了前に前記ハートビートメッセージを送信しない場合に、前記仮想機械を再起動するように構成されており、且つ、前記決定は、演算装置によって実行される、ステップと、を有する方法。
  2. 前記判定は、意思決定エージェントによって実行され、且つ、前記意思決定エージェントは、前記仮想機械において稼働してはいない請求項1に記載の方法。
  3. 前記情報が、前記アプリケーションが適切に稼働していないと識別していることに応答して、前記監視エージェントが前記アプリケーションを再起動するように試みるべきであると決定するステップを更に有し、前記アプリケーションを再起動するための前記試みは、前記仮想機械を再起動するべきであるかどうかに関する前記判定の前に、実行される請求項2に記載の方法。
  4. 前記情報が、前記アプリケーションが意図的にオフライン状態とされていると識別していることに応答して、前記仮想化コントローラに対してハートビートメッセージを提供しないように、前記仮想化コントローラに対して前記監視エージェントの登録を解除する要求を送信し、前記仮想化コントローラに登録された前記監視エージェントの情報を解除するべく決定するステップを更に有する請求項1に記載の方法。
  5. 前記監視エージェントの登録が解除された後に、前記監視エージェントが前記アプリケーションの監視を継続するステップを更に有する請求項4に記載の方法。
  6. 管理者から通知を受け取るステップを更に有し、前記通知は、前記アプリケーションが意図的にオフライン状態とされているのかどうか、又は、前記監視エージェントが前記アプリケーションの監視を継続するべきであるのかどうか、のうちの少なくとも1つを通知する請求項1に記載の方法。
  7. 1つ又は複数のプロセッサと、
    前記1つ又は複数のプロセッサに結合されると共にプログラム命令を保存するメモリと、
    を有するシステムであって
    前記プログラム命令は、
    仮想機械において稼働している複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態を示す情報を前記仮想機械において稼働している監視エージェントから受信し、
    前記仮想機械において稼働していない意思決定エージェントによって、前記複数のアプリケーションのうちのそれぞれのアプリケーションの優先順位を検出し、
    前記仮想機械を再起動するべきであるかどうかを、前記複数のアプリケーションのうちのそれぞれのアプリケーションの前記動作状態及び前記優先順位に基づいて、判定し、且つ、
    前記仮想機械を再起動するべきであるかどうかに関する前記判定に基づいて、前記監視エージェントがタイムアウトインターバルの満了前にハートビートメッセージを仮想化コントローラに対して送信するべきであるかどうかを決定し、前記ハートビートメッセージは、前記複数のアプリケーションのそれぞれの動作状態を識別し、前記仮想化コントローラは、前記監視エージェントが前記タイムアウトインターバルの満了前に前記ハートビートメッセージを送信しない場合に、前記仮想機械を再起動するように構成される、ように、前記1つ又は複数のプロセッサによって実行可能である、システム。
  8. 前記プログラム命令は、意思決定エージェントを実装するように構成され、且つ、前記意思決定エージェントは、前記仮想機械において稼働してはいない請求項7に記載のシステム。
  9. 前記プログラム命令は、前記情報が、前記アプリケーションが意図的にオフライン状態とされていると識別していることに応答して、前記仮想化コントローラに対してハートビートメッセージを提供しないように、前記仮想化コントローラに対して前記監視エージェントの登録を解除する要求を送信し、前記仮想化コントローラに登録された前記監視エージェントの情報を解除するべく決定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項7に記載のシステム。
  10. プログラム命令を有するコンピュータ可読ストレージ媒体であって、
    前記プログラム命令は、
    仮想機械内において稼働している複数のアプリケーションのうちのそれぞれのアプリケーションの動作状態を示す情報を前記仮想機械において稼働している監視エージェントから受信し、
    前記仮想機械において稼働していない意思決定エージェントによって、前記複数のアプリケーションのうちのそれぞれのアプリケーションの優先順位を検出し、
    前記仮想機械を再起動するべきであるかどうかを、前記複数のアプリケーションのうちのそれぞれのアプリケーションの前記動作状態及び前記優先順位に基づいて、判定し、且つ、
    前記仮想機械を再起動するべきかどうかに関する前記判定に基づいて、前記監視エージェントがタイムアウトインターバルの満了前に仮想化コントローラに対してハートビートメッセージを送信するべきであるかどうかを決定し、前記ハートビートメッセージは、前記複数のアプリケーションのそれぞれの動作状態を識別し、前記仮想化コントローラは、前記監視エージェントが前記タイムアウトインターバルの満了前に前記ハートビートメッセージを送信しない場合に、前記仮想機械を再起動させるように、構成される、ように、1つ又は複数のプロセッサによって実行可能である、媒体。
  11. 前記プログラム命令は、意思決定エージェントを実装するように、前記1つ又は複数のプロセッサによって更に実行可能であり、且つ、前記意思決定エージェントは、前記仮想機械において稼働してはいない請求項10に記載のコンピュータ可読ストレージ媒体。
  12. 前記プログラム命令は、前記情報が、前記アプリケーションが意図的にオフライン状態とされていると識別していることに応答して、前記仮想化コントローラに対してハートビートメッセージを提供しないように、前記仮想化コントローラに対して前記監視エージェントの登録を解除する要求を送信し、前記仮想化コントローラに登録された前記監視エージェントの情報を解除するべく決定するように、前記1つ又は複数のプロセッサによって更に実行可能である請求項10に記載のコンピュータ可読ストレージ媒体。
JP2013522005A 2010-07-30 2011-07-29 高可用性仮想機械環境におけるアプリケーションの高可用性の提供 Expired - Fee Related JP5851503B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/847,030 US8424000B2 (en) 2010-07-30 2010-07-30 Providing application high availability in highly-available virtual machine environments
US12/847,030 2010-07-30
PCT/US2011/045951 WO2012016175A1 (en) 2010-07-30 2011-07-29 Providing application high availability in highly-available virtual machine environments

Publications (2)

Publication Number Publication Date
JP2013535745A JP2013535745A (ja) 2013-09-12
JP5851503B2 true JP5851503B2 (ja) 2016-02-03

Family

ID=44515140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013522005A Expired - Fee Related JP5851503B2 (ja) 2010-07-30 2011-07-29 高可用性仮想機械環境におけるアプリケーションの高可用性の提供

Country Status (5)

Country Link
US (1) US8424000B2 (ja)
EP (1) EP2598993B1 (ja)
JP (1) JP5851503B2 (ja)
CN (1) CN103201724B (ja)
WO (1) WO2012016175A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021003867T5 (de) 2020-10-20 2023-07-20 Mitsubishi Heavy Industries, Ltd. Steuerungsvirtualisierungsvorrichtung und steuersystem

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023171A1 (ja) * 2010-08-16 2012-02-23 富士通株式会社 情報処理装置、リモート保守方法、及びプログラム
US10042656B2 (en) * 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
US10509705B2 (en) * 2011-11-04 2019-12-17 Veritas Technologies Llc Application protection through a combined functionality failure manager
TWI643063B (zh) * 2012-03-06 2018-12-01 智邦科技股份有限公司 Detection method
CN102664763A (zh) * 2012-03-20 2012-09-12 浪潮电子信息产业股份有限公司 一种快速检测连接状态并做虚拟机ha的方法
CN103377068B (zh) * 2012-04-13 2017-04-19 联想(北京)有限公司 控制方法和电子设备
JP5933356B2 (ja) * 2012-06-12 2016-06-08 ルネサスエレクトロニクス株式会社 コンピュータシステム
US9554366B2 (en) 2012-08-31 2017-01-24 Qualcomm Incorporated Optimized always-on wireless service using network assistance and keep-alives
US9507586B2 (en) 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US9032400B1 (en) * 2012-10-25 2015-05-12 Amazon Technologies, Inc. Opportunistic initiation of potentially invasive actions
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US9521188B1 (en) * 2013-03-07 2016-12-13 Amazon Technologies, Inc. Scheduled execution of instances
US9176830B2 (en) * 2013-05-24 2015-11-03 Hyundai Motor Company Method for determining software error in virtualization based integrated control system
US9208015B2 (en) * 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine
US9535794B2 (en) 2013-07-26 2017-01-03 Globalfoundries Inc. Monitoring hierarchical container-based software systems
US20150066553A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for multi-tenant service catalog for a software defined cloud
US9563374B2 (en) 2013-12-16 2017-02-07 Horatio Lo Storage proxy method for data-service SAN appliance
US9792243B2 (en) * 2013-12-26 2017-10-17 Intel Corporation Computer architecture to provide flexibility and/or scalability
US10103959B2 (en) * 2014-01-07 2018-10-16 International Business Machines Corporation Scalable software monitoring infrastructure, using parallel task queuing, to operate in elastic cloud environments
KR20150095029A (ko) * 2014-02-12 2015-08-20 한국전자통신연구원 응용 프로그램 가상화 시스템 및 사용자 단말의 응용 프로그램 가상화 방법
CN109101318B (zh) 2014-03-12 2022-04-05 华为技术有限公司 一种虚拟机迁移控制方法及装置
CN103914352B (zh) * 2014-03-19 2017-11-14 汉柏科技有限公司 云集群系统中寄存器数据的修复方法及装置
US9524214B1 (en) 2014-03-24 2016-12-20 Google Inc. Virtual machine
US10063429B2 (en) * 2014-04-09 2018-08-28 The Keyw Corporation Systems and methods for optimizing computer network operations
US11635979B2 (en) * 2014-07-21 2023-04-25 Vmware, Inc. Modifying a state of a virtual machine
EP3210367B1 (en) * 2014-10-23 2020-07-22 Telefonaktiebolaget LM Ericsson (publ) System and method for disaster recovery of cloud applications
US10079797B2 (en) * 2014-10-29 2018-09-18 Vmware, Inc. Methods, systems and apparatus to remotely start a virtual machine
US9921866B2 (en) 2014-12-22 2018-03-20 Intel Corporation CPU overprovisioning and cloud compute workload scheduling mechanism
US10387505B2 (en) 2014-12-29 2019-08-20 Samsung Electronics Co., Ltd. Generating advertisements using functional clusters
WO2016151626A1 (ja) * 2015-03-24 2016-09-29 三菱電機株式会社 情報処理装置
CN105991345A (zh) * 2015-04-27 2016-10-05 杭州迪普科技有限公司 虚拟机故障处理方法及装置
CN106302569B (zh) 2015-05-14 2019-06-18 华为技术有限公司 处理虚拟机集群的方法和计算机系统
MY197308A (en) * 2015-06-30 2023-06-12 Huawei Tech Co Ltd Method for interaction between terminal and network device, and terminal
US9898321B2 (en) * 2015-07-23 2018-02-20 At&T Intellectual Property I, L.P. Data-driven feedback control system for real-time application support in virtualized networks
DE102015214376A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zur On-Board-Diagnose bei einem Steuergerät mit einem Hypervisor und mindestens einem unter dem Hypervisor betriebenen Gastsystem
US10505869B2 (en) 2015-08-04 2019-12-10 International Business Machines Corporation Mimicking a presence notification from an application executing on a virtual component to optimize computing resource allocation/utilization
US9852035B2 (en) * 2015-08-25 2017-12-26 International Business Machines Corporation High availability dynamic restart priority calculator
CN106559441B (zh) * 2015-09-25 2020-09-04 华为技术有限公司 一种基于云计算服务的虚拟机监控方法、装置及系统
CN105357038B (zh) * 2015-10-26 2019-05-07 北京百度网讯科技有限公司 监控虚拟机集群的方法和系统
CN107491339A (zh) * 2016-06-13 2017-12-19 深圳市深信服电子科技有限公司 服务器虚拟化的虚拟机监控方法及装置
US10282261B2 (en) * 2016-06-20 2019-05-07 Vmware, Inc. Pooled memory heartbeat in shared memory architecture
US10275272B2 (en) 2016-06-20 2019-04-30 Vmware, Inc. Virtual machine recovery in shared memory architecture
US10587673B2 (en) * 2016-06-29 2020-03-10 Nicira, Inc. Decoupling network connections from an application while the application is temporarily down
US10868883B2 (en) 2016-06-29 2020-12-15 Nicira, Inc. Upgrading a proxy that decouples network connections from an application during application's downtime
CN107870801B (zh) * 2016-09-26 2020-05-26 中国电信股份有限公司 虚拟机高可用功能自动开通方法、装置和系统
CN106959885A (zh) * 2017-03-31 2017-07-18 山东超越数控电子有限公司 一种虚拟机高可用实现系统及其实现方法
US10379923B2 (en) * 2017-09-15 2019-08-13 International Business Machines Corporation Efficiently repairing virtual machines by means of DVFS-aware proactive scheduling
CN107885576A (zh) * 2017-10-16 2018-04-06 北京易讯通信息技术股份有限公司 一种基于OpenStack的私有云中虚拟机HA的方法
US11048320B1 (en) * 2017-12-27 2021-06-29 Cerner Innovation, Inc. Dynamic management of data centers
CN108600284B (zh) * 2017-12-28 2021-05-14 武汉噢易云计算股份有限公司 一种基于Ceph的虚拟机高可用实现方法及系统
US11271801B2 (en) 2018-06-27 2022-03-08 T-Mobile Usa, Inc. Compromised network node detection system
CN109445925B (zh) * 2018-11-09 2022-02-18 郑州云海信息技术有限公司 一种应用程序接管方法、装置及系统
JP7181467B2 (ja) * 2019-04-19 2022-12-01 富士通株式会社 制御方法、制御プログラム、および情報処理装置
CN110825487B (zh) * 2019-09-19 2022-07-15 烽火通信科技股份有限公司 一种虚拟机防脑裂的管理方法及主服务器
CN111104199B (zh) * 2019-11-19 2024-07-30 杭州海康威视系统技术有限公司 虚拟机高可用的方法及装置
US11443320B2 (en) 2020-01-07 2022-09-13 Bank Of America Corporation Intelligent systems for identifying transactions associated with an institution impacted by an event using a dashboard
US11238459B2 (en) 2020-01-07 2022-02-01 Bank Of America Corporation Intelligent systems for identifying transactions associated with an institution impacted by an event
US11971728B1 (en) 2020-10-23 2024-04-30 Rockwell Collins, Inc. Platform guidance system incorporating hierarchical modular arbitration architecture

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3711789B2 (ja) * 1999-06-08 2005-11-02 日立オムロンターミナルソリューションズ株式会社 システム自動再立ち上げ制御方法およびシステム自動再立ち上げ制御システム
US6691244B1 (en) * 2000-03-14 2004-02-10 Sun Microsystems, Inc. System and method for comprehensive availability management in a high-availability computer system
US20020194319A1 (en) * 2001-06-13 2002-12-19 Ritche Scott D. Automated operations and service monitoring system for distributed computer networks
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US7529822B2 (en) * 2002-05-31 2009-05-05 Symantec Operating Corporation Business continuation policy for server consolidation environment
US7886294B2 (en) * 2004-12-28 2011-02-08 Sap Ag Virtual machine monitoring
JP2007034479A (ja) * 2005-07-25 2007-02-08 Nec Corp 稼働系装置、待機系装置、稼働・待機システム、稼働系制御方法、待機系制御方法、および、稼働系・待機系制御方法
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof
US7797587B2 (en) * 2007-06-06 2010-09-14 Dell Products L.P. System and method of recovering from failures in a virtual machine
US8209684B2 (en) * 2007-07-20 2012-06-26 Eg Innovations Pte. Ltd. Monitoring system for virtual application environments
JP2009080704A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
JP2009080692A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
JP4999670B2 (ja) * 2007-12-20 2012-08-15 三菱電機株式会社 計算機装置
WO2009133669A1 (ja) * 2008-04-28 2009-11-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
US7886183B2 (en) * 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
JP2010134557A (ja) * 2008-12-02 2010-06-17 Nec Corp 仮想マシン運用管理システム、その運用管理方法、及びプログラム
CN101853710B (zh) * 2009-03-31 2014-11-19 Ge医疗系统环球技术有限公司 滤波器及利用该滤波器的x射线成像设备
US8219990B2 (en) * 2009-05-28 2012-07-10 Novell, Inc. Techniques for managing virtual machine (VM) states

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021003867T5 (de) 2020-10-20 2023-07-20 Mitsubishi Heavy Industries, Ltd. Steuerungsvirtualisierungsvorrichtung und steuersystem

Also Published As

Publication number Publication date
US8424000B2 (en) 2013-04-16
JP2013535745A (ja) 2013-09-12
EP2598993A1 (en) 2013-06-05
CN103201724B (zh) 2017-05-03
EP2598993B1 (en) 2017-11-22
WO2012016175A1 (en) 2012-02-02
CN103201724A (zh) 2013-07-10
US20120030670A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
US8413144B1 (en) Providing application-aware high availability of virtual machines
US10609159B2 (en) Providing higher workload resiliency in clustered systems based on health heuristics
US8935563B1 (en) Systems and methods for facilitating substantially continuous availability of multi-tier applications within computer clusters
US8713362B2 (en) Obviation of recovery of data store consistency for application I/O errors
US9489274B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
JP5536878B2 (ja) ファイバ・チャネル・ファブリックへのアクセスの変更
KR101504882B1 (ko) 하드웨어 장애 완화
US20150355982A1 (en) Vm and host management function availability during management network failure in host computing systems in a failover cluster
US10353786B2 (en) Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program
US9148479B1 (en) Systems and methods for efficiently determining the health of nodes within computer clusters
US9678838B2 (en) Protecting virtual machines from network failures
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
JP6418255B2 (ja) 障害監視装置、仮想ネットワークシステム、障害監視方法およびプログラム
US9195528B1 (en) Systems and methods for managing failover clusters
WO2013190694A1 (ja) 計算機の復旧方法、計算機システム及び記憶媒体
US11392423B2 (en) Method for running a quorum-based system by dynamically managing the quorum
US10454773B2 (en) Virtual machine mobility
US10397087B1 (en) Status monitoring system and method
JP7474168B2 (ja) 監視システムおよび障害監視方法
US11074120B2 (en) Preventing corruption by blocking requests
US20180225201A1 (en) Preserving volatile memory across a computer system disruption
US9384052B2 (en) Resilient message passing in applications executing separate threads in a plurality of virtual compute nodes
US10049011B2 (en) Continuing operation of a quorum based system after failures
CN107851033B (zh) 减轻远程存储装置的间歇不可用性对虚拟机的影响

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140324

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140331

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140424

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140502

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140523

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151202

R150 Certificate of patent or registration of utility model

Ref document number: 5851503

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees