(57)【特許請求の範囲】
【請求項１】
仮想化環境が構築された稼働系および待機系の物理計算機を備える計算機システムであって、
稼働系および待機系の物理計算機の各々は、
複数の仮想計算機の各々において共通に用いられる共通情報を格納する第１および第２の共用記憶領域を有する記憶部と、
前記複数の仮想計算機のそれぞれにおいて認識されている複数の仮想ディスクと、前記第１および第２の共用記憶領域との間の対応関係を管理する管理部と、
前記複数の仮想ディスクが前記第１の共用記憶領域に割り当てられている場合、前記共通情報の更新要求を受け付けたことに基づいて、前記第２の共用記憶領域に格納された前記共通情報の更新処理を実行する更新制御部と、
当該物理計算機の系を稼働系または待機系に切り替える切替部とを含み、
待機系の前記物理計算機における前記第２の共用記憶領域に格納された前記共通情報の更新が終了した場合に、待機系の前記物理計算機における前記管理部は、前記第１の共用記憶領域に割り当てられている前記仮想ディスクを前記第２の共用記憶領域に割り当て直し、
待機系の前記物理計算機における前記管理部によって、前記第１の共用記憶領域に割り当てられている前記仮想ディスクが前記第２の共用記憶領域に割り当て直された場合に、待機系の前記物理計算機における前記更新制御部は、前記第１の共用記憶領域に格納された前記共通情報の更新処理をさらに実行し、
待機系の前記物理計算機における前記切替部は、待機系の前記物理計算機における前記第１および第２の共用記憶領域に格納された前記共通情報の更新が終了した場合に、系の切替要求を稼働系の前記物理計算機に送信する、計算機システム。
【請求項２】
前記更新制御部は、前記複数の仮想計算機のうちの１つの仮想計算機に対して前記共通情報の更新を実行するように指示する、請求項１に記載の計算機システム。
【請求項３】
前記更新制御部は、前記共通情報を利用しない、前記複数の仮想計算機以外の特定仮想計算機に対して前記共通情報の更新を実行するように指示する、請求項１に記載の計算機システム。
【請求項４】
前記共通情報の更新が終了した後に、稼働系の物理計算機においてソフトウェア障害が発生した場合、当該稼働系の物理計算機の前記切替部は、系の切り替え要求を待機系の前記物理計算機に送信し、当該稼働系の物理計算機を待機系に切り替え、
当該待機系に切り替えられた前記物理計算機の前記更新制御部は、更新後の前記共通情報を更新前の前記共通情報に更新し直す、請求項１〜３のいずれか１項に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、計算機システムに関し、特に、仮想化環境が構築された稼働系および待機系の物理計算機を備える計算機システムに関する。
【背景技術】
【０００２】
従来、電力系統制御などの高信頼性が要求される場合には、稼働系計算機に障害が発生した場合に、その稼働系計算機の処理を引き継ぐ待機系計算機を備えた二重系システムが用いられている。
【０００３】
近年、このような二重系システムにおいても、計算機を仮想化する技術を用いることにより物理計算機上に仮想的な計算機（仮想化環境）を構築することが可能となっている。また、物理計算機の高性能化に伴って、同一の物理計算機上に多数の仮想化環境を構築することが可能となっており、その構築した各仮想化環境が各ユーザに提供される。ユーザは、この仮想化環境上でアプリケーションを実行することができる。
【０００４】
このような仮想化技術の一例として、特許文献１（特開２０１０−２３７７４２号公報）は、仮想マシンサーバを開示している。この仮想マシンサーバは、複数の専用仮想記憶領域と、共用仮想記憶領域とを備える。仮想マシンサーバは、複数の仮想マシンに含まれる任意の仮想マシンから当該任意の仮想マシンに対応する専用仮想記憶領域に対して参照要求されたファイルが共用仮想記憶領域に格納されている場合に、当該参照要求されたファイルを共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３７７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、特許文献１の技術によると、共用記憶領域に格納されているファイルを更新する場合、上記複数の仮想マシンは、当該更新が終了するまで当該ファイルを参照できないと考えられるため、当該ファイルを用いた処理を実行することができない。また、二重系システムにおいては、高信頼性のため、ファイル更新を実行している間であってもできるだけ冗長構成を保持することが好ましい。しかし、特許文献１の技術ではファイル更新中は、すべての仮想計算機について冗長構成を実現することができないと考えられる。
【０００７】
本開示は、上記のような課題に鑑みてなされたものであって、ある局面における目的は、物理計算機上に仮想化環境を構築した二重化システムにおいて情報の更新を行なう場合に、システムの信頼性をより高めることが可能な技術を提供することである。
【課題を解決するための手段】
【０００８】
ある実施の形態に従うと、仮想化環境が構築された稼働系および待機系の物理計算機を備える計算機システムが提供される。稼働系および待機系の物理計算機の各々は、複数の仮想計算機の各々において共通に用いられる共通情報を格納する第１および第２の共用記憶領域を有する記憶部と、複数の仮想計算機のそれぞれにおいて認識されている複数の仮想ディスクと、第１および第２の共用記憶領域との間の対応関係を管理する管理部と、複数の仮想ディスクが第１の共用記憶領域に割り当てられている場合、共通情報の更新要求を受け付けたことに基づいて、第２の共用記憶領域に格納された共通情報の更新処理を実行する更新制御部と、当該物理計算機の系を稼働系または待機系に切り替える切替部とを含む。第２の共用記憶領域に格納された共通情報の更新が終了した場合に、管理部は、第１の共用記憶領域に割り当てられている仮想ディスクを第２の共用記憶領域に割り当て直す。待機系の物理計算機における切替部は、共通情報の更新が終了した場合に、系の切替要求を稼働系の物理計算機に送信する。
【発明の効果】
【０００９】
本開示によると、物理計算機上に仮想化環境を構築した二重化システムにおいて情報の更新を行なう場合に、システムの信頼性をより高めることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態に従う計算機システムの構成例を示す図である。
【図２】本実施の形態に従う情報テーブルを示す図である。
【図３】本実施の形態に従う他の情報テーブルを示す図である。
【図４】本実施の形態に従う物理計算機のハードウェア構成例を示すブロック図である。
【図５】本実施の形態に従う物理計算機の機能構成を示す模式図である。
【図６】本実施の形態に従う待機系の物理計算機の処理手順を示すフローチャートである。
【図７】本実施の形態に従う稼働系の物理計算機の処理手順を示すフローチャートである。
【図８】本実施の形態の変形例に従う計算機システムの構成例を示す図である。
【図９】本実施の形態の変形例に従う待機系の物理計算機の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、同一または相当する部分に同一の参照符号を付し、その説明を繰返さない場合がある。また、以下に説明する実施の形態において、個数、量などに言及する場合、特に記載がある場合を除き、本発明の範囲は必ずしもその個数、量などに限定されない。また、以下の実施の形態において、各々の構成要素は、特に記載がある場合を除き、本発明にとって必ずしも必須のものではない。
【００１２】
＜システム構成＞
図１は、本実施の形態に従う計算機システム１０００の構成例を示す図である。計算機システム１０００は、電力系統制御などの比較的大規模な装置または設備の監視制御に適用される。例えば、計算機システム１０００は、管轄区間における発電所全体の発電機制御を統括する給電指令所に配置される。
【００１３】
図１を参照して、計算機システム１０００は、二重化された２つの物理計算機１００Ａ、１００Ｂを含む。物理計算機１００Ａおよび物理計算機１００Ｂは、基本的に同じ構成であり、一方が稼働系に設定され他方が待機系に設定されて二重化を構成している。
【００１４】
物理計算機１００Ａ，１００Ｂ（以下、「物理計算機１００」とも総称する。）は、それぞれ仮想計算機１０Ａ，１０Ｂと、仮想計算機２０Ａ，２０Ｂと、仮想計算機３０Ａ，３０Ｂと、共用記憶領域１１１Ａ，１１１Ｂと、共用記憶領域１１２Ａ，１１２Ｂと、専用記憶領域１２１Ａ，１２１Ｂと、専用記憶領域１２２Ａ，１２２Ｂと、専用記憶領域１２３Ａ，１２３Ｂとを含む。
【００１５】
仮想計算機１０Ａ，１０Ｂ（以下、「仮想計算機１０」とも総称する。）は、それぞれ仮想ディスク１１Ａ，１１Ｂ（以下、「仮想ディスク１１」とも総称する。）と、仮想ディスク１２Ａ，１２Ｂ（以下、「仮想ディスク１２」とも総称する。）とを含む。仮想計算機２０Ａ，２０Ｂ（以下、「仮想計算機２０」とも総称する。）は、それぞれ仮想ディスク２１Ａ，２１Ｂ（以下、「仮想ディスク２１」とも総称する。）と、仮想ディスク２２Ａ，２２Ｂ（以下、「仮想ディスク２２」とも総称する。）とを含む。仮想計算機３０Ａ，３０Ｂ（以下、「仮想計算機３０」とも総称する。）は、それぞれ仮想ディスク３１Ａ，３１Ｂ（以下、「仮想ディスク３１」とも総称する。）と、仮想ディスク３２Ａ，３２Ｂ（以下、「仮想ディスク３２」とも総称する。）とを含む。
【００１６】
物理計算機１００は、インストールされたホストＯＳ（Operating System）上で各種機能を実行する。また、仮想計算機１０〜３０は、ホストＯＳとは独立してゲストＯＳの実行環境が用意されており、ゲストＯＳに基づいて物理計算機１００内で稼働する仮想的な計算機である。ここでは、仮想計算機１０〜３０には、同一のＯＳがインストールされているものとする。また、仮想計算機１０〜３０は、ＯＳのシステムファイル、レジストリ情報等について同一内容の情報を使用するものとする。さらに、仮想計算機１０〜３０は、ユーザアカウント、コンピュータ名およびネットワーク情報等の固有情報について仮想計算機ごとに異なる内容の情報を使用するものとする。
【００１７】
共用記憶領域１１１Ａ，１１１Ｂ（以下、「共用記憶領域１１１」とも総称する。）は、それぞれ共用記憶領域１１２Ａ，１１２Ｂ（以下、「共用記憶領域１１２」とも総称する。）と同一内容の情報を格納する。具体的には、共用記憶領域１１１，１１２は、仮想計算機１０〜３０が稼働するために必要な情報（データおよびプログラム等）のうち、これらの仮想計算機により共通して用いられる情報（システムソフトウェア、システムデータ、レジストリ情報等）を格納する。なお、共用記憶領域１１１，１１２のうちのいずれか一方に、仮想ディスク１１，２１，３１が割り当てられる。
【００１８】
専用記憶領域１２１Ａ，１２１Ｂ（以下、「専用記憶領域１２１」とも総称する。）は、それぞれ仮想計算機１０Ａ，１０Ｂ専用の記憶領域である。同様に、専用記憶領域１２２Ａ，１２２Ｂ（以下、「専用記憶領域１２２」とも総称する。）は、それぞれ仮想計算機２０Ａ，２０Ｂ専用の記憶領域である。専用記憶領域１２３Ａ，１２３Ｂ（以下、「専用記憶領域１２３」とも総称する。）は、それぞれ仮想計算機３０Ａ，３０Ｂ専用の記憶領域である。
【００１９】
具体的には、専用記憶領域１２１〜１２３は、それぞれ仮想計算機１０〜３０が稼働するために必要な情報のうち、仮想計算機１０〜３０に固有の情報を格納する。また、専用記憶領域１２１〜１２３には、それぞれ仮想ディスク１２〜３２が割り当てられる。そのため、例えば、専用記憶領域１２１は、仮想計算機１０以外の仮想計算機からはアクセスできない領域となる。他の専用記憶領域１２２，１２３についても同様である。
【００２０】
ところで、各仮想ディスクへのアクセスは、物理的には、当該仮想ディスクに割り当てられている物理計算機１００上の記憶領域（共用記憶領域または専用記憶領域）へのアクセスにより実現される。
【００２１】
具体的には、図１の例では、仮想ディスク１１Ａとして、物理的には共用記憶領域１１１Ａが使われ、仮想ディスク１２Ａとして、物理的には専用記憶領域１２１Ａが使われる。したがって、仮想計算機１０Ａ上の仮想ディスク１１Ａへのアクセスは、物理的には共用記憶領域１１１Ａへのアクセスによって実現され、仮想計算機１０Ａ上の仮想ディスク１２Ａへのアクセスは、物理的には専用記憶領域１２１Ａへのアクセスによって実現される。
【００２２】
ここで、計算機システムの通常運用時において、各仮想計算機に割り当てられる共用記憶領域および専用記憶領域の状態について説明する。なお、説明の容易化のため、物理計算機１００Ａの各仮想計算機１０Ａ〜３０Ａに割り当てられる共用記憶領域および専用記憶領域の状態について説明する。
【００２３】
図２は、本実施の形態に従う情報テーブル４００を示す図である。情報テーブル４００は、物理計算機１００Ａの内部メモリに格納される。なお、物理計算機１００Ｂについても同様の情報テーブルが、当該物理計算機１００Ｂの内部メモリに格納される。
【００２４】
図２を参照して、情報テーブル４００は、仮想計算機１０Ａ〜３０Ａの仮想ディスク１１Ａ〜３１Ａに、読み取り専用の状態の共用記憶領域１１１が割り当てられていることを示している。これは、通常運用時においては、仮想計算機１０Ａ〜３０Ａにおいて共通に用いられる共通情報を、意図しない変更（または許可されていない変更）から保護することを意図している。
【００２５】
また、情報テーブル４００は、仮想計算機１０Ａ〜３０Ａの仮想ディスク１２Ａ〜３２Ａに、それぞれ、読み書き可能な状態の専用記憶領域１２１Ａ〜１２３Ａが割り当てられることを示している。これは、上述したように、専用記憶領域は、対応する（割り当てられている）仮想計算機以外の仮想計算機からはアクセスできない領域であるため、対応しない他の仮想計算機により内容を変更されることがないためである。
【００２６】
また、詳細は後述するが、本実施の形態では、共用記憶領域１１１Ａ，１１２Ａに格納される共通情報を更新する場合、これらの共用記憶領域のうち、どの仮想計算機も割り当てられていない共用記憶領域に格納された共通情報を先に更新する。そこで、共用記憶領域１１１Ａ，１１２Ａに割り当てられた仮想計算機（の個数）を示す情報テーブル５００を内部メモリに格納していてもよい。
【００２７】
図３は、本実施の形態に従う他の情報テーブル５００を示す図である。図３を参照して、情報テーブル５００は、共用記憶領域１１１Ａには３つの仮想計算機１０Ａ〜３０Ａが割り当てられており、共用記憶領域１１２Ａにはいずれの仮想計算機も割り当てられていないことを示している。そのため、物理計算機１００Ａのプロセッサは、情報テーブル５００を参照して、まず、共用記憶領域１１２Ａに格納された共通情報の更新を実行する。共用記憶領域１１２Ａに格納された共通情報の更新後に、プロセッサは、共用記憶領域１１１Ａに格納された共通情報の更新を実行する。
【００２８】
＜ハードウェア構成＞
図４は、本実施の形態に従う物理計算機１００のハードウェア構成例を示すブロック図である。図４を参照して、物理計算機１００は、そのコンポーネントとして、プロセッサ１５０と、主記憶装置１５２と、二次記憶装置１５４と、障害監視モジュール１５６と、ネットワークインターフェイス（Ｉ／Ｆ：Interface）１５８と、入力装置１６０と、汎用インターフェイス（Ｉ／Ｆ：Interface）１６２とを含む。これらのコンポーネントは、内部バス１６４を介して互いに通信可能に接続されている。
【００２９】
プロセッサ１５０は、典型的には、ＣＰＵ（Central Processing Unit）やＭＰＵ（Multi Processing Unit）といった演算処理部であり、二次記憶装置１５４にインストールされているＯＳを含む各種プログラムを読出して、主記憶装置１５２に展開しつつ実行する。主記憶装置１５２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性記憶媒体であり、プロセッサ１５０によって実行されるＯＳを含む各種プログラムのコードの他、各種プログラムの実行に必要な各種ワークデータを保持する。二次記憶装置１５４は、ハードディスクあるいはＳＳＤ（Solid State Drive）などの不揮発性記憶媒体であり、ＯＳを含む各種プログラムの他、各種設定値などを保持する。
【００３０】
障害監視モジュール１５６は、それぞれのコンポーネントの健全性を周期的またはイベント的に監視しており、いずれかのコンポーネントに何らかの障害が発生すると、その障害を他の物理計算機などへ通知する。これによって、動作モードが変更されたり、回線または物理計算機の切り替え動作が実行されたりする。
【００３１】
ネットワークインターフェイス１５８は、他の物理計算機などとの間の通信に係る処理を実行する。入力装置１６０は、典型的には、キーボードやマウスなどからなり、ユーザからの各種設定および操作を受付ける。
【００３２】
汎用インターフェイス１６２は、典型的には、ＵＳＢ（Universal Serial Bus）インターフェイス、ＲＳ−２３２Ｃに従うシリアル通信インターフェイス、パラレル通信インターフェイスなどを含み、外部装置などとの間でデータを遣り取りする。
【００３３】
＜機能構成＞
図５は、本実施の形態に従う物理計算機１００Ａおよび１００Ｂの機能構成を示す模式図である。図５を参照して、物理計算機１００Ａ，１００Ｂは、それぞれ管理部２０２Ａ，２０２Ｂと、更新制御部２０４Ａ，２０４Ｂと、切替部２０６Ａ，２０６Ｂとを含む。これらの各機能は、例えば、プロセッサ１５０が二次記憶装置１５４に格納されたプログラムを実行することによって実現される。なお、これらの機能の一部または全部はハードウェアで実現されるように構成されていてもよい。また、物理計算機１００Ａ，１００Ｂは、それぞれ、主記憶装置１５２および二次記憶装置１５４により実現される記憶部２００Ａ，２００Ｂをさらに含む。
【００３４】
以下の説明では、物理計算機１００Ａ，１００Ｂが、それぞれ待機系，稼働系の物理計算機として動作している状態を想定する。なお、物理計算機１００Ｂの各機能構成は、対応する物理計算機１００Ａの各機能構成と同様であるため、その詳細な説明は行わない。
【００３５】
記憶部２００Ａは、仮想計算機群１０Ａ〜３０Ａの各々において共通に用いられる共通情報を格納する共用記憶領域１１１Ａ，１１２Ａと、仮想計算機１０Ａ，２０Ａ，３０Ａのそれぞれに対応する専用記憶領域１２１Ａ，１２２Ａ，１２３Ａとを有する。
【００３６】
管理部２０２Ａは、仮想計算機群１０Ａ〜３０Ａを管理する。具体的には、管理部２０２Ａは、仮想計算機群１０Ａ〜３０Ａのそれぞれにおいて認識されている仮想ディスク１１Ａ〜３１Ａと、共用記憶領域１１１Ａ，１１２Ａとの間の対応関係を管理する。より詳細には、管理部２０２Ａは、仮想ディスク１１Ａ〜３１Ａのすべてを、共用記憶領域１１１Ａおよび共用記憶領域１１２Ａのいずれか一方に割り当てる。
【００３７】
また、管理部２０２Ａは、仮想計算機群１０Ａ〜３０Ａのそれぞれにおいて認識されている仮想ディスク１２Ａ〜３２Ａと、専用記憶領域１２１Ａ〜１２３Ａとの間の対応関係を管理する。より詳細には、管理部２０２Ａは、仮想ディスク１２Ａ〜３２Ａを、それぞれ専用記憶領域１２１Ａ〜１２３Ａに割り当てる。
【００３８】
管理部２０２Ａは、共用記憶領域１１１Ａ，１１２Ａおよび専用記憶領域１２１Ａ〜１２３Ａと、仮想計算機１０Ａ〜３０Ａとの接続（割り当て）状態を監視しており、その監視結果に基づいて情報テーブル４００，５００を作成する。
【００３９】
更新制御部２０４Ａは、仮想ディスク１１Ａ〜３１Ａが共用記憶領域１１１Ａに割り当てられている場合、共通情報の更新要求を受け付けたことに基づいて、共用記憶領域１１２Ａに格納された共通情報の更新処理を実行する。
【００４０】
具体的には、更新制御部２０４Ａは、複数の仮想計算機１０Ａ〜３０Ａのうちの１つの仮想計算機（例えば、仮想計算機１０Ａ）から、共通情報の更新要求を受け付ける。なお、仮想計算機１０Ａは、例えば、当該仮想計算機１０Ａのユーザから共通情報の更新指示を受け付けたことに基づいて、当該更新要求を更新制御部２０４Ａに送信する。
【００４１】
更新制御部２０４Ａは、当該更新要求に基づいて、現在の共用記憶領域の割り当て状態を管理部２０２Ａに問い合わせる。管理部２０２Ａは、当該問い合わせに対する応答として、例えば、仮想ディスク１１Ａ〜３１Ａのすべてが共用記憶領域１１１Ａに割り当てられている旨を通知する。更新制御部２０４Ａは、共用記憶領域１１１Ａ，１１２Ａのうち、仮想ディスク１１Ａ〜３１Ａが割り当てられていない共用記憶領域１１２Ａを更新対象として選択する。更新制御部２０４Ａは、管理部２０２Ａに対して、仮想ディスク１１Ａを、読み書き可能な状態の共用記憶領域１１２Ａに割り当てるように指示する。
【００４２】
管理部２０２Ａは、当該指示に従って仮想ディスク１１Ａを共用記憶領域１１２Ａに割り当てて、仮想計算機１０Ａを再起動させる。これにより、仮想計算機１０Ａは、仮想ディスク１１Ａに共用記憶領域１１２Ａが割り当てられ、仮想ディスク１２Ａに専用記憶領域１２１Ａが割り当てられて起動する。
【００４３】
続いて、更新制御部２０４Ａは、仮想計算機１０Ａに対して共用記憶領域１１２Ａに格納されている共通情報の更新を実行するように指示する。なお、仮想計算機１０Ａは、パッチ適用およびアプリケーションのインストール等により、共通情報（システムファイル、レジストリ情報等）の内容を更新する。
【００４４】
更新制御部２０４Ａは、仮想計算機１０Ａから共通情報の更新終了の通知を受けると、共用記憶領域１１２Ａを読み取り専用に設定するように管理部２０２Ａに指示する。管理部２０２Ａは、当該指示に従って共用記憶領域１１２Ａを読み取り専用に設定して、仮想計算機１０Ａを再起動させる。
【００４５】
また、管理部２０２Ａは、当該仮想計算機１０Ａの再起動後に、仮想ディスク２１Ａを読み取り専用に設定された共用記憶領域１１２Ａに割り当て、仮想ディスク２２Ａを専用記憶領域１２２Ａに割り当てて、仮想計算機２０Ａを再起動させる。さらに、管理部２０２Ａは、仮想ディスク３１Ａを読み取り専用に設定された共用記憶領域１１２Ａに割り当て、仮想ディスク３２Ａを専用記憶領域１２３Ａに割り当てて、仮想計算機３０Ａを再起動させる。すなわち、管理部２０２Ａは、共用記憶領域１１２Ａに格納された共通情報の更新が終了した場合に、この時点で共用記憶領域１１１Ａに割り当てられている仮想ディスク２１Ａ，３１Ａの各々を共用記憶領域１１２Ａに割り当て直す。
【００４６】
更新制御部２０４Ａは、管理部２０２Ａにより、仮想ディスク１１Ａ〜３１Ａが共用記憶領域１１２Ａに割り当てられた状態になった場合、いずれの仮想計算機も割り当てられていない共用記憶領域１１１Ａに格納された共通情報の更新処理を実行する。
【００４７】
具体的には、更新制御部２０４Ａは、管理部２０２Ａに対して、仮想ディスク１１Ａを読み書き可能な状態の共用記憶領域１１１Ａに割り当てるように指示する。管理部２０２Ａは、当該指示に従って仮想ディスク１１Ａを共用記憶領域１１１Ａに割り当てて、仮想計算機１０Ａを再起動させる。続いて、更新制御部２０４Ａは、仮想計算機１０Ａに対して共用記憶領域１１１Ａに格納されている共通情報の更新を実行するように指示する。更新制御部２０４Ａは、仮想計算機１０Ａから共通情報の更新終了の通知を受けると、共用記憶領域１１１Ａを読み取り専用に設定するとともに、仮想ディスク１１Ａを共用記憶領域１１２Ａに割り当てるように管理部２０２Ａに指示する。
【００４８】
これにより、共用記憶領域１１１Ａ，１１２Ａに格納された共通情報は同一内容となるとともに、仮想ディスク１１Ａ〜３１Ａに共用記憶領域１１２Ａが割り当てられた状態となる。
【００４９】
切替部２０６Ａは、物理計算機１００Ａの系を稼働系または待機系に切り替える。ここでは、物理計算機１００Ａが待機系に設定されている場合を想定している。そのため、待機系の物理計算機１００Ａにおける切替部２０６Ａは、共通情報の更新が終了した場合に、系の切替要求を稼働系の物理計算機１００Ｂに送信する。なお、共通情報の更新が終了した場合とは、一方の共用記憶領域（ここでは、共用記憶領域１１２Ａ）にすべての仮想計算機１０Ａ〜３０Ａが割り当てられており、かつ、共用記憶領域１１１Ａおよび１１２Ａに格納された共通情報の更新が終了している場合である。
【００５０】
切替部２０６Ａは、切替要求に対する応答を物理計算機１００Ｂの切替部２０６Ｂから受信した場合、物理計算機１００Ａの系を待機系から稼働系に切り替える。また、物理計算機１００Ｂの切替部２０６Ｂは、稼働系から待機系に物理計算機１００Ｂの系を切り替える。そして、物理計算機１００Ｂでも同様に、共通情報の更新が実行される。
【００５１】
＜処理手順＞
次に、図６および図７を参照しながら、待機系および稼働系の各物理計算機における共通情報の更新の流れについてより具体的に説明する。ここでは、フローチャートの初期状態において、物理計算機１００Ａ，１００Ｂが、それぞれ待機系，稼働系の物理計算機として動作しているものとする。
【００５２】
図６は、本実施の形態に従う待機系の物理計算機１００Ａの処理手順を示すフローチャートである。典型的には、図６に示す各ステップは、物理計算機１００Ａのプロセッサ１５０により実行される。
【００５３】
図６を参照して、物理計算機１００Ａのプロセッサ１５０は、入力装置１６０を介して、複数の仮想計算機１０Ａ〜３０Ａのうちの１つの仮想計算機（ここでは、仮想計算機１０Ａとする）を利用するユーザから共有情報の更新要求を受け付けたか否かを判断する（ステップＳ１０）。
【００５４】
更新要求を受け付けていない場合には（ステップＳ１０においてＮＯ）、プロセッサ１５０は、ステップＳ１０の処理を繰り返す。更新要求を受け付けた場合には（ステップＳ１０においてＹＥＳ）、プロセッサ１５０は、更新対象とする共用記憶領域を選択する（ステップＳ１２）。具体的には、プロセッサ１５０は、情報テーブル５００を参照して、仮想ディスク１１Ａ〜３１Ａが割り当てられていない共用記憶領域１１２Ａを更新対象として選択する。
【００５５】
次に、プロセッサ１５０は、仮想計算機１０Ａの仮想ディスク１１Ａを、選択した共用記憶領域１１２Ａに割り当てる（ステップＳ１４）。プロセッサ１５０は、共用記憶領域１１２Ａを読み書き可能に設定して、仮想計算機１０Ａを再起動させる（ステップＳ１６）。これにより、仮想計算機１０Ａは、仮想ディスク１１Ａおよび１２Ａがそれぞれ共用記憶領域１１２Ａおよび専用記憶領域１２１Ａに割り当てられた状態で起動する。
【００５６】
プロセッサ１５０は、仮想計算機１０Ａを用いて、読み書き可能に設定された共用記憶領域１１２Ａに格納された共通情報を更新する（ステップＳ１８）。プロセッサ１５０は、更新が終了した共用記憶領域１１２Ａを読み取り専用に設定して、仮想計算機１０Ａを再起動させる（ステップＳ２０）。さらに、プロセッサ１５０は、仮想計算機２０Ａ，３０Ａの仮想ディスク２１Ａ，３１Ａを共用記憶領域１１２Ａに割り当てる（ステップＳ２２）。
【００５７】
プロセッサ１５０は、仮想計算機２０Ａ，３０Ａを再起動させる（ステップＳ２４）。これにより、仮想計算機２０Ａは、仮想ディスク２１Ａおよび２２Ａがそれぞれ共用記憶領域１１２Ａおよび専用記憶領域１２１Ａに割り当てられた状態で起動する。仮想計算機３０Ａは、仮想ディスク３１Ａおよび３２Ａがそれぞれ共用記憶領域１１２Ａおよび専用記憶領域１２１Ａに割り当てられた状態で起動する。
【００５８】
次に、プロセッサ１５０は、いずれの仮想計算機も割り当てられていない共用記憶領域１１１Ａに格納された共通情報の更新処理を実行する（ステップＳ２６）。具体的には、プロセッサ１５０は、仮想計算機１０Ａの仮想ディスク１１Ａを読み書き可能に設定された共用記憶領域１１１Ａに割り当てて、仮想計算機１０Ａを再起動させる。プロセッサ１５０は、仮想計算機１０Ａを用いて、共用記憶領域１１１Ａに格納された共通情報を更新する。プロセッサ１５０は、更新が終了した共用記憶領域１１１Ａを読み取り専用に設定し、仮想ディスク１１Ａを共用記憶領域１１２Ａに割り当てて、仮想計算機１０Ａを再起動させる。
【００５９】
次に、プロセッサ１５０は、待機系の物理計算機１００Ａを稼働系に切り替えるための切替要求を稼働系の物理計算機１００Ｂに送信する（ステップＳ２８）。このとき、プロセッサ１５０は、共通情報の更新が終了した旨を物理計算機１００Ｂに通知してもよい。
【００６０】
そして、プロセッサ１５０は、切替要求に対する応答（切り替えを許可する旨の応答）を物理計算機１００Ｂから受信すると、物理計算機１００Ａの系を稼働系に切り替えて（ステップＳ３０）、処理を終了する。
【００６１】
図７は、本実施の形態に従う稼働系の物理計算機１００Ｂの処理手順を示すフローチャートである。典型的には、図７に示す各ステップは、物理計算機１００Ｂのプロセッサ１５０により実行される。
【００６２】
図７を参照して、稼働系の物理計算機１００Ｂのプロセッサ１５０は、待機系の物理計算機１００Ａから系の切替要求を受信したか否かを判断する（ステップＳ５０）。切替要求を受信していない場合には（ステップＳ５０においてＮＯ）、プロセッサ１５０はステップＳ５０の処理を繰り返す。切替要求を受信した場合には（ステップＳ５０においてＹＥＳ）、プロセッサ１５０は、系の切り替えを許可する旨の応答を物理計算機１００Ａに送信して（ステップＳ５２）、物理計算機１００Ｂの系を待機系に切り替える（ステップＳ５４）。
【００６３】
ステップＳ５６〜Ｓ７０の処理は、それぞれ図６中のステップＳ１２〜Ｓ２６の処理と同様である（「Ａ」との符号を「Ｂ」に置き換えたものに相当する）。そのため、その詳細な説明は繰り返さない。
【００６４】
＜利点＞
本実施の形態によると、物理計算機に共通情報を格納するための共用記憶領域が２つ設けられており、１つの仮想計算機を用いて一方の共用記憶領域に格納された共通情報の更新処理を実行している間でも、残余の仮想計算機は他方の共用記憶領域に接続されている。そのため、少なくとも残りの仮想計算機については待機系および稼働系の二重化構成を維持している状態を実現できる。
【００６５】
本実施の形態によると、１つの仮想計算機を用いて共通情報を更新した後は、残りの仮想計算機については、対応する仮想ディスクを更新後の共用記憶領域に割り当てて、再起動させるだけでよい。したがって、物理計算機内に設けられる仮想計算機の個数が増大した場合であっても、共通情報の更新に要する時間は変化しない。
【００６６】
本実施の形態によると、複数の仮想計算機が構築された稼働系および待機系の物理計算機を含む計算機システムにおいて、これらの仮想計算機に共通する情報の更新を行なう場合には、その更新時間を増大させることなく、またシステムの二重化構成をできるだけ維持することが可能となるため、計算機システムの信頼性を向上させることができる。
【００６７】
＜変形例＞
上述した実施の形態では、共用記憶領域１１１Ａ，１１２Ａに格納された共通情報を用いる仮想計算機１０Ａ〜３０Ａのいずれか１つの仮想計算機（例えば、仮想計算機１０Ａ）を用いて、共通情報を更新する構成について説明した。本実施の形態の変形例では、物理計算機内に、当該共通情報を使用しない更新処理専用の仮想計算機を新たに構築し、当該仮想計算機を用いて共通情報を更新する構成について説明する。
【００６８】
図８は、本実施の形態の変形例に従う計算機システム１１００の構成例を示す図である。図８を参照して、計算機システム１１００は、二重化された２つの物理計算機１００Ａ１、１００Ｂ１を含む。物理計算機１００Ａ１は、図１中の物理計算機１００Ａに仮想計算機４０Ａを追加し、図１中の専用記憶領域１２１Ａ〜１２３Ａに専用記憶領域１２４Ａを追加したものに相当する。同様に、物理計算機１００Ｂ１は、図１中の物理計算機１００Ｂに仮想計算機４０Ｂを追加し、図１中の専用記憶領域１２１Ｂ〜１２３Ｂに専用記憶領域１２４Ｂを追加したものに相当する。
【００６９】
仮想計算機４０Ａは、共通情報の更新専用に構築された仮想計算機であり、仮想ディスク４２Ａを含む。なお、仮想計算機４０Ａは、通常運用時において、共通情報を用いた処理を実行しない点において、他の仮想計算機１０Ａ〜３０Ａとは異なる。具体的には、仮想計算機４０Ａの仮想ディスク４２Ａは、通常運用時には、共通情報を格納する共用記憶領域１１１Ａ，１１２Ａには割り当てられることはなく、共通情報の更新時においてのみ、共用記憶領域１１１Ａまたは１１２Ａに割り当てられる。より詳細には、仮想ディスク４２Ａは、共通情報の更新時には、専用記憶領域１２４Ａと、共用記憶領域１１１Ａおよび１１２Ａのいずれか一方とに割り当てられる。
【００７０】
そして、上述した実施の形態では、更新制御部２０４Ａは、複数の仮想計算機１０Ａ〜３０Ａのうちの１つの仮想計算機に対して共通情報の更新を実行するように指示していたが、変形例では、共通情報を利用しない、複数の仮想計算機１０Ａ〜３０Ａ以外の特定の仮想計算機４０Ａに対して共通情報の更新を実行するように指示する。
【００７１】
図９は、本実施の形態の変形例に従う待機系の物理計算機１００Ａ１の処理手順を示すフローチャートである。図９を参照して、物理計算機１００Ａ１のプロセッサ１５０は、入力装置１６０を介して、更新専用の仮想計算機４０Ａを利用するユーザから共有情報の更新要求を受け付けたか否かを判断する（ステップＳ８０）。
【００７２】
更新要求を受け付けた場合に（ステップＳ８０においてＹＥＳ）、プロセッサ１５０は、情報テーブル５００を参照して、仮想ディスク１１Ａ〜３１Ａが割り当てられていない共用記憶領域１１２Ａを選択する（ステップＳ８２）。
【００７３】
次に、プロセッサ１５０は、仮想計算機４０Ａの仮想ディスク４２Ａを、共用記憶領域１１２Ａに割り当て（ステップＳ８４）、共用記憶領域１１２Ａを読み書き可能に設定して、仮想計算機４０Ａを再起動させる（ステップＳ８６）。これにより、仮想計算機４０Ａは、仮想ディスク４２Ａが共用記憶領域１１２Ａおよび専用記憶領域１２４Ａに割り当てられた状態で起動する。
【００７４】
プロセッサ１５０は、仮想計算機４０Ａを用いて、共用記憶領域１１２Ａに格納された共通情報を更新する（ステップＳ８８）。プロセッサ１５０は、更新が終了した共用記憶領域１１２Ａを読み取り専用に設定して（ステップＳ９０）、仮想計算機１０Ａ〜３０Ａの仮想ディスク１１Ａ〜３１Ａを共用記憶領域１１２Ａに割り当てる（ステップＳ９２）。プロセッサ１５０は、仮想計算機１０Ａ〜３０Ａを再起動させる（ステップＳ９４）。これにより、仮想計算機１０Ａ〜３０Ａは、仮想ディスク１１Ａ〜３１Ａに共用記憶領域１１２Ａが割り当てられ、かつ、仮想ディスク１２Ａ〜３２Ａにそれぞれ専用記憶領域１２１Ａ〜１２３Ａが割り当てられた状態で起動する。
【００７５】
次に、プロセッサ１５０は、共用記憶領域１１１Ａに格納された共通情報の更新処理を実行する（ステップＳ９６）。具体的には、プロセッサ１５０は、仮想計算機４０Ａの仮想ディスク４２Ａを共用記憶領域１１１Ａに割り当てて、仮想計算機４０Ａを再起動させる。プロセッサ１５０は、仮想計算機４０Ａを用いて、共用記憶領域１１１Ａに格納された共通情報を更新する。プロセッサ１５０は、更新が終了した共用記憶領域１１１Ａを読み取り専用に設定し、仮想ディスク４２Ａを専用記憶領域１２４Ａのみに割り当てて、仮想計算機４０Ａを再起動させる。
【００７６】
ステップＳ９８およびＳ１００の処理は、図６中のステップＳ２８およびＳ３０の処理と同様であるため、その詳細な説明は繰り返さない。
【００７７】
また、稼働系の物理計算機１００Ｂ１の処理手順は、図７中のステップＳ５０〜ステップＳ５４の処理を実行した後、上述したステップＳ８２〜Ｓ９６と同様の処理（「Ａ」との符号を「Ｂ」に置き換え）を実行したものに相当するため、その詳細な説明は繰り返さない。
【００７８】
（利点）
本実施の形態の変形例によると、更新専用の仮想計算機を新たに構築したため、一方の共用記憶領域に格納された共通情報の更新処理を実行している間でも、共通情報を利用する複数の仮想計算機は他方の共用記憶領域に接続されたままである。そのため、少なくとも当該複数の仮想計算機については待機系および稼働系の二重化構成を維持している状態を実現できる。
【００７９】
［その他の実施の形態］
上述した実施の形態では、ユーザからの更新要求を受け付けた場合に、共通情報の更新が実行される構成について説明したが、当該構成に限られず、共通情報が更新された後、稼働系の物理計算機においてソフトウェア障害が検出された場合に、待機系の物理計算機において共通情報の更新が実行される構成であってもよい。
【００８０】
具体的には、物理計算機１００Ａが、共通情報の更新終了後に稼働系に切り替えられた後（図６中のステップＳ３０の処理後）に、当該物理計算機１００Ａにおいてソフトウェア障害が発生した場合が想定される。ソフトウェア障害とは、物理計算機に関するソフトウェア障害として予め設定された障害であり、例えば、アプリケーションプログラムの不具合、ソフトウェアへのバグ混入等により、製作者の意図と反した挙動（異常終了、異常停止等）となることである。
【００８１】
稼働系に切り替えられた物理計算機１００Ａのプロセッサ１５０は、ソフトウェア障害を検出すると、系の切り替え要求を待機系の物理計算機１００Ｂに送信する。続いて、プロセッサ１５０（切替部）は、系の切り替え応答を物理計算機１００Ｂから受信して、物理計算機１００Ａの系を稼働系から待機系に切り替える。そして、プロセッサ１５０（更新制御部）は、更新後の共通情報を更新前の共通情報に更新し直す処理を実行する。当該処理は、上述した更新処理（例えば、ステップＳ１２〜Ｓ２６）と同様の手順で実行される。当該処理が終了すると、系の切り替えが再度実行され（例えば、ステップＳ２８〜Ｓ３０）、物理計算機１００Ｂにおいても同様に更新前の共通情報に更新し直す処理（図７参照）が実行される。なお、更新前の共通情報は、消去されずに共用記憶領域に格納されていてもよいし、他の記憶領域に格納されていてもよい。
【００８２】
上述の実施の形態として例示した構成は、本発明の構成の一例であり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、一部を省略する等、変更して構成することも可能である。
【００８３】
また、上述した実施の形態において、その他の実施の形態で説明した処理や構成を適宜採用して実施する場合であってもよい。
【００８４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８５】
１０，２０，３０，４０Ａ，４０Ｂ  仮想計算機、１１，１２，２１，２２，３１，３２，４２Ａ  仮想ディスク、１００  物理計算機、１１１，１１２  共用記憶領域、１２１，１２２，１２３，１２４Ａ，１２４Ｂ  専用記憶領域、１５０  プロセッサ、１５２  主記憶装置、１５４  二次記憶装置、１５６  障害監視モジュール、１５８  ネットワークインターフェイス、１６０  入力装置、１６２  汎用インターフェイス、１６４  内部バス、２００Ａ，２００Ｂ  記憶部、２０２Ａ，２０２Ｂ  管理部、２０４Ａ，２０４Ｂ  更新制御部、２０６Ａ，２０６Ｂ  切替部、４００，５００  情報テーブル、１０００，１１００  計算機システム。 
【図１】
0006429813.tif 000002
【図２】
0006429813.tif 000003
【図３】
0006429813.tif 000004
【図４】
0006429813.tif 000005
【図５】
0006429813.tif 000006
【図６】
0006429813.tif 000007
【図７】
0006429813.tif 000008
【図８】
0006429813.tif 000009
【図９】
0006429813.tif 000010