JP2018005664A - 制御装置、情報処理システム、制御方法、及び、情報処理プログラム - Google Patents
制御装置、情報処理システム、制御方法、及び、情報処理プログラム Download PDFInfo
- Publication number
- JP2018005664A JP2018005664A JP2016133385A JP2016133385A JP2018005664A JP 2018005664 A JP2018005664 A JP 2018005664A JP 2016133385 A JP2016133385 A JP 2016133385A JP 2016133385 A JP2016133385 A JP 2016133385A JP 2018005664 A JP2018005664 A JP 2018005664A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- migration
- server
- virtual machine
- received
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】マイグレーションによる通信の瞬断を抑制する。【解決手段】サーバとクライアント端末との間のパケットを監視する制御装置において、移行元のサーバと移行元のサーバの処理環境の移行先である移行先のサーバとからパケットを受信する受信部と、移行元のサーバと移行先のサーバとから受信された対応するパケットの受信時刻の差分が許容範囲内であるか否かを判定し、対応するパケットのうち移行先のサーバから受信されたパケットを廃棄する判定部と、受信時刻の差分が許容範囲内であると判定された場合に、移行元のサーバの処理を停止させる制御部と、移行元のサーバ又は移行先のサーバから受信されたパケットを送信する送信部と、備える制御装置である。【選択図】図7
Description
本発明は、制御装置、情報処理システム、制御方法、及び、情報処理プログラムに関する。
装置上で動作しているOS(Operation System)やソフトウェア、当該OSやソフトウェアの設定や状態、装置上で保持されているデータ等をそのまま他の装置に移行させることをマイグレーションと称する。サービスプロバイダでは、サービスを提供しているサーバ等のハードウェアのメンテナンスや部品の交換時にサービスを停止させないように、OSやソフトウェアを別環境に移行させるライブマイグレーションが行われる。ライブマイグレーションでは、別環境への切替の際に、ダウンタイムが発生し、ミリ秒単位の通信の瞬断が発生する。瞬断とは、本明細書では、処理環境の切替によって通信できない期間が生じる現象を示す。処理環境とは、コンピュータのハードウェアの構成や設定、OSなどソフトウェアの構成や設定、および、それら全体の組み合わせのことである。
別環境への切り替えの際の通信の瞬断時間は、ユーザ端末とのセッションの切断が判定される時間よりも短い為、ユーザ端末とのセッションは維持される。また、別環境への切り替えの際の通信の切断によりパケットロスが発生した場合でも、ユーザ端末における再送機能によって、通信内容への影響は少ない。したがって、ライブマイグレーションの環境の移行によるユーザへのサービス提供への影響は少ない。
しかしながら、インターネットなどのネットワークは、近年、高速化、且つ、大容量化しており、ライブマイグレーションによる通信の瞬断がミリ秒単位であっても、サービスに与える影響が大きくなる可能性がある。以降、本明細書では、マイグレーションと称する場合には、ライブマイグレーションを示すこととする。
本発明の一態様は、マイグレーションによる通信の瞬断を抑制する制御装置、情報処理システム、制御方法、及び、情報処理プログラムを提供することを目的とする。
本発明の態様の一つは、サーバとクライアント端末との間のパケットを監視する制御装置である。制御装置は、移行元のサーバと移行元のサーバの処理環境の移行先である移行先のサーバとからパケットを受信する受信部と、移行元のサーバと移行先のサーバとから受信された対応するパケットの受信時刻の差分が許容範囲内であるか否かを判定し、対応するパケットのうち移行先のサーバから受信されたパケットを廃棄する判定部と、受信時刻の差分が許容範囲内であると判定された場合に、移行元のサーバの処理を停止させる制御部と、移行元のサーバ又は移行先のサーバから受信されたパケットを送信する送信部と、を備える。
開示の制御装置、情報処理システム、制御方法、及び、情報処理プログラムによれば、
マイグレーションによる通信の瞬断を抑制することができる。
マイグレーションによる通信の瞬断を抑制することができる。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<参考例>
図1は、参考例の一つである情報処理システムのシステム構成の一例を示す図である。図1に示される参考例である情報処理システムP100Aは、異なるサーバ間でマイグレーションが行われる例である。情報処理システムP100Aは、スイッチP3と、2台の物理サーバP2、スイッチP3とネットワークを介して接続するクライアント端末P4とを含む。各物理サーバP2は、それぞれ、仮想マシンP21と仮想スイッチP22とを備える。
図1は、参考例の一つである情報処理システムのシステム構成の一例を示す図である。図1に示される参考例である情報処理システムP100Aは、異なるサーバ間でマイグレーションが行われる例である。情報処理システムP100Aは、スイッチP3と、2台の物理サーバP2、スイッチP3とネットワークを介して接続するクライアント端末P4とを含む。各物理サーバP2は、それぞれ、仮想マシンP21と仮想スイッチP22とを備える。
仮想マシンP21は、ソフトウェアによって仮想的に構築されたコンピュータであり、入力パケットに対して、仮想マシンP21上で実行されているソフトウェアの所定の処理を行い、該処理の結果として、応答パケットを出力する。クライアント端末P4は、物理サーバA上で動作する仮想マシンAとTCP(Transport Control Protocol)通信を行っている。例えば、マイグレーションは、物理サーバAのメンテナンス、処理負荷の減増を契機に行われる。物理サーバB上で仮想マシンBが起動され、スイッチP3の通信をマイグレーション元の仮想マシンAから仮想マシンBに切り替えることによって、物理サーバAのマイグレーションは行われる。
より具体的には、マイグレーション先となる物理サーバBは、マイグレーション元の仮
想マシンAから仮想マシンBにメモリをコピーし、仮想マシンAを停止状態(サスペンド)し、仮想マシンBを仮想マシンAの停止時と同じ状態から起動(レジューム)する。このとき、仮想マシンBは、Gratuitous ARPをスイッチP3に送信し、スイッチ3上のMAC(Media Access Control)アドレステーブルを書き換える。これによって、仮想マシンAとクライアント端末P4との通信の転送先を仮想マシンAから仮想マシンBへと切り替えることができる。
想マシンAから仮想マシンBにメモリをコピーし、仮想マシンAを停止状態(サスペンド)し、仮想マシンBを仮想マシンAの停止時と同じ状態から起動(レジューム)する。このとき、仮想マシンBは、Gratuitous ARPをスイッチP3に送信し、スイッチ3上のMAC(Media Access Control)アドレステーブルを書き換える。これによって、仮想マシンAとクライアント端末P4との通信の転送先を仮想マシンAから仮想マシンBへと切り替えることができる。
情報処理システムP100Aにおけるマイグレーションでは、マイグレーション先の仮想マシンBが自身の起動処理の完了を判定し、マイグレーション元の仮想マシンAをサスペンドしてからスイッチP3に対してGratuitous ARPを行う。仮想マシンBがスイッチP3に対してGratuitous ARPを行っている間にも、スイッチP3には仮想マシンA宛てのパケットは届く。しかしながら、例えば、MACアドレステーブルが書換途中であり、当該パケットが仮想マシンAに転送された場合には、仮想マシンAが停止している等により、当該パケットが処理されない可能性がある。このようにしてマイグレーションによる瞬断が発生する。
図2は、参考例の他の一つとしての情報処理システムのシステム構成の一例を示す図である。図2に示される参考例である情報処理システムP100Bは、同一サーバ上でマイグレーションが行われる例である。情報処理システムP100Bは、スイッチP3と、1台の物理サーバP2、スイッチP3とネットワークを介して接続するクライアント端末P4とを含む。物理サーバP2は、仮想マシンA、仮想マシンB、仮想スイッチP22を備える。
情報処理システムP100Bにおいても、情報処理システムP100Aと同様に、クライアント端末P4は、仮想マシンAとTCP通信を行っており、例えば、物理サーバP2のメンテナンス、処理負荷の減増を契機にマイグレーションが行われる。物理サーバP2内で仮想マシンBが起動され、仮想スイッチP22の通信をマイグレーション元の仮想マシンAから仮想マシンBに切り替えることによって、物理サーバP2のマイグレーションは行われる。
情報処理システムP100Bにおけるマイグレーションでも、移行先の仮想マシンBが自身の起動処理の完了を判定し、仮想マシンAをサスペンドしてから仮想スイッチP22に対してGratuitous ARPを行う。仮想マシンBが仮想スイッチP22に対してGratuitous ARPを行っている間にも仮想マシンA宛てのパケットが届く。しかしながら、仮想スイッチP22のMACアドレステーブルの書換途中であり、パケットが仮想マシンAに転送された場合には、仮想マシンAが停止している等によって、当該パケットは処理されない可能性がある。これによって、マイグレーションによる瞬断が発生する。
情報処理システムP100A、P100Bのいずれにおいても、マイグレーションによる瞬断の時間は、10ミリ秒単位であり、TCPのタイムアウト内であるため、クライアント端末P4とのコネクションは維持される。また、瞬断中に損失されたパケットは、クライアント端末P4のTCPの再送機能によって再送処理が行われ、補完される。
しかしながら、ネットワークが高速化、大容量化すると、10ミリ秒単位の瞬断中にロスされるデータ量も多くなる。例えば、10ミリ秒の瞬断が発生した場合、100Mbpsの回線では最大約1Mビット、1Gの回線では最大約10Mビット、10Gの回線では最大約100Mビットものデータが損失される。クライアント端末P4のセッションが、例えば、動画のストリーミングのセッション等、遅延に敏感なセッションである場合には、マイグレーションによる瞬断によって、クライアント端末P4のユーザに与える影響が
大きくなる可能性がある。
大きくなる可能性がある。
<第1実施形態>
第1実施形態では、パケット監視アクセラレータが、仮想マシンの起動及び停止を制御する。パケット監視アクセラレータは、マイグレーション先の仮想マシンの起動完了を、マイグレーション元の仮想マシンとマイグレーション先の仮想マシンとからの対応するパケットの受信時刻の差分に基づいて判定する。対応するパケットとは、受信時刻の比較対象となる、マイグレーション元の仮想マシンによって処理されたパケットと、マイグレーション先の仮想マシンによって処理されたパケットと、である。第1実施形態では、パケット監視アクセラレータは、クライアント端末からのパケットをコピーして、マイグレーション元及びマイグレーション先の仮想マシンに出力する。マイグレーション元及びマイグレーション先の仮想マシンは、同じ内容のパケットに対して同じ処理を実行して、処理の実行結果としてパケットをパケット監視アクセラレータに出力する。したがって、マイグレーション元及びマイグレーション先の仮想マシンとからの対応するパケットは、第1実施形態では、マイグレーション元及びマイグレーション先の仮想マシンによる同じパケットに対する同じ処理の実行結果としてのパケットである。
第1実施形態では、パケット監視アクセラレータが、仮想マシンの起動及び停止を制御する。パケット監視アクセラレータは、マイグレーション先の仮想マシンの起動完了を、マイグレーション元の仮想マシンとマイグレーション先の仮想マシンとからの対応するパケットの受信時刻の差分に基づいて判定する。対応するパケットとは、受信時刻の比較対象となる、マイグレーション元の仮想マシンによって処理されたパケットと、マイグレーション先の仮想マシンによって処理されたパケットと、である。第1実施形態では、パケット監視アクセラレータは、クライアント端末からのパケットをコピーして、マイグレーション元及びマイグレーション先の仮想マシンに出力する。マイグレーション元及びマイグレーション先の仮想マシンは、同じ内容のパケットに対して同じ処理を実行して、処理の実行結果としてパケットをパケット監視アクセラレータに出力する。したがって、マイグレーション元及びマイグレーション先の仮想マシンとからの対応するパケットは、第1実施形態では、マイグレーション元及びマイグレーション先の仮想マシンによる同じパケットに対する同じ処理の実行結果としてのパケットである。
マイグレーション先の仮想マシンの起動完了を判定するまでの間は、パケット監視アクセラレータは、マイグレーション元の仮想マシンから受信したパケットを出力する。マイグレーション先の仮想マシンの起動完了を判定すると、パケット監視アクセラレータは、マイグレーション元の仮想マシンを停止し、マイグレーション先の仮想マシンから受信したパケットを出力する。これによって、パケット監視アクセラレータは、マイグレーションによる通信の瞬断を抑制する。
図3は、第1実施形態に係る情報処理システムのシステム構成の一例を示す図である。図3に示される情報処理システム100Aは、異なるサーバ間でマイグレーションが行われるシステムである。情報処理システム100Aは、2台の物理サーバ2、スイッチ3A、スイッチ3Aとネットワークを介して接続するクライアント端末4を備える。2台の物理サーバ2は、それぞれ、スイッチ3Aと接続されている。なお、図3に示されるスイッチ3Aと各物理サーバ2との接続は、データ通信を行うための回線であり、図示されていないが、スイッチ3Aと各物理サーバ2とは、マイグレーションの制御のための回線でも接続されている。
2台の物理サーバ2は、物理サーバAと物理サーバBとである。これらの2台が区別されない場合には、物理サーバ2と表記される。物理サーバ2は、仮想マシン21と仮想スイッチ22とを備える。仮想マシン及び仮想スイッチについても、区別されない場合には、仮想マシン21及び仮想スイッチ22、と表記される。第1実施形態では、仮想マシンAがマイグレーション元、仮想マシンBがマイグレーション先と想定される。マイグレーション元の仮想マシンAは、「移行元のサーバ」の一例である。マイグレーション先の仮想マシンBは、「移行先のサーバ」の一例である。
異なる物理サーバ間でマイグレーションが行われる情報処理システム100Aでは、スイッチ3に、パケット監視アクセラレータ1が備えられる。スイッチ3に備えられるパケット監視アクセラレータ1は、「制御装置」の一例である。
図4は、第1実施形態に係る他の一つの情報処理システムのシステム構成の一例を示す図である。図4に示される情報処理システム100Bは、同一の物理サーバ上でマイグレーションが行われる例である。情報処理システム100Bは、1台の物理サーバ2B、スイッチ3、スイッチ3とネットワークを介して接続するクライアント端末4を備える。物理サーバ2Bは、スイッチ3と接続されている。なお、図4に示されるスイッチ3と物理
サーバ2Bとの接続は、データ通信を行うための回線であり、図示されていないが、スイッチ3と物理サーバ2とは、マイグレーションの制御のための回線でも接続されている。
サーバ2Bとの接続は、データ通信を行うための回線であり、図示されていないが、スイッチ3と物理サーバ2とは、マイグレーションの制御のための回線でも接続されている。
第1実施形態では、物理サーバ2Bは、仮想マシンA、仮想マシンBと、仮想スイッチに代えて、パケット監視アクセラレータ1と、を備える。仮想マシンについては、区別されない場合には、仮想マシン21と表記される。第1実施形態では、仮想マシンAがマイグレーション元、仮想マシンBがマイグレーション先と想定される。情報処理システム100Bにおいて、マイグレーション元の仮想マシンAは、「移行元のサーバ」の一例である。マイグレーション先の仮想マシンBは、「移行先のサーバ」の一例である。物理サーバ2Bに備えられるパケット監視アクセラレータ1は、「制御装置」の一例である。
第1実施形態では、図3に示される情報処理システム100A、図4に示される情報処理システム100Bのどちらともが、適用システムとして想定される。
<装置構成>
図5は、情報処理システム100Aにおけるスイッチ3Aのインタフェースカードのハードウェア構成の一例である。情報処理システム100Aでは、スイッチ3Aにパケット監視アクセラレータ1が搭載されている。
図5は、情報処理システム100Aにおけるスイッチ3Aのインタフェースカードのハードウェア構成の一例である。情報処理システム100Aでは、スイッチ3Aにパケット監視アクセラレータ1が搭載されている。
スイッチ3Aは、例えば、複数のインタフェースカードと、制御カードとを備える。いずれのインタフェースカードも同様のハードウェア構成を有する。インタフェースカードは、ハードウェア構成要素として、CPU(Central Processing Unit)301、メモリ
302、NIC(Network Interface Card)303、スイッチ(SW)部304を備え、これらはバスで接続されている。
302、NIC(Network Interface Card)303、スイッチ(SW)部304を備え、これらはバスで接続されている。
NIC 303は、複数のインタフェースポート、PHY/MAC(PHYsical/Media Access Control)チップ、NPU(Network Processing Unit)を備える。PHY/MACチップは、ネットワークインタフェースから入力された電気信号をビット列に変換し、ビット列からフレームを組み立てて、SW部304に出力する。NPUは、ネットワーク関連の処理を行うプロセッサである。
パケット監視アクセラレータ1は、仮想マシンを搭載する物理サーバ2に接続するインタフェースポートを有するインタフェースカードのNIC 303に搭載される。パケット監視アクセラレータ1は、例えば、NIC 303に搭載されるNPUのモジュールの一つであり、NPU内のメモリに記録されるプログラムをNPU内のプロセッサが実行することによって達成される。または、パケット監視アクセラレータ1は、例えば、NIC
303に搭載されるFPGA(Field-Programmable Gate Array)によって実現されて
もよい。
303に搭載されるFPGA(Field-Programmable Gate Array)によって実現されて
もよい。
スイッチ部304は、同一カード内のインタフェースポート間のスイッチング、カード間のスイッチングを行う。スイッチ部304は、図示されていないスイッチカードに接続している。他のカード内のインタフェースポートを出力先とするフレームは、スイッチ部304によってスイッチカードに転送され、スイッチカードから、出力先のインタフェースポートが存在するカードに転送される。
メモリ302は、例えば、RAM(Random Access Memory)である。メモリ302は、用途によって、複数備えられていてもよい。例えば、パケットが一時的に格納されるパケット用メモリ、MACテーブル等を格納するアドレス用メモリ、プログラムやデータ等を格納するメモリ、等である。メモリ302には、OS(Operating System)、アプリケーション等が格納されている。
CPU 301は、スイッチ部304からパケットの入力を受ける。CPU 301は、メモリ302に保持されたOSや様々なアプリケーションプログラムを実行することによって、様々な処理を実行する。
制御カードには、CPU、メモリ等が搭載されている。制御カードは、各インタフェースカードの管理を行う。なお、スイッチ3のハードウェア構成は、図5に示されるものに限定されない。
図6は、情報処理システム100Bにおける物理サーバ2Bのハードウェア構成の一例である。情報処理システム100Bでは、パケット監視アクセラレータ1は、物理サーバ2Bに搭載される。物理サーバ2Bは、専用のコンピュータである。
物理サーバ2Bは、CPU(Central Processing Unit)201、主記憶装置202、
入力装置203、出力装置204、補助記憶装置205、NIC 207を備える。また、これらはバス209により互いに接続されている。
入力装置203、出力装置204、補助記憶装置205、NIC 207を備える。また、これらはバス209により互いに接続されている。
入力装置203は、例えば、キーボード、マウス、操作ボタン、タッチパネル、キーパッド等である。入力装置203から入力されたデータは、CPU 201に出力される。出力装置204は、CPU 201の処理の結果を出力する。出力装置204は、ディスプレイ、プリンタを含む。
補助記憶装置205は、OS、様々なプログラムや、各プログラムの実行に際してCPU 201が使用するデータを格納する。補助記憶装置205は、仮想マシン21を実現するソフトウェア又はフレームワークを格納する。補助記憶装置205は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードディスクドライ
ブ(Hard Disk Drive)等の不揮発性のメモリである。
ブ(Hard Disk Drive)等の不揮発性のメモリである。
主記憶装置202は、CPU 201に、補助記憶装置205に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする記憶装置である。主記憶装置202は、例えば、ROM(Read Only Memory)、RAMのような半導体メモリを含む。
CPU 201は、補助記憶装置205に保持されたOSや様々なアプリケーションプログラムを主記憶装置202にロードして実行することによって、様々な処理を実行する。CPU 201は、1つに限られず、複数備えられてもよい。CPU 201が、補助記憶装置205に格納されるソフトウェア又はフレームワークを実行することによって、物理サーバ2B上に仮想マシン21が実装される。
NIC 207は、ネットワークとの情報の入出力を行うインタフェースポート、PHY/MAC回路、NPU等を備える。パケット監視アクセラレータ1は、NIC 207に備えられるNPUのモジュールの一つであり、NPU内のメモリに記録されるプログラムをNPU内のプロセッサが実行することによって達成される。または、パケット監視アクセラレータ1は、NIC 207に搭載されるFPGAである。
なお、図6に示される物理サーバ2Bのハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、物理サーバ2Bは、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)
、DVD(Digital Versatile Disc)、Blu−ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。
、DVD(Digital Versatile Disc)、Blu−ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。
図7は、パケット監視アクセラレータ1の機能構成の一例を示す図である。パケット監視アクセラレータ1は、機能構成要素として、パケット監視部11、バッファ部12、ミラー部13、セレクタ14、パケット振分部15、パケットチェック部16、セレクタ17を備える。これらの機能構成要素は、例えば、スイッチ3A又は物理サーバ2BのNICに搭載されるFPGAにより実現される。または、これらの要素は、NPUのモジュールの一つとして実現される。
パケット監視部11は、クライアント端末4からのパケットを受信し、パケットの流量を監視する。パケット監視部11は、例えば、パケットの宛先IPアドレス毎にパケットの流量を監視する。ただし、これに限られず、パケット監視部11は、パケットの宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号等のうちの複数の組合せごとにパケットの流量を監視してもよい。
パケット監視部11は、単位時間当たりのパケットの流量に基づいて、仮想マシン21のマイグレーションの制御を行う。より具体的には、パケット監視部11は、コア増加設定閾値、コア減少設定閾値を用いて、マイグレーション先の仮想マシンの起動及び当該仮想マシンのコア数を決定する。マイグレーション先の仮想マシンの起動の決定により、マイグレーションが開始される。
パケット監視部11は、パケットの宛先の仮想マシン21についてマイグレーションが実行されている間は、当該パケットをバッファ部12に出力する。パケットの宛先の仮想マシン21についてマイグレーションが実行されていない場合には、パケット監視部11は、セレクタ14を通じて、宛先の仮想マシン21にパケットを出力する。パケット監視部11の処理の詳細は後述される。
パケット監視部11は、仮想マシン21についてのマイグレーションについて、パケットチェック部16からマイグレーション完了通知の入力を受ける。パケット監視部11は、マイグレーション完了通知の入力を受けると、該当するマイグレーション元の仮想マシン21に動作停止の指示を送信する。パケット監視部11は、「制御部」の一例である。
バッファ部12は、パケット監視部11からパケットの入力を受ける。バッファ部12は、宛先の仮想マシン21毎にバッファを備えている。バッファ部12が備えるバッファは、FIFO(First In First Out)キューである。バッファ部12は、バッファに所定時間パケットを滞留させ、当該所定時間が経過すると、当該パケットをミラー部13に出力する。
また、バッファ部12は、パケットの滞留時間をパケットチェック部16からの指示に従って設定する。パケットの滞留時間が長いほど、バッファのサイズは大きく設定される。バッファ部12は、「バッファ」の一例である。
ミラー部13は、バッファ部12からパケットの入力を受ける。ミラー部13は、入力されたパケットをコピーして、マイグレーション元の仮想マシン21に転送されるパケットと、マイグレーション先の仮想マシン21に転送されるパケットとを用意する。ミラー部13は、それぞれのパケットに、仮想マシン21を識別するための識別ヘッダを付与して、マイグレーション元の仮想マシン21と、マイグレーション先の仮想マシン21とに、セレクタ14を通じて、出力する。ミラー部13は、「複製部」の一例である。
例えば、各仮想マシン21は、互いに異なるVLAN(Virtual Local Area)に属し、パケット監視アクセラレータ1を搭載する装置は、それぞれのVLANに接続するインタフェースを有している。仮想マシン21が互いに異なるVLANに属している場合には、ミラー部13によってパケットに付与される識別ヘッダには、VLAN IDが含まれる。
また、例えば、パケット監視アクセラレータ1を搭載する装置は、各仮想マシン21と通信トンネルを構築して接続されている。パケット監視アクセラレータ1を搭載する装置と各仮想マシン21とが通信トンネルによって接続されている場合には、ミラー部13によってパケットに付与される識別ヘッダには、トンネルIDが含まれる。
なお、マイグレーション元の仮想マシン21とマイグレーション先の仮想マシン21とは、異なる仮想マシンであって、それぞれへのパケットには、異なる識別ヘッダが付与される。
パケット振分部15は、仮想マシン21から、当該仮想マシン21によって処理されたパケットの入力を受ける。パケット振分部15は、パケットの送信元の仮想マシン21についてマイグレーションが実行中である場合には、当該パケットをパケットチェック部16に出力する。パケットの送信元の仮想マシン21についてマイグレーションが実行中でない場合には、当該パケットをネットワーク側へ、セレクタ17を通じて、出力する。
パケット振分部15は、例えば、マイグレーション元の仮想マシン21とマイグレーション先の仮想マシン21との対応についての情報を、他の機能構成要素と共有して、保持している。また、仮想マシン21からのパケットには識別ヘッダが付与されている。したがって、パケット振分部15は、パケットに付与されている識別ヘッダに基づいて、マイグレーション中の仮想マシン21からのパケットか否かを判定する。
また、パケット振分部15は、パケットチェック部16からマイグレーション完了通知の入力を受ける。マイグレーション完了通知の入力を受けると、パケット振分部15は、該当する仮想マシン21からのパケットの出力先を、パケットチェック部16からセレクタ17に切り替える。パケット振分部15は、「受信部」の一例である。
パケットチェック部16は、パケット振分部17から、マイグレーション元の仮想マシン21によって処理されたパケットと、マイグレーション先の仮想マシン21によって処理されたパケットと、の入力を受ける。パケットチェック部16は、入力されたパケットから識別ヘッダを除去する。また、パケットチェック部16は、入力されたパケットについて、受信時刻のタイムスタンプを取得する。また、パケットチェック部16は、入力されたパケットについて、パケット識別子を求める。パケット識別子は、例えば、ハッシュ計算により算出されハッシュ値である。
パケットチェック部16は、マイグレーション元タイムスタンプリストを保持している。マイグレーション元タイムスタンプリストは、マイグレーション元の仮想マシン21によって処理されたパケットの受信時刻を記録するリストである。パケットチェック部16は、マイグレーション元の仮想マシン21からのパケットの、パケット識別子とタイムスタンプとを、マイグレーション元タイムスタンプリストに格納する。
パケットチェック部16は、マイグレーション先の仮想マシン21によって処理されたパケットについて、マイグレーション元タイムスタンプリストを参照して、マイグレーション元の仮想マシン21からのパケットの受信時刻との差分を取得する。以降、マイグレーション元の仮想マシン21からのパケットの受信時刻とマイグレーション先の仮想マシ
ン21からのパケットの受信時刻との差分を、単に、受信時刻の差分、と称する。
ン21からのパケットの受信時刻との差分を、単に、受信時刻の差分、と称する。
マイグレーション先の仮想マシン21の起動処理中は、起動処理と並行してパケットの処理が行われるため、起動処理が完了している状態に比べると、応答時間が長くなる。すなわち、マイグレーション先の仮想マシン21の起動処理中は、受信時刻の差分が大きくなる。マイグレーション先の仮想マシン21の起動処理が完了すると、マイグレーション先の仮想マシン21は、より多くのリソースをパケットの処理に割り当てられるので、受信時刻の差分はほぼなくなる。あるいは、マイグレーション先の仮想マシン21の起動処理が完了すると、マイグレーション元の仮想マシン21からのパケットよりもマイグレーション先の仮想マシン21からのパケット方が先に入力される。
したがって、受信時刻の差分が一致するとみなせる許容範囲内である場合には、マイグレーション先の仮想マシン21の起動処理が完了したとみなすことができる。パケットチェック部16は、受信時刻の差分が許容範囲内となった場合に、マイグレーションの完了通知を、パケット監視部11とパケット振分部15とに通知する。受信時刻の差分が許容範囲内であるか否かは、例えば、所定の閾値を用いて判定される。所定の閾値は、例えば、10μ秒である。ただし、受信時刻の差分についての閾値は、10μ秒に限定されず、例えば、マイグレーション先の仮想マシン21とマイグレーション元の仮想マシン21との性能差に応じた値に設定されてもよい。
パケットチェック部16は、マイグレーション先の仮想マシン21からのパケットを廃棄し、マイグレーション元の仮想マシン21からのパケットをセレクタ17に出力する。なお、パケット識別子はハッシュ値である。そのため、マイグレーション先の仮想マシン21からのパケットとパケット識別子が一致するエントリが、マイグレーション元タイムスタンプリストにあることによって、マイグレーション元及びマイグレーション先の仮想マシン21からのパケットが一致していることが担保される。
また、パケットチェック部16は、受信時刻の差分に基づいて、バッファ部12のパケット滞留時間を設定する。パケットチェック部16は、受信時刻の差分が大きければ大きいほどバッファ部12のパケット滞留時間を長く設定し、受信時刻の差分が小さければ小さいほどバッファ部12のパケット滞留時間を短く設定する。より具体的には、パケットチェック部16は、受信時刻の差分に係数を乗じて、バッファ部12のバッファ量を算出する。パケットの滞留時間とバッファ量とは、パケットの滞留時間が長いほどバッファ量も大きくなるという関係であるので、バッファ部12のバッファ量Buffer(byte)として求められる。以下の数式は、バッファ部12のバッファ量の算出式である。バッファリング係数は、例えば、マイグレーション先及び/又はマイグレーション元の仮想マシン21の性能に応じて設定される。パケットチェック部16は、バッファ部12に、算出したバッファ量を通知する。
マイグレーション元の仮想マシン21は、起動処理を行っていないので、パケットの入力後すぐに当該パケットに対する処理を開始することができる。一方、マイグレーション先の仮想マシン21は、起動処理を行っているので、パケットの入力後当該パケットに対
する処理が起動処理によって待機させられる可能性がある。そのため、マイグレーション先の仮想マシン21によるパケットに対する処理は、マイグレーション元の仮想マシン21によるパケットに対する処理から遅れて開始される可能性がある。
する処理が起動処理によって待機させられる可能性がある。そのため、マイグレーション先の仮想マシン21によるパケットに対する処理は、マイグレーション元の仮想マシン21によるパケットに対する処理から遅れて開始される可能性がある。
マイグレーション元の仮想マシン21宛てのパケットをバッファ部12にバッファリングすることによって、マイグレーション元及びマイグレーション先の仮想マシン21のパケットに対する処理の開始時点を一致させるようにすることができる。また、受信時刻の差に応じてバッファ部12の設定バッファ量を設定することによって、受信時刻の差が大きい場合にはバッファ部12にパケットがバッファリングされる時間も長くなる。受信時刻の差が大きいことは、マイグレーション先の仮想マシン21が起動処理に時間がかかっていることが示される。この場合、バッファ部12の設定バッファ量を大きくすることによって、マイグレーション先の仮想マシン21へのパケット入力を遅らせ、その分、マイグレーション先の仮想マシン21に起動処理をよりすすめさせることができる。結果として、マイグレーション先の仮想マシン21の起動処理の完了を早めることができる。パケットチェック部16は、「判定部」の一例である。
セレクタ14、セレクタ17は、2つの入力経路と1つの出力経路を有し、いずれかの経路から入力されたパケットを出力経路から出力する。セレクタ14は、入力経路として、ミラー部13からの入力経路と、パケット監視部11からの入力経路とを有する。セレクタ14は、出力経路として、仮想マシン21への経路を有する。セレクタ17は、入力経路として、パケットチェック部17からの経路と、パケット振分部15からの経路と、を有する。セレクタ17は、出力経路として、ネットワークへの経路を有する。セレクタ17は、「送信部」の一例である。
以上より、マイグレーションの実行中でない仮想マシン21に係るパケットは、パケット監視部11、セレクタ14、パケット振分部15、セレクタ17の順で、パケット監視アクセラレータ1を通過する。マイグレーションが実行中の仮想マシン21に係るパケットは、パケット監視部11、バッファ部12、ミラー部13、セレクタ14、パケット振分部15、パケットチェック部16、セレクタ17の順で、パケット監視アクセラレータ1を通過する。
図8は、マイグレーション元タイムスタンプリストの一例である。マイグレーション元タイムスタンプリストは、マイグレーション元の仮想マシン21からのパケットの受信タイムスタンプの記録を保持する。マイグレーション元タイムスタンプリストは、例えば、パケット監視アクセラレーション1が搭載されるNPUに備えられるメモリに格納されている。
マイグレーション元タイムスタンプリストのエントリには、例えば、受信パケット識別子、受信タイムスタンプ上位、受信タイムスタンプ下位の項目が含まれる。「受信パケット識別子」の項目には、マイグレーション元の仮想マシン21からの受信パケットのパケット識別子が格納される。例えば、パケット識別子は、ハッシュ計算によって求められる4ビットのハッシュ値である。ただし、ハッシュ値の長さは、4ビットに限定されない。パケット識別子をハッシュ値として求めることによって、マイグレーション元タイムスタンプリストの検索時間を短縮させることができる。また、パケット識別子が一致する場合には、パケットのデータが一致していることが担保される。
「受信タイムスタンプ上位」の項目には、受信タイムスタンプの小数点より前の値が格納される。「受信タイムスタンプ下位」の項目には、受信タイプスタンプの小数点以下の値が格納される。「受信タイムスタンプ上位」、「受信タイムスタンプ下位」の項目のいずれも、単位は、秒(s)である。
ただし、マイグレーション元タイムスタンプリストのエントリの項目は、図7に示されるものに限定されず、実施の形態によって、適宜変更可能である。パケット識別子は、パケットの「識別情報」の一例である。
<処理の流れ>
図9は、パケット監視部11の処理のフローチャートの一例である。パケット監視部11は、パケットを受信すると、図9に示される処理を開始する。
図9は、パケット監視部11の処理のフローチャートの一例である。パケット監視部11は、パケットを受信すると、図9に示される処理を開始する。
OP11では、パケット監視部11は、クライアント端末4からのパケットを受信する。OP12では、パケット監視部11は、受信パケットの宛先の仮想マシン21についてマイグレーションが実行中であるか否かを判定する。この判定は、例えば、他の機能構成と共有する、マイグレーション元の仮想マシン21とマイグレーション先の仮想マシン21との対応についての情報に基づいて行われる。
受信パケットの宛先の仮想マシン21についてマイグレーションの実行中である場合には(OP12:YES)、処理がOP20に進む。受信パケットの宛先の仮想マシン21についてマイグレーションの実行中でない場合には(OP12:NO)、処理がOP13に進む。
OP13では、パケット監視部11は、当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数増加閾値より大きいか否かを判定する。当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数増加閾値より大きい場合には(OP13:YES)、処理がOP14に進む。当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数増加閾値以下である場合には(OP13:NO)、処理がOP15に進む。
OP14の処理は、当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数増加閾値より大きい場合の処理である。OP14では、パケット監視部11は、マイグレーション先となる新たに起動する仮想マシン21のコア数を、マイグレーション元となる既存の仮想マシン21のコア数より増加させた数に設定する。コア数の増加分は、予め固定値で設定されていてもよいし、単位時間当たりのパケット受信量に基づいて決定されてもよい。
OP15〜OP17の処理は、当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数増加閾値以下である場合の処理である。OP15では、パケット監視部11は、当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数減少閾値より大きいか否かを判定する。当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数減少閾値より大きい場合には(OP15:YES)、処理がOP16に進む。当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数減少閾値以下である場合には(OP15:NO)、処理がOP17に進む。
OP16の処理は、当該仮想マシン21宛ての単位時間当たりのパケット受信量がコア数増加閾値以下であり、且つ、コア数減少閾値より大きい場合の処理である。OP16では、パケット監視部11は、セレクタ14にパケットを出力する。パケットは、セレクタ14を通じて、宛先の仮想マシン21に出力される。その後、図9に示される処理が終了する。
OP17では、パケット監視部11は、マイグレーション先となる新たに起動する仮想マシン21のコア数を、マイグレーション元となる既存の仮想マシン21のコア数より減少させた数に設定する。コア数の減少分は、予め固定値で設定されていてもよいし、単位
時間当たりのパケット受信量に基づいて決定されてもよい。
時間当たりのパケット受信量に基づいて決定されてもよい。
OP18では、パケット監視部11は、新たな仮想マシン21を搭載する物理サーバ2に対して、起動指示を送信する。起動指示には、コア数の設定も含まれる。OP19では、パケット監視部11は、既存の仮想マシン21を搭載する物理サーバ2に対して、マイグレーションの開始指示を送信する。
OP20では、パケット監視部11は、バッファ部12にパケットを出力する。その後、図9に示される処理が終了する。
図10は、バッファ部12の処理のフローチャートの一例である。図10に示される処理は、バッファ部12にパケットが入力されると開始される。
OP31では、バッファ部12にパケットを受信する。OP32では、バッファ部12は、現在のバッファ量に受信パケットのサイズを加算した値が設定バッファ量未満であるか否かを判定する。現在のバッファ量に受信パケットのサイズを加算した値が設定バッファ量未満である場合には(OP32:YES)、処理がOP33に進む。現在のバッファ量に受信パケットのサイズを加算した値が設定バッファ量より大きい場合には(OP32:NO)、処理がOP34に進む。
OP33の処理は、現在のバッファ量に受信パケットのサイズを加算した値が設定バッファ量未満である場合の処理である。OP33では、バッファ部12は、受信パケットをバッファリングする。
OP34の処理は、現在のバッファ量に受信パケットのサイズを加算した値が設定バッファ量より大きい場合の処理である。OP34では、バッファ部12は、バッファリングされているパケットのうち、最も古いパケットをミラー部13に出力する。
OP35では、バッファ部12には、バッファ量を、現在のバッファ量に受信パケットのサイズを加算した値に更新する。その後、図10に示される処理が終了する。
図11は、ミラー部13の処理のフローチャートの一例である。図11に示される処理は、ミラー部13にパケットが入力されると開始される。
OP41では、ミラー部13は、パケットを受信する。OP42では、ミラー部13は、受信パケットのコピーを作成して、2つのパケットを取得する(パケットミラーリング)。OP43では、ミラー部13は、2つのパケットのうち1つのパケットにマイグレーション元の仮想マシン21の識別ヘッダを付与し、もう一つのパケットにマイグレーション先の仮想マシン21の識別ヘッダを付与する。OP44では、ミラー部13は、2つのパケットを、セレクタ14に出力する。2つのパケットのうち1つのパケットはマイグレーション元の仮想マシン21に出力される。もう一つのパケットは、マイグレーション先の仮想マシン21に出力される。その後、図11に示される処理が終了する。
図12は、パケット振分部15の処理のフローチャートの一例である。図12に示される処理は、パケット振分部15にパケットが入力されると開始される。
OP51では、パケット振分部15は、仮想マシン21による処理結果としてのパケットを受信する。仮想マシン21による処理結果としてのパケットには、仮想マシン21によって、当該パケットに対応する入力パケットと同じ識別ヘッダが付与されている。
OP52では、パケット振分部15は、受信パケットの送信元の仮想マシン21について、マイグレーションが実行中であるか否かを判定する。受信パケットの送信元の仮想マシン21について、マイグレーションが実行中であるか否かは、例えば、他の機能構成要素と共有するマイグレーション元及びマイグレーション先の仮想マシンの対応付けに関する情報に基づいて判定される。または、例えば、図8のOP19において、パケット監視部11がマイグレーション開始通知をパケット振分部15にも通知するようにし、パケット振分部15は、マイグレーション開始通知及びマイグレーション完了通知に基づいて判定してもよい。
受信パケットの送信元の仮想マシン21について、マイグレーションが実行中である場合には(OP52:YES)、処理がOP53に進む。受信パケットの送信元の仮想マシン21について、マイグレーションが実行中でない場合には(OP52:NO)、処理がOP54に進む。
OP53の処理は、受信パケットの送信元の仮想マシン21について、マイグレーションが実行中である場合の処理である。OP53では、パケット振分部15は、受信パケットをパケットチェック部16に出力する。その後、図12に示される処理が終了する。
OP54の処理は、受信パケットの送信元の仮想マシン21について、マイグレーションが実行中でない場合の処理である。OP54では、パケット振分部15は、セレクタ17に受信パケットを出力する。受信パケットは、ネットワークへ出力される。その後、図12に示される処理が終了する。
図13A、図13B、及び、図13Cは、パケットチェック部16の処理のフローチャートの一例である。図13Aの処理は、パケットチェック部16にパケットが入力されると開始される。
OP61では、パケットチェック部16は、パケットを受信する。OP62では、パケットチェック部16は、受信パケットから識別ヘッダを除去する。OP63では、パケットチェック部16は、受信パケットのタイムスタンプを取得する。OP64では、パケットチェック部16は、受信パケットからパケット識別子を算出する。次に、処理が図13BのOP71に進む。
OP71では、パケットチェック部16は、受信パケットがマイグレーション元(移行元)の仮想マシン21からのパケットであるか否かを判定する。受信パケットがマイグレーション元の仮想マシン21からのパケットである場合には(OP71:YES)、処理がOP72に進む。受信パケットがマイグレーション元の仮想マシン21からのパケットである場合には(OP71:NO)、処理がOP74に進む。
OP72、OP73は、受信パケットがマイグレーション元の仮想マシン21からのパケットである場合の処理である。OP72では、パケットチェック部16は、受信パケットについて、マイグレーション元タイムスタンプリスト(移行元TSリスト)にエントリを登録し、マイグレーション元タイムスタンプリストを更新する。
OP73では、パケットチェック部16は、受信パケットをセレクタ17に出力する。パケットは、セレクタ17からネットワークに出力される。その後、図13Bに示される処理が終了する。
OP74以降の処理は、受信パケットがマイグレーション先の仮想マシン21からのパケットである場合の処理である。OP74では、パケットチェック部16は、マイグレー
ション元タイムスタンプリストを、受信パケットのパケット識別子で検索する。
ション元タイムスタンプリストを、受信パケットのパケット識別子で検索する。
OP75では、パケットチェック部16は、マイグレーション元タイムスタンプリストに受信パケットのパケット識別子と一致するエントリがあるか否かを判定する。マイグレーション元タイムスタンプリストに受信パケットのパケット識別子と一致するエントリがある場合には(OP75:YES)、処理がOP76に進む。マイグレーション元タイムスタンプリストに受信パケットのパケット識別子と一致するエントリがない場合には(OP75:NO)、処理が図13CのOP81に進む。
OP76〜OP80の処理は、マイグレーション元タイムスタンプリストに受信パケトのパケット識別子と一致するエントリがある場合の処理である。マイグレーション元タイムスタンプリストに受信パケットのパケット識別子と一致するエントリがあることは、マイグレーション元の仮想マシン21からの受信パケットと同一のパケットがすでに受信されていることが示される。
OP76では、パケットチェック部16は、マイグレーション元タイムスタンプリストの受信パケットのパケット識別子と一致するエントリの受信時刻のタイムスタンプと、受信パケットの受信時刻のタイムスタンプとの差分が許容範囲内であるか否かを判定する。受信時刻の差分が許容範囲内である場合には(OP76:YES)、処理がOP79に進む。受信時刻の差分が許容範囲外である場合に(OP76:NO)、処理がOP77に進む。
OP77、OP78の処理は、受信時刻の差分が許容範囲外である場合の処理である。受信時刻の差分が許容範囲外であることによって、マイグレーション先の仮想マシン21の起動処理が終了していないことが示される。
OP77では、パケットチェック部16は、受信時刻の差分(TS差分)に応じて、バッファ部12の設定バッファ量を設定する。受信時刻の差分が大きいほど、設定バッファ量が大きくなり、受信時刻の差分が小さいほど設定バッファ量が小さくなるように、設定バッファ量は設定される。第1実施形態では、バッファ部12の設定バッファ量は、受信時刻の差分にバッファリング係数を乗じて算出される。OP78では、パケットチェック部16は、バッファ部12に設定バッファ量を通知する。
OP79は、受信時刻の差分が許容範囲内である場合の処理である。受信時刻の差分が許容範囲内であることによって、マイグレーション先の仮想マシン21の起動処理が完了したことを示される。
OP79では、パケットチェック部16は、パケット監視部11とパケット振分部15とに、マイグレーション完了通知を出力する。
OP80では、パケットチェック部16は、受信パケットを廃棄する。なお、OP80において、受信パケットとは、マイグレーション先の仮想マシン21からのパケットである。その後、図13Bに示される処理が終了する。
図13CのOP81〜OP84は、マイグレーション元タイムスタンプリストに受信パケトのパケット識別子と一致するエントリがない場合の処理である。マイグレーション元タイムスタンプリストに受信パケットのパケット識別子と一致するエントリがないことは、マイグレーション元の仮想マシン21からの受信パケットと同一のパケットがまだ受信されていないことを示す。または、例えば、エラー等によって、マイグレーション元の仮想マシン21からの受信パケットとマイグレーション先の仮想マシン21からの受信パケ
ットとが一致しないことが示される。
ットとが一致しないことが示される。
OP81では、パケットチェック部16は、マイグレーション元の仮想マシン21からのパケットの到着を待機する。OP82では、パケットチェック部16は、OP61で受信したパケットのパケット識別子と一致するパケット識別子を有するパケットを受信したか否かを判定する。
OP61で受信したパケットのパケット識別子と一致するパケット識別子を有するパケットを受信した場合には(OP82:YES)、処理がOP83に進む。OP61で受信したパケットのパケット識別子と一致するパケット識別子を有するパケットを受信していない場合には(OP82:NO)、処理がOP84に進む。
OP83の処理は、OP61で受信したパケットのパケット識別子と一致するパケット識別子を有するパケットを受信した場合の処理である。OP61で受信したパケットのパケット識別子と一致するパケット識別子を有するパケットを受信することは、マイグレーション先の仮想マシン21からのパケットを、マイグレーション元の仮想マシン21からのパケットよりも先に受信したことを示す。マイグレーション元の仮想マシン21からのパケットよりも先にマイグレーション先の仮想マシン21からのパケットを受信することは、マイグレーション先の仮想マシン21の起動処理が完了していることが示される。
OP83では、パケットチェック部16は、マイグレーション完了通知をパケット監視部11及びパケット振分部15に通知する。
OP84では、パケットチェック部16は、OP61で受信したパケットを廃棄する。その後、図13Cに示される処理が終了する。
なお、図9から図13Cのフローチャートはいずれも一例であり、処理の実行順等は、実施の形態によって適宜変更可能である。
<第1実施形態の作用効果>
パケット監視アクセラレータ1は、マイグレーション先の仮想マシン21とマイグレーション元の仮想マシン21との双方から、同じパケットに対する同じ処理の結果としてのパケットを受信する。パケット監視アクセラレータ1は、マイグレーション先の仮想マシン21とマイグレーション元の仮想マシン21との双方からのパケットの受信時刻の差分が許容範囲外である間は、マイグレーション元の仮想マシン21からのパケットを出力する。一方、パケット監視アクセラレータ1は、受信時刻の差分が許容範囲外である間は、マイグレーション元の仮想マシン21からのパケットを出力せずに廃棄する。受信時刻の差分が許容範囲内となる場合に、パケット監視アクセラレータ1は、マイグレーション元の仮想マシン21の動作停止指示を送信する。以降、パケット監視アクセラレータ1は、マイグレーション先の仮想マシン21からのパケットを受信し、クライアント端末4に転送する。
パケット監視アクセラレータ1は、マイグレーション先の仮想マシン21とマイグレーション元の仮想マシン21との双方から、同じパケットに対する同じ処理の結果としてのパケットを受信する。パケット監視アクセラレータ1は、マイグレーション先の仮想マシン21とマイグレーション元の仮想マシン21との双方からのパケットの受信時刻の差分が許容範囲外である間は、マイグレーション元の仮想マシン21からのパケットを出力する。一方、パケット監視アクセラレータ1は、受信時刻の差分が許容範囲外である間は、マイグレーション元の仮想マシン21からのパケットを出力せずに廃棄する。受信時刻の差分が許容範囲内となる場合に、パケット監視アクセラレータ1は、マイグレーション元の仮想マシン21の動作停止指示を送信する。以降、パケット監視アクセラレータ1は、マイグレーション先の仮想マシン21からのパケットを受信し、クライアント端末4に転送する。
受信時刻の差分が許容範囲内になることによって、マイグレーション先の仮想マシン21の起動処理が完了したことが示される。したがって、第1実施形態のパケット監視アクセラレータ1は、マイグレーション先の仮想マシン21の起動処理が完了するまでは、マイグレーション元の仮想マシン21から受信したパケットをクライアント端末4に出力する。マイグレーション先の仮想マシン21の起動処理が完了すると、パケット監視アクセラレータ1は、マイグレーション先の仮想マシンから受信したパケットをクライアント端末4に出力する。これによって、マイグレーション先の仮想マシンの起動処理が完了してから、クライアント端末4に送信されるパケットが、マイグレーション元の仮想マシン2
1からのパケットからマイグレーション先の仮想マシンからのパケットに切り替わる。第1実施形態では、マイグレーションによるクライアント端末4と仮想マシン21との通信の瞬断を抑制することができる。
1からのパケットからマイグレーション先の仮想マシンからのパケットに切り替わる。第1実施形態では、マイグレーションによるクライアント端末4と仮想マシン21との通信の瞬断を抑制することができる。
パケット監視アクセラレータ1のパケット監視部11及びパケット振分部15は、マイグレーション実行中の場合とマイグレーション実行中でない場合とで、パケットの出力先を切り替える。マイグレーション実行中でない場合には、パケット監視アクセラレータ1は、仮想マシン21宛てのパケットを通過させるので、余計な処理を行わずに済む。また、パケット監視部11及びパケット振分部15のパケットの切替は、パケットチェック部16からのマイグレーション完了通知を受けて行われる。そのため、マイグレーション先の仮想マシンの起動処理が完了してから、クライアント端末4に送信されるパケットが、マイグレーション元の仮想マシン21からのパケットからマイグレーション先の仮想マシンからのパケットに切り替わることになる。第1実施形態では、マイグレーションによるクライアント端末4と仮想マシン21との通信の瞬断を抑制することができる。
パケットチェック部16は、マイグレーション元の仮想マシン21からのパケットよりも先にマイグレーション先の仮想マシン21からのパケットが到着した場合には、マイグレーション完了通知をパケット監視部11及びパケット振分部15に通知する。例えば、マイグレーション元の仮想マシン21よりもマイグレーション先の仮想マシン21の方がコア数が多い場合には、同じ処理を行った場合、マイグレーション先の仮想マシン21の方が処理に係る時間が短くなる。これによって、マイグレーション先の仮想マシン21からのパケットが先に到着することがある。したがって、マイグレーション元の仮想マシン21からのパケットよりも先にマイグレーション先の仮想マシン21からのパケットが到着することによって、マイグレーション先の仮想マシン21の起動処理が完了したことを判定することができる。
パケットチェック部16は、マイグレーション元の仮想マシン21からの受信パケットについてパケット識別子を取得し、マイグレーション元タイムスタンプリストの検索キーとする。パケットチェック部16は、マイグレーション先の仮想マシン21からの受信パケットのパケット識別子を取得し、当該パケット識別子を検索キーとして、マイグレーション元タイムスタンプリストを検索する。マイグレーション先の仮想マシン21からの受信パケットのパケット識別子に合致するエントリがマイグレーション元タイムスタンプリストに存在する場合は、マイグレーション元及びマイグレーション先の仮想マシン21からのパケットが一致することが示される。これによって、マイグレーション先の仮想マシン21が、正しく動作していることを担保することができる。また、マイグレーション元の仮想マシン21とマイグレーション先の仮想マシン21とが同じパケットに対して同じ処理を行っていることが担保され、マイグレーション先の仮想マシン21の起動処理の完了をより適正に判定することができる。
また、第1実施形態では、パケット識別子として、パケットから算出されるハッシュ値が用いられる。ハッシュ値のサイズは、例えば、4ビット等であり、パケットのサイズに比べて小さい。そのため、パケット識別子としてハッシュ値を用いることによって、マイグレーション元タイムスタンプリストの検索処理に係る処理負荷を軽減することができる。
パケット監視アクセラレータ1は、クライアント端末4からの受信パケットをバッファ部12にバッファリングしてから、ミラー部12によって複製して、マイグレーション元及びマイグレーション先の仮想マシン21に送信する。仮想マシン21宛てのパケットをバッファリングすることによって、マイグレーション元及びマイグレーション先の仮想マシン21それぞれにおいて、パケットに対する処理の開始時点を近づけることができる。
受信時刻の差分は、マイグレーション元及びマイグレーション先の仮想マシン21それぞれにおけるパケットに対する処理に係る時間の差分を反映する。そのため、マイグレーション元及びマイグレーション先の仮想マシン21それぞれにおいて、パケットに対する処理の開始時点が同期することによって、より正確にマイグレーション先の仮想マシン21の起動処理の完了を判定することができる。
受信時刻の差分は、マイグレーション元及びマイグレーション先の仮想マシン21それぞれにおけるパケットに対する処理に係る時間の差分を反映する。そのため、マイグレーション元及びマイグレーション先の仮想マシン21それぞれにおいて、パケットに対する処理の開始時点が同期することによって、より正確にマイグレーション先の仮想マシン21の起動処理の完了を判定することができる。
また、パケットチェック部16は、バッファ部12の設定バッファ量を受信時刻の差分に基づいて決定する。バッファ部12の設定バッファ量は、受信時刻の差分が大きいほど大きく設定される。受信時刻の差分が大きいことは、起動処理にマイグレーション先の仮想マシン21のリソースが費やされパケットの処理が遅れていることが示される。受信時刻の差分が大きいほどバッファ部12の設定バッファ量を大きく設定することによって、マイグレーション元及びマイグレーション先の仮想マシン21へのパケットの入力が遅くなり、その分、マイグレーション先の仮想マシン21は起動処理を行うことができる。これによって、マイグレーション先の仮想マシン21の起動処理の完了を早めることができる。
第1実施形態では、パケット監視部11は、単位時間当たりのパケットの受信量に基づいて、マイグレーションの開始を判定する。これによって、マイグレーションの開始を、パケット監視アクセラレータ1が自律的に行うことができる。
また、パケットチェック部16は、単位時間当たりのパケットの受信量に基づいて、マイグレーション先の仮想マシン21のコア数を決定する。これによって、より柔軟に通信状況に応じてマイグレーションを行うことができる。
<その他>
第1実施形態では、仮想マシン21間でマイグレーションを行う場合を例として説明されたが、物理マシン間でのマイグレーション、物理マシンと仮想マシン間のマイグレーションについても、第1実施形態の技術を適用することが可能である。
第1実施形態では、仮想マシン21間でマイグレーションを行う場合を例として説明されたが、物理マシン間でのマイグレーション、物理マシンと仮想マシン間のマイグレーションについても、第1実施形態の技術を適用することが可能である。
また、第1実施形態では、受信時刻の比較対象として対応するパケットとして、マイグレーション元とマイグレーション先との仮想マシンによる同じ内容のパケットに対する同じ処理の実行結果としてのパケットが用いられる。受信時刻の比較対象として対応するパケットは、これに限定されない。例えば、マイグレーション元とマイグレーション先との仮想マシンは、異なる処理を行っていてもよい。この場合、マイグレーション元とマイグレーション先との仮想マシンのそれぞれの処理に掛かる時間の差分を考慮して、受信時刻の差分の許容範囲が設定されることによって、マイグレーション元及びマイグレーション先の仮想マシンからのパケットを比較することができる。また、例えば、受信時刻の比較対象として対応するパケットとして、マイグレーション元とマイグレーション先との仮想マシンとで、異なる内容のパケットに対して行われた処理の実行結果としてのパケットが用いられてもよい。すなわち、マイグレーション元とマイグレーション先とで処理の開始タイミングがほぼ同じである場合の処理の実行結果としてのパケットであれば、受信時刻の差分の許容範囲を適宜設定することによって、受信時刻の比較対象として対応するパケットとして用いることができる。
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コ
ンピュータ等に固定された記録媒体としても利用可能である。
ンピュータ等に固定された記録媒体としても利用可能である。
1 パケット監視アクセラレータ
2、2B 物理サーバ
3 スイッチ
4 クライアント端末
11 パケット監視部
12 バッファ部
13 ミラー部
14、17 セレクタ
15 パケット振分部
16 パケットチェック部
207、303 NIC
2、2B 物理サーバ
3 スイッチ
4 クライアント端末
11 パケット監視部
12 バッファ部
13 ミラー部
14、17 セレクタ
15 パケット振分部
16 パケットチェック部
207、303 NIC
Claims (14)
- サーバとクライアント端末との間のパケットを監視する制御装置において、
移行元のサーバと前記移行元のサーバの処理環境の移行先である移行先のサーバとからパケットを受信する受信部と、
前記移行元のサーバと前記移行先のサーバとから受信された対応するパケットの受信時刻の差分が許容範囲内であるか否かを判定し、前記対応するパケットのうちの前記移行先のサーバから受信されたパケットを廃棄する判定部と、
前記受信時刻の差分が前記許容範囲内であると判定された場合に、前記移行元のサーバの処理を停止させる制御部と、
前記移行元のサーバ又は前記移行先のサーバから受信されたパケットを送信する送信部と、
を備える制御装置。 - 前記受信部は、前記移行元のサーバから前記移行先のサーバへの処理環境の移行が実行中である場合には、前記移行元のサーバ及び前記移行先のサーバから受信したパケットを前記判定部に出力し、前記移行元のサーバから前記移行先のサーバへの処理環境の移行が実行中でない場合には、前記移行先のサーバから受信したパケットを前記送信部に出力する、
請求項1に記載の制御装置。 - 前記判定部は、前記受信時刻の差分が前記許容範囲内であると判定した場合と、前記移行先のサーバから受信されたパケットの受信時刻が前記移行元のサーバから受信されたパケットよりも早い場合とに、前記移行元のサーバから前記移行先のサーバへの処理環境の移行が完了したことを通知する、
請求項1又は2に記載の制御装置。 - 前記判定部は、前記移行元のサーバから受信されたパケットと前記移行先のサーバから受信されたパケットとが一致するか否かを判定し、一致すると判定した場合には、前記受信時刻の差分が許容範囲内であるか否かの判定を行う、
請求項1から3のいずれか一項に記載の制御装置。 - 前記判定部は、前記移行元のサーバ及び前記移行先のサーバから受信されたパケットそれぞれについてハッシュ値を識別情報として算出し、前記移行元のサーバ及び前記移行先のサーバから受信されたパケットそれぞれの識別情報が一致するか否かを判定することで、前記移行元のサーバから受信されたパケットと前記移行先のサーバから受信されたパケットとが一致するか否かを判定する、
請求項4に記載の制御装置。 - 前記移行元のサーバ宛てのパケットをバッファリングするバッファと、
前記バッファ内から出力された前記移行元のサーバ宛てのパケットの複製を生成し、複製されたパケットを移行先のサーバに出力する複製部
をさらに備える請求項1から5のいずれか一項に記載の制御装置。 - 前記判定部は、前記受信時刻の差分に基づいて、前記バッファのバッファ量を設定する、
請求項6のいずれか一項に記載の制御装置。 - 前記判定部は、前記受信時刻の差分が大きいほど前記バッファ量を大きく設定する、
請求項7に記載の制御装置。 - サーバ宛てのパケットを受信し、当該サーバについて他のサーバへの処理環境の移行が実行中である場合には、前記サーバ宛てのパケットを前記バッファに出力し、前記サーバから前記他のサーバへの処理環境の移行が実行中でない場合には、前記サーバ宛てのパケットを前記サーバに出力するパケット監視部を、
さらに備える請求項6から8のいずれか一項に記載の制御装置。 - 前記制御部は、前記移行元のサーバ宛てのパケットの単位時間当たりの受信量を監視し、前記移行元のサーバ宛てのパケットの単位時間当たりの受信量に応じて、前記移行先のサーバの起動を判定し、前記移行元のサーバから前記移行先のサーバへの処理環境の移行の開始を判定する、
請求項1から9のいずれか一項に記載の制御装置。 - 前記移行先のサーバは、仮想サーバであり、
前記制御部は、前記移行元のサーバ宛てのパケットの単位時間当たりの受信量に応じて、前記移行先の仮想サーバのコア数を決定する、
請求項10に記載の制御装置。 - サーバとクライアント端末との間のパケットを監視する制御装置と、
移行元のサーバと、
前記移行元のサーバの処理環境の移行先である移行先のサーバと、
を含む情報処理システムであって、
前記制御装置は、
前記移行元のサーバ及び前記移行先のサーバからパケットを受信する受信部と、
前記移行元のサーバと前記移行先のサーバとから受信された対応するパケットの受信時刻の差分が許容範囲内であるか否かを判定し、前記対応するパケットのうち前記移行先のサーバから受信されたパケットを廃棄する判定部と、
前記受信時刻の差分が前記許容範囲内であると判定された場合に、前記移行元のサーバの処理を停止させる制御部と、
前記移行元のサーバ又は前記移行先のサーバから受信されたパケットを送信する送信部と、を備える
情報処理システム。 - サーバとクライアント端末との間のパケットを監視する制御装置において、
移行元のサーバと前記移行元のサーバの処理環境の移行先である移行先のサーバとからパケットを受信し、
前記移行元のサーバと前記移行先のサーバとから受信された対応するパケットの受信時刻の差分が許容範囲内であるか否かを判定し、前記対応するパケットのうち前記移行先のサーバから受信されたパケットを廃棄し、
前記受信時刻の差分が前記許容範囲内であると判定された場合に、前記移行元のサーバの処理を停止させ、
前記移行元のサーバ又は前記移行先のサーバから受信されたパケットを送信する、
制御方法。 - サーバとクライアント端末との間のパケットを監視する制御装置に、
移行元のサーバと前記移行元のサーバの処理環境の移行先である移行先のサーバとからパケットを受信させ、
前記移行元のサーバと前記移行先のサーバとから受信された対応するパケットの受信時刻の差分が許容範囲内であるか否かを判定させ、前記対応するパケットのうち前記移行先のサーバから受信されたパケットを廃棄させ、
前記受信時刻の差分が前記許容範囲内であると判定された場合に、前記移行元のサーバの処理を停止させ、
前記移行元のサーバ又は前記移行先のサーバから受信されたパケットを送信させる、
ための情報処理プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016133385A JP2018005664A (ja) | 2016-07-05 | 2016-07-05 | 制御装置、情報処理システム、制御方法、及び、情報処理プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016133385A JP2018005664A (ja) | 2016-07-05 | 2016-07-05 | 制御装置、情報処理システム、制御方法、及び、情報処理プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018005664A true JP2018005664A (ja) | 2018-01-11 |
Family
ID=60944975
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016133385A Pending JP2018005664A (ja) | 2016-07-05 | 2016-07-05 | 制御装置、情報処理システム、制御方法、及び、情報処理プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018005664A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018137643A (ja) * | 2017-02-22 | 2018-08-30 | 日本電信電話株式会社 | 管理装置および管理方法 |
| JP2019205079A (ja) * | 2018-05-24 | 2019-11-28 | 日本電信電話株式会社 | 情報処理装置、制御装置、移行方法及びプログラム |
| WO2025177571A1 (ja) * | 2024-02-22 | 2025-08-28 | Ntt株式会社 | 通信装置、及び通信システム |
| WO2026003897A1 (ja) * | 2024-06-24 | 2026-01-02 | Ntt株式会社 | 通信制御装置、通信システム及び通信制御方法 |
-
2016
- 2016-07-05 JP JP2016133385A patent/JP2018005664A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018137643A (ja) * | 2017-02-22 | 2018-08-30 | 日本電信電話株式会社 | 管理装置および管理方法 |
| JP2019205079A (ja) * | 2018-05-24 | 2019-11-28 | 日本電信電話株式会社 | 情報処理装置、制御装置、移行方法及びプログラム |
| WO2019225367A1 (ja) * | 2018-05-24 | 2019-11-28 | 日本電信電話株式会社 | 情報処理装置、制御装置、移行方法及びプログラム |
| WO2025177571A1 (ja) * | 2024-02-22 | 2025-08-28 | Ntt株式会社 | 通信装置、及び通信システム |
| WO2026003897A1 (ja) * | 2024-06-24 | 2026-01-02 | Ntt株式会社 | 通信制御装置、通信システム及び通信制御方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107925677B (zh) | 用于卸载数据对象复制以及服务功能链管理的方法及交换机 | |
| EP3675432B1 (en) | Intelligent and dynamic overlay tunnel formation via automatic discovery of citrivity/sdwan peer in the datapath in a pure plug and play environment with zero networking configuration | |
| CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
| US9614930B2 (en) | Virtual machine mobility using OpenFlow | |
| KR102083105B1 (ko) | 중개 장치를 통해 세션을 유지하기 위한 시스템들 및 방법 | |
| CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
| US9313088B2 (en) | Network system and network managing method | |
| KR102059284B1 (ko) | 분산 패킷 스케줄링을 위한 시스템들 및 방법들 | |
| US8745204B2 (en) | Minimizing latency in live virtual server migration | |
| US10749993B2 (en) | Path selection using TCP handshake in a multipath environment | |
| JP2016516333A (ja) | ネットワーク内のスケーラブルなフロー及び輻輳制御 | |
| CN116074131B (zh) | 一种数据处理方法、智能网卡和电子设备 | |
| US11848989B2 (en) | Separate routing of NVMe-over-fabric packets and non-NVMe packets | |
| JP2018005664A (ja) | 制御装置、情報処理システム、制御方法、及び、情報処理プログラム | |
| CN106603409A (zh) | 一种数据处理系统、方法及设备 | |
| CN111801911A (zh) | 业务功能链拥塞跟踪 | |
| US8611207B2 (en) | Data transmitter and data transmission method | |
| CN111026324A (zh) | 转发表项的更新方法及装置 | |
| US10628201B2 (en) | Analysis method and analysis apparatus | |
| US20170373928A1 (en) | Computer-readable recording medium, information processing apparatus, and vm switching method | |
| CN116760504A (zh) | 会话同步方法、装置、服务节点、终端及可读存储介质 | |
| CN116489115A (zh) | 使用提示的有效数据包重新排序 | |
| US9705785B2 (en) | Cloud architecture with state-saving middlebox scaling | |
| Saito et al. | Low-latency remote-offloading system for accelerator offloading | |
| US11159617B1 (en) | Apparatus, system, and method for synchronizing replicated objects across network nodes in highly scaled environments |