(57)【要約】【課題】柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システムを提供する。【解決手段】本開示に係る冗長化システム１は、複数の情報処理装置１０を備える冗長化システム１であって、複数の情報処理装置１０それぞれは、他の情報処理装置１０と通信を行う通信部１１と、自身の情報処理装置１０において稼働可能な複数の仮想環境を管理する制御部１３と、を備え、通信部１１は、複数の仮想環境のうち稼働状態にある第１環境に関連付けられた第１等値化情報を、他の情報処理装置１０に送信し、他の情報処理装置１０において稼働状態にある第２環境に関連付けられた第２等値化情報を、他の情報処理装置１０から受信し、制御部１３は、通信部１１が受信した第２等値化情報に基づいて、第２環境を自身の情報処理装置１０に等値化し、第１環境を稼働状態に維持し、かつ第２環境を待機状態にする。【選択図】図２
2020042526.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置を備える冗長化システムであって、
前記複数の情報処理装置それぞれは、
他の情報処理装置と通信を行う通信部と、
自身の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、
を備え、
前記通信部は、
前記複数の仮想環境のうち稼働状態にある第１環境に関連付けられた第１等値化情報を、前記他の情報処理装置に送信し、
前記他の情報処理装置において稼働状態にある第２環境に関連付けられた第２等値化情報を、前記他の情報処理装置から受信し、
前記制御部は、
前記通信部が受信した前記第２等値化情報に基づいて、前記第２環境を前記自身の情報処理装置に等値化し、
前記第１環境を稼働状態に維持し、かつ前記第２環境を待機状態にする、
冗長化システム。
【請求項２】
３つの前記情報処理装置を備え、
前記第１環境は、１つの仮想環境を含み、
前記第２環境は、２つの前記他の情報処理装置においてそれぞれ稼働状態にある２つの仮想環境を含む、
請求項１に記載の冗長化システム。
【請求項３】
前記制御部は、１つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第２環境を、待機状態から稼働状態に切り替える、
請求項１又は２に記載の冗長化システム。
【請求項４】
前記制御部は、
新たな１つの情報処理装置が前記冗長化システムに備わったと判定すると、稼働状態にある前記第１環境に関連付けられた前記第１等値化情報を、前記通信部を用いて新たな前記情報処理装置に送信し、
送信した前記第１等値化情報に関連付いている前記第１環境を消去する、
請求項１乃至３のいずれか１項に記載の冗長化システム。
【請求項５】
前記通信部は、ＬＡＮカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信を行う、
請求項１乃至４のいずれか１項に記載の冗長化システム。
【請求項６】
冗長化システムが備える複数の情報処理装置において動作する冗長化プログラムであって、
前記複数の情報処理装置のそれぞれの前記情報処理装置において稼働状態にある第１環境に関連付けられた第１等値化情報を前記情報処理装置から他の情報処理装置に送信するステップと、
前記他の情報処理装置において稼働状態にある第２環境に関連付けられた第２等値化情報を前記他の情報処理装置から前記情報処理装置が受信するステップと、
受信された前記第２等値化情報に基づいて、前記第２環境を前記情報処理装置に等値化するステップと、
前記情報処理装置において、前記第１環境を稼働状態に維持し、かつ前記第２環境を待機状態にするステップと、
を含む、
冗長化プログラム。
【請求項７】
前記冗長化システムが備える３つの前記情報処理装置において動作し、
前記第１環境は、１つの仮想環境を含み、
前記第２環境は、２つの前記他の情報処理装置においてそれぞれ稼働状態にある２つの仮想環境を含む、
請求項６に記載の冗長化プログラム。
【請求項８】
１つの前記他の情報処理装置がシステムダウンしたか否かを判定するステップと、
１つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第２環境を、前記情報処理装置において待機状態から稼働状態に切り替えるステップと、
をさらに含む、
請求項６又は７に記載の冗長化プログラム。
【請求項９】
新たな１つの情報処理装置が前記冗長化システムに備わったか否かを判定するステップと、
新たな１つの前記情報処理装置が前記冗長化システムに備わったと判定すると、前記情報処理装置において稼働状態にある前記第１環境に関連付けられた前記第１等値化情報を、新たな前記情報処理装置に送信するステップと、
送信された前記第１等値化情報に関連付いている前記第１環境を前記情報処理装置から消去するステップと、
をさらに含む、
請求項６乃至８のいずれか１項に記載の冗長化プログラム。
【請求項１０】
ＬＡＮカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信が行われる、
請求項６乃至９のいずれか１項に記載の冗長化プログラム。
【請求項１１】
冗長化システムを構成する複数の情報処理装置のうちの一の情報処理装置であって、
前記一の情報処理装置と異なる他の情報処理装置と通信を行う通信部と、
前記一の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、
を備え、
前記通信部は、
前記複数の仮想環境のうち稼働状態にある第１環境に関連付けられた第１等値化情報を、前記他の情報処理装置に送信し、
前記他の情報処理装置において稼働状態にある第２環境に関連付けられた第２等値化情報を、前記他の情報処理装置から受信し、
前記制御部は、
前記通信部が受信した前記第２等値化情報に基づいて、前記第２環境を前記一の情報処理装置に等値化し、
前記第１環境を稼働状態に維持し、かつ前記第２環境を待機状態にする、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、冗長化システム、冗長化プログラム、及び情報処理装置に関する。
【背景技術】
【０００２】
２つの情報処理装置を備えるシステムにおいて、一方の情報処理装置に致命的な異常が発生したときにもう一方の情報処理装置に動作を切り替え、システム動作に影響を与えることなく動作を継続実行できる冗長化に関する技術が従来知られている。
【０００３】
例えば、特許文献１には、特殊なハードウェア及び冗長化制御の仕組みを入れた特殊なＯＳ（Operating System）を必要とせず、汎用のハードウェア及びＯＳで実現可能な冗長化コントローラが開示されている。
【０００４】
例えば、特許文献２には、独立した２台の計算機上でそれぞれ稼働する仮想計算機を組み合わせて二重化を実現することを可能にする高可用システムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４０９９８１６号公報
【特許文献２】特許第４４６８４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、情報処理に関する技術革新のスピードは目覚ましく、外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性がさらに向上するシステムが求められている。特許文献１及び特許文献２に開示されているシステムでは、このような問題点は十分に考慮されていなかった。
【０００７】
本開示は、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム、冗長化プログラム、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
幾つかの実施形態に係る冗長化システムは、複数の情報処理装置を備える冗長化システムであって、前記複数の情報処理装置それぞれは、他の情報処理装置と通信を行う通信部と、自身の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、を備え、前記通信部は、前記複数の仮想環境のうち稼働状態にある第１環境に関連付けられた第１等値化情報を、前記他の情報処理装置に送信し、前記他の情報処理装置において稼働状態にある第２環境に関連付けられた第２等値化情報を、前記他の情報処理装置から受信し、前記制御部は、前記通信部が受信した前記第２等値化情報に基づいて、前記第２環境を前記自身の情報処理装置に等値化し、前記第１環境を稼働状態に維持し、かつ前記第２環境を待機状態にする。これにより、ハードウェア構成が２つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【０００９】
一実施形態に係る冗長化システムは、３つの前記情報処理装置を備え、前記第１環境は、１つの仮想環境を含み、前記第２環境は、２つの前記他の情報処理装置においてそれぞれ稼働状態にある２つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している１つの仮想環境が２つの他の情報処理装置それぞれに等値化される。したがって、１つの他の情報処理装置のみに仮想環境が等値化される場合と比較して、信頼性及び可用性がさらに向上する。
【００１０】
一実施形態に係る冗長化システムにおいて、前記制御部は、１つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第２環境を、待機状態から稼働状態に切り替えてもよい。これにより、例えばハードウェア異常により他の情報処理装置がシステムダウンしても、瞬時に自身の情報処理装置に動作が切り替わる。したがって、システム動作に全く影響が及ばず、システム動作が継続可能である。
【００１１】
一実施形態に係る冗長化システムにおいて、前記制御部は、新たな１つの情報処理装置が前記冗長化システムに備わったと判定すると、稼働状態にある前記第１環境に関連付けられた前記第１等値化情報を、前記通信部を用いて新たな前記情報処理装置に送信し、送信した前記第１等値化情報に関連付いている前記第１環境を消去してもよい。これにより、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置を新たに追加することで負荷が分散され、信頼性及び可用性が向上する。
【００１２】
一実施形態に係る冗長化システムにおいて、前記通信部は、ＬＡＮカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信を行ってもよい。これにより、ソフトウェアに基づく処理を介在せずに、他の情報処理装置への等値化が行われる。したがって、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。
【００１３】
一実施形態に係る冗長化システムにおいて、２つの前記情報処理装置を備え、前記第１環境は、１つの仮想環境を含み、前記第２環境は、１つの前記他の情報処理装置において稼働状態にある１つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している仮想環境は、他の情報処理装置に待機状態の仮想環境として等値化される。したがって、一方の情報処理装置が稼働状態に、他方の情報処理装置が待機状態にある従来の二重化システムと比較して、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である集約率が向上する。例えば、１つの情報処理装置に対して１つの稼働状態の仮想環境が構築されている場合、従来の二重化システムであれば、集約率は５０％となる。一方で、一実施形態に係る冗長化システムでは、冗長化を構成する２つの情報処理装置それぞれで１つの仮想環境が稼働可能である。したがって、集約率は１００％である。以上に加えて、各情報処理装置における負荷バランスが変更される。すなわち、各情報処理装置において負荷が略均等となり、負荷バランスが向上する。
【００１４】
一実施形態に係る冗長化システムにおいて、３つの前記情報処理装置を備え、前記第１環境は、２つの仮想環境を含み、前記第２環境は、２つの前記他の情報処理装置においてそれぞれ稼働状態にある２つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している２つの仮想環境が２つの他の情報処理装置にそれぞれ等値化される。したがって、各情報処理装置において複数の仮想環境が稼働状態にある場合でも、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【００１５】
一実施形態に係る冗長化システムは、管理用情報処理装置をさらに備え、前記管理用情報処理装置は、ユーザからの入力操作に基づいて冗長化管理情報を変更し、前記冗長化管理情報を前記複数の情報処理装置それぞれに送信してもよい。これにより、冗長化システムに含まれる情報処理装置の構成、各情報処理装置に対する仮想環境の関連付け、及び各情報処理装置の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システムでは、稼働を停止させることなく、自在に構成の変更が可能である。
【００１６】
幾つかの実施形態に係る冗長化プログラムは、冗長化システムが備える複数の情報処理装置において動作する冗長化プログラムであって、前記複数の情報処理装置のそれぞれの前記情報処理装置において稼働状態にある第１環境に関連付けられた第１等値化情報を前記情報処理装置から他の情報処理装置に送信するステップと、前記他の情報処理装置において稼働状態にある第２環境に関連付けられた第２等値化情報を前記他の情報処理装置から前記情報処理装置が受信するステップと、受信された前記第２等値化情報に基づいて、前記第２環境を前記情報処理装置に等値化するステップと、前記情報処理装置において、前記第１環境を稼働状態に維持し、かつ前記第２環境を待機状態にするステップと、を含む。これにより、ハードウェア構成が２つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【００１７】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える３つの前記情報処理装置において動作し、前記第１環境は、１つの仮想環境を含み、前記第２環境は、２つの前記他の情報処理装置においてそれぞれ稼働状態にある２つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している１つの仮想環境が２つの他の情報処理装置それぞれに等値化される。したがって、１つの他の情報処理装置のみに仮想環境が等値化される場合と比較して、信頼性及び可用性がさらに向上する。
【００１８】
一実施形態に係る冗長化プログラムは、１つの前記他の情報処理装置がシステムダウンしたか否かを判定するステップと、１つの前記他の情報処理装置がシステムダウンしたと判定すると、該他の情報処理装置において稼働状態にあった前記第２環境を、前記情報処理装置において待機状態から稼働状態に切り替えるステップと、をさらに含んでもよい。これにより、例えばハードウェア異常により他の情報処理装置がシステムダウンしても、瞬時に自身の情報処理装置に動作が切り替わる。したがって、システム動作に全く影響が及ばず、システム動作が継続可能である。
【００１９】
一実施形態に係る冗長化プログラムは、新たな１つの情報処理装置が前記冗長化システムに備わったか否かを判定するステップと、新たな１つの前記情報処理装置が前記冗長化システムに備わったと判定すると、前記情報処理装置において稼働状態にある前記第１環境に関連付けられた前記第１等値化情報を、新たな前記情報処理装置に送信するステップと、送信された前記第１等値化情報に関連付いている前記第１環境を前記情報処理装置から消去するステップと、をさらに含んでもよい。これにより、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置を新たに追加することで負荷が分散され、信頼性及び可用性が向上する。
【００２０】
一実施形態に係る冗長化プログラムにおいて、ＬＡＮカードに実装されているリモートダイレクトメモリアクセス機能を用いて各情報の送受信が行われてもよい。これにより、ソフトウェアに基づく処理を介在せずに、他の情報処理装置への等値化が行われる。したがって、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。
【００２１】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える２つの前記情報処理装置において動作し、前記第１環境は、１つの仮想環境を含み、前記第２環境は、１つの前記他の情報処理装置において稼働状態にある１つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している仮想環境は、他の情報処理装置に待機状態の仮想環境として等値化される。したがって、一方の情報処理装置が稼働状態に、他方の情報処理装置が待機状態にある従来の二重化システムと比較して、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である集約率が向上する。例えば、１つの情報処理装置に対して１つの稼働状態の仮想環境が構築されている場合、従来の二重化システムであれば、集約率は５０％となる。一方で、一実施形態に係る冗長化システムでは、冗長化を構成する２つの情報処理装置それぞれで１つの仮想環境が稼働可能である。したがって、集約率は１００％である。以上に加えて、各情報処理装置における負荷バランスが変更される。すなわち、各情報処理装置において負荷が略均等となり、負荷バランスが向上する。
【００２２】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える３つの前記情報処理装置において動作し、前記第１環境は、２つの仮想環境を含み、前記第２環境は、２つの前記他の情報処理装置においてそれぞれ稼働状態にある２つの仮想環境を含んでもよい。これにより、各情報処理装置において稼働している２つの仮想環境が２つの他の情報処理装置にそれぞれ等値化される。したがって、各情報処理装置において複数の仮想環境が稼働状態にある場合でも、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【００２３】
一実施形態に係る冗長化プログラムは、前記冗長化システムが備える管理用情報処理装置においても動作し、前記管理用情報処理装置においてユーザからの入力操作を受け付けるステップと、ユーザからの前記入力操作に基づいて冗長化管理情報を変更するステップと、前記冗長化管理情報を前記複数の情報処理装置それぞれに送信するステップと、をさらに含んでもよい。これにより、冗長化システムに含まれる情報処理装置の構成、各情報処理装置に対する仮想環境の関連付け、及び各情報処理装置の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システムでは、稼働を停止させることなく、自在に構成の変更が可能である。
【００２４】
幾つかの実施形態に係る情報処理装置は、冗長化システムを構成する複数の情報処理装置のうちの一の情報処理装置であって、前記一の情報処理装置と異なる他の情報処理装置と通信を行う通信部と、前記一の情報処理装置において稼働可能な複数の仮想環境を管理する制御部と、を備え、前記通信部は、前記複数の仮想環境のうち稼働状態にある第１環境に関連付けられた第１等値化情報を、前記他の情報処理装置に送信し、前記他の情報処理装置において稼働状態にある第２環境に関連付けられた第２等値化情報を、前記他の情報処理装置から受信し、前記制御部は、前記通信部が受信した前記第２等値化情報に基づいて、前記第２環境を前記一の情報処理装置に等値化し、前記第１環境を稼働状態に維持し、かつ前記第２環境を待機状態にする。これにより、ハードウェア構成が２つの情報処理装置によるペアによって固定され、一方が稼働状態に、他方が待機状態にあるような従来の冗長化システムと比較して、新たな情報処理装置を冗長化システムに追加することが容易である。したがって、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能であり、信頼性及び可用性が向上する。
【発明の効果】
【００２５】
本開示によれば、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム、冗長化プログラム、及び情報処理装置を提供可能である。
【図面の簡単な説明】
【００２６】
【図１】一実施形態に係る冗長化システムの一例を示すブロック図である。
【図２】図１の情報処理装置において２つの仮想環境が稼働状態にある場合の構成例を示す模式図である。
【図３】一例として図２の第１情報処理装置がシステムダウンしたときの冗長化システムの動作を示す模式図である。
【図４】一例として図３の第２情報処理装置がシステムダウンしたときの冗長化システムの動作を示す模式図である。
【図５】一例として図２の冗長化システムに新たな第４情報処理装置が加わったときの冗長化システムの動作を示す模式図である。
【図６】図１の制御部の機能をより詳細に示した機能ブロック図である。
【図７】等値化処理を高速化する方法を模式的に示した図である。
【図８】図２の冗長化システムの動作の第１例を示すフローチャートである。
【図９】図２の冗長化システムの動作の第２例を示すフローチャートである。
【図１０】図２の冗長化システムの動作の第３例を示すフローチャートである。
【図１１】従来の冗長化システムの一例を示す模式図である。
【発明を実施するための形態】
【００２７】
図１１は、従来の冗長化システムの一例を示す模式図である。図１１を参照しながら従来技術の内容及び問題点についてより詳細に説明する。
【００２８】
従来、例えば無停止型冗長化システムが知られている。「無停止型冗長化システム」とは、一方の情報処理装置に致命的な異常が発生したときに瞬時にもう一方の情報処理装置に動作を切り替え、システム動作に一切影響を与えることなく動作を継続実行できる冗長化システムを含む。冗長化システムは、市販のＯＳ及びアプリケーションソフトウェア等を改変することなく動作可能である。
【００２９】
従来の冗長化システムは、２つの情報処理装置を有する。各情報処理装置は、１つ以上の仮想環境を管理する。より具体的には、情報処理装置における冗長化プラットフォームがハイパバイザ機能を有し、仮想ハードウェア環境を提供する。１つの仮想ハードウェア環境上では、ゲストＯＳ及びアプリケーションソフトウェアが動作する。
【００３０】
従来の冗長化システムでは、冗長化プラットフォーム上で複数の仮想環境が稼働することで、機能の集約化と、高信頼性及び高可用性との両立が可能となる。加えて、ＯＳ及びアプリケーションソフトウェアに依存しない冗長化システムが実現可能である。したがって、従来の冗長化システムによれば、様々な分野のシステムに応用可能な、高信頼性及び高可用性システムが構築される。また、従来の冗長化システムによれば、仮想環境全体を冗長化の対象とするため、無停止型冗長化システムが実現される。
【００３１】
従来の冗長化システムにおいて、一の情報処理装置は稼働状態にあり、他の情報処理装置は待機状態にある。稼働状態にある一の情報処理装置では、仮想環境上のソフトウェアが動作する。一の情報処理装置の等値化機能により、一の情報処理装置の仮想環境への変更が、等値化バスを通じて、待機状態にある他の情報処理装置の対応する仮想環境に逐次等値化される。「仮想環境への変更」は、メモリ及び各デバイス等への書き込み等を含む。
【００３２】
待機状態にある他の情報処理装置の仮想環境は、常に一の情報処理装置の対応する仮想環境と同一の状態に維持される。一の情報処理装置に異常が発生すると、他の情報処理装置の制御権切替機能により、一の情報処理装置が切り離され、他の情報処理装置の全ての仮想環境が稼働状態に切り替えられる。これにより、一の情報処置装置で実行していた仮想環境の稼働が、他の情報処理装置において継続される。
【００３３】
このような従来の冗長化システムでは、ハードウェア構成が２つの情報処理装置によるペアによって固定される。したがって、２つの情報処理装置によって得られる可用性以上の可用性を得ることは困難である。また、従来の冗長化システムは、１つの情報処理装置の故障には対応可能であるが、２つの情報処理装置の故障には対応できない。
【００３４】
従来の冗長化システムでは、ハードウェア構成が２つの情報処理装置によるペアによって固定されるため、システムの成長に合わせて、冗長化システムの規模をダイナミックに拡張することが困難である。さらに、アプリケーション容量及びデータ容量の増加に合わせて、ハードウェアを追加する等のシステム構成の柔軟な変更が困難である。
【００３５】
従来の冗長化システムでは、アーキテクチャ上、１つの情報処理装置において複数の仮想環境が稼働可能であるが、等値化に関するデータ量が増大し、パフォーマンスが劣化する。したがって、多くの仮想環境を稼働させることは困難である。動作させるアプリケーションソフトウェアの規模によるが、１つの情報処理装置に対して２つ程度の仮想環境を稼働させることが現実的である。これにより、集約率の向上が困難となり、システムコストの低減が妨げられる。「集約率」とは、冗長化システムを構成する情報処理装置の数に対する、稼働状態の仮想環境の数の比率である。
【００３６】
近年、ＩｏＴ（Internet of Things）及びＡＩ（Artificial Intelligence）等の技術革新のスピードは目覚ましく、制御システムにおいてもこれらを活用した生産効率の向上及び安全安定操業に対する要求が非常に高まっている。このような状況から、パーソナルコンピュータ等を含む情報処理装置が使用される上位系システムの重要性は増している。そのため、技術進化及び外部環境の変化に合わせて、システムを停止させることなく柔軟にシステム規模の拡張等の変更が可能で、信頼性及び可用性がさらに向上するシステムが求められている。
【００３７】
本開示は、上記の問題点を解決するために、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する冗長化システム及び冗長化プログラムを提供することを目的とする。本開示の一実施形態に係る冗長化システム及び冗長化プログラムは、例えば無停止型冗長化システムに応用可能である。
【００３８】
以下、添付図面を参照しながら本開示の一実施形態について主に説明する。
【００３９】
図１は、一実施形態に係る冗長化システム１の一例を示すブロック図である。図１に示すとおり、冗長化システム１は、例えば、第１情報処理装置１０ａと、第２情報処理装置１０ｂと、第３情報処理装置１０ｃと、管理用情報処理装置２０とを有する。以下、第１情報処理装置１０ａ、第２情報処理装置１０ｂ、及び第３情報処理装置１０ｃを互いに区別しない場合、まとめて「情報処理装置１０」と表記する。情報処理装置１０は、ネットワーク３０を介して管理用情報処理装置２０と通信接続されている。情報処理装置１０は、任意のペア間通信によって互いに通信接続されている。このようなペア間通信は、ネットワーク３０とは独立して行われてもよいし、ネットワーク３０を介して行われてもよい。
【００４０】
ネットワーク３０は、インターネット及びローカルエリアネットワーク等の任意のネットワークを含む。ネットワーク３０は、無線及び有線、並びにこれらの組み合わせのいずれかによって構成されていてもよい。
【００４１】
管理用情報処理装置２０は、ネットワーク３０を介して情報処理装置１０を管理可能な任意の情報処理機器を含む。管理用情報処理装置２０は、ネットワーク３０を介して行われる情報処理装置１０の管理に特化した専用の情報処理機器であってもよいし、携帯電話、スマートフォン、タブレットＰＣ、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器であってもよい。
【００４２】
管理用情報処理装置２０は、例えば、情報処理装置１０で動作する冗長化プラットフォームの設定の編集及びダウンロード等のコンフィギュレーションを実行する。管理用情報処理装置２０は、例えば、情報処理装置１０で稼働する仮想環境の稼働状態を監視する。管理用情報処理装置２０は、例えば、仮想環境の起動、停止、及び稼働状態の切り替え等を含む操作指令を情報処理装置１０に送る。管理用情報処理装置２０は、例えば、情報処理装置１０に関連付ける仮想環境を後述する冗長化管理情報に定義する。
【００４３】
管理用情報処理装置２０は、ネットワーク３０に通信接続されている複数の情報処理装置１０の負荷バランスを監視してもよい。管理用情報処理装置２０は、複数の情報処理装置１０の負荷バランスが不均等であると判定すると、自動的に負荷バランスを調整してもよい。例えば、管理用情報処理装置２０は、複数の情報処理装置１０のうちの一の情報処理装置１０の負荷が低く、他の情報処理装置１０の負荷が高い場合、他の情報処理装置１０に関連付けられた仮想環境を一の情報処理装置１０に関連付けるよう後述する冗長化管理情報を更新してもよい。
【００４４】
情報処理装置１０は、冗長化プラットフォームを有する任意の情報処理機器を含む。情報処理装置１０は、冗長化システム１の構成に特化した専用の情報処理機器であってもよいし、携帯電話、スマートフォン、タブレットＰＣ、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器であってもよい。情報処理装置１０は、後述する複数の仮想環境を稼働させることが可能なマシンパワーを有してもよい。
【００４５】
第１情報処理装置１０ａは、通信部１１ａと、記憶部１２ａと、制御部１３ａとを有する。第２情報処理装置１０ｂは、通信部１１ｂと、記憶部１２ｂと、制御部１３ｂとを有する。第３情報処理装置１０ｃは、通信部１１ｃと、記憶部１２ｃと、制御部１３ｃとを有する。以下、通信部１１ａ、通信部１１ｂ、及び通信部１１ｃを互いに区別しない場合、まとめて「通信部１１」と表記する。記憶部１２ａ、記憶部１２ｂ、及び記憶部１２ｃを互いに区別しない場合、まとめて「記憶部１２」と表記する。制御部１３ａ、制御部１３ｂ、及び制御部１３ｃを互いに区別しない場合、まとめて「制御部１３」と表記する。
【００４６】
通信部１１は、任意の通信プロトコルに対応した任意の通信インタフェースを含む。通信部１１は、ネットワーク３０を介して管理用情報処理装置２０と通信接続可能である。通信部１１は、任意のペア間通信プロトコルに対応した任意の通信インタフェースをさらに含む。一の通信部１１は、当該一の通信部１１が配置されている自身の情報処理装置１０と２つの他の情報処理装置１０との通信接続をそれぞれ可能にする。通信部１１は、ペアとなる他の情報処理装置１０への等値化及び診断通信の要求を制御部１３から受け、他の情報処理装置１０に中継を行う。
【００４７】
記憶部１２は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、ＲＯＭ（Read-Only Memory）、及びＲＡＭ（Random Access Memory）等の任意の記憶装置を含み、後述する冗長化システム１の動作を実現するために必要な情報を記憶する。記憶部１２は、主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。記憶部１２は、情報処理装置１０に内蔵されているものに限定されず、ＵＳＢ等のデジタル入出力ポート等によって接続されている外付け型の記憶装置であってもよい。
【００４８】
制御部１３は、１つ以上のプロセッサを含む。より具体的には、制御部１３は、汎用のプロセッサ及び特定の処理に特化した専用のプロセッサ等の任意のプロセッサを含む。制御部１３は、例えば、携帯電話、スマートフォン、タブレットＰＣ、デスクトップコンピュータ、及びモバイルコンピュータ等の任意の汎用電子機器等に搭載されたプロセッサ、並びに冗長化システム１の構成に特化した専用の情報処理機器に搭載されたプロセッサを含んでもよい。制御部１３は、制御部１３が配置されている自身の情報処理装置１０において稼働可能な複数の仮想環境を管理する。
【００４９】
図２は、図１の情報処理装置１０において２つの仮想環境が稼働状態にある場合の構成例を示す模式図である。図２を参照しながら、冗長化システム１における冗長化動作の一例を主に説明する。初めに、冗長化システム１の定常動作について主に説明する。
【００５０】
図２に示す例では、各情報処理装置１０上に、冗長化プラットフォームが構成され、各冗長化プラットフォーム上に、４つの仮想環境が構築されている。具体的には、第１情報処理装置１０ａには、仮想環境ＶＭ１、ＶＭ２、ＶＭ３、ＶＭ６という４つの仮想環境が構築されている。また、第２情報処理装置１０ｂには、仮想環境ＶＭ３、ＶＭ４、ＶＭ１、ＶＭ５という４つの仮想環境が構築されている。また、第３情報処理装置１０ｃには、仮想環境ＶＭ５、ＶＭ６、ＶＭ４、ＶＭ２という４つの仮想環境が構築されている。
【００５１】
制御部１３は、通信部１１を介して管理用情報処理装置２０から冗長化管理情報をダウンロードする。制御部１３は、ダウンロードした冗長化管理情報に基づいて、稼働仮想環境及び待機仮想環境の制御、並びに他の情報処理装置１０へ等値化を行うための通信管理を行う。ここで、「稼働仮想環境」は、稼働状態にある仮想環境をいう。また、「待機仮想環境」は、待機状態にある仮想環境をいう。「冗長化管理情報」は、情報処理装置１０における稼働仮想環境及び待機仮想環境の情報を含む。例えば各情報処理装置１０が図２のように構成される場合、冗長化管理情報は、以下の表１に示すようなリストとして定義される。このような冗長化管理情報は、例えば管理用情報処理装置２０からダウンロードされた後、記憶部１２に格納される。
【００５２】
【表１】
2020042526.tif 000003
【００５３】
表１は、各情報処理装置１０における、仮想環境の制御状態を示す。表１において、「稼働」と記載されている欄は、情報処理装置１０における仮想環境が稼働仮想環境で制御されていることを示す。表１において、「待機」と記載されている欄は、情報処理装置１０における仮想環境が待機仮想環境で制御されていることを示す。表１において、「―」と記載されている欄は、情報処理装置１０が、その仮想環境を有さないことを示す。
【００５４】
冗長化システム１の定常動作では、例えば、第１情報処理装置１０ａの制御部１３ａは、２つの仮想環境ＶＭ１、ＶＭ２を稼働状態に維持する。冗長化システム１は、第１情報処理装置１０ａがシステムダウンした場合に備えて、第１情報処理装置１０ａにおける稼働仮想環境ＶＭ１、ＶＭ２を、他の第２情報処理装置１０ｂ及び第３情報処理装置１０ｃに等値化する。図２の例では、冗長化システム１は、稼働仮想環境ＶＭ１を第２情報処理装置１０ｂに等値化する。冗長化システム１は、稼働仮想環境ＶＭ２を第３情報処理装置１０ｃに等値化する。
【００５５】
より具体的には、制御部１３ａは、通信部１１ａに、自身の第１情報処理装置１０ａにおいて稼働状態にある稼働仮想環境ＶＭ１、ＶＭ２に関連付けられた等値化情報を、他の第２情報処理装置１０ｂ及び第３情報処理装置１０ｃにそれぞれ送信させる。「等値化情報」は、稼働仮想環境ＶＭ１、ＶＭ２それぞれの稼働に伴ってこれらの状態が変化し、冗長化プラットフォームで管理している仮想環境のメモリ領域に書き込みアクセスが発生することで生じる、メモリ内容の変更差分を含む。「等値化情報」は、後述する、ＬＡＮカードのリモートダイレクトメモリアクセス（Remote Direct Memory Access: RDMA）機能を用いる場合に取得されるアドレスリストを含む。その他、「等値化情報」は、稼働仮想環境ＶＭ１、ＶＭ２が稼働状態にあることで生じる任意の仮想ハードウェアの変更差分を含む。
【００５６】
第２情報処理装置１０ｂの制御部１３ｂは、通信部１１ｂに、第１情報処理装置１０ａにおいて稼働状態にある稼働仮想環境ＶＭ１に関連付けられた等値化情報を、第１情報処理装置１０ａから受信させる。制御部１３ｂは、通信部１１ｂが受信した等値化情報に基づいて、仮想環境ＶＭ１を自身の第２情報処理装置１０ｂに等値化する。
【００５７】
同様に、第３情報処理装置１０ｃの制御部１３ｃは、通信部１１ｃに、第１情報処理装置１０ａにおいて稼働状態にある稼働仮想環境ＶＭ２に関連付けられた等値化情報を、第１情報処理装置１０ａから受信させる。制御部１３ｃは、通信部１１ｃが受信した等値化情報に基づいて、仮想環境ＶＭ２を自身の第３情報処理装置１０ｃに等値化する。
【００５８】
第２情報処理装置１０ｂ及び第３情報処理装置１０ｃにそれぞれ等値化された仮想環境ＶＭ１及び仮想環境ＶＭ２は、第１情報処理装置１０ａがシステムダウンした場合に備え待機状態にある。このとき、第１情報処理装置１０ａと、第２情報処理装置１０ｂ及び第３情報処理装置１０ｃとの間では、高速に等値化処理だけが実行されている。
【００５９】
稼働仮想環境ＶＭ１、ＶＭ２から待機仮想環境ＶＭ１、ＶＭ２への等値化は、それぞれ、従来技術を含む任意の方法により実行されてもよい。冗長化システム１は、稼働仮想環境ＶＭ１、ＶＭ２を稼働させながら、仮想ハードウェアに生じる差分を待機仮想環境ＶＭ１、ＶＭ２にそれぞれ所定の周期で等値化する。このように、一実施形態に係る冗長化システム１は、従来技術と異なり、等値化対象とする情報処理装置１０を２つ以上有することも可能である。
【００６０】
第１情報処理装置１０ａを用いて説明した、上記の冗長化動作に関する説明は、第２情報処理装置１０ｂ及び第３情報処理装置１０ｃに対しても同様に適用される。
【００６１】
例えば、第２情報処理装置１０ｂの制御部１３ｂは、２つの稼働仮想環境ＶＭ３、ＶＭ４を稼働状態に維持する。冗長化システム１は、第２情報処理装置１０ｂがシステムダウンした場合に備えて、第２情報処理装置１０ｂにおける稼働仮想環境ＶＭ３、ＶＭ４を、他の第１情報処理装置１０ａ及び第３情報処理装置１０ｃにそれぞれ等値化する。
【００６２】
より具体的には、制御部１３ｂは、通信部１１ｂに、自身の第２情報処理装置１０ｂにおいて稼働状態にある稼働仮想環境ＶＭ３、ＶＭ４に関連付けられた等値化情報を、他の第１情報処理装置１０ａ及び第３情報処理装置１０ｃにそれぞれ送信させる。
【００６３】
第１情報処理装置１０ａの制御部１３ａは、通信部１１ａに、他の第２情報処理装置１０ｂにおいて稼働状態にある稼働仮想環境ＶＭ３に関連付けられた等値化情報を、他の第２情報処理装置１０ｂから受信させる。制御部１３ａは、通信部１１ａが受信した等値化情報に基づいて、仮想環境ＶＭ３を自身の第１情報処理装置１０ａに等値化する。
【００６４】
同様に、第３情報処理装置１０ｃの制御部１３ｃは、通信部１１ｃに、他の第２情報処理装置１０ｂにおいて稼働状態にある稼働仮想環境ＶＭ４に関連付けられた等値化情報を、他の第２情報処理装置１０ｂから受信させる。制御部１３ｃは、通信部１１ｃが受信した等値化情報に基づいて、仮想環境ＶＭ４を自身の第３情報処理装置１０ｃに等値化する。
【００６５】
第１情報処理装置１０ａ及び第３情報処理装置１０ｃにそれぞれ等値化された仮想環境ＶＭ３及び仮想環境ＶＭ４は、第２情報処理装置１０ｂがシステムダウンした場合に備え待機状態にある。
【００６６】
例えば、第３情報処理装置１０ｃの制御部１３ｃは、２つの稼働仮想環境ＶＭ５、ＶＭ６を稼働状態に維持する。冗長化システム１は、第３情報処理装置１０ｃがシステムダウンした場合に備えて、第３情報処理装置１０ｃにおける稼働仮想環境ＶＭ５、ＶＭ６を、他の第２情報処理装置１０ｂ及び第１情報処理装置１０ａにそれぞれ等値化する。
【００６７】
より具体的には、制御部１３ｃは、通信部１１ｃに、自身の第３情報処理装置１０ｃにおいて稼働状態にある稼働仮想環境ＶＭ５、ＶＭ６に関連付けられた等値化情報を、他の第２情報処理装置１０ｂ及び第１情報処理装置１０ａにそれぞれ送信させる。
【００６８】
第２情報処理装置１０ｂの制御部１３ｂは、通信部１１ｂに、他の第３情報処理装置１０ｃにおいて稼働状態にある稼働仮想環境ＶＭ５に関連付けられた等値化情報を、他の第３情報処理装置１０ｃから受信させる。制御部１３ｂは、通信部１１ｂが受信した等値化情報に基づいて、仮想環境ＶＭ５を自身の第２情報処理装置１０ｂに等値化する。
【００６９】
同様に、第１情報処理装置１０ａの制御部１３ａは、通信部１１ａに、他の第３情報処理装置１０ｃにおいて稼働状態にある稼働仮想環境ＶＭ６に関連付けられた等値化情報を、他の第３情報処理装置１０ｃから受信させる。制御部１３ａは、通信部１１ａが受信した等値化情報に基づいて、仮想環境ＶＭ６を自身の第１情報処理装置１０ａに等値化する。
【００７０】
第２情報処理装置１０ｂ及び第１情報処理装置１０ａにそれぞれ等値化された仮想環境ＶＭ５及び仮想環境ＶＭ６は、第３情報処理装置１０ｃがシステムダウンした場合に備え待機状態にある。
【００７１】
以上のように、制御部１３ａは、仮想環境ＶＭ１、ＶＭ２を稼働状態に維持し、かつ仮想環境ＶＭ３、ＶＭ６を待機状態にする。制御部１３ｂは、仮想環境ＶＭ３、ＶＭ４を稼働状態に維持し、かつ仮想環境ＶＭ１、ＶＭ５を待機状態にする。制御部１３ｃは、仮想環境ＶＭ５、ＶＭ６を稼働状態に維持し、かつ仮想環境ＶＭ２、ＶＭ４を待機状態にする。
【００７２】
図３は、一例として図２の第１情報処理装置１０ａがシステムダウンしたときの冗長化システム１の動作を示す模式図である。図３を参照しながら、第１情報処理装置１０ａにおいてシステムダウンが発生したときの切替動作について主に説明する。以下の説明は、第２情報処理装置１０ｂ又は第３情報処理装置１０ｃがシステムダウンしたときにも同様に適用される。
【００７３】
例えば、第１情報処理装置１０ａがハードウェア異常によりシステムダウンを起こすと、第２情報処理装置１０ｂの制御部１３ｂ、及び第３情報処理装置１０ｃの制御部１３ｃは、第１情報処理装置１０ａがシステムダウンしたと判定する。このとき、制御部１３ｂ及び制御部１３ｃは、第１情報処理装置１０ａにおいて稼働状態にあった仮想環境ＶＭ１、ＶＭ２を、自身の情報処理装置１０においてそれぞれ待機状態から稼働状態に切り替える。これにより、第１情報処理装置１０ａにおいて稼働状態にあった仮想環境ＶＭ１、ＶＭ２の稼働が継続される。
【００７４】
このとき、第１情報処理装置１０ａが切り離され、それによって、冗長化システム１を構成する情報処理装置１０の数が２つに変更される。すなわち、第２情報処理装置１０ｂ及び第３情報処理装置１０ｃのみが稼働状態にある。そこで、第２情報処理装置１０ｂ又は第３情報処理装置１０ｃがさらにシステムダウンする場合に備えて、冗長化システム１は、第２情報処理装置１０ｂ及び第３情報処理装置１０ｃの間で各仮想環境を等値化する。より具体的には、第２情報処理装置１０ｂにおいて、仮想環境ＶＭ２、ＶＭ６が新たに構築され、第３情報処理装置１０ｃにおいて、仮想環境ＶＭ１、ＶＭ３が新たに構築される。そして、上述した冗長化システム１の定常動作における制御部１３の制御と同様の制御に基づいて、制御部１３ｂは、第３情報処理装置１０ｃにおける稼働仮想環境ＶＭ２、ＶＭ５、ＶＭ６を第２情報処理装置１０ｂに等値化する。同様に、制御部１３ｃは、第２情報処理装置１０ｂにおける稼働仮想環境ＶＭ１、ＶＭ３、ＶＭ４を第３情報処理装置１０ｃに等値化する。
【００７５】
図４は、一例として図３の第２情報処理装置１０ｂがさらにシステムダウンしたときの冗長化システム１の動作を示す模式図である。図４を参照しながら、第１情報処理装置１０ａ及び第２情報処理装置１０ｂの両方においてシステムダウンが発生したときの切替動作について主に説明する。以下の説明は、３つの情報処理装置１０のうちの任意の２つの情報処理装置１０がシステムダウンしたときにも同様に適用される。
【００７６】
例えば、第１情報処理装置１０ａ及び第２情報処理装置１０ｂがハードウェア異常によりシステムダウンを起こすと、第３情報処理装置１０ｃの制御部１３ｃは、第１情報処理装置１０ａ及び第２情報処理装置１０ｂがシステムダウンしたと判定する。このとき、制御部１３ｃは、第２情報処理装置１０ｂにおいて稼働状態にあった仮想環境ＶＭ１、ＶＭ３、ＶＭ４を、自身の第３情報処理装置１０ｃにおいて待機状態から稼働状態に切り替える。これにより、第２情報処理装置１０ｂにおいて稼働状態にあった仮想環境ＶＭ１、ＶＭ３、ＶＭ４の稼働が継続される。
【００７７】
このとき、第３情報処理装置１０ｃでは、制御部１３ｃは、６つの稼働仮想環境ＶＭ１、ＶＭ２、ＶＭ３、ＶＭ４、ＶＭ５、ＶＭ６を稼働させる。したがって、このような場合、第３情報処理装置１０ｃは、６つの仮想環境を稼働させることが可能なマシンパワーを有する。
【００７８】
図４に示すように第３情報処理装置１０ｃのみが稼働している状態において、第２情報処理装置１０ｂがシステムダウンから復旧した場合、冗長化システム１は、第３情報処理装置１０ｃの稼働仮想環境ＶＭ１、ＶＭ２、ＶＭ３、ＶＭ４、ＶＭ５、ＶＭ６を第２情報処理装置１０ｂに等値化する。より具体的には、上述した冗長化システム１の定常動作における制御部１３の制御と同様の制御に基づいて、制御部１３ｂは、第３情報処理装置１０ｃにおける稼働仮想環境ＶＭ１、ＶＭ２、ＶＭ３、ＶＭ４、ＶＭ５、ＶＭ６を第２情報処理装置１０ｂに等値化する。等値化が完了したら、制御部１３ｂは、例えば図３の状態のとおり、仮想環境ＶＭ１、ＶＭ３、ＶＭ４を稼働状態にし、仮想環境ＶＭ２、ＶＭ５、ＶＭ６を待機状態にする。このとき、第３情報処理装置１０ｃの制御部１３ｃは、稼働仮想環境ＶＭ１、ＶＭ３、ＶＭ４を待機状態に切り替える。なお、第２情報処理装置１０ｂ及び第３情報処理装置１０ｃにおいて、稼働状態にする仮想環境及び待機状態に切り替える仮想環境は、管理用情報処理装置２０から取得した冗長化管理情報に基づいてそれぞれ任意に設定可能である。
【００７９】
図３に示すように第２情報処理装置１０ｂ及び第３情報処理装置１０ｃが稼働している状態で、第１情報処理装置１０ａがシステムダウンからさらに復旧した場合、冗長化システム１は、同様の動作を行い、図２に示す定常動作の構成に戻す。
【００８０】
図５は、一例として図２の冗長化システム１に新たな第４情報処理装置１０ｄが加わったときの冗長化システム１の動作を示す模式図である。図５を参照しながら、冗長化システム１に新たな第４情報処理装置１０ｄが加わったときの切替動作について主に説明する。図５は、３つの情報処理装置１０を含む冗長化システム１が稼働を継続しながら、新たな第４情報処理装置１０ｄの追加に伴って負荷バランスを調整する様子を示す。
【００８１】
このとき、管理用情報処理装置２０は、例えばユーザからの入力操作に基づいて、表１の冗長化管理情報に第４情報処理装置１０ｄを追加する。例えば、第１情報処理装置１０ａ及び第３情報処理装置１０ｃのパフォーマンスが不足している場合、管理用情報処理装置２０は、第１情報処理装置１０ａの稼働仮想環境ＶＭ２と第３情報処理装置１０ｃの稼働仮想環境ＶＭ６とを第４情報処理装置１０ｄに関連付ける。これに伴い、管理用情報処理装置２０は、情報処理装置１０に等値化する待機仮想環境の関連付けも変更する。例えば、管理用情報処理装置２０は、待機仮想環境ＶＭ５の関連付けを第２情報処理装置１０ｂから第４情報処理装置１０ｄに変更する。その後、管理用情報処理装置２０は、変更された冗長化管理情報を情報処理装置１０に送信する。
【００８２】
冗長化システム１は、情報処理装置１０にダウンロードされた冗長化管理情報に基づいて、第１情報処理装置１０ａの稼働仮想環境ＶＭ２と第３情報処理装置１０ｃの稼働仮想環境ＶＭ６とを第４情報処理装置１０ｄに等値化する。より具体的には、第４情報処理装置１０ｄは、受信した冗長化管理情報に基づいて初めに待機仮想環境ＶＭ２、ＶＭ６を構築する。制御部１３ａは、新たな第４情報処理装置１０ｄが冗長化システム１に備わったと判定し、通信部１１ａに、第１情報処理装置１０ａにおいて稼働状態にある仮想環境ＶＭ２に関連付けられた等値化情報を、第４情報処理装置１０ｄに送信させる。同様に、制御部１３ｃは、新たな第４情報処理装置１０ｄが冗長化システム１に備わったと判定し、通信部１１ｃに、第３情報処理装置１０ｃにおいて稼働状態にある仮想環境ＶＭ６に関連付けられた等値化情報を、第４情報処理装置１０ｄに送信させる。第４情報処理装置１０ｄは、通信部１１ａ及び通信部１１ｃから受信した等値化情報に基づいて、対応する稼働仮想環境を第４情報処理装置１０ｄの待機仮想環境ＶＭ２、ＶＭ６にそれぞれ等値化する。
【００８３】
そして、制御部１３ａは、第１情報処理装置１０ａにおいて稼働状態にある仮想環境ＶＭ２を待機状態に切り替える。同様に、制御部１３ｃは、第３情報処理装置１０ｃにおいて稼働状態にある仮想環境ＶＭ６を待機状態に切り替える。一方で、第４情報処理装置１０ｄは、等値化された待機仮想環境ＶＭ２、ＶＭ６を稼働状態に切り替える。第４情報処理装置１０ｄは、稼働仮想環境ＶＭ２、ＶＭ６に関連付けられた等値化情報を、第３情報処理装置１０ｃ及び第１情報処理装置１０ａにそれぞれ送信する。制御部１３ａは、受信した等値化情報に基づいて、第４情報処理装置１０ｄの稼働仮想環境ＶＭ６を待機仮想環境ＶＭ６として等値化する。制御部１３ｃは、受信した等値化情報に基づいて、第４情報処理装置１０ｄの稼働仮想環境ＶＭ２を待機仮想環境ＶＭ２として等値化する。
【００８４】
加えて、制御部１３ｃは、通信部１１ｃに、第３情報処理装置１０ｃにおいて稼働状態にある仮想環境ＶＭ５に関連付けられた等値化情報を、第４情報処理装置１０ｄに送信させる。第４情報処理装置１０ｄは、等値化された仮想環境ＶＭ５を待機状態にする。
【００８５】
制御部１３は、通信部１１から送信された等値化情報に関連付いている仮想環境を自身の情報処理装置１０から消去する。より具体的には、制御部１３ａは、上述したステップにより稼働状態から待機状態に切り替えられた仮想環境ＶＭ２を消去する。制御部１３ｃは、上述したステップにより稼働状態から待機状態に切り替えられた仮想環境ＶＭ６を消去する。加えて、冗長化システム１は、冗長化管理情報に基づいて、情報処理装置１０の待機仮想環境を図５に示すとおりに変更する。例えば、制御部１３ｂは、待機仮想環境ＶＭ５を消去する。以上により、冗長化システム１は、柔軟にシステム規模を変更可能であり、情報処理装置１０の負荷が軽減され、システムパフォーマンスが向上する。
【００８６】
図６は、図１の制御部１３の機能をより詳細に示した機能ブロック図である。図６を参照しながら、制御部１３の機能についてより詳細に説明する。制御部１３は、例えば、冗長化管理部１３１、仮想化等値化部１３２、ミラードディスク管理部１３３、診断部１３４、及び等値化バス診断部１３５を有する。
【００８７】
冗長化管理部１３１は、冗長化プラットフォームの状態管理を行う。冗長化管理部１３１は、管理用情報処理装置２０からダウンロードされた冗長化管理情報に基づいて、稼働仮想環境及び待機仮想環境の制御、並びに他の情報処理装置１０へ等値化を行うための通信管理を実行する。冗長化管理部１３１は、例えば、図２の定常動作において、所定の仮想環境を稼働状態に維持し、かつ他の仮想環境を待機状態にする。冗長化管理部１３１は、例えば、他の情報処理装置１０がシステムダウンしたと判定すると、自身の情報処理装置１０における待機仮想環境を稼働状態に切り替える。このとき、冗長化管理部１３１は、システムダウンした情報処理装置１０を切り離すように仮想化等値化部１３２に指示する。同様に、冗長化管理部１３１は、システムダウンした情報処理装置１０を切り離すように、仮想化等値化部１３２を介してミラードディスク管理部１３３に指示する。その他、冗長化管理部１３１は、仮想化等値化部１３２及びミラードディスク管理部１３３に、等値化を実行するように指示する。
【００８８】
冗長化管理部１３１は、新たな１つの情報処理装置１０が冗長化システム１に備わったと判定すると、稼働状態にある仮想環境に関連付けられた等値化情報を、新たな情報処理装置１０に通信部１１を用いて送信するように、仮想化等値化部１３２に指示する。冗長化管理部１３１は、通信部１１から送信された等値化情報に関連付いている仮想環境を自身の情報処理装置１０から消去する。
【００８９】
仮想化等値化部１３２は、ゲストＯＳに仮想ハードウェア環境を提供する。仮想化等値化部１３２は、メモリ及び各デバイス等を含む仮想ハードウェアの変更内容を所定の周期で監視する。仮想化等値化部１３２は、通信部１１を用いて、変更差分を等値化情報として他の情報処理装置１０に送信させる。等値化情報は、通信部１１のペア間通信機能により、例えば冗長化構成をとる他の情報処理装置１０の仮想化等値化部１３２に送信される。仮想化等値化部１３２は、受信した等値化情報に基づいて、対応する仮想環境を自身の情報処理装置１０に等値化する。以上により、他の情報処理装置１０との冗長化動作が実現される。
【００９０】
ミラードディスク管理部１３３は、各仮想環境に関連付けられているＨＤＤに基づく補助記憶を稼働仮想環境及び待機仮想環境の間でミラーリングする。異なる情報処理装置１０において、互いに対応する稼働仮想環境及び待機仮想環境間で常にＨＤＤを一致させることで、冗長化システム１は、切り替え後もＨＤＤの内容を継承することができる。
【００９１】
診断部１３４は、自身の情報処理装置１０の診断を行う。診断部１３４には、他の機能部が検知した異常も併せて通知される。診断部１３４は、異常をレベル毎にカテゴライズし、冗長化管理部１３１に通知する。
【００９２】
等値化バス診断部１３５は、情報処理装置１０間を結ぶ等値化バスを診断する。等値化バスは信頼性が要求されるため、例えば２重化されたネットワークにより構成される。等値化バス診断部１３５は、高速に診断を行い、一方の等値化バスの異常を検知すると、もう一方のバスへの切り替えを実行する。等値化バス診断部１３５は、ペアとなる情報処理装置１０の診断も行い、ペアとなる情報処理装置１０のシステムダウンを検知すると、診断部１３４に異常を通知し、冗長化管理部１３１が上述した切替処理を行う。
【００９３】
図７は、等値化処理を高速化する方法を模式的に示した図である。図７を参照しながら、冗長化システム１において等値化処理を高速化する方法について主に説明する。図７では、第１情報処理装置１０ａ及び第２情報処理装置１０ｂの場合を一例として示しているが、以下と同様の説明が、情報処理装置１０の他の任意の組にも適用される。
【００９４】
冗長化システム１は、稼働仮想環境から、対応する待機仮想環境へ、仮想環境の変更差分を高速に等値化する必要がある。稼働仮想環境の稼働に伴って、仮想環境の状態が変化し、冗長化プラットフォームで管理している仮想環境のメモリ領域に書き込みアクセスが発生する。これにより、メモリ内容が変化する。
【００９５】
ソフトウェア方式を用いた従来の冗長化では、このような等値化処理をソフトウェアで行うため、オーバヘッドが大きく、シングルシステムに対し、パフォーマンスが劣化するという問題があった。例えば、ソフトウェア方式を用いた場合、稼働仮想環境を監視している第１情報処理装置１０ａの仮想化等値化部１３２は、メモリ内容の変更差分を検出し、第２情報処理装置１０ｂの仮想化等値化部１３２にこのメモリ差分を転送する。第２情報処理装置１０ｂの仮想化等値化部１３２は、転送された情報に基づいて等値化を行う。このような場合、上記のメモリ差分の転送を仮想化等値化部１３２のソフトウェアが行うため、以下の２つの処理が発生する。１つは、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）がページ単位で管理しているメモリのダーティページ、すなわち書き込みアクセスが発生したページの内容を自身の転送用バッファにコピーする処理である。もう１つは、ＴＣＰＩＰにより、転送用バッファの内容を第２情報処理装置１０ｂに転送する処理である。当該処理においても、例えば通信ドライバの内部でメモリバッファコピーが発生する。以上により、メモリ差分の転送処理に多くのＣＰＵパワーが用いられる。
【００９６】
一実施形態に係る冗長化システム１は、上記のソフトウェアに基づく処理を介在せずに、第２情報処理装置１０ｂに等値化を行ってもよい。これにより、等値化のオーバヘッドが大幅に軽減し、高速に等値化が行われる。したがって、稼働仮想環境のパフォーマンスが大幅に向上する。
【００９７】
一実施形態に係る冗長化システム１における等値化には、ＬＡＮカードに実装されているＲＤＭＡ機能が利用されてもよい。すなわち、通信部１１は、ＬＡＮカードに実装されているＲＤＭＡ機能を用いて各情報の送受信を行ってもよい。
【００９８】
このとき、仮想化等値化部１３２は、ＭＭＵのダーティページを参照し、書き込みが行われたメモリページのアドレスリストを取得してもよい。仮想化等値化部１３２は、アドレスのみを参照し、データの内容を参照しない。これにより、メモリ転送が発生しない。
【００９９】
取得したアドレスリストは、ＬＡＮカードのＲＤＭＡ機能を用いて、第２情報処理装置１０ｂに転送されてもよい。第１情報処理装置１０ａのＬＡＮカードのＲＤＭＡ機能により、ソフトウェアを介在することなく、与えられたアドレスリストのメモリ内容が第２情報処理装置１０ｂのＲＤＭＡ機能を有するＬＡＮカードに転送されてもよい。
【０１００】
制御部１３ｂは、第２情報処理装置１０ｂのＲＤＭＡ機能を用いて、転送されたデータがメモリの指定アドレスにコピーされ、第１情報処理装置１０ａと第２情報処理装置１０ｂとのメモリ内容が等値化されるように通信部１１ｂを制御してもよい。
【０１０１】
図８は、図２の冗長化システム１の動作の第１例を示すフローチャートである。図８では、一の情報処理装置１０の制御部１３のみに着目したときの、冗長化システム１の定常動作が示されている。図８を参照しながら、冗長化システム１の定常動作のフローを主に説明する。
【０１０２】
ステップＳ１０１では、３つの情報処理装置１０のそれぞれの情報処理装置１０において、制御部１３は、稼働状態にある稼働仮想環境に関連付けられた等値化情報を他の情報処理装置１０に送信させる。
【０１０３】
ステップＳ１０２では、制御部１３は、他の情報処理装置１０において稼働状態にある稼働仮想環境に関連付けられた等値化情報を他の情報処理装置１０から受信させる。
【０１０４】
ステップＳ１０３では、制御部１３は、ステップＳ１０２で受信した等値化情報に基づいて、他の情報処理装置１０における稼働仮想環境を自身の情報処理装置１０に等値化する。
【０１０５】
ステップＳ１０４では、制御部１３は、自身の情報処理装置１０において、稼働仮想環境を稼働状態に維持し、かつ等値化された仮想環境を待機状態にする。
【０１０６】
図９は、図２の冗長化システム１の動作の第２例を示すフローチャートである。図９では、一の情報処理装置１０の制御部１３のみに着目したときの冗長化システム１の動作が示されている。図９を参照しながら、冗長化システム１において１つの情報処理装置１０がシステムダウンしたときの切替動作について主に説明する。
【０１０７】
ステップＳ２０１では、制御部１３は、１つの他の情報処理装置１０がシステムダウンしたか否かを判定する。１つの他の情報処理装置１０がシステムダウンしたと制御部１３が判定すると、フローはステップＳ２０２に進む。１つの他の情報処理装置１０がシステムダウンしていないと制御部１３が判定すると、フローはステップＳ２０１に戻る。
【０１０８】
ステップＳ２０２では、制御部１３は、１つの他の情報処理装置１０がシステムダウンしたと判定すると、他の情報処理装置１０において稼働状態にあった、対応する待機仮想環境を、自身の情報処理装置１０において待機状態から稼働状態に切り替える。
【０１０９】
図１０は、図２の冗長化システム１の動作の第３例を示すフローチャートである。図１０では、一の情報処理装置１０の制御部１３のみに着目したときの冗長化システム１の動作が示されている。図１０を参照しながら、冗長化システム１に新たな第４情報処理装置１０ｄが加わったときの切替動作について主に説明する。
【０１１０】
ステップＳ３０１では、制御部１３は、新たな１つの第４情報処理装置１０ｄが冗長化システム１に備わったか否かを判定する。第４情報処理装置１０ｄが冗長化システム１に備わったと制御部１３が判定すると、フローはステップＳ３０２に進む。第４情報処理装置１０ｄが冗長化システム１に備わっていないと制御部１３が判定すると、フローはステップＳ３０１に戻る。
【０１１１】
ステップＳ３０２では、制御部１３は、新たな１つの第４情報処理装置１０ｄが冗長化システム１に備わったと判定すると、自身の情報処理装置１０において稼働状態にある稼働仮想環境に関連付けられた等値化情報を、新たな第４情報処理装置１０ｄに送信する。
【０１１２】
ステップＳ３０３では、制御部１３は、ステップＳ３０２において送信された等値化情報に関連付いている稼働仮想環境を自身の情報処理装置１０から消去する。
【０１１３】
以上のような一実施形態に係る冗長化システム１によれば、柔軟にシステム規模を変更可能であり、信頼性及び可用性が向上する。
【０１１４】
より具体的には、冗長化システム１では、図５を参照しながら説明したとおり、システムの稼働を停止させることなく、システム構成が変更可能である。システムの可用性をさらに向上させたい場合、及びシステムパフォーマンスをさらに向上させたい場合、システムを稼働させたまま情報処理装置１０を追加することで負荷が分散され、信頼性及び可用性が向上する。このように、冗長化システム１は、持続的に成長可能である。
【０１１５】
冗長化システム１では、管理用情報処理装置２０が例えばユーザからの入力操作に基づいて表１の冗長化管理情報を変更することで、冗長化システム１に含まれる情報処理装置１０の構成、各情報処理装置１０に対する仮想環境の関連付け、及び各情報処理装置１０の仮想環境に対する稼働状態又は待機状態の関連付けが自在に調整可能である。したがって、冗長化システム１では、稼働を停止させることなく、自在に構成の変更が可能である。このような自在な構成変更により、稼働を停止させることなく、可用性の向上及び負荷バランスの変更が可能である。
【０１１６】
２つの情報処理装置により構成されたいわゆる二重化システムを含む従来の冗長化システムと異なり、一実施形態に係る冗長化システム１では、システムに要求される信頼性及び可用性の重要度、並びにコストに応じて３つ以上の情報処理装置１０を含むシステムを構築することも可能である。３つ以上の情報処理装置１０を含むようにシステムを構成した場合、例えばハードウェア異常により２つ以上の情報処理装置１０がシステムダウンしても、システム動作に全く影響が及ばず、システム動作が継続可能である。したがって、システムの可用性が飛躍的に向上する。
【０１１７】
二重化システムを含む従来の冗長化システムでは、例えば、稼働する仮想環境が１つである場合、集約率は５０％となるが、一実施形態に係る冗長化システム１では、冗長化を構成する全ての情報処理装置１０でソフトウェア及び１つ以上の仮想環境が稼働可能である。したがって、集約率は１００％以上である。これにより、集約率の向上と可用性の向上とが両立可能であり、コストパフォーマンスが向上する。
【０１１８】
本開示を諸図面及び実施形態に基づいて説明してきたが、当業者であれば本開示に基づき種々の変形及び修正を行うことが容易であることに注意されたい。したがって、これらの変形及び修正は本開示の範囲に含まれることに留意されたい。例えば、各手段又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段又はステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【０１１９】
例えば、本開示は、上述した冗長化システム１の各機能を実現する処理内容を記述したプログラム又はプログラムを記録した記憶媒体としても実現し得る。本開示の範囲には、これらも包含されると理解されたい。
【０１２０】
上記では、冗長化システム１における等値化には、ＬＡＮカードに実装されているＲＤＭＡ機能が利用されてもよいとして説明したが、等値化方法は、これに限定されず、任意の方法を含んでもよい。例えば、冗長化システム１における等値化方法は、ソフトウェア方式を用いた従来の冗長化に基づく方法を含んでもよい。
【０１２１】
上記では、各情報処理装置１０において、稼働仮想環境及び待機仮想環境それぞれが２つの仮想環境を含むとして説明したが、それぞれに含まれる仮想環境の数は任意の数であってもよい。例えば、各情報処理装置１０において、稼働仮想環境が１つの仮想環境を含み、待機仮想環境が、１つの他の情報処理装置１０において稼働状態にある１つの仮想環境を含んでもよい。例えば、各情報処理装置１０において、稼働仮想環境が１つの仮想環境を含み、待機仮想環境が、２つの他の情報処理装置１０においてそれぞれ稼働状態にある２つの仮想環境を含んでもよい。この場合、各情報処理装置１０の１つの稼働仮想環境が２つの他の情報処理装置１０それぞれに等値化されるので、１つの他の情報処理装置１０のみに等値化される場合と比較して、信頼性及び可用性がさらに向上する。
【０１２２】
上記では、各情報処理装置１０における２つの稼働仮想環境は、異なる他の情報処理装置１０にそれぞれ等値化されるとして説明したが、等値化の方法はこれに限定されない。例えば、各情報処理装置１０における２つの稼働仮想環境が、同一の他の情報処理装置１０にそれぞれ等値化されてもよい。
【０１２３】
上記では、冗長化システム１は３つの情報処理装置１０を有するとして説明したが、冗長化システム１に含まれる情報処理装置１０の数はこれに限定されない。冗長化システム１に含まれる情報処理装置１０の数は２つであってもよいし、４つ以上であってもよい。情報処理装置１０の数が２つの場合であっても、各情報処理装置１０の稼働仮想環境を他の情報処理装置１０に待機仮想環境として等値化することで、一方の情報処理装置１０が稼働状態に、他方の情報処理装置１０が待機状態にある従来の二重化システムと比較して、各情報処理装置１０における負荷バランスが変更される。すなわち、各情報処理装置１０において負荷が略均等となり、負荷バランスが向上する。
【０１２４】
上記では、図２及び図５等に示すとおり、冗長化システム１を構成する複数の情報処理装置１０それぞれにおいて、同数の仮想環境が構築されているとして説明したが、各情報処理装置１０における仮想環境の数の関係は、これに限定されない。例えば、各情報処理装置１０のマシンパワーが異なるような場合、各情報処理装置１０のマシンパワーに合わせて、各情報処理装置１０において構築される仮想環境の数が異なっていてもよい。このような各情報処理装置１０において構築される仮想環境の数は、管理用情報処理装置２０が定義する冗長化管理情報に含まれていてもよい。
【０１２５】
一実施形態に係る冗長化システム１は、コンピュータシステム全般に応用可能であり、高信頼性及び高可用性を実現する。一実施形態に係る冗長化システム１をソフトウェアプラットフォームとして実現することで、高信頼性及び高可用性が求められる様々なソフトウェアに応用可能である。例えば、一実施形態に係る冗長化システム１は、プロセス制御システムのコントローラ及びＰＣプラットフォーム上で動作するサーバソフトウェアに応用可能である。より具体的には、一実施形態に係る冗長化システム１は、プロセス制御システムにおけるＳＣＡＤＡシステム、プラント情報管理システム、ＯＰＣサーバ等を含む通信ゲートウェイシステム、及び運転効率向上支援システムに応用可能である。例えば、一実施形態に係る冗長化システム１は、ＩＴシステムをはじめとした連続稼働が重要なコンピュータシステム全般に応用可能である。
【符号の説明】
【０１２６】
１      冗長化システム
１０    情報処理装置
１０ａ  第１情報処理装置
１０ｂ  第２情報処理装置
１０ｃ  第３情報処理装置
１０ｄ  第４情報処理装置
１１、１１ａ、１１ｂ、１１ｃ  通信部
１２、１２ａ、１２ｂ、１２ｃ  記憶部
１３、１３ａ、１３ｂ、１３ｃ  制御部
１３１  冗長化管理部
１３２  仮想化等値化部
１３３  ミラードディスク管理部
１３４  診断部
１３５  等値化バス診断部
２０    管理用情報処理装置
３０    ネットワーク
ＶＭ１、ＶＭ２、ＶＭ３、ＶＭ４、ＶＭ５、ＶＭ６  仮想環境
【図１】
2020042526.tif 000004
【図２】
2020042526.tif 000005
【図３】
2020042526.tif 000006
【図４】
2020042526.tif 000007
【図５】
2020042526.tif 000008
【図６】
2020042526.tif 000009
【図７】
2020042526.tif 000010
【図８】
2020042526.tif 000011
【図９】
2020042526.tif 000012
【図１０】
2020042526.tif 000013
【図１１】
2020042526.tif 000014