(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、実施形態に係るトラヒック制御装置及びトラヒック制御方法を説明する。なお、以下の実施形態により本発明が限定されるものではない。
【0012】
図1は、本実施形態に係るトラヒック制御システムの構成を示す図である。
図1に示すように、本実施形態においては、複数のノード1と、隣接するノード1同士を結ぶ通信リンクとを含むネットワークに、データセンタ10や端末20が接続される。端末20は、例えば、クラウドコンピューティングのサービスを利用する利用者端末や他のトラヒックを発生させる端末である。
【0013】
また、本実施形態に係るトラヒック制御システムは、トラヒック制御装置100と、複数のノード1とを含む。トラヒック制御装置100は、制御対象の各ノード1に接続し、通信リンクを流れるトラヒックに関する情報(以下、トラヒック情報)の収集やフローの経路制御を行う。
【0014】
以下では、トラヒックエンジニアリング制御対象のネットワークをG(V,E)と表記する。ノードはv∈Vであり、通信リンクはe∈Eである。また、始点ノードs∈Vから終点ノードd∈Vへと流れるトラヒック需要(以下、適宜「トラヒック量」)を、λ
sdと表記する。また、ノードi∈Vとノードj∈Vとの間の通信リンクをe
ij∈Eと表記し、通信リンクe
ijの通信帯域をC
ijと表記する。
【0015】
なお、ネットワークG(V,E)に含まれる複数のノード群D⊂Vにはデータセンタが接続しており、ノード群S⊂Vには利用者端末が接続している。仮想計算機で提供されるサービスの集合Xは、ノード群Dに属するいずれかのノードに接続されたデータセンタに配置された仮想計算機上で提供される。各サービスx∈Xは、利用者端末が接続されたノード群S
x⊂Sに属する。ライブマイグレーションは、ノードs∈S
xと仮想計算機とを結ぶ経路に含まれる通信リンクの遅延の総和(又は、平均遅延)が最も小さくなるように、ノードd∈Dに接続されたデータセンタに仮想計算機を移動することで実現される。
【0016】
図2は、本実施形態に係るトラヒック制御装置の構成を示す図である。本実施形態に係るトラヒック制御装置100は、記憶部110と、TE実施部120とを備える。記憶部110は、経路制御情報や、各ノード1から収集したトラヒック情報などを記憶する。また、TE実施部120は、トラヒックエンジニアリングを実施し、トラヒックの経路を決定する。
【0017】
図2に示すように、記憶部110は、経路制御情報記憶部111と、トラヒック情報記憶部112と、コスト記憶部113と、コスト削減効果閾値記憶部114とを有する。
【0018】
経路制御情報記憶部111は、経路制御情報を記憶する。経路制御情報とは、ある始点ノードから終点ノードへと流れるフローのトラヒックの経路を示す情報であって、そのトラヒックが経由する通信リンクを示す情報である。なお、トラヒックの経路が複数である場合、経路制御情報には、複数の経路に振り分けられるトラヒックの割合なども示される。
【0019】
経路制御情報記憶部111は、ネットワークに含まれる始点ノード及び終点ノードのノードペア全てについて、この経路制御情報を記憶する。また、経路制御情報記憶部111は、経路制御情報の履歴も記憶する。例えば、経路制御情報記憶部111は、過去に実施されたトラヒックエンジニアリングの時刻(例えば、後述する経路決定部123によって少なくともひとつの経路が変更された時刻)を、このトラヒックエンジニアリングにより決定された経路制御情報に対応付けて記憶する。なお、経路制御情報記憶部111が記憶する経路制御情報は、後述する経路決定部123による処理に利用され、また、経路制御情報記憶部111が記憶する経路制御情報の履歴は、後述する閾値決定部122による処理に利用される。
【0020】
トラヒック情報記憶部112は、トラヒック情報を記憶する。トラヒック情報とは、各ノード1から収集された情報であり、例えば、各通信リンクを流れるトラヒック量である。なお、トラヒック情報記憶部112が記憶するトラヒック情報は、後述するTE実施決定部121による処理や、経路決定部123による処理に利用される。
【0021】
コスト記憶部113は、全通信リンクのコストの総和(以下、適宜「ネットワークコスト」)を記憶する。各通信リンクのコストは、各通信リンクの利用率に基づき計算される。なお、コスト記憶部113が記憶するネットワークコストは、後述するTE実施決定部121による処理に利用される。
【0022】
コスト削減効果閾値記憶部114は、最適化後の経路が適用された場合のネットワークコストの削減効果をノードペア毎に判定するための閾値を記憶する。また、この閾値(以下、適宜「コスト削減効果閾値」)は、ネットワークコストの削減効果をノードペア1組あたりの削減効果に換算した値である。また、コスト削減効果閾値記憶部114が記憶する閾値は、後述する経路決定部123による処理に利用される。
【0023】
また、
図2に示すように、TE実施部120は、TE実施決定部121と、閾値決定部122と、経路決定部123とを有する。
【0024】
TE実施決定部121は、コスト計算部121aと、実施決定部121bとを有する。コスト計算部121aは、所定の期間毎に、ノードペアそれぞれを流れるトラヒック量と経路の通信帯域とから、現在のネットワークコストを計算し、計算したネットワークコストをコスト記憶部113に格納する。また、実施決定部121bは、コスト記憶部113に記憶されている過去のネットワークコストと現在のネットワークコストとを比較し、ネットワークコスト同士の差分値が閾値以上であることを条件として、トラヒックエンジニアリングの実施を決定する。すなわち、実施決定部121bは、経路決定部123による処理の実施を決定する。
【0025】
図3は、本実施形態に係るTE実施決定部121による処理を示すフローチャートである。まず、コスト計算部121aが、一定期間毎に、各ノード1から現在のトラヒック情報を収集し、収集したトラヒック情報をトラヒック情報記憶部112に格納する(ステップS101)。例えば、コスト計算部121aは、一定期間毎に、各通信リンクe
ijを流れる現在のトラヒック量λ
ijを収集する。
【0026】
続いて、コスト計算部121aは、ステップS101において収集した現在のトラヒック量λ
ijと、既知である各通信リンクe
ijの通信帯域C
ijとから、コストg(λ
ij,C
ij)を通信リンクe
ij毎に計算し、全通信リンクの総和を計算することで、現在のネットワークコストを計算する(ステップS102)。そして、コスト計算部121aは、計算した現在のネットワークコストをコスト記憶部113に格納する。例えば、コスト計算部121aは、トラヒック量λ
ijを通信帯域C
ijで割ることで計算される利用率に基づいて、利用率が低い場合に高い値となり、利用率が高い場合に低い値となる関数を用いてコストを計算すればよい。なお、コストの計算は、任意の公知の技術(例えば、非特許文献2など)を用いることができる。
【0027】
次に、実施決定部121bが、コスト記憶部113に記憶されている過去のネットワークコストと現在のネットワークコストとを比較し、一定以上の悪化があるか否かを判定する(ステップS103)。例えば、実施決定部121bは、一定以上の悪化があるか否かを判定するための閾値を予め記憶し、過去のネットワークコストと現在のネットワークコストとの差分値がこの閾値以上であるか否かを判定する。
【0028】
そして、実施決定部121bは、過去のネットワークコストと現在のネットワークコストとの差分値が閾値未満の場合には(ステップS103,No)、閾値決定部122に、コスト削減効果閾値の更新を指示する(ステップS104)。なお、後述するように、閾値決定部122は、更新の指示を受けた後、経路制御情報の履歴を用いてコスト削減効果閾値の更新を行う。
【0029】
一方、実施決定部121bは、過去のネットワークコストと現在のネットワークコストとの差分値が閾値以上の場合には(ステップS103,Yes)、経路決定部123に、トラヒックエンジニアリングの実施を指示する(ステップS105)。なお、後述するように、経路決定部123は、トラヒックエンジニアリングの実施の指示を受けた後、経路制御情報の更新を行う。
【0030】
図2に戻り、閾値決定部122は、頻度計算部122aと、更新部122bとを有する。頻度計算部122aは、経路決定部123によって経路の変更が行われる頻度を計算する。また、更新部122bは、頻度計算部122aによって計算された頻度が第1頻度閾値以上の場合には、コスト削減効果閾値を高めに更新する。一方、更新部122bは、頻度計算部122aによって計算された頻度が第2頻度閾値未満の場合には、コスト削減効果閾値を低めに更新する。
【0031】
図4は、本実施形態に係る閾値決定部123による処理を示すフローチャートである。まず、頻度計算部122aが、経路制御情報記憶部111から経路制御情報の履歴を取得し、過去一定期間に経路制御を実施した頻度を計算する(ステップS201)。ここで、経路制御を実施した頻度とは、過去一定期間に実施された複数回のトラヒックエンジニアリングのうち、少なくともひとつの経路が最適化後の経路に決定された回数のことである。すなわち、トラヒックエンジニアリングが実施された場合であっても、全ての経路に変更がなかった場合はカウントしない。また、経路制御を実施した頻度には、トラヒックエンジニアリング1回あたりの経路変更の数まで加味してもよい。この場合、1回のトラヒックエンジニアリングで多数の経路変更が行われると、経路制御を実施した頻度は高い値となる。
【0032】
続いて、更新部122bが、ステップS201において計算された頻度が、頻度の閾値として予め記憶する第1頻度閾値以上の場合には(ステップS202,Yes)、コスト削減効果閾値を高めに設定し(ステップ203)、コスト削減効果閾値を、設定後のコスト削減効果閾値に更新する(ステップS206)。すなわち、トラヒックエンジニアリングが頻度高く行われている場合には、トラヒックエンジニアリングが実施されにくくなる方向に、コスト削減効果閾値を高めに更新する。
【0033】
一方、更新部122bは、ステップS201において計算された頻度が第1頻度閾値未満の場合には(ステップS202,No)、続いて、この頻度が、もうひとつの頻度の閾値として予め記憶する第2頻度閾値未満であるか否かを判定する(ステップS204)。
【0034】
そして、更新部122bは、この頻度が第2頻度閾値未満の場合には(ステップS204,Yes)、コスト削減効果閾値を低めに設定し(ステップ205)、コスト削減効果閾値を、設定後のコスト削減効果閾値に更新する(ステップS206)。すなわち、トラヒックエンジニアリングがあまり行われていない場合には、トラヒックエンジニアリングが実施され易くなる方向に、コスト削減効果閾値を低めに更新する。
【0035】
なお、更新部122bは、頻度が第2頻度閾値以上の場合には(ステップS204,No)、コスト削減効果閾値を更新せずに、処理を終了する。
【0036】
図2に戻り、経路決定部123は、最適化経路導出部123aと、コスト削減効果計算部123bと、比較決定部123cとを有する。最適化経路導出部123aは、ネットワークコストを制御目標値とする最適化を行い、最適化後の経路を導出する。また、コスト削減効果計算部123bは、最適化経路導出部123aによって導出された最適化後の経路がネットワークに含まれるノードペア全てに適用された場合のネットワークコスト(以下、適宜「最適化後ネットワークコスト」)と、最適化後の経路が所定のノードペア以外に適用されるとともに最適化前の経路が所定のノードペアに適用された場合のネットワークコスト(以下、適宜「最適化前ネットワークコスト」)との差分値を、所定のノードペアを替えながらノードペア毎に計算する。また、比較決定部123cは、コスト削減効果計算部123bによって計算された差分値に基づく値と、コスト削減効果閾値記憶部114に記憶されたコスト削減効果閾値とをノードペア毎に比較し、差分値に基づく値がコスト削減効果閾値以上の場合には、比較対象のノードペアの経路を最適化後の経路に決定し、差分値がコスト削減効果閾値未満の場合には、比較対象のノードペアの経路を最適化前の経路に決定する。
【0037】
図5は、本実施形態に係る経路決定部123による処理を示すフローチャートである。まず、最適化経路導出部123aが、ネットワークコストを制御目標値とする最適化を行い、最適化後の経路制御情報f
sdijoptimalを導出する(ステップS301)。
【0038】
例えば、最適化経路導出部123aは、トラヒック情報記憶部112から、始点ノードsから終点ノードdへと流れるトラヒック量λ
sdを全てのノードペア(s,d)について取得する。また、最適化経路導出部123aは、経路制御情報記憶部111から、現在の経路制御情報f
sdijprevを取得する。この現在の経路制御情報f
sdijprevには、始点ノードsから終点ノードdへと流れるトラヒックが経由する通信リンクe
ij及びその割合が示されている。そこで、最適化経路導出部123aは、現在の経路制御情報f
sdijprevに基づいて、トラヒック量λ
sdのうち各通信リンクe
ijを流れるトラヒック量λ
sdijを全てのノードペア(s,d)について計算する。
【0039】
次に、最適化経路導出部123aは、各通信リンクe
ijを流れるトラヒック量λ
ij(なお、トラヒック量λ
ijは、通信リンクe
ijにおけるトラヒック量λ
sdijの総和)と、各通信リンクe
ijの通信帯域C
ijとから、コストg(λ
ij,C
ij)を通信リンクe
ij毎に計算し、全通信リンクのコストの総和、すなわちネットワークコストを計算する。そして、最適化経路導出部123aは、計算したネットワークコストを制御目標値J
TEとし、これを最小化するように最適化後の経路制御情報f
sdijを導出する。なお、以下では、このように計算された場合のネットワークコスト(最適化後ネットワークコスト)をJ
TEoptimalと表記し、経路制御情報f
sdijを経路制御情報f
sdijoptimalと表記する。
【0040】
続いて、コスト削減効果計算部123bが、ひとつのノードペア(s´,d´)についてのみ現在の経路制御情報f
sdijprevを適用し、このノードペア(s´,d´)以外のノードペアについては最適化後の経路制御情報f
sdijoptimalを適用した場合のネットワークコスト(最適化前ネットワークコスト)J
TEを計算する(ステップS302)。この最適化前ネットワークコストJ
TEから最適化後ネットワークコストJ
TEoptimalを引いた差分値が、このノードペアの間の経路を変更したことによるネットワークコストの削減値である。また、この差分値を、経路変更前のノードペア(s´,d´)間の経路に含まれる各通信リンクのコストの総和で割った値が、ノードペア(s´,d´)間の経路変更によるネットワークコストの削減効果である。
【0041】
次に、比較決定部123cが、ステップS302において計算した最適化前ネットワークコストJ
TEと、最適化後ネットワークコストJ
TEoptimalとをノードペア(s´,d´)毎に比較する。そして、比較決定部123cは、コスト削減効果閾値記憶部114からコスト削減効果閾値を取得し、ノードペア(s´,d´)間の経路変更によるネットワークコストの削減効果が、コスト削減効果閾値以上であるか否かを判定する(ステップS303)。なお、本実施形態においては、削減効果と閾値とを比較する例を説明したが、実施形態はこれに限られるものではなく、例えば、差分値自体と閾値とを比較してもよい。
【0042】
そして、比較決定部123cは、ノードペア(s´,d´)間の経路変更によるネットワークコストの削減効果が、コスト削減効果閾値以上の場合には(ステップS303,Yes)、ノードペア(s´,d´)間の経路制御情報f
s'd'ijnewとしてf
s'd'ijoptimalを出力する。すなわち、比較決定部123cは、ノードペア(s´,d´)間のトラヒックが経由する通信リンクを変更する。一方、ノードペア(s´,d´)間の経路変更によるネットワークコストの削減効果が、コスト削減効果閾値未満の場合には(ステップS303,No)、比較決定部123cは、ノードペア(s´,d´)間の経路制御情報f
s'd'ijnewとしてf
s'd'ijprevを出力する(ステップS306)。すなわち、比較決定部123cは、ノードペア(s´,d´)間のトラヒックが経由する通信リンクを変更しない。
【0043】
その後、コスト削減効果計算部123b及び比較決定部123cは、全てのノードペア(s,d)について同様に経路制御情報f
sdijnewを出力し、出力した経路制御情報f
sdijnewを経路制御情報記憶部111に格納する(ステップS305)。なお、次のトラヒックエンジニアリングを実施する際には、最適化経路導出部123aは、この経路制御情報f
sdijnewを、現在の経路制御情報f
sdijprevとして取り扱う。
【0044】
さて、
図6は、本実施形態に係るトラヒック制御全体のシーケンス図である。上述したように、本実施形態に係るTE実施決定部121は、一定期間毎に各ノード1からトラヒック情報を収集し、現在のネットワークコストを計算して記憶部110に格納したり、記憶部110に過去のネットワークコストを問い合わせたりする(ステップS1及びS2)。そして、TE実施決定部121は、過去のネットワークコストと現在のネットワークコストとの比較の結果、一定以上の悪化がある場合には、経路決定部123に対して、トラヒックエンジニアリングの実施を指示する(ステップS3)。
【0045】
トラヒックエンジニアリングの実施を指示された経路決定部123は、記憶部110に、トラヒック情報やコスト削減効果閾値、経路制御情報を問い合わせながら(ステップS4及びS5)、最適化後の経路制御情報を導出し、その後、ノードペア毎にネットワークコストの削減効果を検証しながら、新たな経路制御情報を決定し、更新する(ステップS6)。なお、経路決定部123は、TE実施決定部121に対して、トラヒックエンジニアリングの実施完了を報告する(ステップS7)。
【0046】
また、本実施形態に係るTE実施決定部121は、過去のネットワークコストと現在のネットワークコストとの比較の結果、一定以上の悪化がない場合には、閾値決定部122に対して、コスト削減効果閾値の更新を指示する(ステップS8)。すると、閾値決定部122は、記憶部110に経路制御情報の履歴を問い合わせながら(ステップS9及びS10)、コスト削減効果閾値の更新を実施する(ステップS11)。
【0047】
なお、上述したシーケンス図は一例に過ぎず、実施形態はこれに限られるものではない。例えば、コスト削減効果閾値の更新を実施するタイミングは、ネットワークコストの比較の結果一定の悪化がない場合に限られず、例えば、定期的に行ってもよい。また、例えば、一定の悪化の有無に係らず、定期的にトラヒックエンジニアリングを実施してもよい。
【0048】
このように、上述した実施形態によれば、トラヒックエンジニアリングを適切に行うことができる。すなわち、上述した実施形態に係るトラヒック制御装置は、最適化後の経路が適用された場合のネットワークコストの削減効果をノードペア毎に個別に求め、削減効果が大きいノードペアに対しては経路の最適化を実施し、削減効果が小さいノードペアに対しては経路の最適化を実施しない。この結果、削減効果の大きなフローについては経路の最適化を行ってネットワーク性能を向上するとともに、経路変更の数を減らしてライブマイグレーションに及ぼす影響を抑制することができる。すなわち、経路変更の数が減ることで、データセンタと利用者端末との間の遅延の変化も抑えられ、ライブマイグレーションが繰り返し行われることを防ぐことができる。この結果、両制御が相互に干渉し合うことによるネットワークの不安定化を防止することができる。
【0049】
なお、上述した実施形態の手法によれば、ライブマイグレーションの制御情報を把握する必要もないので、ライブマイグレーションの制御とトラヒックエンジニアリングの制御とが異なる者によって独立に行われる場合にも対応可能である。
【0050】
また、上述した実施形態によれば、経路の最適化を実施するか否かの閾値として有効な閾値を設定することができる。すなわち、上述した実施形態に係るトラヒック制御装置は、経路変更の頻度が高い場合にはコスト削減効果閾値を高めに更新し、経路変更の頻度が低い場合にはコスト削減効果閾値を低めに更新する。この結果、経路変更の頻度が高い場合には、すなわち、ネットワークの状態が不安定になっている場合には、経路変更の数を減らす方向に閾値を調整してライブマイグレーションに及ぼす影響を抑制する。一方、経路変更の頻度が低い場合には、すなわち、トラヒックエンジニアリングがあまり行われていない場合には、経路変更を積極的に行う方向に閾値を調整してネットワーク性能の更なる向上を促すことができる。
【0051】
また、上述した実施形態によれば、現在のネットワークコストに一定以上の悪化がある場合にのみトラヒックエンジニアリングが実施されるので、経路変更の頻度を減らしてライブマイグレーションに及ぼす影響を抑制することができる。
【0052】
(他の実施形態)
なお、上述したトラヒック制御装置100は、上述した実施形態以外にも種々の異なる形態にて実施されてよい。
【0053】
例えば、上述した実施形態に係るトラヒック制御装置100が実行する処理を、コンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上述した実施形態と同様の効果を得ることができる。更に、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより、上述の実施形態と同様の処理を実現してもよい。以下、
図2に示したトラヒック制御装置100と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
【0054】
図7は、本実施形態に係るトラヒック制御装置100と同様の機能を実現するプログラムを実行するコンピュータを示す図である。
図7に示すように、コンピュータは、例えば、メモリと、CPU(Central Processing Unit)と、ハードディスクドライブインタフェースと、ディスクドライブインタフェースと、シリアルポートインタフェースと、ビデオアダプタと、ネットワークインタフェースとを有し、これらの各部はバスによって接続される。
【0055】
メモリは、
図7に示すように、ROM(Read Only Memory)及びRAM(Random Access Memory)を含む。ROMは、例えば、BIOS(Basic Input Output System)などのブートプログラムを記憶する。ハードディスクドライブインタフェースは、
図7に示すように、ハードディスクドライブに接続される。ディスクドライブインタフェースは、
図7に示すように、ディスクドライブに接続される。例えば磁気ディスクや光ディスクなどの着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェースは、
図7に示すように、例えばマウス、キーボードに接続される。ビデオアダプタは、
図7に示すように、例えばディスプレイに接続される。
【0056】
ここで、
図7に示すように、ハードディスクドライブは、例えば、OS(Operating System)、アプリケーションプログラム、プログラムモジュール、プログラムデータを記憶する。すなわち、上述のプログラムは、コンピュータによって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブに記憶される。例えば、最適化経路導出部123aと同様の処理を実行する処理手順と、コスト削減効果計算部123bと同様の処理を実行する処理手順と、比較決定部123cと同様の処理を実行する処理手順とが記述されたプログラムモジュールが、ハードディスクドライブに記憶される。
【0057】
また、上述した実施形態で説明したトラヒック制御装置100が保持する各種データは、プログラムデータとして、例えばメモリやハードディスクドライブに記憶される。そして、CPUが、メモリやハードディスクドライブに記憶されたプログラムモジュールやプログラムデータを必要に応じてRAMに読み出し、各手順を実行する。
【0058】
なお、上述のプログラムに係るプログラムモジュールやプログラムデータは、ハードディスクドライブに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブなどを介してCPUによって読み出されてもよい。あるいは、上述のプログラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)など)を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してCPUによって読み出されてもよい。