(57)【要約】【課題】  稼働系装置から予備系装置への処理の引き継ぎ（切り替え）が発生するまでの待機中において、メモリ同期に要する予備のリソース量が少ないメモリレプリケーションが可能な情報処理装置などを提供する。【解決手段】  第１の情報処理装置は、第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を通知する複製対象通知部と、複製対象通知部から通知されたメモリ情報を、所定の記憶装置に複製対象メモリ情報として保存し、サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、所定の記憶装置において記憶された複製対象メモリ情報に基づいて、複製対象データを読み出し、読み出した複製対象データを第２の情報処理装置に対して転送するレプリケーション処理部とを有する。【選択図】      図８
2015130134.tif 000002
【特許請求の範囲】
【請求項１】
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を通知する複製対象通知部と、
前記複製対象通知部から通知された前記メモリ情報を、所定の記憶装置に複製対象メモリ情報として保存し、前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて、前記複製対象データを読み出し、読み出した前記複製対象データを第２の情報処理装置に対して転送するレプリケーション処理部と
を含む第１の情報処理装置。
【請求項２】
請求項１記載の第１の情報処理装置において動作する第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データを受信し、前記サービスを提供可能な第２のアプリケーションに対して、前記複製対象データに基づいて、前記サービスを復旧させる復旧処理部
を含む第２の情報処理装置。
【請求項３】
前記第１のアプリケーションが行う前記サービスの継続に影響を与える可能性がある監視対象を監視し、前記監視対象に異常が発生したことを検知したとき、前記切替指示を前記レプリケーション処理部に対して送信する状態管理部
をさらに備える請求項１記載の第１の情報処理装置。
【請求項４】
前記第１のアプリケーションが行う前記サービスの継続に影響を与える可能性がある監視対象を監視し、前記監視対象に異常が発生したことを検知したとき、付記１記載の第１の情報処理装置に対して、前記サービスを他の情報処理装置において実施させることを指示する切替指示を送信する状態管理部
をさらに備える請求項２記載の第２の情報処理装置。
【請求項５】
前記レプリケーション処理部は、前記複製対象メモリ情報を保存する際に、不揮発性記憶装置に前記複製対象メモリ情報を保存し、
さらにブート処理部を備え、
前記ブート処理部は、本装置の起動時に、本装置での前回の終了処理の結果を確認し、前回正常終了していなかった場合には、前記複製対象メモリ情報に基づいて位置を特定した前記複製対象データを保護し、本装置の起動後に新たに起動されたレプリケーション処理部に対して、前記切替指示を送信する請求項１または請求項３記載の第１の情報処理装置。
【請求項６】
請求項１、請求項３、または請求項５の何れかに記載の第１の情報処理装置と、
前記第１の情報処理装置から前記複製対象データを受信する請求項２、または請求項４記載の第２の情報処理装置と
を含む情報処理システム。
【請求項７】
第１の情報処理装置を用いて、
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を、所定の記憶装置に複製対象メモリ情報として保存する事前準備処理を実行し、
前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて読み出した前記複製対象データを第２の情報処理装置に対して転送する転送処理を実行し、
前記第２の情報処理装置を用いて、
前記複製対象データを受信し、
前記サービスを提供可能な第２のアプリケーションに対して、前記複製対象データに基づいて、前記サービスを復旧させる
メモリレプリケーション方法。
【請求項８】
前記事前準備処理の後に、
前記第１のアプリケーションが行う前記サービスの継続に影響を与える可能性がある監視対象を監視し、
前記監視対象に異常が発生したことを検知したとき、前記第１の情報処理装置に対して、前記切替指示を送信する処理をさらに行う
請求項７記載のメモリレプリケーション方法。
【請求項９】
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を通知する複製対象通知処理と、
前記複製対象処理によって通知された前記メモリ情報を、所定の記憶装置に複製対象メモリ情報として保存し、前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて、前記複製対象データを読み出し、読み出した前記複製対象データを第２の情報処理装置に対して転送するレプリケーション処理と
をコンピュータに実行させる第１のコンピュータ・プログラム。
【請求項１０】
請求項９記載の第１のコンピュータ・プログラムを実行する情報処理装置から、第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データを受信し、前記サービスを提供可能な第２のアプリケーションに対して、前記複製対象データに基づいて、前記サービスを復旧させる復旧処理
をコンピュータに実行させる第２のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置（コンピュータ）を用いたメモリレプリケーション技術に関する。
【背景技術】
【０００２】
あるサービスを提供している稼働系の情報処理装置（以下、本明細書では「稼働系装置」と略称する）において障害が発生した場合に、予備系の情報処理装置（以下、本明細書では「予備系装置」と略称する）によってサービスを継続する技術が知られている。その技術の一部として、メモリレプリケーション技術が使われている。メモリレプリケーションは、予備系装置においてサービスを引き継ぐ際に、稼働系装置のメモリに格納された情報を、予備系装置においても利用可能とするメモリ同期の技術である。
【０００３】
仮想化技術を導入した仮想化システムにおいては、あるサービスを提供しているアプリケーションが動作するゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：オペレーティングシステム）に障害が発生した場合、ホストＯＳによってメモリレプリケーションを行うことが一般的である。
【０００４】
関連技術として、特許文献１には、稼働（運用）系サーバ装置においてハードウェア障害が検知される直前の稼働系ゲストＯＳの状態を、待機系サーバ装置において動作する待機系ゲストＯＳに引き継ぐ計算機装置が開示されている。この特許文献１に記載された装置では、稼働系サーバ装置において、同期部、障害検知部、および引き継ぎ制御部が、設けられる。稼働系サーバ装置が正常に動作する間、同期部が、ＩＯ処理毎、または一定周期において、稼働系ゲストＯＳの最新の状態を示すコンテキストを同期データとして、待機系サーバ装置へ通知する。すなわち、同期部は、稼働系サーバ装置において障害が検知されるまでの間、稼働系ゲストＯＳの状態に、待機系ゲストＯＳの状態を一致させるメモリ同期処理を継続的に行う。
【０００５】
障害検知部が、稼働系ゲストＯＳに先んじてハードウェア障害を検知した時点で、引き継ぎ制御部が、障害を認識する前の稼働系ゲストＯＳの状態を示す情報と、障害時に発行されていたＩＯリクエストのコピーとを、外部装置に出力する。待機系ゲストＯＳは、それまでメモリ同期によって保持していた情報に加えて、出力された情報およびリクエストコピーを用いることにより、障害の検知直前における稼働系ゲストＯＳの状態から処理を引き継ぐことができる。
【０００６】
また、特許文献２には、複数の仮想マシン（ゲストＯＳ）を管理するホストＯＳが、異常停止したゲストＯＳを復旧させる方法が開示されている。この特許文献２に記載された方法では、ホストＯＳにおいて動作するスナップショット管理制御部と異常検出部とが設けられる。各ゲストＯＳが正常に動作している間、スナップショット管理制御部が、指定時刻または所定の時間間隔において、指定されたゲストＯＳに割り当てられたＣＰＵ及びメモリの内容をコピーし、コピーした情報をスナップショットとして記憶装置に保存するというメモリ同期を行う。そして、異常検出部が、何れかのゲストＯＳにおける異常を検出した際、スナップショット管理部が、記憶装置に保持された情報の中から、異常が検出されたゲストＯＳに対応するスナップショットを用いて、当該ゲストＯＳを復旧する。すなわち、スナップショット管理部は、異常が発生したゲストＯＳの処理を引き継ぐ予備のゲストＯＳを新たに起動させることにより復旧する。このようにして、ホストＯＳおよび仮想マシンを冗長化構成にする必要なく、かつゲストＯＳが異常停止した時点の直前から、ゲストＯＳを復旧することが実現されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】ＷＯ２０１２／０７０１０２号公報
【特許文献２】特開２０１１−０６００５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１および特許文献２に開示された技術においては、稼働系ゲストＯＳの処理を予備系のゲストＯＳに引き継ぐ必要が生じるまでの待機の間、常時（継続的に）メモリ同期を実行する必要があるという問題がある。すなわち、上述した関連技術は、予備系装置において、メモリ同期によってコピーした稼働系装置のメモリ情報を保持する記憶装置のメモリ容量、および、メモリ同期に要する通信帯域などの予備の設備量が常に必要である。
【０００９】
本発明の一つの目的は、稼働系装置から予備系装置への処理の引き継ぎ（切り替え）が発生するまでの待機中において、メモリ同期に要する予備のリソース量が少ないメモリレプリケーションが可能な情報処理装置などを提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成すべく、本発明に係る情報処理装置は、以下の構成を備えることを特徴とする。
【００１１】
すなわち、本発明に係る情報処理装置は、
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を通知する複製対象通知部と、
前記複製対象通知部から通知された前記メモリ情報を、所定の記憶装置に複製対象メモリ情報として保存し、前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて、前記複製対象データを読み出し、読み出した前記複製対象データを第２の情報処理装置に対して転送するレプリケーション処理部と
を備える。
【００１２】
また、上記の目的を達成すべく、本発明に係るメモリレプリケーション方法は、
第１の情報処理装置を用いて、
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を、所定の記憶装置に複製対象メモリ情報として保存する事前準備処理を実行し、
前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて読み出した前記複製対象データを第２の情報処理装置に対して転送する転送処理を実行し、
前記第２の情報処理装置を用いて、
前記複製対象データを受信し、
前記サービスを提供可能な第２のアプリケーションに対して、前記複製対象データに基づいて、前記サービスを復旧させる。
【００１３】
また、同目的は、上記の各構成を有する情報処理装置、並びに対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１４】
本発明には、待機中の予備系装置において必要な設備量が少ないメモリレプリケーションが可能になるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る情報処理システムの構成を示すブロック図である。
【図２】第１の実施形態において、稼働系装置１が行う事前準備の動作を示すフローチャートである。
【図３】第１の実施形態において、稼働系装置１、および予備系装置２１が行うメモリレプリケーションの動作を示すフローチャートである。
【図４】第１の実施形態における主記憶装置６のメモリ空間の使用状況の一例を示す模式図である。
【図５】本発明の第２の実施形態に係る情報処理システムの構成を示すブロック図である。
【図６】本発明の第３の実施形態に係る情報処理システムの構成を示すブロック図である。
【図７】第３の実施形態において、ブート処理部２０１が行う動作を示すフローチャートである。
【図８】本発明の第４の実施形態に係る情報処理システムの構成を示すブロック図である。
【図９】本発明の各実施形態に係る情報処理システムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。
【発明を実施するための形態】
【００１６】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１７】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る情報処理システムの構成を示すブロック図である。
【００１８】
図１を参照すると、本実施形態に係る情報処理システムは、第１の情報処理装置（稼働系装置）１、記憶装置１１、および第２の情報処理装置（予備系装置）２１を含む。本実施形態は、切替指示３０を受信した際、第１の情報処理装置１（以下、「稼働系装置１」と言う）が提供するサービス（処理）を、第２の情報処理装置２１（以下、「予備系装置２１」が引き継ぐことを可能とする情報処理システムである。
【００１９】
切替指示３０は、稼働系装置１が提供するサービスを、他の予備系装置において実施させる（切り替える）ことを指示する情報である。切替指示３０は、さらに、切り替え先である予備系装置２１を示すレプリケーション（複製）先情報を含んでもよい。
【００２０】
稼働系装置１、および、予備系装置２１は、それぞれインターネットや構内ＬＡＮ（ローカルエリアネットワーク）等の通信ネットワーク（以下、単にネットワークと称する。）１０００を介して通信可能である。稼働系装置１、および予備系装置２１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：図示せず）を用いて実行されるコンピュータ・プログラム（ソフトウェア・プログラム）の制御により動作する一般的な情報処理装置（コンピュータ）によって構成されても良い。または、稼働系装置１、および予備系装置２１の各部が、専用のハードウェアデバイス、または論理回路によって構成されても良い。なお、この稼働系装置１、および予備系装置２１をコンピュータによって実現したハードウェア構成例については、図９を参照して後述する。
【００２１】
記憶装置１１は、稼働系装置１から利用可能な記憶装置である。本実施形態において、記憶装置１１は、稼働系装置１に接続される。なお、記憶装置１１は、稼働系装置１に内蔵されてもよい。記憶装置１１は、ＨＤＤ（ハードディスクドライブ）などの不揮発性の記憶装置であってもよい。また、記憶装置１１は、必ずしも主記憶装置６と別個の記憶装置ではなくてもよい。例えば、記憶装置１１は、後述する仮想マシン３、および仮想マシン３に含まれる機能部が利用する領域以外の、特定の記憶領域であってもよい。
【００２２】
稼働系装置１は、ホストＯＳ２、仮想マシン３、主記憶装置６、およびレプリケーション処理部８を有する。仮想マシン３は、ゲストＯＳ４、およびゲストＯＳ４の制御によって動作するアプリケーション５を含む。なお、以下の説明において、例えば、ホストＯＳ２の制御により動作することを「ホストＯＳ２上で動作する」のように称する。すなわち、アプリケーション５は、「ゲストＯＳ４上で動作する」と言う。
【００２３】
ホストＯＳ２は、稼働系装置１において、仮想計算機（ＶＭ、Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）である仮想マシン３を実現する。すなわち、ホストＯＳ２は、ゲストＯＳ４と、メモリおよび通信リソース等の仮想マシンリソースとを提供し、その仮想マシンリソースに関するメモリ管理および通信制御などを行う。また、ホストＯＳ２は、レプリケーション処理部８などのホストＯＳ２上で動作するプロセスに対して、メモリ管理および通信制御などの一般的なＯＳ機能を提供する。
【００２４】
ゲストＯＳ４は、ホストＯＳ２によって提供される仮想マシン３において動作するＯＳである。ゲストＯＳ４は、仮想マシン３において、アプリケーション５を動作させることができる。
【００２５】
主記憶装置６は、アプリケーション５の動作に応じて生成される複製対象データ９を格納することができる。複製対象データ９は、アプリケーション５が実行する処理（サービス）を引き継ぐアプリケーション２５が、当該サービスを復旧するために必要な情報である。主記憶装置６は、例えば、半導体メモリ装置やディスク装置により実現される。
【００２６】
アプリケーション５は、ゲストＯＳ４上で動作する。アプリケーション５は、稼働系装置１においてサービスを提供する主体である。上述した予備系装置２１が引き継ぐサービスとは、このアプリケーション５が提供するサービスである。また、アプリケーション５は、複製対象通知部７を含む。
【００２７】
複製対象通知部７は、複製対象データ９が格納されるメモリ空間を示すメモリ情報を、後述するレプリケーション処理部８に対して通知する。
【００２８】
レプリケーション処理部８は、ホストＯＳ２上で動作する。レプリケーション処理部８は、複製対象通知部７からメモリ情報を示す通知を受信した際、通知されたメモリ情報を複製対象メモリ情報１２として、記憶装置１１に保存する。その後、レプリケーション処理部８は、稼働系装置１において動作する何れかのプロセスまたは外部装置等から、切替指示３０を受信した際、保存しておいた複製対象メモリ情報１２に基づいて、複製対象データ９を読み出す。そして、レプリケーション処理部８は、予備系装置２１に対して、読み出した複製対象データ９を転送する。以下では、切替指示３０を受信した後の、レプリケーション処理部８における一連の動作を、転送処理とも言う。
【００２９】
予備系装置２１は、ホストＯＳ２２、仮想マシン２３、主記憶装置２６、および復旧処理部２７を有する。仮想マシン２３は、ゲストＯＳ２４、およびゲストＯＳ２４上で動作するアプリケーション２５を含む。ホストＯＳ２２、仮想マシン２３、ゲストＯＳ２４、およびアプリケーション２５の仮想化システムとしての関係性と機能とは、稼働系装置１におけるホストＯＳ２、仮想マシン３、ゲストＯＳ４、およびアプリケーション５と同様である。
【００３０】
だだし、少なくともアプリケーション２５は、後述する復旧処理部２７によって、サービスの復旧が指示された後に動作を開始する点が異なる。
【００３１】
復旧処理部２７は、稼働系装置１におけるレプリケーション処理部８から転送された複製対象データ９を受信し、受信した複製対象データ９を主記憶装置２６における対応するメモリ空間に格納（上書き）する。その後、復旧処理部２７は、予備系装置２１において動作するアプリケーション２５に対して、アプリケーション５が実行していたサービスの復旧を指示する復旧指示を送信する。
【００３２】
アプリケーション２５は、アプリケーション５と同様のサービスを提供可能である。アプリケーション２５は、稼働系装置１においてアプリケーション５がサービスの提供を停止した後に、復旧処理部２７によって格納された複製対象データ９に基づいて、アプリケーション５のサービスを引き継ぐ。
【００３３】
次に、上述した構成を備える本実施形態の動作について詳細に説明する。本実施形態に係る情報処理システムの動作は、事前準備の動作とメモリレプリケーションの動作（レプリケーション動作）との２段階の動作によって構成される。
【００３４】
まず、図２を参照して、事前準備における動作を説明する。図２は、第１の実施形態において、稼働系装置１が行う事前準備の動作を示すフローチャートである。
【００３５】
事前準備の動作を開始する時点において、稼働系装置１の状態は、図１に示す通りである。すなわち、ホストＯＳ２、ゲストＯＳ４、アプリケーション５、およびレプリケーション処理部８が動作している。また、主記憶装置６には、複製対象データ９がすでに存在している。ただし、記憶装置１１における複製対象メモリ情報１２は、まだ存在しない。複製対象メモリ情報１２は、事前準備の動作によって生成される。
【００３６】
また、事前準備の動作に際して、予備系装置２１は、特に動作する必要はない。
【００３７】
事前準備の動作においては、まず、稼働系装置１において、複製対象通知部７が、複製対象データ９が格納されているメモリ空間を示すメモリ情報を、レプリケーション処理部８に対して通知する（ステップＡ１００）。ここで、複製対象データ９とは、予備系装置２１においてアプリケーション２５がアプリケーション５のサービスを、後で復旧する際に必要な情報である。複製対象データ９は、後述するメモリレプリケーションの動作において複製の対象となるデータである。
【００３８】
複製対象データ９は、例えば、図４に示すように、主記憶装置６に格納されている。図４は、第１の実施形態における主記憶装置６のメモリ空間の使用状況の一例を示す模式図である。図４を参照すると、主記憶装置６には、ホストＯＳが使用するメモリ空間５０２、レプリケーション処理部８などのレプリケーション関連の機能部が使用するメモリ空間５０３、ゲストＯＳが使用するメモリ空間５０４、およびアプリケーションが使用するメモリ空間５０５および５０６などがある。アプリケーションが使用するメモリ空間は、複製対象データ９を格納する複製対象のメモリ空間５０６と、複製対象データ９を含まないメモリ空間５０５に分かれる。ステップＡ１００において、複製対象通知部７は、アプリケーションが使用する複製対象のメモリ空間５０６を示すメモリ情報を通知する。複製対象通知部７は、例えば、図示しない設定ファイル等から複製対象のメモリ空間５０６の範囲を取得してもよい。
【００３９】
次に、レプリケーション処理部８が、複製対象データ９が格納されているメモリ空間を示すメモリ情報の通知を受信する（ステップＢ１１０）。そして、レプリケーション処理部８は、受信した通知に含まれる複製対象データ９が格納されているメモリ空間を示すメモリ情報を、複製対象メモリ情報１２として、記憶装置１１に格納する（ステップＢ１１１）。複製対象メモリ情報１２は、例えば、複製対象のメモリ空間５０６を示すアドレス情報を含む。また、複製対象メモリ情報１２は、アプリケーション５または、アプリケーション５が提供するサービスを識別する識別情報などを含んでもよい。
【００４０】
最後に、レプリケーション処理部８は、切替指示の受信に備えて、待機する（ステップＢ１１２）。
【００４１】
以上が、事前準備における動作である。事前準備における動作は、任意のタイミングにおいて、複数回にわたって実施してもよい。例えば、複製対象通知部７は、サービスが開始された際に事前準備の動作を行った後、複製対象データ９の増減などが発生したタイミングにおいて、再び事前準備の動作を行ってもよい。
【００４２】
次に、図３を参照して、メモリレプリケーションにおける動作を説明する。図３は、第１の実施形態において、稼働系装置１、および予備系装置２１が行うメモリレプリケーションの動作を示すフローチャートである。
【００４３】
メモリレプリケーションの動作を開始する時点において、稼働系装置１は、事前準備が終了した状態である。すなわち、レプリケーション処理部８は、待機状態である。
【００４４】
また、予備系装置２１は、少なくとも、メモリレプリケーションの動作が開始される前に、図１に示す状態であればよい。すなわち、予備系装置２１は、メモリレプリケーションの動作開始より前に、少なくともホストＯＳ２２、および復旧処理部２７が動作していればよい。なお、予備系装置２１におけるゲストＯＳ２４とアプリケーション２５とが、メモリレプリケーションの動作開始より前に、動作していてもよい。
【００４５】
まず、切替指示３０が、稼働系装置１において動作する何れかのプロセス、または、図示しない外部装置等から、稼働系装置１に対して、送信される。稼働系装置１においては、レプリケーション処理部８が、切替指示３０を受信する（ステップＢ２００）。切替指示３０は、例えば、アプリケーション５が提供するサービスに障害が発生した際、または、稼働系装置１の保守作業の前など、サービスの提供者を予備系装置２１に切り替えたい場合に送信されうる。
【００４６】
レプリケーション処理部８は、切替指示３０を受信すると、事前準備の際に格納しておいた複製対象メモリ情報１２を、記憶装置１１から取得する（ステップＢ２０１）。
【００４７】
次に、レプリケーション処理部８は、取得した複製対象メモリ情報１２に基づいて、複製対象データ９を、主記憶装置６から読み出す（ステップＢ２０２）。
【００４８】
次に、レプリケーション処理部８は、読み出した複製対象データ９を予備系装置２１に対して転送する（ステップＢ２０３）。レプリケーション処理部８は、例えば、図示しない外部装置にシステム構成を管理するサーバに対して、切り替え先を問い合わせることにより、予備系装置２１を選択してもよい。または、レプリケーション処理部８は、例えば、切替指示３０に含まれるレプリケーション先情報に基づいて、予備系装置２１を選択してもよい。
【００４９】
なお、レプリケーション処理部８は、ステップＢ２００以降のいずれかのタイミングにおいて、アプリケーション５またはゲストＯＳ４の動作を停止させる処理を実行（指示）してもよい。
【００５０】
次に、予備系装置２１においては、復旧処理部２７が、レプリケーション処理部８から転送された複製対象データ９を受信する（ステップＣ２１０）。
【００５１】
次に、復旧処理部２７は、受信した複製対象データ９を、主記憶装置２６における、「アプリケーションが使用する複製対象のメモリ空間５０６（図４）」に対応するメモリ空間にコピー（上書き）する（ステップＣ２１１）。
【００５２】
なお、ステップＣ２１１を実行する際に、主記憶装置２６は、稼働系装置１における主記憶装置６のメモリ空間と同様に、図４におけるアプリケーションが使用する複製対象のメモリ空間５０６に対応するメモリ空間を有することとする。すなわち、ステップＣ２１１を実行する前に、予備系装置２１においてゲストＯＳ２４、およびアプリケーション２５が動作していることとする。ゲストＯＳ２４、およびアプリケーション２５が動作していなかった場合、復旧処理部２７は、ステップＣ２１１を実行する前に、ゲストＯＳ２４、およびアプリケーション２５を起動（指示）してもよい。なお、主記憶装置２６が、図４に示す以外の用途に使用されるメモリ空間を有していてもよい。また、主記憶装置２６は、図４に示す各メモリ空間５０２乃至５０６に対応するメモリ空間を有しているのであって、各メモリ空間の絶対アドレス、および、各メモリ空間のサイズなどの属性までも図４に一致しているとは限らない。
【００５３】
最後に、復旧処理部２７は、ゲストＯＳ２４またはアプリケーション２５に対して、サービスの復旧を指示する（ステップＣ２１２）。この指示により、アプリケーション２５は、主記憶装置２６にコピーされた複製対象データ９に基づき、アプリケーション５に代わってサービスを再開する（引き継ぐ）。
【００５４】
このようにして、本実施形態によれば、切替指示３０を受信した後に、稼働系装置１から予備系装置２１へのメモリ同期（データの転送）を行うことにより、予備系装置２１へのサービスの引き継ぎを行うことができる。
【００５５】
以上説明したように、本実施形態には、稼働系装置１から予備系装置２１へのサービス（処理）の切替が発生するまでの待機中において、メモリ同期に要する予備のリソース量が少ないという効果がある。
【００５６】
その理由は、稼働系装置１において、レプリケーション処理部８が、切替指示３０を受信した場合、複製対象データ９を予備系装置２１へ転送することによりメモリ同期を行うからである。そして、予備系装置２１において、復旧処理部２７が、主記憶装置２６を介して、転送された複製対象データ９をアプリケーション２５に与えることにより、サービスが引き継がれるからである。すなわち、本実施形態は、切替指示３０によって切替が発生することを待つ待機中において、稼働系装置１から予備系装置２１へのメモリ同期を行わない。したがって、本実施形態は、メモリ同期に要する予備系装置２１における記憶装置や通信帯域などのリソース量が少なく済むという効果がある。
【００５７】
なお、本実施形態において、レプリケーション処理部８は、複製対象メモリ情報１２を記憶装置１１に格納したが、上述した通り、複製対象メモリ情報１２を主記憶装置６の特定のメモリ空間に格納してもよい。
【００５８】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について説明する。以下では、第２の実施形態に係る特徴的な部分を中心に説明する。第１の実施形態と同様な構成を有する第２の実施形態の構成要素には、第１の実施形態で付した参照符号と同一の参照符号を付し、その構成要素について重複する詳細な説明は省略する。
【００５９】
図５は、本発明の第２の実施形態に係る情報処理システムの構成を示すブロック図である。本実施形態では、第１の情報処理装置（稼働系装置）１００が、サービスを提供する仮想マシン３の各部の異常を検知する状態管理部１０１を有する点が上述した第１の実施形態と異なる。すなわち、本実施形態では、状態管理部１０１が、異常を検知した際に、レプリケーション処理部８に対して切替指示３０を送信する。
【００６０】
まず、図５を参照して、以下に本実施形態の構成を説明する。
【００６１】
図５を参照すると、本実施形態に係る情報処理システムは、第１の情報処理装置１００（以下、「稼働系装置１００」と言う）、記憶装置１１、および予備系装置２１を含む。本実施形態は、稼働系装置１００が提供するサービスに影響のある異常などが発生した際に、稼働系装置１００が提供するサービスを、予備系装置２１が引き継ぐことを可能とする情報処理システムである。
【００６２】
記憶装置１１、および予備系装置２１は、第１の実施形態と同様であるので、重複する詳細な説明は、省略する。稼働系装置１００は、第１の実施形態における稼働系装置１に対応する。以下は、稼働系装置１００が、第１の実施形態における稼働系装置１と異なる点を説明する。
【００６３】
稼働系装置１００、および、予備系装置２１は、第１の実施形態と同様に、それぞれインターネットや構内ＬＡＮ等のネットワーク１０００を介して通信可能である。稼働系装置１００は、ＣＰＵ（図示せず）を用いて実行されるコンピュータ・プログラム（ソフトウェア・プログラム）の制御により動作する一般的な情報処理装置（コンピュータ）によって構成されても良い。または、稼働系装置１００の各部が、専用のハードウェアデバイス、または論理回路によって構成されても良い。なお、この稼働系装置１００をコンピュータによって実現したハードウェア構成例については、図９を参照して後述する。
【００６４】
稼働系装置１００は、ホストＯＳ２、仮想マシン３、主記憶装置６、レプリケーション処理部８、および状態管理部１０１を有する。ホストＯＳ２、仮想マシン３、主記憶装置６、およびレプリケーション処理部８の構成および機能は、第１の実施形態と同様であるので、重複する説明は省略する。
【００６５】
状態管理部１０１は、ホストＯＳ２上で動作する。状態管理部１０１は、ゲストＯＳ４、および、アプリケーション５が提供するサービスなどの動作を監視対象として監視することにより、動作の異常を検出する。すなわち、状態管理部１０１は、アプリケーション５が提供するサービスの継続に影響を与える可能性がある機能部などを監視対象とする。監視対象には、稼働系装置１００および記憶装置１１などに含まれるハードウェア、並びに、ホストＯＳ２などを含めてもよい。
【００６６】
状態管理部１０１が監視を行う技法については、ウォッチドッグ（ｗａｔｃｈ  ｄｏｇ）機構等により監視する方法など、よく知られた一般的な技術を採用することが可能である。または、例えば、ゲストＯＳ４などの監視対象が、自己の動作状況を、状態管理部１０１に対して常時（定期的に）通知してもよい。状態管理部１０１は、監視対象に異常が発生したことを検知したとき、第１の実施形態における切替指示３０をレプリケーション処理部８に対して送信する。
【００６７】
次に、上述した構成を備える本実施形態の動作について詳細に説明する。本実施形態に係る情報処理システムの動作は、第１の実施形態と同様に、事前準備とメモリレプリケーションとの２段階の動作によって構成される。
【００６８】
本実施形態における事前準備の動作は、第１の実施形態と同様であるので、重複する詳細な説明を省略する。なお、事前準備段階において、状態管理部１０１は、特に動作する必要はない。
【００６９】
事前準備が終了した後、状態管理部１０１は、監視を実行する。状態管理部１０１は、レプリケーション処理部８と同様に、あらかじめ起動していてもよい。または、状態管理部１０１は、レプリケーション処理部８が待機状態になる際に、起動されてもよい。
【００７０】
状態管理部１０１は、監視を実行中に、ゲストＯＳ４、または、アプリケーション５が提供するサービスなどの監視対象に異常が発生したことを検知すると、レプリケーション処理部８に対して、切替指示３０を送信する。
【００７１】
これ以降の動作は、第１の実施形態におけるメモリレプリケーションの動作と同様である。すなわち、レプリケーション処理部８が、状態管理部１０１から送信された切替指示を受信する（図３のステップＢ２００）。最終的に、予備系装置２１において、アプリケーション２５が、サービスを再開する（図３のステップＣ２１２）。
【００７２】
以上、説明したように、本実施形態には、上述した第１の実施形態と同様の効果に加えて、さらに、稼働系装置１００から予備系装置２１へのサービスの引き継ぎが、状態管理部１０１が動作異常を検知したことを契機として、自律的に実行できるという効果もある。
【００７３】
その理由は、状態管理部１０１がアプリケーション５が提供するサービスの継続に影響を与える可能性がある監視対象における異常の発生に際して、自律的に切替指示３０を送信するからである。そして、レプリケーション処理部８が、切替指示３０の受信を契機に、レプリケーション動作を連動させるからである。
【００７４】
なお、状況管理部１０１は、予備系装置２１、または、図示しない外部の装置にあってもよい。
【００７５】
＜第３の実施形態＞
次に、上述した第１または第２の実施形態を基本とする第３の実施形態について説明する。以下では、第３の実施形態に係る特徴的な部分を中心に説明する。上述した実施形態と同様な構成を有する第３の実施形態の構成要素には、第１または第２の実施形態で付した参照符号と同一の参照符号を付し、その構成要素について重複する詳細な説明は省略する。
【００７６】
図６は、本発明の第３の実施形態に係る情報処理システムの構成を示すブロック図である。本実施形態では、ホストＯＳ４自体の異常によって情報処理装置（稼働系装置）２００（以下、「稼働系装置２００」と言う）全体の処理が継続不能になった後に、サービスの引き継ぎを可能とするブート処理部２０１を有する点が上述した実施形態と異なる。また、本実施形態では、状態管理部２２１が、第２の情報処理装置（予備系装置）２２０に配置され、第２の情報処理装置２２０（以下、「予備系装置２２０」と言う）から稼働系装置２００のホストＯＳ４を含む各部を監視する点も異なる。さらに、複製対象メモリ情報１２を格納する記憶装置は、不揮発性の記憶装置２１０である点も異なる。
【００７７】
まず、図６を参照して、以下に本実施形態の構成を説明する。
【００７８】
図６を参照すると、本実施形態に係る情報処理システムは、稼働系装置２００、不揮発性記憶装置２１０、および予備系装置２２０を含む。本実施形態は、稼働系装置２００が提供するサービスに影響のある異常などが発生した際に、稼働系装置２００が提供するサービスを、予備系装置２２０が引き継ぐことを可能とする情報処理システムである。
【００７９】
稼働系装置２００、および予備系装置２２０は、上述した実施形態と同様に、それぞれインターネットや構内ＬＡＮ等のネットワーク１０００を介して通信可能である。稼働系装置２００、および予備系装置２２０は、ＣＰＵ（図示せず）を用いて実行されるコンピュータ・プログラム（ソフトウェア・プログラム）の制御により動作する一般的な情報処理装置（コンピュータ）によって構成されても良い。または、稼働系装置２００、および予備系装置２２０の各部が、専用のハードウェアデバイス、または論理回路によって構成されても良い。なお、この稼働系装置２００、および予備系装置２２０をコンピュータによって実現したハードウェア構成例については、図９を参照して後述する。
【００８０】
不揮発性記憶装置２１０は、第１および第２の実施形態における記憶装置１１に対応する。本実施形態において、不揮発性記憶装置２１０は、ＨＤＤ（ハードディスクドライブ）などの不揮発性の記憶装置により実現される点が、記憶装置１１と異なる。これ以外の不揮発性記憶装置２１０の構成および機能は、第１および第２の実施形態と同様であるので、重複する説明は省略する。
【００８１】
稼働系装置２００は、第１の実施形態における稼働系装置１を基本とする。稼働系装置２００は、ホストＯＳ２、仮想マシン３、主記憶装置６、レプリケーション処理部８を有する。
【００８２】
レプリケーション処理部８の機能および構成は、複製対象メモリ情報１２を保存する先が、不揮発性記憶装置２１０であること以外は、第１および第２の実施形態と同様である。レプリケーション処理部８における重複する説明は、省略する。
【００８３】
ホストＯＳ２は、ブート処理部２０１を有する。これ以外のホストＯＳ２の構成および機能は、第１の実施形態と同様であるので、重複する説明は省略する。
【００８４】
ブート処理部２０１は、稼働系装置２００の起動時に、前回の終了処理（シャットダウン時の処理）の結果を確認し、その結果に応じて、主記憶装置６の初期化処理を含む起動処理を行うことができる。
【００８５】
前回正常終了していなかった（異常だった）場合、ブート処理部２０１は、「レプリケーションモード」で起動処理を行う。レプリケーションモードにおいては、まず、ブート処理部２０１は、不揮発性記憶装置２１０に格納された複製対象メモリ情報１２に基づいて、主記憶装置６に残された複製対象データ９の位置を特定する。そして、ブート処理部２０１は、複製対象データ９を保護する。さらに、ブート処理部２０１は、稼働系装置２００の再起動後に新たに起動されたレプリケーション処理部８に対して、切替指示３０を送信する。前回正常終了していた場合、ブート処理部２０１は、仮想化システムにおける情報処理装置で一般的に行われる、起動処理を行う。すなわち、ブート処理部２０１は、主記憶装置６に残された複製対象データ９の保護は行わずに、起動処理を行う。
【００８６】
仮想マシン３、および主記憶装置６の構成および機能は、第１の実施形態と同様であるので、重複する説明は省略する。
【００８７】
予備系装置２２０は、ホストＯＳ２２、仮想マシン２３、主記憶装置２６、復旧処理部２７、および状態管理部２２１を有する。ホストＯＳ２２、仮想マシン２３、主記憶装置２６、および復旧処理部２７の構成および機能は、第１および第２の実施形態と同様であるので、重複する説明は省略する。
【００８８】
状態管理部２２１は、第２の実施形態における状態管理部１０１を基本とする。すなわち、状態管理部２２１は、第２の実施形態において稼働系装置１００に配置された状態管理部１０１を、予備系装置２２０に配置したものと言える。状態管理部２２１は、予備系装置２２０から、ネットワーク１０００を介して、稼働系装置２００のホストＯＳ２、ゲストＯＳ４、およびアプリケーション２５が提供するサービスの動作などを監視対象として、監視する。状態管理部２２１が監視を行う技法については、第２の実施形態と同様に、よく知られた一般的な技術を採用することが可能である。
【００８９】
状態管理部２２１は、監視対象に異常が発生したことを検出したとき、稼働系装置２００に対して、切替指示３０を送信することができる。また、状態管理部２２１は、ホストＯＳ２の異常を検出したときなど、稼働系装置２００における切替指示３０に対する処理が行われない可能性がある場合、稼働系装置２００の再起動を実行（指示）してもよい。状態管理部２２１が、ネットワーク１０００を介して接続する稼働系装置２００の再起動を行う技法については、よく知られた一般的な技術を採用することが可能であるので、ここでは詳細な説明は省略する。
【００９０】
次に、上述した構成を備える本実施形態の動作について詳細に説明する。本実施形態に係る情報処理システムの動作は、第２の実施形態と同様に、事前準備と、監視を含むメモリレプリケーションとの２段階の動作によって構成される。
【００９１】
本実施形態における事前準備の動作は、第１の実施形態と同様であるので、重複する詳細な説明を省略する。なお、事前準備段階において、ブート処理部２０１は、特に動作する必要はない。事前準備が終了した後は、複製対象メモリ情報１２が、不揮発性記憶装置２１０に格納されている。また、予備系装置２２０において、状態管理部２２１が稼働系装置２００を監視している状態である。
【００９２】
次に、事前準備が終了した後、状態管理部２２１による監視中に、稼働系装置２００において異常が発生した場合の、本実施形態に係る情報処理システムが行う動作を説明する。なお、以下では、本実施形態の効果が明確に表れる具体例の一つとして、稼働系装置２００におけるホストＯＳ２に、処理の継続が不能となるような異常が発生した場合の動作を説明する。
【００９３】
まず、状態管理部２２１が監視を実行中に、稼働系装置２００において、ホストＯＳ２に異常が発生する。そして、状態管理部２２１が、ホストＯＳ２の異常を検出し、稼働系装置２００の再起動を実行する。このとき、本実施形態では、稼働系装置２００において再起動が発生した場合、まずブート処理部２０１が行うブート処理の動作が、レプリケーション動作の前に、実行される。以下に、図７を参照して、ブート処理におけるブート処理部２０１の動作を説明する。図７は、第３の実施形態において、ブート処理部２０１が行う動作を示すフローチャートである。
【００９４】
ホストＯＳ２に異常が発生した状態において稼働系装置２００の再起動が実行されたとき、稼働系装置２００は、終了処理を正常に行わずに終了し、その後、再び起動したこととする。再起動の際、稼働系装置２００において、まずブート処理部２０１が動作する。ブート処理部２０１は、前回の終了処理の結果を確認する（ステップＤ３００）。例えば、ブート処理部２０１は、終了処理によって更新されるべきファイルやレジストリの状態を確認することなどにより、前回の終了処理の正常性を判定することができる。
【００９５】
前回の終了処理が異常だった場合、ブート処理部２０１は、「レプリケーションモード」で起動処理を行う。例えば、ブート処理部２０１は、ホストＯＳ２以外が使用するメモリ空間を除外して、主記憶装置６に対するメモリ初期化を実施する（ステップＤ３０１）。すなわち、ブート処理部２０１は、ゲストＯＳ４およびアプリケーション５が再起動前に使用したメモリ空間（図４の５０４乃至５０６）を初期化から除外する。
【００９６】
次に、ブート処理部２０１は、不揮発性記憶装置２１０から、複製対象メモリ情報１２を取得する（ステップＤ３０２）。
【００９７】
次に、ブート処理部２０１は、取得した複製対象メモリ情報１２に基づいて、主記憶装置６における複製対象データ９を保護する（ステップＤ３０３）。例えば、ブート処理部２０１は、ホストＯＳ２が提供するメモリ管理機能により、複製対象データ９が格納されたメモリ空間に対する上書きを禁止してもよい。
【００９８】
次に、ブート処理部２０１は、レプリケーション処理部８を起動する（ステップＤ３０４）。
【００９９】
最後に、ブート処理部２０１は、起動したレプリケーション処理部８に対して、切替指示３０を送信する（ステップＤ３０５）。
【０１００】
これ以降の動作は、第１の実施形態におけるメモリレプリケーションの動作（図３）と同様であるので、重複する詳細な説明を省略する。メモリレプリケーションの動作後、最終的に、予備系装置２１において、アプリケーション２５が、サービスを再開する（図３のステップＣ２１２）。
【０１０１】
なお、ステップＤ３０１以降のいずれかの時点において、ブート処理部２０１は、レプリケーションモードで起動したことをホストＯＳ２に通知することにより、ホストＯＳ２がゲストＯＳ４およびアプリケーション５を起動しないように制御してもよい。
【０１０２】
以上、説明したように、本実施形態には、上述した第１および第２の実施形態と同様の効果に加えて、さらに、ホストＯＳ２などの異常によりレプリケーション処理部８が切替指示３０を処理できない場合にも、稼働系装置２００の再起動後に、予備系装置２１へのサービスの引き継ぎができるという効果もある。
【０１０３】
その理由は、ブート処理部２０１が、起動処理において、前回の終了処理が正常でなかった場合に、再起動前に格納された複製対象データ９を保護するからである。また、不揮発性記憶装置２１０が、稼働系装置２００が再起動されても、複製対象メモリ情報１２を保持できるからである。その結果、稼働系装置２００の再起動後に動作するレプリケーション処理部８が、保護された再起動前の複製対象データ９を用いて、予備系装置２１へのメモリレプリケーションを実行することが可能となる。
【０１０４】
なお、ステップＤ３００において、前回の終了処理が正常だった場合、ブート処理部２０１は、通常のメモリ初期化を実施する（ステップＤ３１０）。すなわち、ブート処理部２０１は、主記憶装置６に残された複製対象データ９の保護は行わずに、主記憶装置６に対するメモリ初期化を実施する。さらに、ブート処理部２０１は、その他の起動処理を行ってもよい。
【０１０５】
また、上述したブート処理部２０１が行う処理の一部は、ブート処理部２０１以外のホストＯＳ２の機能によって実現されてもよい。例えば、レプリケーション処理部８の起動、および、その後の切替指示３０の送信は、ホストＯＳ２を介して実行されてもよい。
【０１０６】
また、ブート処理部２０１が実行するメモリ初期化の範囲、および複製対象データ９の保護方法などは、ステップＤ３０１乃至Ｄ３０３において例示した以外の方法によっても実現可能である。
【０１０７】
＜第４の実施形態＞
次に、上述した各実施形態に共通する概念について説明する。
【０１０８】
図８は、本発明の第４の実施形態に係る情報処理システムの構成を示すブロック図である。
【０１０９】
図８を参照すると、本実施形態は、第１の情報処理装置（稼働系装置）３００、記憶装置３１１、および第２の情報処理装置（予備系装置）３２０を含む。本実施形態は、切替指示３０を受信した際、第１の情報処理装置３００（以下、「稼働系装置３００」と言う）が提供するサービス（処理）を、第２の情報処理装置３２０（以下、「予備系装置３２０」が引き継ぐことを可能とする情報処理システムである。
【０１１０】
切替指示３０は、稼働系装置１が提供するサービスを、他の予備系装置において実施させる（切り替える）ことを指示する情報である。
【０１１１】
稼働系装置３００、および、予備系装置３２０は、それぞれインターネットや構内ＬＡＮ等のネットワーク１０００を介して通信可能である。稼働系装置３００、および予備系装置３２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：図示せず）を用いて実行されるコンピュータ・プログラム（ソフトウェア・プログラム）の制御により動作する一般的な情報処理装置（コンピュータ）によって構成されても良い。または、稼働系装置３００、および予備系装置３２０の各部が、専用のハードウェアデバイス、または論理回路によって構成されても良い。なお、この稼働系装置３００、および予備系装置３２０をコンピュータによって実現したハードウェア構成例については、図８を参照して後述する。
【０１１２】
記憶装置３１１は、稼働系装置３００から利用可能な記憶装置である。本実施形態において、記憶装置３１１は、稼働系装置３００に接続される。なお、記憶装置３１１は、稼働系装置３００に内蔵されてもよい。記憶装置３１１は、ＨＤＤ（ハードディスクドライブ）などの不揮発性の記憶装置であってもよい。また、記憶装置３１１は、必ずしも記憶装置３０６と別個の記憶装置ではなくてもよい。記憶装置３１１は、第１および第２の実施形態における記憶装置１１、並びに、第３の実施形態における不揮発性記憶装置２１０に対応する。
【０１１３】
稼働系装置３００は、アプリケーション３０５、記憶装置３０６、およびレプリケーション処理部３０８を有する。アプリケーション３０５は、第１乃至第３の実施形態におけるアプリケーション５に対応する。記憶装置３０６は、第１乃至第３の実施形態における主記憶装置６に対応する。レプリケーション処理部３０８は、第１乃至第３の実施形態におけるレプリケーション処理部８に対応する。
【０１１４】
アプリケーション３０５は、稼働系装置３００においてサービスを提供する主体である。上述した予備系装置３２０が引き継ぐサービスとは、このアプリケーション３０５が提供するサービスである。また、アプリケーション３０５は、複製対象通知部３０７を含む。
【０１１５】
複製対象通知部３０７は、複製対象データ３０９が格納されるメモリ空間を示すメモリ情報を、後述するレプリケーション処理部３０８に対して通知する。なお、複製対象データ３０９は、アプリケーション３０５が実行する処理（サービス）を引き継ぐアプリケーション３２５が、当該サービスを復旧するために必要な情報である。複製対象通知部３０７は、第１乃至第３の実施形態における複製対象通知部７に対応する。複製対象データ３０９は、第１乃至第３の実施形態における複製対象データ９に対応する。
【０１１６】
記憶装置３０６は、アプリケーション３０５の動作に応じて生成される複製対象データ３０９を格納することができる。記憶装置３０６は、例えば、半導体メモリ装置やディスク装置により実現される。
【０１１７】
レプリケーション処理部３０８は、まず事前準備における動作として、複製対象通知部３０７からメモリ情報を示す通知を受信した場合に、通知されたメモリ情報を複製対象メモリ情報３１２として、記憶装置３１１に保存する。その後、レプリケーション処理部３０８は、切替指示３０の受信を待機する。なお、切替指示３０は、サービスの提供元を、稼働系装置３００から予備系装置３２０へ切り替えたい場合などに、レプリケーション処理部３０８に対して送信される。複製対象メモリ情報３１２は、第１乃至第３の実施形態における複製対象メモリ情報１２に対応する。
【０１１８】
レプリケーション処理部３０８は、切替指示３０を受信した場合に、メモリレプリケーション動作における転送処理として、保存しておいた複製対象メモリ情報３１２に基づいて、複製対象データ３０９を読み出す。そして、レプリケーション処理部３０８は、予備系装置３２０に対して、読み出した複製対象データ３０９を転送する。
【０１１９】
予備系装置３２０は、アプリケーション３２５、および復旧処理部３２７を有する。アプリケーション３２５は、第１乃至第３の実施形態におけるアプリケーション２５に対応する。復旧処理部３２７は、第１乃至第３の実施形態における復旧処理部２７に対応する。
【０１２０】
復旧処理部３２７は、稼働系装置３００におけるレプリケーション処理部３０８から転送された複製対象データ３０９を受信した場合、アプリケーション３２５に対して、複製対象データ３０９に基づいてサービスを復旧することを指示する。
【０１２１】
アプリケーション３２５は、稼働系装置３００におけるアプリケーション３０５と同様のサービスを提供することができる。アプリケーション３２５は、復旧処理部３２７の指示を受けて、複製対象データ３０９に基づいて、アプリケーション３０５が提供していたサービスを復旧する。
【０１２２】
このように、レプリケーション処理部３０８によるメモリレプリケーションの動作の結果として、アプリケーション３２５が、レプリケーション処理部３０８から送られた複製対象データ３０９に基づいて、予備系装置３２０においてサービスを引き継ぐことができる
以上説明したように、上述した各実施形態に共通する概念を表す本実施形態には、稼働系装置３００から予備系装置３０５への処理の引き継ぎ（切り替え）が発生するまでの待機中において、メモリ同期に要する予備のリソース量が少ないという効果がある。
【０１２３】
その理由は、稼働系装置３００において、レプリケーション処理部３０８が、切替指示３０を受信した場合、複製対象データ３０９を予備系装置３２０へ転送することによりメモリ同期を行うからである。そして、予備系装置３２０において、復旧処理部３２７が、転送された複製対象データ３０９に基づいて、アプリケーション２５にサービスを引き継がせるからである。すなわち、本実施形態は、切替指示３０によって切替が発生することを待つ待機中において、稼働系装置３００から予備系装置３２０へのメモリ同期を行わない。したがって、本実施形態は、メモリ同期に要する予備系装置３２０における記憶装置や通信帯域などのリソース量が少なく済むという効果がある。
【０１２４】
［変形例］
また、上述した各実施形態の変形例として、各実施形態に係る情報処理システムを、複数台の稼働系装置１、１００、２００、または３００に対して、１台の予備系装置２１、２２０、または３２０を含むように構成してもよい。例えば、復旧処理部２７が、受信した複製対象データの送信元（稼働系装置１）に応じて、サービスを引き継ぐアプリケーション２５を選択する。この場合、復旧処理部２７は、例えば、送信元を示すアドレス等と、各稼働系装置が提供するサービスに対応するアプリケーション２５とを関連付ける情報をあらかじめ保持する。これにより、１台の予備系装置が、複数台の稼働系装置におけるサービスの引き継ぎに対応できる。したがって、このような変形例は、メモリ同期に要する予備のリソース量をさらに低減できるという効果がある。
【０１２５】
また、上述した各実施形態において、稼働系装置および予備系装置におけるゲストＯＳは１つであるが、本実施形態は、各装置において複数のゲストＯＳを有する場合にも適用可能である。
【０１２６】
なお、上述した各実施形態において図１、図５、図６、および図８に示した各部は、それぞれ独立したハードウェア回路で構成されていてもよいし、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捕らえることができる。ただし、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
【０１２７】
このような場合のハードウェア環境の一例を図９を参照して説明する。図９は、本発明の各実施形態に係る情報処理システムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。すなわち、図９は、上述した各実施形態における第１の情報処理装置（稼働系装置）１、１００、２００、および３００、並びに、第２の情報処理装置（予備系装置）２１、２２０、および３２０の少なくとも何れかを実現可能なコンピュータの構成であって、上述した各実施形態における各機能を実現可能なハードウェア環境を示す。
【０１２８】
図９に示したコンピュータ９００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３、通信インタフェース（Ｉ／Ｆ）９０４、ディスプレイ９０５、及びハードディスク装置（ＨＤＤ）９０６を備え、これらがバス９０７を介して接続された構成を有する。なお、図９に示したコンピュータが情報処理装置（稼働系装置）１、１００、２００および３００、並びに、情報処理装置（予備系装置）２１、２２０および３２０として機能する場合、ディスプレイ９０５は常時設けられる必要はない。また、通信インタフェース９０４は、上述した各実施形態において、当該各コンピュータ間における通信を実現する一般的な通信手段である。ハードディスク装置９０６には、プログラム群９０６Ａと、各種の記憶情報９０６Ｂとが格納されている。プログラム群９０６Ａは、例えば、上述した図１、図５、図６、および図８に示した各ブロック（各部）に対応する機能を実現するためのコンピュータ・プログラムである。各種の記憶情報９０６Ｂは、例えば、図１、図５、図６、および図８に示した複製対象データ９、および３０９、並びに、複製対象メモリ情報１２、および３１２などである。このようなハードウェア構成において、ＣＰＵ９０１は、コンピュータ９００の全体の動作を司る。
【０１２９】
そして、上述した各実施形態を例に説明した本発明は、各実施形態の説明において参照したブロック構成図（図１、図５、図６、および図８）あるいはフローチャート（図１、図２、および図７）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのＣＰＵ９０１に読み出して実行することによって達成される。また、このコンピュータ内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ９０３またはハードディスク装置９０６などの不揮発性の記憶デバイス（記憶媒体）に格納すれば良い。
【０１３０】
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、フロッピーディスク（登録商標）やＣＤ−ＲＯＭ等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信ネットワーク１０００を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【０１３１】
なお、上述した実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下の付記に限定されるものではない。
【０１３２】
（付記１）
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を通知する複製対象通知部と、
前記複製対象通知部から通知された前記メモリ情報を、所定の記憶装置に複製対象メモリ情報として保存し、前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて、前記複製対象データを読み出し、読み出した前記複製対象データを第２の情報処理装置に対して転送するレプリケーション処理部と
を含む第１の情報処理装置。
【０１３３】
（付記２）
付記１記載の第１の情報処理装置において動作する第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データを受信し、前記サービスを提供可能な第２のアプリケーションに対して、前記複製対象データに基づいて、前記サービスを復旧させる復旧処理部
を含む第２の情報処理装置。
【０１３４】
（付記３）
前記第１のアプリケーションが行う前記サービスの継続に影響を与える可能性がある監視対象を監視し、前記監視対象に異常が発生したことを検知したとき、前記切替指示を前記レプリケーション処理部に対して送信する状態管理部
をさらに備える付記１記載の第１の情報処理装置。
【０１３５】
（付記４）
前記第１のアプリケーションが行う前記サービスの継続に影響を与える可能性がある監視対象を監視し、前記監視対象に異常が発生したことを検知したとき、付記１記載の第１の情報処理装置に対して、前記サービスを他の情報処理装置において実施させることを指示する切替指示を送信する状態管理部
をさらに備える付記２記載の第２の情報処理装置。
【０１３６】
（付記５）
前記レプリケーション処理部は、前記複製対象メモリ情報を保存する際に、不揮発性記憶装置に前記複製対象メモリ情報を保存し、
さらにブート処理部を備え、
前記ブート処理部は、本装置の起動時に、本装置での前回の終了処理の結果を確認し、前回正常終了していなかった場合には、前記複製対象メモリ情報に基づいて位置を特定した前記複製対象データを保護し、本装置の起動後に新たに起動されたレプリケーション処理部に対して、前記切替指示を送信する付記１または付記３記載の第１の情報処理装置。
【０１３７】
（付記６）
付記１、付記３、または付記５の何れかに記載の第１の情報処理装置と、
前記第１の情報処理装置から前記複製対象データを受信する付記２、または付記４記載の第２の情報処理装置と
を含む情報処理システム。
【０１３８】
（付記７）
第１の情報処理装置を用いて、
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を、所定の記憶装置に複製対象メモリ情報として保存する事前準備処理を実行し、
前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて読み出した前記複製対象データを第２の情報処理装置に対して転送する転送処理を実行し、
前記第２の情報処理装置を用いて、
前記複製対象データを受信し、
前記サービスを提供可能な第２のアプリケーションに対して、前記複製対象データに基づいて、前記サービスを復旧させる
メモリレプリケーション方法。
【０１３９】
（付記８）
前記事前準備処理の後に、
前記第１のアプリケーションが行う前記サービスの継続に影響を与える可能性がある監視対象を監視し、
前記監視対象に異常が発生したことを検知したとき、前記第１の情報処理装置に対して、前記切替指示を送信する処理をさらに行う
付記７記載のメモリレプリケーション方法。
【０１４０】
（付記９）
前記事前準備の処理において、  前記複製対象メモリ情報を、所定の不揮発性記憶装置に保存し、
その後に実行された前記第１の情報処理装置の起動時に、前記第１の情報処理装置での前回の終了処理の結果を確認し、
前回正常終了していなかった場合には、前記複製対象メモリ情報に基づいて位置を特定した前記複製対象データを保護し、
前記第１の情報処理装置の起動後に、前記転送処理を実行する
付記７または付記８記載のメモリレプリケーション方法。
【０１４１】
（付記１０）
第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データが格納されるメモリ空間を示すメモリ情報を通知する複製対象通知処理と、
前記複製対象処理によって通知された前記メモリ情報を、所定の記憶装置に複製対象メモリ情報として保存し、前記サービスを他の情報処理装置において実施させることを指示する切替指示を受信した場合、前記所定の記憶装置において記憶された前記複製対象メモリ情報に基づいて、前記複製対象データを読み出し、読み出した前記複製対象データを第２の情報処理装置に対して転送するレプリケーション処理と
をコンピュータに実行させる第１のコンピュータ・プログラム。
【０１４２】
（付記１１）
付記１０記載の第１のコンピュータ・プログラムを実行する情報処理装置から、第１のアプリケーションが提供するサービスの復旧に必要な情報である複製対象データを受信し、前記サービスを提供可能な第２のアプリケーションに対して、前記複製対象データに基づいて、前記サービスを復旧させる復旧処理
をコンピュータに実行させる第２のコンピュータ・プログラム。
【０１４３】
（付記１２）
第１のアプリケーションが提供するサービスの継続に影響を与える可能性がある監視対象を監視し、前記監視対象に異常が発生したことを検知したとき、付記１０記載の第１のコンピュータ・プログラムを実行する情報処理装置に対して、前記サービスを他の情報処理装置において実施させることを指示する切替指示を送信する状態管理処理
をコンピュータに実行させる第３のコンピュータ・プログラム。
【０１４４】
（付記１３）
前記レプリケーション処理において、前記複製対象メモリ情報を、所定の不揮発性記憶装置に保存する
付記１０記載の第１のコンピュータ・プログラム。
【０１４５】
（付記１４）
付記１３記載の第１のコンピュータ・プログラムを実行する情報処理装置の動作制御のための第４のコンピュータ・プログラムであって、その第４のコンピュータ・プログラムにより、
本装置の起動時に、本装置での前回の終了処理の結果を確認する確認処理と、
前回正常終了していなかった場合には、前記複製対象メモリ情報に基づいて位置を特定した前記複製対象データを保護するデータ保護処理と、
本装置の起動後に新たに起動された付記１３記載の第１のコンピュータ・プログラムに対して、前記切替指示を送信する
第４のコンピュータ・プログラム。
【符号の説明】
【０１４６】
１、１００、２００、３００    第１の情報処理装置（稼働系装置）
２、２２    ホストＯＳ
３、２３    仮想マシン
４、２４    ゲストＯＳ
５、２５、３０５、３２５    アプリケーション
６、２６    主記憶装置
７、３０７    複製対象通知部
８、３０８    レプリケーション処理部
９、３０９    複製対象データ
１１、３１１    記憶装置
１２、３１２    複製対象メモリ情報
２１、２２０、３２０    第２の情報処理装置（予備系装置）
２７、３２７    復旧処理部
３０    切替指示
１０１、２２１    状態管理部
２０１    ブート処理部
２１０    不揮発性記憶装置
３０６    記憶装置
５０１    主記憶装置のメモリ空間
５０２    ホストＯＳが使用するメモリ空間
５０３    レプリケーション関連の機能部が使用するメモリ空間
５０４    ゲストＯＳが使用するメモリ空間
９００    情報処理装置（コンピュータ）
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    通信インタフェース（Ｉ／Ｆ）
９０５    ディスプレイ
９０６    ハードディスク装置（ＨＤＤ）
９０６Ａ    プログラム群
９０６Ｂ    各種の記憶情報
９０７    バス
１０００    ネットワーク（通信ネットワーク）
【図１】
2015130134.tif 000003
【図２】
2015130134.tif 000004
【図３】
2015130134.tif 000005
【図４】
2015130134.tif 000006
【図５】
2015130134.tif 000007
【図６】
2015130134.tif 000008
【図７】
2015130134.tif 000009
【図８】
2015130134.tif 000010
【図９】
2015130134.tif 000011