IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許7159887仮想化基盤および仮想化基盤のスケーリング管理方法
<>
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図1
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図2
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図3
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図4
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図5
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図6
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図7
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図8
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図9A
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図9B
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図9C
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図9D
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図10A
  • 特許-仮想化基盤および仮想化基盤のスケーリング管理方法 図10B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-17
(45)【発行日】2022-10-25
(54)【発明の名称】仮想化基盤および仮想化基盤のスケーリング管理方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20221018BHJP
   G06F 9/455 20060101ALI20221018BHJP
【FI】
G06F9/50 150Z
G06F9/455 150
【請求項の数】 10
(21)【出願番号】P 2019012719
(22)【出願日】2019-01-29
(65)【公開番号】P2020123003
(43)【公開日】2020-08-13
【審査請求日】2021-05-10
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】岩佐 絵里子
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2011-090594(JP,A)
【文献】特開2015-115059(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視するリソース監視部と、
前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行うスケーリング実施判定部と、
各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行うリソース払出制御部と、
前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択するスケーリング方法判定部と、
前記スケーリング方法判定部が選択したスケーリング方法を前記リソース払出制御部に対して指示するスケーリング指示部と、
を備え
前記リソース払出制御部は、スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、
ことを特徴とする仮想化基盤。
【請求項2】
複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視するリソース監視部と、
前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行うスケーリング実施判定部と、
各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行うリソース払出制御部と、
前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択するスケーリング方法判定部と、
前記スケーリング方法判定部が選択したスケーリング方法を前記リソース払出制御部に対して指示するスケーリング指示部と、
を備え
前記リソース払出制御部は、スケールアウトまたは併用がスケーリング方法として指示されており、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との余剰がスケールアップによるリソース量よりも大きいならば、前記余剰からスケールアップによるリソース量を減じた量を稼働中の実行環境からリソース割当変更手段によって削除し、かつスケールアップを行わない、
ことを特徴とする仮想化基盤。
【請求項3】
前記スケーリング方法判定部は、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースより多い場合、スケールアップによるスケーリング方法を選択する、
ことを特徴とする請求項1または2に記載の仮想化基盤。
【請求項4】
前記リソース払出制御部は、スケールアップによるスケーリング方法で各前記コンピュートのリソース割当を変更する場合、リソース割当変更手段によってリソース割当量を変更する、
ことを特徴とする請求項に記載の仮想化基盤。
【請求項5】
前記スケーリング方法判定部は、何れかの実行環境が稼働しているコンピュートのいずれにも空きリソースがない場合、スケールアウトによるスケーリング方法を選択する、
ことを特徴とする請求項に記載の仮想化基盤。
【請求項6】
前記スケーリング方法判定部は、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースよりも少ない場合、スケールアウトおよびスケールアップの併用によるスケーリング方法を選択する、
ことを特徴とする請求項に記載の仮想化基盤。
【請求項7】
複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視するリソース監視部と、
前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行うスケーリング実施判定部と、
各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行うリソース払出制御部と、
前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースより多い場合、スケールアップによるスケーリング方法を選択し、何れかの実行環境が稼働しているコンピュートのいずれにも空きリソースがない場合、スケールアウトによるスケーリング方法を選択し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースよりも少ない場合、スケールアウトおよびスケールアップの併用によるスケーリング方法を選択する選択するスケーリング方法判定部と、
前記スケーリング方法判定部が選択したスケーリング方法を前記リソース払出制御部に対して指示するスケーリング指示部と、
を備え
前記リソース払出制御部は、スケールアップによるスケーリング方法で各前記コンピュートのリソース割当を変更する場合、リソース割当変更手段によってリソース割当量を変更し、スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、
ことを特徴とする仮想化基盤。
【請求項8】
リソース監視部は、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視し、
スケーリング実施判定部は、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行い、
スケーリング方法判定部は、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択し、
スケーリング指示部は、前記スケーリング方法判定部が選択したスケーリング方法をリソース払出制御部に対して指示し、
前記リソース払出制御部は、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行い、
スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、
ことを特徴とする仮想化基盤のスケーリング管理方法。
【請求項9】
リソース監視部は、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視し、
スケーリング実施判定部は、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行い、
スケーリング方法判定部は、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択し、
スケーリング指示部は、前記スケーリング方法判定部が選択したスケーリング方法をリソース払出制御部に対して指示し、
前記リソース払出制御部は、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行い、
スケールアウトまたは併用がスケーリング方法として指示されており、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との余剰がスケールアップによるリソース量よりも大きいならば、前記余剰からスケールアップによるリソース量を減じた量を稼働中の実行環境からリソース割当変更手段によって削除し、かつスケールアップを行わない、
ことを特徴とする仮想化基盤のスケーリング管理方法。
【請求項10】
リソース監視部は、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視し、
スケーリング実施判定部は、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行い、
スケーリング方法判定部は、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースより多い場合、スケールアップによるスケーリング方法を選択し、
何れかの実行環境が稼働しているコンピュートのいずれにも空きリソースがない場合、スケールアウトによるスケーリング方法を選択し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースよりも少ない場合、スケールアウトおよびスケールアップの併用によるスケーリング方法を選択し、
スケーリング指示部は、前記スケーリング方法判定部が選択したスケーリング方法をリソース払出制御部に対して指示し、
前記リソース払出制御部は、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行い、
スケールアップによるスケーリング方法で各前記コンピュートのリソース割当を変更する場合、リソース割当変更手段によってリソース割当量を変更し、
スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、
ことを特徴とする仮想化基盤のスケーリング管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同一コンピュート内のスケーリングについてはスケールアップを、コンピュートを超えるスケーリングについてはスケールアウトを適用する仮想化基盤および仮想化基盤のスケーリング管理方法に関する。
【背景技術】
【0002】
仮想化基盤とは、仮想化技術を用いてサーバやネットワークといった物理資源を抽象化・隠蔽し、複数のアプリケーションやサービスに対して共通基盤として準備された仮想環境、またそれらの仮想環境を管理するシステムのことをいう。
【0003】
近年では通信サービスにおいても、仮想化技術を適用したネットワーク機能の仮想化(NFV:Network Functions Virtualization)の採用が進展している。ネットワークの仮想化とは、従来では専用のハードウェアを用いて実現されていたネットワーク機能を、ソフトウェア化して汎用サーバ上で動作させるように構成することをいう。このようなネットワーク機能の仮想化技術をキャリア網に適用することで、経済的にスケーラビリティと信頼性を両立させることや、迅速なサービス提供、サービスごとの需要に応じた柔軟なリソース割り当てと、ハードウェアの寿命に縛られないサービス展開が実現できると期待されている。
【0004】
OpenStackとはクラウド環境構築用のオープンソースソフトウェア群のことをいう。非特許文献1に記載のOpenStack Novaは、OpenStackコンポーネントの1つであり、仮想マシンの制御や管理を担当する。Novaは、仮想マシンを作成する際に、flavorと呼ばれる仮想ハードウェアのテンプレートを用い、この仮想ハードウェア上で仮想マシンを起動させる。このテンプレートには、CPU(Central Processing Unit)やメモリやディスク等のリソース割当条件が記載されている。
【0005】
非特許文献2に記載のOpenStack Heatは、OpenStackコンポーネントの1つであり、リソースの配置を定義したテンプレートを用いて、システムの構築を自動化するオーケストレーションを担当する。OpenStack Heatは、テンプレート内のAutoScalingGroupやScalingPolicyにスケーリング対象やスケーリングルールを記述すると、その条件に従ってスケールアウトする。なおOpenStackでは、ホットプラグのように仮想マシンを無停止でリソース割当を変更すること、即ち無停止でスケールアップをすることはできない。
【0006】
仮想化基盤上では、新たな実行環境であるVM(Virtual Machine:仮想マシン)やコンテナの生成および既存の実行環境であるVMやコンテナの削除が容易になることから、仮想化基盤上に搭載したアプリケーションをスケーリングする際には、処理量に応じてVMやコンテナの数を増減させることにより処理能力を最適化するスケールアウトやスケールインの方法が採用される。具体的には、前段にロードバランサを配置し、仮想マシン群またはコンテナ群(クラスタ)に対して処理を振り分ける構成をとることが多い。
【0007】
一方、仮想マシンやコンテナ自体の処理能力を増減させることで処理能力を最適化するスケールアップやスケールダウンの方法も存在する。代表的な技術であるホットプラグでは、仮想マシンに割り当てるCPUやメモリやディスクを柔軟に追加または削除することが可能である。
【先行技術文献】
【非特許文献】
【0008】
【文献】“OpenStack Compute (nova)”,インターネット<URL:https://docs.openstack.org/nova/latest/>
【文献】“OpenStack-Heat”,インターネット<URL:https://docs.openstack.org/heat/latest/>
【発明の概要】
【発明が解決しようとする課題】
【0009】
上記したスケールアウトは、以下の問題がある。
第1の問題は、クラスタを構成する仮想マシンやコンテナ間の負荷の偏りや特定の仮想マシンまたはコンテナへの突発的な負荷増に対応できないことである。
第2の問題は、仮想マシンやコンテナのイメージがコンピュート上にない場合は、イメージコピーに時間を要することである。
第3の問題は、アプリケーションによっては、仮想マシンやコンテナの起動後のコンフィグ投入や、仮想マシンやコンテナ間の同期処理に長い時間がかかるケースがあることである。
【0010】
第4の問題は、特に仮想マシンでは、仮想マシン起動に数分単位で時間がかかる懸念があることである。リソースの追加単位が仮想マシンの起動時に用いる仮想ハードウェアのテンプレートサイズに依存するため、追加粒度を細かくすることが難しい。追加粒度を細かくするとスケーリング回数が増えて第2~第4の問題が課題となるため、細かくすることは難しい。
【0011】
一方で、仮想マシンやコンテナ自体の処理能力を増減させることで処理能力を最適化するスケールアップやスケールダウンの方法も存在する。スケールアップやスケールダウンを実現する代表的な技術であるホットプラグでは、仮想マシンに割り当てるCPUやメモリやディスクを柔軟に追加および削除することが可能である。この技術は仮想マシンの生成は伴わないため、処理は1秒未満で完了するというメリットがある。しかし、スケールアップは、同一コンピュート上に仮想マシンが動作しており、かつ余剰のリソースがなければならない。
【0012】
そこで、本発明は、高速であり、かつ粒度の細かいスケーリングを実現することを課題とする。
【課題を解決するための手段】
【0013】
前記した課題を解決するため、請求項1に記載の発明では、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視するリソース監視部と、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行うスケーリング実施判定部と、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行うリソース払出制御部と、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択するスケーリング方法判定部と、前記スケーリング方法判定部が選択したスケーリング方法を前記リソース払出制御部に対して指示するスケーリング指示部と、を備え、前記リソース払出制御部は、スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、ことを特徴とする仮想化基盤とした。
【0014】
このようにすることで、高速であり、かつ粒度の細かいスケーリングを実現できる。
請求項2に記載の発明では、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視するリソース監視部と、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行うスケーリング実施判定部と、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行うリソース払出制御部と、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択するスケーリング方法判定部と、前記スケーリング方法判定部が選択したスケーリング方法を前記リソース払出制御部に対して指示するスケーリング指示部と、を備え、前記リソース払出制御部は、スケールアウトまたは併用がスケーリング方法として指示されており、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との余剰がスケールアップによるリソース量よりも大きいならば、前記余剰からスケールアップによるリソース量を減じた量を稼働中の実行環境からリソース割当変更手段によって削除し、かつスケールアップを行わない、ことを特徴とする仮想化基盤とした。
このようにすることで、高速であり、かつ粒度の細かいスケーリングを実現できる。
【0015】
請求項に記載の発明では、前記スケーリング方法判定部は、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースより多い場合、スケールアップによるスケーリング方法を選択する、ことを特徴とする請求項1または2に記載の仮想化基盤とした。
【0016】
このようにすることで、本発明によれば、高速なスケーリングが実現できる。
【0017】
請求項に記載の発明では、前記リソース払出制御部は、スケールアップによるスケーリング方法で各前記コンピュートのリソース割当を変更する場合、リソース割当変更手段によってリソース割当量を変更する、ことを特徴とする請求項に記載の仮想化基盤とした。
【0018】
このようにすることで、本発明によれば、粒度の細かいスケーリングが実現できる。
【0019】
請求項に記載の発明では、前記スケーリング方法判定部は、何れかの実行環境が稼働しているコンピュートのいずれにも空きリソースがない場合、スケールアウトによるスケーリング方法を選択する、ことを特徴とする請求項に記載の仮想化基盤とした。
【0020】
このようにすることで、本発明によれば、高速なスケーリングが実現できる。
【0021】
請求項に記載の発明では、前記スケーリング方法判定部は、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースよりも少ない場合、スケールアウトおよびスケールアップの併用によるスケーリング方法を選択する、ことを特徴とする請求項に記載の仮想化基盤とした。
【0022】
このようにすることで、本発明によれば、粒度の細かいスケーリングが実現できる。
【0023】
請求項7に記載の発明では、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視するリソース監視部と、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行うスケーリング実施判定部と、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行うリソース払出制御部と、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースより多い場合、スケールアップによるスケーリング方法を選択し、何れかの実行環境が稼働しているコンピュートのいずれにも空きリソースがない場合、スケールアウトによるスケーリング方法を選択し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースよりも少ない場合、スケールアウトおよびスケールアップの併用によるスケーリング方法を選択する選択するスケーリング方法判定部と、前記スケーリング方法判定部が選択したスケーリング方法を前記リソース払出制御部に対して指示するスケーリング指示部と、を備え、前記リソース払出制御部は、スケールアップによるスケーリング方法で各前記コンピュートのリソース割当を変更する場合、リソース割当変更手段によってリソース割当量を変更し、スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、ことを特徴とする仮想化基盤とした。
【0024】
このようにすることで、高速であり、かつ粒度の細かいスケーリングを実現できる。
【0025】
請求項8に記載の発明では、リソース監視部は、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視し、スケーリング実施判定部は、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行い、スケーリング方法判定部は、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択し、スケーリング指示部は、前記スケーリング方法判定部が選択したスケーリング方法をリソース払出制御部に対して指示し、前記リソース払出制御部は、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行い、スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、ことを特徴とする仮想化基盤のスケーリング管理方法とした。
【0026】
請求項9に記載の発明では、リソース監視部は、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視し、スケーリング実施判定部は、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行い、スケーリング方法判定部は、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、スケールアウト、スケールアップ、スケールアウトおよびスケールアップの併用のうち何れかのスケーリング方法を選択し、スケーリング指示部は、前記スケーリング方法判定部が選択したスケーリング方法をリソース払出制御部に対して指示し、前記リソース払出制御部は、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行い、スケールアウトまたは併用がスケーリング方法として指示されており、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との余剰がスケールアップによるリソース量よりも大きいならば、前記余剰からスケールアップによるリソース量を減じた量を稼働中の実行環境からリソース割当変更手段によって削除し、かつスケールアップを行わない、ことを特徴とする仮想化基盤のスケーリング管理方法とした。
【0027】
請求項10に記載の発明では、リソース監視部は、複数のコンピュートの負荷、および前記コンピュート上で稼働している実行環境の負荷を監視し、スケーリング実施判定部は、前記リソース監視部の監視情報に基づき、スケーリングの実施判定と必要なリソース量算出を行い、スケーリング方法判定部は、前記スケーリング実施判定部によるスケーリングの実施判定の際、各前記コンピュートのリソースの空きを確認し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースより多い場合、スケールアップによるスケーリング方法を選択し、何れかの実行環境が稼働しているコンピュートのいずれにも空きリソースがない場合、スケールアウトによるスケーリング方法を選択し、何れかの実行環境が稼働しているコンピュートの空きリソースの総和が追加リソースよりも少ない場合、スケールアウトおよびスケールアップの併用によるスケーリング方法を選択し、スケーリング指示部は、前記スケーリング方法判定部が選択したスケーリング方法をリソース払出制御部に対して指示し、前記リソース払出制御部は、各前記コンピュートのリソースの管理と各前記実行環境へのリソースの割当を行い、スケールアップによるスケーリング方法で各前記コンピュートのリソース割当を変更する場合、リソース割当変更手段によってリソース割当量を変更し、スケールアウトまたは併用がスケーリング方法として指示されている場合、スケールアウトのリソース量と実行環境の起動時に用いる仮想ハードウェアのテンプレートに基づくスケールアウトのリソース量との間に余剰があるならば、スケールアップによるリソース量から前記余剰を差し引くか、またはスケールダウンを併用する、ことを特徴とする仮想化基盤のスケーリング管理方法とした。
【0028】
このようにすることで、高速であり、かつ粒度の細かいスケーリングを実現できる。
【発明の効果】
【0029】
本発明によれば、高速であり、かつ粒度の細かいスケーリングを実現することが可能となる。
【図面の簡単な説明】
【0030】
図1】本実施形態に係る仮想化基盤の構成図である。
図2】本実施形態に係るコンピュートと仮想マシンを示すシステム図である。
図3】仮想マシンの起動処理を示すフローチャートである。
図4】クラスタを監視対象にした場合のスケーリング手法の選択処理を示すフローチャートである。
図5】仮想マシンを監視対象にした場合のスケーリング手法の選択処理を示すフローチャートである。
図6】リソース管理テーブルの一例を示す図である。
図7】スケーリング方法とリソース量から、実際にスケールアップまたはスケールアウトするリソース量を算出するフローチャートある。
図8】各コンピュート上で動作するリソースの選択を示すフローチャートである。
図9A】クラスタを監視対象にした場合の初期状態を示す図である。
図9B】クラスタを監視対象にした場合のスケールアップの例を示す図である。
図9C】クラスタを監視対象にした場合のスケールアップの例を示す図である。
図9D】クラスタを監視対象にした場合の併用パターンを示す図である。
図10A】クラスタを監視対象にした場合の初期状態を示す図である。
図10B】クラスタを監視対象にした場合のスケールアウトの例を示す図である。
【発明を実施するための形態】
【0031】
以降、本発明を実施するための形態を、各図を参照して詳細に説明する。本実施形態は、仮想マシンについてのみ着目した実施形態である。
図1は、本実施形態に係る仮想化基盤の構成図である。図2は、本実施形態に係るコンピュートと仮想マシンを示すシステム図である。以下、図1図2とを参照しつつ仮想化基盤の各部構成と概略動作について説明する。
仮想化基盤1は、スケーリング部11と、リソース払出制御部12と、監視部13と、記憶部14とを含んで構成される。
【0032】
この仮想化基盤1は、図2に示すように、仮想化技術を用いてサーバやネットワークといったコンピュート3-1~3-4,…を抽象化・隠蔽し、このコンピュート3-1~3-4,…のうち何れかで動作する仮想マシン2a,2b,…を管理する。各仮想マシン2a,2b,…には、ロードバランサ4が接続され、ローカルネット5を介してインターネット6からトラヒックが振り分けられる。ロードバランサ4も仮想マシンとして構築してもよい。コンピュート3-1~3-4は、仮想マシンごとに、この仮想マシンに割り当てるリソース情報が定義されている仮想マシン設定ファイル31を保持する。この仮想マシン設定ファイル31は、例えばXML形式で記載されている。
【0033】
以下、各コンピュート3-1~3-4を特に区別しないときには、単にコンピュート3と記載する。仮想マシン2a,2b,…を特に区別しないときには、単に仮想マシン2と記載する。仮想マシン2は、ユーザのアプリケーションを実行するための実行環境である。
コンピュート3は、それぞれ自身で動作する仮想マシン2の設定情報を格納する仮想マシン設定ファイル31と、仮想マシン2を制御するための制御プログラムを、不図示のCPUが実行することにより具現化される仮想化層32とを備えている。
【0034】
図1に戻り説明を続ける。スケーリング部11は、スケーリング方法判定部111と、スケーリング指示部112と、スケーリング実施判定部113とを含んで構成される。このスケーリング部11は、スケーリング方法の判定とスケーリングの指示を行う。
スケーリング実施判定部113は、監視部13に含まれるリソース監視部131の監視情報に基づき、スケーリングを実施するか否かを判定し、スケーリングを実施する場合には必要なリソース量を算出する。
【0035】
スケーリング方法判定部111は、リソース払出制御部12に払い出し可能なリソースを問い合わせることで、スケーリングの方法を決定する。スケーリング方法判定部111は、スケーリング実施判定部113によるスケーリングの実施判定の際、各コンピュート3のリソースの空きを確認し、スケーリング方法として、スケールアウト、スケールアップ、スケールアウトとスケールアップの併用のうちいずれかを選択する。
スケーリング指示部112は、スケーリング方法判定部111の選択したスケーリング方法を、リソース払出制御部12に対して指示する。
【0036】
リソース払出制御部12は、リソース管理部121と、リソース抽出選定部122と、仮想マシン制御部123とを含んで構成される。リソース払出制御部12は、各コンピュート3のリソースの管理と各仮想マシン2へのリソースの割当を行う。
【0037】
リソース管理部121は、記憶部14のリソース情報リポジトリ141に基づき、各コンピュート3や各仮想マシン2が使用しているリソース情報を管理する。
リソース抽出選定部122は、リソース管理部121にリソース情報を問い合わせて、割り当てるリソースを決定する。リソース管理部121は、新規に割り当てたリソースの情報を反映する。なおリソース情報は、リソース情報リポジトリ141で管理されている。
【0038】
リソース抽出選定部122は、仮想マシン制御部123にスケーリングの指示を行う。スケーリングとは、仮想マシンの追加や削除、仮想マシンが使用するリソースの割当を変更することをいう。仮想マシン制御部123は、コンピュート3の仮想化層32に対して処理を行い、スケーリング処理を完了させる。
監視部13は、リソース監視部131を含んでいる。このリソース監視部131は、複数のコンピュートの負荷、およびこれらコンピュート上で稼働している仮想マシン2の負荷を監視する。
記憶部14は、リソース情報リポジトリ141と仮想マシンイメージリポジトリ142を含んでいる。記憶部14は、リソースの情報と仮想マシンイメージの管理を行う。
リソース情報リポジトリ141には、各仮想マシンが使用するリソース情報が記載されたリソース管理テーブル1411を含んでいる。仮想マシンイメージリポジトリ142は、各仮想マシンの起動時に用いる仮想ハードウェアのテンプレートや仮想マシンイメージが格納されている。
【0039】
仮想マシン2の追加の場合、仮想化基盤1は、仮想マシンイメージリポジトリ142で管理されている仮想ハードウェアのテンプレートを指定し、仮想ハードウェアテンプレートで規定されたリソース容量で仮想マシンイメージから仮想マシンを起動する。その後、仮想化基盤1は、前段のロードバランサ4の振り分け設定を変更すると共に、リソース監視部131の監視対象も変更する。
仮想マシン2の削除の場合、仮想化基盤1は、前段のロードバランサ4の振り分け設定を変更した後仮想マシン2およびその仮想ハードウェアを削除する。また仮想化基盤1は、リソース監視部131の監視対象も変更する。リソース割当変更の場合、仮想化基盤1は、ホットプラグによりリソース割当量を変更する。なおリソース割当変更手段は、ホットプラグに限定されない。
【0040】
図3は、仮想マシン2の起動処理を示すフローチャートである。
ここで仮想マシン2の起動については、市中の仮想化基盤と同様に行われていることを前提とする。
最初、リソース払出制御部12は、不図示の上位システムからリソース割当要求を受け付ける(S10)。このリソース割当要求とは、具体的にいうと仮想マシン2の起動要求である。リソース払出制御部12内のリソース抽出選定部122は、割当可能リソースを抽出して(S11)、割当リソースを選定する(S12)。ここでリソース抽出選定部122は、割当ポリシや、既に割当てられている仮想マシン2の使用リソース量等を考慮して選定する。ここで割当ポリシとは、例えば非特許文献3に記載のAffinityルールやAnti-Affinityルール、CPU Pinning適用によるCPUの固定割当を行うか否かなどをいう。
非特許文献3:インターネット<URL:https://docs.openstack.org/ocata/config-reference/compute/schedulers.html>
【0041】
リソース管理部121は、リソース情報リポジトリ141のリソース管理テーブル1411(図6参照)を書き換える(S13)。リソース払出制御部12の仮想マシン制御部123は、仮想マシン2を起動する(S14)。
【0042】
ステップS14の仮想マシン2の起動時に、コンピュート3内に仮想マシン設定ファイル31が作成される。この仮想マシン設定ファイル31には、リソースの割当情報等が記載されている。以下の非特許文献4には、仮想マシン設定ファイル31の要素と属性の概要が記載されている。
非特許文献4:インターネット<URL:https://libvirt.org/formatdomain.html>
【0043】
リソース監視部131は、起動した仮想マシン2の情報を監視対象情報に追加して更新する(S15)。最後にリソース払出制御部12は、不図示の上位システムに対してリソース(仮想マシン2)の払い出しを応答し(S16)、図3の処理を終了する。
【0044】
図4は、クラスタを監視対象にした場合のスケーリング手法の選択処理を示すフローチャートである。
最初、リソース監視部131は、例えばCPU使用率、メモリ使用量など負荷状態を示す指標であるメトリック情報を収集する(S20)。
【0045】
スケーリング実施判定部113は、リソース監視部131が収集したメトリック情報に従い、監視対象の負荷が閾値を超えたか否かを判定し(S21)、よってスケーリングを実施するか否かを判定する。この判定に用いるメトリック情報の種類やその閾値などの判定ルールは、事前に設定されている。
【0046】
スケーリング実施判定部113は、監視対象が閾値を超えたならば(Yes)、ステップS23の処理に進み、監視対象が閾値以下ならば(No)、所定時間αの待ち時間(S22)の後、ステップS20の処理に戻る。ここで所定時間αは、監視対象の各コンピュート3の変化速度に応じて設定すればよく、限定されない。
【0047】
スケーリング実施判定部113は、追加が必要なリソース量を算出する(S23)。ここで追加される固定のリソース量や割合の単位は、予め決められている。
【0048】
具体例としてCPU使用率を監視している場合、CPU使用率が70%を超えたら、2コアを追加するというルールや、20%のリソースを追加するルールが考えられる。20%のリソース追加とは、複数の仮想マシン2でクラスタを組んでいる場合において、このクラスタを組む仮想マシン2の合計コア数に20%を乗算して得られるコア数となる。この例以外にも、時系列データの推定モデルを用いてリソース変化を予測してスケーリング量やスケーリングの実施を決定するといったより高度な手法を用いてもよい。監視対象は仮想マシン単位とすることもでき、クラスタ単位とすることも可能であるが、ここではクラスタ単位の負荷を監視対象とする場合の処理を説明する。
【0049】
スケーリング実施判定部113から追加するリソース量を通知されると、スケーリング方法判定部111は、一連の処理を開始する。
最初、スケーリング方法判定部111は、クラスタを構成する仮想マシンのインデックス変数Xを1で初期化し(S24)、空きリソース量Yを0で初期化する(S25)。これらXとYとは、プログラムの内部変数である。
【0050】
次にスケーリング方法判定部111は、リソース管理部121に問い合わせて、クラスタを構成するX個目の仮想マシン2を搭載するコンピュート3内にリソースの空きがあるかを確認する(S26)。更にスケーリング方法判定部111は、当該コンピュート3のリソースの空きが確認済みか否かを判定する(S27)。スケーリング方法判定部111は、リソースの空きを確認済みならば(Yes)、ステップS30に進み、リソースの空きを確認していなかったならば(No)、空きリソース量Yに当該コンピュート3の空きリソースを加えて(S28)、ステップS29に進む。
【0051】
ステップS29において、スケーリング方法判定部111は、空きリソース量Yが追加リソース量よりも大きいか否かを判定する。スケーリング方法判定部111は、空きリソース量Yが追加リソース量以上ならば(Yes)、スケールアップを選択して、図4の処理を終了する。スケーリング方法判定部111は、空きリソース量Yが追加リソース量よりも小さいならば(No)、ステップS30の処理に進む。
【0052】
ステップS30において、スケーリング方法判定部111は、変数Xがクラスタを構成する仮想マシン数と等しいか否かを判定する。スケーリング方法判定部111は、変数Xがクラスタを構成する仮想マシン数と等しいならば(Yes)、ステップS32の処理に進み、変数Xがクラスタを構成する仮想マシン数とは異なるならば(No)、変数Xに1を加算して(S31)、ステップS26の処理に戻る。
【0053】
ステップS32において、スケーリング方法判定部111は、空きリソース量Yが0であるか否かを判定する。スケーリング方法判定部111は、空きリソース量Yが0ならば(Yes)、スケールアウトを選択し、空きリソース量Yが0でないならば(No)、スケールアップとスケールアウトの併用を選択して、図4の処理を終了する。
【0054】
つまり、クラスタを構成する仮想マシンを搭載する各コンピュート内の空きリソースの総和が追加リソースより多い場合はスケールアップが選択される。クラスタを構成する仮想マシンを搭載する各コンピュート内にリソースの空きはあるが追加リソースよりは少ない場合は併用が選択される。クラスタを構成する仮想マシンを搭載する各コンピュート3内にリソースの空きがない場合はスケールアウトが選択される。
【0055】
図5は、仮想マシン2を監視対象にした場合のスケーリング手法の選択処理を示すフローチャートである。
最初、リソース監視部131は、例えばCPU使用率、メモリ使用量など負荷状態を示す指標であるメトリック情報を収集する(S40)。
【0056】
スケーリング実施判定部113は、リソース監視部131が収集したメトリック情報に従い、監視対象の負荷が閾値を超えたか否かを判定し(S41)、よってスケーリングを実施するか否かを判定する。
【0057】
スケーリング実施判定部113は、監視対象が閾値を超えたならば(Yes)、ステップS43の処理に進み、監視対象が閾値以下ならば(No)、所定時間αの待ち時間(S42)の後、ステップS40の処理に戻る。
【0058】
スケーリング実施判定部113は、追加が必要なリソース量を算出する(S43)。ここで追加される固定のリソース量や割合の単位は、予め決められている。スケーリング実施判定部113から追加するリソース量を通知されると、スケーリング方法判定部111は、一連の処理を開始する。
【0059】
最初、スケーリング方法判定部111は、リソース管理部121に問い合わせて、この仮想マシンを搭載する同一コンピュート3内にリソースの空きがあるか否かを確認する(S44)。
【0060】
次にスケーリング方法判定部111は、同一コンピュート3内の空きリソースが追加リソース量よりも多いか否かを判定する(S45)。スケーリング方法判定部111は、同一コンピュート3内の空きリソースが追加リソース量以上ならば(Yes)、スケールアップを選択して、図5の処理を終了する。
スケーリング方法判定部111は、同一コンピュート3内の空きリソースが追加リソース量未満ならば(No)、同一コンピュートの空きリソースが0であるか否かを判定する(S46)。スケーリング方法判定部111は、空きリソースが0ならば(Yes)、スケールアウトを選択して図5の処理を終了し、空きリソースが0でないならば(No)、スケールアップとスケールアウトの併用を選択して、図5の処理を終了する。
【0061】
図6は、リソース管理テーブル1411の一例を示す図である。
リソース管理テーブル1411は、リソースの割当状況を管理するために利用され、Compute ID欄と多重率欄と、使用率欄と、割当先欄とを含む各レコードによって構成される。なお、リソース管理テーブル1411の各レコードは、図6の各行に対応する。
【0062】
Compute ID欄には、当該レコードに係るコンピュート3の識別情報が格納される。
多重率欄には、コンピュート3間の性能比率が格納される。図6では、Compute ID#0,#1の多重率欄には100%が格納されており、Compute ID#0のコンピュート3とCompute ID#1のコンピュート3とが性能の基準であることを示している。更にCompute ID#2,#3の多重率欄には、150%が格納されており、Compute ID#2,#3のコンピュート3は、Compute ID#0,#1のコンピュート3に対して、それぞれ1.5倍の性能を有していることを示している。この多重率欄の情報により、コンピュート3間の性能差分を吸収することが可能である。
【0063】
使用率欄には、各コンピュート3における使用リソースの数値が格納される。なお、この使用率欄の値は、性能基準のコンピュート3に対する当該コンピュートにおける使用リソースの割合である。多重率欄の値から使用率欄の値を減算することで、当該コンピュート3における空きリソース量を算出することができる。図6では、Compute ID#0の使用率欄には50%が格納され、Compute ID#1の使用率欄には70%が格納され、Compute ID#2の使用率欄には20%が格納され、Compute ID#3の使用率欄には50%が格納されている。なお図6において使用率欄は1次元であるが、CPUやメモリやディスク使用量など多次元に拡張してもよい。
【0064】
割当先欄には、各コンピュートに割り当てられた仮想マシンの識別情報が格納される。図6では、Compute ID#0の割当先欄にVM#01,VM#05が格納され、Compute ID#1の割当先欄にVM#02,VM#10,VM#13が格納され、Compute ID#2の割当先欄にVM#08が格納され、Compute ID#3の割当先欄にVM#20,VM#04が格納されている。
【0065】
リソース管理テーブル1411を用いる際、スケーリング実施判定部113が算出した追加リソース量と使用率の変換は事前に決められているものとする。例えば、使用率25%が2コアに該当するなどである。またスケーリング実施判定部113は、多重率が使用率よりも大きい場合、リソースの空きがあると判定する。例えば、多重率100%のコンピュートで使用率が50%の場合、50%のリソースの空きがある。この50%のリソースの空きは、例えば4コア分の空きに相当する。
【0066】
図7は、スケーリング方法とリソース量から、実際にスケールアップまたはスケールアウトするリソース量を算出するフローチャートある。
最初、スケーリング指示部112は、スケーリング方法を判定して分岐する(S50)。スケーリング指示部112は、スケーリング方法がスケールアップならば、ステップS51の処理に進み、スケールアウトならばステップS58の処理に進み、これらの併用ならばステップS52の処理に進む。
【0067】
《スケールアップの場合》
ステップS51において、スケーリング指示部112は、リソース抽出選定部122によってスケールアップを指示されたリソース量(例えば2コア)を、実際にスケールアウトするリソース量として通知し、図7の処理を終了する。
【0068】
《スケールアウトの場合》
ステップS58において、スケーリング指示部112は、スケーリング実施判定部113から指示されたリソース量とVMの起動時に用いる仮想ハードウェアのテンプレートにより、実際にスケールアウトするリソース量を決定する。なお、このテンプレートのことを略して「VMテンプレート」と記載する。本実施形態のテンプレートには、4コア分のCPUを使用することが記載されているので、スケールアウトする単位は4の倍数となる。
【0069】
スケーリング指示部112は、決定したスケールアウトのリソース量がスケーリング実施判定部113から指示されたスケールアウトのリソース量と等しいか否かを判定する(S59)。スケーリング指示部112は、決定したスケールアウトのリソース量が指示されたスケールアウトのリソース量と等しくないならば(No)、リソース抽出選定部122に、差分のリソース量と実際にスケールアウトするリソース量を通知し(S60)、図7の処理を終了する。
具体的にいうと、スケールアウト6コアが指示され、VMのテンプレートが4コアならは、2つのVMの追加となる。このときスケーリング指示部112が決定したスケールアウトのリソース量は8コアとなり、2個のコアが差分のリソース量となる。この差分の2コアは、図8のステップS80の処理で削除(スケールダウン)される。
スケーリング指示部112は、決定したリソース量が指定されたリソース量と等しいならば(Yes)、リソース抽出選定部122に、スケールアウトするリソース量(例えば4コア)を通知し(S61)、図7の処理を終了する。
【0070】
《併用の場合》
ステップS52において、スケーリング指示部112は、スケーリング実施判定部113から指示されたスケールアウトのリソース量とVMテンプレートにより、実際にスケールアウトするリソース量を決定する。スケーリング指示部112は、決定したスケールアウトするリソース量がスケーリング実施判定部113から指定されたスケールアウトのリソース量よりも大きいか否かを判定する(S53)。スケーリング指示部112は、決定したスケールアウトするリソース量が指示されたスケールアウトのリソース量と等しいならば(Yes)、リソース抽出選定部122に、実際にスケールアップするリソース量とスケールアウトするリソース量を通知し(S57)、図7の処理を終了する。
具体的にいうと、スケーリング実施判定部113から指定されたスケールアウトのリソース量がVMテンプレートのリソース量の倍数ならば、スケーリング指示部112が決定したスケールアウトするリソース量は、実際にスケールアウトするリソース量と等しくなる。また、スケーリング指示部112は、スケーリング実施判定部113から指示されたスケールアップするリソース量を、実際にスケールアップするリソース量としてリソース抽出選定部122に通知する。
【0071】
スケーリング指示部112は、決定したリソース量が指定されたリソース量と等しくないならば(No)、スケールアップを指示されたリソース量から余剰のコア数を引いて実際にスケールアップ量を決定する。(S54)。具体的にいうと、スケールアウト7コアが指示され、VMのテンプレートが4コアならは、2つのVMの追加となる。このときスケーリング指示部112が決定したスケールアウトのリソース量は8コアとなり、1個のコアが余剰となる。
【0072】
更にスケーリング指示部112は、余剰のコア数よりもスケールアップを指示されたリソース量が多いか否かを判定する(S55)。スケーリング指示部112は、余剰のコア数がスケールアップを指示されたリソース量よりも多くなかったならば(No)、リソース抽出選定部122に、ステップS54で決定したスケールアップするリソース量とステップS52で決定したスケールアウトするリソース量を通知し(S57)、図7の処理を終了する。
具体的にいうと、スケールアウト7コアとスケールアップ2コアが指示され、VMのテンプレートが4コアならは、2つのVMの追加となる。このときスケーリング指示部112が決定したスケールアウトのリソース量は8コアとなり、1個のコアが余剰となる。スケーリング指示部112は、スケールアップを指示されたリソース量の2コアから、余剰の1コアを差し引くことで、実際にスケールアップされるリソース量の1コアを算出する。
【0073】
ステップS55において、スケーリング指示部112は、余剰のコア数がスケールアップを指示されたリソース量よりも多かったならば(Yes)、余剰のコア数からスケールアップを指示されたリソース量を引いて差分リソース量を決定し(S56)、リソース抽出選定部122に、差分のリソース量とステップS52で決定したスケールアウトするリソース量を通知し(S60)、図7の処理を終了する。
具体的にいうと、スケールアウト6コアとスケールアップ1コアが指示され、VMのテンプレートが4コアならは、2つのVMの追加となる。このときスケーリング指示部112が決定したスケールアウトのリソース量は8コアとなり、2個のコアが余剰となる。この余剰のコア数はスケールアップの1コアよりも多いので、余剰のコア数からスケールアップを指示されたリソース量を引いた差分のリソース量は1コアとなる。この差分の1コアは、図8のステップS80の処理で削除(スケールダウン)される。
【0074】
図8は、各コンピュート上で動作するリソースの選択を示すフローチャートである。
リソース抽出選定部122は、再びリソース管理部121に空きリソースを問い合せ、スケールアップ/スケールアウト/差分のリソース量の指示を受信する(S70)。
【0075】
リソース抽出選定部122は、スケールアップのリソース量の指示が有るか否かを判定する(S71)。リソース抽出選定部122は、スケールアップ指示が有るならば(Yes)、同一コンピュートの空きリソースとスケールアップのリソース量を比較し(S72)、リソースが確保可能であるか否かを判定する(S73)。リソース抽出選定部122は、スケールアップ指示が無いならば(No)、ステップS76の処理に進む。
【0076】
ステップS73において、リソース抽出選定部122は、リソースが確保可能ならば(Yes)、仮想マシン制御部123に同一コンピュートへのリソースの追加を指示し(S74)、ステップS76の処理に進む。仮想マシン制御部123は、スケールアップの際、ホットプラグを用いて指定されたリソース量を追加する。
ステップS73において、リソース抽出選定部122は、リソースが確保できないならば(No)、NG応答をスケーリング指示部112に返して(S75)、いったん終了する。これにより、スケーリング部11は、再びスケーリング方法の判定から繰り返す。
【0077】
ステップS76において、リソース抽出選定部122は、スケールアウトのリソース量の指示が有るか否かを判定する。リソース抽出選定部122は、スケールアウト指示が有るならば(Yes)、仮想マシン制御部123に仮想マシンを起動可能な各コンピュートにおける仮想マシンの起動を指示し(S77)、ステップS78の処理に進む。リソース抽出選定部122は、スケールアウト指示が無いならば(No)、ステップS78の処理に進む。
【0078】
ステップS78において、リソース抽出選定部122は、差分のリソース量の指示が有るか否かを判定する。リソース抽出選定部122は、差分指示が有るならば(Yes)、CPUコア数が最小の仮想マシンを選択し(S79)、差分をホットプラグ機能で削除すると(S80)、図8の処理を終了する。リソース抽出選定部122は、差分指示が無いならば(No)、図8の処理を終了する。
【0079】
併用およびスケールアウトの際には、事前に準備されたVMのテンプレートを使用してVMを追加する。このVMのテンプレートは、VM起動時に使用するものと同様である。
併用の際、VMのテンプレートのCPUリソースがスケールアウト指定されたCPUリソースより大きいならば、差分のCPUリソースについてはスケールアップリソース量から差し引く。その上でさらに差分が生じる場合、仮想化基盤1は、ホットプラグ機能を使って既存のCPUリソースを削除する。CPUリソースを削除する対象となる仮想マシンは、クラスタ群の中で最もCPUコア数の小さい仮想マシンを選ぶとよい。
他にもCPUコア数の平均値から最も離れているコア数の仮想マシンを選ぶ、ランダムに仮想マシンを選ぶ、などの選択肢も取り得る。
【0080】
図9Aは、クラスタを監視対象にした場合の初期状態を示す図である。
監視対象は、コンピュート#1~#3からなるクラスタである。各コンピュート#1~3は、それぞれ8コアのCPUを備えている。
【0081】
初期状態において、コンピュート#1には、VM#1-1とVM#2-1とが稼働している。コンピュート#1は、VM#1-1が4コアを占有し、VM#2-1が2コアを占有している。コンピュート#1の使用率は、75%である。
【0082】
コンピュート#2には、VM#1-2が稼働している。コンピュート#2は、VM#1-2が6コアを占有している。コンピュート#2の使用率は、75%である。
コンピュート#3には、どのVMも稼働しておらず、その使用率は0%である。
【0083】
図9Bは、クラスタを監視対象にした場合のスケールアップの一例を示す図である。
図9Bに示すクラスタでは、初期状態に対してVM#1に2コア分のCPUがスケールアップされている。VM#1-1は、2コア分だけスケールアップしている。仮想化基盤1は、ホットプラグ機能を用いてVM#1-1をスケールアップしているため、短時間で処理を完了できる。
【0084】
図9Cは、クラスタを監視対象にした場合のスケールアップの他の例を示す図である。
図9Cに示すクラスタでは、初期状態に対してVM#1に4コア分のCPUがスケールアップされている。VM#1-2は、2コア分だけスケールアップしている。仮想化基盤1は、ホットプラグ機能を用いてVM#1-2をスケールアップしているため、短時間で処理を完了できる。
【0085】
図9Dは、クラスタを監視対象にした場合の併用パターンを示す図である。
図9Dに示すクラスタでは、初期状態に対して、VM#1に6コア分のCPUがスケールアップされている。ここではコンピュート#3上に新たにVM#1-3が稼働している。VM#1-3は、4コアを占有している。仮想化基盤1は、ホットプラグ機能を用いてVM#1-3をスケールアウトし、かつ、差分のリソース量だけVM#1-1からスケールダウンしているため、細かな粒度でスケーリングを制御できる。
【0086】
図10Aは、クラスタを監視対象にした場合の初期状態を示す図である。
初期状態において、コンピュート#1には、VM#1-1が稼働している。このVM#1-1は、コンピュート#1の8コアを全て占有している。コンピュート#1の使用率は、100%である。
【0087】
コンピュート#2には、VM#1-2が稼働している。このVM#1-2は、コンピュート#1の8コアを全て占有している。コンピュート#2の使用率は、100%である。
コンピュート#3には、どのVMも稼働しておらず、その使用率は0%である。
【0088】
図10Bは、クラスタを監視対象にした場合のスケールアウトの例を示す図である。
図10Bに示すクラスタでは、初期状態に対して2コア分のCPUがスケールアップされている。ここではVM#1-3が4コア分だけスケールアップしており、差分のリソース量である2コア分は、ホットプラグ機能を用いてVM#1-1をスケールダウンしている。これによりCPUコアを過剰に占有することがなくなる。
【0089】
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a),(b)のようなものがある。
【0090】
(a) スケールアウトやスケールアップの対象は、CPUリソースに限定されず、メモリリソースやディスクリソースなどであってもよい。
(b) 上記実施形態では、実行環境として仮想マシンが用いられた例を記載したが、実行環境としてコンテナを用いて、このコンテナに対するリソースの割り当てに適用してもよく、限定されない。
【符号の説明】
【0091】
1 仮想化基盤
11 スケーリング部
111 スケーリング方法判定部
112 スケーリング指示部
113 スケーリング実施判定部
12 リソース払出制御部
121 リソース管理部
122 リソース抽出選定部
123 仮想マシン制御部
13 監視部
131 リソース監視部
14 記憶部
141 リソース情報リポジトリ
1411 リソース管理テーブル
142 仮想マシンイメージリポジトリ
2 仮想マシン (実行環境)
3,3-1~3-4 コンピュート
31 仮想マシン設定ファイル
32 仮想化層
4 ロードバランサ
5 ローカルネット
6 インターネット
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図10A
図10B