(57)【要約】【課題】仮想リソースの自動払出システムにおいて、仮想リソース毎に割当てられる物理ＣＰＵ（ＣＰＵコア）を変えることができ、かつ仮想リソースの固定割当を自動払出の一部として行えるリソース割当装置、リソース割当方法およびリソース割当プログラムを提供する。【解決手段】本発明の仮想計算機システムのリソース割当装置３は、仮想ＣＰＵをＣＰＵコア単位に１対１に固定割当するＣＰＵリソースの指定情報を有するリソース要求情報が入力される入力部３１１と、リソース要求情報に基づいて割当可能なＣＰＵリソースを抽出するリソース抽出部３１３と、抽出されたリソースから割当てるＣＰＵリソースを選定する割当先リソース選定部３１４と、選定されたＣＰＵリソースを固定割当するリソース固定割当部３１５と、選定されたＣＰＵリソースを多重割当するリソース多重割当部３１６を備えるようにした。【選択図】図２
2018037047.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機システムのリソース割当装置であって、
仮想ＣＰＵをＣＰＵコア単位に１対１に固定割当するＣＰＵリソースの指定情報を有するリソース要求情報が入力される入力部と、
前記リソース要求情報に基づいて割当可能なＣＰＵリソースを抽出するリソース抽出部と、
抽出されたリソースから割当てるＣＰＵリソースを選定する割当先リソース選定部と、
選定されたＣＰＵリソースを固定割当するリソース固定割当部と、
選定されたＣＰＵリソースを多重割当するリソース多重割当部と、
を備えたことを特徴とするリソース割当装置。
【請求項２】
請求項１に記載のリソース割当装置において、
前記リソース要求情報は、
割当てるＣＰＵのＣＰＵ使用率を指定する情報、または、割当てるＣＰＵのＣＰＵ識別番号を指定する情報、または、固定割当を指示する指示情報の少なくとも１つの固定割当するＣＰＵリソースの指定情報を含む
ことを特徴とするリソース割当装置。
【請求項３】
請求項１または請求項２に記載のリソース割当装置において、
さらに、割当可能なＣＰＵリソース毎に、ＣＰＵリソースの識別番号と、割当て可能なＣＰＵ使用率の上限を表す多重率と、割当済ＣＰＵリソースのＣＰＵ使用率と、を含むリソース管理テーブル記憶部とを備える
ことを特徴とするリソース割当装置。
【請求項４】
請求項３に記載のリソース割当装置において、
前記リソース要求情報は、割当てるＣＰＵのＣＰＵ使用率を指定する情報を含み、
前記リソース抽出部は、前記多重率の示す値と前記ＣＰＵ使用率の示す値との差分が、前記リソース要求情報に指定されたＣＰＵ使用率以上の時に、割当可能なＣＰＵとして抽出する
ことを特徴とするリソース割当装置。
【請求項５】
請求項１から請求項４のいずれかに記載のリソース割当装置において、
前記リソース固定割当部は、前記リソース要求情報において、割当てるＣＰＵのＣＰＵ使用率を指定する情報に割当てるＣＰＵリソースのＣＰＵ使用率の上限を表す値が指定され、かつ、割当てるＣＰＵのＣＰＵ識別番号を指定する情報に特定のＣＰＵリソースが指定されているときか、または、固定割当を指示する指示情報が指定されているときに、前記割当先リソース選定部で選定されたＣＰＵリソースの固定割当を行う
ことを特徴とするリソース割当装置。
【請求項６】
仮想計算機システムのリソース割当方法であって、
仮想ＣＰＵをＣＰＵコア単位に１対１に固定割当するＣＰＵリソースの指定情報を有するリソース要求情報が入力されるステップと、
前記リソース要求情報に基づいて割当可能なＣＰＵリソースを抽出するステップと、
抽出されたリソースから割当てるＣＰＵリソースを選定するステップと、
選定されたＣＰＵリソースを固定割当するステップと、
を含むことを特徴とするリソース割当方法。
【請求項７】
請求項６に記載のリソース割当方法において、
前記リソース要求情報には、割当てるＣＰＵのＣＰＵ使用率を指定する情報、を含み、
割当て可能なＣＰＵ使用率の上限を表す多重率と、割当済ＣＰＵリソースのＣＰＵ使用率と、を割当可能なＣＰＵリソース毎に記憶するリソース管理テーブルを参照して、前記多重率の示す値と前記ＣＰＵ使用率の示す値との差分が、前記リソース要求情報に指定されたＣＰＵ使用率以上のＣＰＵリソースを、割当可能なＣＰＵリソースとして抽出する
ことを特徴とするリソース割当方法。
【請求項８】
コンピュータを、請求項１から請求項５のいずれかのリソース割当装置として機能させるためのリソース割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システムのリソース割当装置、リソース割当方法およびリソース割当プログラムに関する。
【背景技術】
【０００２】
仮想計算機システムにより専用サーバで実現していた網機能等の処理を仮想化（ソフトウェア化）すると、スケジューラのＣＰＵリソースの切替え等によって、網機能等の処理の性能や品質を維持できないことがある。このため、仮想ＣＰＵを固定の物理ＣＰＵ（ＣＰＵコア）に対応付けるＣＰＵリソースの固定割当が必要となる。
【０００３】
しかし、エンドユーザからの仮想リソース要求に対して自動で仮想リソースを払い出すシステム（仮想リソース自動払出システム）による仮想計算機システムにおいては、ＣＰＵリソースの固定割当を自動的に行うことができない。
【０００４】
このため、例えば、非特許文献１には、OpenStackにおいて、仮想ＣＰＵを物理ＣＰＵに割り付ける範囲を設定ファイルのvcpu_pin_setパラメータに設定して、ＣＰＵリソースを固定割当する方法を開示している。
また、非特許文献２には、virshコマンドにより、仮想ＣＰＵを物理ＣＰＵコアに割り当てる方法を開示している
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】OpenStack Foundation“Consider NUMA topology when booting instances”、[online]、UPDATED: 2016-07-7 05:25、[2016/7/7検索]、インターネット＜ＵＲＬ：http://docs.openstack.org/admin-guide/cli-nova-numa-libvirt.html＞
【非特許文献２】redhat “Red Hat Enterprise Linux 6 仮想化のチューニングと最適化ガイド”、[online]、2013-10-31、[2016/7/7検索]、インターネット＜ＵＲＬ：https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html-single/Virtualization_Tuning_and_Optimization_Guide/index.html#sect-Virtualization_Tuning_Optimization_Guide-NUMA-NUMA_and_libvirt-vcpu_pinning_with_virsh＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の非特許文献１の先行技術によれば、ＣＰＵリソースの固定割当が可能となるが、複数の仮想リソースが共通の物理ＣＰＵに割当てられ、仮想リソース毎に割当てられる物理ＣＰＵを変えることができない問題がある。
また、上記の特許文献２の先行技術によれば、ＣＰＵリソースの固定割当が可能となるが、コマンドラインによる設定のため、仮想リソースの自動払出後の手続きとなり、環境構築の手続きが煩雑になるという問題がある。
【０００７】
本発明の目的は、仮想リソースの自動払出システムにおいて、仮想リソース毎に割当てられる物理ＣＰＵ（ＣＰＵコア）を変えることができ、かつ仮想リソースの固定割当を自動払出の一部として行えるリソース割当装置、リソース割当方法およびリソース割当プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、請求項１に記載の発明は、仮想計算機システムのリソース割当装置であって、仮想ＣＰＵをＣＰＵコア単位に１対１に固定割当するＣＰＵリソースの指定情報を有するリソース要求情報が入力される入力部と、前記リソース要求情報に基づいて割当可能なＣＰＵリソースを抽出するリソース抽出部と、抽出されたリソースから割当てるＣＰＵリソースを選定する割当先リソース選定部と、選定されたＣＰＵリソースを固定割当するリソース固定割当部と、選定されたＣＰＵリソースを多重割当するリソース多重割当部と、を備えるようにした。
このようにすることで、仮想リソース毎に割当られるＣＰＵコアを変えることができ、かつ仮想リソースの固定割当を自動払出できるようにして環境構築を容易にする。
【０００９】
請求項２に記載の発明は、請求項１に記載のリソース割当装置において、前記リソース要求情報は、割当てるＣＰＵのＣＰＵ使用率を指定する情報、または、割当てるＣＰＵのＣＰＵ識別番号を指定する情報、または、固定割当を指示する指示情報の少なくとも１つの固定割当するＣＰＵリソースの指定情報を含むようにした。
ようにした。
このようにすることで、固定割当するリソースの指定を容易に行うことができる。
【００１０】
請求項３に記載の発明は、請求項１または請求項２に記載のリソース割当装置において、さらに、割当可能なＣＰＵリソース毎に、ＣＰＵリソースの識別番号と、割当て可能なＣＰＵ性能比率の上限を表す多重率と、割当済ＣＰＵリソースのＣＰＵ使用率と、を含むリソース管理テーブル記憶部とを備えるようにした。
このようにすることで、ＣＰＵリソースの管理を容易に行うことができる。
【００１１】
請求項４に記載の発明は、請求項３に記載のリソース割当装置において、前記リソース要求情報は、割当てるＣＰＵのＣＰＵ使用率を指定する情報を含み、前記リソース抽出部は、前記多重率の示す値と前記ＣＰＵ使用率の示す値との差分が、前記リソース要求情報に指定されたＣＰＵ使用率以上の時に、割当可能なＣＰＵとして抽出するようにした。
このようにすることで、ＣＰＵリソースの割当可否の判定を容易に行うことができる。
【００１２】
請求項５に記載の発明は、請求項１から請求項４のいずれかに記載のリソース割当装置において、前記リソース固定割当部は、前記リソース要求情報において、割当てるＣＰＵのＣＰＵ使用率を指定する情報に１００％の値が指定されているか、または、割当てるＣＰＵのＣＰＵ識別番号を指定する情報に特定のＣＰＵリソースが指定されているか、または、固定割当を指示する指示情報が指定されているときに、前記割当先リソース選定部で選定されたＣＰＵリソースの固定割当を行うようにした。
このようにすることで、固定割当するＣＰＵリソースの指定を容易に行うことができる。
【００１３】
請求項６に記載の発明は、仮想計算機システムのリソース割当方法であって、仮想ＣＰＵをＣＰＵコア単位に１対１に固定割当するＣＰＵリソースの指定情報を有するリソース要求情報が入力されるステップと、前記リソース要求情報に基づいて割当可能なＣＰＵリソースを抽出するステップと、抽出されたリソースから割当てるＣＰＵリソースを選定するステップと、選定されたＣＰＵリソースを固定割当するか、または、選定されたＣＰＵリソースを多重割当するステップと、を含むようにした。
このようにすることで、仮想リソースの固定割当を自動払出できるようにする。
【００１４】
請求項７に記載の発明は、請求項６に記載のリソース割当方法において、前記リソース要求情報には、割当てるＣＰＵのＣＰＵ使用率を指定する情報、を含み、割当て可能なＣＰＵ性能比率の上限を表す多重率と、割当済ＣＰＵリソースのＣＰＵ使用率と、を割当可能なＣＰＵリソース毎に記憶するリソース管理テーブルを参照して、前記多重率の示す値と前記ＣＰＵ使用率の示す値との差分が、前記リソース要求情報に指定されたＣＰＵ使用率以上のＣＰＵリソースを、割当可能なＣＰＵリソースとして抽出するようにした。
このようにすることで、ＣＰＵリソースの管理を容易に行うことができ、さらに、ＣＰＵリソースの割当可否の判定を容易に行うことができる。
【００１５】
請求項８に記載の発明は、リソース割当プログラムであって、コンピュータを、請求項１から請求項５のいずれかのリソース割当装置として機能させるためのリソース割当プログラムとした。
このようにすることで、仮想リソースの固定割当を自動払出で行うことができる。
【発明の効果】
【００１６】
本発明によれば、仮想リソース毎に割当られるＣＰＵコアを変えることができ、かつ仮想リソースの固定割当を自動払出で行えるので、ＣＰＵコアを有効に使うことができ、かつ仮想計算機システムの構築を容易に行うことができる。
【図面の簡単な説明】
【００１７】
【図１】リソース割当装置の処理概要を説明する図である。
【図２】リソース割当装置のモジュール構成図である。
【図３】リソース割当装置の割当処理概要フロー図である。
【図４】リソース割当装置のリソース要求情報の定義内容を説明する図である。
【図５】リソース割当装置のリソース管理テーブルの構成の一例を示す図である。
【図６】割当可能リソースの抽出処理の処理フローである。
【図７】割当可能リソースの抽出一覧を説明する図である。
【発明を実施するための形態】
【００１８】
まず、実施形態のリソース割当装置３の処理概要を、図１により説明する。
実施形態のリソース割当装置３は、エンドユーザからの仮想リソース（ＶＭ）要求に対して自動で仮想リソースを払い出すシステム（仮想リソース自動払出システム）において、ＣＰＵコア単位でリソースの管理を行い、仮想リソース要求に対して、割当可能ＣＰＵコアの抽出、割当先リソースの選定を行い、固定割当を行った仮想リソースの払出を行う。
本明細書では、仮想ＣＰＵ（仮想リソース）をＣＰＵコア（物理リソース）単位に１対１に割当てることを固定割当と称し、１対１を含み仮想ＣＰＵをＣＰＵコアにｎ対１に割当てることを多重割当と称する。
【００１９】
より詳しくは、図１の仮想リソースＶＭ＃１（１ａ）、仮想リソースＶＭ＃２（１ｂ）、仮想リソースＶＭ＃３（１ｃ）のそれぞれの３つ仮想ＣＰＵを、物理リソースＨＷ＃１（２ａ）、物理リソースＨＷ＃２（２ｂ）、物理リソースＨＷ＃３（２ｃ）のそれぞれの８ＣＰＵコアへの割当を行うものである。言うまでもないが、ＣＰＵコアの数は８に限定されるものではない。
【００２０】
ここで、仮想リソースＶＭ＃１（１ａ）は、仮想化によっても性能／品質を維持するために、オーバーヘッドを低減して性能の帯域維持が可能な占有モードとなるように、仮想ＣＰＵと物理リソースＣＰＵコアを１対１の固定割当とする。仮想リソースＶＭ＃２（１ｂ）と仮想リソースＶＭ＃３（１ｃ）は、複数の仮想ＣＰＵ間で物理リソースのＣＰＵコアを共用(重畳)することが可能な共用モードになるように、仮想ＣＰＵをＣＰＵコアに割当てる（多重割当）。
【００２１】
つぎに、実施形態のリソース割当装置３の構成を、図２のモジュール構成図と、図３の割当処理概要フロー図により詳細に説明する。
まず、図２によりモジュール構成を説明する。
【００２２】
実施形態のリソース割当装置３は、リソース払出制御部３１とリソース管理テーブル３２の記憶部とから構成される。そして、リソース払出制御部３１は、リソース管理テーブル３２を参照しながら、仮想リソースの割当てを行うリソース要求部３０から入力されたリソース要求情報４の条件を満たす空きリソースがある物理リソースを物理リソース２ａ、２ｂ、２ｃ、２ｄから抽出し、１つの物理リソースを選定し、選定した物理リソースに要求された仮想リソースを割当て、割当結果であるリソース払出情報をリソース要求部３０に通知する。
【００２３】
リソース払出制御部３１は、要求受付処理部３１１とリソース管理部３１２と割当可能リソース抽出部３１３と割当先リソース選定部３１４とリソース固定割当部３１５とリソース多重割当部３１６とから構成される。
【００２４】
ここで、要求受付処理部３１１は、後述するリソース要求情報４とリソース払出情報の入出力を行い、以降に説明する処理モジュールの連携操作を行う。
リソース管理部３１２は、物理リソースのＣＰＵコア毎のリソース状況を保持するリソース管理テーブル３２に基づいて、仮想リソース生成時に、割当先リソースと固定割当したＣＰＵコアを管理する。
【００２５】
割当可能リソース抽出部３１３は、リソース管理部３１２と連携して、後述する抽出方法によりリソース要求情報４の条件を満たす割当可能リソース（割当先物理リソース候補）の一覧を求める。
割当先リソース選定部３１４は、割当可能リソース（割当先物理リソース候補）の一覧から、所定ルールにより、割当先物理リソースと各仮想ＣＰＵの割当先ＣＰＵコアを決める。
【００２６】
リソース固定割当部３１５は、割当先リソース選定部３１４により選定されたＣＰＵの固定割当を行う処理部である。
リソース多重割当部３１６は、割当先リソース選定部３１４により選定されたＣＰＵの多重割当を行う処理部である。
【００２７】
つぎに、図３の割当処理概要フロー図を説明しながら、より詳細に、実施形態のリソース割当装置３を説明する。
まず、リソース割当装置３の要求受付処理部３１１（図２参照）は、図４に一例を示すリソース要求情報４を受付ける（ステップＳ３１）。
【００２８】
ここで、リソース要求情報４の定義内容を図４により説明する。
図４のリソース要求情報４は、割当てる仮想ＣＰＵの割当条件（属性）を定義しており、num_vcpu属性により割当る仮想ＣＰＵ数を設定する。そして、vcpu0属性、vcpu1属性、…、vcpu5属性により、それぞれの仮想ＣＰＵの割当条件を設定する。
【００２９】
さらに、anti-affinity属性により、同一ＣＰＵコアへの割当不可の仮想ＣＰＵ関係（ペア／範囲の一覧）を設定する。図４では、vcpu0からvcpu5の仮想ＣＰＵを同じＣＰＵコアへの割当不可としているので、仮想ＣＰＵは異なる複数（６つ）のＣＰＵコアに割当てられる。
仮想ＣＰＵの割当条件（属性）は、仮想ＣＰＵ使用率を示すloadパラメータと、割当ＣＰＵコアを指定するcoreパラメータと、割当重要度を指定するroleパラメータと、から構成される。
【００３０】
詳細は後述するが、実施形態の割当処理では、上記のリソース要求情報４のloadパラメータを100％に設定して仮想ＣＰＵの固定割当を行うようにしている。しかし、固定割当するＣＰＵコアを指定するoccupying属性を設けて、直接指定するようにしてもよい。
【００３１】
図３に戻り、リソース要求情報４を受けた要求受付処理部３１１は、割当可能リソース抽出部３１３を起動する。割当可能リソース抽出部３１３は、リソース管理テーブル３２を管理するリソース管理部３１２と連携して、割当可能なリソースの抽出処理を行う（Ｓ３２）。
【００３２】
図５は、リソース管理テーブル３２の構成の一例を示す図である。
リソース管理テーブル３２は、ホスト名、ＩＰアドレス等により識別される物理リソースの識別情報（アクセスＩＤ）であるＨＷ項目３２１と、ＣＰＵコアの識別情報であるｃｏｒｅ項目３２２と、基準となるＣＰＵ性能とＣＰＵコアの性能の比率（ＣＰＵ性能比率）であり、割当て可能なＣＰＵ使用率の上限を表す多重率３２３と、割当済み仮想ＣＰＵ累積のＣＰＵ使用率を表す使用率３２４と、仮想ＣＰＵとその仮想リソースを表す割当先３２６とから構成される。
リソース管理部３１２は、ＨＷ項目３２１とｃｏｒｅ項目３２２のペアを管理単位とする。
【００３３】
また、リソース管理テーブル３２は、仮想ＣＰＵが固定割当されたＣＰＵコアが別のリソース要求情報４により多重割当されないように、割当状態を表す状態項目３２５をもつようにしてもよい。例えば、固定割当されたＣＰＵコアの状態項目３２５には、「占有」が設定され、他の仮想ＣＰＵが割当可能なＣＰＵコアの状態項目３２５には、「共有」が設定される。
この割当状態を表す状態項目３２５を「占有」に設定することに限らず、固有割当したＣＰＵコアの使用率３２４をＣＰＵコアのＣＰＵ使用率の上限を表す多重率３２３の値に変更することによっても、他のＣＰＵリソースの多重割当を防止することができる。
【００３４】
図５においてリソース管理テーブル３２の多重率３２３の値は、１００％となっているが、１００％が上限値ではなく、物理リソースの性能比率に応じて値を設定する。高性能な物理リソースでは、１００％より大きな値を設定する。これにより、性能の異なる物理リソースで構成されるシステムにおいても、ひとつのリソース要求情報４に基づいて、リソース割当を行うことができる。
図５において、ＨＷ項目３２１が「＃０」、ｃｏｒｅ項目３２２が「０」の割当先３２６が「for Host OS」のＣＰＵコアは、多重率３２３を０％にして、ＣＰＵコアに仮想リソースが割当されないようにしている。これにより、ＨｏｓｔＯＳが占有する動作となる。
【００３５】
図３に戻り、ステップＳ３２の割当可能リソースの抽出処理を説明する。
図６は、割当可能リソース抽出部３１３で行う割当可能リソースの抽出処理の詳細な処理フローである。
図６の処理フローでは、図５に示したリソース管理テーブル３２のＨＷ項目３２１とｃｏｒｅ項目３２２のペアで指定されるＣＰＵコアである割当コア毎に割当の可否を判定し、図７に示す割当可能リソースの抽出一覧７を作成する。
【００３６】
図７の割当可能リソースの抽出一覧７は、物理リソースの識別情報であるＨＷ項目７１と、ＣＰＵコアの識別情報であるｃｏｒｅ項目７２と、ＣＰＵコアのＣＰＵ性能比率の上限を表す多重率７３と、割当済みＣＰＵのＣＰＵ性能比率を表す使用率７４と、仮想ＣＰＵの割当可否の判定結果を記録する項目であるVcpu0（７５）、Vcpu1（７６）、…、Vcpu5（７８）をもつ。ここで、ＨＷ項目７１とｃｏｒｅ項目７２と多重率７３は、図５のリソース管理テーブル３２に対応する。
【００３７】
図６に戻り処理フローを説明する。
割当可能リソース抽出部３１３は、ステップＳ６０１で、リソース要求情報４のnum_vcpu属性に設定された仮想ＣＰＵ数分、仮想ＣＰＵ毎に繰り返す、ステップＳ６１４までの処理を開始する。
そして、割当可能リソース抽出部３１３は、ステップＳ６０２で、coreパラメータで指定された割当コア（割当ＣＰＵコア）毎に繰り返す、ステップＳ６０６までの処理を開始する。
【００３８】
ステップＳ６０３では、割当コア毎に多重率３２３から使用率３２４を減算した値が、リソース要求情報４のloadパラメータに設定された要求使用率以上であるか否かを判定する。つまり、仮想ＣＰＵをＣＰＵコアに割当てた際に、要求性能を満たすか否かを判定する。
要求使用率以上であれば（Ｓ６０３のＹｅｓ）、ステップＳ６０４に進み、割当可能リソースの抽出一覧７に「可」を記録して、割当可設定する。さらに、使用率７４に要求使用率を加算する。そして、ステップＳ６０６に進み、次の割当コアの処理を行う。要求使用率未満であれば（Ｓ６０３のＮｏ）、ステップＳ６０５に進み、割当可能リソースの抽出一覧７に「不可」を記録して、割当不可設定する。そして、ステップＳ６０６に進み、次の割当コアの処理を行う。
【００３９】
ステップＳ６０２からステップＳ６０６の割当コア毎の繰り返し処理を終了すると、リソース要求情報４のroleパラメータを判定し（ステップＳ６０７）、roleパラメータが、割当重要度が必須を意味する「must」であれば（ステップＳ６０７のmust）、ステップＳ６１４に進み、次の仮想ＣＰＵの処理を行う。roleパラメータが、割当重要度が可能な範囲での割当を意味する「should」であれば（ステップＳ６０７のshould）、ステップＳ６０８に進む。
ステップＳ６０８では、仮想ＣＰＵをcoreパラメータで指定された割当コア（割当ＣＰＵコア）に割当可能できたかを判定し、いずれかの割当ＣＰＵコアに割当可能であった場合には（Ｓ６０８のＹｅｓ）、ステップＳ６１４に進み、次の仮想ＣＰＵの処理を行う。
【００４０】
ステップＳ６０８で、仮想ＣＰＵをcoreパラメータで指定された割当コア（割当ＣＰＵコア）に割当できなかった場合には（Ｓ６０８のＮｏ）、ステップＳ６０９からステップＳ６１３により、coreパラメータで指定された割当コア（割当ＣＰＵコア）以外への仮想ＣＰＵの割当可否を判定する。処理内容は、ステップＳ６０２からステップＳ６０６と同様のため説明は省略する。
【００４１】
ステップＳ６１４で、リソース要求情報４で指定された仮想ＣＰＵの割当が終了すると、ステップＳ６１５に進み、anti-affinity属性等のＨＷ割当条件を満足する割当の組み合わせがあるか否かを判定する。ＨＷ割当条件を満足している場合には（Ｓ６１５のＹｅｓ）、処理を終了する。ＨＷ割当条件を満足していない場合には（Ｓ６１５のＮｏ）、物理リソースＨＷ＃２（２ｂ）（図１参照）等の他のＨＷに変更する処理を行い（ステップＳ６１６）、ステップＳ６０１からの処理を繰り返す。
なお、ステップＳ６１５の判定を行わずに、全ての物理リソースＨＷについて、ステップＳ６０１からステップＳ６１４の割当可能なリソース抽出処理を行って、後述する割当先ＨＷの選定処理を行ってもよい。
上述の処理により、割当可能リソース抽出部３１３は、割当可能リソースの抽出一覧７を作成する。
【００４２】
また、ステップＳ６０１からステップＳ６１４の割当可能リソース抽出処理を、roleパラメータが「must」の仮想ＣＰＵについて行い、つぎに、roleパラメータが「should」の仮想ＣＰＵについて行うようにしてもよい。これにより、roleパラメータが「must」の仮想ＣＰＵの割当を優先して抽出することができる。
【００４３】
図３に戻り、ステップＳ３３の割当先ＨＷの選定処理について説明する。
割当先ＨＷの選定処理を行う割当先リソース選定部３１４は、割当可能リソースの抽出一覧７を参照して、仮想ＣＰＵが複数の物理リソース（ＨＷ）に割当可であった場合には、特定の物理リソース（ＨＷ）を選定する。
【００４４】
より詳細には、複数の仮想ＣＰＵのcoreパラメータにより割当候補として多重抽出された割当コア（割当ＣＰＵコア）がある場合には、roleパラメータが「must」の仮想ＣＰＵに優先してＣＰＵコアを割当るように選定処理する。
【００４５】
この特定の物理リソース（ＨＷ）の選定は、負荷分散の観点では、割当可であるＣＰＵコアの使用率の総和が最小の物理リソース（ＨＷ）を選定することができる。
また、物理リソースの使用効率の観点では、割当可であるＣＰＵコアの使用率の総和が最大の物理リソース（ＨＷ）を選定してもよい。
また、ひとつの仮想ＣＰＵを複数のＣＰＵコアに割当可能であった場合には、ｃｏｒｅ項目が若い番号のＣＰＵコアに割当する。
【００４６】
つぎに、ステップＳ３４で、仮想ＣＰＵの割当が固定割当要求であるか否かを判定する。この判定は、coreパラメータが指定（範囲指定を含む）され、かつ、loadパラメータが100%指定されている場合、または、occupying属性が指定されている場合のいずれかひとつがリソース要求情報４に指定されているかを判定することにより行う。
【００４７】
ステップＳ３４で、仮想ＣＰＵの割当が固定割当要求であった場合には（Ｓ３４のＹｅｓ）、リソース固定割当部３１５により固定割当処理を行う（ステップＳ３５）。
この固定割当処理は、libvirtのコマンド(vcpupin)を発行して行う。また、仮想リソース（ＶＭ）定義ファイルを生成してもよい。
【００４８】
ステップＳ３４で、仮想ＣＰＵの割当が固定割当要求でなかった場合には（Ｓ３４のＮｏ）、リソース多重割当部３１６により多重割当処理を行う（ステップＳ３６）。
【００４９】
そして、ステップＳ３７で、固定割当されたＣＰＵコアについては、リソース管理テーブル３２の使用率３２４を多重率３２３に設定して、多重割当を防止する。
さらに、リソース管理テーブル３２の割当先３２６に、ＣＰＵコアの割当先の仮想ＣＰＵ名を設定する。
以上の処理により、リソース管理テーブル３２の更新を行う。
【００５０】
また、ステップＳ３７で、固定割当されたＣＰＵコアについて、リソース管理テーブル３２の状態項目３２５の値を「占有」に設定してもよい。
これにより、固定割当されたＣＰＵコアについて、リソース管理テーブル３２の状態項目３２５の値を「占有」に設定するので、他の仮想ＣＰＵの割当処理のステップＳ３２の割当可否を判定する際に、判定対象の割当コア（割当ＣＰＵコア）から状態項目３２５が「占有」の割当コア（割当ＣＰＵコア）を除外することで、ＣＰＵコアに多重割当されることがない。
【００５１】
最後に、ステップＳ３８で、リソース払出情報をリソース要求部３０（図２参照）に応答して、実施形態のリソース割当装置３のリソース割当処理を終了する。
【００５２】
ところで、実施形態のリソース割当装置３は、ＣＰＵ（Central Processing Unit）を搭載し、プログラムやデータを記憶するハードディスクドライブやＲＯＭ（Read only memory）やＲＡＭ（Random access memory）を実装する情報処理装置において、ハードディスクドライブに記録されたリソース割当プログラムを、ＣＰＵが実行することにより実施することができる。
【符号の説明】
【００５３】
３  リソース割当装置
３０  リソース要求部
３１  リソース払出制御部
３１１  要求受付処理部（入力部）
３１２  リソース管理部
３１３  割当可能リソース抽出部（リソース抽出部）
３１４  割当先リソース選定部
３１５  リソース固定割当部
３１６  リソース多重割当部
３２  リソース管理テーブル
２ａ、２ｂ、２ｃ、２ｄ  物理リソース
【図１】
2018037047.tif 000003
【図２】
2018037047.tif 000004
【図３】
2018037047.tif 000005
【図４】
2018037047.tif 000006
【図５】
2018037047.tif 000007
【図６】
2018037047.tif 000008
【図７】
2018037047.tif 000009