[go: up one dir, main page]

JP6543219B2 - 仮想マシン配置装置およびリソース管理方法 - Google Patents

仮想マシン配置装置およびリソース管理方法 Download PDF

Info

Publication number
JP6543219B2
JP6543219B2 JP2016110554A JP2016110554A JP6543219B2 JP 6543219 B2 JP6543219 B2 JP 6543219B2 JP 2016110554 A JP2016110554 A JP 2016110554A JP 2016110554 A JP2016110554 A JP 2016110554A JP 6543219 B2 JP6543219 B2 JP 6543219B2
Authority
JP
Japan
Prior art keywords
cpu
cores
physical server
physical
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016110554A
Other languages
English (en)
Other versions
JP2017215884A (ja
Inventor
文彦 澤崎
文彦 澤崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016110554A priority Critical patent/JP6543219B2/ja
Publication of JP2017215884A publication Critical patent/JP2017215884A/ja
Application granted granted Critical
Publication of JP6543219B2 publication Critical patent/JP6543219B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、仮想マシンを複数の物理サーバに配置する仮想マシン配置装置および仮想マシンのリソースを管理するリソース管理方法に関する。
近年、NFV(Network Functions Virtualization:ネットワーク機能仮想化)の仮想アプライアンスに代表されるように、処理の低遅延が要求されるアプリケーション(以下、単にアプリケーション)をVM(Virtual Machine:仮想マシン)で実行・運用する技術が関心を集めている。
このようなアプリケーションでは、遅延を低減させるために、VMの仮想CPUと物理CPUのコアとを固定的に割り当てる(括りつける)ことが多い。これは、コアのCPU時間のリソースを、VMが占有することを意図しており、他のVMにリソースをディスパッチされないことから、遅延を低減する効果がある。
また、このようなアプリケーションでは、同一の物理CPU上のコアという限定を付けてVMの仮想CPUと物理CPUのコアとを固定的に割り当てることもある。これは、VM内のプロセス・スレッド間通信を同一物理CPU内で実行することができることから、キャッシュヒット率を高くすることができ、遅延を低減する手段として極めて高い効果がある。
従来、このようなVMの仮想CPUを物理CPUに固定的に割り当てる方法は、KVM(Kernel-based Virtual Machine:カーネル仮想化基盤)等で提供される機能(CPUピニング)で実現することができる(非特許文献1参照)。この手法は、コンピュータを介して、コマンドを手動で発行し、そのコマンドを取得した物理サーバ(サーバハード)が、同サーバ上で動作するVMの仮想CPUと物理CPUとの割り当てを行っている。
一方、OpenStack等のリソース管理システムでは、VMにリソースを自動的に割り当てている(非特許文献2参照)。このリソース管理システムは、CPU負荷の低い物理サーバにVMを配置することで、リソースを割り当てている。
"KVMプロセッサーアフィニティの設定"、[online]、[平成28年5月20日検索]、インターネット〈URL:https://docs.fedoraproject.org/ja-JP/Fedora/13/html/Virtualization_Guide/ch25s06.html〉 "Virtualization Driver Guest CPU / Memory Placement"、[online]、[平成28年5月20日検索]、インターネット〈https://wiki.openstack.org/wiki/VirtDriverGuestCPUMemoryPlacement〉
従来の非特許文献1の手法では、人手によってCPU等のリソースの割り当てを行うため、手間がかかるとともに、操作ミスが起こりやすいといった問題がある。
また、従来の非特許文献2の手法では、VMにリソースを自動的に割り当てることはできるが、VMの仮想CPUと物理CPUのコアとを固定的に割り当てるようなアプリケーションには適用できず、CPU負荷の低い物理サーバにVMを配置することしかできない。
このように、従来の手法は、VMの仮想CPUと物理CPUのコアとを固定的に割り当てることを前提としたシステムにおいて、自動的にリソースを割り当てることは困難であった。
また、従来の手法は、VMのリソースの確保、VM停止後のリソースの回収を繰り返すと使用中のリソースと小さな未使用のリソースとが混在し、大きな未使用のリソースを確保することができない、いわゆる、リソースの断片化が発生する。そのため、従来の手法は、システム全体で未使用リソースが十分であっても、同一の物理CPU上でVMが必要とする未使用リソースを確保することができないという問題が発生する場合がある。
本発明は、このような問題に鑑みてなされたもので、仮想マシン(VM)に、人手を介さずにリソースを確保するとともに、リソースの断片化を防止することが可能な仮想マシン配置装置およびリソース管理方法を提供することを課題とする。
前記課題を解決するため、請求項1に記載の仮想マシン配置装置は、複数のコアで構成されるCPUを複数有する物理サーバを複数備えたコンピュータシステムにおいて、仮想マシンを予め同一のCPUのコアに割り当てて前記物理サーバに配置する仮想マシン配置装置であって、前記物理サーバと前記CPUと前記コアとを対応付けるとともに、前記コアがどの仮想マシンに使用されているのかを示すリソース管理データを記憶する記憶手段と、前記リソース管理データを参照して、新たな仮想マシンが予め必要とする必要コア数を同一CPU上に確保できるか否かを判定する空きリソース判定手段と、前記空きリソース判定手段で同一CPU上に前記必要コア数を確保できない場合に、動作中の仮想マシンが割り当てられているコアを、当該仮想マシンが動作している物理サーバの他のCPU、または、他の物理サーバのCPUに割り当て直すコンパクション実行手段と、確保された同一CPU上のコアに、前記新たな仮想マシンを配置する配置実行手段と、を備え、前記空きリソース判定手段は、前記同一CPUで前記必要コア数を確保できない場合に、個々の物理サーバ内で、前記動作中の仮想マシンに割り当てられているコアを、他のCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定する物理サーバ単位リソース判定手段と、前記物理サーバ内で前記必要コア数を確保できない場合に、すべての物理サーバ間で、前記動作中の仮想マシンに割り当てられているコアを、他の物理サーバのCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定する全物理サーバリソース判定手段と、を備えることを特徴とする。
かかる構成によれば、仮想マシン配置装置は、空きリソース判定手段によって、新たに配置する仮想マシンが必要とするコア数を、同一CPU上に確保できるか否かを判定することができる。そして、仮想マシン配置装置は、コンパクション実行手段によって、物理サーバ内でCPUのコアの割り当てや、物理サーバ間でCPUのコアの割り当てを変更することができる。これによって、仮想マシン配置装置は、リソース(コア)が分断化されている場合でも、コンパクションによってリソースを有効に活用することができる。
また、仮想マシン配置装置は、物理サーバ単位リソース判定手段によって、物理サーバ内でのコンパクションによって、新たに配置する仮想マシンが必要とするコア数を、同一CPU上に確保できるか否かを判定することができる。また、仮想マシン配置装置は、全物理サーバリソース判定手段によって、物理サーバ間のコンパクションによって、新たに配置する仮想マシンが必要とするコア数を、同一CPU上に確保できるか否かを判定することができる。これによって、仮想マシン配置装置は、物理サーバ内、物理サーバ間と階層的にリソースを確保することができる。
また、前記課題を解決するため、請求項に記載のリソース管理方法は、複数のコアで構成されるCPUを複数有する物理サーバを複数備えたコンピュータシステムにおいて、仮想マシン配置装置が、仮想マシンを予め同一のCPUのコアに割り当てて前記物理サーバに配置するためのリソースを確保するリソース管理方法であって、CPU単位リソース判定手段によって、前記物理サーバと前記CPUと前記コアとを対応付けるとともに、前記コアがどの仮想マシンに使用されているのかを示すリソース管理データを参照して、同一CPU内で新たな仮想マシンが予め必要とする必要コア数を確保できるか否かを判定するステップと、同一CPU内で前記必要コア数を確保できない場合に、物理サーバ単位リソース判定手段によって、前記リソース管理データを参照して、個々の物理サーバ内で、動作中の仮想マシンに割り当てられているコアを、他のCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定するステップと、前記物理サーバ内で前記必要コア数を確保できる場合に、物理サーバ内割り当て変更手段によって、前記物理サーバ内でコアの割り当てを変更するステップと、前記物理サーバ内で前記必要コア数を確保できない場合に、全物理サーバリソース判定手段によって、前記リソース管理データを参照して、すべての物理サーバ間で、動作中の仮想マシンに割り当てられているコアを、他の物理サーバのCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定するステップと、前記物理サーバ間で前記必要コア数を確保できる場合に、物理サーバ間割り当て変更手段によって、前記物理サーバ間でコアの割り当てを変更するステップと、を含むことを特徴とする
かかる手順によれば、リソース管理方法は、物理サーバ内でのコンパクションによって、新たに配置する仮想マシンが必要とするコア数を、同一CPU上に確保できるか否かを判定することができる。また、リソース管理方法は、物理サーバ間のコンパクションによって、新たに配置する仮想マシンが必要とするコア数を、同一CPU上に確保できるか否かを判定することができる。これによって、リソース管理方法は、物理サーバ内、物理サーバ間と階層的にリソースを確保することができる。
本発明によれば、仮想マシンの仮想CPUと物理CPUのコアとを固定的に割り当てることを前提としたシステムにおいて、自動的にリソースを割り当てることができ、人手による手間を少なくし、操作ミスを防止することができる。
また、本発明によれば、コンパクションによって、リソースの断片化を防止することができ、リソースを有効に活用することができる。
本発明の実施形態に係るコンピュータシステム(データセンタ)の概要を説明するためのシステム概要図である。 図1の物理サーバとその物理サーバ上で動作する仮想マシンとのリソースの割り当てを説明するための説明図である。 本発明の実施形態に係る仮想ラベル配置装置の構成を示すブロック構成図である。 本発明の実施形態に係る仮想ラベル配置装置で管理するリソースの構造を示すツリー構造図である。 本発明の実施形態に係る仮想ラベル配置装置で管理するリソース管理データのデータ構造の例であって、(a)はデータセンタ内物理サーバリスト、(b)は物理サーバ内CPUリスト、(c)はCPU内コアリストのデータ構造図である。 本発明の実施形態に係る仮想ラベル配置装置で管理する仮想マシンで動作するアプリケーションの動作状態(アクティブ/スタンバイ)を示す動作状態リストのデータ構造図である。 物理サーバに新規に仮想マシンを配置する概念を説明するための説明図である。 物理サーバ内のコンパクション処理を説明するための説明図であって、(a)はCPUの空きリソースの多い順番を示す図、(b)は仮想マシンに対するリソース探索を示す図、(c)は新規の仮想マシンを配置した状態を示す図である。 全物理サーバでのコンパクション処理を説明するための説明図であって、(a)は全物理サーバのCPUごとの仮想マシンの割り付け状態を示す図、(b)はCPUの空きリソースの多い順番を示す図である。 仮想マシンの仮想CPUと、物理サーバの物理CPUにおけるコアの割り当ての変更を説明するための説明図である。 仮想マシンの物理サーバ間の移動を説明するための説明図である。 仮想マシンで動作するアプリケーションの動作状態(アクティブ/スタンバイ)を考慮した仮想マシンの物理サーバ間の移動を説明するための説明図である。 本発明の実施形態に係る仮想ラベル配置装置の動作を示すフローチャート(その1)である。 本発明の実施形態に係る仮想ラベル配置装置の動作を示すフローチャート(その2)である。
本発明の実施形態について図面を参照して説明する。
≪データセンタの全体構成≫
まず、図1,図2を参照して、本発明の実施形態に係る仮想マシン配置装置により、仮想マシンの配置およびそのリソース管理を行うコンピュータシステムの例であるデータセンタSの全体構成について説明する。
データセンタSは、インターネット、ネットワーク事業者網等(不図示)から接続可能な複数のサーバを備えたコンピュータシステムである。
このデータセンタSは、複数の物理サーバ1,1,…と、図示を省略したネットワーク機器で構成される。また、ここでは、データセンタSに、仮想マシン配置装置2を備える。なお、仮想マシン配置装置2は、必ずしもデータセンタSの中に備える必要はなく、各物理サーバ1,1,…と、ネットワーク等で接続可能なデータセンタSの外に備えることとしてもよい。
物理サーバ1は、仮想マシン(VM)12を動作させるハードウェアである。ここでは、物理サーバ1は、複数のCPU(Central Processing Unit)10で構成され、個々のCPU(物理CPU)10は、複数のコア11で構成されているものとする。なお、図1では、物理サーバ1として、一般的に備えられる記憶装置、通信制御装置等の図示を省略している。この物理サーバ1は、当該物理サーバ1上で動作する仮想マシン12に対して、アプリケーションを動作させるためのリソース(CPU資源)を提供する。
なお、物理サーバ1上に配置される仮想マシン(以下、VM)12は、図2に示すように、複数のプロセス、スレッドが、仮想CPU(vCPU)13で動作する。また、個々の仮想CPU13は、同一のCPU(物理CPU)10の個別のコア11に固定的に割り当てられて動作するものとする。なお、以下では、この状態を、VM12がCPU10のコア11に割り当てられているという。
これによって、VM12は、コア11のCPU時間を占有することができ、他のVMにリソースをディスパッチされず、遅延を低減することができる。
仮想マシン配置装置2は、データセンタ(コンピュータシステム)S内のリソースを管理し、VM12を同一のCPU10のコア11に割り当てて物理サーバ1に配置するものである。
この仮想マシン配置装置2は、物理サーバ1のCPU10に、VM12を動作させるために十分なコア11の空きがある場合、その物理サーバ1にVM12を配置する。一方、仮想マシン配置装置2は、物理サーバ1のCPU10に、VM12を動作させるために十分なコア11の空きがない場合、コア11の断片化を解消し、コア11の空きを作ってVM12を配置する。
この仮想マシン配置装置2の構成については、図3を参照して、後で詳細に説明する。
このように、データセンタSは、仮想マシン配置装置2によって、複数の物理サーバ1上に自動でVM12を配置することができ、リソースの管理を行うことができる。
≪仮想マシン配置装置の構成≫
次に、図3を参照して、仮想マシン配置装置2の構成について説明する。
図3に示すように、仮想マシン配置装置2は、通信部200と、記憶部210と、制御部220と、を備える。
通信部(通信手段)200は、通信回線を介して、物理サーバ1との間で通信データの送受信を行うものである。例えば、通信部200は、NIC(Network Interface Card)等の通信制御手段で構成される。この通信部200は、制御部220から入力される信号(制御情報、データ)を、通信回線を介して、物理サーバ1に送信し、物理サーバ1から受信した信号を制御部220に出力する。
記憶部(記憶手段)210は、データセンタS内のリソースを管理するデータ(リソース管理データ)を記憶するものである。また、ここでは、VM12として動作するアプリケーションは、アクティブ/スタンバイ(ACT〔運用系〕/SBY〔待機系〕)構成で動作するものとし、記憶部210は、VM12の動作状態を示すリスト(動作状態リスト)も記憶することとする。この記憶部210は、ハードディスク等の一般的な記憶装置で構成される。
ここで、図4,図5を参照して、記憶部210に記憶するリソース管理データの例について説明する。図4に示すように、リソース管理データは、リソース(物理サーバ1、CPU10、コア11)を、データセンタ内物理サーバリスト211、物理サーバ内CPUリスト212、CPU内コアリスト213の順にツリー構造化したデータである。
データセンタ内物理サーバリスト211は、データセンタSを構成する物理サーバ1のリストである。例えば、データセンタ内物理サーバリスト211は、図5(a)に示すように、個々の物理サーバ1を識別する識別情報SV,SV,…(例えば、IPアドレス等)を配列したデータである。
このデータセンタ内物理サーバリスト211によって、データセンタSが何台の物理サーバ1で構成されているのかが管理される。
物理サーバ内CPUリスト212は、物理サーバ1を構成するCPU10のリストである。例えば、物理サーバ内CPUリスト212は、図5(b)に示すように、物理サーバ1ごとに、構成するCPU10を識別する識別情報CPU,CPU,…(例えば、連続番号等)を配列したデータである。
この物理サーバ内CPUリスト212によって、個々の物理サーバ1がいくつのCPU10で構成されているのかが管理される。
CPU内コアリスト213は、CPU10を構成するコア11のリストである。また、CPU内コアリスト213は、それぞれのコア11が、どのVM12によって使用され、どの仮想CPU13に対応付けられているのかを併せて保持する。
例えば、CPU内コアリスト213は、図5(c)に示すように、CPU10ごとに、構成するコア11を識別する識別情報CORE,CORE,…(例えば、連続番号等)を配列したデータである。さらに、CPU内コアリスト213は、それぞれのコア11に対して、図5(c)に示すように、使用状態(使用/未使用)を保持し、使用している場合、どの仮想マシン(VM)12によって使用され、どの仮想CPU13に対応付けられているのかを保持する。なお、図5(c)中、VM,VM,…は、VM12を個別に識別する識別情報(例えば、連続番号等)である。また、vCPU,vCPU,…は、仮想CPU13を個別に識別する識別情報(例えば、連続番号等)である。
このCPU内コアリスト213によって、個々のCPU10がいくつのコア11で構成されているのかが管理されるとともに、コア11の使用状況が管理される。
次に、図6を参照して、記憶部210に記憶する動作状態リストの例について説明する。図6に示すように、動作状態リスト214は、それぞれのVM12(VM,VM,…)ごとに、動作しているアプリケーションAPLと、そのアプリケーションAPLがアクティブ(ACT)状態かスタンバイ(SBY)状態かを示すリストである。例えば、図6は、アプリケーションAPLが、VMでアクティブ(ACT)状態で動作し、VMでスタンバイ(SBY)状態で動作していることを示している。
図3に戻って、仮想マシン配置装置2の構成について説明を続ける。
制御部(制御手段)220は、仮想マシン配置装置2の動作を制御するものである。ここでは、制御部220は、配置位置制御手段21と、空きリソース判定手段22と、コンパクション実行手段23と、配置実行手段24と、を備える。
配置位置制御手段21は、データセンタS内のリソースの使用状態に応じて、VM12の配置位置を決定するものである。
この配置位置制御手段21は、外部からVM12のプログラム(運用系または待機系のアプリケーションを含む)と、必要とするコア数(必要コア数)とを入力されることで、VM12の配置位置を決定する。なお、VM12のプログラムや使用コア数は、予め対応付けて記憶部210に記憶しておき、配置位置制御手段21は、配置するVM12を指定されることで、VM12の配置位置を決定することとしてもよい。
ここでは、配置位置制御手段21は、VM12に含まれるアプリケーションの識別情報(APL)と、そのアプリケーションが運用系または待機系のいずれかであるかを示す識別情報(ACT/SBY)と、必要コア数とを空きリソース判定手段22に通知する。そして、配置位置制御手段21は、リソースを確保できる空きのある物理サーバ1上のCPU10の識別情報を配置位置として取得し、VM12のプログラムとともに配置実行手段24に出力する。
また、配置位置制御手段21は、空きリソース判定手段22から、VM12を配置するために、コア11の断片化を解消してコア11を再編(コンパクション)する必要である旨が、その手順(コンパクション手順)として通知された場合、コンパクション手順をコンパクション実行手段23に出力する。そして、配置位置制御手段21は、コンパクション実行後、VM12のプログラムとその配置位置とを配置実行手段24に出力する。
なお、配置位置制御手段21は、空きリソース判定手段22から、コンパクションを行っても、VM12を配置するためのリソースが確保できない旨が通知された場合、図示を省略した表示装置に警告を表示する。この場合、管理者が、物理サーバ1の増設を行うことで、リソースを増やすこととすればよい。
空きリソース判定手段22は、すべての物理サーバ1で、新たに配置するVM12の必要コア数を、同一のCPU10で確保できるか否かを判定するものである。
ここでは、空きリソース判定手段22は、CPU単位リソース判定手段22aと、物理サーバ単位リソース判定手段22bと、全物理サーバリソース判定手段22cと、を備える。
CPU単位リソース判定手段22aは、物理サーバ1のCPU10ごとに、新たに配置するVM12の必要コア数の空きがあるか否かを判定するものである。
このCPU単位リソース判定手段22aは、1つのCPU10のみでリソース(必要コア数)が確保可能であれば、そのCPU10をVM12の配置位置として、配置位置制御手段21に物理サーバ1およびCPU10の識別情報を出力する。この場合、CPU単位リソース判定手段22aは、コンパクション手順を配置位置制御手段21に出力しない。
一方、CPU単位リソース判定手段22aは、1つのCPU10のみでリソースが確保できない場合、必要コア数を、物理サーバ単位リソース判定手段22bに出力する。
このCPU単位リソース判定手段22aは、記憶部210に記憶されているリソース管理データ(図4参照)を参照し、CPU内コアリスト(図5(c)参照)で、同一CPU10で「未使用」のコアの数(空き個数)が、必要コア数以上である場合、そのCPU10において、リソースを確保することができると判定する。
なお、CPU単位リソース判定手段22aは、新たに配置するVM12に含まれるアプリケーションAPLの動作系(運用系または待機系)と異なる動作系がすでに配置されている物理サーバ1のCPU10については、必要コア数の空きを判定しないこととする。
これによって、運用系アプリケーションを含むVMと、待機系アプリケーションを含むVMとを、異なる物理サーバ1に配置することができる。
ここで、図7を参照して、CPU単位リソース判定手段22aの処理の具体例について説明する。図7に示すように、例えば、ある物理サーバ1(SV)が18コアのCPU4個(CPU〜CPU)で構成されており、それぞれのCPUが複数のVM12で使用されて、コアの空き個数が、7個、5個、7個、6個であったとする。
この状態で、新規に配置するVM12の必要コア数として4個が通知された場合、CPU単位リソース判定手段22aは、探索順で最初にリソースを確保することができる物理サーバ1(SV)のCPUを、VM12の配置位置とする。
一方、新規に配置するVM12の必要コア数として8個が通知された場合、CPU単位リソース判定手段22aは、物理サーバ1(SV)では、リソースを確保できないと判定する。
図3に戻って、仮想マシン配置装置2の構成について説明を続ける。
物理サーバ単位リソース判定手段22bは、CPU単位リソース判定手段22aにおいて、同一CPUで必要コア数を確保できない場合に、個々の物理サーバ内で、動作中のVM12に割り当てられているコア11を、他のCPU10に割り当て直すことで、必要コア数を同一CPU上に確保できるか否かを判定するものである。
この物理サーバ単位リソース判定手段22bは、1つの物理サーバ1のコンパクションのみでリソース(必要コア数)が確保可能であれば、そのリソースを有する物理サーバ1およびCPU10の識別情報を配置位置として、配置位置制御手段21に出力する。また、物理サーバ単位リソース判定手段22bは、コンパクション手順を配置位置制御手段21に出力する。
なお、物理サーバ単位リソース判定手段22bは、新たに配置するVM12に含まれるアプリケーションAPLの動作系(運用系または待機系)と異なる動作系がすでに配置されている物理サーバ1については、必要コア数の空きを確保できるか否かを判定しないこととする。
ここで、図7,図8を参照して、物理サーバ単位リソース判定手段22bの処理の具体例について説明する。図7は、CPU単位リソース判定手段22aの処理で説明した図であるため、ここでは説明を省略する。
図7に示した状態で、新規に配置するVM12の必要コア数として、それぞれのCPU10の空きコア数よりも多い個数(ここでは、8個)が通知された場合、物理サーバ単位リソース判定手段22bは、空きコア数の多い順に、物理サーバ1のCPU10を並べ替える。ここで、CPU10を並べ替えるとは、物理サーバ単位リソース判定手段22bが、処理対象とするCPUの順番を変えるという意味である。
例えば、図8(a)に示すように、物理サーバ単位リソース判定手段22bは、図7のCPU10の配列を、CPU,CPU,CPU,CPUの順に並べ替える。
そして、物理サーバ単位リソース判定手段22bは、最も空きコア数の多いCPU10から、空きコア数の少ないCPU10に対して順に、使用しているコア11の割り当てを変更可能か否か判定する。これは、空きコア数の多いCPU10から、空きコア数の少ないCPU10へ割り当てを変更すれば、より多くの空きコア数を確保することが可能になるからである。なお、コア11の割り当て変更は、VM12単位で行うこととする。
例えば、図8(a)の例では、最も空きコア数の多いCPU10(CPU)には、変更対象としてvm1,vm2,vm3の3つのVM12が存在する。そして、物理サーバ単位リソース判定手段22bは、新たに配置するVM12の必要コア数に足りないコア数(不足コア数)を計算し、すでに存在するVM12の組み合わせで、不足コア数よりも多い組み合わせのリストを生成する。図8(a)の例では、CPUは、必要コア数8個に対して不足コア数は1個であるため、該当する組み合わせは、vm1のみ、vm2のみ、vm3のみ、vm1とvm2、vm1とvm3、vm2とvm3、vm1とvm2とvm3、の7通りとなる。
ここで、物理サーバ単位リソース判定手段22bは、各組み合わせのコア数の多い順に、より空きコア数の少ないCPU10に割り当て変更可能な組み合わせを探索する。
図8(a)の例では、コア数の多い順に、vm1とvm2とvm3(コア数11個)、vm1とvm3(コア数9個)、vm1とvm2(コア数8個)、vm1(コア数6個)、vm2とvm3(コア数5個)、vm3(コア数3個)、vm2(コア数2個)の順となる。
そして、物理サーバ単位リソース判定手段22bは、コア数の多いものから順に、空きコア数の少ないCPU10に割り当て変更可能な組み合わせを探索する。この場合、vm1とvm2とvm3(コア数11個)、vm1とvm3(コア数9個)、vm1とvm2(コア数8個)の各組み合わせは、他のどのCPUにも空きがなく割り当てることができない。そして、次にコア数の多いvm1(コア数6個)は、空きコア数の最も少ないCPUには割り当てることができないが、図8(b)に示すように、その次に空きコア数の少ないCPUには割り当てることができる。すなわち、物理サーバ単位リソース判定手段22bは、CPUに割り当てられているVM(vm1)を、CPUに割り当てるようにリソースの再編(コンパクション)を行えば、新規のVM12へのリソースを確保することができると判定する。
なお、変更可能な組み合わせの中で、コア数の合計が同一でVM12の数が異なる場合は、VM12の数が少ない方を優先して変更の対象とすることが望ましい。これは、変更するVM12の数が多いほど、変更にかかる時間、処理手順の増加等のデータセンタS全体に与える影響が増してしまうからである。
これによって、物理サーバ単位リソース判定手段22bは、図8(c)に示すように、物理サーバ1内のコンパクションによって、新規のVM12(ここでは、コア数8)を、CPUに配置することが可能であると判定する。
ここでは、物理サーバ単位リソース判定手段22bは、最も空きコア数の多いCPU10(ここでは、CPU)を基準としてリソースが確保可能か否かを判定したが、リソースが確保できない場合、順次、空きコア数の多いCPU10から順(図8の例では、CPU→CPU→CPU→CPU)に同様の処理を行えばよい。
この物理サーバ単位リソース判定手段22bは、新規VMに必要はリソース(必要コア数)が確保可能であると判定した場合、配置可能な物理サーバ1およびCPU10を特定する識別情報(図8の例では、SV,CPU)を、配置位置制御手段21に出力する。また、リソースを確保するためコンパクション手順(図8の例では、SVのCPUからCPUへのvm1の割り当て変更)を配置位置制御手段21に出力する。
そして、物理サーバ単位リソース判定手段22bは、必要コア数の空きをコンパクションによって確保できない場合、他の物理サーバ1(データセンタ内物理サーバリスト211(図5(a)参照)の次の物理サーバ)でリソースを探索するように、CPU単位リソース判定手段22aに指示する。そして、すべての物理サーバ1において、それぞれコンパクションによって必要コア数が確保できなかった場合、物理サーバ単位リソース判定手段22bは、必要コア数を、全物理サーバリソース判定手段22cに出力する。
図3に戻って、仮想マシン配置装置2の構成について説明を続ける。
全物理サーバリソース判定手段22cは、物理サーバ1内で必要コア数を確保できない場合に、すべての物理サーバ1間で、動作中のVM12に割り当てられているコアを、他の物理サーバ1のCPU10に割り当て直すことで、必要コア数を同一CPU上に確保できるか否かを判定するものである。
この全物理サーバリソース判定手段22cは、コンパクションでリソース(必要コア数)が確保可能であれば、そのリソースを有する物理サーバ1およびCPU10の識別情報を、配置位置制御手段21に出力する。また、全物理サーバリソース判定手段22cは、コンパクション手順を配置位置制御手段21に出力する。
例えば、全物理サーバリソース判定手段22cは、図9(a)に示すように、物理サーバ1(SV,SV,SV)が、それぞれ18コアのCPU4個(CPU〜CPU)、CPU2個(CPU,CPU)、CPU2個(CPU,CPU)で構成され、それぞれのCPUで複数のVM12によってコア11が使用されているとする。
この場合、全物理サーバリソース判定手段22cは、図9(b)に示すように、空きコア数の多い順に、CPU10を並べ替える。すなわち、物理サーバ単位リソース判定手段22bが、1つの物理サーバ1内で並べ替えを行ったのに対し(図8参照)、全物理サーバリソース判定手段22cは、すべての物理サーバ1を対象として、CPU10の並べ替えを行う。
これ以降の処理は、物理サーバ単位リソース判定手段22bの処理(図8参照)と同じであるため、説明を省略する。
ただし、全物理サーバリソース判定手段22cは、図8(b)に示したように、コアの割り当てを変更するリソースを探索する場合、変更後の物理サーバ1において、同じアプリケーションの運用系および待機系が、同じ物理サーバ1のCPU10上で動作することがないように、リソースの探索を行うこととする。
また、全物理サーバリソース判定手段22cは、新たに配置するVM12に含まれるアプリケーションAPLの動作系(運用系または待機系)と異なる動作系がすでに配置されている物理サーバ1については、必要コア数の空きを確保できるか否かを判定しないこととする。
この全物理サーバリソース判定手段22cは、新規VMに必要なリソース(必要コア数)が確保可能であると判定した場合、配置可能な物理サーバ1およびCPU10を特定する識別情報を、配置位置制御手段21に出力する。また、リソースを確保するためコンパクション手順を配置位置制御手段21に出力する。
そして、全物理サーバリソース判定手段22cは、すべての物理サーバ1で、必要コア数の空きをコンパクションによって確保できない場合、リソースが確保できない旨を配置位置制御手段21に出力する。
このように、全物理サーバリソース判定手段22cは、すべての物理サーバ1(すなわち、データセンタS)を対象として、新たに配置するVM12の必要コア数の空きがあるか否かを判定する。
図3に戻って、仮想マシン配置装置2の構成について説明を続ける。
コンパクション実行手段23は、配置位置制御手段21から出力されるコンパクション手順に基づいて、動作中のVM12が割り当てられているコア11を、当該VM12が動作している同じ物理サーバ1の他のCPU10、または、他の物理サーバ1のCPU10に割り当て直す(コンパクション)ものである。このコンパクション実行手段23は、空きリソース判定手段22で、コンパクションを行わずに同一CPU上に必要コア数を確保できない判定された場合に動作する。
ここでは、コンパクション実行手段23は、物理サーバ内割り当て変更手段23aと、物理サーバ間割り当て変更手段23bと、を備える。
物理サーバ内割り当て変更手段23aは、物理サーバ1内で、VM12のCPU10のコア11への割り当てを変更するものである。この物理サーバ内割り当て変更手段23aは、コンパクション手順として、同一の物理サーバ1内で、コア11の割り当てを変更する手順が指定された際に動作する。すなわち、この物理サーバ内割り当て変更手段23aは、物理サーバ単位リソース判定手段22bによって、リソースを確保することが可能であると判定されたコンパクション手順を実行する。
例えば、物理サーバ内割り当て変更手段23aは、図10に示すように、CPU10Bのコアに割り当てられているVM12Bの仮想CPU(vCPU)を、同じ物理サーバ1Bの他のCPU10Bのコアに割り当てる。なお、この割り当ての手法は、従来の一般的な手法(非特許文献1)であるため、ここでは、詳細な説明を省略する。
この物理サーバ内割り当て変更手段23aは、割り当て変更後、記憶部210に記憶されているリソース管理データを更新する。すなわち、物理サーバ内割り当て変更手段23aは、コアを解放したCPUのCPU内コアリスト213(図5(c)参照)において、割り当てを変更したVM12を「使用VM」から削除するとともに、VM12が使用していたコアの「使用」を「未使用」に変更する。また、物理サーバ内割り当て変更手段23aは、新たにコアを割り当てたCPU10のCPU内コアリスト213(図5(c)参照)において、割り当てを変更したVM12に割り当てたコア11を「未使用」から「使用」に変更するとともに、「使用VM」に割り当てを変更したVM12の識別情報とコア11に割り当てた仮想CPU13の識別情報とを設定する。
この物理サーバ内割り当て変更手段23aは、コンパクションを実行し、リソース管理データを更新した後、コンパクションが完了した旨を配置位置制御手段21に通知する。
物理サーバ間割り当て変更手段23bは、異なる物理サーバ1間で、VM12のCPU10のコア11への割り当てを変更するものである。この物理サーバ間割り当て変更手段23bは、コンパクション手順として、異なる物理サーバ1間で、コア11の割り当てを変更する手順が指定された際に動作する。すなわち、この物理サーバ間割り当て変更手段23bは、全物理サーバリソース判定手段22cによって、リソースを確保することが可能であると判定されたコンパクション手順を実行する。
例えば、物理サーバ間割り当て変更手段23bは、図11に示すように、物理サーバ1BのCPU10Bのコアに割り当てられているVM12Bを、物理サーバ1CのCPU10Cのコアに割り当てる。すなわち、物理サーバ間割り当て変更手段23bは、VM12Bを、物理サーバ1Bから物理サーバ1Cに移動させて、コアの割り当てを変更する。
この物理サーバ間割り当て変更手段23bは、割り当て変更後、記憶部210に記憶されているリソース管理データを更新する。この物理サーバ間割り当て変更手段23bのリソース管理データの更新は、物理サーバ内割り当て変更手段23aと同様であり、物理サーバ1を跨っている点のみが異なるため、ここでは説明を省略する。
なお、物理サーバ間割り当て変更手段23bは、異なる物理サーバ1間でVM12の移動を行うため、VM12の起動状態を制御して移動を行う必要がある。
ここで、図11,図12を参照して、アクティブ/スタンバイ構成でアプリケーションが動作しているVM12のコアの割り当ての変更について説明する。
「0.初期状態」として、物理サーバ1Aにおいて、VM12Aでアプリケーションがスタンバイ(SBY)状態で起動中であって、物理サーバ1Bにおいて、VM12Bでアプリケーションがアクティブ(ACT)状態で起動中であるとする。すなわち、物理サーバ1A,1Bで、アプリケーションが二重化されて動作しているものとする。
ここで、VM12Bを、物理サーバ1Bから物理サーバ1Cに移動させることとする。
「1.系切り替え」として、物理サーバ間割り当て変更手段23bは、物理サーバ1AのVM12AでSBY状態として起動中のアプリケーションをACT状態に変更するとともに、物理サーバ1BのVM12BでACT状態として起動中のアプリケーションをSBY状態に変更する。これによって、アプリケーションの動作系が変更される。
「2.SBY停止」として、物理サーバ間割り当て変更手段23bは、物理サーバ1BのVM12Bのアプリケーションを停止させる。この場合でも、アプリケーションは、物理サーバ1Aで1系統(運用系)が動作している。
「3.VM移動」として、物理サーバ間割り当て変更手段23bは、VM12(アプリケーションを含む)を物理サーバ1Bから物理サーバ1Cに移動させる。すなわち、物理サーバ間割り当て変更手段23bは、VM12(アプリケーションを含む)を物理サーバ1Cにコピーし、物理サーバ1Bから削除する。このとき、物理サーバ間割り当て変更手段23bは、前記したようにコアの割り当てを変更する。
「4.SBY立ち上げ」として、物理サーバ間割り当て変更手段23bは、物理サーバ1CのVM12BのアプリケーションをSBY状態で起動させる。
「5.系切り替え」として、物理サーバ間割り当て変更手段23bは、物理サーバ1AのVM12AでACT状態として起動中のアプリケーションをSBY状態に変更するとともに、物理サーバ1CのVM12BでSBY状態として起動中のアプリケーションをACT状態に変更する。
なお、ここでは、移動対象のVM12Bのアプリケーションが初期状態においてACT状態である場合について説明した。
しかし、移動対象のVM12Bのアプリケーションが初期状態においてSBY状態である場合、すなわち、アプリケーションが二重化されているVM12Aのアプリケーションが初期状態においてACT状態である場合、物理サーバ間割り当て変更手段23bは、図12において、「1.系切り替え」から「4.SBY立ち上げ」までの処理を行えばよい。
このように、物理サーバ間割り当て変更手段23bは、アプリケーションのサービスを中断することなく、コアの割り当てを変更することができる。
図3に戻って、仮想マシン配置装置2の構成について説明を続ける。
配置実行手段24は、配置位置制御手段21で決定された配置位置に、新規のVM12を配置するものである。
この配置実行手段24は、新規のVM12のプログラムを、配置位置として指定される物理サーバ1に通信部200を介してコピーし、同じく配置位置として指定されるCPU10の空きコアにVM12の仮想CPU13を割り当てる。
なお、配置実行手段24は、記憶部210に記憶されているリソース管理データ(図5参照)を参照し、指定された物理サーバ1のCPU10のコアで未使用のコアに、必要コア数分のVM12の仮想CPUを割り当てる。そして、配置実行手段24は、リソース管理データのCPU内コアリスト213(図5(c)参照)において、割り当てたコアの「使用/未使用」を「使用」に設定するとともに、「使用VM」に、新たに配置したVM12の識別情報と仮想CPU13の識別情報とを設定する。
また、配置実行手段24は、記憶部210に記憶されている動作状態リスト214(図6参照)において、新規のVM12のプログラムを識別するVM12の識別情報を設定するとともに、アプリケーションの識別情報と運用系または待機系のいずれかであるかを示す識別情報(ACT/SBY)とを設定する。
なお、配置実行手段24は、外部からVM12の削除を指示された場合、通信部200を介して、対応する物理サーバ1に対して、VM12の削除を指示し、記憶部210のリソース管理データのCPU内コアリスト(図5(c)参照)と、動作状態リスト(図6参照)とを更新することとする。
以上説明したように仮想マシン配置装置2を構成することで、仮想マシン配置装置2は、CPU10のコア11に仮想マシン(VM)12の仮想CPU(vCPU)13を割り当てて動作させるシステムにおいて、その割り当て処理を自動で行うことができる。
また、仮想マシン配置装置2は、VM12の配置によるリソースの獲得、停止によるリソースの回収を繰り返すことによりリソースの断片化が発生した場合でも、コンパクションにより新規に配置するVM12に対してリソースを確保することができる。
なお、仮想マシン配置装置2は、コンピュータを、前記した各手段として機能させるプログラム(仮想マシン配置プログラム)で動作させることができる。
≪仮想マシン配置装置の動作≫
次に、図13,図14を参照(構成については、適宜、図1〜図3参照)して、仮想マシン配置装置2の動作について説明する。
まず、仮想マシン配置装置2は、配置位置制御手段21に新規のVM12の配置を指示された場合、空きリソース判定手段22のCPU単位リソース判定手段22aによって、CPU単位でのリソース確保を試みる。
すなわち、空きリソース判定手段22は、記憶部210に記憶されているデータセンタ内物理サーバリスト211(図5(a)参照)から、最初の物理サーバを選択する(ステップS1)。なお、空きリソース判定手段22は、動作状態リスト214(図6参照)を参照して、新たに追加するVM12のアプリケーションとは異なる他の動作系(運用系または待機系)と同じアプリケーションが動作している場合、その動作している物理サーバは選択から除外する。
そして、CPU単位リソース判定手段22aは、選択した物理サーバに対応する物理サーバ内CPUリスト212(図5(b)参照)から、最初のCPUを選択する(ステップS2)。
そして、CPU単位リソース判定手段22aは、選択したCPU10に対応するCPU内コアリスト213(図5(c)参照)を参照して、新たに配置するVM12の必要コア数の空きがあるか否かを判定する(ステップS3)。すなわち、CPU単位リソース判定手段22aは、CPU内コアリスト213で、コア11の「未使用」の数が、必要コア数以上であるか否かを判定する。
ここで、必要コア数の空きがある場合(ステップS3でYes)、仮想マシン配置装置2は、配置実行手段24によって、選択されたCPUを配置位置として、VM12を配置する(ステップS4)。ここでは、CPU単位リソース判定手段22aが、選択した物理サーバ1およびCPU10の識別情報を配置位置として配置位置制御手段21に通知し、配置位置制御手段21が、その配置位置にVM12を配置する旨を配置実行手段24に指示することで、VM12の配置が実行される。
そして、配置実行手段24は、記憶部210のリソース管理データのCPU内コアリスト(図5(c)参照)と、動作状態リスト(図6参照)とを更新する(不図示)。
一方、選択されたCPUに必要コア数の空きがない場合(ステップS3でNo)、CPU単位リソース判定手段22aは、物理サーバ内CPUリスト212(図5(b)参照)に次のCPU10があるか否かを判定する(ステップS5)。
ここで、次のCPU10が存在する場合(ステップS5でYes)、CPU単位リソース判定手段22aは、次のCPU10を選択し(ステップS6)、ステップS3に動作を戻す。
そして、次のCPU10が存在しない場合(ステップS5でNo)、CPU単位リソース判定手段22aは、ステップS7(図14)に動作を移す(A)。
この場合、選択した物理サーバ1内のCPU単位では、新たなVM12のためのリソースを確保できないため、仮想マシン配置装置2は、物理サーバ単位リソース判定手段22bによって、選択した物理サーバ全体でのリソース確保を試みる。
すなわち、物理サーバ単位リソース判定手段22bは、選択した物理サーバ1に対応する物理サーバ内CPUリスト212(図5(b)参照)により、当該物理サーバ1に含まれるすべてのCPU10に対応するCPU内コアリスト213(図5(c)参照)を参照して、物理サーバ1内に新たに配置するVM12の必要コア数を確保できるか否かを判定する(ステップS7)。このとき、物理サーバ単位リソース判定手段22bは、図7,図8で説明したように、物理サーバ1内でコンパクションによってリソース(必要コア数)を確保できるか否かを判定する。
ここで、必要コア数が確保できる場合(ステップS7でYes)、仮想マシン配置装置2は、コンパクション実行手段23の物理サーバ内割り当て変更手段23aによって、物理サーバ1内でコンパクションを実行する(ステップS8)。ここでは、物理サーバ単位リソース判定手段22bが、コンパクションによってリソースが確保されるコンパクション手順を配置位置制御手段21に通知し、物理サーバ内割り当て変更手段23aが、そのコンパクション手順を実行する。
そして、仮想マシン配置装置2は、配置実行手段24によって、リソースが確保された配置位置に、VM12を配置する(ステップS9)。ここでは、物理サーバ単位リソース判定手段22bが、コンパクションによりリソースを確保可能な物理サーバ1およびCPU10の識別情報を配置位置として配置位置制御手段21に通知し、配置位置制御手段21が、その配置位置にVM12を配置する旨を配置実行手段24に指示することで、VM12の配置が実行される。
そして、配置実行手段24は、記憶部210のリソース管理データのCPU内コアリスト(図5(c)参照)と、動作状態リスト(図6参照)とを更新する(不図示)。
一方、選択された物理サーバ1内に必要コア数が確保できない場合(ステップS7でNo)、物理サーバ単位リソース判定手段22bは、データセンタ内物理サーバリスト211(図5(a)参照)に次の物理サーバ1があるか否かを判定する(ステップS10)。
ここで、次の物理サーバが存在する場合(ステップS10でYes)、物理サーバ単位リソース判定手段22bは、次の物理サーバ1を選択し(ステップS11)、ステップS2(図13)に動作を戻す(B)。
なお、物理サーバ単位リソース判定手段22bは、動作状態リスト214(図6参照)を参照して、新たに追加するVM12のアプリケーションとは異なる他の動作系(運用系または待機系)と同じアプリケーションが動作している場合、その動作している物理サーバは選択から除外する。
そして、次の物理サーバ1が存在しない場合(ステップS10でNo)、物理サーバ単位リソース判定手段22bは、ステップS12に動作を移す。
この場合、物理サーバ単位では、新たなVM12のためのリソースを確保できないため、仮想マシン配置装置2は、全物理サーバリソース判定手段22cによって、すべての物理サーバ1でのリソース確保を試みる。
すなわち、全物理サーバリソース判定手段22cは、データセンタ内物理サーバリスト211(図5(a)参照)で特定されるすべての物理サーバ1に対応する物理サーバ内CPUリスト212(図5(b)参照)により、すべての物理サーバ1に含まれるすべてのCPU10に対応するCPU内コアリスト213(図5(c)参照)を参照して、物理サーバ1内に新たに配置するVM12の必要コア数を確保できるか否かを判定する(ステップS12)。このとき、全物理サーバリソース判定手段22cは、データセンタS内でコンパクションによってリソース(必要コア数)を確保できるか否かを判定する。
ここで、必要コア数が確保できる場合(ステップS12でYes)、仮想マシン配置装置2は、コンパクション実行手段23の物理サーバ間割り当て変更手段23bによって、物理サーバ1間でコンパクションを実行する(ステップS13)。ここでは、全物理サーバリソース判定手段22cが、コンパクションによってリソースが確保されるコンパクション手順を配置位置制御手段21に通知し、物理サーバ間割り当て変更手段23bが、そのコンパクション手順を実行する。
そして、仮想マシン配置装置2は、配置実行手段24によって、リソースが確保された配置位置に、VM12を配置する(ステップS14)。ここでは、全物理サーバリソース判定手段22cが、コンパクションによりリソースを確保可能な物理サーバ1およびCPU10の識別情報を配置位置として配置位置制御手段21に通知し、配置位置制御手段21が、その配置位置にVM12を配置する旨を配置実行手段24に指示することで、VM12の配置が実行される。
そして、配置実行手段24は、記憶部210のリソース管理データのCPU内コアリスト(図5(c)参照)と、動作状態リスト(図6参照)とを更新する(不図示)。
一方、すべての物理サーバによっても、必要コア数が確保できない場合(ステップS12でNo)、仮想マシン配置装置2は、配置位置制御手段21によって、図示を省略した表示装置に警告を表示する(ステップS15)。
この場合、データセンタS内に新たに物理サーバを追加した後(ステップS16)、新たなVMを配置することとする(ステップS17)。
以上の動作によって、仮想マシン配置装置2は、データセンタS内のリソース管理を行って、リソースの断片化が発生した場合でも、コンパクションにより新規に配置するVM12にリソースを確保することができる。
以上、本発明の実施形態について説明したが、本発明はこの実施形態に限定されるものではない。
例えば、ここでは、仮想マシン配置装置2は、配置位置制御手段21が、外部からVM12の配置や削除を指示されるたびに、リソース管理データを更新することとした。
しかし、仮想マシン配置装置2は、データセンタS内の物理サーバ1から、通信部200を介して、VMの終了通知を受信することで、配置実行手段24が、リソースを更新(解放)することとしてもよい。あるいは、配置実行手段24は定期的にVM12の動作確認を行って、動作確認のとれないVM12のリソースを更新(解放)することとしてもよい。
これによって、物理サーバ1が、自発的にVM12の削除を行った場合でも、仮想マシン配置装置2がリソースを管理することができる。
また、ここでは、空きリソース判定手段22は、ある物理サーバ1においてCPU10ごとにリソースが確保できるか探索し、確保できない場合にその物理サーバ1内でコンパクションを行うことでリソースを確保できるか否かを判定した。すなわち、空きリソース判定手段22は、CPU単位の探索と物理サーバ単位の探索とを、物理サーバ1ごとに順次繰り返してリソースを確保できるか否か判定した。
しかし、空きリソース判定手段22は、すべての物理サーバ1内のすべてのCPU10でリソースが確保できるか探索し、確保できない場合に、物理サーバ単位でコンパクションすることでリソースを確保できるか否かを判定することとしてもよい。すなわち、空きリソース判定手段22は、すべての物理サーバ1でCPU単位の探索を行った後、すべての物理サーバ1に対して、物理サーバ単位の探索を行うこととしてもよい。
S データセンタ(コンピュータシステム)
1 物理サーバ(サーバハード)
10 CPU
11 コア
12 仮想マシン(VM)
13 仮想CPU(vCPU)
2 仮想マシン配置装置
21 配置位置制御手段
22 空きリソース判定手段
22a CPU単位リソース判定手段
22b 物理サーバ単位判定手段
22c 全物理サーバリソース判定手段
23 コンパクション実行手段
23a 物理サーバ内割り当て変更手段
23b 物理サーバ間割り当て変更手段
24 配置実行手段
200 通信部(通信手段)
210 記憶部(記憶手段)
220 制御部(制御手段)

Claims (2)

  1. 複数のコアで構成されるCPUを複数有する物理サーバを複数備えたコンピュータシステムにおいて、仮想マシンを予め同一のCPUのコアに割り当てて前記物理サーバに配置する仮想マシン配置装置であって、
    前記物理サーバと前記CPUと前記コアとを対応付けるとともに、前記コアがどの仮想マシンに使用されているのかを示すリソース管理データを記憶する記憶手段と、
    前記リソース管理データを参照して、新たな仮想マシンが予め必要とする必要コア数を同一CPU上に確保できるか否かを判定する空きリソース判定手段と、
    前記空きリソース判定手段で同一CPU上に前記必要コア数を確保できない場合に、動作中の仮想マシンが割り当てられているコアを、当該仮想マシンが動作している物理サーバの他のCPU、または、他の物理サーバのCPUに割り当て直すコンパクション実行手段と、
    確保された同一CPU上のコアに、前記新たな仮想マシンを配置する配置実行手段と、
    を備え
    前記空きリソース判定手段は、
    前記同一CPUで前記必要コア数を確保できない場合に、個々の物理サーバ内で、前記動作中の仮想マシンに割り当てられているコアを、他のCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定する物理サーバ単位リソース判定手段と、
    前記物理サーバ内で前記必要コア数を確保できない場合に、すべての物理サーバ間で、前記動作中の仮想マシンに割り当てられているコアを、他の物理サーバのCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定する全物理サーバリソース判定手段と、を備えることを特徴とする仮想マシン配置装置。
  2. 複数のコアで構成されるCPUを複数有する物理サーバを複数備えたコンピュータシステムにおいて、仮想マシン配置装置が、仮想マシンを予め同一のCPUのコアに割り当てて前記物理サーバに配置するためのリソースを確保するリソース管理方法であって、
    CPU単位リソース判定手段によって、前記物理サーバと前記CPUと前記コアとを対応付けるとともに、前記コアがどの仮想マシンに使用されているのかを示すリソース管理データを参照して、同一CPU内で新たな仮想マシンが予め必要とする必要コア数を確保できるか否かを判定するステップと、
    同一CPU内で前記必要コア数を確保できない場合に、物理サーバ単位リソース判定手段によって、前記リソース管理データを参照して、個々の物理サーバ内で、動作中の仮想マシンに割り当てられているコアを、他のCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定するステップと、
    前記物理サーバ内で前記必要コア数を確保できる場合に、物理サーバ内割り当て変更手段によって、前記物理サーバ内でコアの割り当てを変更するステップと、
    前記物理サーバ内で前記必要コア数を確保できない場合に、全物理サーバリソース判定手段によって、前記リソース管理データを参照して、すべての物理サーバ間で、動作中の仮想マシンに割り当てられているコアを、他の物理サーバのCPUに割り当て直すことで、前記必要コア数を同一CPU上に確保できるか否かを判定するステップと、
    前記物理サーバ間で前記必要コア数を確保できる場合に、物理サーバ間割り当て変更手段によって、前記物理サーバ間でコアの割り当てを変更するステップと、
    を含むことを特徴とするリソース管理方法。
JP2016110554A 2016-06-02 2016-06-02 仮想マシン配置装置およびリソース管理方法 Active JP6543219B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016110554A JP6543219B2 (ja) 2016-06-02 2016-06-02 仮想マシン配置装置およびリソース管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016110554A JP6543219B2 (ja) 2016-06-02 2016-06-02 仮想マシン配置装置およびリソース管理方法

Publications (2)

Publication Number Publication Date
JP2017215884A JP2017215884A (ja) 2017-12-07
JP6543219B2 true JP6543219B2 (ja) 2019-07-10

Family

ID=60577054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016110554A Active JP6543219B2 (ja) 2016-06-02 2016-06-02 仮想マシン配置装置およびリソース管理方法

Country Status (1)

Country Link
JP (1) JP6543219B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6958414B2 (ja) * 2018-02-19 2021-11-02 日本電信電話株式会社 仮想リソース管理装置、仮想リソース割り当て方法、仮想リソース割り当てプログラム、および、仮想リソース管理システム
CN111400020B (zh) * 2019-01-02 2023-05-09 中国移动通信有限公司研究院 一种虚拟机调度方法、装置和计算机可读存储介质
US20210089423A1 (en) 2019-09-24 2021-03-25 Advanced Micro Devices, Inc. Flexible multi-user graphics architecture
JP7010272B2 (ja) * 2019-10-08 2022-01-26 横河電機株式会社 リアルタイム通信処理システム、およびリアルタイム通信処理方法
CN111861446B (zh) * 2020-07-20 2024-09-20 北京金山云网络技术有限公司 计费控制方法、装置、电子设备、服务器及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
JP5035299B2 (ja) * 2009-06-15 2012-09-26 株式会社日立製作所 マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム
WO2013171944A1 (ja) * 2012-05-15 2013-11-21 日本電気株式会社 仮想マシン管理システム、仮想マシン管理方法およびプログラム
JP6287261B2 (ja) * 2014-01-27 2018-03-07 日本電気株式会社 システム制御装置、制御方法、及びプログラム

Also Published As

Publication number Publication date
JP2017215884A (ja) 2017-12-07

Similar Documents

Publication Publication Date Title
US11182196B2 (en) Unified resource management for containers and virtual machines
US11579914B2 (en) Platform independent GPU profiles for more efficient utilization of GPU resources
EP3761170B1 (en) Virtual machine creation method and apparatus
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
JP6543219B2 (ja) 仮想マシン配置装置およびリソース管理方法
KR101020392B1 (ko) 논리적 파티션 사이에서의 운용 시스템의 커널 공유
JP6840099B2 (ja) サービス提供システム、資源割り当て方法、及び資源割り当てプログラム
CN104516769B (zh) 用于验证逻辑分区配置之间的切换的方法、介质及系统
JP2010282420A (ja) 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム
JP2007272263A (ja) 計算機の管理方法、計算機システム、及び管理プログラム
JPWO2012039053A1 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
CN111274033A (zh) 一种资源部署方法、装置、服务器以及存储介质
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JPH10293695A (ja) 論理計算機システムの動的再構成方式
JP2010205208A (ja) ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP2014002798A (ja) 計算機システム及びプログラム
KR20130080587A (ko) 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
JP2011215812A (ja) 仮想計算機管理方法、計算機システム及びリソース管理プログラム
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
CN114157569A (zh) 集群系统及其构建方法和构建装置
JP6445876B2 (ja) リソース割当装置、リソース割当システム、および、リソース割当方法
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム
JP2016038888A (ja) 情報処理システム、情報処理方法及び情報処理プログラム
JP2010205207A (ja) ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP6696947B2 (ja) 仮想マシンエミュレートシステム、仮想マシンエミュレート方法およびコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190614

R150 Certificate of patent or registration of utility model

Ref document number: 6543219

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150