JP5952214B2 - 仮想マシンの動的配置方法及び仮想マシンシステム - Google Patents

仮想マシンの動的配置方法及び仮想マシンシステム Download PDF

Info

Publication number
JP5952214B2
JP5952214B2 JP2013078323A JP2013078323A JP5952214B2 JP 5952214 B2 JP5952214 B2 JP 5952214B2 JP 2013078323 A JP2013078323 A JP 2013078323A JP 2013078323 A JP2013078323 A JP 2013078323A JP 5952214 B2 JP5952214 B2 JP 5952214B2
Authority
JP
Japan
Prior art keywords
machine
physical
movement
destination
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.)
Expired - Fee Related
Application number
JP2013078323A
Other languages
English (en)
Other versions
JP2014203232A (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 JP2013078323A priority Critical patent/JP5952214B2/ja
Publication of JP2014203232A publication Critical patent/JP2014203232A/ja
Application granted granted Critical
Publication of JP5952214B2 publication Critical patent/JP5952214B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、仮想マシン技術に関し、特に、複数の物理マシンを有して仮想マシンの動作を停止させることなく物理マシン間で仮想マシンの移動を行うライブマイグレーション技術を用いて仮想マシンを物理マシンに動的に配置する方法と、そのような動的配置方法を実行する仮想マシンシステムとに関する。
負荷の最適配置や省電力化などを目的として、仮想マシン技術が注目されている。仮想マシン(VM:Virtual Machine)は、コンピュータの動作をエミュレートするソフトウェアによって実現されるものであり、仮想マシン技術を用いることによって、1台の物理マシン(物理的な実体としてのコンピュータ)上で、異なるオペレーティングシステム(OS:Operating System)を動作させてそのOS上で各種のアプリケーションソフトウェア(APL)を実行させたり、あるいは、本来ならば異なるコンピュータアーキテクチャ環境で動作するソフトウェアを実行させたりすることができる。仮想マシン技術は、例えば、データセンタなどで広く用いられている。
また、ネットワークに接続された異なる物理マシン間で、仮想マシンの動作を止めずにOSごとその仮想マシンを移動させる「ライブマイグレーション技術」がある。ライブマイグレーションは、ネットワークを介して、仮想マシンのメモリ情報のコピーを移動先の物理マシンに送信することで実現している。このライブマイグレーション技術により、例えばある物理マシンが高負荷になった際に、当該物理マシン上で動作している仮想マシンを他の物理マシンに移動させることによって、高負荷状態を解消することができる。さらには、仮想マシンでの処理量に応じて物理マシンに効率よく仮想マシンを配置することで、物理マシンの使用効率を向上させることができる。
図1は、仮想マシンのライブマイグレーションを説明する図である。移動元の物理マシン11と移動先の物理マシン12とは、ネットワーク13で接続しており、また共有ストレージ14を共有している。各物理マシン11,12では、それぞれ、仮想化ソフトウェア15が動作しており、仮想化ソフトウェア15によって物理マシン11,12上に仮想マシン(VM)が実現されている。VMでは、オペレーティングシステムOSとアプリケーションソフトウェアAPLが実行されている。ライブマイグレーションは、移動元の物理マシン11から移動先の物理マシン12へのネットワーク13を介したメモリコピーによって達成される。
非特許文献1には、物理マシン上で動作するVMを管理するVM管理サーバを設け、物理マシン上で動作しているVMに対し、VM管理サーバがライブマイグレーションの実行指示を与えると、VMの動作を継続したまま、移動元の物理マシンと移動先の物理マシンとの間のネットワークを通じて、メモリ情報の送信を行うことが開示されている。送信中に発生するメモリ差分情報が決められた量まで少なくなると、移動元の物理マシン上で動作しているVMを一旦停止し、移動先の物理マシン上で、そのVMを立ち上げる。これによって、VMのライブマイグレーションを実現している。
図2は、ライブマイグレーションに要する時間を説明する図である。ライブマイグレーションのためにメモリコピーを行う場合、メモリコピーを行っている間も移動元の物理マシン上ではVMが動作しているため、メモリ情報が逐次変化する。そこで、移動元の物理マシンで移動対象VMが使用しているメモリ領域に相当するメモリコピーを実行したのち、そのメモリコピーの間に変化したメモリ情報に関する差分をコピーして移動先の物理マシンに送信する必要がある。この差分コピーの間にもメモリ状態は変化するから、さらにその間の差分をコピーする必要がある。このように、メモリコピーと何回かの差分コピーを実行してメモリ差分情報が上記の量にまで小さくなると(ここまでに要する時間をマイグレーション時間と呼ぶ)、移動元でVMを停止し、最後に残った差分をコピーし、その後、移動先でVMを立ち上げ、VMによる処理を再開する。ここでの移動元でのVMの停止から移動先でのVMの再開までに要する時間をダウンタイムと呼ぶ。ライブマイグレーションの全体の要する時間(総マイグレーション時間)は、マイグレーション時間とダウンタイムとの和で表される。
ところで、仮想マシン環境を構成するネットワークには、VMのライブマイグレーション用のネットワークの他にも、共有ストレージアクセスのためのSAN(ストレージエリアネットワーク:Storage Area Network)、予備系のVMとの同期をとるためのフォールトトレランス(fault tolerance)用ネットワーク、VM管理サーバとの通信のためのネットワーク、WAN(広域ネットワーク:Wide Area Network)と接続するネットワークなど、さまざまなネットワークが必要である。図3は、VMとネットワーク環境の一例を示している。インタフェース数の制限やコストの面などから全てのネットワークを物理的に分離することは非効率であり、物理リンクをこれらのネットワークで共用し仮想ローカルエリアネットワーク(VLAN:Virtual Local Area Network)技術などにより論理的にネットワークを分けることで、効率よくリソースを使用することができる。データセンタ等では、このようなネットワーク統合をDCB(Data Center Bridging)と呼び、標準化も行われている(非特許文献2)。
異なる用途のネットワークを統合して物理リンクを共用するようにした場合、VMのライブマイグレーションの実行時において、移動元の物理マシンと移動先の物理マシンとの間の物理ネットワークには、VMのライブマイグレーション用のメモリ情報以外にも、さまざまなトラフィックが流れている可能性がある。
図4は、ライブマイグレーションの実行時に想定されるネットワークトラフィックの一例を示す図である。図4では、複数の物理マシンがネットワークで接続されている仮想マシンシステムが示されており、ここでは、物理マシン#1〜物理マシン#3がスイッチ#1に接続し、同様に、物理マシン#4〜物理マシン#6がスイッチ#2に接続している。スイッチ#1及びスイッチ#2は、さらに、ルータを介してパケット転送網にも接続している。スイッチ#1には、さらに、共有ストレージ14と、VM管理サーバ16も接続している。ここで、物理マシン#3は、予備系のVMのためのものであるとし、物理マシン#1から物理マシン#2に1つのVM(VM−1)をライブマイグレーションする場合を考える。このとき、物理マシン#1と物理マシン#2との間に、ライブマイグレーションのメモリコピーのためのVM移動トラフィックが発生するが、図4に示したものではこのほかに、物理マシン#1と共有ストレージ14の間には共有ストレージアクセスのトラフィックが発生し、物理マシン#1とパケット転送網の間にはユーザトラフィックが発生し、物理マシン#1と物理マシン#3との間にはフォールトトレランス同期情報のトラフィックが発生する。物理マシン#1とスイッチ#1との間の物理リンクにおいて疎通可能な帯域幅によっては、共有ストレージアクセスのトラフィック、ユーザトラフィック、フォールトトレランス同期情報のトラフィックなど、VM移動トラフィック以外のトラフィック(このトラフィックのことを「その他トラフィック」とも呼ぶ)によって、VM移動トラフィックが使用可能な帯域が極端に小さくなることがある。物理リンクにおいてVM移動トラフィックが使用可能な帯域が狭いと、メモリコピーに時間がかかってライブマイグレーション完了までに時間がかかるようになったり、メモリ差分情報がなかなか小さくならずにマイグレーション失敗となったりする可能性がある。
従来のライブマイグレーション技術における上述した課題を解決するために、本発明者らは既に特願2012−176811において、VMのライブマイグレーションの実行時に、VMのメモリコピーのトラフィックが流れるネットワーク上でその他トラフィックのための帯域を一時的に制限し、メモリコピーのトラフィックのための帯域を確保することを提案している。また本発明者らは特願2013−24358において、ネットワーク統合下で1台の移動元物理マシンから1台の移動先物理マシンに複数のVMを移動させる場合に、メモリ量が大きい方から(あるいは小さい方)から順にVMを移動させ、VMの移動中は、対応するVM移動トラフィックと物理リンクを共有するその他トラフィックについて帯域を制御するVM移動スケジューリング方法を提案している。
"VMware vSphereTM"、[online]、ヴイエムウェア株式会社、[2013年2月15日検索]、インターネット〈http://www.vmware.com/jp/products/datacenter-virtualization/vsphere/vmotion/overview.html〉 "802.1/802.3の標準化動向(12):802.1 WGで標準化が進むDCBの最新動向"、[online]、WBB Forum、株式会社インプレスR&D、[2013年2月15日検索]、インターネット〈http://wbb.forum.impressrd.jp/report/20090513/725〉
上述したように、ネットワーク統合の下において、VMのライブマイグレーションの完了までに時間がかかりすぎることやマイグレーション失敗を防止するために、ライブマイグレーションと物理リンクを共用するその他トラフィックの帯域を制限することが提案されている。
しかしながら、仮想マシンシステムの用途などによっては、VMのライブマイグレーションを行っているときであっても、その他トラフィックにある程度の帯域を確保しなければならない場合がある。言い換えれば、仮想マシンシステムにおいて、その他トラフィックに所定の帯域(これをリザーブ帯域とも呼ぶ)が予約されており、その他トラフィックに割り当てられる帯域はリザーブ帯域を下回ってはならない場合がある。VMのライブマイグレーション時にその他トラフィックの帯域を制限する上述したような方法では、その他トラフィックに対してそのリザーブ帯域を確保できなくなるおそれがある。
図5は、VMライブマイグレーションの実行時に、その他トラフィックの帯域を制限するようにしたシステムの構成の一例を示している。このシステムにおいては、複数の物理マシン(物理マシン#1〜物理マシン#i)がスイッチ30を介して相互に接続している。各物理マシン上では1または複数のVMを動作させることが可能であり、各物理マシンには当該物理マシン上のVMの状態を監視するVM状態監視部31が設けられている。各スイッチ30はルータを介してパケット転送網に接続し、パケット転送網には複数のユーザ端末が接続している。物理マシン#1〜物理マシン#iやVM、スイッチ30を制御するための管理装置20も設けられている。
ここでは説明を簡単にするために、その他トラフィックは、ユーザトラフィックのみであるものとするが、ユーザトラフィックの他に、フォールトトレラント同期情報用のトラフィックや、共有ストレージアクセス用のトラフィックなどがその他トラフィックに含まれていてもよい。図5に示した構成では、ユーザ端末から各VMに対するユーザトラフィック(図示点線)と、ライブマイグレーション時にVMのメモリーコピーを行うためのVM移動トラフィック(図示太実線)とがネットワークを共有している。特に、物理マシン#1上のそれぞれのVMに関するユーザトラフィックの使用帯域がBu1,Bu2であり、物理マシン#2上のそれぞれのVMに関するユーザトラフィックの使用帯域がBu3,Bu4であるとする。Bu1〜Bu4は、最低でもリザーブ帯域である。
その他トラフィックであるユーザトラフィックには、リザーブ帯域が設定されおり、ユーザトラフィックがリザーブ帯域を下回ってはいけない、という条件の下で、VM移動を行う場合を考える。1台の物理マシン(例えば物理マシン#1)の上で動作しているVMを、別の物理マシン(例えば、物理マシン#2)へ移動させるものとする。このときのVM移動トラフィックの使用帯域をBmで表す。
すると、スイッチ30と物理マシン#1との間の物理リンクに関し、
(Bu1+Bu2+Bm)≦インタフェース速度
が満たされる必要があり、スイッチ30と物理マシン#2との間の物理リンクに関しても、
(Bu3+Bu4+Bm)≦インタフェース速度
が満たされる必要がある。前述したように、ネットワーク統合環境下において、ユーザトラフィックとVM移動トラフィックとの間で帯域競合が起こる。
複数の物理マシンを備える仮想マシンシステムにおいて、ユーザトラフィックなどのその他トラフィックがリザーブ帯域を下回らない、という条件のもとで、複数のVMを移動させてVMの再配置を行う場合、各VMの移動先の物理マシンや移動順序をランダムに決定すると、全ての移動を完了するためには長い時間を要する可能性がある。その理由は、各VMではそれぞれメモリ使用量やメモリ書き込み速度が異なっておりVMによってはマイグレーション時の移動に大きな帯域を必要とするものがあるが、ユーザ端末からのアクセスが特定の物理マシンに偏って多く存在する場合に、その特定の物理マシンに対し、そのように移動に大きな帯域を要するVMを移動させるようとすると、多くのユーザトラフィック量が競合し、VM移動トラフィックに対して十分な帯域を与えることができなくなるからである。
本発明の目的は、ユーザトラフィックなどのその他トラフィックに対してリザーブ帯域が割り当てられている仮想マシンシステムにおいて、物理マシンの使用効率の向上や負荷の分散などを図るために複数の物理マシンに対して仮想マシンを動的に配置する際に、仮想マシンの移動完了までの時間を短縮できる動的配置方法を提供することにある。
本発明の別の目的は、ユーザトラフィックなどのその他トラフィックに対してリザーブ帯域が割り当てられている仮想マシンシステムであって、物理マシンの使用効率の向上や負荷の分散などを図るために複数の物理マシンに対して仮想マシンを動的に配置する際に、仮想マシンの移動完了までの時間を短縮できる仮想マシンシステムを提供することにある。
本発明の仮想マシンの動的配置方法は、複数の物理マシンと物理マシン間を接続するネットワークとを有し各物理マシン上で仮想マシンが動作可能であり、物理マシン間で仮想マシンを移動させるときに発生するVM移動トラフィックとVM移動トラフィックとは異なるその他トラフィックとが共通のリンクを使用する仮想マシンシステムにおける、複数の仮想マシンの動的配置を行う方法であって、仮想マシンごとに当該仮想マシンの移動に要する時間を算出し、算出した結果に基づいて、移動に要する時間が短い仮想マシンが優先して移動するように、各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定段階と、移動先マシン決定段階での決定に基づき、その他トラフィックに割り当てられる帯域が当該その他トラフィックに設定されたリザーブ帯域を下回らないという条件で、各仮想マシンの移動の順番を決定するスケジュール決定段階と、を有する。
本発明の仮想マシンシステムは、複数の物理マシンと物理マシン間を接続するネットワークとを有し、各物理マシン上で仮想マシンが動作可能な仮想マシンシステムであって、物理マシン間での仮想マシンのライブマイグレーションを制御し、帯域制御の指示を行う管理装置を備え、管理装置は、物理マシン間で仮想マシンを移動させて仮想マシンの動的配置を行う際に、仮想マシンごとに当該仮想マシンの移動に要する時間を算出し、算出した結果に基づいて、移動に要する時間が短い仮想マシンが優先して移動するように、各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定手段と、移動先マシン決定手段での決定に基づき、その他トラフィックに割り当てられる帯域が当該その他トラフィックに設定されたリザーブ帯域を下回らないという条件で、各仮想マシンの移動の順番を決定するスケジュール決定手段と、を有する。
本発明において、仮想マシン移動のためのメモリコピートラフィックとは異なるその他トラフィックは、例えば、ユーザトラフィックである。
本発明によれば、仮想マシンの移動によるトラフィックがその他トラフィックに与える影響を考慮して、移動先の物理マシンが決定され、また、仮想マシンの移動のスケジュールが決定されるので、その他トラフィックに設定される帯域がリザーブ帯域を下回らないという制約の下で、移動先の物理マシンや仮想マシンの移動順をランダムに決定した場合に比べ、短時間で全ての仮想マシンの移動を完了させることが可能になる。
仮想マシン(VM)のライブマイグレーションを説明する図である。 ライブマイグレーションに必要な時間を説明する図である。 VMとネットワーク環境の一例を示す図である。 ライブマイグレーションの実行時に想定されるネットワークトラフィックの一例を示す図である。 VMのライブマイグレーションの実行時に、VMメモリコピー以外のトラフィックの帯域を制限するようにしたシステムの構成の一例を示すブロック図である。 本発明の実施の一形態の仮想マシンシステムにおけるライブマイグレーションを説明するブロック図である。 仮想マシンシステムの構成例を示すブロック図である。 移動先マシン決定アルゴリズムの入出力を説明する図である。 スケジュール決定アルゴリズムの入出力を説明する図である。 アルゴリズムの説明において使用される記号を説明する図である。 実施例1での仮想マシンシステムの構成例を示すブロック図である。 実施例2での仮想マシンシステムの構成例を示すブロック図である。 図12に示す仮想マシンシステムのネットワークトポロジーを示す図である。 実施例2での経路決定過程を説明する図である。 実施例2での経路決定過程を説明する図である。 実施例2での経路決定過程を説明する図である。
次に、本発明を実施するための形態について、図面を参照して説明する。図6は、本発明の実施の一形態の仮想マシンシステムにおけるライブマイグレーションを説明する図である。ここでは説明を簡単にするために、仮想マシンのライブマイグレーションのメモリコピーのためのトラフィック(VM移動トラフィック)以外のトラフィックであるその他トラフィックは、ユーザトラフィックであるものとする。もっとも、その他トラフィックとしてユーザトラフィック以外のトラフィックが存在する場合においても、本実施形態の仮想マシンシステムを適用することが可能である。
図6に示した仮想マシンシステムは、図5に示したものと同様に、複数の物理マシン(図示した例では5台の物理マシン#1〜物理マシン#5)がネットワークによって接続された構成を有している。各物理マシンはネットワーク内のスイッチ30に接続している。ここでは、複数のスイッチ30が設けられ、物理マシンごとにいずれかのスイッチ30に接続するようになっている。各スイッチ30は、ネットワーク内のルータを介してパケット転送網にも接続している。パケット転送網にはいくつかのユーザ端末も接続している。
各物理マシンには、当該物理マシンの負荷状況、各VMのCPU使用率やメモリ使用量、アプリケーションの動作状態などを監視してそれらに関する情報を収集するVM状態監視部31が設けられている。特にVM状態監視部31は、各VMのメモリ使用量およびメモリ書き込み速度を監視する機能を有する。ここでメモリ書き込み速度とは、VMのメモリに対して情報が時間当たりどれだけ書き込まれるかを示すものである。メモリ書き込み速度が大きければ、図2に示した差分コピーをより大量に行わなければならなくなる。VM状態監視部31は、管理装置20に設けられていてもよい。また各物理マシンには、当該物理マシン上に配置されるVMの相互間やVMと外部とのデータ転送のために、仮想スイッチ34も設けられている。
この仮想マシンシステムにおいても、図5に示す仮想マシンシステムと同様に、各物理マシン、各VM(仮想マシン)及び各スイッチを制御し、VMのライブマイグレーション(移動)や帯域制御を行い、特に、ライブマイグレーションの実行時にネットワーク内の各トラフィックの帯域を制限する管理装置20が設けられている。図6に示す仮想マシンシステムの管理装置20は、図5に示したものと比べ、特に、移動先マシン決定部26と、スケジュール決定部27とを備えている。
移動先マシン決定部26は、管理装置20のデータ保存部23に格納されているVM状態情報と移動先マシン決定アルゴリズム41とにしたがって、この仮想マシンシステム内のVMの中で、VM移動に長い時間を必要としない(言い換えればメモリ情報量が小さい)VMを優先的に移動させ、VM移動に長い時間を必要とする(言い換えればメモリ情報量が大きい)VMについては元の物理マシンに残って移動させないように、各VMの移動先物理マシンを決定する。結局、移動先マシン決定部26は、仮想マシンシステムの全体を見て、VMの最適な移動先物理マシンを決定する。このような移動先マシン決定部26を設けることによって、複数のVMを物理マシン間で移動させる時の移動全体の時間を短縮することができる。
スケジュール決定部27は、移動先マシン決定部26によって移動先物理マシンが決定されると、管理装置20のデータ保存部23に格納されているVM状態情報とスケジュール決定アルゴリズム27とにしたがって、移動先及び移動元の物理マシンのユーザ数の推移に基づき、ユーザ数がどちらかの物理マシンに偏って多く存在する場合には、VM移動に大きな帯域を必要としないVMを移動させたり、他の用途の経路がある場合(例えば、他の物理マシンに割り当てられた経路に余剰帯域がある場合)には、その経路を一時的に利用したりするようにして、VMの移動順や、ユーザトラフィックの帯域制御値、各物理マシンの仮想スイッチ34やスイッチ30での経路制御方法を決定する。ここで物理マシンのユーザ数とは、その物理マシンに対してアクセスを行っているユーザ端末の数、すなわちユーザアクセス数のことを意味する。このようなスケジュール決定部27を設けることによっても、移動先マシン決定部26の場合と同様に、複数のVMを物理マシン間で移動させる時の移動全体の時間を短縮することができる。
さらに管理装置20は、移動先マシン決定部26及びスケジュール決定部27のほかに、ネットワークとのインタフェースとしてパケットを受信するパケット受信部21と、ネットワークとのインタフェースとしてパケットを送信するパケット送信部22と、上述したデータ保存部23と、物理マシン上のVMを管理するVM管理部24と、必要となる情報を収集してデータ保存部23に格納する情報収集部25と、移動先マシン決定部26によって決定された移動先の物理マシンとスケジュール決定部27によって決定された帯域制限値や経路制御方法に基づき、各スイッチ30に対して帯域及び経路の制御設定を行う帯域・経路制御設定部28と、を備えている。ここでVM管理部24は、特に、スケジュール決定部27で決定された結果に基づき、VMのライブマイグレーションの開始を各物理マシンに指示し、また各物理マシンの仮想スイッチ34の経路設定を行う。このような管理装置20は、ライブマイグレーションを実行する同一グループの物理マシンに接続するが、管理装置20からの接続は直接接続である必要はなく、ネットワーク上の到達性があればよい。したがって図示したものでは、管理装置20は、各スイッチ30に対して直接接続している。
各スイッチ30には帯域制御部32とトラフィック監視部33とが設けられている。帯域制御部32は、トラフィックごとの帯域を制御するものであって、特に、管理装置20の帯域・経路制御設定部28から指示された通りに各トラフィックの帯域制御を行う機能を有する。帯域制御部32は、スイッチではなく各物理マシンに設けられていてもよい。物理マシンに帯域制御部32を設ける場合には、VMを接続する仮想スイッチ34上で帯域制御を行えばよい。トラフィック監視部33は、ネットワーク内のトラフィックを監視するものであって、特に、各VMの入出力トラフィックを監視する。トラフィック監視部33は、各物理マシンあるいは管理装置20に設けられていてもよい。管理装置20にトラフィック監視部33を設ける場合、そのトラフィック監視部は、ネットワークを通じて各物理マシンに接続し、トラフィックに関する情報を取得すればよい。
上記の構成において、トラフィック監視部33から、VMのライブマイグレーションを行う物理マシン間のリンクを流れるトラフィックの情報を収集し、VM状態監視部31から、物理マシンの負荷状況(特に物理マシン上のVMの数)、各VMのCPU使用率やメモリ使用量、メモリ書き込み速度、ユーザ数などを表すVM状態情報を収集する。なお、VMのメモリ使用量及びメモリ書き込み速度については、当該VMに搭載されているアプリケーションの種別やユーザ数などから計算しあるいは推定してもよい。
上述したように図6に示した仮想マシンシステムでは、管理装置20内に設けた移動先マシン決定部26によって、VM移動に時間がかかる(メモリ情報量が大きい)VMは移動させず、VM移動に時間がかからない(メモリ情報量が小さい)VMを移動させるように移動先の物理マシンを決定することにより、全体としてのVM移動時間を短縮することができる。またスケジュール決定部27によって、ユーザアクセスが移動元の物理マシンと移動先の物理マシンとに分散しているときにはメモリ情報の大きいVMを移動させ、どちらかの物理マシンにユーザアクセスが偏っているときにはメモリ情報の小さいVMを移動させるようにVMの移動スケジュールを決定することにより、各VM移動に適量の帯域が与えられることになり、VM移動時間を全体として短縮することができる。さらには、他の用途の経路(例えば冗長用の経路やデフォルトとして設定されたもの以外の経路)も活用することによって、VM移動のための帯域をさらに確保することが可能となり、VM移動時間をさらに短縮することができる。
このように図6に示した本実施形態の仮想マシンシステムでは、ユーザトラフィックに対してリザーブ帯域を確保しつつ所望のVM移動を実施しなければならない場合に、移動先の物理マシンやVMの移動順をランダムに決定した場合と比較して、短時間で全VMの移動を完了することが可能となる。このような効果は、VM移動トラフィックとユーザトラフィックとが同一の物理リンクを共用する場合に特に顕著である。
図6に示した仮想マシンシステムでは、複数のスイッチ30が設けられているが、これら複数のスイッチ30をまとめてスイッチ群として扱うことができる。特に、他の用途の経路も活用してVM移動のための帯域及び経路を確保する場合には、複数のスイッチがメッシュ状に物理マシンに接続していることが好ましい。図7は、物理マシンにメッシュ状に接続されている複数のスイッチをまとめてスイッチ群35として表した場合の仮想マシンシステムを示している。図7に示す場合であっても、スイッチ群35を構成する各スイッチには、帯域制御部32とトラフィック監視部33が設けられる。
次に、本実施形態における移動先マシン決定アルゴリズム41とスケジュール決定アルゴリズム42について説明する。
移動先マシン決定アルゴリズム41は、図8に示すように、物理マシンの台数、各物理マシンのインタフェース速度、ユーザトラフィックのリザーブ帯域、各物理マシン上で動作するVMの数とVMの名称、各VMが処理しているユーザ数、及び、各VMのメモリ使用量とメモリ書き込み速度を入力として、各VMの移動先となる物理マシン名を出力するものである。
移動先マシン決定アルゴリズム41には、例えば、(1)VMメモリ情報利用方式と(2)VMメモリ情報・ユーザ数利用方式の2通りのバリエーションがある。(1)のVMメモリ情報利用方式は、VMのメモリ情報(メモリ使用量及びメモリ書き込み速度)のみを利用して、移動先マシンを決定する方式である。この方式は、VMごとのユーザ数のばらつきが小さい時に有効である。一方、(2)のVMメモリ情報・ユーザ数利用方式は、各VMのメモリ情報のほかに、各VMが処理しているユーザ数の情報も利用して、移動先マシンを決定する方式である。この方式は、VMを移動した後のユーザ数の分布が物理マシン間でできるだけ均等になるように、VMの移動先マシンを決定するものであり、VMごとのユーザ数のばらつきが大きい時に有効である。
スケジュール決定アルゴリズム42は、図9に示すように、各VMの移動先の物理マシンの名称、各物理マシンのインタフェース速度、ユーザトラフィックのリザーブ帯域、各物理マシン上で動作するVMの数とVMの名称、各VMが処理しているユーザ数、各VMのメモリ使用量とメモリ書き込み速度、VM移動計画時間、仮想マシンシステムのネットワークトポロジー、及び、各VMのユーザトラフィック量を入力として、各VMの移動順序、各VM移動時のVM移動トラフィックとユーザトラフィックの帯域制御値、及び、各VM移動時の経路設定情報とを出力とするものである。ここでVM移動計画時間とは、1または複数のVMのライブマイグレーションを行うときに、移動対象のVMの全体の移動に要する時間として計画された時間のことである。
スケジュール決定アルゴリズム42には、例えば、(a)ユーザトラフィック帯域優先方式、(b)VM移動時間優先方式、(c)空き経路選択方式、(d)ユーザトラフィック帯域優先方式と空き経路選択方式との組み合わせ方式、及び、(e)VM移動時間優先方式と空き経路選択方式との組み合わせ方式の5通りのバリエーションがある。このうち(a)のユーザトラフィック帯域優先方式は、VM移動計画時間を超えない時間内で移動を完了し、かつ、ユーザトラフィックがリザーブ帯域を下回らないように、VMの移動順序を決定する方式である。この方式は、ユーザトラフィックにできるだけ帯域を与えたい場合に有効である。(b)のVM移動時間優先方式は、VMの移動開始から移動の完了まで、ユーザトラフィックをリザーブ帯域の一定値に制限し、残りの帯域をVM移動トラフィックに与えることで、最も速く移動を完了させられるようにVMの移動順序及び帯域制御値を決定する方式である。この方式は、移動を素早く完了させたい時に有効である。
(c)の空き経路選択方式は、各VM移動時に、帯域に空きがある経路を探索し、その経路でVM移動トラフィックを転送する方式である。この方式は、物理マシンの物理インタフェースやシステムのネットワークに、障害等のための冗長インタフェースや冗長経路が設けられている場合などに有効である。この空き経路選択方式は、冗長インタフェースや冗長経路を用いることで特徴づけられるが、これに、上記の(d)及び(e)に示すように、VMの移動順序を決定する(a)のユーザトラフィック帯域優先方式と、VMの移動順序やユーザトラフィックの帯域制御量を決定する(b)のVM移動時間優先方式とのいずれかを組み合わせることができる。
本実施形態の仮想マシンシステムでは、移動先マシン決定アルゴリズムの2通りのバリエーション((1)及び(2))のいずれかとスケジュール決定アルゴリズムの5通りのバリエーション((a)〜(e))のいずれかとを任意に組み合わせて、VMの移動を行わせることができる。なお、スケジュール決定アルゴリズムのうち、(a)のユーザトラフィック帯域優先方式及び(b)のVM移動時間優先方式は、経路の選択を行わないので帯域制御方式に分類され、(c)の空き経路選択方式と(d),(e)に示す組み合わせ方式は、経路の選択も行うので、帯域・経路制御方式に分類される。
以下、移動先マシン決定アルゴリズム41とスケジュール決定アルゴリズム42の各バリエーションについて、詳しく説明する。最初に、アルゴリズムの説明に用いる記号を定義する。ここでは、Nを2以上の整数として、N台の物理マシンが設けられ、それら物理マシンにはそれぞれS−1〜S−Nの名称が与えられるものとし、nを2以上の整数として、n個のVMがこれらN台の物理マシン上で動作するものとし、n個のVMにはそれぞれVM−1〜VM−nの名称が与えられるものとする。そしてそれぞれのVM(VM−1〜VM−n)のメモリ使用量をM1〜Mnとし、メモリ書き込み速度をW1〜Wnとし、収容ユーザ数をU1〜Unとする。図10は、物理マシンと各VMとの関係、物理マシンと各VMのメモリ使用量、メモリ書き込み速度及び収容ユーザ数との関係を示している。
1台の物理マシンで動作する全VMが処理するユーザ数の合計を、当該物理マシンが処理可能なユーザ数で除算したものを収容率と定義する。1台の物理マシンが処理可能なユーザ数は、当該物理マシンのインタフェース速度をユーザトラフィックの最低保証帯域(リザーブ帯域)で除算したものである。以下では、一例として、複数の物理マシンで動作する複数のVMを、各VMが処理しているユーザ数に応じて、収容率が高くなるように数台の物理マシンに集約配置する場合について説明する。もっとも本実施形態が適用される場合はこれに限られるわけではなく、ユーザ数の上限値の定義や収容率の定義を任意に設定して、VMを再配置する場合に用いてもよい。
ここでは、物理マシンのインタフェース速度は全ての物理マシンで同一であって、Iであるとし、ユーザトラフィックのリザーブ帯域も全てのユーザで同一であって、Bであるとする。これらは、物理マシンごと、あるいはユーザごとに異なっていてもよい。また、VM移動計画時間をTとする。
(1)VMメモリ情報利用方式:
移動先マシン決定アルゴリズムのうちVMメモリ情報利用方式は、VM移動に長い時間を要するVMが多く存在する物理マシンを移動先物理マシンとし、この移動先物理マシンに対して、移動時間が短いVMが多く存在する物理マシンのVMを移動させるものである。この方式では、以下のStep1〜Step5の各ステップを順番に実行する。
Step1:式(1)により、1台の物理マシンが処理可能なユーザ数の上限値Lを求める。
Figure 0005952214
Step2:ユーザ数の合計とLとを用いて、式(2)により、集約配置後の物理マシンの数N’を求める。小数点以下は切り上げるものとする。iはi番目のVMであることを示している。
Figure 0005952214
Step3:各VMについて、式(3)により、ある帯域Bcのネットワークを用いた時の移動時間Tiを求める。Bcは任意の定数である。
Figure 0005952214
Step4:各物理マシンについてTiの和を求め、その和が大きい順にN’台の物理マシンを移動先物理マシンとする。当然のことながらN’<Nである。
Step5:移動先として選択された物理マシン以外のN−N’台の物理マシンを移動元の物理マシンとし、物理マシン名の数字が小さい順に、移動元物理マシンを1台ずつ移動先物理マシンに割り当てる。ここで(N−N’)>N’である場合には、移動元の物理マシンN’台についての割り当てが完了したら、移動先物理マシンの割当の2巡目となり、これを繰り返す。これにより、各移動元物理マシンに属するVMの移動先物理マシンが決定する。ここでは、ある移動元物理マシンに属するVMは、全て同じ移動先物理マシンに移動するものとしている。
(2)VMメモリ情報・ユーザ数利用方式:
移動先マシン決定アルゴリズムのうちVMメモリ情報・ユーザ数利用方式は、VM移動に長い時間を要するVMが多く存在する物理マシンを移動先物理マシンとし、この移動先物理マシンに対して、移動時間が短いVMが多く存在する物理マシンのVMを移動させるとともに、各移動元物理マシンについてその物理マシンに対応する移動先物理マシンを決定する際にユーザ数に関する情報を使用して、移動完了後の物理マシン間でユーザ数が均等なものとなるようにするものである。この方式では、以下のStep1〜Step7の各ステップを順番に実行する。
Step1〜Step4:VMメモリ情報利用方式でのStep1〜Step4をそのまま実行する。
Step5:移動先物理マシン以外のN−N’台の物理マシンを移動元物理マシンとする。
Step6:物理マシンごとに、当該物理マシン上のVMのユーザ数の和を求め、移動先物理マシンに関して、ユーザ数の和が小さい順に1からN’までの順位をつけ、移動元物理マシンに関して、ユーザ数の和が大きい順に1からN−N’までの順位をつける。
Step7:順位が1位である移動元物理マシンから順に、移動先マシンを割り当てていく。このとき移動先物理マシンについてもその順位が1位の物理マシンから割り当てが実行される。ここで(N−N’)>N’である場合には、移動元の物理マシンN’台についての割り当てが完了したら、移動先物理マシンの割当の2巡目となり、これを繰り返す。これにより、各移動元物理マシンに属するVMの移動先物理マシンが決定する。ここでは、ある移動元物理マシンに属するVMは、全て同じ移動先物理マシンに移動するものとしている。
(a)ユーザトラフィック帯域優先方式:
スケジュール決定アリゴリズムのうちユーザトラフィック帯域優先方式は、VM移動計画時間Tを超えない時間内で移動を完了し、かつ、ユーザトラフィックがリザーブ帯域Bを下回らないように、VMの移動順序を決定するものである。この方式では、以下のStep1〜Step8の各ステップを順番に実行する。なおStep1〜Step8は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数N’分、繰り返してあるいは並列に実行される。
Step1:VM移動計画時間Tを、その移動先物理マシンに移動するVM数で割り、VM1台あたりの移動時間T’を求める。
Step2:各VMがT’で移動するために必要な帯域Briを、式(4)により求める。ここでiは、1以上、その移動先物理マシンに移動するVMの数以下の整数である。
Figure 0005952214
Step3:その移動先物理マシン上のVM以外のVMについて、Step2で求めたBriが大きい順に、順位付けする。
Step4:その移動先物理マシンと、その移動先物理マシンにVMが移動する移動元物理マシンとについて、各VMのユーザ数の和を求める。
Step5:移動先物理マシンのVMのユーザ数の和をP1とし、移動元物理マシンのユーザ数の和のうちの最も大きい値をP2とし、移動先物理マシンと移動元物理マシンとの全てVMのユーザ数の和をP3とし、移動先物理マシンに移動するVMの数をQとしたとき、式(5),(6)により、Vを求める。Vの小数点以下は切り捨てる。
P1≧P2の時:
V=1 (5)
P1<P2の時、
Figure 0005952214
Step6:Step3で求めた順位が1位であるVMから、移動順序がV番目、(V−1)番目、(V+1)番目、(V−2)番目、(V+2)番目、…となるように、各VMの移動順序を決定していく。このとき、例えば、V−2=0となった場合には、(V+1)番目の次は、(V+2)番目、その次は、(V+3)番目となるようにする。
Step7:移動順が1番目となるVMから順に、そのVMを移動させているときのユーザトラフィックの帯域制御値を移動元物理マシンと移動先物理マシンの各々について求める。移動元物理マシンのユーザトラフィック帯域制御値は、(I−Bri)をその移動時の移動元物理マシンのユーザ数の和で割ったものとする。同様に、移動先物理マシンのユーザトラフィック帯域制御値は、(I−Bri)をその移動時の移動先物理マシンのユーザ数の和で割ったものとする。
Step8:Step7で計算されるユーザトラフィック帯域制御値は、ユーザトラフィックのリザーブ帯域Bを下回る可能性があるものである。そこで、Step7の計算中にユーザトラフィック帯域制御値がBを下回った場合、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのStep2に戻り、N’を1だけインクリメントし、移動先マシン決定アルゴリズムのStep3以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのStep1からの計算を再度実行する。
(b)VM移動時間優先方式:
スケジュール決定アリゴリズムのうちVM移動時間優先方式は、VMの移動開始から移動完了までの期間において、ユーザトラフィックを最低保証帯域(リザーブ帯域)の一定値に制限し、残りの帯域をVM移動トラフィックに与えることで、最も早く移動完了させられるようにVMの移動順序を決定するものである。この方式では、以下のStep1〜Step8の各ステップを順番に実行する。なおStep1〜Step8は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数N’分、繰り返してあるいは並列に実行される。
Step1〜Step6:ユーザトラフィック帯域優先方式でのStep1〜Step6をそのまま実行する。
Step7:移動順が1番目となるVMから順に、そのVMについてのVM移動トラフィックが使用できる帯域Baを求める。帯域Baは、物理マシンのインタフェース速度Iから、移動先物理マシンでのVMのユーザ数の和と移動元物理マシンでのVMのユーザ数の和のうちの大きい方のユーザ数の和とユーザトラフィックの最低保障帯域(リザーブ帯域B)との積を差し引いたものである。この帯域Baから、式(7)に基づいて、そのVM移動にかかる時間Tiを算出する。
Figure 0005952214
Step8:式(7)によって計算されるTiが意味のある値となるためには、Ba>Wiであることが必要であり、また、TiはVM移動計画時間T以下である必要もある。このような条件を満たすように帯域Baを定めるとすると、結果的に、ユーザトラフィックの帯域制御値をリザーブ帯域Bよりも小さくしなければならない場合が生じる可能性がある。このようにユーザトラフィックの帯域制御値をリザーブ帯域Bよりも小さくしなければならなくなった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのStep2に戻り、N’を1だけインクリメントし、移動先マシン決定アルゴリズムのStep3以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのStep1からの計算を再度実行する。
(c)空き経路選択方式:
スケジュール決定アリゴリズムのうち空き経路選択方式は、各VMの移動時に、当該VMが移動するために必要な帯域が残っている経路を決定し、その経路上をVM移動トラフィックが転送されるように各物理マシンの仮想スイッチやネットワーク内のスイッチに経路設定を行うものである。この方式は、その他の用途の経路上に十分な空き帯域がある場合に有効である。この方式では、以下のStep1〜Step8の各ステップを順番に実行する。なおStep1〜Step8は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数N’分、繰り返してあるいは並列に実行される。
Step1〜Step6:ユーザトラフィック帯域優先方式でのStep1〜Step6をそのまま実行する。
Step7:移動順が1番目となるVMから順に、そのVMの移動に必要な帯域Briが残っている経路を探索し、決定する。ここで、各ユーザトラフィックの帯域は、リザーブ帯域値B(Mbps)に統一して制御するものとする。
Step8:Step7の計算では経路が見つからない可能性がある。Step7の計算中に経路が見つからなかった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのStep2に戻り、N’を1だけインクリメントし、移動先マシン決定アルゴリズムのStep3以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのStep1からの計算を再度実行する。
(d)ユーザトラフィック帯域優先方式と空き経路選択方式の組み合わせ方式:
この方式は、主として上記のユーザトラフィック帯域優先方式によってVMを移動させるものであるが、ユーザトラフィック帯域優先方式でのStep7で計算されるユーザトラフィックの帯域制御値がリザーブ帯域Bを下回ったときにだけ空き経路を探索し、探索された経路を用いてVMの移動を行うものである。その他の用途の経路の使用を必要最小限としようとする方式である。この方式では、以下のStep1〜Step9の各ステップを順番に実行する。なおStep1〜Step9は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数N’分、繰り返してあるいは並列に実行される。
Step1〜Step7:ユーザトラフィック帯域優先方式でのStep1〜Step7をそのまま実行する。
Step8:Step7の計算中にユーザトラフィック帯域制御値がリザーブ帯域Bを下回った場合、残りの移動順のVMについて、空き経路選択方式でのStep7を実行して当該VMの移動に必要な帯域Briが残っている経路を探索し、決定する。各ユーザトラフィックの帯域は、リザーブ帯域値B(Mbps)に統一して制御するものとする。
Step9:Step8において経路が見つからなかった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのStep2に戻り、N’を1だけインクリメントし、移動先マシン決定アルゴリズムのStep3以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのStep1からの計算を再度実行する。
(e)VM移動時間優先方式と空き経路選択方式の組み合わせ方式:
この方式は、主として上記のVM移動時間優先方式によってVMを移動させるものであるが、VM移動時間優先方式でのStep7においてユーザトラフィックの帯域制御値をリザーブ帯域Bよりも小さくしなければならなくなったときにだけ空き経路を探索し、探索された経路を用いてVMの移動を行うものである。その他の用途の経路の使用を必要最小限としようと方式である。この方式では、以下のStep1〜Step9の各ステップを順番に実行する。なおStep1〜Step9は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数N’分、繰り返してあるいは並列に実行される。
Step1〜Step7:VM移動時間優先方式でのStep1〜Step7をそのまま実行する。
Step8:Step7の計算中にユーザトラフィック帯域制御値をリザーブ帯域Bよりも小さくしなければならなくなったときに、残りの移動順のVMについて、空き経路選択方式でのStep7を実行して当該VMの移動に必要な帯域Briが残っている経路を探索し、決定する。各ユーザトラフィックの帯域は、リザーブ帯域値B(Mbps)に統一して制御するものとする。
Step9:Step8において経路が見つからなかった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのStep2に戻り、N’を1だけインクリメントし、移動先マシン決定アルゴリズムのStep3以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのStep1からの計算を再度実行する。
次に、移動先マシン決定アルゴリズムとスケジュール決定アルゴリズムのそれぞれのバリエーションの組み合わせのうちのいくつかをさらに詳しく説明する。
[実施例1]
図11に示した構成の仮想マシンシステムを使用し、移動先マシン決定アルゴリズムとしてVMメモリ情報利用方式を使用し、スケジュール決定アルゴリズムとしてユーザトラフィック帯域優先方式を用いる場合を説明する。
図11に示した仮想マシンシステムは、4台の物理マシンS−1〜S−4を備えており、スイッチ群35を構成するものとして5個のスイッチSW1〜SW5が設けられている。物理マシンS−1,S−2はスイッチSW1に接続し、物理マシンS−3,S−4はスイッチSW2に接続している。スイッチSW1は、スイッチSW3,SW4とも物理リンクによって直接接続し、スイッチSW2もスイッチSW3,SW4と物理リンクによって直接接続している。スイッチSW5は、スイッチSW3,SW4と物理リンクによって直接接続するとともに、パケット転送網とも接続している。
各物理マシンは、VM状態監視部31と仮想スイッチ34を備えており、移動開始前の状態において、物理マシンS−1上にはVM−1〜VM−5の5個のVMが存在し、物理マシンS−2上にはVM−6〜VM−10の5個のVMが存在し、物理マシンS−3上にはVM−11〜VM−15の5個のVMが存在し、物理マシンS−4上にはVM−16〜VM−20の5個のVMが存在している。
各スイッチはいずれも帯域制御部32を備えており、これらの帯域制御部32は管理装置20によって制御されるようになっている。管理装置20としては、図6及び図7に示したものと同じものが使用される。トラフィックは、VLAN(仮想ローカルエリアネットワーク:virtual local area network)により、どのVMのトラフィックなのか、また、ユーザトラフィックなのかVM移動トラフィックなのかを識別できるものとする。帯域制御はVLANごとに実施できる。各物理マシン上のVM状態監視部31は、各VM上で、例えば、Linux(登録商標)のtopコマンドにより、VMのメモリ使用量や使用率を監視し、ページング(スワップファイル)操作数などから、各VMのメモリ使用量やメモリ書き込み速度を監視する。
図において破線で示すトラフィックはユーザトラフィックであり、実線で示すトラフィックはVM移動トラフィックである。説明のため、VM移動トラフィックについては、物理マシンS−1からのトラフィックのみが図示されている。
ユーザ端末から各VMにユーザトラフィックが流れ、VM上でパケットに何らかの処理が行われて、再びユーザ端末へトラフィックが流れているものとし、そのユーザトラフィックは、各VMで均一であるものとする。例えば、各ユーザ端末のユーザトラフィック帯域は、物理マシンのインタフェース速度を、当該物理マシン上で処理されているユーザ数で割ったもので求められる。
物理リンクの帯域は、スイッチSW5に直接接続している物理リンク以外、全て、1Gbit/sとし、物理マシン単位で、対応するスイッチから当該物理マシンに対して1Gbpsの専用経路が与えられるものとする。ユーザトラフィックのリザーブ帯域Bは、20Mbit/sとする。したがって、物理マシン1台あたりのユーザ数上限値Lは、50人となる。
動作開始時には図11に示すよう各VMが処理するユーザ数が多く(例えば3人以上)、VMを各物理マシンに分散配置していたが、その後、各VMが処理するユーザ数が全て2人となったことによりVMの動的配置を実施することになったという状況を考える。ここではVM移動計画時間Tは15分であるとする。
この時点での各物理マシンのVM状態監視部31から得られるVM状態情報は、表1に示すものであるとする。
Figure 0005952214
移動先マシン決定アルゴリズムとしてVMメモリ情報利用方式を利用しており、まず、そのStep1が実行され、上記式(1)から以下のようにして、1台の物理マシンが処理可能なユーザ数の上限値Lが求められる。
Figure 0005952214
次にStep2が実行され、ユーザ数の合計とLとを用いて、上記式(2)から以下のようにして(小数点以下切り上げ)、集約配置後の物理マシンの台数N’が計算される。
Figure 0005952214
Step3において、各VMについて、式(3)に基づき、ある帯域Bcのネットワークを用いた時の移動時間Tiを求める。ここでは帯域Bcを500Mbpsとしている。続いてStep4において、物理マシンごとに、その物理マシン上のVMのTiの和を求め、この和が大きい順にN’台の物理マシンを移動先物理マシンとする。Step3で算出されたTiの値とStep4で算出された物理マシンごとのTiの和の値を表2に示す。
Figure 0005952214
表2から分かるように、Tiの和が一番大きい物理マシンは物理マシンS−2であるので、移動先の物理マシンの台数N’が1台であることにより、Step4では、物理マシンS−2が移動先の物理マシンとして決定されることになる。
以上のようにして移動先の物理マシンが決定したら、次に、スケジュール決定アルゴリズムにより、VMの移動順などを算出する。ここではスケジュール決定アルゴリズムとしてユーザトラフィック帯域優先方式が用いられる。
まず、ユーザトラフィック帯域優先方式のStep1を実行し、移動先物理マシンに移動するVMの数によってVM移動計画時間Tを除算することにより、下記のように、VM1台当たりの移動時間T’を求める。
T’=15×60/20=45s
次にStep2において、上記の式(4)に基づいて、各VMが時間T’で移動するための帯域Briを求める。Step3において、その移動先物理マシン上のVM以外のVMについて、Step2で求めたBriが大きい順に、順位付けする。続いてStep4において、移動先物理マシンと、その移動先物理マシンにVMが移動する移動元物理マシンとについて、各VMのユーザ数の和を求める。Step2で求めた帯域Bri、Step3で求めた順位付け、及びStep4で求めた物理マシンごとのVMのユーザ数の和が表3に示されている。なお、移動先の物理マシンである物理マシンS−2上に既に存在しているVMは移動の対象とはならないため、物理マシンS−2上のVMに対しては、Step3での順位付けやStep6での移動順の決定は行われない。
Figure 0005952214
次にStep5を実行する。ここでは、移動先の物理マシンのユーザ数の和をP1、移動元の物理マシンのユーザ数の和のうちの最も大きいもののをP2とすると、P1もP2もいずれも10であるから、P1≧P2が成立し、V=1が得られる。
Step6において、Step3で求めた順位が1位のVM(この場合VM−2)から、V番目、(V−1)番目、(V+1)番目、(V−2)番目、(V+2)番目、…のように移動順序を決定する。ここではV=1であることから、V−1=0となるので、1番目、2番目、3番目、…のように移動順序が決定されることになる。決定された移動順は表3に示されている。
次にStep7において、移動順1番目のVMから順に、当該VMの移動中のユーザトラフィックの帯域制御値を移動元の物理マシン及び移動先の物理マシンの各々について求める。計算された帯域制御値を表4に示す。ここで示した例ではリザーブ帯域Bは20Mbpsであるが、表4において★印で示すように、移動順が11、14、15であるVMの移動に関し、移動先物理マシンでのユーザトラフィック帯域がリザーブ帯域Bを下回っている。そのためこの実施例では、Step8が実行されることとなり、移動先マシン決定アルゴリズムでのStep2に戻ってN’に1が加算され、N’=2であるものとして、移動先マシン決定アルゴリズムのStep3からとユーザトラフィック帯域優先方式によるスケジュール決定アルゴリズムの計算とが再実行されることになる。
Figure 0005952214
[実施例2]
図12に示した構成の仮想マシンシステムを使用し、移動先マシン決定アルゴリズムとしてVMメモリ情報・ユーザ数利用方式を使用し、スケジュール決定アルゴリズムとして空き経路選択方式を用いる場合を説明する。
図12に示した仮想マシンシステムは、図11に示したものと同様のものであるが、各物理マシンに冗長インタフェースが設けられている点で相違する。ユーザトラフィックは冗長インタフェースを用いないものとする。物理マシンS−1,S−2は、それぞれ、冗長インタフェースによる1Gbpsの物理リンクによってもスイッチSW1に接続している。同様に、物理マシンS−3,S−4は、それぞれ、冗長インタフェースによる1Gbpsの物理リンクによってもスイッチSW2に接続している。
図12に示す仮想マシンシステムのシステムトポロジーは図13に示すものとなり、ここでは、説明のため、ユーザトラフィックに関する4つの経路が示されている。経路1は、物理マシンS−1からスイッチSW1、スイッチSW3及びスイッチSW5を経由してパケット転送網に至る経路であり、経路2は、物理マシンS−2からスイッチSW1、スイッチSW4及びスイッチSW5を経由してパケット転送網に至る経路であり、経路3は、物理マシンS−3からスイッチSW2、スイッチSW3及びスイッチSW5を経由してパケット転送網に至る経路であり、経路4は、物理マシンS−4からスイッチSW2、スイッチSW4及びスイッチSW5を経由してパケット転送網に至る経路である。
実施例1の場合と同様に、動作開始時には各VMが処理するユーザ数が多く(例えば3人以上)、VMを各物理マシンに分散配置していたが、その後、各VMが処理するユーザ数が全て2人となったことによりVMの動的配置を実施することになったという状況を考える。ここではVM移動計画時間Tは15分であるとする。
この時点での各物理マシンのVM状態監視部31から得られるVM状態情報は、表1に示すものと同じである。
移動先マシン決定アルゴリズムとしてVMメモリ情報・ユーザ数利用方式を利用しており、VMメモリ情報・ユーザ数利用方式のStep1からStep7までが実行される。ここで示した例では、物理マシン間にユーザ数のばらつきがないため、実施例1でのVMメモリ情報利用方式による結果と同じ結果が得られ(表2参照)、移動先の物理マシンとして物理マシンS−2が選択される。
次に、スケジュール決定アルゴリズムとして空き経路選択方式が実行される。空き経路選択方式でのStep1からStep6までは、実施例1で示したユーザトラフィック帯域優先方式でのStep1からStep6までと同様に進行する(表3参照)。
空き経路選択方式でのStep7においては、移動順が1番目となるVMから順に、そのVMの移動に必要な帯域Briが残っている経路を探索し、決定する。ここで、各ユーザトラフィックの帯域は、リザーブ帯域値B(20Mbps)に統一して制御するものとする。例えば、移動順が1であるVMすなわちVM−2を物理マシンS−1から物理マシンS−2に移動させるときのことを考える。このとき、表3に示されるように、VM−2の移動のために、726Mbpsが必要である。図14に示すように、物理マシンS−1とスイッチSW1との間の物理リンクでは、経路1の下り経路のユーザトラフィックが流れており、ユーザ数が10人であってユーザごとの帯域がリザーブ帯域Bである20Mbpsであることにより、800Mbpsが余っていることになる。同様に、物理マシンS−2とスイッチSW1との間の物理リンクでは、経路2の上り経路のユーザトラフィックが流れており、これも800Mbpsが余っていることになる。通常経路において上り下りとも余り帯域があるので、冗長インタフェースを使用しない通常経路(物理マシンS−1→スイッチSW1→物理マシンS−2の経路)がVM−2の移動用の経路として選択される。
これに対し移動順が11番目であるVM−20について考えると、VM−20は物理マシンS−4から物理マシンS−2に移動する。表3に示されるように、VM−20の移動のために412Mbpsが必要である。
ところで、移動順が11番目ということは、既に10個のVMが物理マシンS−2に移動した後であるから、物理マシンS−2には合計で15個のVMが存在し、各VMごとのユーザ数が2なので、この時点での物理マシンS−2のユーザ数は30人ということになる。その結果、図15に示すように、経路2の上り経路(特にスイッチSW4と物理マシンS−2の間)の物理リンクでは、30人のユーザに対してそれぞれ20Mbpsのリザーブ帯域Bが設定されているので、600Mbpsが使用されていることになり、余りは400Mbpsしかない。経路4の下り経路(特に、スイッチSW2とスイッチSW4の間)については同様の考察をすると、ユーザが8人であるので、840Mbpsが余っていることになる。経路2の上り経路においてVM−20の移動のための412Mbpsの帯域が確保できないので、通常経路(物理マシンS−4→スイッチSW2→スイッチSW4→スイッチSW1→物理マシンS−2の経路)ではVM−20の移動を行えないことになる。
そこで、通常経路以外の各経路における余り帯域を求めると、この時点では物理マシンS−3上には既にVMが存在しないので、図16に示すように、経路3の下り経路(特にスイッチSW2とスイッチSW3の間)は1000Mbpsが余っており、経路1の上り
帯域(特にスイッチSW3とスイッチSW1の間)も、物理マシンS−1のユーザ数がこの時点で2人なので、960Mbps余っている。スイッチSW1と物理マシンS−2との間の通常の物理リンクでは、上述したように、経路2の上り経路によって帯域が大量に使用されているが、スイッチSW1と物理マシンS−2の間の冗長インタフェースを利用した物理リンクは未使用である。
そこで、移動順が11番目であるVM−20について、物理マシンS−4→スイッチSW2→スイッチSW3→スイッチSW1→物理マシンS−2の経路であって、スイッチSW1と物理マシンS−2の間は冗長インタフェースを利用する経路がVM移動トラフィックの経路として選択される。
Step7では、以上のようにして、各VMについての移動経路が決定される。この実施例の場合、全てのVMについてそのVM移動トラフィックのための経路が決定されるため、空き経路選択方式におけるStep8は実行されない。
11,12 物理マシン
13 ネットワーク
14 共有ストレージ
15 仮想化ソフトウェア
16 VM管理サーバ
20 管理装置
21 パケット受信部
22 パケット送信部
23 データ保存部
24 VM管理部
25 情報収集部
26 移動先マシン決定部
27 スケジュール決定部
28 帯域・経路制御設定部
30 スイッチ
31 VM状態監視部
32 帯域制御部
33 トラフィック監視部
34 仮想スイッチ
35 スイッチ群

Claims (7)

  1. 複数の物理マシンと前記物理マシン間を接続するネットワークとを有し前記各物理マシン上で仮想マシンが動作可能であり、物理マシン間で仮想マシンを移動させるときに発生するVM移動トラフィックと前記VM移動トラフィックとは異なるその他トラフィックとが共通のリンクを使用する仮想マシンシステムにおける、複数の仮想マシンの動的配置を行う方法であって、
    仮想マシンの収容ユーザ数の合計と物理マシンが処理可能なユーザ数とに基づいて、移動先となる物理マシンの台数を算出し、物理マシンごとに、当該物理マシン上にある各仮想マシンについての移動に要する時間の和を算出し、前記和が大きい順に、前記算出された移動先となる物理マシンの台数だけ、前記各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定段階と、
    前記移動先マシン決定段階において前記移動先となる物理マシンと決定された移動先の物理マシンのユーザアクセス数が、前記移動先の物理マシン以外の物理マシンである移動元の物理マシンのユーザアクセス数以上であるときには、移動するために必要な帯域が大きい仮想マシンから順に移動するように、前記各仮想マシンの移動の順番を決定し、移動順が1番目となる仮想マシンから順に、各仮想マシンを移動させるときの前記その他トラフィックに割り当てられる帯域を求め、該その他トラフィックに割り当てられる帯域の全てが当該その他トラフィックに設定されたリザーブ帯域を下回らない場合には、前記決定した各仮想マシンの移動の順番で仮想マシンの移動を行うスケジュール決定段階と、
    を有する、方法。
  2. 前記移動先マシン決定段階において、物理マシンごとに、当該物理マシン上にある仮想マシンについての前記移動に要する時間の和を算出し、前記和が大きい順に、移動先となるべき物理マシンを決定し、移動元の物理マシンごとに当該移動元の物理マシン上の仮想マシンの全てが同一の移動先の物理マシンに移動するように、仮想マシンの移動先の物理マシンを決定する、請求項1に記載の方法。
  3. 前記移動先マシン決定段階において、移動完了後における各物理マシンのユーザ数が前記移動先の物理マシン間で均等となるように、仮想マシンごとの移動先の物理マシンを決定する、請求項2に記載の方法。
  4. 物理マシン1台当たりで処理できるユーザ数の上限値に基づいて、前記仮想マシンシステムの全体でのユーザ数を処理することが可能な物理マシンの最小の台数を求め、該台数を前記移動先の物理マシンの台数とする、請求項1乃至3のいずれか1項に記載の方法。
  5. 前記スケジュール決定段階において、各仮想マシンを移動させるときの前記その他トラフィックに割り当てられる帯域を求め、前記その他トラフィックに割り当てられる帯域のいずれかが当該その他トラフィックに設定されたリザーブ帯域を下回る場合には、前記仮想マシンの移動を行う処理を中止し、
    前記移動先マシン決定段階において、前記移動先となる物理マシンの台数を1つ増やし、各仮想マシンについての移動に要する時間の和が大きい順に、前記算出された移動先となる物理マシンの台数だけ、前記各仮想マシンの移動先となる物理マシンを再度決定する、請求項1に記載の方法。
  6. 前記スケジュール決定段階において、前記各仮想マシンの移動の順番を決定したのち、前記仮想マシンシステム内にあって前記仮想マシンが移動するのに必要な帯域を有する経路を探索する、請求項1乃至のいずれか1項に記載の方法。
  7. 複数の物理マシンと前記物理マシン間を接続するネットワークとを有し、前記各物理マシン上で仮想マシンが動作可能な仮想マシンシステムであって、
    前記物理マシン間での前記仮想マシンのライブマイグレーションを制御し、帯域制御の指示を行う管理装置を備え、
    前記管理装置は、
    前記物理マシン間で仮想マシンを移動させて仮想マシンの動的配置を行う際に、前記仮想マシンの収容ユーザ数の合計と物理マシンが処理可能なユーザ数とに基づいて、移動先となる物理マシンの台数を算出し、物理マシンごとに、当該物理マシン上にある各仮想マシンについての移動に要する時間の和を算出し、前記和が大きい順に、前記算出された移動先となる物理マシンの台数だけ、前記各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定手段と、
    前記移動先マシン決定手段において前記移動先となる物理マシンと決定された移動先の物理マシンのユーザアクセス数が、前記移動先の物理マシン以外の物理マシンである移動元の物理マシンのユーザアクセス数以上であるときには、移動するために必要な帯域が大きい仮想マシンから順に移動するように、前記各仮想マシンの移動の順番を決定し、移動順が1番目となる仮想マシンから順に、各仮想マシンを移動させるときのVM移動トラフィックとは異なるその他トラフィックに割り当てられる帯域を求め、該その他トラフィックに割り当てられる帯域の全てが当該その他トラフィックに設定されたリザーブ帯域を下回らない場合には、前記決定した各仮想マシンの移動の順番で仮想マシンの移動を行うスケジュール決定手段と、
    を有する、仮想マシンシステム。
JP2013078323A 2013-04-04 2013-04-04 仮想マシンの動的配置方法及び仮想マシンシステム Expired - Fee Related JP5952214B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013078323A JP5952214B2 (ja) 2013-04-04 2013-04-04 仮想マシンの動的配置方法及び仮想マシンシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013078323A JP5952214B2 (ja) 2013-04-04 2013-04-04 仮想マシンの動的配置方法及び仮想マシンシステム

Publications (2)

Publication Number Publication Date
JP2014203232A JP2014203232A (ja) 2014-10-27
JP5952214B2 true JP5952214B2 (ja) 2016-07-13

Family

ID=52353628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013078323A Expired - Fee Related JP5952214B2 (ja) 2013-04-04 2013-04-04 仮想マシンの動的配置方法及び仮想マシンシステム

Country Status (1)

Country Link
JP (1) JP5952214B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017134668A (ja) * 2016-01-28 2017-08-03 富士通株式会社 情報処理システム、情報処理システムの制御方法および管理装置の制御プログラム
JP6645275B2 (ja) * 2016-03-04 2020-02-14 富士通株式会社 情報処理装置、仮想マシン移動方法、および仮想マシン制御プログラム
JP2018028735A (ja) * 2016-08-15 2018-02-22 富士通株式会社 移動制御プログラム、移動制御装置及び移動制御方法
JP7447781B2 (ja) * 2020-12-22 2024-03-12 株式会社オートネットワーク技術研究所 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム
JP7447782B2 (ja) 2020-12-23 2024-03-12 株式会社オートネットワーク技術研究所 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム
JP7460594B2 (ja) 2021-12-13 2024-04-02 株式会社日立製作所 管理システム、データリバランス管理方法、及びデータリバランス管理プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595737B2 (en) * 2009-03-17 2013-11-26 Hitachi, Ltd. Method for migrating a virtual server to physical server according to a variation ratio, a reference execution time, a predetermined occupied resource amount and a occupancy amount
JP5454135B2 (ja) * 2009-12-25 2014-03-26 富士通株式会社 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム

Also Published As

Publication number Publication date
JP2014203232A (ja) 2014-10-27

Similar Documents

Publication Publication Date Title
JP5952214B2 (ja) 仮想マシンの動的配置方法及び仮想マシンシステム
Ge et al. GA-based task scheduler for the cloud computing systems
US10341208B2 (en) File block placement in a distributed network
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
US8898505B2 (en) Dynamically configureable placement engine
WO2016155335A1 (zh) 异构多核可重构计算平台上任务调度的方法和装置
KR102181640B1 (ko) 재구성가능한 분산 처리
Convolbo et al. GEODIS: towards the optimization of data locality-aware job scheduling in geo-distributed data centers
Zhang et al. Improving Hadoop service provisioning in a geographically distributed cloud
WO2019056771A1 (zh) 分布式存储系统升级管理的方法、装置及分布式存储系统
WO2013139037A1 (zh) 用于调度资源的方法及装置
CN111641567B (zh) 基于集中式控制器的动态网络带宽分配与管理
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
CN113382077A (zh) 微服务调度方法、装置、计算机设备和存储介质
Dai et al. Scheduling for response time in Hadoop MapReduce
CN109739634A (zh) 一种原子任务执行方法及装置
JP5876425B2 (ja) 仮想マシンのライブマイグレーションスケジューリング方法及び仮想マシンシステム
JP2014216012A (ja) データセンターネットワークにおけるリスク軽減
JP6565429B2 (ja) 仮想マシン共有を用いるデータセンタネットワークにおけるリスク軽減
JP2016220126A (ja) ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置
JP6288633B2 (ja) ネットワーク制御方法
Rista et al. Evaluating, estimating, and improving network performance in container-based clouds
JP5758358B2 (ja) 仮想マシンシステム及びその高速ライブマイグレーション方法
WO2020022018A1 (ja) リソース割当装置、リソース管理システム、および、リソース割当プログラム
Zhou et al. Resource optimization for survivable embedding of virtual clusters in cloud data centers

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20141027

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150701

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160519

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: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160609

R150 Certificate of patent or registration of utility model

Ref document number: 5952214

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees