JP5702652B2 - Memory synchronization method, active virtual machine, standby virtual machine, and memory synchronization program - Google Patents

Memory synchronization method, active virtual machine, standby virtual machine, and memory synchronization program Download PDF

Info

Publication number
JP5702652B2
JP5702652B2 JP2011084054A JP2011084054A JP5702652B2 JP 5702652 B2 JP5702652 B2 JP 5702652B2 JP 2011084054 A JP2011084054 A JP 2011084054A JP 2011084054 A JP2011084054 A JP 2011084054A JP 5702652 B2 JP5702652 B2 JP 5702652B2
Authority
JP
Japan
Prior art keywords
virtual machine
standby
read
memory
active
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
JP2011084054A
Other languages
Japanese (ja)
Other versions
JP2012221064A (en
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011084054A priority Critical patent/JP5702652B2/en
Publication of JP2012221064A publication Critical patent/JP2012221064A/en
Application granted granted Critical
Publication of JP5702652B2 publication Critical patent/JP5702652B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、メモリ同期方法及び運用系の仮想マシン及び待機系の仮想マシン及びメモリ同期プログラムに係り、特に、物理マシンを2台以上用いて冗長化構成を有する仮想マシン同期機構において、運用系と待機系のストレージが一致している場合(例えば、共有ストレージの利用)、運用系と待機系の仮想マシンのメモリ状態を同期させるためのメモリ同期方法及び運用系の仮想マシン及び待機系の仮想マシン及びメモリ同期プログラムに関する。   The present invention relates to a memory synchronization method, an active virtual machine, a standby virtual machine, and a memory synchronization program, and in particular, in a virtual machine synchronization mechanism having a redundant configuration using two or more physical machines, When the standby storages match (for example, using shared storage), a memory synchronization method for synchronizing the memory states of the active and standby virtual machines, the active virtual machine, and the standby virtual machine And a memory synchronization program.

物理マシンを2台以上用意し、冗長化することで、信頼性の高いシステムを実現するためにはシステムを同期させる必要がある。   In order to realize a highly reliable system by preparing two or more physical machines and making them redundant, it is necessary to synchronize the systems.

そのための方法として、運用系の物理マシン上で動作する仮想マシンのサービス停止時間を最小限に抑えて、待機系の物理マシンに仮想マシンの実行状態を転送するシステムがある(例えば、非特許文献1参照)。このシステムは、仮想マシンを停止せずに、仮想マシンの実行状態を転送していくので、実行状態は常に更新されていく。そのため、既に転送済みの仮想マシンメモリに変更が生じた場合は、再度転送しなおす必要がある。転送すべき仮想マシンの実行状態が十分に小さくなると、運用系の仮想マシンを停止して、残りのデータを待機系に転送する。   As a method for this, there is a system that transfers the execution state of a virtual machine to a standby physical machine while minimizing service stop time of the virtual machine operating on the active physical machine (for example, non-patent literature) 1). Since this system transfers the execution state of the virtual machine without stopping the virtual machine, the execution state is constantly updated. Therefore, if a change occurs in the already transferred virtual machine memory, it is necessary to transfer it again. When the execution state of the virtual machine to be transferred becomes sufficiently small, the active virtual machine is stopped and the remaining data is transferred to the standby system.

また、ネットワークアウトプットもしくは、ストレージ書き込みを契機に仮想マシンの実行状態を同期することで、常にプライマリとセカンダリの仮想マシンの実行状態を同一に保つシステムがある(例えば、非特許文献2参照)。このシステムは、仮想マシンが利用するストレージの同期は行っていないため、共有ストレージを利用している。   In addition, there is a system in which the execution state of the primary and secondary virtual machines is always kept the same by synchronizing the execution state of the virtual machine triggered by network output or storage writing (for example, see Non-Patent Document 2). Since this system does not synchronize the storage used by the virtual machine, it uses shared storage.

当該システムについて以下に説明する。   The system will be described below.

図1は、従来の同期システムの構成を示す。   FIG. 1 shows the configuration of a conventional synchronization system.

運用系1A及び待機系1B共に、仮想マシン制御部10を有し、各仮想マシン制御部10は、同期制御部11を有し、運用系の物理マシン上で動作する仮想マシンの実行状態に生じた変更を、待機系1Bの物理マシンに転送し、待機系の仮想マシンに適用することで、仮想マシン20A,20Bの実行状態(CPU、メモリ、デバイス)を常に同一状態に保つ。なお、同図では共有ストレージ2を運用系システム1A,待機系システム1Bのハードウェア30A,30Bが共用している例を示しているが、ストレージ2を同一状態に保つための構成は同図の構成に限定されるものではなく、例えば、運用系、待機系がそれぞれの別々のストレージを利用し、常に同一に保つ処理を行ってもよい。   Both the active system 1A and the standby system 1B have a virtual machine control unit 10, and each virtual machine control unit 10 has a synchronization control unit 11, which occurs in the execution state of a virtual machine operating on an active physical machine. The change is transferred to the physical machine of the standby system 1B and applied to the standby virtual machine, so that the execution states (CPU, memory, device) of the virtual machines 20A and 20B are always kept in the same state. Although the figure shows an example in which the shared storage 2 is shared by the hardware 30A and 30B of the active system 1A and the standby system 1B, the configuration for keeping the storage 2 in the same state is shown in FIG. The configuration is not limited, and for example, the active system and the standby system may use separate storages to perform processing that always keeps the same.

運用系1A及び待機系1Bは、それぞれ図2、図3に示す動作を行う。   The active system 1A and the standby system 1B perform the operations shown in FIGS. 2 and 3, respectively.

図2は、従来技術による運用系同期制御部のフローチャートである。   FIG. 2 is a flowchart of an active system synchronization control unit according to the prior art.

運用系1Aの仮想マシン制御部10Aの同期制御部11Aはストレージ2に書き込みが発生したことを検知すると、同期を開始する(ステップ110)。前回同期時からの差分メモリを取得し、運用系仮想マシン20Aの実行状態(CPU、差分メモリ、デバイス)の差分を待機系の同期制御部11Bに送信し(ステップ120)、待機系1Bからの全データ受信完了通知が送信されたかを判断し(ステップ130)、全て受信した場合には処理を終了する。   When the synchronization control unit 11A of the virtual machine control unit 10A of the active system 1A detects that writing has occurred in the storage 2, it starts synchronization (step 110). The difference memory from the previous synchronization time is acquired, and the difference of the execution state (CPU, difference memory, device) of the active virtual machine 20A is transmitted to the standby synchronization control unit 11B (step 120). It is determined whether or not all data reception completion notification has been transmitted (step 130).

図3は、従来技術による待機系同期制御部のフローチャートである。   FIG. 3 is a flowchart of a standby synchronization control unit according to the prior art.

待機系1Bの仮想マシン制御部10Bの同期制御部11Bは、運用系マシンの実行状態の差分を受信すると(ステップ210)、受信した差分を待機系仮想マシン20Bの実行状態に反映させ(ステップ220)、送信側の運用系10Aに全データを受信したことを通知するための全データ受信完了通知を送信する(ステップ230)。   When the synchronization control unit 11B of the virtual machine control unit 10B of the standby system 1B receives the difference in the execution state of the active machine (step 210), the received difference is reflected in the execution state of the standby system virtual machine 20B (step 220). ) An all data reception completion notification for notifying that all data has been received is transmitted to the operation system 10A on the transmission side (step 230).

また、上記の技術の他に、ネットワークアウトプットを発行する前に同期することで、常にプライマリとセカンダリの仮想マシンの実行状態及びストレージを同一に保つことができると、論文で紹介されている(例えば、非特許文献3参照)。   In addition to the above technology, the paper introduced that the execution state and storage of the primary and secondary virtual machines can always be kept the same by synchronizing before issuing the network output ( For example, refer nonpatent literature 3).

また、マスタとスレーブの記憶装置のデータに不一致がある場合に、差分を転送して同期する技術がある(例えば、特許文献1参照)。   Further, there is a technique of transferring a difference and synchronizing when there is a discrepancy between data in a master and a slave storage device (see, for example, Patent Document 1).

特許第4472995号公報Japanese Patent No. 4472959

Clark, C., Fraser, K., Hand, S., Hansen, J.G., E., Limpach, C., Paratt, I. and Warfield, A.: Live Migration of Virtual Machines, 2nd USENIX Symposium on Networked Systems Design and Implementation, Boston, MA, USA, pp. 273-286.Clark, C., Fraser, K., Hand, S., Hansen, JG, E., Limpach, C., Paratt, I. and Warfield, A .: Live Migration of Virtual Machines, 2nd USENIX Symposium on Networked Systems Design and Implementation, Boston, MA, USA, pp. 273-286. 田村芳明、柳澤佳里、佐藤孝治、盛合敏:Kemari: 仮想マシン間の同期による耐故障クラスタリング、情報処理学会論文誌コンピューティングシステム、Vol. 3, No.1, pp. 13-24 (2010).Yoshiaki Tamura, Kari Yanagisawa, Koji Sato, Satoshi Moriai: Kemari: Fault Tolerant Clustering by Synchronization Between Virtual Machines, IPSJ Transactions, Vol. 3, No.1, pp. 13-24 (2010). B. Curry., G. Lefebvre., D. Meyer., M. Feeley., N. Hutchinson., A. Warfield.: Remus: High Availability via Asynchronous virtual Machine replication, 5th USENIX Symposium on Networked Systems Design and Implementation, pp. 161-174 (2008).B. Curry., G. Lefebvre., D. Meyer., M. Feeley., N. Hutchinson., A. Warfield .: Remus: High Availability via Asynchronous virtual Machine replication, 5th USENIX Symposium on Networked Systems Design and Implementation, pp. 161-174 (2008).

しかしながら、上記の非特許文献1の技術は、ストレージの読み出しにより変更が生じた仮想マシンのメモリを一致させるために、メモリのデータそのものを転送する方式であるので、転送量が大きいという問題がある。   However, since the technique of Non-Patent Document 1 described above is a method of transferring memory data itself in order to match the memory of a virtual machine that has changed due to storage read, there is a problem that the transfer amount is large. .

また、非特許文献2の技術は、ストレージの読み出しにより、変更が生じた仮想マシンのメモリを一致させるために、メモリデータそのものを転送する方式であるので、転送量が大きいという問題がある。   Further, the technique of Non-Patent Document 2 has a problem that the transfer amount is large because the memory data itself is transferred in order to match the memory of the virtual machine in which the change has occurred by reading the storage.

また、非特許文献3の技術は、ストレージの読み出しにより、変更が生じた仮想マシンのメモリを一致させるために、メモリデータそのものを転送する方式であるので、転送量が大きいという問題がある。   Further, the technique of Non-Patent Document 3 has a problem that the transfer amount is large because the memory data itself is transferred in order to match the memory of the virtual machine in which the change has occurred by reading the storage.

また、特許文献1の技術は、マスタは記憶装置にあるデータそのものをスレーブに転送するので、転送量が大きいという問題がある。   Further, the technique of Patent Document 1 has a problem that the transfer amount is large because the master transfers the data itself in the storage device to the slave.

