(57)【要約】【課題】仮想化基盤において、仮想化手法の適用制限に関わりなく、かつ、サービスへの影響を低減して、ホスト（コンピュート）間の負荷の平準化を実現する。【解決手段】負荷平準化装置１０は、各ＶＭ３のコンピュート３０に対する負荷情報を取得し、当該ＶＭ３が配置されているコンピュート３０毎に合計して各コンピュート３０の負荷を算出して各コンピュート３０の負荷の標準偏差を算出し、算出した標準偏差が所定の基準標準偏差より大きい場合に、負荷の偏りが大きいと判定する負荷判定部１１２と、各コンピュート３０の負荷のうち最も高い負荷のコンピュート３０を抽出し、当該コンピュート３０に配置されるＶＭ３を選択し、選択したＶＭ３とペアとなるＶＭ３を特定して系切り替えをするペアのＶＭとして決定するＶＭ配置決定部１１３と、決定したペアのＶＭについて系切り替えする指示情報を出力する切替指示部１１４と、を備える。【選択図】図２
2020071840.tif 000002
【特許請求の範囲】
【請求項１】
ＡＣＴ（Active）／ＳＢＹ（Standby）構成を採用するアプリケーションを、仮想化基盤の異なるコンピュート上に構築されたＶＭ（Virtual Machine）に搭載し、Active ＶＭとStandby ＶＭとのペアのＶＭによる冗長構成とした際に、仮想化基盤と連携動作することで複数の前記コンピュートの負荷平準化を行う負荷平準化装置であって、
前記アプリケーションに対応付けた、前記ペアとなるＶＭそれぞれの識別子を格納する冗長構成管理情報が記憶される記憶部と、
各前記ＶＭの前記コンピュートに対する負荷を示す負荷情報を取得し、前記負荷情報を当該ＶＭが配置されている前記コンピュート毎に合計して各コンピュートの負荷を算出し、算出した各コンピュートの負荷の標準偏差を算出し、算出した標準偏差が所定の基準標準偏差より大きい場合に、前記コンピュート間の負荷の偏りが大きいと判定する負荷判定部と、
前記コンピュート間の負荷の偏りが大きいと判定された場合に、前記算出した各コンピュートの負荷のうち最も高い負荷のコンピュートを抽出し、抽出した当該コンピュートに配置されるＶＭを選択し、前記選択したＶＭとペアとなるＶＭを前記冗長構成管理情報を参照して特定し、前記選択したＶＭと前記特定したそのペアとなるＶＭとを、Active ＶＭとStandby ＶＭとの系切り替えをするペアのＶＭとして決定するＶＭ配置決定部と、
前記決定したペアのＶＭについて系切り替えする指示情報を出力する切替指示部と、
を備えることを特徴とする負荷平準化装置。
【請求項２】
前記ＶＭ配置決定部は、
前記算出した各コンピュートの負荷のうち最も高い負荷のコンピュートを抽出したときに、抽出した当該コンピュートに配置されるＶＭのうち負荷の高い順にＶＭを選択し、前記選択したＶＭとペアとなるＶＭを前記冗長構成管理情報を参照して特定し、前記選択したＶＭとそのペアとなるＶＭとを系切り替えした場合の前記各コンピュートの負荷をシミュレーションし、前記シミュレーションした各コンピュートの負荷の標準偏差が前記所定の基準標準偏差以下になるまで前記抽出したコンピュートに配置されるＶＭの選択を繰り返して、前記系切り替えするペアのＶＭを決定すること、
を特徴とする請求項１に記載の負荷平準化装置。
【請求項３】
前記記憶部には、前記コンピュートに配置されるＶＭを、他のコンピュートにライブマイグレーションした場合にかかる時間を示すライブマイグレーション時間と、過去において前記指示情報に基づき系切り替えした場合にかかった時間を示す系切り替え時間とが記憶されており、
所定期間の前記系切り替え時間の平均値を算出し、算出した前記系切り替え時間の平均値と、前記ライブマイグレーション時間とを比較し、前記ライブマイグレーション時間の方が短ければ、ライブマイグレーションによる負荷平準化機能を有効にする設定情報を出力し、前記系切り替え時間の平均値の方が短ければ、前記ライブマイグレーションによる負荷平準化機能を無効にする設定情報を出力する平準化手法設定部を、さらに備えること
を特徴とする請求項１または請求項２に記載の負荷平準化装置。
【請求項４】
ＡＣＴ（Active）／ＳＢＹ（Standby）構成を採用するアプリケーションを、仮想化基盤の異なるコンピュート上に構築されたＶＭ（Virtual Machine）に搭載し、Active ＶＭとStandby ＶＭとのペアのＶＭによる冗長構成とした際に、仮想化基盤と連携動作することで複数の前記コンピュートの負荷平準化を行う負荷平準化装置の負荷平準化方法であって、
前記負荷平準化装置は、
前記アプリケーションに対応付けた、前記ペアとなるＶＭそれぞれの識別子を格納する冗長構成管理情報が記憶される記憶部を備えており、
各前記ＶＭの前記コンピュートに対する負荷を示す負荷情報を取得し、前記負荷情報を当該ＶＭが配置されている前記コンピュート毎に合計して各コンピュートの負荷を算出し、算出した各コンピュートの負荷の標準偏差を算出し、算出した標準偏差が所定の基準標準偏差より大きい場合に、前記コンピュート間の負荷の偏りが大きいと判定するステップと、
前記コンピュート間の負荷の偏りが大きいと判定された場合に、前記算出した各コンピュートの負荷のうち最も高い負荷のコンピュートを抽出し、抽出した当該コンピュートに配置されるＶＭを選択し、前記選択したＶＭとペアとなるＶＭを前記冗長構成管理情報を参照して特定し、前記選択したＶＭと前記特定したそのペアとなるＶＭとを、Active ＶＭとStandby ＶＭとの系切り替えをするペアのＶＭとして決定するステップと、
前記決定したペアのＶＭについて系切り替えする指示情報を出力するステップと、
を実行することを特徴とする負荷平準化方法。
【請求項５】
コンピュータを、請求項１乃至請求項３のいずれか１項に記載の負荷平準化装置として機能させるための負荷平準化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化基盤におけるＶＭ（Virtual Machine：仮想マシン）間の系切り替えを利用した負荷平準化装置、負荷平準化方法および負荷平準化プログラムに関する。
【背景技術】
【０００２】
近年、通信サービスにおいて、仮想化技術を適用したネットワーク機能の仮想化（ＮＦＶ：Network Functions Virtualization）の採用が進展している。ネットワークの仮想化は、従来専用のハードウェアを用いて実現されていたネットワーク機能をソフトウェア化して汎用サーバ上で動作させるように構成する。このようなネットワーク機能の仮想化技術をキャリア網に適用することで、経済的にスケーラビリティと信頼性を両立させることや、迅速なサービスの提供、サービス毎の需要に応じた柔軟なリソース割当、ハードウェアの寿命に縛られないサービス展開等が実現できると期待されている。
【０００３】
この仮想化技術を用いてサーバやネットワークといった物理資源を抽象化・隠蔽し、複数のアプリケーションやサービスに対して共通基盤を提供するシステムを仮想化基盤という。
【０００４】
仮想化基盤を実現する技術として、例えば、VMware vSphere（「VMware vSphere」は登録商標）と、OpenStack（「OpenStack」は登録商標）とが知られている。
VMware vSphereは、既存の仮想化基盤ソフトウェアの１つであり、そのうち、柔軟なリソース制御と稼働ホストの分散を実現する技術としてＤＲＳ（Distributed Resource Scheduler）がある（非特許文献１参照）。ＤＲＳでは、コンピュート毎に負荷を測定し、偏りが発生した場合にはライブマイグレーションにより負荷の高いコンピュートから低いコンピュートに対してＶＭを移行することで負荷を平準化させることが可能である。
【０００５】
OpenStackは、クラウド環境構築用のオープンソースソフトウェア群であり、そのうち、Watcherは、リソース最適化を目的とするコンポーネントである（非特許文献２参照）。このWatcherにより、コンピュートのロードアベレージや電力最適化の目標指標値を設定し、その達成に向けてマイグレーション等を自動で実行する。
【０００６】
一方、通信ソフトウェアの多くは、ＡＣＴ（Active）／ＳＢＹ（Standby）構成やＮ＋Ｍ構成のようなＨＡ（High Availability）構成を採用することにより可用性を高めている。例えば、ＡＣＴ／ＳＢＹ構成では、動作中（Active）コンポーネントと、待機中（Standby）コンポーネントとが存在し、Activeコンポーネントに障害が発生した場合には、Standbyコンポーネントが処理を引き継ぐことで、サービスの停止を防いだり、停止時間を極めて短い時間にしたりすることが可能である。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】“vSphere DRS,” ［online］，2018/10/3，VMware,Inc.，［平成30年10月25日検索］，インターネット＜ＵＲＬ：https://blogs.vmware.com/jp-cim/2014/02/vspheredrs.html＞
【非特許文献２】“Watcher,” ［online］，［平成30年10月25日検索］，インターネット＜ＵＲＬ：https://wiki.openstack.org/wiki/Watcher＞
【非特許文献３】“SR-IOV,” OpenStack Docs［online］，［平成30年10月25日検索］，インターネット＜ＵＲＬ：https://docs.openstack.org/newton/networking-guide/config-sriov.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記した仮想化基盤によるシステムにおいて、複数のアプリケーションを搭載した場合、ＶＭの生成や削除、マイグレーション等が繰り返されることにより、仮想化基盤を構成するコンピュート間で負荷が偏るケースが発生することがある。
特に、ＡＣＴ／ＳＢＹ構成を採用するアプリケーションを仮想化基盤に搭載すると、Active VMはリクエスト処理を担当するため負荷が高いが、Standby VMは負荷が低い。そのため、負荷の偏りが発生し易い。このような負荷の偏りが発生すると、負荷の高いコンピュートに搭載されたアプリケーションに性能劣化等の影響がでる可能性がある。
【０００９】
上記した非特許文献１に記載の技術には、コンピュート毎に負荷を測定し、偏りが発生した場合にはライブマイグレーションにより負荷の高いコンピュートから低いコンピュートに対してＶＭを移行することにより負荷を平準化させる仕組みが存在する。
【００１０】
しかしながら、性能要件の高いネットワーク機器の仮想化時にネットワークＩＯ（Input/Output）の高速化と効率化を達成するため、例えばＳＲ−ＩＯＶ（Single Root I/O Virtualization）（非特許文献３参照）といった技術を利用することがあるが、仮想化基盤によっては、その際にライブマイグレーションを適用できない、といった制限（以下、「仮想化手法の適用制限」と称する。）が生じるケースが存在する。
また、ＶＭのライブマイグレーションは、仮想ストレージ構成と割当リソース量によってはマイグレーションに時間がかかるため、負荷平準化のためにライブマイグレーションを頻度高く実行することに懸念がある場合がある。例えば、エフェメラルディスクを用いて仮想マシンインスタンスを起動しているときには、仮想ディスクイメージの内容を、移行前のインスタンスと移行後のインスタンス間で複製する処理（ブロックマイグレーション）が必要なため、時間がかかってしまう。
【００１１】
このような点を鑑みて本発明がなされたのであり、本発明は、仮想化基盤において、仮想化手法の適用制限に関わりなく、かつ、サービスへの影響を低減して、ホスト（コンピュート）間の負荷の平準化を実現することができる、負荷平準化装置、負荷平準化方法および負荷平準化プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
前記した課題を解決するため、請求項１に記載の発明は、ＡＣＴ（Active）／ＳＢＹ（Standby）構成を採用するアプリケーションを、仮想化基盤の異なるコンピュート上に構築されたＶＭ（Virtual Machine）に搭載し、Active ＶＭとStandby ＶＭとのペアのＶＭによる冗長構成とした際に、仮想化基盤と連携動作することで複数の前記コンピュートの負荷平準化を行う負荷平準化装置であって、前記アプリケーションに対応付けた、前記ペアとなるＶＭそれぞれの識別子を格納する冗長構成管理情報が記憶される記憶部と、各前記ＶＭの前記コンピュートに対する負荷を示す負荷情報を取得し、前記負荷情報を当該ＶＭが配置されている前記コンピュート毎に合計して各コンピュートの負荷を算出し、算出した各コンピュートの負荷の標準偏差を算出し、算出した標準偏差が所定の基準標準偏差より大きい場合に、前記コンピュート間の負荷の偏りが大きいと判定する負荷判定部と、前記コンピュート間の負荷の偏りが大きいと判定された場合に、前記算出した各コンピュートの負荷のうち最も高い負荷のコンピュートを抽出し、抽出した当該コンピュートに配置されるＶＭを選択し、前記選択したＶＭとペアとなるＶＭを前記冗長構成管理情報を参照して特定し、前記選択したＶＭと前記特定したそのペアとなるＶＭとを、Active ＶＭとStandby ＶＭとの系切り替えをするペアのＶＭとして決定するＶＭ配置決定部と、前記決定したペアのＶＭについて系切り替えする指示情報を出力する切替指示部と、を備えることを特徴とする負荷平準化装置とした。
【００１３】
また、請求項４に記載の発明は、ＡＣＴ（Active）／ＳＢＹ（Standby）構成を採用するアプリケーションを、仮想化基盤の異なるコンピュート上に構築されたＶＭ（Virtual Machine）に搭載し、Active ＶＭとStandby ＶＭとのペアのＶＭによる冗長構成とした際に、仮想化基盤と連携動作することで複数の前記コンピュートの負荷平準化を行う負荷平準化装置の負荷平準化方法であって、前記負荷平準化装置が、前記アプリケーションに対応付けた、前記ペアとなるＶＭそれぞれの識別子を格納する冗長構成管理情報が記憶される記憶部を備えており、各前記ＶＭの前記コンピュートに対する負荷を示す負荷情報を取得し、前記負荷情報を当該ＶＭが配置されている前記コンピュート毎に合計して各コンピュートの負荷を算出し、算出した各コンピュートの負荷の標準偏差を算出し、算出した標準偏差が所定の基準標準偏差より大きい場合に、前記コンピュート間の負荷の偏りが大きいと判定するステップと、前記コンピュート間の負荷の偏りが大きいと判定された場合に、前記算出した各コンピュートの負荷のうち最も高い負荷のコンピュートを抽出し、抽出した当該コンピュートに配置されるＶＭを選択し、前記選択したＶＭとペアとなるＶＭを前記冗長構成管理情報を参照して特定し、前記選択したＶＭと前記特定したそのペアとなるＶＭとを、Active ＶＭとStandby ＶＭとの系切り替えをするペアのＶＭとして決定するステップと、前記決定したペアのＶＭについて系切り替えする指示情報を出力するステップと、を実行することを特徴とする負荷平準化方法とした。
【００１４】
このようにすることで、負荷平準化装置は、ＶＭの負荷情報を取得して、各コンピュートの負荷を算出し、算出した各コンピュートの負荷の標準偏差が所定の基準標準偏差より大きい場合に、コンピュート間の負荷の偏りが大きいと判定する。そして、負荷平準化装置は、負荷が最も高いコンピュートに配置されるＶＭを選択し、そのペアとなるＶＭとの間で系切り替えする指示情報を出力することができる。
よって、負荷平準化装置は、例えば、仮想化基盤において、ＳＲ−ＩＯＶ等が設定されているような仮想化手法の適用制限がある場合であっても、コンピュート間の負荷平準化を実現することができる。
【００１５】
請求項２に記載の発明は、前記ＶＭ配置決定部が、前記算出した各コンピュートの負荷のうち最も高い負荷のコンピュートを抽出したときに、抽出した当該コンピュートに配置されるＶＭのうち負荷の高い順にＶＭを選択し、前記選択したＶＭとペアとなるＶＭを前記冗長構成管理情報を参照して特定し、前記選択したＶＭとそのペアとなるＶＭとを系切り替えした場合の前記各コンピュートの負荷をシミュレーションし、前記シミュレーションした各コンピュートの負荷の標準偏差が前記所定の基準標準偏差以下になるまで前記抽出したコンピュートに配置されるＶＭの選択を繰り返して、前記系切り替えするペアのＶＭを決定すること、を特徴とする請求項１に記載の負荷平準化装置とした。
【００１６】
このようにすることで、負荷平準化装置は、所定の基準標準偏差以下になるように、系切り替えするペアのＶＭを決定するので、より確実に負荷の平準化を実現することができる。
【００１７】
請求項３に記載の発明は、前記記憶部には、前記コンピュートに配置されるＶＭを、他のコンピュートにライブマイグレーションした場合にかかる時間を示すライブマイグレーション時間と、過去において前記指示情報に基づき系切り替えした場合にかかった時間を示す系切り替え時間とが記憶されており、所定期間の前記系切り替え時間の平均値を算出し、算出した前記系切り替え時間の平均値と、前記ライブマイグレーション時間とを比較し、前記ライブマイグレーション時間の方が短ければ、ライブマイグレーションによる負荷平準化機能を有効にする設定情報を出力し、前記系切り替え時間の平均値の方が短ければ、前記ライブマイグレーションによる負荷平準化機能を無効にする設定情報を出力する平準化手法設定部を、さらに備えることを特徴とする請求項１または請求項２に記載の負荷平準化装置とした。
【００１８】
このように、負荷平準化装置は、系切り替え時間の平均値とライブマイグレーション時間とを比較して、短い方の負荷平準化手法を設定させることができる。よって、サービスへの影響をより低減して、コンピュート間の負荷の平準化を実現することができる。
【００１９】
請求項５に記載の発明は、コンピュータを、請求項１乃至請求項３のいずれか１項に記載の負荷平準化装置として機能させるための負荷平準化プログラムとした。
【００２０】
このようにすることにより、一般的なコンピュータを用いて、請求項１乃至請求項３のいずれか１項に記載の負荷平準化装置の各機能を実現することができる。
【発明の効果】
【００２１】
本発明によれば、仮想化基盤において、仮想化手法の適用制限に関わりなく、かつ、サービスへの影響を低減して、ホスト（コンピュート）間の負荷の平準化を実現する、負荷平準化装置、負荷平準化方法および負荷平準化プログラムを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係る負荷平準化装置の処理の概要を説明するための図である。
【図２】本実施形態に係る負荷平準化装置を含む負荷平準化システムの構成を示す図である。
【図３】本実施形態に係るリソース管理テーブル（リソース管理情報）のデータ構成の一例を示す図である。
【図４】本実施形態に係る冗長構成管理テーブル（冗長構成管理情報）のデータ構成の一例を示す図である。
【図５】本実施形態に係る負荷平準化システムにおけるＶＭの起動処理の流れを示すフローチャートである。
【図６】本実施形態に係る負荷平準化装置が実行する負荷偏り判定処理の流れを示すフローチャートである。
【図７】本実施形態に係る負荷平準化装置が実行する系切り替え指示出力処理の流れを示すフローチャートである。
【図８】本実施形態に係る負荷平準化装置が実行する平準化手法設定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２３】
次に、本発明を実施するための形態（以下、「本実施形態」と称する。）について説明する。まず、本実施形態に係る負荷平準化装置１０（後記する図２参照）が実行する処理の概要を説明する。
【００２４】
＜概要＞
図１は、本実施形態に係る負荷平準化装置１０の処理の概要を説明するための図である。
上記したように、仮想化基盤（後記する図２の「仮想化基盤制御装置２０」）により、コンピュート（Compute）に複数のアプリケーションを搭載した場合、ＶＭ生成や削除、マイグレーション等が繰り返されることで、仮想化基盤を構成するコンピュート間で負荷が偏るケースが発生し得る。特に、ＡＣＴ／ＳＢＹ構成を採用するアプリケーションを仮想化基盤に搭載すると、Active VMは、リクエスト処理を担当するため負荷が高いが、Standby VMは負荷が低く負荷の偏りが発生しやすい。
そこで、本実施形態に係る負荷平準化装置１０は、ＡＣＴ／ＳＢＹ構成を採用するアプリケーションを仮想化基盤のＶＭに搭載した際に、各ホスト（コンピュート）の負荷を監視し、負荷の偏りを検出する。そして、負荷平準化装置１０は、負荷の偏りを検出した場合に、Active VM（ＡＣＴ系のＶＭ）とStandby VM（ＳＢＹ系のＶＭ）との系切り替えによって、負荷の偏りを低減することを特徴とする。
【００２５】
ここで、図１では、ＶＭ「＃１」（ＡＣＴ）とＶＭ「＃１１」（ＳＢＹ）が冗長構成のペアとなり、同様に、ＶＭ「＃２」（ＡＣＴ）とＶＭ「＃２２」（ＳＢＹ）、ＶＭ「＃３」（ＡＣＴ）とＶＭ「＃３３」（ＳＢＹ）、ＶＭ「＃４」（ＡＣＴ）とＶＭ「＃４４」（ＳＢＹ）が冗長構成のペアであるものとする。
この場合、図１（ａ）に示すように、コンピュート「＃１」は、ＡＣＴ系のＶＭが多く配置されているため、負荷が高くなっている（符号Ａ参照）。一方、コンピュート「＃４」は、ＳＢＹ系のＶＭが多く配置されているため、負荷が低い（符号Ｂ参照）。このような負荷の偏りが発生すると、負荷の高いコンピュートに搭載されたアプリケーションに性能劣化といった影響が発生する可能性がある。
そこで、図１（ｂ）に示すように、負荷の高いコンピュート（コンピュート「＃１」）に配置されたＶＭ（ここでは、ＶＭ「＃１」）と、負荷が低いコンピュート（コンピュート「＃４」）に配置されているペアのＶＭ（ここでは、ＶＭ「＃１１」）とにおいて、Active VM とStandby VMの系切り替えを行うことにより、負荷の平準化を実現する。
【００２６】
このようにすることにより、本実施形態に係る負荷平準化装置１０は、仮想化手法の適用制限に関わりなく、かつ、サービスへの影響を低減して、ホスト（コンピュート）間の負荷の平準化を実現することができる。
【００２７】
＜本実施形態＞
次に、負荷平準化装置１０を含む負荷平準化システム１について説明する。
図２は、本実施形態に係る負荷平準化装置１０を含む負荷平準化システム１の構成を示す図である。
負荷平準化システム１は、複数のコンピュート３０（物理リソース：ＶＭが動作するホスト（コンピュータ））と、仮想化基盤制御装置（仮想化基盤）２０と、負荷平準化装置１０とが、ネットワーク等を介して通信接続される。
【００２８】
コンピュート３０には、仮想化基盤制御装置２０の制御に基づき、仮想化環境として１つ以上のＶＭ３を構築することができる。また、ＶＭ３には、１つ以上のアプリケーションが配置（搭載）することができ、ユーザ端末（図示省略）からの要求に基づくサービスを提供する。
仮想化基盤制御装置２０は、負荷平準化装置１０、各コンピュート３０等に通信接続され、ＶＭ３の制御やリソースの割り当て等を行う。また、仮想化基盤制御装置２０は、各コンピュート３０および各ＶＭ３のリソース監視を行う。
負荷平準化装置１０は、仮想化基盤制御装置２０等と通信接続され、各ＶＭ３の負荷の情報（負荷情報）を取得し、各コンピュート３０について負荷の偏りを検出した場合に、その負荷の偏りを低減するため、ペアとなるＶＭ３のＡＣＴ／ＳＢＹ構成の系切り替えの指示情報を出力する。
以下、仮想化基盤制御装置２０と、負荷平準化装置１０について、詳細に説明する。
【００２９】
≪仮想化基盤制御装置≫
仮想化基盤制御装置（仮想化基盤）２０は、制御部、入出力部（いずれも図示省略）および記憶部２３を備えるコンピュータ等により実現される。
入出力部は、情報の送受信を行うための通信インタフェース、および、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースからなる。
【００３０】
記憶部２３は、フラッシュメモリやハードディスク、ＲＡＭ（Random Access Memory）等により構成される。この仮想化基盤制御装置２０の記憶部２３には、図２に示すように、リソース情報リポジトリ２００と仮想マシンイメージリポジトリ２５０とが記憶される。
リソース情報リポジトリ２００には、各コンピュート３０に構築するＶＭ３の情報（割当先の情報）を含むリソース管理テーブル２１０（リソース管理情報）が格納される（後記する図３参照）。また、仮想マシンイメージリポジトリ２５０には、インストール済みのゲストＯＳを含む仮想インスタンス（ＶＭ）を起動するためのテンプレートであるＶＭイメージが格納される。
【００３１】
また、制御部は、図２に示すように、リソース払出制御部２１と、監視機能部２２とを含んで構成される。なお、この制御部には、仮想化基盤を実現するために必要となる他の既存機能も備える。
リソース払出制御部２１は、リソースの管理とＶＭ３へのリソースの割り当てを行い、リソース管理部２１１、リソース抽出・選定部２１２、仮想マシン制御部２１３を備える。
【００３２】
リソース管理部２１１は、各コンピュート３０（ホスト）のリソース状況を、リソース管理テーブル２１０（図３参照）を用いて管理する。
【００３３】
図３は、本実施形態に係るリソース管理テーブル２１０（リソース管理情報）のデータ構成の一例を示す図である。
リソース管理テーブル２１０には、コンピュート３０（物理リソース）の識別情報である「ＨＷＩｄ」に対応付けて、ＶＭ３の「割当先」の情報が格納される。
例えば、図３に示すように、ＨＷＩｄ「＃０」のコンピュート３０に、ＶＭ「＃１」とＶＭ「＃２」が割り当てられていることを示している。
【００３４】
また、このリソース管理テーブル２１０には、「ＨＷＩｄ」に対応付けて、そのコンピュート３０の「多重率」や「使用率」を格納するようにしてもよい。
「多重率」は、基準となるＣＰＵのＣＰＵ性能と各コンピュート３０のＣＰＵ性能の比率（ＣＰＵ性能比率）であり、割当可能なＣＰＵの「使用率」の上限を表わすものである。この多重率の値は、図３に示すように、１００％が上限値ではなく、コンピュート３０の性能比率に応じて値が設定される。高性能なコンピュート３０では、１００％より大きな値（例えば、「１５０％」）を設定する。これにより、性能の異なるコンピュート３０（物理サーバ）で構成されるシステムにおいても、一つのリソース要求情報に基づいて、リソースを割り当てることができる。
「使用率」は、割当済みの仮想ＣＰＵについて累積したＣＰＵ使用率を示す。
【００３５】
リソース抽出・選定部２１２は、リソース要求情報（ＶＭの起動要求）を受け付けた場合に、割当可能なリソース（割当先物理リソース候補）を抽出し、その候補の中から、所定の割当ポリシにより、割当先物理リソースを選定する。
【００３６】
仮想マシン制御部２１３は、リソース抽出・選定部２１２が選定したコンピュート３０について、仮想マシンイメージリポジトリ２５０に記憶されたＶＭイメージを用いて、ＶＭ３を起動する。
【００３７】
監視機能部２２は、コンピュート３０およびＶＭ３の負荷を監視するリソース監視部２２１を備える。
リソース監視部２２１は、例えば、各コンピュート３０やＶＭ３のＣＰＵ使用率、メモリ使用率等を監視し、負荷情報として取得して記憶部２３に記憶する。また、リソース監視部２２１は、各コンピュート３０の負荷の監視を予め設定した所定の時間間隔（ここでは、「監視間隔α」とする。）で実行しているものとする。
【００３８】
この仮想化基盤制御装置２０は、既存の仮想化基盤が備える機能として、他に、ライブマイグレーションによる負荷平準化機能（図示省略）を備えている。また、仮想化基盤制御装置２０は、負荷平準化装置１０から各コンピュート３０のコンフィグ（Configuration）等の設定情報の問合せがあった場合に、その各コンピュート３０のコンフィグ等の設定情報を返信する機能も備えている。
なお、本実施形態に係る負荷平準化装置１０を含む負荷平準化システム１では、既存の仮想化基盤（仮想化基盤制御装置２０）のアプリケーションやＩＦ（インタフェース）に修正を加える必要がなく、そのまま利用して本発明の作用・機能を実現することができる。よって、本発明を実行する際のシステム管理者等によるシステム改変の負担を軽減することができる。
【００３９】
≪負荷平準化装置≫
負荷平準化装置１０は、仮想化基盤制御装置２０等からＶＭ３のリソース監視の結果情報（負荷情報）を取得して、コンピュート３０の負荷（後記する「ホスト負荷」）を算出し、負荷の偏りを検出した場合に、その負荷の偏りを低減するため、ペアとなるＶＭ３のＡＣＴ／ＳＢＹ構成の系切り替えの指示情報を出力する。
なお、負荷平準化装置１０は、仮想化基盤制御装置２０に対し、対象とする各コンピュート３０のコンフィグ（Configuration）等の設定情報を問い合わせて取得し、ライブマイグレーションが可能な構成か否かを判定する。そして、負荷平準化装置１０は、ライブマイグレーションが可能な場合は、系切り替え時間（の平均値）とマイグレーション時間とを比較し、より時間の短い方の手法を採用して負荷平準化を実行させる（詳細は後記）。
【００４０】
負荷平準化装置１０は、制御部、入出力部（いずれも図示省略）および記憶部１２を備えるコンピュータ等により実現される。
入出力部は、情報の送受信を行うための通信インタフェース、および、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースからなる。
【００４１】
記憶部１２は、フラッシュメモリやハードディスク、ＲＡＭ等により構成される。この負荷平準化装置１０の記憶部１２には、図２に示すように、冗長構成管理リポジトリ１００と、系切替時間情報１５０と、ライブマイグレーション時間情報１６０とが記憶される（詳細は後記）。また、この記憶部１２には、制御部の各機能を実行させるためのプログラム（負荷平準化プログラム）や、制御部の処理に必要な情報が一時的に記憶される。
【００４２】
また、制御部は、図２に示すように、負荷平準化機能部１１を備えており、各コンピュート３０の負荷平準化処理を実行する。
この負荷平準化機能部１１は、冗長構成管理部１１１と、負荷判定部１１２と、ＶＭ配置決定部１１３と、切替指示部１１４と、平準化手法設定部１１５とを含んで構成される。
【００４３】
冗長構成管理部１１１は、仮想化基盤制御装置２０の記憶部２３（リソース情報リポジトリ２００）に格納されたリソース管理テーブル２１０（図３）の割当先の情報、つまり、コンピュート３０に構築されるＶＭ３の情報が更新された場合に、この更新情報を取得し、自身の記憶部１２（冗長構成管理リポジトリ１００）に格納された冗長構成管理テーブル１１０（冗長構成管理情報）を更新する。なお、冗長構成管理部１１１は、所定の時間間隔（例えば、監視間隔α）で、リソース管理テーブル２１０が更新されたか否かを仮想化基盤制御装置２０に問い合わせることにより、更新情報を取得してもよい。また、仮想化基盤制御装置２０のリソース管理部２１１が、リソース管理テーブル２１０を更新した場合に、その更新情報を、負荷平準化装置１０へ通知するように設定してもよい。
【００４４】
図４は、本実施形態に係る冗長構成管理テーブル１１０（冗長構成管理情報）のデータ構成の一例を示す図である。
冗長構成管理テーブル１１０には、アプリケーション名（Ａｐｐ）およびアプリケーションＩＤ（Ａｐｐ ＩＤ）に対応付けて、冗長構成のペアとなるＶＭ３のＩＤ（識別子）（ＶＭ ＩＤ）と、そのアプリケーション（Ａｐｐ）に対応付けたＩＰアドレス（Virtual IP）とが格納される。
図４に示すように、例えば、アプリケーション名（Ａｐｐ）が「ＶＮＦ１」でアプリケーションＩＤ（Ａｐｐ ＩＤ）が「＃０１」のアプリケーションに対応する、ＶＭ３の冗長構成（ＡＣＴ／ＳＢＹ構成）のペアが、ＶＭ ＩＤ「＃１」「＃１１」のＶＭ３であり、そのVirtual IPが「192.168.xx.xx」であることを示している。
【００４５】
なお、Active VMとStandby VMとの系切り替えは、コンピュート３０やＶＭ３の状態のみならず、アプリケーションの個別要件（メンテナンスやソフトウェアアップグレード等の目的）にも依存して実行されることがある。そのため、アプリケーションの個別要件を意識しない仮想化基盤制御装置２０（仮想化基盤）が備えるリソース管理テーブル２１０（図３）等では、どちらのＶＭ３がＡＣＴ系であるかＳＢＹ系であるかの状態（Ａｐｐ状態）を管理していない。これに伴い、負荷平準化装置１０側においても、冗長構成管理テーブル１１０等においてＡｐｐ状態の管理を行わない構成とし、アプリケーションの個別要件を実行する機能を備えないことにより、様々なアプリケーションに共通的に利用可能なシステムを実現可能としている。
【００４６】
図２に戻り、負荷判定部１１２は、各コンピュート３０の負荷として、「ホスト負荷」を算出する。負荷判定部１１２は、ホスト負荷を次の（式１）により算出する。
ホスト負荷 ＝ （ホストに搭載されているＶＭの負荷の合計値）／（ホストの容量）
・・・（式１）
ここで、例えば、ＣＰＵ使用率を指標とした場合は、ＶＭ３の負荷は各ＶＭ３のＣＰＵ使用率となり、ホストの容量は１００となる。
【００４７】
負荷判定部１１２は、各ＶＭ３の負荷情報を、直接各ＶＭ３から取得するようにしてもよいし、仮想化基盤制御装置２０から取得するようにしてもよい。
また、負荷判定部１１２は、ホスト負荷の算出を予め設定した所定の時間間隔（例えば、算出間隔β）で実行する。なお、算出間隔βは、監視間隔αの定数倍とする。
負荷判定部１１２は、各コンピュート３０の負荷（ホスト負荷）について、負荷の算出時から最も近い時刻に取得したＶＭ３の負荷情報の値を利用するようにしてもよいし、過去所定期間の平均値や重み付き平均値等を利用するようにしてもよい。この重み付き平均値の重みは、例えば、古い順から時刻ｔ１，ｔ２，ｔ３のデータがある場合、最も新しいｔ３に、より高い重みを付けることにより行う。
【００４８】
負荷判定部１１２は、各ホスト（コンピュート３０）のホスト負荷を算出すると、全ホストのホスト負荷の標準偏差を算出する。そして、負荷判定部１１２は、算出したホスト負荷の標準偏差が、予め設定した（所定の）基準標準偏差γより大きい場合、ホスト間の負荷の偏りが大きいと判定し、その旨の情報（後記する「ホスト負荷偏り通知」）をＶＭ配置決定部１１３に出力する。
【００４９】
なお、負荷判定部１１２によるコンピュート３０（ホスト）の負荷の偏りの判定手法は、上記の手法に限定されない。例えば、Active VM、Standby VMの個数を負荷とし、この個数の比較を行うなどして負荷の偏りを判定してもよい。
【００５０】
ＶＭ配置決定部１１３は、所定期間のホスト負荷の平均値が最も大きいホスト（コンピュート３０）を抽出し、そのホスト内で最も負荷の高いＶＭ３を選択する。そして、ＶＭ配置決定部１１３は、冗長構成管理テーブル１１０（図４）を参照し、そのＶＭ（Active VM）とペアになるＶＭ（Standby VM）を切替候補として決定する。ＶＭ配置決定部１１３は、切替候補となったペアを切り替えた場合に、ホスト負荷の平均値が指標値δ以下になるかをシミュレーションして判定する。指標値δ以下にならない場合、ＶＭ配置決定部１１３は、当該ホスト内で次に負荷の高いＶＭ３とそのペアのＶＭ３を選択して切替候補とし、ホスト負荷の平均値が指標値δ以下になるまで、この処理を繰り返す。そして、ＶＭ配置決定部１１３は、ホスト負荷の平均値が指標値δ以下になった時点での切替候補のペアを、系切り替えのペアとして決定する。なお、詳細は、後記する図７を用いて説明する。
【００５１】
なお、ＶＭ配置決定部１１３による、系切り替えの対象となるＶＭ３のペアの決定手法は、上記手法に限定されない。例えば、既存の組み合わせ最適化問題の解法を利用して最適／準最適な系切り替え案を算出するようにしてもよい。
【００５２】
切替指示部１１４は、ＶＭ配置決定部１１３が決定したペアのＶＭ３についての系切り替えを、そのＶＭ３等に対して指示する。
系切り替えの実行は、自動で行われるようにしてもよいし、システム管理者が介在して手動で行われるようにしてもよい。また、系切り替えの指示は、ＶＭ３に直接してもよいし、アプリケーションを管理するＥＭＳ（Element Management System）を経由してＶＭ３に指示するようにしてもよい。
【００５３】
平準化手法設定部１１５は、対象とする各コンピュート３０のコンフィグ等の設定情報を仮想化基盤制御装置２０に問い合わせて取得し、ライブマイグレーションが可能な構成か否かを判定する。なお、この判定に関する技術は、例えば、非特許文献４（https://docs.openstack.org/nova/queens/admin/configuring-migrations.html#section-configuring-compute-migrations）に詳しい。そして、平準化手法設定部１１５は、ライブマイグレーションが可能である場合に、負荷平準化装置１０の系切り替えの指示により行われたそれ以前（過去）の系切り替えで計測された時間を示す系切り替え時間と、ライブマイグレーションにかかる時間（以下、「ライブマイグレーション時間」と称する。）とを比較し、短い時間の方の手法を負荷平準化手法として採用する。
【００５４】
具体的には、平準化手法設定部１１５は、切替指示部１１４の指示に基づき、ＡＣＴ／ＳＢＹ構成のペアのＶＭ３間で系切り替えが行われた場合に、その系切り替えにかかった時間を取得し、系切替時間情報１５０として、記憶部１２に記憶しておく。例えば、切替指示部１１４が切り替え完了応答とともに、系切り替え時間を取得するようにしてもよい。
この系切替時間情報１５０は、ＶＭ３で実行されるアプリケーションにより測定した情報を取得してもよいし、ＥＭＳが測定した情報を取得するようにしてもよい。切替指示部１１４からアプリケーションに対して所定の時間間隔でポーリングすることにより状態を監視し、切替時間を測定するようにしてもよい。
【００５５】
また、ライブマイグレーション時間に関しては、平準化手法設定部１１５が、既存のライブマイグレーションによる負荷平準化手法により実行されたライブマイグレーション時間を、仮想化基盤制御装置２０等から取得し、記憶部１２に記憶しておく。または、システム管理者等がライブマイグレーション時間について事前の検証をしておき、平準化手法設定部１１５は、その結果から固定値を設定し、ライブマイグレーション時間情報１６０として記憶部１２に記憶しておくようにしてもよい。
【００５６】
平準化手法設定部１１５は、記憶部１２を参照し、系切替時間情報１５０とライブマイグレーション時間情報１６０とを用いて、所定時間（期間）の系切替時間の平均値を算出し、その算出した所定時間の系切替時間の平均値とライブマイグレーション時間とを比較し、時間の短い方の負荷平準化手法を採用（設定）する。
【００５７】
なお、負荷平準化手法を、ライブマイグレーションに切り替える際には、仮想化基盤制御装置２０のライブマイグレーションによる負荷平準化機能を有効にする設定指示を、平準化手法設定部１１５が送信する。また、平準化手法設定部１１５は、一度仮想化基盤制御装置２０のライブマイグレーションによる負荷平準化機能を有効にした後において、系切り替えによる負荷平準化手法を採用した場合には、仮想化基盤制御装置２０のライブマイグレーションによる負荷平準化機能を無効にする設定指示を送信する。
このようにすることにより、負荷平準化に伴うアプリケーションの停止等によるサービスへの影響を、より低減する負荷平準化手法を設定することができる。
【００５８】
なお、図２においては、負荷平準化装置１０と仮想化基盤制御装置２０とを別装置（別筺体）として説明したが、上記した負荷平準化装置１０の各構成を、仮想化基盤制御装置２０に組み込んで一つの装置（筺体）として構成するようにしてもよい。
【００５９】
＜処理の流れ＞
次に、負荷平準化装置１０が実行する処理の流れについて、図５〜図８を参照して説明する。まず、図５を参照して、仮想化基盤制御装置２０によるＶＭ３の起動処理について説明する。例えば、このＶＭ３の起動処理を契機として、負荷平準化装置１０の記憶部１２（冗長構成管理リポジトリ１００）内の冗長構成管理テーブル１１０（図４）が更新される。
【００６０】
（ＶＭの起動処理に伴う冗長構成管理テーブルの更新）
図５は、本実施形態に係る負荷平準化システム１におけるＶＭ３の起動処理の流れを示すフローチャートである。
まず、仮想化基盤制御装置２０のリソース払出制御部２１が新たなＶＭ３の起動要求を受け付ける（ステップＳ１）。なお、ここでは、ＡＣＴ／ＳＢＹ構成としてペアとなる２つのＶＭ３の起動要求がなされたものとして説明する。
【００６１】
ステップＳ１において、起動要求を受け付けると、リソース払出制御部２１のリソース抽出・選定部２１２は、記憶部２３のリソース情報リポジトリ２００内のリソース管理テーブル２１０（図３）を参照し、割当可能なリソース（割当先物理リソース候補）を抽出する（ステップＳ２）。そして、リソース抽出・選定部２１２が、その抽出された候補の中から、所定の割当ポリシにより、割当先となるリソース（コンピュート３０）を選定する（ステップＳ３）。
【００６２】
所定の割当ポリシは、例えば、AffinityルールやAnti-Affinityルールを適用したり、ＣＰＵの固定割当（ＣＰＵ Pinning）を適用したり、既に割り当てられているＶＭ３の使用リソース量の少ないコンピュート３０を選択する等のルールである。この所定の割当ポリシは、既存のＶＭの割当先選定手法であり、例えば非特許文献５（https://docs.openstack.org/ocata/config-reference/compute/schedulers.html）に詳しい。
【００６３】
ステップＳ３において起動するＶＭ３の割当先となるコンピュート３０が選定されると、リソース管理部２１１は、リソース情報リポジトリ２００内のリソース管理テーブル２１０（図４）を更新する（ステップＳ４）。具体的には、リソース管理部２１１が、選定したコンピュート３０のＨＷＩｄに対応する「割当先」欄に、新たに起動させるＶＭ３のＶＭ ＩＤを追加する。ここでは、ＡＣＴ／ＳＢＹ構成としてペアとなる２つのＶＭ３のＶＭ ＩＤが登録される。
そして、リソース管理部２１１は、リソース管理テーブル２１０が更新されたことを示す更新情報を、負荷平準化装置１０に通知する。
【００６４】
負荷平準化装置１０の冗長構成管理部１１１は、仮想化基盤制御装置２０から更新情報を受信すると、冗長構成管理リポジトリ１００内の冗長構成管理テーブル１１０（図４）を更新する（ステップＳ５）。
【００６５】
続いて、仮想化基盤制御装置２０の仮想マシン制御部２１３は、記憶部２３内の仮想マシンイメージリポジトリ２５０を参照し、ステップＳ４において選択されたコンピュート３０に対応するＶＭイメージを用いて、新たなＶＭ３を起動する（ステップＳ６）。
そして、リソース管理部２１１が、新たなＶＭ３が起動されたことを示す応答情報を出力し（ステップＳ７）、処理を終える。
【００６６】
このようにすることで、仮想化基盤制御装置２０により、新たなＶＭ３が起動され設定が更新される度に、負荷平準化装置１０はその更新情報を取得して、冗長構成管理テーブル１１０を、最新の状態に更新することが可能となる。
なお、図５においては、ＡＣＴ／ＳＢＹ構成としてペアとなる２つのＶＭ３の起動要求が一度になされたものとして説明したが、ＡＣＴ／ＳＢＹ構成としてペアとなるＶＭ３を別々に起動させるようにしてもよい。その場合、各ＶＭ３それぞれについてリソース管理テーブル２１０（図３）を更新した後、仮想化基盤制御装置２０のリソース管理部２１１が、リソース管理テーブル２１０が更新されたことを示す更新情報を、負荷平準化装置１０に通知する。
【００６７】
（負荷偏り判定処理）
次に、負荷平準化装置１０の負荷判定部１１２による負荷偏り判定処理について説明する。
図６は、本実施形態に係る負荷平準化装置１０が実行する負荷偏り判定処理の流れを示すフローチャートである。
負荷判定部１１２は、各コンピュート３０の負荷（ホスト負荷）を算出し、その標準偏差を算出する。そして、負荷判定部１１２は、算出したホスト負荷に基づき、負荷の偏りが予め設定した（所定の）基準標準偏差γより大きいか否かを判定し、大きい場合にホスト間の負荷の偏りが大きいと判定する。
なお、ここでは、仮想化基盤制御装置２０のリソース監視部２２１が、監視間隔αでホスト（コンピュート３０）とＶＭ３の負荷を監視しているものとする。以下、具体的に説明する。
【００６８】
まず、負荷判定部１１２は、負荷の監視結果である負荷情報を取得する回数を制御するための定数Ｘに０を設定（Ｘ＝０）する（ステップＳ１０）。
【００６９】
次に、負荷判定部１１２は、各ＶＭ３の負荷情報（ここでは、ＣＰＵ使用率とする。）を取得する（ステップＳ１１）。負荷判定部１１２は、例えば、仮想化基盤制御装置２０から、所定の時間間隔（例えば、監視間隔α）毎に、負荷情報を取得しておく。そして、負荷判定部１１２は、記憶部１２内に記憶されたその負荷情報を用いて負荷の偏りを判定してもよいし、所定の時間間隔毎に、仮想化基盤制御装置２０に要求情報を送信して負荷情報を取得してもよい。
【００７０】
続いて、負荷判定部１１２は、監視間隔αが経過（Ｗａｉｔ＝α）するまで待つ（ステップＳ１２）。そして、負荷判定部１１２は、Ｘに１を加算（Ｘ＝Ｘ＋１）する（ステップＳ１３）。
【００７１】
次に、負荷判定部１１２は、ホスト負荷算出のために事前に設定した算出間隔β（βは、αの定数倍）が経過したか否かを判定する。具体的には、負荷判定部１１２は、Ｘ＝β／αが成り立つか否かにより算出間隔βが経過したか否かを判定する（ステップＳ１４）。
ここで、Ｘ＝β／αが成り立たなければ（ステップＳ１４→Ｎｏ）、ステップＳ１１に戻り、負荷情報の取得の処理を続ける。
一方、Ｘ＝β／αが成り立てば（ステップＳ１４→Ｙｅｓ）、次のステップＳ１５に進む。
【００７２】
ステップＳ１５において、負荷判定部１１２は、各ホスト（コンピュート３０）のホスト負荷を上記した（式１）により算出する。
【００７３】
ここで、ＣＰＵ使用率を負荷の指標とした場合、ＶＭ３の負荷は、各ＶＭ３のＣＰＵ使用率であり、ホストの容量は１００として算出する。
なお、負荷は、算出時から最も近い時刻に取得した負荷の値を用いてもよいし、過去の所定期間の平均値を用いてもよい。また、重み付き平均値を用いてもよい。
【００７４】
続いて、負荷判定部１１２は、各ホスト（コンピュート３０）のホスト負荷の標準偏差を算出する（ステップＳ１６）。
そして、負荷判定部１１２は、算出したホスト負荷の標準偏差が、予め設定した（所定の）基準標準偏差γより大きいか否かを判定する（ステップＳ１７）。
ここで、ホスト負荷の標準偏差が、基準標準偏差γ以下の場合（ステップＳ１７→Ｎｏ）、負荷判定部１１２は、各ホストの負荷の偏りが大きくないと判定し、ステップＳ１０へ戻る。
一方、ホスト負荷の標準偏差が、基準標準偏差γより大きい場合（ステップＳ１７→Ｙｅｓ）、負荷判定部１１２は、各ホストの負荷の偏りが大きいと判定し、次のステップＳ１８へ進む。
【００７５】
ステップＳ１８において、負荷判定部１１２は、各ホスト３の負荷の偏りが大きいと判定した旨の情報（ホスト負荷偏り通知）を、ＶＭ配置決定部１１３に出力し、処理を終える。
【００７６】
このようにすることで、負荷平準化装置１０（負荷判定部１１２）は、各ホストの負荷が所定の基準よりも大きくなっているか否かを判定することができる。
【００７７】
（系切り替え指示出力処理）
次に、負荷平準化装置１０のＶＭ配置決定部１１３と切替指示部１１４による系切り替え指示出力処理について説明する。
図７は、本実施形態に係る負荷平準化装置１０が実行する系切り替え指示出力処理の流れを示すフローチャートである。
ＶＭ配置決定部１１３は、負荷判定部１１２により、各ホスト（コンピュート３０）の負荷の偏りが大きい旨の情報（ホスト負荷偏り通知）を取得すると、冗長構成管理テーブル１１０（図４）を参照し、ＡＣＴ／ＳＢＹ構成となるペアのＶＭ３の切替候補を算出する。そして、切替指示部１１４が、系切り替えの対象として算出したペアのＶＭ３に対し、系切り替えの指示情報を出力する。以下、具体的に説明する。
【００７８】
まず、負荷平準化装置１０（負荷平準化機能部１１）のＶＭ配置決定部１１３は、負荷判定部１１２から各ホスト（コンピュート３０）の負荷の偏りが大きいと判定した旨の情報（ホスト負荷偏り通知）を受信する（ステップＳ２０）。
【００７９】
続いて、ＶＭ配置決定部１１３は、各ホスト（コンピュート３０）における所定期間のホスト負荷の情報を用いて、各ホストのホスト負荷の平均値（以下、「ホスト負荷平均値」と称する。）を算出し、ホスト負荷平均値が最も大きいホストを抽出する（ステップＳ２１）。
【００８０】
次に、ＶＭ配置決定部１１３は、抽出したホスト負荷平均値が最も大きいホスト内で、各ＶＭ３の負荷（以下、「ＶＭ負荷」と称する。）を降順に並べる（ステップＳ２２）。
なお、このとき利用する各ＶＭ３のＶＭ負荷は、算出時から最も近い時刻に取得した負荷の値を用いてもよいし、過去の所定期間の平均値を用いてもよい。また、重み付き平均値を用いてもよい。
【００８１】
続いて、ＶＭ配置決定部１１３は、ＶＭ負荷の高いＶＭ３を抽出する回数を制御するための定数Ｙに０を設定（Ｙ＝０）する（ステップＳ２３）。そして、ＶＭ配置決定部１１３は、Ｙに１を加算（Ｙ＝Ｙ＋１）する（ステップＳ２４）。
【００８２】
続いて、ＶＭ配置決定部１１３は、各ＶＭ３のうちＶＭ負荷が高い順にＹ番目のＶＭ３を抽出し、冗長構成管理テーブル１１０（図４）を参照して、抽出したＶＭ３とペアとなるＶＭ３、つまり、抽出したＶＭ３について、ＡＣＴ／ＳＢＹ構成となるペアのＶＭ３を特定する。
なお、Ｙ＝１の場合、ＶＭ配置決定部１１３は、各ＶＭ３のうちＶＭ負荷が最も高いＶＭ３を抽出し、そのペアのＶＭ３を特定する。Ｙ＝２の場合、ＶＭ配置決定部１１３は、ＶＭ負荷が２番目に高いＶＭ３を抽出し、そのペアのＶＭ３を特定する。以下同様である。
そして、ＶＭ配置決定部１１３は、Ｙ番目に特定したＶＭ３のペアを系切り替えしたと仮定した場合のホスト負荷および所定期間のホスト負荷平均値を算出する（ステップＳ２５）。
【００８３】
次に、ＶＭ配置決定部１１３は、算出したホスト負荷平均値が、予め設定したホスト負荷平均値の指標値δより大きいか否かを判定する（ステップＳ２６）。
ここで、ホスト負荷平均値が指標値δより大きい場合（ステップＳ２６→Ｙｅｓ）、ステップＳ２７に進み、Ｙがホスト上のＶＭ数と等しいか否かを判定する。そして、Ｙがホスト上のＶＭ数と等しい場合には（ステップＳ２７→Ｙｅｓ）、負荷平準化処理を実行できない旨（負荷平準化ＮＧ）をシステム管理者等に通知する（ステップＳ２８）。一方、Ｙがホスト上のＶＭ数と等しくない場合には（ステップＳ２７→Ｎｏ）、ステップＳ２４に戻り処理を続ける。
【００８４】
また、ステップＳ２６において、ホスト負荷平均値が指標値δ以下である場合（ステップＳ２６→Ｎｏ）、切替指示部１１４が、ステップＳ２５においてホスト負荷平均値を算出したすべてのＶＭ３のペアのうちの一つのＶＭ３のペアを選択し、そのＶＭ３のペアについて系切り替え指示を出力する（ステップＳ３０）。なお、切替指示部１１４は、ＶＭ配置決定部１１３がステップＳ２５において、ホスト負荷平均値を算出したＶＭ３のペア分、ステップＳ３０の系切り替え指示の出力を繰り返し（ステップＳ２９〜Ｓ３１）、処理を終える。
【００８５】
このようにすることで、負荷平準化装置１０は、仮想化手法の適用制限に関わりなく、つまり、ライブマイグレーションが適用できない場合であっても、系切り替え処理により負荷平準化を実現することができる。
【００８６】
（平準化手法設定処理）
次に、負荷平準化装置１０の平準化手法設定部１１５が実行する平準化手法設定処理について説明する。
図８は、本実施形態に係る負荷平準化装置１０が実行する平準化手法設定処理の流れを示すフローチャートである。
この平準化手法設定処理では、まず、平準化手法設定部１１５が、コンピュート３０の設定がライブマイグレーション可能な構成か否かを判定する。そして、平準化手法設定部１１５は、ライブマイグレーションが可能と判定した場合に、ＶＭ３の系切り替えによる負荷平準化に係る系切り替え時間の平均値と、ライブマイグレーションによる負荷平準化に係るライブマイグレーション時間とを比較し、短い方の負荷平準化手法を選択して設定（有効化）する処理を行う。なお、この平準化手法設定処理は、上記した、負荷偏り判定処理（図６）および系切り替え指示出力処理（図７）とは独立して所定の時間間隔で実行される。
【００８７】
まず、負荷平準化装置１０の平準化手法設定部１１５は、対象とするコンピュート３０のコンフィグ等の設定情報を仮想化基盤制御装置２０に問い合わせて取得し、ライブマイグレーションが可能な構成か否かを判定する（ステップＳ４０）。
ここで、ライブマイグレーション可能な構成でないと判定した場合（ステップＳ４０→Ｎｏ）、平準化手法設定部１１５は、処理を終了する。この場合、負荷平準化装置１０は、ＶＭ３のペアの系切り替えによる負荷平準化を実行する。
一方、平準化手法設定部１１５は、ライブマイグレーション可能な構成であると判定した場合には（ステップＳ４０→Ｙｅｓ）、次のステップＳ４１に進む。
【００８８】
ステップＳ４１において、平準化手法設定部１１５は、所定の時間が経過したか否かを判定する。そして、所定の時間が経過していない場合には（ステップＳ４１→Ｎｏ）、所定の時間が経過するまで待つ。一方、所定の時間が経過した場合は（ステップＳ４１→Ｙｅｓ）、次のステップＳ４２に進む。
【００８９】
ステップＳ４２において、平準化手法設定部１１５は、アプリケーション側で計測している、Active VMとStandby VMとの系切り替え時間を取得し、記憶部１２に系切替時間情報１５０として格納する。そして、平準化手法設定部１１５は、系切り替え時間について所定時間（期間）での平均値を算出する。
【００９０】
続いて、平準化手法設定部１１５は、ライブマイグレーション時間を取得する（ステップＳ４３）。このライブマイグレーション時間は、記憶部１２に固定値として予め設定された情報を取得するようにしてもよいし、ライブマイグレーションにかかる時間を、既存のライブマイグレーションによる負荷平準化機能により測定することにより取得してもよい。
【００９１】
次に、平準化手法設定部１１５は、系切り替え時間の平均値とライブマイグレーション時間とを比較し、系切り替え時間の平均値の方が長いか否かを判定する（ステップＳ４４）。
ここで、系切り替え時間の平均値の方が長ければ（ステップＳ４４→Ｙｅｓ）、平準化手法設定部１５は、平準化手法をライブマイグレーションに設定する。具体的には、平準化手法設定部１５は、平準化手法を系切り替えからライブマイグレーションに切り替える。即ち、平準化手法設定部１１５は、仮想化基盤制御装置２０のライブマイグレーションによる負荷平準化機能を有効化する指示情報を出力する（ステップＳ４５）。そして、ステップＳ４１に戻り処理を続ける。
一方、系切り替え時間の平均値の方がライブマイグレーション時間より長くなければ（同じも含む）（ステップＳ４４→Ｎｏ）、平準化手法設定部１５は、平準化手法をＶＭ３のペアの系切り替えに設定する。具体的には、平準化手法設定部１１５は、仮想化基盤制御装置２０のライブマイグレーションによる負荷平準化機能が有効であるかを判定し、有効であれば、ライブマイグレーションによる負荷平準化機能を無効化する（ステップＳ４６）。これにより、負荷平準化機能部１１による系切り替えによる負荷平準化処理が実行される設定となり、ステップＳ４１に戻り処理を続ける。
【００９２】
このように、負荷平準化装置１０は、系切り替え時間の平均値とライブマイグレーション時間とを比較し短い方の負荷平準化手法を採用するため、負荷平準化に伴うアプリケーションの停止等によるサービスへの影響をより低減することができる。
【００９３】
以上説明したように、本実施形態に係る、負荷平準化装置１０、負荷平準化方法および負荷平準化プログラムによれば、仮想化基盤において、仮想化手法の適用制限に関わりなく、かつ、サービスへの影響を低減して、ホスト（コンピュート）間の負荷の平準化を実現することができる。また、既存の仮想化基盤制御装置２０（仮想化基盤）の修正を加えることなく利用可能となるため、システム管理者等によるシステム改変の負担を軽減することもできる。
【符号の説明】
【００９４】
１      負荷平準化システム
３      ＶＭ（仮想マシン）
１０    負荷平準化装置
１１    負荷平準化機能部
１２    記憶部
２０    仮想化基盤制御装置
２１    リソース払出制御部
２２    監視機能部
２３    記憶部
３０    コンピュート（ホスト）
１００  冗長構成管理リポジトリ
１１０  冗長構成管理テーブル（冗長構成管理情報）
１１１  冗長構成管理部
１１２  負荷判定部
１１３  ＶＭ配置決定部
１１４  切替指示部
１１５  平準化手法設定部
１５０  系切替時間情報
１６０  ライブマイグレーション時間情報
２００  リソース情報リポジトリ
２１０  リソース管理テーブル（リソース管理情報）
２１１  リソース管理部
２１２  リソース抽出・選定部
２１３  仮想マシン制御部
２２１  リソース監視部
２５０  仮想マシンイメージリポジトリ
【図１】
2020071840.tif 000003
【図２】
2020071840.tif 000004
【図３】
2020071840.tif 000005
【図４】
2020071840.tif 000006
【図５】
2020071840.tif 000007
【図６】
2020071840.tif 000008
【図７】
2020071840.tif 000009
【図８】
2020071840.tif 000010