(57)【要約】【課題】複数の物理マシンを有して各物理マシン上で仮想マシンが動作可能である仮想マシンシステムにおいて、ユーザトラフィックの帯域がリザーブ帯域を下回らないという条件の下で、物理マシン間での仮想マシンの動的配置を短時間で完了させる。【解決手段】各仮想マシンごとにその仮想マシンの移動に要する時間を算出し、算出した結果に基づいて、移動に要する時間が短い仮想マシンが優先して移動するように、各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定部４１と、移動先マシン決定部４１での決定に基づき、ユーザトラフィックに割り当てられる帯域がリザーブ帯域を下回らないという条件で、各仮想マシンの移動の順番を決定するスケジュール決定部４２と、を設ける。【選択図】            図６
2014203232.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理マシンと前記物理マシン間を接続するネットワークとを有し前記各物理マシン上で仮想マシンが動作可能であり、物理マシン間で仮想マシンを移動させるときに発生するＶＭ移動トラフィックと前記ＶＭ移動トラフィックとは異なるその他トラフィックとが共通のリンクを使用する仮想マシンシステムにおける、複数の仮想マシンの動的配置を行う方法であって、
仮想マシンごとに当該仮想マシンの移動に要する時間を算出し、算出した結果に基づいて、移動に要する時間が短い仮想マシンが優先して移動するように、前記各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定段階と、
前記移動先マシン決定段階での決定に基づき、前記その他トラフィックに割り当てられる帯域が当該その他トラフィックに設定されたリザーブ帯域を下回らないという条件で、前記各仮想マシンの移動の順番を決定するスケジュール決定段階と、
を有する、方法。
【請求項２】
前記移動先マシン決定段階において、物理マシンごとに、当該物理マシン上にある仮想マシンについての前記移動に要する時間の和を算出し、前記和が大きい順に、移動先となるべき物理マシンを決定し、移動元の物理マシンごとに当該移動元の物理マシン上の仮想マシンの全てが同一の移動先の物理マシンに移動するように、仮想マシンごとの移動先の物理マシンを決定する、請求項１に記載の方法。
【請求項３】
前記移動先マシン決定段階において、移動完了後における各物理マシンのユーザ数が前記移動先の物理マシン間で均等となるように、仮想マシンごとの移動先の物理マシンを決定する、請求項２に記載の方法。
【請求項４】
物理マシン１台当たりで処理できるユーザ数の上限値に基づいて、前記仮想マシンシステムの全体でのユーザ数を処理することが可能な物理マシンの最小の台数を求め、該台数を前記移動先の物理マシンの台数とする、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
前記スケジュール決定段階において、移動元の物理マシンと移動先の物理マシンとの間でユーザアクセスが分散しているときに、移動するために必要な帯域が大きい仮想マシンが早期に移動し、移動元の物理マシンと移動先の物理マシンとの間でユーザアクセスが偏っているときに、移動するために必要な帯域が小さな仮想マシンが早期に移動するように、前記各仮想マシンの移動の順番を決定する、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記スケジュール決定段階において、前記その他トラフィックに割り当てられる帯域を前記リザーブ帯域に制限して残りの帯域を前記各仮想マシンの移動に割り当てるものとし、最も速く移動が完了するように前記各仮想マシンの移動の順番を決定する、請求項５に記載の方法。
【請求項７】
前記スケジュール決定段階において、前記仮想マシンシステム内にあって前記仮想マシンが移動するのに必要な帯域を有する経路を探索し、探索された経路を利用することとして前記各仮想マシンの移動の順番を決定する、請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
複数の物理マシンと前記物理マシン間を接続するネットワークとを有し、前記各物理マシン上で仮想マシンが動作可能な仮想マシンシステムであって、
前記物理マシン間での前記仮想マシンのライブマイグレーションを制御し、帯域制御の指示を行う管理装置を備え、
前記管理装置は、
前記物理マシン間で仮想マシンを移動させて仮想マシンの動的配置を行う際に、各仮想マシンごとに当該仮想マシンの移動に要する時間を算出し、算出した結果に基づいて、移動に要する時間が短い仮想マシンが優先して移動するように、前記各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定手段と、
前記移動先マシン決定手段での決定に基づき、前記その他トラフィックに割り当てられる帯域が当該その他トラフィックに設定されたリザーブ帯域を下回らないという条件で、前記各仮想マシンの移動の順番を決定するスケジュール決定手段と、
を有する、仮想マシンシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン技術に関し、特に、複数の物理マシンを有して仮想マシンの動作を停止させることなく物理マシン間で仮想マシンの移動を行うライブマイグレーション技術を用いて仮想マシンを物理マシンに動的に配置する方法と、そのような動的配置方法を実行する仮想マシンシステムとに関する。
【背景技術】
【０００２】
負荷の最適配置や省電力化などを目的として、仮想マシン技術が注目されている。仮想マシン（ＶＭ：Virtual Machine）は、コンピュータの動作をエミュレートするソフトウェアによって実現されるものであり、仮想マシン技術を用いることによって、１台の物理マシン（物理的な実体としてのコンピュータ）上で、異なるオペレーティングシステム（ＯＳ：Operating System）を動作させてそのＯＳ上で各種のアプリケーションソフトウェア（ＡＰＬ）を実行させたり、あるいは、本来ならば異なるコンピュータアーキテクチャ環境で動作するソフトウェアを実行させたりすることができる。仮想マシン技術は、例えば、データセンタなどで広く用いられている。
【０００３】
また、ネットワークに接続された異なる物理マシン間で、仮想マシンの動作を止めずにＯＳごとその仮想マシンを移動させる「ライブマイグレーション技術」がある。ライブマイグレーションは、ネットワークを介して、仮想マシンのメモリ情報のコピーを移動先の物理マシンに送信することで実現している。このライブマイグレーション技術により、例えばある物理マシンが高負荷になった際に、当該物理マシン上で動作している仮想マシンを他の物理マシンに移動させることによって、高負荷状態を解消することができる。さらには、仮想マシンでの処理量に応じて物理マシンに効率よく仮想マシンを配置することで、物理マシンの使用効率を向上させることができる。
【０００４】
図１は、仮想マシンのライブマイグレーションを説明する図である。移動元の物理マシン１１と移動先の物理マシン１２とは、ネットワーク１３で接続しており、また共有ストレージ１４を共有している。各物理マシン１１，１２では、それぞれ、仮想化ソフトウェア１５が動作しており、仮想化ソフトウェア１５によって物理マシン１１，１２上に仮想マシン（ＶＭ）が実現されている。ＶＭでは、オペレーティングシステムＯＳとアプリケーションソフトウェアＡＰＬが実行されている。ライブマイグレーションは、移動元の物理マシン１１から移動先の物理マシン１２へのネットワーク１３を介したメモリコピーによって達成される。
【０００５】
非特許文献１には、物理マシン上で動作するＶＭを管理するＶＭ管理サーバを設け、物理マシン上で動作しているＶＭに対し、ＶＭ管理サーバがライブマイグレーションの実行指示を与えると、ＶＭの動作を継続したまま、移動元の物理マシンと移動先の物理マシンとの間のネットワークを通じて、メモリ情報の送信を行うことが開示されている。送信中に発生するメモリ差分情報が決められた量まで少なくなると、移動元の物理マシン上で動作しているＶＭを一旦停止し、移動先の物理マシン上で、そのＶＭを立ち上げる。これによって、ＶＭのライブマイグレーションを実現している。
【０００６】
図２は、ライブマイグレーションに要する時間を説明する図である。ライブマイグレーションのためにメモリコピーを行う場合、メモリコピーを行っている間も移動元の物理マシン上ではＶＭが動作しているため、メモリ情報が逐次変化する。そこで、移動元の物理マシンで移動対象ＶＭが使用しているメモリ領域に相当するメモリコピーを実行したのち、そのメモリコピーの間に変化したメモリ情報に関する差分をコピーして移動先の物理マシンに送信する必要がある。この差分コピーの間にもメモリ状態は変化するから、さらにその間の差分をコピーする必要がある。このように、メモリコピーと何回かの差分コピーを実行してメモリ差分情報が上記の量にまで小さくなると（ここまでに要する時間をマイグレーション時間と呼ぶ）、移動元でＶＭを停止し、最後に残った差分をコピーし、その後、移動先でＶＭを立ち上げ、ＶＭによる処理を再開する。ここでの移動元でのＶＭの停止から移動先でのＶＭの再開までに要する時間をダウンタイムと呼ぶ。ライブマイグレーションの全体の要する時間（総マイグレーション時間）は、マイグレーション時間とダウンタイムとの和で表される。
【０００７】
ところで、仮想マシン環境を構成するネットワークには、ＶＭのライブマイグレーション用のネットワークの他にも、共有ストレージアクセスのためのＳＡＮ（ストレージエリアネットワーク：Storage Area Network）、予備系のＶＭとの同期をとるためのフォールトトレランス(fault tolerance)用ネットワーク、ＶＭ管理サーバとの通信のためのネットワーク、ＷＡＮ（広域ネットワーク：Wide Area Network）と接続するネットワークなど、さまざまなネットワークが必要である。図３は、ＶＭとネットワーク環境の一例を示している。インタフェース数の制限やコストの面などから全てのネットワークを物理的に分離することは非効率であり、物理リンクをこれらのネットワークで共用し仮想ローカルエリアネットワーク（ＶＬＡＮ：Virtual Local Area Network）技術などにより論理的にネットワークを分けることで、効率よくリソースを使用することができる。データセンタ等では、このようなネットワーク統合をＤＣＢ(Data Center Bridging)と呼び、標準化も行われている（非特許文献２）。
【０００８】
異なる用途のネットワークを統合して物理リンクを共用するようにした場合、ＶＭのライブマイグレーションの実行時において、移動元の物理マシンと移動先の物理マシンとの間の物理ネットワークには、ＶＭのライブマイグレーション用のメモリ情報以外にも、さまざまなトラフィックが流れている可能性がある。
【０００９】
図４は、ライブマイグレーションの実行時に想定されるネットワークトラフィックの一例を示す図である。図４では、複数の物理マシンがネットワークで接続されている仮想マシンシステムが示されており、ここでは、物理マシン＃１〜物理マシン＃３がスイッチ＃１に接続し、同様に、物理マシン＃４〜物理マシン＃６がスイッチ＃２に接続している。スイッチ＃１及びスイッチ＃２は、さらに、ルータを介してパケット転送網にも接続している。スイッチ＃１には、さらに、共有ストレージ１４と、ＶＭ管理サーバ１６も接続している。ここで、物理マシン＃３は、予備系のＶＭのためのものであるとし、物理マシン＃１から物理マシン＃２に１つのＶＭ（ＶＭ−１）をライブマイグレーションする場合を考える。このとき、物理マシン＃１と物理マシン＃２との間に、ライブマイグレーションのメモリコピーのためのＶＭ移動トラフィックが発生するが、図４に示したものではこのほかに、物理マシン＃１と共有ストレージ１４の間には共有ストレージアクセスのトラフィックが発生し、物理マシン＃１とパケット転送網の間にはユーザトラフィックが発生し、物理マシン＃１と物理マシン＃３との間にはフォールトトレランス同期情報のトラフィックが発生する。物理マシン＃１とスイッチ＃１との間の物理リンクにおいて疎通可能な帯域幅によっては、共有ストレージアクセスのトラフィック、ユーザトラフィック、フォールトトレランス同期情報のトラフィックなど、ＶＭ移動トラフィック以外のトラフィック（このトラフィックのことを「その他トラフィック」とも呼ぶ）によって、ＶＭ移動トラフィックが使用可能な帯域が極端に小さくなることがある。物理リンクにおいてＶＭ移動トラフィックが使用可能な帯域が狭いと、メモリコピーに時間がかかってライブマイグレーション完了までに時間がかかるようになったり、メモリ差分情報がなかなか小さくならずにマイグレーション失敗となったりする可能性がある。
【００１０】
従来のライブマイグレーション技術における上述した課題を解決するために、本発明者らは既に特願２０１２−１７６８１１において、ＶＭのライブマイグレーションの実行時に、ＶＭのメモリコピーのトラフィックが流れるネットワーク上でその他トラフィックのための帯域を一時的に制限し、メモリコピーのトラフィックのための帯域を確保することを提案している。また本発明者らは特願２０１３−２４３５８において、ネットワーク統合下で１台の移動元物理マシンから１台の移動先物理マシンに複数のＶＭを移動させる場合に、メモリ量が大きい方から（あるいは小さい方）から順にＶＭを移動させ、ＶＭの移動中は、対応するＶＭ移動トラフィックと物理リンクを共有するその他トラフィックについて帯域を制御するＶＭ移動スケジューリング方法を提案している。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】“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]、ＷＢＢ  Ｆｏｒｕｍ、株式会社インプレスＲ＆Ｄ、［2013年2月15日検索］、インターネット〈http://wbb.forum.impressrd.jp/report/20090513/725〉
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述したように、ネットワーク統合の下において、ＶＭのライブマイグレーションの完了までに時間がかかりすぎることやマイグレーション失敗を防止するために、ライブマイグレーションと物理リンクを共用するその他トラフィックの帯域を制限することが提案されている。
【００１３】
しかしながら、仮想マシンシステムの用途などによっては、ＶＭのライブマイグレーションを行っているときであっても、その他トラフィックにある程度の帯域を確保しなければならない場合がある。言い換えれば、仮想マシンシステムにおいて、その他トラフィックに所定の帯域（これをリザーブ帯域とも呼ぶ）が予約されており、その他トラフィックに割り当てられる帯域はリザーブ帯域を下回ってはならない場合がある。ＶＭのライブマイグレーション時にその他トラフィックの帯域を制限する上述したような方法では、その他トラフィックに対してそのリザーブ帯域を確保できなくなるおそれがある。
【００１４】
図５は、ＶＭライブマイグレーションの実行時に、その他トラフィックの帯域を制限するようにしたシステムの構成の一例を示している。このシステムにおいては、複数の物理マシン（物理マシン＃１〜物理マシン＃ｉ）がスイッチ３０を介して相互に接続している。各物理マシン上では１または複数のＶＭを動作させることが可能であり、各物理マシンには当該物理マシン上のＶＭの状態を監視するＶＭ状態監視部３１が設けられている。各スイッチ３０はルータを介してパケット転送網に接続し、パケット転送網には複数のユーザ端末が接続している。物理マシン＃１〜物理マシン＃ｉやＶＭ、スイッチ３０を制御するための管理装置２０も設けられている。
【００１５】
ここでは説明を簡単にするために、その他トラフィックは、ユーザトラフィックのみであるものとするが、ユーザトラフィックの他に、フォールトトレラント同期情報用のトラフィックや、共有ストレージアクセス用のトラフィックなどがその他トラフィックに含まれていてもよい。図５に示した構成では、ユーザ端末から各ＶＭに対するユーザトラフィック（図示点線）と、ライブマイグレーション時にＶＭのメモリーコピーを行うためのＶＭ移動トラフィック（図示太実線）とがネットワークを共有している。特に、物理マシン＃１上のそれぞれのＶＭに関するユーザトラフィックの使用帯域がＢｕ１，Ｂｕ２であり、物理マシン＃２上のそれぞれのＶＭに関するユーザトラフィックの使用帯域がＢｕ３，Ｂｕ４であるとする。Ｂｕ１〜Ｂｕ４は、最低でもリザーブ帯域である。
【００１６】
その他トラフィックであるユーザトラフィックには、リザーブ帯域が設定されおり、ユーザトラフィックがリザーブ帯域を下回ってはいけない、という条件の下で、ＶＭ移動を行う場合を考える。１台の物理マシン（例えば物理マシン＃１）の上で動作しているＶＭを、別の物理マシン（例えば、物理マシン＃２）へ移動させるものとする。このときのＶＭ移動トラフィックの使用帯域をＢｍで表す。
【００１７】
すると、スイッチ３０と物理マシン＃１との間の物理リンクに関し、
（Ｂｕ１＋Ｂｕ２＋Ｂｍ）≦インタフェース速度
が満たされる必要があり、スイッチ３０と物理マシン＃２との間の物理リンクに関しても、
（Ｂｕ３＋Ｂｕ４＋Ｂｍ）≦インタフェース速度
が満たされる必要がある。前述したように、ネットワーク統合環境下において、ユーザトラフィックとＶＭ移動トラフィックとの間で帯域競合が起こる。
【００１８】
複数の物理マシンを備える仮想マシンシステムにおいて、ユーザトラフィックなどのその他トラフィックがリザーブ帯域を下回らない、という条件のもとで、複数のＶＭを移動させてＶＭの再配置を行う場合、各ＶＭの移動先の物理マシンや移動順序をランダムに決定すると、全ての移動を完了するためには長い時間を要する可能性がある。その理由は、各ＶＭではそれぞれメモリ使用量やメモリ書き込み速度が異なっておりＶＭによってはマイグレーション時の移動に大きな帯域を必要とするものがあるが、ユーザ端末からのアクセスが特定の物理マシンに偏って多く存在する場合に、その特定の物理マシンに対し、そのように移動に大きな帯域を要するＶＭを移動させるようとすると、多くのユーザトラフィック量が競合し、ＶＭ移動トラフィックに対して十分な帯域を与えることができなくなるからである。
【００１９】
本発明の目的は、ユーザトラフィックなどのその他トラフィックに対してリザーブ帯域が割り当てられている仮想マシンシステムにおいて、物理マシンの使用効率の向上や負荷の分散などを図るために複数の物理マシンに対して仮想マシンを動的に配置する際に、仮想マシンの移動完了までの時間を短縮できる動的配置方法を提供することにある。
【００２０】
本発明の別の目的は、ユーザトラフィックなどのその他トラフィックに対してリザーブ帯域が割り当てられている仮想マシンシステムであって、物理マシンの使用効率の向上や負荷の分散などを図るために複数の物理マシンに対して仮想マシンを動的に配置する際に、仮想マシンの移動完了までの時間を短縮できる仮想マシンシステムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明の仮想マシンの動的配置方法は、複数の物理マシンと物理マシン間を接続するネットワークとを有し各物理マシン上で仮想マシンが動作可能であり、物理マシン間で仮想マシンを移動させるときに発生するＶＭ移動トラフィックとＶＭ移動トラフィックとは異なるその他トラフィックとが共通のリンクを使用する仮想マシンシステムにおける、複数の仮想マシンの動的配置を行う方法であって、仮想マシンごとに当該仮想マシンの移動に要する時間を算出し、算出した結果に基づいて、移動に要する時間が短い仮想マシンが優先して移動するように、各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定段階と、移動先マシン決定段階での決定に基づき、その他トラフィックに割り当てられる帯域が当該その他トラフィックに設定されたリザーブ帯域を下回らないという条件で、各仮想マシンの移動の順番を決定するスケジュール決定段階と、を有する。
【００２２】
本発明の仮想マシンシステムは、複数の物理マシンと物理マシン間を接続するネットワークとを有し、各物理マシン上で仮想マシンが動作可能な仮想マシンシステムであって、物理マシン間での仮想マシンのライブマイグレーションを制御し、帯域制御の指示を行う管理装置を備え、管理装置は、物理マシン間で仮想マシンを移動させて仮想マシンの動的配置を行う際に、仮想マシンごとに当該仮想マシンの移動に要する時間を算出し、算出した結果に基づいて、移動に要する時間が短い仮想マシンが優先して移動するように、各仮想マシンの移動先となる物理マシンを決定する移動先マシン決定手段と、移動先マシン決定手段での決定に基づき、その他トラフィックに割り当てられる帯域が当該その他トラフィックに設定されたリザーブ帯域を下回らないという条件で、各仮想マシンの移動の順番を決定するスケジュール決定手段と、を有する。
【００２３】
本発明において、仮想マシン移動のためのメモリコピートラフィックとは異なるその他トラフィックは、例えば、ユーザトラフィックである。
【発明の効果】
【００２４】
本発明によれば、仮想マシンの移動によるトラフィックがその他トラフィックに与える影響を考慮して、移動先の物理マシンが決定され、また、仮想マシンの移動のスケジュールが決定されるので、その他トラフィックに設定される帯域がリザーブ帯域を下回らないという制約の下で、移動先の物理マシンや仮想マシンの移動順をランダムに決定した場合に比べ、短時間で全ての仮想マシンの移動を完了させることが可能になる。
【図面の簡単な説明】
【００２５】
【図１】仮想マシン（ＶＭ）のライブマイグレーションを説明する図である。
【図２】ライブマイグレーションに必要な時間を説明する図である。
【図３】ＶＭとネットワーク環境の一例を示す図である。
【図４】ライブマイグレーションの実行時に想定されるネットワークトラフィックの一例を示す図である。
【図５】ＶＭのライブマイグレーションの実行時に、ＶＭメモリコピー以外のトラフィックの帯域を制限するようにしたシステムの構成の一例を示すブロック図である。
【図６】本発明の実施の一形態の仮想マシンシステムにおけるライブマイグレーションを説明するブロック図である。
【図７】仮想マシンシステムの構成例を示すブロック図である。
【図８】移動先マシン決定アルゴリズムの入出力を説明する図である。
【図９】スケジュール決定アルゴリズムの入出力を説明する図である。
【図１０】アルゴリズムの説明において使用される記号を説明する図である。
【図１１】実施例１での仮想マシンシステムの構成例を示すブロック図である。
【図１２】実施例２での仮想マシンシステムの構成例を示すブロック図である。
【図１３】図１２に示す仮想マシンシステムのネットワークトポロジーを示す図である。
【図１４】実施例２での経路決定過程を説明する図である。
【図１５】実施例２での経路決定過程を説明する図である。
【図１６】実施例２での経路決定過程を説明する図である。
【発明を実施するための形態】
【００２６】
次に、本発明を実施するための形態について、図面を参照して説明する。図６は、本発明の実施の一形態の仮想マシンシステムにおけるライブマイグレーションを説明する図である。ここでは説明を簡単にするために、仮想マシンのライブマイグレーションのメモリコピーのためのトラフィック（ＶＭ移動トラフィック）以外のトラフィックであるその他トラフィックは、ユーザトラフィックであるものとする。もっとも、その他トラフィックとしてユーザトラフィック以外のトラフィックが存在する場合においても、本実施形態の仮想マシンシステムを適用することが可能である。
【００２７】
図６に示した仮想マシンシステムは、図５に示したものと同様に、複数の物理マシン（図示した例では５台の物理マシン＃１〜物理マシン＃５）がネットワークによって接続された構成を有している。各物理マシンはネットワーク内のスイッチ３０に接続している。ここでは、複数のスイッチ３０が設けられ、物理マシンごとにいずれかのスイッチ３０に接続するようになっている。各スイッチ３０は、ネットワーク内のルータを介してパケット転送網にも接続している。パケット転送網にはいくつかのユーザ端末も接続している。
【００２８】
各物理マシンには、当該物理マシンの負荷状況、各ＶＭのＣＰＵ使用率やメモリ使用量、アプリケーションの動作状態などを監視してそれらに関する情報を収集するＶＭ状態監視部３１が設けられている。特にＶＭ状態監視部３１は、各ＶＭのメモリ使用量およびメモリ書き込み速度を監視する機能を有する。ここでメモリ書き込み速度とは、ＶＭのメモリに対して情報が時間当たりどれだけ書き込まれるかを示すものである。メモリ書き込み速度が大きければ、図２に示した差分コピーをより大量に行わなければならなくなる。ＶＭ状態監視部３１は、管理装置２０に設けられていてもよい。また各物理マシンには、当該物理マシン上に配置されるＶＭの相互間やＶＭと外部とのデータ転送のために、仮想スイッチ３４も設けられている。
【００２９】
この仮想マシンシステムにおいても、図５に示す仮想マシンシステムと同様に、各物理マシン、各ＶＭ（仮想マシン）及び各スイッチを制御し、ＶＭのライブマイグレーション（移動）や帯域制御を行い、特に、ライブマイグレーションの実行時にネットワーク内の各トラフィックの帯域を制限する管理装置２０が設けられている。図６に示す仮想マシンシステムの管理装置２０は、図５に示したものと比べ、特に、移動先マシン決定部２６と、スケジュール決定部２７とを備えている。
【００３０】
移動先マシン決定部２６は、管理装置２０のデータ保存部２３に格納されているＶＭ状態情報と移動先マシン決定アルゴリズム４１とにしたがって、この仮想マシンシステム内のＶＭの中で、ＶＭ移動に長い時間を必要としない（言い換えればメモリ情報量が小さい）ＶＭを優先的に移動させ、ＶＭ移動に長い時間を必要とする（言い換えればメモリ情報量が大きい）ＶＭについては元の物理マシンに残って移動させないように、各ＶＭの移動先物理マシンを決定する。結局、移動先マシン決定部２６は、仮想マシンシステムの全体を見て、ＶＭの最適な移動先物理マシンを決定する。このような移動先マシン決定部２６を設けることによって、複数のＶＭを物理マシン間で移動させる時の移動全体の時間を短縮することができる。
【００３１】
スケジュール決定部２７は、移動先マシン決定部２６によって移動先物理マシンが決定されると、管理装置２０のデータ保存部２３に格納されているＶＭ状態情報とスケジュール決定アルゴリズム２７とにしたがって、移動先及び移動元の物理マシンのユーザ数の推移に基づき、ユーザ数がどちらかの物理マシンに偏って多く存在する場合には、ＶＭ移動に大きな帯域を必要としないＶＭを移動させたり、他の用途の経路がある場合（例えば、他の物理マシンに割り当てられた経路に余剰帯域がある場合）には、その経路を一時的に利用したりするようにして、ＶＭの移動順や、ユーザトラフィックの帯域制御値、各物理マシンの仮想スイッチ３４やスイッチ３０での経路制御方法を決定する。ここで物理マシンのユーザ数とは、その物理マシンに対してアクセスを行っているユーザ端末の数、すなわちユーザアクセス数のことを意味する。このようなスケジュール決定部２７を設けることによっても、移動先マシン決定部２６の場合と同様に、複数のＶＭを物理マシン間で移動させる時の移動全体の時間を短縮することができる。
【００３２】
さらに管理装置２０は、移動先マシン決定部２６及びスケジュール決定部２７のほかに、ネットワークとのインタフェースとしてパケットを受信するパケット受信部２１と、ネットワークとのインタフェースとしてパケットを送信するパケット送信部２２と、上述したデータ保存部２３と、物理マシン上のＶＭを管理するＶＭ管理部２４と、必要となる情報を収集してデータ保存部２３に格納する情報収集部２５と、移動先マシン決定部２６によって決定された移動先の物理マシンとスケジュール決定部２７によって決定された帯域制限値や経路制御方法に基づき、各スイッチ３０に対して帯域及び経路の制御設定を行う帯域・経路制御設定部２８と、を備えている。ここでＶＭ管理部２４は、特に、スケジュール決定部２７で決定された結果に基づき、ＶＭのライブマイグレーションの開始を各物理マシンに指示し、また各物理マシンの仮想スイッチ３４の経路設定を行う。このような管理装置２０は、ライブマイグレーションを実行する同一グループの物理マシンに接続するが、管理装置２０からの接続は直接接続である必要はなく、ネットワーク上の到達性があればよい。したがって図示したものでは、管理装置２０は、各スイッチ３０に対して直接接続している。
【００３３】
各スイッチ３０には帯域制御部３２とトラフィック監視部３３とが設けられている。帯域制御部３２は、トラフィックごとの帯域を制御するものであって、特に、管理装置２０の帯域・経路制御設定部２８から指示された通りに各トラフィックの帯域制御を行う機能を有する。帯域制御部３２は、スイッチではなく各物理マシンに設けられていてもよい。物理マシンに帯域制御部３２を設ける場合には、ＶＭを接続する仮想スイッチ３４上で帯域制御を行えばよい。トラフィック監視部３３は、ネットワーク内のトラフィックを監視するものであって、特に、各ＶＭの入出力トラフィックを監視する。トラフィック監視部３３は、各物理マシンあるいは管理装置２０に設けられていてもよい。管理装置２０にトラフィック監視部３３を設ける場合、そのトラフィック監視部は、ネットワークを通じて各物理マシンに接続し、トラフィックに関する情報を取得すればよい。
【００３４】
上記の構成において、トラフィック監視部３３から、ＶＭのライブマイグレーションを行う物理マシン間のリンクを流れるトラフィックの情報を収集し、ＶＭ状態監視部３１から、物理マシンの負荷状況（特に物理マシン上のＶＭの数）、各ＶＭのＣＰＵ使用率やメモリ使用量、メモリ書き込み速度、ユーザ数などを表すＶＭ状態情報を収集する。なお、ＶＭのメモリ使用量及びメモリ書き込み速度については、当該ＶＭに搭載されているアプリケーションの種別やユーザ数などから計算しあるいは推定してもよい。
【００３５】
上述したように図６に示した仮想マシンシステムでは、管理装置２０内に設けた移動先マシン決定部２６によって、ＶＭ移動に時間がかかる（メモリ情報量が大きい）ＶＭは移動させず、ＶＭ移動に時間がかからない（メモリ情報量が小さい）ＶＭを移動させるように移動先の物理マシンを決定することにより、全体としてのＶＭ移動時間を短縮することができる。またスケジュール決定部２７によって、ユーザアクセスが移動元の物理マシンと移動先の物理マシンとに分散しているときにはメモリ情報の大きいＶＭを移動させ、どちらかの物理マシンにユーザアクセスが偏っているときにはメモリ情報の小さいＶＭを移動させるようにＶＭの移動スケジュールを決定することにより、各ＶＭ移動に適量の帯域が与えられることになり、ＶＭ移動時間を全体として短縮することができる。さらには、他の用途の経路（例えば冗長用の経路やデフォルトとして設定されたもの以外の経路）も活用することによって、ＶＭ移動のための帯域をさらに確保することが可能となり、ＶＭ移動時間をさらに短縮することができる。
【００３６】
このように図６に示した本実施形態の仮想マシンシステムでは、ユーザトラフィックに対してリザーブ帯域を確保しつつ所望のＶＭ移動を実施しなければならない場合に、移動先の物理マシンやＶＭの移動順をランダムに決定した場合と比較して、短時間で全ＶＭの移動を完了することが可能となる。このような効果は、ＶＭ移動トラフィックとユーザトラフィックとが同一の物理リンクを共用する場合に特に顕著である。
【００３７】
図６に示した仮想マシンシステムでは、複数のスイッチ３０が設けられているが、これら複数のスイッチ３０をまとめてスイッチ群として扱うことができる。特に、他の用途の経路も活用してＶＭ移動のための帯域及び経路を確保する場合には、複数のスイッチがメッシュ状に物理マシンに接続していることが好ましい。図７は、物理マシンにメッシュ状に接続されている複数のスイッチをまとめてスイッチ群３５として表した場合の仮想マシンシステムを示している。図７に示す場合であっても、スイッチ群３５を構成する各スイッチには、帯域制御部３２とトラフィック監視部３３が設けられる。
【００３８】
次に、本実施形態における移動先マシン決定アルゴリズム４１とスケジュール決定アルゴリズム４２について説明する。
【００３９】
移動先マシン決定アルゴリズム４１は、図８に示すように、物理マシンの台数、各物理マシンのインタフェース速度、ユーザトラフィックのリザーブ帯域、各物理マシン上で動作するＶＭの数とＶＭの名称、各ＶＭが処理しているユーザ数、及び、各ＶＭのメモリ使用量とメモリ書き込み速度を入力として、各ＶＭの移動先となる物理マシン名を出力するものである。
【００４０】
移動先マシン決定アルゴリズム４１には、例えば、（１）ＶＭメモリ情報利用方式と（２）ＶＭメモリ情報・ユーザ数利用方式の２通りのバリエーションがある。（１）のＶＭメモリ情報利用方式は、ＶＭのメモリ情報（メモリ使用量及びメモリ書き込み速度）のみを利用して、移動先マシンを決定する方式である。この方式は、ＶＭごとのユーザ数のばらつきが小さい時に有効である。一方、（２）のＶＭメモリ情報・ユーザ数利用方式は、各ＶＭのメモリ情報のほかに、各ＶＭが処理しているユーザ数の情報も利用して、移動先マシンを決定する方式である。この方式は、ＶＭを移動した後のユーザ数の分布が物理マシン間でできるだけ均等になるように、ＶＭの移動先マシンを決定するものであり、ＶＭごとのユーザ数のばらつきが大きい時に有効である。
【００４１】
スケジュール決定アルゴリズム４２は、図９に示すように、各ＶＭの移動先の物理マシンの名称、各物理マシンのインタフェース速度、ユーザトラフィックのリザーブ帯域、各物理マシン上で動作するＶＭの数とＶＭの名称、各ＶＭが処理しているユーザ数、各ＶＭのメモリ使用量とメモリ書き込み速度、ＶＭ移動計画時間、仮想マシンシステムのネットワークトポロジー、及び、各ＶＭのユーザトラフィック量を入力として、各ＶＭの移動順序、各ＶＭ移動時のＶＭ移動トラフィックとユーザトラフィックの帯域制御値、及び、各ＶＭ移動時の経路設定情報とを出力とするものである。ここでＶＭ移動計画時間とは、１または複数のＶＭのライブマイグレーションを行うときに、移動対象のＶＭの全体の移動に要する時間として計画された時間のことである。
【００４２】
スケジュール決定アルゴリズム４２には、例えば、（ａ）ユーザトラフィック帯域優先方式、（ｂ）ＶＭ移動時間優先方式、（ｃ）空き経路選択方式、（ｄ）ユーザトラフィック帯域優先方式と空き経路選択方式との組み合わせ方式、及び、（ｅ）ＶＭ移動時間優先方式と空き経路選択方式との組み合わせ方式の５通りのバリエーションがある。このうち（ａ）のユーザトラフィック帯域優先方式は、ＶＭ移動計画時間を超えない時間内で移動を完了し、かつ、ユーザトラフィックがリザーブ帯域を下回らないように、ＶＭの移動順序を決定する方式である。この方式は、ユーザトラフィックにできるだけ帯域を与えたい場合に有効である。（ｂ）のＶＭ移動時間優先方式は、ＶＭの移動開始から移動の完了まで、ユーザトラフィックをリザーブ帯域の一定値に制限し、残りの帯域をＶＭ移動トラフィックに与えることで、最も速く移動を完了させられるようにＶＭの移動順序及び帯域制御値を決定する方式である。この方式は、移動を素早く完了させたい時に有効である。
【００４３】
（ｃ）の空き経路選択方式は、各ＶＭ移動時に、帯域に空きがある経路を探索し、その経路でＶＭ移動トラフィックを転送する方式である。この方式は、物理マシンの物理インタフェースやシステムのネットワークに、障害等のための冗長インタフェースや冗長経路が設けられている場合などに有効である。この空き経路選択方式は、冗長インタフェースや冗長経路を用いることで特徴づけられるが、これに、上記の（ｄ）及び（ｅ）に示すように、ＶＭの移動順序を決定する（ａ）のユーザトラフィック帯域優先方式と、ＶＭの移動順序やユーザトラフィックの帯域制御量を決定する（ｂ）のＶＭ移動時間優先方式とのいずれかを組み合わせることができる。
【００４４】
本実施形態の仮想マシンシステムでは、移動先マシン決定アルゴリズムの２通りのバリエーション（（１）及び（２））のいずれかとスケジュール決定アルゴリズムの５通りのバリエーション（（ａ）〜（ｅ））のいずれかとを任意に組み合わせて、ＶＭの移動を行わせることができる。なお、スケジュール決定アルゴリズムのうち、（ａ）のユーザトラフィック帯域優先方式及び（ｂ）のＶＭ移動時間優先方式は、経路の選択を行わないので帯域制御方式に分類され、（ｃ）の空き経路選択方式と（ｄ），（ｅ）に示す組み合わせ方式は、経路の選択も行うので、帯域・経路制御方式に分類される。
【００４５】
以下、移動先マシン決定アルゴリズム４１とスケジュール決定アルゴリズム４２の各バリエーションについて、詳しく説明する。最初に、アルゴリズムの説明に用いる記号を定義する。ここでは、Ｎを２以上の整数として、Ｎ台の物理マシンが設けられ、それら物理マシンにはそれぞれＳ−１〜Ｓ−Ｎの名称が与えられるものとし、ｎを２以上の整数として、ｎ個のＶＭがこれらＮ台の物理マシン上で動作するものとし、ｎ個のＶＭにはそれぞれＶＭ−１〜ＶＭ−ｎの名称が与えられるものとする。そしてそれぞれのＶＭ（ＶＭ−１〜ＶＭ−ｎ）のメモリ使用量をＭ１〜Ｍｎとし、メモリ書き込み速度をＷ１〜Ｗｎとし、収容ユーザ数をＵ１〜Ｕｎとする。図１０は、物理マシンと各ＶＭとの関係、物理マシンと各ＶＭのメモリ使用量、メモリ書き込み速度及び収容ユーザ数との関係を示している。
【００４６】
１台の物理マシンで動作する全ＶＭが処理するユーザ数の合計を、当該物理マシンが処理可能なユーザ数で除算したものを収容率と定義する。１台の物理マシンが処理可能なユーザ数は、当該物理マシンのインタフェース速度をユーザトラフィックの最低保証帯域（リザーブ帯域）で除算したものである。以下では、一例として、複数の物理マシンで動作する複数のＶＭを、各ＶＭが処理しているユーザ数に応じて、収容率が高くなるように数台の物理マシンに集約配置する場合について説明する。もっとも本実施形態が適用される場合はこれに限られるわけではなく、ユーザ数の上限値の定義や収容率の定義を任意に設定して、ＶＭを再配置する場合に用いてもよい。
【００４７】
ここでは、物理マシンのインタフェース速度は全ての物理マシンで同一であって、Ｉであるとし、ユーザトラフィックのリザーブ帯域も全てのユーザで同一であって、Ｂであるとする。これらは、物理マシンごと、あるいはユーザごとに異なっていてもよい。また、ＶＭ移動計画時間をＴとする。
【００４８】
（１）ＶＭメモリ情報利用方式：
移動先マシン決定アルゴリズムのうちＶＭメモリ情報利用方式は、ＶＭ移動に長い時間を要するＶＭが多く存在する物理マシンを移動先物理マシンとし、この移動先物理マシンに対して、移動時間が短いＶＭが多く存在する物理マシンのＶＭを移動させるものである。この方式では、以下のＳｔｅｐ１〜Ｓｔｅｐ５の各ステップを順番に実行する。
【００４９】
Ｓｔｅｐ１：式(1)により、１台の物理マシンが処理可能なユーザ数の上限値Ｌを求める。
【００５０】
【数１】
2014203232.tif 000003
【００５１】
Ｓｔｅｐ２：ユーザ数の合計とＬとを用いて、式(2)により、集約配置後の物理マシンの数Ｎ’を求める。小数点以下は切り上げるものとする。ｉはｉ番目のＶＭであることを示している。
【００５２】
【数２】
2014203232.tif 000004
【００５３】
Ｓｔｅｐ３：各ＶＭについて、式(3)により、ある帯域Ｂｃのネットワークを用いた時の移動時間Ｔｉを求める。Ｂｃは任意の定数である。
【００５４】
【数３】
2014203232.tif 000005
【００５５】
Ｓｔｅｐ４：各物理マシンについてＴｉの和を求め、その和が大きい順にＮ’台の物理マシンを移動先物理マシンとする。当然のことながらＮ’＜Ｎである。
【００５６】
Ｓｔｅｐ５：移動先として選択された物理マシン以外のＮ−Ｎ’台の物理マシンを移動元の物理マシンとし、物理マシン名の数字が小さい順に、移動元物理マシンを１台ずつ移動先物理マシンに割り当てる。ここで（Ｎ−Ｎ’）＞Ｎ’である場合には、移動元の物理マシンＮ’台についての割り当てが完了したら、移動先物理マシンの割当の２巡目となり、これを繰り返す。これにより、各移動元物理マシンに属するＶＭの移動先物理マシンが決定する。ここでは、ある移動元物理マシンに属するＶＭは、全て同じ移動先物理マシンに移動するものとしている。
【００５７】
（２）ＶＭメモリ情報・ユーザ数利用方式：
移動先マシン決定アルゴリズムのうちＶＭメモリ情報・ユーザ数利用方式は、ＶＭ移動に長い時間を要するＶＭが多く存在する物理マシンを移動先物理マシンとし、この移動先物理マシンに対して、移動時間が短いＶＭが多く存在する物理マシンのＶＭを移動させるとともに、各移動元物理マシンについてその物理マシンに対応する移動先物理マシンを決定する際にユーザ数に関する情報を使用して、移動完了後の物理マシン間でユーザ数が均等なものとなるようにするものである。この方式では、以下のＳｔｅｐ１〜Ｓｔｅｐ７の各ステップを順番に実行する。
【００５８】
Ｓｔｅｐ１〜Ｓｔｅｐ４：ＶＭメモリ情報利用方式でのＳｔｅｐ１〜Ｓｔｅｐ４をそのまま実行する。
【００５９】
Ｓｔｅｐ５：移動先物理マシン以外のＮ−Ｎ’台の物理マシンを移動元物理マシンとする。
【００６０】
Ｓｔｅｐ６：物理マシンごとに、当該物理マシン上のＶＭのユーザ数の和を求め、移動先物理マシンに関して、ユーザ数の和が小さい順に１からＮ’までの順位をつけ、移動元物理マシンに関して、ユーザ数の和が大きい順に１からＮ−Ｎ’までの順位をつける。
【００６１】
Ｓｔｅｐ７：順位が１位である移動元物理マシンから順に、移動先マシンを割り当てていく。このとき移動先物理マシンについてもその順位が１位の物理マシンから割り当てが実行される。ここで（Ｎ−Ｎ’）＞Ｎ’である場合には、移動元の物理マシンＮ’台についての割り当てが完了したら、移動先物理マシンの割当の２巡目となり、これを繰り返す。これにより、各移動元物理マシンに属するＶＭの移動先物理マシンが決定する。ここでは、ある移動元物理マシンに属するＶＭは、全て同じ移動先物理マシンに移動するものとしている。
【００６２】
（ａ）ユーザトラフィック帯域優先方式：
スケジュール決定アリゴリズムのうちユーザトラフィック帯域優先方式は、ＶＭ移動計画時間Ｔを超えない時間内で移動を完了し、かつ、ユーザトラフィックがリザーブ帯域Ｂを下回らないように、ＶＭの移動順序を決定するものである。この方式では、以下のＳｔｅｐ１〜Ｓｔｅｐ８の各ステップを順番に実行する。なおＳｔｅｐ１〜Ｓｔｅｐ８は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数Ｎ’分、繰り返してあるいは並列に実行される。
【００６３】
Ｓｔｅｐ１：ＶＭ移動計画時間Ｔを、その移動先物理マシンに移動するＶＭ数で割り、ＶＭ１台あたりの移動時間Ｔ’を求める。
【００６４】
Ｓｔｅｐ２：各ＶＭがＴ’で移動するために必要な帯域Ｂｒｉを、式(4)により求める。ここでｉは、１以上、その移動先物理マシンに移動するＶＭの数以下の整数である。
【００６５】
【数４】
2014203232.tif 000006
【００６６】
Ｓｔｅｐ３：その移動先物理マシン上のＶＭ以外のＶＭについて、Ｓｔｅｐ２で求めたＢｒｉが大きい順に、順位付けする。
【００６７】
Ｓｔｅｐ４：その移動先物理マシンと、その移動先物理マシンにＶＭが移動する移動元物理マシンとについて、各ＶＭのユーザ数の和を求める。
【００６８】
Ｓｔｅｐ５：移動先物理マシンのＶＭのユーザ数の和をＰ１とし、移動元物理マシンのユーザ数の和のうちの最も大きい値をＰ２とし、移動先物理マシンと移動元物理マシンとの全てＶＭのユーザ数の和をＰ３とし、移動先物理マシンに移動するＶＭの数をＱとしたとき、式(5),(6)により、Ｖを求める。Ｖの小数点以下は切り捨てる。
【００６９】
Ｐ１≧Ｐ２の時：
Ｖ＝１              (5)
Ｐ１＜Ｐ２の時、
【００７０】
【数５】
2014203232.tif 000007
【００７１】
Ｓｔｅｐ６：Ｓｔｅｐ３で求めた順位が１位であるＶＭから、移動順序がＶ番目、（Ｖ−１）番目、（Ｖ＋１）番目、（Ｖ−２）番目、（Ｖ＋２）番目、…となるように、各ＶＭの移動順序を決定していく。このとき、例えば、Ｖ−２＝０となった場合には、（Ｖ＋１）番目の次は、（Ｖ＋２）番目、その次は、（Ｖ＋３）番目となるようにする。
【００７２】
Ｓｔｅｐ７：移動順が１番目となるＶＭから順に、そのＶＭを移動させているときのユーザトラフィックの帯域制御値を移動元物理マシンと移動先物理マシンの各々について求める。移動元物理マシンのユーザトラフィック帯域制御値は、（Ｉ−Ｂｒｉ）をその移動時の移動元物理マシンのユーザ数の和で割ったものとする。同様に、移動先物理マシンのユーザトラフィック帯域制御値は、（Ｉ−Ｂｒｉ）をその移動時の移動先物理マシンのユーザ数の和で割ったものとする。
【００７３】
Ｓｔｅｐ８：Ｓｔｅｐ７で計算されるユーザトラフィック帯域制御値は、ユーザトラフィックのリザーブ帯域Ｂを下回る可能性があるものである。そこで、Ｓｔｅｐ７の計算中にユーザトラフィック帯域制御値がＢを下回った場合、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのＳｔｅｐ２に戻り、Ｎ’を１だけインクリメントし、移動先マシン決定アルゴリズムのＳｔｅｐ３以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのＳｔｅｐ１からの計算を再度実行する。
【００７４】
（ｂ）ＶＭ移動時間優先方式：
スケジュール決定アリゴリズムのうちＶＭ移動時間優先方式は、ＶＭの移動開始から移動完了までの期間において、ユーザトラフィックを最低保証帯域（リザーブ帯域）の一定値に制限し、残りの帯域をＶＭ移動トラフィックに与えることで、最も早く移動完了させられるようにＶＭの移動順序を決定するものである。この方式では、以下のＳｔｅｐ１〜Ｓｔｅｐ８の各ステップを順番に実行する。なおＳｔｅｐ１〜Ｓｔｅｐ８は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数Ｎ’分、繰り返してあるいは並列に実行される。
【００７５】
Ｓｔｅｐ１〜Ｓｔｅｐ６：ユーザトラフィック帯域優先方式でのＳｔｅｐ１〜Ｓｔｅｐ６をそのまま実行する。
【００７６】
Ｓｔｅｐ７：移動順が１番目となるＶＭから順に、そのＶＭについてのＶＭ移動トラフィックが使用できる帯域Ｂａを求める。帯域Ｂａは、物理マシンのインタフェース速度Ｉから、移動先物理マシンでのＶＭのユーザ数の和と移動元物理マシンでのＶＭのユーザ数の和のうちの大きい方のユーザ数の和とユーザトラフィックの最低保障帯域（リザーブ帯域Ｂ）との積を差し引いたものである。この帯域Ｂａから、式(7)に基づいて、そのＶＭ移動にかかる時間Ｔｉを算出する。
【００７７】
【数６】
2014203232.tif 000008
【００７８】
Ｓｔｅｐ８：式(7)によって計算されるＴｉが意味のある値となるためには、Ｂａ＞Ｗｉであることが必要であり、また、ＴｉはＶＭ移動計画時間Ｔ以下である必要もある。このような条件を満たすように帯域Ｂａを定めるとすると、結果的に、ユーザトラフィックの帯域制御値をリザーブ帯域Ｂよりも小さくしなければならない場合が生じる可能性がある。このようにユーザトラフィックの帯域制御値をリザーブ帯域Ｂよりも小さくしなければならなくなった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのＳｔｅｐ２に戻り、Ｎ’を１だけインクリメントし、移動先マシン決定アルゴリズムのＳｔｅｐ３以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのＳｔｅｐ１からの計算を再度実行する。
【００７９】
（ｃ）空き経路選択方式：
スケジュール決定アリゴリズムのうち空き経路選択方式は、各ＶＭの移動時に、当該ＶＭが移動するために必要な帯域が残っている経路を決定し、その経路上をＶＭ移動トラフィックが転送されるように各物理マシンの仮想スイッチやネットワーク内のスイッチに経路設定を行うものである。この方式は、その他の用途の経路上に十分な空き帯域がある場合に有効である。この方式では、以下のＳｔｅｐ１〜Ｓｔｅｐ８の各ステップを順番に実行する。なおＳｔｅｐ１〜Ｓｔｅｐ８は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数Ｎ’分、繰り返してあるいは並列に実行される。
【００８０】
Ｓｔｅｐ１〜Ｓｔｅｐ６：ユーザトラフィック帯域優先方式でのＳｔｅｐ１〜Ｓｔｅｐ６をそのまま実行する。
【００８１】
Ｓｔｅｐ７：移動順が１番目となるＶＭから順に、そのＶＭの移動に必要な帯域Ｂｒｉが残っている経路を探索し、決定する。ここで、各ユーザトラフィックの帯域は、リザーブ帯域値Ｂ（Ｍｂｐｓ）に統一して制御するものとする。
【００８２】
Ｓｔｅｐ８：Ｓｔｅｐ７の計算では経路が見つからない可能性がある。Ｓｔｅｐ７の計算中に経路が見つからなかった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのＳｔｅｐ２に戻り、Ｎ’を１だけインクリメントし、移動先マシン決定アルゴリズムのＳｔｅｐ３以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのＳｔｅｐ１からの計算を再度実行する。
【００８３】
（ｄ）ユーザトラフィック帯域優先方式と空き経路選択方式の組み合わせ方式：
この方式は、主として上記のユーザトラフィック帯域優先方式によってＶＭを移動させるものであるが、ユーザトラフィック帯域優先方式でのＳｔｅｐ７で計算されるユーザトラフィックの帯域制御値がリザーブ帯域Ｂを下回ったときにだけ空き経路を探索し、探索された経路を用いてＶＭの移動を行うものである。その他の用途の経路の使用を必要最小限としようとする方式である。この方式では、以下のＳｔｅｐ１〜Ｓｔｅｐ９の各ステップを順番に実行する。なおＳｔｅｐ１〜Ｓｔｅｐ９は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数Ｎ’分、繰り返してあるいは並列に実行される。
【００８４】
Ｓｔｅｐ１〜Ｓｔｅｐ７：ユーザトラフィック帯域優先方式でのＳｔｅｐ１〜Ｓｔｅｐ７をそのまま実行する。
【００８５】
Ｓｔｅｐ８：Ｓｔｅｐ７の計算中にユーザトラフィック帯域制御値がリザーブ帯域Ｂを下回った場合、残りの移動順のＶＭについて、空き経路選択方式でのＳｔｅｐ７を実行して当該ＶＭの移動に必要な帯域Ｂｒｉが残っている経路を探索し、決定する。各ユーザトラフィックの帯域は、リザーブ帯域値Ｂ（Ｍｂｐｓ）に統一して制御するものとする。
【００８６】
Ｓｔｅｐ９：Ｓｔｅｐ８において経路が見つからなかった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのＳｔｅｐ２に戻り、Ｎ’を１だけインクリメントし、移動先マシン決定アルゴリズムのＳｔｅｐ３以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのＳｔｅｐ１からの計算を再度実行する。
【００８７】
（ｅ）ＶＭ移動時間優先方式と空き経路選択方式の組み合わせ方式：
この方式は、主として上記のＶＭ移動時間優先方式によってＶＭを移動させるものであるが、ＶＭ移動時間優先方式でのＳｔｅｐ７においてユーザトラフィックの帯域制御値をリザーブ帯域Ｂよりも小さくしなければならなくなったときにだけ空き経路を探索し、探索された経路を用いてＶＭの移動を行うものである。その他の用途の経路の使用を必要最小限としようと方式である。この方式では、以下のＳｔｅｐ１〜Ｓｔｅｐ９の各ステップを順番に実行する。なおＳｔｅｐ１〜Ｓｔｅｐ９は、移動先物理マシンごとに独立して実行することが可能であり、移動先物理マシンの台数Ｎ’分、繰り返してあるいは並列に実行される。
【００８８】
Ｓｔｅｐ１〜Ｓｔｅｐ７：ＶＭ移動時間優先方式でのＳｔｅｐ１〜Ｓｔｅｐ７をそのまま実行する。
【００８９】
Ｓｔｅｐ８：Ｓｔｅｐ７の計算中にユーザトラフィック帯域制御値をリザーブ帯域Ｂよりも小さくしなければならなくなったときに、残りの移動順のＶＭについて、空き経路選択方式でのＳｔｅｐ７を実行して当該ＶＭの移動に必要な帯域Ｂｒｉが残っている経路を探索し、決定する。各ユーザトラフィックの帯域は、リザーブ帯域値Ｂ（Ｍｂｐｓ）に統一して制御するものとする。
【００９０】
Ｓｔｅｐ９：Ｓｔｅｐ８において経路が見つからなかった場合には、スケジュール決定アルゴリズムによる計算自体を中止し、移動先マシン決定アルゴリズムに戻って再計算を行う。具体的には、移動先マシン決定アルゴリズムのＳｔｅｐ２に戻り、Ｎ’を１だけインクリメントし、移動先マシン決定アルゴリズムのＳｔｅｐ３以降の計算を再度実行し、この再計算の結果に基づいて、スケジュール決定アルゴリズムのＳｔｅｐ１からの計算を再度実行する。
【実施例】
【００９１】
次に、移動先マシン決定アルゴリズムとスケジュール決定アルゴリズムのそれぞれのバリエーションの組み合わせのうちのいくつかをさらに詳しく説明する。
【００９２】
［実施例１］
図１１に示した構成の仮想マシンシステムを使用し、移動先マシン決定アルゴリズムとしてＶＭメモリ情報利用方式を使用し、スケジュール決定アルゴリズムとしてユーザトラフィック帯域優先方式を用いる場合を説明する。
【００９３】
図１１に示した仮想マシンシステムは、４台の物理マシンＳ−１〜Ｓ−４を備えており、スイッチ群３５を構成するものとして５個のスイッチＳＷ１〜ＳＷ５が設けられている。物理マシンＳ−１，Ｓ−２はスイッチＳＷ１に接続し、物理マシンＳ−３，Ｓ−４はスイッチＳＷ２に接続している。スイッチＳＷ１は、スイッチＳＷ３，ＳＷ４とも物理リンクによって直接接続し、スイッチＳＷ２もスイッチＳＷ３，ＳＷ４と物理リンクによって直接接続している。スイッチＳＷ５は、スイッチＳＷ３，ＳＷ４と物理リンクによって直接接続するとともに、パケット転送網とも接続している。
【００９４】
各物理マシンは、ＶＭ状態監視部３１と仮想スイッチ３４を備えており、移動開始前の状態において、物理マシンＳ−１上にはＶＭ−１〜ＶＭ−５の５個のＶＭが存在し、物理マシンＳ−２上にはＶＭ−６〜ＶＭ−１０の５個のＶＭが存在し、物理マシンＳ−３上にはＶＭ−１１〜ＶＭ−１５の５個のＶＭが存在し、物理マシンＳ−４上にはＶＭ−１６〜ＶＭ−２０の５個のＶＭが存在している。
【００９５】
各スイッチはいずれも帯域制御部３２を備えており、これらの帯域制御部３２は管理装置２０によって制御されるようになっている。管理装置２０としては、図６及び図７に示したものと同じものが使用される。トラフィックは、ＶＬＡＮ（仮想ローカルエリアネットワーク：virtual local area network）により、どのＶＭのトラフィックなのか、また、ユーザトラフィックなのかＶＭ移動トラフィックなのかを識別できるものとする。帯域制御はＶＬＡＮごとに実施できる。各物理マシン上のＶＭ状態監視部３１は、各ＶＭ上で、例えば、Ｌｉｎｕｘ（登録商標）のｔｏｐコマンドにより、ＶＭのメモリ使用量や使用率を監視し、ページング（スワップファイル）操作数などから、各ＶＭのメモリ使用量やメモリ書き込み速度を監視する。
【００９６】
図において破線で示すトラフィックはユーザトラフィックであり、実線で示すトラフィックはＶＭ移動トラフィックである。説明のため、ＶＭ移動トラフィックについては、物理マシンＳ−１からのトラフィックのみが図示されている。
【００９７】
ユーザ端末から各ＶＭにユーザトラフィックが流れ、ＶＭ上でパケットに何らかの処理が行われて、再びユーザ端末へトラフィックが流れているものとし、そのユーザトラフィックは、各ＶＭで均一であるものとする。例えば、各ユーザ端末のユーザトラフィック帯域は、物理マシンのインタフェース速度を、当該物理マシン上で処理されているユーザ数で割ったもので求められる。
【００９８】
物理リンクの帯域は、スイッチＳＷ５に直接接続している物理リンク以外、全て、１Ｇｂｉｔ／ｓとし、物理マシン単位で、対応するスイッチから当該物理マシンに対して１Ｇｂｐｓの専用経路が与えられるものとする。ユーザトラフィックのリザーブ帯域Ｂは、２０Ｍｂｉｔ／ｓとする。したがって、物理マシン１台あたりのユーザ数上限値Ｌは、５０人となる。
【００９９】
動作開始時には図１１に示すよう各ＶＭが処理するユーザ数が多く（例えば３人以上）、ＶＭを各物理マシンに分散配置していたが、その後、各ＶＭが処理するユーザ数が全て２人となったことによりＶＭの動的配置を実施することになったという状況を考える。ここではＶＭ移動計画時間Ｔは１５分であるとする。
【０１００】
この時点での各物理マシンのＶＭ状態監視部３１から得られるＶＭ状態情報は、表１に示すものであるとする。
【０１０１】
【表１】
2014203232.tif 000009
【０１０２】
移動先マシン決定アルゴリズムとしてＶＭメモリ情報利用方式を利用しており、まず、そのＳｔｅｐ１が実行され、上記式(1)から以下のようにして、１台の物理マシンが処理可能なユーザ数の上限値Ｌが求められる。
【０１０３】
【数７】
2014203232.tif 000010
【０１０４】
次にＳｔｅｐ２が実行され、ユーザ数の合計とＬとを用いて、上記式(2)から以下のようにして（小数点以下切り上げ）、集約配置後の物理マシンの台数Ｎ’が計算される。
【０１０５】
【数８】
2014203232.tif 000011
【０１０６】
Ｓｔｅｐ３において、各ＶＭについて、式(3)に基づき、ある帯域Ｂｃのネットワークを用いた時の移動時間Ｔｉを求める。ここでは帯域Ｂｃを５００Ｍｂｐｓとしている。続いてＳｔｅｐ４において、物理マシンごとに、その物理マシン上のＶＭのＴｉの和を求め、この和が大きい順にＮ’台の物理マシンを移動先物理マシンとする。Ｓｔｅｐ３で算出されたＴｉの値とＳｔｅｐ４で算出された物理マシンごとのＴｉの和の値を表２に示す。
【０１０７】
【表２】
2014203232.tif 000012
【０１０８】
表２から分かるように、Ｔｉの和が一番大きい物理マシンは物理マシンＳ−２であるので、移動先の物理マシンの台数Ｎ’が１台であることにより、Ｓｔｅｐ４では、物理マシンＳ−２が移動先の物理マシンとして決定されることになる。
【０１０９】
以上のようにして移動先の物理マシンが決定したら、次に、スケジュール決定アルゴリズムにより、ＶＭの移動順などを算出する。ここではスケジュール決定アルゴリズムとしてユーザトラフィック帯域優先方式が用いられる。
【０１１０】
まず、ユーザトラフィック帯域優先方式のＳｔｅｐ１を実行し、移動先物理マシンに移動するＶＭの数によってＶＭ移動計画時間Ｔを除算することにより、下記のように、ＶＭ１台当たりの移動時間Ｔ’を求める。
【０１１１】
Ｔ’＝１５×６０／２０＝４５ｓ
次にＳｔｅｐ２において、上記の式(4)に基づいて、各ＶＭが時間Ｔ’で移動するための帯域Ｂｒｉを求める。Ｓｔｅｐ３において、その移動先物理マシン上のＶＭ以外のＶＭについて、Ｓｔｅｐ２で求めたＢｒｉが大きい順に、順位付けする。続いてＳｔｅｐ４において、移動先物理マシンと、その移動先物理マシンにＶＭが移動する移動元物理マシンとについて、各ＶＭのユーザ数の和を求める。Ｓｔｅｐ２で求めた帯域Ｂｒｉ、Ｓｔｅｐ３で求めた順位付け、及びＳｔｅｐ４で求めた物理マシンごとのＶＭのユーザ数の和が表３に示されている。なお、移動先の物理マシンである物理マシンＳ−２上に既に存在しているＶＭは移動の対象とはならないため、物理マシンＳ−２上のＶＭに対しては、Ｓｔｅｐ３での順位付けやＳｔｅｐ６での移動順の決定は行われない。
【０１１２】
【表３】
2014203232.tif 000013
【０１１３】
次にＳｔｅｐ５を実行する。ここでは、移動先の物理マシンのユーザ数の和をＰ１、移動元の物理マシンのユーザ数の和のうちの最も大きいもののをＰ２とすると、Ｐ１もＰ２もいずれも１０であるから、Ｐ１≧Ｐ２が成立し、Ｖ＝１が得られる。
【０１１４】
Ｓｔｅｐ６において、Ｓｔｅｐ３で求めた順位が１位のＶＭ（この場合ＶＭ−２）から、Ｖ番目、（Ｖ−１）番目、（Ｖ＋１）番目、（Ｖ−２）番目、（Ｖ＋２）番目、…のように移動順序を決定する。ここではＶ＝１であることから、Ｖ−１＝０となるので、１番目、２番目、３番目、…のように移動順序が決定されることになる。決定された移動順は表３に示されている。
【０１１５】
次にＳｔｅｐ７において、移動順１番目のＶＭから順に、当該ＶＭの移動中のユーザトラフィックの帯域制御値を移動元の物理マシン及び移動先の物理マシンの各々について求める。計算された帯域制御値を表４に示す。ここで示した例ではリザーブ帯域Ｂは２０Ｍｂｐｓであるが、表４において★印で示すように、移動順が１１、１４、１５であるＶＭの移動に関し、移動先物理マシンでのユーザトラフィック帯域がリザーブ帯域Ｂを下回っている。そのためこの実施例では、Ｓｔｅｐ８が実行されることとなり、移動先マシン決定アルゴリズムでのＳｔｅｐ２に戻ってＮ’に１が加算され、Ｎ’＝２であるものとして、移動先マシン決定アルゴリズムのＳｔｅｐ３からとユーザトラフィック帯域優先方式によるスケジュール決定アルゴリズムの計算とが再実行されることになる。
【０１１６】
【表４】
2014203232.tif 000014
【０１１７】
［実施例２］
図１２に示した構成の仮想マシンシステムを使用し、移動先マシン決定アルゴリズムとしてＶＭメモリ情報・ユーザ数利用方式を使用し、スケジュール決定アルゴリズムとして空き経路選択方式を用いる場合を説明する。
【０１１８】
図１２に示した仮想マシンシステムは、図１１に示したものと同様のものであるが、各物理マシンに冗長インタフェースが設けられている点で相違する。ユーザトラフィックは冗長インタフェースを用いないものとする。物理マシンＳ−１，Ｓ−２は、それぞれ、冗長インタフェースによる１Ｇｂｐｓの物理リンクによってもスイッチＳＷ１に接続している。同様に、物理マシンＳ−３，Ｓ−４は、それぞれ、冗長インタフェースによる１Ｇｂｐｓの物理リンクによってもスイッチＳＷ２に接続している。
【０１１９】
図１２に示す仮想マシンシステムのシステムトポロジーは図１３に示すものとなり、ここでは、説明のため、ユーザトラフィックに関する４つの経路が示されている。経路１は、物理マシンＳ−１からスイッチＳＷ１、スイッチＳＷ３及びスイッチＳＷ５を経由してパケット転送網に至る経路であり、経路２は、物理マシンＳ−２からスイッチＳＷ１、スイッチＳＷ４及びスイッチＳＷ５を経由してパケット転送網に至る経路であり、経路３は、物理マシンＳ−３からスイッチＳＷ２、スイッチＳＷ３及びスイッチＳＷ５を経由してパケット転送網に至る経路であり、経路４は、物理マシンＳ−４からスイッチＳＷ２、スイッチＳＷ４及びスイッチＳＷ５を経由してパケット転送網に至る経路である。
【０１２０】
実施例１の場合と同様に、動作開始時には各ＶＭが処理するユーザ数が多く（例えば３人以上）、ＶＭを各物理マシンに分散配置していたが、その後、各ＶＭが処理するユーザ数が全て２人となったことによりＶＭの動的配置を実施することになったという状況を考える。ここではＶＭ移動計画時間Ｔは１５分であるとする。
【０１２１】
この時点での各物理マシンのＶＭ状態監視部３１から得られるＶＭ状態情報は、表１に示すものと同じである。
【０１２２】
移動先マシン決定アルゴリズムとしてＶＭメモリ情報・ユーザ数利用方式を利用しており、ＶＭメモリ情報・ユーザ数利用方式のＳｔｅｐ１からＳｔｅｐ７までが実行される。ここで示した例では、物理マシン間にユーザ数のばらつきがないため、実施例１でのＶＭメモリ情報利用方式による結果と同じ結果が得られ（表２参照）、移動先の物理マシンとして物理マシンＳ−２が選択される。
【０１２３】
次に、スケジュール決定アルゴリズムとして空き経路選択方式が実行される。空き経路選択方式でのＳｔｅｐ１からＳｔｅｐ６までは、実施例１で示したユーザトラフィック帯域優先方式でのＳｔｅｐ１からＳｔｅｐ６までと同様に進行する（表３参照）。
【０１２４】
空き経路選択方式でのＳｔｅｐ７においては、移動順が１番目となるＶＭから順に、そのＶＭの移動に必要な帯域Ｂｒｉが残っている経路を探索し、決定する。ここで、各ユーザトラフィックの帯域は、リザーブ帯域値Ｂ（２０Ｍｂｐｓ）に統一して制御するものとする。例えば、移動順が１であるＶＭすなわちＶＭ−２を物理マシンＳ−１から物理マシンＳ−２に移動させるときのことを考える。このとき、表３に示されるように、ＶＭ−２の移動のために、７２６Ｍｂｐｓが必要である。図１４に示すように、物理マシンＳ−１とスイッチＳＷ１との間の物理リンクでは、経路１の下り経路のユーザトラフィックが流れており、ユーザ数が１０人であってユーザごとの帯域がリザーブ帯域Ｂである２０Ｍｂｐｓであることにより、８００Ｍｂｐｓが余っていることになる。同様に、物理マシンＳ−２とスイッチＳＷ１との間の物理リンクでは、経路２の上り経路のユーザトラフィックが流れており、これも８００Ｍｂｐｓが余っていることになる。通常経路において上り下りとも余り帯域があるので、冗長インタフェースを使用しない通常経路（物理マシンＳ−１→スイッチＳＷ１→物理マシンＳ−２の経路）がＶＭ−２の移動用の経路として選択される。
【０１２５】
これに対し移動順が１１番目であるＶＭ−２０について考えると、ＶＭ−２０は物理マシンＳ−４から物理マシンＳ−２に移動する。表３に示されるように、ＶＭ−２０の移動のために４１２Ｍｂｐｓが必要である。
【０１２６】
ところで、移動順が１１番目ということは、既に１０個のＶＭが物理マシンＳ−２に移動した後であるから、物理マシンＳ−２には合計で１５個のＶＭが存在し、各ＶＭごとのユーザ数が２なので、この時点での物理マシンＳ−２のユーザ数は３０人ということになる。その結果、図１５に示すように、経路２の上り経路（特にスイッチＳＷ４と物理マシンＳ−２の間）の物理リンクでは、３０人のユーザに対してそれぞれ２０Ｍｂｐｓのリザーブ帯域Ｂが設定されているので、６００Ｍｂｐｓが使用されていることになり、余りは４００Ｍｂｐｓしかない。経路４の下り経路（特に、スイッチＳＷ２とスイッチＳＷ４の間）については同様の考察をすると、ユーザが８人であるので、８４０Ｍｂｐｓが余っていることになる。経路２の上り経路においてＶＭ−２０の移動のための４１２Ｍｂｐｓの帯域が確保できないので、通常経路（物理マシンＳ−４→スイッチＳＷ２→スイッチＳＷ４→スイッチＳＷ１→物理マシンＳ−２の経路）ではＶＭ−２０の移動を行えないことになる。
【０１２７】
そこで、通常経路以外の各経路における余り帯域を求めると、この時点では物理マシンＳ−３上には既にＶＭが存在しないので、図１６に示すように、経路３の下り経路（特にスイッチＳＷ２とスイッチＳＷ３の間）は１０００Ｍｂｐｓが余っており、経路１の上り
帯域（特にスイッチＳＷ３とスイッチＳＷ１の間）も、物理マシンＳ−１のユーザ数がこの時点で２人なので、９６０Ｍｂｐｓ余っている。スイッチＳＷ１と物理マシンＳ−２との間の通常の物理リンクでは、上述したように、経路２の上り経路によって帯域が大量に使用されているが、スイッチＳＷ１と物理マシンＳ−２の間の冗長インタフェースを利用した物理リンクは未使用である。
【０１２８】
そこで、移動順が１１番目であるＶＭ−２０について、物理マシンＳ−４→スイッチＳＷ２→スイッチＳＷ３→スイッチＳＷ１→物理マシンＳ−２の経路であって、スイッチＳＷ１と物理マシンＳ−２の間は冗長インタフェースを利用する経路がＶＭ移動トラフィックの経路として選択される。
【０１２９】
Ｓｔｅｐ７では、以上のようにして、各ＶＭについての移動経路が決定される。この実施例の場合、全てのＶＭについてそのＶＭ移動トラフィックのための経路が決定されるため、空き経路選択方式におけるＳｔｅｐ８は実行されない。
【符号の説明】
【０１３０】
１１，１２    物理マシン
１３    ネットワーク
１４    共有ストレージ
１５    仮想化ソフトウェア
１６    ＶＭ管理サーバ
２０    管理装置
２１    パケット受信部
２２    パケット送信部
２３    データ保存部
２４    ＶＭ管理部
２５    情報収集部
２６    移動先マシン決定部
２７    スケジュール決定部
２８    帯域・経路制御設定部
３０    スイッチ
３１    ＶＭ状態監視部
３２    帯域制御部
３３    トラフィック監視部
３４    仮想スイッチ
３５    スイッチ群
【図１】
2014203232.tif 000015
【図２】
2014203232.tif 000016
【図３】
2014203232.tif 000017
【図４】
2014203232.tif 000018
【図５】
2014203232.tif 000019
【図６】
2014203232.tif 000020
【図７】
2014203232.tif 000021
【図８】
2014203232.tif 000022
【図９】
2014203232.tif 000023
【図１０】
2014203232.tif 000024
【図１１】
2014203232.tif 000025
【図１２】
2014203232.tif 000026
【図１３】
2014203232.tif 000027
【図１４】
2014203232.tif 000028
【図１５】
2014203232.tif 000029
【図１６】
2014203232.tif 000030