本発明は、上記の点に鑑みなされたもので、運用系と待機系のストレージが一致している場合(例えば、共有ストレージの利用)に、データ転送量を削減することが可能なメモリ同期方法及び運用系の仮想マシン及び待機系の仮想マシン及びメモリ同期プログラムを提供することを目的とする。   The present invention has been made in view of the above points, and is a memory synchronization method capable of reducing the amount of data transfer when the active and standby storages match (for example, using shared storage). It is another object of the present invention to provide an active virtual machine, a standby virtual machine, and a memory synchronization program.

上記の課題を解決するために、本発明は、運用系と待機系で共有ストレージを有し、運用系の物理マシン上で動作する仮想マシンのメモリの内容と待機系の物理マシン上で動作する仮想マシンのメモリの内容を任意のタイミングで同期させるメモリ同期システムであって、
前記運用系の仮想マシンにおいて、
読み出し命令捕捉手段が、前記共有ストレージに読み出し命令が発生すると、該読み出し命令の読み込み位置及び読み出し位置及び読み出しサイズを記憶手段に格納する読み出し命令捕捉ステップと、
差分情報転送手段が、前記共有ストレージに書き込み命令が発生すると、前回同期時からの実行状態の差分情報を取得して前記待機系の仮想マシンに送信する差分情報転送ステップと、
同期データ転送手段が、前記記憶手段から前記読み込み位置、前記読み出し位置、前記読み出しサイズを取得して、前記待機系に転送する同期データ転送ステップと、
前記待機系の仮想マシンにおいて、
差分情報反映手段が、前記運用系の仮想マシンから受信した該運用系の仮想マシンの前記差分情報を当該待機系の仮想マシンに反映させる差分情報反映ステップと、
同期手段が、前記運用系の仮想マシンから受信した前記読み込み位置で指定される待機系の仮想マシンメモリに、前記読み出し位置で指定される前記共有ストレージのデータを、前記読み出しサイズ分読み込む同期ステップと、を行う。
In order to solve the above problem, the present invention has a shared storage in the active system and the standby system, and operates on the physical contents of the virtual machine that operates on the active physical machine and on the standby physical machine. A memory synchronization system that synchronizes the contents of a virtual machine's memory at an arbitrary timing,
In the operational virtual machine,
When a read command is generated in the shared storage, the read command capturing unit stores a read position, a read position, and a read size of the read command in a storage unit, and
The difference information transfer means, when a write command occurs in the shared storage, a difference information transfer step of acquiring the difference information of the execution state from the previous synchronization time and transmitting it to the standby virtual machine;
Synchronous data transfer means acquires the read position, the read position, and the read size from the storage means, and transfers the synchronous data transfer step to the standby system;
In the standby virtual machine,
A difference information reflecting step in which the difference information reflecting means reflects the difference information of the active virtual machine received from the active virtual machine to the standby virtual machine;
A synchronization step in which synchronization means reads the data of the shared storage specified by the read position into the standby virtual machine memory specified by the read position received from the active virtual machine by the read size; ,I do.

上記のように本発明は、運用系と待機系において共有ストレージを利用している場合に、運用系の仮想マシンの実行状態の差分とストレージ読み出し命令の内容(読み込み位置、読み出し位置、読み出しサイズ)を待機系に転送することにより、運用系と待機系の仮想マシンメモリを一致させているため、データそのものを転送する必要がないため、転送量を削減することができる。   As described above, according to the present invention, when the shared storage is used in the active system and the standby system, the difference in the execution state of the active virtual machine and the contents of the storage read command (read position, read position, read size) Since the virtual machine memories of the active system and the standby system are made to coincide with each other by transferring to the standby system, it is not necessary to transfer the data itself, so that the transfer amount can be reduced.

また、待機系では運用系から取得した読み出し命令に基づいて、共有ストレージの読み出しを行うため、メモリの状態を一致させることができる。   In the standby system, since the shared storage is read based on the read command acquired from the active system, the states of the memories can be matched.

従来の同期システムの構成図である。It is a block diagram of the conventional synchronous system. 従来技術による運用系同期制御部のフローチャートである。It is a flowchart of the active system synchronous control part by a prior art. 従来技術による待機系同期制御部のフローチャートである。It is a flowchart of the standby system synchronous control part by a prior art. 本発明の一実施の形態における運用系の同期制御部の全体フローチャートである。It is a whole flowchart of the active system synchronous control part in one embodiment of this invention. 本発明の一実施の形態におけるS320の詳細フローチャートである。It is a detailed flowchart of S320 in one embodiment of this invention. 本発明の一実施の形態におけるS340の詳細フローチャートである。It is a detailed flowchart of S340 in one embodiment of the present invention. 本発明の一実施の形態における待機系の同期制御部のフローチャートである。It is a flowchart of the synchronous control part of the standby system in one embodiment of the present invention. 本発明の一実施の形態における物理マシンの構成を示す図(その1)である。It is a figure (the 1) which shows the structure of the physical machine in one embodiment of this invention. 本発明の一実施の形態における物理マシンの構成を示す図(その2)である。It is FIG. (2) which shows the structure of the physical machine in one embodiment of this invention. 評価のための実験環境を示す図である。It is a figure which shows the experimental environment for evaluation. 本発明と従来技術の同期一回当りのデータ転送量である。This is the data transfer amount per synchronization between the present invention and the prior art.

以下、図面と共に、本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

本発明において、同期とは、運用系の物理マシン上で動作する仮想マシンのメモリの内容と、待機系の物理マシン上で動作する仮想マシンのメモリの内容を任意のタイミングで一致させる処理であり、継続的に行われるものとする。 In the present invention, synchronization and is an the contents of the memory of the virtual machines running on the operational system of the physical machine, causes the contents of the memory of the virtual machines running on the standby physical machines matched at an arbitrary timing process , Shall be conducted continuously.

