JP5352299B2 - 高信頼性計算機システムおよびその構成方法 - Google Patents

高信頼性計算機システムおよびその構成方法 Download PDF

Info

Publication number
JP5352299B2
JP5352299B2 JP2009067299A JP2009067299A JP5352299B2 JP 5352299 B2 JP5352299 B2 JP 5352299B2 JP 2009067299 A JP2009067299 A JP 2009067299A JP 2009067299 A JP2009067299 A JP 2009067299A JP 5352299 B2 JP5352299 B2 JP 5352299B2
Authority
JP
Japan
Prior art keywords
application
information
storage device
processing unit
synchronization point
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
JP2009067299A
Other languages
English (en)
Other versions
JP2010218481A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009067299A priority Critical patent/JP5352299B2/ja
Priority to US13/201,579 priority patent/US20120030504A1/en
Priority to CN2009801567219A priority patent/CN102317921A/zh
Priority to PCT/JP2009/005872 priority patent/WO2010106593A1/ja
Publication of JP2010218481A publication Critical patent/JP2010218481A/ja
Application granted granted Critical
Publication of JP5352299B2 publication Critical patent/JP5352299B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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
    • 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/2038Error 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 a single 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/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/2046Error 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 where the redundant components share persistent storage

Description

本発明は、高い信頼性が求められる用途に対し、高信頼性計算機システムを構成する技術に関する
金融・公共システム分野などミッションクリティカル用途では、システムに対し高い可用性が求められる。一方、ハードウェア高性能化や仮想化機構を用いた業務の集約によりハードウェア故障などに起因するシステム障害の発生の可能性は、従来と比べ高まっていくものと考えられる。
このような高可用性を実現する手法の1つとして、運用系と待機系を用意し、運用系に問題が生じた時点で運用系から待機系に切り替えるクラスタリングと呼ばれるシステム構成技術が知られている。
クラスタリングの手法としては、(a)運用系が処理状態を保持しないようにし、運用系の障害を検知した時点で運用系と待機系を切り替えるだけですませる手法や、(b)運用系と待機系の状態を一致させておき、障害を検知した時点で障害検知時点における処理を回復する手法が知られている。(a)の手法は運用系に状態を持たせることが困難であることから、(b)の手法の方がより高い適用性を持つ。
上記のように、(b)の手法により高信頼化を実現するためには、運用系と待機系の状態を一致させる必要がある。このためには、(1)特別なハードウェア機構などを利用して2つの系の上で同じ命令列を同時平行して動作させることにより、2つの系の状態を常に一致させる方式や、(2)運用系のメモリ状態を待機系に定期的にコピーすると共に、運用系と待機系の間のI/O操作をバッファリングしておくことにより、定期的に待機系の実行を再開可能なポイントを構成する方式がある。
(2)の方式について、メモリ状態の同期が完了する迄の間I/O状態を運用系においてバッファリングしておき、システム間の同期が完了した時点でI/O状態を反映させ、このときを再開点とし、障害が検知された場合には、待機系を再開点から再実行させる技術が示されている(非特許文献1参照)。
この技術では、運用系および待機系のシステムについて、OSを含めたソフトウェアをハイパバイザ上で動作させ、ハイパバイザの機能によって、上記のようなシステム間メモリの同期や、I/Oのバッファリングを行う。ハイパバイザはアプリケーションおよびOSを実行するハードウェアシステムをソフトウェアによりシステム全体を仮想化(システム仮想化)する。
Y.Tamura,Kemari: Virtual MachineSynchronaization for Fault Toleranceusing DomT,Xen Summit Boston 2008,2008.
システム仮想化のみを利用した従来の高信頼性計算機システムの構成方法では、システム仮想化上で動作しているソフトウェアの動作を考慮していない。そのため、ソフトウェアの実行状況によって未使用と判定されるような領域の情報についても、複写対象の情報とり、状態同期に伴って、未使用領域の情報も複写されることになる。しかも、未使用領域の情報は、冗長であり、高信頼性計算機システムを構成する場合、複写処理が高速化されず、システム性能が低下することになる。
本発明は、前記従来技術の課題に鑑みて為されたものであり、複写処理を高速化することができる高信頼性計算機システムおよびその構成方法を提供することを目的とするものである。
前記目的を達成するために、本発明は、運用系計算機のプログラムの状態を監視して、運用系計算機と待機系計算機との間で状態同期を行うための同期点を検出するとともに、同期点後の処理継続に必要な情報のみを複写対象の情報として運用系計算機の記憶装置から抽出し、抽出した複写対象の情報を運用系計算機から待機系計算機に複写するようにすることを特徴とするものである。
本発明によれば、複写処理を高速化することで、高信頼性計算機システムの実行性能を向上させることができる。
本発明の一実施の形態を示す高信頼性計算機システムの構成図である。 I/Oバッファリング処理を説明するための構成図である。 運用系計算機と待機系計算機の処理を説明するためのシーケンス図である。 (a)は、アプリケーション実行中のメモリの状態を示す状態図、(b)は、アプリケーション終了時のメモリの状態を示す状態図である。 アプリケーション終了時を同期点とした場合の高信頼性計算機システムの作用を説明するためのフローチャートである。 アプリケーション終了時を同期点とする場合の同期点判定処理を説明するためのフローチャートである。 (a)は、処理フェーズ#1終了時のメモリの状態を示す状態図、(b)は、処理フェーズ#2終了時のメモリの状態を示す状態図である。 処理フェーズ切替時を同期点とする場合の同期点判定処理を説明するためのフローチャートである。 (a)は、GC完了前のメモリの状態を示す状態図、(b)は、GC完了後のメモリの状態を示す状態図である。 GC完了時を同期点とする場合の同期点判定処理を説明するためのフローチャートである。 同期点・対象外領域を指示するためのAPIの構成を説明するための図である。
以下、本発明の第1実施例を図面に基づいて説明する。本実施例は、アプリケーションプログラム(以下、アプリケーションと称する。)の終了時点を同期点とし、不要な領域(未使用領域)の情報の複写を行わないようにしたものである。
図1は、本発明の第1実施例を示す高信頼性計算機システムの構成図である。高信頼性計算機システムは、運用系計算機101と待機系計算機101から構成され、運用系計算機101と待機系計算機102は、ネットワークあるいはバスなどの結合網103で接続されているとともに、結合網103を介して共有外部記憶装置120に接続されている。
運用系計算機101は、運用系ハードウェア資源として、ハードウェア104を備え、運用系ソフトウェア資源として、システム仮想化処理部105と、アプリケーション実行用OS(Operating System)106と、アプリケーション仮想化処理部107と、アプリケーション108および管理OS109を備えて構成される。
待機系計算機102は、運用系計算機101と基本的に同様の構成であり、待機系ハードウェア資源として、ハードウェア114を備え、待機系ソフトウェア資源として、システム仮想化処理部115と、アプリケーション実行用OS116と、アプリケーション仮想化処理部117と、アプリケーション118および管理OS119を備えて構成される。
ハードウェア104、114は、例えば、入出力装置と、記憶装置(以下、メモリと称する。)および処理装置(いずれも図示せず)などを備えて構成されている。各メモリには、制御プログラムや処理プログラムを含む複数のプログラムが格納されているともに、各ソフトウェア資源を構成する情報が格納されている。
システム仮想化処理部105は、アプリケーション実行用OS(Operating System)106と、アプリケーション仮想化処理部107と、アプリケーション108および管理OS109に対して、ハードウェア104を仮想化して処理を実行し、アプリケーション仮想化処理部107は、アプリケーション実行用OS106に対して、アプリケーション108を仮想化して処理を実行する。
例えば、システム仮想化処理部105は、アプリケーション実行用OSとアプリケーション108の実行状態を監視して、待機系計算機102と状態同期を行うための同期点を検出するとともに、検出した同期点において、メモリから処理継続に必要な複写対象の情報を抽出し、抽出した複写対象の情報を結合網103を介して待機系計算機102に転送する。
具体的には、システム仮想化処理部105は、本発明の特徴的な処理である状態複写処理部110を備えている。この状態複写処理部110は、システム仮想化処理部105の上で動作するOS106と、アプリケーション仮想化処理部107およびアプリケーション108の利用するメモリの状態に関する状態情報を複写対象の情報としてメモリから抽出し、抽出した状態情報を、結合網103を介して待機系計算機102へ転送し、待機系計算機102に状態情報の複写を指示する。
一方、運用系計算機101に障害が生じた場合、運用系計算機101による処理から待機系計算機102による処理への切り替えが実行され、待機系計算機102は、運用系計算機101から複写された状態情報を基に動作を実行する。これにより、高信頼性計算機システムとしては、運用系計算機101に障害が生じても、運用系計算機101での処理が待機系計算機102によって継続されることになる。
運用系計算機101から待機系計算機102へ動作を切り替えるためには、状態情報を複写した時点と障害が発生した時点との間で発生したI/O動作を再現する必要がある。
このため、運用系計算機101は、図2に示すように、OS106からシステム仮想化処理部105へ発行されたI/O動作を一度管理OS109へ送り、管理OS109でI/O動作のバッファリングを行い、バッファリングに伴うデータをバッファ201に保持させる。管理OS109でバッファリングされたI/O動作は、運用系計算機101から待機系計算機102への状態情報の複写が完了した時点で、システム仮想化部105によってバッファ201からハードウェア104に反映される。ハードウェア104に反映されたI/O動作については、外部からの入力情報を運用系計算機101と待機系計算機102に送付することで、同様に運用系計算機101と待機系計算機102でバッファリングされる。
このシーケンスを図3に示す。図3は、運用系計算機101の処理シーケンス301と待機系計算機102の処理シーケンス302を示している。まず、運用系計算機101が同期点303を検出したときに、この同期点303において、運用系計算機101は、メモリの状態情報304を待機系計算機102に複写する。この後、運用系計算機101は、同期点303以降のI/O動作をバッファリングする(305)。
次に、運用系計算機101がI/O動作をバッファリングしている過程で、障害が発生した場合は、障害発生点306で運用系計算機101から待機系計算機102への切り替えが実行される。この切り替えが実行されると、待機系計算機102は、障害発生点306に対応した開始点307から、複写された状態情報304を基に処理を継続する。
この際、同期点303から障害発生点306までのI/O動作は状態情報304に反映されていないため、待機系計算機102は、複写された状態情報304を基に開始点307から処理を再開することなる。これにより、高信頼性計算機システムとしては、運用系計算機101に障害が生じても、運用系計算機101での処理が待機系計算機102によって継続されることになる。
次に、アプリケーション108の実行に伴うメモリの状態を図4(a)、(b)に示す。図4(a)は、アプリケーション108実行中におけるメモリの状態を示している。この場合、メモリの記憶領域400は、OS106の利用領域401と、第一のアプリケーション(AP#1)の利用領域402と、第二のアプリケーション(AP#2)の利用領域403と、未使用領域404から構成される。
図4(b)は、第一のアプリケーション(AP#1)の実行が終了(完了)した状態を示している。この場合、メモリの記憶領域400は、OS106の利用領域401と、実行終了領域405と、第二のアプリケーション(AP#2)の利用領域403と、未使用領域404から構成される。実行終了領域405は、第一のアプリケーション(AP#1)が使用していた利用領域402に対応する領域であって、未使用領域とみなされる。
ここで、従来の高信頼性計算機システムのように、アプリケーション108の状態を考慮せずに、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、OS106の利用領域401と、第一のアプリケーション(AP#1)の利用領域402と、第二のアプリケーション(AP#2)の利用領域403および未使用領域404に関する情報が全て運用系計算機101から待機系計算機102へ複写されることになる。
この場合、図4(b)の状態では、未使用領域404と実行終了領域405の内容は、待機系計算機102で処理を継続するためには不要である。このため、第一のアプリケーション(AP#1)の実行が完了したにもかかわらず、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、待機系計算機102で処理を継続するために不要な情報まで複写されるので、それだけ状態情報を複写するのに余計な時間を要し、処理速度が低下することになる。
そこで、本実施例では、アプリケーション108の終了時点を同期点とし、不要な領域(未使用領域)の情報の複写を行わないことで、状態情報の複写処理を高速化することとしている。
次に、アプリケーション108の終了時点を同期点としたときの作用を図5のフローチャートに従って説明する。図5に示す処理は、システム仮想化処理部105における状態複写処理部110によって実行される。状態複写処理部110による処理は、システム仮想化を実現する過程で、適当な要因に対応して起動される。
まず、状態複写処理部110は、ステップ401で処理を開始し、続いて、システム仮想化処理部105上で動作しているOS106、アプリケーション仮想化処理部107、アプリケーション108の動作を調査し、アプリケーション108の実行状態を基に同期点か否かを判別し(ステップ502)、アプリケーション108の実行が終了しているときには、ステップ503の処理に移行し、アプリケーションの実行が終了していないときには、ステップ509の処理に移行し、このルーチンでの処理を終了する。
ステップ502の具体的な処理内容を図6に示す。図6に示す処理では、同期点の判定および対象外領域集合の計算が状態複写処理部110によって実行される。
まず、状態複写処理部110は、ステップ601で処理を開始し、次に、アプリケーション108が終了したか否かを判定する(ステップ602)。ステップ602で、アプリケーション108が終了したと判定した場合、状態複写処理部110は、同期点であるとして、判定値Sを、例えば、「1」にし、対象外領域Nを、アプリケーションの実行を終了した実行終了領域とし(ステップ603)、その後、ステップ605に移行して、このルーチンでの処理を完了する。
この場合、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了し、メモリの記憶領域400が図4(b)に示すように構成された場合、アプリケーション(AP#1)が使用していた使用領域402に対応する実行終了領域405が複写対象から除かれ、対象外領域Nとされる。
一方、ステップ602で、アプリケーション108が終了していないと判定した場合、状態複写処理部110は、非同期点であるとして、判定値Sを、例えば、「0」にし(ステップ604)、その後、ステップ605に移行して、このルーチンでの処理を完了する。
この場合、状態複写処理部110は、例えば、メモリの記憶領域400が図4(a)に示すように構成され、第一のアプリケーション(AP#1)と第二のアプリケーション(AP#2)が実行状態にあるときには、同期点でないと判別することになる。
同期点の判定処理を終了し、同期点と判定したときには、状態複写処理部110は、図5のステップ503の処理に移行する。ステップ503では、状態複写処理部110は、変数Rにシステム仮想化処理部105上で動作しているOS106、アプリケーション仮想化処理部107、アプリケーション108の利用している領域の集合を、変数Nに複写対象外の領域集合を求める。
例えば、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了し、メモリの記憶領域400が図4(b)に示すように構成された場合、メモリの記憶領域400が4つの領域(OS106の利用領域401と、実行終了領域405と、第二のアプリケーション(AP#2)の利用領域403と、未使用領域404)に分割されているので、領域集合の変数Rが4として求められ、対象外領域集合の変数Nが2として求められる。この場合、対象外領域集合は、実行終了領域405と未使用領域404から構成される。
次に、状態複写処理部110は、領域集合の変数Rが空集合か否かを判定し(ステップ504)、空集合でない場合、ステップ505の処理に移行し、領域集合の変数Rから変数rへ要素を1つ取り出す。続いて、状態複写処理部110は、変数rが対象外領域集合の変数Nに含まれるか否かを判定し(ステップ506)、変数rが対象外領域集合の変数Nに含まれる場合には、ステップ504の処理に戻り、領域集合の変数Rが空集合となるまで、ステップ504からステップ506の処理を繰り返す。
ステップ506で、変数rが対象外領域集合の変数Nに含まれないと判定したときには、状態複写処理部110は、ステップ507に移行して、対象外領域から外れた領域、すなわち、複写対象となる領域である、OS106の利用領域401と第二のアプリケーション(AP#2)の利用領域403に格納された情報を、複写対象の情報として、運用系計算機101から待機系計算機102へ複写するための処理を実行する。
また、ステップ504で、領域集合の変数Rが空集合であると判定したときには、状態複写処理部110は、複写対象の情報を運用系計算機101から待機系計算機102へ全て複写したとして、ステップ508の処理に移行して、バッファリングされていたI/O動作をハードウェア104に反映して、ステップ509の処理に移行し、このルーチンでの処理を終了する。
本実施例によれば、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了したときを同期点とし、この同期点において、メモリの記憶領域400の中から、OS106の利用領域401と第二のアプリケーション(AP#2)の利用領域403に記憶されている情報(同期点後に使用予定のアプリケーションプログラムに属する情報)のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
本実施例においては、アプリケーション108のうち第一のアプリケーション(AP#1)の実行が終了したときを同期点としたが、第二のアプリケーション(AP#2)の実行が終了したときを同期点とすることもできる。この場合は、OS106の利用領域401に記憶されている情報のみが処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写されることになる。
次に、本発明の第2実施例を図7に基づいて説明する。本実施例は、アプリケーション108を構成する処理フェーズの切替点を同期点としたものであり、他の構成は、第1実施例と同様である。
まず、アプリケーション108を複数の処理フェーズ#1〜#nで構成した場合のメモリの状態として、例えば、第一の処理フェーズ#1におけるメモリの状態を図7(a)に示し、第二の処理フェーズ#2におけるメモリの状態を図7(b)に示す。
図7(a)に示すメモリの記憶領域400は、OS使用領域411と、アプリケーション108の利用領域412および未使用領域413から構成される。アプリケーション108の利用領域412には、第一の処理フェーズ#1のみで利用されるアプリケーション利用領域414、415、416が含まれている。このため、第二の処理フェーズ#2にプログラムが以降すると、第一の処理フェーズ#1におけるアプリケーション利用領域414、415、416は、それぞれ処理フェーズが終了したことを示す実行終了領域417、418、419となり、アプリケーション108の利用領域412はアプリケーション利用領域420となる。
ここで、従来の高信頼性計算機システムのように、アプリケーション108の状態を考慮せずに、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、OS使用領域411と、アプリケーションの利用領域412または420、および未使用領域413に関する情報が全て運用系計算機101から待機系計算機102へ複写されることになる。
この場合、図7(b)の状態では、未使用領域413と実行終了領域417、418、419の内容は、待機系計算機102で処理を継続するためには不要である。
このため、第一の処理フェーズ#1の実行が終了したにもかかわらず、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、待機系計算機102で処理を継続するのに不要な情報まで複写されるので、それだけ状態情報を複写するのに余計な時間を要し、処理速度が低下することになる。
そこで、本実施例では、処理フェーズの切替点を同期点とし、不要な領域(未使用領域413、実行終了領域417、418、419)の情報の複写を行わないことで、状態情報の複写処理を高速化することとしている。
次に、処理フェーズの切替点を同期点としたときの作用を図8のフローチャートに従って説明する。なお、本実施例における処理は、同期点の判定と対象外領域Nの設定以外は、第1実施例と同様であるので、本実施例では、同期点の判定と対象外領域Nの設定処理についてのみ説明する。また、図8に示す処理は、システム仮想化処理部105における状態複写処理部110によって実行される。
まず、状態複写処理部110は、ステップ801で処理を開始し、次に、アプリケーション108の実行状態を監視して、処理フェーズが終了したか否かを判定する(ステップ802)。ステップ802で、例えば、処理フェーズ#1が終了したと判定した場合、状態複写処理部110は、同期点であるとして、判定値Sを、例えば、「1」にし、対象外領域Nを、処理フェーズの実行を終了した実行終了領域とし(ステップ803)、その後、ステップ805に移行して、このルーチンでの処理を完了する。
この場合、アプリケーション108のうち第一の処理フェーズ#1の実行が完了し、メモリの記憶領域400が図7(b)に示すように構成された場合、第一の処理フェーズ#1におけるアプリケーション利用領域414、415、416は、それぞれ実行終了領域417、418、419であるとして、複写対象から除かれ、対象外領域Nとされる。
すなわち、状態複写処理部110は、複写対象から外れた対象外領域Nを旧処理フェーズ(処理フェーズ#1)の使用領域412から新処理フェーズ(処理フェーズ#2)の使用領域420を除いた領域(実行終了領域417、418、419、未使用領域413)とする処理を実行する。
一方、ステップ802で、処理フェーズが終了していないと判定した場合、状態複写処理部110は、非同期点であるとして、判定値Sを、例えば、「0」にし(ステップ8004)、その後、ステップ805に移行して、このルーチンでの処理を完了する。
本実施例によれば、アプリケーション108のうち第一の処理フェーズ#1の実行が終了した、処理フェーズの切替点を同期点とし、この同期点において、メモリの記憶領域400の中から、OS106の利用領域411と、アプリケーション利用領域420から実行終了領域417、418、419を除いた領域に記憶されている情報(同期点後に使用予定の処理フェーズに属する情報)のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
本実施例においては、アプリケーション108のうち第一の処理フェーズ#1の実行が終了した、処理フェーズの切り替え点を同期点としたが、他の処理フェーズの実行が終了した、処理フェーズの切り替え点を同期点とすることもできる。この場合は、同期点後に使用予定の処理フェーズに属する情報のみが処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写されることになる。
次に、本発明の第3実施例を図面に基づいて説明する。本実施例は、アプリケーション108の未使用領域を確定した時点を同期点としたものであり、他の構成は、第1実施例と同様である。
具体的には、本実施例は、アプリケーション仮想化処理部107がガーベージコレクション(GC)を備えた実行系である場合に、ガーベージコレクション(GC)によって未使用領域を確定した時点を同期点としたものである。
図9(a)に、ガーベージコレクション(GC)前のメモリの状態を示し、図9(b)に、ガーベージコレクション(GC)後のメモリの状態を示す。
図9(a)に示すメモリの記憶領域400は、OS使用領域421と、アプリケーションの利用領域421および未使用領域423から構成される。アプリケーションの利用領域421には、複数の未使用データ領域424が分散して存在している。
ここで、従来の高信頼性計算機システムのように、アプリケーション108の状態を考慮せずに、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、OS使用領域421と、アプリケーションの利用領域421および未使用領域423に関する情報が全て運用系計算機101から待機系計算機102へ複写されることになる。
この場合、図9(a)の状態では、未使用領域423と複数の未使用データ領域424の内容は、待機系計算機102で処理を継続するためには不要である。
このため、アプリケーション108の利用領域421に属する複数の未使用データ領域424が確定していない状態で、メモリの記憶領域400内の情報を全て運用系計算機101から待機系計算機102へ複写すると、待機系計算機102で処理を継続するのに不要な情報まで複写されるので、それだけ状態情報を複写するのに余計な時間を要し、処理速度が低下することになる。
そこで、本実施例では、ガーベージコレクション(GC)によって未使用領域を確定した時点を同期点とし、不要な領域(未使用領域423、複数の未使用データ領域424)の情報の複写を行わないことで、状態情報の複写処理を高速化することとしている。
次に、ガーベージコレクション(GC)によって未使用領域を確定した時点を同期点としたときの作用を図10のフローチャートに従って説明する。なお、本実施例における処理は、ガーベージコレクション(GC)の判定と対象外領域Nの設定以外は、第1実施例と同様であるので、本実施例では、ガーベージコレクション(GC)の判定と対象外領域Nの設定処理についてのみ説明する。また、図10に示す処理は、アプリケーション仮想化処理部107と状態複写処理部110によって実行される。
まず、状態複写処理部110は、ステップ1001で処理を開始し、アプリケーション仮想化処理部107にガーベージコレクション(GC)の実行を指示し、ガーベージコレクション(GC)が完了したか否かを判定する(ステップ1002)。
このとき、アプリケーション仮想化処理部107は、ガーベージコレクション(GC)を用いて、アプリケーション仮想化利用領域421に属する複数の未使用データ領域424に関する情報を収集し、収集した情報を、図9(b)に示すように、アプリケーション仮想化利用領域425のうち未使用データ領域426内に格納し、アプリケーション仮想化利用領域425を、未使用データを格納する未使用データ領域426と使用中のデータを格納する使用中データ領域427とに分けて構成するための処理を実行し、未使用データ領域426が確定したときに(未使用データの収集が終了したとき)、その旨を状態複写処理部110に通知する。
状態複写処理部110は、アプリケーション仮想化処理部107から、未使用データ領域426が確定した旨の通知を受けたときには、ガーベージコレクション(GC)の完了によって未使用領域が確定した時点を示す同期点であるとして、判定値Sを、例えば、「1」にし、対象外領域Nを、ガーベージコレクション(GC)の完了によって確定した未使用領域とし(ステップ1003)、その後、ステップ1005に移行して、このルーチンでの処理を完了する。
ガーベージコレクション(GC)の完了によって未使用領域が確定し、メモリの記憶領域400が図9(b)に示すように構成された場合、アプリケーション仮想化利用領域425のうち未使用データ領域426は、複写対象領域から除かれ、対象外領域Nとされる。
この場合、状態複写処理部110は、対象外領域Nとは異なる領域、すなわち、複写対象となる領域である、OS106の利用領域421と使用中データ領域427に格納された情報を、運用系計算機101から待機系計算機102へ複写するための処理を実行する。
一方、ステップ1002で、ガーベージコレクション(GC)が完了していないと判定した場合、状態複写処理部110は、非同期点であるとして、判定値Sを、例えば、「0」にし(ステップ1004)、その後、ステップ805に移行して、このルーチンでの処理を完了する。
本実施例によれば、ガーベージコレクション(GC)の完了によって未使用領域が確定した時点を同期点とし、この同期点において、メモリの記憶領域400に記憶されている情報として、OS106の利用領域421と、アプリケーション仮想化利用領域425の中の使用中データ領域427に記憶されている情報のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
次に、本発明の第4実施例を図面に基づいて説明する。本実施例は、システム仮想化処理部105上で動作するOS106、アプリケーション仮想化処理部107、または、アプリケーション108からのAPI(Application Programming Interface)呼び出しによって、同期点と対象外領域を指示し、APIにより指示された点を同期点とし、未使用領域の状態複写を行わないことで、状態複写処理を高速化するものであり、他の構成は第1実施例と同様である。
具体的には、プログラムを作成するときに、例えば、アプリケーション108のプログラムを作成するときに、図11に示すように、アプリケーション108の実行に関する情報の中にAPIに関する情報を予め作成しておく。
例えば、アプリケーション108のプログラム上の地点のうち、あるアプリケーションの終了を示す地点あるいや処理フェーズの切り替え点を示す地点を呼び出し地点とし、この呼び出し地点が同期点であることを示すAPI1101を、予め関数「is_sync_point」で作成するとともに、複写対象領域とは異なる対象外領域(状態複写の対象としない領域、例えば、図4(b)の場合には、実行終了領域405、未使用領域404)であることを示すAPI1102を、予め関数「register_unused」で作成しておく。
アプリケーション108にAPI1101やAPI1102が作成されている場合、アプリケーション108は、その処理の過程で、API1101になったときには、API呼び出しにより、呼び出し地点が同期点であることをシステム仮想化処理部105に指示するとともに、API1102を複写対象領域とは異なる対象外領域でることを指示する。
これらの指示に応答して、システム仮想化処理部105は、API呼び出しにより、同期点であると判定し、この同期点において、メモリの記憶領域400の中から、API1102で指示された対象外領域とは異なる複写対象領域の情報として、例えば、メモリの記憶領域400が、図4(b)の場合には、OS106の利用領域401と第二のアプリケーション(AP#2)の利用領域403に記憶されている情報(例えば、同期点後に使用予定のアプリケーションプログラム)のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写する。
本実施例によれば、アプリケーション108からAPI呼び出しに応答して、このAPI呼び出し地点を同期点とし、この同期点において、メモリの記憶領域400の中から、API1102で指示された対象外領域とは異なる複写対象領域の情報のみを抽出し、抽出した情報を、処理継続に必要な複写対象の情報として、運用系計算機101から待機系計算機102へ複写するようにしたため、処理継続に必要な情報の複写処理を高速化することができ、高信頼性計算機システムの実行性能の向上に寄与することができる。
本発明は、運用系計算機101と待機系計算機102から構成された高信頼性計算機システムにおいて、運用系計算機101と待機系計算機102との間の状態複写に要する性能を向上するために用いることができる。
101・・・運用系計算機
102・・・待機系計算機
103・・・結合網
104、114・・・ハードウェア
105、115・・・システム仮想化処理部
106、116・・・OS
107、117・・・アプリケーション仮想化処理部
108、118・・・アプリケーション
109、119・・・管理OS
110・・・状態複写処理部

Claims (10)

  1. 入出力装置と記憶装置および処理装置を含む運用系ハードウェア資源と、前記記憶装置に格納されて、前記運用系ハードウェア資源を動作させるための運用系ソフトウェア資源とを有する運用系計算機と、
    前記運用系ハードウェア資源に相当する待機系ハードウェア資源と前記運用系ソフトウェア資源に相当する待機系ソフトウェア資源とを有し、前記運用系計算機と結合網を介して接続された待機系計算機とを備え、
    前記運用系ソフトウェア資源は、複数のプログラムを有し、前記複数のプログラムに対して、前記ハードウェア資源を仮想化するとともに、前記複数のプログラムの状態を監視して、前記記憶装置の情報を処理するシステム仮想化処理部を備え、
    前記システム仮想化処理部は、前記プログラムの実行状態を監視して、前記待機系計算機と状態同期を行うための同期点を検出するとともに、前記検出した同期点において前記記憶装置から処理継続に必要な複写対象の情報を前記プログラムのうち前記記憶装置に格納されたアプリケーションプログラムに対応した使用領域単位で抽出し、前記抽出した複写対象の情報を前記結合網を介して待機系計算機に転送する、高信頼性計算機システム。
  2. 前記システム仮想化処理部は、前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記複数のアプリケーションプログラムの中のいずれかのアプリケーションプログラムの終了点を前記同期点として検出し、前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定のアプリケーションプログラムを抽出する、請求項1に記載の高信頼性計算機システム。
  3. 前記システム仮想化処理部は、前記プログラムのうち前記記憶装置に格納されたアプリケーションプログラムを構成する複数の処理フェーズの実行状態を監視して、前記複数の処理フェーズの中のいずれかの処理フェーズの終了点を前記同期点として検出し、前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定の処理フェーズに属する情報を抽出する、請求項1に記載の高信頼性計算機システム。
  4. 前記運用系ソフトウェア資源は、前記プログラムのうちアプリケーションプログラムを格納する記憶領域の中からガーベージコレクション対象のデータを収集し、前記記憶領域を、前記アプリケーションプログラムで使用するデータを格納する使用中データ格納領域と前記収集したガーベージコレクション対象のデータを格納するための未使用データ格納領域とに分けて構成するアプリケーション仮想化処理部を備え、
    前記システム仮想化処理部は、前記アプリケーション仮想化処理部により、前記記憶領域の中に前記未使用データ格納領域が確定された時点を前記同期点とし、前記記憶装置から前記複写対象の情報として、前記使用中データ格納領域に格納されたデータを抽出する、請求項1に記載の高信頼性計算機システム。
  5. 前記システム仮想化処理部は、前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記各アプリケーションプログラムに記載されたアプリケーション・プログラマブル・インタフェースで指示された同期点を前記同期点として検出し、前記記憶装置から前記複写対象の情報として、アプリケーション・プログラマブル・インタフェースで指示された情報以外の情報であって、前記同期点後に使用予定のアプリケーションプログラムを抽出する、請求項1に記載の高信頼性計算機システム。
  6. 入出力装置と記憶装置および処理装置を含む運用系ハードウェア資源と、前記記憶装置に格納されて、前記運用系ハードウェア資源を動作させるための運用系ソフトウェア資源とを有する運用系計算機と、
    前記運用系ハードウェア資源に相当する待機系ハードウェア資源と前記運用系ソフトウェア資源に相当する待機系ソフトウェア資源とを有し、前記運用系計算機と結合網を介して接続された待機系計算機とを備え、
    前記運用系ソフトウェア資源は、複数のプログラムを有し、前記複数のプログラムに対して、前記ハードウェア資源を仮想化するとともに、前記複数のプログラムの状態を監視して、前記記憶装置の情報を処理するシステム仮想化処理部を備え、
    前記システム仮想化処理部は、前記プログラムの実行状態を監視して、前記待機系計算機と状態同期を行うための同期点を検出するステップと、
    前記ステップで検出した同期点において前記記憶装置から処理継続に必要な複写対象の情報を前記プログラムのうち前記記憶装置に格納されたアプリケーションプログラムに対応した使用領域単位で抽出するステップと、
    前記ステップで抽出した複写対象の情報を前記結合網を介して待機系計算機に転送するステップを実行する、高信頼性計算機システムの構成方法。
  7. 前記システム仮想化処理部は、
    前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記複数のアプリケーションプログラムの中のいずれかのアプリケーションプログラムの終了点を前記同期点として検出するステップと、
    前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定のアプリケーションプログラムを抽出するステップを実行する、請求項6に記載の高信頼性計算機システムの構成方法。
  8. 前記システム仮想化処理部は、
    前記プログラムのうち前記記憶装置に格納されたアプリケーションプログラムを構成する複数の処理フェーズの実行状態を監視して、前記複数の処理フェーズの中のいずれかの処理フェーズの終了点を前記同期点として検出するステップと、
    前記記憶装置の中から、前記複写対象の情報として、前記同期点後に使用予定の処理フェーズに属する情報を抽出するステップを実行する、請求項6に記載の高信頼性計算機システムの構成方法。
  9. 前記運用系ソフトウェア資源は、
    前記プログラムのうちアプリケーションプログラムを格納する記憶領域の中からガーベージコレクション対象のデータを収集し、前記記憶領域を、前記アプリケーションプログラムで使用するデータを格納する使用中データ格納領域と前記収集したガーベージコレクション対象のデータを格納するための未使用データ格納領域とに分けて構成するアプリケーション仮想化処理部を備え、
    前記システム仮想化処理部は、
    前記アプリケーション仮想化処理部により、前記記憶領域の中に前記未使用データ格納領域が確定された時点を前記同期点とするステップと、
    前記記憶装置から前記複写対象の情報として、前記使用中データ格納領域に格納されたデータを抽出するステップを実行する、請求項6に記載の高信頼性計算機システムの構成方法。
  10. 前記システム仮想化処理部は、
    前記プログラムのうち前記記憶装置に格納された複数のアプリケーションプログラムの実行状態を監視して、前記各アプリケーションプログラムに記載されたアプリケーション・プログラマブル・インタフェースで指示された同期点を前記同期点として検出するステップと、
    前記記憶装置から前記複写対象の情報として、アプリケーション・プログラマブル・インタフェースで指示された情報以外の情報であって、前記同期点後に使用予定のアプリケーションプログラムを抽出するステップを実行する、請求項6に記載の高信頼性計算機システムの構成方法。
JP2009067299A 2009-03-19 2009-03-19 高信頼性計算機システムおよびその構成方法 Expired - Fee Related JP5352299B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009067299A JP5352299B2 (ja) 2009-03-19 2009-03-19 高信頼性計算機システムおよびその構成方法
US13/201,579 US20120030504A1 (en) 2009-03-19 2009-11-05 High reliability computer system and its configuration method
CN2009801567219A CN102317921A (zh) 2009-03-19 2009-11-05 高可靠性计算机系统及其构成方法
PCT/JP2009/005872 WO2010106593A1 (ja) 2009-03-19 2009-11-05 高信頼性計算機システムおよびその構成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009067299A JP5352299B2 (ja) 2009-03-19 2009-03-19 高信頼性計算機システムおよびその構成方法

Publications (2)

Publication Number Publication Date
JP2010218481A JP2010218481A (ja) 2010-09-30
JP5352299B2 true JP5352299B2 (ja) 2013-11-27

Family

ID=42739267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009067299A Expired - Fee Related JP5352299B2 (ja) 2009-03-19 2009-03-19 高信頼性計算機システムおよびその構成方法

Country Status (4)

Country Link
US (1) US20120030504A1 (ja)
JP (1) JP5352299B2 (ja)
CN (1) CN102317921A (ja)
WO (1) WO2010106593A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5136593B2 (ja) * 2010-05-21 2013-02-06 横河電機株式会社 分析装置
US9665377B2 (en) 2011-07-20 2017-05-30 Nxp Usa, Inc. Processing apparatus and method of synchronizing a first processing unit and a second processing unit
JP6089427B2 (ja) * 2012-03-30 2017-03-08 日本電気株式会社 フォールトトレラントサーバ、デフラグ方法、およびプログラム
JP5905122B2 (ja) * 2012-11-30 2016-04-20 株式会社日立製作所 管理装置、管理方法及びプログラムを格納する記録媒体
US20160071491A1 (en) * 2013-04-10 2016-03-10 Jeremy Berryman Multitasking and screen sharing on portable computing devices
WO2018225222A1 (ja) * 2017-06-08 2018-12-13 株式会社島津製作所 分析システム、コントローラ及びデータ処理装置
JP2020160653A (ja) * 2019-03-26 2020-10-01 日本電気株式会社 情報処理システム、仮想マシン、物理マシン、情報処理方法、及びプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
JP3463696B2 (ja) * 1993-07-21 2003-11-05 日本電信電話株式会社 オンラインガーベッジコレクション処理方法
JP3319146B2 (ja) * 1994-05-13 2002-08-26 富士電機株式会社 二重化制御システムのデータ同期転写方法
JPH08328891A (ja) * 1995-06-02 1996-12-13 Mitsubishi Electric Corp 待機冗長化構成の二重化システム
US6044475A (en) * 1995-06-16 2000-03-28 Lucent Technologies, Inc. Checkpoint and restoration systems for execution control
JPH11259326A (ja) * 1998-03-13 1999-09-24 Ntt Communication Ware Kk ホットスタンバイシステムおよびホットスタンバイシステムにおける自動再実行方法およびその記録媒体
US6360331B2 (en) * 1998-04-17 2002-03-19 Microsoft Corporation Method and system for transparently failing over application configuration information in a server cluster
US6421739B1 (en) * 1999-01-30 2002-07-16 Nortel Networks Limited Fault-tolerant java virtual machine
JP2001297011A (ja) * 2000-04-14 2001-10-26 Nec Soft Ltd 無停止ジョブ起動方法及び無停止ジョブ起動システム
JP3426216B2 (ja) * 2001-01-19 2003-07-14 三菱電機株式会社 フォールトトレラント計算機システム
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
JP2003296133A (ja) * 2002-04-05 2003-10-17 Fuji Electric Co Ltd コントローラ
JP4030951B2 (ja) * 2003-11-12 2008-01-09 埼玉日本電気株式会社 データ二重化装置及び方法
JP2006072591A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd 仮想計算機制御方法
JP5420242B2 (ja) * 2005-06-24 2014-02-19 シンクソート インコーポレイテッド 高性能な企業データ保護のためのシステムおよび方法
US20070094659A1 (en) * 2005-07-18 2007-04-26 Dell Products L.P. System and method for recovering from a failure of a virtual machine
CN101593136B (zh) * 2008-05-30 2012-05-02 国际商业机器公司 使得计算机具有高可用性的方法和计算机系统
US8145945B2 (en) * 2010-01-04 2012-03-27 Avaya Inc. Packet mirroring between primary and secondary virtualized software images for improved system failover performance

Also Published As

Publication number Publication date
JP2010218481A (ja) 2010-09-30
CN102317921A (zh) 2012-01-11
US20120030504A1 (en) 2012-02-02
WO2010106593A1 (ja) 2010-09-23

Similar Documents

Publication Publication Date Title
JP5352299B2 (ja) 高信頼性計算機システムおよびその構成方法
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
US9104624B2 (en) Systems, methods, and computer program products for instant recovery of image level backups
US7523344B2 (en) Method and apparatus for facilitating process migration
US9594522B2 (en) Backup method and information processing apparatus
US9262212B2 (en) Systems and methods for migrating virtual machines
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
JP5516747B2 (ja) マルチコアプロセッサシステム、監視制御方法、および監視制御プログラム
JP5966927B2 (ja) 分散処理装置及び分散処理システム
US8910160B1 (en) Handling of virtual machine migration while performing clustering operations
WO2015074200A1 (zh) 一种生成快照的方法、系统和装置
US20070288532A1 (en) Method of updating an executable file for a redundant system with old and new files assured
JP2014503904A (ja) 仮想計算機のクラスタを操作するための方法、装置、コンピュータ・プログラム、およびコンピュータ・プログラム製品
CN108763405A (zh) 一种业务数据迁移方法、装置、系统及可读存储介质
US9672165B1 (en) Data management tier coupling primary storage and secondary storage
JP6942458B2 (ja) プログラム、システム及び情報処理方法
JP2013257695A (ja) コンピュータシステム
CN108984602B (zh) 一种数据库控制方法和数据库系统
Ong et al. VCCP: A transparent, coordinated checkpointing system for virtualization-based cluster computing
EP4002811A1 (en) Data synchronization method and apparatus
KR102472878B1 (ko) 가상 머신 환경에서의 블록 커밋 방법 및 그 방법을 수행하는 가상화 시스템
US10613789B1 (en) Analytics engine using consistent replication on distributed sites
JP5544516B2 (ja) 高可用サーバシステム、高可用サーバシステムの障害時復旧方法、および高可用サーバ
JP2012103952A (ja) メモリダンプ方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130826

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees