以下、図面と共に本発明に係る機能部割当装置及び機能部割当方法の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
[第1実施形態]
図1に本実施形態に係る機能部割当装置である制御装置10、及び当該制御装置10を含むネットワークシステム1の構成を示す。ネットワークシステム1は、図示しない移動通信端末に移動体通信の機能を提供するシステムである。図1に示すように、ネットワークシステム1は、制御装置10の他に、複数の中継装置20と、前後段装置群30と、操作端末40とを含んで構成されている。
ネットワークシステム1は、互いに異なる複数の仮想リンクを含んで構成される。移動通信端末は、ネットワークシステム1に含まれる複数の仮想リンクの何れかに接続することで移動体通信を行う。仮想リンクは、複数の中継装置20上で実現される仮想ルータ50を含んで実現される(構成される)。複数の中継装置20は、それぞれが仮想ルータ50を実現できる(実行可能な)サーバ装置等の物理装置により構成されている。物理装置のハードウェアは、従来と同様のものでよい。仮想ルータ50は、移動通信端末に移動体通信の機能を提供するためのネットワーク機能の一部であるネットワークシステム1におけるGWを構成する。仮想ルータ50は、仮想化技術によって中継装置20上で動作する仮想マシンである。例えば、仮想ルータ50は、従来のネットワークシステムと同様に例えば、上述したNFVによって実現される。即ち、ネットワークシステム1は、複数の物理装置20を含むネットワークインフラ上に生成される仮想ネットワークにより構成される。仮想リンクは、当該仮想ネットワークの仮想マシン間を接続するものである。
各仮想リンクの仮想ルータ50は、複数の中継装置20のうち、何れかの中継装置で実現(動作)していればよい。各仮想リンクの仮想ルータ50は、中継装置20の故障に対する耐性を高めるために冗長化される。この冗長化では、複数の仮想ルータ50が中継装置20で実現される。複数の仮想ルータ50のうち稼働系(ACT)の仮想ルータ50であるGW ACT50aと残りの待機系(SBY)の仮想ルータ50であるGW SBY50bとのそれぞれが、中継装置20に割り当てられて実現される。GW ACT50a及びGW SBY50bは、仮想リンクに1つ以上設けられる。GW ACT50a及びGW SBY50bは、それぞれ仮想リンクに複数設けられてもよい。GW ACT50a及びGW SBY50bの数は、予め仮想リンク毎に設定されている。それぞれの中継装置20は、複数の仮想ルータ50を実現(実行)することができる。中継装置20での障害等を考慮し、同一の仮想リンクの複数の仮想ルータ50は、同一の中継装置20で実現しない。即ち、同一の仮想リンクを構成する複数の仮想ルータ50は、互いに異なる中継装置20で実現される。
各仮想ルータ50には、仮想ルータ50の稼働の優先度である稼働優先度が設定されている。稼働優先度が1の仮想ルータ50は、GW ACT50aである。稼働優先度が2以降の仮想ルータ50は、GW SBY50bである。稼働優先度が1の仮想ルータ50が実現されている中継装置20に故障が発生した場合等、稼働優先度が1の仮想ルータ50が動作しない状態となった場合、系切り替えが生じ、GW SBY50bが、稼働優先度の値が小さい順にGW ACT50aとなる。GW SBY50bの稼働優先度は、例えば、2,3,4…というように一つずつ数値が大きくなるように設定される。上記のように稼働優先度は、その値が小さいほど、稼働優先度が高いことを示している。
仮想ルータ50は、中継装置20が備えるリソース、例えば、通信リソースを使用してGWとしての機能部を実現する。後述するように、仮想ルータ50によって使用される中継装置20が備えるリソースの量は、例えば、帯域(bps)によって表される。仮想リンクを構成する仮想ルータ50の数、及び当該仮想ルータ50によって利用される帯域は、仮想リンク毎に異なっていてもよい。
前後段装置群30は、ネットワークシステム1におけるGW以外のネットワーク機能を実現する装置群である。前後段装置群30は、各中継装置20に接続されており、中継装置20と共に動作することでネットワークシステム1のネットワーク機能が実現される。なお、中継装置20及び前後段装置群30は、従来のネットワークシステムに含まれる装置と同様の構成である。
制御装置10は、各中継装置20に接続されている。制御装置10は、中継装置20に仮想ルータ50を割り当て、割り当てた仮想ルータ50を中継装置20に配備(配置)する制御を行う装置である。制御装置10は、仮想リンク単位で仮想ルータ50の中継装置20への割当を行う。制御装置10による仮想ルータ50の中継装置20への割当によって、新規の仮想リンクが生成される。操作端末40は、制御装置10に接続されている。操作端末40は、ネットワークシステム1を提供する事業者等によって用いられ、制御装置10に対して制御の指示を行う装置である。
引き続いて、制御装置10の本実施形態に係る機能を説明する。図1に示すように制御装置10は、GW配備表11と、GW属性表12と、機能部割当部13と、割当候補決定部14と、機能部配備部15とを備えて構成される。
GW配備表11は、中継装置20と、当該中継装置20に割当済である稼働優先度がそれぞれ設定された仮想ルータ50(GW ACT50a並びにGW SBY50b)との対応を記憶する記憶手段の一つである。図2に、GW配備表11を示す。図2に示すように、GW配備表11は、仮想ルータ識別子、配備GW稼働優先度、所属仮想リンク識別子及び配備先中継装置識別子を対応付けて記憶している。仮想ルータ識別子は、仮想ルータ50を特定する情報である。仮想ルータ識別子は、例えば、仮想ルータ50が所属する仮想リンク(仮想ルータ50が構成する仮想リンク)と仮想ルータ50が配備される中継装置20とに基づいて定められる。具体的には、仮想ルータ識別子は、「仮想ルータX.Y」であり、Xは、仮想ルータ50が所属する仮想リンクを特定する番号であり、Yは、仮想ルータ50が配備される中継装置20を特定する番号である。例えば、仮想ルータ識別子が「仮想ルータ1.2」の仮想ルータ50は、仮想リンク識別子が「仮想リンク1」の仮想リンクに所属し、中継装置識別子が「中継装置2」の中継装置20に配備されたものである。
配備GW稼働優先度は、配備済の仮想ルータ50の稼働優先度を示す数値である。所属仮想リンク識別子は、仮想ルータ50が所属する仮想リンクを特定する情報である仮想リンク識別子である。例えば、仮想リンク識別子は、「仮想リンク1」である。配備先中継装置識別子は、仮想ルータ50が配備される中継装置を特定する情報である中継装置識別子である。例えば、中継装置識別子は、「中継装置1」である。また、GW配備表11は、稼働優先度が設定されていない仮想ルータ50の情報が記憶されていてもよい。図2に示す配備GW稼働優先度が「未割当」となっている情報である。
GW属性表12は、配備される仮想ルータ50に関する情報を仮想リンク毎に記憶する記憶手段の一つである。図3に、GW属性表12を示す。図3に示すようにGW属性表12は、仮想リンク識別子、冗長度、ACT数及び帯域を対応付けて記憶している。冗長度は、仮想リンクに所属する仮想ルータ50の数を示す。ACT数は、仮想リンクに所属する仮想ルータ50のうち、GW ACT50aとなる数を示す。例えば、冗長度7、ACT数3の仮想リンクでは、配備される仮想ルータ50の稼働優先度は、{1,1,1,2,3,4,5}となる。帯域は、仮想ルータ50によって利用される帯域である。即ち、GW属性表12は、仮想ルータ50に対応付けて当該仮想ルータ50によって利用されるリソースの量を記憶する。なお、上述した従来のGWを冗長化するプロトコルでは、ACT数が一定以下の制限(例えば、1以下や4以下)を持つ。そのため、従来のネットワークシステムでは、GWが配備される中継装置20間で負荷の偏りが生じえる。
機能部割当部13は、割当対象の仮想リンクの仮想ルータ50を割り当てる中継装置20を決定する機能部割当手段の一機能である。具体的には、機能部割当部13は、以下の機能を有する。
機能部割当部13は、新規の仮想リンクの生成を要求するGW配備要求を操作端末40から受信する。GW配備要求は、新規に生成される仮想リンクの仮想リンク識別子、GWの冗長度及びACT数を含む。また、GW配備要求は、帯域を示す情報を含んでいてもよい。操作端末40から制御装置10へのGW配備要求は、例えば、ネットワークシステム1における中継機能を強化するために、ネットワークシステム1を提供する事業者等による操作端末40に対する操作によって行われる。機能部割当部13は、受信したGW配備要求に含まれる各情報を新規の仮想リンクのエントリとしてGW属性表12に追加する。機能部割当部13は、以降の処理を追加したGW属性表12のエントリに基づいて行う。
機能部割当部13は、以下のように新規の仮想リンクの稼働優先度1の仮想ルータ50(GW ACT50a)を割り当てる中継装置20を決定する。機能部割当部13は、GW配備表11を参照して(GW配備表11から中継装置20と仮想ルータ50との対応を読み込んで)、各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンク(割当対象である新規の仮想リンクとは異なる仮想リンク)のGW ACT50aを特定する。具体的には、機能部割当部13は、新規の仮想リンク以外の仮想リンクのGW ACT50aの数を特定する。即ち、機能部割当部13は、各中継装置20について、配備GW稼働優先度が1の出現回数を算出する。機能部割当部13は、算出した出現回数が最も少ない中継装置20を選択して、新規の仮想リンクの稼働優先度1の仮想ルータ50を割り当てる中継装置20(新規の仮想リンクの稼働優先度1のGWの配備先)に決定する。
もし、出現回数が最も少ない中継装置20が複数ある場合には、その中から任意の中継装置20を選択して新規の仮想リンクの稼働優先度1の仮想ルータ50を割り当てる中継装置20に決定する。あるいは、それらの中継装置20のうち、配備GW稼働優先度が2の出現回数が最も少ない中継装置20を選択してもよい。候補となる中継装置20が更に複数ある場合には、それ以降の配備GW稼働優先度毎の出現回数が最も少ない中継装置20を選択してもよい。機能部割当部13は、稼働優先度1の仮想ルータ50を割り当てる中継装置20を決定すると、当該仮想ルータ50についての仮想ルータ識別子を新規に作成して、GW配備表11に当該仮想ルータ50のエントリを追加する。
新規の仮想リンクのACT数が2以上である場合には、機能部割当部13は、算出した出現回数が次に少ない中継装置20を、新規の仮想リンクの稼働優先度1の仮想ルータ50を割り当てる中継装置20に決定し、GW配備表11にエントリを追加する。即ち、当該新規の仮想リンクの仮想ルータ50を割当済の中継装置20を除いた中継装置20の中から、仮想ルータ50を割り当てる中継装置20を決定する。機能部割当部13は、稼働優先度1の仮想ルータ50の割当を、新規の仮想リンクのACT数(稼働優先度1の数)だけ繰り返す。
稼働優先度1の仮想ルータ50の割当が完了すると、機能部割当部13は、稼働優先度2以降(2以下)の仮想ルータ50の割当のために、GW配備表11の複製を作成する。GW配備表11の複製を作成するのは、割当処理において、後述するようにGW配備表11に記憶されているエントリの削除及び変更を行うため、割当済のエントリの情報に影響を及ぼさないようにするためである。以降では、仮想ルータ50を割り当てる中継装置20を決定する演算には複製を用い、割当に係るエントリを複製でないGW配備表11に追加する。
割当候補決定部14は、GW配備表11によって記憶されたエントリから、割当対象である新規の仮想リンクの仮想ルータ50が割り当てられた中継装置20を除き、残った他の各中継装置20を仮想ルータ50の割当候補とする機能部割当手段の一機能である。具体的には、割当候補決定部14は、機能部割当部13によって生成されたGW配備表11の複製から中継装置20と仮想ルータ50との対応を読み込んで、当該複製から、新規の仮想リンクの仮想ルータ50が割り当てられた中継装置20のエントリを全て削除する。例えば、新規の仮想リンクの仮想ルータ50が、「中継装置2」の中継装置20に割り当てられた場合、配備先中継装置識別子が「中継装置2」となっている全てのエントリを複製から削除する。
機能部割当部13によって、稼働優先度1の仮想ルータ50の割当がされた場合、割当候補決定部14は、稼働優先度1の仮想ルータ50が割り当てられた中継装置20のエントリを複製から全て削除する。また、後述するように稼働優先度2以降の仮想ルータ50の割当がされた場合、当該割当がなされる度に割当候補決定部14は、当該稼働優先度の仮想ルータ50が割り当てられた中継装置20のエントリを複製から全て削除する。割当候補決定部14に削除された複製に含まれるエントリの中継装置20が、仮想ルータ50の割当候補となる。
機能部割当部13は、以下のように新規の仮想リンクの稼働優先度2以降の仮想ルータ50(GW SBY50b)を割り当てる中継装置20を決定する。機能部割当部13は、割当候補決定部14によって割当候補とされた各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンクのGW ACT50aに基づいて、新規の仮想リンクのGW SBY50bを割り当てる中継装置20を決定する。機能部割当部13は、割当候補決定部14によって割当候補とされた各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンクの稼働優先度毎のGW SBY50bにも基づいて、新規の仮想リンクのGW SBY50bを割り当てる中継装置20を決定する。
機能部割当部13は、割当候補決定部14によって割当候補とされた各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンクの仮想ルータ50の稼働優先度を、物理装置20が割当候補決定部14によって除かれたことに応じて繰り上げ、当該繰り上げによってGW ACT50aとされた仮想ルータ50を含む、当該新規の仮想リンク以外の仮想リンクのGW ACT50aの数を特定し、特定されたGW ACT50aの数に基づいて、新規の仮想リンクのGW SBY50bを割り当てる中継装置20を決定する。
具体的には、割当候補決定部14によってGW配備表11の複製からエントリの削除が行われると、機能部割当部13は、エントリが削除されたGW配備表11の複製において、割当対象である新規の仮想リンク以外の仮想リンクの仮想ルータ50の配備GW稼働優先度を仮想リンク毎に繰り上げる。割当候補決定部14によってGW配備表11の複製からエントリの削除が行われると、割当対象である新規の仮想リンク以外の仮想リンクにおいて配備GW稼働優先度の欠番が生じる。例えば、図4(a)に示すように「中継装置2」のエントリが削除されると、「仮想リンク1」の仮想リンクの配備GW稼働優先度2が欠番となる。機能部割当部13は、仮想リンク毎に欠番となった配備GW稼働優先度を埋めるようにそれ以降の配備GW稼働優先度を繰り上げる。例えば、図4(b)に示すように配備GW稼働優先度2が欠番となったら、機能部割当部13は、3以降の配備GW稼働優先度をそれぞれ一つずつ繰り上げる。なお、配備GW稼働優先度2が繰り上がった場合、配備GW稼働優先度1となる。即ち、当該エントリは、繰り上げによってGW ACT50aのエントリとみなされる。上記の繰り上げは、エントリが削除された中継装置20に故障が発生した場合等の系切り替えに相当する。
機能部割当部13は、配備GW稼働優先度の繰り上げを行ったGW配備表11の複製を参照して(GW配備表11の複製から中継装置20と仮想ルータ50との対応を読み込んで)、各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンクのGW ACT50aを特定する。具体的には、機能部割当部13は、新規の仮想リンク以外の仮想リンクのGW ACT50aの数を特定する。即ち、機能部割当部13は、各中継装置20について、配備GW稼働優先度が1の出現回数を算出する。機能部割当部13は、算出した出現回数が最も少ない中継装置20を選択して、新規の仮想リンクの未割当の稼働優先度のうち最も高い稼働優先度の仮想ルータ50を割り当てる中継装置20(新規の仮想リンクの当該稼働優先度のGWの配備先)に決定する。
もし、出現回数が最も少ない中継装置20が複数ある場合には、その中から任意の中継装置20を選択して新規の仮想リンクの当該稼働優先度の仮想ルータ50を割り当てる中継装置20に決定する。あるいは、それらの中継装置20のうち、配備GW稼働優先度が2の出現回数が最も少ない中継装置20を選択してもよい。それで更に候補となる中継装置20が複数ある場合には、それ以降の配備GW稼働優先度毎の出現回数が最も少ない中継装置20を選択してもよい。機能部割当部13は、当該稼働優先度の仮想ルータ50を割り当てる中継装置20を決定すると、当該仮想ルータ50についての仮想ルータ識別子を新規に作成して、GW配備表11に当該仮想ルータ50のエントリを追加する。
機能部割当部13によって2以降の何れかの稼働優先度の仮想ルータ50の中継装置20への割当が行われると、続いて、割当候補決定部14は、仮想ルータ50が割り当てられた中継装置20のエントリをGW配備表11の複製から全て削除する。機能部割当部13は、エントリの削除が行われたGW配備表11の複製を用いて、上記と同様に次の稼働優先度の仮想ルータ50を割り当てる中継装置20を決定する。機能部割当部13及び割当候補決定部14は、新規の仮想リンクの全ての稼働優先度(冗長度分の)の仮想ルータ50の割当が完了するまで上記を繰り返し実行する。この繰り返しは、稼働優先度の値が高い順に行われる。即ち、稼働優先度の値が、2、3、4…という順で仮想ルータ50の割当が行われる。機能部割当部13は、新規の仮想リンクの全ての稼働優先度の仮想ルータ50の割当を完了すると、その旨を機能配備部15に通知する。
機能部割当部13及び割当候補決定部14の上記の機能は、新たな仮想リンクを生成するためのものであったが、中継装置20に配備済の仮想ルータ50の再配備に用いられてもよい。仮想ルータ50の再配備は、例えば、後述するように中継装置20の故障が発生して系切り替えが生じた際に、更に系切り替えが発生した場合でも、稼働優先度1の仮想ルータ50が特定の中継装置20に集中することを防止するためのものである。即ち、機能部割当部13及び割当候補決定部14は、何れかの仮想リンクの稼働優先度が2以降の仮想ルータ50が、稼働優先度1に切り替えられたことをトリガーとして、仮想リンクの仮想ルータ50を割り当てる物理装置を決定することとしてもよい。この構成によれば、適切なタイミングで仮想ルータ50の配備を行うことができる。この場合、機能部割当部13は、以下の機能を有する。
機能部割当部13は、中継装置20の故障等の中継装置20で実現されている仮想ルータ50が動作できなくなる状態を検知する。中継装置20の故障等の検知は、従来技術によって行うことができる。機能部割当部13は、中継装置20の故障等を検知すると、配備先中継装置識別子が当該中継装置20の中継装置識別子となっている全てのエントリをGW配備表11から削除する。機能部割当部13は、エントリが削除されたGW配備表11において削除によって欠番となった配備済の仮想ルータ50の配備GW稼働優先度を仮想リンク毎に繰り上げる。この配備GW稼働優先度の繰り上げは、上述した方法と同様に行われる。
機能部割当部13は、配備GW稼働優先度の繰り上げを行ったGW配備表11を用いて、仮想リンク毎に順番に仮想ルータ50の再配備を行う。仮想ルータ50の再配備では、機能部割当部13は、再配備対象の仮想リンクのエントリをGW配備表11から削除する。即ち、機能部割当部13は、所属仮想リンク識別子が、再配備対象の仮想リンクの仮想リンク識別子となっているエントリをGW配備表11から削除する。機能部割当部13は、上述した新たな仮想リンクを生成する場合と同様にエントリを削除した仮想リンクの仮想ルータ50を割り当てる中継装置20を決定する。機能部割当部13は、当該処理を、GW属性表12の再配備対象の仮想リンクのエントリに基づいて行う。機能部割当部13は、上記の仮想ルータ50の再配備を全ての仮想リンクについて行う。
機能部配備部15は、機能部割当部13によって、仮想ルータ50を割り当てる中継装置20として決定された中継装置20に当該仮想ルータ50を配備する機能部配備手段である。仮想ルータ50の配備は、中継装置20に制御信号を送信することで行われる。具体的には、機能部配備部15は、機能部割当部13によってGW配備表11に追加されたエントリ(新規の又は再配備された仮想リンクのエントリ)に従って、仮想ルータ50の配備先となった中継装置20のそれぞれに仮想ルータ50の新規作成要求を送信する。なお、仮想ルータ50の新規作成要求には、配備する仮想ルータ50の仮想ルータ識別子が含まれる。各中継装置20は、新規作成要求を受信して、当該新規作成要求に従って仮想ルータ50を作成(実行)する。機能部配備部15は、機能部割当部13によってGW配備表11に追加されたエントリに従って、中継装置20において新たに作成された仮想ルータ50にGW設定要求を送信する。GW設定要求には、稼働優先度が含まれる。各中継装置20の仮想ルータ50は、GW設定要求を受信して、当該GW設定要求に従って自身をGW ACT50a又はGW SBY50bとして動作させる。なお、上記の仮想ルータ50の生成等は、従来のネットワークシステムと同様に行われる。
中継装置20に配備済の仮想ルータ50の再配備が行われる場合には、機能部配備部15は、仮想ルータ50の新規作成要求を送信と合わせて(通常、新規作成要求の前に)、配備済の仮想ルータ50の配備先である中継装置20のそれぞれに仮想ルータ50の削除要求を送信する。各中継装置20は、削除要求を受信して、当該削除要求に従って仮想ルータ50を削除する。以上が、本実施形態に係る制御装置10の機能である。
図5に本実施形態に係る制御装置10のハードウェア構成を示す。図5に示すように制御装置10は、CPU(Central Processing Unit)101、主記憶装置であるRAM(RandomAccess Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述した制御装置10の機能が発揮される。以上が、制御装置10の構成である。
引き続いて、図6及び図7のフローチャートを用いて、本実施形態に係る制御装置10で実行される処理(制御装置10の動作方法)である機能部割当方法を説明する。まず、図6のフローチャートを用いて、新たな仮想リンクを生成する際の処理を説明し、その後、図7のフローチャートを用いて、配備済の仮想ルータ50の再配備の際の処理を説明する。
図6に示すように、本処理では、まず、機能部割当部13によって、操作端末40から送信されたGW配備要求が受信される(S01)。続いて、機能部割当部13によって、受信されたGW配備要求に含まれる各情報が新規の仮想リンクのエントリとしてGW属性表12に追加される(S02)。続いて、当該新規の仮想リンクの仮想ルータ50を割り当てる中継装置20を決定するGW配備表エントリ作成フロー(S03〜S09)が行われる。
GW配備表エントリ作成フローでは、まず、機能部割当部13によって、GW配備表11が参照されて(GW配備表11から中継装置20と仮想ルータ50との対応が読み込まれて)、各中継装置20について、配備GW稼働優先度が1の出現回数が算出される(S03)。続いて、以下のように新規の仮想リンクの稼働優先度1の仮想ルータ50(GW ACT50a)を割り当てる中継装置20を決定するループが実行される。具体的には、機能部割当部13によって、算出された出現回数が最も少ない中継装置20が選択されて、新規の仮想リンクの稼働優先度1の仮想ルータ50を割り当てる中継装置20(新規の仮想リンクの稼働優先度1のGWの配備先)に決定される(S04)。稼働優先度1の仮想ルータ50を割り当てる中継装置20が決定されると、機能部割当部13によって、当該仮想ルータ50についての仮想ルータ識別子が新規に作成されて、GW配備表11に当該仮想ルータ50のエントリが追加される。S04のループの処理は、新規の仮想リンクのACT数(稼働優先度1の数)だけ繰り返し行われる。なお、新規の仮想リンクの稼働優先度1の仮想ルータ50を割り当てる中継装置20として決定された中継装置20は、以降の繰り返しでの割当候補から除かれる。即ち、算出した出現回数が次に少ない中継装置20が、新規の仮想リンクの稼働優先度1の仮想ルータ50を割り当てる中継装置20に決定される。
新規の仮想リンクのACT数だけ、稼働優先度1の仮想ルータ50の割当が完了すると、機能部割当部13によって、GW配備表11の複製が作成される(S05)。続いて、以下のように新規の仮想リンクの稼働優先度2以降の仮想ルータ50(GW SBY50b)を割り当てる中継装置20を決定するループが実行される。当該ループは、稼働優先度が高い順、即ち、稼働優先度の値が小さい順に行われる。従って、最初のループでは、稼働優先度2の仮想ルータ50の割当が行われる。具体的には、割当候補決定部14によって、GW配備表11の複製が読み込まれて、当該複製から、新規の仮想リンクの仮想ルータ50が割り当てられた中継装置20のエントリが全て削除される(S06、第1ステップ、第2ステップ)。当該ループの1回目では、新規の仮想リンクの稼働優先度1の仮想ルータ50が割り当てられた中継装置20のエントリが全て削除され、当該ループの2回目以降では、その前のループで仮想ルータ50が割り当てられた中継装置20のエントリが全て削除される。
続いて、機能部割当部13によって、エントリが削除されたGW配備表11の複製において、新規の仮想リンク以外の仮想リンクの仮想ルータ50の配備GW稼働優先度が仮想リンク毎に繰り上げられる(S07、第2ステップ)。続いて、機能部割当部13によって、GW配備表11の複製が参照されて、各中継装置20について、上記の繰り上げによって稼働優先度が1となったものを含む、配備GW稼働優先度が1の出現回数が算出される(S08、第2ステップ)。続いて、機能部割当部13によって、算出された出現回数が最も少ない中継装置20が選択されて、新規の仮想リンクの当該稼働優先度の仮想ルータ50を割り当てる中継装置20(新規の仮想リンクの当該稼働優先度のGWの配備先)に決定される(S09、第2ステップ)。当該稼働優先度の仮想ルータ50を割り当てる中継装置20が決定されると、機能部割当部13によって、当該仮想ルータ50についての仮想ルータ識別子が新規に作成されて、GW配備表11に当該仮想ルータ50のエントリが追加される。S06〜S09のループの処理は、新規の仮想リンクの冗長数−ACT数(稼働優先度2以降の数)だけ繰り返し行われる。
新規の仮想リンクの全ての稼働優先度の仮想ルータ50の割当が完了すると、機能部割当部13によって、その旨が機能部配備部15に通知される。続いて、機能部割当部13によってGW配備表11に追加されたエントリに従って、機能部配備部15によって、仮想ルータ50の配備先となった中継装置20のそれぞれに仮想ルータ50の新規作成要求が送信される(S10)。各中継装置20では、新規作成要求が受信されて、当該新規作成要求に従って仮想ルータ50が作成される。続いて、機能部割当部13によってGW配備表11に追加されたエントリに従って、機能部配備部15によって、中継装置20において新たに作成された仮想ルータ50にGW設定要求が送信される(S11)。各中継装置20の仮想ルータ50では、GW設定要求が受信されて、当該GW設定要求に従って自身がGW ACT50a又はGW SBY50bとして動作する。以上が、新たな仮想リンクを生成する際の処理である。
続いて、図7のフローチャートを用いて、配備済の仮想ルータ50の再配備の際の処理を説明する。本処理では、まず、機能部割当部13によって、中継装置20の故障が検知される(S21)。続いて、機能部割当部13によって、配備先中継装置識別子が当該中継装置20の中継装置識別子となっている全てのエントリがGW配備表11から削除される(S22)。続いて、機能部割当部13によって、エントリが削除されたGW配備表11において削除によって欠番となった配備済の仮想ルータ50の配備GW稼働優先度が仮想リンク毎に繰り上げられる(S23)。
続いて、仮想リンクの仮想ルータ50の再配備ループが実施される。この再配備ループは、仮想リンク毎に全ての仮想リンクについて行われる。例えば、仮想リンク識別子の番号が小さい順に行われる。再配備ループでは、まず、機能部割当部13によって、再配備対象の仮想リンクのエントリがGW配備表11から削除される(S24)。続いて、図6のフローチャートで説明したGW配備表エントリ作成フロー(S03〜S09、第1ステップ、第2ステップ)が行われる。なお、図6のフローチャートにおける新規の仮想リンクが、ここでは再配備対象の仮想リンクである。
再配備対象の仮想リンクの全ての稼働優先度の仮想ルータ50の割当が完了すると、機能部割当部13によって、その旨が機能部配備部15に通知される。続いて、機能部配備部15によって、配備済の(再配備前の)仮想ルータ50の配備先である中継装置20のそれぞれに仮想ルータ50の削除要求を送信する(S26)。各中継装置20では、削除要求が受信されて、当該削除要求に従って仮想ルータ50が削除される。続いて、機能部割当部13によってGW配備表11に追加されたエントリに従って、機能部配備部15によって、仮想ルータ50の再配備先となった中継装置20のそれぞれに仮想ルータ50の新規作成要求が送信される(S26)。各中継装置20では、新規作成要求が受信されて、当該新規作成要求に従って仮想ルータ50が作成される。続いて、機能部割当部13によってGW配備表11に追加されたエントリに従って、機能部配備部15によって、中継装置20において新たに作成された仮想ルータ50にGW設定要求が送信される(S26)。各中継装置20の仮想ルータ50では、GW設定要求が受信されて、当該GW設定要求に従って自身がGW ACT50a又はGW SBY50bとして動作する。以上が、配備済の仮想ルータ50の再配備の際の処理である。
上述したように本実施形態では、割当対象となる仮想リンクの仮想ルータ50が配備された中継装置20が除かれ、残った各中継装置20に割り当てられた割当対象となる仮想リンク以外の仮想リンクの仮想ルータ50の稼働優先度が考慮されて、稼働優先度2以降の仮想ルータ50を割り当てる中継装置20が決定される。従って、本実施形態によれば、系切り替えが発生した場合でも、稼働優先度1の仮想ルータ50、即ち、GW ACT50aが特定の中継装置20に集中することを防止するように複数の中継装置20上に稼働優先度2以降の仮想ルータ50を配備することができる。これにより、系切り替えが発生した場合でも、特定の中継装置に負荷が偏ることを防止することができる。特に本実施形態のように、配備GW稼働優先度の繰り上げを行うことで、確実に上記の配置を行うことができる。
また、本実施形態のように、各中継装置20での稼働優先度1のエントリの数に基づいて、仮想ルータ50を割り当てる中継装置20を決定することとしてもよい。この構成によれば、系切り替えが発生した場合の各中継装置20での稼働優先度1の仮想ルータ50の数に基づいて、適切に仮想ルータ50を配備することができる。また、本実施形態のように、稼働優先度1の仮想ルータ50を割り当てる中継装置20を決定することとしてもよい。この構成によれば、稼働優先度2以降の仮想ルータ50のみならず、稼働優先度1の仮想ルータ50も偏りなく、適切に配備することができる。即ち、仮想ルータ50が配置される中継装置20間に負荷の偏りが生じることを防止することができる。
このように本実施形態によれば、従来の冗長化プロトコルをそのまま利用することができ、かつ、従来技術の冗長化プロトコルの制約による負荷の偏りを減らして資源利用効率を高めることができる。
[第2実施形態]
上述した第1実施形態では、配備GW稼働優先度の繰り上げを行って、仮想ルータ50の中継装置20への割当を行うものであったが、本実施形態では、配備GW稼働優先度の繰り上げは行わずに仮想ルータ50の中継装置20への割当を行う。本実施形態は、以下に説明する点以外は、第1実施形態と同様の構成である。本実施形態では、仮想ルータ50の中継装置20への割当の機能として、以下の機能を有する。
機能部割当部13は、以下のように新規の仮想リンクの仮想ルータ50(GW ACT50a及びGW SBY50b)を割り当てる中継装置20を決定する。機能部割当部13は、割当候補決定部14によって割当候補とされた各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンクの仮想ルータ50を稼働優先度毎に特定し、特定された稼働優先度毎かつ稼働優先度が高い順の機能部に基づいて、割当対象となる中継装置20を限定して、仮想リンクの仮想ルータ50を割り当てる中継装置20を決定する。
機能部割当部13は、配備GW稼働優先度毎の仮想ルータ50の数、又は当該仮想ルータ50によって利用される帯域に基づいて、仮想ルータ50を割り当てる中継装置20を決定する。仮想ルータ50の数を用いるか、仮想ルータ50によって利用される帯域を用いるかは、予め、ネットワークシステム1を提供する事業者等によって設定されており、機能部割当部13に記憶されている。
具体的には、仮想ルータ50の数を用いる場合、機能部割当部13は、GW配備表11を参照して、各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンクの配備GW稼働優先度毎の仮想ルータ50の数を特定する。即ち、機能部割当部13は、各中継装置20について、配備GW稼働優先度毎の出現回数を算出する。
仮想ルータ50によって利用される帯域を用いる場合、機能部割当部13は、GW配備表11及びGW属性表12を参照して、各中継装置20に割り当てられている、割当対象である新規の仮想リンク以外の仮想リンクの配備GW稼働優先度毎の仮想ルータ50によって利用される帯域の積算値を算出する。帯域の積算値は、当該中継装置20における、当該配備GW稼働優先度の全ての仮想ルータ50の帯域を積算したものである。
機能部割当部13は、稼働優先度の仮想ルータ50を割り当てる中継装置20を決定する前にGW配備表11の複製を作成する。GW配備表11の複製は、割当対象となる仮想ルータ50の数だけ、即ち、冗長度の数だけ行われる。機能部割当部13が、GW配備表11の複製を作成すると、割当候補決定部14は、それまで割当が行われた全ての稼働優先度の仮想ルータ50が割り当てられた中継装置20のエントリをGW配備表11の複製から全て削除する。割当候補決定部14に削除された複製に含まれるエントリの中継装置20が、仮想ルータ50の割当候補となる。
機能部割当部13は、以下のように割当候補決定部14によって割当候補とされた中継装置20を更に絞り込む(限定する)。配備GW稼働優先度毎の仮想ルータ50の数に基づいて、仮想ルータ50を割り当てる中継装置20を決定する場合、機能部割当部13は、配備GW稼働優先度が高い順に、即ち、配備GW稼働優先度1から順に当該配備GW稼働優先度の出現回数が最低値より大きい中継装置20のエントリをGW配備表11の複製から削除する。より具体的には、まず、機能部割当部13は、各中継装置20の配備GW稼働優先度1の出現回数のうちの最低値を特定する。機能部割当部13は、出願回数が最小値より大きい中継装置20のエントリをGW配備表11の複製から削除する。続いて、機能部割当部13は、削除されたエントリに係る中継装置20を除いた中継装置20、即ち、残った各中継装置20の配備GW稼働優先度2の出現回数のうちの最低値を特定する。機能部割当部13は、出願回数が最小値より大きい中継装置20のエントリをGW配備表11の複製から削除する。続いて、配備GW稼働優先度の値を順に大きくして、エントリの削除を繰り返し行う。
仮想ルータ50によって利用される帯域に基づいて、仮想ルータ50を割り当てる中継装置20を決定する場合、機能部割当部13は、配備GW稼働優先度が高い順に、即ち、配備GW稼働優先度1から順に帯域の積算値が最低値より大きい中継装置20のエントリをGW配備表11の複製から削除する。より具体的には、まず、機能部割当部13は、各中継装置20の配備GW稼働優先度1の帯域の積算値のうちの最低値を特定する。機能部割当部13は、帯域の積算値が最小値より大きい中継装置20のエントリをGW配備表11の複製から削除する。続いて、機能部割当部13は、削除されたエントリに係る中継装置20を除いた中継装置20、即ち、残った各中継装置20の配備GW稼働優先度2の帯域の積算値のうちの最低値を特定する。機能部割当部13は、帯域の積算値が最小値より大きい中継装置20のエントリをGW配備表11の複製から削除する。続いて、配備GW稼働優先度の値を順に大きくして、エントリの削除を繰り返し行う。
機能部割当部13は、上記の配備GW稼働優先度毎のエントリの削除を行うたびに、GW配備表11の複製にエントリが存在しなくなった場合、GW配備表11の複製に存在するエントリが一つの中継装置20に係るもののみとなった場合、及びGW配備表11の複製に存在するエントリにエントリの削除に用いた配備GW稼働優先度以上のものが存在しなくなった場合の何れかに該当するか否かを判断する。機能部割当部13は、それらの場合の何れかに該当すると判断した場合、エントリの削除を終了する。
エントリの削除を終了すると、機能部割当部13は、エントリの削除結果に基づき、新規の仮想リンクの割当対象の稼働優先度の仮想ルータ50を割り当てる中継装置20を決定する。GW配備表11の複製にエントリが存在しなくなったと判断された場合には、機能部割当部13は、最後に削除されたエントリに係る中継装置20を、仮想ルータ50を割り当てる中継装置20に決定する。もし、そのような中継装置20が複数ある場合には、その中から任意の中継装置20を選択して仮想ルータ50を割り当てる中継装置20に決定する。
GW配備表11の複製に存在するエントリが一つの中継装置20に係るもののみとなったと判断された場合には、機能部割当部13は、当該一つの中継装置20を、仮想ルータ50を割り当てる中継装置20に決定する。GW配備表11の複製に存在するエントリにエントリの削除に用いた配備GW稼働優先度以上のエントリが存在しなくなったGW配備表11の複製に存在するエントリがエントリの削除に用いた配備GW稼働優先度以上のものが存在しなくなったと判断された場合には、機能部割当部13は、GW配備表11の複製に存在するエントリに係る中継装置20を、仮想ルータ50を割り当てる中継装置20に決定する。もし、そのような中継装置20が複数ある場合には、その中から任意の中継装置20を選択して仮想ルータ50を割り当てる中継装置20に決定する。
機能部割当部13は、仮想ルータ50を割り当てる中継装置20を決定すると、当該仮想ルータ50についての仮想ルータ識別子を新規に作成して、GW配備表11に当該仮想ルータ50のエントリを追加する。機能部割当部13は、仮想ルータ50の中継装置20への割当を行うと、割当を行った仮想ルータ50の次に高い稼働優先度の仮想ルータ50の中継装置20への割当処理を行う。なお、割当が行われた仮想ルータ50と同一の稼働優先度を持ち、未割当の仮想ルータ50がある場合(例えば、稼働優先度1の仮想ルータ50が複数ある場合)には、当該仮想ルータ50についての割当を行う。次の仮想ルータ50の中継装置20への割当処理は、上記のGW配備表11の複製から行われる。
機能部割当部13及び割当候補決定部14は、新規の仮想リンクの全ての稼働優先度(冗長度分の)の仮想ルータ50の割当が完了するまで上記を繰り返し実行する。機能部割当部13は、新規の仮想リンクの全ての稼働優先度の仮想ルータ50の割当を完了すると、その旨を機能部配備部15に通知する。以上が、本実施形態に係る制御装置10の機能である。
引き続いて、図8のフローチャートを用いて、本実施形態に係る制御装置10で実行される処理(制御装置10の動作方法)である機能部割当方法を説明する。本処理は、新たな仮想リンクを生成する際の処理である。本処理では、まず、機能部割当部13によって、操作端末40から送信されたGW配備要求が受信される(S41)。続いて、機能部割当部13によって、受信されたGW配備要求に含まれる各情報が新規の仮想リンクのエントリとしてGW属性表12に追加される(S42)。続いて、当該新規の仮想リンクの仮想ルータ50を割り当てる中継装置20を決定するGW配備表エントリ作成フロー(S43〜S49)が行われる。
GW配備表エントリ作成フローでは、まず、機能部割当部13によって、GW配備表11及びGW属性表12が参照されて(GW配備表11から中継装置20と仮想ルータ50との対応が読み込まれて)、各中継装置20について、配備GW稼働優先度毎の仮想ルータ50の数、又は仮想ルータ50によって利用される帯域の積算値が算出される(S43、第1ステップ、第2ステップ)。続いて、以下のように新規の仮想リンクの各稼働優先度の仮想ルータ50を割り当てる中継装置20を決定するループが実行される。当該ループの開始時には、稼働優先度1の仮想ルータ50を割り当てる中継装置20を決定する処理が実行される。当該ループは、稼働優先度が高い順、即ち、稼働優先度の値が小さい順に行われる。
当該ループでは、具体的には、機能部割当部13によって、GW配備表11の複製が作成される(S44、第2ステップ)。続いて、割当候補決定部14によって、GW配備表11の複製が読み込まれて、当該複製から、新規の仮想リンクの仮想ルータ50が割り当てられた中継装置20のエントリが全て削除される(S45、第1ステップ、第2ステップ)。当該ループの1回目では、まだ、新規の仮想リンクの仮想ルータ50の中継装置20への割当が行われていないので、エントリの削除は行われない。当該ループの2回目以降では、その前以前のループで仮想ルータ50が割り当てられた中継装置20のエントリが全て削除される。
続いて、機能部割当部13によって、以下のように割当候補決定部14によって割当候補とされた中継装置20を絞り込むループが実行される。まず、このループで用いられる値Jの初期値として1が設定される。続いて、配備GW稼働優先度毎の仮想ルータ50の数に基づいて、仮想ルータ50を割り当てる中継装置20を決定する場合(配備基準が稼働優先度である場合)、機能部割当部13によって、配備GW稼働優先度Jの出現回数が最低値より大きい中継装置20のエントリがGW配備表11の複製から削除される(S46、第2ステップ)。一方、仮想ルータ50によって利用される帯域に基づいて、仮想ルータ50を割り当てる中継装置20を決定する場合(配備基準が帯域である場合)、機能部割当部13によって、配備GW稼働優先度Jの帯域の積算値が最低値より大きい中継装置20のエントリがGW配備表11の複製から削除される(S47、第2ステップ)。
S46及びS47の後、機能部割当部13によって、GW配備表11の複製にエントリが存在しなくなった場合、GW配備表11の複製に存在するエントリが一つの中継装置20に係るもののみとなった場合、及びGW配備表11の複製に存在するエントリにエントリの削除に用いた配備GW稼働優先度以上のものが存在しなくなった場合の何れかに該当するか否かが判断される(S48、第2ステップ)。機能部割当部13によって、それらの場合の何れにも該当しないと判断された場合、Jの値に1が加算されて、中継装置20の絞り込むループが繰り返し実行される。
一方で、機能部割当部13によって、それらの場合の何れかに該当すると判断された場合、機能部割当部13によって、エントリの削除結果に基づき、新規の仮想リンクの割当対象の稼働優先度の仮想ルータ50を割り当てる中継装置20が決定される(S49、第2ステップ)。当該仮想ルータ50を割り当てる中継装置20が決定されると、機能部割当部13によって、当該仮想ルータ50についての仮想ルータ識別子が新規に作成されて、GW配備表11に当該仮想ルータ50のエントリが追加される。S44〜S49のループの処理は、新規の仮想リンクの冗長数だけ、稼働優先度が高い順、即ち、稼働優先度の値が小さい順に稼働優先度毎に繰り返し行われる。
新規の仮想リンクの全ての稼働優先度の仮想ルータ50の割当が完了すると、機能部割当部13によって、その旨が機能部配備部15に通知される。続いて、機能部割当部13によってGW配備表11に追加されたエントリに従って、機能配備部15によって、仮想ルータ50の配備先となった中継装置20のそれぞれに仮想ルータ50の新規作成要求が送信される(S50)。各中継装置20では、新規作成要求が受信されて、当該新規作成要求に従って仮想ルータ50が作成される。続いて、機能部割当部13によってGW配備表11に追加されたエントリに従って、機能部配備部15によって、中継装置20において新たに作成された仮想ルータ50にGW設定要求が送信される(S51)。各中継装置20の仮想ルータ50では、GW設定要求が受信されて、当該GW設定要求に従って自身がGW ACT50a又はGW SBY50bとして動作する。以上が、本実施形態に係る制御装置10で実行される処理である。
上述した処理は、新たな仮想リンクを生成する際の処理であったが、本実施形態においても、配備済の仮想ルータ50の再配備の際の処理も、上記のGW配備表エントリ作成フローを用いることで、図7のフローチャートに示した処理と同様に行うことができる。
上述したように本実施形態でも、割当対象となる仮想リンクの仮想ルータ50が配備された中継装置20が除かれ、残った各中継装置20に割り当てられた割当対象となる仮想リンク以外の仮想リンクの仮想ルータ50の稼働優先度が考慮されて、稼働優先度2以降の仮想ルータ50を割り当てる中継装置20が決定される。従って、本実施形態によっても、系切り替えが発生した場合でも、稼働優先度1の仮想ルータ50、即ち、GW ACT50aが特定の中継装置20に集中することを防止するように複数の中継装置20上に稼働優先度2以降の仮想ルータ50を配備することができる。特に本実施形態のように、配備GW稼働優先度毎の仮想ルータ50の数、又は仮想ルータ50によって利用される帯域に基づいて、割当対象となる中継装置20の限定を行うことで、確実に上記の配置を行うことができる。これは、高い優先度の仮想ルータ50の配備数が少ない中継装置20は、故障が起きた時にもGW ACT50aとなる仮想ルータ50が少ないことを利用している。
なお、第1実施形態では、割り当てられた配備GW稼働優先度1の仮想ルータ50が最も少ない中継装置20を配備先として決定したが、割り当てられた配備GW稼働優先度1の仮想ルータ50によって利用される帯域の積算値が最も少ない中継装置20を配備先として決定してもよい。
また、上述した実施形態では、物理装置である中継装置20へ割り当てる機能部は、ネットワークシステム1の仮想リンクの仮想ルータ50であることとしたが、物理装置に割り当てられる機能部は必ずしも仮想ルータ50である必要はない。複数の物理装置に冗長化されて割り当てられる仮想リンクの機能部であれば、任意の機能部に対して本発明を適用することができる。