このアプリケーションの一部のコンテンツは現時点では利用できません。
このような状況が続く場合は、にお問い合わせくださいフィードバック & お問い合わせ
1. (WO2019003286) 仮想マシンの管理装置及び管理方法
Document

明 細 書

発明の名称 仮想マシンの管理装置及び管理方法

技術分野

0001  

背景技術

0002  

先行技術文献

特許文献

0003  

発明の開示

発明が解決しようとする課題

0004   0005  

課題を解決するための手段

0006   0007  

発明の効果

0008  

図面の簡単な説明

0009  

発明を実施するための形態

0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080  

産業上の利用可能性

0081  

符号の説明

0082  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13   14  

図面

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20  

明 細 書

発明の名称 : 仮想マシンの管理装置及び管理方法

技術分野

[0001]
 本発明は、仮想マシンの管理装置及び管理方法に関し、特に、物理マシン上で稼働する仮想マシンを管理する技術に関する管理装置に適用して好適なものである。

背景技術

[0002]
 従来、複数の仮想マシンを複数の物理マシンに配置する際には、これら複数の仮想マシン間の通信容量を考慮して可能な限り、同一の物理マシン上にこれら複数の仮想マシンを配置するようにしている(特許文献1参照)。

先行技術文献

特許文献

[0003]
特許文献1 : 特開2010-140134号公報

発明の開示

発明が解決しようとする課題

[0004]
 しかしながら、これら複数の仮想マシンが利用する物理サーバの構成要素が考慮されていないため、一部の仮想マシンを再配置しようとした際には、当該一部の仮想マシンが再配置された後にこれら複数の仮想マシン間において想定通りの通信性能を確実に確保できる訳ではなかった。
[0005]
 本発明は以上の点を考慮してなされたもので、再配置対象の仮想マシンを再配置後にも複数の仮想マシン間において想定通りの通信性能を確保可能な仮想マシンの管理装置及び管理方法を提案しようとするものである。

課題を解決するための手段

[0006]
 かかる課題を解決するため、本発明においては、物理マシン上で稼働されている複数の仮想マシンの配置を管理する仮想マシンの管理装置であって、前記複数の仮想マシン間における通信容量を管理する通信情報管理部と、前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理部と、前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定部と、を備えることを特徴とする。
[0007]
 また、本発明においては、物理マシン上で稼働されている複数の仮想マシンの配置を管理する管理装置によって実行される仮想マシンの管理方法であって、前記管理装置が、前記複数の仮想マシン間における通信容量を管理する通信情報管理ステップと、前記管理装置が、前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理ステップと、前記管理装置が、前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定ステップと、を有することを特徴とする。

発明の効果

[0008]
 本発明によれば、再配置対象の仮想マシンを再配置した後にも複数の仮想マシン間において想定通りの通信性能を確保することができる。

図面の簡単な説明

[0009]
[図1] 本実施の形態による仮想マシンの管理装置の概略構成を示すブロック図である。
[図2] 本実施の形態による仮想マシンの管理装置の概略構成を示すブロック図である。
[図3] 図2に示す物理マシンID管理テーブルの構成例を示す図である。
[図4] 図2に示す物理CPU管理テーブルの構成例を示す図である。
[図5] 図2に示す物理メモリ管理テーブルの構成例を示す図である。
[図6] 図2に示す仮想スイッチ管理テーブルの構成例を示す図である。
[図7] 図2に示す物理IOインターフェイス管理テーブルの構成例を示す図である。
[図8] 図2に示す仮想マシンID管理テーブルの構成例を示す図である。
[図9] 図2に示す仮想CPU管理テーブルの構成例を示す図である。
[図10] 図2に示す仮想メモリ管理テーブルの構成例を示す図である。
[図11] 図2に示す仮想IOインターフェイス接続先仮想スイッチ管理テーブルの構成例を示す図である。
[図12] 図2に示す仮想マシン配置優先度定義テーブルの構成例を示す図である。
[図13] 図2に示す仮想マシン間通信情報管理テーブルの構成例を示す図である。
[図14] 図2に示す再配置対象仮想マシンテーブルの構成例を示す図である。
[図15] 図2に示す配置候補テーブルの一例を示す図である。
[図16] 図2に示す仮想マシン配置優先度定義テーブルの構成例を示す図である。
[図17] 図2に示す仮想マシン間通信感覚定義テーブルの構成例を示す図である。
[図18] 計測処理の一例を示すフローチャートである。
[図19] 仮想マシン再配置処理の一例を示すフローチャートである。
[図20] 図19に示す仮想マシン再配置処理の続きを示すフローチャートである。

発明を実施するための形態

[0010]
 以下、図面について、本発明の一実施の形態について詳述する。
[0011]
 (1)本実施の形態による仮想マシン管理システム
 (1-1)システム構成
 図1及び図2は、本実施の形態による計算機システム1の概略構成を示す。なお、図1と図2とは本来1つの図面として表されるべきであるが、説明の関係上分けて表されている。図1は、主として、第1の物理マシン121A~第N(N:自然数)の物理マシン121Nの構成例を表しており、図2は、主として、記憶部111が接続された管理サーバ101の構成例を表している。
[0012]
 計算機システム1は、ネットワーク131によって接続された、少なくとも1台の物理マシンとして図1に例示する複数の物理マシン121A~121N、及び、図2に示す管理サーバ101を備えている。これら複数の物理マシン121A~121Nは互いにほぼ同様な構成であるため、以下の構成説明においては、他の物理マシンに言及する必要がある場合を除き、主として第1の物理マシン121Aを例示する。
[0013]
 第1の物理マシン121Aは、例えば、3つの仮想マシン122A1,122A2,122A3、仮想化機関部123A、NUMA0側の物理メモリ124A0、0側の物理CPUソケット125A0及びIOインターフェイス126A0、並びにNUMA1側の物理メモリ124A1、1側の物理CPUソケット125N1及びIOインターフェイス126N0を備えている。
[0014]
 これらNUMA0側の物理メモリ124A0、0側の物理CPUソケット125A0及びIOインターフェイス126A0が1つのノードを構成している一方、それらNUMA1側の物理メモリ124A1、1側の物理CPUソケット125N1及びIOインターフェイス126N0が別の1つのノードを構成している。
[0015]
 NUMA0側の物理メモリ124A0は、0側の物理CPUソケット125A0に装着された中央演算装置である物理CPUの作業領域として使用される。IOインターフェイス126A0は、物理CPUと外部との間におけるインターフェイスであり、例えばいわゆるPCI(Peripheral Component InterConnect)バスである。一方、NUMA1側の物理メモリ124A1は、1側の物理CPUソケット125N1に装着された中央演算装置である物理CPUが作業領域として使用される。IOインターフェイス126N0は、物理CPUと外部との間におけるインターフェイスであり、例えばいわゆるPCIバスである。
[0016]
 仮想化機関部123Aは、複数の仮想CPUコア131A、複数の仮想メモリ132A、複数の仮想スイッチ133A及び複数の仮想IOインターフェイス134Aを備えている。
[0017]
 なお、以下においては、仮想マシン122A1などについて特に特定する必要がない場合、符号を省略して説明する場合がある。
[0018]
 図2に示す管理サーバ101は、仮想マシン構成管理部102、物理マシン構成管理部103、仮想マシン間通信情報管理部104、仮想マシン配置優先度変更部105及び仮想マシン再配置実施部106を備えている。
[0019]
 仮想マシン構成管理部102は、複数の仮想マシンの構成を管理する機能を有する。
[0020]
 物理マシン構成管理部103は、複数の物理マシン121A~121Nを管理する機能を有する。
[0021]
 仮想マシン間通信情報管理部104は、第1の仮想マシン122A1,122A2,122A3~第Nの仮想マシン122N1,122N2,122N3の間における各通信情報を管理する機能を有する。
[0022]
 仮想マシン配置優先度変更部105は、第1の仮想マシン122A1,122A2,122A3~第Nの仮想マシン122N1,122N2,122N3の間において配置に応じて見込みうる通信容量の程度を示す配置優先度を変更する機能を有する。
[0023]
 仮想マシン再配置実施部106は、第1の仮想マシン122A1,122A2,122A3~第Nの仮想マシン122N1,122N2,122N3のいずれかを再度配置し直す機能を有する。仮想マシン再配置実施部106の詳細については後述する。
