(57)【要約】【課題】同期用ネットワークの帯域競合を防止することができる。【解決手段】プライマリ仮想マシン及びセカンダリ仮想マシンにより冗長化された仮想マシンが動作する物理サーバのクラスタ構成を管理する管理サーバと接続される制御装置であって、ユーザトラフィック量から、前記プライマリ仮想マシンと、前記セカンダリ仮想マシンとの間の同期トラフィック量を算出する第１の算出部と、前記第１の算出部により算出された前記同期トラフィック量から、前記クラスタ毎の前記同期トラフィック量の合計を示す同期トラフィック総量を算出する第２の算出部と、前記第２の算出部により算出された前記同期トラフィック総量が、所定の閾値を超えているか否かを判定する判定部と、前記判定部により前記同期トラフィック総量が前記閾値を超えていると判定された場合、該同期トラフィック総量に対応するクラスタの分割指示を前記管理サーバに通知する通知部と、を有する。【選択図】図５
2018133005.tif 000002
【特許請求の範囲】
【請求項１】
プライマリ仮想マシン及びセカンダリ仮想マシンにより冗長化された仮想マシンが動作する物理サーバのクラスタ構成を管理する管理サーバと接続される制御装置であって、
前記仮想マシンに入力されるユーザトラフィック量から、前記プライマリ仮想マシンと、前記セカンダリ仮想マシンとの間の同期トラフィック量を算出する第１の算出部と、
前記第１の算出部により算出された前記同期トラフィック量から、前記クラスタ毎の前記同期トラフィック量の合計を示す同期トラフィック総量を算出する第２の算出部と、
前記第２の算出部により算出された前記同期トラフィック総量が、所定の閾値を超えているか否かを判定する第１の判定部と、
前記第１の判定部により前記同期トラフィック総量が前記閾値を超えていると判定された場合、該同期トラフィック総量に対応するクラスタの分割指示を前記管理サーバに通知する通知部と、
を有する制御装置。
【請求項２】
前記通知部は、
前記第２の算出部により算出された前記同期トラフィック総量が前記閾値を超えていると判定された場合、前記同期トラフィック総量に対応するクラスタを第１のクラスタと第２のクラスタに分割した場合に、該第１のクラスタにおける前記同期トラフィック量の合計と、前記第２のクラスタにおける前記同期トラフィック量の合計とが最も近くなるような前記分割を決定し、決定した分割を行うための分割指示を前記管理サーバに通知する、請求項１に記載の制御装置。
【請求項３】
前記第１の判定部により前記同期トラフィック総量が前記閾値を超えていると判定された場合、該同期トラフィック総量に対応するクラスタの分割により、前記プライマリ仮想マシンが動作する第１の物理サーバと、前記セカンダリ仮想マシンが動作する第２の物理サーバとが異なるクラスタになるか否かを判定する第２の判定部を有し、
前記通知部は、
前記第２の判定部により前記第１の物理サーバと前記第２の物理サーバとが異なるクラスタになると判定された場合、前記分割後のクラスタにおいて、前記セカンダリ仮想マシンを、前記第１の物理サーバと同一のクラスタ内の物理サーバに再配置させるための再配置指示を前記管理サーバに通知する、請求項１又は２に記載の制御装置。
【請求項４】
前記第１の算出部により算出された前記同期トラフィック量から、前記クラスタ構成に含まれる複数のクラスタのうち、２つのクラスタを統合した場合における該統合後のクラスタの前記同期トラフィック量の合計を示す統合後同期トラフィック総量を算出する第３の算出部と、
前記第３の算出部により算出された前記統合後同期トラフィック総量が前記閾値以下であるか否かを判定する第３の判定部と、を有し、
前記通知部は、
前記第３の判定部により前記統合後同期トラフィック総量が前記閾値以下である判定された場合、該統合後同期トラフィック総量に対応する２つのクラスタの統合指示を前記管理サーバに通知する、請求項１乃至３の何れか一項に記載の制御装置。
【請求項５】
プライマリ仮想マシン及びセカンダリ仮想マシンにより冗長化された仮想マシンが動作する物理サーバのクラスタ構成を管理する管理サーバと接続される制御装置に用いられる制御方法であって、
前記仮想マシンに入力されるユーザトラフィック量から、前記プライマリ仮想マシンと、前記セカンダリ仮想マシンとの間の同期トラフィック量を算出する第１の算出手順と、
前記第１の算出手順により算出された前記同期トラフィック量から、前記クラスタ毎の前記同期トラフィック量の合計を示す同期トラフィック総量を算出する第２の算出手順と、
前記第２の算出手順により算出された前記同期トラフィック総量が、所定の閾値を超えているか否かを判定する第１の判定手順と、
前記第１の判定手順により前記同期トラフィック総量が前記閾値を超えていると判定された場合、該同期トラフィック総量に対応するクラスタの分割指示を前記管理サーバに通知する通知手順と、
を有する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び制御方法に関する。
【背景技術】
【０００２】
仮想マシン（ＶＭ：Virtual Machine）が動作する物理サーバが障害等によりダウンした場合、別の物理サーバで当該ＶＭを動作させるＶＭ冗長化技術が知られている（非特許文献１）。
【０００３】
このようなＶＭ冗長化技術として、クラスタを構成する複数の物理サーバのうち、プライマリＶＭが動作する物理サーバ以外の他の物理サーバ上にセカンダリＶＭを作成して、プライマリＶＭとセカンダリＶＭとの間で処理を同期させる技術が知られている。これにより、プライマリＶＭが動作する物理サーバに障害等が発生した場合、セカンダリＶＭに切り替えることで、ＶＭの動作を継続させることができる。切り替え後は、当該セカンダリＶＭがプライマリＶＭとして動作すると共に、同一クラスタ内の他の物理サーバ上にセカンダリＶＭが作成され、再びＶＭの冗長化が図られる。
【０００４】
ここで、各種のインプット情報（例えば、パケットデータ、キーボード入力データ等）がプライマリＶＭに入力された場合、同期用ネットワークを介して、当該インプット情報と同一の情報（以降、「同期トラフィック」と表す。）がセカンダリＶＭに送信される。そして、プライマリＶＭとセカンダリＶＭとでインプット情報に対して同一の処理が実行される。
【０００５】
このとき、同期確認のため、セカンダリＶＭは、同期トラフィックの到達確認応答をプライマリＶＭに対して送信する。また、プライマリＶＭは、当該到達確認応答を受信してからインプット情報に対する処理を実行する。これにより、プライマリＶＭとセカンダリＶＭとの間で確実な同期が図られている。なお、セカンダリＶＭで実行された処理の出力はハイパーバイザで削除される。以降では、一例として、ＶＭに対するインプット情報は、ＶＭが処理するパケットデータ（以降、「ユーザトラフィック」と表す。）であるものとして説明する。また、簡単のため、ユーザトラフィック量と、同期トラフィック量とは等しいものとして説明する。
【０００６】
しかしながら、複数の物理サーバで構成されるクラスタ内で複数のプライマリＶＭが動作し、かつ、それぞれのプライマリＶＭがセカンダリＶＭで冗長化されている場合、セカンダリＶＭの位置によっては同期用ネットワークで帯域競合が発生する場合があった。
【０００７】
例えば、図１に示すように、物理サーバ＃１〜物理サーバ＃６で構成されるクラスタにおいて、プライマリＶＭ＃１が物理サーバ＃１、プライマリＶＭ＃２が物理サーバ＃５、セカンダリＶＭ＃１及びセカンダリＶＭ＃２が物理サーバ＃３で動作しているものとする。また、各物理サーバ＃１〜＃６は、スイッチを介して、通信帯域が１０Ｇｂｐｓの同期用ネットワークで接続されているものとする。
【０００８】
このとき、例えば、８ＧｂｐｓのユーザトラフィックがプライマリＶＭ＃１に入力された場合、プライマリＶＭ＃１からセカンダリＶＭ＃１への８Ｇｂｐｓの同期トラフィックが発生する。同様に、例えば、１０ＧｂｐｓのユーザトラフィックがプライマリＶＭ＃２に入力された場合、プライマリＶＭ＃２からセカンダリＶＭ＃２への１０Ｇｂｐｓの同期トラフィックが発生する。したがって、この場合、スイッチと物理サーバ＃３との間の同期用ネットワーク上で帯域競合が発生することがある。
【０００９】
このような帯域競合が発生した場合、セカンダリＶＭからプライマリＶＭへの到達確認応答が遅れ、プライマリＶＭの処理遅延が発生する等の問題があった。これに対して、ＶＭライブマイグレーションによりセカンダリＶＭを別の物理サーバに移動することで、同期用ネットワークの帯域競合を回避できることが知られている。
【００１０】
例えば、図２に示すように、ＶＭライブマイグレーションにより、セカンダリＶＭ＃２を物理サーバ＃３から物理サーバ＃４に移動させることで、同期用ネットワークにおける帯域競合を回避することができる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】"VMware vSphere FT", [online], [2016年12月19日検索], インターネット＜ＵＲＬ：http://blogs.vmware.com/jp-cim/2014/02/ha-ft.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、例えば、物理サーバに障害等が発生した場合や新たなＶＭ（プライマリＶＭ）が作成された場合に、新たなセカンダリＶＭが作成されると、再び帯域競合が発生することがある。例えば、図２に示したＶＭライブマイグレーションが行われた後、物理サーバ＃２に障害等が発生したものとする。この場合、プライマリＶＭ＃１からセカンダリＶＭ＃１に動作が切り替わり、物理サーバ＃３のセカンダリＶＭ＃１がプライマリＶＭ＃１として動作するようになる。このとき、当該プライマリＶＭ＃１の冗長化のため、セカンダリＶＭ＃１が作成されるが、図３に示すように、物理サーバ＃４上にセカンダリＶＭ＃１が作成された場合、スイッチと物理サーバ＃４との間の同期用ネットワーク上で再び帯域競合が発生する可能性がある。
【００１３】
本発明は、上記の点に鑑みてなされたものであって、同期用ネットワークの帯域競合を防止することを目的とする。
【課題を解決するための手段】
【００１４】
そこで、上記課題を解決するため、プライマリ仮想マシン及びセカンダリ仮想マシンにより冗長化された仮想マシンが動作する物理サーバのクラスタ構成を管理する管理サーバと接続される制御装置であって、前記仮想マシンに入力されるユーザトラフィック量から、前記プライマリ仮想マシンと、前記セカンダリ仮想マシンとの間の同期トラフィック量を算出する第１の算出部と、前記第１の算出部により算出された前記同期トラフィック量から、前記クラスタ毎の前記同期トラフィック量の合計を示す同期トラフィック総量を算出する第２の算出部と、前記第２の算出部により算出された前記同期トラフィック総量が、所定の閾値を超えているか否かを判定する第１の判定部と、前記第１の判定部により前記同期トラフィック総量が前記閾値を超えていると判定された場合、該同期トラフィック総量に対応するクラスタの分割指示を前記管理サーバに通知する通知部と、を有する。
【発明の効果】
【００１５】
同期用ネットワークの帯域競合を防止することができる。
【図面の簡単な説明】
【００１６】
【図１】同期トラフィックの帯域競合を説明する図である。
【図２】ＶＭライブマイグレーションによる帯域競合の回避を説明する図である。
【図３】物理サーバの故障により再び帯域競合が発生する場合を説明する図である。
【図４】本発明の実施の形態におけるシステムの全体構成の一例を示す図である。
【図５】クラスタ再構成及びセカンダリＶＭの再配置の概要を説明する図である。
【図６】本発明の実施の形態におけるＶＭ冗長構成管理装置のハードウェア構成の一例を示す図である。
【図７】本発明の実施の形態におけるＶＭ冗長構成管理装置の機能構成の一例を示す図である。
【図８】本発明の実施の形態におけるユーザトラフィック量監視部が実行する処理の一例を示すフローチャートである。
【図９】本発明の実施の形態における同期トラフィック量算出部が実行する処理の一例を示すフローチャートである。
【図１０】本発明の実施の形態におけるクラスタ構成算出部が実行する処理の一例を示すフローチャートである。
【図１１】クラスタ分割の一例を説明する図である。
【図１２】本発明の実施の形態における通知部が実行する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１８】
＜全体構成＞
まず、本発明の実施の形態におけるシステムの全体構成について、図４を参照しながら説明する。図４は、本発明の実施の形態におけるシステムの全体構成の一例を示す図である。
【００１９】
図４に示すように、本発明の実施の形態におけるシステムは、ＶＭ冗長構成管理装置１０と、ＶＭ管理サーバ２０とが含まれる。ＶＭ冗長構成管理装置１０と、ＶＭ管理サーバ２０とは、例えばＬＡＮ（Local Area Network）等の管理用ネットワークを介して通信可能に接続されている。
【００２０】
ＶＭ管理サーバ２０は、各物理サーバ＃１〜＃６上のプライマリＶＭ及びセカンダリＶＭを管理する１以上のコンピュータである。ＶＭ管理サーバ２０は、管理用ネットワークを介して各物理サーバ＃１〜＃６と接続されている。
【００２１】
ＶＭ管理サーバ２０は、例えば、ＶＭのデプロイやリソース管理、物理サーバのクラスタリング等の種々の機能を有する。ＶＭ管理サーバ２０は、ＶＭ冗長構成管理装置１０からの要求に応じて、各物理サーバ＃１〜＃６上の各プライマリＶＭに入力されたユーザトラフィックのデータ量（以下、「ユーザトラフィック量」と表す。）の取得やＶＭライブマイグレーション、クラスタの再構成（クラスタの分割や統合等）等を行う。
【００２２】
各物理サーバ＃１〜＃６は、スイッチを介して、例えばＬＡＮ等の同期用ネットワークで接続されている。
【００２３】
なお、図４に示す例では、物理サーバが６台で構成されているが、これに限られない。物理サーバは任意の台数で構成されていても良い。また、図４に示す例では、物理サーバ＃１〜＃６上に、冗長化された５つのＶＭ（プライマリＶＭ＃１〜＃５及びセカンダリＶＭ＃１〜＃５）が作成されているが、これに限られない。任意の台数の物理サーバ上に、任意の数のＶＭが作成されていても良い。
【００２４】
ＶＭ冗長構成管理装置１０は、同一クラスタ内の同期トラフィックのデータ量（以下、「同期トラフィック量」と表す。）の合計に応じて、クラスタの再構成やセカンダリＶＭの再配置を制御する１以上のコンピュータである。
【００２５】
ＶＭ冗長構成管理装置１０は、各物理サーバ＃１〜＃６上の各プライマリＶＭに入力されるユーザトラフィック量を監視することで、同一クラスタ内の同期トラフィック量の合計を算出する。そして、ＶＭ冗長構成管理装置１０は、算出した同期トラフィック量の合計に応じて、クラスタ構成を決定する。その後、ＶＭ冗長構成管理装置１０は、決定したクラスタ構成に応じて、セカンダリＶＭの再配置指示をＶＭ管理サーバ２０に通知した上で、クラスタ構成の変更指示をＶＭ管理サーバ２０に通知することで、クラスタの再構成やセカンダリＶＭの再配置を制御する。
【００２６】
なお、図４に示す例では、ＶＭ冗長構成管理装置１０と、ＶＭ管理サーバ２０とが別体で構成されているが、これに限られず、ＶＭ冗長構成管理装置１０と、ＶＭ管理サーバ２０とが一体で構成されていても良い。例えば、ＶＭ管理サーバ２０が、ＶＭ冗長構成管理装置１０が実現する各種機能（ＶＭ冗長構成管理機能）を有していても良い。
【００２７】
＜クラスタ再構成及びセカンダリＶＭの再配置の概要＞
ここで、クラスタ再構成及びセカンダリＶＭの再配置の概要について、図５を参照しながら説明する。図５は、クラスタ再構成及びセカンダリＶＭの再配置の概要を説明する図である。
【００２８】
ＶＭ冗長構成管理装置１０は、各物理サーバ＃１〜＃６上の各プライマリＶＭに入力されるユーザトラフィック量を監視することで、クラスタ＃１内の同期トラフィック量の合計を算出する（Ｓ１）。同期トラフィック量は、ＶＭ冗長構成管理装置１０がＶＭ管理サーバ２０から各プライマリＶＭのユーザトラフィック量を取得することで算出することができる。
【００２９】
ＶＭ冗長構成管理装置１０は、算出した同期トラフィック量の合計が所定の閾値を超過した場合（Ｓ２）、必要に応じてセカンダリＶＭの再配置を行った上で、クラスタ＃１を「クラスタ＃１−１」及び「クラスタ＃１−２」に分割する（Ｓ３）。所定の閾値とは、同期用ネットワークの通信帯域に応じて予め決定される値である。当該閾値は、同期用ネットワーク上の同期トラフィック量の合計が当該閾値以下である場合には同期用ネットワーク上で帯域競合が生じないように決定される。
【００３０】
ここで、セカンダリＶＭの再配置が必要な場合とは、クラスタが分割されることで、プライマリＶＭが作成されている物理サーバと、当該プライマリＶＭに対応するセカンダリＶＭが作成されている物理サーバとが異なるクラスタとなる場合である。言い換えれば、クラスタ分割により、プライマリＶＭと、当該プライマリＶＭに対応するセカンダリＶＭとがクラスタを跨る場合である。
【００３１】
例えば、図５に示す例では、クラスタの分割前は、物理サーバ＃１上にプライマリＶＭ＃３、物理サーバ＃６上にセカンダリＶＭ＃３が作成されている。この場合、クラスタ分割により、プライマリＶＭ＃３と、セカンダリＶＭ＃３とがクラスタを跨ることとなる。したがって、この場合、セカンダリＶＭ＃３は、物理サーバ＃１と同一クラスタ＃１−１内の他の物理サーバ（すなわち、物理サーバ＃２又は物理サーバ＃３）上に再配置される。なお、図５に示す例では、セカンダリＶＭ＃３が物理サーバ＃３上に再配置される場合を示している。
【００３２】
セカンダリＶＭの再配置は、ＶＭ冗長構成管理装置１０がＶＭ管理サーバ２０にセカンダリＶＭの再配置指示を通知することで行うことができる。同様に、クラスタの分割は、ＶＭ冗長構成管理装置１０がＶＭ管理サーバ２０にクラスタ構成の変更指示（クラスタの分割指示）を通知することで行うことができる。
【００３３】
ここで、例えば、物理サーバに障害等が発生して、プライマリＶＭからセカンダリＶＭに動作が切り替わった場合、切り替え後のプライマリＶＭの冗長化のため、ＶＭ管理サーバ２０により、セカンダリＶＭが再作成される。このとき、当該セカンダリＶＭが作成される位置は、切り替え後のプライマリＶＭが動作している物理サーバと同一のクラスタ内の他の物理サーバとなる。したがって、クラスタの分割を行うことで、分割後のクラスタ内で同期トラフィック量が閾値を超える（すなわち、同期用ネットワーク上で帯域競合が発生する）ことを防止することができる。
【００３４】
一方で、分割後のクラスタ＃１−１の同期トラフィック量の合計と、クラスタ＃１−２の同期トラフィック量の合計との和が所定の閾値以下となった場合、ＶＭ冗長構成管理装置１０は、これらのクラスタ＃１−１及びクラスタ＃１−２を統合する（Ｓ４）。クラスタの統合は、ＶＭ冗長構成管理装置１０がＶＭ管理サーバ２０にクラスタ構成の変更指示（クラスタの統合指示）を通知することで行うことができる。
【００３５】
ここで、物理サーバのリソースの有効利用や物理サーバの多重障害への耐性向上等の観点から、可能な限り多くの物理サーバでクラスタを構成することが好ましい。したがって、統合後のクラスタ内の同期トラフィック量の合計が閾値を超えない場合には、クラスタの統合を行うことで、可能な限り多くの物理サーバでクラスタを構成することができる。
【００３６】
＜ハードウェア構成＞
次に、ＶＭ冗長構成管理装置１０のハードウェア構成について、図６を参照しながら説明する。図６は、本発明の実施の形態におけるＶＭ冗長構成管理装置１０のハードウェア構成の一例を示す図である。
【００３７】
図６に示すように、ＶＭ冗長構成管理装置１０は、外部Ｉ／Ｆ１１と、ＲＡＭ（Random Access Memory）１２と、ＲＯＭ（Read Only Memory）１３と、ＣＰＵ（Central Processing Unit）１４と、通信Ｉ／Ｆ１５と、補助記憶装置１６とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【００３８】
外部Ｉ／Ｆ１１は、外部装置とのインタフェースである。外部装置には、記録媒体１１ａ等がある。ＶＭ冗長構成管理装置１０は、外部Ｉ／Ｆ１１を介して記録媒体１１ａ等の読み取りや書き込みを行うことができる。
【００３９】
記録媒体１１ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００４０】
ＲＡＭ１２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ１３は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１３には、例えば、ＯＳ（Operating System）設定やネットワーク設定等が格納されている。
【００４１】
ＣＰＵ１４は、ＲＯＭ１３や補助記憶装置１６等からプログラムやデータをＲＡＭ１２上に読み出して処理を実行する演算装置である。通信Ｉ／Ｆ１５は、ＶＭ冗長構成管理装置１０をネットワークに接続するためのインタフェースである。
【００４２】
補助記憶装置１６は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置１６に格納されているプログラムやデータには、例えば、ＯＳ、当該ＯＳ上において各種機能を実現するアプリケーションソフトウェア、本実施形態における各種処理を実現するプログラム等がある。
【００４３】
なお、ＶＭ冗長構成管理装置１０は、上記の各ハードウェアに加えて、例えば、ディスプレイ等の表示装置と、キーボードやマウス等の入力装置とを有していても良い。
【００４４】
本実施形態に係るＶＭ冗長構成管理装置１０は、図６に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００４５】
＜機能構成＞
次に、本発明の実施の形態におけるＶＭ冗長構成管理装置１０の機能構成について、図７を参照しながら説明する。図７は、本発明の実施の形態におけるＶＭ冗長構成管理装置１０の機能構成の一例を示す図である。
【００４６】
図７に示すように、本発明の実施の形態におけるＶＭ冗長構成管理装置１０は、ユーザトラフィック量監視部１０１と、同期トラフィック量算出部１０２と、クラスタ構成算出部１０３と、通知部１０４とを有する。これら各機能部は、ＶＭ冗長構成管理装置１０にインストールされた１以上のプログラムが、ＣＰＵ１４に実行させる処理により実現される。
【００４７】
また、本発明の実施の形態におけるＶＭ冗長構成管理装置１０は、データ記憶部１０５を有する。当該データ記憶部１０５は、例えばＲＡＭ１２や補助記憶装置１６等の記憶装置を用いて実現可能である。なお、当該データ記憶部１０５は、ＶＭ冗長構成管理装置１０とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
【００４８】
ユーザトラフィック量監視部１０１は、各プライマリＶＭに入力されるユーザトラフィック量を監視して、ユーザトラフィック量をデータ記憶部１０５に保存する。
【００４９】
同期トラフィック量算出部１０２は、データ記憶部１０５に記憶されているユーザトラフィック量から、ＶＭ毎に同期トラフィック量を算出する。また、同期トラフィック量算出部１０２は、算出した同期トラフィック量をデータ記憶部１０５に保存する。
【００５０】
クラスタ構成算出部１０３は、データ記憶部１０５に記憶されている同期トラフィック量から、クラスタの再構成が必要か否かを判定する。すなわち、クラスタ構成算出部１０３は、クラスタ毎に同期トラフィック量の合計を算出して、算出した同期トラフィック量の合計のうち、所定の閾値を超えているものが存在するか否かを判定する。
【００５１】
そして、クラスタ構成算出部１０３は、クラスタの再構成が必要と判定した場合、再構成後のクラスタ構成を示すクラスタ構成情報を作成して、データ記憶部１０５に保存する。このとき、クラスタ構成算出部１０３は、データ記憶部１０５に既に記憶されているクラスタ構成情報を削除した上で、作成したクラスタ構成情報をデータ記憶部１０５に保存する。
【００５２】
通知部１０４は、データ記憶部１０５に記憶されているクラスタ構成情報から、セカンダリＶＭの再配置が必要か否かを判定する。すなわち、クラスタ構成算出部１０３が算出したクラスタの分割により、クラスタを跨ることとなるＶＭ（プライマリＶＭ及びセカンダリＶＭ）が存在するか否かを判定する。
【００５３】
そして、通知部１０４は、セカンダリＶＭの再配置が必要と判定した場合、セカンダリＶＭの再配置指示をＶＭ管理サーバ２０に通知する。セカンダリＶＭの再配置が完了した後、通知部１０４は、クラスタ構成の変更指示をＶＭ管理サーバ２０に通知する。
【００５４】
一方で、通知部１０４は、セカンダリＶＭの再配置が必要でないと判定した場合、クラスタ構成の変更指示をＶＭ管理サーバ２０に通知する。
【００５５】
データ記憶部１０５は、ユーザトラフィック量監視部１０１により保存されたユーザトラフィック量と、同期トラフィック量算出部１０２により保存された同期トラフィック量と、クラスタ構成算出部１０３により保存されたクラスタ構成情報とを記憶する。
【００５６】
＜処理の詳細＞
次に、本発明の実施の形態におけるＶＭ冗長構成管理装置１０の処理の詳細について説明する。
【００５７】
≪ユーザトラフィック量監視部１０１が実行する処理≫
以降では、ユーザトラフィック量監視部１０１が実行する処理について、図８を参照しながら説明する。図８は、本発明の実施の形態におけるユーザトラフィック量監視部１０１が実行する処理の一例を示すフローチャートである。図８に示す処理は、予め決められた所定の時間Ｔ毎に繰り返し実行される。時間Ｔは、例えば、ＶＭ冗長構成管理装置１０の管理者ユーザ等により決定される。
【００５８】
まず、ユーザトラフィック量監視部１０１は、各プライマリＶＭが処理しているユーザトラフィック量をＶＭ管理サーバ２０から取得する（ステップＳ１０１）。以降では、プライマリＶＭの総数をＮとして、プライマリＶＭ＃１が処理しているユーザトラフィックをｕ１，プライマリＶＭ＃２が処理しているユーザトラフィックをｕ２，・・・，プライマリＶＭ＃Ｎが処理しているユーザトラフィックをｕＮとする。
【００５９】
なお、ＶＭ管理サーバ２０は、例えば、各物理サーバのハイパーバイザ上にある仮想スイッチにおけるインタフェースの統計情報からユーザトラフィック量ｕ１，ｕ２，・・・，ｕＮを収集することができる。したがって、ユーザトラフィック量監視部１０１は、このように収集されたユーザトラフィック量ｕ１，ｕ２，・・・，ｕＮをＶＭ管理サーバ２０から取得すれば良い。
【００６０】
次に、ユーザトラフィック量監視部１０１は、取得したユーザトラフィック量ｕ１，ｕ２，・・・，ｕＮをデータ記憶部１０５に保存する（ステップＳ１０２）。
【００６１】
以上により、予め決められた所定の時間Ｔ毎に、各プライマリＶＭのユーザトラフィック量がＶＭ管理サーバ２０から取得され、データ記憶部１０５に保存される。
【００６２】
≪同期トラフィック量算出部１０２が実行する処理≫
以降では、同期トラフィック量算出部１０２が実行する処理について、図９を参照しながら説明する。図９は、本発明の実施の形態における同期トラフィック量算出部１０２が実行する処理の一例を示すフローチャートである。図９に示す処理は、予め決められた所定の時間Ｔ毎に繰り返し実行される。
【００６３】
まず、同期トラフィック量算出部１０２は、各プライマリＶＭのユーザトラフィック量ｕ１，ｕ２，・・・，ｕＮをデータ記憶部１０５から取得する（ステップＳ２０１）。
【００６４】
次に、同期トラフィック量算出部１０２は、ユーザトラフィック量ｕ１，ｕ２，・・・，ｕＮから同期トラフィック量ｓ１，ｓ２，・・・，ｓＮを算出する（ステップＳ２０２）。ｓｉ（１≦ｉ≦Ｎ）は、ユーザトラフィック量ｕｉを処理するプライマリＶＭ＃ｉにおけるセカンダリＶＭ＃ｉへの同期トラフィック量である。
【００６５】
ここで、同期トラフィック量ｓ１，ｓ２，・・・，ｓＮは、各ＶＭについて予め定義された関数ｆｉ（１≦ｉ≦Ｎ）を用いて、ｓ１＝ｆ１（ｕ１），ｓ２＝ｆ２（ｕ２），・・・，ｓＮ＝ｆＮ（ｕＮ）により算出することができる。関数ｆｉ（１≦ｉ≦Ｎ）は、例えば、プライマリＶＭ＃ｉについて、ユーザトラフィック量ｕｉに対する同期トラフィック量ｓｉを測定することで作成される。
【００６６】
次に、同期トラフィック量算出部１０２は、算出した同期トラフィック量ｓ１，ｓ２，・・・，ｓＮをデータ記憶部１０５に保存する（ステップＳ２０３）。
【００６７】
以上により、予め決められた所定の時間Ｔ毎に、プライマリＶＭ毎に、ユーザトラフィック量から同期トラフィック量が算出され、データ記憶部１０５に保存される。
【００６８】
≪クラスタ構成算出部１０３が実行する処理≫
以降では、クラスタ構成算出部１０３が実行する処理について、図１０を参照しながら説明する。図１０は、本発明の実施の形態におけるクラスタ構成算出部１０３が実行する処理の一例を示すフローチャートである。図１０に示す処理は、予め決められた所定の時間Ｔ毎に繰り返し実行される。
【００６９】
まず、クラスタ構成算出部１０３は、各プライマリＶＭから各セカンダリＶＭへの同期トラフィック量ｓ１，ｓ２，・・・，ｓＮをデータ記憶部１０５から取得する（ステップＳ３０１）。
【００７０】
次に、クラスタ構成算出部１０３は、クラスタ毎に、同期トラフィック量の合計を算出する（ステップＳ３０２）。以降では、クラスタ数をＭとして、同期トラフィック量の合計Ｓ１，Ｓ２，・・・，ＳＭが算出されたものとして説明を続ける。
【００７１】
なお、同期トラフィック量の合計Ｓｉ（１≦ｉ≦Ｍ）は、クラスタ＃ｉを構成する各物理サーバ上で動作する各プライマリＶＭから各セカンダリＶＭへの同期トラフィック量の合計を計算することにより算出される。
【００７２】
次に、クラスタ構成算出部１０３は、同期トラフィック量の合計Ｓ１，Ｓ２，・・・，ＳＭの中に、所定の閾値Ｒを超えるものが存在するか否かを判定する（ステップＳ３０３）。所定の閾値Ｒは、例えば、ＶＭ冗長構成管理装置１０の管理者ユーザ等により決定される。
【００７３】
ステップＳ３０３において、同期トラフィック量の合計Ｓ１，Ｓ２，・・・，ＳＭの中に、所定の閾値Ｒを超えるものは存在しないと判定された場合、クラスタ構成算出部１０３は、ステップＳ３０６に進む。このとき、クラスタの分割は行われない。
【００７４】
一方、ステップＳ３０３において、同期トラフィック量の合計Ｓ１，Ｓ２，・・・，ＳＭの中に、所定の閾値Ｒを超えるものが存在すると判定された場合、クラスタ構成算出部１０３は、同期トラフィック量の合計が閾値Ｒを超えると判定されたクラスタを分割したクラスタ構成情報を作成する（ステップＳ３０４）。
【００７５】
例えば、同期トラフィック量の合計Ｓ１，Ｓ２，・・・，ＳＭのうち、Ｓ１とＳ２とが閾値Ｒを超えると判定された場合、クラスタ構成算出部１０３は、Ｓ１に対応するクラスタ＃１と、Ｓ２に対応するクラスタ＃２とを分割したクラスタ構成情報を作成する。
【００７６】
ここで、クラスタ構成算出部１０３は、分割後のクラスタ間で同期トラフィック量の合計ができるだけ近くなるようにクラスタを分割したクラスタ構成情報を作成する。以降では、一例として、クラスタ＃１をクラスタ＃１−１及びクラスタ＃１−２に分割する場合について、図１１を参照しながら説明する。
【００７７】
まず、図１１に示すように、分割前のクラスタ＃１は物理サーバ＃１〜＃６で構成されており、同期トラフィックの合計がＳ１＝８．７Ｇｂｐｓであるものとする。このとき、各物理サーバ＃１〜＃６が同期用ネットワークに送出している同期トラフィック量Ｓ１１〜Ｓ１６を算出する。例えば、Ｓ１１＝５Ｇｂｐｓ，Ｓ１２＝１Ｇｂｐｓ，Ｓ１３＝０．２Ｇｂｐｓ，Ｓ１４＝０Ｇｂｐｓ，Ｓ１５＝０．５Ｇｂｐｓ，Ｓ１６＝２Ｇｂｐｓであったものとする。なお、これらのＳ１１〜Ｓ１６は、同一の物理サーバ上で動作している各プライマリＶＭから各セカンダリＶＭへの同期トラフィック量の合計を計算することで、算出される。
【００７８】
このとき、クラスタ構成算出部１０３は、まず、同期用ネットワークに送出している同期トラフィック量が最も大きい物理サーバをクラスタ＃１−１に、同期用ネットワークに送出している同期トラフィック量が２番目に大きい物理サーバをクラスタ＃１−２に割り当てる。具体的には、Ｓ１１に対応する物理サーバ＃１をクラスタ＃１−１に、Ｓ１６に対応する物理サーバ＃６をクラスタ＃１−２に割り当てる。
【００７９】
次に、クラスタ構成算出部１０３は、同期用ネットワークに送出している同期トラフィック量が３番目に大きい物理サーバを、クラスタ＃１−１及びクラスタ＃１−２のうち、同期トラフィック量の合計が小さい方のクラスタに割り当てると共に、同期用ネットワークに送出している同期トラフィック量が４番目に大きい物理サーバを、残りのクラスタに割り当てる。具体的には、Ｓ１２に対応する物理サーバ＃２をクラスタ＃１−２に割り当てると共に、Ｓ１５に対応する物理サーバ＃５をクラスタ＃１−１に割り当てる。
【００８０】
以降も同様に、同期用ネットワークに送出している同期トラフィック量の中から、降順に２つずつ同期トラフィック量を取得する。そして、取得した２つの同期トラフィック量のうち、値が大きい同期トラフィック量に対応する物理サーバを、分割後のクラスタのうち、同期トラフィック量の合計が小さい方のクラスタに割り当てると共に、残りの同期トラフィック量に対応する物理サーバを残りのクラスタに割り当てる。
【００８１】
これにより、分割後のクラスタ間で同期トラフィック量の合計ができるだけ近くなるようにすることができる。ただし、クラスタ分割は、図１１を参照しながら説明した例に限られない。例えば、２つのクラスタに分割する場合だけでなく、３つ以上の任意の数のクラスタに分割されても良い。また、分割後のクラスタ間で同期トラフィック量の合計ができるだけ近くなるようにする必要も必ずしもなく、例えば、物理サーバ毎に接続されている同期用ネットワークの通信帯域が異なる場合には、当該通信帯域を考慮した分割が行われても良い。
【００８２】
図１０に戻る。ステップＳ３０４に続いて、クラスタ構成算出部１０３は、上記のステップＳ３０４で作成したクラスタ構成情報をデータ記憶部１０５に保存する。また、このとき、クラスタ構成算出部１０３は、データ記憶部１０５に既に記憶されているクラスタ構成情報を削除する（ステップＳ３０５）。言い換えれば、クラスタ構成算出部１０３は、データ記憶部１０５に記憶されているクラスタ構成情報を、上記のステップＳ３０４で作成したクラスタ構成情報に上書き更新する。
【００８３】
これにより、あるクラスタにおける同期トラフィック量の合計が所定の閾値Ｒを超えていた場合、当該クラスタを複数のクラスタに分割させるためのクラスタ構成情報がデータ記憶部１０５に記憶される。
【００８４】
次に、クラスタ構成算出部１０３は、データ記憶部１０５に記憶されているクラスタ構成情報が示すクラスタ構成に含まれるクラスタが１つであるか否かを判定する（ステップＳ３０６）。
【００８５】
ステップＳ３０６において、当該クラスタ構成情報が示すクラスタ構成に含まれるクラスタが１つであると判定された場合、クラスタ構成算出部１０３は、処理を終了する。この場合、クラスタの統合は行われない。
【００８６】
一方、ステップＳ３０６において、当該クラスタ構成情報が示すクラスタ構成に含まれるクラスタが１つでないと判定された場合、クラスタ構成算出部１０３は、当該クラスタ構成情報が示すクラスタ構成に含まれる各クラスタについて、２つのクラスタを統合した場合における同期トラフィック量の合計を算出する（ステップＳ３０７）。
【００８７】
すなわち、例えば、当該クラスタ構成情報が示すクラスタ構成に、クラスタ＃１，クラスタ＃２，・・・，クラスタ＃Ｍが含まれる場合、クラスタ構成算出部１０３は、クラスタ＃Ｋ及びクラスタ＃Ｌ（Ｋ＝１，・・・，Ｍ−１、Ｌ＝Ｋ＋１，・・・，Ｍ）を統合したクラスタの同期トラフィック量の合計ＱＫＬを算出する。言い換えれば、クラスタ構成算出部１０３は、全てのクラスタの組み合わせ毎に、同期トラフィック量の合計を算出する。
【００８８】
次に、クラスタ構成算出部１０３は、上記のステップＳ３０７で算出した同期トラフィック量の合計のうち、所定の閾値Ｒ以下である同期トラフィック量の合計が存在するか否かを判定する（ステップＳ３０８）。
【００８９】
ステップＳ３０８において、所定の閾値Ｒ以下である同期トラフィック量の合計が存在しないと判定された場合、クラスタ構成算出部１０３は、処理を終了する。この場合、クラスタの統合は行われない。
【００９０】
一方、ステップＳ３０８において、所定の閾値Ｒ以下である同期トラフィック量の合計が存在すると判定された場合、クラスタ構成算出部１０３は、同期トラフィック量の合計が閾値以下となるクラスタの組み合わせを統合したクラスタ構成情報を作成する（ステップＳ３０９）。
【００９１】
例えば、上記のステップＳ３０７でＭ＝４である場合、同期トラフィック量の合計Ｑ１１、Ｑ１２、Ｑ１３、Ｑ１４、Ｑ２３、Ｑ２４、及びＱ３４が算出される。このとき、これらＱ１１、Ｑ１２、Ｑ１３、Ｑ１４、Ｑ２３、Ｑ２４、及びＱ３４のうち、例えば、Ｑ１２とＱ３４とが閾値Ｒ以下であった場合、クラスタ構成算出部１０３は、クラスタ＃１及びクラスタ＃２を統合すると共、クラスタ＃３及びクラスタ＃４を統合したクラスタ構成情報を作成する。
【００９２】
なお、あるクラスタ＃Ｋ´について、ＱＫ´Ｌ１及びＱＫ´Ｌ２（ただし、Ｌ１≠Ｌ２）が共に閾値Ｒ以下であった場合、クラスタ構成算出部１０３は、ＱＫ´Ｌ１及びＱＫ´Ｌ２のうち、値が小さい方に対応するクラスタの組み合わせを統合したクラスタ構成情報を作成すれば良い。
【００９３】
次に、クラスタ構成算出部１０３は、上記のステップＳ３０９で作成したクラスタ構成情報をデータ記憶部１０５に保存する。また、このとき、クラスタ構成算出部１０３は、データ記憶部１０５に既に記憶されているクラスタ構成情報を削除する（ステップＳ３１０）。言い換えれば、クラスタ構成算出部１０３は、データ記憶部１０５に記憶されているクラスタ構成情報を、上記のステップＳ３０４で作成したクラスタ構成情報に上書き更新する。
【００９４】
これにより、あるクラスタと、別のあるクラスタとを統合したクラスタの同期トラフィック量の合計が所定の閾値Ｒ以下となる場合、当該あるクラスタと、当該別のあるクラスタとを１つのクラスタに統合させるためのクラスタ構成情報がデータ記憶部１０５に記憶される。
【００９５】
≪通知部１０４が実行する処理≫
以降では、通知部１０４が実行する処理について、図１２を参照しながら説明する。図１２は、本発明の実施の形態における通知部１０４が実行する処理の一例を示すフローチャートである。図１２に示す処理は、予め決められた所定の時間Ｔ毎に繰り返し実行される。
【００９６】
まず、通知部１０４は、クラスタ構成情報をデータ記憶部１０５から取得する（ステップＳ４０１）。
【００９７】
次に、通知部１０４は、上記のステップＳ４０１で取得したクラスタ構成情報が示すクラスタ構成が、現在のクラスタ構成と異なるか否かを判定する（ステップＳ４０２）。通知部１０４は、例えば、ＶＭ管理サーバ２０に問い合わせることで、現在のクラスタ構成を取得することができる。
【００９８】
ステップＳ４０２において、上記のステップＳ４０１で取得したクラスタ構成情報が示すクラスタ構成が、現在のクラスタ構成と同じであると判定された場合、通知部１０４は、処理を終了する。この場合、セカンダリＶＭの再配置やクラスタの再構成は行われない。
【００９９】
一方、ステップＳ４０２において、上記のステップＳ４０１で取得したクラスタ構成情報が示すクラスタ構成が、現在のクラスタ構成と異なると判定された場合、通知部１０４は、上記のステップＳ４０１で取得したクラスタ構成情報が示すクラスタ構成において、クラスタを跨ることとなるＶＭが存在するか否かを判定する（ステップＳ４０３）。
【０１００】
ステップＳ４０３において、クラスタを跨ることとなるＶＭが存在しないと判定された場合、通知部１０４は、ステップＳ４０５に進む。
【０１０１】
一方、ステップＳ４０３において、クラスタを跨ることとなるＶＭが存在すると判定された場合、通知部１０４は、クラスタを跨ることとなるＶＭのセカンダリＶＭの再配置指示をＶＭ管理サーバ２０に通知する（ステップＳ４０４）。このとき、通知部１０４は、上記のステップＳ４０１で取得したクラスタ構成情報が示すクラスタ構成において、プライマリＶＭが作成されている物理サーバと同一クラスタ内の他の物理サーバに当該セカンダリＶＭを再配置する再配置指示をＶＭ管理サーバ２０に通知する。
【０１０２】
これにより、ＶＭ管理サーバ２０により、セカンダリＶＭが、プライマリＶＭと同一クラスタ内の物理サーバに再配置される。なお、セカンダリＶＭの再配置は、例えば、ＶＭライブマイグレーションにより行われる。
【０１０３】
ステップＳ４０４に続いて、又は、ステップＳ４０３において、クラスタを跨ることとなるＶＭが存在しないと判定された場合、通知部１０４は、クラスタ構成の変更指示をＶＭ管理サーバ２０に通知する（ステップＳ４０５）。このとき、通知部１０４は、上記のステップＳ４０１で取得したクラスタ構成情報が示すクラスタ構成への変更指示をＶＭ管理サーバ２０に通知する。これにより、ＶＭ管理サーバ２０により、クラスタの再構成が行われる。
【０１０４】
クラスタ構成算出部１０３により算出されたクラスタ構成（すなわち、クラスタ単位の同期トラフィック量の合計が所定の閾値以下となるようなクラスタ構成）とすることで、各クラスタ内において同期用ネットワーク上で帯域競合が発生する事態を防止することができる。このとき、例えば、プライマリＶＭが動作している物理サーバに障害等が発生して、プライマリＶＭからセカンダリＶＭに切り替わった場合、切り替え後のプライマリＶＭ（切り替え前のセカンダリＶＭ）の冗長化のために再作成されるセカンダリＶＭの位置は同一クラスタ内に制限される。したがって、障害等の発生に伴うフェールオーバーが生じたとしても、同期用ネットワーク上で帯域競合が発生する事態を防止することができる。
【０１０５】
＜まとめ＞
以上のように、本発明の実施の形態におけるＶＭ冗長構成管理装置１０は、クラスタ単位の同期トラフィック量の合計が所定の閾値を超えた場合、クラスタを分割する。これにより、プライマリＶＭが処理するユーザトラフィック量が増加した場合における同期用ネットワーク上の帯域競合を未然に防止することができる。
【０１０６】
また、本発明の実施の形態におけるＶＭ冗長構成管理装置１０は、あるクラスタと別のあるクラスタとを統合した場合の同期トラフィック量の合計が所定の閾値以下となった場合、これらのクラスタを統合する。これにより、ユーザトラフィック量が減少した場合に、クラスタ内の物理サーバ数を増やすことができる。このため、物理サーバのリソースの有効利用や、物理サーバの多重・連続障害時のセカンダリＶＭの作成先となる物理サーバを確保することができる。
【０１０７】
更に、本発明の実施の形態におけるＶＭ冗長構成管理装置１０は、ＶＭ管理サーバ２０に接続するだけで良い。したがって、ＶＭ管理サーバ２０や既存のＶＭ冗長機能等を変更することなく、簡易に帯域競合を防止することができる。
【０１０８】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１０９】
１０        ＶＭ冗長構成管理装置
２０        ＶＭ管理サーバ
１０１      ユーザトラフィック量監視部
１０２      同期トラフィック量算出部
１０３      クラスタ構成算出部
１０４      通知部
１０５      データ記憶部
【図１】
2018133005.tif 000003
【図２】
2018133005.tif 000004
【図３】
2018133005.tif 000005
【図４】
2018133005.tif 000006
【図５】
2018133005.tif 000007
【図６】
2018133005.tif 000008
【図７】
2018133005.tif 000009
【図８】
2018133005.tif 000010
【図９】
2018133005.tif 000011
【図１０】
2018133005.tif 000012
【図１１】
2018133005.tif 000013
【図１２】
2018133005.tif 000014