(57)【特許請求の範囲】
【請求項１】
物理マシン上で稼働されている複数の仮想マシンの配置を管理する仮想マシンの管理装置であって、
前記複数の仮想マシン間における通信容量を管理する通信情報管理部と、
前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理部と、
前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定部と、
を備え、
前記物理構成要素管理部は、
前記物理マシンの物理構成要素に応じた通信条件を含む通信条件情報を管理し、
前記通信情報管理部は、
前記複数の仮想マシン間において配置に応じて見込みうる通信容量の程度を示す配置優先度を管理する一方、異なる時間に計測された前記複数の仮想マシン間の通信容量の増減に応じて前記配置優先度を更新し、
前記配置先決定部は、
前記通信条件情報及び前記配置優先度に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先候補を複数蓄積し、前記複数の配置先候補から１つの配置先候補を決定する
ことを特徴とする仮想マシンの管理装置。
【請求項２】
前記通信情報管理部は、
前記複数の仮想マシン間における通信容量とともに、前記再配置対象の仮想マシンの現在配置を表す指標値を管理しており、
前記配置先決定部は、
前記再配置対象の仮想マシンの仮想構成要素の性能が前記物理マシンの物理構成要素の性能の範囲内である場合、前記再配置対象の仮想マシンの再配置を実施し、前記通信情報管理部によって管理されている前記再配置対象の仮想マシンの現在配置を表す指標値を更新することを特徴とする請求項１に記載の仮想マシンの管理装置。
【請求項３】
前記複数の仮想マシンの各仮想構成要素を管理する仮想構成要素管理部を備え、
前記配置先決定部は、
前記再配置対象の仮想マシンの再配置を実施すると、前記仮想構成要素管理部において管理されている前記複数の仮想マシンの各仮想構成要素を更新することを特徴とする請求項２に記載の仮想マシンの管理装置。
【請求項４】
前記物理構成要素は、少なくとも、
前記物理マシンの中央演算処理部と、
前記中央演算処理部が作業領域として使用するメモリと、
前記中央演算処理部と外部との間におけるインターフェイスと、
を含むことを特徴とする請求項１に記載の仮想マシンの管理装置。
【請求項５】
前記複数の仮想マシンは、
前記物理構成要素を含む複数のノードを有する１つの前記物理マシン上で稼働している
ことを特徴とする請求項４に記載の仮想マシンの管理装置。
【請求項６】
前記物理マシンは複数存在しており、
前記複数の仮想マシンは、前記物理構成要素を各々備える前記複数の物理マシン上で稼働していることを特徴とする請求項４に記載の仮想マシンの管理装置。
【請求項７】
物理マシン上で稼働されている複数の仮想マシンの配置を管理する管理装置によって実行される仮想マシンの管理方法であって、
前記管理装置が、前記複数の仮想マシン間における通信容量を管理する通信情報管理ステップと、
前記管理装置が、前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理ステップと、
前記管理装置が、前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定ステップと、
を実行し、
前記物理構成要素管理ステップでは、
前記管理装置が、前記物理マシンの物理構成要素に応じた通信条件を含む通信条件情報を管理し、
前記通信情報管理ステップでは、
前記管理装置が、前記複数の仮想マシン間において配置に応じて見込みうる通信容量の程度を示す配置優先度を管理する一方、異なる時間に計測された前記複数の仮想マシン間の通信容量の増減に応じて前記配置優先度を更新し、
前記配置先決定ステップでは、
前記管理装置が、前記通信条件情報及び前記配置優先度に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先候補を複数蓄積し、前記複数の配置先候補から１つの配置先候補を決定する
ことを特徴とする仮想マシンの管理方法。
【請求項８】
前記通信情報管理ステップでは、
前記管理装置が、前記複数の仮想マシン間における通信容量とともに、前記再配置対象の仮想マシンの現在配置を表す指標値を管理しており、
前記配置先決定ステップでは、
前記管理装置が、前記再配置対象の仮想マシンの仮想構成要素の性能が前記物理マシンの物理構成要素の性能の範囲内である場合、前記再配置対象の仮想マシンの再配置を実施し、前記通信情報管理ステップにおいて管理されている前記再配置対象の仮想マシンの現在配置を表す指標値を更新することを特徴とする請求項７に記載の仮想マシンの管理方法。
【請求項９】
前記配置先決定ステップでは、
前記管理装置が、前記再配置対象の仮想マシンの再配置を実施すると、前記複数の仮想マシンの各仮想構成要素を管理する仮想構成要素管理部における前記複数の仮想マシンの各仮想構成要素を更新することを特徴とする請求項８に記載の仮想マシンの管理方法。
【請求項１０】
前記物理構成要素は、少なくとも、
前記物理マシンの中央演算処理部と、
前記中央演算処理部が作業領域として使用するメモリと、
前記中央演算処理部と外部との間におけるインターフェイスと、
を含むことを特徴とする請求項７に記載の仮想マシンの管理方法。
【請求項１１】
前記複数の仮想マシンは、
前記物理構成要素を含む複数のノードを有する１つの前記物理マシン上で稼働していることを特徴とする請求項１０に記載の仮想マシンの管理方法。
【請求項１２】
前記物理マシンは複数存在しており、
前記複数の仮想マシンは、前記物理構成要素を各々備える前記複数の物理マシン上で稼働していることを特徴とする請求項１０に記載の仮想マシンの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの管理装置及び管理方法に関し、特に、物理マシン上で稼働する仮想マシンを管理する技術に関する管理装置に適用して好適なものである。
【背景技術】
【０００２】
従来、複数の仮想マシンを複数の物理マシンに配置する際には、これら複数の仮想マシン間の通信容量を考慮して可能な限り、同一の物理マシン上にこれら複数の仮想マシンを配置するようにしている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１４０１３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、これら複数の仮想マシンが利用する物理サーバの構成要素が考慮されていないため、一部の仮想マシンを再配置しようとした際には、当該一部の仮想マシンが再配置された後にこれら複数の仮想マシン間において想定通りの通信性能を確実に確保できる訳ではなかった。【０００５】
本発明は以上の点を考慮してなされたもので、再配置対象の仮想マシンを再配置後にも複数の仮想マシン間において想定通りの通信性能を確保可能な仮想マシンの管理装置及び管理方法を提案しようとするものである。
【課題を解決するための手段】
【０００６】
かかる課題を解決するため、本発明においては、物理マシン上で稼働されている複数の仮想マシンの配置を管理する仮想マシンの管理装置であって、前記複数の仮想マシン間における通信容量を管理する通信情報管理部と、前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理部と、前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定部と、を備えることを特徴とする。【０００７】
また、本発明においては、物理マシン上で稼働されている複数の仮想マシンの配置を管理する管理装置によって実行される仮想マシンの管理方法であって、前記管理装置が、前記複数の仮想マシン間における通信容量を管理する通信情報管理ステップと、前記管理装置が、前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理ステップと、前記管理装置が、前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定ステップと、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、再配置対象の仮想マシンを再配置した後にも複数の仮想マシン間において想定通りの通信性能を確保することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態による仮想マシンの管理装置の概略構成を示すブロック図である。
【図２】本実施の形態による仮想マシンの管理装置の概略構成を示すブロック図である。
【図３】図２に示す物理マシンＩＤ管理テーブルの構成例を示す図である。
【図４】図２に示す物理ＣＰＵ管理テーブルの構成例を示す図である。
【図５】図２に示す物理メモリ管理テーブルの構成例を示す図である。
【図６】図２に示す仮想スイッチ管理テーブルの構成例を示す図である。
【図７】図２に示す物理ＩＯインターフェイス管理テーブルの構成例を示す図である。
【図８】図２に示す仮想マシンＩＤ管理テーブルの構成例を示す図である。
【図９】図２に示す仮想ＣＰＵ管理テーブルの構成例を示す図である。
【図１０】図２に示す仮想メモリ管理テーブルの構成例を示す図である。
【図１１】図２に示す仮想ＩＯインターフェイス接続先仮想スイッチ管理テーブルの構成例を示す図である。
【図１２】図２に示す仮想マシン配置優先度定義テーブルの構成例を示す図である。
【図１３】図２に示す仮想マシン間通信情報管理テーブルの構成例を示す図である。
【図１４】図２に示す再配置対象仮想マシンテーブルの構成例を示す図である。
【図１５】図２に示す配置候補テーブルの一例を示す図である。
【図１６】図２に示す仮想マシン配置優先度定義テーブルの構成例を示す図である。
【図１７】図２に示す仮想マシン間通信感覚定義テーブルの構成例を示す図である。
【図１８】計測処理の一例を示すフローチャートである。
【図１９】仮想マシン再配置処理の一例を示すフローチャートである。
【図２０】図１９に示す仮想マシン再配置処理の続きを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面について、本発明の一実施の形態について詳述する。
【００１１】
（１）本実施の形態による仮想マシン管理システム
（１−１）システム構成
図１及び図２は、本実施の形態による計算機システム１の概略構成を示す。なお、図１と図２とは本来１つの図面として表されるべきであるが、説明の関係上分けて表されている。図１は、主として、第１の物理マシン１２１Ａ〜第Ｎ（Ｎ：自然数）の物理マシン１２１Ｎの構成例を表しており、図２は、主として、記憶部１１１が接続された管理サーバ１０１の構成例を表している。
【００１２】
計算機システム１は、ネットワーク１３１によって接続された、少なくとも１台の物理マシンとして図１に例示する複数の物理マシン１２１Ａ〜１２１Ｎ、及び、図２に示す管理サーバ１０１を備えている。これら複数の物理マシン１２１Ａ〜１２１Ｎは互いにほぼ同様な構成であるため、以下の構成説明においては、他の物理マシンに言及する必要がある場合を除き、主として第１の物理マシン１２１Ａを例示する。
【００１３】
第１の物理マシン１２１Ａは、例えば、３つの仮想マシン１２２Ａ１，１２２Ａ２，１２２Ａ３、仮想化機関部１２３Ａ、ＮＵＭＡ０側の物理メモリ１２４Ａ０、０側の物理ＣＰＵソケット１２５Ａ０及びＩＯインターフェイス１２６Ａ０、並びにＮＵＭＡ１側の物理メモリ１２４Ａ１、１側の物理ＣＰＵソケット１２５Ｎ１及びＩＯインターフェイス１２６Ｎ０を備えている。
【００１４】
これらＮＵＭＡ０側の物理メモリ１２４Ａ０、０側の物理ＣＰＵソケット１２５Ａ０及びＩＯインターフェイス１２６Ａ０が１つのノードを構成している一方、それらＮＵＭＡ１側の物理メモリ１２４Ａ１、１側の物理ＣＰＵソケット１２５Ｎ１及びＩＯインターフェイス１２６Ｎ０が別の１つのノードを構成している。
【００１５】
ＮＵＭＡ０側の物理メモリ１２４Ａ０は、０側の物理ＣＰＵソケット１２５Ａ０に装着された中央演算装置である物理ＣＰＵの作業領域として使用される。ＩＯインターフェイス１２６Ａ０は、物理ＣＰＵと外部との間におけるインターフェイスであり、例えばいわゆるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  ＩｎｔｅｒＣｏｎｎｅｃｔ）バスである。一方、ＮＵＭＡ１側の物理メモリ１２４Ａ１は、１側の物理ＣＰＵソケット１２５Ｎ１に装着された中央演算装置である物理ＣＰＵが作業領域として使用される。ＩＯインターフェイス１２６Ｎ０は、物理ＣＰＵと外部との間におけるインターフェイスであり、例えばいわゆるＰＣＩバスである。
【００１６】
仮想化機関部１２３Ａは、複数の仮想ＣＰＵコア１３１Ａ、複数の仮想メモリ１３２Ａ、複数の仮想スイッチ１３３Ａ及び複数の仮想ＩＯインターフェイス１３４Ａを備えている。
【００１７】
なお、以下においては、仮想マシン１２２Ａ１などについて特に特定する必要がない場合、符号を省略して説明する場合がある。
【００１８】
図２に示す管理サーバ１０１は、仮想マシン構成管理部１０２、物理マシン構成管理部１０３、仮想マシン間通信情報管理部１０４、仮想マシン配置優先度変更部１０５及び仮想マシン再配置実施部１０６を備えている。
【００１９】
仮想マシン構成管理部１０２は、複数の仮想マシンの構成を管理する機能を有する。
【００２０】
物理マシン構成管理部１０３は、複数の物理マシン１２１Ａ〜１２１Ｎを管理する機能を有する。
【００２１】
仮想マシン間通信情報管理部１０４は、第１の仮想マシン１２２Ａ１，１２２Ａ２，１２２Ａ３〜第Ｎの仮想マシン１２２Ｎ１，１２２Ｎ２，１２２Ｎ３の間における各通信情報を管理する機能を有する。
【００２２】
仮想マシン配置優先度変更部１０５は、第１の仮想マシン１２２Ａ１，１２２Ａ２，１２２Ａ３〜第Ｎの仮想マシン１２２Ｎ１，１２２Ｎ２，１２２Ｎ３の間において配置に応じて見込みうる通信容量の程度を示す配置優先度を変更する機能を有する。
【００２３】
仮想マシン再配置実施部１０６は、第１の仮想マシン１２２Ａ１，１２２Ａ２，１２２Ａ３〜第Ｎの仮想マシン１２２Ｎ１，１２２Ｎ２，１２２Ｎ３のいずれかを再度配置し直す機能を有する。仮想マシン再配置実施部１０６の詳細については後述する。
【００２４】
一方、記憶部１１１は、例えばデータベース装置であり、次のようなテーブルを記憶している。つまり、記憶部１１１は、物理マシン関連テーブル群として、物理マシンＩＤ管理テーブル１５１、物理ＣＰＵ管理テーブル１５２、物理メモリ管理テーブル１５３、仮想スイッチ管理テーブル１５４及び物理ＩＯインターフェイス管理テーブル１５５を備えている。この記憶部１１１は、仮想マシン関連テーブル群として、仮想マシンＩＤ管理テーブル１４１、仮想ＣＰＵ管理テーブル１４２、仮想メモリ管理テーブル１４３、仮想ＩＯインターフェイス接続先仮想スイッチ管理テーブル１４４、仮想マシン配置先物理マシン管理テーブル１４５及び仮想マシン間通信情報管理テーブル１４６を備えている。さらに記憶部１１１は、再配置テーブル群として、再配置対象仮想マシンテーブル１６１及び配置候補テーブル１６２を備えている。この記憶部１１１は、定義テーブル群として、仮想マシン配置優先度定義テーブル１７１及び仮想マシン間通信間隔定義テーブル１７２を備えている。
【００２５】
（１−２）テーブル構成
図３は、物理マシンＩＤ管理テーブル１５１の構成例を示す。物理マシンＩＤ管理テーブル１５１は、そのカラムとして、物理マシンＩＤを有し、本システム内に存在している物理マシンの識別子を管理している。
【００２６】
図４は、物理ＣＰＵ管理テーブル１５２の構成例を示す。物理ＣＰＵ管理テーブル１５２は、そのカラムとして、物理マシンＩＤ、ＣＰＵソケット番号及ぶ１ＣＰＵソケット当りのコア数を有し、本システム内に存在している物理マシンごとに、ＣＰＵソケット番号及び１ＣＰＵソケット当りの（ＣＰＵ）コア数を管理している。
【００２７】
図５は、物理メモリ管理テーブル１５３の構成例を示す。物理メモリ管理テーブル１５３は、そのカラムとして、物理マシンＩＤ、ＣＰＵソケット番号、ＮＵＭＡ番号及び１ＮＵＭＡ当りのメモリ容量（ＧＢ）を有し、物理マシンごとの物理構成を管理している。
【００２８】
図６は、仮想スイッチ管理テーブル１５４の構成例を示す。仮想スイッチ管理テーブル１５４は、そのカラムとして、物理マシンＩＤ、仮想スイッチ、送信帯域［Ｇｂｐｓ］及び受信帯域［Ｇｂｐｓ］を有し、物理マシンの仮想スイッチごとの送信帯域及び受信帯域を管理している。
【００２９】
図７は、物理ＩＯインターフェイス管理テーブル１５５の構成例を示す。物理ＩＯインターフェイス管理テーブル１５５は、そのカラムとして、物理マシンＩＤ、ＩＯインターフェイス番号、ＣＰＵソケット番号、ＮＵＭＡ番号、仮想スイッチ、送信帯域［Ｇｂｐｓ］及び受信帯域［Ｇｂｐｓ］を有し、ＩＯインターフェイスに関する物理構成を管理している。
【００３０】
図８は、仮想マシンＩＤ管理テーブル１４１の構成例を示す。仮想マシンＩＤ管理テーブル１４１は、そのカラムとして、仮想マシンＩＤを有し、本システム内に存在する各仮想マシンを管理する。
【００３１】
図９は、仮想ＣＰＵ管理テーブル１４２の構成例を示す。仮想ＣＰＵ管理テーブル１４２は、そのカラムとして、仮想マシンＩＤ、仮想ＣＰＵ数及び仮想ＣＰＵアフィニティを有し、仮想メモリの構成を管理する。
【００３２】
図１０は、仮想メモリ管理テーブル１４３の構成例を示す。仮想メモリ管理テーブル１４３は、そのカラムとして、仮想マシンＩＤ、仮想メモリ容量［ＧＢ］及びＮＵＭＡアフィニティを有し、仮想マシンごとに、仮想メモリの構成を管理する。
【００３３】
図１１は、仮想ＩＯインターフェイス接続先仮想スイッチ管理テーブル１４４の構成例を示す。仮想ＩＯインターフェイス接続先仮想スイッチ管理テーブル１４４は、そのカラムとして、仮想マシンＩＤ、仮想ＩＤインターフェイス番号及び接続先仮想スイッチを有し、仮想マシンごとに、インターフェイス関係の構成を管理する。
【００３４】
図１２は、仮想マシン配置先物理マシン管理テーブル１４５の構成例を示す。仮想マシン配置先物理マシン管理テーブル１４５は、そのカラムとして、仮想マシンＩＤ及び物理マシンＩＤを有し、各物理マシン上で稼働する各仮想マシンを管理する。
【００３５】
図１３は、仮想マシン間通信情報管理テーブル１４６の構成例を示す。仮想マシン間通信情報管理テーブル１４６は、そのカラムとして、通信ＩＤ、送信元仮想マシンＩＤ、送信索仮想マシンＩＤ、通信容量［Ｇｂｐｓ］、配置優先度、現在配置及び計測開始時刻を有する。
【００３６】
この仮想マシン間通信情報管理テーブル１４６は、複数の通信を互いに識別するための通信ＩＤごとに、送信元仮想マシンＩＤが示す送信元仮想マシンと送信先仮想マシンＩＤが示す送信先仮想マシンとの間における、通信容量［Ｇｂｐｓ］、配置優先度、現在の配置を表す値である現在配置、及び、計測開始時刻を管理する。
【００３７】
図１４は、再配置対象仮想マシンテーブル１６１の構成例を示す。再配置対象仮想マシンテーブル１６１は、そのカラムとして、通信ＩＤ、送信元仮想マシンＩＤ、送信索仮想マシンＩＤ、通信容量［Ｇｂｐｓ］、配置優先度、現在配置及び計測開始時刻を有する。再配置対象仮想マシンテーブル１６１のカラムは、上記仮想マシン間通信情報管理テーブル１４６のカラムと同一となっている。
【００３８】
再配置対象仮想マシンテーブル１６１は、再配置対象の仮想マシンのみに関する情報を管理する点が、仮想マシン間通信情報管理テーブル１４６とは異なっている。
【００３９】
図１５は、配置候補テーブル１６２の構成例を示す。配置候補テーブル１６２は、そのカラムとして、通信ＩＤ、送信元仮想マシンＩＤ、送信先仮想マシンＩＤ、物理マシンＩＤ、ＣＰＵソケット番号、ＮＵＭＡ番号及び仮想スイッチを有する。
【００４０】
この配置候補テーブル１６２は、通信ＩＤごとに、ある物理マシン上への配置候補としての送信元仮想マシンと送信先仮想マシンとの組み合わせを管理する。
【００４１】
図１６は、仮想マシン配置優先度定義テーブル１７１の構成例を示す。仮想マシン配置優先度定義テーブル１７１は、そのカラムとして、配置状態及び配置優先度を有し、物理マシン上への仮想マシンの配置状態の優先度（配置優先度）を管理している。
【００４２】
図１７は、仮想マシン間通信間隔定義テーブル１７２の構成例を示す。仮想マシン間通信間隔定義テーブル１７２は、そのカラムとして、通信ＩＤ及び取得間隔［分］を有し、通信ＩＤが表す通信ごとの取得間隔を管理する。なお、この取得間隔は、後述する計測処理（図１８参照）において用いられる時間間隔である。
【００４３】
（２）仮想マシンの管理方法
本実施の形態による計算機システム１は以上のような構成であり、次に計算機システム１の動作例について説明する。本実施の形態では、計測処理が実行された後、仮想マシン再配置処理が実行される。
【００４４】
（２−１）計測処理
図１８は、計測処理の一例を示す。この計測処理では、時間の経過とともに、後述する配置優先度を引き上げるべきか維持するべきか引き下げるべきかを判定している。
【００４５】
管理サーバ１０１では、仮想マシン間通信情報管理部１０４が、仮想マシン間通信間隔定義テーブル１７２（図１７参照）に記録された通信ＩＤに対応する取得間隔［分］を読み出し設定する（ステップＳ１）。管理サーバ１０１は、この取得間隔ごとに実際に通信容量（以下「実測通信容量」という）を計測する（ステップＳ２）。
【００４６】
次に管理サーバ１０１では、仮想マシン間通信情報管理部１０４が、仮想マシン間通信情報管理テーブル１４６（図１３参照）から通信ＩＤごとに最新の通信容量［Ｇｂｐｓ］及び現在配置を取得する（ステップＳ３）。
【００４７】
次に管理サーバ１０１では、仮想マシン配置優先度変更部１０５が、ステップＳ２において取得した実測通信容量と、ステップＳ３において取得した最新の通信容量とを比較する（ステップＳ４）。
【００４８】
その比較の結果、｜最新の通信容量−実測通信容量｜＞しきい値であり、かつ、最新の通信容量＜実測通信容量である場合（通信容量が減った場合）、管理サーバ１０１では、仮想マシン配置優先度変更部１０５が、ステップＳ３において取得した現在配置を示す値から１段階下げた（１減算した）値を保持する（ステップＳ５）。
【００４９】
その比較の結果、｜最新の通信容量−実測通信容量｜＜＝しきい値である場合（通信容量が同じ場合）、管理サーバ１０１では、仮想マシン配置優先度変更部１０５が、ステップＳ３において取得した現在配置を示す値をそのまま保持する（ステップＳ６）。
【００５０】
その比較の結果、｜最新の通信容量−実測通信容量｜＞しきい値であり、かつ、最新の通信容量＞実測通信容量である場合（通信容量が増えた場合）、管理サーバ１０１では、仮想マシン配置優先度変更部１０５が、ステップＳ３において取得した現在配置を表す値から1段階上げた値を保持する（ステップＳ７）。
【００５１】
次に管理サーバ１０１では、仮想マシン配置優先度変更部１０５が、仮想マシン間通信情報管理テーブル１４６（図１３参照）に、ステップＳ５〜ステップＳ７において記録した配置優先度、ステップＳ２において取得した実測通信容量、及び、ステップＳ３において取得した現在配置を新規登録する（ステップＳ８）。
【００５２】
以上のように管理サーバ１０１では、仮想マシン配置優先度変更部１０５が、計測処理によって複数の仮想マシン間の通信容量の差である「最新の通信容量−実測通信容量」と、「しきい値」との大小関係に応じて、すなわち、異なる時間に計測された複数の仮想マシン間の通信容量の増減に応じて配置優先度を更新している。このようにすると、複数の仮想マシン間の通信容量が少なくとも維持されるように再配置対象の仮想マシンを物理マシンに配置させることができる。
【００５３】
（２−２）仮想マシン再配置処理
図１９は、仮想マシン再配置処理の一例を示す。管理サーバ１０１では、仮想マシン間通信情報管理部１０４が、仮想マシン間通信情報管理テーブル１４６（図１３参照）から、通信ＩＤごとに、送信元仮想マシンＩＤ、送信先仮想マシンＩＤ、通信容量、配置優先度、現在配置及び計測開始時刻を取得する（ステップＳ１０１）。
【００５４】
管理サーバ１０１は、ステップＳ１１２において取得した情報のうち、通信ＩＤごとに計測開始時刻が最新である情報を対象に仮想マシンの再配置の実施を開始する（ステップＳ１０２）。本実施の形態では、管理サーバ１０１が、１３：００を対象に仮想マシンの再配置を実施することを例示する。
【００５５】
管理サーバ１０１では、仮想マシン間通信情報管理部１０４が、仮想マシン間通信情報管理テーブル１４６（図１３参照）において計測開始時刻が例えば２０１７年０２月０１日の１３：００：００に該当する情報について配置優先度を基に降順にソートし（ステップＳ１０３）、ソート後の情報を再配置対象仮想マシンテーブル１６１（図１４参照）に格納する。
【００５６】
次に管理サーバ１０１では、仮想マシン再配置実施部１０６が、再配置対象仮想マシンテーブル１６１に格納された情報のうち、配置優先度が同一である仮想マシンの組み合わせを別の特定優先度（例えば上位で操作するアプリケーションの優先度）に従って再度ソートする（ステップＳ１０４）。
【００５７】
次に管理サーバ１０１では、仮想マシン再配置実施部１０６が、上記特定優先度が同一か否か判定し（ステップＳ１０５）、上記特定優先度が同一である場合、ユニークなＩＤに従って再度昇順にソートする（ステップＳ１０６）。
【００５８】
以下、まず、管理サーバ１０１では、仮想マシン再配置実施部１０６が、複数の仮想マシンのうち送信先仮想マシンの再配置を開始する（ステップＳ１０７）。なお、後述するステップＳ１１６以降は複数の仮想マシンのうち送信元仮想マシンに関する処理である。
【００５９】
まず、管理サーバ１０１では、仮想マシン再配置実施部１０６が、仮想ＣＰＵが物理ＣＰＵに収まるか否かについて確認する（ステップＳ１０８）。具体的には、管理サーバ１０１では、仮想マシン構成管理部１０２が、仮想ＣＰＵ管理テーブル１４２（図９参照）を参照してこの仮想マシンの仮想マシンＩＤに対応する仮想ＣＰＵ数を取得するとともに、物理ＣＰＵ管理テーブル１５２（図４参照）を参照して上記仮想ＣＰＵ数が収まるＣＰＵソケット番号及び物理マシンＩＤを取得する。
【００６０】
管理サーバ１０１では、仮想マシン構成管理部１０２が、ステップＳ１０８において上記仮想ＣＰＵが収まるＣＰＵソケットがないと判定された場合には、収納可能な物理ＣＰＵが最も多いＣＰＵソケット番号及び物理マシンＩＤを取得する一方（ステップＳ１０９）、ステップＳ８において仮想ＣＰＵが収まるＣＰＵソケットがあると判定された場合には、このようなステップＳ９を実行することなく、次のようなステップＳ１１０を実行する。
【００６１】
次に管理サーバ１０１では、仮想マシン構成管理部１０２が、仮想メモリ容量が物理メモリ容量に収まるか否かを確認する（ステップＳ１１０）。具体的には、仮想マシン構成管理部１０２が、仮想マシンの仮想メモリ容量を仮想メモリ管理テーブル１４３（図１０参照）から確認する。さらに管理サーバ１０１では、物理マシン構成管理部１０３が、物理メモリ管理テーブル１５３（図５参照）を参照して、上記ステップＳ８またはステップＳ９において取得した、物理マシンＩＤとＣＰＵソケット番号との組み合わせに一致する情報を取得する。さらに管理サーバ１０１では、物理マシン構成管理部１０３が、このように取得した情報のうちから仮想メモリ容量が収まるＮＵＭＡ番号及び物理マシンＩＤを取得する。なお、このような処理を実行するのは、仮想メモリと仮想ＣＰＵとを極力同一ノードに配置させた方が送信元仮想マシンと送信先仮想マシンとの間における通信容量などの通信条件が良好なためである。
【００６２】
管理サーバ１０１では、物理マシン構成管理部１０３が、このステップＳ１１０において仮想メモリ容量が収まる物理メモリ容量がない場合には、割り当てられている物理メモリ容量が最も多いＮＵＭＡ番号及び物理マシンＩＤを取得する一方（ステップＳ１１１）、このステップＳ１１０において仮想メモリ容量が収まる物理メモリ容量がある場合には、ステップＳ１１２において取得した配置優先度別に処理を分けて実行する（ステップＳ１１２）。
【００６３】
管理サーバ１０１では、仮想マシン再配置実施部１０６が、上記取得した配置優先度が１または２である場合には次のようなステップＳ１１３を実行する一方、上記取得した配置優先度が３または４である場合には後述するステップＳ１１４を実行する（ステップＳ１１２）。
【００６４】
ステップＳ１１３では、仮想マシン再配置実施部１０６が、仮想マシンの接続先スイッチ、すなわち、仮想マシンの通信帯域が収まる仮想スイッチが存在するか否かを確認する。具体的には、仮想マシン再配置実施部１０６は、物理ＩＯインターフェイス管理テーブル１５５（図７参照）から、ステップＳ８またはステップＳ９において取得した物理マシンＩＤ及びＣＰＵソケット番号と、ステップＳ１１０またはステップＳ１１１において取得した物理マシンＩＤ及びＮＵＭＡ番号との組み合わせに一致する情報を確認する。さらに仮想マシン再配置実施部１０６は、このように取得した情報の中から、仮想マシンの通信帯域（送信帯域及び受信帯域）が収まる仮想スイッチの取得を試みる。
【００６５】
仮想マシンの通信帯域が収まる仮想スイッチが存在する場合、管理サーバ１０１では、仮想マシン再配置実施部１０６が、以上のような送信先仮想マシンについて処理を終了し、後述するステップＳ１１６以降のように送信元仮想マシンについての処理を開始する。
【００６６】
一方、仮想マシンの通信帯域が収まる仮想スイッチが存在しない場合、仮想マシン再配置実施部１０６が、仮想マシンの通信容量が最も大きくなる仮想スイッチを取得し（ステップＳ１１５）、後述するステップＳ１１６以降を実行する。
【００６７】
一方、ステップＳ１１４では、仮想マシン再配置実施部１０６が、仮想マシンの接続先スイッチ、すなわち、仮想スイッチ管理テーブルからステップＳ１１１またはステップＳ１１２において取得した物理マシンＩＤに一致する情報を確認する。具体的には、仮想マシン再配置実施部１０６は、取得した情報の中から、仮想マシンの通信帯域（送信帯域及び受信帯域）が収まる仮想スイッチの取得を試みる。
【００６８】
管理サーバ１０１では、仮想マシン再配置実施部１０６が、仮想マシンの通信帯域が収まる仮想スイッチが存在する場合にはステップＳ１１６以降を実行する一方、仮想マシンの通信帯域が収まる仮想スイッチが存在する場合には既述のステップＳ１１５を実行する。
【００６９】
ステップＳ１１６では、仮想マシン再配置実施部１０６が、送信元の再配置候補が決まっているか否かを判定する。この仮想マシン再配置実施部１０６は、未決定の場合には送信元仮想マシンの再配置を開始して上記ステップＳ８から実施する一方（ステップＳ１１７）、決定済の場合にはステップＳ１１８を実行する。
【００７０】
ステップＳ１１８では、仮想マシン再配置実施部１０６が、物理ＣＰＵソケット、ＮＵＭＡ番号及び仮想スイッチの組み合わせが配置候補テーブル１６２（図１５参照）に存在するか否かを確認する。なお、この配置候補テーブル１６２には初回のループでは配置候補が存在しないが、後述するステップＳ１２１を経ることで、配置候補が蓄積されていく。管理サーバ１０１では、仮想マシン再配置実施部１０６が、これらの組み合わせが配置候補テーブル１６２（図１５参照）に存在する場合には既述のステップＳ７から再度実行する一方、これらの組み合わせが配置候補テーブル１６２に存在しない場合には次のようなステップＳ１１９を実行する。
【００７１】
このステップＳ１１９では、仮想マシン再配置実施部１０６が、送信元仮想マシンと送信先仮想マシンとのペアの再配置先が配置優先度で指定された構成になっているか否かを確認する。配置優先度で指定された構成になっている場合には、仮想マシン再配置実施部１０６は、実際に仮想マシンの再配置を開始する（ステップＳ１２２）。
【００７２】
配置優先度で指定された構成になっておらず、かつ、すべての配置組み合わせを試した場合、管理サーバ１０１では、仮想マシン再配置実施部１０６が、配置候補テーブル１６２（図１５参照）の中から、既述のような処理を経て配置優先度が最も高くなる構成を採用し（ステップＳ１２０）、実際に仮想マシンの再配置を開始する（ステップＳ１２２）。
【００７３】
一方、配置優先度で指定された構成になっておらず、かつ、すべての配置組み合わせを試していない場合、管理サーバ１０１では、仮想マシン再配置実施部１０６が、物理ＣＰＵソケット、ＮＵＭＡ番号及び仮想スイッチの組み合わせを配置候補テーブル１６２（図１５参照）に登録し、再度、再配置先の検索を試みる（ステップＳ１２１）。
【００７４】
実際に仮想マシンの再配置が開始されると（ステップＳ１２２）、管理サーバ１０１では、仮想マシン再配置実施部１０６が、仮想ＣＰＵ管理テーブル１４２（図９参照）において、この仮想マシンを表す仮想マシンＩＤに対応する仮想ＣＰＵアフィニティを更新する（ステップＳ１２３）。ここで、アフィニティとは、どのソケットに装着されているのかを表す。
【００７５】
次に管理サーバ１０１では、仮想マシン再配置実施部１０６が、仮想メモリ管理テーブル１４３（図１０参照）において、この仮想マシンを表す仮想マシンＩＤに対応するＮＵＭＡアフィニティを更新する（ステップＳ１２４）。
【００７６】
次に管理サーバ１０１では、仮想マシン再配置実施部１０６が、仮想マシン配置先物理マシン管理テーブル１４５（図１２参照）において、上記仮想マシンを表す仮想マシンＩＤに対応する物理マシンＩＤを更新する（ステップＳ１２５）。
【００７７】
次に管理サーバ１０１では、仮想マシン再配置実施部１０６が、仮想ＩＯインターフェイス接続先仮想スイッチ管理テーブル１４４（図１１参照）において、上記仮想マシンを表す仮想マシンＩＤに対応する接続先仮想スイッチを更新する（ステップＳ１２６）。
【００７８】
次に管理サーバ１０１では、仮想マシン配置優先度変更部１０５が、仮想マシン再配置後、仮想マシン間通信情報管理テーブル１４６（図１３参照）において、送信元仮想マシンＩＤと送信先仮想マシンＩＤのペアに対応する現在配置の値を、実際に配置された仮想マシンの配置優先度で更新し（ステップＳ１２７）、処理を終了する。
【００７９】
以上のように複数の仮想マシンのうちの一部の仮想マシンを再配置すると、通信量のみならず、これら複数の仮想マシンが稼働する物理マシンの物理構成要素（例えばＣＰＵ、メモリ、ＰＣＩ）を考慮して当該一部の仮想マシンの再配置が実施されるようになるため、再配置後においても当該複数の仮想マシン間では、物理マシンの物理構成要素を加味した上で、当初想定した通りの通信性能を確保することができる。
【００８０】
（３）その他の実施形態
上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。また、上記実施形態における各処理ブロックを含むプログラムは、例えばコンピュータが読み取り可能な非一時的記憶媒体に格納されている形態であっても良い。
【産業上の利用可能性】
【００８１】
本発明は、物理マシン上で複数の仮想マシンが稼働する際における仮想マシンの管理装置及び管理方法に広く適用することができる。
【符号の説明】
【００８２】
１０１……管理サーバ、１１１……記憶部、１２１Ａ〜１２１Ｎ……物理マシン、１２２Ａ〜１２２Ｎ……仮想マシン。
【図１】
0006692994.tif 000002
【図２】
0006692994.tif 000003
【図３】
0006692994.tif 000004
【図４】
0006692994.tif 000005
【図５】
0006692994.tif 000006
【図６】
0006692994.tif 000007
【図７】
0006692994.tif 000008
【図８】
0006692994.tif 000009
【図９】
0006692994.tif 000010
【図１０】
0006692994.tif 000011
【図１１】
0006692994.tif 000012
【図１２】
0006692994.tif 000013
【図１３】
0006692994.tif 000014
【図１４】
0006692994.tif 000015
【図１５】
0006692994.tif 000016
【図１６】
0006692994.tif 000017
【図１７】
0006692994.tif 000018
【図１８】
0006692994.tif 000019
【図１９】
0006692994.tif 000020
【図２０】
0006692994.tif 000021