[0024]
 一方、記憶部111は、例えばデータベース装置であり、次のようなテーブルを記憶している。つまり、記憶部111は、物理マシン関連テーブル群として、物理マシンID管理テーブル151、物理CPU管理テーブル152、物理メモリ管理テーブル153、仮想スイッチ管理テーブル154及び物理IOインターフェイス管理テーブル155を備えている。この記憶部111は、仮想マシン関連テーブル群として、仮想マシンID管理テーブル141、仮想CPU管理テーブル142、仮想メモリ管理テーブル143、仮想IOインターフェイス接続先仮想スイッチ管理テーブル144、仮想マシン配置先物理マシン管理テーブル145及び仮想マシン間通信情報管理テーブル146を備えている。さらに記憶部111は、再配置テーブル群として、再配置対象仮想マシンテーブル161及び配置候補テーブル162を備えている。この記憶部111は、定義テーブル群として、仮想マシン配置優先度定義テーブル171及び仮想マシン間通信間隔定義テーブル172を備えている。
[0025]
 (1-2)テーブル構成
 図3は、物理マシンID管理テーブル151の構成例を示す。物理マシンID管理テーブル151は、そのカラムとして、物理マシンIDを有し、本システム内に存在している物理マシンの識別子を管理している。
[0026]
 図4は、物理CPU管理テーブル152の構成例を示す。物理CPU管理テーブル152は、そのカラムとして、物理マシンID、CPUソケット番号及ぶ1CPUソケット当りのコア数を有し、本システム内に存在している物理マシンごとに、CPUソケット番号及び1CPUソケット当りの(CPU)コア数を管理している。
[0027]
 図5は、物理メモリ管理テーブル153の構成例を示す。物理メモリ管理テーブル153は、そのカラムとして、物理マシンID、CPUソケット番号、NUMA番号及び1NUMA当りのメモリ容量(GB)を有し、物理マシンごとの物理構成を管理している。
[0028]
 図6は、仮想スイッチ管理テーブル154の構成例を示す。仮想スイッチ管理テーブル154は、そのカラムとして、物理マシンID、仮想スイッチ、送信帯域[Gbps]及び受信帯域[Gbps]を有し、物理マシンの仮想スイッチごとの送信帯域及び受信帯域を管理している。
[0029]
 図7は、物理IOインターフェイス管理テーブル155の構成例を示す。物理IOインターフェイス管理テーブル155は、そのカラムとして、物理マシンID、IOインターフェイス番号、CPUソケット番号、NUMA番号、仮想スイッチ、送信帯域[Gbps]及び受信帯域[Gbps]を有し、IOインターフェイスに関する物理構成を管理している。
[0030]
 図8は、仮想マシンID管理テーブル141の構成例を示す。仮想マシンID管理テーブル141は、そのカラムとして、仮想マシンIDを有し、本システム内に存在する各仮想マシンを管理する。
[0031]
 図9は、仮想CPU管理テーブル142の構成例を示す。仮想CPU管理テーブル142は、そのカラムとして、仮想マシンID、仮想CPU数及び仮想CPUアフィニティを有し、仮想メモリの構成を管理する。
[0032]
 図10は、仮想メモリ管理テーブル143の構成例を示す。仮想メモリ管理テーブル143は、そのカラムとして、仮想マシンID、仮想メモリ容量[GB]及びNUMAアフィニティを有し、仮想マシンごとに、仮想メモリの構成を管理する。
[0033]
 図11は、仮想IOインターフェイス接続先仮想スイッチ管理テーブル144の構成例を示す。仮想IOインターフェイス接続先仮想スイッチ管理テーブル144は、そのカラムとして、仮想マシンID、仮想IDインターフェイス番号及び接続先仮想スイッチを有し、仮想マシンごとに、インターフェイス関係の構成を管理する。
[0034]
 図12は、仮想マシン配置先物理マシン管理テーブル145の構成例を示す。仮想マシン配置先物理マシン管理テーブル145は、そのカラムとして、仮想マシンID及び物理マシンIDを有し、各物理マシン上で稼働する各仮想マシンを管理する。
[0035]
 図13は、仮想マシン間通信情報管理テーブル146の構成例を示す。仮想マシン間通信情報管理テーブル146は、そのカラムとして、通信ID、送信元仮想マシンID、送信索仮想マシンID、通信容量[Gbps]、配置優先度、現在配置及び計測開始時刻を有する。
[0036]
 この仮想マシン間通信情報管理テーブル146は、複数の通信を互いに識別するための通信IDごとに、送信元仮想マシンIDが示す送信元仮想マシンと送信先仮想マシンIDが示す送信先仮想マシンとの間における、通信容量[Gbps]、配置優先度、現在の配置を表す値である現在配置、及び、計測開始時刻を管理する。