本発明のシステム構成は、前述の図1と同様の構成であるが、同期制御部11で行われる処理が異なる。なお、以下において、運用系の仮想マシン20Aでは、アプリケーションが動作しているため、実行状態は常に更新されていくものとし、待機系の仮想マシン20Bでは、アプリケーションが動作していないため、実行状態は変化しない、という前提とする。また、以下の実施の形態では、運用系1Aと待機系1Bは共に共有ストレージ2を用いるものとする。   The system configuration of the present invention is the same as that of FIG. 1 described above, but the processing performed by the synchronization control unit 11 is different. In the following, since the application is operating in the active virtual machine 20A, the execution state is constantly updated, and the application is not operating in the standby virtual machine 20B. Is assumed to be unchanged. In the following embodiment, both the active system 1A and the standby system 1B use the shared storage 2.

まず、運用系1Aの同期制御部11Aの処理について説明する。   First, processing of the synchronization control unit 11A of the active system 1A will be described.

図4は、本発明の一実施の形態における運用系の同期制御部の全体のフローチャートである。   FIG. 4 is an overall flowchart of the active synchronization control unit according to the embodiment of the present invention.

ステップ310) 同期制御部11Aは、共有ストレージ2に対する読み出しが発生したかを判断し、発生した場合にはステップ320に移行する。   Step 310) The synchronization control unit 11A determines whether or not a read to the shared storage 2 has occurred, and proceeds to Step 320 if it has occurred.

ステップ320) 同期制御部11Aは、共有ストレージ2からの読み出しを捕捉し、当該読み出し命令を主記憶装置等の記憶手段(図示せず)に格納する。当該処理の詳細については、図5にて後述する。   Step 320) The synchronization control unit 11A captures the reading from the shared storage 2, and stores the read command in a storage unit (not shown) such as a main storage device. Details of this processing will be described later with reference to FIG.

ステップ330) 次に、同期制御部11Aは、運用系のストレージ書き込みが発生したかを判定し、発生したことを検知した場合には、同期を開始する。なお、このための処理としては、図2(非特許文献2)と同様に、共有ストレージ2への書き込みを契機に同期処理を行う方法と同様である。   Step 330) Next, the synchronization control unit 11A determines whether an active storage write has occurred, and starts synchronization if it detects the occurrence. Note that the processing for this is the same as the method of performing the synchronization processing triggered by writing to the shared storage 2 as in FIG. 2 (Non-Patent Document 2).

ステップ340) 同期制御部11Aは、運用系1Aと待機系1Bを同期させるために必要なデータを待機系1Bに転送する。当該処理の詳細いついては図6にて後述する。   Step 340) The synchronization control unit 11A transfers data necessary for synchronizing the active system 1A and the standby system 1B to the standby system 1B. Details of the processing will be described later with reference to FIG.

次に、上記のステップ320の処理について説明する。   Next, the process of step 320 will be described.

図5は、本発明の一実施の形態におけるステップ320の詳細フローチャートである。   FIG. 5 is a detailed flowchart of step 320 in one embodiment of the present invention.

ステップ410) 同期制御部11Aは、仮想マシン20Aによるストレージ2からの読み出しを捕捉する。   Step 410) The synchronization control unit 11A captures reading from the storage 2 by the virtual machine 20A.

ステップ420) 同期制御部11Aは、ストレージ読み出しを検知すると、ストレージ読み出し命令を主記憶装置等の記憶手段(図示せず)に格納する。ここで、格納されるストレージ読み出し命令の情報としては、読み込み位置(例えば、仮想マシンのページアドレス)、読み出し位置(例えば、ストレージ2のセクタ番号)、読み出しサイズ等である。   Step 420) Upon detecting the storage read, the synchronization control unit 11A stores the storage read command in a storage unit (not shown) such as a main storage device. Here, the storage read command information to be stored includes a read position (for example, a virtual machine page address), a read position (for example, a sector number of the storage 2), a read size, and the like.

次に、図4のステップ340の処理について説明する。非特許文献2とは、待機系の同期制御部11Bに送信する情報が異なる。   Next, the process of step 340 in FIG. 4 will be described. Information transmitted to the standby synchronization control unit 11B is different from that of Non-Patent Document 2.

図6は、本発明の一実施の形態におけるステップ340の詳細フローチャートである。   FIG. 6 is a detailed flowchart of step 340 in one embodiment of the present invention.

ステップ510) 同期制御部11Aは、運用系の仮想マシン20Aより、前回同期時からの差分メモリを取得する。但し、ストレージ読み出しにより変更が生じたメモリは除く。運用系仮想マシン20Aの実行状態の差分(CPU,差分メモリ、デバイス)を待機系1Bの同期制御部11Bに送信する。   Step 510) The synchronization control unit 11A acquires the difference memory from the previous synchronization from the active virtual machine 20A. However, memory that has changed due to storage read is excluded. The difference (CPU, difference memory, device) of the execution state of the active virtual machine 20A is transmitted to the synchronization control unit 11B of the standby system 1B.

ステップ520) 同期制御部11Aは、ステップ320で記憶手段(図示せず)に格納したストレージの読み出し命令(読み出しデータの位置、読み込み位置、読み込みサイズ)を取り出し、待機系1Bの同期制御部11Bへ送信する。なお、本データは複数個からなることもある。   Step 520) The synchronization control unit 11A takes out the storage read command (read data position, read position, read size) stored in the storage means (not shown) in Step 320, and sends it to the synchronization control unit 11B of the standby system 1B. Send. In addition, this data may consist of a plurality.

ステップ530) 受信側の待機系1Bから全データの受信完了通知が送信されてきたかを判断し、送信されてきた場合はステップ540に移行する。   Step 530) It is determined whether a reception completion notification for all data has been transmitted from the standby system 1B on the receiving side, and if it has been transmitted, the process proceeds to Step 540.

