(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-15
(45)【発行日】2023-08-23
(54)【発明の名称】冗長化システム、冗長化プログラム、及び情報処理装置
(51)【国際特許分類】
G06F 11/20 20060101AFI20230816BHJP
【FI】
G06F11/20 697
G06F11/20 633
(21)【出願番号】P 2018169162
(22)【出願日】2018-09-10
【審査請求日】2021-06-09
【審判番号】
【審判請求日】2022-11-22
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100202326
【氏名又は名称】橋本 大佑
(72)【発明者】
【氏名】高林 祐二
【合議体】
【審判長】林 毅
【審判官】中村 信也
【審判官】山崎 慎一
(56)【参考文献】
【文献】特開2012-159928(JP,A)
【文献】特開2018-077594(JP,A)
【文献】特開2016-053841(JP,A)
【文献】特開2012-221321(JP,A)
【文献】米国特許出願公開第2015/0074447(US,A1)
【文献】特開2016-177716(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/20
(57)【特許請求の範囲】
【請求項1】
第1情報処理装置及び第2情報処理装置を少なくとも含む複数の情報処理装置と管理用情報処理装置とを備える冗長化システムであって、
前記管理用情報処理装置は、
前記複数の情報処理装置それぞれに関連付ける仮想環境であって、稼働仮想環境と待機仮想環境とを含む前記仮想環境を冗長化管理情報に定義し、前記複数の情報処理装置それぞれに前記冗長化管理情報を送信し、
前記複数の情報処理装置それぞれは、
前記管理用情報処理装置が送信した前記冗長化管理情報に基づいて、前記稼働仮想環境の制御を実行し、かつ、他の前記情報処理装置へ前記稼働仮想環境に関連付けられた等値化情報を送信し、他の前記情報処理装置で前記等値化情報に基づき前記仮想環境を等値化して前記待機仮想環境として制御するための通信管理を実行し、
前記管理用情報処理装置は、
一の前記情報処理装置が前記冗長化システムから削除される場合、又は新たな前記情報処理装置が前記冗長化システムに追加される場合、前記複数の情報処理装置の負荷バランスに基づき前記冗長化管理情報を更新して前記複数の情報処理装置それぞれに送信し、
前記複数の情報処理装置それぞれは、
更新された前記冗長化管理情報に基づいて、前記稼働仮想環境又は前記待機仮想環境を他の前記情報処理装置との間で移動させる、
冗長化システム。
【請求項2】
前記複数の情報処理装置それぞれは、
他の情報処理装置と通信を行う通信部と、
自身の情報処理装置におい
て複数の
前記仮想環境を
稼働させている制御部と、
を備え、
前記第1情報処理装置の前記通信部は、
前記第1情報処理装置における前記
稼働仮想環境である第1環境に関連付けられた第1等値化情報を、前記第2情報処理装置に送信し、
前記第2情報処理装置にお
ける前記稼働仮想環境である第2環境に関連付けられた第2等値化情報を、前記第2情報処理装置から受信し、
前記第1情報処理装置の前記制御部は、
前記第1情報処理装置の前記通信部が受信した前記第2等値化情報に基づいて、前記第2環境を前記第1情報処理装置に等値化し、
前記第1環境を前記第1情報処理装置において稼働状態に維持し、かつ前記第2環境を前記第1情報処理装置において待機状態に
し、
前記第2情報処理装置の前記制御部は、
前記第2情報処理装置の前記通信部が受信した前記第1等値化情報に基づいて、前記第1環境を前記第2情報処理装置に等値化し、
前記第1環境を前記第2情報処理装置において待機状態にする、
請求項1に記載の冗長化システム。
【請求項3】
第3情報処理装置をさらに備え、
前記第1情報処理装置の前記通信部は、
前記第1情報処理装置における前記
稼働仮想環境である第3環境に関連付けられた第3等値化情報を、前記第3情報処理装置に送信し、
前記第3情報処理装置にお
ける前記稼働仮想環境である第4環境に関連付けられた第4等値化情報を、前記第3情報処理装置から受信し、
前記第1情報処理装置の前記制御部は、
前記第1情報処理装置の前記通信部が受信した前記第4等値化情報に基づいて、前記第4環境を前記第1情報処理装置に等値化し、
前記第3環境を稼働状態に維持し、かつ前記第4環境を待機状態にする、
請求項
2に記載の冗長化システム。
【請求項4】
前記第2情報処理装置の前記制御部は、前記第1情報処理装置がシステムダウンし
前記冗長化システムから削除されたと判定すると、
更新された前記冗長化管理情報に基づいて、前記第1情報処理装置において稼働状態にあった前記第1環境を、前記第2情報処理装置において待機状態から稼働状態に切り替える、
請求項
2又は3に記載の冗長化システム。
【請求項5】
前記第1情報処理装置の前記制御部は、第4情報処理装置が新たな前記情報処理装置として前記冗長化システムに追加されたと判定すると、更新された前記冗長化管理情報に基づいて、稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、前記第1情報処理装置の前記通信部を用いて前記第4情報処理装置に送信し、送信した前記第1等値化情報に関連付いている前記第1環境を前記第1情報処理装置から消去する、
請求項2又は3に記載の冗長化システム。
【請求項6】
前記通信部は、LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信を行う、
請求項
2乃至5のいずれか1項に記載の冗長化システム。
【請求項7】
冗長化システムが備える、第1情報処理装置及び第2情報処理装置を少なくとも含む複数の情報処理装置と管理用情報処理装置とにおいて動作する冗長化プログラムであって、
前記管理用情報処理装置において、
前記複数の情報処理装置それぞれに関連付ける仮想環境であって、稼働仮想環境と待機仮想環境とを含む前記仮想環境を冗長化管理情報に定義するステップと、
前記複数の情報処理装置それぞれに前記冗長化管理情報を送信するステップと、
前記複数の情報処理装置それぞれにおいて、
前記管理用情報処理装置が送信した前記冗長化管理情報に基づいて、前記稼働仮想環境の制御を実行し、かつ、他の前記情報処理装置へ前記稼働仮想環境に関連付けられた等値化情報を送信し、他の前記情報処理装置で前記等値化情報に基づき前記仮想環境を等値化して前記待機仮想環境として制御するための通信管理を実行するステップと、
前記管理用情報処理装置において、
一の前記情報処理装置が前記冗長化システムから削除される場合、又は新たな前記情報処理装置が前記冗長化システムに追加される場合、前記複数の情報処理装置の負荷バランスに基づき前記冗長化管理情報を更新して前記複数の情報処理装置それぞれに送信するステップと、
前記複数の情報処理装置それぞれにおいて、
更新された前記冗長化管理情報に基づいて、前記稼働仮想環境又は前記待機仮想環境を他の前記情報処理装置との間で移動するステップ、
を含む動作を実行させる、
冗長化プログラム。
【請求項8】
前記第1情報処理装置において
前記稼働仮想環境である第1環境に関連付けられた第1等値化情報を前記第1情報処理装置から前記第2情報処理装置に送信するステップと、
前記第2情報処理装置において
前記稼働仮想環境である第2環境に関連付けられた第2等値化情報を前記第2情報処理装置から前記第1情報処理装置が受信するステップと、
受信された前記第2等値化情報に基づいて、前記第2環境を前記第1情報処理装置に等値化するステップと、
前記第1情報処理装置において、前記第1環境を稼働状態に維持し、かつ前記第1情報処理装置において、前記第2環境を待機状態にするステップ
と、
前記第2情報処理装置において、前記第1等値化情報に基づいて、前記第1環境を前記第2情報処理装置に等値化し、前記第1環境を待機状態にするステップと、
を含む、
請求項7に記載の冗長化プログラム。
【請求項9】
前記冗長化システムがさらに備える第3情報処理装置を含む前記複数の情報処理装置において動作し、
前記第1情報処理装置において
前記稼働仮想環境である第3環境に関連付けられた第3等値化情報を前記第1情報処理装置から前記第3情報処理装置に送信するステップと、
前記第3情報処理装置において
前記稼働仮想環境である第4環境に関連付けられた第4等値化情報を前記第3情報処理装置から前記第1情報処理装置が受信するステップと、
受信された前記第4等値化情報に基づいて、前記第4環境を前記第1情報処理装置に等値化するステップと、
前記第1情報処理装置において、前記第3環境を稼働状態に維持し、かつ前記第4環境を待機状態にするステップと、
を含む、
請求項
8に記載の冗長化プログラム。
【請求項10】
前記第1情報処理装置がシステムダウンし
前記冗長化システムから削除されたか否かを前記第2情報処理装置が判定するステップと、
前記第1情報処理装置がシステムダウンし
前記冗長化システムから削除されたと前記第2情報処理装置が判定すると、
更新された前記冗長化管理情報に基づいて、前記第1情報処理装置において稼働状態にあった前記第1環境を、前記第2情報処理装置において待機状態から稼働状態に切り替えるステップと、
をさらに含む、
請求項
8又は9に記載の冗長化プログラム。
【請求項11】
第4情報処理装置が新たな前記情報処理装置として前記冗長化システムに追加されたか否かを前記第1情報処理装置が判定するステップと、
前記第4情報処理装置が新たな前記情報処理装置として前記冗長化システムに追加されたと前記第1情報処理装置が判定すると、更新された前記冗長化管理情報に基づいて、前記第1情報処理装置において稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、前記第1情報処理装置が前記第4情報処理装置に送信するステップと、
送信された前記第1等値化情報に関連付いている前記第1環境を前記第1情報処理装置から前記第1情報処理装置が消去するステップと、
をさらに含む、
請求項8又は9に記載の冗長化プログラム。
【請求項12】
LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信が行われる、
請求項
8乃至11のいずれか1項に記載の冗長化プログラム。
【請求項13】
冗長化システムを構成する複数の情報処理装置のうちの第1情報処理装置であって、
前記複数の情報処理装置それぞれに関連付ける仮想環境であって、稼働仮想環境と待機仮想環境とを含む前記仮想環境を定義した冗長化管理情報を管理用情報処理装置から受信し、
前記冗長化管理情報に基づいて、前記稼働仮想環境の制御を実行し、かつ、他の前記情報処理装置へ前記稼働仮想環境に関連付けられた等値化情報を送信し、他の前記情報処理装置で前記等値化情報に基づき前記仮想環境を等値化して前記待機仮想環境として制御するための通信管理を実行し、
一の前記情報処理装置が前記冗長化システムから削除される場合、又は新たな前記情報処理装置が前記冗長化システムに追加される場合、前記複数の情報処理装置の負荷バランスに基づき更新された前記冗長化管理情報を前記管理用情報処理装置から受信し、
更新された前記冗長化管理情報に基づいて、前記稼働仮想環境又は前記待機仮想環境を他の前記情報処理装置との間で移動させる、
第1情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、冗長化システム、冗長化プログラム、及び情報処理装置に関する。
【背景技術】
【0002】
2つの情報処理装置を備えるシステムにおいて、一方の情報処理装置に致命的な異常が発生したときにもう一方の情報処理装置に動作を切り替え、システム動作に影響を与えることなく動作を継続実行できる冗長化に関する技術が従来知られている。
【0003】
例えば、特許文献1には、特殊なハードウェア及び冗長化制御の仕組みを入れた特殊なOS(Operating System)を必要とせず、汎用のハードウェア及びOSで実現可能な冗長化コントローラが開示されている。
【0004】
例えば、特許文献2には、独立した2台の計算機上でそれぞれ稼働する仮想計算機を組み合わせて二重化を実現することを可能にする高可用システムが開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特許第4099816号公報
【文献】特許第4468426号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年、情報処理に関する技術革新のスピードは目覚ましく、外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性がさらに向上するシステムが求められている。特許文献1及び特許文献2に開示されているシステムでは、このような問題点は十分に考慮されていなかった。
【0007】
本開示は、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム、冗長化プログラム、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
幾つかの実施形態に係る冗長化システムは、複数の情報処理装置を備える冗長化システムであって、前記複数の情報処理装置それぞれは、他の情報処理装置と通信を行う通信部と、自身の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、を備え、前記通信部は、前記複数の仮想環境のうち稼働状態にある第1環境に関連付けられた第1等値化情報を、前記他の情報処理装置に送信し、前記他の情報処理装置において稼働状態にある第2環境に関連付けられた第2等値化情報を、前記他の情報処理装置から受信し、前記制御部は、前記通信部が受信した前記第2等値化情報に基づいて、前記第2環境を前記自身の情報処理装置に等値化し、前記第1環境を稼働状態に維持し、かつ前記第2環境を待機状態にする。これにより、ハードウェア構成が2つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【0009】
一実施形態に係る冗長化システムは、3つの前記情報処理装置を備え、前記第1環境は、1つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している1つの仮想環境が2つの他の情報処理装置それぞれに等値化される。したがって、1つの他の情報処理装置のみに仮想環境が等値化される場合と比較して、信頼性及び可用性がさらに向上する。
【0010】
一実施形態に係る冗長化システムにおいて、前記制御部は、1つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第2環境を、待機状態から稼働状態に切り替えてもよい。これにより、例えばハードウェア異常により他の情報処理装置がシステムダウンしても、瞬時に自身の情報処理装置に動作が切り替わる。したがって、システム動作に全く影響が及ばず、システム動作が継続可能である。
【0011】
一実施形態に係る冗長化システムにおいて、前記制御部は、新たな1つの情報処理装置が前記冗長化システムに備わったと判定すると、稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、前記通信部を用いて新たな前記情報処理装置に送信し、送信した前記第1等値化情報に関連付いている前記第1環境を消去してもよい。これにより、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置を新たに追加することで負荷が分散され、信頼性及び可用性が向上する。
【0012】
一実施形態に係る冗長化システムにおいて、前記通信部は、LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信を行ってもよい。これにより、ソフトウェアに基づく処理を介在せずに、他の情報処理装置への等値化が行われる。したがって、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。
【0013】
一実施形態に係る冗長化システムにおいて、2つの前記情報処理装置を備え、前記第1環境は、1つの仮想環境を含み、前記第2環境は、1つの前記他の情報処理装置において稼働状態にある1つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している仮想環境は、他の情報処理装置に待機状態の仮想環境として等値化される。したがって、一方の情報処理装置が稼働状態に、他方の情報処理装置が待機状態にある従来の二重化システムと比較して、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である集約率が向上する。例えば、1つの情報処理装置に対して1つの稼働状態の仮想環境が構築されている場合、従来の二重化システムであれば、集約率は50%となる。一方で、一実施形態に係る冗長化システムでは、冗長化を構成する2つの情報処理装置それぞれで1つの仮想環境が稼働可能である。したがって、集約率は100%である。以上に加えて、各情報処理装置における負荷バランスが変更される。すなわち、各情報処理装置において負荷が略均等となり、負荷バランスが向上する。
【0014】
一実施形態に係る冗長化システムにおいて、3つの前記情報処理装置を備え、前記第1環境は、2つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している2つの仮想環境が2つの他の情報処理装置にそれぞれ等値化される。したがって、各情報処理装置において複数の仮想環境が稼働状態にある場合でも、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【0015】
一実施形態に係る冗長化システムは、管理用情報処理装置をさらに備え、前記管理用情報処理装置は、ユーザからの入力操作に基づいて冗長化管理情報を変更し、前記冗長化管理情報を前記複数の情報処理装置それぞれに送信してもよい。これにより、冗長化システムに含まれる情報処理装置の構成、各情報処理装置に対する仮想環境の関連付け、及び各情報処理装置の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システムでは、稼働を停止させることなく、自在に構成の変更が可能である。
【0016】
幾つかの実施形態に係る冗長化プログラムは、冗長化システムが備える複数の情報処理装置において動作する冗長化プログラムであって、前記複数の情報処理装置のそれぞれの前記情報処理装置において稼働状態にある第1環境に関連付けられた第1等値化情報を前記情報処理装置から他の情報処理装置に送信するステップと、前記他の情報処理装置において稼働状態にある第2環境に関連付けられた第2等値化情報を前記他の情報処理装置から前記情報処理装置が受信するステップと、受信された前記第2等値化情報に基づいて、前記第2環境を前記情報処理装置に等値化するステップと、前記情報処理装置において、前記第1環境を稼働状態に維持し、かつ前記第2環境を待機状態にするステップと、を含む。これにより、ハードウェア構成が2つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【0017】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える3つの前記情報処理装置において動作し、前記第1環境は、1つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している1つの仮想環境が2つの他の情報処理装置それぞれに等値化される。したがって、1つの他の情報処理装置のみに仮想環境が等値化される場合と比較して、信頼性及び可用性がさらに向上する。
【0018】
一実施形態に係る冗長化プログラムは、1つの前記他の情報処理装置がシステムダウンしたか否かを判定するステップと、1つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第2環境を、前記情報処理装置において待機状態から稼働状態に切り替えるステップと、をさらに含んでもよい。これにより、例えばハードウェア異常により他の情報処理装置がシステムダウンしても、瞬時に自身の情報処理装置に動作が切り替わる。したがって、システム動作に全く影響が及ばず、システム動作が継続可能である。
【0019】
一実施形態に係る冗長化プログラムは、新たな1つの情報処理装置が前記冗長化システムに備わったか否かを判定するステップと、新たな1つの前記情報処理装置が前記冗長化システムに備わったと判定すると、前記情報処理装置において稼働状態にある前記第1環境に関連付けられた前記第1等値化情報を、新たな前記情報処理装置に送信するステップと、送信された前記第1等値化情報に関連付いている前記第1環境を前記情報処理装置から消去するステップと、をさらに含んでもよい。これにより、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置を新たに追加することで負荷が分散され、信頼性及び可用性が向上する。
【0020】
一実施形態に係る冗長化プログラムにおいて、LANカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信が行われてもよい。これにより、ソフトウェアに基づく処理を介在せずに、他の情報処理装置への等値化が行われる。したがって、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。
【0021】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える2つの前記情報処理装置において動作し、前記第1環境は、1つの仮想環境を含み、前記第2環境は、1つの前記他の情報処理装置において稼働状態にある1つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している仮想環境は、他の情報処理装置に待機状態の仮想環境として等値化される。したがって、一方の情報処理装置が稼働状態に、他方の情報処理装置が待機状態にある従来の二重化システムと比較して、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である集約率が向上する。例えば、1つの情報処理装置に対して1つの稼働状態の仮想環境が構築されている場合、従来の二重化システムであれば、集約率は50%となる。一方で、一実施形態に係る冗長化システムでは、冗長化を構成する2つの情報処理装置それぞれで1つの仮想環境が稼働可能である。したがって、集約率は100%である。以上に加えて、各情報処理装置における負荷バランスが変更される。すなわち、各情報処理装置において負荷が略均等となり、負荷バランスが向上する。
【0022】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える3つの前記情報処理装置において動作し、前記第1環境は、2つの仮想環境を含み、前記第2環境は、2つの前記他の情報処理装置においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している2つの仮想環境が2つの他の情報処理装置にそれぞれ等値化される。したがって、各情報処理装置において複数の仮想環境が稼働状態にある場合でも、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【0023】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える管理用情報処理装置においても動作し、前記管理用情報処理装置においてユーザからの入力操作を受け付けるステップと、ユーザからの前記入力操作に基づいて冗長化管理情報を変更するステップと、前記冗長化管理情報を前記複数の情報処理装置それぞれに送信するステップと、をさらに含んでもよい。これにより、冗長化システムに含まれる情報処理装置の構成、各情報処理装置に対する仮想環境の関連付け、及び各情報処理装置の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システムでは、稼働を停止させることなく、自在に構成の変更が可能である。
【0024】
幾つかの実施形態に係る情報処理装置は、冗長化システムを構成する複数の情報処理装置のうちの一の情報処理装置であって、前記一の情報処理装置と異なる他の情報処理装置と通信を行う通信部と、前記一の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、を備え、前記通信部は、前記複数の仮想環境のうち稼働状態にある第1環境に関連付けられた第1等値化情報を、前記他の情報処理装置に送信し、前記他の情報処理装置において稼働状態にある第2環境に関連付けられた第2等値化情報を、前記他の情報処理装置から受信し、前記制御部は、前記通信部が受信した前記第2等値化情報に基づいて、前記第2環境を前記一の情報処理装置に等値化し、前記第1環境を稼働状態に維持し、かつ前記第2環境を待機状態にする。これにより、ハードウェア構成が2つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【発明の効果】
【0025】
本開示によれば、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム、冗長化プログラム、及び情報処理装置を提供可能である。
【図面の簡単な説明】
【0026】
【
図1】一実施形態に係る冗長化システムの一例を示すブロック図である。
【
図2】
図1の情報処理装置において2つの仮想環境が稼働状態にある場合の構成例を示す模式図である。
【
図3】一例として
図2の第1情報処理装置がシステムダウンしたときの冗長化システムの動作を示す模式図である。
【
図4】一例として
図3の第2情報処理装置がシステムダウンしたときの冗長化システムの動作を示す模式図である。
【
図5】一例として
図2の冗長化システムに新たな第4情報処理装置が加わったときの冗長化システムの動作を示す模式図である。
【
図6】
図1の制御部の機能をより詳細に示した機能ブロック図である。
【
図7】等値化処理を高速化する方法を模式的に示した図である。
【
図8】
図2の冗長化システムの動作の第1例を示すフローチャートである。
【
図9】
図2の冗長化システムの動作の第2例を示すフローチャートである。
【
図10】
図2の冗長化システムの動作の第3例を示すフローチャートである。
【
図11】従来の冗長化システムの一例を示す模式図である。
【発明を実施するための形態】
【0027】
図11は、従来の冗長化システムの一例を示す模式図である。
図11を参照しながら従来技術の内容及び問題点についてより詳細に説明する。
【0028】
従来、例えば無停止型冗長化システムが知られている。「無停止型冗長化システム」とは、一方の情報処理装置に致命的な異常が発生したときに瞬時にもう一方の情報処理装置に動作を切り替え、システム動作に一切影響を与えることなく動作を継続実行できる冗長化システムを含む。冗長化システムは、市販のOS及びアプリケーションソフトウェア等を改変することなく動作可能である。
【0029】
従来の冗長化システムは、2つの情報処理装置を有する。各情報処理装置は、1つ以上の仮想環境を管理する。より具体的には、情報処理装置における冗長化プラットフォームがハイパバイザ機能を有し、仮想ハードウェア環境を提供する。1つの仮想ハードウェア環境上では、ゲストOS及びアプリケーションソフトウェアが動作する。
【0030】
従来の冗長化システムでは、冗長化プラットフォーム上で複数の仮想環境が稼働することで、機能の集約化と、高信頼性及び高可用性との両立が可能となる。加えて、OS及びアプリケーションソフトウェアに依存しない冗長化システムが実現可能である。したがって、従来の冗長化システムによれば、様々な分野のシステムに応用可能な、高信頼性及び高可用性システムが構築される。また、従来の冗長化システムによれば、仮想環境全体を冗長化の対象とするため、無停止型冗長化システムが実現される。
【0031】
従来の冗長化システムにおいて、一の情報処理装置は稼働状態にあり、他の情報処理装置は待機状態にある。稼働状態にある一の情報処理装置では、仮想環境上のソフトウェアが動作する。一の情報処理装置の等値化機能により、一の情報処理装置の仮想環境への変更が、等値化バスを通じて、待機状態にある他の情報処理装置の対応する仮想環境に逐次等値化される。「仮想環境への変更」は、メモリ及び各デバイス等への書き込み等を含む。
【0032】
待機状態にある他の情報処理装置の仮想環境は、常に一の情報処理装置の対応する仮想環境と同一の状態に維持される。一の情報処理装置に異常が発生すると、他の情報処理装置の制御権切替機能により、一の情報処理装置が切り離され、他の情報処理装置の全ての仮想環境が稼働状態に切り替えられる。これにより、一の情報処置装置で実行していた仮想環境の稼働が、他の情報処理装置において継続される。
【0033】
このような従来の冗長化システムでは、ハードウェア構成が2つの情報処理装置によるペアによって固定される。したがって、2つの情報処理装置によって得られる可用性以上の可用性を得ることは困難である。また、従来の冗長化システムは、1つの情報処理装置の故障には対応可能であるが、2つの情報処理装置の故障には対応できない。
【0034】
従来の冗長化システムでは、ハードウェア構成が2つの情報処理装置によるペアによって固定されるため、システムの成長に合わせて、冗長化システムの規模をダイナミックに拡張することが困難である。さらに、アプリケーション容量及びデータ容量の増加に合わせて、ハードウェアを追加する等のシステム構成の柔軟な変更が困難である。
【0035】
従来の冗長化システムでは、アーキテクチャ上、1つの情報処理装置において複数の仮想環境が稼働可能であるが、等値化に関するデータ量が増大し、パフォーマンスが劣化する。したがって、多くの仮想環境を稼働させることは困難である。動作させるアプリケーションソフトウェアの規模によるが、1つの情報処理装置に対して2つ程度の仮想環境を稼働させることが現実的である。これにより、集約率の向上が困難となり、システムコストの低減が妨げられる。「集約率」とは、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である。
【0036】
近年、IoT(Internet of Things)及びAI(Artificial Intelligence)等の技術革新のスピードは目覚ましく、制御システムにおいてもこれらを活用した生産効率の向上及び安全安定操業に対する要求が非常に高まっている。このような状況から、パーソナルコンピュータ等を含む情報処理装置が使用される上位系システムの重要性は増している。そのため、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能で、信頼性及び可用性がさらに向上するシステムが求められている。
【0037】
本開示は、上記の問題点を解決するために、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム及び冗長化プログラムを提供することを目的とする。本開示の一実施形態に係る冗長化システム及び冗長化プログラムは、例えば無停止型冗長化システムに応用可能である。
【0038】
以下、添付図面を参照しながら本開示の一実施形態について主に説明する。
【0039】
図1は、一実施形態に係る冗長化システム1の一例を示すブロック図である。
図1に示すとおり、冗長化システム1は、例えば、第1情報処理装置10aと、第2情報処理装置10bと、第3情報処理装置10cと、管理用情報処理装置20とを有する。以下、第1情報処理装置10a、第2情報処理装置10b、及び第3情報処理装置10cを互いに区別しない場合、まとめて「情報処理装置10」と表記する。情報処理装置10は、ネットワーク30を介して管理用情報処理装置20と通信接続されている。情報処理装置10は、任意のペア間通信によって互いに通信接続されている。このようなペア間通信は、ネットワーク30とは独立して行われてもよいし、ネットワーク30を介して行われてもよい。
【0040】
ネットワーク30は、インターネット及びローカルエリアネットワーク等の任意のネットワークを含む。ネットワーク30は、無線及び有線、並びにこれらの組み合わせのいずれかによって構成されていてもよい。
【0041】
管理用情報処理装置20は、ネットワーク30を介して情報処理装置10を管理可能な任意の情報処理機器を含む。管理用情報処理装置20は、ネットワーク30を介して行われる情報処理装置10の管理に特化した専用の情報処理機器であってもよいし、携帯電話、スマートフォン、タブレットPC、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器であってもよい。
【0042】
管理用情報処理装置20は、例えば、情報処理装置10で動作する冗長化プラットフォームの設定の編集及びダウンロード等のコンフィギュレーションを実行する。管理用情報処理装置20は、例えば、情報処理装置10で稼働する仮想環境の稼働状態を監視する。管理用情報処理装置20は、例えば、仮想環境の起動、停止、及び稼働状態の切り替え等を含む操作指令を情報処理装置10に送る。管理用情報処理装置20は、例えば、情報処理装置10に関連付ける仮想環境を後述する冗長化管理情報に定義する。
【0043】
管理用情報処理装置20は、ネットワーク30に通信接続されている複数の情報処理装置10の負荷バランスを監視してもよい。管理用情報処理装置20は、複数の情報処理装置10の負荷バランスが不均等であると判定すると、自動的に負荷バランスを調整してもよい。例えば、管理用情報処理装置20は、複数の情報処理装置10のうちの一の情報処理装置10の負荷が低く、他の情報処理装置10の負荷が高い場合、他の情報処理装置10に関連付けられた仮想環境を一の情報処理装置10に関連付けるよう後述する冗長化管理情報を更新してもよい。
【0044】
情報処理装置10は、冗長化プラットフォームを有する任意の情報処理機器を含む。情報処理装置10は、冗長化システム1の構成に特化した専用の情報処理機器であってもよいし、携帯電話、スマートフォン、タブレットPC、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器であってもよい。情報処理装置10は、後述する複数の仮想環境を稼働させることが可能なマシンパワーを有してもよい。
【0045】
第1情報処理装置10aは、通信部11aと、記憶部12aと、制御部13aとを有する。第2情報処理装置10bは、通信部11bと、記憶部12bと、制御部13bとを有する。第3情報処理装置10cは、通信部11cと、記憶部12cと、制御部13cとを有する。以下、通信部11a、通信部11b、及び通信部11cを互いに区別しない場合、まとめて「通信部11」と表記する。記憶部12a、記憶部12b、及び記憶部12cを互いに区別しない場合、まとめて「記憶部12」と表記する。制御部13a、制御部13b、及び制御部13cを互いに区別しない場合、まとめて「制御部13」と表記する。
【0046】
通信部11は、任意の通信プロトコルに対応した任意の通信インタフェースを含む。通信部11は、ネットワーク30を介して管理用情報処理装置20と通信接続可能である。通信部11は、任意のペア間通信プロトコルに対応した任意の通信インタフェースをさらに含む。一の通信部11は、当該一の通信部11が配置されている自身の情報処理装置10と2つの他の情報処理装置10との通信接続をそれぞれ可能にする。通信部11は、ペアとなる他の情報処理装置10への等値化及び診断通信の要求を制御部13から受け、他の情報処理装置10に中継を行う。
【0047】
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、及びRAM(Random Access Memory)等の任意の記憶装置を含み、後述する冗長化システム1の動作を実現するために必要な情報を記憶する。記憶部12は、主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。記憶部12は、情報処理装置10に内蔵されているものに限定されず、USB等のデジタル入出力ポート等によって接続されている外付け型の記憶装置であってもよい。
【0048】
制御部13は、1つ以上のプロセッサを含む。より具体的には、制御部13は、汎用のプロセッサ及び特定の処理に特化した専用のプロセッサ等の任意のプロセッサを含む。制御部13は、例えば、携帯電話、スマートフォン、タブレットPC、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器等に搭載されたプロセッサ、並びに冗長化システム1の構成に特化した専用の情報処理機器に搭載されたプロセッサを含んでもよい。制御部13は、制御部13が配置されている自身の情報処理装置10において稼働可能な複数の仮想環境を管理する。
【0049】
図2は、
図1の情報処理装置10において2つの仮想環境が稼働状態にある場合の構成例を示す模式図である。
図2を参照しながら、冗長化システム1における冗長化動作の一例を主に説明する。初めに、冗長化システム1の定常動作について主に説明する。
【0050】
図2に示す例では、各情報処理装置10上に、冗長化プラットフォームが構成され、各冗長化プラットフォーム上に、4つの仮想環境が構築されている。具体的には、第1情報処理装置10aには、仮想環境VM1、VM2、VM3、VM6という4つの仮想環境が構築されている。また、第2情報処理装置10bには、仮想環境VM3、VM4、VM1、VM5という4つの仮想環境が構築されている。また、第3情報処理装置10cには、仮想環境VM5、VM6、VM4、VM2という4つの仮想環境が構築されている。
【0051】
制御部13は、通信部11を介して管理用情報処理装置20から冗長化管理情報をダウンロードする。制御部13は、ダウンロードした冗長化管理情報に基づいて、稼働仮想環境及び待機仮想環境の制御、並びに他の情報処理装置10へ等値化を行うための通信管理を行う。ここで、「稼働仮想環境」は、稼働状態にある仮想環境をいう。また、「待機仮想環境」は、待機状態にある仮想環境をいう。「冗長化管理情報」は、情報処理装置10における稼働仮想環境及び待機仮想環境の情報を含む。例えば各情報処理装置10が
図2のように構成される場合、冗長化管理情報は、以下の表1に示すようなリストとして定義される。このような冗長化管理情報は、例えば管理用情報処理装置20からダウンロードされた後、記憶部12に格納される。
【0052】
【0053】
表1は、各情報処理装置10における、仮想環境の制御状態を示す。表1において、「稼働」と記載されている欄は、情報処理装置10における仮想環境が稼働仮想環境で制御されていることを示す。表1において、「待機」と記載されている欄は、情報処理装置10における仮想環境が待機仮想環境で制御されていることを示す。表1において、「―」と記載されている欄は、情報処理装置10が、その仮想環境を有さないことを示す。
【0054】
冗長化システム1の定常動作では、例えば、第1情報処理装置10aの制御部13aは、2つの仮想環境VM1、VM2を稼働状態に維持する。冗長化システム1は、第1情報処理装置10aがシステムダウンした場合に備えて、第1情報処理装置10aにおける稼働仮想環境VM1、VM2を、他の第2情報処理装置10b及び第3情報処理装置10cに等値化する。
図2の例では、冗長化システム1は、稼働仮想環境VM1を第2情報処理装置10bに等値化する。冗長化システム1は、稼働仮想環境VM2を第3情報処理装置10cに等値化する。
【0055】
より具体的には、制御部13aは、通信部11aに、自身の第1情報処理装置10aにおいて稼働状態にある稼働仮想環境VM1、VM2に関連付けられた等値化情報を、他の第2情報処理装置10b及び第3情報処理装置10cにそれぞれ送信させる。「等値化情報」は、稼働仮想環境VM1、VM2それぞれの稼働に伴ってこれらの状態が変化し、冗長化プラットフォームで管理している仮想環境のメモリ領域に書き込みアクセスが発生することで生じる、メモリ内容の変更差分を含む。「等値化情報」は、後述する、LANカードのリモートダイレクトメモリアクセス(Remote Direct Memory Access: RDMA)機能を用いる場合に取得されるアドレスリストを含む。その他、「等値化情報」は、稼働仮想環境VM1、VM2が稼働状態にあることで生じる任意の仮想ハードウェアの変更差分を含む。
【0056】
第2情報処理装置10bの制御部13bは、通信部11bに、第1情報処理装置10aにおいて稼働状態にある稼働仮想環境VM1に関連付けられた等値化情報を、第1情報処理装置10aから受信させる。制御部13bは、通信部11bが受信した等値化情報に基づいて、仮想環境VM1を自身の第2情報処理装置10bに等値化する。
【0057】
同様に、第3情報処理装置10cの制御部13cは、通信部11cに、第1情報処理装置10aにおいて稼働状態にある稼働仮想環境VM2に関連付けられた等値化情報を、第1情報処理装置10aから受信させる。制御部13cは、通信部11cが受信した等値化情報に基づいて、仮想環境VM2を自身の第3情報処理装置10cに等値化する。
【0058】
第2情報処理装置10b及び第3情報処理装置10cにそれぞれ等値化された仮想環境VM1及び仮想環境VM2は、第1情報処理装置10aがシステムダウンした場合に備え待機状態にある。このとき、第1情報処理装置10aと、第2情報処理装置10b及び第3情報処理装置10cとの間では、高速に等値化処理だけが実行されている。
【0059】
稼働仮想環境VM1、VM2から待機仮想環境VM1、VM2への等値化は、それぞれ、従来技術を含む任意の方法により実行されてもよい。冗長化システム1は、稼働仮想環境VM1、VM2を稼働させながら、仮想ハードウェアに生じる差分を待機仮想環境VM1、VM2にそれぞれ所定の周期で等値化する。このように、一実施形態に係る冗長化システム1は、従来技術と異なり、等値化対象とする情報処理装置10を2つ以上有することも可能である。
【0060】
第1情報処理装置10aを用いて説明した、上記の冗長化動作に関する説明は、第2情報処理装置10b及び第3情報処理装置10cに対しても同様に適用される。
【0061】
例えば、第2情報処理装置10bの制御部13bは、2つの稼働仮想環境VM3、VM4を稼働状態に維持する。冗長化システム1は、第2情報処理装置10bがシステムダウンした場合に備えて、第2情報処理装置10bにおける稼働仮想環境VM3、VM4を、他の第1情報処理装置10a及び第3情報処理装置10cにそれぞれ等値化する。
【0062】
より具体的には、制御部13bは、通信部11bに、自身の第2情報処理装置10bにおいて稼働状態にある稼働仮想環境VM3、VM4に関連付けられた等値化情報を、他の第1情報処理装置10a及び第3情報処理装置10cにそれぞれ送信させる。
【0063】
第1情報処理装置10aの制御部13aは、通信部11aに、他の第2情報処理装置10bにおいて稼働状態にある稼働仮想環境VM3に関連付けられた等値化情報を、他の第2情報処理装置10bから受信させる。制御部13aは、通信部11aが受信した等値化情報に基づいて、仮想環境VM3を自身の第1情報処理装置10aに等値化する。
【0064】
同様に、第3情報処理装置10cの制御部13cは、通信部11cに、他の第2情報処理装置10bにおいて稼働状態にある稼働仮想環境VM4に関連付けられた等値化情報を、他の第2情報処理装置10bから受信させる。制御部13cは、通信部11cが受信した等値化情報に基づいて、仮想環境VM4を自身の第3情報処理装置10cに等値化する。
【0065】
第1情報処理装置10a及び第3情報処理装置10cにそれぞれ等値化された仮想環境VM3及び仮想環境VM4は、第2情報処理装置10bがシステムダウンした場合に備え待機状態にある。
【0066】
例えば、第3情報処理装置10cの制御部13cは、2つの稼働仮想環境VM5、VM6を稼働状態に維持する。冗長化システム1は、第3情報処理装置10cがシステムダウンした場合に備えて、第3情報処理装置10cにおける稼働仮想環境VM5、VM6を、他の第2情報処理装置10b及び第1情報処理装置10aにそれぞれ等値化する。
【0067】
より具体的には、制御部13cは、通信部11cに、自身の第3情報処理装置10cにおいて稼働状態にある稼働仮想環境VM5、VM6に関連付けられた等値化情報を、他の第2情報処理装置10b及び第1情報処理装置10aにそれぞれ送信させる。
【0068】
第2情報処理装置10bの制御部13bは、通信部11bに、他の第3情報処理装置10cにおいて稼働状態にある稼働仮想環境VM5に関連付けられた等値化情報を、他の第3情報処理装置10cから受信させる。制御部13bは、通信部11bが受信した等値化情報に基づいて、仮想環境VM5を自身の第2情報処理装置10bに等値化する。
【0069】
同様に、第1情報処理装置10aの制御部13aは、通信部11aに、他の第3情報処理装置10cにおいて稼働状態にある稼働仮想環境VM6に関連付けられた等値化情報を、他の第3情報処理装置10cから受信させる。制御部13aは、通信部11aが受信した等値化情報に基づいて、仮想環境VM6を自身の第1情報処理装置10aに等値化する。
【0070】
第2情報処理装置10b及び第1情報処理装置10aにそれぞれ等値化された仮想環境VM5及び仮想環境VM6は、第3情報処理装置10cがシステムダウンした場合に備え待機状態にある。
【0071】
以上のように、制御部13aは、仮想環境VM1、VM2を稼働状態に維持し、かつ仮想環境VM3、VM6を待機状態にする。制御部13bは、仮想環境VM3、VM4を稼働状態に維持し、かつ仮想環境VM1、VM5を待機状態にする。制御部13cは、仮想環境VM5、VM6を稼働状態に維持し、かつ仮想環境VM2、VM4を待機状態にする。
【0072】
図3は、一例として
図2の第1情報処理装置10aがシステムダウンしたときの冗長化システム1の動作を示す模式図である。
図3を参照しながら、第1情報処理装置10aにおいてシステムダウンが発生したときの切替動作について主に説明する。以下の説明は、第2情報処理装置10b又は第3情報処理装置10cがシステムダウンしたときにも同様に適用される。
【0073】
例えば、第1情報処理装置10aがハードウェア異常によりシステムダウンを起こすと、第2情報処理装置10bの制御部13b、及び第3情報処理装置10cの制御部13cは、第1情報処理装置10aがシステムダウンしたと判定する。このとき、制御部13b及び制御部13cは、第1情報処理装置10aにおいて稼働状態にあった仮想環境VM1、VM2を、自身の情報処理装置10においてそれぞれ待機状態から稼働状態に切り替える。これにより、第1情報処理装置10aにおいて稼働状態にあった仮想環境VM1、VM2の稼働が継続される。
【0074】
このとき、第1情報処理装置10aが切り離され、それによって、冗長化システム1を構成する情報処理装置10の数が2つに変更される。すなわち、第2情報処理装置10b及び第3情報処理装置10cのみが稼働状態にある。そこで、第2情報処理装置10b又は第3情報処理装置10cがさらにシステムダウンする場合に備えて、冗長化システム1は、第2情報処理装置10b及び第3情報処理装置10cの間で各仮想環境を等値化する。より具体的には、第2情報処理装置10bにおいて、仮想環境VM2、VM6が新たに構築され、第3情報処理装置10cにおいて、仮想環境VM1、VM3が新たに構築される。そして、上述した冗長化システム1の定常動作における制御部13の制御と同様の制御に基づいて、制御部13bは、第3情報処理装置10cにおける稼働仮想環境VM2、VM5、VM6を第2情報処理装置10bに等値化する。同様に、制御部13cは、第2情報処理装置10bにおける稼働仮想環境VM1、VM3、VM4を第3情報処理装置10cに等値化する。
【0075】
図4は、一例として
図3の第2情報処理装置10bがさらにシステムダウンしたときの冗長化システム1の動作を示す模式図である。
図4を参照しながら、第1情報処理装置10a及び第2情報処理装置10bの両方においてシステムダウンが発生したときの切替動作について主に説明する。以下の説明は、3つの情報処理装置10のうちの任意の2つの情報処理装置10がシステムダウンしたときにも同様に適用される。
【0076】
例えば、第1情報処理装置10a及び第2情報処理装置10bがハードウェア異常によりシステムダウンを起こすと、第3情報処理装置10cの制御部13cは、第1情報処理装置10a及び第2情報処理装置10bがシステムダウンしたと判定する。このとき、制御部13cは、第2情報処理装置10bにおいて稼働状態にあった仮想環境VM1、VM3、VM4を、自身の第3情報処理装置10cにおいて待機状態から稼働状態に切り替える。これにより、第2情報処理装置10bにおいて稼働状態にあった仮想環境VM1、VM3、VM4の稼働が継続される。
【0077】
このとき、第3情報処理装置10cでは、制御部13cは、6つの稼働仮想環境VM1、VM2、VM3、VM4、VM5、VM6を稼働させる。したがって、このような場合、第3情報処理装置10cは、6つの仮想環境を稼働させることが可能なマシンパワーを有する。
【0078】
図4に示すように第3情報処理装置10cのみが稼働している状態において、第2情報処理装置10bがシステムダウンから復旧した場合、冗長化システム1は、第3情報処理装置10cの稼働仮想環境VM1、VM2、VM3、VM4、VM5、VM6を第2情報処理装置10bに等値化する。より具体的には、上述した冗長化システム1の定常動作における制御部13の制御と同様の制御に基づいて、制御部13bは、第3情報処理装置10cにおける稼働仮想環境VM1、VM2、VM3、VM4、VM5、VM6を第2情報処理装置10bに等値化する。等値化が完了したら、制御部13bは、例えば
図3の状態のとおり、仮想環境VM1、VM3、VM4を稼働状態にし、仮想環境VM2、VM5、VM6を待機状態にする。このとき、第3情報処理装置10cの制御部13cは、稼働仮想環境VM1、VM3、VM4を待機状態に切り替える。なお、第2情報処理装置10b及び第3情報処理装置10cにおいて、稼働状態にする仮想環境及び待機状態に切り替える仮想環境は、管理用情報処理装置20から取得した冗長化管理情報に基づいてそれぞれ任意に設定可能である。
【0079】
図3に示すように第2情報処理装置10b及び第3情報処理装置10cが稼働している状態で、第1情報処理装置10aがシステムダウンからさらに復旧した場合、冗長化システム1は、同様の動作を行い、
図2に示す定常動作の構成に戻す。
【0080】
図5は、一例として
図2の冗長化システム1に新たな第4情報処理装置10dが加わったときの冗長化システム1の動作を示す模式図である。
図5を参照しながら、冗長化システム1に新たな第4情報処理装置10dが加わったときの切替動作について主に説明する。
図5は、3つの情報処理装置10を含む冗長化システム1が稼働を継続しながら、新たな第4情報処理装置10dの追加に伴って負荷バランスを調整する様子を示す。
【0081】
このとき、管理用情報処理装置20は、例えばユーザからの入力操作に基づいて、表1の冗長化管理情報に第4情報処理装置10dを追加する。例えば、第1情報処理装置10a及び第3情報処理装置10cのパフォーマンスが不足している場合、管理用情報処理装置20は、第1情報処理装置10aの稼働仮想環境VM2と第3情報処理装置10cの稼働仮想環境VM6とを第4情報処理装置10dに関連付ける。これに伴い、管理用情報処理装置20は、情報処理装置10に等値化する待機仮想環境の関連付けも変更する。例えば、管理用情報処理装置20は、待機仮想環境VM5の関連付けを第2情報処理装置10bから第4情報処理装置10dに変更する。その後、管理用情報処理装置20は、変更された冗長化管理情報を情報処理装置10に送信する。
【0082】
冗長化システム1は、情報処理装置10にダウンロードされた冗長化管理情報に基づいて、第1情報処理装置10aの稼働仮想環境VM2と第3情報処理装置10cの稼働仮想環境VM6とを第4情報処理装置10dに等値化する。より具体的には、第4情報処理装置10dは、受信した冗長化管理情報に基づいて初めに待機仮想環境VM2、VM6を構築する。制御部13aは、新たな第4情報処理装置10dが冗長化システム1に備わったと判定し、通信部11aに、第1情報処理装置10aにおいて稼働状態にある仮想環境VM2に関連付けられた等値化情報を、第4情報処理装置10dに送信させる。同様に、制御部13cは、新たな第4情報処理装置10dが冗長化システム1に備わったと判定し、通信部11cに、第3情報処理装置10cにおいて稼働状態にある仮想環境VM6に関連付けられた等値化情報を、第4情報処理装置10dに送信させる。第4情報処理装置10dは、通信部11a及び通信部11cから受信した等値化情報に基づいて、対応する稼働仮想環境を第4情報処理装置10dの待機仮想環境VM2、VM6にそれぞれ等値化する。
【0083】
そして、制御部13aは、第1情報処理装置10aにおいて稼働状態にある仮想環境VM2を待機状態に切り替える。同様に、制御部13cは、第3情報処理装置10cにおいて稼働状態にある仮想環境VM6を待機状態に切り替える。一方で、第4情報処理装置10dは、等値化された待機仮想環境VM2、VM6を稼働状態に切り替える。第4情報処理装置10dは、稼働仮想環境VM2、VM6に関連付けられた等値化情報を、第3情報処理装置10c及び第1情報処理装置10aにそれぞれ送信する。制御部13aは、受信した等値化情報に基づいて、第4情報処理装置10dの稼働仮想環境VM6を待機仮想環境VM6として等値化する。制御部13cは、受信した等値化情報に基づいて、第4情報処理装置10dの稼働仮想環境VM2を待機仮想環境VM2として等値化する。
【0084】
加えて、制御部13cは、通信部11cに、第3情報処理装置10cにおいて稼働状態にある仮想環境VM5に関連付けられた等値化情報を、第4情報処理装置10dに送信させる。第4情報処理装置10dは、等値化された仮想環境VM5を待機状態にする。
【0085】
制御部13は、通信部11から送信された等値化情報に関連付いている仮想環境を自身の情報処理装置10から消去する。より具体的には、制御部13aは、上述したステップにより稼働状態から待機状態に切り替えられた仮想環境VM2を消去する。制御部13cは、上述したステップにより稼働状態から待機状態に切り替えられた仮想環境VM6を消去する。加えて、冗長化システム1は、冗長化管理情報に基づいて、情報処理装置10の待機仮想環境を
図5に示すとおりに変更する。例えば、制御部13bは、待機仮想環境VM5を消去する。以上により、冗長化システム1は、柔軟にシステム規模を変更可能であり、情報処理装置10の負荷が軽減され、システムパフォーマンスが向上する。
【0086】
図6は、
図1の制御部13の機能をより詳細に示した機能ブロック図である。
図6を参照しながら、制御部13の機能についてより詳細に説明する。制御部13は、例えば、冗長化管理部131、仮想化等値化部132、ミラードディスク管理部133、診断部134、及び等値化バス診断部135を有する。
【0087】
冗長化管理部131は、冗長化プラットフォームの状態管理を行う。冗長化管理部131は、管理用情報処理装置20からダウンロードされた冗長化管理情報に基づいて、稼働仮想環境及び待機仮想環境の制御、並びに他の情報処理装置10へ等値化を行うための通信管理を実行する。冗長化管理部131は、例えば、
図2の定常動作において、所定の仮想環境を稼働状態に維持し、かつ他の仮想環境を待機状態にする。冗長化管理部131は、例えば、他の情報処理装置10がシステムダウンしたと判定すると、自身の情報処理装置10における待機仮想環境を稼働状態に切り替える。このとき、冗長化管理部131は、システムダウンした情報処理装置10を切り離すように仮想化等値化部132に指示する。同様に、冗長化管理部131は、システムダウンした情報処理装置10を切り離すように、仮想化等値化部132を介してミラードディスク管理部133に指示する。その他、冗長化管理部131は、仮想化等値化部132及びミラードディスク管理部133に、等値化を実行するように指示する。
【0088】
冗長化管理部131は、新たな1つの情報処理装置10が冗長化システム1に備わったと判定すると、稼働状態にある仮想環境に関連付けられた等値化情報を、新たな情報処理装置10に通信部11を用いて送信するように、仮想化等値化部132に指示する。冗長化管理部131は、通信部11から送信された等値化情報に関連付いている仮想環境を自身の情報処理装置10から消去する。
【0089】
仮想化等値化部132は、ゲストOSに仮想ハードウェア環境を提供する。仮想化等値化部132は、メモリ及び各デバイス等を含む仮想ハードウェアの変更内容を所定の周期で監視する。仮想化等値化部132は、通信部11を用いて、変更差分を等値化情報として他の情報処理装置10に送信させる。等値化情報は、通信部11のペア間通信機能により、例えば冗長化構成をとる他の情報処理装置10の仮想化等値化部132に送信される。仮想化等値化部132は、受信した等値化情報に基づいて、対応する仮想環境を自身の情報処理装置10に等値化する。以上により、他の情報処理装置10との冗長化動作が実現される。
【0090】
ミラードディスク管理部133は、各仮想環境に関連付けられているHDDに基づく補助記憶を稼働仮想環境及び待機仮想環境の間でミラーリングする。異なる情報処理装置10において、互いに対応する稼働仮想環境及び待機仮想環境間で常にHDDを一致させることで、冗長化システム1は、切り替え後もHDDの内容を継承することができる。
【0091】
診断部134は、自身の情報処理装置10の診断を行う。診断部134には、他の機能部が検知した異常も併せて通知される。診断部134は、異常をレベル毎にカテゴライズし、冗長化管理部131に通知する。
【0092】
等値化バス診断部135は、情報処理装置10間を結ぶ等値化バスを診断する。等値化バスは信頼性が要求されるため、例えば2重化されたネットワークにより構成される。等値化バス診断部135は、高速に診断を行い、一方の等値化バスの異常を検知すると、もう一方のバスへの切り替えを実行する。等値化バス診断部135は、ペアとなる情報処理装置10の診断も行い、ペアとなる情報処理装置10のシステムダウンを検知すると、診断部134に異常を通知し、冗長化管理部131が上述した切替処理を行う。
【0093】
図7は、等値化処理を高速化する方法を模式的に示した図である。
図7を参照しながら、冗長化システム1において等値化処理を高速化する方法について主に説明する。
図7では、第1情報処理装置10a及び第2情報処理装置10bの場合を一例として示しているが、以下と同様の説明が、情報処理装置10の他の任意の組にも適用される。
【0094】
冗長化システム1は、稼働仮想環境から、対応する待機仮想環境へ、仮想環境の変更差分を高速に等値化する必要がある。稼働仮想環境の稼働に伴って、仮想環境の状態が変化し、冗長化プラットフォームで管理している仮想環境のメモリ領域に書き込みアクセスが発生する。これにより、メモリ内容が変化する。
【0095】
ソフトウェア方式を用いた従来の冗長化では、このような等値化処理をソフトウェアで行うため、オーバヘッドが大きく、シングルシステムに対し、パフォーマンスが劣化するという問題があった。例えば、ソフトウェア方式を用いた場合、稼働仮想環境を監視している第1情報処理装置10aの仮想化等値化部132は、メモリ内容の変更差分を検出し、第2情報処理装置10bの仮想化等値化部132にこのメモリ差分を転送する。第2情報処理装置10bの仮想化等値化部132は、転送された情報に基づいて等値化を行う。このような場合、上記のメモリ差分の転送を仮想化等値化部132のソフトウェアが行うため、以下の2つの処理が発生する。1つは、MMU(Memory Management Unit)がページ単位で管理しているメモリのダーティページ、すなわち書き込みアクセスが発生したページの内容を自身の転送用バッファにコピーする処理である。もう1つは、TCPIPにより、転送用バッファの内容を第2情報処理装置10bに転送する処理である。当該処理においても、例えば通信ドライバの内部でメモリバッファコピーが発生する。以上により、メモリ差分の転送処理に多くのCPUパワーが用いられる。
【0096】
一実施形態に係る冗長化システム1は、上記のソフトウェアに基づく処理を介在せずに、第2情報処理装置10bに等値化を行ってもよい。これにより、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。したがって、稼働仮想環境のパフォーマンスが大幅に向上する。
【0097】
一実施形態に係る冗長化システム1における等値化には、LANカードに実装されているRDMA機能が利用されてもよい。すなわち、通信部11は、LANカードに実装されているRDMA機能を用いて各情報の送受信を行ってもよい。
【0098】
このとき、仮想化等値化部132は、MMUのダーティページを参照し、書き込みが行われたメモリページのアドレスリストを取得してもよい。仮想化等値化部132は、アドレスのみを参照し、データの内容を参照しない。これにより、メモリ転送が発生しない。
【0099】
取得したアドレスリストは、LANカードのRDMA機能を用いて、第2情報処理装置10bに転送されてもよい。第1情報処理装置10aのLANカードのRDMA機能により、ソフトウェアを介在することなく、与えられたアドレスリストのメモリ内容が第2情報処理装置10bのRDMA機能を有するLANカードに転送されてもよい。
【0100】
制御部13bは、第2情報処理装置10bのRDMA機能を用いて、転送されたデータがメモリの指定アドレスにコピーされ、第1情報処理装置10aと第2情報処理装置10bとのメモリ内容が等値化されるように通信部11bを制御してもよい。
【0101】
図8は、
図2の冗長化システム1の動作の第1例を示すフローチャートである。
図8では、一の情報処理装置10の制御部13のみに着目したときの、冗長化システム1の定常動作が示されている。
図8を参照しながら、冗長化システム1の定常動作のフローを主に説明する。
【0102】
ステップS101では、3つの情報処理装置10のそれぞれの情報処理装置10において、制御部13は、稼働状態にある稼働仮想環境に関連付けられた等値化情報を他の情報処理装置10に送信させる。
【0103】
ステップS102では、制御部13は、他の情報処理装置10において稼働状態にある稼働仮想環境に関連付けられた等値化情報を他の情報処理装置10から受信させる。
【0104】
ステップS103では、制御部13は、ステップS102で受信した等値化情報に基づいて、他の情報処理装置10における稼働仮想環境を自身の情報処理装置10に等値化する。
【0105】
ステップS104では、制御部13は、自身の情報処理装置10において、稼働仮想環境を稼働状態に維持し、かつ等値化された仮想環境を待機状態にする。
【0106】
図9は、
図2の冗長化システム1の動作の第2例を示すフローチャートである。
図9では、一の情報処理装置10の制御部13のみに着目したときの冗長化システム1の動作が示されている。
図9を参照しながら、冗長化システム1において1つの情報処理装置10がシステムダウンしたときの切替動作について主に説明する。
【0107】
ステップS201では、制御部13は、1つの他の情報処理装置10がシステムダウンしたか否かを判定する。1つの他の情報処理装置10がシステムダウンしたと制御部13が判定すると、フローはステップS202に進む。1つの他の情報処理装置10がシステムダウンしていないと制御部13が判定すると、フローはステップS201に戻る。
【0108】
ステップS202では、制御部13は、1つの他の情報処理装置10がシステムダウンしたと判定すると、他の情報処理装置10において稼働状態にあった、対応する待機仮想環境を、自身の情報処理装置10において待機状態から稼働状態に切り替える。
【0109】
図10は、
図2の冗長化システム1の動作の第3例を示すフローチャートである。
図10では、一の情報処理装置10の制御部13のみに着目したときの冗長化システム1の動作が示されている。
図10を参照しながら、冗長化システム1に新たな第4情報処理装置10dが加わったときの切替動作について主に説明する。
【0110】
ステップS301では、制御部13は、新たな1つの第4情報処理装置10dが冗長化システム1に備わったか否かを判定する。第4情報処理装置10dが冗長化システム1に備わったと制御部13が判定すると、フローはステップS302に進む。第4情報処理装置10dが冗長化システム1に備わっていないと制御部13が判定すると、フローはステップS301に戻る。
【0111】
ステップS302では、制御部13は、新たな1つの第4情報処理装置10dが冗長化システム1に備わったと判定すると、自身の情報処理装置10において稼働状態にある稼働仮想環境に関連付けられた等値化情報を、新たな第4情報処理装置10dに送信する。
【0112】
ステップS303では、制御部13は、ステップS302において送信された等値化情報に関連付いている稼働仮想環境を自身の情報処理装置10から消去する。
【0113】
以上のような一実施形態に係る冗長化システム1によれば、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する。
【0114】
より具体的には、冗長化システム1では、
図5を参照しながら説明したとおり、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置10を追加することで負荷が分散され、信頼性及び可用性が向上する。このように、冗長化システム1は、持続的に成長可能である。
【0115】
冗長化システム1では、管理用情報処理装置20が例えばユーザからの入力操作に基づいて表1の冗長化管理情報を変更することで、冗長化システム1に含まれる情報処理装置10の構成、各情報処理装置10に対する仮想環境の関連付け、及び各情報処理装置10の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システム1では、稼働を停止させることなく、自在に構成の変更が可能である。このような自在な構成変更により、稼働を停止させることなく、可用性の向上及び負荷バランスの変更が可能である。
【0116】
2つの情報処理装置により構成されたいわゆる二重化システムを含む従来の冗長化システムと異なり、一実施形態に係る冗長化システム1では、システムに要求される信頼性及び可用性の重要度、並びにコストに応じて3つ以上の情報処理装置10を含むシステムを構築することも可能である。3つ以上の情報処理装置10を含むようにシステムを構成した場合、例えばハードウェア異常により2つ以上の情報処理装置10がシステムダウンしても、システム動作に全く影響が及ばず、システム動作が継続可能である。したがって、システムの可用性が飛躍的に向上する。
【0117】
二重化システムを含む従来の冗長化システムでは、例えば、稼働する仮想環境が1つである場合、集約率は50%となるが、一実施形態に係る冗長化システム1では、冗長化を構成する全ての情報処理装置10でソフトウェア及び1つ以上の仮想環境が稼働可能である。したがって、集約率は100%以上である。これにより、集約率の向上と可用性の向上とが両立可能であり、コストパフォーマンスが向上する。
【0118】
本開示を諸図面及び実施形態に基づいて説明してきたが、当業者であれば本開示に基づき種々の変形及び修正を行うことが容易であることに注意されたい。したがって、これらの変形及び修正は本開示の範囲に含まれることに留意されたい。例えば、各手段又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段又はステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
【0119】
例えば、本開示は、上述した冗長化システム1の各機能を実現する処理内容を記述したプログラム又はプログラムを記録した記憶媒体としても実現し得る。本開示の範囲には、これらも包含されると理解されたい。
【0120】
上記では、冗長化システム1における等値化には、LANカードに実装されているRDMA機能が利用されてもよいとして説明したが、等値化方法は、これに限定されず、任意の方法を含んでもよい。例えば、冗長化システム1における等値化方法は、ソフトウェア方式を用いた従来の冗長化に基づく方法を含んでもよい。
【0121】
上記では、各情報処理装置10において、稼働仮想環境及び待機仮想環境それぞれが2つの仮想環境を含むとして説明したが、それぞれに含まれる仮想環境の数は任意の数であってもよい。例えば、各情報処理装置10において、稼働仮想環境が1つの仮想環境を含み、待機仮想環境が、1つの他の情報処理装置10において稼働状態にある1つの仮想環境を含んでもよい。例えば、各情報処理装置10において、稼働仮想環境が1つの仮想環境を含み、待機仮想環境が、2つの他の情報処理装置10においてそれぞれ稼働状態にある2つの仮想環境を含んでもよい。この場合、各情報処理装置10の1つの稼働仮想環境が2つの他の情報処理装置10それぞれに等値化されるので、1つの他の情報処理装置10のみに等値化される場合と比較して、信頼性及び可用性がさらに向上する。
【0122】
上記では、各情報処理装置10における2つの稼働仮想環境は、異なる他の情報処理装置10にそれぞれ等値化されるとして説明したが、等値化の方法はこれに限定されない。例えば、各情報処理装置10における2つの稼働仮想環境が、同一の他の情報処理装置10にそれぞれ等値化されてもよい。
【0123】
上記では、冗長化システム1は3つの情報処理装置10を有するとして説明したが、冗長化システム1に含まれる情報処理装置10の数はこれに限定されない。冗長化システム1に含まれる情報処理装置10の数は2つであってもよいし、4つ以上であってもよい。情報処理装置10の数が2つの場合であっても、各情報処理装置10の稼働仮想環境を他の情報処理装置10に待機仮想環境として等値化することで、一方の情報処理装置10が稼働状態に、他方の情報処理装置10が待機状態にある従来の二重化システムと比較して、各情報処理装置10における負荷バランスが変更される。すなわち、各情報処理装置10において負荷が略均等となり、負荷バランスが向上する。
【0124】
上記では、
図2及び
図5等に示すとおり、冗長化システム1を構成する複数の情報処理装置10それぞれにおいて、同数の仮想環境が構築されているとして説明したが、各情報処理装置10における仮想環境の数の関係は、これに限定されない。例えば、各情報処理装置10のマシンパワーが異なるような場合、各情報処理装置10のマシンパワーに合わせて、各情報処理装置10において構築される仮想環境の数が異なっていてもよい。このような各情報処理装置10において構築される仮想環境の数は、管理用情報処理装置20が定義する冗長化管理情報に含まれていてもよい。
【0125】
一実施形態に係る冗長化システム1は、コンピュータシステム全般に応用可能であり、高信頼性及び高可用性を実現する。一実施形態に係る冗長化システム1をソフトウェアプラットフォームとして実現することで、高信頼性及び高可用性が求められる様々なソフトウェアに応用可能である。例えば、一実施形態に係る冗長化システム1は、プロセス制御システムのコントローラ及びPCプラットフォーム上で動作するサーバソフトウェアに応用可能である。より具体的には、一実施形態に係る冗長化システム1は、プロセス制御システムにおけるSCADAシステム、プラント情報管理システム、OPCサーバ等を含む通信ゲートウェイシステム、及び運転効率向上支援システムに応用可能である。例えば、一実施形態に係る冗長化システム1は、ITシステムをはじめとした連続稼働が重要なコンピュータシステム全般に応用可能である。
【符号の説明】
【0126】
1 冗長化システム
10 情報処理装置
10a 第1情報処理装置
10b 第2情報処理装置
10c 第3情報処理装置
10d 第4情報処理装置
11、11a、11b、11c 通信部
12、12a、12b、12c 記憶部
13、13a、13b、13c 制御部
131 冗長化管理部
132 仮想化等値化部
133 ミラードディスク管理部
134 診断部
135 等値化バス診断部
20 管理用情報処理装置
30 ネットワーク
VM1、VM2、VM3、VM4、VM5、VM6 仮想環境