JP6848606B2 - 制御装置、多重化システム、多重化方法及びプログラム - Google Patents

制御装置、多重化システム、多重化方法及びプログラム Download PDF

Info

Publication number
JP6848606B2
JP6848606B2 JP2017067195A JP2017067195A JP6848606B2 JP 6848606 B2 JP6848606 B2 JP 6848606B2 JP 2017067195 A JP2017067195 A JP 2017067195A JP 2017067195 A JP2017067195 A JP 2017067195A JP 6848606 B2 JP6848606 B2 JP 6848606B2
Authority
JP
Japan
Prior art keywords
application
user
hypervisor
multiplexing
screen display
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.)
Active
Application number
JP2017067195A
Other languages
English (en)
Other versions
JP2018169841A (ja
Inventor
真文 山科
真文 山科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2017067195A priority Critical patent/JP6848606B2/ja
Publication of JP2018169841A publication Critical patent/JP2018169841A/ja
Application granted granted Critical
Publication of JP6848606B2 publication Critical patent/JP6848606B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、制御装置、多重化システム、多重化方法及びプログラムに関し、特に、アプリケーションの実行を制御する制御装置、多重化システム、多重化方法及びプログラムに関する。
ユーザがコンピュータでアプリケーションを使用する際、ユーザの作業ファイルレベルでの冗長化は、一般に、ファイルバックアップにより行われる。しかしながら、アプリケーションにおいてファイルに保存されない作業履歴等については、メモリ上に記憶されているため、ユーザの操作ではバックアップ(二重化)することができない。このため、ハードウェア障害、オペレーティングシステム障害、又はアプリケーション障害等の異常が発生したときに、アプリケーションでの作業が中断され、アプリケーションが復旧するまで、ユーザは作業を行うことができない。また、復旧作業には時間がかかってしまう。このような問題を解決するために、フォールトトレラント技術を用いてアプリケーションを多重化(冗長化)することが考えられる。
この技術に関連し、特許文献1は、アプリケーションの処理を行う本番系の計算システム及び待機系の計算システムを有する多重化システムを開示する。特許文献1にかかる多重化システムは、リクエストを本番系の計算システム及び待機系の計算システムに入力し、これらの計算システムからの応答を照合することによって、動作検証を行う。照合の結果が、応答が不一致であれば、異常が発生していると判断される。
国際公開第2012/160690号
特許文献1にかかる技術のように、単に応答を照合するのみでは、本番系の計算システムの応答と待機系の計算システムの応答とが異なる場合に、どちらの応答が正しいのか判断できないおそれがある。つまり、本番系の計算システムに異常が発生している場合ではなく、待機系の計算システムに異常が発生している場合であっても、システムに異常が発生していると判断され得る。このような場合に本番系の計算システムで実行されている処理が待機系の計算システムに引き継がれても、システム全体として不具合は解消できていない。したがって、特許文献1に技術では、アプリケーションの異常が発生した場合に適切にアプリケーションの復帰動作を行うことができないおそれがある。
本発明の目的は、このような課題を解決するためになされたものであり、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能な制御装置、多重化システム、多重化方法及びプログラムを提供することにある。
本発明にかかる制御装置は、本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段とを有する。
また、本発明にかかる多重化システムは、本番系又は待機系としてそれぞれ動作する複数のコンピュータと、前記複数のコンピュータを制御する制御装置とを有し、前記制御装置は、前記複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段とを有する。
また、本発明にかかる多重化方法は、本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御し、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較し、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示し、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する。
また、本発明にかかるプログラムは、本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御するステップと、前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較するステップと、前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示するステップと、前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御するステップとを前記複数のコンピュータとは別のコンピュータに実行させる。
本発明によれば、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能な制御装置、多重化システム、多重化方法及びプログラムを提供できる。
本発明の実施の形態にかかる多重化システムの概要を示す図である。 実施の形態1にかかる多重化システムを示す図である。 実施の形態1にかかる制御装置の構成を示す図である。 実施の形態1にかかる多重化システムによって行われる多重化方法を示すフローチャートである。 実施の形態1にかかる多重化システムによって行われる多重化方法を示すフローチャートである。 実施の形態1にかかる、多重化処理がなされた多重化システムを示す図である。 実施の形態1にかかる選択肢提示部の処理によって制御装置の入出力部に表示される選択肢表示画面を例示する図である。 実施の形態2にかかる多重化システムを示す図である。 実施の形態2にかかる多重化システムによって行われる多重化方法を示すフローチャートである。 実施の形態2にかかる多重化システムによって行われる多重化方法を示すフローチャートである。 実施の形態2にかかる、多重化処理がなされた多重化システムを示す図である。
(本発明にかかる実施の形態の概要)
本発明の実施形態の説明に先立って、本発明にかかる実施の形態の概要について説明する。図1は、本発明の実施の形態にかかる多重化システム1の概要を示す図である。
多重化システム1は、複数の情報処理装置2A,2B及び制御装置10を有する。制御装置10、情報処理装置2A及び情報処理装置2Bは、互いに、有線又は無線のネットワーク4を介して通信可能に接続されている。制御装置10及び情報処理装置2は、プロセッサ、メモリ、通信装置等を有するコンピュータである。情報処理装置2A,2Bは、本番系又は待機系としてそれぞれ動作するコンピュータである。
なお、図1には、多重化システム1が2つの情報処理装置2A,2Bを有する例が示されているが、情報処理装置2(2A,2B)の数は任意である。なお、情報処理装置2A及び情報処理装置2Bは、物理的に別個の構成要素である必要はない。さらに、情報処理装置2A及び情報処理装置2Bは、仮想マシン等の、1つのハードウェア上で論理的に別個に実現されたコンピュータであってもよい。つまり、情報処理装置2は、ハードウェアで構成される必要はなく、論理的な構成要素であってもよい。
制御装置10は、多重化制御部12と、画面比較部13と、選択肢提示部14と、復帰制御部15とを有する。多重化制御部12は、情報処理装置2A,2Bで同一のアプリケーションを実行させるように制御する多重化制御手段としての機能を有する。画面比較部13は、情報処理装置2A,2Bのそれぞれで実行されているアプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段としての機能を有する。
選択肢提示部14は、画面表示内容が一致していない場合に、アプリケーションのユーザに対して、アプリケーションの復帰処理の選択肢を提示する提示手段としての機能を有する。復帰制御部15は、選択肢の提示に応じてユーザによってなされた選択に基づいて、アプリケーションの復帰を制御する復帰制御手段としての機能を有する。
本実施の形態にかかる多重化システム1は、上記のように構成されているので、複数のコンピュータで実行されているアプリケーションにかかる画面表示内容が互いに一致しないという異常が発生した場合に、ユーザの選択に応じた復帰動作を行うことができる。したがって、本実施の形態にかかる多重化システム1は、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能となる。なお、制御装置10及び制御装置10で実行される多重化方法を用いても、アプリケーションについて異常が発生した場合であっても、適切にアプリケーションの復帰動作を行うことが可能となる。
(実施の形態1)
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
まず、実施の形態1について説明する。
図2は、実施の形態1にかかる多重化システム50を示す図である。多重化システム50は、共有ディスク装置60と、制御装置100と、情報処理装置200A(情報処理装置A)と、情報処理装置200B(情報処理装置B)とを有する。共有ディスク装置60、制御装置100、及び情報処理装置200A,200Bは、互いに、有線又は無線のネットワーク70を介して接続されている。
共有ディスク装置60は、情報処理装置200A及び情報処理装置200Bに共有されており、情報処理装置200A及び情報処理装置200Bからアクセスされる。そして、共有ディスク装置60は、情報処理装置200A及び情報処理装置200Bからのデータを格納する。また、共有ディスク装置60は、情報処理装置200A及び情報処理装置200Bに対し、格納されているデータを提供する。
図3は、実施の形態1にかかる制御装置100の構成を示す図である。制御装置100は、ユーザによって操作されユーザに情報を提供するクライアントPC(Personal Computer)として動作するコンピュータである。制御装置100は、ハードウェアとして、プロセッサ101と、メモリ102と、ディスク装置103と、通信装置104と、入出力部106とを有する。
プロセッサ101は、例えばCPU(Central Processing Unit)である。プロセッサ101は、制御処理及び演算処理等を行う演算装置としての機能を有する。メモリ102は、例えばRAM(Random Access Memory)である。メモリ102は、プロセッサ101の処理に関する処理データ等を一時的に記憶するための機能を有する。ディスク装置103は、例えばハードディスクドライブ(HDD)である。ディスク装置103は、プロセッサ101によって実行され得る様々なプログラムを格納する。通信装置104は、例えばネットワークインタフェースカード(NIC;Network Interface Card)である。通信装置104は、ネットワーク70を介して情報処理装置200等の他のノードと通信を行うために使用される。
入出力部106は、ユーザインタフェースとしての機能を有する。入出力部106は、例えば、ディスプレイ等の表示装置、及び、キーボード又はポインティングデバイス(例えばマウス)等の入力装置である。あるいは、入出力部106は、例えば、表示装置と入力装置とが一体となったタッチパネル等である。入出力部106は、プロセッサ101によって実行されるプログラムの処理に関する画面を表示してユーザに視認可能とする。また、入出力部106は、ユーザの操作を受け付ける。
さらに、制御装置100は、ソフトウェアとして、仮想基盤クライアント110を有する。仮想基盤クライアント110は、ディスク装置103に格納され、制御装置100にインストールされている。仮想基盤クライアント110については後述する。なお、仮想基盤クライアント110は、VDI(Virtual Desktop Infrastructure;仮想デスクトップインフラストラクチャー)によって実現されてもよい。
情報処理装置200A,200Bは、サーバとして動作するコンピュータである。情報処理装置200A及び情報処理装置200Bは、一方が本番系(運用系)のサーバ、他方が待機系(予備系)のサーバとして動作し得る。情報処理装置200A及び情報処理装置200Bは、物理的に1つの装置に組み込まれていてもよいし、物理的に別個であってもよい。なお、以下、情報処理装置200A,200B等の複数ある構成要素を区別することなく説明するときは、単に、情報処理装置200等と記載することがある。なお、図2は、多重化システム50が2つの情報処理装置200A,200Bを有する例を示すが、情報処理装置200の数は任意である。
情報処理装置200A及び情報処理装置200Bは、それぞれ、ハードウェア202A及びハードウェア202Bを有する。ハードウェア202は、プロセッサ101、メモリ102、ディスク装置103及び通信装置104と実質的に同様の構成を有する。
また、情報処理装置200A及び情報処理装置200Bは、それぞれ、ハイパーバイザ210A及びハイパーバイザ210Bを有する。ハイパーバイザ210A及びハイパーバイザ210Bは、それぞれ、ハードウェア202A及びハードウェア202Bのディスク装置に格納されているプログラムである。ハイパーバイザ210Aは、1つのハードウェア202A上で1つ以上の仮想マシン(仮想マシン220A)を実行するための処理を行う、仮想化制御手段としての機能を有する。同様に、ハイパーバイザ210Bは、1つのハードウェア202B上で1つ以上の仮想マシン(図6に示す仮想マシン220B)を実行するための処理を行う、仮想化制御手段としての機能を有する。ハイパーバイザ210A及びハイパーバイザ210Bは、共有ディスク装置60にデータを書き込み、共有ディスク装置60に格納されたデータを読み出すことができる。ハイパーバイザ210の動作については後述する。
仮想マシン220は、物理的な構成要素であるハードウェア202と同様に、論理的な構成要素である仮想プロセッサ、仮想メモリ、仮想ディスク及び仮想NIC等を有する。仮想マシン220は、仮想NICを用いて、ハイパーバイザ210と通信を行うことができる。なお、図2に示した例では、情報処理装置200Aにおいて仮想マシン220Aが実行されており、情報処理装置200Bにおいて仮想マシン220は実行されていない。仮想マシン220Aは、ハイパーバイザ210にインストールされている。
仮想マシン220Aには、ゲストOS230Aがインストールされている。ゲストOS230Aは、仮想マシン220A上で動作するOS(仮想OS)である。ゲストOS230Aは、制御装置100のユーザに視覚的なインタフェースを提供するGUI(Graphical User Interface)を備えている。また、ゲストOS230Aには、ユーザが制御装置100を用いて使用するアプリケーション240Aがインストールされている。また、ゲストOS230Aには、VM(Virtual Machine)ツール250Aがインストールされている。なお、仮想マシン220A、ゲストOS230A及びアプリケーション240Aを構成するためのデータは、ハードウェア202Aのディスク装置に格納されている。なお、後述する仮想マシン220Bについても、上述した仮想マシン220Aと同様である。
制御装置100は、仮想基盤クライアント110の機能によって、ハイパーバイザ210に対して管理のための指示を送信する。この管理のための指示は、仮想マシン220の生成、仮想マシン220の起動、ゲストOS230のシャットダウン、ゲストOS230の再起動、仮想マシン220のテンプレートの生成及び展開、VMツール250のインストール、及びハイパーバイザ210の再起動を含む。ハイパーバイザ210は、各指示を受け付けると、その指示に応じた処理を行う。
また、仮想基盤クライアント110は、ハイパーバイザ210上で実行されているゲストOS230に関する画面表示内容を、入出力部106に表示させる。これにより、ユーザは、入出力部106に表示されたゲストOS230に関する画面表示内容を視覚的に確認することができる。したがって、ユーザは、入出力部106を用いてアプリケーション240の画面表示内容を視覚的に確認することができる。さらに、ユーザは、ゲストOS230で実現されているGUIを介して、マウス又はタッチパネル等のポインティングデバイス又はキーボード等によって、入力を行うことも可能である。
各ハイパーバイザ210は、仮想マシン220のテンプレートの生成の指示を受け付けると、指定された仮想マシン220を参照して、その仮想マシン220の上のゲストOS230、VMツール250及びアプリケーション240を含むテンプレート62を生成する。そして、ハイパーバイザ210は、生成されたテンプレート62を、共有ディスク装置60上の指定された領域に格納する。VMツール250の機能については後述する。
また、各ハイパーバイザ210は、仮想マシン220のテンプレートの展開の指示を受け付けると、指定されたテンプレートを参照して、元の仮想マシン220の複製を生成する。各ハイパーバイザ210から参照できる共有ディスク装置60上のディスク領域にテンプレートを格納することで、別のハイパーバイザ210に仮想マシン220の複製を生成することができる。例えば、ハイパーバイザ210Bは、テンプレート62を展開して、仮想マシン220Aの複製(仮想マシン220B)を生成することができる。
また、各ハイパーバイザ210は、VMツール250のインストールの指示を受け付けると、VMツール250をゲストOS230にインストールする機能を有する。ハイパーバイザ210は、VMツール250と通信を行い、保護対象のアプリケーション240を起動及び終了する機能を有する。ここで、「保護対象のアプリケーション」とは、そのアプリケーションを実行しているシステム(情報処理装置200等)に何らかの異常があったとしても、データの破壊及びアプリケーションの継続不能を防止すべきアプリケーションのことをいう。本実施の形態では、アプリケーションの冗長化によって、アプリケーションを保護し得る。
また、各ハイパーバイザ210は、VMツール250からゲストOS230の起動が完了したことを示す通知を受け付け、この通知に応じて制御装置100の仮想基盤クライアント110に対してゲストOS230の起動が完了したことを示す通知を送信する機能を有する。また、各ハイパーバイザ210は、VMツール250を介して、保護対象のアプリケーション240のウィンドウ範囲を示す情報を取得して、その情報を制御装置100の仮想基盤クライアント110に対して送信する機能を有する。また、各ハイパーバイザ210は、VMツール250を介して、保護対象のアプリケーション240のアプリケーション環境をゲストOS230から取得し、その環境を他のゲストOS230へ、VMツール250を介して複製する機能を有する。
アプリケーション240Aは、ゲストOS230Aでカプセル化されている。したがって、アプリケーション240Aに関する、バイナリデータ、使用ライブラリ、設定ファイル、使用ファイル(作業ファイル)等のアプリケーション240Aの実行環境(アプリケーション環境)に変更があった場合でも、アプリケーション240A(の実行環境)は、容易に他のゲストOS230に複製され得る。ユーザは、アプリケーション240Aを使用する際に、アプリケーション240A上で作業ファイルを開き、GUI又はキーボード等によって、アプリケーション240Aに対して入力を行い、作業ファイルを保存する。なお、アプリケーション240Aは、ユーザの入力に対して、特定の画面表示内容を含む応答を送信する。ここで、本実施の形態にかかるアプリケーション240は、好ましくは、乱数又はシステムの時刻等により画面表示が変更されるアプリケーション、サーバ/クライアント型のアプリケーションなど、ユーザの入力内容に関係なく変化する画面表示を行うアプリケーションではない。
VMツール250は、ハイパーバイザ210からの指示で、自身に登録されている保護対象のアプリケーション240を起動又は終了する機能を有する。VMツール250は、自身がインストールされているゲストOS230の起動が完了したことを、ハイパーバイザ210に通知する機能を有する。また、ゲストOS230は、起動しているアプリケーション240の画面表示内容が表示されているウィンドウ範囲を示す情報(ウィンドウ範囲情報)を有している。VMツール250は、ゲストOS230からこのウィンドウ範囲情報を取得して、ハイパーバイザ210に対して送信する機能を有する。
また、VMツール250は、ユーザがアプリケーション240の保護の開始時に、その保護対象のアプリケーション240の起動ファイルの位置をこのVMツール250に指定するためのインタフェースを有する。また、VMツール250は、保護対象のアプリケーション240の実行環境(アプリケーション環境)をゲストOS230から取得して、ハイパーバイザ210に送信する機能を有する。さらに、VMツール250は、ハイパーバイザ210から受け付けた保護対象のアプリケーション240のアプリケーション環境を、自身がインストールされたゲストOS230へ複製して反映する機能を有する。
仮想基盤クライアント110は、多重化制御部112、入力送信部120、画面比較部130、選択肢提示部140、及び復帰制御部150を有する。多重化制御部112は、本番系設定部114及び多重化処理部116を有する。復帰制御部150は、本番系選択部152及び環境複製部154を有する。多重化制御部112、画面比較部130、選択肢提示部140、及び復帰制御部150は、それぞれ、図1に示された多重化制御部12、画面比較部13、選択肢提示部14、及び復帰制御部15に対応する。
多重化制御部112は、ゲストOS230へVMツール250をインストールするように、ハイパーバイザ210に対して指示する機能を有する。また、多重化制御部112は、VMツール250を介して保護対象のアプリケーション240をユーザに指定させるための機能を有する。また、多重化制御部112は、保護対象のアプリケーション240、そのアプリケーション240が動作するゲストOS230、及びそのアプリケーション240を実行するハイパーバイザ210(及び情報処理装置200)を本番系と設定する機能を有する。また、多重化制御部112は、待機系とすべきアプリケーション240、そのアプリケーション240が起動するゲストOS230、及びそのアプリケーション240を起動させるハイパーバイザ210(及び情報処理装置200)を、待機系と設定する機能を有する。これにより、多重化制御部112は、本番系又は待機系としてそれぞれ動作する複数のコンピュータである情報処理装置200A,200Bで同一のアプリケーションを実行させるように制御する多重化制御手段としての機能を有する。
入力送信部120は、ユーザからのアプリケーション240に対する入力を受け付ける。そして、入力送信部120は、その入力を、本番系及び待機系のハイパーバイザ210に対して同時に送信する。また、入力送信部120は、入力に対する応答のないハイパーバイザ210に対してpingコマンドを実行する。また、入力送信部120は、入出力部106を用いて、ユーザに対して、ハイパーバイザ210での入力状況について通知して対応の選択肢を提示する機能を有する。さらに、入力送信部120は、それぞれの選択肢に応じた処理を行う機能を有する。
画面比較部130は、本番系及び待機系のハイパーバイザ210それぞれから、保護対象のアプリケーション240のウィンドウ範囲情報を取得する。そして、画面比較部130は、本番系のアプリケーション240の画面表示内容と待機系のアプリケーション240の画面表示内容とを比較して、互いに一致しているか否かを判定する。これにより、画面比較部130は、複数のコンピュータである情報処理装置200A,200Bのそれぞれで実行されているアプリケーション240A,240Bへの入力に対して出力される画面表示内容が一致しているか否かを比較する比較手段としての機能を有する。
選択肢提示部140は、本番系のアプリケーション240の画面表示内容と待機系のアプリケーション240の画面表示内容とが一致していない場合に、その旨を、入出力部106を用いてユーザに通知する。さらに、選択肢提示部140は、保護対象のアプリケーション240の復帰処理(リカバリ処理)の選択肢を提示する。また、選択肢提示部140は、本番系のアプリケーション240及び待機系のアプリケーション240それぞれの最新の画面表示内容を、ユーザに提示する機能を有する。この最新の画面表示内容の提示は、本番系のアプリケーション240の画面表示内容と待機系のアプリケーション240の画面表示内容とが一致しているか否かに関わらず、行われてもよい。選択肢提示部140は、画面表示内容が一致していない場合に、アプリケーション240のユーザに対して、アプリケーション240の復帰処理の選択肢を提示する提示手段としての機能を有する。
復帰制御部150は、選択肢提示部140によって提示されたそれぞれの選択肢に応じた復帰処理を行う機能を有する。また、復帰制御部150は、ハイパーバイザ210に対して、保護対象のアプリケーション240のアプリケーション環境を、他のゲストOS230に複製するように指示する機能を有する。そして、復帰制御部150は、選択肢の提示に応じてユーザによってなされた選択に基づいて、アプリケーション240の復帰を制御する復帰制御手段としての機能を有する。
図4及び図5は、実施の形態1にかかる多重化システム50によって行われる多重化方法を示すフローチャートである。図4及び図5に示される処理は、主に、制御装置100(仮想基盤クライアント110)によって行われ得る。また、図4及び図5では、アプリケーション240A(APP_A)を保護対象とする。
アプリケーション240Aが動作するゲストOS230Aに、VMツール250がインストールされる(ステップS102)。具体的には、仮想基盤クライアント110の多重化制御部112は、アプリケーション240Aを実行するハイパーバイザ210Aに対して、ゲストOS230AにVMツール250Aをインストールするように指示する。ハイパーバイザ210Aは、この指示に応じて、アプリケーション240Aが動作するゲストOS230Aに、VMツール250Aをインストールする。
仮想基盤クライアント110は、本番系の設定を行う(ステップS104)。具体的には、多重化制御部112の本番系設定部114は、保護対象であるアプリケーション240Aを、本番系のアプリケーション240と設定する。また、本番系設定部114は、保護対象のアプリケーション240Aが動作するゲストOS230A及び仮想マシン220Aを、それぞれ、本番系のゲストOS230及び仮想マシン220と設定する。また、本番系設定部114は、保護対象のアプリケーション240Aを実行するハイパーバイザ210Aを本番系のハイパーバイザ210と設定し、情報処理装置200Aを本番系の情報処理装置200と設定する。
一方、本番系設定部114は、本番系である情報処理装置200Aとは異なる他の情報処理装置200Bで実行されるハイパーバイザ210Bを、待機系のハイパーバイザ210と設定する。なお、本番系設定部114は、情報処理装置200Bを、待機系の情報処理装置200と設定してもよい。
多重化システム50は、多重化処理を行う(ステップS106)。図6は、実施の形態1にかかる、多重化処理がなされた多重化システム50を示す図である。仮想基盤クライアント110の多重化処理部116は、ハイパーバイザ210Aに対して、テンプレート62を生成するように指示する。ハイパーバイザ210Aは、この指示に応じて、ゲストOS230Aをシャットダウンして、仮想マシン220Aからテンプレート62を生成する。ハイパーバイザ210Aは、生成されたテンプレート62を、共有ディスク装置60上の指定された領域に格納する。
多重化処理部116は、ハイパーバイザ210Bに対して、共有ディスク装置60に格納された、仮想マシン220Aに対応するテンプレート62の展開を指示する。ハイパーバイザ210Bは、この指示に応じて、テンプレート62から、仮想マシン220Aの複製である仮想マシン220Bを生成する。また、ハイパーバイザ210Bは、ゲストOS230Aの複製であるゲストOS230Bを生成する。また、ハイパーバイザ210Bは、アプリケーション240Aの複製であるアプリケーション240Bを生成する。また、ハイパーバイザ210Bは、VMツール250Aの複製であるVMツール250Bを生成する。そして、多重化制御部112(本番系設定部114)は、仮想マシン220Bを待機系の仮想マシン220と設定し、ゲストOS230Bを待機系のゲストOS230と設定し、アプリケーション240Bを待機系のアプリケーション240と設定する。このようにして、図6に示すように、待機系のシステムが生成される。
次に、多重化システム50は、アプリケーション240の起動処理を行う(ステップS108)。具体的には、仮想基盤クライアント110の多重化制御部112は、ハイパーバイザ210A及びハイパーバイザ210Bに対して、それぞれアプリケーション240A及びアプリケーション240Bを起動するように指示する。ハイパーバイザ210A及びハイパーバイザ210Bは、この指示に応じて、それぞれ仮想マシン220A及び仮想マシン220Bを起動する。仮想マシン220A及び仮想マシン220Bは、それぞれ、ゲストOS230A及びゲストOS230Bを起動する。
ハイパーバイザ210Aは、VMツール250AからゲストOS230Aの起動が完了したことを示す通知を受け付けた後、VMツール250Aを介して、アプリケーション240Aを起動する。同様に、ハイパーバイザ210Bは、VMツール250BからゲストOS230Bの起動が完了したことを示す通知を受け付けた後、VMツール250Bを介して、アプリケーション240Bを起動する。
なお、仮想基盤クライアント110は、予め設定された待機時間Tappwtだけ待機した後、アプリケーション240A及びアプリケーション240Bが共に起動を完了したと判断してもよい。したがって、待機時間Tappwtは、アプリケーション240A及びアプリケーション240Bの実際の起動完了時間よりも十分長いとする。そして、このとき、仮想基盤クライアント110は、アプリケーション240A及びアプリケーション240Bのウィンドウ範囲情報を取得して、後述する処理を行う。
仮想基盤クライアント110は、アプリケーション240Aに対してユーザから入力があったか否かを判定する(ステップS110)。そして、ユーザから入力があった場合(S110のYES)、入力送信部120は、入力内容を、ハイパーバイザ210A及びハイパーバイザ210Bに対して同時に送信する(ステップS112)。ハイパーバイザ210A及びハイパーバイザ210Bは、送信された入力内容を受信すると、入力内容を、それぞれアプリケーション240A及びアプリケーション240Bに入力し反映する。これにより、アプリケーション240A及びアプリケーション240Bは、システムに異常が発生していなければ、入力内容に応じた動作を行い得る。
このとき、ハイパーバイザ210A及びハイパーバイザ210Bは、送信された入力内容を受信すると、入力内容を受信した旨を示す応答を、仮想基盤クライアント110に返す。ハイパーバイザ210A及びハイパーバイザ210Bの応答時間が仮想基盤クライアント110で予め設定された応答待ち時間Trwtを超える場合は、入力送信部120は、入力に対する応答のないハイパーバイザ210に対してpingコマンドを実行する。これによりそのハイパーバイザ210の応答がないと確認されると、入力送信部120は、「該当ハイパーバイザへの入力に対する応答がなく、ping応答もない」とユーザへ通知する。なお、pingコマンドに対してping応答があった場合は、入力送信部120は、「該当ハイパーバイザでping応答はあるが入力処理が遅れている」とユーザへ通知し、「応答待ち」又は「応答を待たない」の選択肢をユーザへ提示する。ユーザが、入出力部106を用いて「応答待ち」を選択すると、仮想基盤クライアント110の入力送信部120は、再び、応答待ち時間Trwtの時間、入力に対する応答を待つ。
仮想基盤クライアント110の画面比較部130は、アプリケーション240A,240Bへの入力に対して出力される画面表示内容が一致しているか否かを比較する(ステップS120)。具体的には、画面比較部130は、アプリケーション240Aに対する入力があった後、仮想基盤クライアント110で予め設定されている待ち時間Tuiwtの間、待機する。そして、画面比較部130は、待機後の直近のアプリケーション240A及びアプリケーション240Bそれぞれのウィンドウ範囲の画面表示内容を比較する。なお、画面比較部130は、アプリケーション240の画面表示内容の全ての範囲について比較する必要はない。例えば、画面比較部130は、ある時間内で変化した表示内容のみ、比較してもよい。
画面表示内容が一致する場合(ステップS130のYES)、S110の処理に戻り、画面比較部130は、次回の入力があるまで待機する。そして、次回の入力があった場合に、画面比較部130は、再び、待ち時間Tuiwt待機した後、アプリケーション240A及びアプリケーション240Bの画面表示内容を比較する。なお、待ち時間Tuiwt待機する間に次の入力がなされた場合は、仮想基盤クライアント110は、待ち時間Tuiwtのカウンタをリセットして、再カウントを行う。
一方、画面表示内容が一致しない場合(S130のNO)、画面比較部130は、N回、再比較処理を行う(ステップS132)。なお、Nは、予め定められた1以上の整数である。具体的には、画面比較部130は、N回、画面表示内容を比較していない場合(S132のNO)、S120の処理に戻り、待ち時間Tuiwt待機した後、アプリケーション240A及びアプリケーション240Bの画面表示内容を、再度比較する。なお、この再比較処理の途中で入力がなされた場合は、S120の処理に戻り、画面比較部130は、その入力について画面表示内容を比較する。
再比較処理をN回行っても画面表示内容が一致しない場合(S132のYES)、選択肢提示部140は、入出力部106を用いて、ユーザに対し、画面表示内容が一致しない旨の通知及び復帰処理についての選択肢の提示を行う(ステップS140)。その際、選択肢提示部140は、入出力部106を用いて、アプリケーション240Aの画面表示内容及びアプリケーション240Bの画面表示内容を、ユーザに提示する。選択肢提示部140は、図7に例示するような選択肢表示画面80を、入出力部106に表示させる。
図7は、実施の形態1にかかる選択肢提示部140の処理によって制御装置100の入出力部106に表示される選択肢表示画面80を例示する図である。図7に例示する選択肢表示画面80は、情報処理装置200A(アプリケーション240A)の画面表示内容82A及び情報処理装置200B(アプリケーション240B)の画面表示内容82Bを含む。また、選択肢表示画面80は、選択肢#1〜選択肢#5を含む。
選択肢#1は、「通知を無視してそのまま続行する」である。選択肢#2は、「両方の結果が正しくないとしてアプリケーション(APP)を再起動する」である。選択肢#3は、「両方の結果が正しくないとしてゲストOSを再起動する」である。選択肢#4は、「両方の結果が正しくないとしてハイパーバイザ(HPV)を再起動する」である。選択肢#5は、「いずれかの結果が正しいとして復帰処理を行う」である。
ユーザは、画面表示内容82A及び画面表示内容82Bを視認しながら、選択肢#1〜選択肢#5のいずれかを選択することができる。選択肢表示画面80は、例えばGUIによって実現され得る。そして、この選択操作は、例えば入出力部106がタッチパネルである場合、選択肢#1〜選択肢#5のいずれかのアイコンをユーザがタッチすることでなされ得る。
ユーザによって選択肢#1「通知を無視してそのまま続行する」が選択された場合(ステップS142のYES)、処理はS132の処理に戻る。ユーザによって選択肢#2「両方の結果が正しくないとしてアプリケーションを再起動する」が選択された場合(ステップS144のYES)、復帰制御部150は、ハイパーバイザ210A及びハイパーバイザ210Bに対し、それぞれアプリケーション240A及びアプリケーション240Bを再起動するように指示する(ステップS145)。これにより、ハイパーバイザ210A及びハイパーバイザ210Bは、それぞれアプリケーション240A及びアプリケーション240Bを再起動する。そして、処理はS110の処理に戻る。
ユーザによって選択肢#3「両方の結果が正しくないとしてゲストOSを再起動する」が選択された場合(ステップS146のYES)、復帰制御部150は、ハイパーバイザ210A及びハイパーバイザ210Bに対し、それぞれゲストOS230A及びゲストOS230Bを再起動するように指示する(ステップS147)。これにより、ハイパーバイザ210A及びハイパーバイザ210Bは、それぞれゲストOS230A及びゲストOS230Bを再起動する。その後、ハイパーバイザ210A及びハイパーバイザ210Bは、それぞれアプリケーション240A及びアプリケーション240Bを起動する。そして、処理はS110の処理に戻る。
ユーザによって選択肢#4「両方の結果が正しくないとしてハイパーバイザを再起動する」が選択された場合(ステップS148のYES)、復帰制御部150は、ハイパーバイザ210A及びハイパーバイザ210Bに対し、再起動するように指示する(ステップS149)。これにより、ハイパーバイザ210A及びハイパーバイザ210Bは、自身を再起動する。その後、ハイパーバイザ210A及びハイパーバイザ210Bは、それぞれゲストOS230A及びゲストOS230Bを再起動する。さらに、ハイパーバイザ210A及びハイパーバイザ210Bは、それぞれアプリケーション240A及びアプリケーション240Bを起動する。そして、処理はS110の処理に戻る。
ユーザによって選択肢#5「いずれかの結果が正しいとして復帰処理を行う」が選択された場合(ステップS150のYES)、復帰制御部150は、ユーザに対して本番系の選択を提示する(ステップS152)。具体的には、本番系選択部152は、入出力部106を用いて、ユーザに対して、アプリケーション240A及びアプリケーション240Bのいずれを本番系とするかの選択画面を提示する。ユーザは、画面表示内容82A及び画面表示内容82Bを視認して、正しい方の画面表示内容に対応するアプリケーション240を選択することができる。例えば、選択肢表示画面80において画面表示内容82A及び画面表示内容82Bを点滅させることで、いずれかを選択するように促すことができる。このように、ユーザに画面表示内容82A及び画面表示内容82Bを提示することで、ユーザは、どちらが正常か(又はどちらも正常でないか)を、容易に判断することができる。
そして、本番系選択部152は、ユーザによって選択されたアプリケーション240を、本番系のアプリケーション240と設定する(ステップS154)。これにより、ユーザが正常であると判断したアプリケーション240を動作しているコンピュータ(情報処理装置200又は仮想マシン220)を、適切に本番系と設定することができる。一方、本番系選択部152は、ユーザによって選択されなかった方のアプリケーション240を終了するように、そのアプリケーション240が実行されるハイパーバイザ210に指示する(ステップS156)。この指示に応じて、ハイパーバイザ210は、アプリケーション240を終了する。これにより、異常であるアプリケーション240を適切に終了することができる。そして、本番系選択部152は、選択されなかったアプリケーション240が動作するゲストOS230を、新たな待機系と設定する。
復帰制御部150の環境複製部154は、ユーザに対して、設定された本番系のアプリケーション240で作業ファイルを保存するように指示する(ステップS158)。例えば、環境複製部154は、入出力部106を用いて、本番系のアプリケーション240で作業ファイルを保存することを促すような画面(ポップアップ画面等)を表示させてもよい。この指示に応じてユーザが作業ファイルを保存すると、環境複製部154は、本番系のアプリケーション240を終了するように、ハイパーバイザ210に対して指示する。この指示に応じて、ハイパーバイザ210は、本番系のアプリケーション240を終了する。
そして、環境複製部154は、新たに設定された待機系のゲストOS230へ、新たに設定された本番系のアプリケーション240の実行環境を複製する(ステップS160)。このように、待機系のシステムに正常である本番系のアプリケーション240を複製することで、保護対象のアプリケーション240を冗長化することができる。したがって、保護対象のアプリケーション240を適切に保護することができる。
なお、本実施の形態における多重化システム50は、仮想マシン220によって構成されているので、上述したように、アプリケーション240の実行環境はカプセル化され得る。したがって、環境複製部154は、容易に本番系のアプリケーション240の実行環境を複製することができる。言い換えると、コンピュータが仮想マシン220で実現されることで、本番系と待機系とで、容易に同じ環境にすることが可能となる。
そして、復帰制御部150は、ハイパーバイザ210に対して、本番系のアプリケーション240及び待機系のアプリケーション240の起動を指示する(ステップS162)。この指示に応じて、本番系のアプリケーション240を実行するハイパーバイザ210は、本番系のアプリケーション240を起動する。また、待機系のゲストOS230を実行するハイパーバイザ210は、待機系のアプリケーション240を起動する。そして、処理は、S110の処理に戻る。
例えば、S152の処理に応じてユーザがアプリケーション240Bを本番系と選択した場合の例について説明する。このとき、ハイパーバイザ210Aは、選択されなかったアプリケーション240Aを終了する。そして、ゲストOS230Aが新たな待機系と設定される。また、ユーザが、新たに本番系と設定されたアプリケーション240Bで作業ファイルを保存した後、ハイパーバイザ210Bは、アプリケーション240Bを終了する。そして、環境複製部154は、新たに設定された待機系のゲストOS230Aへ、新たに設定された本番系のアプリケーション240Bの実行環境を複製する。その後、ハイパーバイザ210Bは、新たに設定された本番系のアプリケーション240Bを起動する。また、ハイパーバイザ210Aは、新たに設定された待機系のアプリケーション240Aを起動する。
このように、本実施の形態にかかる多重化システム50は、複数のコンピュータで実行されているアプリケーション240にかかる画面表示内容が互いに一致しないという異常が発生した場合に、ユーザに対して、アプリケーション240の復帰処理の選択肢を提示するように構成されている。これにより、本実施の形態にかかる多重化システム50は、ユーザの選択に応じたアプリケーション240の復帰動作を行うことができる。したがって、本実施の形態にかかる多重化システム50は、アプリケーションについて異常が発生した場合であっても、ユーザの選択に応じて適切にアプリケーションの復帰動作を行うことが可能となる。
また、上述したフォールトトレラント技術では、本番系の計算システムと待機系の計算システムとの間で、アプリケーションの処理に関して厳密に同期を行う必要がある。しかしながら、厳密に同期を行うようにするために、複雑な処理又は構成が必要となるおそれがある。したがって、上述したフォールトトレラント技術では、アプリケーションの異常が発生した場合に容易にアプリケーションの復帰動作を行うことができないおそれがある。
一方、本実施の形態にかかる多重化システム50は、ユーザが画面表示内容の比較を行うことができればよいのであるから、アプリケーションの処理に関して厳密に同期を行う必要はない。したがって、本実施の形態にかかる多重化システム50は、上述したフォールトトレラント技術と比較して、アプリケーションの異常が発生した場合に容易にアプリケーションの復帰動作を行うことが可能となる。
なお、ユーザによる入力に対し、アプリケーション240が正常に動作していても、アプリケーション240の仕様によっては、一方のアプリケーション240(情報処理装置200)における画面表示の遅延が生じる場合があり得る。具体的には、アプリケーション240におけるディスクI/Oによる遅延、又は、アプリケーション240のCPUバウンドの処理による遅延等が生じる場合がある。このような遅延に対処するために、以下の処理が行われてもよい。
仮想基盤クライアント110は、アプリケーション240に関するCPU使用率がユーザによって設定された閾値を超えている場合に、アプリケーション240によるCPUバウンドの状態と判断する。そして、仮想基盤クライアント110は、このCPUバウンドの時間がユーザによって設定された時間を超えていない間は、正常にアプリケーション240の処理が行われているとして、画面表示内容の比較処理を行わないようにしてもよい。また、仮想基盤クライアント110は、本番系及び待機系のアプリケーション240のいずれについても、CPUバウンドの時間が設定された時間を超えた場合に、画面表示内容の比較処理を行うようにしてもよい。
また、アプリケーション240においてファイルの読み書きの処理が行われている間は、仮想基盤クライアント110は、画面表示内容の比較処理を行わないようにしてもよい。具体的には、ハイパーバイザ210は、ファイル読み書きでOS(ゲストOS230)が呼び出された時点からファイルの読み書きが完了するまでの間、仮想基盤クライアント110に対し、画面表示内容の比較処理を行わないように通知してもよい。そして、ハイパーバイザ210は、ファイルの読み書きが完了したときに、仮想基盤クライアント110に通知を行ってもよい。そして、仮想基盤クライアント110は、本番系及び待機系の両方のアプリケーション240においてファイルの読み書きが完了したときに、画面表示内容の比較処理を行ってもよい。なお、ファイルの読み書きの処理がシステムエラーに起因して完了しないことも考慮して、待機時間の閾値を設定してもよい。
(実施の形態2)
次に、実施の形態2について説明する。実施の形態2は、1つの情報処理装置200で複数のアプリケーション240が実行され得る点で、実施の形態1と異なる。なお、これ以外の点では、実施の形態2は、実施の形態1と実質的に同様である。実施の形態1にかかる構成要素の同様の構成要素の構造及び機能については、適宜、説明を省略する。
図8は、実施の形態2にかかる多重化システム50を示す図である。多重化システム50は、制御装置100と、1つの情報処理装置200とを有する。実施の形態2にかかる多重化システム50は、実施の形態1にかかる多重化システム50と異なり、共有ディスク装置を有さない。制御装置100及び情報処理装置200は、互いに、ネットワーク70を介して接続されている。
情報処理装置200は、ハードウェア202と、1つのハイパーバイザ210を有する。ハイパーバイザ210は、1つのハードウェア202上で、複数の仮想マシン220を実行するための処理を行う。そして、それらの実行される複数の仮想マシン220の1つが本番系の仮想マシン(コンピュータ)として動作し、他の仮想マシン220が待機系の仮想マシン(コンピュータ)として動作する。
図8に示した例では、ハイパーバイザ210において仮想マシン220Aが実行されている。仮想マシン220Aには、ゲストOS230Aがインストールされている。ゲストOS230Aには、アプリケーション240Aがインストールされている。ゲストOS230Aには、VMツール250Aがインストールされている。なお、仮想マシン220A、ゲストOS230A及びアプリケーション240Aを構成するためのデータは、ハードウェア202のディスク装置に格納されている。なお、実施の形態2にかかるハイパーバイザ210は、生成されたテンプレート62を、自身に格納する。
制御装置100は、仮想基盤クライアント110の機能によって、ハイパーバイザ210に対して管理のための指示を送信する。制御装置100は、図3に示した実施の形態1にかかる制御装置100と実質的に同様の構成要素を有し得る。なお、実施の形態2においては、情報処理装置200及びハイパーバイザ210は、1つである。したがって、実施の形態2にかかる仮想基盤クライアント110は、情報処理装置200及びハイパーバイザ210を、本番系と待機系とで区別しない。つまり、実施の形態2にかかる仮想基盤クライアント110は、ハイパーバイザ210を本番系又は待機系と設定しない。
図9及び図10は、実施の形態2にかかる多重化システム50によって行われる多重化方法を示すフローチャートである。また、図4及び図5に示したフローチャートと同様に、図9及び図10では、アプリケーション240A(APP_A)を保護対象とする。
S102の処理と同様に、仮想基盤クライアント110の多重化制御部112の処理により、アプリケーション240Aが動作するゲストOS230Aに、VMツール250がインストールされる(ステップS202)。次に、S104の処理と同様に、仮想基盤クライアント110は、本番系の設定を行う(ステップS204)。具体的には、本番系設定部114は、保護対象であるアプリケーション240Aを、本番系のアプリケーション240と設定する。また、本番系設定部114は、保護対象のアプリケーション240Aが動作するゲストOS230A及び仮想マシン220Aを、それぞれ、本番系のゲストOS230及び仮想マシン220と設定する。なお、上述したように、本番系設定部114は、保護対象のアプリケーション240Aを実行するハイパーバイザ210を本番系とは設定しない。また、この時点では、本番系設定部114は、待機系の設定を行う必要はない。
S106の処理と同様に、多重化システム50は、多重化処理を行う(ステップS206)。図11は、実施の形態2にかかる、多重化処理がなされた多重化システム50を示す図である。仮想基盤クライアント110の多重化処理部116は、ハイパーバイザ210に対して、テンプレート62を生成するように指示する。ハイパーバイザ210は、この指示に応じて、ゲストOS230Aをシャットダウンして、仮想マシン220Aからテンプレート62を生成する。ハイパーバイザ210は、生成されたテンプレート62を、自身に格納する。
多重化処理部116は、ハイパーバイザ210に対して、仮想マシン220Aに対応するテンプレート62の展開を指示する。ハイパーバイザ210は、この指示に応じて、テンプレート62から仮想マシン220Aの複製である仮想マシン220Bを生成する。また、ハイパーバイザ210は、ゲストOS230Aの複製であるゲストOS230Bを生成する。また、ハイパーバイザ210は、アプリケーション240Aの複製であるアプリケーション240Bを生成する。また、ハイパーバイザ210は、VMツール250Aの複製であるVMツール250Bを生成する。そして、多重化制御部112(本番系設定部114)は、仮想マシン220Bを待機系の仮想マシン220と設定し、ゲストOS230Bを待機系のゲストOS230と設定し、アプリケーション240Bを待機系のアプリケーション240と設定する。このようにして、図11に示すように、待機系のシステムが生成される。
次に、S108の処理と同様に、多重化システム50は、アプリケーション240の起動処理を行う(ステップS208)。具体的には、仮想基盤クライアント110の多重化制御部112は、ハイパーバイザ210に対して、アプリケーション240A及びアプリケーション240Bを起動するように指示する。ハイパーバイザ210は、この指示に応じて、仮想マシン220A及び仮想マシン220Bを起動する。仮想マシン220A及び仮想マシン220Bは、それぞれ、ゲストOS230A及びゲストOS230Bを起動する。
ハイパーバイザ210は、VMツール250AからゲストOS230Aの起動が完了したことを示す通知を受け付けた後、VMツール250Aを介して、アプリケーション240Aを起動する。同様に、ハイパーバイザ210は、VMツール250BからゲストOS230Bの起動が完了したことを示す通知を受け付けた後、VMツール250Bを介して、アプリケーション240Bを起動する。
ユーザからアプリケーション240Aに対して入力があった場合(ステップS210のYES)、入力送信部120は、入力内容を、ハイパーバイザ210に対して送信する(ステップS212)。ハイパーバイザ210は、送信された入力内容を受信すると、入力内容を、アプリケーション240A及びアプリケーション240Bに入力し反映する。これにより、アプリケーション240A及びアプリケーション240Bは、システムに異常が発生していなければ、入力内容に応じた動作を行い得る。
次に、S120〜S132の処理と同様に、画面比較部130は、画面表示内容の比較処理を行う(ステップS220〜ステップS232)。そして、アプリケーション240Aとアプリケーション240Bとで画面表示内容が一致しない場合(S230のNO及びS232のNO)に、S140の処理と同様に、選択肢提示部140は、選択肢提示処理を行う(ステップS240)。さらに、S142〜S162の処理と同様に、ユーザの選択に応じて、復帰制御部150は、復帰処理を行う(ステップS242〜ステップS262)。S242〜S262の処理は、それぞれ、S142〜S162の処理と実質的に同様であるので、説明を省略する。
なお、実施の形態2にかかる復帰処理においては、復帰制御部150は、1つのハイパーバイザ210に対して指示を行う。そして、ハイパーバイザ210は、アプリケーション240A及びアプリケーション240Bの再起動を行い(S245)、ゲストOS230A及びゲストOS230Bの再起動を行い(S247)、自身の再起動を行う(S249)。
また、S256の処理において、本番系選択部152は、ユーザによって選択されなかった方のアプリケーション240を終了するように、1つのハイパーバイザ210に指示する。この指示に応じて、ハイパーバイザ210は、ユーザによって選択されなかった方のアプリケーション240を終了する。そして、本番系選択部152は、選択されなかったアプリケーション240が動作するゲストOS230を、新たな待機系と設定する。
また、S262の処理において、復帰制御部150は、1つのハイパーバイザ210に対して、本番系のアプリケーション240及び待機系のアプリケーション240の起動を指示する。この指示に応じて、ハイパーバイザ210は、本番系のゲストOS230上で本番系のアプリケーション240を起動する。また、ハイパーバイザ210は、待機系のゲストOS230上で待機系のアプリケーション240を起動する。
上述したように、実施の形態2にかかる多重化システム50においても、複数のコンピュータ(仮想マシン220)で実行されているアプリケーション240にかかる画面表示内容が互いに一致しないという異常が発生した場合に、ユーザに対して、アプリケーション240の復帰処理の選択肢を提示するように構成されている。したがって、実施の形態2にかかる多重化システム50においても、アプリケーションについて異常が発生した場合であっても、ユーザの選択に応じて適切にアプリケーションの復帰動作を行うことが可能となる。また、実施の形態2にかかる多重化システム50においても、ユーザが画面表示内容の比較を行うことができればよいので、アプリケーションの処理に関して厳密に同期を行う必要はない。したがって、実施の形態2にかかる多重化システム50においても、上述したフォールトトレラント技術と比較して、アプリケーションの異常が発生した場合に容易にアプリケーションの復帰動作を行うことが可能となる。
このように、実施の形態2にかかる多重化システム50のように、ハードウェア202が複数ない場合であっても、実施の形態1にかかる多重化システム50と実質的に同様の効果を奏し得る。一方、実施の形態1にかかる多重化システム50は、ハードウェア202を複数有している。言い換えると、複数のコンピュータが互いに別のハードウェア202に実装されている。したがって、実施の形態1にかかる多重化システム50は、ハードウェア202の障害に起因するアプリケーション240の異常が発生した場合であっても、適切に対処することができる。これに対し、実施の形態2にかかる多重化システム50では、1つのハードウェア202に複数のコンピュータ(仮想マシン220)が実装されている。したがって、実施の形態1とは異なり、実施の形態2にかかる多重化システム50は、ハードウェア202の障害に起因するアプリケーション240の異常が発生した場合に、適切に対処することが困難である。
(変形例)
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、各処理(ステップ)の順序は、適宜、変更可能である。また、複数ある処理(ステップ)のうちの1つ以上は、省略されてもよい。また、S132にかかる再比較処理は、必ずしも必要でない。この場合、N=1と設定される。
また、上述した実施の形態では、仮想マシン220によってアプリケーション240が実行されるとしたが、このような構成に限られない。ハードウェア202(ホストOS)が、直接、アプリケーション240を実行するようにしてもよい。一方、上述したように、仮想マシン220によってアプリケーション240が実行されることによって、アプリケーション240の実行環境の複製を、容易に行うことが可能となる。
また、上述した実施の形態にかかる多重化システム50は、アプリケーション240を実行する2つのコンピュータを有するとしたが、このような構成に限られない。アプリケーション240を実行するコンピュータの数は任意である。一方、コンピュータの数が3つ以上である場合、上述したフォールトトレラント技術では、アプリケーションの応答が異なる場合に、多数決によって異常となるシステムを判定することができる。しかしながら、コンピュータの数が2つである場合、上述したフォールトトレラント技術では、多数決を行うことができないので、異常となるシステムを判定することが困難である。しかしながら、本実施の形態にかかる多重化システム50では、多数決を行うことなく、異常となるシステムを判定できるので、コンピュータの数が2つであっても、適切に、異常となるシステムを判定することが可能となる。つまり、本実施の形態にかかる多重化システム50は、コンピュータの数が2つである場合に、特に有効である。
また、上述した実施の形態では、復帰処理の際に、新たに待機系と設定されるゲストOS230は、ユーザに選択されなかった方のアプリケーション240が動作するゲストOS230としたが、このような構成に限られない。ユーザに選択されなかった方のアプリケーション240が動作するゲストOS230及び新たな本番系のゲストOS230とは別のゲストOSを、新たな待機系として設定してもよい。例えば、仮想マシン220のテンプレート(テンプレート62)から新たな仮想マシン220を展開及び起動して、そのゲストOSを、新たな待機系として設定してもよい。あるいは、復帰処理を迅速化するため、新たな待機系と設定され得るゲストOSを、ゲストOS230A,230Bとは別に予め起動しておいてもよい。
また、上述した実施の形態1の説明では、2つのハードウェア202A,202Bの両方が故障する場合については言及していないが、本実施の形態は、2つのハードウェア202A,202Bの両方が故障する場合についても適用可能である。このような場合に備えて、3台以上のハードウェア202が実装されていてもよく、それらのハードウェア202に、新たな待機系となり得るゲストOS230を予め実装しておいてもよい。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
を有する制御装置。
(付記2)
前記提示手段は、前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
付記1に記載の制御装置。
(付記3)
前記復帰制御手段は、前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
付記1又は2に記載の制御装置。
(付記4)
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
付記3に記載の制御装置。
(付記5)
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
付記3又は4に記載の制御装置。
(付記6)
前記コンピュータは、仮想マシンによって実現される
付記1から5のいずれか1項に記載の制御装置。
(付記7)
前記複数のコンピュータの数は2つである
付記1から6のいずれか1項に記載の制御装置。
(付記8)
前記複数のコンピュータは互いに別のハードウェアに実装されている
付記1から7のいずれか1項に記載の制御装置。
(付記9)
本番系又は待機系としてそれぞれ動作する複数のコンピュータと、
前記複数のコンピュータを制御する制御装置と
を有し、
前記制御装置は、
前記複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
を有する
多重化システム。
(付記10)
前記提示手段は、前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
付記9に記載の多重化システム。
(付記11)
前記復帰制御手段は、前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
付記9又は10に記載の多重化システム。
(付記12)
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
付記11に記載の多重化システム。
(付記13)
前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
付記11又は12に記載の多重化システム。
(付記14)
前記コンピュータは、仮想マシンによって実現される
付記9から13のいずれか1項に記載の多重化システム。
(付記15)
前記複数のコンピュータの数は2つである
付記9から14のいずれか1項に記載の多重化システム。
(付記16)
前記複数のコンピュータは互いに別のハードウェアに実装されている
付記9から15のいずれか1項に記載の多重化システム。
(付記17)
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御し、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較し、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示し、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する
多重化方法。
(付記18)
前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
付記17に記載の多重化方法。
(付記19)
前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
付記17又は18に記載の多重化方法。
(付記20)
前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
付記19に記載の多重化方法。
(付記21)
前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
付記19又は20に記載の多重化方法。
(付記22)
本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御するステップと、
前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへの入力に対して出力される画面表示内容が互いに一致しているか否かを比較するステップと、
前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示するステップと、
前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御するステップと
を前記複数のコンピュータとは別のコンピュータに実行させるプログラム。
1 多重化システム
2 情報処理装置
4 ネットワーク
10 制御装置
12 多重化制御部
13 画面比較部
14 選択肢提示部
15 復帰制御部
50 多重化システム
60 共有ディスク装置
62 テンプレート
70 ネットワーク
100 制御装置
106 入出力部
110 仮想基盤クライアント
112 多重化制御部
114 本番系設定部
116 多重化処理部
120 入力送信部
130 画面比較部
140 選択肢提示部
150 復帰制御部
152 本番系選択部
154 環境複製部
200 情報処理装置
202 ハードウェア
210 ハイパーバイザ
220 仮想マシン
230 ゲストOS
240 アプリケーション
250 VMツール

Claims (10)

  1. 本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
    前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへのユーザからの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
    前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
    前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
    を有する制御装置。
  2. 前記提示手段は、前記複数のコンピュータそれぞれに関する前記画面表示内容をユーザに対して提示する
    請求項1に記載の制御装置。
  3. 前記復帰制御手段は、前記ユーザによってなされた選択に応じて、本番系の前記コンピュータを新たに設定する
    請求項1又は2に記載の制御装置。
  4. 前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータで実行されている前記アプリケーションを終了するように制御する
    請求項3に記載の制御装置。
  5. 前記復帰制御手段は、前記本番系と設定されなかった前記コンピュータを待機系と設定し、前記本番系と設定された前記コンピュータで実行される前記アプリケーションの実行環境を、前記待機系と設定された前記コンピュータに複製する
    請求項3又は4に記載の制御装置。
  6. 前記コンピュータは、仮想マシンによって実現される
    請求項1から5のいずれか1項に記載の制御装置。
  7. 前記複数のコンピュータの数は2つである
    請求項1から6のいずれか1項に記載の制御装置。
  8. 本番系又は待機系としてそれぞれ動作する複数のコンピュータと、
    前記複数のコンピュータを制御する制御装置と
    を有し、
    前記制御装置は、
    前記複数のコンピュータで同一のアプリケーションを実行させるように制御する多重化制御手段と、
    前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへのユーザからの入力に対して出力される画面表示内容が互いに一致しているか否かを比較する比較手段と、
    前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示する提示手段と、
    前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する復帰制御手段と
    を有する
    多重化システム。
  9. 本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御し、
    前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへのユーザからの入力に対して出力される画面表示内容が互いに一致しているか否かを比較し、
    前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示し、
    前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御する
    多重化方法。
  10. 本番系又は待機系としてそれぞれ動作する複数のコンピュータで同一のアプリケーションを実行させるように制御するステップと、
    前記複数のコンピュータのそれぞれで実行されている前記アプリケーションへのユーザからの入力に対して出力される画面表示内容が互いに一致しているか否かを比較するステップと、
    前記画面表示内容が一致していない場合に、前記アプリケーションのユーザに対して、前記アプリケーションの復帰処理の選択肢を提示するステップと、
    前記選択肢の提示に応じてユーザによってなされた選択に基づいて、前記アプリケーションの復帰を制御するステップと
    を前記複数のコンピュータとは別のコンピュータに実行させるプログラム。
JP2017067195A 2017-03-30 2017-03-30 制御装置、多重化システム、多重化方法及びプログラム Active JP6848606B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017067195A JP6848606B2 (ja) 2017-03-30 2017-03-30 制御装置、多重化システム、多重化方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017067195A JP6848606B2 (ja) 2017-03-30 2017-03-30 制御装置、多重化システム、多重化方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2018169841A JP2018169841A (ja) 2018-11-01
JP6848606B2 true JP6848606B2 (ja) 2021-03-24

Family

ID=64020505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017067195A Active JP6848606B2 (ja) 2017-03-30 2017-03-30 制御装置、多重化システム、多重化方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6848606B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5812062A (ja) * 1981-07-15 1983-01-24 Mitsubishi Electric Corp 並列電子計算機システムの出力装置
US7373548B2 (en) * 2003-08-29 2008-05-13 Intel Corporation Hardware recovery in a multi-threaded architecture
JP5511546B2 (ja) * 2010-06-29 2014-06-04 株式会社日立製作所 フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法
US10313207B2 (en) * 2014-03-10 2019-06-04 Sk Techx Co., Ltd. Method for testing cloud streaming server, and apparatus and system therefor
JP2015172906A (ja) * 2014-03-12 2015-10-01 国立大学法人奈良女子大学 ネットワークシステム

Also Published As

Publication number Publication date
JP2018169841A (ja) 2018-11-01

Similar Documents

Publication Publication Date Title
US9489274B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
US7689859B2 (en) Backup system and method
EP2539820B1 (en) System and method for failing over cluster unaware applications in a clustered system
US8719497B1 (en) Using device spoofing to improve recovery time in a continuous data protection environment
EP1397744B1 (en) Recovery computer for a plurality of networked computers
EP2652599B1 (en) System reset
US9912535B2 (en) System and method of performing high availability configuration and validation of virtual desktop infrastructure (VDI)
US6931522B1 (en) Method for a computer using the system image on one of the partitions to boot itself to a known state in the event of a failure
JP2016164785A (ja) セキュア・リカバリ装置及び方法
US8219851B2 (en) System RAS protection for UMA style memory
US20120079474A1 (en) Reimaging a multi-node storage system
JP2010522400A (ja) 自己管理型処理装置
US11704197B2 (en) Basic input/output system (BIOS) device management
US20060036832A1 (en) Virtual computer system and firmware updating method in virtual computer system
US11531604B2 (en) Methods and systems for data resynchronization in a replication environment
EP3314515B1 (en) Notice of intrusion into firmware
US20220114004A1 (en) Containerized application management system and management method
WO2020015709A1 (zh) 虚拟机镜像文件处理方法及装置
US10824517B2 (en) Backup and recovery of configuration files in management device
WO2015043155A1 (zh) 一种基于命令集的网元备份与恢复方法及装置
US20150278048A1 (en) Systems and methods for restoring data in a degraded computer system
JP6124644B2 (ja) 情報処理装置および情報処理システム
JP6848606B2 (ja) 制御装置、多重化システム、多重化方法及びプログラム
US10860442B2 (en) Systems, methods and computer readable media for business continuity and disaster recovery (BCDR)
CN110543385A (zh) 一种虚拟化备份方法和虚拟化备份还原方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210215

R150 Certificate of patent or registration of utility model

Ref document number: 6848606

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150