(57)【要約】【課題】仮想計算機が移動した後、ネットワークトポロジを制御することによって、仮想アドレスを宛先とするパケットが移動先の物理計算機へ転送される仮想計算機送信方法、システム、管理装置及びプログラムを提供する。【解決手段】移動先となる第２の物理計算機が、当該第２の物理計算機の物理インタフェースに対して仮想計算機の仮想レイヤ２アドレスを割り当て、レイヤ２ネットワークにおける第１の物理計算機との間の分岐スイッチへ向けてパケットを送信し、レイヤ２ネットワークを構成するスイッチに、仮想レイヤ２アドレスを学習させ、第２の物理計算機の物理インタフェースに対して、物理レイヤ２アドレスに戻して割り当てる。そして、移動元となる第１の物理計算機が、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させる。【選択図】図２
2010124129.tif 000002
【特許請求の範囲】
【請求項１】
複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機と、該物理計算機で稼働している仮想計算機を管理する管理装置とを有するシステムについて、前記物理計算機は、前記レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、前記仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有し、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる仮想計算機送信方法であって、
第２の物理計算機が、当該第２の物理計算機の物理インタフェースに対して、前記仮想計算機の前記仮想レイヤ２アドレスを割り当てる第１のステップと、
第２の物理計算機が、前記レイヤ２ネットワークにおける第１の物理計算機との間の分岐スイッチへ向けてパケットを送信し、前記レイヤ２ネットワークを構成する前記スイッチに、前記仮想レイヤ２アドレスを学習させる第２のステップと、
第２の物理計算機が、第２の物理計算機の物理インタフェースに対して、前記物理レイヤ２アドレスに戻して割り当てる第３のステップと、
第１の物理計算機が、前記仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させる第４のステップと
を有することを特徴とする仮想計算機送信方法。
【請求項２】
第１の物理計算機と第２の物理計算機とが、レイヤ３サブネットを越えて、異なるレイヤ２ネットワークに接続されている場合、
第１の物理計算機が、第２の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するステップと、
第２の物理計算機が、第１の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するステップと、
第２の物理計算機が、前記仮想計算機の仮想インタフェースを、前記レイヤ３トンネルに対応付けるステップと、
第１の物理計算機が、前記仮想計算機のレイヤ３アドレスへの経路制御を、前記レイヤ３トンネルの入口アドレスに対応付けるステップと、
第１の物理計算機が、前記仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させるステップと
を有することを特徴とする請求項１に記載の仮想計算機送信方法。
【請求項３】
第２のステップについて、第２の物理計算機は、
前記分岐スイッチのレイヤ３アドレスが特定されている場合、該レイヤ３アドレスへ向けてｐｉｎｇ(Packet INternet Groper)パケットを送信し、
前記分岐スイッチのレイヤ３アドレスが特定されていない場合、該分岐スイッチの物理アドレスへ向けてEthernet OAM Continuity Check (CC)又はLoop Back (LB)のメッセージを送信する
ことを特徴とする請求項１又は２に記載の仮想計算機送信方法。
【請求項４】
前記システムは、管理装置を更に有し、
前記管理装置は、
前記レイヤ２ネットワークにおける第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索し、
第１のステップから第４のステップを実行すべき制御メッセージを、第１の物理計算機及び第２の物理計算機へ送信する
ことを特徴とする請求項１から３のいずれか１項に記載の仮想計算機送信方法。
【請求項５】
複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機を有するシステムについて、前記物理計算機は、前記レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、前記仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有しており、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる仮想計算機送信システムであって、
第２の物理計算機は、
当該第２の物理計算機の物理インタフェースに対して、前記仮想計算機の前記仮想レイヤ２アドレスを割り当てるアドレス詐称手段と、
前記レイヤ２ネットワークにおける第１の物理計算機との間の分岐スイッチへ向けてパケットを送信し、前記レイヤ２ネットワークを構成する前記スイッチに、前記仮想レイヤ２アドレスを学習させる学習パケット送信手段と、
第２の物理計算機の物理インタフェースに対して、前記物理レイヤ２アドレスに戻して割り当てるアドレス復旧手段と
を有し、
第１の物理計算機は、前記仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させる仮想計算機送信手段を有する
ことを特徴とする仮想計算機送信システム。
【請求項６】
第１の物理計算機と第２の物理計算機とが、レイヤ３サブネットを越えて、異なるレイヤ２ネットワークに接続されている場合、
第１の物理計算機は、
第２の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するトンネル生成手段と、
前記仮想計算機のレイヤ３アドレスへの経路制御を、前記レイヤ３トンネルの入口アドレスに対応付けるトンネル経路制御手段と
を更に有し、
第２の物理計算機は、
第１の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するトンネル生成手段と、
前記仮想計算機の仮想インタフェースを、前記レイヤ３トンネルに対応付けるトンネル割当手段と
を更に有し、
前記仮想計算機送信手段は、前記仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させる
ことを特徴とする請求項５に記載の仮想計算機送信システム。
【請求項７】
前記学習パケット送信手段は、
前記分岐スイッチのレイヤ３アドレスが特定されている場合、該レイヤ３アドレスへ向けてｐｉｎｇパケットを送信し、
前記分岐スイッチのレイヤ３アドレスが特定されていない場合、該分岐スイッチの物理レイヤ２アドレスへ向けてEthernet OAM Continuity Check (CC)又はLoop Back (LB)のメッセージを送信する
ことを特徴とする請求項５又は６に記載の仮想計算機送信システム。
【請求項８】
複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機を有するシステムについて、前記物理計算機は、前記レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、前記仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有しており、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる管理装置であって、
前記レイヤ２ネットワークについて第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索する分岐スイッチ探索手段と、
当該第２の物理計算機の物理インタフェースに対して、前記仮想計算機の前記仮想レイヤ２アドレスを割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス詐称制御手段と、
第２の物理計算機が、前記分岐スイッチへ向けてパケットを送信し、前記レイヤ２ネットワークの中の前記スイッチに、前記仮想レイヤ２アドレスを学習させるべく、第２の物理計算機へ制御メッセージを送信するアドレス学習制御手段と、
第２の物理計算機の物理インタフェースに対して、前記物理レイヤ２アドレスに戻して割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス復旧制御手段と、
第１の物理計算機が、前記仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させるべく、第１の物理計算機へ制御メッセージを送信する仮想計算機移動制御手段と
を有することを特徴とする管理装置。
【請求項９】
複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機を有するシステムについて、前記物理計算機は、前記レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、前記仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有しており、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる管理装置に搭載されるコンピュータを機能させるプログラムであって、
前記レイヤ２ネットワークについて第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索する分岐スイッチ探索手段と、
当該第２の物理計算機の物理インタフェースに対して、前記仮想計算機の前記仮想レイヤ２アドレスを割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス詐称制御手段と、
第２の物理計算機が、前記分岐スイッチへ向けてパケットを送信し、前記レイヤ２ネットワークの中の前記スイッチに、前記仮想レイヤ２アドレスを学習させるべく、第２の物理計算機へ制御メッセージを送信するアドレス学習制御手段と、
第２の物理計算機の物理インタフェースに対して、前記物理レイヤ２アドレスに戻して割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス復旧制御手段と、
第１の物理計算機が、前記仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させるべく、第１の物理計算機へ制御メッセージを送信する仮想計算機移動制御手段と
してコンピュータを機能させることを特徴とする管理装置用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機送信方法、システム、管理装置及びプログラムに関する。
【背景技術】
【０００２】
仮想計算機とは、仮想的に作り出された１台のコンピュータであって、物理計算機の中で稼働する。仮想計算機は、ＯＳ(Operating System)及びアプリケーションを包括した単位である。仮想計算機は、物理計算機に搭載されたプロセッサを時分割で利用し、物理計算機のディスクを領域分割で利用し、物理計算機のメモリを仮想記憶として利用する。
【０００３】
異なる物理計算機の間で、ネットワークを介して仮想計算機を移動させる技術がある（例えば特許文献１及び２参照）。この技術によれば、移動元の物理計算機で稼働中の仮想計算機を一時的に停止し、仮想資源状態情報を保持する。移動元の物理計算機は、仮想計算機と共に、その仮想資源状態情報を、移動先の物理計算機へ送信する。移動先の物理計算機は、移動元の物理計算機で停止された状態から、仮想計算機を再起動させる。これによって、仮想計算機が、移動後も継続して運用されることとなる。
【０００４】
また、仮想計算機を管理し、複数の物理計算機の間における仮想計算機の移動を管理する管理サーバを備える技術もある（例えば特許文献３参照）。この技術によれば、仮想計算機は、一時的に停止されることなく、動的マイグレーションによって移動される。「動的マイグレーション」とは、仮想計算機が、移動中に、一時的停止及び再起動されないことを意味する。これは、移動元の物理計算機と移動先の物理計算機との間で、稼働中の仮想計算機のメモリデータの差分コピーを繰り返すことによって実現される。
【０００５】
【特許文献１】特開平１０−２８３２１０号公報
【特許文献２】特開２００６−７２５９１号公報
【特許文献３】特表２００７−５３６６５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
仮想計算機を移動させた後、ネットワークに配置されたスイッチは、移動先の物理計算機の下における仮想計算機の仮想ＭＡＣアドレスを、経路テーブルに既に学習し終えていることを前提としている。そうでない場合、仮想計算機が移動した後、仮想計算機を宛先とするパケットは、移動元の物理計算機へ転送されることとなる。
【０００７】
しかしながら、前述したいずれの従来技術であっても、移動元の物理計算機と移動先の物理計算機との間のネットワークに配置されたスイッチおける経路制御（ネットワークトポロジの変更）については、検討されていない。また、既存の仮想計算機は、広くともレイヤ３サブネット内での仮想計算機の移動のみを想定している。従って、レイヤ３サブネットを越えて仮想計算機が移動する場合についてまで検討されていない。
【０００８】
そこで、本発明は、仮想計算機が移動した後、ネットワークトポロジを制御することによって、仮想レイヤ２アドレス及びレイヤ３アドレスを宛先とするパケットが移動先の物理計算機へ転送される仮想計算機送信方法、システム、管理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明によれば、複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機と、該物理計算機で稼働している仮想計算機を管理する管理装置とを有するシステムについて、物理計算機は、レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有し、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる仮想計算機送信方法であって、
第２の物理計算機が、当該第２の物理計算機の物理インタフェースに対して、仮想計算機の仮想レイヤ２アドレスを割り当てる第１のステップと、
第２の物理計算機が、レイヤ２ネットワークにおける第１の物理計算機との間の分岐スイッチへ向けてパケットを送信し、レイヤ２ネットワークを構成するスイッチに、仮想レイヤ２アドレスを学習させる第２のステップと、
第２の物理計算機が、第２の物理計算機の物理インタフェースに対して、物理レイヤ２アドレスに戻して割り当てる第３のステップと、
第１の物理計算機が、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させる第４のステップと
を有することを特徴とする。
【００１０】
本発明の仮想計算機送信方法における他の実施形態によれば、
第１の物理計算機と第２の物理計算機とが、レイヤ３サブネットを越えて、異なるレイヤ２ネットワークに接続されている場合、
第１の物理計算機が、第２の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するステップと、
第２の物理計算機が、第１の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するステップと、
第２の物理計算機が、仮想計算機の仮想インタフェースを、レイヤ３トンネルに対応付けるステップと、
第１の物理計算機が、仮想計算機のレイヤ３アドレスへの経路制御を、レイヤ３トンネルの入口アドレスに対応付けるステップと、
第１の物理計算機が、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させるステップと
を有することも好ましい。
【００１１】
本発明の仮想計算機送信方法における他の実施形態によれば、第２のステップについて、第２の物理計算機は、
分岐スイッチのレイヤ３アドレスが特定されている場合、該レイヤ３アドレスへ向けてｐｉｎｇ(Packet INternet Groper)パケットを送信し、
分岐スイッチのレイヤ３アドレスが特定されていない場合、該分岐スイッチの物理アドレスへ向けてEthernet OAM Continuity Check (CC)又はLoop Back (LB)のメッセージを送信することも好ましい。
【００１２】
本発明の仮想計算機送信方法における他の実施形態によれば、システムは、管理装置を更に有し、管理装置は、レイヤ２ネットワークにおける第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索し、第１のステップから第４のステップを実行すべき制御メッセージを、第１の物理計算機及び第２の物理計算機へ送信することも好ましい。
【００１３】
本発明によれば、複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機を有するシステムについて、物理計算機は、レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有しており、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる仮想計算機送信システムであって、
第２の物理計算機は、
当該第２の物理計算機の物理インタフェースに対して、仮想計算機の仮想レイヤ２アドレスを割り当てるアドレス詐称手段と、
レイヤ２ネットワークにおける第１の物理計算機との間の分岐スイッチへ向けてパケットを送信し、レイヤ２ネットワークを構成するスイッチに、仮想レイヤ２アドレスを学習させる学習パケット送信手段と、
第２の物理計算機の物理インタフェースに対して、物理レイヤ２アドレスに戻して割り当てるアドレス復旧手段と
を有し、
第１の物理計算機は、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させる仮想計算機送信手段を有することを特徴とする。
【００１４】
本発明の仮想計算機送信システムにおける他の実施形態によれば、第１の物理計算機と第２の物理計算機とが、レイヤ３サブネットを越えて、異なるレイヤ２ネットワークに接続されている場合、
第１の物理計算機は、
第２の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するトンネル生成手段と、
仮想計算機のレイヤ３アドレスへの経路制御を、レイヤ３トンネルの入口アドレスに対応付けるトンネル経路制御手段と
を更に有し、
第２の物理計算機は、
第１の物理計算機のレイヤ３アドレスとの間で、レイヤ３トンネルを生成するトンネル生成手段と、
仮想計算機の仮想インタフェースを、レイヤ３トンネルに対応付けるトンネル割当手段と
を更に有し、
仮想計算機送信手段は、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させることも好ましい。
【００１５】
本発明の仮想計算機送信システムにおける他の実施形態によれば、
学習パケット送信手段は、
分岐スイッチのレイヤ３アドレスが特定されている場合、該レイヤ３アドレスへ向けてｐｉｎｇパケットを送信し、
分岐スイッチのレイヤ３アドレスが特定されていない場合、該分岐スイッチの物理レイヤ２アドレスへ向けてEthernet OAM Continuity Check (CC)又はLoop Back (LB)のメッセージを送信することも好ましい。
【００１６】
本発明によれば、複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機を有するシステムについて、物理計算機は、レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有しており、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる管理装置であって、
レイヤ２ネットワークについて第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索する分岐スイッチ探索手段と、
当該第２の物理計算機の物理インタフェースに対して、仮想計算機の仮想レイヤ２アドレスを割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス詐称制御手段と、
第２の物理計算機が、分岐スイッチへ向けてパケットを送信し、レイヤ２ネットワークの中のスイッチに、仮想レイヤ２アドレスを学習させるべく、第２の物理計算機へ制御メッセージを送信するアドレス学習制御手段と、
第２の物理計算機の物理インタフェースに対して、物理レイヤ２アドレスに戻して割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス復旧制御手段と、
第１の物理計算機が、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させるべく、第１の物理計算機へ制御メッセージを送信する仮想計算機移動制御手段と
を有することを特徴とする。
【００１７】
本発明によれば、複数のスイッチによって論理的にツリー状に構成されたレイヤ２ネットワークに接続された複数の物理計算機を有するシステムについて、物理計算機は、レイヤ２ネットワークに接続される物理インタフェースに物理レイヤ２アドレス及びレイヤ３アドレスを有し、仮想計算機は、仮想インタフェースに仮想レイヤ２アドレス及びレイヤ３アドレスを有しており、移動前となる第１の物理計算機で稼働している仮想計算機を、移動後となる第２の物理計算機へ移動させる管理装置に搭載されるコンピュータを機能させるプログラムであって、
レイヤ２ネットワークについて第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索する分岐スイッチ探索手段と、
当該第２の物理計算機の物理インタフェースに対して、仮想計算機の仮想レイヤ２アドレスを割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス詐称制御手段と、
第２の物理計算機が、分岐スイッチへ向けてパケットを送信し、レイヤ２ネットワークの中のスイッチに、仮想レイヤ２アドレスを学習させるべく、第２の物理計算機へ制御メッセージを送信するアドレス学習制御手段と、
第２の物理計算機の物理インタフェースに対して、物理レイヤ２アドレスに戻して割り当てるべく、第２の物理計算機へ制御メッセージを送信するアドレス復旧制御手段と、
第１の物理計算機が、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させるべく、第１の物理計算機へ制御メッセージを送信する仮想計算機移動制御手段と
してコンピュータを機能させることを特徴とする。
【発明の効果】
【００１８】
本発明の仮想計算機送信方法、システム、管理装置及びプログラムによれば、仮想計算機が移動した後、ネットワークトポロジを制御することによって、仮想レイヤ２アドレス及びレイヤ３アドレスを宛先とするパケットが、移動先の物理計算機へ転送される。
【発明を実施するための最良の形態】
【００１９】
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
【００２０】
図１は、レイヤ３サブネット内で仮想計算機を移動させるシステム構成図である。
【００２１】
図１のシステムによれば、複数のスイッチ４によって構成されたレイヤ２ネットワークに、複数の物理計算機１が接続されている。レイヤ２ネットワークは、例えばイーサネット（登録商標）であって、ループを構成することのなく、論理的にツリー状に構成される。また、管理装置３も、レイヤ２ネットワークに接続されており、物理計算機１で稼働する仮想計算機２を管理する。
【００２２】
図１によれば、移動元の第１の物理計算機１の上で、仮想計算機２が稼働している。仮想計算機２には、仮想ＭＡＣ(Media Access Control)アドレス（レイヤ２アドレス）及び仮想ＩＰ(Internet Protocol)アドレス（レイヤ３アドレス）が付与される。仮想ＭＡＣアドレスは、ランダムに生成された２４ビットのアドレスであり、上位１２ビットは、仮想計算機のベンダＩＤである。
【００２３】
物理計算機１は、物理ＮＩＣ(Network Interface Card)によって、スイッチ４に接続される。物理計算機１にも、物理ＭＡＣアドレス及びＩＰアドレスが付与される。物理計算機１は、仮想インタフェース(vif: virtual interface)を有する仮想ブリッジ部を更に有し、仮想ブリッジ部は物理ＮＩＣに接続される。そして、仮想計算機２の仮想ＭＡＣアドレスは、仮想インタフェースにマッピングされる。仮想ブリッジ部は、仮想計算機２と物理ＮＩＣとの間でスイッチとして機能する。
【００２４】
仮想計算機２は、移動元の第１の物理計算機１から移動先の第２の物理計算機１へ移動している。仮想計算機２は、移動後、仮想ＭＡＣアドレスの接続先を、第２の物理計算機１の仮想インタフェースに切り替える。これによって、仮想計算機２は、第２の物理計算機１の上で、パケットを送受信することができる。
【００２５】
図２は、レイヤ３サブネット内で仮想計算機を移動させるシーケンス図である。
【００２６】
（Ｓ０）管理装置３は、ネットワークトポロジデータベースを有し、レイヤ２ネットワークにおけるスイッチのトポロジ情報を蓄積している。管理装置３は、ネットワークトポロジデータベースを用いて、レイヤ２ネットワークにおける第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索することができる。「分岐スイッチ」とは、第１の物理計算機及び第２の物理計算機から見て、上層のスイッチを辿って、分岐点となるスイッチを意味する。管理装置３は、分岐スイッチのＩＰアドレス及びＭＡＣアドレスを探索する。
【００２７】
管理装置３が、ネットワークトポロジデータベースを有することなく、分岐スイッチを発見できない場合、そのツリー状の最上層のルートスイッチを、分岐スイッチとして選択してもよい。レイヤ２ネットワークがスパニングツリーによって構成されている場合、最小のブリッジＩＤのスイッチがルートスイッチである。
【００２８】
仮想計算機には、例えばＸｅｎ（登録商標）及びＶＭｗａｒｅ（登録商標）がある。Ｘｅｎは、ケンブリッジ大学で研究された後、ＧＮＵ(General Public License)の元で公開され、現在、XenSource社によって開発されている。Ｘｅｎでは、仮想計算機の単位を「ドメイン」と称する。ＶＭｗａｒｅは、VMware社によって開発されており、物理計算機を「ホストＯＳ」と称し、仮想計算機を「ゲストＯＳ」と称する。
【００２９】
Ｘｅｎの場合、以下のような設定ファイルに、仮想ＭＡＣアドレスが登録されている。
kernel      = '/boot/vmlinuz-2.6.24-19-xen'
ramdisk     = '/boot/initrd.img-2.6.24-19-xen'
memory      = '128'
root        = '/dev/xvda2 ro'
disk        = ['tap:aio:/vm/domains/vm001/swap.img,xvda1,w',
'tap:aio:/vm/domains/vm001/disk.img,xvda2,w',]
name        = 'vm001'
vif         = [ 'ip=192.168.10.111, mac=00:16:3E:A8:A0:88, bridge=xenbr1' ]
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'
extra = '2 console=xvc0'
ここで、"vif"は、仮想インタフェースを表し、"ip=192.168.10.111"は、仮想ＩＰアドレスを表し、"mac=00:16:3E:A8:A0:88"は、仮想ＭＡＣアドレスを表し、"bridge=xenbr1"は、仮想ブリッジの名前を表す。
【００３０】
また、ＶＭｗａｒｅの場合、以下のような設定ファイルに、仮想ＭＡＣアドレスが登録されている。
ide0:0.redo = ""
ide1:0.startConnected = "TRUE"
ethernet0.addressType = "generated"
uuid.location = "56 4d ab 6d a7 e8 64 c2-c3 cc f8 35 65 f4 b9 1e"
uuid.bios = "56 4d ab 6d a7 e8 64 c2-c3 cc f8 35 65 f4 b9 1e"
ethernet0.generatedAddress = "00:0c:29:f4:b9:1e"
ethernet0.generatedAddressOffset = "0"
tools.syncTime = "FALSE"
ここで、ethernet0.generatedAddress = "00:0c:29:f4:b9:1e"が、仮想ＭＡＣアドレスを表す。
【００３１】
仮想ＭＡＣアドレスを含む設定ファイルは、仮想計算機が稼働している物理計算機の共有ディスクに記憶されていると共に、管理装置３によっても管理されている。
【００３２】
（Ｓ１）第２の物理計算機が、当該第２の物理計算機の物理インタフェースに対して、仮想計算機２の仮想ＭＡＣアドレスを割り当てる。即ち、第２の物理計算機は、仮想ＭＡＣアドレスに詐称される。尚、第２の物理計算機は、管理装置３からのアドレス詐称の制御メッセージを受信した際に、実行されるものであってもよい。
【００３３】
例えばＬｉｎｕｘ（登録商標）の場合、第２の物理計算機は、以下のようなコマンドを実行することによって、仮想ＭＡＣアドレスに詐称することができる。
# ifdown eth0                                （eth0インタフェースの停止）
# ifconfig eth0 hw ether 00:16:3E:A8:A0:88  （仮想ＭＡＣアドレスに詐称）
# ifup eth0                                  （eth0インタフェースの起動）
【００３４】
（Ｓ２）第２の物理計算機が、分岐スイッチへ向けてパケットを送信する。このパケットの送信元ＭＡＣアドレスは、仮想ＭＡＣアドレスとなる。このパケットを中継するスイッチは、仮想ＭＡＣアドレスに基づいて経路テーブルを更新する。これによって、レイヤ２ネットワークを構成するスイッチに、仮想ＭＡＣアドレスを学習させることができる。尚、第２の物理計算機は、管理装置３からの学習パケット送信の制御メッセージを受信した際に、実行されるものであってもよい。
【００３５】
ここで、分岐スイッチのレイヤ３アドレスが特定されている場合、そのレイヤ３アドレスへ向けてｐｉｎｇ(Packet INternet Groper)パケットが送信される。ｐｉｎｇパケットは、相手方物理計算機のＩＰアドレスへ向けて送信される、ＩＣＭＰの３２バイトのパケットであって、接続性及び応答時間等を診断する。一方、分岐スイッチのレイヤ３アドレスが特定されていない場合、その分岐スイッチの物理アドレスへ向けて、接続性確認のためのEthernet OAM Continuity Check (CC)又はLoop Back (LB)のメッセージが送信される。
【００３６】
（Ｓ３）第２の物理計算機が、第２の物理計算機の物理インタフェースに対して、物理ＭＡＣアドレスに戻して割り当てる。尚、第２の物理計算機は、管理装置３からのアドレス復旧の制御メッセージを受信した際に、実行されるものであってもよい。
【００３７】
（Ｓ４）第１の物理計算機が、仮想計算機２を、第２の物理計算機のＩＰアドレス（レイヤ３アドレス）へ向けて移動させる。尚、第１の物理計算機は、管理装置３からの仮想計算機２の移動を指示する制御メッセージを受信した際に、実行されるものであってもよい。
【００３８】
例えばＸｅｎの場合、以下のようなコマンドを実行することによって、仮想計算機２を、第１の物理計算機(ip=192.168.10.2)から第２の物理計算機(ip=192.168.10.3)へ移動させることができる。
$ ssh -l root 192.168.10.2                （移動元の物理計算機へログイン）
# xm migrate --live vm01 192.168.10.3
（仮想計算機vm01を、第２の物理計算機へ移動）
【００３９】
本発明によれば、第２の物理計算機へ仮想計算機２が移動する前に、既に、レイヤ２ネットワークの各スイッチ４は、仮想計算機２の仮想ＭＡＣアドレスを、経路テーブルに学習している。従って、仮想計算機２を宛先とするパケットは、レイヤ２ネットワークを介して、第２の物理計算機へ到達する。
【００４０】
図３は、レイヤ３サブネットを越えて仮想計算機を移動させるシステム構成図である。
【００４１】
図３のシステムによれば、第１の物理計算機は、複数のルータ５を介して、第２の物理計算機に接続される。従って、図２のシステムのように、レイヤ２ネットワークのスイッチに対する経路制御だけでは、仮想計算機の移動後のネットワークトポロジを変更することができない。そのために、本発明によれば、第１の物理計算機と第２の物理計算機との間に、レイヤ３のトンネルを生成する。そして、第１の物理計算機は、仮想計算機への経路制御を、そのレイヤ３トンネルの入口アドレスに対応付ける。
【００４２】
例えばＬｉｎｕｘの場合、第１の物理計算機は、以下のようなコマンドを実行することによって、ＩＰトンネルを生成し、そのトンネルに入口アドレスを付与する。
# ip tunnel add netR2 mode gre remote 192.168.20.3 local 192.168.0.3
（ＧＲＥトンネルを生成）
# ip link set netR2 up                          （トンネルを有効化）
# ip addr add 10.10.10.1 dev netR2              （トンネルにアドレスを付与）
ここで、トンネルnetR2には、アドレス"10.10.10.1"が付与される。
【００４３】
同様に、第２の物理計算機も、以下のようなコマンドを実行することによって、ＩＰトンネルを生成し、そのトンネルに入口アドレスを付与する。
# ip tunnel add netR1 mode gre remote 192.168.0.3 local 192.168.20.3
（ＧＲＥトンネルを生成）
# ip link set netR1 up                          （トンネルを有効化）
# ip addr add 10.10.10.2 dev netR1              （トンネルにアドレスを付与）
ここで、トンネルnetR1には、アドレス"10.10.10.2"が付与される。
【００４４】
次に、第１の物理計算機は、例えばＸｅｎの場合、以下のようなコマンドを実行することによって、仮想ブリッジxenbr1にそのトンネルを接続する。
# /etc/xen/scripts/network-bridge start vifnum=1 bridge=xenbr1 netdev=netR1
【００４５】
そして、第１の物理計算機が、仮想計算機２を、トンネルを介して、第２の物理計算機のレイヤ３アドレスへ向けて移動させる。例えばＸｅｎの場合、以下のようなコマンドを実行することによって、仮想計算機２を、第１の物理計算機(ip=192.168.10.2)から第２の物理計算機(ip=192.168.10.3)へ移動させることができる。
$ ssh -l root 192.168.10.2                  （移動元の物理計算機へログイン）
# xm migrate --live vm01 192.168.10.3
（仮想計算機vm01を、第２の物理計算機へ移動）
【００４６】
図４は、本発明における物理計算機の機能構成図である。
【００４７】
図４によれば、物理計算機１は、スイッチ４に接続される通信インタフェース部１０と、アドレス詐称部１１と、学習パケット送信部１２と、アドレス復旧部１３と、仮想計算機送信部１４と、仮想計算機受信部１５と、トンネル生成部１６と、トンネルアドレス割当部１７と、仮想ブリッジ部１８と、制御メッセージ受信部１９と、トンネル経路制御部１Ａとを有する。これら機能構成部は、物理計算機に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００４８】
アドレス詐称部１１は、当該第２の物理計算機の物理インタフェースに対して、仮想計算機の仮想ＭＡＣアドレスを割り当てる。尚、アドレス詐称部１１は、制御メッセージ受信部１９によって受信された管理装置３からの制御メッセージによって実行されてもよい。
【００４９】
学習パケット送信部１２は、レイヤ２ネットワークにおける分岐スイッチへ向けてパケットを送信し、レイヤ２ネットワークを構成するスイッチに、仮想ＭＡＣアドレスを学習させる。尚、学習パケット送信部１２は、制御メッセージ受信部１９によって受信された管理装置３からの制御メッセージによって実行されてもよい。
【００５０】
分岐スイッチのＩＰアドレス及び物理ＭＡＣアドレスは、管理装置３から受信されるものであってもよい。分岐スイッチのＩＰアドレスが特定されている場合、そのＩＰアドレスへ向けてｐｉｎｇパケットが送信される。一方、分岐スイッチのレイヤ３アドレスが特定されていない場合、その分岐スイッチの物理ＭＡＣアドレスへ向けてEthernet OAM Continuity Check (CC)又はLoop Back (LB)のメッセージが送信される。
【００５１】
アドレス復旧部１３は、第２の物理計算機の物理インタフェースに対して、物理ＭＡＣアドレスに戻して割り当てる。尚、学習パケット送信部１２は、制御メッセージ受信部１９によって受信された管理装置３からの制御メッセージによって実行されてもよい。
【００５２】
仮想計算機送信部１４は、仮想計算機２を、移動先の物理計算機のＩＰアドレスへ向けて送信する。
【００５３】
仮想計算機送信部１４は、仮想計算機２を、移動元の物理計算機から受信する。
【００５４】
トンネル生成部１６は、相手方物理計算機との間でレイヤ３サブネットを越えて接続されている場合、レイヤ３（ＩＰ）トンネルを生成する。
【００５５】
トンネルアドレス割当部１７は、トンネル生成部１６によって生成されたトンネルの入口アドレスを、仮想ブリッジ部１８に割り当てる。
【００５６】
仮想ブリッジ部１８は、仮想インタフェースと物理ＮＩＣとの間でスイッチとして機能する。仮想インタフェースは、仮想計算機２の仮想ＭＡＣアドレスにマッピングされる。
【００５７】
制御メッセージ受信部１９は、管理装置３から制御メッセージを受信し、アドレス詐称部１１、学習パケット送信部１２、アドレス復旧部１３及びトンネル生成部１６を制御する。
【００５８】
トンネル経路制御部１Ａは、トンネル生成部１６によって生成されたレイヤ３トンネルの入口アドレスに、仮想計算機への経路制御を、そのレイヤ３トンネルの入口アドレスに対応付ける。これによって、第１の物理計算機は、仮想計算機２に対するパケットを、レイヤ３トンネルを介して第２の物理計算機へ経路制御する。
【００５９】
図５は、本発明における管理装置の機能構成図である。
【００６０】
図５の管理装置３は、レイヤ３ネットワークに接続される通信インタフェース部３０と、アドレス詐称制御部３１と、学習パケット送信制御部３２と、アドレス復旧制御部３３と、仮想計算機移動制御部３４と、分岐スイッチ探索部３５と、ネットワークトポロジデータベース３６と、トンネル生成制御部３７と、トンネルアドレス割当制御部３８とを有する。これら機能構成部は、管理装置３に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００６１】
アドレス詐称制御部３１は、当該第２の物理計算機の物理インタフェースに対して、仮想計算機の仮想ＭＡＣアドレスを割り当てるべく、第２の物理計算機へ制御メッセージを送信する。
【００６２】
学習パケット送信制御部３２は、第２の物理計算機が、分岐スイッチへ向けてパケットを送信し、レイヤ２ネットワークの中のスイッチに、仮想ＭＡＣアドレスを学習させるべく、第２の物理計算機へ制御メッセージを送信する。
【００６３】
アドレス復旧制御部３３は、第２の物理計算機の物理インタフェースに対して、物理ＭＡＣアドレスに戻して割り当てるべく、第２の物理計算機へ制御メッセージを送信する。
【００６４】
仮想計算機移動制御部３４は、第１の物理計算機が、仮想計算機を、第２の物理計算機のレイヤ３アドレスへ向けて移動させるべく、第１の物理計算機へ制御メッセージを送信する。
【００６５】
分岐スイッチ探索部３５は、第１の物理計算機と第２の物理計算機との間がレイヤ３サブネット内である場合、ネットワークトポロジデータベース３６を用いて、レイヤ２ネットワークについて第１の物理計算機と第２の物理計算機との間の分岐スイッチを探索する。
【００６６】
ネットワークトポロジデータベース３６は、第１の物理計算機と第２の物理計算機との間のスイッチのトポロジ情報を蓄積している。
【００６７】
トンネル生成制御部３７は、第１の物理計算機と第２の物理計算機との間がレイヤ３サブネットを越えている場合に、両物理計算機に対してトンネルを生成するべく、制御メッセージを送信する。
【００６８】
トンネルアドレス割当制御部３８は、生成したトンネルの入口アドレスを、仮想計算機に対応付けるべく、制御メッセージを送信する。
【００６９】
以上、詳細に説明したように、本発明の仮想計算機送信方法、システム、管理装置及びプログラムによれば、仮想計算機が移動した後、ネットワークトポロジを制御することによって、仮想アドレスを宛先とするパケットが、移動先の物理計算機へ転送される。
【００７０】
前述した本発明の種々の実施形態において、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【図面の簡単な説明】
【００７１】
【図１】レイヤ３サブネット内で仮想計算機を移動させるシステム構成図である。
【図２】レイヤ３サブネット内で仮想計算機を移動させるシーケンス図である。
【図３】レイヤ３サブネットを越えて仮想計算機を移動させるシステム構成図である。
【図４】本発明における物理計算機の機能構成図である。
【図５】本発明における管理装置の機能構成図である。
【符号の説明】
【００７２】
１  物理計算機
１０  通信インタフェース部
１１  アドレス詐称部
１２  学習パケット送信部
１３  アドレス復旧部
１４  仮想計算機送信部
１５  仮想計算機受信部
１６  トンネル生成部
１７  トンネルアドレス割当部
１８  仮想ブリッジ部
１９  制御メッセージ受信部
１Ａ  トンネル経路制御部
２  仮想計算機
３  管理装置
３０  通信インタフェース部
３１  アドレス詐称制御部
３２  学習パケット送信制御部
３３  アドレス復旧制御部
３４  仮想計算機移動制御部
３５  分岐スイッチ探索部
３６  ネットワークトポロジデータベース
３７  トンネル生成制御部
３８  トンネルアドレス割当制御部
４  スイッチ
５  ルータ
【図１】
2010124129.tif 000003
【図２】
2010124129.tif 000004
【図３】
2010124129.tif 000005
【図４】
2010124129.tif 000006
【図５】
2010124129.tif 000007