(57)【要約】【課題】冗長化されたシステムにおいてフェイルオーバーが行われるときに、待機系装置が、動作環境情報について運用系装置と高速かつ柔軟に同期を取るようにする。【解決手段】動作環境同期装置４０は、運用系装置５から待機系装置４へのフェイルオーバーが行われる冗長化されたシステムにおいて、運用系装置５の第１の動作環境情報５１１と、フェイルオーバーが行われるときに待機系装置によって読み込まれる第２の動作環境情報４１１との差分を表す差分情報４０３を抽出する抽出部４１と、差分情報４０３に含まれる情報量が所定の条件を満たすか否かを判定する判定部４２と、フェイルオーバーによって、第２の動作環境情報４１１を第１の動作環境情報５１１に更新する際に、その所定の条件を満たす場合は、差分情報４０３を用いて更新し、その所定の条件を満たさない場合は、差分情報４０３を用いずに更新する更新部４３と、を備える。【選択図】      図８
2018084914.tif 000002
【特許請求の範囲】
【請求項１】
運用系装置から待機系装置へのフェイルオーバーが行われる冗長化されたシステムにおいて、前記運用系装置の動作環境を表す第一の動作環境情報と、前記フェイルオーバーが行われるときに前記待機系装置によって読み込まれる第二の動作環境情報との差分を表す差分情報を抽出する抽出手段と、
前記差分情報に含まれる情報量が所定の条件を満たすか否かを判定する判定手段と、
前記フェイルオーバーによって、前記第二の動作環境情報を前記第一の動作環境情報に更新する際に、前記判定手段が前記所定の条件を満たすと判定した場合は、前記差分情報を用いて更新し、前記判定手段が前記所定の条件を満たさないと判定した場合は、前記差分情報を用いずに更新する更新手段と、
を備える動作環境同期装置。
【請求項２】
前記判定手段は、前記情報量が閾値以下であるか否かを判定する、
請求項１に記載の動作環境同期装置。
【請求項３】
前記判定手段は、前記更新手段が前記差分情報を用いて前記第二の動作環境情報を前記第一の動作環境情報に更新するのに要する時間と、前記更新手段が前記差分情報を用いずに前記第二の動作環境情報を前記第一の動作環境情報に更新するのに要する時間とが等しくなるときの前記情報量を、前記閾値として用いて判定する、
請求項２に記載の動作環境同期装置。
【請求項４】
前記第一及び第二の動作環境情報は、その世代を表すレビジョン管理情報を含み、
前記抽出手段は、前記第一及び第二の動作環境情報に含まれる前記レビジョン管理情報が示す値が互いに異なる場合に、前記差分情報を抽出し、
前記更新手段は、前記第一及び第二の動作環境情報に含まれる前記レビジョン管理情報が示す値が互いに異なる場合に、前記第二の動作環境情報を前記第一の動作環境情報に更新する、
請求項１乃至３のいずれか一項に記載の動作環境同期装置。
【請求項５】
前記第一及び第二の動作環境情報は、複数の項目を含み、
前記抽出手段は、前記項目ごとに前記差分情報を抽出する、
請求項１乃至４のいずれか一項に記載の動作環境同期装置。
【請求項６】
前記第一及び第二の動作環境情報は、前記項目として、前記冗長化されたシステムの運用環境を規定する設定情報、及び、当該システムの構成を表す構成情報を含む、
請求項５に記載の動作環境同期装置。
【請求項７】
前記第二の動作環境情報は、前記待機系装置が起動する際に前記待機系装置によって実行されるＢＩＯＳによって読み込まれる、
請求項１乃至６のいずれか一項に記載の動作環境同期装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の動作環境同期装置を含む前記待機系装置と、前記運用系装置と、を有し、
前記運用系装置は、前記第一の動作環境情報が更新されたとき、及び、前記運用系装置から前記待機系装置への前記フェイルオーバーが行われるときに、前記第一の動作環境情報を前記動作環境同期装置へ送信する、
動作環境同期システム。
【請求項９】
情報処理装置によって、
運用系装置から待機系装置へのフェイルオーバーが行われる冗長化されたシステムにおいて、前記運用系装置の動作環境を表す第一の動作環境情報と、前記フェイルオーバーが行われるときに前記待機系装置によって読み込まれる第二の動作環境情報との差分を表す差分情報を抽出し、
前記差分情報に含まれる情報量が所定の条件を満たすか否かを判定し、
前記フェイルオーバーによって、前記第二の動作環境情報を前記第一の動作環境情報に更新する際に、前記所定の条件を満たすと判定した場合は、前記差分情報を用いて更新し、前記所定の条件を満たさないと判定した場合は、前記差分情報を用いずに更新する、
動作環境同期方法。
【請求項１０】
運用系装置から待機系装置へのフェイルオーバーが行われる冗長化されたシステムにおいて、前記運用系装置の動作環境を表す第一の動作環境情報と、前記フェイルオーバーが行われるときに前記待機系装置によって読み込まれる第二の動作環境情報との差分を表す差分情報を抽出する抽出処理と、
前記差分情報に含まれる情報量が所定の条件を満たすか否かを判定する判定処理と、
前記フェイルオーバーによって、前記第二の動作環境情報を前記第一の動作環境情報に更新する際に、前記判定処理が前記所定の条件を満たすと判定した場合は、前記差分情報を用いて更新し、前記判定処理が前記所定の条件を満たさないと判定した場合は、前記差分情報を用いずに更新する更新処理と、
をコンピュータに実行させるための動作環境同期プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、冗長化されたシステムにおいてフェイルオーバーが行われるときに、待機系装置の動作環境情報を運用系装置の動作環境情報に同期させる技術に関する。
【背景技術】
【０００２】
高度に情報化された現代社会においては、社会基盤を構築するコンピュータシステムに対して高い可用性が要求される。そして、高い可用性を実現するために、多くのコンピュータシステムは、運用系装置と待機系装置とによって冗長化されたシステムを構成している。
【０００３】
このような冗長化されたシステムでは、運用系装置に障害が発生した場合に、運用系装置の機能を待機系装置が引き継ぐフェイルオーバーが行われる。このフェイルオーバーでは、待機系装置は、運用系装置の動作環境を表す動作環境情報を引き継ぐ（動作環境情報について同期を取る）必要がある。そして、システムの可用性を高めるためには、フェイルオーバーに要する時間をできるだけ短縮することが求められるので、待機系装置が動作環境情報について運用系装置と高速に同期を取ることができるようにする技術に対する期待が高まってきている。
【０００４】
このような技術に関連する技術として、特許文献１には、障害が発生した現用系サーバから予備系サーバへの高速な切り替え処理を行うシステムが開示されている。このシステムでは、現用系サーバのＢＩＯＳ（Basic Input/Output System）情報を取得して、そのＢＩＯＳ情報を、切り替え先の予備系サーバへリストアする。このシステムは、現用系サーバのフルバックアップイメージを取得したのちに、現用系サーバの記憶デバイスに格納されるデータのうち、更新されたデータを表す差分情報を取得する。そして、このシステムは、予備系サーバが現用系サーバの業務を引き継ぐために必要なバックアップイメージ、及び、当該差分情報を、予備系サーバにリストアする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第2014-080492号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
フェイルオーバーが行なわれるときに、特許文献１によって開示された技術などを用いることにより、待機系装置が動作環境情報について運用系装置と同期を取る処理を高速化することができる。すなわち、待機系装置は、自装置の動作環境情報を運用系装置の動作環境情報に更新する場合に、動作環境情報に関する自装置と運用系装置との差分を示す差分情報を用いることにより、動作環境情報全体を更新する必要がなくなるので、その更新を高速化することができる。
【０００７】
しかしながら、差分情報を用いた更新を行うことにより、動作環境情報全体を更新するときよりも、かえって更新時間が長くなる場合があるという問題がある。すなわち、差分情報を用いた同期処理では、動作環境情報における差分箇所を確認しながら更新を行なう必要があるので、差分箇所が多い（差分情報の情報量が大きい）場合では、差分箇所を確認することによって生じるオーバーヘッドが大きくなる。したがって、このような場合は、動作環境情報全体を更新したほうが、差分情報を用いた更新を行うときよりも、更新時間が短くなる。特許文献１によって開示された技術では、このような問題に対して柔軟に対応することはできない。本願発明の主たる目的は、このような問題を解決する動作環境同期装置等を提供することである。
【課題を解決するための手段】
【０００８】
本願発明の一態様に係る動作環境同期装置は、運用系装置から待機系装置へのフェイルオーバーが行われる冗長化されたシステムにおいて、前記運用系装置の動作環境を表す第一の動作環境情報と、前記フェイルオーバーが行われるときに前記待機系装置によって読み込まれる第二の動作環境情報との差分を表す差分情報を抽出する抽出手段と、前記差分情報に含まれる情報量が所定の条件を満たすか否かを判定する判定手段と、前記フェイルオーバーによって、前記第二の動作環境情報を前記第一の動作環境情報に更新する際に、前記判定手段が前記所定の条件を満たすと判定した場合は、前記差分情報を用いて更新し、前記判定手段が前記所定の条件を満たさないと判定した場合は、前記差分情報を用いずに更新する更新手段と、を備える。
【０００９】
上記目的を達成する他の見地において、本願発明の一態様に係る動作環境同期方法は、情報処理装置によって、運用系装置から待機系装置へのフェイルオーバーが行われる冗長化されたシステムにおいて、前記運用系装置の動作環境を表す第一の動作環境情報と、前記フェイルオーバーが行われるときに前記待機系装置によって読み込まれる第二の動作環境情報との差分を表す差分情報を抽出し、前記差分情報に含まれる情報量が所定の条件を満たすか否かを判定し、前記フェイルオーバーによって、前記第二の動作環境情報を前記第一の動作環境情報に更新する際に、前記所定の条件を満たすと判定した場合は、前記差分情報を用いて更新し、前記所定の条件を満たさないと判定した場合は、前記差分情報を用いずに更新する。
【００１０】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る動作環境同期プログラムは、運用系装置から待機系装置へのフェイルオーバーが行われる冗長化されたシステムにおいて、前記運用系装置の動作環境を表す第一の動作環境情報と、前記フェイルオーバーが行われるときに前記待機系装置によって読み込まれる第二の動作環境情報との差分を表す差分情報を抽出する抽出処理と、前記差分情報に含まれる情報量が所定の条件を満たすか否かを判定する判定処理と、前記フェイルオーバーによって、前記第二の動作環境情報を前記第一の動作環境情報に更新する際に、前記判定処理が前記所定の条件を満たすと判定した場合は、前記差分情報を用いて更新し、前記判定処理が前記所定の条件を満たさないと判定した場合は、前記差分情報を用いずに更新する更新処理と、をコンピュータに実行させるためのプログラムである。
【００１１】
更に、本願発明は、係る動作環境同期プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１２】
本願発明は、冗長化されたシステムにおいてフェイルオーバーが行われるときに、待機系装置が、動作環境情報について運用系装置と高速かつ柔軟に同期を取ることを可能とする。
【図面の簡単な説明】
【００１３】
【図１】本願発明の第１の実施形態に係る動作環境同期システム３の構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係る動作環境情報の構成を例示する図である。
【図３】本願発明の第１の実施形態に係る動作環境同期システム３の通常時の動作を示すシーケンス図である。
【図４】本願発明の第１の実施形態に係る動作環境同期システム３のフェイルオーバー時の動作を示すシーケンス図である。
【図５】本願発明の第１の実施形態に係る差分情報１０３の構成を例示する図である。
【図６】本願発明の第１の実施形態に係る動作環境同期装置１０が行なう、動作環境情報の同期に関する事前準備処理を示すフローチャートである。
【図７】本願発明の第１の実施形態に係る動作環境同期装置１０が行なう、動作環境情報の同期処理を示すフローチャートである。
【図８】本願発明の第２の実施形態に係る動作環境同期装置４０の構成を示すブロック図である。
【図９】本願発明の各実施形態に係る動作環境同期装置を実行可能な情報処理装置９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係る動作環境同期システム３の構成を概念的に示すブロック図である。動作環境同期システム３は、運用系装置２及び待機系装置１を有する、冗長化されたシステムである。動作環境同期システム３では、運用系装置２において障害が発生した場合、待機系装置１が運用系装置２の機能を引き継ぐフェイルオーバーが行なわれる。
【００１６】
運用系装置２は、管理サーバ２００と運用サーバ２１０とを有する。管理サーバ２００及び運用サーバ２１０は、互いに独立した物理サーバであってもよいし、仮想サーバであってもよい。運用サーバ２１０は、ＢＩＯＳ２１２を実行し、その動作環境は、動作環境情報２１１によって規定される。ＢＩＯＳ２１２及び動作環境情報２１１は、運用サーバ２１０が備える記憶デバイス（図示せず）に記憶されている。当該記憶デバイスは、例えば、揮発性のメモリや不揮発性のメモリなどである。運用サーバ２１０は、様々なアプリケーションを実行することによって、様々なサービスをユーザに提供する。
【００１７】
図２は、本実施形態に係る動作環境情報２１１の構成を概念的に例示する図である。動作環境情報２１１は、設定情報２１１１、構成情報２１１２、及び、レビジョン（レビジョン管理情報）２１１３などを含んでいる。設定情報２１１１は、動作環境同期システム３の運用環境等を規定する情報である。構成情報２１１２は、動作環境同期システム３の構成等を表す情報である。レビジョン２１１３は、動作環境情報２１１の世代を識別可能な情報であり、動作環境情報２１１が更新されるたびに、その値が更新されることとする。動作環境情報２１１は、ＢＩＯＳ２１２によって更新される。
【００１８】
動作環境情報２１１は、動作環境同期システム３においてフェイルオーバーが行なわれる際に、運用系装置２と待機系装置１との間で、同期をとる対象となる情報である。図１に示す動作環境情報２０１、動作環境情報１０１、及び、動作環境情報１１１の構成も、動作環境情報２１１と同様である。なお、動作環境情報２１１の構成は、図２に例示する構成に限定されない。
【００１９】
図１に示す管理サーバ２００は、運用サーバ２１０の状態等を管理するサーバであり、待機系装置１と通信可能に接続されている。管理サーバ２００は、動作環境情報２１１の写しを動作環境情報２０１として、内蔵する記憶デバイス（図示せず）に記憶している。当該記憶デバイスは、例えば、揮発性のメモリや不揮発性のメモリなどである。管理サーバ２００は、最新の動作環境情報２０１を、待機系装置１へ送信する。
【００２０】
待機系装置１は、管理サーバ１００と待機サーバ１１０とを有する。管理サーバ１００及び待機サーバ１１０は、互いに独立した物理サーバであってもよいし、仮想サーバであってもよい。待機サーバ１１０は、ＢＩＯＳ１１２を実行し、その動作環境は、動作環境情報１１１によって規定される。ＢＩＯＳ１１２及び動作環境情報１１１は、待機サーバ１１０が備える記憶デバイス（図示せず）に記憶されている。待機サーバ１１０は、運用サーバ２１０が正常に稼動しているときは、コールドスタンバイ状態にある。但し、コールドスタンバイとは、冗長化されたシステムにおいて、運用系装置が稼動している間は、待機系装置を稼動させずに待機状態にしておく形態である。そして、動作環境情報１１１は、待機サーバ１１０がコールドスタンバイ状態にあるときは、更新不能な情報であることとする。待機サーバ１１０は、運用サーバ２１０に障害が発生した場合に、フェイルオーバーによって起動し、運用サーバ２１０の機能を引き継ぐ。
【００２１】
管理サーバ１００は、待機サーバ１１０の状態等を管理するサーバであり、運用系装置２と通信可能に接続されている。管理サーバ１００は、動作環境同期装置１０を内包し、フェイルオーバーにおいて、運用サーバ２１０と待機サーバ１１０との間で、動作環境情報を同期させる処理を制御する。動作環境同期装置１０の詳細動作については後述する。
【００２２】
次に図３及び図４のシーケンス図を参照して、本実施形態に係る動作環境同期システム３の動作の概要を説明する。
【００２３】
図３は、本実施形態に係る動作環境同期システム３の通常時の動作を示すシーケンス図である。
【００２４】
ユーザ操作により、管理サーバ２００の電源スイッチがオンされる（ステップＳ１０１）。管理サーバ２００は、運用サーバ２１０の電源をオンする（ステップＳ１０２）。運用サーバ２１０は、ＢＩＯＳ２１２のセットアップメニューを、表示画面（図１において不図示）に表示する（ステップＳ１０３）。ユーザは、そのセットアップメニューにおいて、セットアップ変更内容（動作環境情報２１１に対する変更内容）を入力する（ステップＳ１０４）。
【００２５】
運用サーバ２１０は、ユーザによって入力されたセットアップ変更内容に従って、動作環境情報２１１を更新する（ステップＳ１０５）。運用サーバ２１０は、セットアップ処理の完了を、管理サーバ２００に報告する（ステップＳ１０６）。管理サーバ２００は、運用サーバ２１０をリブートする（ステップＳ１０７）。
【００２６】
運用サーバ２１０は、更新された動作環境情報２１１を、管理サーバ２００へ送信する（ステップＳ１０８）。管理サーバ２００は、動作環境情報２０１を運用サーバ２１０から受信した動作環境情報２１１に更新する（ステップＳ１０９）。管理サーバ２００は、動作環境情報２１１の受信完了を、運用サーバ２１０へ報告する（ステップＳ１１０）。
【００２７】
管理サーバ２００は、動作環境情報２０１を管理サーバ１００へ送信する（ステップＳ１１１）。管理サーバ１００は、動作環境情報の同期に関する事前準備処理（その詳細は後述する）を行なう（ステップＳ３００）。管理サーバ１００は、動作環境情報２０１の受信完了を、管理サーバ２００へ報告する（ステップＳ１１２）。運用サーバ２１０は、ＯＳ（Operating System）を起動し、運用を開始する（ステップＳ１１３）。
【００２８】
図４は、本実施形態に係る動作環境同期システム３のフェイルオーバー時の動作を示すシーケンス図である。
【００２９】
運用サーバ２１０は、自装置の障害発生を管理サーバ２００へ報告する（ステップＳ２０１）。管理サーバ２００は、管理サーバ１００にフェイルオーバーを指示する（ステップＳ２０２）。管理サーバ２００は、動作環境情報２０１を管理サーバ１００へ送信する（ステップＳ２０３）。
【００３０】
管理サーバ１００は、動作環境情報の同期に関する事前準備処理を行う（ステップＳ３００）。管理サーバ１００は、動作環境情報２０１の受信完了を、管理サーバ２００へ報告する（ステップＳ２０４）。管理サーバ１００は、フェイルオーバーの準備完了を、管理サーバ２００へ報告する（ステップＳ２０５）。
【００３１】
管理サーバ１００は、待機サーバ１１０の電源をオンする（ステップＳ２０６）。管理サーバ１００及び待機サーバ１１０は、動作環境情報の同期処理（その詳細は後述する）を行なう（ステップＳ４００）。待機サーバ１１０は、ＯＳ（Operating System）を起動し、フェイルオーバー後の運用を開始する（ステップＳ２０７）。
【００３２】
次に、図１に示す動作環境同期装置１０の詳細動作について説明する。動作環境同期装置１０は、待機サーバ１１０における動作環境情報１１１と、運用サーバ２１０における動作環境情報２１１とが同期するように制御する装置である。すなわち、動作環境同期装置１０は、フェイルオーバーが行なわれる場合に、待機サーバ１１０が、運用サーバ２１の動作環境を引き継いで動作できるように制御する。動作環境同期装置１０は、図１に示す通り、抽出部１１、判定部１２、及び、更新部１３を備えている。
【００３３】
抽出部１１は、動作環境同期装置１０に動作環境情報１０１が記憶されている場合、動作環境情報１０１と管理サーバ２００から受信した動作環境情報２０１との差分を、差分情報１０３として抽出する。なお、例えば、動作環境同期システム３において冗長化されたシステムを構築するために、待機系装置１が新たに設置されたときなどでは、動作環境同期装置１０に、動作環境情報１０１が記憶されていない場合がある。
【００３４】
抽出部１１は、動作環境情報１０１と動作環境情報２０１とに含まれるレビジョン（図２に例示するレビジョン２１１３に相当）が等しい場合、動作環境情報１０１と動作環境情報２０１とが同一であるとみなして、差分情報１０３を抽出する処理を行わない。抽出部１１は、動作環境情報１０１と動作環境情報２０１とに含まれるレビジョンが異なる場合、図２に例示する設定情報２１１１及び構成情報２１１２などの項目ごとに、例えばビット単位で動作環境情報１０１と動作環境情報２０１との排他的論理和を算出することによって、差分情報１０３を抽出する処理を行う。抽出部１１は、抽出した差分情報１０３を、動作環境同期装置１０が内蔵する記憶デバイス（図示せず）に記憶する。当該記憶デバイスは、例えば、揮発性のメモリや不揮発性のメモリなどである。
【００３５】
図５は、本実施形態に係る差分情報１０３の構成を概念的に例示する図である。差分情報１０３は、ヘッダエリア１０３０、及び、データエリア１０３１を含んでいる。
【００３６】
ヘッダエリア１０３０には、Signatureが格納されている。Signatureは、差分情報１０３が動作環境同期装置１０に最初に格納されるときに書き込まれ、差分情報１０３が削除されるときに消去される。すなわち、ヘッダエリア１０３０にSignatureが格納されていることは、差分情報１０３が動作環境同期装置１０に存在することを示している。
【００３７】
データエリア１０３１は、差分情報１０３の本体を構成し、フラグ１０３２、オフセット１０３３、サイズ１０３４、及び、データ１０３５という４つの項目を含む、１以上のエントリを含んでいる。このうちデータ１０３５には、例えばエントリごとに、差分情報１０３における最大８バイト分の本体のデータ（差分データ）が格納されていることとする。
【００３８】
フラグ１０３２には、「Data」、「Area」、「Cont」、「Invalid」のうちのいずれかが設定されている。「Data」は、そのエントリのデータ１０３５として格納されている差分データのサイズが８バイト以下であることを示す。「Area」は、８バイトより大きい差分データが連続する複数のエントリに亘って格納されている場合に、そのエントリが当該差分データを格納する最初のエントリであることを示す。「Cont」は、８バイトより大きい差分データが連続する複数のエントリに亘って格納されている場合に、そのエントリが当該差分データを格納する２番目以降のエントリであることを示す。「Invalid」は、そのエントリに差分データが格納されていない（すなわち、当該エントリが無効である）ことを示す。
【００３９】
オフセット１０３３には、動作環境情報１０１及び動作環境情報２０１が格納されたアドレス空間における、各エントリが示す差分箇所の位置（ポインタ）を表すオフセットアドレスが格納されている。ただし、フラグ１０３２が「Cont」であるエントリにおけるオフセット１０３３には、８バイトより大きい差分データを格納する最初のエントリ（すなわちフラグ１０３２として「Area」が設定されたエントリ）のオフセットアドレスに対する相対アドレスが格納されている。
【００４０】
サイズ１０３４には、そのエントリに格納する差分データのサイズが格納されている。ただし、フラグ１０３２が「Area」であるエントリにおけるオフセット１０３３には、当該エントリを先頭に複数のエントリに亘って格納された８バイトより大きい差分データ全体のサイズが格納されている。
【００４１】
例えば、図５に例示するデータエリア１０３１における上から１番目のエントリには、オフセットアドレス「Offset xx」に１バイトの差分データ「０１」が格納されている。ただし、図５におけるデータ１０３５には、１６進数により表されるデータが格納されていることとする。また、データ１０３５における「ｘ」は、データが無いことを示す記号である。例えば、図５に例示するデータエリア１０３１における上から４乃至７番目のエントリには、オフセットアドレス「Offset ss」に３２バイトの差分データが格納されている。
【００４２】
図５に例示する差分情報１０３の構成は一例であり、差分情報１０３の構成は、図５に例示する構成とは異なってもよい。
【００４３】
図１に示す判定部１２は、フェイルオーバーによって、動作環境同期装置１０が、動作環境情報１１１を動作環境情報１０１に更新する際に、抽出部１１によって抽出された差分情報１０３に含まれる情報量（データ量）が、所定の条件を満たすか否か（例えば、所定の閾値以下であるか否か）を判定する。
【００４４】
判定部１２は、例えば、動作環境情報１０１に含まれる情報量の半分を、当該閾値として使用してもよい。判定部１２は、あるいは、後述する更新部１３が、差分情報１０３を用いて動作環境情報１１１を動作環境情報１０１に更新するのに要する時間と、差分情報１０３を用いずに動作環境情報１１１を動作環境情報１０１に更新するのに要する時間とが等しくなるときの情報量を、当該閾値として使用してもよい。ただし、差分情報１０３に含まれる情報量に応じて、動作環境情報１１１を動作環境情報１０１に更新するのに要する時間は、事前に測定された値として得られていることとする。差分情報１０３を用いて動作環境情報１１１を動作環境情報１０１に更新するのに要する時間は、差分箇所を確認することによって生じるオーバーヘッドの増加に伴い、差分情報１０３に含まれる情報量が大きくなるにつれて長くなる。
【００４５】
更新部１３は、フェイルオーバーが行われるときに、動作環境情報１１１を動作環境情報１０１に更新する。更新部１３は、この際、判定部１２による判定結果が、差分情報１０３に含まれる情報量が閾値以下であることを示す場合は、差分情報１０３を用いて動作環境情報１１１を更新する。この場合更新部１３は、動作環境情報１１１における差分情報１０３により示されるオフセットアドレスを確認し、動作環境情報１１１における当該オフセットアドレスのデータを、差分情報１０３の内容に基づいて更新する。
【００４６】
更新部１３は、判定部１２による判定結果が、差分情報１０３に含まれる情報量が閾値より大きいことを示す場合は、差分情報１０３を用いずに、動作環境情報１０１全体を待機サーバ１１０に複写することによって、動作環境情報１１１を動作環境情報１０１に更新する（置き換える）。
【００４７】
次に図６及び図７のフローチャートを参照して、本実施形態に係る動作環境同期装置１０の動作（処理）について詳細に説明する。
【００４８】
図６は、動作環境同期装置１０が行なう、動作環境情報の同期に関する事前準備処理を示すフローチャートである。図６のフローチャートに示す事前準備処理は、図３及び図４のシーケンス図に示すステップS３００に相当する。
【００４９】
動作環境同期装置１０は、ステップＳ３００の処理を開始するのにあたり、管理サーバ２００から、動作環境情報２０１を受信する（ステップＳ３０１）。更新部１３は、動作環境同期装置１０に、動作環境情報１０１が記憶されているか否かを確認する（ステップＳ３０２）。
【００５０】
動作環境情報１０１が動作環境同期装置１０に記憶されている場合（ステップＳ３０３でＹｅｓ）、更新部１３は、動作環境情報２０１と動作環境情報１０１とのレビジョンが等しいか否かを確認する（ステップＳ３０４）。レビジョンが等しい場合（ステップＳ３０５でＹｅｓ）、処理はステップS３０７へ進む。
【００５１】
レビジョンが異なる場合（ステップＳ３０５でＮｏ）、更新部１３は、管理サーバ２００から受信した動作環境情報２０１を、動作環境情報１０１として、動作環境同期装置１０に格納し（ステップＳ３０６）、処理はステップＳ３０７へ進む。
【００５２】
抽出部１１は、動作環境情報１０１と動作環境情報１１１とのレビジョンが等しいか否かを確認する（ステップＳ３０７）。レビジョンが等しい場合（ステップＳ３０８でＹｅｓ）、ステップS３００の処理は終了する。レビジョンが異なる場合（ステップＳ３０８でＮｏ）、抽出部１１は、動作環境情報１０１と、動作環境情報１１１との差分を差分情報１０３として抽出し、抽出した差分情報１０３を、動作環境同期装置１０に格納し（ステップＳ３０９）、ステップS３００の処理は終了する。
【００５３】
図７は、動作環境同期装置１０が行なう、動作環境情報の同期処理を示すフローチャートである。図７のフローチャートに示す同期処理は、図４のシーケンス図に示すステップS４００に相当する。
【００５４】
更新部１３は、動作環境情報１０１と動作環境情報１１１とのレビジョンが等しいか否かを確認する（ステップＳ４０１）。レビジョンが等しい場合（ステップＳ４０２でＹｅｓ）、ステップS４００の処理は終了する。
【００５５】
レビジョンが異なる場合（ステップＳ４０２でＮｏ）、判定部１２は、差分情報１０３に含まれる情報量が閾値以下であるか否かを確認する（ステップＳ４０３）。その情報量が閾値以下である場合（ステップＳ４０４でＹｅｓ）、更新部１３は、差分情報１０３を用いて、動作環境情報１１１を動作環境情報１０１に更新し（ステップＳ４０５）、ステップＳ４００の処理は終了する。その情報量が閾値よりも大きい場合（ステップＳ４０４でＮｏ）、更新部１３は、差分情報１０３を用いずに、動作環境情報１１１を動作環境情報１０１に更新し（ステップＳ４０６）、ステップS４００の処理は終了する。
【００５６】
本実施形態に係る動作環境同期装置１０は、冗長化されたシステムにおいてフェイルオーバーが行われるときに、待機系装置が、動作環境情報について運用系装置と高速かつ柔軟に同期を取るようにすることができる。その理由は、動作環境同期装置１０は、動作環境情報について、運用系装置と待機系装置との差分を抽出した差分情報に含まれる情報量が所定の条件を満たすか否かに応じて、動作環境情報の更新において、差分情報を使用するか否かを決めるからである。
【００５７】
以下に、本実施形態に係る動作環境同期装置１０によって実現される効果について、詳細に説明する。
【００５８】
フェイルオーバーにおいて、待機系装置は、自装置の動作環境情報を運用系装置の動作環境情報に更新する（同期をとる）際に、動作環境情報に関する自装置と運用系装置との差分を示す差分情報を用いることにより、その更新を高速化することができる。しかしながら、差分情報を用いた更新した場合、差分箇所を確認することによって生じるオーバーヘッドが大きくなることによって、動作環境情報全体を更新したときよりも、動作環境情報の更新時間がかえって長くなる（悪化する）といった問題がある。
【００５９】
このような問題に対して、本実施形態に係る動作環境同期装置１０は、抽出部１１、判定部１２、及び、更新部１３を備える。即ち、抽出部１１は、運用サーバ２１０（運用系装置２）から待機サーバ１１０（待機系装置１）へのフェイルオーバーが行われる動作環境同期システム３において、差分情報１０３を抽出する。差分情報１０３は、運用サーバ２１０の動作環境を表す動作環境情報２１１と、フェイルオーバーが行われるときに待機サーバ１１０によって読み込まれる動作環境情報１１１との差分を表す情報である。判定部１２は、差分情報１０３に含まれる情報量が所定の条件を満たすか否か（例えば、閾値以下であるか否か）を判定する。更新部１３は、フェイルオーバーによって、動作環境情報１１１を動作環境情報１０１に更新する際に、判定部１２が当該所定の条件を満たすと判定した場合は、差分情報１０３を用いて更新する。更新部１３は、判定部１２が当該所定の条件を満たさないと判定した場合は、差分情報１０３を用いずに更新する。これにより、本実施形態に係る動作環境同期装置１０は、冗長化されたシステムにおいてフェイルオーバーが行われるときに、待機系装置が、動作環境情報について運用系装置と高速かつ柔軟に同期を取るようにすることができる。
【００６０】
また、本実施形態に係る判定部１２は、更新部１３が差分情報１０３を用いて動作環境情報１１１を動作環境情報１０１に更新するのに要する時間と、前記更新部１３が差分情報１０３を用いずに動作環境情報１１１を動作環境情報１０１に更新するのに要する時間とが等しくなるときの差分情報１０３に含まれる情報量を、閾値として用いて判定する。すなわち、本実施形態に係る動作環境同期装置１０は、差分情報１０３に含まれる情報量に応じて、動作環境情報１１１を動作環境情報１０１に更新するのに要する時間が最短になるように制御する。これにより、本実施形態に係る動作環境同期装置１０は、待機系装置が、動作環境情報について運用系装置と高速かつ柔軟に同期を取るようにすることを、高い精度で行なうことができる。
【００６１】
また、上述した本実施形態では、動作環境同期装置１０は、管理サーバ１００に内包されているが、動作環境同期装置１０が実装される構成は、図１に示す構成に限定されない。動作環境同期装置１０は、管理サーバ１００と通信可能に接続された、管理サーバ１００とは異なる装置であってもよい。あるいは、動作環境同期装置１０が備える機能の少なくとも一部を、例えばＢＩＯＳ１１２が備えるようにしてもよい。
【００６２】
＜第２の実施形態＞
図８は、本願発明の第２の実施形態に係る動作環境同期装置４０の構成を概念的に示すブロック図である。
【００６３】
本実施形態に係る動作環境同期装置４０は、抽出部４１、判定部４２、及び、更新部４３を備えている。
【００６４】
抽出部４１は、運用系装置５から待機系装置４へのフェイルオーバーが行われる冗長化されたシステムにおいて、運用系装置５の動作環境を表す第１の動作環境情報５１１と、フェイルオーバーが行われるときに待機系装置４によって読み込まれる第２の動作環境情報４１１との差分を表す差分情報４０３を抽出する。
【００６５】
判定部４２は、差分情報４０３に含まれる情報量が所定の条件を満たすか否かを判定する。
【００６６】
更新部４３は、フェイルオーバーによって、第２の動作環境情報４１１を第１の動作環境情報５１１に更新する際に、判定部４２が当該所定の条件を満たすと判定した場合は、差分情報４０３を用いて更新する。更新部４３は、判定部４２が当該所定の条件を満たさないと判定した場合は、差分情報４０３を用いずに、第２の動作環境情報４１１を第１の動作環境情報５１１に更新する。
【００６７】
本実施形態に係る動作環境同期装置４０は、冗長化されたシステムにおいてフェイルオーバーが行われるときに、待機系装置が、動作環境情報について運用系装置と高速かつ柔軟に同期を取るようにすることができる。その理由は、動作環境同期装置４０は、動作環境情報について、運用系装置５と待機系装置と４の差分を抽出した差分情報４０３に含まれる情報量が所定の条件を満たすか否かに応じて、動作環境情報の更新において、差分情報４０３を使用するか否かを決めるからである。
【００６８】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図８に示した動作環境同期装置１０及び４０における各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、及び、図８において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・抽出部１１及び４１
・判定部１２及び４２、
・更新部１３及び４３、
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図９を参照して説明する。
【００６９】
図９は、本願発明の各実施形態に係る動作環境同期装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図９は、図１、及び、図８に示した動作環境同期装置或いはその一部を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。図９に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・無線送受信部等の外部装置との通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９。
【００７０】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【００７１】
そして、上述した実施形態を例に説明した本願発明は、図９に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１及び図８）における上述した構成、或いはフローチャート（図６及び図７）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００７２】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００７３】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７４】
１    待機系装置
１０    動作環境同期装置
１１    抽出部
１２    判定部
１３    更新部
１０１    動作環境情報
１０３    差分情報
１０３０    ヘッダエリア
１０３１    データエリア
１０３２    フラグ
１０３３    オフセット
１０３４    サイズ
１０３５    データ
１１０    待機サーバ
１１１    動作環境情報
１１２    ＢＩＯＳ
２    運用系装置
２００    管理サーバ
２０１    動作環境情報
２１０    運用サーバ
２１１    動作環境情報
２１１１    設定情報
２１１２    構成情報
２１１３    レビジョン
２１２    ＢＩＯＳ
３    動作環境同期システム
４    待機系装置
４０    動作環境同期装置
４１    抽出部
４２    判定部
４３    更新部
４０３    差分情報
４１１    第２の動作環境情報
５    運用系装置
５１１    第１の動作環境情報
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2018084914.tif 000003
【図２】
2018084914.tif 000004
【図３】
2018084914.tif 000005
【図４】
2018084914.tif 000006
【図５】
2018084914.tif 000007
【図６】
2018084914.tif 000008
【図７】
2018084914.tif 000009
【図８】
2018084914.tif 000010
【図９】
2018084914.tif 000011