ステップ540) ステップ520で記憶手段(図示せず)に保存したストレージの読み出し命令を破棄する。これは、次回同期時に、同一のデータの転送を防ぐための処理である。   Step 540) The storage read command stored in the storage means (not shown) in Step 520 is discarded. This is a process for preventing the transfer of the same data at the next synchronization.

次に、待機系1Bの処理について説明する。   Next, processing of standby system 1B will be described.

図7は、本発明の一実施の形態における待機系の同期制御部のフローチャートである。   FIG. 7 is a flowchart of the standby-system synchronization control unit according to the embodiment of the present invention.

ステップ610) 同期制御部11Bは、前述のステップ510、520の処理によって運用系1Aから送信されている運用系1Aの仮想マシン20Aの実行状態の差分及びストレージ2に対する読み出し命令等の同期用のデータを受信したかを判断し、受信した場合はステップ620に移行する。   Step 610) The synchronization control unit 11B performs synchronization data such as a difference in execution state of the virtual machine 20A of the active system 1A transmitted from the active system 1A by the processing of the above-described steps 510 and 520 and a read command for the storage 2 and the like. If it is received, the process proceeds to step 620.

ステップ620) 受信した運用系1Aの仮想マシン20Aの実行状態の差分を待機系1Bの仮想マシン20Bの実行状態に反映させる。   Step 620) The received difference in the execution state of the virtual machine 20A of the active system 1A is reflected in the execution state of the virtual machine 20B of the standby system 1B.

ステップ630) 同期制御部11Bは、待機系ストレージ2のデータ及びストレージデータの読み出し命令(読み込み位置、読み出しデータの位置、読み出しサイズ)が入力されると、読み込み位置で指定される主記憶装置上の仮想マシンメモリに、読み出しデータの位置で指定されるストレージ2のデータを、指定されているサイズ分読み込む。これにより、運用系1Aの仮想マシンメモリと待機系の仮想マシンメモリを一致させることができる。   Step 630) When the standby control storage 2 data and the storage data read command (read position, read data position, read size) are input, the synchronization control unit 11B on the main storage device designated by the read position Data of the storage 2 designated by the position of the read data is read into the virtual machine memory for the designated size. Thereby, the virtual machine memory of the active system 1A can be matched with the virtual machine memory of the standby system.

ステップ640) 運用系側からの全データの受信完了通知を運用系1Aに送信する。   Step 640) A reception completion notification of all data from the active system side is transmitted to the active system 1A.

上記のように、本発明では、ステップ420において、ストレージ読み出し命令を運用系1Aの記憶手段に保存しているため、ステップ520及びステップ630で利用することができる。つまり、ストレージデータを読み出すことにより運用系1の仮想マシンのメモリに変更が生じても、ストレージ2には同じストレージデータが存在しているので、データそのものは転送する必要がない。仮想マシンメモリの代わりに転送するストレージ読み出し命令のデータサイズは、仮想マシンメモリそのもののデータと比較して十分に小さいので転送量を削減できる。   As described above, in the present invention, since the storage read command is stored in the storage unit of the active system 1A in Step 420, it can be used in Step 520 and Step 630. That is, even if a change occurs in the memory of the virtual machine of the active system 1 by reading the storage data, the same storage data exists in the storage 2 and therefore the data itself does not need to be transferred. Since the data size of the storage read instruction transferred instead of the virtual machine memory is sufficiently smaller than the data of the virtual machine memory itself, the transfer amount can be reduced.

また、待機系1Bは、ステップ630においてストレージデータの読み出し命令に基づいて運用系1Aと同様のストレージ2から読み出しを行うため、メモリの状態を一致させることができる。   Further, since the standby system 1B reads from the storage 2 similar to the active system 1A based on the storage data read command in step 630, the states of the memories can be matched.

上記の実施の形態では、運用系マシンと待機系マシンが1:1の場合を示したが、以下に運用系マシンと待機系マシンがN:1,または、1:Nの例を示す。   In the above embodiment, the case where the active machine and the standby machine are 1: 1 is shown, but an example in which the active machine and the standby machine are N: 1 or 1: N is shown below.

図8は、本発明の一実施の形態における物理マシンの構成を示す図(その1)である。   FIG. 8 is a diagram (part 1) illustrating the configuration of the physical machine according to the embodiment of the invention.

同図に示す構成において、運用系マシンAと待機系マシンBは、ストレージaを共有し、待機系マシンBとはストレージbを共有している。   In the configuration shown in the figure, the active machine A and the standby machine B share the storage a, and the standby machine B shares the storage b.

物理マシンの構成に関しては、運用系マシン数:待機系マシン数=N:1の構成をとることが可能である。同図に示す待機系マシンの仮想マシンの1つは、運用系マシンAの仮想マシンと同期し、もう一方の仮想マシンは運用系マシンBと同期する。但し、仮想マシンの構成に関しては、運用系仮想マシン数:待機系仮想マシン数=N:1と、運用系仮想マシンのバックアップとなる待機系仮想マシンが、一つ以上必要となる。   Regarding the configuration of the physical machine, it is possible to adopt a configuration in which the number of active machines: the number of standby machines = N: 1. One of the virtual machines of the standby machine shown in the figure is synchronized with the virtual machine of the operational machine A, and the other virtual machine is synchronized with the operational machine B. However, regarding the configuration of virtual machines, the number of active virtual machines: the number of standby virtual machines = N: 1, and one or more standby virtual machines serving as backups for the active virtual machines are required.

なお、ある運用系仮想マシンのバックアップの先に待機系仮想マシンが複数ある場合は、運用系の故障後、どちらを新たに運用系とするか選択する必要がある。   When there are a plurality of standby virtual machines at the backup destination of a certain active virtual machine, it is necessary to select which one will be the new active system after the failure of the active system.

