JP2019504374A - 仮想マシンの高速復旧方法及び装置 - Google Patents

仮想マシンの高速復旧方法及び装置 Download PDF

Info

Publication number
JP2019504374A
JP2019504374A JP2018519449A JP2018519449A JP2019504374A JP 2019504374 A JP2019504374 A JP 2019504374A JP 2018519449 A JP2018519449 A JP 2018519449A JP 2018519449 A JP2018519449 A JP 2018519449A JP 2019504374 A JP2019504374 A JP 2019504374A
Authority
JP
Japan
Prior art keywords
host
backup
read
write request
data
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.)
Granted
Application number
JP2018519449A
Other languages
English (en)
Other versions
JP6735820B2 (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Publication of JP2019504374A publication Critical patent/JP2019504374A/ja
Application granted granted Critical
Publication of JP6735820B2 publication Critical patent/JP6735820B2/ja
Active 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45587Isolation or security of virtual machine instances
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本発明は仮想マシンの高速復旧方法、装置及びシステムを開示している。該仮想マシンの高速復旧方法は、第一ホストと第二ホストとをピアツーピア記憶に結び付けて、第一ホストの仮想マシン上の読み書きリクエストを第二ホストにバックアップさせること、第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは、第一ホストの仮想マシンを起動すること、バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断すること、未完了な場合、読み書きリクエストを第二ホストに送信すること、第二ホストは読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ指定データをバックアップホストに送信すること、バックアップホストは指定データを呼び出し側に送信することを含む。【選択図】図1

Description

(関連出願の相互参照)
特許出願は2016年12月28に出願された特許出願第201611240016.5、名称が“仮想マシンの高速復旧方法及び装置”の中国発明特許出願に基づき、かつその優先権を要求する。
(技術分野)
本発明はコンピュータ仮想化の技術分野に関し、特に仮想マシンの高速復旧方法、装置及びシステムに関する。
仮想化技術は既にIaaS層(Infrastructure as a Service、すなわちサービスとしてのインフラストラクチャー)の重要な役割の一つとなっている。仮想化技術は仮想マシンモニタVMM(Virtual Machine Monitor)ソフトウェアによって物理マシンのCPU、内部メモリ、I/O等の装置に対して仮想化を行い、一台の物理マシン内に複数の仮想マシンVM(Virtual Machine)を仮想化し、各VMに、それぞれ一つのゲストオペレーティングシステム(Guest OS、ゲスト)を実行する。VMMは一つのホストオペレーティングシステム(Dom0又はHost OS、ホスト)に協力して、同一物理マシンにある仮想マシン間の相互の隔離を保証し、システムダウンを必要としない先決条件の下でVMを一台の物理マシンからオンラインで他の一台の物理マシンへ移行すること(共有ストレージに基づくオンライン移行とローカルストレージに基づくオンライン移行を含む)をサポートする。
仮想化技術はVM機能とパフォーマンス隔離、VMオンライン移行に基づくロードバランシングとシステム故障許容、アプリケーション移植性、リソース利用率の向上、運用保守難度とコストの低減等の面における優越性により、各種の大型データセンターとクラウドコンピューティング環境のIaaSプラットフォームに幅広く適用されている。その典型的な応用は高性能計算、ビッグデータ処理、Web事務処理等を包含する。
現在のKVM(Kernel−based Virtual Machine、システム仮想化モジュール)のクラウドストレージ手段において、仮想マシンの読み書きリクエストをホストのローカルストレージに直接記憶する。仮想マシンのあるホストはシステムダウン又は他の故障によってサービスを提供し続けることができない場合、仮想マシンをアクセスさせるための利用可能なストレージがないため、仮想マシンを高速に復旧することができず、それにより仮想マシン上のサービス停止を引き起こす。
本発明は仮想マシンの高速復旧方法、装置及びシステムを提供し、それによって従来の仮想マシンのあるホストのシステムダウンの場合、仮想マシンを高速に復旧することができないという問題を解決する。
本発明がその技術的問題を解決するために採用する技術的解決手段は、以下のとおりである。
第一の態様において、本発明は、
第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせることと、
前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動することと、
バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断することと、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信することと、
前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信することと、
前記バックアップホストは前記指定データを前記呼び出し側に送信することを含む、
仮想マシンの高速復旧方法を提供する。
第二の態様において、本発明は、
第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるために用いられるデータバックアップユニットと、
前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動するために用いられるバックアップマシン起動ユニットと、
バックアップホスト上で起動された仮想マシンに、呼び出し側から送信した読み書きリクエストを受信させ、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断して、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信するために用いられるリクエスト判断ユニットと、
前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信するために用いられる第一処理ユニットと、
前記バックアップホストは前記指定データを前記呼び出し側に送信するために用いられるデータ送信ユニットと、を含む、
仮想マシンの高速復旧装置をさらに提供する。
第三の態様において、本発明は、それぞれプロセッサが設置されている第一ホスト、第二ホスト及びバックアップホストを含み、前記プロセッサは、
第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるステップと、
前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動するステップと、
バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断するステップと、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信するステップと、
前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信するステップと、
前記バックアップホストは前記指定データを前記呼び出し側に送信するステップと、を実行する、
仮想マシンの高速復旧システムをさらに提供する。
本発明は従来技術に比べて以下の利点を有する。本発明の提供する仮想マシンの高速復旧方法、装置及びシステムにおいて、第一ホストがシステムダウン又はパワーオフされると、バックアップホストに第一ホストの仮想マシンを起動し、かつ第二ホストからバックアップホストへの全量データの同期が未完了な場合、バックアップホストの仮想マシンが受信した読み書きリクエストを、仮想マシンのバックアップデータを有する第二ホストに転送して実行することによって、仮想マシンがストレージしなく高速移行及び故障復旧を実現することができ、共有ストレージを必要とせず、かつ仮想マシンのロバスト性を高め、仮想マシンをアクセスさせるための利用可能なストレージがないことによって引き起こす仮想マシン上のサービス停止現象の発生を避ける。
次に図面及び実施例を併せて本発明に対してさらに説明し、図面は以下のとおりである。
本発明の実施例1における仮想マシンの高速復旧方法のフローチャートである。 図1に示す仮想マシンの高速復旧方法におけるステップS1の具体的なフローチャートである。 図1に示す仮想マシンの高速復旧方法におけるステップS3の具体的なフローチャートである。 図1に示す仮想マシンの高速復旧方法におけるステップS4の具体的なフローチャートである。 本発明の実施例2における仮想マシンの高速復旧装置の原理ブロック図である。 本発明の実施例3における仮想マシンの高速復旧装置の原理ブロック図である。 本発明の実施例3におけるタブレットパソコンの原理ブロック図である。
本発明の技術特徴、目的及び効果をより明瞭に理解するため、ここで図面を参照して、本発明を実施するための形態に対して詳しく説明する。
(実施例1)
図1は本実施例における仮想マシンの高速復旧方法を示す。図1に示すとおり、該仮想マシンの高速復旧方法は以下のステップを含む。
S1:第一ホストと第二ホストとをピアツーピア記憶に結び付けて、第一ホストの仮想マシン上の読み書きリクエストを第二ホストにバックアップさせる。これに応じて、第二ホスト上の読み書きリクエストをも第一ホストにバックアップする。ピアツーピア記憶を結び付けた第一ホストの仮想マシンは第二ホストの仮想マシンと相互に独立しているが、仮想マシンに実行する読み書きリクエストを相互にバックアップする。
S2:第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは第一ホストの仮想マシンを起動する。第一ホストのシステムダウン又はパワーオフの場合は第一ホストがサービスを提供し続けることができない二つのケースで、第一ホストの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証するために、他の一台の正常に稼働するマシンに第一ホストの仮想マシンを起動する必要がある。ここで、パワーオフはホストの電源を切断し、コンピュータを完全に停止させるケースである。システムダウンはホストが深刻なシステム故障から復旧することができず、又はシステムハードウェア層に問題が発生し、それによってシステムが長時間にわたって応答なしのケースである。このため、バックアップホストはクラスタにおける一台の正常に稼働する予備マシンで、バックアップホストのハードウェア構成は第一ホストにおける全ての仮想マシンを起動することができるという要件を満たす必要があり、それにより第一ホストの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証する。以下にバックアップホスト上で起動された第一ホストの仮想マシンをバックアップホストの仮想マシンと呼ぶ。
S3:バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断する。第二ホストからバックアップホストへの全量データの同期が未完了な場合は、読み書きリクエストを第二ホストに送信する。第二ホストからバックアップホストへの全量データのバックアップが完了した場合は、バックアップホストに読み書きリクエストを実行し、読み書きリクエストを第二ホストに送信する必要がなくなる。その原因は、この時に第一ホストの仮想マシン移行が完了し、仮想マシンが復旧されて安定していることである。理解すべきなのは、第二ホストからバックアップホストへの全量データのバックアップが完了した場合、第二ホストとバックアップホストとを新しいピアツーピア記憶に形成して、第二ホストの仮想マシンとバックアップホストの仮想マシンとのデータバックアップを実現することができ、それによって第二ホストとバックアップホストがシステムダウン又は他の故障の発生によって稼働することができない場合にその上の仮想マシンがデータへのアクセス不可を避ける。
S4:第二ホストからバックアップホストへの全量データの同期が未完了な場合は、読み書きリクエストを第二ホストに送信する。第二ホストは書き込みリクエストに基づいて書き込み対象データを第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ指定データをバックアップホストに送信する。バックアップホストは指定データを呼び出し側に送信する。すなわち、第二ホストからバックアップホストへの全量データの同期が未完了な場合は、第一ホストの仮想マシンがバックアップホストへの移行が未完了で、バックアップホストはその上で起動された仮想マシンが受信した読み書きリクエストに対して処理することができず、読み書きリクエストを、仮想マシンのデータがバックアップされた第二ホストに転送して処理を行うことによって、仮想マシンの高速復旧を実現し、仮想マシン上のサービス停止を避けることができる。
S5:第二ホストからバックアップホストへの全量データの同期が完了した場合は、バックアップホストに読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを第二ホストバックアップにバックアップさせる。具体的に、バックアップホストに読み書きリクエストを実行する過程は第二ホストに読み書きリクエストを実行する過程と同じであり、すなわち書き込みリクエストに基づいて書き込み対象データをバックアップホストに記憶し、又は読み出しリクエストに基づいて指定データを取得する。このように、第二ホストからバックアップホストへの全量データの同期が完了した場合は、バックアップホストが仮想マシンを起動しかつ読み書きリクエストを受信する時、読み書きリクエストをバックアップホストのローカルディスクに直接記憶し、さらに読み書きリクエストを第二ホストにスキップして実行することはなくなり、但しバックアップホストにある仮想マシン上の読み書きリクエストを第二ホストにバックアップし、そのバックアップ過程はステップS1と同じである。
S6:バックアップホストは指定データを呼び出し側に送信する。理解すべきことは、第二ホストからバックアップホストへの全量データの同期が完了した場合、バックアップホストに読み書きリクエストを実行し、読み出しリクエストに対応する指定データを取得しかつ呼び出し側に送信する。又は、第二ホストからバックアップホストへの全量データの同期が未完了な場合は、読み書きリクエストを第二ホストに送信し、第二ホストに読み書きリクエストを実行し、読み出しリクエストに対応する指定データを取得しかつ呼び出し側に送信する。
本実施例が提供する仮想マシンの高速復旧方法において、第一ホストのシステムダウン、パワーオフ又は他のサービスを提供し続けることができない場合、バックアップホストに第一ホストの仮想マシンを起動することができ、かつ第二ホストからバックアップホストへの全量データの同期が未完了な場合、バックアップホストの仮想マシンが受信した読み書きリクエストを、仮想マシンのバックアップデータを有する第二ホストに転送して実行することによって、仮想マシンがストレージをしなく高速移行及び故障復旧を実現することができ、共有ストレージを必要とせず、かつ仮想マシンのロバスト性(Robust)を高め、仮想マシンをアクセスさせるための利用可能なストレージがないことによって引き起こす仮想マシン上のサービス停止現象の発生を避ける。
次に発明を実施するための形態を併せて該仮想マシンの高速復旧方法に対して説明し、発明を実施するための形態において、該仮想マシンの高速復旧方法は以下のステップを含む。
S1:第一ホストAと第二ホストBとをピアツーピア記憶に結び付けて、第一ホストAの仮想マシン上の読み書きリクエストを第二ホストBにバックアップする。これに応じて、第二ホストBの仮想マシン上の読み書きリクエストをも第一ホストAにバックアップする。なお、第一ホストA上の仮想マシンは、第二ホストB上の仮想マシンと相互に独立しているが、仮想マシンのデータを相互にバックアップし、それによって、第一ホストAと第二ホストBがシステムダウン又は他の故障で正常に稼働できず、仮想マシンを高速に復旧することができなくてそれの提供するサービスが停止することを避ける。図2に示すとおり、ステップS1は具体的に、以下のステップを含む。
S11:第一ホストAのゲストオペレーティングシステム(GuestOS)は読み書きリクエストを受信し、かつ読み書きリクエストをリングバッファ(ring buffer)に格納する。ここで、ゲストオペレーティングシステム(GuestOS)は第一ホストAの仮想マシンに実行するオペレーティングシステムである。リングバッファ(ring buffer)は通信プログラムにおいて、通信において送信と受信のデータを格納するためのデータ構造で、通信プログラムに対してバッファへの相互排他アクセスを提供することができる。
S12:第一ホストAのQemuモジュールはリングバッファ(ring buffer)から読み書きリクエストを取得する。ここで、Qemuモジュールは第一ホストのホストオペレーティングシステム(Host OS)に設置され、読み書きリクエストは未処理の読み書きリクエストである。ここで、Qemuは独立に実行可能なソフトウェアで、マシンをシミュレーションするために用いられ、高い機動性とソフトウェア移植性を有する。Qemuは主に一つの特殊な“リコンパイラ”によって、特定のプロセッサについてコーディングする二進数コードを他の種類、例えばPPCmacに実行するMIPSコード、又はX86 PCに実行するARMコードに変換する。QemuモジュールにおけるIOパスは大いに、virtio後端(a)、汎用ブロックデバイス層(b)及び駆動層(c)のような三層に分けられ、virtio後端(a)及び汎用ブロックデバイス層(b)のインターフェース部分に一部のコードを組み込むことによって読み書きリクエストを第二ホストBに伝送して他のデバイスを経由せずに直接バックアップすることを実現する。
S13:第一ホストAのQemuモジュールは読み出しリクエストに基づき、第一ホストAのローカルディスクから指定データを取得し、又は第一ホストAのQemuモジュールは書き込みリクエストに基づき、書き込み対象データを第一ホストAのローカルディスクに記憶する。
S14:第一ホストAのQemuモジュールは書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信する。ここで、Sync Origモジュールは第一ホストAのホストオペレーティングシステム(Host OS)に設置され、第一ホストAの読み書きリクエストの転送モジュールである。
S15:ホストオペレーティングシステムのSync Origモジュールは書き込みリクエストを第二ホストBのSync Termモジュールに送信する。第一ホストAのSync Origモジュールと第二ホストBのSync Termモジュールとの間はネットワークを介して接続される。
S16:第二ホストのSync Termモジュールは書き込みリクエストを受信し、書き込みリクエストに対応する書き込み対象データを第二ホストのローカルディスクに記憶し、それによって第一ホストAの仮想マシン上の書き込みリクエストを第二ホストBにバックアップすることを実現する。Sync Termモジュールは第二ホストBのホストオペレーティングシステム(Host OS)に設置され、第二ホストBの読み書きリクエストの受信モジュールである。
さらに、第一ホストAと第二ホストBとをピアツーピア記憶に結び付ける擬似コードは以下のとおりである。
Host A config file:
PeerID = 1
Host B config file:
PeerID = 1
第一ホストAと第二ホストBを起動した後、クラウドへそれぞれのPeerIDをサーバーまで報告し、サーバーはPeerIDが同じである二台のホストをピアツーピア記憶として登録する。
If(hostA.peerId == hostB.peerId)
{ Peer peer = new Peer(hostA,hostB);
peer.add(peer); }
さらに、第一ホストAの仮想マシン上の読み書きリクエストを第二ホストBにバックアップする擬似コードは以下を含む。第一ホストAのQemuモジュールが書き込みリクエストを受信した後、書き込みリクエストに対応する書き込み対象データを第一ホストAのローカルディスクに記憶する以外に、さらに書き込みリクエストに対応する書き込み対象データを第一ホストAのホストオペレーティングシステム(HostOS)の共有内部メモリに記憶する。続いて、該書き込みリクエストについて一つのsequence番号を生成し、かつ書き込みリクエストの修正する必要なsector開始番号及びsector数をrequestに記入し、ホストオペレーティングシステム(Host OS)のSync Origモジュールに渡して処理を行う。ホストオペレーティングシステム(Host OS)はrequestを受信し、requestと共有内部メモリ内の書き込み対象データdataを一つのTCPデータパッケージに構成させ、第二ホストBのホストオペレーティングシステム(HostOS)に送信する。第二ホストBのホストオペレーティングシステム(HostOS)はデータパッケージ内の書き込み対象データdataをrequestに指定されたsector内に書き込み、それによりホストオペレーティングシステム(Host OS)の仮想マシンの書き込みリクエストをホストオペレーティングシステム(HostOS_B)にバックアップすることを実現する。
S2:第一ホストAのシステムダウンの場合、バックアップホストCは第一ホストAの仮想マシンを起動する。本実施例において、第一ホストAのシステムダウン又はサービスを提供し続けることができない場合、第一ホストAの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証するために、他の一台の正常に稼働するマシンに第一ホストAの仮想マシンを起動する必要がある。第二ホストBで既に一定数量の仮想マシンを担持しているため、第一ホストAの仮想マシンを第二ホストBに移行して復旧すると、第二ホストBのローカルディスクにバックアップされた第一ホストAの仮想マシンデータを直ちに取得することができるが、第二ホストBの仮想マシンへのアクセス負荷が高すぎることを引き起こし、第二ホストBが外にサービスを提供する能力に影響を与える。ここで、バックアップホストCはクラスタにおける一台の正常に稼働する予備マシンで、バックアップホストCのハードウェア構成は第一ホストAにおける全ての仮想マシンを起動することができるという要件を満たす必要があり、それにより第一ホストAの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証する。以下にバックアップホストC上で起動された第一ホストAの仮想マシンをバックアップホストCの仮想マシンと呼ぶ。
S3:バックアップホストC上で起動された仮想マシンは呼び出し側が送信する読み書きリクエストを受信し、かつ第二ホストBからバックアップホストCへの全量データの同期が完了したか否かを判断する。具体的に、バックアップホストCは、第二ホストから送信する同期完了の通知が提供されるか否かを判断し、同期完了の通知を受信した場合、第二ホストBからバックアップホストCへの全量データの同期が完了したと見なされ、逆に、同期完了の通知を受信しなかった場合、第二ホストBからバックアップホストCへの全量データの同期が未完了と見なされる。図3に示すとおり、ステップS3は具体的に以下を含む。
S31:第二ホストBは現在の実行指標がプリセット条件に達するか否かを判断する。すなわちバックアップホストCに第一ホストAの仮想マシンを起動した後、第二ホストBは現在のネットワークのスループット、磁気ディスクへのアクセス等の現在の実行指標をリアルタイムに検出し、かつ各項の現在の実行指標がいずれもプリセット条件に達してから、ステップS32を実行する。
S32:第二ホストBにバックアップされた第一ホストAの仮想マシン上の読み書きリクエストをバックアップホストCに同期し、すなわち第二ホストBの仮想マシンのデータをバックアップホストCに同期する。
S33:第二ホストBに未同期のデータが存在するか否かを判断する。第二ホストBはさらに、未同期のデータが存在するか否かをリアルタイムに判断し、それによって第二ホストBからバックアップホストCへの全量データの同期が完了したか否かを確定する。
S34:未同期のデータが存在する場合、第二ホストBからバックアップホストCへの全量データの同期が未完了と見なされ、未同期のデータをバックアップホストCに送信してバックアップを行う。
S35:未同期のデータが存在しない場合、第二ホストBからバックアップホストCへの全量データの同期が完了と見なされ、バックアップホストCに同期完了の通知を送信する。
さらに、ステップS3において、バックアップホストCのゲストオペレーティングシステム(GuestOS)は読み書きリクエストを受信し、かつ読み書きリクエストをリングバッファ(ring buffer)に格納する。
S4:第二ホストBからバックアップホストCへの全量データの同期が未完了な場合、読み書きリクエストを第二ホストBに送信する。第二ホストBは書き込みリクエストに基づいて書き込み対象データを第二ホストBに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ指定データをバックアップホストCに送信する。バックアップホストCは指定データを呼び出し側に送信する。図4に示すとおり、ステップS4は具体的に以下を含む。
S41:バックアップホストCのQemuモジュールはリングバッファ(ring buffer)から読み書きリクエストを取得する。
S42:バックアップホストCのQemuモジュールは読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信する。
S43:Sync Origモジュールは読み書きリクエストを第二ホストBのSync Termモジュールに送信する。
S44:第二ホストBのSync Termモジュールは読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを第二ホストBのローカルディスクに記憶する。
S45:第二ホストBのSync Termモジュールは読み出しリクエストに基づき、第二ホストBのローカルディスクから指定データを取得し、かつ指定データをバックアップホストCのSync Origモジュールに送信する。
S46:バックアップホストのSync Origモジュールは指定データを受信し、かつ指定データをバックアップホストCのQemuモジュールに送信する。
S47:バックアップホストCのQemuモジュールは指定データをバックアップホストCのゲストオペレーティングシステム(GuestOS)に送信し、さらに呼び出し側に送信する。
さらに、バックアップホストCの仮想マシンの読み書きリクエストを第二ホストBに転送して処理を行う擬似コードが以下のとおりである。
バックアップホストCのQemuモジュールを起動する前、その構成ファイル内に、remoteIOフラグをTrueに設定する。
バックアップホストCのQemuモジュールを起動する時、remoteIO= Trueを読み取ると、その後に受信した各IOリクエスト(すなわち読み書きリクエスト)は、いずれもローカルディスクへのアクセスを行うことではなく、共有内部メモリを介してSync Origモジュールに報知し、Sync Origモジュールにより第二ホストBに転送される。
第二ホストBのSync TermモジュールはバックアップホストCのSync Origモジュールの書き込みリクエストを受信した後、書き込みデータを、他のデバイスを経由せずにバックアップホストCのローカルディスクに直接バックアップする。
第二ホストBのSync TermモジュールはバックアップホストCのSync Origモジュールの読み出しリクエストを受信した後、指定sectorから指定データを読み取った後、TCPを介してバックアップホストCのSync Origモジュールに送り返す。
バックアップホストCのSync Origモジュールは第二ホストBのフィードバックされた指定データを受信した後、このフィードバックされた指定データを共有内部メモリに書き込み、かつTCPメッセージを介してバックアップホストCのQemuモジュールに通知する。
バックアップホストCのQemuモジュールはバックアップホストCのSync OrigモジュールのTCPメッセージ通知を受信した後、指定共有内部メモリから指定データを取得し、かつ呼び出し側にフィードバックする。
仮想マシンがバックアップホストに安定した後、第二ホストBからバックアップホストCへのデータ同期を起動する。仮想マシンがストレージしなくバックアップホストCへの移行が完了した後、第二ホストBからバックアップホストCへの全量データの同期を起動する過程の擬似コードは以下のとおりである。
第二ホストBのSync Termモジュールは、ローカルディスクのqcow2ファイルへのsector書き込み状況を解析することにより、書き込まれたsectorを一つずつバックアップホストCのSync Origモジュールに送信する。バックアップホストCのSync Origモジュールは第二ホストBのSync Termモジュールが送信した同期sectorデータを受信した後、データコンテンツをローカルディスクのqcow2ファイルに書き込む。
第二ホストBに実行する擬似コードは以下のとおりである。
For(every writen sector)
{ Send_to_hostC(sectorIdx,sector_data); }
バックアップホストCに実行する擬似コードは以下のとおりである。
For(sector_data receive from hostB)
{ Write(qcow2file,sectorIdx,sector_data); }
バックアップホストCは全量データの同期が完了した後、仮想マシンの読み書きリクエストをバックアップホストCのローカルディスクに復旧して実行し、さらに第二ホストBに転送しない。この時、第二ホストBに実行する擬似コードは以下のとおりである。
If(every_writen_sector_send == true)
{ Send_to_hostC(all_data_synchronized = true); }
バックアップホストCに実行する擬似コードは以下のとおりである。
If(Received_msg(hostB,all_data_synchronized = true))
{ Qemu.remoteIO = False; }
(実施例2)
図5は本実施例における仮想マシンの高速復旧装置を示す。図5に示すとおり、該仮想マシンの高速復旧装置はデータバックアップユニット10、バックアップマシン起動ユニット20、リクエスト判断ユニット30、第一処理ユニット40及び第二処理ユニット50を含む。
データバックアップユニット10は、第一ホストと第二ホストとをピアツーピア記憶に結び付けて、第一ホストの仮想マシン上の読み書きリクエストを第二ホストにバックアップさせるために用いられる。これに応じて、第二ホスト上の読み書きリクエストをも第一ホストにバックアップする。ピアツーピア記憶を結び付けた第一ホストの仮想マシンは第二ホストの仮想マシンと相互に独立しているが、仮想マシンに実行する読み書きリクエストを相互にバックアップする。
バックアップマシン起動ユニット20は、第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは第一ホストの仮想マシンを起動するために用いられる。第一ホストのシステムダウン又はパワーオフの場合は、第一ホストがサービスを提供し続けることができない二つのケースで、第一ホストの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証するために、他の一台の正常に稼働するマシンに第一ホストの仮想マシンを起動する必要がある。ここで、パワーオフはホストの電源を切断し、コンピュータを完全に停止させるケースである。システムダウンはホストが深刻なシステム故障から復旧することができず、又はシステムハードウェア層に問題が発生し、それによってシステムが長時間にわたって応答なしのケースである。このため、バックアップホストはクラスタにおける一台の正常に稼働する予備マシンで、バックアップホストのハードウェア構成は第一ホストにおける全ての仮想マシンを起動することができるという要件を満たす必要があり、それにより第一ホストの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証する。以下にバックアップホスト上で起動された第一ホストの仮想マシンをバックアップホストの仮想マシンと呼ばれる。
リクエスト判断ユニット30は、バックアップホスト上で起動された仮想マシンに、呼び出し側から送信した読み書きリクエストを受信させ、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断するために用いられる。第二ホストからバックアップホストへの全量データの同期が未完了な場合は、読み書きリクエストを第二ホストに送信する。第二ホストからバックアップホストへの全量データのバックアップが完了した場合、バックアップホストに読み書きリクエストを実行し、読み書きリクエストを第二ホストに送信する必要がなくなる。その原因は、この時に第一ホストの仮想マシン移行が完了し、仮想マシンが復旧されて安定していることである。理解すべきことは、第二ホストからバックアップホストへの全量データのバックアップが完了した場合、第二ホストとバックアップホストとを新しいピアツーピア記憶に形成して、第二ホストの仮想マシンとバックアップホストの仮想マシンとのデータバックアップを実現することができ、それによって、第二ホストとバックアップホストがシステムダウン又は他の故障の発生によって稼働することができない場合にその上の仮想マシンがデータへのアクセス不可を避ける。
第一処理ユニット40は、第二ホストからバックアップホストへの全量データの同期が未完了な場合は、読み書きリクエストを第二ホストに送信するために用いられる。第二ホストは書き込みリクエストに基づいて書き込み対象データを第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ指定データをバックアップホストに送信する。バックアップホストは指定データを呼び出し側に送信する。すなわち、第二ホストからバックアップホストへの全量データの同期が未完了な場合は、第一ホストの仮想マシンがバックアップホストへの移行が未完了で、バックアップホストはその上で起動された仮想マシンが受信した読み書きリクエストに対して処理することができず、読み書きリクエストを、仮想マシンのデータがバックアップされた第二ホストに転送して処理を行うことによって、仮想マシンの高速復旧を実現し、仮想マシン上のサービス停止を避けることができる。
第二処理ユニット50は、第二ホストからバックアップホストへの全量データの同期が完了した場合は、バックアップホストに読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを第二ホストバックアップにバックアップさせるために用いられる。具体的に、バックアップホストに読み書きリクエストを実行する過程は第二ホストに読み書きリクエストを実行する過程と同じであり、すなわち書き込みリクエストに基づいて書き込み対象データをバックアップホストに記憶し、又は読み出しリクエストに基づいて指定データを取得する。このように、第二ホストからバックアップホストへの全量データの同期が完了した場合は、バックアップホストが仮想マシンを起動しかつ読み書きリクエストを受信する時、読み書きリクエストをバックアップホストのローカルディスクに直接記憶し、さらに読み書きリクエストを第二ホストにスキップして実行することはなくなり、但しバックアップホストにある仮想マシン上の読み書きリクエストを第二ホストにバックアップし、そのバックアップ過程はデータバックアップユニット10のデータバックアップ過程と同じである。
データ送信ユニット60は、バックアップホストは指定データを呼び出し側に送信するために用いられる。理解すべきことは、第二ホストからバックアップホストへの全量データの同期が完了した場合、バックアップホストに読み書きリクエストを実行し、読み出しリクエストに対応する指定データを取得しかつ呼び出し側に送信する。又は、第二ホストからバックアップホストへの全量データの同期が未完了な場合は、読み書きリクエストを第二ホストに送信し、第二ホストに読み書きリクエストを実行し、読み出しリクエストに対応する指定データを取得しかつ呼び出し側に送信する。
本実施例が提供する仮想マシンの高速復旧装置において、第一ホストのシステムダウン、パワーオフ又は他のサービスを提供し続けることができない場合、バックアップホストに第一ホストの仮想マシンを起動することができ、かつ第二ホストからバックアップホストへの全量データの同期が未完了な場合、バックアップホストの仮想マシンが受信した読み書きリクエストを、仮想マシンのバックアップデータを有する第二ホストに転送して実行することによって、仮想マシンがストレージしなく高速移行及び故障復旧を実現することができ、共有ストレージを必要とせず、かつ仮想マシンのロバスト性(Robust)を高め、仮想マシンをアクセスさせるための利用可能なストレージがないことによって引き起こす仮想マシン上のサービス停止現象の発生を避ける。
次に発明を実施するための形態を併せて該仮想マシンの高速復旧装置を説明し、発明を実施するための形態において、該仮想マシンの高速復旧装置は、以下のユニットを含む。
データバックアップユニット10は、第一ホストAと第二ホストBとをピアツーピア記憶に結び付けて、第一ホストAの仮想マシン上の読み書きリクエストを第二ホストBにバックアップするために用いられるもの。これに応じて、第二ホストBの仮想マシン上の読み書きリクエストをも第一ホストAにバックアップする。なお、第一ホストA上の仮想マシンは第二ホストB上の仮想マシンと相互に独立しているが、仮想マシンのデータを相互にバックアップし、それによって、第一ホストAと第二ホストBがシステムダウン又は他の故障で正常に稼働できず、仮想マシンを高速に復旧することができなくてそれの提供するサービスが停止することを避ける。具体的に、データバックアップユニット10は、以下のシステムやモジュールを含む。
第一ホストAのゲストオペレーティングシステム(GuestOS)は、読み書きリクエストを受信し、かつ読み書きリクエストをリングバッファ(ring buffer)に格納するために用いられる。ここで、ゲストオペレーティングシステム(GuestOS)は第一ホストAの仮想マシンに実行するオペレーティングシステムである。リングバッファ(ring buffer)は通信プログラムにおいて、通信において送信と受信のデータを格納するためのデータ構造で、通信プログラムに対してバッファへの相互排他アクセスを提供することができる。
第一ホストAのQemuモジューはリングバッファ(ring buffer)から読み書きリクエストを取得する。ここで、Qemuモジュールは第一ホストのホストオペレーティングシステム(Host OS)に設置され、読み書きリクエストは未処理の読み書きリクエストである。ここで、Qemuは独立に実行可能なソフトウェアで、マシンをシミュレーションするために用いられ、高い機動性とソフトウェア移植性を有する。Qemuは主に一つの特殊な“リコンパイラ”によって、特定のプロセッサについてコーディングする二進数コードを他の種類、例えばPPCmacに実行するMIPSコード、又はX86 PCに実行するARMコードに変換する。QemuモジュールにおけるIOパスは大いに、virtio後端(a)、汎用ブロックデバイス層(b)及び駆動層(c)のような三層に分けられ、virtio後端(a)及び汎用ブロックデバイス層(b)のインターフェース部分に一部のコードを組み込むことによって読み書きリクエストを第二ホストBに伝送して他のデバイスを経由せずに直接バックアップすることを実現する。
第一ホストAのQemuモジュールは、読み出しリクエストに基づき、第一ホストAのローカルディスクから指定データを取得し、又は第一ホストAのQemuモジュールは書き込みリクエストに基づき、書き込み対象データを第一ホストAのローカルディスクに記憶するために用いられる。
第一ホストAのQemuモジュールは、書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信するために用いられる。ここで、Sync Origモジュールは第一ホストAのホストオペレーティングシステム(Host OS)に設置され、第一ホストAの読み書きリクエストの転送モジュールである。
ホストオペレーティングシステムのSync Origモジュールは、書き込みリクエストを第二ホストBのSync Termモジュールに送信するために用いられる。第一ホストAのSync Origモジュールと第二ホストBのSync Termモジュールとの間はネットワークを介して接続される。
第二ホストのSync Termモジュールは、書き込みリクエストを受信し、書き込みリクエストに対応する書き込み対象データを第二ホストのローカルディスクに記憶し、それによって第一ホストAの仮想マシン上の書き込みリクエストを第二ホストBにバックアップすることを実現するために用いられる。Sync Termモジュールは第二ホストBのホストオペレーティングシステム(Host OS)に設置され、第二ホストBの読み書きリクエストの受信モジュールである。
さらに、第一ホストAと第二ホストBとをピアツーピア記憶に結び付ける擬似コードは以下のとおりである。
Host A config file:
PeerID = 1
Host B config file:
PeerID = 1
第一ホストAと第二ホストBを起動した後、クラウドへそれぞれのPeerIDをサーバーまで報告し、サーバーはPeerIDが同じである二台のホストをピアツーピア記憶として登録する。
If(hostA.peerId == hostB.peerId)
{ Peer peer = new Peer(hostA,hostB);
peer.add(peer); }
さらに、第一ホストAの仮想マシン上の読み書きリクエストを第二ホストBにバックアップする擬似コードは以下を含む。第一ホストAのQemuモジュールが書き込みリクエストを受信した後、書き込みリクエストに対応する書き込み対象データを第一ホストAのローカルディスクに記憶する以外に、さらに書き込みリクエストに対応する書き込み対象データを第一ホストAのホストオペレーティングシステム(HostOS)の共有内部メモリに記憶する。続いて、該書き込みリクエストについて一つのsequence番号を生成し、かつ書き込みリクエストの修正する必要なsector開始番号及びsector数をrequestに記入し、ホストオペレーティングシステム(Host OS)のSync Origモジュールに渡して処理を行う。ホストオペレーティングシステム(Host OS)はrequestを受信し、requestと共有内部メモリ内の書き込み対象データdataを一つのTCPデータパッケージに構成させ、第二ホストBのホストオペレーティングシステム(HostOS)に送信する。第二ホストBのホストオペレーティングシステム(HostOS)はデータパッケージ内の書き込み対象データdataをrequestに指定されたsector内に書き込み、それによりホストオペレーティングシステム(Host OS)の仮想マシンの書き込みリクエストをホストオペレーティングシステム(HostOS_B)にバックアップすることを実現する。
バックアップマシン起動ユニット20は、第一ホストAがシステムダウンする場合、バックアップホストCは第一ホストAの仮想マシンを起動するために用いられる。本実施例において、第一ホストAのシステムダウン又はサービスを提供し続けることができない場合、第一ホストAの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証するために、他の一台の正常に稼働するマシンに第一ホストAの仮想マシンを起動する必要がある。第二ホストBで既に一定数量の仮想マシンを担持しているため、第一ホストAの仮想マシンを第二ホストBに移行して復旧すると、第二ホストBのローカルディスクにバックアップされた第一ホストAの仮想マシンデータを直ちに取得することができるが、第二ホストBの仮想マシンへのアクセス負荷が高すぎることを引き起こし、第二ホストBが外にサービスを提供する能力に影響を与える。ここで、バックアップホストCはクラスタにおける一台の正常に稼働する予備マシンで、バックアップホストCのハードウェア構成は第一ホストAにおける全ての仮想マシンを起動することができるという要件を満す必要があり、それにより第一ホストAの仮想マシンが提供するサービスを可能な限り早めに復旧することを保証する。以下にバックアップホストC上で起動された第一ホストAの仮想マシンをバックアップホストCの仮想マシンと呼ぶ。
リクエスト判断ユニット30は、バックアップホストC上で起動された仮想マシンに、呼び出し側から送信する読み書きリクエストを受信させ、かつ第二ホストBからバックアップホストCへの全量データの同期が完了したか否かを判断するために用いられる。具体的に、バックアップホストCは、第二ホストから送信する同期完了の通知が提供されるか否かを判断し、同期完了の通知を受信した場合、第二ホストBからバックアップホストCへの全量データの同期が完了したと見なされ、逆に、同期完了の通知を受信しなかった場合、第二ホストBからバックアップホストCへの全量データの同期が未完了と見なされる。
図5に示すとおり、リクエスト判断ユニット30は第一判断サブユニット31、第一同期サブユニット32、第二判断サブユニット33、第一確定サブユニット34及び第二確定サブユニット35を含む。
第一判断サブユニット31は、第二ホストBに現在の実行指標がプリセット条件に達するか否かを判断させるために用いられる。すなわちバックアップホストCに第一ホストAの仮想マシンを起動した後、第二ホストBは現在のネットワークのスループット、磁気ディスクへのアクセス等の現在の実行指標をリアルタイムに検出し、かつ各項の現在の実行指標がいずれもプリセット条件に達してから、ステップS32を実行する。
第一同期サブユニット32は、プリセット条件に達する場合、第二ホストBにバックアップされた第一ホストAの仮想マシン上の読み書きリクエストをバックアップホストCに同期し、すなわち第二ホストBの仮想マシンのデータをバックアップホストCに同期するために用いられる。
第二判断サブユニット33は、第二ホストBに未同期のデータが存在するか否かを判断するために用いられる。第二ホストBはさらに、未同期のデータが存在するか否かをリアルタイムに判断し、それによって第二ホストBからバックアップホストCへの全量データの同期が完了したか否かを確定する。
第一確定サブユニット34は、未同期データが存在する場合、第二ホストBからバックアップホストCへの全量データの同期が未完了と確定し、未同期のデータをバックアップホストCに送信してバックアップを行うために用いられる。
第二確定サブユニット35は、未同期データが存在しない場合、第二ホストBからバックアップホストCへの全量データの同期が完了したと確定し、バックアップホストCに同期完了の通知を送信するために用いられる。
さらに、リクエスト判断ユニット30において、バックアップホストCのゲストオペレーティングシステム(GuestOS)は読み書きリクエストを受信し、かつ読み書きリクエストをリングバッファ(ring buffer)に格納する。
第一処理ユニット40は、第二ホストBからバックアップホストCへの全量データの同期が未完了な場合、読み書きリクエストを第二ホストBに送信するために用いられる。第二ホストBは書き込みリクエストに基づいて書き込み対象データを第二ホストBに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ指定データをバックアップホストCに送信する。バックアップホストCは指定データを呼び出し側に送信する。具体的に、第一処理ユニット40は以下のモジュールを含む。
バックアップホストCのQemuモジュールは、リングバッファ(ring buffer)から読み書きリクエストを取得するために用いられる。
バックアップホストCのQemuモジュールは、読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信するために用いられる。
ホストオペレーティングシステム上のSync Origモジュールは、読み書きリクエストを第二ホストBのSync Termモジュールに送信するために用いられる。
第二ホストBのSync Termモジュールは、読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを第二ホストBのローカルディスクに記憶するために用いられる。
第二ホストBのSync Termモジュールは、読み出しリクエストに基づき、第二ホストBのローカルディスクから指定データを取得し、かつ指定データをバックアップホストCのSync Origモジュールに送信するために用いられる。
バックアップホストのSync Origモジュールは、指定データを受信し、かつ指定データをバックアップホストCのQemuモジュールに送信するために用いられる。
バックアップホストCのQemuモジュールは、指定データをバックアップホストCのゲストオペレーティングシステム(GuestOS)に送信し、さらに呼び出し側に送信するために用いられる。
さらに、バックアップホストCの仮想マシンの読み書きリクエストを第二ホストBに転送して処理を行う擬似コードが以下のとおりである。
バックアップホストCのQemuモジュールを起動する前、その構成ファイル内に、remoteIOフラグをTrueに設定する。
バックアップホストCのQemuモジュールを起動する時、remoteIO= Trueを読み取ると、その後に受信した各IOリクエスト(すなわち読み書きリクエスト)は、いずれもローカルディスクへのアクセスを行うことではなく、共有内部メモリを介してSync Origモジュールに報知し、Sync Origモジュールにより第二ホストBに転送される。
第二ホストBのSync TermモジュールはバックアップホストCのSync Origモジュールの書き込みリクエストを受信した後、書き込みデータを、他のデバイスを経由せずにバックアップホストCのローカルディスクに直接バックアップする。
第二ホストBのSync TermモジュールはバックアップホストCのSync Origモジュールの読み出しリクエストを受信した後、指定sectorから指定データを読み取った後、TCPを介してバックアップホストCのSync Origモジュールに送り返す。
バックアップホストCのSync Origモジュールは第二ホストBのフィードバックされた指定データを受信した後、このフィードバックされた指定データを共有内部メモリに書き込み、かつTCPメッセージを介してバックアップホストCのQemuモジュールに通知する。
バックアップホストCのQemuモジュールはバックアップホストCのSync OrigモジュールのTCPメッセージ通知を受信した後、指定共有内部メモリから指定データを取得し、かつ呼び出し側にフィードバックする。
仮想マシンがバックアップホストに安定した後、第二ホストBからバックアップホストCへのデータ同期を起動する。仮想マシンがストレージしなくバックアップホストCへの移行が完了した後、第二ホストBからバックアップホストCへの全量データの同期を起動する過程の擬似コードは以下のとおりである。
第二ホストBのSync Termモジュールは、ローカルディスクのqcow2ファイルへのsector書き込み状況を解析することにより、書き込まれたsectorを一つずつバックアップホストCのSync Origモジュールに送信する。バックアップホストCのSync Origモジュールは第二ホストBのSync Termモジュールが送信した同期sectorデータを受信した後、データコンテンツをローカルディスクのqcow2ファイルに書き込む。
第二ホストBに実行する擬似コードは以下のとおりである。
For(every writen sector)
{ Send_to_hostC(sectorIdx,sector_data); }
バックアップホストCに実行する擬似コードは以下のとおりである。
For(sector_data receive from hostB)
{ Write(qcow2file,sectorIdx,sector_data); }
バックアップホストCは全量データの同期が完了した後、仮想マシンの読み書きリクエストをバックアップホストCのローカルディスクに復旧して実行し、さらに第二ホストBに転送しない。この時、第二ホストBに実行する擬似コードは以下のとおりである。
If(every_writen_sector_send == true)
{ Send_to_hostC(all_data_synchronized = true); }
バックアップホストCに実行する擬似コードは以下のとおりである。
If(Received_msg(hostB,all_data_synchronized = true))
{ Qemu.remoteIO = False; }
(実施例3)
図6は本発明の第3実施例における仮想マシンの高速復旧システムの原理ブロック図である。図6に示すとおり、該仮想マシンの高速復旧システムはサーバー4、サーバー4に通信的に接続された第一ホスト1、第二ホスト2及びバックアップホスト3を含む。ここで、第一ホスト1、第二ホスト2及びバックアップホスト3はいずれも携帯電話、タブレットパソコン、パーソナルデジタルアシスタント(PersonalDigital Assistant、PDA)、デスクトップコンピュータ、サーバー等の端末であってもよい。タブレットパソコンを例として、図7に示すとおり、各タブレットパソコン700はいずれも高周波(RadioFrequency,RF)回路701、メモリ702、入力モジュール703、表示モジュール704、プロセッサ705、オーディオ回路706、WiFi(WirelessFidelity)モジュール707及び電源708を含む。
プロセッサ705に接続された入力モジュール703はタブレットパソコン700のユーザーインタラクション装置として、ユーザーとタブレットパソコン700との間のインタラクションを実現するために用いられる。ここで、第一ホスト1の入力モジュール703はユーザーが入力する第一バックアップ記憶命令を受信し、対応するプロセッサ705に送信し、第一バックアップ記憶命令はピアツーピアのIDを含む。第二ホスト2の入力モジュールはユーザーが入力する第二バックアップ記憶命令を受信し、対応するプロセッサ705に送信し、第二バックアップ記憶命令はピアツーピアのIDを含む。第一バックアップ記憶命令と第二バックアップ記憶命令は同一ピアツーピアのIDを含み、それによって第一バックアップ記憶命令と第二バックアップ記憶命令に基づき、第一ホスト1と第二ホスト2とをピアツーピア記憶に結び付け、それによって第一ホスト1の仮想マシン上の読み書きリクエストを第二ホスト2にバックアップさせる。これに応じて、バックアップホスト3の入力モジュール703はユーザーが入力する仮想マシン起動命令を受信し、かつ仮想マシン起動命令をプロセッサ705に送信し、該仮想マシン起動命令は第二バックアップ記憶命令と同じピアツーピアのIDを含み、それによって第一ホスト1のシステムダウン又はパワーオフの場合、バックアップホスト3に第一ホスト1の仮想マシンを起動することを実現させる。
一部の実施例において、入力モジュール703はユーザーが入力する数字又は文字情報の受信、及びタブレットパソコン700のユーザー設定及び機能制御に関する信号入力の生成に用いることができる。一部の実施例において、該入力モジュール703はタッチパネル7031を含むことができる。タッチパネル7031は、タッチスクリーンとも呼ばれ、ユーザーによるその上または近傍のタッチ操作(例えばユーザーは手指、タッチペン等のいかなる適切な物体又は付属部品を使用してタッチパネル7031に行われる操作)を収集し、かつ事前に設定されたプログラムに基づいて対応する接続装置を駆動することができる。必要に応じて、タッチパネル7031はタッチ検出装置とタッチコントローラの二つの部分を含むことができる。ここで、タッチ検出装置はユーザーのタッチ位置を検出し、かつタッチ操作による信号を検出し、信号をタッチコントローラに送信する。タッチコントローラはタッチ検出装置からタッチ情報を受信し、かつそれを接点座標に変換し、さらに該プロセッサ705に送信し、かつプロセッサ705から送信する命令を受信して実行することができる。この他、抵抗膜方式、静電容量方式、赤外線方式及び表面弾性波方式等の複数の種類を採用してタッチパネル7031を実現することができる。タッチパネル7031以外に、入力モジュール703はさらに他の入力デバイス7032を含むことができ、他の入力デバイス7032は物理キーボード、機能キー(例えば音量制御プッシュボタン、スイッチプッシュボタン等)、トラックボール、マウス、ジョイスティック等の一つ又は複数を含むことができるが、これに限定されない。
一部の実施例において、表示モジュール704はユーザーが入力する情報又はユーザーに提供する情報及びタブレットパソコン700の各種のメニューインターフェースの表示に用いることができる。表示モジュール704は表示パネル7041を含むことができ、必要に応じて、LCD又は有機エレクトロルミネッセンス ダイオード(Organic Light−Emitting Diode、OLED)等の形式を採用して表示パネル7041を構成することができる。
理解すべきことは、タッチパネル7031は表示パネル7041をカバーして、タッチディスプレイスクリーンを形成することができ、該タッチディスプレイスクリーンはその上または近傍のタッチ操作を検出した後、プロセッサ705へ伝送し、それによってタッチイベントのタイプを判定し、続いてプロセッサ705はタッチイベントのタイプに基づいて対応する視覚出力をタッチディスプレイスクリーンに提供する。
タッチディスプレイスクリーンはアプリケーションプログラムインターフェース表示領域及び常用コントロール表示領域を含む。該アプリケーションプログラムインターフェース表示領域及び該常用コントロール表示領域の配列方式が限定されず、上下配列、左右配列等の二つの表示領域を区別可能な配列方式であってもよい。該アプリケーションプログラムインターフェース表示領域はアプリケーションプログラムのインターフェースの表示に用いることができる。各インターフェースは少なくとも一つのアプリケーションプログラムのアイコン及び/又はwidgetデスクトップコントロール等のインターフェース要素を含むことができる。該アプリケーションプログラムインターフェース表示領域はいかなるコンテンツを含まない空のインターフェースであってもよい。該常用コントロール表示領域は使用率が高いコントロールの表示に用いられ、例えば、設定ボタン、インターフェース番号、スクロールバー、電話帳アイコン等のアプリケーションプログラムのアイコン等。
WiFiモジュール707はタブレットパソコン700のネットワークインターフェースとして、タブレットパソコン700と他のデバイスとのデータ交換を実現することができる。ネットワークインターフェースとリモート記憶装置(すなわち呼び出し側)はネットワーク通信を介して接続される。本実施例において、バックアップホスト3におけるWiFiモジュール707はリモート記憶装置(すなわち呼び出し側)からの読み書きリクエストを受信することができ、プロセッサ705によって処理した後、書き込みリクエストに対応する指定データを取得し、かつWiFiモジュール707を介して指定データを呼び出し側に送信する。実施例において、WiFiネットワークを介して該ネットワークインターフェースに接続されたリモート記憶装置(すなわち呼び出し側)はクラウドサーバー又は他のデータベースであってもよい。
メモリ702は第一メモリ7021及び第二メモリ7022を含む。一部の実施例において、第一メモリ7021はコンピュータが読み取り可能な不揮発性記憶媒体であってもよく、その上にオペレーティングシステム、データベース及びコンピュータが実行可能な命令が記憶される。コンピュータが実行可能な命令はプロセッサ705に実行されることができ、図1に示す実施例1の仮想マシンの高速復旧方法を実現するために用いられる。メモリ702に記憶されたデータベースは各種のデータを記憶するために用いられ、例えば、読み出しリクエストに対応する指定データ、書き込みリクエストに対応する書き込み対象データ等のような上記仮想マシンの高速復旧方法に係る各種のデータ。第二メモリ7022はタブレットパソコン700の内部記憶装置であってもよく、コンピュータが読み取り可能な不揮発性記憶媒体内のオペレーティングシステム、データベース及びコンピュータが実行可能な命令に高速キャッシングの実行環境を提供する。
本実施例において、プロセッサ705はタブレットパソコン700の制御センターで、各種のインターフェースと回路を利用して携帯電話全体の各部分に接続され、第一メモリ7021に記憶されたコンピュータが実行可能な命令及び/又はデータベース内のデータを実行又は実施することにより、タブレットパソコン700の各種の機能とデータ処理を実行し、それによりタブレットパソコン700に対して全体的な監視を行う。必要に応じて、プロセッサ705は一つ又は複数の処理モジュールを含むことができる。
本実施例において、該第一メモリ7021に記憶されたコンピュータが実行可能な命令及び/又はデータベース内のデータを実行することにより、プロセッサ705は、第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるステップと、前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動するステップと、バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断するステップと、第二ホストからバックアップホストへの全量データの同期が未完了な場合は、前記読み書きリクエストを前記第二ホストに送信するステップと、前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信するステップと、前記バックアップホストは前記指定データを前記呼び出し側に送信するステップとを実行するのに用いられる。
前記プロセッサ705はさらに以下のステップを実行する。第二ホストからバックアップホストへの全量データの同期が完了した場合、前記バックアップホストに前記読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせる。
好ましくは、プロセッサ705は、前記バックアップホストのゲストオペレーティングシステムは前記読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納するステップと、
前記バックアップホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得し、かつ前記読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信するステップと、前記Sync Origモジュールは前記読み書きリクエストを前記第二ホストに送信するステップと、
前記第二ホストのSync Termモジュールは前記読み書きリクエストを受信するステップと、書き込みリクエストに基づいて書き込み対象データを前記第二ホストのローカルディスクに記憶し、又は読み出しリクエストに基づいて前記第二ホストのローカルディスクから指定データを取得し、かつ前記指定データを前記バックアップホストのSync Origモジュールに送信するステップと、
前記バックアップホストのSync Origモジュールは前記指定データを受信しかつ前記指定データを前記バックアップホストのQemuモジュールに送信するステップと、
前記バックアップホストのQemuモジュールは前記指定データを前記バックアップホストのゲストオペレーティングシステムに送信するステップと、をさらに実行する。
好ましくは、前記第一ホストの仮想マシンデータを前記第二ホストにバックアップさせるには、
前記第一ホストのゲストオペレーティングシステムは読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納することと、
前記第一ホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得することと、前記Qemuモジュールは読み出しリクエストに基づき、前記第一ホストのローカルディスクから指定データを取得し、又は前記Qemuモジュールは書き込みリクエストに基づき、書き込み対象データを前記第一ホストのローカルディスクに記憶することと、かつ前記書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信することと、
前記ホストオペレーティングシステムのSync Origモジュールは前記書き込みリクエストを前記第二ホストのSync Termモジュールに送信することと、
前記第二ホストのSync Termモジュールは前記書き込みリクエストを受信し、かつ前記書き込みリクエストに対応する書き込み対象データを前記第二ホストのローカルディスクに記憶することを含む。
好ましくは、プロセッサ705は、前記第二ホストは現在の実行指標がプリセット条件に達するか否かを判断するステップと、
現在の実行指標がプリセット条件に達する場合、前記第二ホストにバックアップされた第一ホストの仮想マシン上の読み書きリクエストをバックアップホストに同期するステップと、
前記第二ホストに未同期データが存在するか否かを判断するステップと、
未同期データが存在する場合、第二ホストからバックアップホストへの全量データの同期が未完了であり、
未同期データが存在しない場合、第二ホストからバックアップホストへの全量データの同期が完了し、前記バックアップホストに同期完了の通知を送信するステップと、をさらに実行する。
本実施例が提供する仮想マシンの高速復旧システムにおいて、第一ホストがシステムダウン又はパワーオフされると、バックアップホストに第一ホストの仮想マシンを起動し、かつ第二ホストからバックアップホストへの全量データの同期が未完了な場合、バックアップホストの仮想マシンが受信した読み書きリクエストを仮想マシンのバックアップデータを有する第二ホストに転送して実行し、仮想マシンがストレージしなく高速移行及び故障復旧を実現することができ、共有ストレージを必要とせず、かつ仮想マシンのロバスト性を高め、仮想マシンをアクセスさせるための利用可能なストレージがないことによって引き起こす仮想マシン上のサービス停止現象の発生を避ける。
当業者は、本明細書で開示されている実施例を併せて述べた各例に係るモジュールやアルゴリズムのステップは、電子ハードウェア、又はコンピュータソフトウェアと電子ハードウェアとの結合で実現できると分かる。これらの機能をハードウェア又はソフトウェア方式で実行するのかは、技術的解決手段の特定の応用及び設計の拘束条件によって決められる。当業者は各特定の応用に対して異なる方法を使って、述べた機能を実現することができ、但しこのような実現は本発明の範囲を超えると認識すべきではない。
当業者は、容易かつ簡潔に説明するため、上記で説明したシステム、装置及びモジュールの具体的な作動過程は、前述方法の実施例における対応する過程を参照することができ、ここでは記載しないと明らかに了解できる。
本願が提供する実施例において、理解すべきことは、開示されている装置と方法は、他の形態によって実現できる。例えば、以上に説明した装置の実施例は例示に過ぎず、例えば、前記モジュールの区分は、ただロジック機能の区分で、実際に実現する場合に他の区分方式があってもよく、例えば複数のモジュール又はコンポーネントを組み合わせることができ又は他のシステムへ集積することができ、又はいくつかの特徴を無視し、又は実行しなくてもよい。その一方で、表示又は討論したお互いの結合又は直接結合又は通信接続は、いつくかのインターフェース、装置又はモジュールを介する間接結合又は通信接続であってもよいし、電気的、機械的又は他の形式であってもよい。
前記の分離部品として説明されたモジュールは物理的に分離可能又は分離不可であってもよく、モジュールとして表示される部品は物理的なモジュールであっても、物理的なモジュールではなくてもよく、すなわち一つの場所に位置することができ、又は複数のネットワークモジュールに分布することもできる。実際の要求に応じてそのうちの一部又は全てのモジュールを選択して本実施例の解決手段の目的を実現することができる。
さらに、本発明の各実施例における各機能モジュールを一つの処理モジュールに集積することができ、各モジュールは物理的に独立することもでき、二つ又は二つ以上のモジュールを一つのモジュールに集積することもできる。
前記機能をソフトウェア機能モジュールの形式で実現して独立製品として販売又は使用する場合、それを一つのコンピュータが読み取り可能な記憶媒質に記憶することができる。このような理解に基づき、本発明の技術的解決手段は本質的に、又は従来技術に貢献する部分、又は該技術的解決手段の部分はソフトウェア製品の形式で体現されることができ、該コンピュータソフトウェア製品が一つの記憶媒体に記憶され、複数の命令を含んで、一台のコンピュータ装置(パーソナルコンピュータ、サーバー、又はネットワークデバイス等であってもよい)に、本発明の各実施例に記載の前記方法の全て又は一部のステップを実行させる。なお、前述の記憶媒質は、USBメモリ、リムーバブルハードディスク、ROM、RAM、磁気ディスク又は光ディスク等の、各種のプログラムコードを記憶可能な媒質を含む。
上記は、本発明を実施するための形態であるが、本発明の保護範囲はこれに限定されるものではなく、本技術分野に精通しているいかなる当業者も、本発明に開示されている技術範囲において容易に想到しうる変更又は置き換えは、全て本発明の保護範囲内に含まれるものとする。このため、本発明の保護範囲は請求項の保護範囲を基準とすべきである。
(付記)
(付記1)
第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせることと、
前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動することと、
バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断することと、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信することと、
前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信することと、
前記バックアップホストは前記指定データを前記呼び出し側に送信することと、を含む、
ことを特徴とする仮想マシンの高速復旧方法。
(付記2)
第二ホストからバックアップホストへの全量データの同期が完了した場合、前記バックアップホストに前記読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせることをさらに含む、
ことを特徴とする付記1に記載の仮想マシンの高速復旧方法。
(付記3)
前記バックアップホストのゲストオペレーティングシステムは前記読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納することと、
前記バックアップホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得し、かつ前記読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信することと、前記Sync Origモジュールは前記読み書きリクエストを前記第二ホストに送信することと、
前記第二ホストのSync Termモジュールは前記読み書きリクエストを受信することと、書き込みリクエストに基づいて書き込み対象データを前記第二ホストのローカルディスクに記憶し、又は読み出しリクエストに基づいて前記第二ホストのローカルディスクから指定データを取得し、かつ前記指定データを前記バックアップホストのSync Origモジュールに送信することと、
前記バックアップホストのSync Origモジュールは前記指定データを受信しかつ前記指定データを前記バックアップホストのQemuモジュールに送信することと、
前記バックアップホストのQemuモジュールは前記指定データを前記バックアップホストのゲストオペレーティングシステムに送信することと、をさらに含む、
ことを特徴とする付記1に記載の仮想マシンの高速復旧方法。
(付記4)
前記第一ホストの仮想マシンデータを前記第二ホストにバックアップさせるには、
前記第一ホストのゲストオペレーティングシステムは読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納することと、
前記第一ホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得することと、前記Qemuモジュールは読み出しリクエストに基づき、前記第一ホストのローカルディスクから指定データを取得し、又は前記Qemuモジュールは書き込みリクエストに基づき、書き込み対象データを前記第一ホストのローカルディスクに記憶することと、かつ前記書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信することと、
前記ホストオペレーティングシステムのSync Origモジュールは前記書き込みリクエストを前記第二ホストのSync Termモジュールに送信することと、
前記第二ホストのSync Termモジュールは前記書き込みリクエストを受信し、かつ前記書き込みリクエストに対応する書き込み対象データを前記第二ホストのローカルディスクに記憶することと、を含む、
ことを特徴とする付記1に記載の仮想マシンの高速復旧方法。
(付記5)
前記第二ホストは現在の実行指標がプリセット条件に達するか否かを判断することと、
前記現在の実行指標がプリセット条件に達する場合、前記第二ホストにバックアップされた第一ホストの仮想マシン上の読み書きリクエストをバックアップホストに同期することと、
前記第二ホストに未同期データが存在するか否かを判断することと、
未同期データが存在する場合、第二ホストからバックアップホストへの全量データの同期が未完了であり、
未同期データが存在しない場合、第二ホストからバックアップホストへの全量データの同期が完了し、前記バックアップホストに同期完了の通知を送信することと、をさらに含む、
ことを特徴とする付記1〜4のいずれか1つに記載の仮想マシンの高速復旧方法。
(付記6)
第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるために用いられるデータバックアップユニットと、
前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動するために用いられるバックアップマシン起動ユニットと、
バックアップホスト上で起動された仮想マシンに、呼び出し側から送信した読み書きリクエストを受信させ、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断して、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信するために用いられるリクエスト判断ユニットと、
前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信するために用いられる第一処理ユニットと、
前記バックアップホストは前記指定データを前記呼び出し側に送信するために用いられるデータ送信ユニットと、を含む、
ことを特徴とする仮想マシンの高速復旧装置。
(付記7)
第二ホストからバックアップホストへの全量データの同期が完了した場合、前記バックアップホストに前記読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるために用いられる第二処理ユニットをさらに含む、
ことを特徴とする付記6に記載の仮想マシンの高速復旧装置。
(付記8)
前記読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納するために用いられる、前記バックアップホストのゲストオペレーティングシステムと、
前記リングバッファから前記読み書きリクエストを取得し、かつ前記読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信するために用いられ、前記Sync Origモジュールは前記読み書きリクエストを前記第二ホストに送信するようにする、前記バックアップホストのQemuモジュールと、
前記読み書きリクエストを受信するために用いられ、書き込みリクエストに基づいて書き込み対象データを前記第二ホストのローカルディスクに記憶し、又は読み出しリクエストに基づいて前記第二ホストのローカルディスクから指定データを取得し、かつ前記指定データを前記バックアップホストのSync Origモジュールに送信する、前記第二ホストのSync Termモジュールと、
前記指定データを受信しかつ前記指定データを前記バックアップホストのQemuモジュールに送信するために用いられる、前記バックアップホストのSync Origモジュールと、
前記指定データを前記バックアップホストのゲストオペレーティングシステムに送信するために用いられる、前記バックアップホストのQemuモジュールと、をさらに含む、
ことを特徴とする付記6に記載の仮想マシンの高速復旧装置。
(付記9)
前記データバックアップユニットは、
読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納するために用いられる、前記第一ホストのゲストオペレーティングシステムと、
前記リングバッファから前記読み書きリクエストを取得するために用いられ、前記Qemuモジュールは読み出しリクエストに基づき、前記第一ホストのローカルディスクから指定データを取得し、又は前記Qemuモジュールは書き込みリクエストに基づき、書き込み対象データを前記第一ホストのローカルディスクに記憶し、かつ前記書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信するようにする、前記第一ホストのQemuモジュールと、
前記書き込みリクエストを前記第二ホストのSync Termモジュールに送信するために用いられる、前記ホストオペレーティングシステムのSync Origモジュールと、
前記書き込みリクエストを受信し、かつ前記書き込みリクエストに対応する書き込み対象データを前記第二ホストのローカルディスクに記憶するために用いられる、前記第二ホストのSync Termモジュールと、を含む、
ことを特徴とする付記6に記載の仮想マシンの高速復旧装置。
(付記10)
前記リクエスト判断ユニットは、
第二ホストは現在の実行指標がプリセット条件に達するか否かを判断するために用いられる第一判断サブユニットと、
前記現在の実行指標がプリセット条件に達する場合、前記第二ホストにバックアップされた第一ホストの仮想マシン上の読み書きリクエストをバックアップホストに同期するために用いられる第一同期サブユニットと、
前記第二ホストに未同期データが存在するか否かを判断するために用いられる第二判断サブユニットと、
未同期データが存在する場合、第二ホストからバックアップホストへの全量データの同期が未完了であると確定するために用いられる第一確定サブユニットと、
未同期データが存在しない場合、第二ホストからバックアップホストへの全量データの同期が完了したと確定し、前記バックアップホストに同期完了の通知を送信するために用いられる第二確定サブユニットと、を含む、
ことを特徴とする付記6〜9のいずれか1つに記載の仮想マシンの高速復旧装置。
(付記11)
それぞれプロセッサが設置されている第一ホスト、第二ホスト及びバックアップホストを含み、前記プロセッサは、
第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるステップと、
前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動するステップと、
バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断するステップと、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信するステップと、
前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信するステップと、
前記バックアップホストは前記指定データを前記呼び出し側に送信するステップと、を実行する、
ことを特徴とする仮想マシンの高速復旧システム。
(付記12)
第二ホストからバックアップホストへの全量データの同期が完了した場合、前記バックアップホストに前記読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるステップをさらに含む、
ことを特徴とする付記11に記載の仮想マシンの高速復旧システム。
(付記13)
前記バックアップホストのゲストオペレーティングシステムは前記読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納するステップと、
前記バックアップホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得し、かつ前記読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信するステップと、前記Sync Origモジュールは前記読み書きリクエストを前記第二ホストに送信するステップと、
前記第二ホストのSync Termモジュールは前記読み書きリクエストを受信するステップと、書き込みリクエストに基づいて書き込み対象データを前記第二ホストのローカルディスクに記憶し、又は読み出しリクエストに基づいて前記第二ホストのローカルディスクから指定データを取得し、かつ前記指定データを前記バックアップホストのSync Origモジュールに送信するステップと、
前記バックアップホストのSync Origモジュールは前記指定データを受信しかつ前記指定データを前記バックアップホストのQemuモジュールに送信するステップと、
前記バックアップホストのQemuモジュールは前記指定データを前記バックアップホストのゲストオペレーティングシステムに送信するステップと、をさらに含む、
ことを特徴とする付記11に記載の仮想マシンの高速復旧システム。
(付記14)
前記第一ホストの仮想マシンデータを前記第二ホストにバックアップさせるには、
前記第一ホストのゲストオペレーティングシステムは読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納することと、
前記第一ホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得することと、前記Qemuモジュールは読み出しリクエストに基づき、前記第一ホストのローカルディスクから指定データを取得し、又は前記Qemuモジュールは書き込みリクエストに基づき、書き込み対象データを前記第一ホストのローカルディスクに記憶することと、かつ前記書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信することと、
前記ホストオペレーティングシステムのSync Origモジュールは前記書き込みリクエストを前記第二ホストのSync Termモジュールに送信することと、
前記第二ホストのSync Termモジュールは前記書き込みリクエストを受信し、かつ前記書き込みリクエストに対応する書き込み対象データを前記第二ホストのローカルディスクに記憶することと、を含む、
ことを特徴とする付記11に記載の仮想マシンの高速復旧システム。
(付記15)
前記第二ホストは現在の実行指標がプリセット条件に達するか否かを判断するステップと、
前記現在の実行指標がプリセット条件に達する場合、前記第二ホストにバックアップされた第一ホストの仮想マシン上の読み書きリクエストをバックアップホストに同期するステップと、
前記第二ホストに未同期データが存在するか否かを判断するステップと、
未同期データが存在する場合、第二ホストからバックアップホストへの全量データの同期が未完了であり、
未同期データが存在しない場合、第二ホストからバックアップホストへの全量データの同期が完了し、前記バックアップホストに同期完了の通知を送信するステップと、をさらに含む、
ことを特徴とする付記11〜14のいずれか1つに記載の仮想マシンの高速復旧システム。
(付記16)
前記第一ホスト、第二ホスト及びバックアップホストはいずれも、前記プロセッサに接続されたユーザーインタラクション装置をさらに含み、
前記第一ホストと前記第二ホスト上のユーザーインタラクション装置は、ユーザーが入力した第一バックアップ記憶命令と第二バックアップ記憶命令をそれぞれ受信し、前記第一バックアップ記憶命令と前記第二バックアップ記憶命令に基づいて前記第一ホストと第二ホストとをピアツーピア記憶に結び付けるために用いられ、前記第一バックアップ記憶命令と第二バックアップ記憶命令は同一ピアツーピアのIDを含み、
前記バックアップホスト上のユーザーインタラクション装置は、ユーザーが入力した仮想マシン起動命令を受信することによって、前記第一ホストのシステムダウン又はパワーオフの場合、前記バックアップホストに前記第一ホストの仮想マシンを起動するために用いられ、前記仮想マシン起動命令は前記ピアツーピアのIDを含む、
ことを特徴とする付記11に記載の仮想マシンの高速復旧システム。
(付記17)
前記バックアップホストは、前記プロセッサに接続されたネットワークインターフェースをさらに含み、前記ネットワークインターフェースは前記呼び出し側から送信した読み書きリクエストを受信し、かつ前記指定データを前記呼び出し側に送信するために用いられる、
ことを特徴とする付記11に記載の仮想マシンの高速復旧システム。
(付記18)
前記第一ホスト上のメモリに、第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶するために用いられるデータベースが設置され、
前記第二ホスト上のメモリに、第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶し、かつバックアップホスト上で起動された前記第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶するために用いられるデータベースが設置され、
前記バックアップホスト上のメモリに、第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶し、かつバックアップホスト上で起動された前記第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶するために用いられるデータベースが設置されている、
ことを特徴とする付記11に記載の仮想マシンの高速復旧システム。

Claims (18)

  1. 第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせることと、
    前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動することと、
    バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断することと、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信することと、
    前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信することと、
    前記バックアップホストは前記指定データを前記呼び出し側に送信することと、を含む、
    ことを特徴とする仮想マシンの高速復旧方法。
  2. 第二ホストからバックアップホストへの全量データの同期が完了した場合、前記バックアップホストに前記読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせることをさらに含む、
    ことを特徴とする請求項1に記載の仮想マシンの高速復旧方法。
  3. 前記バックアップホストのゲストオペレーティングシステムは前記読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納することと、
    前記バックアップホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得し、かつ前記読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信することと、前記Sync Origモジュールは前記読み書きリクエストを前記第二ホストに送信することと、
    前記第二ホストのSync Termモジュールは前記読み書きリクエストを受信することと、書き込みリクエストに基づいて書き込み対象データを前記第二ホストのローカルディスクに記憶し、又は読み出しリクエストに基づいて前記第二ホストのローカルディスクから指定データを取得し、かつ前記指定データを前記バックアップホストのSync Origモジュールに送信することと、
    前記バックアップホストのSync Origモジュールは前記指定データを受信しかつ前記指定データを前記バックアップホストのQemuモジュールに送信することと、
    前記バックアップホストのQemuモジュールは前記指定データを前記バックアップホストのゲストオペレーティングシステムに送信することと、をさらに含む、
    ことを特徴とする請求項1に記載の仮想マシンの高速復旧方法。
  4. 前記第一ホストの仮想マシンデータを前記第二ホストにバックアップさせるには、
    前記第一ホストのゲストオペレーティングシステムは読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納することと、
    前記第一ホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得することと、前記Qemuモジュールは読み出しリクエストに基づき、前記第一ホストのローカルディスクから指定データを取得し、又は前記Qemuモジュールは書き込みリクエストに基づき、書き込み対象データを前記第一ホストのローカルディスクに記憶することと、かつ前記書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信することと、
    前記ホストオペレーティングシステムのSync Origモジュールは前記書き込みリクエストを前記第二ホストのSync Termモジュールに送信することと、
    前記第二ホストのSync Termモジュールは前記書き込みリクエストを受信し、かつ前記書き込みリクエストに対応する書き込み対象データを前記第二ホストのローカルディスクに記憶することと、を含む、
    ことを特徴とする請求項1に記載の仮想マシンの高速復旧方法。
  5. 前記第二ホストは現在の実行指標がプリセット条件に達するか否かを判断することと、
    前記現在の実行指標がプリセット条件に達する場合、前記第二ホストにバックアップされた第一ホストの仮想マシン上の読み書きリクエストをバックアップホストに同期することと、
    前記第二ホストに未同期データが存在するか否かを判断することと、
    未同期データが存在する場合、第二ホストからバックアップホストへの全量データの同期が未完了であり、
    未同期データが存在しない場合、第二ホストからバックアップホストへの全量データの同期が完了し、前記バックアップホストに同期完了の通知を送信することと、をさらに含む、
    ことを特徴とする請求項1〜4のいずれか1項に記載の仮想マシンの高速復旧方法。
  6. 第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるために用いられるデータバックアップユニットと、
    前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動するために用いられるバックアップマシン起動ユニットと、
    バックアップホスト上で起動された仮想マシンに、呼び出し側から送信した読み書きリクエストを受信させ、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断して、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信するために用いられるリクエスト判断ユニットと、
    前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信するために用いられる第一処理ユニットと、
    前記バックアップホストは前記指定データを前記呼び出し側に送信するために用いられるデータ送信ユニットと、を含む、
    ことを特徴とする仮想マシンの高速復旧装置。
  7. 第二ホストからバックアップホストへの全量データの同期が完了した場合、前記バックアップホストに前記読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるために用いられる第二処理ユニットをさらに含む、
    ことを特徴とする請求項6に記載の仮想マシンの高速復旧装置。
  8. 前記読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納するために用いられる、前記バックアップホストのゲストオペレーティングシステムと、
    前記リングバッファから前記読み書きリクエストを取得し、かつ前記読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信するために用いられ、前記Sync Origモジュールは前記読み書きリクエストを前記第二ホストに送信するようにする、前記バックアップホストのQemuモジュールと、
    前記読み書きリクエストを受信するために用いられ、書き込みリクエストに基づいて書き込み対象データを前記第二ホストのローカルディスクに記憶し、又は読み出しリクエストに基づいて前記第二ホストのローカルディスクから指定データを取得し、かつ前記指定データを前記バックアップホストのSync Origモジュールに送信する、前記第二ホストのSync Termモジュールと、
    前記指定データを受信しかつ前記指定データを前記バックアップホストのQemuモジュールに送信するために用いられる、前記バックアップホストのSync Origモジュールと、
    前記指定データを前記バックアップホストのゲストオペレーティングシステムに送信するために用いられる、前記バックアップホストのQemuモジュールと、をさらに含む、
    ことを特徴とする請求項6に記載の仮想マシンの高速復旧装置。
  9. 前記データバックアップユニットは、
    読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納するために用いられる、前記第一ホストのゲストオペレーティングシステムと、
    前記リングバッファから前記読み書きリクエストを取得するために用いられ、前記Qemuモジュールは読み出しリクエストに基づき、前記第一ホストのローカルディスクから指定データを取得し、又は前記Qemuモジュールは書き込みリクエストに基づき、書き込み対象データを前記第一ホストのローカルディスクに記憶し、かつ前記書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信するようにする、前記第一ホストのQemuモジュールと、
    前記書き込みリクエストを前記第二ホストのSync Termモジュールに送信するために用いられる、前記ホストオペレーティングシステムのSync Origモジュールと、
    前記書き込みリクエストを受信し、かつ前記書き込みリクエストに対応する書き込み対象データを前記第二ホストのローカルディスクに記憶するために用いられる、前記第二ホストのSync Termモジュールと、を含む、
    ことを特徴とする請求項6に記載の仮想マシンの高速復旧装置。
  10. 前記リクエスト判断ユニットは、
    第二ホストは現在の実行指標がプリセット条件に達するか否かを判断するために用いられる第一判断サブユニットと、
    前記現在の実行指標がプリセット条件に達する場合、前記第二ホストにバックアップされた第一ホストの仮想マシン上の読み書きリクエストをバックアップホストに同期するために用いられる第一同期サブユニットと、
    前記第二ホストに未同期データが存在するか否かを判断するために用いられる第二判断サブユニットと、
    未同期データが存在する場合、第二ホストからバックアップホストへの全量データの同期が未完了であると確定するために用いられる第一確定サブユニットと、
    未同期データが存在しない場合、第二ホストからバックアップホストへの全量データの同期が完了したと確定し、前記バックアップホストに同期完了の通知を送信するために用いられる第二確定サブユニットと、を含む、
    ことを特徴とする請求項6〜9のいずれか1項に記載の仮想マシンの高速復旧装置。
  11. それぞれプロセッサが設置されている第一ホスト、第二ホスト及びバックアップホストを含み、前記プロセッサは、
    第一ホストと第二ホストとをピアツーピア記憶に結び付けて、前記第一ホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるステップと、
    前記第一ホストのシステムダウン又はパワーオフの場合、バックアップホストは前記第一ホストの仮想マシンを起動するステップと、
    バックアップホスト上で起動された仮想マシンは呼び出し側から送信した読み書きリクエストを受信し、かつ第二ホストからバックアップホストへの全量データの同期が完了したか否かを判断するステップと、第二ホストからバックアップホストへの全量データの同期が未完了な場合、前記読み書きリクエストを前記第二ホストに送信するステップと、
    前記第二ホストは前記読み書きリクエストを受信し、書き込みリクエストに基づいて書き込み対象データを前記第二ホストに記憶し、又は読み出しリクエストに基づいて指定データを取得しかつ前記指定データをバックアップホストに送信するステップと、
    前記バックアップホストは前記指定データを前記呼び出し側に送信するステップと、を実行する、
    ことを特徴とする仮想マシンの高速復旧システム。
  12. 第二ホストからバックアップホストへの全量データの同期が完了した場合、前記バックアップホストに前記読み書きリクエストを実行し、かつバックアップホストの仮想マシン上の読み書きリクエストを前記第二ホストにバックアップさせるステップをさらに含む、
    ことを特徴とする請求項11に記載の仮想マシンの高速復旧システム。
  13. 前記バックアップホストのゲストオペレーティングシステムは前記読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納するステップと、
    前記バックアップホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得し、かつ前記読み書きリクエストをホストオペレーティングシステム上のSync Origモジュールに送信するステップと、前記Sync Origモジュールは前記読み書きリクエストを前記第二ホストに送信するステップと、
    前記第二ホストのSync Termモジュールは前記読み書きリクエストを受信するステップと、書き込みリクエストに基づいて書き込み対象データを前記第二ホストのローカルディスクに記憶し、又は読み出しリクエストに基づいて前記第二ホストのローカルディスクから指定データを取得し、かつ前記指定データを前記バックアップホストのSync Origモジュールに送信するステップと、
    前記バックアップホストのSync Origモジュールは前記指定データを受信しかつ前記指定データを前記バックアップホストのQemuモジュールに送信するステップと、
    前記バックアップホストのQemuモジュールは前記指定データを前記バックアップホストのゲストオペレーティングシステムに送信するステップと、をさらに含む、
    ことを特徴とする請求項11に記載の仮想マシンの高速復旧システム。
  14. 前記第一ホストの仮想マシンデータを前記第二ホストにバックアップさせるには、
    前記第一ホストのゲストオペレーティングシステムは読み書きリクエストを受信し、かつ前記読み書きリクエストをリングバッファに格納することと、
    前記第一ホストのQemuモジュールは前記リングバッファから前記読み書きリクエストを取得することと、前記Qemuモジュールは読み出しリクエストに基づき、前記第一ホストのローカルディスクから指定データを取得し、又は前記Qemuモジュールは書き込みリクエストに基づき、書き込み対象データを前記第一ホストのローカルディスクに記憶することと、かつ前記書き込みリクエストをホストオペレーティングシステムのSync Origモジュールに送信することと、
    前記ホストオペレーティングシステムのSync Origモジュールは前記書き込みリクエストを前記第二ホストのSync Termモジュールに送信することと、
    前記第二ホストのSync Termモジュールは前記書き込みリクエストを受信し、かつ前記書き込みリクエストに対応する書き込み対象データを前記第二ホストのローカルディスクに記憶することと、を含む、
    ことを特徴とする請求項11に記載の仮想マシンの高速復旧システム。
  15. 前記第二ホストは現在の実行指標がプリセット条件に達するか否かを判断するステップと、
    前記現在の実行指標がプリセット条件に達する場合、前記第二ホストにバックアップされた第一ホストの仮想マシン上の読み書きリクエストをバックアップホストに同期するステップと、
    前記第二ホストに未同期データが存在するか否かを判断するステップと、
    未同期データが存在する場合、第二ホストからバックアップホストへの全量データの同期が未完了であり、
    未同期データが存在しない場合、第二ホストからバックアップホストへの全量データの同期が完了し、前記バックアップホストに同期完了の通知を送信するステップと、をさらに含む、
    ことを特徴とする請求項11〜14のいずれか1項に記載の仮想マシンの高速復旧システム。
  16. 前記第一ホスト、第二ホスト及びバックアップホストはいずれも、前記プロセッサに接続されたユーザーインタラクション装置をさらに含み、
    前記第一ホストと前記第二ホスト上のユーザーインタラクション装置は、ユーザーが入力した第一バックアップ記憶命令と第二バックアップ記憶命令をそれぞれ受信し、前記第一バックアップ記憶命令と前記第二バックアップ記憶命令に基づいて前記第一ホストと第二ホストとをピアツーピア記憶に結び付けるために用いられ、前記第一バックアップ記憶命令と第二バックアップ記憶命令は同一ピアツーピアのIDを含み、
    前記バックアップホスト上のユーザーインタラクション装置は、ユーザーが入力した仮想マシン起動命令を受信することによって、前記第一ホストのシステムダウン又はパワーオフの場合、前記バックアップホストに前記第一ホストの仮想マシンを起動するために用いられ、前記仮想マシン起動命令は前記ピアツーピアのIDを含む、
    ことを特徴とする請求項11に記載の仮想マシンの高速復旧システム。
  17. 前記バックアップホストは、前記プロセッサに接続されたネットワークインターフェースをさらに含み、前記ネットワークインターフェースは前記呼び出し側から送信した読み書きリクエストを受信し、かつ前記指定データを前記呼び出し側に送信するために用いられる、
    ことを特徴とする請求項11に記載の仮想マシンの高速復旧システム。
  18. 前記第一ホスト上のメモリに、第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶するために用いられるデータベースが設置され、
    前記第二ホスト上のメモリに、第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶し、かつバックアップホスト上で起動された前記第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶するために用いられるデータベースが設置され、
    前記バックアップホスト上のメモリに、第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶し、かつバックアップホスト上で起動された前記第一ホストの仮想マシン上の読み書きリクエストに対応するデータを記憶するために用いられるデータベースが設置されている、
    ことを特徴とする請求項11に記載の仮想マシンの高速復旧システム。
JP2018519449A 2016-12-28 2017-04-10 仮想マシンの高速復旧方法 Active JP6735820B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201611240016.5 2016-12-28
CN201611240016.5A CN106708603B (zh) 2016-12-28 2016-12-28 虚拟机快速恢复方法及装置
PCT/CN2017/079912 WO2018120491A1 (zh) 2016-12-28 2017-04-10 虚拟机快速恢复方法、装置和系统

Publications (2)

Publication Number Publication Date
JP2019504374A true JP2019504374A (ja) 2019-02-14
JP6735820B2 JP6735820B2 (ja) 2020-08-05

Family

ID=58903718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018519449A Active JP6735820B2 (ja) 2016-12-28 2017-04-10 仮想マシンの高速復旧方法

Country Status (8)

Country Link
US (1) US10740197B2 (ja)
EP (1) EP3564815A4 (ja)
JP (1) JP6735820B2 (ja)
KR (1) KR102067918B1 (ja)
CN (1) CN106708603B (ja)
AU (1) AU2017341159B2 (ja)
SG (1) SG11201803894WA (ja)
WO (1) WO2018120491A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168774B (zh) * 2017-06-14 2020-11-10 北京云联万维技术有限公司 一种基于本地存储的虚拟机迁移方法及系统
JP7006461B2 (ja) * 2018-04-02 2022-01-24 株式会社デンソー 電子制御装置および電子制御システム
CN109298977A (zh) * 2018-10-19 2019-02-01 深信服科技股份有限公司 一种虚拟机业务快速恢复方法、系统、装置及存储介质
CN111240889A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 数据备份系统和方法以及电子设备
CN111090491B (zh) * 2019-07-03 2023-10-10 杭州海康威视系统技术有限公司 虚拟机任务状态的恢复方法、装置及电子设备
CN111221561B (zh) * 2020-01-14 2024-05-31 平安科技(深圳)有限公司 流表更新方法、装置、系统、计算机设备及存储介质
US11509487B2 (en) * 2020-03-16 2022-11-22 Kaseya Limited System for rollout of certificates to client and server independent of public key infrastructure
CN113900716B (zh) * 2021-09-29 2023-05-30 武汉噢易云计算股份有限公司 桌面启动的管理方法及装置
CN113918284B (zh) * 2021-10-13 2022-08-02 江苏安超云软件有限公司 云主机批量迁移的方法及装置、电子设备和存储介质
CN114760242B (zh) * 2022-03-30 2024-04-09 深信服科技股份有限公司 虚拟路由器的迁移方法、装置、电子设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653794B2 (en) * 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
KR101007279B1 (ko) * 2007-12-17 2011-01-13 한국전자통신연구원 가상 머신 디스크 풀을 이용한 가상 머신 프로비저닝 방법 및 시스템
US8893147B2 (en) * 2012-01-13 2014-11-18 Ca, Inc. Providing a virtualized replication and high availability environment including a replication and high availability engine
CN103838593B (zh) * 2012-11-22 2020-04-03 华为技术有限公司 恢复虚拟机的方法、系统及控制器、服务器、寄宿主机
KR20140140719A (ko) * 2013-05-30 2014-12-10 삼성에스디에스 주식회사 가상 머신 동기화 장치 및 시스템과 이를 이용한 장애 처리 방법
CN103559108B (zh) * 2013-11-11 2017-05-17 中国科学院信息工程研究所 一种基于虚拟化实现主备故障自动恢复的方法及系统
US9529617B2 (en) * 2014-03-21 2016-12-27 Ca, Inc. Instant virtual machines
KR102174692B1 (ko) * 2014-03-26 2020-11-05 에스케이텔레콤 주식회사 가상화 환경에서의 장애 처리 방법
KR20160012863A (ko) * 2014-07-24 2016-02-03 삼성전자주식회사 가상 머신을 실행하는 전자 장치 및 가상 머신을 실행하는 방법
CN105653345A (zh) 2014-10-17 2016-06-08 伊姆西公司 用于支持对数据的非易失性随机访问的方法和设备
CN104331318B (zh) * 2014-10-27 2018-04-06 上海斐讯数据通信技术有限公司 一种嵌入式双系统及其工作方法
CN104965757B (zh) * 2015-01-21 2018-03-30 深圳市腾讯计算机系统有限公司 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
US9632881B1 (en) * 2015-03-24 2017-04-25 EMC IP Holding Company LLC Replication of a virtual distributed volume
CN105159798A (zh) * 2015-08-28 2015-12-16 浪潮集团有限公司 一种虚拟机的双机热备方法、双机热备管理服务器和系统

Also Published As

Publication number Publication date
JP6735820B2 (ja) 2020-08-05
SG11201803894WA (en) 2018-08-30
AU2017341159B2 (en) 2019-07-25
WO2018120491A1 (zh) 2018-07-05
KR102067918B1 (ko) 2020-01-17
US10740197B2 (en) 2020-08-11
AU2017341159A1 (en) 2018-07-12
CN106708603B (zh) 2019-04-26
KR20180087278A (ko) 2018-08-01
EP3564815A1 (en) 2019-11-06
CN106708603A (zh) 2017-05-24
US20190272219A1 (en) 2019-09-05
EP3564815A4 (en) 2020-09-02

Similar Documents

Publication Publication Date Title
JP6735820B2 (ja) 仮想マシンの高速復旧方法
US11681566B2 (en) Load balancing and fault tolerant service in a distributed data system
US9727429B1 (en) Method and system for immediate recovery of replicated virtual machines
US9552405B1 (en) Methods and apparatus for recovery of complex assets in distributed information processing systems
US11086727B2 (en) Systems and methods for continuous data protection
US11061601B2 (en) Systems and methods for continuous data protection
US20200349030A1 (en) Systems and methods for continuous data protection
US20140130040A1 (en) Systems and methods for migrating virtual machines
WO2018058942A1 (zh) 一种数据处理方法以及备份服务器
US20240012719A1 (en) Remote snappable linking
US11747995B2 (en) Data resynchronization methods and systems in continuous data protection
EP2741467B1 (en) Application execution method and apparatus
US20230125719A1 (en) Systems and methods for continuous data protection comprising storage of completed i/o requests intercepted from an i/o stream using touch points
US11663089B2 (en) Systems and methods for continuous data protection
WO2015180124A1 (zh) 终端设备显示方法和终端设备
US11663092B2 (en) Systems and methods for continuous data protection
US20180083729A1 (en) Packet-aware fault-tolerance method and system of virtual machines applied to cloud service, computer readable record medium and computer program product
US20200348955A1 (en) Systems and methods for continuous data protection
US10120488B2 (en) Display method and display device
US20200349029A1 (en) Systems and methods for continuous data protection
KR20200037185A (ko) 애플리케이션 실행 방법 및 장치
CN108401453B (zh) 一种控制显示屏的方法、装置和智能终端
TWI778295B (zh) 資訊處理系統、其之電源作業控制器以及於叢集作業期間處理電源請求的方法
WO2023207280A1 (zh) 一种数据恢复方法以及相关装置
US20140115097A1 (en) Transmitting an executing application

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180413

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200416

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: 20200707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200714

R150 Certificate of patent or registration of utility model

Ref document number: 6735820

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250