[0037]
 図14は、再配置対象仮想マシンテーブル161の構成例を示す。再配置対象仮想マシンテーブル161は、そのカラムとして、通信ID、送信元仮想マシンID、送信索仮想マシンID、通信容量[Gbps]、配置優先度、現在配置及び計測開始時刻を有する。再配置対象仮想マシンテーブル161のカラムは、上記仮想マシン間通信情報管理テーブル146のカラムと同一となっている。
[0038]
 再配置対象仮想マシンテーブル161は、再配置対象の仮想マシンのみに関する情報を管理する点が、仮想マシン間通信情報管理テーブル146とは異なっている。
[0039]
 図15は、配置候補テーブル162の構成例を示す。配置候補テーブル162は、そのカラムとして、通信ID、送信元仮想マシンID、送信先仮想マシンID、物理マシンID、CPUソケット番号、NUMA番号及び仮想スイッチを有する。
[0040]
 この配置候補テーブル162は、通信IDごとに、ある物理マシン上への配置候補としての送信元仮想マシンと送信先仮想マシンとの組み合わせを管理する。
[0041]
 図16は、仮想マシン配置優先度定義テーブル171の構成例を示す。仮想マシン配置優先度定義テーブル171は、そのカラムとして、配置状態及び配置優先度を有し、物理マシン上への仮想マシンの配置状態の優先度(配置優先度)を管理している。
[0042]
 図17は、仮想マシン間通信間隔定義テーブル172の構成例を示す。仮想マシン間通信間隔定義テーブル172は、そのカラムとして、通信ID及び取得間隔[分]を有し、通信IDが表す通信ごとの取得間隔を管理する。なお、この取得間隔は、後述する計測処理(図18参照)において用いられる時間間隔である。
[0043]
 (2)仮想マシンの管理方法
 本実施の形態による計算機システム1は以上のような構成であり、次に計算機システム1の動作例について説明する。本実施の形態では、計測処理が実行された後、仮想マシン再配置処理が実行される。
[0044]
 (2-1)計測処理
 図18は、計測処理の一例を示す。この計測処理では、時間の経過とともに、後述する配置優先度を引き上げるべきか維持するべきか引き下げるべきかを判定している。
[0045]
 管理サーバ101では、仮想マシン間通信情報管理部104が、仮想マシン間通信間隔定義テーブル172(図17参照)に記録された通信IDに対応する取得間隔[分]を読み出し設定する(ステップS1)。管理サーバ101は、この取得間隔ごとに実際に通信容量(以下「実測通信容量」という)を計測する(ステップS2)。
[0046]
 次に管理サーバ101では、仮想マシン間通信情報管理部104が、仮想マシン間通信情報管理テーブル146(図13参照)から通信IDごとに最新の通信容量[Gbps]及び現在配置を取得する(ステップS3)。
[0047]
 次に管理サーバ101では、仮想マシン配置優先度変更部105が、ステップS2において取得した実測通信容量と、ステップS3において取得した最新の通信容量とを比較する(ステップS4)。
[0048]
 その比較の結果、|最新の通信容量-実測通信容量|>しきい値であり、かつ、最新の通信容量<実測通信容量である場合(通信容量が減った場合)、管理サーバ101では、仮想マシン配置優先度変更部105が、ステップS3において取得した現在配置を示す値から1段階下げた(1減算した)値を保持する(ステップS5)。
[0049]
 その比較の結果、|最新の通信容量-実測通信容量|<=しきい値である場合(通信容量が同じ場合)、管理サーバ101では、仮想マシン配置優先度変更部105が、ステップS3において取得した現在配置を示す値をそのまま保持する(ステップS6)。
[0050]
 その比較の結果、|最新の通信容量-実測通信容量|>しきい値であり、かつ、最新の通信容量>実測通信容量である場合(通信容量が増えた場合)、管理サーバ101では、仮想マシン配置優先度変更部105が、ステップS3において取得した現在配置を表す値から1段階上げた値を保持する(ステップS7)。
[0051]
 次に管理サーバ101では、仮想マシン配置優先度変更部105が、仮想マシン間通信情報管理テーブル146(図13参照)に、ステップS5~ステップS7において記録した配置優先度、ステップS2において取得した実測通信容量、及び、ステップS3において取得した現在配置を新規登録する(ステップS8)。
