(58)【調査した分野】(Int.Cl.,DB名)
通信関係を有する複数プロセスの削除時において、前記更新手段は、当該複数プロセスを含むグループを、当該グループ内のプロセス間の通信関係に基づいて、通信関係を有しない複数のグループに分割する
ことを特徴とする請求項4又は5に記載のプロセス処理装置。
プロセスを稼働させる移行元サーバと、プロセスの移行先である移行先サーバとを有するシステムにおけるプロセスの移行順序を決定するプロセス処理装置が実行するプロセス移行順序決定方法であって、
前記プロセス処理装置は、プロセス間の通信関係に基づいて決定されたプロセスのグループの情報を格納するグループ管理テーブルを有し、
前記グループ管理テーブルにおけるグループに基づいて、移行用グループを決定し、同じグループに属する複数の移行用グループが連続したタイミングで移行を完了するように、前記移行元サーバから前記移行先サーバへのプロセスの移行順序を決定する決定ステップを備え、
前記決定ステップにおいて、前記プロセス処理装置は、前記グループ管理テーブルにおける、移行対象のプロセスを含むグループ毎に、グループに含まれるプロセスのべき集合を計算し、当該べき集合の要素から前記移行用グループを決定する
ことを特徴とするプロセス移行順序決定方法。
【背景技術】
【0002】
仮想ネットワーク技術の成熟に伴い、ソフトウェアを用いたパケット処理が実用化されるようになった。このようなソフトウェアを仮想ネットワーク機能(VNF: Virtual Network Function)と呼ぶ。
【0003】
また、トンネル終端やNAPT、IPSecゲートウェイ等の機能をVNFに実装し、これらのVNF間をトンネル等で接続することで、決められた順序に沿ってパケットに処理を施す、サービスファンクションチェイニング(SFC)が普及し始めている。
【0004】
なお、SFCでは、VNFはサービスファンクション(SF)と呼ばれる。しかし、SFはソフトウェア化したネットワーク機能だけでなく物理装置も含むため、パケット処理ソフトウェアを対象とすることを明確化するために、本明細書内では、物理装置であるサーバで稼働するパケット処理ソフトウェアの呼称としてVNFを用いる。
【0005】
SFCを構成する複数のVNFを複数の異なるサーバで稼働させる場合、あるサーバのVNFから別のサーバで稼働するVNFにデータを転送するため、ネットワーク内にトラヒックが生じる。以降、このトラヒックをサーバ間トラヒックと呼ぶ。
【0006】
VNFはデータセンタで稼働することが想定される。装置コストや電力コストを向上させるために、データセンタ内のトラヒックを削減したいという要望がある。これを実現するために、同一のSFCに属するVNFは同一サーバ上で稼働させることが望まれる。同一のSFCに属するVNFを同一サーバ上で稼働させることで、VNF間のデータ転送がサーバ内のメモリ、CPUバス、コア間インターコネクトを介して行われるため、ネットワークにデータを転送する必要がなくなり、データセンタ内のトラヒックが削減されるためである。
【0007】
ところで、SFCのサービスを行うにあたり、サーバの故障を回避してサービスを継続させることは、SFCサービス事業者にとって重要な課題となる。AI技術の普及により、サーバ故障の予兆検知の精度が向上したため、サーバ故障の予兆検知時に該当サーバ上で稼働するVNFを別のサーバに移行する、という手法でサービスを継続させることが可能になった。また、サーバのメンテナンスを定期的に行って、異常を速く認識することで、突然のサービス断の発生を防ぐことが可能になった。
【0008】
VNFを別のサーバに移行する手段として、ライブマイグレーション技術が存在する。ライブマイグレーション技術は、あるサーバで稼働しているVNFを別のサーバに移行する際、VNFのデータを別のサーバに送信する技術である。
【0009】
一般的にVNFを移行する際、パケット処理を一時停止する必要がある。その時間を短縮するため、ライブマイグレーションではデータ移行が完了するまでパケット処理を継続する。完了時に一時停止し、移行先でパケット処理を再開する。
【0010】
移行先でパケット処理を再開するにあたり、移行元で一時停止した時点でのデータが必要になる。また、データ移行完了までパケット処理を継続するため、その間データは更新され続ける。このため、ライブマイグレーションを行う間、更新されたデータを移行先のサーバに送信し続ける。
【0011】
送信されるデータの量はVNFとしてのアプリケーションがデータを更新する頻度に依存する。また、更新データの発生レートがネットワーク帯域を上回る場合、移行を完了させることができない。特に、複数のVNFを同時並列で移行するとき、移行中のVNFにより更新されたデータはすべて送信される。このため、複数のVNFを移行元のサーバから別サーバに移行する際、ある時点で移行するVNFによる更新データの発生レートがネットワーク帯域を上回らないよう制御する必要がある。非特許文献1には、この制御を行いながら、前述のサーバ間トラヒックの発生を抑制するための技術が開示されている。
【0012】
また、非特許文献1では、お互いに通信を行っている仮想マシンを移行する間に発生するサーバ間トラヒックを削減するための移行スケジューリング方法が開示されている。
【0013】
非特許文献1で開示されている方法では、更新データの発生レートがネットワーク帯域を上回らないよう移行対象のVNFをグルーピングし、同一グループに属するVNFの移行完了タイミングが同一になるようにVNFを移行する。そして、グループに属するVNFの組み合わせを変更することで、サーバ間トラヒックの発生量が最小になるVNFの移行スケジュールを決定する。なお、非特許文献1で使用している移行スケジューリングのアルゴリズムは、非特許文献2で開示されたアルゴリズムに基づいている。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、以下の説明では、移行対象のVNFがSFCを構成する場合の例を示しているが、本発明に係る技術は、SFC以外でも、VNF間に通信関係が規定される方式であれば適用可能である。
【0022】
(システム構成)
図1に本発明の実施の形態におけるシステムの全体構成例を示す図である。
図1には、SFCを提供するサーバの例としてサーバ10、及びサーバ20が示されている。なお、ここでは各サーバは物理装置であり、サーバ内のネットワーク機能は、ソフトウェアで実現される仮想ネットワーク機能である。
【0023】
図1に示すように、プロセス処理装置100が備えられる。プロセス処理装置100は、各サーバとネットワークを介して通信可能である。プロセス処理装置100は、SFCを構成するVNFを移行元サーバから移行先サーバに移行させるための移行順序計算(移行スケジューリングと称してもよい)を行うとともに、移行の制御を行う装置である。ただし、本実施の形態では、プロセス処理装置100に関し、主に、移行順序計算に着目して説明を行っている。移行順序が決定された後の移行の実行制御については、既存技術を使用することができる。
【0024】
図1の例において、サーバ10とサーバ20との間はある帯域を有する回線で接続されている。サーバ10において、仮想スイッチであるスイッチ13、VNF11、及びVNF12が稼働している。サーバ20においては、仮想スイッチであるスイッチ22、及びVNF21が稼働している。なお、VNFを「プロセス」と称してもよい。
【0025】
図1には、VNF11、VNF12、VNF21を利用するSFCにおけるパケットの流れが示されている。
図1に示すように、パケット(ラベルが付されている)がサーバ10に入力されると、スイッチ13は、パケットのラベルを参照することにより、当該パケットを適切なVNF(ここではVNF11、VNF12)に転送する。サーバ20でも同様である。
【0026】
上記のように、本実施の形態に係るシステムには、プロセス間の通信手段として、低速で利用プロセス数が多い手段(サーバ10とサーバ20との間のネットワーク)と、高速で利用プロセス数が少ない手段(サーバ内のメモリ、CPUバス、コア間インターコネクト等)が存在する。また、本実施の形態に係るシステムには、データを一連のフローに沿って処理するために、例えば、送信元プロセス、受信先プロセス、及び、中間プロセスが存在し、それらの関係が予め定められている。
【0027】
(プロセス処理装置100の機能構成)
図2に、プロセス処理装置100の機能構成の例を示す。
図2に示すとおり、プロセス処理装置100は、処理部110、記録媒体120、入出力インタフェース130を有する。
【0028】
処理部110は、グループ管理部111と、プロセス移行順序計算部112を備え、これらにより、VNF(プロセス)の移行順序を計算する。入出力インタフェース130は、ネットワーク140からのデータの入力(例:SFCの情報の入力)を行うとともに、ネットワーク140へのデータの出力(例:VNFの移行順序の出力)を行う。
【0029】
記録媒体120には、例えば
図3に示すようなグループ管理テーブルと、SFC管理テーブルが格納されている。グループ管理テーブルは、関連する複数のVNFからなる各グループを管理するテーブルである。
図3(a)には、例えば、グループ1が、a、bの2つのVNFから構成されていることが示されている。
【0030】
SFC管理テーブルは、SFCの構成情報を管理する。
図3(b)には、例えば、ID=1のSFCが、a、bの2つのVNFから構成され、更に、当該SFCにおいて、パケットが、aからbへの処理順序で処理されることが示されている。つまり、aとbとの間に通信関係があることが示されている。
【0031】
処理部110におけるグループ管理部111が、上記2つのテーブルを管理する。具体的には、グループ管理部111は、SFC管理テーブルにおけるSFCの追加/削除、SFC管理テーブルに基づくグループ管理テーブルの作成/更新等を実行する。更に、グループ管理部111は、プロセス移行順序計算部112からの依頼に基づき、プロセス移行順序計算に使用するグループ(後述する移行用グループ)の計算を実行する。
【0032】
処理部110におけるプロセス移行順序計算部112は、VNFの移行順序を決定する。また、プロセス移行順序計算部112は、移行順序計算時に、グループ管理部111に依頼して計算に使用するグループを要求し、取得する。
【0033】
管理するSFCの情報は入出力インタフェース130を介して外部装置から入力される。また、プロセス移行順序計算部112が計算したVNFの移行順序は入出力インタフェース130を介して外部装置に通知される。
【0034】
(ハードウェア構成例)
上述したプロセス処理装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。
【0035】
すなわち、プロセス処理装置100は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、プロセス処理装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0036】
図4は、本実施の形態における上記コンピュータのハードウェア構成例を示す図である。
図4のコンピュータは、それぞれバスBで相互に接続されているドライブ装置150、補助記憶装置152、メモリ装置153、CPU154、インターフェース装置155、表示装置156、及び入力装置157等を有する。
【0037】
当該コンピュータでの処理を実現するプログラムは、例えば、CD−ROM又はメモリカード等の記録媒体151によって提供される。プログラムを記憶した記録媒体151がドライブ装置150にセットされると、プログラムが記録媒体151からドライブ装置150を介して補助記憶装置152にインストールされる。但し、プログラムのインストールは必ずしも記録媒体151より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置152は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0038】
メモリ装置153は、プログラムの起動指示があった場合に、補助記憶装置152からプログラムを読み出して格納する。CPU154は、メモリ装置153に格納されたプログラムに従って、プロセス処理装置100に係る機能を実現する。インタフェース装置155は、ネットワークに接続するためのインタフェースとして用いられる。表示装置156はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置157はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【0039】
(移行順序の計算について)
ある移行元サーバに存在する移行対象のVNFの情報と、移行先サーバの情報がプロセス処理装置100に与えられると、プロセス移行順序計算部112は、まず、グループ管理部111に、移行順序計算に使用するグループの計算を依頼し、当該グループの情報を取得する。そして、プロセス移行順序計算部112は、当該グループを用いてVNFの移行順序を決定する。
【0040】
以下、本実施の形態において、移行順序計算に使用するグループと、グループ管理テーブルに記載されるグループとの区別を分かり易くするために、移行順序計算に使用するグループを"移行用グループ"と称する。グループ管理テーブルに記載されるグループについては、そのまま"グループ"を用いる。
【0041】
グループ管理部111が実行する移行用グループの計算例を
図5を参照して説明する。
図5に示すように、グループ管理テーブルに、グループ1に属するVNFとしてaとbが記載され、グループ2に属するVNFとしてc、d、eが記載されている。
【0042】
ここでは、a、b、c、d、eの5つのVNFを移行対象とする移行要求を受けた場合を考える。
【0043】
まず、グループ管理部111は、グループ管理テーブルに記載されたそれぞれのグループにおいて、そのべき集合(グループに属するVNFを集合の要素と見立てたときのすべての部分集合)を計算する。べき集合に属する各部分集合が移行用グループである。具体的には、グループ1については、{a}、{b}、{a,b}の3つの移行用グループが計算される。グループ2については、{c}、{d}、{e}、{c,d}、{d,e}、{c,e}、{c,d,e}の7つの移行用グループが計算される。
【0044】
図5に示すように、従来方式で仮に5つのVNFを移行対象とする場合、2の5乗である32通りの移行用グループを計算しなければならなかったところ、本実施の形態に係る技術では、10通りの計算ですむ。移行対象のVNF数が増加するほど、この差は顕著になる。移行用グループの数が削減されることで、移行順序決定の際に考慮すべき移行用グループの数が削減される。従って、本実施の形態に係る技術では、従来方式に比べて移行順序の決定のための計算量を大幅に削減できるので、迅速にVNFの移行順序を計算することができる。
【0045】
続いて、プロセス移行順序計算部112は、VNFの移行順序の計算を行う。プロセス移行順序計算部112は、選択された同一の移行用グループに属するVNFについては、まとめて扱う。つまり、同一の移行用グループに属するVNFについては、同時に移行が行われる。ここでいう「同時」とは、例えば、同一の移行用グループに属するVNFの移行完了タイミングが同一になるということである。
【0046】
プロセス移行順序計算部112は、例えば、非特許文献1に記載のように、VNFの更新データの発生レートが、移行元サーバと移行先サーバとの間の回線の帯域を上回らず、サーバ間トラヒックの発生量が最小になるように、移行用グループを選択する。ただし、これは例であり、これ以外の方法で移行用グループを選択してもよい。
【0047】
選択が完了すると、プロセス移行順序計算部112は、同じグループに属する移行用グループが連続したタイミングで移行を完了するように、選択された複数の移行用グループにおける移行順序を決定する。これは、同じグループに属するVNFはできるだけ、移行完了が同じタイミングになることが望ましいためである。
【0048】
図5に示す例において、一例として、プロセス移行順序計算部112が、グループ1から、移行に使用する移行用グループとして2つの移行用グループ{a}、{b}を選択し、グループ2から2つの移行用グループ{c,d}、{e}を選択したとする。この場合、グループ1に属する移行用グループ{a}、{b}が連続して移行を完了するよう、{a}、{b}は連続した順序として決定される。同様に、グループ2に属する移行用グループ{c,d}、{e}が連続して移行を完了するよう、{c,d}と{e}は連続した順序として決定される。
【0049】
{c,d}と{e}のうち(及び{a}と{b}のうち)、どちらを先にするかについては、特に限定はないが、例えば、更新データの発生レートの大きい方(あるいは小さいほう)を先にする。また、VNFが提供するアプリケーションの特性等により、より迅速な処理を要するアプリケーションが含まれるグループを先にすることとしてもよい。また、グループ間(ここではグループ1とグループ2)での順序に関しても同様である。
【0050】
図6は、移行順序が、{c,d}、{e}、{a}、{b}として決定された場合における移行の手順を示す。
図6に示すように、S101でc,dの移行を行い、S102でeの移行を行い、S103でaの移行を行い、S104でbの移行を行う。
【0051】
なお、移行対象のVNF数に比べて、帯域が大きい場合には、複数グループの移行用グループをまとめて移行するような順序が決定されてもよい。例えば、{c,d}、{e}、{a}、{b}を同時に移行するような順序が決定されてもよい。
【0052】
(グループ管理テーブルの管理について)
次に、グループ管理部111が実行するグループ管理テーブルの管理の例として、SFCが追加あるいは削除される場合におけるグループ管理テーブルの更新処理を説明する。
【0053】
<SFCが追加される場合>
最初に、SFCが追加される場合におけるグループ管理テーブルの更新処理について、
図7を参照して説明する。
【0054】
S201において、外部装置からの情報等に基づいて、グループ管理部111は、SFC管理テーブルに新規追加SFCの情報を追加する。ここでは、
図7に示すように、ID=4のSFCとして、a−>e−>fが追加される。
【0055】
S202において、グループ管理部111は、新規追加SFCに含まれるVNFが、少なくとも1つ含まれるグループをグループ管理テーブルから検索する。
図7に示す例において、グループ管理部111は、新規追加SFCに含まれるVNFであるa、e、fのうち、aがグループ1に含まれ、eがグループ2に含まれることを検知する。
【0056】
S203では、グループ管理部111は、新規追加SFCに含まれるVNFが含まれるグループが複数存在する場合において、当該複数のグループを1つのグループに統合する。複数のグループを1つのグループに統合するとは、複数のグループに含まれる全てのVNFを1つのグループにすることである。
図7の例では、グループ1のa、bとグループ2のc、d、eを統合し、新規追加SFCに含まれるVNFを含むように、1つのグループ(a、b、c、d、e、f)とする。
【0057】
この1つのグループに含まれる各SFCの処理順序(S201に記載のSFC管理テーブル参照)に基づき、a、b、c、d、e、fの通信関係を図示すると
図8に示すとおりになる。
【0058】
図示するように、上述した手順で作成される1つのグループに含まれる複数のVNFにおける各組のVNFは、同一処理フロー上にある(例:aとfの組、cとeの組等)、ある1つのVNFが2つの処理フローを処理している(例:bとfの組。aは、bの処理フローとfの処理フローを処理している)等、の関係にある。
【0059】
これらの関係を含む複数のVNFは関連しており、当該複数のVNFは、できるだけ同時に移行を行うことが望ましい。そのため、このようなグループ化を行っている。
【0060】
<SFCが削除される場合>
次に、SFCが削除される場合におけるグループ管理テーブルの更新処理について、
図9を参照して説明する。
【0061】
S301において、外部装置からの情報等に基づいて、グループ管理部111は、SFC管理テーブルから削除対象SFCの情報を削除する。ここでは、
図9に示すように、ID=4のSFCであるa−>e−>fが削除される。
【0062】
S302において、グループ管理部111は、削除対象SFCに含まれる全てのVNFが含まれるグループをグループ管理テーブルから検索する。
図9に示す例において、グループ管理部111は、削除対象SFCに含まれるVNFであるa、e、fがグループ1に含まれることを検知する。当該グループは、S303におけるグループ分割の対象になる。
【0063】
S303では、グループ管理部111は、SFC管理テーブルをもとにVNF間の通信関係を調べる。
図10は、SFC削除前のSFC管理テーブルに基づく通信関係において、削除対象SFCを点線で囲んだものである。
図10に示すように、削除対象SFCを削除した場合、{a,b}と{c,d,e}との間に通信関係がないことがわかる。S303では、グループ管理部111は、このような通信関係の有無を調べる。
【0064】
そして、グループ管理部111は、{a,b}と{c,d,e}とを別グループとして管理する。ここでは、
図9に示すように、{a,b}をグループ1とし、{c,d,e}をグループ2とする。
【0065】
(実施の形態のまとめ)
以上、説明したように、本実施の形態により、プロセスを稼働させる移行元サーバと、プロセスの移行先である移行先サーバとを有するシステムにおけるプロセスの移行順序を決定するプロセス処理装置であって、プロセス間の通信関係に基づいて決定されたプロセスのグループの情報を格納するグループ管理テーブルと、前記グループ管理テーブルにおけるグループに基づいて、移行用グループを決定し、同じグループに属する複数の移行用グループが連続したタイミングで移行を完了するように、前記移行元サーバから前記移行先サーバへのプロセスの移行順序を決定する決定手段とを備えることを特徴とするプロセス処理装置が提供される。
【0066】
前記決定手段は、例えば、前記グループ管理テーブルにおける、移行対象のプロセスを含むグループ毎に、グループに含まれるプロセスのべき集合を計算し、当該べき集合の要素から前記移行用グループを決定する。
【0067】
上記プロセス処理装置は、通信関係を有する複数プロセスの追加又は削除に基づいて、前記グループ管理テーブルを更新する更新手段を更に備えることとしてもよい。
【0068】
通信関係を有する複数プロセスの追加時において、前記更新手段は、例えば、当該複数プロセスにおける少なくとも1つのプロセスを含む各グループを1つのグループに統合する。
【0069】
通信関係を有する複数プロセスの削除時において、前記更新手段は、例えば、当該複数プロセスを含むグループを、当該グループ内のプロセス間の通信関係に基づいて、通信関係を有しない複数のグループに分割する。
【0070】
また、本実施の形態によれば、前記プロセス処理装置と、前記移行元サーバ、及び前記移行先サーバとを備えるプロセス処理システムが提供される。
【0071】
また、本実施の形態によれば、プロセスを稼働させる移行元サーバと、プロセスの移行先である移行先サーバとを有するシステムにおけるプロセスの移行順序を決定するプロセス処理装置が実行するプロセス移行順序決定方法であって、前記プロセス処理装置は、プロセス間の通信関係に基づいて決定されたプロセスのグループの情報を格納するグループ管理テーブルを有し、前記グループ管理テーブルにおけるグループに基づいて、移行用グループを決定し、同じグループに属する複数の移行用グループが連続したタイミングで移行を完了するように、前記移行元サーバから前記移行先サーバへのプロセスの移行順序を決定する決定ステップを備えることを特徴とするプロセス移行順序決定方法が提供される。
【0072】
また、本実施の形態によれば、コンピュータを、前記プロセス処理装置における各手段として機能させるためのプログラムが提供される。
【0073】
なお、本実施の形態で説明したグループ管理部111及びプロセス移行順序計算部112は、決定手段の例である。また、グループ管理部111は、更新手段の例である。
【0074】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。