また、ストレージを同一状態に保つための構成は図8の例に限らない。例えば、運用系、待機系がそれぞれ別々のストレージを利用し、常に同一に保つ処理を行ってもよい。   Further, the configuration for keeping the storage in the same state is not limited to the example of FIG. For example, the active system and the standby system may use different storages and perform processing to keep them always the same.

図9は、本発明の一実施の形態における物理マシンの構成を示す図(その2)である。   FIG. 9 is a diagram (part 2) illustrating the configuration of the physical machine according to the embodiment of the invention.

同図に示す構成において、運用系と待機系A,Bは、ストレージを共有している。   In the configuration shown in the figure, the active system and standby systems A and B share storage.

同図に示すように、物理マシンのン構成に関しては、運用系マシン数:待機系マシン数=1:Nの構成をとることが可能である。同図に示す待機系マシンA,B上の仮想マシンは両方とも、運用系の仮想マシンと同期している。但し、仮想マシンの構成に関しては、運用系仮想マシン数:待機系仮想マシン数=1:Nと、運用系仮想マシンのバックアップとなる待機系仮想マシンが、一つ以上必要となる。   As shown in the figure, regarding the physical machine configuration, it is possible to adopt a configuration where the number of active machines: the number of standby machines = 1: N. Both virtual machines on the standby machines A and B shown in the figure are synchronized with the active virtual machine. However, regarding the configuration of the virtual machines, one or more standby virtual machines that are backups of the active virtual machines are required, ie, the number of active virtual machines: the number of standby virtual machines = 1: N.

なお、ある運用系仮想マシンのバックアップの先に待機系仮想マシンが複数ある場合は、運用系の故障後、どちらを新たに運用系とするか選択する必要がある。   When there are a plurality of standby virtual machines at the backup destination of a certain active virtual machine, it is necessary to select which one will be the new active system after the failure of the active system.

また、ストレージを同一状態に保つための構成は図8、9の例に限定されることなく、例えば、運用系、待機系がそれぞれ別々のストレージを利用し、常に同一に保つ処理を行ってもよい。   Further, the configuration for keeping the storage in the same state is not limited to the examples of FIGS. 8 and 9. For example, the active system and the standby system may use different storages and perform processing to keep them always the same. Good.

次に、本発明と従来技術の性能評価の結果を示す。   Next, the results of performance evaluation of the present invention and the prior art will be shown.

図10は、評価のための実験環境を示す。   FIG. 10 shows an experimental environment for evaluation.

同図において、評価のあめに、実験環境となるマシンを2台用意し、一方を運用系システム、もう一方を待機系システムとする。運用系のゲストOS上で、ファイルコピーを実行し、負荷をかけている。   In the figure, for the sake of evaluation, two machines serving as experimental environments are prepared, one being an operation system and the other being a standby system. File copy is executed on the active guest OS and a load is applied.

図11は、本発明と従来技術の同期一回当りのデータ転送量を示す。   FIG. 11 shows the data transfer amount per synchronization between the present invention and the prior art.

同図のデータは、運用系と待機系を100回同期させた時に発生したデータ転送量の平均値である。本発明を利用した場合は、従来技術(非特許文献2)と比較して、以下の効果を得ることができた。なお、本発明と非特許文献2の同期のタイミングは同一のため、発生する同期回数に変化はない。   The data in the figure is an average value of the data transfer amount generated when the active system and the standby system are synchronized 100 times. When the present invention is used, the following effects can be obtained as compared with the prior art (Non-Patent Document 2). Since the synchronization timing of the present invention and Non-Patent Document 2 are the same, there is no change in the number of synchronizations that occur.