[0052]
 以上のように管理サーバ101では、仮想マシン配置優先度変更部105が、計測処理によって複数の仮想マシン間の通信容量の差である「最新の通信容量-実測通信容量」と、「しきい値」との大小関係に応じて、すなわち、異なる時間に計測された複数の仮想マシン間の通信容量の増減に応じて配置優先度を更新している。このようにすると、複数の仮想マシン間の通信容量が少なくとも維持されるように再配置対象の仮想マシンを物理マシンに配置させることができる。
[0053]
 (2-2)仮想マシン再配置処理
 図19は、仮想マシン再配置処理の一例を示す。管理サーバ101では、仮想マシン間通信情報管理部104が、仮想マシン間通信情報管理テーブル146(図13参照)から、通信IDごとに、送信元仮想マシンID、送信先仮想マシンID、通信容量、配置優先度、現在配置及び計測開始時刻を取得する(ステップS101)。
[0054]
 管理サーバ101は、ステップS112において取得した情報のうち、通信IDごとに計測開始時刻が最新である情報を対象に仮想マシンの再配置の実施を開始する(ステップS102)。本実施の形態では、管理サーバ101が、13:00を対象に仮想マシンの再配置を実施することを例示する。
[0055]
 管理サーバ101では、仮想マシン間通信情報管理部104が、仮想マシン間通信情報管理テーブル146(図13参照)において計測開始時刻が例えば2017年02月01日の13:00:00に該当する情報について配置優先度を基に降順にソートし(ステップS103)、ソート後の情報を再配置対象仮想マシンテーブル161(図14参照)に格納する。
[0056]
 次に管理サーバ101では、仮想マシン再配置実施部106が、再配置対象仮想マシンテーブル161に格納された情報のうち、配置優先度が同一である仮想マシンの組み合わせを別の特定優先度(例えば上位で操作するアプリケーションの優先度)に従って再度ソートする(ステップS104)。
[0057]
 次に管理サーバ101では、仮想マシン再配置実施部106が、上記特定優先度が同一か否か判定し(ステップS105)、上記特定優先度が同一である場合、ユニークなIDに従って再度昇順にソートする(ステップS106)。
[0058]
 以下、まず、管理サーバ101では、仮想マシン再配置実施部106が、複数の仮想マシンのうち送信先仮想マシンの再配置を開始する(ステップS107)。なお、後述するステップS116以降は複数の仮想マシンのうち送信元仮想マシンに関する処理である。
[0059]
 まず、管理サーバ101では、仮想マシン再配置実施部106が、仮想CPUが物理CPUに収まるか否かについて確認する(ステップS108)。具体的には、管理サーバ101では、仮想マシン構成管理部102が、仮想CPU管理テーブル142(図9参照)を参照してこの仮想マシンの仮想マシンIDに対応する仮想CPU数を取得するとともに、物理CPU管理テーブル152(図4参照)を参照して上記仮想CPU数が収まるCPUソケット番号及び物理マシンIDを取得する。
[0060]
 管理サーバ101では、仮想マシン構成管理部102が、ステップS108において上記仮想CPUが収まるCPUソケットがないと判定された場合には、収納可能な物理CPUが最も多いCPUソケット番号及び物理マシンIDを取得する一方(ステップS109)、ステップS8において仮想CPUが収まるCPUソケットがあると判定された場合には、このようなステップS9を実行することなく、次のようなステップS110を実行する。
[0061]
 次に管理サーバ101では、仮想マシン構成管理部102が、仮想メモリ容量が物理メモリ容量に収まるか否かを確認する(ステップS110)。具体的には、仮想マシン構成管理部102が、仮想マシンの仮想メモリ容量を仮想メモリ管理テーブル143(図10参照)から確認する。さらに管理サーバ101では、物理マシン構成管理部103が、物理メモリ管理テーブル153(図5参照)を参照して、上記ステップS8またはステップS9において取得した、物理マシンIDとCPUソケット番号との組み合わせに一致する情報を取得する。さらに管理サーバ101では、物理マシン構成管理部103が、このように取得した情報のうちから仮想メモリ容量が収まるNUMA番号及び物理マシンIDを取得する。なお、このような処理を実行するのは、仮想メモリと仮想CPUとを極力同一ノードに配置させた方が送信元仮想マシンと送信先仮想マシンとの間における通信容量などの通信条件が良好なためである。
