JP2014139706A - フォールトトレラントシステム - Google Patents

フォールトトレラントシステム Download PDF

Info

Publication number
JP2014139706A
JP2014139706A JP2013007967A JP2013007967A JP2014139706A JP 2014139706 A JP2014139706 A JP 2014139706A JP 2013007967 A JP2013007967 A JP 2013007967A JP 2013007967 A JP2013007967 A JP 2013007967A JP 2014139706 A JP2014139706 A JP 2014139706A
Authority
JP
Japan
Prior art keywords
computer
active
snapshot
virtual machine
standby
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
JP2013007967A
Other languages
English (en)
Other versions
JP6291711B2 (ja
Inventor
Yukihiro Tanaka
幸宏 田中
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2013007967A priority Critical patent/JP6291711B2/ja
Publication of JP2014139706A publication Critical patent/JP2014139706A/ja
Application granted granted Critical
Publication of JP6291711B2 publication Critical patent/JP6291711B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】現用系の仮想計算機(VM)と待機系のVMとの同期を開始するためには、全メモリ内容を含む初回スナップショットのコピーが必要になること。
【解決手段】現用系のVMが稼働する第1の計算機と、待機系のVMが稼働する第2の計算機とを有する。第1の計算機は、現用系のVMの全メモリを含む初回スナップショットを第2の計算機に送信して新たな待機系のVMを生成する。第1の計算機は、自計算機上のVMを待機系に切り換えて第2の計算機に対して待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、上記初回スナップショットを第2の計算機上の現用系のVMの初回のスナップショットとして認識し、以後、第2の計算機から受信するスナップショットに基づいて自計算機の待機系のVMの状態を更新する。
【選択図】図13

Description

本発明は、フォールトトレラントシステム、その制御方法、計算機、およびプログラムに関する。
可用性を高めた計算機システムとして、ホットスタンバイ構成のHAクラスタ(High availability cluster)、FTサーバ(Fault Tolerant server)が知られている。
HAクラスタは、複数台のサーバを相互接続し、システムの冗長化を図る。現在稼動している(現用系)サーバに障害が発生した場合、待機系として用意されていた別のサーバが処理を引き継ぐため、クラスタ全体としては異常なく稼動し続けているように見える。主な方式として、アクティブスタンバイ方式とレプリケーション方式とがある。
アクティブスタンバイ方式のHAクラスタでは、現用系と待機系でストレージを共有する。現用系は、待機系を同期させるのに必要な、アプリケーションに依存した情報を共有ストレージに書き、待機系はフェイルオーバー時にこの情報を用いてリカバリ処理を行うため、アプリケーションやOSから見て、透過的に可用性を得ることができない。また、フェイルオーバーには時間を要し、その間はサービスが提供できなくなる。
レプリケーション方式のHAクラスタでは、現用系と待機系が個別にストレージを持ち、現用系のアプリケーションに到着したリクエストを待機系にも転送することで、待機系に現用系と同じ状態遷移をさせる。一般に、複数の系の状態を一致させることを、同期をとると言う。現用系に障害が発生して停止した場合、待機系のアプリケーションの状態は現用系と同期しているため、現用系を切り離して処理を待機系に切り換えてサービスを継続することができる。しかし、クラスタリングするアプリケーション毎にレプリケーションの仕組みを追加しなければならないため、アプリケーションやOSから見て、透過的に可用性を得ることができない。
このようにHAクラスタでは、アプリケーションやOSに可用性を意識した仕組みを追加しなければならない。これに対して、FTサーバでは、アプリケーションやOSが特別な処理を必要としないで、透過的にサービスを継続することができる。FTサーバを実現する方式は、ハードウェア方式とソフトウェア方式とに大別される。
ハードウェア方式のFTサーバは、CPU、メモリ、ストレージなどの主要なハードウェアコンポーネントを冗長化し、あるコンポーネントに障害が発生した場合は、そのコンポーネントを切り離して動作を継続する。CPUやメモリ、チップセットを含むモジュールをCPUサブシステム、各種IOデバイスを含むモジュールをIOサブシステムと定義すると、コンポーネントを二重化する一般的なFTサーバではCPUサブシステムとIOサブシステムとで二重化の方式が異なる。CPUサブシステムは、クロック単位でハードウェアの動作を完全に一致させる。これをロックステップと呼ぶ。二重化されたCPUサブシステムは両方とも完全に同じ動作をしているので、障害発生時はその障害が発生したCPUサブシステムを論理的に切り離し、正常なCPUサブシステムに瞬時に処理を切り換えて動作を継続させる。IOサブシステムは、ロックステップこそしていないが、障害が発生した場合、直ちに他方のIOサブシステムに切り換える。ハードウェア方式のFTサーバは、極めて高い可用性を実現することができる。しかし、特殊なハードウェアで構成されるため、同程度の性能を持つ一般サーバと比較して導入コストがかかる。
一方、ソフトウェア方式のFTサーバは、物理計算機上で1つまたは複数のOSを動作させることを可能とした仮想化技術を使用する。物理計算機上に仮想的に構築される計算機を、仮想計算機あるいは仮想マシンと呼ぶ。ソフトウェア方式のFTサーバでは、物理計算機を冗長化し、現用系の仮想計算機と待機系の仮想計算機とをそれぞれ異なる物理計算機上に配置する。現用系の仮想計算機が属する物理計算機でハードウェアの故障等の障害が発生した場合、その仮想計算機が行っている処理を他の物理計算機上の待機系の仮想計算機で継続して実行する。アプリケーションやOSから見て、透過的にサービスを継続するために、ソフトウェア方式のFTサーバでは、現用系と待機系の仮想計算機の状態を一致させる処理、すなわち同期を行う。
現用系と待機系の仮想計算機を同期させる方式には、主に仮想ロックステップ方式とチェックポイント方式の2つの方式がある。仮想ロックステップ方式は、現用系の仮想計算機に対する入力を、待機系の仮想計算機に対しても与えることにより、待機系の仮想計算機の状態を現用系の仮想計算機と同じように遷移させる。仮想計算機間の同期に必要なデータ量が少なくて済む利点がある反面、現用系と待機系とでCPUの種類が異なると動作しないといった課題がある。
他方、チェックポイント方式は、定期的に、現用系の仮想計算機のイメージ(CPU、メモリ、ストレージなど)を待機系に送り、待機系の仮想計算機の状態を現用系の仮想計算機の状態に一致させる。チェックポイント方式は、仮想ロックステップ方式と比較して実装が容易であり、CPUの特定の機能に依存しないため、幅広い製品に実装できる利点がある。その反面、仮想計算機のイメージはデータ量が多いため、仮想ロックステップ方式よりも1回の同期にかかるオーバーヘッドが大きいという課題がある。
この課題を解決するために、前回のチェックポイント以降に更新された現用系の仮想計算機のイメージのみを待機系に送ることが本発明に関連する第1の関連技術として提案されている(例えば非特許文献1参照)。この第1の関連技術では、チェックポイントが到来すると、現用系の仮想計算機を一旦停止させることでメインメモリへの更新を遮断し、前回のチェックポイント以降に更新のあったメインメモリのページであるダーティページの全てを、メインメモリに設けたバッファにローカルコピーする。そして、ローカルコピーを完了すると、停止させていた現用系の仮想計算機を再起動し、並行して、上記コピーされたダーティページを上記バッファから待機系へと転送する。
また、複数の現用系の物理計算機と複数の待機系の物理計算機とをスイッチを介して共通のディスクアレイ装置に接続し、複数の現用系の物理計算機上で動作している現用系の仮想計算機のスナップショットを、上記スイッチを介して上記ディスクアレイ装置に定期的に保存することが、本発明に関連する第2の関連技術として提案されている(例えば特許文献1参照)。そして、この第2の関連技術では、或る現用系の物理計算機の障害時、複数の待機系の物理計算機の何れかを上記スイッチを介して上記ディスクアレイ装置に接続し、上記ディスクアレイ装置に保存されている現用系の仮想計算機の直近のスナップショットを使用して、待機系の物理計算機に新たに仮想計算機を生成し、この生成した仮想計算機によって上記障害に遭遇した現用系の仮想計算機の処理を引継ぐようにしている。
また、複数の現用系の物理計算機に対して1台の待機系の物理計算機と1台以上の他の物理計算機とを有するソフトウェア方式のFTサーバが、本発明に関連する第3の関連技術として提案されている(例えば非特許文献2参照、特に図3.2-1、図3.2-30)。この第3の関連技術では、複数の現用系の物理計算機上の複数の現用系の仮想計算機の状態と、上記1台の待機系の物理計算機上に存在する対応する待機系の仮想計算機の状態とを、現用系でイベントが発生したことを契機に一致させるという方法で同期させる。そして、何れかの現用系の物理計算機の障害時、まず、待機系の物理計算機上の対応する待機系の仮想計算機を使ってフェイルオーバする。次いで、待機系の物理計算機から他の物理計算機(非特許文献2では予備系と称している)に高速マイグレーションという手法を用いて、現用系の仮想計算機を移動する。
本発明に関連する第2の関連技術によれば、現用系の物理計算機に対して待機系の物理計算機を1対1に備えておく必要はない。しかしながら、複数の現用系の物理計算機上で稼働する仮想計算機のスナップショットを共有記憶装置に定期的に保存し、何れかの現用系の物理計算機の障害時に共有記憶装置に保存されたスナップショットを使用して待機系の物理計算機に仮想計算機を生成し、この生成した仮想計算機によって上記障害に遭遇した物理計算機上の仮想計算機が行っていた処理を引継ぐ方法では、サービス中断時間が長くなる。その理由は、スナップショットを使用して待機系の物理計算機に新たに仮想計算機を生成するためには全メモリのコピーを行う必要があり、一般に長い時間を必要とするためである。
これに対して本発明に関連する第3の関連技術によれば、何れかの現用系の物理計算機に障害が発生した場合、待機系の物理計算機上の対応する待機系の仮想計算機を用いてフェイルオーバするため、サービス中断時間を短縮することができる。また本発明に関連する第3の関連技術によれば、上記フェイルオーバ後、直ちに待機系の物理計算機から他の物理計算機に現用系の仮想計算機を移動させることによって、待機系の物理計算機の負荷を軽減している。
Brendan Cully、外5名、"Remus: HighAvailability via Asynchronous Virtual Machine Replication"、[online]、[平成24年9月5日検索]、インターネット〈URL:http://www.cs.ubc.ca/~andy/papers/remus-nsdi-final.pdf〉 「経済産業省 平成22年度 産業技術研究開発委託費(次世代高信頼・省エネ型IT 基盤技術開発事業)クラウドコンピューティングのアカウンタビリティを向上させる研究・開発事業 事業報告書」、平成23年3月31日、エヌ・ティ・ティ・コミュニケーションズ株式会社。
特開2007−183701号公報
ところで、可用性を維持するためには、他の物理計算機に移動させた現用系の仮想計算機に対して新たに同期先となる待機系の仮想計算機を設定し、現用系の仮想計算機と待機系の仮想計算機との同期を開始しなければならない。例えば、現用系の仮想計算機が稼働する第1の計算機と、待機系の仮想計算機が稼働する第2の計算機とを有するフォールトトレラントシステムにおいて、第1の計算機上の現用系の仮想計算機を第2の計算機に移動させた場合、第2の計算機上に移動した現用系の仮想計算機に対して新たに同期先となる待機系の仮想計算機を設定し、現用系の仮想計算機と待機系の仮想計算機との同期を開始しなければならない。一般に同期を開始する際には、現用系の仮想計算機の全メモリ内容を含む初回スナップショットを取得して、新たに同期先となる物理計算機へ送信する必要がある。
本発明の目的は、上述した課題、すなわち、現用系の仮想計算機と待機系の仮想計算機との同期を開始するためには現用系の仮想計算機のCPUのコンテキストや全メモリ内容を含む初回スナップショットの転送が必要になる、という課題を解決するフォールトトレラントシステムを提供することにある。
本発明の第1の観点に係るフォールトトレラントシステムは、
現用系の仮想計算機が稼働する第1の計算機と、
待機系の仮想計算機が稼働する第2の計算機と
を有し、
上記第1の計算機は、上記現用系の仮想計算機の全メモリを含む初回スナップショットを上記第2の計算機に送信して新たな待機系の仮想計算機を生成し、自計算機上の上記仮想計算機を待機系に切り換えて上記第2の計算機に対して上記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の上記待機系の仮想計算機の状態を上記第2の計算機上の上記現用系の仮想計算機の初回のスナップショットとして認識し、以後、上記第2の計算機から受信するスナップショットに基づいて自計算機の上記待機系の仮想計算機の状態を更新する、
といった構成を採用する。
また、本発明の第2の観点に係る計算機は、
1つ以上の待機系の仮想計算機が稼働する第2の計算機に接続され、
現用系の仮想計算機と、
スナップショット管理手段と
を有し、
上記スナップショット管理手段は、上記現用系の仮想計算機の全メモリを含む初回スナップショットを上記第2の計算機に送信して新たな待機系の仮想計算機を生成し、自計算機上の上記仮想計算機を待機系に切り換えて上記第2の計算機に対して上記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の上記待機系の仮想計算機の状態を上記第2の計算機上の上記現用系の仮想計算機の初回のスナップショットとして認識し、以後、上記第2の計算機から受信するスナップショットに基づいて自計算機の上記待機系の仮想計算機の状態を更新する、
といった構成を採用する。
また、本発明の第3の観点に係る計算機は、
現用系の仮想計算機が稼働する第1の計算機に接続され、
待機系の仮想計算機と、
スナップショット管理手段と
を有し、
上記スナップショット管理手段は、上記現用系の仮想計算機の全メモリを含む初回スナップショットを上記第1の計算機から受信して新たな上記待機系の仮想計算機を生成し、上記第1の計算機上の上記仮想計算機が待機系に切り換えられた後に上記第1の計算機から送信される、上記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を受信すると、上記待機系の仮想計算機を上記現用系の仮想計算機へ切り換え、該切り換え後の上記現用系の仮想計算機の初回のスナップショットを上記第1の計算機へ送信する処理を省略し、以後、第2のチェックポイントが到来する毎に、上記現用系の上記仮想計算機のスナップショットを取得して上記第1の計算機へ送信する、
といった構成を採用する。
また本発明の第4の観点に係るフォールトトレラントシステム制御方法は、
現用系の仮想計算機が稼働する第1の計算機と、待機系の仮想計算機が稼働する第2の計算機とを有するフォールトトレラントシステムの制御方法であって、
上記第1の計算機が、上記現用系の仮想計算機の全メモリを含む初回スナップショットを上記第2の計算機に送信して新たな待機系の仮想計算機を生成し、自計算機上の上記仮想計算機を待機系に切り換え自計算機上の上記仮想計算機を待機系に切り換えて上記第2の計算機に対して上記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の上記待機系の仮想計算機の状態を上記第2の計算機上の上記現用系の仮想計算機の初回のスナップショットとして認識し、以後、上記第2の計算機から受信するスナップショットに基づいて自計算機の上記待機系の仮想計算機の状態を更新する、
といった構成を採用する。
また本発明の第5の観点に係るプログラムは、
1つ以上の待機系の仮想計算機が稼働する第2の計算機に接続された計算機を、
現用系の仮想計算機と、
上記現用系の仮想計算機の全メモリを含む初回スナップショットを上記第2の計算機に送信して新たな待機系の仮想計算機を生成し、自計算機上の上記仮想計算機を待機系に切り換えて上記第2の計算機に対して上記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の上記待機系の仮想計算機の状態を上記第2の計算機上の上記現用系の仮想計算機の初回のスナップショットとして認識し、以後、上記第2の計算機から受信するスナップショットに基づいて自計算機の上記待機系の仮想計算機の状態を更新するスナップショット管理手段と
して機能させる。
また本発明の第6の観点に係るプログラムは、
現用系の仮想計算機が稼働する第1の計算機に接続された計算機を、
待機系の仮想計算機と、
上記現用系の仮想計算機の全メモリを含む初回スナップショットを上記第1の計算機から受信して新たな上記待機系の仮想計算機を生成し、上記第1の計算機上の上記仮想計算機が待機系に切り換えられた後に上記第1の計算機から送信される、上記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を受信すると、上記待機系の仮想計算機を上記現用系の仮想計算機へ切り換え、該切り換え後の上記現用系の仮想計算機の初回のスナップショットを上記第1の計算機へ送信する処理を省略し、以後、第2のチェックポイントが到来する毎に、上記現用系の上記仮想計算機のスナップショットを取得して上記第1の計算機へ送信するスナップショット管理手段と
して機能させる。
本発明は上述した構成を有するため、現用系の仮想計算機に対して新たに同期先となる待機系の仮想計算機を設定して現用系の仮想計算機と待機系の仮想計算機との同期を開始する際、現用系の仮想計算機の初回スナップショットの転送を省くことができ、少ない負荷で可用性を維持することができる。
本発明の第1の実施形態にかかるフォールトトレラントシステムのブロック図である。 本発明の第1の実施形態における物理計算機(第3の物理計算機)のチェックポイント管理部が実行する処理の一例を示すフローチャートである。 本発明の第1の実施形態における物理計算機(第1の物理計算機)のチェックポイント管理部が実行する処理の一例を示すフローチャートである。 本発明の第1の実施形態における物理計算機(第2の物理計算機)のチェックポイント管理部が実行する処理の一例を示すフローチャートである。 本発明の第1の実施形態にかかるフォールトトレラントシステムで物理計算機(第3の物理計算機)に障害が発生した際に行われるフェイルオーバの説明図である。 本発明の第1の実施形態にかかるフォールトトレラントシステムにおいて、障害発生によるフェイルオーバ直後に物理計算機(第2の物理計算機)上に待機系の仮想計算機が新規に生成される様子を示す図である。 本発明の第1の実施形態にかかるフォールトトレラントシステムにおいて、物理計算機(第2の物理計算機)上の待機系の仮想計算機が現用系に切り換わり、物理計算機(第1の物理計算機)上の現用系の仮想計算機が待機系に切り換わった状態を示す図である。 本発明の第2の実施形態にかかるフォールトトレラントシステムのブロック図である。 本発明の第2の実施形態における物理計算機(第1の物理計算機)のチェックポイント管理部が実行する処理の一例を示すフローチャートである。 本発明の第2の実施形態にかかるフォールトトレラントシステムで物理計算機(第3の物理計算機)に障害が発生した際に行われるフェイルオーバの説明図である。 本発明の第2の実施形態にかかるフォールトトレラントシステムにおいて、障害発生によるフェイルオーバ直後に物理計算機(第2の物理計算機)の1つが待機系に選択され、その上に待機系の仮想計算機が新規に生成される様子を示す図である。 本発明の第2の実施形態にかかるフォールトトレラントシステムにおいて、物理計算機(第2の物理計算機)上の待機系の仮想計算機が現用系に切り換わり、物理計算機(第1の物理計算機)上の現用系の仮想計算機が待機系に切り換わった状態を示す図である。 本発明の第3の実施形態にかかるフォールトトレラントシステムのブロック図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態にかかるフォールトトレラントシステム100は、ハードウェアとしてn台(nは2以上の整数)の物理計算機110と、これらn台の物理計算機110に共通な1台の物理計算機120と、何れかの物理計算機110に障害が発生した場合にそれに代えて使用する1台の他の物理計算機130とを有する。また、n台の物理計算機110と1台の物理計算機120と1台の物理計算機130とはネットワーク140を通じて相互に通信可能に接続されている。
各々の物理計算機110は、サーバ装置などで構成され、ハードウェアとして、1以上のプロセッサ、メインメモリ、通信カード等(何れも図示せず)を有する。また、各々の物理計算機110は、ソフトウェアとして、仮想計算機環境を提供するハイパーバイザ(Hypervisor)111と、このハイパーバイザ111が提供する仮想計算機環境の下で動作する仮想計算機112とを有する。
また、物理計算機120は、サーバ装置などで構成され、ハードウェアとして、1以上のプロセッサ、メインメモリ、通信カード等(何れも図示せず)を有する。また、物理計算機120は、ソフトウェアとして、仮想計算機環境を提供するハイパーバイザ121と、このハイパーバイザ121が提供する仮想計算機環境の下で動作するn個の仮想計算機122とを有する。
さらに、物理計算機130は、サーバ装置などで構成され、ハードウェアとして、1以上のプロセッサ、メインメモリ、通信カード等(何れも図示せず)を有する。また、物理計算機130は、ソフトウェアとして、仮想計算機環境を提供するハイパーバイザ131を有する。
物理計算機120のn個の仮想計算機122は、n台の物理計算機110のn個の仮想計算機112と1対1に対応している。即ち、仮想計算機122−1は仮想計算機112−1に対応し、…、仮想計算機122−nは仮想計算機112−nに対応する。このように物理計算機120上では、n個の仮想計算機122が存在するため、物理計算機120のメインメモリの容量は、物理計算機110のメインメモリに比べて大きくなっている。以下、特定の仮想計算機を意味する場合、参照番号に−i(iは1〜nの何れか)を付加する。
ここで、初期状態においては、各々の物理計算機110の仮想計算機112は現用系として動作し、物理計算機120の仮想計算機122は待機系として動作する。また物理計算機130には、物理計算機110、120と同じフォールトトレラントグループを構成する現用系および待機系の仮想計算機は存在しない。但し、物理計算機130には、他のフォールトトレラントグループに属する待機系の仮想計算機や、仮想計算機以外のアプリケーションプログラムが存在していても構わない。そして、何れかの現用系の仮想計算機112−iが動作する物理計算機110−iにハードウェア障害等の障害が発生すると、物理計算機120上の対応する仮想計算機122−iが待機系から現用系に切り換わり、障害に遭遇した仮想計算機112−iが行っている処理を現用系となった仮想計算機122−iで継続して実行する。さらに、現用系となった仮想計算機122−iに対して待機系となる新規な仮想計算機を物理計算機130に生成し、そして、物理計算機120の負荷を軽減するために、物理計算機120の現用系の仮想計算機122−iを待機系に、物理計算機130上に生成した待機系の仮想計算機を現用系に切り換えるようにしている。
物理計算機110のハイパーバイザ111は、スナップショット管理部113を有する。また、物理計算機120のハイパーバイザ121は、スナップショット管理部123を有する。さらに、物理計算機130のハイパーバイザ131は、スナップショット管理部133を有する。スナップショット管理部113とスナップショット管理部123とスナップショット管理部133とは、物理計算機110と物理計算機120と物理計算機130とをFTサーバとして機能させるためのソフトウェアである。
物理計算機110側のスナップショット管理部113は、チェックポイントが到来する毎に、自物理計算機110上の現用系の仮想計算機112のスナップショットを取得してネットワーク140経由で物理計算機120へ送信するスナップショット取得機能を有する。このスナップショット取得機能では、チェックポイントにおける仮想計算機112の状態をスナップショットとして取得する。スナップショットして取得する仮想計算機112の状態は、仮想計算機112の状態を当該スナップショット時点に復元するのに必要なデータ、例えば仮想計算機112に割り当てられているCPUの状態(プログラムカウンタやレジスタの状態)やメモリの状態を含む。本発明に関連する第1の関連技術に記載されるように、転送するデータ量を削減するために、仮想計算機112のメモリ状態は前回のスナップショット以降に更新されたメモリページ(ダーティページ)のみを含むようにして良い。
物理計算機120側のスナップショット管理部123は、物理計算機110から受信した現用系の仮想計算機112のスナップショットに基づいて、自物理計算機120上の対応する待機系の仮想計算機122の状態を現用系の仮想計算機112の状態に一致させる同期機能を有する。この同期機能では、物理計算機110から受信した現用系の仮想計算機112の時刻t時点のスナップショットに基づいて、対応する待機系の仮想計算機122の状態を上記時刻t時点の現用系の仮想計算機112の状態に一致させる。
またスナップショット管理部123は、さらに、何れかの物理計算機110で障害が発生した場合、当該障害の発生した物理計算機110の現用系の仮想計算機112に対応する自物理計算機120上の待機系の仮想計算機122を、待機系から現用系に切り換えるフェールオーバ機能を有する。
またスナップショット管理部123は、さらに、物理計算機130に対して自物理計算機120上の現用系の仮想計算機の全メモリ内容を含む初回スナップショットを送信して待機系の仮想計算機を新規に生成するように要求し、その後にチェックポイントが到来する毎に、現用系の仮想計算機のスナップショットを取得して物理計算機130に送信する機能を有する。またスナップショット管理部123は、物理計算機130から仮想計算機の生成完了の通知を受信すると、物理計算機130から切り換え準備完了の通知を受信するのを待ち合わせる機能を有する。このとき、上記初回スナップショット以降に上記現用系の仮想計算機のチェックポイントで取得されたスナップショットがあれば、スナップショット管理部123は、当該スナップショットを物理計算機130へ転送した後に、物理計算機130から切り換え準備完了の通知を受信するのを待ち合わせる。さらにスナップショット管理部123は、物理計算機130のスナップショット管理部133から、切り換え準備完了の通知を受信すると、自物理計算機120上の現用系の仮想計算機122を待機系に切り換え、物理計算機130に対して現用系への切り換えを指示する機能を有する。またさらに、スナップショット管理部123は、待機系に切り換えた仮想計算機122の状態を物理計算機130の現用系の仮想計算機の初回スナップショットとして認識し、以後、物理計算機130から受信した上記現用系の仮想計算機のスナップショットに基づいて、自物理計算機130の上記待機系の仮想計算機の状態を上記現用系の仮想計算機の状態に一致させる機能を有する。
物理計算機130側のスナップショット管理部133は、物理計算機120からの仮想計算機の新規生成要求に従って、自物理計算機130に待機系の仮想計算機を新規に生成し、生成完了を物理計算機120へ通知する機能を有する。また、スナップショット管理部133は、仮想計算機の生成完了を通知した後、切り換え準備完了を物理計算機120へ通知する機能を有する。なお、スナップショット管理部133は、物理計算機120から初回スナップショットを受信した後、チェックポイントで取得されたスナップショットを物理計算機120から受信していれば、この受信したスナップショットを用いて待機系の仮想計算機の状態を現用系の仮想計算機の状態に一致させる同期化を行った後、切り換え準備完了を物理計算機120に対して通知する。また、スナップショット管理部133は、切り換え準備完了を通知した後、物理計算機120から現用系への切り換え指示を受信すると、仮想計算機を待機系から現用系に切り換える機能を有する。さらにスナップショット管理部133は、チェックポイントが到来する毎に、現用系となった仮想計算機のスナップショットを取得し、物理計算機120へ転送するスナップショット取得機能を有する。
次に本実施形態にかかるフォールトトレラントシステム100の動作を図1乃至図4を参照して説明する。図2は各々の物理計算機110のスナップショット管理部113の処理の一例を示すフローチャート、図3は物理計算機120のスナップショット管理部123の処理の一例を示すフローチャート、図4は物理計算機130のスナップショット管理部133の処理の一例を示すフローチャートである。
初期の状態においては、各々の物理計算機110の仮想計算機112は現用系として動作し、物理計算機120の仮想計算機122は待機系として動作している。各々の物理計算機110のハイパーバイザ111が有するスナップショット管理部113は、自物理計算機110上の現用系の仮想計算機112の全メモリ内容を含む初回スナップショットを生成し、待機系の物理計算機120へ転送する(図2のステップS101)。待機系の物理計算機120のハイパーバイザ121が有するスナップショット管理部121は、上記初回スナップショットを受信し、自物理計算機120上に待機系の仮想計算機122を新規に生成する。その後、各々の物理計算機110のハイパーバイザ111が有するスナップショット管理部113は、チェックポイントが到来したか否かを検出する(図2のS102)。チェックポイントとは、現用系の仮想計算機112と待機系の仮想計算機122との同期を採るタイミングである。チェックポイントの検出方法は任意である。例えば、予め設定された時間周期T1毎にチェックポイントが到来したものと検出して良い。以下、物理計算機110−iが時刻tで検出したチェックポイントをCTitと記す。
スナップショット管理部113は、チェックポイントCTitを検出すると、自物理計算機110−iの仮想計算機(現用系)112のスナップショットを取得し、ネットワーク140経由で物理計算機120へ送信する(S103)。送信されるスナップショットには、他の仮想計算機112のスナップショットと区別できるように、フォールトトレラントシステム100で一意な識別情報が付加される。
スナップショット管理部113は、スナップショットの送信が完了すると、ステップS102に戻り、次のチェックポイントの到来を検出する。
物理計算機120のハイパーバイザ121が有するスナップショット管理部123は、物理計算機110−iからスナップショットを受信すると(図3のS111)、この受信したスナップショットを用いて、仮想計算機(待機系)122−iの状態を仮想計算機(現用系)112−iの状態に一致させる(S112)。具体的には、スナップショット管理部123は、仮想計算機122−iに割り当てられている物理計算機120のメインメモリを、受信したスナップショットに含まれるページで上書きする。
またスナップショット管理部123は、複数の現用系の物理計算機110における障害の有無を検出する(S113)。障害の検出方法は任意である。例えば、スナップショット管理部123は、各々の物理計算機110からネットワーク140経由で物理計算機120に対して一定周期で送信される特定の信号(例えばハートビート信号)の受信の有無を検出することによって障害の有無を検出して良い。
スナップショット管理部123は、何れかの物理計算機110−iの障害を検出すると、自物理計算機120の対応する仮想計算機122−iを待機系から現用系へ切り換える(S114)。
次にスナップショット管理部123は、物理計算機130に対して、上記現用系となった仮想計算機122−iに対して待機系となる仮想計算機の生成を要求する(S115)。具体的には、スナップショット管理部123は、現用系の仮想計算機122−iを一時的に停止してその全メモリのコピーを含むスナップショットを取得し、この取得したスナップショットを初回のスナップショットとして添えて仮想計算機の新規生成を物理計算機130に対して要求する。そして、スナップショット管理部123は、要求先の物理計算機130から仮想計算機の生成完了の通知を受信するのを待ち合わせる(S116)。スナップショット管理部123は、仮想計算機の生成完了の通知を物理計算機130から受信すると(S116でYES)、上記初回スナップショット以降に上記現用系の仮想計算機122−iのチェックポイントで取得されたスナップショットがあるか否かを判定する(S117)。若し、あれば当該スナップショットを物理計算機130へ転送し(S118)、物理計算機130から切り換え準備完了の通知を受信するのを待ち合わせる(S119)。また、スナップショットがなければ(S117でNO)、ステップS118をスキップし、物理計算機130から切り換え準備完了の通知を受信するのを待ち合わせる(S119)。スナップショット管理部123は、要求先の物理計算機130から切り換え準備完了の通知を受信すると(S119でYES)、仮想計算機122−iのステータスを現用系から待機系に切り換え(S120)、物理計算機130に対して仮想計算機を待機系から現用系へ切り換えるように指示する(S121)。このとき、スナップショット管理部123は、待機系に切り換えた仮想計算機122−iの状態を、物理計算機130の後述する現用系の仮想計算機の初回のスナップショットとして認識する。これは、物理計算機120から物理計算機130への仮想計算機122−iの初回スナップショットのコピー直後には、物理計算機120の仮想計算機122−iと物理計算機130に生成される仮想計算機のメモリ状態が完全に一致しているためである。また、その後にチェックポイントによって仮想計算機122−iのスナップショットが取得されていても、それらが物理計算機120から物理計算機130へ送信されて、後述するように物理計算機130上に生成された仮想計算機のメモリ状態に反映される、すなわち同期化されるためである。
以後、スナップショット管理部123は、ステップS111に戻る。このため、物理計算機130から後述する現用系の仮想計算機の2回目以降のスナップショットを受信すると、この受信したスナップショットにより、待機系となった仮想計算機122−iの状態を更新することになる。
他方、物理計算機130側のスナップショット管理部133は、物理計算機120から初回のスナップショットを含む仮想計算機の新規生成要求を受信すると(図4のS131)、自物理計算機130に待機系の仮想計算機を新たに生成する(S132)。仮想計算機の生成は、具体的には、自物理計算機130のメインメモリに新たな仮想計算機のメモリ領域を確保し、この確保したメモリ領域に受信した初回スナップショットを書き込むことで行われる。
次に、スナップショット管理部133は、現用系が動作中の物理計算機120に対し仮想計算機の生成完了を通知する(S133)。次に、スナップショット管理部133は、現用系が動作中の物理計算機120からスナップショットを受信したか否かを判定し(S134でYES)、受信したならば、受信したスナップショットを用いて待機系の仮想計算機の状態を現用系の仮想計算機の状態に一致させる同期化を行い(S135)、切り換え準備完了を物理計算機120に対して通知して(S136)、現用系への切り換え指示を受信するのを待ち合わせる(S137)。一方、スナップショットを受信していない場合には、スナップショット管理部133は、ステップS135の処理をスキップし、切り換え準備完了を物理計算機120に対して通知して(S136)、現用系への切り換え指示を受信するのを待ち合わせる(S137)。次に、スナップショット管理部133は、物理計算機120から現用系への切り換え指示を受信すると、仮想計算機のステータスを待機系から稼働系に切り換える(S138)。
その後、スナップショット管理部133は、チェックポイントが到来する毎に(S139)、現用系の仮想計算機のスナップショットを取得し、2回目以降のスナップショットとして物理計算機120へ転送する(S140)。
図5乃至図7は、現用系の物理計算機110−1に障害が発生した際、その物理計算機110−1上の現用系の仮想計算機112−1が実行していた業務処理を、物理計算機130の後述する仮想計算機132が実行するように至るまでの推移を模式的に示している。
まず図5に示すように、物理計算機110−1に障害が発生すると、物理計算機120の仮想計算機122−1が待機系から現用系へ切り換えられ、仮想計算機122−1が、仮想計算機112−1で実行されていた業務処理を実行する。続いて、図6に示すように、物理計算機120の現用系の仮想計算機122−1に対して待機系となる仮想計算機132が物理計算機130に新たに生成される。この仮想計算機132の新規生成時には、仮想計算機122−1の全メインメモリの記憶データを含む初回スナップショットが物理計算機120から物理計算機130へネットワーク140経由で送信される。そして、物理計算機130に待機系の仮想計算機132が生成され、物理計算機120から物理計算機130へ現用系の切り換え指示があると、図7に示すように、仮想計算機132が待機系から現用系に切り換えられると同時に、物理計算機120の稼働計算機122−1が現用系から待機系に切り換えられる。
以上は、物理計算機110−1に障害が発生した場合の動作であるが、他の物理計算機110−2〜210−nに障害が発生した場合にも同様の動作が行われる。
また、以上は、物理計算機110に障害が発生した場合の動作であるが、物理計算機110の交換等を行うために物理計算機110をシステムから切り離す際にも、同様の手順で、物理計算機110が実行している業務処理を他の物理計算機130で実行させるようにすることが可能である。
以上説明したように本実施形態によれば、以下のような効果が得られる。
経済的な運用が可能である。その理由は、複数の現用系の物理計算機110に対して共通な1つの物理計算機120を備えていればよく、待機系の物理計算機を1対1に備えておく必要がないためである。
サービス中断時間を短縮することができる。その理由は、物理計算機120上に既に生成されている仮想計算機122を待機系から現用系へ切り換えるのに要する時間は、物理計算機に新たな仮想計算機を生成するのに要する時間に比べて短いためである。
現用系の物理計算機110の障害後も高可用性を維持することができる。その理由は、物理計算機120の現用系となった仮想計算機122に対して待機系となる仮想計算機132を、他の物理計算機130に生成し、仮想計算機の冗長性を維持するためである。
物理計算機120の負荷を軽減することができる。その理由は、新たに待機系となった仮想計算機132を現用系に切り換えると同時に、物理計算機120の現用系の仮想計算機122を待機系に切り換えることによって、物理計算機120に現用系の仮想計算機が長く存在しないようにしているためである。
現用系となった仮想計算機132の初回スナップショットを、フェイルオーバ先の物理計算機130から待機系の物理計算機120へ転送してコピーする処理を省略することができ、初回スナップショットの送受信に伴う物理計算機120、130の負荷を軽減することができる。その理由は、物理計算機120のスナップショット管理部123は、待機系に切り換えた仮想計算機122の状態を、現用系に切り換わった仮想計算機132の初回スナップショットとして認識するためである。
[第2の実施形態]
図8を参照すると、本発明の第2の実施形態にかかるフォールトトレラントシステム200は、図1に示した本発明の第1の実施形態にかかるフォールトトレラントシステム100と比較して、他の物理計算機130がm台(mは2以上の整数)存在する点と、物理計算機120のスナップショット管理部123が選択手段124を有する点で、相違する。
スナップショット管理部123の選択手段124は、m台の物理計算機130の中から新たに仮想計算機を生成する一の物理計算機を選択する機能を有する。選択の方法は任意である。例えば、選択手段124は、物理計算機の負荷率に基づいて選択して良い。物理計算機の負荷率は、当該物理計算機のCPUの負荷率、メモリの負荷率、入出力の負荷率の何れか1つ、または2つ、または全てを考慮して決定される値であって良い。例えば、選択手段124は、m台の物理計算機130の各々に対して、直近の負荷率(平均値あるいは最大値等)を問い合わせ、負荷率が最も低い物理計算機130を選択して良い。あるいは、負荷率が予め定められた閾値以下の物理計算機130を選択して良い。m台の物理計算機130の直近の負荷率が、図示しない他の計算機で測定されている場合、当該計算機から物理計算機130の負荷率を取得するようにしても良い。
ここで、初期状態においては、各々の物理計算機110の仮想計算機112は現用系として動作し、物理計算機120の仮想計算機122は待機系として動作する。また物理計算機130には、物理計算機110、120と同じフォールトトレラントグループを構成する現用系および待機系の仮想計算機は存在しない。但し、物理計算機130には、他のフォールトトレラントグループに属する待機系の仮想計算機や、仮想計算機以外のアプリケーションプログラムが存在していても構わない。そして、何れかの現用系の仮想計算機112−iが動作する物理計算機110−iにハードウェア障害等の障害が発生すると、物理計算機120上の対応する仮想計算機122−iが待機系から現用系に切り換わり、障害に遭遇した仮想計算機112−iが行っている処理を現用系となった仮想計算機122−iで継続して実行する。さらに、現用系となった仮想計算機122−iに対して待機系となる新規な仮想計算機を何れかの物理計算機130に生成し、そして、物理計算機120の負荷を軽減するために、物理計算機120の現用系の仮想計算機122−iを待機系に、物理計算機130上に生成した待機系の仮想計算機を現用系に切り換えるようにしている。
図9は物理計算機120のスナップショット管理部123の処理の一例を示すフローチャートである。なお、物理計算機110、130のスナップショット管理部113、133の処理の流れは、図2、図4と同じである。以下、本実施形態にかかるフォールトトレラントシステム200の動作を、第1の実施形態との相違点を中心に説明する。
初期の状態において、各々の物理計算機110のハイパーバイザ111が有するスナップショット管理部113は、第1の実施形態と同様の動作を行う。具体的には、チェックポイントが到来したか否かを検出し(図2のS102)、或るチェックポイントCTitを検出すると、自物理計算機110−iの仮想計算機(現用系)112のスナップショットを取得し、ネットワーク140経由で物理計算機120へ送信する(S103)。そして、スナップショット管理部113は、ステップS102に戻り、次のチェックポイントの到来を検出する。
物理計算機120のハイパーバイザ121が有するスナップショット管理部123は、物理計算機110−iからスナップショットを受信すると(図9のS211)、この受信したスナップショットを用いて、仮想計算機(待機系)122−iの状態を仮想計算機(現用系)112−iの状態に一致させる(S212)。具体的には、スナップショット管理部123は、仮想計算機122−iに割り当てられている物理計算機120のメインメモリのメモリ領域を、受信したスナップショットに含まれるページで上書きする。またスナップショット管理部123は、複数の現用系の物理計算機110における障害の有無を検出する(S213)。そして、何れかの物理計算機110−iの障害を検出すると、自物理計算機120の対応する仮想計算機122−iを待機系から現用系へ切り換える(S214)。これにより、新たに現用系となった仮想計算機122−iが、仮想計算機112−iに代わって、サービスを提供する。すなわち、フェイルオーバが行われる。
ここまでの動作は、第1の実施形態と同じである。
次にスナップショット管理部123は、新たに待機系として使用する1台の物理計算機をm台の物理計算機130の中から選択する(S215)。選択の方法は任意であるが、ここでは、物理計算機の負荷率に基づいて選択するものとする。この場合、スナップショット管理部123の選択手段124は、例えば、m台の物理計算機130の各々に対して、ネットワーク140経由で直近の負荷率(平均値あるいは最大値等)を問い合わせ、負荷率が最も低い物理計算機130、あるいは、負荷率が予め定められた閾値以下の物理計算機130を選択する。ここで、選択した物理計算機を物理計算機130−j(jは1〜mの何れか)と記す。
次に、スナップショット管理部123は、選択した物理計算機130−jに対して、上記現用系となった仮想計算機122−iの待機系となる仮想計算機の生成を要求する(S216)。具体的には、スナップショット管理部123は、現用系の仮想計算機122−iを一時的に停止してその初回スナップショットを取得し、この取得した初回スナップショットを添えて仮想計算機の新規生成を物理計算機130−jに対して要求する。
以降のスナップショット管理部123のステップS217〜S222の動作は、第1の実施形態における図3のステップS116〜S121の動作と同じである。
他方、選択された物理計算機130−j側のスナップショット管理部133−jは、物理計算機120から初回のスナップショットを含む仮想計算機の生成要求を受信すると(図4のS131)、自物理計算機130−jに待機系の仮想計算機を新たに生成する(S132)。仮想計算機の生成は、具体的には、自物理計算機130−iのメインメモリに新たな仮想計算機のメモリ領域を確保し、この確保したメモリ領域に受信したスナップショットを書き込むことで行われる。以降のスナップショット管理部133−jの動作は、第1の実施形態における動作と同じである。
図10乃至図12は、現用系の物理計算機110−1に障害が発生した際、その物理計算機110−1上の現用系の仮想計算機112−1が実行していた業務処理を、物理計算機130−1の仮想計算機132−1が実行するように至るまでの推移を模式的に示している。
まず図10に示すように、物理計算機110−1に障害が発生すると、物理計算機120の仮想計算機122−1が待機系から現用系へ切り換えられ、仮想計算機122−1が、仮想計算機112−1で実行されていた業務処理を実行する。続いて、図11に示すように、例えば負荷率の最も小さな物理計算機130−1が新たな待機系に選択され、現用系の仮想計算機122−1の待機系となる仮想計算機132−1が物理計算機130−1に新たに生成される。この仮想計算機132−1の新規生成時には、仮想計算機122−1の全メインメモリの記憶データを含む初回スナップショットが物理計算機120から物理計算機130−1へネットワーク140経由で送信される。そして、物理計算機130−1に待機系の仮想計算機132−1が生成され、物理計算機120から物理計算機130へ現用系の切り換え指示があると、図12に示すように、仮想計算機132−1が待機系から現用系に切り換えられると同時に、物理計算機120の稼働計算機122−1が現用系から待機系に切り換えられる。
以上は、物理計算機110−1に障害が発生した場合の動作であるが、他の物理計算機110−2〜110−nや新たに待機系となった物理計算機130−1に障害が発生した場合にも同様の動作が行われる。
また、以上は、物理計算機110に障害が発生した場合の動作であるが、物理計算機110の交換等を行うために物理計算機110をシステムから切り離す際にも、同様の手順で、物理計算機110が実行している業務処理を他の物理計算機130で実行させるようにすることが可能である。
以上説明したように本実施形態によれば、第1の実施形態と同様の効果が得られると共に、以下のような効果が得られる。
新たな仮想計算機を生成する他の物理計算機を複数台の物理計算機130の中から負荷率を基準に選択する構成によれば、負荷率が閾値以上の物理計算機を選択してしまったり、或いは閾値以下であっても他の物理計算機130に比べて負荷率の相対的に大きな物理計算機を選択してしまうことがなくなる。このため、選択した物理計算機上に仮想計算機を生成して現用系として稼働させた場合に、負荷が閾値より遥かに高まって動作が不安定になったり、負荷分散が図れないといった問題を解消することができる。
[第3の実施形態]
図13を参照すると、本発明の第3の実施形態にかかるフォールトトレラントシステム300は、第1の計算機310と、第2の計算機320とを有する。第1の計算機310は、現用系の仮想計算機311を有する。
初期の状態において、第1の計算機310では現用系の仮想計算機311が稼働している。冗長性を維持する際、以下のような動作が行われる。
第1の計算機321は、現用系の仮想計算機311の全メモリを含む初回スナップショットを第2の計算機320に送信して新たな待機系の仮想計算機321を生成する。次に、第1の計算機310は、自計算機上の仮想計算機311を待機系に切り換えて、第2の計算機320に対して上記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の上記待機系の仮想計算機の状態を第2の計算機320上の現用系の仮想計算機322の初回のスナップショットとして認識する。そして、第1の計算機310は、以後、第2の計算機320から受信するスナップショットに基づいて自計算機の待機系の仮想計算機312の状態を更新する。
このように本実施形態によれば、第2の計算機320上の現用系の仮想計算機322に対して新たに同期先となる待機系の仮想計算機312を設定して現用系の仮想計算機322と待機系の仮想計算機312との同期を開始する際、現用系の仮想計算機322の初回スナップショットのコピーを省くことができ、少ない負荷で可用性を維持することができる。その理由は、第1の計算機310は、待機系に切り換えた仮想計算機312の状態を、仮想計算機322の初回スナップショットとして認識するためである。
100…フォールトトレラントシステム
110…物理計算機(第3の物理計算機)
111…ハイパーバイザ
112…仮想計算機
113…スナップショット管理部
120…物理計算機(第1の物理計算機)
121…ハイパーバイザ
122…仮想計算機
123…スナップショット管理部
124…選択手段
130…物理計算機(第2の物理計算機)
131…ハイパーバイザ
133…スナップショット管理部

Claims (17)

  1. 現用系の仮想計算機が稼働する第1の計算機と、
    待機系の仮想計算機が稼働する第2の計算機と
    を有し、
    前記第1の計算機は、前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第2の計算機に送信して新たな前記待機系の仮想計算機を生成し、自計算機上の前記仮想計算機を待機系に切り換えて前記第2の計算機に対して前記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の前記待機系の仮想計算機の状態を前記第2の計算機上の前記現用系の仮想計算機の初回のスナップショットとして認識し、以後、前記第2の計算機から受信するスナップショットに基づいて自計算機の前記待機系の仮想計算機の状態を更新する、
    フォールトトレラントシステム。
  2. 前記第1の計算機は、
    前記現用系の仮想計算機の初回スナップショットを取得して前記第2の計算機へ送信し、以後、第1のチェックポイントが到来する毎に、前記現用系の前記仮想計算機のスナップショットを取得して前記第2の計算機へ送信する第1のスナップショット管理手段
    を有し、
    前記第2の計算機は、
    前記第1の計算機から受信した前記現用系の仮想計算機の初回スナップショットに基づいて、自計算機上に待機系の仮想計算機を新たに生成し、生成完了の通知を前記第1の計算機へ送信する第2のスナップショット管理手段
    を有し、
    前記第1のスナップショット管理手段は、前記生成完了の通知を前記第2の計算機から受信すると、前記第1のチェックポイントで取得された前記スナップショットがあれば当該スナップショットを前記第2の計算機へ送信した後、切り換え準備完了の通知を前記第2の計算機から受信するのを検出し、
    前記第2のスナップショット管理手段は、前記生成完了の通知の前記送信後、前記第1のチェックポイントで取得された前記スナップショットを受信していれば当該スナップショットに基づいて自計算機の前記待機系の仮想計算機の状態を前記現用系の仮想計算機の状態に一致させた後に前記切り換え準備完了の通知を前記第1の計算機へ通知し、現用系への切り換え指示を前記第1の計算機から受信するのを検出し、
    前記第1のスナップショット管理手段は、前記切り換え準備完了の通知を前記第2の計算機から受信すると、前記現用系の仮想計算機を待機系に切り換えて前記第2の計算機に対して前記現用系への切り換え指示を送信し、
    前記第2のスナップショット管理手段は、前記現用系への切り換え指示を前記第1の計算機から受信すると、前記待機系の仮想計算機を現用系に切り換え、以後、第2のチェックポイントが到来する毎に、前記現用系の仮想計算機のスナップショットを取得して前記第1の計算機へ送信し、
    前記第1のスナップショット管理手段は、前記第1の計算機の前記待機系の仮想計算機の状態を前記第2の計算機の前記現用系の仮想計算機の初回スナップショットとして認識し、以後、前記第2の計算機から受信した前記現用系の仮想計算機のスナップショットに基づいて、前記第1の計算機の前記待機系の仮想計算機の状態を前記現用系の仮想計算機の状態に一致させる
    請求項1に記載のフォールトトレラントシステム。
  3. 前記第2の計算機が複数存在する場合、前記第1の計算機の前記第1のスナップショット管理手段は、前記第2の計算機の負荷率を選択の基準として、前記複数の第2の計算機の中から一の前記第2の計算機を選択する
    請求項2に記載のフォールトトレラントシステム。
  4. 前記第1のスナップショット管理手段は、前記複数の第2の計算機の中から負荷率が最小の一の前記第2の計算機を選択する
    請求項3に記載のフォールトトレラントシステム。
  5. 前記第1のスナップショット管理手段は、前記複数の第2の計算機の中から負荷率が閾値以下の一の前記第2の計算機を選択する
    請求項3に記載のフォールトトレラントシステム。
  6. それぞれ現用系の仮想計算機が稼働する複数の第3の計算機を有し、
    前記第1の計算機は、前記複数の第3の計算機の前記現用系の仮想計算機に対応する複数の待機系の仮想計算機を有し、前記第3の計算機の障害時、前記稼働系の仮想計算機を現用系に切り換え、前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第2の計算機に送信して新たな待機系の仮想計算機を生成する前記処理では、該切り換え後の現用系の仮想計算機を対象として、全メモリを含む初回スナップショットの前記第2の計算機への送信による新たな待機系の仮想計算機の生成を行う
    請求項1乃至5の何れかに記載のフォールトトレラントシステム。
  7. 1つ以上の待機系の仮想計算機が稼働する第2の計算機に接続され、
    現用系の仮想計算機と、
    スナップショット管理手段と
    を有し、
    前記スナップショット管理手段は、前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第2の計算機に送信して新たな前記待機系の仮想計算機を生成し、自計算機上の前記仮想計算機を待機系に切り換えて前記第2の計算機に対して前記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の前記待機系の仮想計算機の状態を前記第2の計算機上の前記現用系の仮想計算機の初回のスナップショットとして認識し、以後、前記第2の計算機から受信するスナップショットに基づいて自計算機の前記待機系の仮想計算機の状態を更新する、
    計算機。
  8. 前記スナップショット管理手段は、
    前記現用系の仮想計算機の初回スナップショットを取得して前記第2の計算機へ送信し、以後、第1のチェックポイントが到来する毎に、前記現用系の前記仮想計算機のスナップショットを取得して前記第2の計算機へ送信し、
    前記生成完了の通知を前記第2の計算機から受信すると、前記第1のチェックポイントで取得された前記スナップショットがあれば当該スナップショットを前記第2の計算機へ送信した後、切り換え準備完了の通知を前記第2の計算機から受信するのを検出し、
    前記切り換え準備完了の通知を前記第2の計算機から受信すると、前記現用系の仮想計算機を待機系に切り換えて前記第2の計算機に対して前記現用系への切り換え指示を送信し、
    前記第1の計算機の前記待機系の仮想計算機の状態を前記第2の計算機の前記現用系の仮想計算機の初回スナップショットとして認識し、以後、前記第2の計算機から受信した前記現用系の仮想計算機のスナップショットに基づいて、前記第1の計算機の前記待機系の仮想計算機の状態を前記現用系の仮想計算機の状態に一致させる
    請求項7に記載の計算機。
  9. 前記第2の計算機が複数存在する場合、前記スナップショット管理手段は、前記第2の計算機の負荷率を選択の基準として、前記複数の第2の計算機の中から一の前記第2の計算機を選択する
    請求項7または8に記載の計算機。
  10. 前記スナップショット管理手段は、前記複数の第2の計算機の中から負荷率が最小の一の前記第2の計算機を選択する
    請求項9に記載の計算機。
  11. 前記スナップショット管理手段は、前記複数の第2の計算機の中から負荷率が閾値以下の一の前記第2の計算機を選択する
    請求項9に記載の計算機。
  12. 前記第1の計算機は、それぞれ現用系の仮想計算機が稼働する複数の第3の計算機における前記現用系の仮想計算機に対応する複数の待機系の仮想計算機を有し、
    前記スナップショット管理手段は、前記第3の計算機の障害時、前記稼働系の仮想計算機を現用系に切り換え、前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第2の計算機に送信して新たな待機系の仮想計算機を生成する前記処理では、該切り換え後の現用系の仮想計算機を対象として、全メモリを含む初回スナップショットの前記第2の計算機への送信による新たな待機系の仮想計算機の生成を行う
    請求項7乃至11の何れかに記載の計算機。
  13. 現用系の仮想計算機が稼働する第1の計算機に接続され、
    待機系の仮想計算機と、
    スナップショット管理手段と
    を有し、
    前記スナップショット管理手段は、前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第1の計算機から受信して新たな前記待機系の仮想計算機を生成し、前記第1の計算機上の前記仮想計算機が待機系に切り換えられた後に前記第1の計算機から送信される、前記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を受信すると、前記待機系の仮想計算機を前記現用系の仮想計算機へ切り換え、該切り換え後の前記現用系の仮想計算機の初回のスナップショットを前記第1の計算機へ送信する処理を省略し、以後、第2のチェックポイントが到来する毎に、前記現用系の前記仮想計算機のスナップショットを取得して前記第1の計算機へ送信する
    計算機。
  14. 前記チェックポイント管理手段は、
    前記第1の計算機から受信した前記現用系の仮想計算機の初回スナップショットに基づいて、自計算機上に待機系の仮想計算機を新たに生成し、生成完了の通知を前記第1の計算機へ送信し、
    前記生成完了の通知の前記送信後、前記第1の計算機から第1のチェックポイントで取得されたスナップショットを受信していれば当該スナップショットに基づいて自計算機の前記待機系の仮想計算機の状態を前記現用系の仮想計算機の状態に一致させた後に切り換え準備完了の通知を前記第1の計算機へ通知し、現用系への切り換え指示を前記第1の計算機から受信するのを検出し、
    前記現用系への切り換え指示を前記第1の計算機から受信すると、前記待機系の仮想計算機を現用系に切り換え、該切り換え後の前記現用系の仮想計算機の初回のスナップショットを前記第1の計算機へ送信する処理を省略し、以後、前記第2のチェックポイントが到来する毎に、前記現用系の仮想計算機のスナップショットを取得して前記第1の計算機へ送信する
    請求項13に記載の計算機。
  15. 現用系の仮想計算機が稼働する第1の計算機と、待機系の仮想計算機が稼働する第2の計算機とを有するフォールトトレラントシステムの制御方法であって、
    前記第1の計算機が、前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第2の計算機に送信して新たな前記待機系の仮想計算機を生成し、自計算機上の前記仮想計算機を待機系に切り換えて前記第2の計算機に対して前記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の前記待機系の仮想計算機の状態を前記第2の計算機上の前記現用系の仮想計算機の初回のスナップショットとして認識し、以後、前記第2の計算機から受信するスナップショットに基づいて自計算機の前記待機系の仮想計算機の状態を更新する、
    フォールトトレラントシステム制御方法。
  16. 1つ以上の待機系の仮想計算機が稼働する第2の計算機に接続された計算機を、
    現用系の仮想計算機と、
    前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第2の計算機に送信して新たな待機系の仮想計算機を生成し、自計算機上の前記仮想計算機を待機系に切り換えて前記第2の計算機に対して前記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を送信し、自計算機上の前記待機系の仮想計算機の状態を前記第2の計算機上の前記現用系の仮想計算機の初回のスナップショットとして認識し、以後、前記第2の計算機から受信するスナップショットに基づいて自計算機の前記待機系の仮想計算機の状態を更新するスナップショット管理手段と
    して機能させるためのプログラム。
  17. 現用系の仮想計算機が稼働する第1の計算機に接続された計算機を、
    待機系の仮想計算機と、
    前記現用系の仮想計算機の全メモリを含む初回スナップショットを前記第1の計算機から受信して新たな前記待機系の仮想計算機を生成し、前記第1の計算機上の前記仮想計算機が待機系に切り換えられた後に前記第1の計算機から送信される、前記待機系の仮想計算機を現用系の仮想計算機へ切り換える指示を受信すると、前記待機系の仮想計算機を前記現用系の仮想計算機へ切り換え、該切り換え後の前記現用系の仮想計算機の初回のスナップショットを前記第1の計算機へ送信する処理を省略し、以後、第2のチェックポイントが到来する毎に、前記現用系の前記仮想計算機のスナップショットを取得して前記第1の計算機へ送信するスナップショット管理手段と
    して機能させるためのプログラム。
JP2013007967A 2013-01-21 2013-01-21 フォールトトレラントシステム Active JP6291711B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013007967A JP6291711B2 (ja) 2013-01-21 2013-01-21 フォールトトレラントシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013007967A JP6291711B2 (ja) 2013-01-21 2013-01-21 フォールトトレラントシステム

Publications (2)

Publication Number Publication Date
JP2014139706A true JP2014139706A (ja) 2014-07-31
JP6291711B2 JP6291711B2 (ja) 2018-03-14

Family

ID=51416398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013007967A Active JP6291711B2 (ja) 2013-01-21 2013-01-21 フォールトトレラントシステム

Country Status (1)

Country Link
JP (1) JP6291711B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134110A (ja) * 2015-01-22 2016-07-25 日本電信電話株式会社 ライブマイグレーション実行装置およびその動作方法
JP2020508022A (ja) * 2017-02-16 2020-03-12 カーサシステムズ インコーポレイテッドCasa Systems,Inc. スケーラブルな進化したパケットコア
JP2020194521A (ja) * 2019-05-24 2020-12-03 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 仮想マシンを起動させるための方法、装置、デバイス及び媒体
JP2021504838A (ja) * 2017-11-28 2021-02-15 マイクロソフト テクノロジー ライセンシング,エルエルシー 可用性が高いクラウド・サービスの提供

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03139736A (ja) * 1989-10-26 1991-06-13 Oki Electric Ind Co Ltd 情報処理システムにおける系切替方式
JPH06348527A (ja) * 1993-06-14 1994-12-22 Toshiba Corp 多重要素処理システム
JPH08272755A (ja) * 1995-03-29 1996-10-18 Fujitsu Ltd プロセッサ切替え装置
JP2004032224A (ja) * 2002-06-25 2004-01-29 Hitachi Ltd サーバ引継システムおよびその方法
JP2006178552A (ja) * 2004-12-21 2006-07-06 Hitachi Ltd 仮想計算機システム
JP2007156679A (ja) * 2005-12-02 2007-06-21 Hitachi Ltd サーバの障害回復方法及びデータベースシステム
JP2007183701A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd スナップショット再起動方法
JP2009080569A (ja) * 2007-09-25 2009-04-16 Oki Electric Ind Co Ltd データ同期システム、方法及びプログラム、並びにサーバ
JP2011008702A (ja) * 2009-06-29 2011-01-13 Toyota Motor Corp 故障処理装置
JP2011159222A (ja) * 2010-02-03 2011-08-18 Nec Corp サーバシステム及びサーバシステムの制御方法
US20120266018A1 (en) * 2011-04-11 2012-10-18 Nec Corporation Fault-tolerant computer system, fault-tolerant computer system control method and recording medium storing control program for fault-tolerant computer system
WO2012164689A1 (ja) * 2011-05-31 2012-12-06 株式会社日立製作所 ジョブ管理サーバ及びジョブ管理方法
US20130036324A1 (en) * 2011-08-04 2013-02-07 Fujitsu Limited Server, server system, and method for controlling recovery from a failure

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03139736A (ja) * 1989-10-26 1991-06-13 Oki Electric Ind Co Ltd 情報処理システムにおける系切替方式
JPH06348527A (ja) * 1993-06-14 1994-12-22 Toshiba Corp 多重要素処理システム
JPH08272755A (ja) * 1995-03-29 1996-10-18 Fujitsu Ltd プロセッサ切替え装置
JP2004032224A (ja) * 2002-06-25 2004-01-29 Hitachi Ltd サーバ引継システムおよびその方法
JP2006178552A (ja) * 2004-12-21 2006-07-06 Hitachi Ltd 仮想計算機システム
JP2007156679A (ja) * 2005-12-02 2007-06-21 Hitachi Ltd サーバの障害回復方法及びデータベースシステム
US20100088543A1 (en) * 2006-01-04 2010-04-08 Hitachi, Ltd. Restarting Mehtod Using a Snapshot
JP2007183701A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd スナップショット再起動方法
JP2009080569A (ja) * 2007-09-25 2009-04-16 Oki Electric Ind Co Ltd データ同期システム、方法及びプログラム、並びにサーバ
JP2011008702A (ja) * 2009-06-29 2011-01-13 Toyota Motor Corp 故障処理装置
JP2011159222A (ja) * 2010-02-03 2011-08-18 Nec Corp サーバシステム及びサーバシステムの制御方法
US20120266018A1 (en) * 2011-04-11 2012-10-18 Nec Corporation Fault-tolerant computer system, fault-tolerant computer system control method and recording medium storing control program for fault-tolerant computer system
JP2012221321A (ja) * 2011-04-11 2012-11-12 Nec Corp フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム
WO2012164689A1 (ja) * 2011-05-31 2012-12-06 株式会社日立製作所 ジョブ管理サーバ及びジョブ管理方法
US20130036324A1 (en) * 2011-08-04 2013-02-07 Fujitsu Limited Server, server system, and method for controlling recovery from a failure
JP2013037433A (ja) * 2011-08-04 2013-02-21 Fujitsu Ltd サーバ、サーバシステムおよびサーバの冗長切り替え方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134110A (ja) * 2015-01-22 2016-07-25 日本電信電話株式会社 ライブマイグレーション実行装置およびその動作方法
JP2020508022A (ja) * 2017-02-16 2020-03-12 カーサシステムズ インコーポレイテッドCasa Systems,Inc. スケーラブルな進化したパケットコア
JP7109148B2 (ja) 2017-02-16 2022-07-29 カーサシステムズ インコーポレイテッド スケーラブルな進化したパケットコア
JP2021504838A (ja) * 2017-11-28 2021-02-15 マイクロソフト テクノロジー ライセンシング,エルエルシー 可用性が高いクラウド・サービスの提供
JP2020194521A (ja) * 2019-05-24 2020-12-03 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 仮想マシンを起動させるための方法、装置、デバイス及び媒体

Also Published As

Publication number Publication date
JP6291711B2 (ja) 2018-03-14

Similar Documents

Publication Publication Date Title
US11144415B2 (en) Storage system and control software deployment method
EP2883147B1 (en) Synchronous local and cross-site failover in clustered storage systems
CN107111457B (zh) 跨集群冗余配置中的非间断的控制器替换
US8307363B2 (en) Virtual machine system, restarting method of virtual machine and system
US9389976B2 (en) Distributed persistent memory using asynchronous streaming of log records
US8230256B1 (en) Method and apparatus for achieving high availability for an application in a computer cluster
US11436097B1 (en) Technique for efficient data failover in a multi-site data replication environment
CN102594858B (zh) 云存储环境中的镜像解决方案
US10430217B2 (en) High availability using dynamic quorum-based arbitration
US6993635B1 (en) Synchronizing a distributed mirror
US9398094B2 (en) Data transfer device
CN104391764A (zh) 一种计算机容错方法及系统
JP3887130B2 (ja) 高可用性計算機システム及び同システムにおけるデータバックアップ方法
US8682852B1 (en) Asymmetric asynchronous mirroring for high availability
JP6291711B2 (ja) フォールトトレラントシステム
JP4320314B2 (ja) 計算機システム、同期化処理方法、およびプログラム
US9454445B2 (en) Fault tolerant server
JP2012190175A (ja) フォールトトレラントシステム、サーバ、フォールトトレラント化方法およびプログラム
CN111400086A (zh) 虚拟机容错的实现方法和系统
JP6056408B2 (ja) フォールトトレラントシステム
US20220342775A1 (en) Storage system, storage node virtual machine restore method, and recording medium
US20210294701A1 (en) Method of protecting data in hybrid cloud
US11238010B2 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
CN114035999A (zh) 一种虚拟机的数据迁移方法
Zhang et al. ZooKeeper+: The Optimization of Election Algorithm in Complex Network Circumstance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170413

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171102

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20171113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180129

R150 Certificate of patent or registration of utility model

Ref document number: 6291711

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150