(57)【要約】【課題】データ処理機能のライブマイグレーションを行う際に、移行元サーバから移行先サーバへ送信する時間当たりの更新データ量を削減する。【解決手段】移行元のデータ処理装置、移行先のデータ処理装置、及びコントローラを備え、前記移行元のデータ処理装置におけるデータ処理機能を、前記移行先のデータ処理装置に移行させるデータ処理機能移行システムにおいて、前記移行元のデータ処理装置が、前記データ処理機能のデータを前記移行先のデータ処理装置に送信し、前記移行元のデータ処理装置が、前記データ処理機能により処理されるフロー群に属する特定のフローを指定し、当該指定されたフローの処理に伴い生じる更新データを前記移行先のデータ処理装置に転送し、前記コントローラが、前記指定されたフローのパケットが前記移行先のデータ処理装置に到達するようにネットワークの経路を変更する。【選択図】図１
2019028868.tif 000002
【特許請求の範囲】
【請求項１】
移行元のデータ処理装置、移行先のデータ処理装置、及びコントローラを備え、前記移行元のデータ処理装置におけるデータ処理機能を、前記移行先のデータ処理装置に移行させるデータ処理機能移行システムであって、
前記移行元のデータ処理装置が、前記データ処理機能のデータを前記移行先のデータ処理装置に送信し、
前記移行元のデータ処理装置が、前記データ処理機能により処理されるフロー群に属する特定のフローを指定し、当該指定されたフローの処理に伴い生じる更新データを前記移行先のデータ処理装置に転送し、
前記コントローラが、前記指定されたフローのパケットが前記移行先のデータ処理装置に到達するようにネットワークの経路を変更する
ことを特徴とするデータ処理機能移行システム。
【請求項２】
前記移行元のデータ処理装置は、同一のデータ記録領域を用いて管理していた前記フロー群の情報を、フロー毎のデータ記録領域にコピーし、以降、前記データ処理機能の移行が完了するまで、コピー後のデータ記録領域を用いてデータ処理を行い、
前記移行先のデータ処理装置は、前記データ処理機能の移行が完了した後、フロー毎のデータ記録領域に記録されたデータを統合して指定されたデータ記録領域に記録し、以降、当該データ記録領域を用いて前記フロー群のデータ処理を行う
ことを特徴とする請求項１に記載のデータ処理機能移行システム。
【請求項３】
前記移行元のデータ処理装置は、
データ処理に使用するデータ記録領域をフロー毎に備えるとともに、データ処理機能移行時に、前記移行先に移行するデータと移行しないデータとを当該データ記録領域中の別領域に記録し、前記移行先に移行するデータのうち、前記指定されたフローの処理に伴い生じる更新データを移行先に転送する
ことを特徴とする請求項１又は２に記載のデータ処理機能移行システム。
【請求項４】
移行元のデータ処理装置、移行先のデータ処理装置、及びコントローラを備え、前記移行元のデータ処理装置におけるデータ処理機能を、前記移行先のデータ処理装置に移行させるデータ処理機能移行システムにおいて、前記移行元のデータ処理装置として使用されるデータ処理装置であって、
前記データ処理機能のデータを前記移行先のデータ処理装置に送信する手段と、
前記データ処理機能により処理されるフロー群に属する特定のフローを指定し、当該指定されたフローの処理に伴い生じる更新データを前記移行先のデータ処理装置に転送する手段と
を備えることを特徴とするデータ処理装置。
【請求項５】
同一のデータ記録領域を用いて管理していた前記フロー群の情報を、フロー毎のデータ記録領域にコピーし、以降、前記データ処理機能の移行が完了するまで、コピー後のデータ記録領域を用いてデータ処理を行う手段
を備えることを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
データ処理に使用するデータ記録領域をフロー毎に備えるとともに、データ処理機能移行時に、前記移行先に移行するデータと移行しないデータとを当該データ記録領域中の別領域に記録し、前記移行先に移行するデータのうち、前記指定されたフローの処理に伴い生じる更新データを移行先に転送する手段
を備えることを特徴とする請求項４又は５に記載のデータ処理装置。
【請求項７】
移行元のデータ処理装置、移行先のデータ処理装置、及びコントローラを備え、前記移行元のデータ処理装置におけるデータ処理機能を、前記移行先のデータ処理装置に移行させるデータ処理機能移行システムが実行するデータ処理機能移行方法であって、
前記移行元のデータ処理装置が、前記データ処理機能のデータを前記移行先のデータ処理装置に送信するステップと、
前記移行元のデータ処理装置が、前記データ処理機能により処理されるフロー群に属する特定のフローを指定し、当該指定されたフローの処理に伴い生じる更新データを前記移行先のデータ処理装置に転送するステップと、
前記コントローラが、前記指定されたフローのパケットが前記移行先のデータ処理装置に到達するようにネットワークの経路を変更するステップと
を備えることを特徴とするデータ処理機能移行方法。
【請求項８】
コンピュータを、請求項４ないし６のうちいずれか１項に記載のデータ処理装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンのライブマイグレーションに関連するものである。
【背景技術】
【０００２】
近年、これまで物理サーバを用いることでしか実現できなかったアプリケーションの稼働をソフトウェアプラットフォーム上で行う仮想マシン技術が発達している。仮想マシンはソフトウェアにより実現され、仮想マシンを稼働させる環境が存在する物理プラットフォーム上で稼働する。
【０００３】
そして、稼働環境を持つサーバが複数存在する場合、仮想マシン内のソフトを稼働させた状態で、仮想マシンを稼働するサーバ（物理サーバ）を別のサーバに変更することができる、という特徴を持つ。このため、仮想マシン内で稼働するアプリケーションを止めることなく、それまで仮想マシンを稼働させていたサーバからバックアップ用のサーバに仮想マシンを移動させることができる。この動作はライブマイグレーションと呼ばれ、サーバの故障時やメンテナンス時にサービスを継続させる手段として用いられる。
【０００４】
ライブマイグレーションを行う際、仮想マシンはデータの処理を継続する。この際、データの更新が発生する。あるデータのマイグレーションが終了した後、データの更新が生じた場合、移行先の仮想マシンでデータの整合性をとるため、更新後のデータもあわせて移行する必要がある。移行方法には２つの既存方式が存在する。これらはｐｒｅ−ｃｏｐｙ方式とｐｏｓｔ−ｃｏｐｙ方式と呼ばれる。
【０００５】
ｐｒｅ−ｃｏｐｙ方式は、移行開始時点で移行元サーバに存在する、移行対象の仮想マシンのデータを全て移行した後、移行中に生じた更新データを再送する方式である。データ処理は移行が完了するまで、移行元で行う。そして、移行が完了すると、移行先でのデータ処理を開始する。
【０００６】
ｐｏｓｔ−ｃｏｐｙ方式は、仮想マシンを移行先で稼働させるために必要な最低限のデータを送信し、完了後、データ処理を移行先で行う方式である。この方式では、移行先でデータ処理を行うにあたり、移行されていないデータや最新化されていないデータをアクセスする状況が生じる。このとき、アクセス対象のデータの最新版を移行元で稼働する仮想マシンから入手し、データの整合性を保つ。両方式の動作は、非特許文献１に記載されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】C. Clark, et al.,"Live Migration of Virtual Machines," Proc. 2nd conference on symposium on networked systems design & implementation, pp.273-286, 2005
【発明の概要】
【発明が解決しようとする課題】
【０００８】
仮想マシンがパケットのデータをトリガーとしてデータ処理を行う場合がある。仮想マシンでルータソフトウェアを実行し、パケット処理を行う場合等がそれに該当する。例えば、ルータがパケットの転送先を決定するとき、パケットヘッダをメモリに書き込み、送信先アドレスを参照し、フォワーディングテーブルをもとに行き先を決定する。このとき、ヘッダの書き込みやフォワーディングテーブルの検索等の処理でメモリに記録されているデータの更新が生じる。
【０００９】
データの大容量化や端末数の増加に伴い、処理すべきパケット数は年々増加している。それに伴い、このようなデータ更新の回数は増加し、更新データ量も増加している。このような状況において、既存方式を用いると次のような問題が生じる。
【００１０】
ｐｒｅ−ｃｏｐｙ方式では、データ更新に伴う更新データの発生スピードがデータの転送スピードを上回る場合、更新データの送信が完了しない。結果、マイグレーションが完了しない、という問題が発生する。
【００１１】
ｐｏｓｔ−ｃｏｐｙ方式では、当該問題の影響は緩和される。しかし、データ処理を移行先で行い、未更新のデータを使用するときに移行元で稼働する仮想マシンから入手するため、更新データが到着するまでパケットを転送できない。処理すべきパケット量が大きい時、この事象のため多くのパケットが未処理のまま仮想マシンに滞留し、バッファあふれが起きる、という問題が生じる。
【００１２】
本発明は上記の点に鑑みてなされたものであり、データ処理機能のライブマイグレーションを行う際に、移行元サーバから移行先サーバへ送信する時間当たりの更新データ量を削減することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
開示の技術によれば、移行元のデータ処理装置、移行先のデータ処理装置、及びコントローラを備え、前記移行元のデータ処理装置におけるデータ処理機能を、前記移行先のデータ処理装置に移行させるデータ処理機能移行システムであって、
前記移行元のデータ処理装置が、前記データ処理機能のデータを前記移行先のデータ処理装置に送信し、
前記移行元のデータ処理装置が、前記データ処理機能により処理されるフロー群に属する特定のフローを指定し、当該指定されたフローの処理に伴い生じる更新データを前記移行先のデータ処理装置に転送し、
前記コントローラが、前記指定されたフローのパケットが前記移行先のデータ処理装置に到達するようにネットワークの経路を変更する
ことを特徴とするデータ処理機能移行システムが提供される。
【発明の効果】
【００１４】
開示の技術によれば、データ処理機能のライブマイグレーションを行う際に、移行元サーバから移行先サーバへ送信する時間当たりの更新データ量を削減することを可能とする技術が提供される。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態におけるシステム構成図である。
【図２】データ処理装置の機能構成図である。
【図３】フロー識別装置の機能構成図である。
【図４】装置のハードウェア構成例を示す図である。
【図５】処理機能の移行処理の流れを説明するための図である。
【図６】処理機能の移行処理の流れを説明するための図である。
【図７】処理機能の移行処理の流れを説明するための図である。
【図８】処理機能の移行処理の流れを説明するための図である。
【図９】処理機能の移行処理の流れを説明するための図である。
【図１０】処理機能の移行処理の流れを説明するための図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１７】
（システム構成）
図１に、本実施の形態におけるシステム構成例を示す。図１に示すように、本実施の形態に係るシステムは、データ処理装置２１、２２、コントローラ１１、フロー識別装置３１〜３３を有し、これらの装置が通信可能にネットワーク接続されている。なお、図示する各装置の台数は一例に過ぎない。
【００１８】
図１の上側に示すように、データ処理装置２１、２２、コントローラ１１、フロー識別装置３１〜３３の間にコントロールプレーンネットワークが設定されている。また、図１の下側に示すように、データ処理装置２１、２２、コントローラ１１、フロー識別装置３１〜３３の間にデータプレーンネットワークが構築されている。
【００１９】
装置間を接続するネットワークには、転送装置が存在し、転送装置に設定される経路情報に基づき、ネットワーク内でパケット転送が行われる。
【００２０】
図２に、データ処理装置２１の機能構成を示す。なお、各データ処理装置は同様の構成であるため、例としてデータ処理装置２１を用いて説明する。
【００２１】
図２に示すように、データ処理装置２１は、演算機能４０、記録媒体４４、入出力インタフェース４５を有する。入出力インタフェース４５は、ネットワークを介したデータの入出力を行う。記録媒体４４はメモリ等でありプログラム、データ等を格納する。
【００２２】
図２に示すように、演算機能４０は、処理機能４１、４２（データ処理機能と称してもよい）、及び管理機能４３を有する。処理機能４１（処理機能４２も同様）は、データ処理装置２１に到着したパケットに伴い生じるデータ処理を実行する。例えば、処理機能４１が仮想マシン上のルータソフトウェアである場合において、処理機能４１によるデータ処理は、例えば、入力されたパケットのパケットヘッダをメモリ（例：記録媒体４４）に書き込み、送信先アドレスを参照し、記録媒体４４に格納されているフォワーディングテーブルをもとに行き先を決定する、といった処理である。
【００２３】
管理機能４２は、処理機能４１、４２が使用するメモリ（記録媒体４４）の管理や、処理機能の移行に関する制御を行う。
【００２４】
図３に、フロー識別装置３１の機能構成を示す。なお、各フロー識別装置は同様の構成であるため、例としてフロー識別装置３１を用いて説明する。
【００２５】
フロー識別装置３１は、到着したパケットを識別し、そのパケットが属するフローとその出力インタフェースの決定、ならびに該インタフェースへのパケット転送を行う装置である。
【００２６】
図３に示すように、フロー識別装置３１は、演算機能３３、記録媒体３６、入出力インタフェース３７を有する。入出力インタフェース３７は、ネットワークを介したデータの入出力を行う。記録媒体３６はメモリ等でありプログラム、データ等を格納する。格納されるデータとして、フローテーブルが含まれる。
【００２７】
図３に示すように、演算機能３３は、パケット識別機能３４、及びパケット転送機能３５を有する。パケット識別機能３４は、到着したパケットを識別する。パケット転送機能３５は、パケット識別機能３４により識別パケットが属するフローとその出力インタフェースの決定、ならびに該インタフェースへのパケット転送を行う。
【００２８】
図１に示したコントローラ１１は、移行の進捗を管理し、進捗度合いに応じた処理の実行をデータ処理装置、フロー識別装置に指示するとともに、処理機能とフロー識別装置の間の転送経路となるパケットトンネルをネットワーク上に設定する。なお、コントローラ１１の機能をデータ処理装置あるいはフロー識別装置が備えてもよい。
【００２９】
（ハードウェア構成例）
図１に示した各装置は、物理マシン上で動作する仮想マシン（処理機能は仮想マシン上のソフトウェア）であってもよいし、図１に示した各装置は物理マシンであって、処理機能が物理マシンの中の仮想マシンであってもよいし、その他の構成であってもよい。
【００３０】
いずれの場合でも、各装置（図１に示すデータ処理装置２１、２２、フロー識別装置３１〜３３、コントローラ１１のそれぞれ）は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、当該装置が有する機能は、コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【００３１】
図４は、本実施の形態における上記装置のハードウェア構成例を示す図である。図４の装置は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００３２】
当該装置での処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って当該装置に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００３４】
（動作概要）
図１に示す構成における処理機能（ここではデータ処理装置２１の処理機能４１とする）の移行処理の流れの概要を説明する。
【００３５】
まず、オペレータが、データ処理装置２１における処理機能４１の移行を決定する。コントローラ１１は、フロー識別装置３１〜３３から移行前の処理機能４１へとトラヒックを誘導するためのトンネル経路をネットワークに設定する。同時に、コントローラ１１は、移行対象の処理機能４１が存在するデータ処理装置２１に、移行対象の処理機能４１が処理しているトラヒックフローの情報を通知するよう指示する。
【００３６】
データ処理装置２１において、管理機能４３は、移行対象の処理機能４１が処理しているトラヒックフローの情報を取得する。次に、管理機能４３は情報に記載のあるフローを複数のグループに分割する。管理機能４３は、グループ毎にメモリ領域を用意し、フローの処理に必要なデータをメモリ領域に記録する。このとき、あるグループのメモリ領域には、そのグループに属するフローの処理に必要なデータのみを記録する。
【００３７】
メモリ領域への記録の完了後、トラヒックフローのパケット処理に伴うデータの更新、参照先を、フローが属するグループ用のメモリ領域にする。これに伴い、仮想マシン（データ処理装置２１）が参照するメモリのアドレスの更新処理が実行される。その後、管理機能４３は、トラヒックフローとそのグループの情報をコントローラ１１に送信する。
【００３８】
コントローラ１１は、データ処理装置２１からトラヒックフローの情報を受信すると、該当フローの出力先を最初に設定したトンネルへと切り替えるよう、フロー識別装置３１〜３３に指示する。このとき、切り替えるフローの情報とトンネルの情報を、フロー識別装置３１〜３３に通知する。それを受けて、フロー識別装置３１〜３３はフロー識別を開始し、指示されたフローに属するパケットをトンネルへと出力する。
【００３９】
データ処理装置２１内の管理機能４３は、移行対象の処理機能４１のデータを、移行先のデータ処理装置２２へと送信する。このときに送信するデータは、処理機能４１の実行データの全体、もしくは一部を含む。同時に、移行対象の処理機能４１で処理を行うパケットのうち、最初に設定したトンネルを経由せずに処理機能４１に到達するものを移行先のデータ処理装置２２へと転送するよう、ネットワーク内の転送装置に存在する経路情報を変更する。このため、データ処理装置２１は経路変更指示をコントローラ１１に送信する。これを受けて、コントローラ１１はネットワーク内の転送装置の経路情報を変更する。
【００４０】
データ処理装置２１、２２間のデータ送信完了後、予め設定した方法に基づき１つのフローグループを決定し、その更新データを移行先へと転送する。更新データの移行が完了すると、データ処理装置２１は完了したフローグループの情報をコントローラに通知する。同時に、次のフローグループの更新データを移行先へと転送する。コントローラ１１はそれを受け、フローグループに属するフローの情報をフロー識別装置３１〜３３に通知し、フロー識別装置３１〜３３は、該当するフローを移行前のインタフェースへと出力する。この処理を、全フローグループの更新データを移行し終わるまで繰り返す。
【００４１】
上記の一連の処理が終了すると、フロー識別装置３１〜３３は移行前のインタフェースを介して処理機能４１に向かう全てのトラヒックを移行後のデータ処理装置２２へ送信することになる。
【００４２】
全てのフローグループに対する更新データの移行処理が完了すると、データ処理装置２１はコントローラ１１に処理機能４１の移行が完了したことを示す通知を送信する。同時に移行前の処理機能４１に割り当てていたメモリ領域を全て開放する。コントローラ１１は通知を受信すると、最初に設定したトンネルを開放する。そして、フロー識別装置３１〜３３に対し、処理機能４１の移行に伴い発生したフロー識別処理を移行前の状態に戻すよう指示を出す。フロー識別装置３１〜３３は指示を受けて、フロー識別処理を移行前の状態に戻す。
【００４３】
（動作詳細）
以下、上述した一連の処理のより具体的な例を、図５〜図１０を参照して説明する。
【００４４】
ここでは、図５に示すように、コントローラ１１、データ処理装置２１、２２、フロー識別装置３１、３２による動作例として、データ処理装置２１における処理機能４１をデータ処理装置２２に移行する場合の動作例を説明する。
【００４５】
図５に示すとおり、データ処理装置２１内で処理機能４１が稼働しており、フロー５１、５２が、フロー識別装置３１から処理機能４１を経由して、フロー識別装置３２へと向かっている。処理機能４１では、フロー５１、５２の処理を行う。
【００４６】
図６に示すように、処理機能４１をデータ処理装置２１からデータ処理装置２２へと移行する際に、まず、オペレータはコントローラ１１に移行の指示を送る（Ｓ（ステップ）１）。
【００４７】
指示を受けたコントローラ１１は、ネットワーク（データプレーンネットワーク）にフロー識別装置３１、３２とデータ処理装置２１を結ぶトンネル８１を設定する（Ｓ２）。図６には、データ処理装置２１とフロー識別装置３１との間、及び、データ処理装置２１とフロー識別装置３２との間のそれぞれにおいてトンネル８１が設定されたことが示されている。
【００４８】
同時に、コントローラ１１は、処理機能４１が存在するデータ処理装置２１に、処理機能４１が処理しているトラヒックフローの情報を通知するよう指示する（Ｓ３）。
【００４９】
続いて、図７左側に示すように、データ処理装置２１は、自身の管理機能４３により移行対象の処理機能４１が処理しているトラヒックフローの情報を取得する（Ｓ４）。図７の左側において、フロー情報は、管理機能４３が管理するメモリ領域（例：記録媒体４４内の領域）に格納されていることが示されており、当該フロー情報が管理機能４３により取得される。また、図７の左側には、管理機能４３により管理されるメモリアドレス変換テーブルが示されている。
【００５０】
メモリアドレス変換テーブルは、ページテーブルとも呼ばれ、処理機能４１（プロセス）が使用する仮想メモリアドレスと、データが格納されるメモリ領域の物理メモリアドレスとの間の変換を行うテーブルである。
【００５１】
次に、管理機能４３は、取得した情報に記載のあるフロー（ここでは、フロー５１とフロー５２）を複数のグループに分割する。ここでは、フロー５１をグループ６１に、フロー５２をグループ６２へと組み込む。
【００５２】
管理機能４３は、フローグループ毎にメモリ領域を用意し、フローの処理に必要なデータをメモリ領域に記録する（Ｓ５）。ここでは、図７の右側に示すように、フロー５１，５２それぞれにメモリ領域７１、７２を割り当て、それぞれのデータを、元のメモリ領域７０からコピーする。
【００５３】
そして、フロー５１に属するパケットの処理をメモリ領域７１で、フロー５２に属するパケットの処理をメモリ領域７２で行うよう、管理機能４３がメモリの参照先情報を更新する（Ｓ６）。具体的には、図７の右側に示すように、データ処理装置２１が有する前述したメモリアドレス変換テーブルのフロー５１用のアドレスに、フロー５１用のメモリアドレスとしてメモリ領域７１のアドレスが記録され、メモリアドレス変換テーブルのフロー５２用のアドレスに、フロー５２用のメモリアドレスとしてメモリ領域７２のアドレスが記録される。処理機能４１は、当該メモリアドレス変換テーブルに記録されたメモリアドレスのメモリ領域を用いて、各フローのパケットの処理を行う。そして、データ処理装置２１はコントローラ１１にフロー５１と５２の情報を通知する（Ｓ７）。
【００５４】
また、管理機能４３は、同一フローの処理に伴い生じるデータ更新の中でも、移行対象となるデータを記録するメモリ領域を別に割り当てることとしてもよい。例えば、移行しないデータを書き込むための仮想メモリアドレスを用意し、該アドレスでアクセス可能なデータを移行しないデータと見なし、その他のデータを移行するデータと見なす、という方法を用いることができる。この場合、前述したメモリアドレスアドレス変換テーブルにより、移行しないデータは、移行しないデータ用のメモリ領域に記録され、移行するデータは、移行するデータ用のメモリ領域に書き込まれる。移行しないデータの例として、ＩＰＳｅｃの暗号化処理やパケットフォワーディング、Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎでパケットのペイロードを調査するときに生じる、一時的なデータや計算データなどがある。そして、移行するデータの例としては、ＮＡＰＴのアドレス変換情報や、サーバへの攻撃パケットの検知をパケットの振る舞いの時系列データで行う場合の時系列データ、そして、ＩｏＴのセンサーからのデータを集約してクラウドで処理を行う場合の集約データとデータ提供元センサーの情報などがある。
【００５５】
次に、図８を参照して説明する。コントローラ１１は、データ処理装置２１からトラヒックフロー５１、５２の情報を受信すると、これらのフローの識別を開始し、これらのフローの出力先をトンネル８１にするよう、フロー識別装置３１、３２に向けて指示を送信する（Ｓ８）。
【００５６】
通知を受信すると、フロー識別装置３１、３２はフロー識別を開始し、フロー５１、５２に属するパケットをトンネル８１へと出力する（Ｓ９）。図８に示すように、この出力先変更により、フロー識別装置３１が受信するフロー５１、５２のパケットは、トンネル８１に出力されてデータ処理装置２１に届けられ、フロー識別装置３２が受信するフロー５１、５２のパケットもトンネル８１に出力されてデータ処理装置２１に届けられる。
【００５７】
出力先の変更が完了すると、フロー識別装置３１、３２はコントローラ１１に出力先の変更完了を通知する（Ｓ９）。
【００５８】
出力先の変更完了の通知を受信したコントローラ１１は、データ処理装置２１に、処理機能４１の移行準備が完了したことを通知する（Ｓ１０）。同時に、データ処理装置２１に向かっていたフロー５１、５２のパケットの転送先をデータ処理装置２２へと変更するように、コントローラ１１は、ネットワーク内の転送装置の経路情報を変更する（Ｓ１１）。
【００５９】
次に、図９を参照して説明する。データ処理装置２１内の管理機能４３は、処理機能４１のデータを移行先のデータ処理装置２２に送信する（Ｓ１２）。ここでは処理機能４１のプロセス自身も送信する。データ処理装置２１内の管理機能４３は、処理機能４１のデータを全て移行し終わると、予め設定した方法に基づき１つのフローグループ（複数のフローグループであってもよい）を決定する。そして、決定グループに属するフロー処理で発生した更新データをデータ処理装置２２へと送信する（Ｓ１２）。ここではフロー５１が選択されたものとする。その場合、送信するデータはメモリ領域７１に記録されたデータのうち、更新されたデータである。
【００６０】
メモリ領域７１内の更新データの送信が完了すると、データ処理装置２１の管理機能４３は、コントローラ１１にフロー５１の転送先をデータ処理装置２２に切り替えるよう通知する（Ｓ１３）。同時にメモリ領域７１を開放する。そして、フロー５２用の更新データである、メモリ領域７２内の更新データをデータ処理装置２２へと送信する（Ｓ１４）。
【００６１】
コントローラ１１は、Ｓ１３の通知を受信すると、フロー識別装置３１、３２に、フロー５１の出力先をトンネル８１から移行前の送信インタフェースへと切り替えるよう通知する（Ｓ１５）。この通知を受け、フロー識別装置３１、３２は、フロー５１に属するデータを移行前の出力インタフェースへと出力する（Ｓ１６）。図９において、データ処理装置２１とフロー識別装置３１、３２間の点線で示されるフロー５１が、データ処理装置２２とフロー識別装置３１、３２間の実線で示されるフロー５１になったことが示されている。
【００６２】
メモリ領域７２内の更新データの送信が完了すると、データ処理装置２１の管理機能４３は、コントローラ１１にフロー５２の転送先をデータ処理装置２２に切り替えるよう通知する。同時にメモリ領域７２を開放する。これにより、フロー５１と同様に、フロー識別装置３１、３２は、フロー５２に属するデータを移行前の出力インタフェースへと出力する。
【００６３】
次に、図１０を参照して説明する。データ処理装置２１の管理機能４３は、処理機能４１の移行が完了すると、コントローラ１１に移行が完了したことを示す通知を送信する（Ｓ１７）。同時に処理機能４１のために割り当てていたメモリ領域７０を開放する。
【００６４】
コントローラ１１は、Ｓ１７の通知を受信すると、トンネル８１を開放する（Ｓ１８）。そして、コントローラ１１は、フロー識別装置３１、３２に、フロー５１、５２に対して行っていた、移行に伴い生じたフロー識別を終了するよう指示を出す（Ｓ１９）。この指示を受けて、フロー識別装置３１、３２は、フロー５１、５２に対するフロー識別を移行前の状態に戻す（Ｓ２０）。
【００６５】
また、移行時にメモリ領域７１、７２に記録していた、フロー５１、５２のデータに関しては、移行が完了したときに、データ処理装置２２内の同一のメモリ領域へと統合する。統合の手法は予め設定されているとする。すなわち、処理機能４１のデータ処理装置２２への移行により、メモリ領域７１、７２もデータ処理装置２２に移行されるが、データ処理装置２２の管理機能が、これらのメモリ領域７１、７２を１つのメモリ領域に統合する。
【００６６】
本実施の形態では、コントローラ１１と、フロー識別装置、データ処理装置は別装置としている。しかし、コントローラ１１と同等の機能をフロー識別装置、もしくはデータ処理装置が持つこととしてもよい。また、フロー毎のデータ統合方法に関しては、移行後に一括して実行することとしてもよいし、フローの移行毎に統合プロセスを実行することとしてもよい。
【００６７】
（実施の形態の効果）
以上、説明したように、本実施の形態では、処理機能の移行を行う際、フローの処理に伴い生じた更新データのうち、指定したフローのデータのみを移行先に送信し、送信が完了すると、別に指定したフローの更新データのみを移行先に送信することで、移行時に送信する時間当たりの更新データ量を削減できる。この方法を用いることで、時間当たりの更新データ量がネットワークで移行できる転送データ量を上回るときに、更新データを移行することが可能になり、処理機能を移行することが可能になる。
【００６８】
また、本実施の形態では、フロー毎にデータを記録する領域を分割し、フローの処理に伴い生じるデータ処理はフロー用の領域を用いて行う。これにより、移行対象となるデータをメモリ領域単位で管理することが可能になり、移行データの指定が容易になる。
【００６９】
また、本実施の形態では、同一フローの処理に伴い生じるデータ更新の中でも、移行対象となるデータを記録するメモリ領域を別に割り当てる。これにより、移行対象となるデータをメモリ領域単位で管理することが可能になり、移行データの指定が容易になる。
【００７０】
（実施の形態のまとめ）
以上、説明したように、本実施の形態において、移行元のデータ処理装置、移行先のデータ処理装置、及びコントローラを備え、前記移行元のデータ処理装置におけるデータ処理機能を、前記移行先のデータ処理装置に移行させるデータ処理機能移行システムであって、
前記移行元のデータ処理装置が、前記データ処理機能のデータを前記移行先のデータ処理装置に送信し、
前記移行元のデータ処理装置が、前記データ処理機能により処理されるフロー群に属する特定のフローを指定し、当該指定されたフローの処理に伴い生じる更新データを前記移行先のデータ処理装置に転送し、
前記コントローラが、前記指定されたフローのパケットが前記移行先のデータ処理装置に到達するようにネットワークの経路を変更する
ことを特徴とするデータ処理機能移行システムが提供される。
【００７１】
前記移行元のデータ処理装置は、同一のデータ記録領域を用いて管理していた前記フロー群の情報を、フロー毎のデータ記録領域にコピーし、以降、前記データ処理機能の移行が完了するまで、コピー後のデータ記録領域を用いてデータ処理を行い、前記移行先のデータ処理装置は、前記データ処理機能の移行が完了した後、フロー毎のデータ記録領域に記録されたデータを統合して指定されたデータ記録領域に記録し、以降、当該データ記録領域を用いて前記フロー群のデータ処理を行うこととしてもよい。
【００７２】
前記移行元のデータ処理装置は、データ処理に使用するデータ記録領域をフロー毎に備えるとともに、データ処理機能移行時に、前記移行先に移行するデータと移行しないデータとを当該データ記録領域中の別領域に記録し、前記移行先に移行するデータのうち、前記指定されたフローの処理に伴い生じる更新データを移行先に転送することとしてもよい。
【００７３】
また、本実施の形態において、移行元のデータ処理装置、移行先のデータ処理装置、及びコントローラを備え、前記移行元のデータ処理装置におけるデータ処理機能を、前記移行先のデータ処理装置に移行させるデータ処理機能移行システムにおいて、前記移行元のデータ処理装置として使用されるデータ処理装置であって、
前記データ処理機能のデータを前記移行先のデータ処理装置に送信する手段と、
前記データ処理機能により処理されるフロー群に属する特定のフローを指定し、当該指定されたフローの処理に伴い生じる更新データを前記移行先のデータ処理装置に転送する手段と
を備えることを特徴とするデータ処理装置が提供される。
【００７４】
前記データ処理装置は、同一のデータ記録領域を用いて管理していた前記フロー群の情報を、フロー毎のデータ記録領域にコピーし、以降、前記データ処理機能の移行が完了するまで、コピー後のデータ記録領域を用いてデータ処理を行う手段を備えてもよい。
【００７５】
前記データ処理装置は、データ処理に使用するデータ記録領域をフロー毎に備えるとともに、データ処理機能移行時に、前記移行先に移行するデータと移行しないデータとを当該データ記録領域中の別領域に記録し、前記移行先に移行するデータのうち、前記指定されたフローの処理に伴い生じる更新データを移行先に転送する手段を備えてもよい。
【００７６】
また、本実施の形態により、コンピュータを、上記データ処理装置における各手段として機能させるためのプログラムが提供される。
【００７７】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７８】
１１  コントローラ
２１、２２  データ処理装置
３１〜３３  フロー識別装置
３３  演算機能
３４  パケット識別機能
３５  パケット転送機能
３６  記録媒体
３７  入出力インタフェース
４０  演算機能
４４  記録媒体
４５  入出力インタフェース
４１、４２  処理機能
１００  ドライブ装置
１０１  記録媒体
１０２  補助記憶装置
１０３  メモリ装置
１０４  ＣＰＵ
１０５  インタフェース装置
１０６  表示装置
１０７  入力装置
【図１】
2019028868.tif 000003
【図２】
2019028868.tif 000004
【図３】
2019028868.tif 000005
【図４】
2019028868.tif 000006
【図５】
2019028868.tif 000007
【図６】
2019028868.tif 000008
【図７】
2019028868.tif 000009
【図８】
2019028868.tif 000010
【図９】
2019028868.tif 000011
【図１０】
2019028868.tif 000012