[0062]
 管理サーバ101では、物理マシン構成管理部103が、このステップS110において仮想メモリ容量が収まる物理メモリ容量がない場合には、割り当てられている物理メモリ容量が最も多いNUMA番号及び物理マシンIDを取得する一方(ステップS111)、このステップS110において仮想メモリ容量が収まる物理メモリ容量がある場合には、ステップS112において取得した配置優先度別に処理を分けて実行する(ステップS112)。
[0063]
 管理サーバ101では、仮想マシン再配置実施部106が、上記取得した配置優先度が1または2である場合には次のようなステップS113を実行する一方、上記取得した配置優先度が3または4である場合には後述するステップS114を実行する(ステップS112)。
[0064]
 ステップS113では、仮想マシン再配置実施部106が、仮想マシンの接続先スイッチ、すなわち、仮想マシンの通信帯域が収まる仮想スイッチが存在するか否かを確認する。具体的には、仮想マシン再配置実施部106は、物理IOインターフェイス管理テーブル155(図7参照)から、ステップS8またはステップS9において取得した物理マシンID及びCPUソケット番号と、ステップS110またはステップS111において取得した物理マシンID及びNUMA番号との組み合わせに一致する情報を確認する。さらに仮想マシン再配置実施部106は、このように取得した情報の中から、仮想マシンの通信帯域(送信帯域及び受信帯域)が収まる仮想スイッチの取得を試みる。
[0065]
 仮想マシンの通信帯域が収まる仮想スイッチが存在する場合、管理サーバ101では、仮想マシン再配置実施部106が、以上のような送信先仮想マシンについて処理を終了し、後述するステップS116以降のように送信元仮想マシンについての処理を開始する。
[0066]
 一方、仮想マシンの通信帯域が収まる仮想スイッチが存在しない場合、仮想マシン再配置実施部106が、仮想マシンの通信容量が最も大きくなる仮想スイッチを取得し(ステップS115)、後述するステップS116以降を実行する。
[0067]
 一方、ステップS114では、仮想マシン再配置実施部106が、仮想マシンの接続先スイッチ、すなわち、仮想スイッチ管理テーブルからステップS111またはステップS112において取得した物理マシンIDに一致する情報を確認する。具体的には、仮想マシン再配置実施部106は、取得した情報の中から、仮想マシンの通信帯域(送信帯域及び受信帯域)が収まる仮想スイッチの取得を試みる。
[0068]
 管理サーバ101では、仮想マシン再配置実施部106が、仮想マシンの通信帯域が収まる仮想スイッチが存在する場合にはステップS116以降を実行する一方、仮想マシンの通信帯域が収まる仮想スイッチが存在する場合には既述のステップS115を実行する。
[0069]
 ステップS116では、仮想マシン再配置実施部106が、送信元の再配置候補が決まっているか否かを判定する。この仮想マシン再配置実施部106は、未決定の場合には送信元仮想マシンの再配置を開始して上記ステップS8から実施する一方(ステップS117)、決定済の場合にはステップS118を実行する。
[0070]
 ステップS118では、仮想マシン再配置実施部106が、物理CPUソケット、NUMA番号及び仮想スイッチの組み合わせが配置候補テーブル162(図15参照)に存在するか否かを確認する。なお、この配置候補テーブル162には初回のループでは配置候補が存在しないが、後述するステップS121を経ることで、配置候補が蓄積されていく。管理サーバ101では、仮想マシン再配置実施部106が、これらの組み合わせが配置候補テーブル162(図15参照)に存在する場合には既述のステップS7から再度実行する一方、これらの組み合わせが配置候補テーブル162に存在しない場合には次のようなステップS119を実行する。
[0071]
 このステップS119では、仮想マシン再配置実施部106が、送信元仮想マシンと送信先仮想マシンとのペアの再配置先が配置優先度で指定された構成になっているか否かを確認する。配置優先度で指定された構成になっている場合には、仮想マシン再配置実施部106は、実際に仮想マシンの再配置を開始する(ステップS122)。
[0072]
 配置優先度で指定された構成になっておらず、かつ、すべての配置組み合わせを試した場合、管理サーバ101では、仮想マシン再配置実施部106が、配置候補テーブル162(図15参照)の中から、既述のような処理を経て配置優先度が最も高くなる構成を採用し(ステップS120)、実際に仮想マシンの再配置を開始する(ステップS122)。
[0073]
 一方、配置優先度で指定された構成になっておらず、かつ、すべての配置組み合わせを試していない場合、管理サーバ101では、仮想マシン再配置実施部106が、物理CPUソケット、NUMA番号及び仮想スイッチの組み合わせを配置候補テーブル162(図15参照)に登録し、再度、再配置先の検索を試みる(ステップS121)。
[0074]
 実際に仮想マシンの再配置が開始されると(ステップS122)、管理サーバ101では、仮想マシン再配置実施部106が、仮想CPU管理テーブル142(図9参照)において、この仮想マシンを表す仮想マシンIDに対応する仮想CPUアフィニティを更新する(ステップS123)。ここで、アフィニティとは、どのソケットに装着されているのかを表す。
[0075]
 次に管理サーバ101では、仮想マシン再配置実施部106が、仮想メモリ管理テーブル143(図10参照)において、この仮想マシンを表す仮想マシンIDに対応するNUMAアフィニティを更新する(ステップS124)。
[0076]
 次に管理サーバ101では、仮想マシン再配置実施部106が、仮想マシン配置先物理マシン管理テーブル145(図12参照)において、上記仮想マシンを表す仮想マシンIDに対応する物理マシンIDを更新する(ステップS125)。
[0077]
 次に管理サーバ101では、仮想マシン再配置実施部106が、仮想IOインターフェイス接続先仮想スイッチ管理テーブル144(図11参照)において、上記仮想マシンを表す仮想マシンIDに対応する接続先仮想スイッチを更新する(ステップS126)。
[0078]
 次に管理サーバ101では、仮想マシン配置優先度変更部105が、仮想マシン再配置後、仮想マシン間通信情報管理テーブル146(図13参照)において、送信元仮想マシンIDと送信先仮想マシンIDのペアに対応する現在配置の値を、実際に配置された仮想マシンの配置優先度で更新し(ステップS127)、処理を終了する。
[0079]
 以上のように複数の仮想マシンのうちの一部の仮想マシンを再配置すると、通信量のみならず、これら複数の仮想マシンが稼働する物理マシンの物理構成要素(例えばCPU、メモリ、PCI)を考慮して当該一部の仮想マシンの再配置が実施されるようになるため、再配置後においても当該複数の仮想マシン間では、物理マシンの物理構成要素を加味した上で、当初想定した通りの通信性能を確保することができる。
[0080]
 (3)その他の実施形態
 上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。また、上記実施形態における各処理ブロックを含むプログラムは、例えばコンピュータが読み取り可能な非一時的記憶媒体に格納されている形態であっても良い。

産業上の利用可能性

[0081]
 本発明は、物理マシン上で複数の仮想マシンが稼働する際における仮想マシンの管理装置及び管理方法に広く適用することができる。

符号の説明

[0082]
 101……管理サーバ、111……記憶部、121A~121N……物理マシン、122A~122N……仮想マシン。

請求の範囲

[請求項1]
 物理マシン上で稼働されている複数の仮想マシンの配置を管理する仮想マシンの管理装置であって、
 前記複数の仮想マシン間における通信容量を管理する通信情報管理部と、
 前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理部と、
 前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定部と、
 を備えることを特徴とする仮想マシンの管理装置。
[請求項2]
 前記物理構成要素管理部は、
 前記物理マシンの物理構成要素に応じた通信条件を含む通信条件情報を管理し、
 前記通信情報管理部は、
 前記複数の仮想マシン間において配置に応じて見込みうる通信容量の程度を示す配置優先度を管理する一方、異なる時間に計測された前記複数の仮想マシン間の通信容量の増減に応じて前記配置優先度を更新し、
 前記配置先決定部は、
 前記通信条件情報及び前記配置優先度に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先候補を複数蓄積し、前記複数の配置索候補から1つの配置先候補を決定する
 ことを特徴とする請求項1に記載の仮想マシンの管理装置。
[請求項3]
 前記通信情報管理部は、
 前記複数の仮想マシン間における通信容量とともに、前記再配置対象の仮想マシンの現在配置を表す指標値を管理しており、
 前記配置先決定部は、
 前記再配置対象の仮想マシンの仮想構成要素の性能が前記物理マシンの物理構成要素の性能の範囲内である場合、前記再配置対象の仮想マシンの再配置を実施し、前記通信情報管理部によって管理されている前記再配置対象の仮想マシンの現在配置を表す指標値を更新することを特徴とする請求項2に記載の仮想マシンの管理装置。