・全体(その他+ストレージ読み出しにより変更が生じたメモリ情報としては、571KBから494KBとなり、13%のデータ転送量が削減できた。なお、上記の「その他」とは、仮想マシン実行状態(CPU,デバイス、メモリ)からストレージ読み出しにより変更が生じたメモリデータサイズを差し引いたものである。   -Overall (other + memory information changed by storage read from 571 KB to 494 KB, reducing the data transfer amount by 13%. Note that the above "other" means the virtual machine execution state (CPU, Device, memory) minus the memory data size that has changed due to storage read.

・ストレージ読み出しにより変更が生じたメモリ情報としては、77KBから0.14KBとなり、99%のデータ転送量が削減できた。なお、上記の「ストレージ読み出しによる変更が生じたメモリ情報」とは、従来技術(非特許文献2)の場合はメモリデータであり、本発明の場合はストレージ読み出し命令である。   -The memory information changed due to the storage read was changed from 77 KB to 0.14 KB, and the data transfer amount was reduced by 99%. The above-mentioned “memory information changed by storage read” is memory data in the case of the prior art (Non-Patent Document 2), and is a storage read instruction in the case of the present invention.

なお、運用系及び待機系の同期制御部の動作をプログラムとして構築し、仮想マシンとして利用される物理マシンにインストールして実行させることが可能である。   The operations of the active and standby synchronization control units can be constructed as a program, and can be installed and executed on a physical machine used as a virtual machine.

本発明は上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更応用が可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.

1A 運用系システム(データ送信側)
1B 待機系システム(データ受信側)
2 共有ストレージ
10A 仮想マシン制御部(運用系)
10B 仮想マシン制御部(待機系)
11A 同期制御部(運用系)
11B 同期制御部(待機系)
20A 仮想マシン(運用系)
20B 仮想マシン(待機系)
30A ハードウェア(運用系)
30B ハードウェア(待機系)
1A Operation system (data transmission side)
1B Standby system (data receiving side)
2 Shared storage 10A Virtual machine controller (active)
10B Virtual machine control unit (standby system)
11A Synchronization control unit (operational system)
11B Synchronization control unit (standby system)
20A virtual machine (operational)
20B Virtual machine (standby system)
30A hardware (operational)
30B hardware (standby system)

Claims (5)

運用系と待機系で共有ストレージを有し、運用系の物理マシン上で動作する仮想マシンのメモリの内容と待機系の物理マシン上で動作する仮想マシンのメモリの内容を任意のタイミングで同期させるメモリ同期システムであって、
前記運用系の仮想マシンは、
前記共有ストレージに読み出し命令が発生すると、該読み出し命令の読み込み位置及び読み出し位置及び読み出しサイズを記憶手段に格納する読み出し命令捕捉手段と、
前記共有ストレージに書き込み命令が発生すると、前回同期時からの実行状態の差分情報を取得して前記待機系の仮想マシンに送信する差分情報転送手段と、
前記記憶手段から前記読み込み位置、前記読み出し位置、前記読み出しサイズを取得して、前記待機系に転送する同期データ転送手段と、
を有し、
前記待機系の仮想マシンは、
前記運用系の仮想マシンから受信した該運用系の仮想マシンの前記差分情報を当該待機系の仮想マシンに反映させる差分情報反映手段と、
前記運用系の仮想マシンから受信した前記読み込み位置で指定される待機系の仮想マシンメモリに、前記読み出し位置で指定される前記共有ストレージのデータを、前記読み出しサイズ分読み込む同期手段と、
を有する
ことを特徴とするメモリ同期システム。
The active and standby systems have shared storage, and the contents of the virtual machine memory running on the active physical machine and the virtual machine memory contents running on the standby physical machine are synchronized at any time A memory synchronization system,
The active virtual machine is
When a read command is generated in the shared storage, a read command capturing unit that stores a read position, a read position, and a read size of the read command in a storage unit;
When a write command occurs in the shared storage, difference information transfer means for acquiring difference information of an execution state from the previous synchronization time and transmitting the difference information to the standby virtual machine;
Synchronous data transfer means for acquiring the read position, the read position, and the read size from the storage means and transferring them to the standby system;
Have
The standby virtual machine is
Differential information reflecting means for reflecting the difference information of the active virtual machine received from the active virtual machine to the standby virtual machine;
Synchronization means for reading the data of the shared storage specified at the read position into the standby virtual machine memory specified at the read position received from the active virtual machine for the read size;
A memory synchronization system comprising:
運用系と待機系で共有ストレージを有し、運用系の物理マシン上で動作する仮想マシンのメモリの内容と待機系の物理マシン上で動作する仮想マシンのメモリの内容を任意のタイミングで同期させるメモリ同期方法であって、
前記運用系の仮想マシンにおいて、
読み出し命令捕捉手段が、前記共有ストレージに読み出し命令が発生すると、該読み出し命令の読み込み位置及び読み出し位置及び読み出しサイズを記憶手段に格納する読み出し命令捕捉ステップと、
差分情報転送手段が、前記共有ストレージに書き込み命令が発生すると、前回同期時からの実行状態の差分情報を取得して前記待機系の仮想マシンに送信する差分情報転送ステップと、
同期データ転送手段が、前記記憶手段から前記読み込み位置、前記読み出し位置、前記読み出しサイズを取得して、前記待機系に転送する同期データ転送ステップと、
前記待機系の仮想マシンにおいて、
差分情報反映手段が、前記運用系の仮想マシンから受信した該運用系の仮想マシンの前記差分情報を当該待機系の仮想マシンに反映させる差分情報反映ステップと、
同期手段が、前記運用系の仮想マシンから受信した前記読み込み位置で指定される待機系の仮想マシンメモリに、前記読み出し位置で指定される前記共有ストレージのデータを、前記読み出しサイズ分読み込む同期ステップと、
を行うことを特徴とするメモリ同期方法。
A shared storage in a production system and the standby system, synchronized at any time the contents of the memory of the virtual machines running on the content of the memory of the virtual machine standby physical machines that operate on a production system of the physical machine A memory synchronization method,
In the operational virtual machine,
When a read command is generated in the shared storage, the read command capturing unit stores a read position, a read position, and a read size of the read command in a storage unit, and
The difference information transfer means, when a write command occurs in the shared storage, a difference information transfer step of acquiring the difference information of the execution state from the previous synchronization time and transmitting it to the standby virtual machine;
Synchronous data transfer means acquires the read position, the read position, and the read size from the storage means, and transfers the synchronous data transfer step to the standby system;
In the standby virtual machine,
A difference information reflecting step in which the difference information reflecting means reflects the difference information of the active virtual machine received from the active virtual machine to the standby virtual machine;
A synchronization step in which synchronization means reads the data of the shared storage specified by the read position into the standby virtual machine memory specified by the read position received from the active virtual machine by the read size; ,
And a memory synchronization method.
運用系と待機系で共有ストレージを有し、運用系の物理マシン上で動作する仮想マシンのメモリの内容と待機系の物理マシン上で動作する仮想マシンのメモリの内容を任意のタイミングで同期させる同期システムにおける運用系の仮想マシンであって、
前記共有ストレージに読み出し命令が発生すると、該読み出し命令の読み込み位置及び読み出し位置及び読み出しサイズを記憶手段に格納する読み出し命令捕捉手段と、
前記共有ストレージに書き込み命令が発生すると、前回同期時からの実行状態の差分情報を取得して前記待機系の仮想マシンに送信する差分情報転送手段と、
前記記憶手段から前記読み込み位置、前記読み出し位置、前記読み出しサイズを取得して、前記待機系に転送する同期データ転送手段と、
を有することを特徴とする運用系の仮想マシン。
A shared storage in a production system and the standby system, synchronized at any time the contents of the memory of the virtual machines running on the content of the memory of the virtual machine standby physical machines that operate on a production system of the physical machine An operational virtual machine in a synchronous system,
When a read command is generated in the shared storage, a read command capturing unit that stores a read position, a read position, and a read size of the read command in a storage unit;
When a write command occurs in the shared storage, difference information transfer means for acquiring difference information of an execution state from the previous synchronization time and transmitting the difference information to the standby virtual machine;
Synchronous data transfer means for acquiring the read position, the read position, and the read size from the storage means and transferring them to the standby system;
An operational virtual machine characterized by comprising:
運用系と待機系で共有ストレージを有し、運用系の物理マシン上で動作する仮想マシンのメモリの内容と待機系の物理マシン上で動作する仮想マシンのメモリの内容を任意のタイミングで同期させる同期システムにおける待機系の仮想マシンであって、
前記運用系の仮想マシンから受信した該運用系の仮想マシンの書き込み命令が発生した時における、前回同期時からの実行状態の差分情報を当該待機系の仮想マシンに反映させる差分情報反映手段と、
前記運用系の仮想マシンから読み込み命令が発生した時の読み込み位置、読み出し位置、読み出しサイズを受信し、該読み込み位置で指定される待機系の仮想マシンメモリに、該読み出し位置で指定される前記共有ストレージのデータを、該読み出しサイズ分読み込む同期手段と、
を有する
ことを特徴とする待機系の仮想マシン。
A shared storage in a production system and the standby system, synchronized at any time the contents of the memory of the virtual machines running on the content of the memory of the virtual machine standby physical machines that operate on a production system of the physical machine A standby virtual machine in a synchronous system,
At the time when the write command of the virtual machine該運for system received from the virtual machine of the active system occurs, the difference information reflecting means for reflecting the difference information corresponding execution state from the previous synchronization to the virtual machine of the standby system ,
The read position, read position, and read size when a read command is generated from the active virtual machine is received, and the shared virtual machine memory specified at the read position is stored in the standby virtual machine memory specified at the read position. Synchronization means for reading storage data for the read size;
A standby virtual machine characterized by comprising:
コンピュータを、請求項3または4記載の仮想マシンとして機能させるためのメモリ同期プログラム。   The memory synchronization program for functioning a computer as a virtual machine of Claim 3 or 4.
JP2011084054A 2011-04-05 2011-04-05 Memory synchronization method, active virtual machine, standby virtual machine, and memory synchronization program Expired - Fee Related JP5702652B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011084054A JP5702652B2 (en) 2011-04-05 2011-04-05 Memory synchronization method, active virtual machine, standby virtual machine, and memory synchronization program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011084054A JP5702652B2 (en) 2011-04-05 2011-04-05 Memory synchronization method, active virtual machine, standby virtual machine, and memory synchronization program

Publications (2)

Publication Number Publication Date
JP2012221064A JP2012221064A (en) 2012-11-12
JP5702652B2 true JP5702652B2 (en) 2015-04-15

Family

ID=47272549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011084054A Expired - Fee Related JP5702652B2 (en) 2011-04-05 2011-04-05 Memory synchronization method, active virtual machine, standby virtual machine, and memory synchronization program

Country Status (1)

Country Link
JP (1) JP5702652B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4282030B2 (en) * 1999-06-03 2009-06-17 株式会社日立製作所 Data duplex control method and duplex storage subsystem
JP3877519B2 (en) * 2000-12-15 2007-02-07 株式会社日立製作所 System recovery method, computer system for implementing the method, and recording medium recording the processing program
US6728898B2 (en) * 2002-03-06 2004-04-27 Marathon Technologies Corporation Producing a mirrored copy using incremental-divergence
JP2006318505A (en) * 2006-08-01 2006-11-24 Hitachi Ltd Remote copy system and remote copy method
JP4871850B2 (en) * 2007-12-04 2012-02-08 株式会社日立製作所 Virtual computer system and virtual computer migration control method
US20120030306A1 (en) * 2009-04-28 2012-02-02 Nobuharu Kami Rapid movement system for virtual devices in a computing system, management device, and method and program therefor

Also Published As

Publication number Publication date
JP2012221064A (en) 2012-11-12

Similar Documents

Publication Publication Date Title
US9600553B1 (en) Distributed replication in cluster environments
JP4668763B2 (en) Storage device restore method and storage device
US7793060B2 (en) System method and circuit for differential mirroring of data
JP5776267B2 (en) Distributed file system
JP5094460B2 (en) Computer system, data matching method, and data matching processing program
US9262090B2 (en) Asynchronous data mirroring in memory controller
JP2007265013A (en) Cluster control program, cluster control method and cluster controller
JP5286212B2 (en) Remote copy control method and system in storage cluster environment
JP2007140601A (en) Memory control system
WO2016018262A1 (en) Storage transactions
JP5561334B2 (en) Data transfer device
CN106919473A (en) A kind of data disaster recovery and backup systems and method for processing business
JP6931081B2 (en) Data backup system, relay site storage, data backup method, and relay site storage control program
CN102065138A (en) Method for realizing thermal backup control of servers in disk-less system
JP2012190175A (en) Fault tolerant system, server and method and program for fault tolerance
US8347049B2 (en) Storage system and storage subsystem
JP2006285336A (en) Storage, storage system, and control method thereof
JP6056408B2 (en) Fault tolerant system
JP2009098988A (en) Fault tolerant computer system
JP5702652B2 (en) Memory synchronization method, active virtual machine, standby virtual machine, and memory synchronization program
US10649862B1 (en) Reducing failback performance duration in data replication systems
JP5702651B2 (en) Virtual machine synchronization method and system, and operational virtual machine and program
US20080256313A1 (en) System, Method And Computer Program Product For Remote Mirroring
US10185758B1 (en) Direct to remote replication
JP6511737B2 (en) Redundant system, redundant method and redundant program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130814

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140922

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150220

R150 Certificate of patent or registration of utility model

Ref document number: 5702652

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees