(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023147397
(43)【公開日】2023-10-13
(54)【発明の名称】制御装置、プログラム、及び制御方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20231005BHJP
G06F 9/455 20180101ALI20231005BHJP
【FI】
G06F9/50 120A
G06F9/455 150
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022054868
(22)【出願日】2022-03-30
(71)【出願人】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】高野 祐介
(72)【発明者】
【氏名】カーン アシック
(57)【要約】 (修正有)
【課題】複数のゲストOSに対する仮想リソースを制御する制御装置を提供する。
【解決手段】スケール制御装置は、複数のゲストOSに対してホストの物理リソースの量を超える仮想リソースを割り当てるリソース割当部、複数のゲストOSの仮想リソースの利用量の合計がホストの物理リソースの量を超えないように、各ゲストOSの仮想リソースの利用可能量の上限を制御する上限制御部、ホストのリソースを割り当ててアプリケーションの実行単位をホスト上に生成する実行単位生成部、実行単位生成部によって生成された第1の実行単位のリソース量を変更することを決定する変更決定部及び第1の実行単位と同一設定で、第1の実行単位とは異なる量のリソースを割り当てた第2の実行単位を生成し、第1の実行単位と第2の実行単位で同期処理を実行させた後、第1の実行単位のアプリケーションの実行主体を第2の実行単位に切り替えさせるリソース変更制御部を備える。
【選択図】なし
【特許請求の範囲】
【請求項1】
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当部と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御部と
を備える制御装置。
【請求項2】
前記上限制御部は、前記複数のゲストOSの状況に応じて、前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えない範囲内で、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を調整する、請求項1に記載の制御装置。
【請求項3】
前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を下回った場合に、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を増加させる、請求項2に記載の制御装置。
【請求項4】
前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を超えた場合に、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を増加させる、請求項2に記載の制御装置。
【請求項5】
前記リソース割当部は、前記複数のゲストOSに対して、前記ホストが有するCPUリソースの量を超える量の仮想CPUリソースを割り当て、
前記上限制御部は、前記複数のゲストOSによる前記仮想CPUリソースの利用量の合計が前記ホストの前記CPUリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想CPUリソースの利用可能量の上限を制御する、請求項1から4のいずれか一項に記載の制御装置。
【請求項6】
前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおけるCPU制御プロセスの起動管理によって並列処理数を減少させることによって、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を減少させる、請求項5に記載の制御装置。
【請求項7】
前記リソース割当部は、前記複数のゲストOSに対して、前記ホストが有するメモリリソースの量を超える量の仮想メモリリソースを割り当て、
前記上限制御部は、前記複数のゲストOSによる前記仮想メモリリソースの利用量の合計が前記ホストの前記メモリリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想メモリリソースの利用可能量の上限を制御する、請求項1から4のいずれか一項に記載の制御装置。
【請求項8】
前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにメモリ領域を再構築させて、前記第1のゲストOSの前記仮想メモリリソースの利用可能量の上限を減少させる、請求項7に記載の制御装置。
【請求項9】
ホストのリソースを割り当ててアプリケーションの実行単位を前記ホスト上に生成する実行単位生成部と、
前記実行単位生成部によって生成された第1の実行単位のリソース量を変更することを決定する変更決定部と、
前記変更決定部により変更することが決定された場合に、前記第1の実行単位と同一設定であり、前記第1の実行単位とは異なる量のリソースを割り当てた第2の実行単位を生成させ、前記第1の実行単位と前記第2の実行単位との間で同期処理を実行させた後、前記第1の実行単位のアプリケーションの実行主体を前記第2の実行単位に切り替えさせる変更制御部と
を備える制御装置。
【請求項10】
前記変更制御部は、前記変更決定部によって、前記第1の実行単位のリソース量を減少させることが決定された場合に、前記第1の実行単位と同一設定であり、前記第1の実行単位よりも少ない量のリソースを割り当てた前記第2の実行単位を生成させ、前記第1の実行単位と前記第2の実行単位との間で同期処理を実行させた後、前記第1の実行単位のアプリケーションの実行主体を前記第2の実行単位に切り替えさせる、請求項9に記載の制御装置。
【請求項11】
前記変更制御部は、前記変更決定部によって、前記第1の実行単位のリソース量を増加させることが決定された場合に、前記第1の実行単位と同一設定であり、前記第1の実行単位よりも多い量のリソースを割り当てた前記第2の実行単位を生成させ、前記第1の実行単位と前記第2の実行単位との間で同期処理を実行させた後、前記第1の実行単位のアプリケーションの実行主体を前記第2の実行単位に切り替えさせる、請求項9に記載の制御装置。
【請求項12】
前記実行単位生成部は、割当リソース情報を含む一の実行単位テンプレートを用いて前記第1の実行単位を生成し、
前記変更制御部は、前記割当リソース情報を変更した前記一の実行単位テンプレートを用いて前記第2の実行単位を生成する、請求項9から11のいずれか一項に記載の制御装置。
【請求項13】
前記変更制御部は、前記第1の実行単位の前記アプリケーションの実行主体を前記第2の実行単位に切り替えさせた後、前記第1の実行単位を削除する、請求項9から12のいずれか一項に記載の制御装置。
【請求項14】
前記変更制御部は、前記第1の実行単位の前記アプリケーションの実行主体を前記第2の実行単位に切り替えさせた後、予め定められた条件が満たされたことに応じて、前記第2の実行単位と前記第1の実行単位の間で同期処理を実行させた後、前記第2の実行単位の前記アプリケーションの実行主体を前記第1の実行単位に切り替えさせる、請求項9から12のいずれか一項に記載の制御装置。
【請求項15】
前記実行単位は、仮想マシン又はコンテナである、請求項9から14のいずれか一項に記載の制御装置。
【請求項16】
コンピュータを、請求項1から15のいずれか一項に記載の制御装置として機能させるためのプログラム。
【請求項17】
コンピュータによって実行される制御方法であって、
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当段階と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御段階と
を備える制御方法。
【請求項18】
コンピュータによって実行される制御方法であって、
ホストのリソースを割り当ててアプリケーションの実行単位を前記ホスト上に生成する実行単位生成段階と、
前記実行単位生成段階において生成された前記実行単位のリソース量を変更することを決定する変更決定段階と、
前記実行単位と同一設定であり、前記実行単位とは異なる量のリソースを割り当てた他の実行単位を生成し、前記実行単位と前記他の実行単位の間で同期処理を実行させた後、前記実行単位のアプリケーションの実行主体を前記他の実行単位に切り替えさせるリソース変更制御段階と
を備える制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、プログラム、及び制御方法に関する。
【背景技術】
【0002】
特許文献1には、仮想マシンに対するリソースの割り当て量の変動を制御するための技術について記載されている。特許文献2には、オーバーコミットが発生しないようにリソース配分を制御するための技術について記載されている。特許文献3には、仮想マシンの適切な配備を実現するための技術について記載されている。
[先行技術文献]
[特許文献]
[特許文献1]特開2012-190109号公報
[特許文献2]特開2014-130413号公報
[特許文献3]特開2018-028746号公報
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の一実施態様によれば、制御装置が提供される。前記制御装置は、ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当部を備えてよい。前記制御装置は、前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御部を備えてよい。
【0004】
前記上限制御部は、前記複数のゲストOSの状況に応じて、前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えない範囲内で、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を調整してよい。前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を下回った場合に、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を増加させてよい。前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を超えた場合に、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を増加させてよい。
【0005】
前記リソース割当部は、前記複数のゲストOSに対して、前記ホストが有するCPUリソースの量を超える量の仮想CPUリソースを割り当ててよく、前記上限制御部は、前記複数のゲストOSによる前記仮想CPUリソースの利用量の合計が前記ホストの前記CPUリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想CPUリソースの利用可能量の上限を制御してよい。前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおけるCPU制御プロセスの起動管理によって並列処理数を減少させることによって、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を減少させてよい。
【0006】
前記リソース割当部は、前記複数のゲストOSに対して、前記ホストが有するメモリリソースの量を超える量の仮想メモリリソースを割り当ててよく、前記上限制御部は、前記複数のゲストOSによる前記仮想メモリリソースの利用量の合計が前記ホストの前記メモリリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想メモリリソースの利用可能量の上限を制御してよい。前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにメモリ領域を再構築させて、前記第1のゲストOSの前記仮想メモリリソースの利用可能量の上限を減少させてよい。
【0007】
本発明の一実施態様によれば、制御装置が提供される。前記制御装置は、ホストのリソースを割り当ててアプリケーションの実行単位を前記ホスト上に生成する実行単位生成部を備えてよい。前記制御装置は、前記実行単位生成部によって生成された第1の実行単位のリソース量を変更することを決定する変更決定部を備えてよい。前記制御装置は、前記変更決定部により変更することが決定された場合に、前記第1の実行単位と同一設定であり、前記第1の実行単位とは異なる量のリソースを割り当てた第2の実行単位を生成させ、前記第1の実行単位と前記第2の実行単位との間で同期処理を実行させた後、前記第1の実行単位のアプリケーションの実行主体を前記第2の実行単位に切り替えさせる変更制御部を備えてよい。
【0008】
前記変更制御部は、前記変更決定部によって、前記第1の実行単位のリソース量を減少させることが決定された場合に、前記第1の実行単位と同一設定であり、前記第1の実行単位よりも少ない量のリソースを割り当てた前記第2の実行単位を生成させ、前記第1の実行単位と前記第2の実行単位との間で同期処理を実行させた後、前記第1の実行単位のアプリケーションの実行主体を前記第2の実行単位に切り替えさせてよい。前記変更制御部は、前記変更決定部によって、前記第1の実行単位のリソース量を増加させることが決定された場合に、前記第1の実行単位と同一設定であり、前記第1の実行単位よりも多い量のリソースを割り当てた前記第2の実行単位を生成させ、前記第1の実行単位と前記第2の実行単位との間で同期処理を実行させた後、前記第1の実行単位のアプリケーションの実行主体を前記第2の実行単位に切り替えさせてよい。
【0009】
前記実行単位生成部は、割当リソース情報を含む一の実行単位テンプレートを用いて前記第1の実行単位を生成してよく、前記変更制御部は、前記割当リソース情報を変更した前記一の実行単位テンプレートを用いて前記第2の実行単位を生成してよい。前記変更制御部は、前記第1の実行単位の前記アプリケーションの実行主体を前記第2の実行単位に切り替えさせた後、前記第1の実行単位を削除してよい。前記変更制御部は、前記第1の実行単位の前記アプリケーションの実行主体を前記第2の実行単位に切り替えさせた後、予め定められた条件が満たされたことに応じて、前記第2の実行単位と前記第1の実行単位の間で同期処理を実行させた後、前記第2の実行単位の前記アプリケーションの実行主体を前記第1の実行単位に切り替えさせてよい。前記実行単位は、仮想マシン又はコンテナであってよい。
【0010】
本発明の一実施態様によれば、コンピュータを、前記制御装置として機能させるためのプログラムが提供される。
【0011】
本発明の一実施態様によれば、コンピュータによって実行される制御方法が提供される。前記制御方法は、ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当段階を備えてよい。前記制御方法は、前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御段階を備えてよい。
【0012】
本発明の一実施態様によれば、コンピュータによって実行される制御方法が提供される。前記制御方法は、ホストのリソースを割り当ててアプリケーションの実行単位を前記ホスト上に生成する実行単位生成段階を備えてよい。前記制御方法は、前記実行単位生成段階において生成された前記実行単位のリソース量を変更することを決定する変更決定部を備えてよい。前記制御方法は、前記実行単位と同一設定であり、前記実行単位とは異なる量のリソースを割り当てた他の実行単位を生成し、前記実行単位と前記他の実行単位の間で同期処理を実行させた後、前記実行単位のアプリケーションの実行主体を前記他の実行単位に切り替えさせるリソース変更制御段階を備えてよい。
【0013】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0014】
【
図1】スケール制御装置100の一例を概略的に示す。
【
図2】スケール制御装置100による制御内容について説明するための説明図である。
【
図3】スケール制御装置100による制御内容について説明するための説明図である。
【
図4】スケール制御装置100の機能構成の一例を概略的に示す。
【
図5】スケール制御装置100による制御内容について説明するための説明図である。
【
図6】スケール制御装置100による制御内容について説明するための説明図である。
【
図7】スケール制御装置100の機能構成の一例を概略的に示す。
【
図8】スケール制御装置100として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。
【発明を実施するための形態】
【0015】
ハイパーバイザ型仮想化において、稼働の増減(サービス使用の増減)が発生した際に、アプリケーションが使用可能なリソースを変更するスケーリング手法が定義されている。また、NFV(Network Functions Virtualization)では、要求される信頼性・性能の観点から、予測困難な性能劣化を回避するため、複数アプリケーションにリソースの重複割り当てをしないことが一般的である。定義されているスケーリング手法として、スケールアップ/ダウン及びスケールアウト/インがある。スケールアップ/ダウンは、インスタンスに割り当てるリソース量を増減させることである。スケールアウト/インは、インスタンス数を増減させることである。論理的に、スケールアップ/ダウンは、スケールアウト/インに比べて、リソース制御の柔軟性が高い点と、アプリケーション設定変更を最小化できる点とで優位である。
【0016】
現状、ステートフルなアプリケーションのスケールアップ/アウトは、VM仮想化において技術的に直接動的なリソースの変更ができないため、柔軟なリソース制御が実現できていない。このため、ステートフル情報を維持したまま最適なリソースの変更をすることができない。
【0017】
本実施形態では、例えば、ホスト上に、CPU及びメモリ等のリソースのオーバーコミット可として、ゲストOSを起動する。そして、外部のスケール制御装置100から、内部で利用できるリソース上限を制御することにより、オーバーコミットでありながら、ホストリソースの上限を超えた、仮想リソースの利用を防ぎ、リソースの効率利用を実現する。
【0018】
また、例えば、ホスト上の、アプリケーションの実行単位(VM(Virtual Machine:仮想マシン)、コンテナ等)のリソースを変更する場合に、サイズ以外同一設定の実行単位を生成し、必要な情報の同期をしたうえで、旧実行単位を削除する。これにより、ステートフル情報を維持したままのスケールダウンを可能とすることができ、最適なリソース変更の実現に貢献することができる。
【0019】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0020】
図1は、スケール制御装置100の一例を概略的に示す。スケール制御装置100は、制御装置の一例であってよい。スケール制御装置100は、ホスト上のアプリケーションが利用可能なリソースを変更するスケーリング制御を実行する。スケール制御装置100は、複数のホストを対象としてよい。
図1では、ホスト310及びホスト350を図示しているが、一例であり、スケール制御装置100が対象とするホストの数はこれに限らず、3つ以上であってもよい。
【0021】
スケール制御装置100は、仮想化制御装置200を介して、ホスト310及びホスト350に対する制御を実行してよい。仮想化制御装置200は、仮想化対象のホストのコントローラであってよい。なお、スケール制御装置100と仮想化制御装置200とは一体であってもよい。すなわち、スケール制御装置100は、仮想化制御装置200の機能を備えてもよい。
【0022】
スケール制御装置100は、例えば、ホスト310上で動作する複数のゲストOSに対して、ホスト310が有する物理リソースの量を超える量の仮想リソースを割り当て、複数のゲストOSによる仮想リソースの利用量の合計がホスト310の物理リソースの量を超えないように、複数のゲストOSのそれぞれの仮想リソースの利用可能量の上限を制御する。
【0023】
スケール制御装置100は、例えば、ホスト310上の第1の実行単位のリソース量を変更する場合に、第1の実行単位と同一設定であり、第1の実行単位とは異なる量のリソースを割り当てた第2の実行単位をホスト350上に生成し、第1の実行単位と第2の実行単位との間で同期処理を実行させた後、第1の実行単位のアプリケーションの実行主体を第2の実行単位に切り替えさせる。
【0024】
図2は、スケール制御装置100による制御内容について説明するための説明図である。
図2では、説明の便宜上、ホスト310が、6つのCPUリソース320を有しており、ホスト310上に、ゲストOS410及びゲストOS450を構成する場合を例示する。
【0025】
スケール制御装置100は、CPUリソース320を超える量の仮想CPUリソースをゲストOS410及びゲストOS450に割り当てる。
図2に示す例では、ゲストOS410に4つの仮想CPUリソース420が割り当てられ、ゲストOS450に4つの仮想CPUリソース460が割り当てられている。
【0026】
スケール制御装置100は、ゲストOS410及びゲストOS450による仮想CPUリソースの利用量の合計がCPUリソース320の量を超えないように、ゲストOS410及びゲストOS450のそれぞれの仮想CPUリソースの利用可能量の上限を制御する。スケール制御装置100は、ゲストOS410のプロセス管理412と、ゲストOS450のプロセス管理452とを制御することによって、仮想CPUリソースの利用可能量の上限を制御してよい。
図2に示す例では、ゲストOS410の上限を4とし、ゲストOS450の上限を2としている。
【0027】
スケール制御装置100は、ゲストOS410及びゲストOS450の状況に応じて、ゲストOS410及びゲストOS450による仮想CPUリソースの利用量の合計がCPUリソース320の量を超えない範囲内で、ゲストOS410及びゲストOS450のそれぞれの仮想CPUリソースの利用可能量の上限を調整してよい。
【0028】
スケール制御装置100は、アプリプロセス414による仮想CPUリソース420の利用状況を監視してよい。スケール制御装置100は、アプリプロセス454による仮想CPUリソース460の利用状況を監視してよい。
【0029】
スケール制御装置100は、例えば、ゲストOS410において、4つの仮想CPUリソース420のうちの1つが利用されていない場合に、ゲストOS410の仮想CPUリソースの利用可能量の上限を4から3に変更する。これにより、ステートフル情報を維持したまま容易にスケールダウンを実現することができる。スケール制御装置100は、例えば、ゲストOS410におけるCPU制御プロセスの起動管理によって並列処理数を減少させることによって、ゲストOS410の仮想CPUリソースの利用可能量の上限を減少させてよい。そして、スケール制御装置100は、ゲストOS450の仮想CPUリソースの利用可能量の上限を2から3に変更してよい。これにより、容易にスケールアップを実現することができる。
【0030】
図3は、スケール制御装置100による制御内容について説明するための説明図である。
図3では、説明の便宜上、ホスト310が、6つのメモリリソース330を有しており、ホスト310上に、ゲストOS410及びゲストOS450を構成する場合を例示する。
【0031】
スケール制御装置100は、メモリリソース330を超える量の仮想メモリリソースをゲストOS410及びゲストOS450に割り当てる。
図2に示す例では、ゲストOS410に4つの仮想メモリリソース430が割り当てられ、ゲストOS450に4つの仮想メモリリソース470が割り当てられている。
【0032】
スケール制御装置100は、ゲストOS410及びゲストOS450による仮想メモリリソースの利用量の合計がメモリリソース330の量を超えないように、ゲストOS410及びゲストOS450のそれぞれの仮想メモリリソースの利用可能量の上限を制御する。スケール制御装置100は、ゲストOS410のプロセス管理412と、ゲストOS450のプロセス管理452とを制御することによって、仮想メモリリソースの利用可能量の上限を制御してよい。
図3に示す例では、ゲストOS410の上限を4とし、ゲストOS450の上限を2としている。
【0033】
スケール制御装置100は、ゲストOS410及びゲストOS450の状況に応じて、ゲストOS410及びゲストOS450による仮想メモリリソースの利用量の合計がメモリリソース330の量を超えない範囲内で、ゲストOS410及びゲストOS450のそれぞれの仮想メモリリソースの利用可能量の上限を調整してよい。
【0034】
スケール制御装置100は、アプリプロセス414による仮想メモリリソース430の利用状況を監視してよい。スケール制御装置100は、アプリプロセス454による仮想メモリリソース470の利用状況を監視してよい。
【0035】
スケール制御装置100は、例えば、ゲストOS410において、4つの仮想メモリリソース430のうちの2つが利用されていない場合に、ゲストOS410の仮想メモリリソースの利用可能量の上限を4から2に変更する。これにより、ステートフル情報を維持したまま容易にスケールダウンを実現することができる。スケール制御装置100は、例えば、ゲストOS410にメモリ領域を再構築させて、ゲストOS410の仮想メモリリソースの利用可能量の上限を減少させてよい。この場合、再構築のための領域が必要となり、割当量の半分が最大量となる。そして、スケール制御装置100は、ゲストOS450の仮想メモリリソースの利用可能量の上限を2から4に変更してよい。これにより、容易にスケールアップを実現することができる。
【0036】
図4は、スケール制御装置100の機能構成の一例を概略的に示す。スケール制御装置100は、記憶部102、登録部104、リソース割当部106、性能監視部108、及び上限制御部110を備える。
【0037】
登録部104は、各種情報を登録する。登録部104は、例えば、スケール制御装置100のオペレータの指示に従って各種情報を登録する。登録部104は、例えば、管理対象のホストの物理リソースの情報を登録する。登録部104は、例えば、ホスト上に生成するゲストOSに関する情報を登録する。登録部104は、例えば、ホスト上で動作する複数のゲストOSに対して割り当てる仮想リソースの量の初期値を登録する。登録部104が登録した情報は、記憶部102に記憶される。
【0038】
リソース割当部106は、ホスト上で動作する複数のゲストOSに対して、ホストが有する物理リソースの量を超える量の仮想リソースを割り当てる。リソース割当部106は、記憶部102に記憶されている、ホストの物理リソースの情報と、複数のゲストOSの情報とから、自動的に複数のゲストOSのそれぞれに対して割り当てる仮想リソースの量を決定してよい。登録部104によって、複数のゲストOSに対して割り当てる仮想リソースの量の初期値が登録されている場合、リソース割当部106は、当該情報に従って、複数のゲストOSのそれぞれに対して仮想リソースを割り当ててもよい。
【0039】
性能監視部108は、ホスト及びホスト上に生成された複数のゲストOSの性能を監視する。性能監視部108は、例えば、ホストによるリソースの利用状況を監視する性能監視部108は、例えば、複数のゲストOSのそれぞれについて、ゲストOSにおける仮想リソースの利用状況を監視する。性能監視部108は、複数のゲストOSのそれぞれについて、ゲストOS上で動作するアプリケーションによるサービス稼働状況を監視してよい。性能監視部108による監視対象の例として、CPU利用率、メモリ利用率、ネットワーク帯域利用率、セッション数、及びスループット等が挙げられるが、これらに限られない。
【0040】
上限制御部110は、複数のゲストOSによる仮想リソースの利用量の合計がホストの物理リソースの量を超えないように、複数のゲストOSのそれぞれの仮想リソースの利用可能量の上限を制御する。上限制御部110は、記憶部102に記憶されている、ホストの物理リソースの情報と、複数のゲストOSの情報とから、自動的に複数のゲストOSのそれぞれの仮想リソースの利用可能量の上限の初期値を決定してよい。上限制御部110は、決定した初期値に従って、複数のゲストOSのそれぞれに、仮想リソースの利用可能量の上限を設定してよい。
【0041】
リソース割当部106によって、ホストの物理リソースの量を超える量の仮想リソースを複数のゲストOSに割り当てつつ、上限制御部110によって、ホストの物理リソースの量を超えないように仮想リソースの利用可能量の上限を制御することによって、スケールアップ及びスケールダウンを容易に実現可能な環境を提供することができる。
【0042】
上限制御部110は、性能監視部108によって監視される、複数のゲストOSの状況に応じて、複数のゲストOSによる仮想リソースの利用量の合計がホストの物理リソースの量を超えない範囲内で、複数のゲストOSのそれぞれの仮想リソースの利用可能量の上限を調整してよい。これにより、複数のゲストOSの状況の変化に合わせた、複数のゲストOSのそれぞれのスケールアップ及びスケールダウンを実現することができる。
【0043】
例えば、上限制御部110は、複数のゲストOSのうちの第1のゲストOSにおける仮想リソースの利用率が予め定められた閾値を下回った場合に、第1のゲストOSの仮想リソースの利用可能量の上限を減少させてよい。仮想リソースの利用率は、仮想リソースの利用可能量の上限に対する、実際の仮想リソースの利用量の割合であってよい。閾値は、登録部104によって登録されてよい。上限制御部110は、第1のゲストOSの仮想リソースの利用可能量の上限を減少させた分、複数のゲストOSのうちの第2のゲストOSの仮想リソースの利用可能量の上限を増加させてよい。これにより、第1のゲストOSの負荷が高くない場合に、仮想リソースの上限量のうちの一部を解放することができ、他のゲストOSに割り当てることを可能とすることができる。
【0044】
上限制御部110は、複数のゲストOSのうちの第1のゲストOSにおいて、設定した仮想リソースの利用量の上限と、実際の仮想リソースの利用量とから、上限のうちの一部を解放可能か否か判定し、解放可能と判定した場合に、第1のゲストOSの仮想リソースの利用可能量の上限を減少させてもよい。
【0045】
例えば、上限制御部110は、複数のゲストOSのうちの第1のゲストOSにおける仮想リソースの利用率が予め定められた閾値を超えた場合に、複数のゲストOSのうちの第2のゲストOSの仮想リソースの利用可能量の上限を減少させ、第1のゲストOSの仮想リソースの利用可能量の上限を増加させてよい。上限制御部110は、第1のゲストOSにおける仮想リソースの利用率が予め定められた閾値を超えた場合であって、第1のゲストOSの仮想リソースの利用可能量の上限が、第1のゲストOSに割り当てられている仮想リソースの量よりも少ない場合に、第2のゲストOSの仮想リソースの利用可能量の上限を減少させ、第1のゲストOSの仮想リソースの利用可能量の上限を増加させてよい。上限制御部110は、例えば、複数のゲストOSのうちの第1のゲストOS以外のうち、仮想リソースの利用率が最も低いゲストOSの仮想リソースの利用可能量の上限を減少させてよい。これにより、第1のゲストOSの負荷が高まった場合に、第1のゲストOSに割り当てられている仮想リソースの量の範囲内で、第1のゲストOSが利用可能な仮想リソースの量を増加させることができる。
【0046】
図2において例示したように、リソース割当部106は、複数のゲストOSに対して、ホストが有するCPUリソースの量を超える量の仮想CPUリソースを割り当ててよく、上限制御部110は、複数のゲストOSによる仮想CPUリソースの利用量の合計がホストのCPUリソースの量を超えないように、複数のゲストOSのそれぞれの仮想CPUリソースの利用可能量の上限を制御してよい。例えば、上限制御部110は、ゲストOSにおけるCPU制御プロセスの起動管理によって並列処理数を減少させることによって、ゲストOSの仮想リソースの利用可能量の上限を減少させてよい。例えば、上限制御部110は、ゲストOSにおけるCPU制御プロセスの起動管理によって並列処理数を増加させることによって、ゲストOSの仮想リソースの利用可能量の上限を増加させてよい。
【0047】
図3において例示したように、リソース割当部106は、複数のゲストOSに対して、ホストが有するメモリリソースの量を超える量の仮想メモリリソースを割り当ててよく、上限制御部110は、複数のゲストOSによる仮想メモリリソースの利用量の合計がホストのメモリリソースの量を超えないように、複数のゲストOSのそれぞれの仮想メモリリソースの利用可能量の上限を制御してよい。例えば、上限制御部110は、ゲストOSにメモリ領域を再構築させて、ゲストOSの仮想メモリリソースの利用可能量の上限を減少させてよい。この場合、再構築のための領域が必要となり、仮想メモリリソースの利用可能量の上限の最大量が、割当メモリリソースの半分となってしまうが、再構築によって不要メモリを完全に解放することができる。なお上限制御部110は、再構築を行わなくてもよい。
【0048】
図5は、スケール制御装置100による制御内容について説明するための説明図である。従来技術では、直接的に状態610と状態620との間の変更ができないので、スケール制御装置100は、状態630を追加することによって、状態610と状態620との間の変更を可能とする。
【0049】
仮に状態610を開始状態とした場合において、スケール制御装置100は、実行単位510に対するリソースの増加が必要と判定した場合に、状態630に移行させる。すなわち、スケール制御装置100は、実行単位510とサイズ以外同一設定の実行単位520をホスト350上に生成し、実行単位510と実行単位520との間で同期処理を実行させた後、実行単位510のアプリケーションの実行主体を実行単位520に切り替えさせ、実行単位510を削除させることにより、状態620に移行させる。同期処理によって、ステートフル情報等の必要な情報を実行単位520にコピーすることができるので、ステートフル情報を維持したまま容易にスケールアップを実現することができる。なお、後々のスケーリングを考慮して、アプリケーションの実行主体を切り替えた後に、実行単位510を削除することなく、状態630を維持するようにしてもよい。これにより、アプリケーションの実行主体を実行単位520に切り替えた後、実行単位520のリソースを減少可能と判定した場合に、実行単位520と実行単位510との間で同期処理を実行させ、アプリケーションの実行主体を実行単位510に切り替えることによって、ステートフル情報を維持したまま容易にスケールダウンを実現することができる。
【0050】
仮に状態620を開始状態とした場合において、スケール制御装置100は、実行単位520のリソースを減少可能と判定した場合に、状態630に移行させる。すなわち、スケール制御装置100は、実行単位520とサイズ以外同一設定の実行単位510をホスト310上に生成し、実行単位520と実行単位510との間で同期処理を実行させた後、実行単位520のアプリケーションの実行主体を実行単位510に切り替えさせ、実行単位520を削除させることにより、状態610に移行させる。同期処理によって、ステートフル情報等の必要な情報を実行単位510にコピーすることができるので、ステートフル情報を維持したまま容易にスケールダウンを実現することができる。この場合も、後々のスケーリングを考慮して、アプリケーションの実行主体を切り替えた後に、実行単位520を削除することなく、状態630を維持するようにしてもよい。これにより、アプリケーションの実行主体を実行単位510に切り替えた後、実行単位510のリソースの増加が必要と判定した場合に、実行単位510と実行単位520との間で同期処理を実行させ、アプリケーションの実行主体を実行単位520に切り替えることによって、ステートフル情報を維持したまま容易にスケールアップを実現することができる。
【0051】
図6は、スケール制御装置100による制御内容について説明するための説明図である。ここでは、
図5と異なる点を主に説明する。本例では、スケール制御装置100は、実行単位510及び実行単位520を、一のホスト310上に生成する。
【0052】
仮に状態640を開始状態とした場合において、スケール制御装置100は、実行単位510に対するリソースの増加が必要と判定した場合に、状態660に移行させる。すなわち、スケール制御装置100は、実行単位510とサイズ以外同一設定の実行単位520をホスト310上に生成し、実行単位510と実行単位520との間で同期処理を実行させた後、実行単位510のアプリケーションの実行主体を実行単位520に切り替えさせ、実行単位510を削除させることにより、状態650に移行させる。なお、後々のスケーリングを考慮して、アプリケーションの実行主体を切り替えた後に、実行単位510を削除することなく、状態660を維持するようにしてもよい。
【0053】
仮に状態620を開始状態とした場合において、スケール制御装置100は、実行単位520のリソースを減少可能と判定した場合に、状態630に移行させる。すなわち、スケール制御装置100は、実行単位520とサイズ以外同一設定の実行単位510をホスト310上に生成し、実行単位520と実行単位510との間で同期処理を実行させた後、実行単位520のアプリケーションの実行主体を実行単位510に切り替えさせ、実行単位520を削除させることにより、状態610に移行させる。この場合も、後々のスケーリングを考慮して、アプリケーションの実行主体を切り替えた後に、実行単位520を削除することなく、状態660を維持するようにしてもよい。
【0054】
図7は、スケール制御装置100の機能構成の一例を概略的に示す。スケール制御装置100は、記憶部112、登録部114、実行単位生成部116、性能監視部118、変更決定部120、及び変更制御部122を備える。
【0055】
登録部114は、各種情報を登録する。登録部114は、例えば、スケール制御装置100のオペレータの指示に従って各種情報を登録する。登録部114は、例えば、管理対象のホストの物理リソースの情報を登録する。登録部114は、例えば、ホスト上に生成する実行単位に関する情報を登録する。登録部114は、例えば、実行単位の生成に用いる複数の実行単位テンプレートを登録する。登録部114が登録した情報は、記憶部112に記憶される。
【0056】
実行単位生成部116は、ホストのリソースを割り当ててアプリケーションの実行単位をホスト上に生成する。実行単位生成部116は、例えば、VMをホスト上に生成する。実行単位生成部116は、例えば、コンテナをホスト上に生成する。
【0057】
性能監視部118は、ホスト及びホスト上に生成された実行単位の性能を監視する。性能監視部118は、例えば、ホストによるリソースの利用状況を監視する。性能監視部118は、実行単位における仮想リソースの利用状況を監視してよい。性能監視部118は、実行単位上で動作するアプリケーションによるサービス稼働状況を監視してよい。性能監視部118による監視対象の例として、CPU利用率、メモリ利用率、ネットワーク帯域利用率、セッション数、及びスループット等が挙げられるが、これらに限られない。
【0058】
変更決定部120は、実行単位生成部116によって生成された実行単位のリソース量を変更することを決定する。変更決定部120は、性能監視部118による監視内容に基づいて、実行単位のリソース量を変更することを決定してよい。
【0059】
変更決定部120は、例えば、性能監視部118によって監視される性能情報が、予め定められた閾値を下回った場合に、実行単位のリソース量を減少させると決定する。変更決定部120は、例えば、性能監視部118によって監視される性能情報が、予め定められた閾値を上回った場合に、実行単位のリソース量を増加させると決定する。閾値は、登録部114によって登録されてよい。
【0060】
変更制御部122は、変更決定部120によって変更することが決定された場合に、変更制御を実行する。変更制御部122は、リソース量を変更することが決定された実行単位と同一設定であり、当該実行単位とは異なる量のリソースを割り当てた他の実行単位を生成し、当該実行単位と当該他の実行単位との間で同期処理を実行させた後、当該実行単位のアプリケーションの実行主体を、当該他の実行単位に切り替えさせる。これにより、ステートフル情報を維持しつつ容易にスケールダウンやスケールアップを実現することができる。
【0061】
例えば、変更制御部122は、変更決定部120によって第1の実行単位のリソース量を変更することが決定された場合に、第1の実行単位と同一設定であり、第1の実行単位とは異なる量のリソースを割り当てた第2の実行単位を生成し、第1の実行単位と第2の実行単位との間で同期処理を実行させた後、第1の実行単位のアプリケーションの実行主体を第2の実行単位に切り替えさせる。変更制御部122は、第1の実行単位が生成されているホストとは異なるホスト上に第2の実行単位を生成してよい。変更制御部122は、第1の実行単位が生成されているホスト上に第2の実行単位を生成してもよい。
【0062】
実行単位生成部116は、記憶部112に記憶されている、割当リソース情報を含む一の実行単位テンプレートを用いて第1の実行単位を生成してよい。変更制御部122は、割当リソース情報を変更した当該一の実行単位テンプレートを用いて第2の実行単位を生成してよい。
【0063】
変更制御部122は、第1の実行単位のアプリケーションの実行主体を第2の実行単位に切り替えさせた後、第1の実行単位を削除してよい。これにより、他の実行単位に割当可能なリソースを増やすことができる。
【0064】
変更制御部122は、第1の実行単位のアプリケーションの実行主体を第2の実行単位に切り替えさせた後、第1の実行単位を削除せずに維持してもよい。変更制御部122は、第1の実行単位のアプリケーションの実行主体を第2の実行単位に切り替えさせた後、予め定められた条件が満たされたことに応じて、第2の実行単位と第1の実行単位の間で同期処理を実行させた後、第2の実行単位のアプリケーションの実行主体を第1の実行単位に切り替えさせてよい。予め定められた条件は、変更決定部120が、第2の実行単位のリソース量を変更することを決定したことによって満たされてよい。これにより、第1の実行単位のスケールアップ及びスケールダウンが比較的短時間で発生する場合に、効率的なスケールアップ及びスケールダウンを実現することが可能となる。
【0065】
以下、具体例を挙げて説明する。下記表1は、性能監視部118によって監視されるホストのリソース利用率を示す。ここでは、ホストA及びホストBが監視対象である場合を例示している。
【0066】
【0067】
下記表2は、性能監視部118によって監視される、ホスト上で動作するアプリケーションの割当リソースと、サービス稼働状況を示す。ここでは、ホストA上で動作するアプリA及びアプリBが監視対象である場合を例示している。
【0068】
【0069】
下記表3は、記憶部112に記憶されている複数の実行単位テンプレートを示す。ここでは、実行単位テンプレートの例として、インスタンスフレーバA及びインスタンスフレーバBを例示している。
【0070】
【0071】
表1に示されるように、本例において、ホストA及びホストBは、CPUリソース:32、メモリリソース:512、NW(Network)リソース(NW帯域):10を有する。ホストAは、32CPUリソース中24CPUリソースを利用しており、512メモリリソース中384メモリリソースを利用しており、10NWリソース中3NWリソースを利用している。
【0072】
表2に示されるように、アプリAには、16CPUリソース、256メモリリソース、2NWリソースが割り当てられており、アプリBには、8CPUリソース、128メモリリソース、1NWリソースが割り当てられている。
【0073】
変更決定部120は、例えば、表2を参照し、セッションやスループットの性能情報が、予め定められた閾値(例えば、容量の半分以下(45%等))を下回ったことに応じて、アプリAのリソース量を減少させることを決定する。変更制御部122は、フレーバBを用いることにより、ホストBに実行単位を生成して、アプリA´を生成し、アプリAと同等のアプリケーション設定を実行する。変更制御部122は、ホストA上のアプリAと、ホストB上のアプリA´との間で、ステートフル情報の同期を実行させる。同期終了後、変更制御部122は、アプリAからアプリA´への切り替え処理を実施する。変更制御部122は、既存の冗長構成での切り替え手法を用いて、切り替え処理を実施してよい。変更決定部120は、切り替え処理実施後、アプリAを削除してよい。なお、変更決定部120は、後々のスケーリングを考慮して、切り替え処理実施後に、アプリAを維持してもよい。
【0074】
スケール制御装置100は、
図4において説明した機能と、
図7において説明した機能との両方を備えてもよい。この場合、記憶部102が記憶部112を兼ね、登録部104が登録部114を兼ね、性能監視部108が性能監視部118を兼ねてよく、スケール制御装置100は、記憶部102、登録部104、リソース割当部106、性能監視部108、上限制御部110、実行単位生成部116、変更決定部120、及び変更制御部122を備えてよい。
【0075】
図8は、スケール制御装置100として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0076】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブは、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0077】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0078】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブは、プログラム又はデータをDVD-ROM等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0079】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0080】
プログラムは、DVD-ROM又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0081】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0082】
また、CPU1212は、記憶装置1224、DVDドライブ(DVD-ROM)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0083】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0084】
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0085】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0086】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0087】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0088】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0089】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0090】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【0091】
本発明によれば、例えば、ハイパーバイザ型仮想化において柔軟なスケーリング手法を実現できることから、効率性を向上したネットワークシステムを提供可能なため、持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」の達成に貢献することができる。
【符号の説明】
【0092】
100 スケール制御装置、102 記憶部、104 登録部、106 リソース割当部、108 性能監視部、110 上限制御部、112 記憶部、114 登録部、116 実行単位生成部、118 性能監視部、120 変更決定部、122 変更制御部、200 仮想化制御装置、310 ホスト、320 CPUリソース、330 メモリリソース、350 ホスト、410 ゲストOS、412 プロセス管理、414 アプリプロセス、420 仮想CPUリソース、430 仮想メモリリソース、450 ゲストOS、452 プロセス管理、454 アプリプロセス、460 仮想CPUリソース、470 仮想メモリリソース、510 実行単位、520 実行単位、610 状態、620 状態、630 状態、640 状態、650 状態、660 状態、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1230 ROM、1240 入出力チップ
【手続補正書】
【提出日】2023-07-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当部と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御部であって、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を下回った場合に、前記第1のゲストOSにおいて利用されていない仮想リソースの分、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、減少させた分、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を増加させる上限制御部と
を備える制御装置。
【請求項2】
前記上限制御部は、前記複数のゲストOSの状況に応じて、前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えない範囲内で、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を調整する、請求項1に記載の制御装置。
【請求項3】
前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を超えた場合に、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を増加させる、請求項2に記載の制御装置。
【請求項4】
前記リソース割当部は、前記複数のゲストOSに対して、前記ホストが有するCPUリソースの量を超える量の仮想CPUリソースを割り当て、
前記上限制御部は、前記複数のゲストOSによる前記仮想CPUリソースの利用量の合計が前記ホストの前記CPUリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想CPUリソースの利用可能量の上限を制御する、請求項1から3のいずれか一項に記載の制御装置。
【請求項5】
前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにおけるCPU制御プロセスの起動管理によって並列処理数を減少させることによって、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を減少させる、請求項4に記載の制御装置。
【請求項6】
前記リソース割当部は、前記複数のゲストOSに対して、前記ホストが有するメモリリソースの量を超える量の仮想メモリリソースを割り当て、
前記上限制御部は、前記複数のゲストOSによる前記仮想メモリリソースの利用量の合計が前記ホストの前記メモリリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想メモリリソースの利用可能量の上限を制御する、請求項1から3のいずれか一項に記載の制御装置。
【請求項7】
前記上限制御部は、前記複数のゲストOSのうちの第1のゲストOSにメモリ領域を再構築させて、前記第1のゲストOSの前記仮想メモリリソースの利用可能量の上限を減少させる、請求項6に記載の制御装置。
【請求項8】
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当部と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御部であって、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を超えた場合に、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を増加させる上限制御部と
を備える制御装置。
【請求項9】
ホスト上で動作する複数のゲストOSに対して、前記ホストが有するCPUリソースの量を超える量の仮想CPUリソースを割り当てるリソース割当部と、
前記複数のゲストOSによる前記仮想CPUリソースの利用量の合計が前記ホストの前記CPUリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想CPUリソースの利用可能量の上限を制御する上限制御部であって、前記複数のゲストOSのうちの第1のゲストOSにおけるCPU制御プロセスの起動管理によって並列処理数を減少させることによって、前記第1のゲストOSの前記仮想CPUリソースの利用可能量の上限を減少させる上限制御部と
を備える制御装置。
【請求項10】
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当部と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御部と
を備え、
前記ホストの外部に位置する、制御装置。
【請求項11】
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当部と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御部と、
を備え、
前記ホストのリソースを割り当ててアプリケーションの実行単位を前記ホスト上に生成する実行単位生成部と、
前記実行単位生成部によって生成された第1の実行単位のリソース量を変更することを決定する変更決定部と、
前記変更決定部により変更することが決定された場合に、前記第1の実行単位と同一設定であり、前記第1の実行単位とは異なる量のリソースを割り当てた第2の実行単位を生成させ、前記第1の実行単位と前記第2の実行単位との間で同期処理を実行させた後、前記第1の実行単位のアプリケーションの実行主体を前記第2の実行単位に切り替えさせる変更制御部と
を更に備える制御装置。
【請求項12】
コンピュータを、請求項1から11のいずれか一項に記載の制御装置として機能させるためのプログラム。
【請求項13】
コンピュータによって実行される制御方法であって、
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当段階と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御段階であって、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を下回った場合に、前記第1のゲストOSにおいて利用されていない仮想リソースの分、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、減少させた分、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を増加させる上限制御段階と
を備える制御方法。
【請求項14】
コンピュータによって実行される制御方法であって、
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当段階と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御段階であって、前記複数のゲストOSのうちの第1のゲストOSにおける前記仮想リソースの利用率が予め定められた閾値を超えた場合に、前記複数のゲストOSのうちの第2のゲストOSの前記仮想リソースの利用可能量の上限を減少させ、前記第1のゲストOSの前記仮想リソースの利用可能量の上限を増加させる上限制御段階と
を備える制御方法。
【請求項15】
コンピュータによって実行される制御方法であって、
ホスト上で動作する複数のゲストOSに対して、前記ホストが有するCPUリソースの量を超える量の仮想CPUリソースを割り当てるリソース割当段階と、
前記複数のゲストOSによる前記仮想CPUリソースの利用量の合計が前記ホストの前記CPUリソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想CPUリソースの利用可能量の上限を制御する上限制御段階であって、前記複数のゲストOSのうちの第1のゲストOSにおけるCPU制御プロセスの起動管理によって並列処理数を減少させることによって、前記第1のゲストOSの前記仮想CPUリソースの利用可能量の上限を減少させる上限制御段階と
を備える制御方法。
【請求項16】
ホストの外に位置するコンピュータによって実行される制御方法であって、
前記ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当段階と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御段階と
を備える制御方法。
【請求項17】
コンピュータによって実行される制御方法であって、
ホスト上で動作する複数のゲストOSに対して、前記ホストが有する物理リソースの量を超える量の仮想リソースを割り当てるリソース割当段階と、
前記複数のゲストOSによる前記仮想リソースの利用量の合計が前記ホストの前記物理リソースの量を超えないように、前記複数のゲストOSのそれぞれの前記仮想リソースの利用可能量の上限を制御する上限制御段階と、
を備え、
前記ホストのリソースを割り当ててアプリケーションの実行単位を前記ホスト上に生成する実行単位生成段階と、
前記実行単位生成段階において生成された前記実行単位のリソース量を変更することを決定する変更決定段階と、
前記実行単位と同一設定であり、前記実行単位とは異なる量のリソースを割り当てた他の実行単位を生成し、前記実行単位と前記他の実行単位の間で同期処理を実行させた後、前記実行単位のアプリケーションの実行主体を前記他の実行単位に切り替えさせるリソース変更制御段階と
を更に備える制御方法。