(58)【調査した分野】(Int.Cl.,DB名)
ライブマイグレーションの対象となる仮想マシンにおけるメモリ転送の進捗情報を含む、前記仮想マシンのライブマイグレーションの進捗情報を取得する進捗情報取得部と、
前記ライブマイグレーションの進捗状況ごとに、進捗が進むほど制限が強くなる段階的な通信の制限の内容を示した制限定義情報を記憶する記憶部と、
前記進捗情報をもとに、前記仮想マシンのライブマイグレーションの進捗状況が、前記仮想マシンのメモリ転送の進捗状況と、前記仮想マシンのメモリ変更量に対するメモリ転送量の割合を示すダーティ率、または、前記仮想マシンのライブマイグレーションの開始後に発生したメモリ変更分のメモリ転送の進捗状況との組み合わせにより記述された複数の条件のうち、いずれかに該当すると判断したとき、前記制限定義情報を参照して、該当する条件に対応する通信の制限の内容を決定し、前記仮想マシンの通信経路のネットワーク装置に対し、前記仮想マシンへ前記決定した通信の制限を指示する装置制御部とを備え、
前記通信の制限は、前記仮想マシンへの通信パケットのパケットシェイピング、遮断、新たな通信パケットの受信の拒否の順に段階的に強くなることを特徴とするネットワーク制御装置。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態(実施形態)を説明する。なお、この実施形態により本発明が限定されるものではない。
【0012】
図1に示すように、通信システムは、拠点Aと、拠点Bと、ネットワーク制御装置10と、クラウドコントローラ(管理装置)20と、端末30とを備える。各拠点と端末30とはインターネット、VPN(Virtual Private Network)等のネットワークにより接続される。拠点内にはデータセンタが設置される。ここでは拠点Aには、データセンタ2Aが設置され、拠点Bにはデータセンタ2Bが設置されるものとする。
【0013】
端末30は、データセンタ2Aまたはデータセンタ2B等で動作する仮想マシン(VM)にアクセスして、各種サービスを利用する端末であり、例えばノートパソコンやスマートフォン等である。
【0014】
データセンタ2A、データセンタ2Bはそれぞれ、1台以上の物理サーバ(図示省略)が設置され、物理サーバの物理リソースを用いてVMおよび当該VMを制御するHV(ハイパーバイザ)を動作させる。なお、物理リソースとしては、通信インタフェース、プロセッサ、メモリ、ハードディスク等である。HVは、VMを制御する仮想ソフトウェアであり、仮想スイッチ(
図3参照)を含んでいてもよい。また、データセンタ2A、データセンタ2Bは、それぞれネットワーク装置40を備える。ここでは、データセンタ2Aのネットワーク装置40をネットワーク装置40Aとし、データセンタ2Bのネットワーク装置40をネットワーク装置40Bとする。
【0015】
図2に示す通り、VM間は、仮想L2ネットワーク21により接続される。この仮想L2ネットワーク21が、データセンタ間を跨ぐ場合は、例えば、
図3の仮想スイッチおよび仮想ソフトウェアスイッチと、物理ネットワーク22(ネットワーク接続装置40A、インターネット/VPNおよびネットワーク接続装置40B)を経由する経路を通るVPN技術によって実現する。
【0016】
ネットワーク装置40は、各データセンタの各VMのデータ通信を中継する装置であり、例えば、このネットワーク装置40は、各VMと端末30とのデータ通信を中継する。このネットワーク装置40は、例えば、データセンタと外部ネットワークとの境界に設置されるルータである。このネットワーク装置40は、前記したルータとしての機能のほか、ファイアウォール、ロードバランサ、パケットシェイパーの機能を備えていてもよい。また、このネットワーク装置40は、VMが収容される物理サーバとは別個の装置であってもよいし、当該物理サーバにより仮想的に実現される装置であってもよい。
【0017】
VMは、例えばWebサーバやDBサーバ等を実行する仮想的な装置であり、端末30との間でデータ通信を行い、各種サービスを提供する。なお、各VMは、動作する拠点が異なっていても、同一セグメントで動作するものとする。また、各VMはクラウドコントローラ20からの指示に基づき、データセンタを跨いだマイグレーションが行われる。例えば、
図1のVM1は、クラウドコントローラ20からの指示により、データセンタ2Aからデータセンタ2Bへのマイグレーションが行われる。本実施形態において、VMのマイグレーションはライブマイグレーション(VMを稼働させた状態で、丸ごと別の物理サーバに移動させること)を想定している。
【0018】
クラウドコントローラ20は、VMの制御を行う装置である。ここでのVMの制御は、例えば、VMを制御するHVに対して行われる。このクラウドコントローラ20は、例えば、VMを収容する物理サーバに対しマイグレーションを指示する。また、クラウドコントローラ20は、マイグレーションの対象であるVMを監視し、マイグレーションの進捗状況(例えば、何%まで進んだか)を把握する。さらに、クラウドコントローラ20は、ネットワーク制御装置10からの要求に応じて、マイグレーションの進捗状況を示す情報(進捗情報)を送信する。
【0019】
ネットワーク制御装置10は、ネットワーク装置40に対する通信制限を行う。具体的には、ネットワーク制御装置10は、VMの他の拠点へのライブマイグレーションの進捗情報を取得し、取得した進捗情報をもとに、制限定義情報(詳細は後記)を参照して、当該VMのライブマイグレーションの進捗状況が所定の条件に該当するか否かを判断する。ここで、ネットワーク制御装置10が、該VMのライブマイグレーションの進捗状況が所定の条件に該当すると判断したとき、例えば、ライブマイグレーションの開始から所定時間経過しているにもかかわらず、進捗率が10%以下であると判断したとき、当該VMの通信経路のネットワーク装置40に対し、当該VMへの通信パケットの制限を指示する。このような指示を受けたネットワーク装置40は、例えば、当該VMへの通信パケットの遮断や、帯域制限等を行う。その結果、当該VMへの通信が制限されるので、当該VMの負荷が軽減される。
【0020】
このようにすることで、VMのライブマイグレーション中に、当該VMへのアクセス集中等により高負荷な状態になっている場合であっても、当該VMの負荷の軽減がされる。その結果、当該VMのマイグレーションに要する時間を短縮することができる。
【0021】
図3は、
図2のVMを動作させる物理サーバの階層構造を示す図である。データセンタ2Aでは、物理サーバ6が動作し、データセンタ2Bでは、物理サーバ16が動作する。各物理サーバは、一般的なサーバ装置であり、プロセッサ、メモリ等のハードウェアを有する。
【0022】
データセンタ2Aの物理サーバ6は、ハードウェア6a上で仮想化ソフトウェア6bを動作させて、仮想環境を提供する。仮想化ソフトウェア6bは、仮想スイッチ6cを動作させる。また同様に、データセンタ2Bの物理サーバ16は、ハードウェア16a上で仮想化ソフトウェア16bを動作させて、仮想環境を提供する。また、仮想化ソフトウェア16bは、仮想スイッチ16cを動作させて、
図2の仮想L2ネットワーク21を構築する。すなわち、異なるデータセンタ間を仮想L2ネットワーク21で通信可能に接続する。
【0023】
そして、各物理サーバの各仮想化ソフトウェアは、仮想L2ネットワーク21を利用可能な状態でVMを動作させる。具体的には、仮想化ソフトウェア6bは、物理サーバ6の物理リソースを用いてVM(A)とVM(B)とを動作させ、仮想スイッチ6cを経由して、各VMを仮想L2ネットワーク21に接続する。同様に、仮想化ソフトウェア16bは、物理サーバ16の物理リソースを用いてVM(C)とVM(D)とを動作させ、仮想スイッチ16cを経由して、各VMを仮想L2ネットワーク21に接続する。
【0024】
次に、
図4を用いて、ネットワーク制御装置10を詳細に説明する。ネットワーク制御装置10は、入出力部11と、記憶部12と、制御部13とを備える。
【0025】
入出力部11は、外部装置との各種情報の入出力を司る入出力インタフェースである。この入出力部11は、例えば、クラウドコントローラ20からマイグレーションの進捗情報を取得したり、ネットワーク装置40への通信制限の指示を出力したりする。この入出力部11は、外部装置との入出力インタフェースのほか、ネットワーク経由で通信可能な通信インタフェースを備えていてもよい。
【0026】
記憶部12は、VM情報と、ネットワーク装置情報と、制限定義情報とを記憶する。
【0027】
VM情報は、通信システム内のVMに関する情報であり、例えば、
図5に示すように、VMの識別情報ごとに当該VMの属する拠点等を示した情報である。
【0028】
ネットワーク装置情報は、通信システム内のネットワーク装置40に関する情報であり、例えば、
図6に示すように、ネットワーク装置40の識別情報ごとに、当該ネットワーク装置40の属する拠点を示した情報である。このネットワーク装置情報は、
図6に示すように、各ネットワーク装置40における通信量の値を含んでいてもよい。
【0029】
制限定義情報は、装置制御部133(後記)がネットワーク装置40に対し通信制限を行うときの条件を示した情報である。この制限定義情報は、例えば、マイグレーションの進捗状況ごとに、当該進捗状況に該当するときの通信制限の内容を示した情報である。
【0030】
この制限定義情報のフォーマットとしては、例えば、
図7に示すように、条件の適用優先度と、当該優先度に対応する条件と、当該条件に用いる閾値と、当該条件に対するアクション(通信制限の内容)とを対応付けたものが考えられる。例えば、
図7の1行目の条件は、2つの条件をAND(&)で結んだ条件を示し、条件Aについて閾値以上となり、かつ、条件Bについて閾値となった場合、「アクション」に示される通信制限を行うことを示す。ここでの通信制限の内容は、通信パケットのシェーピング、遮断、新たな通信パケットの受信の拒否等である。シェーピングや遮断の値の単位は、例えば、bps(bit per second)やpps(packet per second)等である。
【0031】
このようなフォーマットを用いた制限定義情報の一例を
図8に示す。
図8に示す制限定義情報は、マイグレーションの進捗率とマイグレーションの残り時間(マイグレーション完了までの予測時間)との組み合わせにより、マイグレーションの進捗状況に関する条件を記述した場合の例を示す。例えば、この制限定義情報の1行目は、マイグレーションの進捗率が0%、かつ、残り時間(マイグレーション完了までの残り時間の予測値)が0時間以上であれば、3000ppsのシェーピングを行うことを示す。また、制限定義情報の2行目の条件は進捗率が10%以下であり、残り時間が9時間以上であれば、2000ppsのシェーピングを行うことを示す。
【0032】
なお、この制限定義情報に用いられる条件は、例えば、マイグレーションの対象となるVMにおけるメモリ転送の進捗状況(%)や、マイグレーションの完了までの予測時間に関する条件の他、当該VMのメモリ変更量に対するメモリ転送量の割合を示すダーティ率等も用いてよい。なお、当該VMのメモリ変更量に対するメモリ転送量の割合を示すダーティ率は、当該VMのマイグレーションの開始後に発生したメモリ変更量に対するメモリ転送量の割合であってもよい。制限定義情報には、このようなマイグレーションの進捗に関する条件と、条件に用いる値(例えば、閾値)とが記述される。また、それぞれの条件は、
図8に例示したように複数の条件の組み合わせにより記述されていてもよい。また、それぞれの条件の適用の優先度に関する情報を含んでもよい。
【0033】
また、制限定義情報に示される「アクション」の内容、つまり、通信制限の内容は、例えば、通信パケットのシェーピングや遮断の他、新規の通信パケットは受け付けないといった内容を含んでいてもよい。なお、新規の通信パケットを受け付けない、とは、例えば、TCP(Transmission Control Protocol)であればsyn、TCP以外ならば新たなIPアドレスとポート番号の組み合わせの通信パケットは受け付けないといったものである。この「アクション」の内容も、複数の通信制限の内容を組み合わせたものが記述されていてもよい。例えば、通信パケットのシェーピングをしつつ、新規の通信パケットは受け付けない、といった内容であってもよい。
【0034】
制御部13は、ネットワーク制御装置10全体の制御を司る。この制御部13は、進捗情報取得部130と、計算部132と、装置制御部133とを備える。
【0035】
進捗情報取得部130は、入出力部11経由で、クラウドコントローラ20からVMのマイグレーションの進捗情報を取得する。この進捗情報は、マイグレーションの対象となるVMにおけるメモリ転送が何%まで進んだか等を示した情報である。
【0036】
計算部132は、装置制御部133からの要求に基づき、マイグレーションの進捗情報をもとに、VMのマイグレーションの進捗状況を示す値を計算する。例えば、計算部132は、進捗情報として、マイグレーションの対象となるVMにおけるメモリ転送の進捗を示す情報を取得すると、この情報をもとに、当該VMのメモリ変更量に対するメモリ転送量の割合を示すダーティ率、マイグレーションの完了までの残り時間の予測値等を計算する。マイグレーションの完了までの残り時間の予測値は、例えば、
(マイグレーション開始から現在までのメモリ転送時間(s)/メモリ転送の進捗状況(%))×(100(%)−メモリ転送の進捗状況(%))
により計算される。また、当該VMのメモリ変更量に対するメモリ転送量の割合を示すダーティ率は、当該VMのマイグレーションの開始後に発生したメモリ変更量に対するメモリ転送量の割合であってもよい。計算部132は、このようにして計算した値を装置制御部133に受け渡す。
【0037】
装置制御部133は、VMのマイグレーションの進捗状況が所定の条件に該当すると判断したとき、当該VMの通信経路のネットワーク装置40に対して、当該VMへの通信制限を指示する。具体的には、装置制御部133は、前記した制限定義情報と、当該VMの進捗情報(および計算部132により計算されたVMのマイグレーションの進捗状況を示す値)とを参照して、当該VMの通信経路のネットワーク装置40に対する通信パケットの制限の内容を決定する。そして、装置制御部133はこの決定した内容を実行するよう、ネットワーク装置40に対し指示する。
【0038】
また、装置制御部133は、VMのマイグレーションの完了後、通信制限を解除する。具体的には、装置制御部133は、進捗情報取得部130から当該VMのマイグレーションが完了した旨の進捗情報を取得すると、当該VMの通信経路のネットワーク装置40に対し、通信制限を解除するよう指示する。
【0039】
(処理手順)
次に、
図9を用いて、ネットワーク制御装置10の処理手順を説明する。なお、以下の処理は、例えば、VMのマイグレーション開始後、クラウドコントローラ20からネットワーク制御装置10へ処理の開始指示が送信されたことを契機に実行される。
【0040】
まず、ネットワーク制御装置10の進捗情報取得部130は、クラウドコントローラ20からVMのマイグレーションの進捗情報を取得する(S1)。
【0041】
次に、ネットワーク制御装置10の装置制御部133は、進捗情報取得部130により取得された進捗情報と、制限定義情報とを参照して、VMのマイグレーションの進捗状況が制限定義情報に示される所定の条件に該当するか否かを判断する(S2)。ここで、装置制御部133が、VMのマイグレーションの進捗状況が制限定義情報に示される所定の条件に該当すると判断したとき(S2でYes)、VMの通信経路のネットワーク装置40に対し、制限定義情報に示される当該条件に対応する通信制限を指示する(S3)。
【0042】
そして、S3の後、装置制御部133が、当該VMのマイグレーションが完了したと判断したとき(S4でYes)、ネットワーク装置40に対する通信制限を解除する(S5)。すなわち、装置制御部133は、進捗情報取得部130経由で、当該VMのマイグレーションが完了した旨の進捗情報を取得すると、ネットワーク装置40に対し通信制限を解除するように指示する。
【0043】
なお、装置制御部133が、S4において、当該VMのマイグレーションがまだ完了してないと判断したときは(S4でNo)、S2へ戻る。つまり、装置制御部133は、進捗情報取得部130経由で取得した進捗情報に基づき再度マイグレーションが制限定義情報に示される所定の条件に該当するか否かを判断する(S2)。一方、装置制御部133が、S2において、VMのマイグレーションの進捗状況が制限定義情報に示される所定の条件に該当しないと判断したとき(S2でNo)、通信制限は行わない。
【0044】
このようにすることで、VMのライブマイグレーション時に、当該VMが高負荷な状態になっている場合であっても、負荷の軽減がされるので、当該VMのマイグレーションに要する時間を短縮することができる。
【0045】
また、ネットワーク制御装置10は、マイグレーションの開始前およびマイグレーションの完了後は通信制限を行わないので、VMのリソースを有効活用できる。
【0046】
(具体例)
図8に示す制限定義情報を参照して、通信制限の内容の決定処理の例を説明する。ここでは、1行目の条件の優先度が「10」、2行目の条件の優先度が「8」、3行目の条件の優先度が「6」、4行目の条件の優先度が「4」、5行目の条件の優先度が「2」、6行目の条件の優先度が「1」であるものとする。
【0047】
装置制御部133は、VMのマイグレーションの進捗情報を取得すると、この進捗情報に示される進捗状況が、制限定義情報に示されるどの条件と該当するかを判断する。例えば、VMのマイグレーションの進捗状況が、進捗率8%、かつ、残り時間9.5時間であれば、2行目の条件に該当する。よって、装置制御部133は、当該VMの通信経路のネットワーク装置40に2000ppsのシェーピングを指示することを決定する。
【0048】
その後、装置制御部133が、再度VMのマイグレーションの進捗情報を取得する。そして、装置制御部133は、取得した進捗情報に示される進捗状況が、制限定義情報に示されるどの条件と該当するかを判断する。ここで、今回取得した進捗情報が、進捗率15%、かつ、残り時間が9.5時間であった場合、制限定義情報の3行目の条件に該当するので、装置制御部133は、当該VMの通信経路のネットワーク装置40に1000ppsのシェーピングを指示することを決定する。
【0049】
ここで、装置制御部133は、制限定義情報に示される条件のうち、より優先度の高い条件がヒットした場合、現在適用している条件に対するアクションを中止し、より優先度の高い条件に対するアクションを実行する。つまり、前記した例でいうと、制限定義情報に示される1行目の条件(優先度:10)を適用中に、2行目の条件(優先度:8)がヒットした場合、装置制御部133は、これまで実行していた1行目の条件(優先度:10)に対するアクションを中止し、より優先度の高い2行目の条件(優先度:8)に対するアクションを実行するようにする。
【0050】
つまり、
図8に例示したように、制限定義情報に、マイグレーションの進捗状況(進捗率)に対応した通信制限の内容を定義することで、装置制御部133はマイグレーションの進捗状況に応じた段階的な通信制限を行うことができる。例えば、装置制御部133は、制限定義情報を参照して、VMのマイグレーションの開始当初は、シェーピングの値を高く(例えば、3000pps程度に)しておくが、マイグレーションの進捗率に対し、マイグレーション完了までにはまだある程度の時間がかかりそうな場合、シェーピングの値を低く(例えば、500pps程度に)する。つまり、装置制御部133が、VMのマイグレーションの開始当初から強い通信制限を行わず、マイグレーションの進捗状況に応じて段階的に通信制限を行う。その結果、VMへの通信制限を必要以上に行わずにマイグレーションを完了させることができる。
【0051】
(プログラム)
また、上記実施形態に係るネットワーク制御装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、ネットワーク制御装置10と同様の機能を実現するネットワーク制御プログラムを実行するコンピュータの一例を説明する。
【0052】
図10は、ネットワーク制御プログラムを実行するコンピュータを示す図である。
図10に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0053】
メモリ1010は、ROM(Read Only Memory)1011およびRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
【0054】
ここで、
図10に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1090やメモリ1010に記憶される。
【0055】
また、ネットワーク制御プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明したネットワーク制御装置10が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
【0056】
また、ネットワーク制御プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0057】
なお、ネットワーク制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、ネットワーク制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。