以下,本実施の形態について,図を用いて説明する。
VM移動において,VMの移動先となる物理マシンを選択する場合に,VMシステム内の各物理マシンのリソース状況に基づいて,VMの移動先となる物理マシンを選択する方法が考えられる。
例えば,VMの移動先物理マシンを決定するために用いる,各物理マシンのリソース状況を示す情報として,物理マシンのCPU(Central Processing Unit )負荷の情報や,物理マシンのメモリ負荷の情報,物理マシンのI/O(Input/Output)負荷の情報などを用いることができる。
物理マシンのCPU負荷としては,例えばCPU使用率などが用いられる。物理マシンのメモリ負荷としては,例えばメモリ使用量や残量などが用いられる。物理マシンのI/O負荷としては,I/O使用量や残量などが用いられる。
前述のI/O使用量は,物理マシンのネットワーク通信量やディスクへのリード/ライト量などの,物理マシンとI/Oとの間のデータ転送量を示す。また,I/O使用量に対するI/O残量は,データ転送量のキャパシティからI/O使用量を差し引いたものである。
各物理マシンが備えるVM管理機構は,常時,自物理マシンのリソース状況をモニタリングしている。VM管理機構は,ハイパーバイザや仮想マシンモニタなどとも呼ばれ,物理マシン上で動作するVMを管理する。各物理マシン上のVM管理機構は,互いにデータを交換して,VMシステム全体でリソース状況の情報を共有する。また,VMシステム全体を管理するVM管理装置を用意し,そのVM管理装置が各物理マシン上のVM管理機構からリソース状況の情報を取得して,全物理マシンのリソース状況を一括管理する場合もある。
各物理マシンのリソース状況に基づいてVMの移動先物理マシンを決定する方法では,移動先の候補となる物理マシンごとにそのリソース状況を評価し,最も評価が高い物理マシン,すなわち最も負荷が低いと考えられる物理マシンを,VMの移動先物理マシンとして決定する。各物理マシンのリソース状況に基づいてVMの移動先物理マシンを決定することにより,できるだけ負荷が分散するように,VMの再配置を行うことができる。
しかし,各物理マシンのリソース状況だけを評価してVMの移動先物理マシンを決定する際,物理マシンとスイッチがVMシステム内のネットワーク上でどのように接続されているかなどは考慮されない。そのため,VM移動時のネットワークにおける経路の再設定コストが高くつく可能性がある。
図1は,VMの移動先による経路変更を説明する図である。
図1に示すVMシステムは,複数の物理サーバ201〜216が,複数のスイッチ301〜328によって接続された構成となっている。物理サーバ201〜216は,VMが動作可能な物理マシンである。なお,図1に示す物理サーバ201〜216において,括弧内の文字は,その物理サーバのサーバ名を示す。スイッチ301〜328は,回線やパケットの交換機能を持った通信装置である。
なお,図1では記載が省略されているが,各物理サーバ201〜216にはVM制御機構が実装されており,各物理サーバ201〜216上では複数のVMが動作している。各物理サーバ201〜216のVM制御機構には,VMの移動を制御するVM移動制御機能が実装されている。
図1に示すVMシステムのネットワークは,InfiniBand(IB)のネットワークである。InfiniBandは,InfiniBand Trade Associationが規格化したネットワークであり,高速,高信頼性が特徴である。InfiniBandは,主に,サーバ間インタコネクトとして使用される。なお,InfiniBandは,InfiniBand Trade Associationの登録商標である。以下,InfiniBandを,IBとも記載する。
InfiniBandでは,宛先ごとにLID(Local Identifier)が与えられている。LIDは,IBネットワークにおけるアドレスの一種であり,同一Subnet内のHCA(Host Channel Adaptor)やスイッチ301〜328を,一意に識別する16bitの識別子である。LIDは,IPアドレスやMACアドレスなどに相当する。なお,Subnetは,IBネットワークにおけるスイッチ301〜328のみで転送可能なネットワークを示す。Subnet間の通信を行うためには,ルータが必要となる。また,HCAは,Ethernet(登録商標)におけるNIC(Network Interface Card)に相当する装置である。
図1に示すIBのVMシステムでは,物理サーバ201〜216上の各VMは,それぞれ仮想化されたHCAを持つ。また,仮想化されたHCAには,それぞれLIDが割り当てられている。VMは,VM移動時に,割り当てられたLIDを保持したまま,仮想化されたHCAと共に移動する。
各スイッチ301〜328は,LIDごとにどのポートにパケットを転送するかの情報であるFDB(Forwarding Data Base)を持つ。各スイッチ301〜328は,自らが有するFDBに従って,行き先LIDに対応するポートへのパケット転送を行う。FDBは,スイッチ301〜328において,宛先アドレスに対する出力ポートを記述したテーブルである。IBでは,各スイッチ301〜328がFDBを持ち,FDBに基づいてルーティングを行っている。
SM(Subnet Manager)400は,Subnet内のネットワークを管理するモジュールである。SM400は,HCAやスイッチ301〜328に対するLIDの割り当てや,各スイッチ301〜328が持つFDBの算出および配布を行う。SM400は,Subnet内のルーティング設定,すなわち各スイッチ301〜328が有するFDBの設定を行う。SM400は,固定された物理サーバまたはスイッチに備えられる。図1に示すVMシステムでは,物理サーバ216にSM400が備えられている。
VMごとにLIDが割り当てられている場合,VMはLIDと共に移動するので,各スイッチ301〜328が持つFDBの更新が必要となる。SM400は,VM移動時に,そのVMの移動に応じた経路の再設定を行う。すなわち,SM400は,VM移動時に,そのVMの移動に応じて,必要な各スイッチが持つFDBの書き換えを行う。
図1に示すVMシステムにおいて,物理サーバ208上のVM101を,他の物理サーバに移動する例について,説明する。
InfiniBandでは,各スイッチ301〜328は,宛先のLIDに対する出力ポートの情報であるFDBを持ち,このFDBを用いて該当LIDに対してパケットを配送する。例えば,図1に示すVMシステムにおいて,各スイッチ301〜328が持つFDBのVM101に向かう経路の設定は,以下のように設定されている。
・スイッチ324:物理サーバ208に向かうポート
・スイッチ312,316:スイッチ324に向かうポート
・スイッチ301,302:スイッチ312に向かうポート
・スイッチ303,304:スイッチ316に向かうポート
・その他のスイッチ:自分より上段のスイッチのいずれかに向かうポート(VMシステムの実装に依存する)
VM移動にともなって,宛先の物理的な位置が移動する場合には,各スイッチ301〜328のFDBの更新により,経路の更新が行われる。以下では,VM移動にともなうFDB等の経路情報の設定コストなど,VM移動時のネットワークの経路更新に必要な設定コストを,再設定コストと呼ぶ。現在のInfiniBandの実装では,再設定コストの大半は,スイッチ上でのFDB更新処理で占められている。したがって,本実施の形態では,再設定が必要となるスイッチの数を,再設定コストとする。
例えば,VM101が物理サーバ207に移動する場合には,スイッチ324が持つFDBにおいて,宛先がVM101であるパケットの出力ポートが物理サーバ207に向かうポートに変更されればよい。他のスイッチについては,更新が不要である。この場合には,FDBを更新するスイッチの数である1が,再設定コストとなる。
また,VM101が物理サーバ206に移動する場合には,以下のスイッチが持つFDBの変更が必要である。
・スイッチ324:自分より上段のスイッチのいずれかに向かうポート
・スイッチ323:物理サーバ206に向かうポート
・スイッチ312,316:スイッチ323に向かうポート
この場合には,FDBを更新するスイッチの数である4が,再設定コストとなる。
また,VM101が物理サーバ209に移動する場合は,以下のスイッチが持つFDBの変更が必要である。
・スイッチ324:自分より上段のスイッチのいずれかに向かうポート
・スイッチ312,316:自分より上段のスイッチのいずれかに向かうポート
・スイッチ325:物理サーバ209に向かうポート
・スイッチ313,317:スイッチ325に向かうポート
・スイッチ301,302:スイッチ313に向かうポート
・スイッチ303,304:スイッチ317に向かうポート
この場合には,FDBを更新するスイッチの数である10が,再設定コストとなる。
このように,VM101の移動を行った場合には,VM101の移動先となる物理サーバに応じて,それぞれスイッチが持つFDBを再設定するための処理コストが掛かる。
従来の各物理マシンのリソース状況に基づいてVMの移動先物理マシンを決定する方法では,再設定コストを考慮せずに,各物理サーバ201〜216のリソース状況のみで,VMの移動先物理サーバを決定する。そのため,例えば,物理サーバ209のリソース負荷が最も小さいと評価された場合に,VM101の移動先物理サーバとして物理サーバ209が選択される。
しかし,VM101を物理サーバ208から物理サーバ209に移動する場合には,そのVM移動に合わせて,上記のように10個のスイッチが持つFDBを更新する必要がある。すなわち,VM101を物理サーバ208から物理サーバ209に移動する場合には,再設定コストが高くなってしまう。これに対して,VM101を物理サーバ208から物理サーバ207に移動する場合には,上記のように1個のスイッチが持つFDBを更新するだけでよい。
このように,VMの移動先となる物理サーバによっては,ネットワークの再設定コスト,すなわちスイッチの経路変更コストが高くなる可能性がある。
VMシステムの規模が小さければ,再設定コストが極端に高くなるようなことはない。しかし,VMシステムの規模が大きい場合には,多数のスイッチのFDBの書き換えが必要となる場合もある。1台のスイッチのFDBの書き換えには,1ms〜10ms程度の時間が必要となるため,できればFDBの設定変更が必要となるスイッチの台数が少なくなるようにしたい。例えば,1000台もの物理サーバ上で数千のVMが動作する規模のVMシステムも存在する。このような規模のVMシステムでは,VMの移動先物理サーバの選択結果によっては,再設定コストが非常に高くなってしまう可能性がある。
なお,このような問題は,IBネットワークに限らず,スイッチごとに経路情報を持ち,VMの移動にともないその経路情報を更新する必要があり,その更新コストが高い場合には,常に当てはまる問題である。
図2は,VMの移動先によるネットワーク負荷変化を説明する図である。
図2に示すVMシステムは,複数の物理サーバ221〜228が,スイッチ331〜344によって接続された構成となっている。物理サーバ221〜228は,VMが動作可能な物理マシンである。なお,図2に示す物理サーバ221〜228において,括弧内の文字は,その物理サーバのサーバ名を示す。
なお,図2では記載が省略されているが,各物理サーバ221〜228にはVM制御機構が実装されており,各物理サーバ221〜228上では複数のVMが動作している。各物理サーバ221〜228のVM制御機構には,VMの移動を制御するVM移動制御機能が実装されている。
本実施の形態では,物理サーバ221〜228上の各VMは,それぞれ仮想化されたNICを持つ。また,仮想化されたNICには,それぞれMACアドレスやIPアドレスが割り当てられている。VMは,VM移動時に,割り当てられたMACアドレスやIPアドレスを保持したまま,仮想化されたNICと共に移動する。
スイッチ331〜344は,回線やパケットの交換機能を持った通信装置である。スイッチ331,332は,スイッチ同士を接続するためのSpineスイッチである。スイッチ341〜344は,物理サーバと接続するためのLeafスイッチである。
図2に示すVMシステムのネットワークは,VLAN(Virtual Local Area Network)ルーティングネットワークである。図2に示す事例は,スイッチでタグ付けを行うVLANルーティング法(参考文献2参照)の事例である。
〔参考文献2〕
大塚,鯉渕,工藤,天野,“スイッチでタグ付けを行うVLANルーティング法”,情報処理学会論文誌コンピューティングシステム(ACS15 ),pp.46-58,2006
図2に示すVMシステムでは,2つのVLANが設定されている。図2において,実線は,ネットワークAのVLANに属するリンクを示す。また,破線は,ネットワークBのVLANに属するリンクを示す。
VLAN管理部500は,VLANの設定やVLANの管理を行う。図2に示すVMシステムでは,VLAN管理部500は,物理サーバ228上で実現されているが,VLAN管理部500が,各物理サーバ221〜228とは別のコンピュータで実現されてもよい。
図2に示すVMシステムでは,スイッチ341〜344に接続された,左側の物理サーバ221,223,225,227から到着したパケットは,スイッチ331に転送される。すなわち,スイッチ341〜344の左側は,ネットワークAのVLANに所属するように,VLANの設定がなされている。
また,スイッチ341〜344に接続された,右側の物理サーバ222,224,226,228から到着したパケットは,スイッチ332に転送される。すなわち,スイッチ341〜344の右側は,ネットワークBのVLANに所属するように,VLANの設定がなされている。
このように,図2に示すVMシステムでは,スイッチに接続された物理的なポート番号によるソースルーティングが行われている。
図2に示すVMシステムにおいて,物理サーバ223上のVM102を,他の物理サーバに移動する例について,説明する。
VM移動前には,物理サーバ223のVM102は,スイッチ331を経由して,通信を行っている。
従来の各物理マシンのリソース状況に基づいてVMの移動先物理マシンを決定する方法では,ネットワーク全体としての通信負荷のバランスを考慮せずに,各物理サーバ221〜228のリソース状況のみで,移動先を決定する。そのため,例えば,物理サーバ224のリソース負荷が最も小さいと評価された場合に,VM102の移動先として物理サーバ224が選択される。VM移動後には,VM102は,スイッチ332を経由して,通信を行うようになる。
しかし,VM102を物理サーバ223から物理サーバ224に移動する場合には,そのVM移動によって,ネットワークAとネットワークBとの間の通信負荷のバランスは,変わってしまう。すなわち,VM102の移動によって,スイッチ332を経由するネットワークBは,VM移動前よりも混雑するようになる。
これに対して,VM102を物理サーバ223から物理サーバ221に移動する場合には,VM102は,VM移動前と同様に,スイッチ331を経由して,通信を行うことになる。すなわち,ネットワークAとネットワークBとの間の通信負荷のバランスは,変わらない。
このように,各物理サーバ221〜228のリソース状況のみに基づいてVMの移動先物理サーバを決定した場合には,物理サーバ間での負荷バランスの調整は可能である。しかし,VMの移動先となる物理サーバによっては,VMシステムにおけるネットワーク全体としての負荷バランスが偏る可能性がある。
以上のように,VMシステム内のネットワーク接続状況を考慮せずに,VMの移動先となる物理サーバを決定すると,ネットワークにおける経路の再設定コストが高くなってしまう,ネットワーク全体としての負荷バランスが偏ってしまうなどの問題が発生する可能性がある。
以下では,VMシステム内のネットワーク接続状況を考慮して,VMの移動先となる物理サーバを決定する,本実施の形態によるVM移動制御の技術について説明する。
図3は,本実施の形態によるVM移動制御部の構成例(1)を示す図である。
VM移動制御部10は,VMの移動を制御する装置である。VM移動制御部10は,各物理サーバが備えるVM管理機構(図示省略)や,VMシステム全体を管理するVM管理装置(図示省略)などに備えられる。本実施の形態では,VM移動制御部10は,各物理サーバが備えるVM管理機構に実装されているものとする。
図3に示すVM移動制御部10には,特に,VM移動時にVMの移動先物理サーバの決定を行う機能に関連する構成のみが記載されている。VM移動制御部10は,リソース状況情報取得部11,リソース状況情報記憶部12,ネットワーク状況情報取得部13,ネットワーク状況情報記憶部14,VM移動先決定部15,再設定コスト算出部21,負荷バランス算出部22を備える。VM移動制御部10またはVM移動制御部10が備える各機能部は,コンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現される。
なお,図3に示すVM移動制御部10における各機能部は,必ずしもすべてが各物理サーバ上で実現されている必要はない。例えば,図3に示すVM移動制御部10における再設定コスト算出部21,負荷バランス算出部22は,VM移動制御部10の外部で実現されてもよい。
リソース状況情報取得部11は,各物理サーバからリソース状況を示す情報を取得する。各物理サーバ上のVM制御機構は,常時,自物理サーバのリソース状況を監視している。リソース状況情報取得部11は,例えば,定期的に各物理サーバのリソース状況を示す情報を取得し,取得された情報をリソース状況情報記憶部12に記憶する。リソース状況情報記憶部12は,各物理サーバのリソース状況を示す情報を記憶する,コンピュータがアクセス可能な記憶装置である。
図4は,本実施の形態によるリソース状況データの例を示す図である。
図4に示すリソース状況データは,リソース状況情報記憶部12に記憶された,ある物理サーバについてのリソース状況を示す情報である。図4に示すリソース状況データにおいて,VMIDは,物理サーバ上で動作するVMを一意に識別するための識別情報である。
図4に示すリソース状況データでは,VMIDで示されたVMごとの,CPU使用率[%],メモリ使用量[MB],I/O使用量[MB/s]のデータが記録されている。図4に示すリソース状況データにおいて,合計は,その物理サーバ上で動作するすべてのVMによって消費されるリソース量の合計値である。総量は,その物理サーバの最大リソース量である。残量は,リソースの総量から使用中のリソース量の合計を差し引いて得られる,その物理サーバで現在空いているリソースの量である。
リソース状況情報取得部11は,図4に示すような物理サーバのリソース状況を示す情報を,VMシステムに属する全物理サーバについて収集し,収集された情報をリソース状況情報記憶部12に格納する。
ネットワーク状況情報取得部13は,ネットワーク状況に関する情報を取得する。取得するネットワーク状況に関する情報としては,ネットワークの経路変更のための再設定コストの情報や,ネットワーク全体としての負荷の偏りを示す負荷バランスの情報などがある。ネットワーク状況情報取得部13は,再設定コスト算出部21に対して,VMの移動先候補となるすべての物理サーバについて,VM移動時のネットワークの経路更新のための再設定コストを算出するように依頼する。また,ネットワーク状況情報取得部13は,負荷バランス算出部22に対して,VMの移動先候補となるすべての物理サーバについて,VM移動後のネットワーク全体としての負荷バランスの偏りを算出するように依頼する。
ネットワーク状況情報取得部13は,取得されたネットワーク状況に関する情報をネットワーク状況情報記憶部14に記憶する。ネットワーク状況情報記憶部14は,物理サーバごとの,再設定コストの情報や負荷バランスの情報などのネットワーク状況に関する情報を記憶する,コンピュータがアクセス可能な記憶装置である。
再設定コスト算出部21は,VMの移動先候補となる物理サーバごとに,VMの移動時に必要となる,VMシステムのネットワークにおける経路の再設定コストを算出する。再設定コスト算出部21は,算出された再設定コストの情報を,ネットワーク状況情報取得部13に送る。
再設定コスト算出部21は,図1に示すIBのVMシステムの例では,例えば,ネットワークの再設定処理はSM400が実施し,再設定コストはSM400の実装に依存することを考慮すると,SM400に実装されることが好ましい。再設定コスト算出部21が,物理サーバ上のVM管理機構に実装されてもよい。このとき,再設定コスト算出部21は,例えばSM400等から,再設定コストの設定に必要なネットワーク上のスイッチ構成の情報などを取得する。再設定コスト算出部21については,VMシステムのネットワーク管理の手法に依存するため,そのネットワークに合わせた個別の実装が行われる。
図5は,本実施の形態による再設定コスト算出の例を示す図である。
ここでは,図1に示すIBのVMシステムにおける,VMの移動先候補となる物理サーバごとの再設定コスト算出の例を説明する。
VMシステムのネットワークにおける経路の再設定コストは,VM移動によってFDBの設定変更が必要となるスイッチの数に比例する。図5に示す例では,再設定コストとして,VM移動によってFDBの設定変更が必要となるスイッチの数が算出されている。VM移動によってFDBの設定変更が必要となるスイッチは,VMの移動元物理サーバと移動先物理サーバとを結ぶ経路上に存在するスイッチである。なお,VM移動によってFDBの設定変更が必要となるスイッチごとにそれぞれ重み付けを行い,それぞれ得られた値を合算することにより,再設定コストを求めるようにしてもよい。
図5に示す例は,物理サーバ208上のVM101が他の物理サーバに移動する場合に,VM101の移動先候補となる物理サーバごとに,再設定コストが算出された例である。
例えば,物理サーバ207を移動先とした場合には,スイッチ324が持つFDBのみの更新が必要となるため,図5に示すように,再設定コストは1となる。また,例えば,物理サーバ206を移動先とした場合には,スイッチ312,316,323,324が持つFDBの更新が必要となるため,図5に示すように,再設定コストは4となる。また,例えば,物理サーバ209を移動先とした場合には,スイッチ301,302,303,304,312,313,316,317,324,325が持つFDBの更新が必要となるため,図5に示すように,再設定コストは10となる。
ネットワーク状況情報取得部13は,再設定コスト算出部21により算出された,図5に示す物理サーバごとの再設定コストの情報を取得し,ネットワーク状況情報記憶部14に記憶する。
図6は,本実施の形態による再設定コストデータの例を示す図である。
図6に示す再設定コストデータは,図5に示す物理サーバごとの再設定コストの情報が,ネットワーク状況情報記憶部14に記憶された例である。
図6に示す再設定コストデータのサーバ名は,図5に示す各物理サーバ201〜216のサーバ名である。すなわち,図6に示す再設定コストデータは,図5におけるVMの移動先候補となる物理サーバのサーバ名と,再設定コスト算出部21により算出された再設定コストとの対応を示す情報となっている。
負荷バランス算出部22は,VMの移動先候補となる物理サーバごとに,VMの移動後のVMシステムにおけるネットワーク全体としての負荷バランスを算出する。負荷バランス算出部22は,算出された負荷バランスの情報を,ネットワーク状況情報取得部13に送る。
負荷バランス算出部22は,図2に示すVLANルーティングネットワークのVMシステムの例では,例えば,ネットワークトポロジー情報から算出できるため,VM移動制御部10の実装箇所に実装されることが好ましい。図2に示すVMシステムにおいて,VLAN管理部500は,各VLANのネットワークにおける通信量の負荷の計測や,負荷バランスの算出を行う。図2に示す例では,物理サーバ228に実装されたVLAN管理部500で,負荷バランス算出部22が実現されている。負荷バランス算出部22が,物理サーバとは別のコンピュータで実現されてもよい。負荷バランス算出部22については,VMシステムのネットワーク管理の手法に依存するため,そのネットワークに合わせた個別の実装が行われる。
図7は,本実施の形態による負荷バランス算出の例を示す図である。
ここでは,図2に示す,VLANルーティングネットワークのVMシステムにおける,VMの移動先候補となる物理サーバごとの負荷バランス算出の例を説明する。負荷バランス算出の一例として,ネットワーク全体をVLANにより2つのサブネットに分け,その間の平均負荷の差を負荷バランスの指標として算出する例を挙げる。
図7において,実線は,ネットワークAのVLANに属するリンクを示す。また,破線は,ネットワークBのVLANに属するリンクを示す。リンクを示す実線,破線の横の数字は,そのリンクのネットワーク負荷を表している。
物理サーバ223で動作するVM102が,他の物理サーバに移動するものとする。VM102の移動前の各リンクのネットワーク負荷の平均は,ネットワークA,ネットワークBでそれぞれ0.75と0.99であり,その差は0.24である。
ここで,物理サーバ223で動作するVM102が,物理サーバ222に移動すると仮定して負荷バランスを算出する。なお,移動対象のVM102により発生しているネットワーク負荷は,0.3であるものとする。
VM102の移動によって,スイッチ342と移動元の物理サーバ223との間のリンクの負荷が0.3低減され,0.9から0.6となる。また,物理サーバ223はネットワークAに属するので,スイッチ331とスイッチ342との間のリンクの負荷が0.3低減され,0.8から0.5となる。また,スイッチ341と移動先の物理サーバ222との間のリンクの負荷が0.3増加され,0.8から1.1となる。また,物理サーバ222はネットワークBに属するので,スイッチ332とスイッチ341との間のリンクの負荷が0.3増加され,0.7から1.0となる。
このようなVM移動後のネットワーク状況に基づいてVLANごとの平均負荷を求めると,ネットワークA,ネットワークBでそれぞれ0.68と1.06となり,その差は0.38となる。VM移動前の差0.24と比べて,ネットワークAとネットワークBとの間の平均負荷の差が拡大している。ネットワーク間の平均負荷の差が小さい方が負荷バランスがとれているため,この場合には,負荷バランスが悪化することになる。
負荷バランス算出部22は,このような負荷バランスの算出を,VM102の移動先候補となるすべての物理サーバについて,実行する。
なお,負荷バランスの指標として,ネットワーク全体を分けずに1つとして考えて,各リンクのネットワーク負荷の標準偏差を求め,その値が小さくなる方が負荷バランスが良いとみなす手法なども考えられる。
ネットワーク状況情報取得部13は,負荷バランス算出部22により算出された,物理サーバごとの負荷バランスの情報を取得し,ネットワーク状況情報記憶部14に記憶する。
図8は,本実施の形態による負荷バランスデータの例を示す図である。
図8に示す負荷バランスデータは,図7に示すVMシステムのネットワーク状況下で物理サーバごとに算出された負荷バランスの情報が,ネットワーク状況情報記憶部14に記憶された例である。
図8に示す負荷バランスデータのサーバ名は,図7に示す各物理サーバ221〜228のサーバ名である。すなわち,図8に示す負荷バランスデータは,図7におけるVMの移動先候補となる物理サーバのサーバ名と,負荷バランス算出部22により算出された,ネットワークAの平均負荷,ネットワークBの平均負荷,平均負荷の差との対応を示す情報となっている。図8に示す負荷バランスデータにおいて,平均負荷の差が,負荷バランス算出部22により算出された負荷バランスである。
図3において,VM移動先決定部15は,リソース状況情報記憶部12に記憶されたリソース状況情報と,ネットワーク状況情報記憶部14に記憶されたネットワーク状況情報とに基づいて,VMの移動先物理サーバを決定する。より具体的には,VM移動先決定部15は,VMの移動先候補となる各物理サーバについて,リソース状況情報とネットワーク状況情報とを用いた評価を行い,最も高い評価となった物理サーバをVMの移動先物理サーバとして決定する。
ここでは,CPU負荷,メモリ負荷,I/O負荷,再設定コスト,負荷バランスの各パラメータに対して重みを付けて合算した値を評価値とし,最も評価値が高いものを移動先物理サーバとして決定する例を,説明する。
VM移動先決定部15は,VMの移動先候補となる各物理サーバについて,各パラメータを次の式(1)に代入し,評価値を求める。
評価値=fc (xc )+fm (xm )+fi (xi )
+fs (xs )+fb (xb ) ・・・式(1)
ここでは,式(1)において,パラメータxc ,xm ,xi ,xs ,xb には,それぞれCPU使用率,メモリ残量,I/O残量,再設定コスト,負荷バランスの各値が代入されるものとする。CPU使用率,メモリ残量,I/O残量の各値は,リソース状況情報記憶部12に記憶されたリソース状況情報から得られる。再設定コスト,負荷バランスの各値は,それぞれネットワーク状況情報記憶部14に記憶された再設定コストの情報,負荷バランスの情報から得られる。
f(x)は,各パラメータを評価するための関数である。各パラメータを代入する関数f(x)には,様々なバリエーションがある。以下,関数f(x)の例を示す。
式(2)〜式(7)において,a,bは係数である。また,αは実数である。各パラメータごとに,どの式を用いるかは,任意である。例えば,試験的に各式に対してパラメータを代入して,係数を変更しながら試行錯誤を行い,適切と思われる式を見つけ出す。
メモリ残量,I/O残量については,パラメータの値が大きいほど評価が高くなり,パラメータの値が小さいほど評価が低くなるように,関数fm (xm ),fi (xi )を決定する。CPU使用率,再設定コストについては,パラメータの値が大きいほど評価が低くなり,パラメータの値が小さいほど評価が高くなるように,関数fc (xc ),fs (xs )を決定する。負荷バランスについては,例えば負荷バランスがネットワーク間の平均負荷の差やネットワーク負荷の標準偏差であれば,パラメータの値が大きいほど評価が低くなり,パラメータの値が小さいほど評価が高くなるように,関数fb (xb )を決定する。
なお,各パラメータごとの所定の閾値による絞込みによって,VMの移動先候補となる物理サーバの絞込みを行うようにしてもよい。例えば,
(fc (xc )>C)∧(fm (xm )>M)∧(fi (xi )>I)
∧(fs (xs )>S)∧(fb (xb )>B)
を満たす物理サーバのみを,VMの移動先候補とする。C,M,I,S,Bは,それぞれ所定の閾値である。
上記の式(1)の例では,例えば,メモリ残量の評価がかなり低い場合でも,他の4つのパラメータの評価が高ければ,最高の評価値が得られるといったケースが発生する可能性がある。このようなケースでは,物理サーバのメモリ残量が移動してくるVMの動作に耐えうるものでなくても,その物理サーバがVMの移動先として選択されてしまう。閾値を用いた絞込みにより,極端に値が悪いパラメータを持つ物理サーバを,VMの移動先候補から除外することができる。
なお,パラメータごとの閾値を用いたVMの移動先候補となる物理サーバの絞込みで,VMの移動先候補が0となるような場合には,例えば,オペレータにその旨を通知し,閾値を緩和させるなどすればよい。
このように,本実施の形態のVM移動制御部10によって,VMシステムのネットワーク状況が考慮された,VMの移動先物理サーバの決定が可能となる。より具体的には,VM移動時において経路の再設定コストがより少ない物理サーバが,VMの移動先物理サーバとして選択されやすくなる。また,移動後のネットワーク全体の負荷バランスの偏りがより少ない物理サーバが,VMの移動先物理サーバとして選択されやすくなる。また,VM移動時において経路の再設定コストがより少なく,移動後のネットワーク全体の負荷バランスの偏りがより少ない物理サーバが,VMの移動先物理サーバとして選択されやすくなる。
図9は,本実施の形態のVM移動制御部によるVM移動先決定処理フローチャートである。
VM移動制御部10において,VM移動が発生すると,ネットワーク状況情報取得部13は,ネットワーク状況の問い合わせを行う(ステップS10)。より具体的には,ネットワーク状況情報取得部13は,VMシステムのネットワークにおける経路の再設定コストが必要な場合には,再設定コスト算出部21に対して,VMの移動先候補となる物理サーバごとの再設定コストの算出を依頼する。また,ネットワーク状況情報取得部13は,VMシステムにおけるネットワーク全体の負荷バランスが必要な場合には,負荷バランス算出部22に対して,VMの移動先候補となる物理サーバごとの負荷バランスの算出を依頼する。
ネットワーク状況情報取得部13は,ネットワーク状況情報を取得する(ステップS11)。より具体的には,ネットワーク状況情報取得部13は,再設定コスト算出部21への依頼に対する応答として,VMの移動先候補となる物理サーバごとに算出された再設定コストの情報を取得する。また,ネットワーク状況情報取得部13は,負荷バランス算出部22への依頼に対する応答として,VMの移動先候補となる物理サーバごとに算出された負荷バランスの情報を取得する。取得された再設定コストの情報や負荷バランスの情報などのネットワーク状況情報は,ネットワーク状況情報記憶部14に記憶される。
VM移動先決定部15は,VMの移動先候補となる物理サーバから,1つを選択する(ステップS12)。
VM移動先決定部15は,移動先候補の絞込み処理を行う(ステップS13)。移動先候補の絞込み処理については,後述する。VM移動先決定部15は,現在の処理対象の物理サーバが,移動先候補の絞込み処理の結果,移動先候補とされたかを判定する(ステップS14)。
移動先候補とされなかった場合(ステップS14のNO),すなわち選外と判定された場合には,VM移動先決定部15は,現在の処理対象の物理サーバがVMの移動先候補から除外されたものとして,評価値の算出を行わない。
移動先候補とされた場合には(ステップS14のYES),VM移動先決定部15は,現在の処理対象の物理サーバをVMの移動先候補として,評価値の算出を行う(ステップS15)。VM移動先決定部15は,リソース状況情報記憶部12に記憶されたリソース状況情報と,ネットワーク状況情報記憶部14に記憶されたネットワーク状況情報とを用いて,例えば上記の式(1)により,評価値を算出する。算出された評価値は,VM移動先決定部15が保持しておく。
VM移動先決定部15は,VMの移動先候補となるすべての物理サーバについて,処理が終了したかを判定する(ステップS16)。
まだすべての移動先候補の物理サーバについて処理が終了していなければ(ステップS16のNO),VM移動先決定部15は,ステップS12に戻り,次の物理サーバについての処理を行う。
すべての移動先候補の物理サーバについて処理が終了していれば(ステップS16のYES),VM移動先決定部15は,評価値が最も高い物理サーバを,VMの移動先物理サーバに決定する(ステップS17)。
図10は,本実施の形態のVM移動先決定部による移動先候補の絞込み処理フローチャートである。
ここでは,VM移動先決定部15は,処理対象の物理サーバについて,CPU使用率の値xc ,メモリ残量の値xm ,I/O残量の値xi ,再設定コストの値xs ,負荷バランスの値xb を,それぞれの評価関数f(x)に代入する。VM移動先決定部15は,それぞれの評価関数f(x)により得れた値が,それぞれ閾値条件を満たすか否かの判定により,処理対象の物理サーバがVMの移動先候補として十分であるかの判定を行う。
処理対象の物理サーバについてのCPU使用率,メモリ残量,I/O残量の値は,リソース状況情報記憶部12に記憶されたリソース状況情報から得られる。また,処理対象の物理サーバについての再設定コスト,負荷バランスの値は,ネットワーク状況情報記憶部14に記憶されたネットワーク状況情報から得られる。
なお,図10において,C,M,I,S,Bは,それぞれ所定の閾値である。
VM移動先決定部15は,CPU使用率の値xc について,fc (xc )>Cを満たすかを判定する(ステップS20)。
また,VM移動先決定部15は,メモリ残量の値xm について,fm (xm )>Mを満たすかを判定する(ステップS21)。
また,VM移動先決定部15は,I/O残量の値xi について,fi (xi )>Iを満たすかを判定する(ステップS22)。
また,VM移動先決定部15は,再設定コストの値xs について,fs (xs )>Sを満たすかを判定する(ステップS23)。
また,VM移動先決定部15は,負荷バランスの値xb について,fb (xb )>Bを満たすかを判定する(ステップS24)。
ステップS20〜S24の判定で,1つでも条件が満たされないものがあれば(ステップS20〜S24のいずれかでNO),VM移動先決定部15は,処理対象の物理サーバは選外であると判定する(ステップS25)。
ステップS20〜S24の判定で,すべての条件が満たされていれば(ステップS20〜S24のすべてがYES),VM移動先決定部15は,処理対象の物理サーバが移動先候補であると判定する(ステップS26)。
図11は,本実施の形態によるVM移動制御部の構成例(2)を示す図である。
図11に示すVM移動制御部10’は,図3に示すVM移動制御部10に,ネットワーク状況の問い合わせ範囲を限定する機能をさらに加えたものである。
図3に示すVM移動制御部10のネットワーク状況情報取得部13は,VMが移動する可能性があるすべての物理サーバについてのネットワーク状況の問い合わせを,再設定コスト算出部21や負荷バランス算出部22などに対して行う。しかし,すべての物理サーバについて問い合わせを行うと,再設定コスト算出部21や負荷バランス算出部22による再設定コストや負荷バランスの算出時間が長大化する可能性がある。
図11に示すVM移動制御部10’は,このような問題を回避するために,ネットワーク状況情報の取得前に,ネットワーク状況情報の取得対象となる物理サーバの絞込みを行う。
ここでは,2つのネットワーク状況情報の取得対象となる物理サーバを絞り込む手法について,説明する。
1つ目のネットワーク状況情報の取得対象となる物理サーバを絞り込む手法は,取得する再設定コストや負荷バランスの値が同じとなる物理サーバ群をグループ化する手法である。この手法では,VM移動制御部10’は,同じグループに属する物理サーバのうち1つの物理サーバについて,再設定コストの情報や負荷バランスの情報の取得を行う。VM移動制御部10’は,同じグループに属する他の物理サーバについて,取得された1つの物理サーバについての再設定コストの情報や負荷バランスの情報で,補完を行う。補完では,再設定コストの取得対象とならなかった物理サーバの再設定コストが,同一サーバグループに属する再設定コストの取得対象となった物理サーバの再設定コストと同じである,とみなされる。また,補完では,負荷バランスの取得対象とならなかった物理サーバの負荷バランスが,同一サーバグループに属する負荷バランスの取得対象となった物理サーバの負荷バランスと同じである,とみなされる。
このような手法により,VM移動制御部10’は,グループにつき1回のみの問い合わせで,グループに属するすべての物理サーバについての,再設定コストの情報や負荷バランスの情報の取得が可能となる。すなわち,再設定コスト算出部21や負荷バランス算出部22による,再設定コストや負荷バランスの算出時間の短縮が可能となる。
VM移動制御部10’には,どの物理サーバ同士をグループ化するかの定義情報が,あらかじめ設定されている。以下では,グループ化された物理サーバ群を,サーバグループと呼ぶ。
例えば,図1,図5に示すIBのVMシステムの例において,同じスイッチに接続された物理サーバへのVM移動についての再設定コストの値は,同じである。例えば,図5に示すように,VM101の移動の例では,スイッチ323に接続された,物理サーバ205,206のどちらにVM101を移動させても,再設定コストの値は同じ4となる。同じスイッチ323に接続された物理サーバ205,206をサーバグループとして定義しておけば,1台の再設定コストの問い合わせで,2台分の物理サーバについての再設定コストの情報が取得可能である。
また,例えば図2,図7に示すVLANネットワークルーティングのVMシステムの例において,同じVLANネットワークに属する物理サーバへのVM移動についての負荷バランスの値は,同じである。例えば,図7,図8に示すように,VM102の移動の例では,ネットワークBに属するどの物理サーバ222,224,226,228にVM102を移動しても,ネットワークA,B間の平均負荷の差,すなわち負荷バランスの値は,同じ0.38となる。同じネットワークBに属する物理サーバ222,224,226,228をサーバグループとして定義しておけば,1台の負荷バランスの問い合わせで,4台分の物理サーバについての負荷バランスの情報が取得可能である。
2つ目のネットワーク状況情報の取得対象となる物理サーバを絞り込む手法は,リソースの残量が足りないと判断される物理サーバを,VMの移動先候補から除外してしまう方法である。この手法では,VM移動制御部10’は,各リソースの使用量がそれぞれ所定の閾値以上である物理サーバ,または各リソースの残量がそれぞれ所定の閾値以下である物理サーバを,VMの移動先候補から除外する。VM移動制御部10’は,VMの移動先候補から除外された物理サーバについては,再設定コストの情報や負荷バランスの情報の取得を行わない。
このような手法により,VM移動制御部10’は,リソースの負荷状況が良好な物理サーバのみに絞り込んで,再設定コストの情報や負荷バランスの情報の取得を行うことが可能となる。すなわち,再設定コスト算出部21や負荷バランス算出部22による,再設定コストや負荷バランスの算出時間の短縮が可能となる。
図11において,VM移動制御部10’は,リソース状況情報取得部11,リソース状況情報記憶部12,ネットワーク状況情報取得部13’,ネットワーク状況情報記憶部14,VM移動先決定部15,ネットワーク状況取得対象抽出部16,移動先候補情報記憶部17,サーバグループ情報記憶部18,ネットワーク状況取得対象情報記憶部19,再設定コスト算出部21,負荷バランス算出部22を備える。VM移動制御部10’またはVM移動制御部10’が備える各機能部は,コンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現される。
リソース状況情報取得部11,リソース状況情報記憶部12については,図3に示すVM移動制御部10と同様であるので,説明を省略する。
ネットワーク状況取得対象抽出部16は,リソース状況情報記憶部12に記憶されたリソース状況情報に基づいて,VMの移動先候補の物理サーバの絞込みを行う。より具体的には,ネットワーク状況取得対象抽出部16は,VMの移動先候補となる物理サーバごとに,CPU負荷,メモリ負荷,I/O負荷の各リソースの値について,所定の閾値条件を用いた判定を行う。ネットワーク状況取得対象抽出部16は,条件を満たす物理サーバのみをVMの移動先候補として抽出し,抽出された物理サーバのリスト情報を,移動先候補情報記憶部17に記憶する。
移動先候補情報記憶部17は,各物理サーバのリソース状況に基づいて絞り込まれた,VMの移動先候補となる物理サーバの情報を記憶する,コンピュータがアクセス可能な記憶装置である。移動先候補情報記憶部17に記憶されたリスト情報は,VMの移動先として十分なリソースを有しているとされた物理サーバのリスト情報となる。
また,ネットワーク状況取得対象抽出部16は,サーバグループ情報記憶部18に記憶されたサーバグループの定義情報に基づいて,ネットワーク状況情報の取得対象となる物理サーバの絞込みを行う。
サーバグループ情報記憶部18は,再設定コストまたは負荷バランスが同じになる物理サーバをグループ化したサーバグループの定義情報を記憶する,コンピュータがアクセス可能な記憶装置である。
図12は,本実施の形態によるサーバグループデータの例を示す図である。
図12(A)に示すサーバグループデータは,図1に示すIBのVMシステムにおいて,VM移動時の再設定コストが同じになる物理サーバをグループ化した定義情報の例である。図12(A)に示す再設定コストのサーバグループデータでは,同じスイッチに接続された物理サーバが,同じサーバグループとなっている。
図12(B)に示すサーバグループデータは,図2に示すVLANネットワークルーティングのVMシステムにおいて,VM移動後の負荷バランスが同じになる物理サーバをグループ化した定義情報の例である。図12(B)に示す負荷バランスのサーバグループデータでは,同じVLANネットワークに属する物理サーバが,同じサーバグループとなっている。
図12に示すサーバグループデータは,物理サーバのサーバ名と,その物理サーバが属するサーバグループ名との対応情報である。サーバグループ情報記憶部18には,このようなサーバグループデータが記憶されている。
ネットワーク状況取得対象抽出部16は,VMの移動先候補となる物理サーバについて,同じサーバグループに属する物理サーバの重複を回避するように,ネットワーク状況情報の取得対象となる物理サーバを抽出する。ネットワーク状況取得対象抽出部16によるリソース状況情報を用いた絞込みが行われている場合には,VMの移動先候補となる物理サーバは,移動先候補情報記憶部17に記憶されたリスト情報に含まれる物理サーバである。ネットワーク状況取得対象抽出部16は,抽出されたネットワーク状況情報の取得対象となる物理サーバのリスト情報を,ネットワーク状況取得対象情報記憶部19に記憶する。
ネットワーク状況取得対象情報記憶部19は,ネットワーク状況情報の取得対象となる物理サーバの情報を記憶する,コンピュータがアクセス可能な記憶装置である。再設定コストの情報と負荷バランスの情報とをそれぞれ取得する場合には,再設定コストの情報の取得対象となる物理サーバの情報と,負荷バランスの情報の取得対象となる物理サーバの情報とが別々に用意され,ネットワーク状況取得対象情報記憶部19に記憶される。
ネットワーク状況情報取得部13’は,再設定コスト算出部21に対して,ネットワーク状況取得対象情報記憶部19に記憶された,再設定コストの情報の取得対象となる物理サーバについて,再設定コストを算出するように依頼する。また,ネットワーク状況情報取得部13’は,負荷バランス算出部22に対して,ネットワーク状況取得対象情報記憶部19に記憶された,負荷バランスの情報の取得対象となる物理サーバについて,負荷バランスを算出するように依頼する。
再設定コスト算出部21は,再設定コストの情報の取得対象となる物理サーバごとに,VMの移動時に必要となる,VMシステムのネットワークにおける経路の再設定コストを算出する。再設定コスト算出部21は,算出された再設定コストの情報を,ネットワーク状況情報取得部13’に送る。
ネットワーク状況情報取得部13’は,再設定コスト算出部21から,再設定コストの情報の取得対象となる物理サーバごとに算出された再設定コストの情報を取得する。ネットワーク状況情報取得部13’は,重複回避のために取得対象とならなかった物理サーバについて,サーバグループ情報記憶部18を参照し,取得された同じグループに属する物理サーバの再設定コストの情報を用いた補完を行う。補完では,再設定コストの取得対象とならなかった物理サーバの再設定コストが,同一サーバグループに属する再設定コストの取得対象となった物理サーバの再設定コストと同じである,とみなされる。
なお,再設定コストの情報による補完を行う物理サーバを,移動先候補情報記憶部17に記憶されたリスト情報に含まれる物理サーバに限定してもよい。この場合,ネットワーク状況情報取得部13’によって得られる再設定コストの情報は,VMの移動先として十分なリソースを有しているとされた物理サーバについてのみの再設定コストの情報となる。その後のVM移動先決定部15による処理でも,VMの移動先候補となる物理サーバが絞り込まれている分だけ,評価値を算出する物理サーバの数が少なくて済む。
ネットワーク状況情報取得部13’は,再設定コスト算出部21からの取得,およびその後の補完処理により得られた,VMの移動先候補となる物理サーバごとの再設定コストの情報を,ネットワーク状況情報記憶部14に記憶する。
負荷バランス算出部22は,負荷バランスの情報の取得対象となる物理サーバごとに,VM移動後のVMシステムにおけるネットワーク全体としての負荷バランスを算出する。負荷バランス算出部22は,算出された負荷バランスの情報を,ネットワーク状況情報取得部13’に送る。
ネットワーク状況情報取得部13’は,負荷バランス算出部22から,負荷バランスの情報の取得対象となる物理サーバごとに算出された負荷バランスの情報を取得する。ネットワーク状況情報取得部13’は,重複回避のために取得対象とならなかった物理サーバについて,サーバグループ情報記憶部18を参照し,取得された同じグループに属する物理サーバの負荷バランスの情報を用いた補完を行う。補完では,負荷バランスの取得対象とならなかった物理サーバの負荷バランスが,同一サーバグループに属する負荷バランスの取得対象となった物理サーバの負荷バランスと同じであると,みなされる。
なお,負荷バランスの情報による補完を行う物理サーバを,移動先候補情報記憶部17に記憶されたリスト情報に含まれる物理サーバに限定してもよい。この場合,ネットワーク状況情報取得部13’によって得られる負荷バランスの情報は,VMの移動先として十分なリソースを有しているとされた物理サーバについてのみの負荷バランスの情報となる。その後のVM移動先決定部15による処理でも,VMの移動先候補となる物理サーバが絞り込まれている分だけ,評価値を算出する物理サーバの数が少なくて済む。
ネットワーク状況情報取得部13’は,負荷バランス算出部22からの取得,およびその後の補完処理により得られた,VMの移動先候補となる物理サーバごとの負荷バランスの情報を,ネットワーク状況情報記憶部14に記憶する。
ネットワーク状況情報記憶部14,VM移動先決定部15については,図3に示すVM移動制御部10と同様であるので,説明を省略する。
このように,本実施の形態のVM移動制御部10’によって,再設定コストの情報や負荷バランスの情報の取得対象となる物理サーバの数を減らすことができるので,再設定コストや負荷バランスの算出時間を短縮することが可能となる。
図13は,本実施の形態のVM移動制御部によるネットワーク状況取得対象抽出処理フローチャートである。
VM移動制御部10’において,ネットワーク状況取得対象抽出部16は,VMの移動先候補となる物理サーバから,1つを選択する(ステップS30)。
ネットワーク状況取得対象抽出部16は,リソース状況情報記憶部12から,処理対象の物理サーバのCPU使用率の値を取得し,CPU使用率≦TH1 を満たすかを判定する(ステップS31)。TH1 は,CPU使用率についての閾値である。閾値TH1 の値としては,あらかじめ妥当と考えられる値が定められていてもよいし,移動するVMのCPU使用率に基づいて決定されてもよい。
また,ネットワーク状況取得対象抽出部16は,リソース状況情報記憶部12から,処理対象の物理サーバのメモリ残量の値を取得し,メモリ残量≧TH2 を満たすかを判定する(ステップS32)。TH2 は,メモリ残量についての閾値である。閾値TH2 の値としては,あらかじめ妥当と考えられる値が定められていてもよいし,移動するVMのメモリ使用量に基づいて決定されてもよい。
また,ネットワーク状況取得対象抽出部16は,リソース状況情報記憶部12から,処理対象の物理サーバのI/O残量の値を取得し,I/O残量≧TH3 を満たすかを判定する(ステップS33)。TH3 は,I/O残量についての閾値である。閾値TH3 の値としては,あらかじめ妥当と考えられる値が定められていてもよいし,移動するVMのI/O使用量に基づいて決定されてもよい。
ステップS31〜S33の判定で,1つでも条件が満たされないものがあれば(ステップS31〜S33のいずれかでNO),ネットワーク状況取得対象抽出部16は,処理対象の物理サーバは選外であると判定する(ステップS34)。ネットワーク状況取得対象抽出部16は,ステップS39の判定処理に進む。
ステップS31〜S33の判定で,すべての条件が満たされていれば(ステップS31〜S33のすべてがYES),ネットワーク状況取得対象抽出部16は,処理対象の物理サーバが移動先候補であると判定する(ステップS35)。ネットワーク状況取得対象抽出部16は,処理対象の物理サーバを,VMの移動先候補として,移動先候補情報記憶部17に記憶されたリスト情報に登録する。
ネットワーク状況取得対象抽出部16は,サーバグループ情報記憶部18に記憶されたサーバグループの定義情報を参照し,処理対象の物理サーバが属するサーバグループを特定する(ステップS36)。
ネットワーク状況取得対象抽出部16は,処理対象の物理サーバと同一のサーバグループに属する他の物理サーバが,すでにネットワーク状況の取得対象となっているかを判定する(ステップS37)。
同一のサーバグループに属する他の物理サーバがすでにネットワーク状況の取得対象となっている場合には(ステップS37のYES),ネットワーク状況取得対象抽出部16は,ステップS39の判定処理に進む。
同一のサーバグループに属する他の物理サーバがまだネットワーク状況の取得対象となっていなければ(ステップS37のNO),ネットワーク状況取得対象抽出部16は,処理対象の物理サーバを,ネットワーク状況の取得対象に追加する(ステップS38)。このとき,ネットワーク状況取得対象抽出部16は,ネットワーク状況の取得対象に追加された処理対象の物理サーバを,ネットワーク状況取得対象情報記憶部19に記憶されたリスト情報に登録する。
ネットワーク状況取得対象抽出部16は,VMの移動先候補となるすべての物理サーバについて,処理が終了したかを判定する(ステップS39)。
まだすべての移動先候補の物理サーバについて処理が終了していなければ(ステップS39のNO),ネットワーク状況取得対象抽出部16は,ステップS30に戻り,次の物理サーバについての処理を行う。
すべての移動先候補の物理サーバについて処理が終了していれば(ステップS39のYES),ネットワーク状況取得対象抽出部16は,処理を終了する。
図14は,本実施の形態のVM移動制御部による再設定コストを用いたVM移動先決定処理フローチャートである。
図14に示すフローチャートは,図1に示すようなIBのVMシステムにおけるVM移動時の,再設定コストを用いたVM移動先決定処理フローチャートの例である。
VM移動制御部10’において,ネットワーク状況取得対象抽出部16は,リソース状況情報に基づいて,VMの移動先候補となる物理サーバの絞込みを行う(ステップS50)。ここでは,ネットワーク状況取得対象抽出部16は,リソース状況情報記憶部12から,各物理サーバのCPU,メモリ,I/O性能の情報を取得し,所定の閾値との比較判
定を行う。ネットワーク状況取得対象抽出部16は,条件を満たさない不適当な物理サーバをVMの移動先候補から除外し,残された物理サーバをVMの移動先候補とする。ネットワーク状況取得対象抽出部16は,VMの移動先候補となる物理サーバのリスト情報を,移動先候補情報記憶部17に記憶する。
ネットワーク状況取得対象抽出部16は,VMの移動先候補となる物理サーバから,同一サーバグループに属する物理サーバの重複を回避するように,再設定コストの取得対象となる物理サーバを抽出する(ステップS51)。ここでは,ネットワーク状況取得対象抽出部16は,サーバグループ情報記憶部18を参照して,各物理サーバが属するサーバグループを特定する。ネットワーク状況取得対象抽出部16は,移動先候補情報記憶部17に記憶されたVMの移動先候補となる物理サーバについて,サーバグループが重複した物理サーバがある場合に,1つの問い合わせ先となることを目的として,その1つを残して他を除外する。ネットワーク状況取得対象抽出部16は,重複した物理サーバを除外した結果,残された1つの物理サーバを再設定コストの取得対象とする。ネットワーク状況取得対象抽出部16は,再設定コストの取得対象となる物理サーバのリスト情報を,ネットワーク状況取得対象情報記憶部19に記憶する。
図15は,本実施の形態による再設定コストの取得対象となる物理サーバの抽出を説明する図である。
図15に示す例は,図1に示すIBのVMシステムにおいて,VM101の移動を行う際の再設定コストの取得対象となる物理サーバの抽出時の例である。なお,図15では,各物理サーバ201〜216がサーバ名で示されている。
図15(A)には,リソース状況情報に基づいて絞り込まれた,VM101の移動先候補となる物理サーバが示されている。図15(A)において,“○”が付いた物理サーバは,VM101の移動先候補となる物理サーバである。また,図15(A)において,“×”が付いた物理サーバは,VM101の移動先候補の対象外となる物理サーバである。なお,サーバ名“sv8”の物理サーバ208は,VM101の移動元物理サーバである。
ここで,図12(A)のサーバグループデータが示す通りに,サーバグループが定義されているものとする。このとき,図15(A)において,VM101の移動先候補となる物理サーバのうち,サーバグループが同じとなる物理サーバの組合せは,矢印で示された組合せとなる。ネットワーク状況取得対象抽出部16は,図15(A)において,同一サーバグループに属する物理サーバが重複しないように,再設定コストの取得対象となる物理サーバを抽出する。
図15(B)は,図15(A)において,同一サーバグループに属する物理サーバが重複しないように,再設定コストの取得対象となる物理サーバが抽出された結果を示す。図15(B)において,“○”が付いた物理サーバは,再設定コストの取得対象となる物理サーバである。図15(B)において,“△”が付いた物理サーバは,再設定コストの取得対象外となる物理サーバである。図15(B)に示すように,矢印で示されたサーバグループが同じとなる物理サーバの組合せで,再設定コストの取得対象となる物理サーバは重複しない。なお,図15(B)において,“×”が付いている,VM101の移動先候補の対象外となる物理サーバは,再設定コストの取得対象外である。
ネットワーク状況情報取得部13’は,再設定コスト算出部21を有するSM400に対して,再設定コストの取得対象となる物理サーバへのVMの移動時に必要となる再設定コストを問い合わせる(ステップS52)。
ネットワーク状況情報取得部13’は,再設定コスト算出部21を有するSM400から,再設定コストの取得対象となる物理サーバについての再設定コストの情報を取得する(ステップS53)。ネットワーク状況情報取得部13’は,取得された再設定コストの情報を,ネットワーク状況情報記憶部14に記憶する。
ネットワーク状況情報取得部13’は,重複回避のために再設定コストの取得対象とならなかった物理サーバについて,同一サーバグループに属する物理サーバの再設定コストを用いて補完処理を行う(ステップS54)。ここでは,ネットワーク状況情報取得部13’は,移動先候補情報記憶部17と,ネットワーク状況取得対象情報記憶部19とを参照し,VMの移動先候補ではあるものの再設定コストの取得対象とならなかった物理サーバを特定する。ネットワーク状況情報取得部13’は,サーバグループ情報記憶部18を参照し,VMの移動先候補ではあるものの再設定コストの取得対象とならなかった物理サーバと同一サーバグループに属する,再設定コストの取得対象となった物理サーバを特定する。ネットワーク状況情報取得部13’は,VMの移動先候補ではあるものの再設定コストの取得対象とならなかった物理サーバの再設定コストを,同一サーバグループに属する再設定コストの取得対象となった物理サーバの再設定コストとみなして,補完する。
図16は,本実施の形態による同一サーバグループに属する物理サーバの再設定コストの補完を説明する図である。
以下の図16に示す例を用いる説明は,上述の図15に示す例を用いた説明の続きである。
ネットワーク状況情報取得部13’は,再設定コスト算出部21を有するSM400に対して,図15(B)に示す再設定コストの取得対象となる物理サーバについて,再設定コストの問い合わせを行い,再設定コストを取得する。
図16(A)は,図15(B)に示す再設定コストの取得対象となる物理サーバについての,再設定コストの取得結果を示す。図16(A)において,図15(B)に示す再設定コストの取得対象となる物理サーバについては,取得された再設定コストの値が記載されている。なお,図16(A)において,“△”が付いた物理サーバは,再設定コストの取得対象外となる物理サーバである。また,図16(A)において,“×”が付いた物理サーバは,VM101の移動先候補の対象外となる物理サーバである。
ネットワーク状況情報取得部13’は,図16(A)において,再設定コストの取得対象外とされたために再設定コストが取得されなかった物理サーバについて,同一サーバグループに属する物理サーバの再設定コストを用いた補完を行う。すなわち,ネットワーク状況情報取得部13’は,再設定コストが取得されなかった物理サーバの再設定コストとして,同一サーバグループに属する物理サーバの再設定コストが用いられるように,設定を行う。
図16(B)は,図16(A)において,再設定コストが取得されなかった物理サーバについて,同一サーバグループに属する物理サーバの再設定コストを用いた補完の結果を示す。図16(B)に示すように,矢印で示されたサーバグループが同じとなる物理サーバの組合せ間で,再設定コストの取得対象となる物理サーバから再設定コストの取得対象外となる物理サーバに,再設定コストの値がコピーされている。なお,図16(B)において,“×”が付いている,VM101の移動先候補の対象外となる物理サーバは,再設定コストの補完の対象外である。
VM移動先決定部15は,VMの移動先候補となる各物理サーバについて,評価値を算出する(ステップS55)。VM移動先決定部15は,リソース状況情報記憶部12から,VMの移動先候補となる物理サーバのCPU負荷,メモリ負荷,I/O負荷を取得する。VM移動先決定部15は,リソース状況情報記憶部12から,VMの移動先候補となる物理サーバの再設定コストを取得する。VM移動先決定部15は,取得されたCPU負荷,メモリ負荷,I/O負荷,再設定コストの値を所定の式に代入することにより,VMの移動先候補となる物理サーバの評価値を算出する。
VM移動先決定部15は,最も評価が高いVMの移動先候補となる物理サーバを,VMの移動先物理サーバとして決定する(ステップS56)。
図17は,本実施の形態のVM移動制御部による負荷バランスを用いたVM移動先決定処理フローチャートである。
図17に示すフローチャートは,図2に示すようなVLANネットワークルーティングのVMシステムにおけるVM移動時の,負荷バランスを用いたVM移動先決定処理フローチャートの例である。
VM移動制御部10’において,ネットワーク状況取得対象抽出部16は,リソース状況情報に基づいて,VMの移動先候補となる物理サーバの絞込みを行う(ステップS60)。ここでは,ネットワーク状況取得対象抽出部16は,リソース状況情報記憶部12から,各物理サーバのCPU,メモリ,I/O性能の情報を取得し,所定の閾値との比較判
定を行う。ネットワーク状況取得対象抽出部16は,条件を満たさない不適当な物理サーバをVMの移動先候補から除外し,残された物理サーバをVMの移動先候補とする。ネットワーク状況取得対象抽出部16は,VMの移動先候補となる物理サーバのリスト情報を,移動先候補情報記憶部17に記憶する。
ネットワーク状況取得対象抽出部16は,VMの移動先候補となる物理サーバから,同一サーバグループに属する物理サーバの重複を回避するように,負荷バランスの取得対象となる物理サーバを抽出する(ステップS61)。ここでは,ネットワーク状況取得対象抽出部16は,サーバグループ情報記憶部18を参照して,各物理サーバが属するサーバグループを特定する。ネットワーク状況取得対象抽出部16は,移動先候補情報記憶部17に記憶されたVMの移動先候補となる物理サーバについて,サーバグループが重複した物理サーバがある場合に,1つの問い合わせ先となることを目的として,その1つを残して他を除外する。ネットワーク状況取得対象抽出部16は,重複した物理サーバを除外した結果,残された1つの物理サーバを負荷バランスの取得対象とする。ネットワーク状況取得対象抽出部16は,負荷バランスの取得対象となる物理サーバのリスト情報を,ネットワーク状況取得対象情報記憶部19に記憶する。
図18は,本実施の形態による負荷バランスの取得対象となる物理サーバの抽出を説明する図である。
図18に示す例は,図2に示すようなVLANネットワークルーティングのVMシステムにおいて,VM102の移動を行う際の負荷バランスの取得対象となる物理サーバの抽出時の例である。なお,図18では,各物理サーバ221〜228がサーバ名で示されている。
図18(A)には,リソース状況情報に基づいて絞り込まれた,VM102の移動先候補となる物理サーバが示されている。図18(A)において,“○”が付いた物理サーバは,VM102の移動先候補となる物理サーバである。また,図18(A)において,“×”が付いた物理サーバは,VM102の移動先候補の対象外となる物理サーバである。なお,サーバ名“sv23”の物理サーバ223は,VM102の移動元物理サーバである。
ここで,図12(B)のサーバグループデータが示す通りに,サーバグループが定義されているものとする。このとき,図18(A)において,VM102の移動先候補となる物理サーバのうち,サーバグループが同じとなる物理サーバの組合せは,矢印で示された組合せとなる。図18(A)において,実線の矢印で示された物理サーバの組合せは,ネットワークAのVLANに属する物理サーバの組合せであり,破線の矢印で示された物理サーバの組合せは,ネットワークBのVLANに属する物理サーバの組合せである。ネットワーク状況取得対象抽出部16は,図18(A)において,同一サーバグループに属する物理サーバが重複しないように,負荷バランスの取得対象となる物理サーバを抽出する。
図18(B)は,図18(A)において,同一サーバグループに属する物理サーバが重複しないように,負荷バランスの取得対象となる物理サーバが抽出された結果を示す。図18(B)において,“○”が付いた物理サーバは,負荷バランスの取得対象となる物理サーバである。図18(B)において,“△”が付いた物理サーバは,負荷バランスの取得対象外となる物理サーバである。図18(B)に示すように,矢印で示されたサーバグループが同じとなる物理サーバの組合せで,負荷バランスの取得対象となる物理サーバは重複しない。なお,図18(B)において,“×”が付いている,VM102の移動先候補の対象外となる物理サーバは,負荷バランスの取得対象外である。
ネットワーク状況情報取得部13’は,負荷バランス算出部22を有するVLAN管理部500に対して,負荷バランスの取得対象となる物理サーバへのVMの移動後の負荷バランスを問い合わせる(ステップS62)。
ネットワーク状況情報取得部13’は,負荷バランス算出部22を有するVLAN管理部500から,負荷バランスの取得対象となる物理サーバについての負荷バランスの情報を取得する(ステップS63)。ネットワーク状況情報取得部13’は,取得された負荷バランスの情報を,ネットワーク状況情報記憶部14に記憶する。
ネットワーク状況情報取得部13’は,重複回避のために負荷バランスの取得対象とならなかった物理サーバについて,同一サーバグループに属する物理サーバの負荷バランスを用いて補完処理を行う(ステップS64)。ここでは,ネットワーク状況情報取得部13’は,移動先候補情報記憶部17と,ネットワーク状況取得対象情報記憶部19とを参照し,VMの移動先候補ではあるものの負荷バランスの取得対象とならなかった物理サーバを特定する。ネットワーク状況情報取得部13’は,サーバグループ情報記憶部18を参照し,VMの移動先候補ではあるものの負荷バランスの取得対象とならなかった物理サーバと同一サーバグループに属する,負荷バランスの取得対象となった物理サーバを特定する。ネットワーク状況情報取得部13’は,VMの移動先候補ではあるものの負荷バランスの取得対象とならなかった物理サーバの負荷バランスを,同一サーバグループに属する負荷バランスの取得対象となった物理サーバの負荷バランスとみなして,補完する。
図19は,本実施の形態による同一サーバグループに属する物理サーバの負荷バランスの補完を説明する図である。
以下の図19に示す例を用いる説明は,上述の図18に示す例を用いた説明の続きである。
ネットワーク状況情報取得部13’は,負荷バランス算出部22を有するVLAN管理部500に対して,図18(B)に示す負荷バランスの取得対象となる物理サーバについて,負荷バランスの問い合わせを行い,負荷バランスを取得する。
図19(A)は,図18(B)に示す負荷バランスの取得対象となる物理サーバについての,負荷バランスの取得結果を示す。図19(A)において,図18(B)に示す負荷バランスの取得対象となる物理サーバについては,取得された負荷バランスの値が記載されている。なお,図19(A)において,“△”が付いた物理サーバは,負荷バランスの取得対象外となる物理サーバである。また,図19(A)において,“×”が付いた物理サーバは,VM102の移動先候補の対象外となる物理サーバである。
ネットワーク状況情報取得部13’は,図19(A)において,負荷バランスの取得対象外とされたために負荷バランスが取得されなかった物理サーバについて,同一サーバグループに属する物理サーバの負荷バランスを用いた補完を行う。すなわち,ネットワーク状況情報取得部13’は,負荷バランスが取得されなかった物理サーバの負荷バランスとして,同一サーバグループに属する物理サーバの負荷バランスが用いられるように,設定を行う。
図19(B)は,図19(A)において,負荷バランスが取得されなかった物理サーバについて,同一サーバグループに属する物理サーバの負荷バランスを用いた補完の結果を示す。図19(B)に示すように,矢印で示されたサーバグループが同じとなる物理サーバの組合せ間で,負荷バランスの取得対象となる物理サーバから負荷バランスの取得対象外となる物理サーバに,負荷バランスの値がコピーされている。なお,図19(B)において,“×”が付いている,VM102の移動先候補の対象外となる物理サーバは,負荷バランスの補完の対象外である。
VM移動先決定部15は,VMの移動先候補となる各物理サーバについて,評価値を算出する(ステップS65)。VM移動先決定部15は,リソース状況情報記憶部12から,VMの移動先候補となる物理サーバのCPU負荷,メモリ負荷,I/O負荷を取得する。VM移動先決定部15は,リソース状況情報記憶部12から,VMの移動先候補となる物理サーバの負荷バランスを取得する。VM移動先決定部15は,取得されたCPU負荷,メモリ負荷,I/O負荷,負荷バランスの値を所定の式に代入することにより,VMの移動先候補となる物理サーバの評価値を算出する。
VM移動先決定部15は,最も評価が高いVMの移動先候補となる物理サーバを,VMの移動先物理サーバとして決定する(ステップS66)。
以上説明したVM移動制御部10,10’による処理は,コンピュータが備えるCPU,メモリ等のハードウェアとソフトウェアプログラムとにより実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
例えば,本実施の形態では,再設定コスト用いたVMの移動先物理サーバの決定と,再設定コスト用いたVMの移動先物理サーバの決定とについて,それぞれ個別の事例を用いて説明を行った。VMの移動先物理サーバの決定に,再設定コストと負荷バランスとを同時に用いてもよい。
図1に示すIBのVMシステムの事例において,例えば,SM400に経路再設定後のネットワーク構成における負荷バランスの算出機能を持たせることで,負荷バランスまでを考慮した移動処理が実現可能となる。このとき,SM400は,負荷バランスの指標として,例えば各リンクのネットワーク負荷の標準偏差を算出する。SM400は,各移動先候補の物理サーバにVMが移動した場合の標準偏差を算出する。各リンクのネットワーク負荷の標準偏差の値が低いほうが,負荷バランスが良いと判定できる。このような指標も加味した処理を行うことにより,VM移動制御部10,10’は,再設定コストと負荷バランスとの両方を用いた,VMの移動先物理サーバの決定を行うことができる。