[請求項4]
 前記複数の仮想マシンの各仮想構成要素を管理する仮想構成要素管理部を備え、
 前記配置先決定部は、
 前記再配置対象の仮想マシンの再配置を実施すると、前記仮想構成要素管理部において管理されている前記複数の仮想マシンの各仮想構成要素を更新することを特徴とする請求項3に記載の仮想マシンの管理装置。
[請求項5]
 前記物理構成要素は、少なくとも、
 前記物理マシンの中央演算処理部と、
 前記中央演算処理部が作業領域として使用するメモリと、
 前記中央演算処理部と外部との間におけるインターフェイスと、
 を含むことを特徴とする請求項1に記載の仮想マシンの管理装置。
[請求項6]
 前記複数の仮想マシンは、
 前記物理構成要素を含む複数のノードを有する1つの前記物理マシン上で稼働していることを特徴とする請求項5に記載の仮想マシンの管理装置。
[請求項7]
 前記物理マシンは複数存在しており、
 前記複数の仮想マシンは、前記物理構成要素を各々備える前記複数の物理マシン上で稼働していることを特徴とする請求項5に記載の仮想マシンの管理装置。
[請求項8]
 物理マシン上で稼働されている複数の仮想マシンの配置を管理する管理装置によって実行される仮想マシンの管理方法であって、
 前記管理装置が、前記複数の仮想マシン間における通信容量を管理する通信情報管理ステップと、
 前記管理装置が、前記複数の仮想マシン間における前記物理マシンの物理構成要素を管理する物理構成要素管理ステップと、
 前記管理装置が、前記通信容量及び前記物理構成要素に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先を決定する配置先決定ステップと、
 を有することを特徴とする仮想マシンの管理方法。
[請求項9]
 前記物理構成要素管理ステップでは、
 前記管理装置が、前記物理マシンの物理構成要素に応じた通信条件を含む通信条件情報を管理し、
 前記通信情報管理ステップでは、
 前記管理装置が、前記複数の仮想マシン間において配置に応じて見込みうる通信容量の程度を示す配置優先度を管理する一方、異なる時間に計測された前記複数の仮想マシン間の通信容量の増減に応じて前記配置優先度を更新し、
 前記配置先決定ステップでは、
 前記管理装置が、前記通信条件情報及び前記配置優先度に応じて、前記複数の仮想マシンのうち再配置対象の仮想マシンの配置先候補を複数蓄積し、前記複数の配置索候補から1つの配置先候補を決定する
 ことを特徴とする請求項8に記載の仮想マシンの管理方法。
[請求項10]
 前記通信情報管理ステップでは、
 前記管理装置が、前記複数の仮想マシン間における通信容量とともに、前記再配置対象の仮想マシンの現在配置を表す指標値を管理しており、
 前記配置先決定ステップでは、
 前記管理装置が、前記再配置対象の仮想マシンの仮想構成要素の性能が前記物理マシンの物理構成要素の性能の範囲内である場合、前記再配置対象の仮想マシンの再配置を実施し、前記通信情報管理ステップにおいて管理されている前記再配置対象の仮想マシンの現在配置を表す指標値を更新することを特徴とする請求項9に記載の仮想マシンの管理方法。
[請求項11]
 前記配置先決定ステップでは、
 前記管理装置が、前記再配置対象の仮想マシンの再配置を実施すると、前記複数の仮想マシンの各仮想構成要素を管理する仮想構成要素管理部における前記複数の仮想マシンの各仮想構成要素を更新することを特徴とする請求項10に記載の仮想マシンの管理方法。
[請求項12]
 前記物理構成要素は、少なくとも、
 前記物理マシンの中央演算処理部と、
 前記中央演算処理部が作業領域として使用するメモリと、
 前記中央演算処理部と外部との間におけるインターフェイスと、
 を含むことを特徴とする請求項8に記載の仮想マシンの管理方法。
[請求項13]
 前記複数の仮想マシンは、
 前記物理構成要素を含む複数のノードを有する1つの前記物理マシン上で稼働していることを特徴とする請求項12に記載の仮想マシンの管理方法。
[請求項14]
 前記物理マシンは複数存在しており、
 前記複数の仮想マシンは、前記物理構成要素を各々備える前記複数の物理マシン上で稼働していることを特徴とする請求項12に記載の仮想マシンの管理方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]

[ 図 15]

[ 図 16]

[ 図 17]

[ 図 18]

[ 図 19]

[ 図 20]