(57)【要約】【課題】仮想マシンのサービス要件を考慮してＣＰＵを割り当てる。【解決手段】IaaS基盤は、コンピュートの物理ＣＰＵ上に仮想ＣＰＵおよび仮想マシンを生成して、仮想マシンに仮想ＣＰＵを割り当てる。このIaaS基盤は、仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値よりも高いならば、仮想マシンに割り当てた仮想ＣＰＵに、指定されたコンピュートの物理ＣＰＵを占有させる指示を生成し、かつ、このプロセスのレイテンシ要件が所定値よりも厳しいならば、仮想ＣＰＵを物理ＣＰＵにピニングする指示を生成し、このプロセスのレイテンシ要件が所定値よりも緩やかならば、仮想ＣＰＵを物理ＣＰＵにピニングしない指示を生成するリソース割当決定部３２と、リソース割当決定部の指示に応じてコンピュートの物理ＣＰＵ上に新たな仮想マシンを生成する仮想マシン生成管理部３４とを含む。【選択図】図１
2020134988.tif 000002
【特許請求の範囲】
【請求項１】
コンピュートの物理ＣＰＵ上に仮想ＣＰＵおよび仮想マシンを生成して、前記仮想マシンに前記仮想ＣＰＵを割り当てるサーバ基盤であって、
前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせない指示のうち何れかを生成するリソース割当決定部と、
前記リソース割当決定部の指示に応じて、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する仮想マシン生成管理部と、
を含むことを特徴とするサーバ基盤。
【請求項２】
前記リソース割当決定部は、仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想ＣＰＵに、指定されたコンピュートの前記物理ＣＰＵを占有させる指示を生成し、かつ、前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングさせない指示を生成する、
ことを特徴とする請求項１に記載のサーバ基盤。
【請求項３】
前記リソース割当決定部は、前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュートの物理ＣＰＵ上に移行させる指示を生成し、
前記仮想マシン生成管理部は、前記リソース割当決定部の指示に応じて、前記仮想マシンを前記他のコンピュートの物理ＣＰＵ上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する、
ことを特徴とする請求項１または２に記載のサーバ基盤。
【請求項４】
前記仮想マシン生成管理部は、前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する、
ことを特徴とする請求項１または２に記載のサーバ基盤。
【請求項５】
コンピュートの物理ＣＰＵ上に仮想ＣＰＵおよび仮想マシンを生成して、前記仮想マシンに前記仮想ＣＰＵを割り当てるサーバ基盤による仮想ＣＰＵに対する物理ＣＰＵの割当プログラムであって、
コンピュータに、前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせない指示のうち何れかを生成する工程、
前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する工程、
を実行させるための物理ＣＰＵ割当プログラム。
【請求項６】
仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想ＣＰＵに、指定されたコンピュートの前記物理ＣＰＵを占有させる指示を生成する工程、
前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングさせない指示を生成する工程、
を実行させるための請求項５に記載の物理ＣＰＵ割当プログラム。
【請求項７】
前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュートの物理ＣＰＵ上に移行させる指示を生成する工程、
前記仮想マシンを前記他のコンピュートの物理ＣＰＵ上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する工程、
を実行させるための請求項５または６に記載の物理ＣＰＵ割当プログラム。
【請求項８】
前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成するステップ、
を実行させるための請求項５または６に記載の物理ＣＰＵ割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムを構築して稼動させるためのサーバ基盤および物理ＣＰＵ割当プログラムに関する。
【背景技術】
【０００２】
図７は、ネットワークサービスを構築して稼働させるIaaS（Infrastructure as a Service）基盤の構成図である。
ネットワークサービスを構築して稼動させるIaaS基盤１は、サーバ基盤として実現されている。このIaaS基盤１は、複数のアプリケーション２ａ〜２ｉがベアメタル１１、仮想マシン１２、コンテナ１３、オブジェクトストレージ１４、ファイルストレージ１５、ブロックストレージ１６などのリソースを共有する。
各アプリケーション２ａ〜２ｉは、それぞれ外部にサービスを提供するとともに、必要な量のIaaS基盤１のリソースを利用できる。IaaS基盤１では、アプリケーション２ａ〜２ｉにより複数のサービスを稼働できるメリットがある。その一方で、アプリケーション２ａ〜２ｉは、IaaS基盤１を共有することで、利用できるリソースが制限される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“CPU topologies”，[online]，[平成３１年１月３１日検索]，インターネット<URL:https://docs.openstack.org/nova/pike/admin/cpu-topologies.html>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１は、OpenStackにおけるＣＰＵピニング（固定）機能について記載されている。ＣＰＵピニングとは、仮想マシンに割り当てた仮想ＣＰＵごとに、この仮想ＣＰＵが使用する物理ＣＰＵを制限することをいう。つまりその仮想ＣＰＵの処理に割り当てられる物理ＣＰＵを固定することである。
【０００５】
ＣＰＵピニングにより、仮想ＣＰＵの処理が他の物理ＣＰＵで実行されることが無いため、キャッシュヒット率の低下を防ぎ、レイテンシ要件が厳しいプロセスを遅延なく実行させることができる。OpenStackは、仮想ＣＰＵを1つの物理ＣＰＵでピニングして占有するdedicated方式によりＣＰＵピニングをサポートしている。
【０００６】
レイテンシ要件が厳しいサービスの場合、その仮想ＣＰＵにdedicated方式を適用することで、キャッシュヒット率の低下を防ぎ、サービスの低レイテンシ化を実現することができる。
高い負荷量を受け持つなど、ある程度の性能要件を求めるサービスならば、dedicated方式がふさわしいが、レイテンシ要件が厳しいサービスでないと余剰なリソースが発生するおそれがある。
また、OpenStackには、複数の仮想ＣＰＵで物理ＣＰＵを共有するshared方式も存在する。このshared方式ではピニングすることはできず、他の仮想ＣＰＵのプロセスと混在することとなる。
【０００７】
そこで、本発明は、仮想マシンのサービス要件を考慮した物理ＣＰＵの割り当てを可能とすることを課題とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、請求項１に記載の発明では、コンピュートの物理ＣＰＵ上に仮想ＣＰＵおよび仮想マシンを生成して、前記仮想マシンに前記仮想ＣＰＵを割り当てるサーバ基盤であって、前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせない指示のうち何れかを生成するリソース割当決定部と、前記リソース割当決定部の指示に応じて、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する仮想マシン生成管理部と、を含むことを特徴とするサーバ基盤とした。
【０００９】
このようにすることで、仮想マシンのサービス要件を考慮した物理ＣＰＵの割り当てができる。
【００１０】
請求項２に記載の発明では、前記リソース割当決定部は、仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想ＣＰＵに、指定されたコンピュートの前記物理ＣＰＵを占有させる指示を生成し、かつ、前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングさせない指示を生成する、ことを特徴とする請求項１に記載のサーバ基盤とした。
【００１１】
このようにすることで、仮想マシン上で実行されるプロセスが受け持つ負荷量要件とレイテンシ要件を考慮した物理ＣＰＵの割り当てができる。
【００１２】
請求項３に記載の発明では、前記リソース割当決定部は、前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュートの物理ＣＰＵ上に移行させる指示を生成し、前記仮想マシン生成管理部は、前記リソース割当決定部の指示に応じて、前記仮想マシンを前記他のコンピュートの物理ＣＰＵ上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する、ことを特徴とする請求項１または２に記載のサーバ基盤とした。
【００１３】
このようにすることで、指定されたコンピュート上に物理ＣＰＵの空きがない場合であっても、仮想マシンを生成することができる。
【００１４】
請求項４に記載の発明では、前記仮想マシン生成管理部は、前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する、ことを特徴とする請求項１または２に記載のサーバ基盤とした。
【００１５】
このようにすることで、指定されたコンピュート上に物理ＣＰＵの空きがない場合であっても、仮想マシンを生成することができる。
【００１６】
請求項５に記載の発明では、コンピュートの物理ＣＰＵ上に仮想ＣＰＵおよび仮想マシンを生成して、前記仮想マシンに前記仮想ＣＰＵを割り当てるサーバ基盤による仮想ＣＰＵに対する物理ＣＰＵの割当プログラムであって、コンピュータに、前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせる指示、前記仮想ＣＰＵに物理ＣＰＵを占有させ、かつピニングさせない指示のうち何れかを生成する工程、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する工程、を実行させるための物理ＣＰＵ割当プログラムとした。
【００１７】
このようにすることで、仮想マシンのサービス要件を考慮した物理ＣＰＵの割り当てができる。
【００１８】
請求項６に記載の発明では、仮想マシン上で実行されるプロセスが受け持つ負荷量が所定値以下ならば、前記仮想マシンに割り当てた仮想ＣＰＵに物理ＣＰＵを共有させる指示を生成し、前記プロセスが受け持つ負荷量が所定値よりも高いならば、前記仮想マシンに割り当てた仮想ＣＰＵに、指定されたコンピュートの前記物理ＣＰＵを占有させる指示を生成する工程、前記プロセスのレイテンシ要件が前記所定値よりも厳しいならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングする指示を生成し、前記プロセスのレイテンシ要件が所定値よりも緩やかならば、前記仮想ＣＰＵを前記物理ＣＰＵにピニングさせない指示を生成する工程、を実行させるための請求項５に記載の物理ＣＰＵ割当プログラムとした。
【００１９】
このようにすることで、仮想マシン上で実行されるプロセスが受け持つ負荷量の要件とレイテンシ要件を考慮した物理ＣＰＵの割り当てができる。
【００２０】
請求項７に記載の発明では、前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュートの物理ＣＰＵ上に移行させる指示を生成する工程、前記仮想マシンを前記他のコンピュートの物理ＣＰＵ上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成する工程、を実行させるための請求項５または６に記載の物理ＣＰＵ割当プログラムとした。
【００２１】
このようにすることで、指定されたコンピュート上に物理ＣＰＵの空きがない場合であっても、仮想マシンを生成することができる。
【００２２】
請求項８に記載の発明では、前記コンピュートに物理ＣＰＵの空きがなく、かつ、前記コンピュート上に何れかの仮想ＣＰＵによって占有された非ピニングの物理ＣＰＵが在るならば、当該物理ＣＰＵ上を占有する仮想ＣＰＵに割り当てられた仮想マシンを他のコンピュート上に移行させたのち、前記コンピュートの前記物理ＣＰＵ上に新たな仮想マシンを生成するステップ、を実行させるための請求項５または６に記載の物理ＣＰＵ割当プログラムとした。
【００２３】
このようにすることで、指定されたコンピュート上に物理ＣＰＵの空きがない場合であっても、仮想マシンを生成することができる。
【発明の効果】
【００２４】
、仮想マシンのサービス要件を考慮した物理ＣＰＵの割り当てが可能となる。
【図面の簡単な説明】
【００２５】
【図１】ユーザ端末から物理ＣＰＵを備えるNUMA上に仮想マシンのデプロイする場合のシーケンス図である。
【図２】本実施形態において、アプリケーションの要件からピニングパターンを選択するフローチャートである。
【図３】本実施形態において、ピニングパターンに基づき仮想マシンを稼働させる仮想ＣＰＵを構築するフローチャートである。
【図４】本実施形態のピニング方式で構築されたシステムの初期状態を示す図である。
【図５】本実施形態のピニング方式で構築されたシステムのマイグレーション後を示す図である。
【図６】本実施形態のピニング方式で構築されたシステムのデプロイ後を示す図である。
【図７】ネットワークサービスを構築して稼働させるIaaS基盤の構成図である。
【図８】比較例において、アプリケーションの要件からピニングパターンを選択するフローチャートである。
【図９】比較例において、ピニングパターンに基づき仮想マシンを稼働させる仮想ＣＰＵを構築するフローチャートである。
【図１０】比較例のピニング方式で構築されたシステムを示す図である。
【発明を実施するための形態】
【００２６】
以降、比較例と本発明を実施するための形態とを、各図を参照して詳細に説明する。
図１は、ユーザ端末から物理ＣＰＵを備えるNUMA（Non-Uniform Memory Access）上に仮想マシンのデプロイする場合のシーケンス図である。このシーケンス図は、後記する比較例と実施形態に共通するものである。
各シーケンスを実行するリソース割当決定部３２、リソース管理部３３、仮想マシン生成管理部３４は、IaaS基盤１に含まれる。このIaaS基盤１は、複数のサーバコンピュータである。このコンピュータが物理ＣＰＵ割当プログラムを実行することによって、各シーケンスの実行主体が具現化される。
【００２７】
ステップＳ１０におけるＶＭ（Virtual Machine）デプロイ指示において、ユーザ端末３１は、仮想ＣＰＵ毎のピニングパターンを指定する。なお、比較例の仮想ＣＰＵのピニングパターンは、物理ＣＰＵを占有させ、かつピニングさせるパターンと、物理ＣＰＵを共有させるパターンの２通りである。これに対して本実施形態の仮想ＣＰＵのピニングパターンは、物理ＣＰＵを占有させ、かつピニングさせるパターンと、物理ＣＰＵを占有させ、かつピニングさせないパターンと、物理ＣＰＵを共有させるパターンの３通りである。
【００２８】
次にリソース割当決定部３２は、リソース管理部３３にリソース選定を指示する（Ｓ１１）。リソース管理部３３は、リソース割当決定部３２にリソース候補を返却する（Ｓ１２）。
ステップＳ１３において、リソース割当決定部３２は、スケジューリングを行うとともに、割当リソースを決定する。
【００２９】
その後、リソース割当決定部３２は、リソース管理部３３に割当リソースを通知するとともに（Ｓ１４）、仮想マシン生成管理部３４に仮想マシンの生成を指示する（Ｓ１５）。これにより仮想マシン生成管理部３４は、ステップＳ１３で決定されたスケジューリングに基づき、仮想マシンを生成してリソースを割り当てる。
ステップＳ１６において、仮想マシン生成管理部３４は、ユーザ端末３１に仮想マシンの生成完了を通知し、図１の処理を終了する。
これによりIaaS基盤１は、コンピュートの物理ＣＰＵ上に仮想ＣＰＵおよび仮想マシンを生成して、この仮想マシンに仮想ＣＰＵを割り当てることができる。
【００３０】
《比較例の処理》
比較例のピニング方式は、物理ＣＰＵを占有させ、かつピニングさせるパターンと、物理ＣＰＵを共有させるパターンの２通りである。
物理ＣＰＵを占有させ、かつピニングさせるパターンの適用サービス例は、高い負荷量を受け持つサービス向けである。物理ＣＰＵを共有させるパターンの適用サービス例は、高い負荷量を受け持たないサービス向けである。
【００３１】
図８は、比較例において、ユーザ端末３１が、アプリケーションの要件からピニングパターンを選択するフローチャートである。
図１のステップＳ１０を実行する前に、ユーザ端末３１は、アプリケーションの要件からピニングパターンを選択する処理を実行する。
最初、ユーザ端末３１は、アプリケーションが高い負荷量を受け持つか否かを判定する（Ｓ２０）。
【００３２】
ユーザ端末３１は、アプリケーションが高い負荷量を受け持つならば（Ｙｅｓ）、このアプリケーションに係る仮想マシンに割り当てた仮想ＣＰＵに対して、物理ＣＰＵを占有かつピニングさせるパターンを選択し（Ｓ２１）、図８の処理を終了する。
【００３３】
ユーザ端末３１は、アプリケーションが高い負荷量を受け持たないならば（Ｎｏ）、このアプリケーションに係る仮想マシンに割り当てた仮想ＣＰＵに対して、物理ＣＰＵを他の仮想ＣＰＵと共有させるパターンを選択し（Ｓ２２）、図８の処理を終了する。
なお、ピニングパターンを選択する処理を実行するのは、ユーザ端末３１に限定されず、IaaS基盤が実行してもよい。
【００３４】
図９は、比較例において、仮想マシンを稼働させる仮想ＣＰＵを、パターンに基づいて構築する指示を生成するフローチャートである。この図９の処理は、図１のステップＳ１３において実行される。
リソース割当決定部３２は、物理ＣＰＵが占有されるパターンか否かを判定する（Ｓ３０）。リソース割当決定部３２は、物理ＣＰＵが占有されるパターンではないならば（Ｎｏ）、物理ＣＰＵの共有に係る処理を実行する。
【００３５】
リソース割当決定部３２は、物理ＣＰＵが占有されるパターンならば（Ｙｅｓ）、指定されたNUMAの物理ＣＰＵリソースの空きを判定する（Ｓ３１）。リソース割当決定部３２は、指定されたNUMAの物理ＣＰＵリソースの空きが有るならば（Ｙｅｓ）、指定NUMAの空き物理ＣＰＵ上への指定された仮想ＣＰＵのデプロイを指示し（Ｓ３３）、図９の処理を終了する。
【００３６】
リソース割当決定部３２は、指定されたNUMAの物理ＣＰＵリソースの空きが無いならば（Ｎｏ）、指定されたNUMAへの仮想マシンのデプロイができないため、図９の処理を異常終了する。
【００３７】
図１０は、比較例のピニング方式で構築されたシステムを示す図である。
NUMA４は、４個の物理ＣＰＵ４１ａ〜４１ｄを備える。物理ＣＰＵ４１ａは、高い負荷量を受け持つ仮想マシンに割り当てた仮想ＣＰＵ４２ａによって占有され、かつピニングされている。
【００３８】
物理ＣＰＵ４１ｂには、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想ＣＰＵ４２ｂによって占有され、かつピニングされている。これを示すため、図１０では仮想ＣＰＵ４２ａ，４２ｂがdedicate方式として記載されている。
【００３９】
物理ＣＰＵ４１ｃ，４１ｄには、仮想ＣＰＵ４２ｃ，４２ｄによって共有されている。つまり物理ＣＰＵ４１ｃ，４１ｄは、共有のパターンである。これを示すため、図１０では仮想ＣＰＵ４２ｃ，４２ｄがshared方式として記載されている。
【００４０】
このシステムに対して、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想ＣＰＵをデプロイしようとしても、物理ＣＰＵリソースの空きがないため、この仮想マシンや仮想ＣＰＵをデプロイできないという問題がある。
【００４１】
《本実施形態の処理》
本実施形態は、比較例のピニング方式を拡張し、物理ＣＰＵを占有させ、かつピニングさせないパターンを加えるというものである。本パターンを加えることで、仮想マシンのサービス要件を考慮したＣＰＵの割り当てが可能となる。
【００４２】
物理ＣＰＵを占有させ、かつピニングさせるパターンは、最優先で処理したいサービスに割り当てられる。このパターンの適用サービス例は、高い負荷量を受け持ち、かつ低レイテンシを要件とするサービスである。ここで低レイテンシの要件とは、レイテンシ要件が厳しいことをいう。これに対して、高い負荷量を受け持つことのみを要件とするサービスとは、レイテンシ要件が緩いことをいう。
【００４３】
物理ＣＰＵを占有させ、かつピニングさせないパターンは、優先度の高い他のサービスにより、割り当てられる物理ＣＰＵが変更される場合がある。このパターンの適用サービス例は、高い負荷量を受け持つことを要件とするサービスである。このパターンを加えることで、仮想マシンのサービス要件を、より考慮したＣＰＵの割り当てが可能となる。
【００４４】
図２は、本実施形態において、アプリケーションの要件からピニングパターンを選択するフローチャートである。
ユーザ端末３１は、アプリケーションが高い負荷量を受け持つか否かを判定する（Ｓ４０）。
ユーザ端末３１は、アプリケーションが高い負荷量を受け持たないならば（Ｎｏ）、このアプリケーションに係る仮想マシンに割り当てた仮想ＣＰＵに対して、物理ＣＰＵを他の仮想ＣＰＵと共有させるパターンを選択し（Ｓ４１）、図２の処理を終了する。
【００４５】
ユーザ端末３１は、アプリケーションが高い負荷量を受け持つならば（Ｙｅｓ）、アプリケーションの要件が低レイテンシであるか否かを判定する（Ｓ４２）。ステップＳ４２において、ユーザ端末３１は、アプリケーションのレイテンシ要件が厳しいならば（Ｙｅｓ）、このアプリケーションに係る仮想マシンに割り当てた仮想ＣＰＵに対して、物理ＣＰＵを占有かつピニングさせるパターンを選択し（Ｓ４４）、図２の処理を終了する。
【００４６】
ステップＳ４２において、ユーザ端末３１は、アプリケーションのレイテンシ要件が厳しくないならば（Ｎｏ）、物理ＣＰＵを占有かつピニングさせないパターンを選択し（Ｓ４３）、図２の処理を終了する。すなわちユーザ端末３１は、アプリケーションのレイテンシ要件が緩いならば、物理ＣＰＵを占有かつピニングさせないパターンを選択する。
【００４７】
図３は、本実施形態において、仮想マシンを稼働させる仮想ＣＰＵをピニングパターンに基づいて構築するフローチャートである。
この図３の処理は、図１のステップＳ１３において実行される。
リソース割当決定部３２は、物理ＣＰＵが占有されるパターンか否かを判定する（Ｓ５０）。リソース割当決定部３２は、物理ＣＰＵが占有されるパターンでないならば（Ｎｏ）、物理ＣＰＵの共有に係る処理を実行する。
【００４８】
リソース割当決定部３２は、物理ＣＰＵが占有されるパターンならば（Ｙｅｓ）、指定されたNUMAの物理ＣＰＵリソースの空きを判定する（Ｓ５１）。
ステップＳ５２において、リソース割当決定部３２は、指定されたNUMAの物理ＣＰＵリソースの空きが有るならば（Ｙｅｓ）、指定NUMAの空き物理ＣＰＵ上への指定された仮想ＣＰＵのデプロイを指示し（Ｓ５３）、図３の処理を終了する。
【００４９】
ステップＳ５２において、リソース割当決定部３２は、指定されたNUMAの物理ＣＰＵリソースの空きが無いならば（Ｎｏ）、物理ＣＰＵがピニングされるバターンであるか否かを判定する（Ｓ５４）。
【００５０】
リソース割当決定部３２は、物理ＣＰＵがピニングされるバターンでないならば（Ｎｏ）、異常終了し、物理ＣＰＵがピニングされるバターンならば（Ｙｅｓ）、ステップＳ５５の処理に進む。
【００５１】
ステップＳ５５において、リソース割当決定部３２は、指定されたNUMAに、占有かつ非ピニングの物理ＣＰＵが有るか否かを判定する。リソース割当決定部３２は、指定されたNUMAに、占有かつ非ピニングの物理ＣＰＵが無ければ（Ｎｏ）異常終了し、占有かつ非ピニングの物理ＣＰＵが有れば（Ｙｅｓ）、ステップＳ５６の処理に進む。
【００５２】
ステップＳ５６において、リソース割当決定部３２は、占有かつ非ピニングの物理ＣＰＵが処理する仮想ＣＰＵを、他のNUMAへマイグレーションするように指示する。更にリソース割当決定部３２は、当該物理ＣＰＵ上に仮想ＣＰＵのデプロイを指示し（Ｓ５７）、図３の処理を終了する。
【００５３】
図４は、本実施形態のピニング方式で構築されたシステムの初期状態を示す図である。
NUMA４ｂは、１個の物理ＣＰＵ４１ｅを備えている。この物理ＣＰＵ４１ｅは、空き状態である。
NUMA４ａは、４個の物理ＣＰＵ４１ａ〜４１ｄを備える。物理ＣＰＵ４１ａは、高い負荷量を受け持つ仮想マシンに割り当てた仮想ＣＰＵ４２ａによって占有されているが、ピニングされていない。つまり物理ＣＰＵ４１ａは、占有かつ非ピニングのパターンである。
【００５４】
物理ＣＰＵ４１ｂは、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想ＣＰＵ４２ｂによって占有され、かつピニングされている。つまり物理ＣＰＵ４１ｂは、占有かつピニングのパターンである。これらを示すため、図４では仮想ＣＰＵ４２ａ，４２ｂがdedicate方式として記載されている。
【００５５】
物理ＣＰＵ４１ｃ，４１ｄは、仮想ＣＰＵ４２ｃ，４２ｄによって共有されている。つまり物理ＣＰＵ４１ｃ，４１ｄは、共有のパターンである。これを示すため、図４では仮想ＣＰＵ４２ｃ，４２ｄがshared方式として記載されている。
【００５６】
図５は、本実施形態のピニング方式で構築されたシステムのマイグレーション後を示す図である。図５は、図３のステップＳ５６の処理が終了した後の状態を示している。
図４において物理ＣＰＵ４１ａを占有していた仮想ＣＰＵ４２ａは、図５においてNUMA４ｂが備える物理ＣＰＵ４１ｅにマイグレーションされている。そして物理ＣＰＵ４１ａは、空き状態である。それ以外の物理ＣＰＵ４１ｂ〜４１ｄの状態は、図４に示した初期状態と同様である。
【００５７】
図６は、本実施形態のピニング方式で構築されたシステムのデプロイ後を示す図である。図６は、図３のフローチャートが終了した後の状態を示している。
図５において空き状態であった物理ＣＰＵ４１ａには、図６において仮想ＣＰＵ４２ｅがデプロイされている。物理ＣＰＵ４１ａは、高い負荷量を受け持ち、かつ低レイテンシを要件とする仮想マシンに割り当てた仮想ＣＰＵ４２ｅによって占有され、かつピニングされている。
【００５８】
（変形例）
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の（ａ）〜（ｃ）のようなものがある。
【００５９】
（ａ）  NUMAが備える物理ＣＰＵの数は４個に限定されない。また、各物理ＣＰＵ上にデプロイされる仮想ＣＰＵの個数は１個または２個に限定されない。
（ｂ）  アプリケーションが受け持つ負荷量とレイテンシに応じて、物理ＣＰＵの占有の有無およびピニングの有無を判定するのは、ユーザ端末に限定されない。IaaS基盤が、アプリケーションが受け持つ負荷量とレイテンシに応じて、物理ＣＰＵの占有の有無およびピニングの有無を判定してもよい。
（ｃ）  NUMA上の物理ＣＰＵを占有する仮想ＣＰＵをマイグレーションするように判断するのは、リソース割当決定部に限定されない。NUMA上に物理ＣＰＵの空きが無い場合、仮想マシン生成管理部が物理ＣＰＵを占有する仮想ＣＰＵをマイグレーションして、この物理ＣＰＵを空き状態にしてから仮想マシンをデプロイ（生成）する。
【符号の説明】
【００６０】
１  IaaS基盤  （サーバ基盤）
１１  ベアメタル
１２  仮想マシン
１３  コンテナ
１４  オブジェクトストレージ
１５  ファイルストレージ
１６  ブロックストレージ
２ａ〜２ｉ  アプリケーション
３１  ユーザ端末
３２  リソース割当決定部
３３  リソース管理部
３４  仮想マシン生成管理部
４，４ａ，４ｂ  NUMA
４１ａ〜４１ｅ  物理ＣＰＵ
４２ａ〜４２ｅ  仮想ＣＰＵ
【図１】
2020134988.tif 000003
【図２】
2020134988.tif 000004
【図３】
2020134988.tif 000005
【図４】
2020134988.tif 000006
【図５】
2020134988.tif 000007
【図６】
2020134988.tif 000008
【図７】
2020134988.tif 000009
【図８】
2020134988.tif 000010
【図９】
2020134988.tif 000011
【図１０】
2020134988.tif 000012