(57)【要約】【課題】二重化運転状態が維持できる範囲を広げた二重化運転システムを提供する。【解決手段】複数の仮想マシンが搭載された複数の汎用装置１１，１２，１３と、仮想マシンの稼働系と待機系の二系統による二重化運転を制御する仮想マシン制御装置２０とで構成される二重化運転システムであって、仮想マシン制御装置２０は、稼働系の故障を検出した場合に、該稼働系の仮想マシンを停止させ、該停止させた稼働系に対応する待機系の仮想マシンを稼働させ、該停止させた仮想マシンのハードウェアの上に該稼働させた仮想マシンの待機系を再設定し、該再設定した待機系の仮想マシンに故障が検出された場合に、稼働系の仮想マシンを停止させた汎用装置１１と異なる汎用装置１３に故障した仮想マシンの待機系を再設定させる。【選択図】図１
2020135101.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンが搭載された複数の汎用装置と、仮想マシンの稼働系と待機系の二系統による二重化運転を制御する仮想マシン制御装置とで構成される二重化運転システムであって、
前記仮想マシン制御装置は、
前記稼働系の故障を検出した場合に、該稼働系の仮想マシンを停止させ、該停止させた前記稼働系に対応する前記待機系の仮想マシンを稼働させ、該停止させた仮想マシンのハードウェアの上に該稼働させた仮想マシンの前記待機系を再設定し、該再設定した前記待機系の仮想マシンに故障が検出された場合に、前記稼働系の仮想マシンを前記停止させた汎用装置と異なる汎用装置に故障した仮想マシンの前記待機系を再設定させる
ことを特徴とする二重化運転システム。
【請求項２】
前記仮想マシン制御装置は、
前記汎用装置において、所定期間内に、所定台数以上の仮想マシンのフェーズ0.5以上の再開が生じた場合又は所定台数以上の仮想マシンの故障を検出した場合に当該汎用装置に搭載された仮想マシンを他の汎用装置に再設定させる
ことを特徴とする請求項１に記載の二重化運転システム。
【請求項３】
複数の仮想マシンが搭載された複数の汎用装置と、仮想マシンの稼働系と待機系の二系統による二重化運転を制御する仮想マシン制御装置とで構成される二重化運転システムの前記仮想マシン制御装置が実行する二重化運転方法であって、
前記仮想マシン制御装置は、
前記稼働系の故障を検出した場合に、該稼働系の仮想マシンを停止させ、該停止させた前記稼働系に対応する前記待機系の仮想マシンを稼働させ、該停止させた仮想マシンのハードウェアの上に該稼働させた仮想マシンの前記待機系を再設定し、該再設定した前記待機系の仮想マシンに故障が検出された場合に、前記稼働系の仮想マシンを前記停止させた汎用装置と異なる汎用装置に故障した仮想マシンの前記待機系を再設定させる仮想マシン制御ステップを
行うことを特徴とする二重化運転方法。
【請求項４】
前記仮想マシン制御ステップは、
前記汎用装置において、所定期間内に、所定台数以上の仮想マシンのフェーズ0.5以上の再開が生じた場合又は所定台数以上の仮想マシンの故障を検出した場合に当該汎用装置に搭載された仮想マシンを他の汎用装置に再設定させる
ことを特徴とする請求項３に記載の二重化運転方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可用性の高いネットワークシステムを提供できる技術に関する。
【背景技術】
【０００２】
サービスを提供するネットワークシステムは、サービス提供の信頼性を確保する目的でサーバを稼働系と待機系の二系統に二重化している。つまり、稼働系（ＡＣＴ）で故障を検出した場合は、待機系（ＳＢＹ）に切り替えることでサービスの提供が中断しないようにして可用性を高めている。可用性とは、システムが継続して稼働できる能力のことである。
【０００３】
そのような二重化運転システムは、例えば非特許文献１に開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】［平成３１年２月５日検索］、黒川章、他３名「次世代ネットワーク（ＮＧＮ）を支えるネットワーク基盤技術」、インターネット＜URL: https://www.jstage.jst.go.jp/article/bplus/2010/13/2010_13_13_10/_pdf/-char/ja＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の二重化運転は、待機系で故障が検出された場合は切り替えが発生せず故障を検出した仮想マシンを停止させる規定となっている。よって、二重化運転状態が崩れ一重化運転状態になってしまう。二重化運転状態に復旧させるためには保守者による作業を必要としていた。
【０００６】
つまり、二重化運転状態を維持できる範囲が狭くサービス提供の可用性を低下させてしまうという課題がある。
【０００７】
本発明は、この課題に鑑みてなされたものであり、二重化運転状態を維持できる範囲を広げた二重化運転システム及びその方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る二重化運転システムは、複数の仮想マシンが搭載された複数の汎用装置と、仮想マシンの稼働系と待機系の二系統による二重化運転を制御する仮想マシン制御装置とで構成される二重化運転システムであって、前記仮想マシン制御装置は、前記稼働系の故障を検出した場合に、該稼働系の仮想マシンを停止させ、該停止させた前記稼働系に対応する前記待機系の仮想マシンを稼働させ、該停止させた仮想マシンのハードウェアの上に該稼働させた仮想マシンの前記待機系を再設定し、該再設定した前記待機系の仮想マシンに故障が検出された場合に、前記稼働系の仮想マシンを前記停止させた汎用装置と異なる汎用装置に故障した仮想マシンの前記待機系を再設定させることを要旨とする。
【０００９】
また、本発明の一態様に係る二重化運転方向は、上記の仮想マシン制御装置が実行する二重化運転方法であって、前記仮想マシン制御装置は、前記稼働系の故障を検出した場合に、該稼働系の仮想マシンを停止させ、該停止させた前記稼働系に対応する前記待機系の仮想マシンを稼働させ、該停止させた仮想マシンのハードウェアの上に該稼働させた仮想マシンの前記待機系を再設定し、該再設定した前記待機系の仮想マシンに故障が検出された場合に、前記稼働系の仮想マシンを前記停止させた汎用装置と異なる汎用装置に故障した仮想マシンの前記待機系を再設定させる仮想マシン制御ステップを行うことを要旨とする。
【発明の効果】
【００１０】
本発明によれば、二重化運転状態を維持できる範囲を広げた二重化運転システム及びその方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る二重化運転システムの構成例を示すブロック図である。
【図２】図１に示す二重化運転システムの概略の処理手順を示すフローチャートである。
【図３】図１に示す二重化運転システムが行う処理内容を模式的に示す図である。
【図４】本発明の第２実施形態に係る二重化運転システムの概略の一部の処理手順を示すフローチャートである。
【図５】本実施形態を比較例と対比した結果を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を用いて説明する。複数の図面中同一のものに
は同じ参照符号を付し、説明は繰り返さない。
【００１３】
〔第１実施形態〕
図１は、本発明の第１実施形態に係る二重化運転システムの構成例を示すブロック図である。図２は、図１に示す二重化運転システム１００の概略の処理手順を示すフローチャートである。
【００１４】
二重化運転システム１００は、複数の汎用装置１１，１２，１３と、仮想マシン制御装置２０とで構成される。複数の汎用装置１１，１２，１３のそれぞれには、2台（Ａ，Ｂ，…）以上の複数の仮想マシン（ＶＭ）が搭載される。仮想マシン制御装置２０は、仮想マシンの稼働系（ＡＣＴ）と待機系（ＳＢＹ）の二系統による二重化運転を制御する。
【００１５】
なお、汎用装置は3台以上を備えても良い。以降の説明において、汎用装置を特定する必要が無い場合、汎用装置１１と表記することにする。また、仮想マシンの種別を、ＡＣＴ，ＳＢＹ，及びアルファベットで表記する。例えば、仮想マシンＡ（ＡＣＴ）は、稼働系の仮想マシンＡを意味する。また、図１に示すＨＷ（1）はハードウェアを意味する。またＨＶは、複数の仮想マシンＡ，Ｂ，…を並列して稼働させるためのハイパーバイザである。
【００１６】
汎用装置１１及び仮想マシン制御装置２０は、例えば、ＲＯＭ、ＲＡＭ、ＣＰＵ等からなるコンピュータで実現することができる。その場合、汎用装置１１及び仮想マシン制御装置２０が有すべき機能の処理内容はプログラムによって記述される。このことは、後述する他の実施形態でも同じである。
【００１７】
図１と２を参照して二重化運転システム１００の動作を説明する。仮想マシン制御装置２０は、動作を開始すると稼働系の仮想マシン（ＡＣＴ）の故障を検出する（ステップＳ１）。故障の検出は、例えば、プロセスＩＤが正しく更新されているか、ヘルスチェックの応答の有無、及びウオッチドックタイマーのタイムアップ等の何れかで行う。故障の検出は、検出されるまで繰り返される（ステップＳ２のＮＯ）。
【００１８】
仮想マシン制御装置２０は、稼働系の例えば仮想マシンＡ（ＡＣＴ）の故障を検出すると（ステップＳ２のＹＥＳ）、当該稼働系の仮想マシンＡを停止させる。この様子を図３（ａ）に模式的に示す。仮想マシンＡは、（ＡＣＴ）から（ＦＬＴ）に遷移させられる。（ＦＬＴ）は、フォールト（Fault）を意味する。
【００１９】
次に、仮想マシン制御装置２０は、停止させた仮想マシンＡに対応する待機系の仮想マシンＡを稼働させる（ステップＳ３）。この様子を図３（ｂ）に模式的に示す。この例では、汎用装置１２（ＨＷ（2））のＨＶ上にある仮想マシンＡ（ＳＢＹ）が、稼働系に切り替わる（仮想マシンＡ（ＳＢＹ）→（仮想マシンＡ（ＡＣＴ））。
【００２０】
次に、仮想マシン制御装置２０は、故障した稼働系のハードウェアの上に待機系の仮想マシンＡを再設定する（ステップＳ４、）。図３（ｃ）に示すように、汎用装置１１（ＨＷ（1））のＨＶ上に仮想マシンＡ（ＳＢＹ）が再設定されている。
【００２１】
次に、仮想マシン制御装置２０は、再設定した仮想マシン（この例では汎用装置１１に搭載された仮想マシンＡ（ＳＢＹ））が正常であるか否かを判定する（ステップＳ５）。待機系の仮想マシンＡ（ＳＢＹ）であっても稼働直前の状態にあり、正常であるか否かは
ヘルスチェックの応答の有無等、稼働系の故障を検出する場合と同様の方法で行える。
【００２２】
再設定した仮想マシンＡ（ＳＢＹ）が正常（ステップＳ５のＹＥＳ）であれば、稼働系の仮想マシン（ＡＣＴ）の故障を検出する処理に戻る（ステップＳ９のＮＯ）。
【００２３】
再設定した仮想マシンＡ（ＳＢＹ）が異常（図３（ｄ））の場合（ステップＳ５のＮＯ）、仮想マシン制御装置２０は、ステップＳ３及びＳ４で仮想マシンＡ（ＳＢＹ）を再設定した汎用装置１１と異なる汎用装置（例えば汎用装置１３）に待機系の仮想マシンＡ（ＳＢＹ）を再設定する（ステップＳ６）。この様子を図３（ｅ）に模式的に示す。
【００２４】
図３（ｅ）に示すように、一点鎖線で囲った仮想マシンＡ（ＳＢＹ）が汎用装置１３（ＨＷ（3））に再設定されている。汎用装置１３に再設定された仮想マシンＡ（ＳＢＹ）は、正常であるか否か判定される（ステップＳ７）。正常（ステップＳ７のＹＥＳ）であれば、稼働系の仮想マシン（ＡＣＴ）の故障を検出する処理に戻る（ステップＳ１）。
【００２５】
汎用装置１３に再設定された仮想マシンＡ（ＳＢＹ）が異常の場合は、再設定した仮想マシンＡ（ＳＢＹ）が正常と判定されるまで、例えば汎用装置を他の汎用装置に変えてステップＳ６とＳ７の処理を繰り返す（ステップＳ８）。なお、ここでは汎用装置１３に再度、仮想マシンＡ（ＳＢＹ）を再設定しても良い。汎用装置１３に再度設定した仮想マシンＡ（ＳＢＹ）が異常の場合に、例えば汎用装置１４（図示せず）に汎用装置を変えて仮想マシンＡ（ＳＢＹ）を再設定するようにしても良い。
【００２６】
ステップＳ６とＳ７の処理を繰り返すことで、正常な仮想マシンＡ（ＳＢＹ）を何れかの汎用装置に再設定することができる。つまり、二重化運転状態を維持することができる。
【００２７】
以上説明したように本実施形態に係る二重化運転システム１００は、複数の仮想マシンＡ，Ｂ，…が搭載された複数の汎用装置１１〜１３と、仮想マシンの稼働系（ＡＣＴ）と待機系（ＳＢＹ）の二系統による二重化運転を制御する仮想マシン制御装置２０とで構成される二重化運転システムであって、仮想マシン制御装置２０は、稼働系（ＡＣＴ）の故障を検出した場合、当該稼働系（ＡＣＴ）の仮想マシンを停止させ、該停止させた稼働系（ＡＣＴ）に対応する待機系（ＳＢＹ）の仮想マシンを稼働させ、該停止させた仮想マシンのハードウェアの上に待機系（ＳＢＹ）の仮想マシンを再設定し、該再設定した待機系（ＳＢＹ）の仮想マシンに故障が検出された場合に仮想マシンを該停止させた汎用装置１１と異なる汎用装置１３に故障した仮想マシンの待機系（ＳＢＹ）の仮想マシンを再設定させる。これにより、二重化運転状態を維持できる範囲を広げた二重化運転システム１００を提供することができる。また、保守者の介在が必要な作業を削減することができる。
【００２８】
〔第２実施形態〕
図４は、本発明の第２実施形態に係る二重化運転システムの概略の処理手順を示すフローチャートである。図４に示す処理手順を実行する二重化運転システム２００（図示せず）は、1台の汎用装置に搭載された複数の仮想マシンの状態から、ハードウェア故障の疑いを検知し、そのハードウェア上の仮想マシンを他の汎用装置に再設定するようにしたものである。
【００２９】
二重化運転システム２００を構成する仮想マシン制御装置２２（図示せず）は、何れかの汎用装置１１において、所定期間内に所定台数以上の仮想マシンの所定のレベルの再開が生じた場合、又は所定台数以上の仮想マシンの故障（異常）を検出した場合に当該汎用装置１１に搭載された仮想マシンを他の例えば汎用装置１５（図示せず）に再設定させる。
【００３０】
所定のレベルの再開とは、例えばフェーズ0.5以上の再開のことである。フェーズ0.5の再開とは、個別のプロセスリセットを意味する。よって、所定期間内に例えばフェーズ0.5の再開が例えば汎用装置１１において、1台の仮想マシンが3回故障した場合又は3台の仮想マシンがそれぞれ故障した場合に、その故障（異常）を検出した汎用装置１１に搭載された仮想マシンを他の例えば汎用装置１５に再設定させる。
【００３１】
仮想マシンを他の汎用装置１５に再設定させる条件は、3回のフェーズ0.5の再開に限られない。表１は、仮想マシンを他の汎用装置１５に再設定させる条件の例を示す。
【００３２】
【表１】
2020135101.tif 000003
【００３３】
ここでｍ１〜ｍ６はそれぞれ任意の整数である。ｍ６は故障によって停止（ＦＬＴ）させられた仮想マシンの数である。フェーズ再開の数値が大きくなるに従ってリセットされるプロセスの範囲は大きくなる関係にある。例えばフェーズ1.0は、全てのアプリケーションのプロセスリセットと、稼働系と待機系の切り替えを行う再開である。このように仮想マシンを他の汎用装置１５に再設定させる条件はいくつも考えられる。
【００３４】
図４を参照して本実施形態の二重化運転システム２００の動作を詳しく説明する。仮想マシン制御装置２２は、上記の実施形態の処理に加えて、所定期間内に同じ汎用装置１１の上の複数の仮想マシンのフェーズ0.5以上の再開が生じた場合、又は同じ汎用装置１１の上の複数の仮想マシンが故障した場合を検出する（ステップＳ１０）。ここで、所定期間とは例えば10分間といった時間間隔であり、複数とは例えば3台といった台数である。
【００３５】
所定期間内に複数の故障を検出した場合（ステップＳ１１）、その汎用装置１１の上で稼働（ＡＣＴ）中の仮想マシンがあるか否か判定する（ステップＳ１２）。稼働（ＡＣＴ）中の仮想マシンがある場合、汎用装置１１の上の稼働（ＡＣＴ）中の仮想マシンを停止させる。そして、他の汎用装置（例えば汎用装置１２）その停止させた仮想マシンに対応する待機系（ＳＢＹ）の仮想マシンが在れば、その仮想マシンを起動させる（ステップＳ１３）。
【００３６】
次に、仮想マシン制御装置２２は、複数の故障を検出した汎用装置１１と異なる汎用装置（例えば汎用装置１２）に、ステップＳ１３で起動させた仮想マシンに対応する待機系（ＳＢＹ）の仮想マシンを再設定する（ステップＳ１４）。
【００３７】
そして、そもそも複数の故障を検出した汎用装置１１の上で待機系（ＳＢＹ）であった仮想マシンを他の汎用装置（汎用装置１１以外）に再設定させる（ステップＳ１５）。また、その汎用装置１１の上で稼働（ＡＣＴ）中の仮想マシンがない場合（ステップＳ１２のＮＯ）は、汎用装置１１の上の仮想マシンは他の汎用装置（汎用装置１１以外）に再設定させる（ステップＳ１６）。
【００３８】
このように、所定期間の間に1台の例えば汎用装置１１において複数の故障が検出された場合、その汎用装置１１の上の仮想マシンは他の汎用装置（汎用装置１１以外）に退避させられる。
【００３９】
以上説明したように本実施形態に係る仮想マシン制御装置２２は、汎用装置において、所定期間内に、所定台数以上の仮想マシンのフェーズ0.5以上の再開が生じた場合又は所定台数以上の仮想マシンの故障を検出した場合に当該汎用装置に搭載された仮想マシンを他の汎用装置に再設定させる。これにより、故障が疑われるハードウェア（汎用装置）上の全ての仮想マシンを先んじて退避させることで、サービスの提供が不安定になる時間を短くすることができる。つまり、二重化運転システムの信頼性を向上させることができる。
【００４０】
（比較例との対比）
図５は、比較例の二重化運転システムと本実施形態に係る二重化運転システムを対比した結果を示す図である。図５の左から1列目はフェーズ再開のレベル、2列目の稼働系は比較例、3列目の待機系は比較例、４列目の待機系は本実施形態をそれぞれ示す。エスカレ先とは、再開エスカレーションのことであり、1行目のＰＨ0.5の稼働系の再開は、フェーズ0.5の再開を実行する事を意味する。その右隣のＰＨ1.0は、フェーズ0.5の再開を実行して再開しない場合は、次にフェーズ1.0の再開を実行することを意味している。
【００４１】
1行目のＰＨ0.5の待機系の再開は、フェーズ0.5の再開を実行して再開しない場合は保守者による作業が必要であることを表している。図５に示すように、比較例の待機系の仮想マシンは、フェーズ0.5の再開を実行して再開しない場合は、全て保守者による作業が必要であることを表している。
【００４２】
この比較例に対して本実施形態を組み込んだ待機系は、何れのレベルの再開を実行した場合でも他の汎用装置の上に仮想マシンが再設定されることを表している。このように、本実施形態に係る二重化運転システムによれば二重化運転状態を維持できる範囲を広げることができる。また、保守者の介在が必要な作業を削減することができる。
【００４３】
以上説明したように本実施形態に係る二重化運転システム１００，２００によれば、二重化運転状態を維持できる範囲を広げた二重化運転システム及びその方法を提供することができる。
【００４４】
本発明はここでは記載していない様々な実施形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【００４５】
１００，２００：二重化運転システム
１１，１２，１３：汎用装置
２０，２２：仮想マシン制御装置
ＶＭ：仮想マシン
ＨＶ：ハイパーバイザ
ＡＣＴ：稼働系
ＳＢＹ：待機系
【図１】
2020135101.tif 000004
【図２】
2020135101.tif 000005
【図３】
2020135101.tif 000006
【図４】
2020135101.tif 000007
【図５】
2020135101.tif 000008