<顧客障害影響推定例>
図1は、顧客障害影響推定例を示す説明図である。顧客障害影響推定は、管理装置が、ネットワークシステム内の通信を中継するスイッチのような通信装置を介して、顧客への障害の影響を推定する処理である。
1.管理装置は、ネットワークシステム内の通信装置における各時間帯のプロトコル毎の通信量の周期的な通信パターンを統計情報として計算する。具体的には、(1−1)管理装置は、通信装置が中継するパケットをサンプリングし、その通信量(パケット数)を計測する。
(1−2)管理装置は、フーリエ解析により通信の周期性の有無を判断する。図1の例は、管理装置が、顧客(テナントA)の仮想マシンVM1,VM2間の通信に周期性ありと判断した例である。
(1−3)管理装置は、(1−2)で検出された通信パターンから、たとえば、ARP(Address Resolution Protocol)パケットのような周期性のない通信を外れ値として除外する。(1−3)の通信パターンを周期的通信パターンと称す。このように、過去の通信量をサンプリングすることにより、管理装置は、ネットワークシステム内の全通信を常に解析することなく、また、通信量の多さにかかわらず、障害発生前に未然に周期的通信パターンを生成しておくことができる。
2.つぎに、管理装置は、ネットワークシステムでの通信障害時に障害情報と周期的通信パターンと比較し、テナントごとに、通信への影響確度を算出する。ここで、障害情報は、障害を特定する情報であり、たとえば、障害の発生時刻、障害の発生した通信装置の通信装置IDが含まれる。また、ネットワークシステム内のデータセンタ間ネットワークで障害が発生した場合は、これに加え、障害の影響を受けた可能性のあるフローのフローIDも追加される。また、影響確度は、通信に実害があるか否かを示す確からしさであり、たとえば、確率により表現される。
3.そして、管理者は、実害が顕著な顧客を絞り込み、早急な対応をする。実害が顕著な顧客とは、障害発生時に、上記2で算出した影響確度が高い(たとえば、70%以上)顧客である。当該顧客は、常時通信をおこなっている顧客であると推定される。また、影響確度は低い(たとえば、0%以上30%未満)顧客は、普段は通信していない顧客であると推定される。また、影響確度がたとえば、30%以上70%未満の顧客は、たまに通信する顧客であると推定される。
このように、管理装置は、障害の影響範囲内において障害発生時に実害有り顧客および実害無し顧客を判別するため、管理者は、早急な対応が必要な実害有り顧客を迅速に絞り込み、優先的に対応することができる。
<ネットワークシステム構成例>
図2は、ネットワークシステムのシステム構成例を示す説明図である。ネットワークシステム1は、複数のデータセンタDC1〜DCn(nは2以上の整数)がデータセンタ間ネットワーク2を介して通信可能に接続されたシステムである。
データセンタDCi(iは1≦i≦n)は、1台以上の電子計算機60と、1台以上の通信装置20と、がデータネットワーク10を介して通信可能に接続されており、かつ、通信装置20と、管理装置50と、が制御ネットワーク11を介して通信可能に接続されたシステムである。電子計算機60は、1台以上の通信装置20と通信可能に接続される。電子計算機60は、たとえば、サーバやパーソナルコンピュータであり、データネットワーク10を介して相互に通信可能である。
通信装置20は、たとえば、LANスイッチやルータのような中継装置である。通信装置20は、データネットワーク10に接続された1または複数のインタフェースと、制御ネットワーク11に接続されたインタフェースとを備える。なお、通信装置20はハードウェアに限らず、ソフトウェアであっても良い。また、データネットワーク10と制御ネットワーク11は同一のネットワークでも良い。
通信装置20は、転送機能21と、フロー統計通知機能22と、仮想NW統計算出機能23と、を有する。転送機能21は、通信装置20の任意のインタフェースを介して受信したフローを解析し、解析により得られたフロー特性情報に基づいて、予め定められた規則に従って当該フローを出力すべきインタフェースを決定し、決定したインタフェースからフローを出力する。
ここで本実施例におけるフローは、フロー特性情報によって一意に定められた通信を指す。また、フロー特性情報とは、そのフローの送信元のインタフェースのアドレスである「送信元MAC(Media Access Control)アドレス」と、そのフローの送信先のインタフェースのアドレスである「宛先MACアドレス」と、そのフローのOSI(Open Systems Interconnection)参照モデルにおけるネットワーク層の種類を表す「フレームタイプ」と、そのフローの送信元の通信機器のIPアドレスである「送信元IPアドレス」と、そのフローの送信先の通信機器のIPアドレスである「宛先IPアドレス」と、そのフローを送受する際のOSI参照モデルにおけるトランスポート層の種類を表す「IPプロトコル」と、通信装置20が稼動させる複数のプログラムからトラフィックの送信元となるプログラムを指定する「送信元ポート番号」と、その通信装置20が稼動させる複数のプログラムからフローの宛先となるプログラムを指定する「宛先ポート番号」と、そのフローが所属する仮想ネットワークを表す「仮想NWID」と、を指す。転送機能21は、フロー特性情報を、フローを構成する各パケットのヘッダ部から取得する。
仮想ネットワークは、通信の識別子付与やカプセル化などにより通信を論理的に分離する手法であり、たとえば、VLANやMPLS(Multiprotocol Label Switching),VXLAN,GRE(Generic Routing Encapsulation),NVGRE(Network Virtualization using GRE)のような公知技術で実現される。
たとえば、図1の例では、仮想マシンVM1と仮想マシンVM2との間でデータネットワーク10を構成する通信装置20を経由して、共通の仮想NWIDを含む一連のパケットであるフローにより、仮想ネットワークが規定される。なお、仮想マシンVM2は、他のデータセンタDCj(jは、i≠jで、1≦j≦n。以下、外部データセンタDCj)の電子計算機60上にあってもよい。
フロー統計通知機能22は、通信装置20を通過するフローに関する所定の情報(サンプルパケットのフロー特性情報またはフローの時刻ごとの通過パケット数)をフロー統計情報30として制御ネットワーク11を介して管理装置50に通知する。
仮想NW統計算出機能23は、通信装置20を通過する各仮想ネットワークについて、フローの時刻ごとの通過パケット数をフローごとにカウントする機能である。
転送機能21、フロー統計通知機能22、および仮想NW統計算出機能23はいずれも既存技術で実現される。たとえば、転送機能21は、LANスイッチのスイッチング機能により実現される。フロー統計通知機能22は、sFlowやIPFIX(IP Flow Information Export)を適用することにより実現される。仮想NW統計算出機能23は、仮想ネットワークごとの分解能を持つ通信装置20のカウンタ機能を適用することにより実現される。
なお、以下においては、フロー統計通知機能22としてsFlowを想定し、フロー統計情報30は、サンプルパケット情報として、sFlowフローサンプルを想定する。なお、フロー統計情報30のフォーマット詳細は図16に示す。管理装置50は、フロー統計情報30に基づいて、顧客が通信障害の影響確度を算出し、算出結果を、後述する影響確度情報32として通知先40に送信する。
通知先40は、たとえば、データセンタDCiの管理者43が操作するクライアント端末42や、データセンタDCiの運用管理装置41である。通知先40がクライアント端末42の場合、クライアント端末42は、影響確度情報32が管理装置50から与えられると、管理装置50により推定された各顧客への障害の影響確度を所定形式で表示する。
影響確度情報32は、障害が各顧客のフローに影響を与えた確度を示す情報である。これに加え、各顧客の重要度や、各顧客の全フローのうち障害の影響を受けた確度の高いフローの割合、各顧客のフローの詳細情報、障害の発生した通信装置が冗長化されているか、過去の通信パターンと障害発生直前の通信パターンが一致しているか、といった情報を含んでも良い。なお、フローの詳細情報とは、顧客の各フローの通信パターン代表周期やフロー特性情報、通信パケット数、周期性の有無を指す。
影響確度情報32が管理装置50から通知先40に通知される際に使用するプロトコルは、たとえば、HTTP(Hypertext Transfer Protocol)のような公知のプロトコルでよいし、プロプライエタリなものでもよい。また、影響確度情報32のデータフォーマットは、たとえば、JSON(JavaScript Object Notation)やXML(Extensible Markup Language)のような公知のものでもよいし、プロプライエタリなものでもよい。
また、以下の説明において、通信パターンとは、フローの1周期分にあたる時系列データを1周期データと呼ぶ際、類似した複数の1周期データの集合を指す。通信パターン代表周期とは、通信パターン内で代表となる1周期データを指す。
<管理装置50のハードウェア構成例>
図3は、管理装置50のハードウェア構成例を示すブロック図である。管理装置50は、プロセッサ302、主記憶デバイス303、外部記憶デバイス304、通信制御デバイス301および入出力デバイス305を有する。これらは、内部バス306を介して相互に接続される。
プロセッサ302は、管理装置50全体の動作制御を司るハードウェアである。主記憶デバイス303は、たとえば、半導体メモリから構成され、各種プログラムや制御データを一時的に保持する。主記憶デバイス303は、図4で後述する演算部200が備えるプログラム群のほか、図4で後述する情報記憶部210のテーブル群を保持する。
外部記憶デバイス304は、大容量の記憶容量を有する記憶デバイスであり、たとえばハードディスク装置やSSD(Solid State Drive)である。外部記憶デバイス304は、各種プログラムやデータを保持する。情報記憶部210のテーブル群のうち、更新や参照が少ない情報は外部記憶デバイス304に保存しても良い。主記憶デバイス303および外部記憶デバイス304は、プロセッサ302からアクセス可能である。
通信制御デバイス301は、各通信装置20との通信を制御する機能を有するハードウェアであり、インタフェース300を介して制御ネットワーク11に接続される。入出力デバイス305は、ユーザが各種操作入力を行うためのキーボードやマウスなどの入力デバイスと、各種情報を表示するための液晶ディスプレイのような出力デバイスと、を含む。
<管理装置50の機能的構成例>
図4は、管理装置50の機能的構成例を示すブロック図である。管理装置50は、演算部200および情報記憶部210を有する。演算部200は、フロー情報解析機能201、通信パターン解析機能202、影響確度推定機能203、外部連携機能204、不要データ削除機能205、および障害検知機能206を有する。各機能201〜206は、プロセッサ302が主記憶デバイス303に格納されたプログラムを実行することにより実現される。
フロー情報解析機能201は、データネットワーク10を構成する各通信装置20から制御ネットワーク11を介して送信されるフロー統計情報30を解析する。フロー情報解析機能201は、データネットワーク10を流れる各フローのフロー特性情報やフローの時刻ごとの通信パケット数を解析する。フロー情報解析機能201は、フロー特性情報および通信パケット数をフロー解析情報DB212に格納する。
通信パターン解析機能202は、フロー解析情報DB212と条件情報テーブル215を基に、各フローの周期性を解析して通信パターンを算出した後、算出した通信パターンを通信パターン情報テーブル213に格納する。
影響確度推定機能203は、通信パターン情報テーブル213と顧客情報テーブル214を基に、障害発生時に各顧客が障害の影響を受けた確度である影響確度情報32を算出し、影響確度情報32を通知先40に通知する。
外部連携機能204は、外部DC情報テーブル216を基に、外部データセンタDCjとの間にある管理装置50と間でフローの時系列データや障害情報を共有する。なお、外部データセンタDCjの管理装置50とのメッセージの送受信に使用するプロトコルは、たとえば、HTTPのような公知のものでよいし、プロプライエタリなものでもよい。また、データフォーマットは、JSONやXMLのような公知のものでもよいし、プロプライエタリなものでもよい。
不要データ削除機能205は、図13にて後述する条件情報テーブル215に基づいて、フロー解析情報DB212に含まれるフロー特性情報および時系列データを削除する。
障害検知機能206は、データセンタDCi内の通信装置20および外部データセンタDCjの通信装置20(以下、外接通信装置20と称す)の障害を監視する。ここで、外接通信装置20とは、外部データセンタDCjの内部ネットワークと、外部データセンタDCjとの間にあるデータセンタ間ネットワークと、の境界に存在する通信装置20を指す。また、外部データセンタDCjの外接通信装置20の障害を監視する理由は、データセンタ間ネットワーク2に障害があった際もデータセンタDCi内と同様に顧客が障害の影響を受けた確度の推定を可能にするためである。なお、障害検知機能206の代わりに、障害検知機能206と同じ機能を有する外部の障害監視装置を用いても良い。
情報記憶部210は、通信装置管理テーブル211、フロー解析情報DB212、通信パターン情報テーブル213、顧客情報テーブル214、条件情報DB215、および外部DC情報DB216を有する。各テーブル212〜216は、たとえば、主記憶デバイス303に格納された情報により実現される。
なお、以後の説明では情報記憶部210に格納される情報を「テーブル」形式によって説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
通信装置管理テーブル211は、データネットワーク10内に存在する通信装置20を特定するデータ構造である。通信装置管理テーブルの詳細については、図6で後述する。
フロー解析情報DB212は、データネットワーク10内に存在するフローの特徴を示すフロー解析情報(図8、図9で後述)を保持する。
通信パターン情報テーブル213は、データネットワーク10内に存在するフローの通信パターンを保持するデータ構造である。
顧客情報テーブル214は、データセンタDCiを利用する顧客の情報を規定するデータ構造である。
条件情報テーブル215は、時系列データから外れ値を検出する際や、複数のフローを組み合わせる際に利用される設定情報を保持するデータ構造である。
外部DC情報テーブル216は、外部データセンタDCjにアクセスするための情報や、外部データセンタDCjと共有した情報を保持するデータ構造である。
なお、フロー情報解析機能201、通信パターン解析機能202、外部連携機能204、不要データ削除機能205、または障害検知機能206の少なくともいずれかの機能は、管理装置50と通信可能な外部装置が有してもよい。また、情報記憶部210も、管理装置50と通信可能な外部装置が有してもよい。
<データセンタDCiおよびデータセンタDCi,DCj間の構成例>
図5は、データセンタDCiおよびデータセンタDCi,DCj間の詳細な構成例を示す説明図である。ただし、管理装置50が稼働する環境は図5に示されるデータセンタDCi,DCjの構成に限定されるものではない。なお、それぞれのデータセンタDCi、DCj内の構成要素の符号には、電子計算機60i,60jのように、i,jを付す。区別しない場合には、単に通信装置20のようにi,jを省略する。また、それぞれのデータセンタDCi、DCjには通信装置20は複数存在するため、それらを区別するために、通信装置20iA,20iB,通信装置20jA,20jBのように末尾に大文字アルファベットを付す。区別しない場合には、単に通信装置20i,20jのように大文字アルファベットを省略する。
データセンタDCiとデータセンタDCjとがデータセンタ間ネットワーク2を介して接続されており、データセンタDCiとデータセンタDCjは、それぞれ管理装置50i,50jを有する。各通信装置20i(20j)および電子計算機60i(60j)間はデータネットワーク10i(10j)で接続されている。
データセンタDCi,DCjのような複数のデータセンタDCに跨って顧客システムが構成されている場合がある。このような顧客システムは、データセンタDCi,DCjに跨ったフローを発生させるため、それぞれのデータセンタDCi,DCj内で、管理装置50i,50jは、解析したフロー情報や障害情報を互いに共有することで通信障害の影響推定の精度を向上できる。本実施例は、複数のデータセンタDCの情報を共有して、通信障害の影響推定の精度を向上させている。また、データセンタDCi,DCjに跨ったネットワークシステム1は、データセンタ間ネットワーク2の障害の影響を受ける。このため、本実施例では、管理装置50は、データセンタ間ネットワーク2の死活監視を行うことで、データセンタ間ネットワーク2の障害にも対応する。
また、各データセンタDCi,DCjにおいて、通信装置20jAを除く通信装置20は、可用性向上や負荷分散を目的として冗長構成410をとる。通信装置20が冗長構成410をとる場合、ある通信装置20に障害が発生すると、当該通信装置20を通過していたフローは冗長化された別の通信装置20を通過するよう経路が変更される。このため、通信装置20に障害が起きてもフローには障害の影響が現れない場合がある。本実施例では、管理装置50は、障害の発生した通信装置20が冗長化されているか判断し、障害の影響確度情報に冗長化の有無の情報を付加する。
<各テーブルの記憶内容例>
つぎに、情報記憶部210に記憶された各テーブルの記憶内容例について説明する。なお、以降の説明において、AAフィールドxxx(AAはフィールド名、xxxは符号)の値を、AAxxxと表記する。たとえば、通信装置IDフィールド601の値を、通信装置ID601と表記する。
図6は、通信装置管理テーブル211の一例を示す説明図である。通信装置管理テーブル211は、データネットワーク10内に存在する通信装置20の構成情報を保持する。データセンタDCiの管理者43が、入出力デバイス26を操作して、構成情報を予め設定する。ただし、管理者43が制御ネットワーク11を介して構成情報を設定できるようにしても良い。
通信装置管理テーブル211は、通信装置IDフィールド601と、管理IPアドレスフィールド602と、冗長化グループIDフィールド603と、を有し、各フィールドの値により、通信装置20の構成情報を規定するエントリを構成する。すなわち、通信装置管理テーブル211では、一つの行であるエントリが、データネットワーク10における1台の通信装置20に対応する。
通信装置IDフィールド601は、値として、通信装置ID601を格納する記憶領域である。通信装置ID601は、データセンタDCi内で通信装置20を一意に特定する識別情報である。
管理IPアドレスフィールド602は、値として、管理IPアドレス602を格納する記憶領域である。管理IPアドレス602は、通信装置ID601で特定される通信装置20のIPアドレスである。管理IPアドレス602は、他の通信装置20と制御情報をやりとりする際に用いられる。管理IPアドレス602は、sFlowの送信元となる通信装置20を特定する際や、他の通信装置20から一定期間内における各仮想ネットワークのパケット総数を取得する際(図19のSP31を参照)に使用される。
冗長化グループIDフィールド603は、値として、冗長化グループID603を格納する記憶領域である。冗長化グループID603は、通信装置20がどのように冗長化されているかを特定する情報である。冗長化されている通信装置20の組には同一の冗長化グループID603が付与される。図6の例では、通信装置ID601が「SwitchA」の通信装置20と「SwitchB」の通信装置20とに冗長化グループID603として共通の「1」が付与されている。したがって、通信装置ID601が「SwitchA」の通信装置20と「SwitchB」の通信装置20は、冗長構成をとる。
図7は、顧客情報テーブル214の一例を示す説明図である。顧客情報テーブル214は、データセンタDCiを利用する顧客の情報を保持し、各フローと顧客とを関連付ける。本実施例において、各フローと顧客の関連付けは仮想NWIDを用いる。これは通常のクラウドサービスにおいて、1つの仮想ネットワークを複数の顧客で共有することはないことに由来する。データセンタDCiの管理者43は入出力デバイス26を操作して、顧客情報テーブル214に含まれる顧客情報を予め設定する。ただし、管理者43が制御ネットワーク11を介して顧客情報を設定できるようにしても良い。
顧客情報テーブル214は、顧客IDフィールド701と、仮想NWIDフィールド702と、重要度フィールド703と、を有し、各フィールドの値により顧客情報を規定するエントリを構成する。すなわち、顧客情報テーブル214では、一つの行であるエントリが、1つの仮想ネットワークに対応する。
顧客IDフィールド701は、値として、顧客ID701を格納する記憶領域である。顧客ID701は、データセンタDCiの計算機資源やアプリケーションを利用している顧客を一意に特定する識別情報である。顧客ID701は、管理装置50が管理する複数のデータセンタDC内で一意とする。
仮想NWIDフィールド702は、値として、仮想NWID702を格納する記憶領域である。仮想NWID702は、顧客ID701で特定される顧客が利用している仮想ネットワークを一意に特定する識別情報である。
重要度フィールド703は、値として、重要度703を格納する記憶領域である。重要度703は、顧客ID701で特定される顧客に障害の影響が及んだ際のリスクの度合いを仮想NWID702ごとに示す指標であり、たとえば、高・中・低で表現される。重要度703は、顧客の障害の影響確度からデータセンタDCiの管理者43が障害対応の優先順位を考える際の参考情報として利用される。
図8および図9は、フロー解析情報DB212の一例を示す説明図である。フロー解析情報DB212は、フロー情報解析機能201がフロー統計情報30を解析することで生成されるフロー解析情報を保持する。具体的には、たとえば、フロー解析情報DB212は、フロー解析情報として、フロー特性情報テーブル800と時系列データテーブル900とを保持する。
図8は、フロー特性情報テーブル800の一例を示す説明図である。フロー特性情報テーブル800は、データネットワーク10を流れるフローのフロー特性情報を格納する。フロー特性情報は、各フローの所属する仮想ネットワークを参照する際や、sFlowフローサンプルから時系列データを生成する際に利用される。フロー特性情報テーブル800は、フローIDフィールド801と、宛先MACアドレスフィールド802と、送信元MACアドレスフィールド803と、フレームタイプフィールド804と、宛先IPアドレスフィールド805と、送信元IPアドレスフィールド806と、IPプロトコルフィールド807と、宛先ポート番号フィールド808と、送信元ポート番号フィールド809、仮想NWIDフィールド810と、を有し、各フィールドの値により、フロー特性情報を規定するエントリを構成する。フロー特性情報テーブル800では、一つの行であるエントリが、1つのフローに対応する。
フローIDフィールド801は、値として、フローID801を格納する記憶領域である。フローID801は、フローを一意に特定する識別情報である。フローID801は、データセンタDCi内で一意となる。
宛先MACアドレスフィールド802は、値として、宛先MACアドレス802を格納する記憶領域である。送信元MACアドレスフィールド803は、値として、送信元MACアドレス803を格納する記憶領域である。フレームタイプフィールド804は、値として、フレームタイプ804を格納する記憶領域である。宛先IPアドレスフィールド805は、値として、宛先IPアドレス805を格納する記憶領域である。送信元IPアドレスフィールド806は、値として、送信元IPアドレス806を格納する記憶領域である。IPプロトコルフィールド807は、値として、IPプロトコル807を格納する記憶領域である。宛先ポート番号フィールド808は、値として、宛先ポート番号808を格納する記憶領域である。送信元ポート番号フィールド809は、値として、送信元ポート番号809を格納する記憶領域である。仮想NWIDフィールド810は、値として、仮想NWID810を格納する記憶領域である。
図9は、時系列データテーブル900の一例を示す説明図である。時系列データテーブル900は、各フローの時刻別のパケット数を示す時系列データを格納する。時系列データは、通信パターン算出の際や、障害発生直前のリアルタイムデータの把握の際に利用される。時系列データテーブル900は、フローIDフィールド901と、通信装置IDフィールド902と、算出時刻フィールド903と、推定パケット数フィールド904と、取得元DCIDフィールド905と、を有し、各フィールドの値により時系列データを規定するエントリを構成する。すなわち、時系列データテーブル900では、1つの行がデータセンタDCiで取得された1時刻における1フローのデータ群に対応する。
フローIDフィールド901は、値として、フローID901を格納する記憶領域である。フローID901は、フローを一意に特定する識別情報である。フローID901は、データセンタDCi内で一意となる。なお、算出時刻903の相違により、同一フローID901のエントリが複数存在する。
通信装置IDフィールド902は、値として、通信装置ID902を格納する記憶領域である。通信装置ID902は、データセンタDCi内で通信装置20を一意に特定する識別情報である。具体的には、通信装置ID902は、フローID901で特定されるフローの算出時刻903において、パケットサンプリングで当該フローのフロー特性情報を出力した通信装置20の通信装置ID902である。
算出時刻フィールド903は、値として、算出時刻903を格納する記憶領域である。算出時刻903は、フロー情報解析機能201が時系列データを算出した際の時刻である。
推定パケット数フィールド904は、値として、推定パケット数904を格納する記憶領域である。推定パケット数904は、前回時系列データを算出してから、今回時系列データを算出するまでにデータネットワーク10iを通過した当該フローのパケット数の推定値となる通信量である。
取得元DCIDフィールド905は、値として、取得元DCID905を格納する記憶領域である。取得元DCID905は、時系列データを外部データセンタDCjから取得した場合の当該外部データセンタDCjを一意に特定する識別情報である。なお、取得元DCIDフィールド905が空(「−」で表記)であるエントリは、自身のデータセンタDCiで取得した時系列データを示す。
図10は、通信パターン情報テーブル213の一例を示す説明図である。通信パターン情報テーブル213は、データネットワーク10内に存在するフローの周期情報を含む通信パターン情報を保持する。通信パターン情報は、通信パターン解析機能202がフロー解析情報DB212を解析することで生成される情報である。
通信パターン情報テーブル213は、フィールドとして、フローIDフィールド1001と、通信経路フィールド1002と、周期性フィールド1003と、周期フィールド1004と、パターンIDフィールド1005と、データ区間フィールド1006と、を有し、各フィールドの値により、通信パターン情報を規定するエントリを構成する。すなわち、通信パターン情報テーブル213では、1つの行が通信パターン情報に対応する。具体的には、フローの周期情報は、同一行のフローID1001、周期性1003、および周期1004で構成される。
フローIDフィールド1001は、値として、フローID1001を格納する記憶領域である。フローID1001は、フローを一意に特定する識別情報である。フローID1001は、データセンタDCi内で一意となる。複数フローを組み合わせて周期が算出された場合、一エントリに複数のフローID1001が格納される。
通信経路フィールド1002は、値として、通信経路1002を格納する記憶領域である。通信経路1002は、通信経路1002は、フローID1001で特定されるフローが通過した通信装置20の識別子である通信経路IDである。
周期性フィールド1003は、値として、周期性1003を格納する記憶領域である。周期性1003は、フローID1001で特定される各フローの周期性の有無を示す情報であり、たとえば、「あり」、「なし」の2値である。「あり」の場合は、パターンID1005の通信パターンは、各データ区間1006において周期1004で繰り返す波形であることを意味する。
周期フィールド1004は、値として、周期1004を格納する記憶領域である。周期1004は、フローID1001で特定される各フローの一周期の時間(秒)である。
パターンIDフィールド1005は、値として、パターンID1005を格納する記憶領域である。パターンID1005は、フローID1001で特定される各フローの通信パターンを一意に特定する識別情報である。通信パターンは1つの周期性1003を持つフローに対し、複数存在する場合がある。
データ区間フィールド1006は、値として、データ区間1006を格納する記憶領域である。データ区間1006は、パターンID1005で特定される通信パターンの区間を規定する情報である。周期性1003が「あり」の場合、データ区間フィールド1006内の一行一行が、周期を示す。
パターンID1005のデータ区間1006内に該当する算出時刻903の推定パケット数904を時刻順に並べた時系列データは、フローの通信量(推定パケット数904)の周期的な経時的変化を示す通信パターンとなる。
図11および図12は、条件情報DB215の一例を示す説明図である。条件情報DB215は、時系列データから外れ値を検出する際や、複数フローを組み合わせる際に利用される設定情報を保持する。具体的には、たとえば、条件情報DB215は、フロー除外条件1100とフロー組み合わせ条件1200とを保持する。なお、フロー除外条件1100およびフロー組み合わせ条件1200は、具体的には、たとえば、データセンタDCiの管理者43が入出力デバイス26を利用して予め設定される。ただし、制御ネットワーク11を介して管理者43が設定できるようにしても良い。
図11は、フロー除外条件1100の一例を示す説明図である。フロー除外条件1100は、外れ値として除外されるべきフロー特性情報(フロー特性情報テーブル800のエントリ)の条件を規定する情報であり、通信パターンの解析に利用される。フロー除外条件1100は、除外条件1101を保持する。除外条件1101は、外れ値となるフロー特性情報の条件を格納する。除外条件1101は、たとえば、フロー特性情報の構成要素(フローID801以外のフロー特性情報テーブル800の値802〜810の少なくともいずれか1つ)と、任意のパラメータと、C言語における比較演算子と、論理演算子と、で表現される。例として、「フレームタイプ==“ARP”」という条件がある場合、フロー特性情報テーブル800内の各エントリのうち、フレームタイプ804が「ARP」であるエントリで規定されるフローについては、通信パターンは計算されないということを表す。
図12は、フロー組み合わせ条件1200の一例を示す説明図である。フロー組み合わせ条件1200は、周期性が見られないフローを複数組み合わせる際に、その組み合わせ方の条件を規定する情報であり、通信パターンの解析に利用される。フロー組み合わせ条件1200は、パラメータ条件1201と同一フロー数1202とを有する。これは、フローを組み合わせは「同一の送信元IPアドレス806を持ち、かつ周期性1003の無いフローが20個以上あった場合にそれらのフローを組み合わせる」というように組合せ条件を指定するためである。
パラメータ条件1201は、複数フローを組み合わせる際に一致していなければならないフロー特性情報の条件を格納する。具体的には、たとえば、パラメータ条件1201は、フロー特性情報の構成要素(フローID801以外のフロー特性情報テーブル800の値802〜810の少なくともいずれか1つ)と、C言語における比較演算子と、論理演算子と、で表現される。例として、「送信元IPアドレス1==宛先IPアドレス2」という条件がある場合、フロー特性情報テーブル800内のフローID801が「A」(以下、フローA)、「B」(以下、フローB)の各エントリにおいて、フローAの送信元IPアドレス806がフローBの宛先IPアドレス805であれば、フローAとフローBは、組合せ可能であるということを表す。
同一フロー数1202は、パラメータ条件1201の条件を満たし、かつ周期性1003の無いフローがいくつ以上必要かという情報を格納する。
図13〜図15は、外部DC情報DB216の一例を示す説明図である。外部DC情報DB216は、外部データセンタDCjにアクセスするための情報や、外部データンセンタDCjと共有した情報を保持する。外部DC情報DB216は、外部DC管理情報テーブル1300と外部DC障害テーブル1400と外部DC顧客情報テーブル1500からなる。
図13は、外部DC管理情報テーブル1300の一例を示す説明図である。外部DC管理情報テーブル1300は、外部データンセンタDCjにアクセスする情報を保持する。外部DC管理情報テーブル1300は、たとえば、後述する障害監視(SP13)で利用される。
外部DC管理情報テーブル1300は、DCIDフィールド1301と、障害推定システムIPアドレスフィールド1302と、外接IPアドレスフィールド1303と、を有し、各フィールドの値により外部データンセンタDCjにアクセスする情報を規定するエントリを構成する。外部DC管理情報テーブル1300は、具体的には、たとえば、データセンタDCiの管理者43が入出力デバイス26を利用して予め設定される。ただし、制御ネットワーク11を介して管理者43が設定できるようにしても良い。
DCIDフィールド1301は、値として、DCID1301を格納する記憶領域である。DCID1301は、データセンタDCi外の外部データセンタDCjを一意に特定する識別情報である。
障害推定システムIPアドレスフィールド1302は、値として、障害推定システムIPアドレス1302を格納する記憶領域である。障害推定システムIPアドレス1302は、DCID1301で特定される外部データセンタDCjにある管理装置50の管理IPアドレスであり、各データセンタDC内の管理装置50間の情報共有のために利用される。
外接IPアドレスフィールド1303は、値として、外接IPアドレス1303を格納する記憶領域である。外接IPアドレス1303は、DCID1301で特定される外部データセンタDCjの外接通信装置の管理IPアドレスであり、データセンタ間ネットワーク2の死活監視に利用される。外接通信装置とは、外部データセンタDCj内にあり、かつ、データセンタ間ネットワーク2に直接接続されている通信装置20jである。図5の例では、通信装置20jAが外接通信装置である。
図14は、外部DC障害テーブル1400の一例を示す説明図である。外部DC障害テーブル1400は、外部データセンタDCjにて発生した障害情報を格納する。外部DC障害テーブル1400は、外部データセンタDCjの障害の影響を受けたフローの時系列データを、誤検出を招く可能性のある外れ値として判断して不要データ削除時に削除するために利用される。
外部DC障害テーブル1400は、DCIDフィールド1401と、障害発生時刻フィールドは、値として1402と、障害復旧時刻フィールド1403と、を有し、各フィールドの値により外部データセンタDCjの障害情報を規定するエントリを構成する。
DCIDフィールド1401は、値として、DCID1401を格納する記憶領域である。DCID1401は、データセンタDCi外で障害が発生または復旧した外部データセンタDCjを一意に特定する識別情報である。
障害発生時刻フィールド1402は、値として、障害発生時刻1402を格納する記憶領域である。障害発生時刻1402は、DCID1401で特定されるデータセンタDCjで障害が発生した時刻である。
障害復旧時刻フィールド1403は、値として、障害復旧時刻1403を格納する記憶領域である。障害復旧時刻1403は、DCID1401で特定されるデータセンタDCjで障害が復旧した時刻である。
図15は、外部DC顧客情報テーブル1500の一例を示す説明図である。外部DC顧客情報テーブル1500は、外部データセンタDCjと自身のデータセンタDCiに共通して流れる共通フロー情報を保持する。外部DC顧客情報テーブル1500は、外部データセンタDCj内の時系列データを取得するために利用される。
外部DC顧客情報テーブル1500は、DCIDフィールド1501と、格納顧客IDフィールド1502と、フローIDフィールド1503と、を有し、各フィールドの値により、共通フロー情報を規定するエントリを構成する。
DCIDフィールド1501は、値として、DCID1501を格納する記憶領域である。DCID1501は、データセンタDCi外の外部データセンタDCjを一意に特定する識別情報である。
格納顧客IDフィールド1502は、値として、格納顧客ID1502を格納する記憶領域である。格納顧客ID1502は、DCID1501で特定される外部データセンタDCjと自身のデータセンタDCiに共通して存在する顧客を一意に特定する識別情報である。
フローIDフィールド1503は、値として、フローID1503を格納する記憶領域である。フローID1503は、DCID1501で特定される外部データセンタDCjと自身のデータセンタDCiに共通して存在するフローを一意に特定する識別情報である。
<顧客障害影響推定シーケンス>
つぎに、顧客障害影響推定シーケンスについて説明する。顧客障害影響推定シーケンスは、通信装置20から送信されてくるフロー統計情報30を解析することにより顧客障害影響を推定するシーケンスである。フロー統計情報30は、たとえば、sFlowサンプルパケットとする。
図16は、サンプルパケットのフォーマット例を示す説明図である。サンプルパケット1600は、ヘッダ部1601とデータ部1602とを有する。ヘッダ部1601は、IPヘッダ1611とUDP(User Datagram Protocol)ヘッダ1612とsFlowヘッダ1613とを有する。データ部1602は、フローサンプルヘッダ1621とフローサンプルデータ1622との組み合わせをフローごとに含む。
フローサンプルデータ1622は、図2に示したフロー統計情報30である。フローサンプルデータ1622には、たとえば、(A),(B)の2種類のフォーマットがある。(A)は、VLANで仮想ネットワークを実現した場合のフローサンプルデータ1622のフォーマット例である。(B)は、VxLANで仮想ネットワークを実現した場合のフローサンプルデータ1622のフォーマット例である。(A),(B)の違いは、たとえば、外部ヘッダ1630の有無や仮想NWID1636として参照するデータである。(A),(B)の両フォーマットは、宛先MACアドレス1631、送信元MACアドレス1632、仮想NWID1633、フレームタイプ1634、宛先IPアドレス1635、送信元IPアドレス1636、IPプロトコル1637、宛先ポート番号1638、および送信元ポート番号1639を有する。なお、宛先MACアドレス1631〜送信元ポート番号1639が、フロー特性情報としてフロー特性情報テーブル800に格納される。
図17は、フロー統計情報解析結果テーブルの一例を示す説明図である。フロー統計情報解析結果テーブル1700は、フロー解析情報DB212に格納される。フロー統計情報解析結果テーブル1700は、フロー統計情報30(フローサンプルデータ1622)の解析結果を格納するテーブルである。フロー統計情報解析結果テーブル1700は、フローIDフィールド1701と、通信装置IDフィールド1702と、取得時刻フィールド1703と、を有し、各フィールドの値により、フローごとの解析結果を規定するエントリを構成する。
フローIDフィールド1701は、値として、フローID1701を格納する記憶領域である。フローID1701は、フローを一意に特定する識別情報であり、サンプルパケット1600に含まれるフロー特性情報に対応する。
通信装置IDフィールド1702は、値として、通信装置ID1702を格納する記憶領域である。通信装置ID1702は、データセンタDCi内で通信装置20を一意に特定する識別情報である。具体的には、通信装置ID1702は、フローID801で特定されるフローにおいて、サンプルパケット1600を送信した通信装置20の識別情報である。具体的には、たとえば、通信装置ID1702は、サンプルパケット1600のIPヘッダ1611に含まれる送信元IPアドレスに一致する管理IPアドレス602に対応する通信装置ID601である。
取得時刻フィールド1703は、値として、取得時刻1703を格納する記憶領域である。取得時刻1703は、通信装置20からサンプルパケット1600を受信して、フロー統計情報30(フローサンプルデータ1622)を取得した時刻である。
図18は、顧客障害影響推定シーケンス例を示す説明図である。顧客障害影響推定シーケンス例は、通信装置20からサンプルパケット1600を受信し、サンプルパケット1600からフロー統計情報(フローサンプルデータ1622)を取得してから、管理装置50が障害発生時に各顧客の障害影響確度を推定し、障害影響情報を送信するまでの処理の一連の流れを示す。なお、図18において点線で囲まれた処理(SP3〜SP13)の各々は、たとえば、一定時間間隔またはイベント駆動により実行される処理である。
管理装置50が通信装置20からのサンプルパケット1600内のフロー統計情報30を取得すると(SP1)、まず、フロー情報解析機能201がフロー統計情報解析を行う(SP2)。フロー統計情報解析(SP2)とは、具体的には、たとえば、フロー統計情報30(フローサンプルデータ1622)を解析して、データセンタDCi内に流れるフローの特性を調べる処理であり、公知の技術を用いて実現される。本実施例において、フロー統計情報30はsFlowサンプルパケットであるため、フロー統計情報解析(SP2)はsFlowフローサンプルの構文解析(パース)処理である。
具体的には、たとえば、フロー統計情報解析(SP2)において、フロー情報解析機能201は、フロー統計情報30(フローサンプルデータ1622)をサンプルパケット1600に対応したパケット解析プログラムに入力する。フロー情報解析機能201は、フロー統計情報30(フローサンプルデータ1622)に含まれるフロー特性情報をフローごとに取得する。そして、フロー情報解析機能201は、フローID801を発行して、当該フローID801と取得したフロー特性情報とを関連付けて、図8のフロー特性情報テーブル800のエントリを生成する。なお、一致するフロー特性情報を有するエントリがすでにフロー特性情報テーブル800に存在する場合は、フロー情報解析機能201は、エントリを生成しない。
また、フロー情報解析機能201は、発行したフローID801を、フロー統計情報解析結果テーブル1700のフローIDフィールド1701にフローID1701として格納する。また、フロー情報解析機能201は、通信装置管理テーブル211を参照して、サンプルパケット1600のIPヘッダ1611に含まれる送信元IPアドレスに一致する管理IPアドレス602を特定し、特定した管理IPアドレスに対応する通信装置ID601を特定する。そして、フロー情報解析機能201は、特定した通信装置ID601を、上記格納したフローID1701と同一エントリの通信装置IDフィールド1702に、通信装置ID1702として格納する。
また、フロー情報解析機能201は、フローID1701として格納されたフローID801で特定されるフローについて、通信装置20からサンプルパケット1600を受信して、フロー統計情報(フローサンプルデータ1622)を取得した時刻を、取得時刻1703として取得時刻フィールド1703に格納する。これにより、フロー統計情報解析結果テーブル1700のエントリが生成される。
これにより、フロー情報解析機能201は、フロー統計情報解析(SP2)を終了する。なお、フロー統計情報解析結果テーブル1700のエントリは、後述する時系列データ算出(SP3)が実行されるまで、主記憶デバイス303に保存され、時系列データ算出(SP3)の終了後にフロー情報解析機能201が削除する。
つぎに、フロー情報解析機能201は、決められた間隔(たとえば、10分おきなど)で時系列データ算出を行う(SP3)。時系列データ算出(SP3)の詳細は、図19で後述する。算出される時系列データは、図9に示した時系列データテーブル900のフローごとのエントリである。フロー情報解析機能201は、算出した時系列データを通信パターン解析機能202に提供する。当該時系列データは、通信パターン推定(SP11)で利用される。
また、外部連携機能204は、DC間データ共有を行う(SP5)。DC間データ共有は、外部連携機能204を有する管理装置50iが所属するデータセンタDCiおよび外部データセンタDCj(以下、複数のデータセンタDC)に跨ったフローの時系列データを当該複数のデータセンタDC間で共有することを目的とした処理である。DC間データ共有(SP5)は、複数のデータセンタDCに跨ったフローの通信パターンをより正確に推定できる可能性を高める。DC間データ共有(SP5)は大きく3つの処理(SP5−1〜SP5−3)で構成される。以下、処理内容を詳述する。
第一の処理(SP5−1)は、自身のデータセンタDCi内に格納された顧客情報(顧客情報テーブル214のエントリ)を外部データセンタDCjに通知する処理である。第一の処理(SP5−1)は、たとえば、一定時間間隔おきに実行される。外部連携機能204は、顧客情報テーブル214内のエントリを、外部DC管理情報テーブル1300の障害推定システムIPアドレス1302を宛先として送信する。なお、外部連携機能204は、顧客情報として全フィールドの値を毎回送信しても良いし、前回送信した顧客情報からの差分情報(ただし、顧客ID701は必ず含む)のみ送信しても良い。
第二の処理(SP5−2)は、外部データセンタDCjからの情報取得要求に応答し、該当する情報を送信する処理である。外部データセンタDCjから要求される情報は、たとえば、顧客ID701で特定される顧客のフロー特性情報または仮想NWID810以外のフロー特性情報で示される特定のフローの時系列データの2種類である。
特定の顧客のフロー特性情報を要求された場合、外部連携機能204は、要求された特定の顧客の顧客ID701に関連付けされた1以上の仮想NWID702を顧客情報テーブル214から取得する。つぎに、外部連携機能204は、フロー特性情報テーブル800から、取得した仮想NWID702を含むフロー特性情報を仮想NWID702に一致する仮想NWID810ごとに取得する。そして、外部連携機能204は、取得したフロー特性情報からフローID801および仮想NWID810を除いた情報を、要求元の外部データセンタDCjに送信する。
また、特定のフローの時系列データを要求された場合、外部連携機能204は、フロー特性情報テーブル800から、要求されたフローのフロー特性情報に一致するフローID801を取得する。つぎに、外部連携機能204は、時系列データテーブル900を参照して、取得したフローID801と一致するフローID901のエントリ(複数個ある場合がある)を取得する。そして、外部連携機能204は、取得したエントリのうち、取得元DCID905が空(すなわち、自身のデータセンタDCiで取得した時系列データ)かつ、算出時刻903が現在時刻から予め定められた一定時刻前までのエントリ群を抽出する。その後、外部連携機能204は、抽出したエントリ群の算出時刻903および推定パケット数904を、要求元の外部データセンタDCjに送信する。
なお、第二の処理(SP5−2)で送信される情報は前回要求されてからの差分情報だけでも良い。また、要求のたびに情報を送信するのではなく、一度情報取得要求を行ったデータセンタDCjに対して、定期的に新規情報を送信するようにしても良い。
第三の処理(SP5−3)は、外部データセンタDCjから、自身のデータセンタDCiと外部データセンタDCjに跨って流れるフローの時系列データを取得する処理である。まず、外部連携機能204は、外部データセンタDCjが格納する顧客情報を把握するため、外部データセンタDCjから定期的に送信される顧客IDを外部DC顧客情報テーブル1500の格納顧客IDフィールド1502に格納する。
ここで、格納顧客ID1502と同一の顧客IDが顧客情報テーブル212の顧客IDフィールド701に存在する場合、外部連携機能204は、当該顧客ID701のフロー特性情報の取得要求を外部データセンタDCjに送信する。このフロー特性情報の取得要求により、外部連携機能204は、外部データセンタDCjから、外部データセンタDCjに流れる当該顧客ID701のフロー特性情報群を受信する。当該フロー特性情報群を受信後、外部連携機能204は、受信したフロー特性情報に一致するフローをフロー特性情報テーブル800から検索する。
受信したフロー特性情報に一致するフローが存在する場合、外部連携機能204は、そのフローは自身のデータセンタDCiと外部データセンタDCjに跨って流れていると判断する。そして、外部連携機能204は、当該フローのフロー特性情報をキーとして、当該フローの時系列データ取得要求を外部データセンタDCjに送信する。これにより、外部連携機能204は、外部データセンタDCjから、外部データセンタDCjに流れる当該顧客ID701の時系列データを受信する。
時系列データを受信後、外部連携機能204は、受信した時系列データを時系列データテーブル900に格納する。このとき、外部連携機能204は、フロー特性情報テーブル800から当該フローのフロー特性情報と一致するエントリのフローID801を取得して、フローIDフィールド901に格納し、通信装置IDフィールド902に空の値を格納し、取得元DCフィールド905に時系列データを送信した外部データセンタDCjのDCIDを格納する。
ここで、DC間データ共有(SP5)は、各データセンタDCiの管理装置50による自律分散型の処理であるが、自律分散処理に限定されるものでは無く、集中管理型であっても良い。集中管理型のDC間データ共有(SP5)では、管理装置50は、たとえば、特定の管理装置50に管理対象の全データセンタDCiの顧客情報、フロー特性情報、または時系列データを集約する。そして、各データセンタDCiの管理装置50は、これらの情報が集約された特定の管理装置50から必要な情報を取得することで実現できる。DC間データ共有(SP5)により取得した時系列データは、通信パターン推定で利用される(SP6)。
つぎに、外部データセンタDCjの障害情報が通知された際(SP7)、外部連携機能204は、外部DC障害登録を行う(SP8)。障害情報とは、障害が発生したことを通知する障害発生情報または障害が復旧したことを通知する障害復旧情報の総称である。障害情報が障害発生情報の場合、障害発生時刻を含み、障害復旧情報の場合は障害復旧時刻を含む。
外部DC障害登録(SP8)は、外部データセンタDCjの障害情報を外部DC障害テーブル1400に登録する処理である。具体的には、たとえば、外部DC障害登録(SP8)が開始されると、外部連携機能204は、障害情報の送信元IPアドレスをキーとして外部DC管理情報テーブル1300を検索し、障害情報の送信元IPアドレスに一致する障害推定システムIPアドレス1302を特定し、障害推定システムIPアドレス1302に対応するDCID1301を抽出する。外部連携機能204は、抽出したDCID1301を、外部DC障害テーブル1400のDCIDフィールド1401に格納する。
また、外部連携機能204は、障害情報内の障害発生時刻または障害復旧時刻を、外部DC障害テーブル1400の障害発生時刻1402または障害復旧時刻1403に格納する。外部DC障害テーブル1400の情報は、通信パターン解析機能202が、通信パターン推定(SP11)を行う際、自身のデータセンタDCiと外部データセンタDCjに跨って流れるフローの通信パターンが、外部データセンタDCjの障害の影響で変化した可能性を判断するために利用される(SP9)。
不要データ削除機能205は、決められた間隔(たとえば、24時間おきなど)で不要データ削除処理を実施する(SP10)。不要データ削除処理(SP10)は、フロー特性情報テーブル800、時系列データテーブル900、および、外部DC顧客情報テーブル1500から一定の条件を満たしたデータを削除する処理である。不要データ削除処理(SP10)は、管理装置50が保持するデータ量を削減し、かつ誤ったデータを参照することによる影響確度の誤推定を抑制することができる。これにより、影響確度推定精度が向上する。不要データ削除処理(SP10)の詳細は、図21で詳述する。
通信パターン解析機能202は、たとえば、決められた時間間隔(1時間おきなど)で通信パターン推定を実行する(SP11)。通信パターン推定(SP11)は、時系列データテーブル900や外部DC障害テーブル1400を用い、データネットワーク10を流れるフローの通信パターンを周期性に基づいて推定する処理である。通信パターン推定(SP11)は、各フローの通信パターンを生成し、障害発生時に各フローが通信していた確度を推定することを可能にする。通信パターン推定(SP11)の詳細は、図22で詳述する。ここで算出した通信パターンは、障害の影響確度推定処理で利用される(SP12)。
障害検知機能206は、常時、障害監視を実行する(SP13)。ただし、障害監視(SP13)は外部の障害監視装置を用いて実施しても良い。障害監視(SP13)は、自身のデータセンタDCiやデータセンタ間ネットワーク2についての障害の発生または復旧を検知する。本実施例において障害監視(SP13)が対象とする障害は、一例として、通信装置20が稼働しているかという単純な死活監視のみであるが、これ以外に外部の障害監視装置を用いて、通信装置20のインタフェースごとの死活監視や仮想ネットワークごとのエラーパケット数の増加率を監視してもよい。
障害監視(SP13)は、たとえば、決められた間隔(10秒おきなど)で通信装置20の管理IPアドレスへの疎通を確認することで実現される。ここで用いられる管理IPアドレスは、通信装置管理テーブル211の管理IPアドレス602や外部DC管理情報テーブル1300の外接IPアドレス1303である。障害検知機能206は、これらのIPアドレスに対し、たとえば、ICMP(Internet Control Message Protocol)のEcho Requestパケットを送信し、一定時間以上ICMPのEcho Replyパケットが返送されなければ、障害が発生したと判断する。
反対に、障害状態から通信装置20の管理IPアドレスへの疎通が再開すれば、障害検知機能206は、当該通信装置20の障害が復旧したと判断する。なお、外部データセンタDCjの外接通信装置の死活監視に失敗した際は、障害検知機能206は、データセンタ間ネットワーク2に障害が発生したと判断し、反対に障害状態から疎通が再開すれば、データセンタ間ネットワーク2に障害が復旧したと判断する。
障害監視(SP13)により障害の発生または復旧が検知されると、障害検知機能206は、影響確度推定機能203および外部連携機能204に障害情報を通知する(SP14)。上述したように、障害情報には、障害発生情報と障害復旧情報の2種類がある。障害発生情報は、障害発生時刻と、障害の発生した通信装置の通信装置IDとを含む。データセンタ間ネットワーク2で障害が発生した場合は、これに加え、障害の影響を受けた可能性のあるフロー一覧も含まれる。一方、障害復旧情報は、障害復旧時刻と、障害の復旧した通信装置の通信装置IDとを含む。
障害情報の通知(SP14)を受けると、外部連携機能204は障害情報通知を行う(SP15)。障害情報通知(SP15)とは、障害情報を外部データセンタDCjに通知する処理である。外部データセンタDCjに通知する障害情報は、前述のように外部データセンタDCjの情報をもとに通信パターンの外れ値を検出するために利用される。具体的には、たとえば、障害情報通知(SP15)では、外部連携機能204は、障害発生情報の通知を受けると(SP14)、障害発生情報に含まれている障害発生時刻および障害の発生した通信装置IDを保持しておき、障害復旧情報の通知を受けると、保持した障害発生時刻の中から、通知された障害復旧情報と通信装置IDが等しく、かつ障害発生時刻が最も新しい障害発生情報を呼び出す。そして、外部連携機能204は、障害発生時刻および障害復旧時刻を格納した外部DC障害情報を、連携する全外部データセンタDCjに送信する。
最後に、影響確度推定機能203は、障害発生情報の通知(SP14)を受けると、影響確度推定を実行する(SP16)。影響確度推定(SP16)は、通信パターン情報を基に、障害発生時に各フローが障害の発生した通信装置を通過していた確度の推定により、障害時に影響を顧客が受けた確度を算出する。影響確度推定(SP16)の詳細は図23で後述する。影響確度推定機能203は、影響確度推定処理が終了すると、通知先40に影響確度情報32を送信する(SP17)。
<顧客障害影響推定シーケンス内処理のフローチャート>
[時系列データ算出(SP3)]
図19は、図18に示したフロー情報解析機能201における時系列データ算出(SP3)の詳細な処理手順例を示すフローチャートである。時系列データ算出(SP3)は決められた間隔(以降、時系列算出間隔と呼称する)で実行される。時系列データ算出(SP3)は、フロー統計情報解析結果テーブル1700に格納されたフローの情報から、時系列算出間隔の時間帯に通過した各フローの推定パケット数を算出する処理である。
なお、時系列データ算出(SP3)は、単純にサンプルパケット1600の数をカウントするのではなく、通信装置20の仮想NW統計算出機能23がカウントしている仮想ネットワークごとの通過パケット総数とサンプルパケット1600の情報を組み合わせてパケット数の推定精度を向上させる。また、時系列データ算出(SP3)は、複数の通信装置20でそれぞれ算出した推定パケット数の平均値を最終的な出力にすることでパケット数の推定精度を向上させる。
時系列データ算出(SP3)が開始されると、フロー情報解析機能201は、まず、各仮想ネットワーク内における各フローのサンプルパケット1600の取得割合を通信装置IDごとに算出する(SP30)。具体的には、たとえば、フロー情報解析機能201は、フロー統計情報解析結果テーブル1700の全エントリ、すなわち、時系列データ算出間隔の時間帯にデータネットワーク10でサンプリングされたサンプルパケット1600を通信装置ID1702ごとに分類する。また、フロー情報解析機能201は、フロー特性情報テーブル800を参照して、フローID1701に一致するフローID801のエントリを検索し、当該エントリの仮想NWID810を特定する。フロー情報解析機能201は、特定した仮想NWID810ごとのエントリ数(以下、「通信装置別仮想NWサンプル数」と呼称)を計数する。
また、フロー情報解析機能201は、フロー統計情報解析結果テーブル1700を参照して、同一仮想ネットワーク内でフローID1701ごとのエントリ数(以下、「通信装置別仮想NW別フローサンプル数」と呼称)を計数する。その後、フロー情報解析機能201は、通信装置別仮想NW別フローサンプル数を通信装置別仮想NWサンプル数で割った値(以下、「通信装置別仮想NW別フローサンプル割合」と呼称)を算出する。ここで、単純な例で上記内容を説明する。
図20は、サンプルパケット1600の取得割合(SP30)の一例を示す概念図である。楕円2000は、時系列データ算出間隔の時間帯でのフロー統計情報解析結果テーブル1700の全エントリである。当該全エントリ2000は、通信装置ID1702ごとに分類されるが、図20では、全エントリ2000は、通信装置ID1702として、Sw1(左上の扇形)、Sw2(右上の扇形)、Sw3(左下の扇形)、Sw4(右下の扇形)の4つのエントリ群に分類される。各扇形で示した通信装置ID(Sw1〜Sw4)ごとのエントリ群は、さらに、フローID1701に一致するフローID801に対応する仮想NWID810ごとに分類される。
Sw1(左上の扇形)のエントリ群に着目すると、Sw1(左上の扇形)のエントリ群で特定されるフローは、仮想NW1〜仮想NW4で通信されるため、仮想NW1〜仮想NW4のエントリ群に分類される。また、そのうち、仮想NW1のエントリ群に着目すると、仮想NW1のエントリ群で特定されるフローは、フローA,B,Cの3種類である。ここで、仮想NW1のエントリ群におけるエントリ数Nが、通信装置ID1702が「Sw1」で、かつ、仮想NWID810が「仮想NW1」である通信装置別仮想NWサンプル数である。
また、フローAのエントリ群におけるエントリ数NAが、通信装置ID1702が「Sw1」で、かつ、仮想NWID810が「仮想NW1」であるフローAの通信装置別仮想NW別フローサンプル数である。同様に、フローBのエントリ群におけるエントリ数NBが、通信装置ID1702が「Sw1」で、かつ、仮想NWID810が「仮想NW1」であるフローBの通信装置別仮想NW別フローサンプル数である。同様に、フローCのエントリ群におけるエントリ数NCが、通信装置ID1702が「Sw1」で、かつ、仮想NWID810が「仮想NW1」であるフローCの通信装置別仮想NW別フローサンプル数である。
上記の例では、通信装置別仮想NWサンプル数Nは、フローA〜Cの通信装置別仮想NW別フローサンプル数NA〜NCの合計値である。フローA〜C別の通信装置別仮想NW別フローサンプル割合PA〜PCは、以下の通りである。
PA=NA/N
PB=NB/N
PC=NC/N
図19に戻り、フロー情報解析機能201は、データネットワーク10内の各通信装置20にアクセスし、通信装置20の仮想NW統計算出機能23が算出した時系列データ算出間隔の時間帯に通過した仮想ネットワーク内のパケット総数(以下、「仮想NWパケット総数」と呼称)を取得する(SP31)。ここで、各通信装置20にアクセスするためのプロトコルにはTELNETやSSH(Secure Shell)などの公知技術が利用できる。なお、仮想NW統計算出機能23から通信装置20の起動時からの仮想NWパケット総数しか取得できない場合、フロー情報解析機能201は、今回取得した「仮想NWパケット総数」から、1回前の時系列データ算出(SP30)の際に取得した「仮想NWパケット総数」を減算することで「仮想NWパケット総数」を算出する。
つぎに、フロー情報解析機能201は、各フローの通信装置別仮想NW別フローサンプル割合PA〜PCと、通信装置別仮想NW別フローサンプル割合PA〜PCに通信装置20および仮想ネットワークが対応する仮想NWパケット総数と、を乗算することで、各フローの推定パケット数を算出する(SP32)。
具体的には、たとえば、図20において、通信装置ID1702が「Sw1」で、かつ、仮想NWID810が「仮想NW1」である仮想NWパケット総数をNZとする。各フローA〜Cの推定パケット数NeA〜NeCは、以下の通りである。
NeA=NZ×PA
NeB=NZ×PB
NeC=NZ×PC
つぎに、フロー情報解析機能201は、ステップSP32で通信装置20ごとに算出した各フローの推定パケット数NeA〜NeCの通信装置20間の平均値(以下、「平均推定パケット数」と呼称)を算出する(SP33)。たとえば、フローAについて、時系列データテーブル900の通信装置IDフィールド902に、Sw1,Sw2が存在すると仮定する。上述の例では、通信装置ID1702:「Sw1」について、推定パケット数NeAが算出されたが、同様に、Sw2についても推定パケット数が算出される。フロー情報解析機能201は、両推定パケット数の平均値を算出することにより、平均推定パケット数を得る。
なお、フローの通信経路外の通信装置20の影響で平均値に誤差を発生させないようにするため、当該フローの推定パケット数が算出されなかった(すなわち、フローが通過しなかった、またはサンプリングから漏れた)通信装置20は、当該フローの平均計算から除外される。また、冗長化された通信装置20の場合、フロー情報解析機能201は、冗長化グループID603が同一である各通信装置20の推定パケット数を予め1つに合算した後、それ以外の通信装置20と平均推定パケット数計算を行う。これは、複数の通信装置20を同時に利用する冗長化の場合、1つのフローが複数の通信装置20に分散されるためである。
最後に、フロー情報解析機能201は、算出結果を時系列データテーブル900に格納する(SP34)。具体的には、たとえば、フロー情報解析機能201は、フローIDフィールド901に当該フローのフローIDを格納する。フロー情報解析機能201は、通信装置IDフィールド902に、時系列データ算出間隔の時間帯でのサンプルパケット1600の取得元となる通信装置20の通信装置IDを格納する。フロー情報解析機能201は、算出時刻フィールド903に、時系列データ算出(SP3)を実行した時刻を格納する。フロー情報解析機能201は、推定パケット数フィールド904にSP33で算出した平均推定パケット数を格納する。フロー情報解析機能201は、取得元DCIDフィールド905に空値(図9では、「−」)を格納する。これにより、フロー情報解析機能201は、時系列データ算出(SP3)を終了する。
このように、時系列データ算出(SP3)では、単純にサンプルパケット1600の数をカウントするのではなく、通信装置20の仮想NW統計算出機能23がカウントしている仮想ネットワークごとの通過パケット総数とサンプルパケット1600の情報を組み合わせるため、パケット数の推定精度の向上を図ることができる。
また、時系列データ算出(SP3)では、複数の通信装置20でそれぞれ算出した推定パケット数の平均値を最終的な出力にすることにより、パケット数の推定精度の向上を図ることができる。
[不要データ削除(SP10)]
図21は、不要データ削除機能205における不要データ削除(SP10)の詳細な処理手順例を示すフローチャートである。不要データ削除(SP10)は、たとえば、決められた間隔で実行され、フロー特性情報テーブル800と通信パターン情報テーブル213から、現在利用されていない可能性の高いデータを削除する処理である。不要データ削除(SP10)は、管理装置50が保持するデータ量を削減し、影響確度推定時の精度を向上させる。
不要データ削除(SP10)が開始されると、不要データ削除機能205は、まず、フロー特性情報テーブル800から、未選択のフローID801を1つ選択する(SP40)。
つぎに、不要データ削除機能205は、時系列データテーブル900から、SP40での選択フローID801と同一のフローID901のエントリのうち、最後に取得したエントリの算出時刻903を取得する。そして、不要データ削除機能205は、最後に取得したエントリのフローID901で示されるフローが、現在時刻までの一定期間に新規サンプルパケット1600を受信したか否かを判断する(SP41)。具体的には、たとえば、不要データ削除機能205は、取得した算出時刻903と現在時刻との差分がデータセンタDCiの管理者などにより設定された値(以下、「フロー生存期間」と呼称)より大きいか否か判断する。大きい場合、当該フローID901で示されるフローは一定期間新規サンプルパケット1600を受信していないことを意味する。したがって、S41:Noとなり、SP43に移行する。
一方、大きくない場合、当該フローID901で示されるフローは一定期間新規サンプルパケット1600を受信したことを意味する。したがって、S41:Yesとなり、SP42に移行する。
SP42において、不要データ削除機能205は、当該フローID901で示されるフローに関連する情報を削除して(SP42)、SP43に移行する。削除される関連情報は、フロー特性情報テーブル800、時系列データテーブル900、および、外部DC顧客情報テーブル1500において、当該フローID901に一致するフローIDのエントリである。
SP43において、不要データ削除機能205は、通信パターン情報テーブル213から、当該フローIDと同一のフローID1001を持つエントリを取得する(SP43)。
その後、不要データ削除機能205は、SP43の取得エントリにおいて、通信パターンを特定するパターンID1005およびそれに対応するデータ区間1006を参照し、現在時刻までの一定期間に新規時系列データが分類されていない通信パターンがあるか否かを判断する(ステップS44)。具体的には、たとえば、不要データ削除機能205は、それぞれの通信パターンにおいて、最後にデータが分類された時刻と現在時刻との差分がデータセンタDCiの管理者により設定された値(「通信パターン生存期間」と呼称)より大きいか否かを判断する。大きい場合は、当該通信パターンは、現在時刻までの一定期間に新規時系列データが分類されていないことを示し、大きくない場合は、現在時刻までの一定期間に新規時系列データが分類されたことを示す。
現在時刻までの一定期間に新規時系列データが分類されていない通信パターンが1つもない場合(SP44:No)、いずれの通信パターンも一定期間内に新規時系列データが分類されたことになり、SP46に移行する。一方、現在時刻までの一定期間に新規時系列データが分類されていない通信パターンがある場合(SP44:Yes)、当該通信パターンは、データセンタDCiや顧客システムの構成変更により、現在は現れない通信パターンである可能性がある。このような通信パターンの存在は、障害影響推定時の誤推定の要因となる。
一方、単純に当該通信パターンに含まれる時系列データを削除すると、通信パターンの推定時、特定の期間の時系列データを失う(すなわち、通信量が0と認識される)ため、周期を誤検出する可能性が高まる。そこで、不要データ削除機能205は、当該通信パターンに最後に分類された時系列データより過去の当該フローIDで示されるフローの時系列データを時系列データテーブル900からすべて削除する(SP45)。
そして、不要データ削除機能205は、フロー特性情報テーブル800における全フローに対してステップSP41〜ステップSP45の処理を実行したか否かを判断する(SP46)。全フロー実行済みでない場合(SP46:No)、SP40に戻る。一方、全フロー実行済みである場合(SP46:Yes)、不要データ削除機能205は、不要データ削除(SP10)を終了する。これにより、管理装置50が保持するデータ量が削減され、影響確度推定時の精度が向上する。
[通信パターン推定(SP11)]
図22は、通信パターン解析機能202における通信パターン推定(SP11)の詳細な処理手順例を示すフローチャートである。通信パターン解析機能202は、たとえば、決められた間隔(以下、「通信パターン推定間隔」と呼称する)で実行される。通信パターン解析機能202は、時系列データテーブル900に格納されたフローの時系列データから各フローの周期性に基づいて、各フローの通信パターンを推定する。
なお、通信パターン推定(SP11)では、顧客システムのメンテナンスなどに起因する各フローの通信パターンの外れ値を判別すべく、通信パターン解析機能202は、1つのフローから複数の通信パターンを算出する。また、通信パターン解析機能202は、外部データセンタDCjの障害により、通常とは異なる通信パターンが生成された可能性を判断し、該当する通信パターンを外れ値みなす処理を行う。
また、通信パターン解析機能202は、ブロードキャストなど顧客の通信利用とは無関係に送受信されるフローをパケットの情報に基づき外れ値として除外する。また、通信パターン解析機能202は、単一フローでは周期性がなくとも複数フローを組み合わせることで周期性が確認されるフローは複数組み合わせて通信パターンを算出する。さらに、通信パターン解析機能202は、周期性が見られないフローも仮の周期で通信パターンを算出する。これにより、周期性の無いフローを持つ顧客に対しても障害の影響確度推定が可能となる。
通信パターン推定(SP11)が開始されると、通信パターン解析機能202は、まず、通信パターン情報テーブル213における、過去の通信パターン情報を含むエントリをすべて削除することにより、通信パターン情報テーブル213を初期化する(SP59)。これは、時系列データ数が足りないために、誤った周期を算出した周期を保持することを防ぐためである。このため、時系列データが増加しても周期が変化しないなど、安定した周期を算出するフローを識別する情報を通信パターン情報に付与し、周期の安定したフローの通信パターン情報を含むエントリは削除しないこととしても良い。
つぎに、通信パターン解析機能202は、フロー特性情報テーブル800から、未選択のフローのフローID801を選択する(SP61)。その後、通信パターン解析機能202は、フロー特性情報テーブル800から選択フローIDのエントリであるフロー特性情報を取得し、当該フロー特性情報がフロー除外条件1100に接触するか否かを判断する(SP62)。抵触する場合(SP61:Yes)、選択フローは顧客の通信利用とは関係無く送受信されたフローであるとみなされる。したがって、通信パターン解析機能202は、選択フローIDの通信パターン推定(SP11)を中止し、SP60から処理をやり直す。一方、抵触しない場合(SP61:No)、通信パターン解析機能202は、時系列データテーブル900から選択フローIDと同一フローID901の全エントリである時系列データを取得する(SP62)。
その後、通信パターン解析機能202は、選択フローが周期性を持つか判断する(SP63)。周期性の有無の判断には、たとえば、フーリエ解析やウェーブレット解析が用いられる。具体的には、たとえば、フーリエ解析の場合、SP62での取得時系列データの算出時刻903と推定パケット数904をフーリエ変換し、取得時系列データの周波数の分布関数を算出する。この分布関数は、取得時系列データ内に含まれる周波数(周期の数)をスペクトル強度で表現した関数である。
分布関数において、周波数が1(周波数1は周期が無いとみなす)以外で、かつ最もスペクトルが強く、かつ他の周波数とのスペクトルとの差(たとえば、周波数の分布関数における標準偏差との差)が一定以上の周波数を、取得時系列データの周波数とみなす。通信パターン解析機能202は、「取得時系列データの取得期間÷取得時系列データの周波数」から周期を算出する。取得時系列データの取得期間とは、選択フローの時系列データを示すエントリ群のうち最新の算出時刻903から最古の算出時刻903を引いた期間である。
通信パターン解析機能202は、周期の算出の可否により通信の周期性の有無を判断する。周期が算出できない場合、選択フローは周期が無いとして(SP63:No)、通信パターン解析機能202は、選択フローの通信パターン推定(SP11)を中止し、ステップSP60から処理をやり直す。
一方、周期が算出できた場合、通信の周期性ありとして(SP63:Yes)、通信パターン解析機能202は、周期情報(周期1004および周期性1003)となるSP63での算出周期および周期性有りを示す情報と、通信経路1002となる取得時系列データ内の通信装置の通信装置IDとを、選択フローID901に関連づけて通信パターン情報テーブル213に登録する。なお、通信経路1002については、仮想マシンの移動などによる経路変更があった場合を考慮して、取得時系列データ中の直近一定時間のエントリからのみ通信装置IDを参照するようにしても良い。
つぎに、通信パターン解析機能202は、取得時系列データを算出周期ごとに分割し、1周期分の時系列データ(「1周期データ」と呼称)を複数作成する(SP65)。そして、通信パターン解析機能202は、外部DC障害の影響を受けた1周期データを除外する(SP66)。具体的には、たとえば、通信パターン解析機能202は、選択フローIDが外部DC顧客情報テーブル1500のフローID1503に含まれるフローについて、複数の1周期データのうち、周期の時刻が外部DC障害テーブル1400の障害発生時刻1402から障害復旧時刻1403に含まれる1周期データを外れ値として破棄する。ただし、時系列データテーブル900からの削除はしない。
その後、通信パターン解析機能202は、類似する1周期データをグループ化してデータ区間1006とし、各グループに一意のパターンID1005を付与し、通信パターン情報として、パターンID1005およびデータ区間1006を通信パターン情報テーブル213に登録する(SP67)。
ここで、1周期データの類似について説明する。たとえば、複数の1周期データについて、相関分析で算出される相関係数が一定以上である場合、当該複数の1周期データは類似するとして、グループ化の対象となる。また、たとえば、複数の1周期データについて、動的時間伸縮法で算出されるDTW(Dynamic_Time_Warping)距離が一定以下である場合、当該複数の1周期データは類似するとして、グループ化の対象となる。通信パターン情報テーブル213の登録時のデータ区間フィールド2006には、通信パターンとしてグループ化された時系列データの時刻情報の集合が格納される。図10のフローID1001:Flow1のエントリでは、パターンID1005が2つ(Patturn1とPatturn2)存在するため、2つのグループにグループ分けされたことを示す。
そして、通信パターン解析機能202は、フロー特性情報テーブル800における全フローに対し、ステップSP59〜ステップSP67が実行済みであるか否かを判断する(SP68)。全フロー実行済みでない場合(SP68:No)、SP60に戻る。
一方、全フロー実行済みである場合(SP68:Yes)、通信パターン解析機能202は、フロー特性情報テーブル800において、ステップSP63で周期性が無いと判断されたフロー(「無周期フロー」と呼称)内で、図12のフロー組み合わせ条件1200を満たす無周期フローの組み合わせがあるか否かを判断する(SP69)。具体的には、たとえば、通信パターン解析機能202は、パラメータ条件1201を満たした無周期フローが同一フロー数1202の値以上あるか否かを判断する。
無周期フローの組み合わせがある場合(SP69:Yes)、通信パターン解析機能202は、フロー組み合わせ条件1200を満たす無周期フローの組み合わせを1つのフローとみなして(SP70)、SP63に戻る。一方、無周期フローの組み合わせがない場合(ステップS69:No)、SP71に移行する。
最後に、通信パターン解析機能202は、無周期フローを通信パターン情報テーブル213に登録する(SP71)。このとき、通信パターン解析機能202は、無周期フローの時系列データを予め設定された間隔で分割し、分割された複数の時系列データを1つの通信パターンとして通信パターン情報テーブル213に登録する。これにより、管理装置50は、フローごとの通信パターンを事前登録することができる。
[影響確度推定(SP16)]
図23は、影響確度推定機能203における影響確度推定(SP16)の詳細な処理手順例を示すフローチャートである。影響確度推定(SP16)は、障害発生時に実行される。影響確度推定(SP16)は、通信パターン情報テーブル213をもとに、障害発生時に各フローが通信していたか否かを推定することで、フローに対する障害の影響を算出する処理である。
影響確度推定(SP16)が開始されると、影響確度推定機能203は、まず、SP14で障害検知機能206から送信された障害情報から、障害発生時刻および障害の発生した通信装置20の通信装置IDを取得する(SP88)。
つぎに、影響確度推定機能203は、通信装置管理テーブル211の冗長化グループID603を参照し、障害の発生した通信装置が冗長化されているか確認し、その情報を保持する(SP89)。これは、障害の発生した通信装置が冗長化されており、障害が瞬断に留まった可能性がある場合、その情報を障害の影響確度情報と共にデータセンタDCiの管理者に通知するためである。なお、影響確度推定機能203は、冗長化先の通信装置20にも障害が発生しているか確認し、障害が発生していれば、その情報をさらに追加しても良い。
つぎに、影響確度推定機能203は、障害が発生した通信装置20を通過した可能性のあるフローを特定する(SP90)。具体的には、たとえば、影響確度推定機能203は、通信パターン情報テーブル213から、障害の発生した通信装置20の通信装置IDを通信経路フィールド1002に含むエントリをすべて取得し(SP90)、取得エントリ群の中から未選択エントリを1つ選択する(SP91)。たとえば、障害の発生した通信装置20の通信装置IDが「Sw1」である場合、通信経路1002に「Sw1」を含むエントリとして、フローID1001が「Flow1」であるエントリが、選択エントリとして通信パターン情報テーブル213から選択される。
つぎに、影響確度推定機能203は、SP88で取得した障害発生時刻よりもあらかじめ設定された時間だけ前の時刻から障害発生時刻まで(「特定区間」と呼称)の選択エントリのフローID1001に一致するフローID901の時系列データ(「特定の時系列データ」と呼称)を、時系列データテーブル900からすべて取得する(SP92)。たとえば、SP91の選択エントリが「Flow1」のエントリである場合、フローID901が「Flow1」であり、かつ、算出時刻903が特定区間に含まれるエントリが、時系列データテーブル900から取得される。特定区間が、たとえば、「2015−06−10T10:03〜2015−06−10T10:33」の場合、1行目は取得されないが、3行目のエントリは取得される。
つぎに、影響確度推定機能203は、SP92の特定の時系列データと、選択エントリのフローと同一フローにおける各通信パターンに対応する時系列データ(以下、比較対象時系列データ)との類似度を計算し、特定の時系列データに類似する通信パターンがあるか判断する(SP93)。具体的には、たとえば、影響確度推定機能203は、図24で後述するズレを算出することにより、比較対象時系列データのデータ区間1006において、障害発生時刻が対応する時間位置を特定する。そして、影響確度推定機能203は、特定の時系列データと、対応する時間位置から特定区間分遡った範囲の比較対象時系列データとの類似度を算出する。
影響確度推定機能203は、たとえば、特定の時系列データと比較対象時系列データとの間で、相関分析で算出される相関係数が一定以上である場合や、動的時間伸縮法で算出されるDTW距離が一定以下である場合、比較対象時系列データにより規定される通信パターンは、特定の時系列データに類似すると判断する。
特定の時系列データに類似する通信パターンがない場合(SP93:No)、影響確度推定機能203は、特定の時系列データが今までの通信パターンと異なる可能性が高いと判断して、そのことを記憶し(SP94)、比較対象時系列データのうち最も類似する比較対象時系列データを選択し(SP95)、選択した比較対象時系列データにSP94の情報を付与して、SP96に移行する。なお、最も類似する比較対象時系列データとは、たとえば、相関係数を用いる場合、相関係数が最大または所定のしきい値以上の比較対象時系列データである。所定のしきい値以上の比較対象時系列データがない場合または所定のしきい値以上の比較対象時系列データが複数存在する場合は、相関係数が最大の比較対象時系列データが採用される。また、DTW距離を用いる場合、DTW距離が最小または所定のしきい値以下の比較対象時系列データである。所定のしきい値以下の比較対象時系列データがない場合または所定のしきい値以下の比較対象時系列データが複数存在する場合は、DTW距離が最小の比較対象時系列データが採用される。
一方、類似する通信パターンがある場合(SP93:Yes)、影響確度推定機能203は、最も類似度が高い通信パターンを選択して、最尤推定やベイズ推定を用い、SP91の選択エントリで特定されるフローが障害発生時に通信していた確度を算出して記憶する(SP96)。
具体的には、たとえば、単純な最尤推定の場合、影響確度推定機能203は、障害発生時と同位相、すなわち、最も類似度が高い通信パターンの各データ区間1006に含まれる算出時刻903に対応する推定パケット数904を取得する。推定パケット数904を取得したデータ区間1006の件数をAとする。また、影響確度推定機能203は、件数Aのデータ区間1006のうち、0より大きい推定パケット数904が取得されたデータ区間1006の件数を計数する。計数されたデータ区間1006の件数をBとする。影響確度推定機能203は、SP91の選択エントリで特定されるフローが障害発生時に通信していた確度として、B/Aを算出する。
その後、影響確度推定機能203は、SP90で取得した全エントリに対し、ステップSP91〜ステップSP96が実行済みであるか否かを判断する(SP97)。実行済みでない場合(SP97:No)、SP91に戻る。
実行済みである場合(SP97:Yes)、影響確度推定機能203は、影響確度情報32を通知先に通知する(SP98)。なお、フローと顧客とは、通信パターン情報テーブル213内のフローID1001をフロー特性情報テーブル800のフローID801と照合して得た仮想NWID810と、顧客情報テーブル214の仮想NWID702と、により関連付けられる。また、通信パターン代表周期は、通信パターン内の1周期データの、各時刻における推定パケット数の平均値を組み合わせた時系列データとする。さらに、通信パケット数は、通信パターン代表周期における障害発生時と同位相、すなわち、最も類似度が高い抽出時系列データの時間帯の推定パケット数とする。
図24は、障害発生時刻と周期の時間位置との対応関係の一例を示す説明図である。ここでは、障害発生時刻を「2015 7/24 9:00」とし、通信装置ID:Sw1の通信装置20に障害が発生した場合を例に挙げて説明する。図24の(A)に示す通信パターン情報2401は、SP90によって特定される、障害が発生した通信装置20を通過した可能性のあるフロー(フローID1001:Flow1、以下、当該フローを単に「フロー1」と呼称)を示す通信パターン情報テーブル213のエントリである。(B)に示すグラフは、(A)の通信パターン情報2401のデータ区間1006における推定パケット数の時系列データで表現されるパターンID:Patturn1の通信パターン波形2402である。
(B)において、観測開始時刻は、フロー1を観測し始めた時刻である。周期は、同一波形が繰り返す時間幅である。周期開始時刻は、周期の開始時刻である。障害周期は、周期の開始時刻から終了時刻の間に障害発生時刻を含む周期である。障害周期開始時刻は、障害周期の周期開始時刻である。ズレは、障害周期の周期開始時刻と障害発生時刻との時間差である。本例では、2時間である。
各周期の周期開始時刻(通信パターン情報2401のデータ区間1006の左側の時刻)をズレの時間分だけ後ろに遷移させた時刻が、障害発生時刻に対応する時間位置となる。ズレの時間を算出することにより、障害発生時刻を周期の時間位置に対応付けることができる。計算手順は、以下の通りである。
まず、影響確度推定機能203は、下記式(1)により障害周期開始時刻を算出する。
障害周期開始時刻=周期×n・・・(1)
ここで、nは下記式(2)を満たす整数である。
観測開始時刻+周期×n<障害発生時刻<観測開始時刻+周期×(n+1)・・(2)
つぎに、影響確度推定機能203は、下記式(3)によりズレを算出する。
ズレ=障害発生時刻−障害周期開始時刻・・・(3)
影響確度推定機能203は、各周期の開始時刻からズレの時間分時間が進む方向にシフトした時間位置を、障害発生時刻に対応付けることにより、SP91での特定の時系列データと、各周期に対応する時系列データ(比較対象時系列データ)との類似度を計算することになる。
<表示画面例>
図25は、通知先40のクライアント端末42や運用管理装置41での表示画面の一例を示す説明図である。この表示画面2500は、顧客が障害の影響を受けたかを示唆するための情報をデータセンタDCiの管理者や運用管理装置41に提示するための画面である。表示画面2500は、顧客一覧表示領域2501と顧客詳細表示領域2502と通信パターン表示領域2504とを有する。
顧客一覧表示領域2501は、各顧客への障害の影響の一覧情報を表示する領域である。顧客詳細表示領域2502は、顧客一覧表示領域2501の顧客のうち、操作者が選択(図25中の黒背景の行)した特定の顧客の情報を詳細に表示する領域である。通信パターン表示領域2504は、顧客詳細表示領域2502のフローのうち、操作者が選択(図25中の黒背景の行)した特定のフローの通信パターンおよび特定の時系列データをグラフで表示する領域である。
顧客一覧表示領域2501および顧客詳細表示領域2502内の表は、各列で昇順または降順にデータを並び替えられる他、閾値2503に操作者が任意の値を入力することで、表示する情報を絞り込むことが可能である。絞り込む表現方法は、閾値の条件を満たしたデータに背景色をつける(図25中の網掛け行)ことや、閾値の条件を満たさないデータを表示させないなどがある。
顧客一覧表示領域2501には、顧客名と影響通信割合と重要度とが表示される。影響通信割合とは、顧客の障害で影響を受けた通信の割合である。ただし、影響通信割合は設定により別の情報を表示してもよく、たとえば最も影響を受けた確度の値でもよい。
顧客詳細表示領域2502には、顧客一覧表示領域2501で選択されている顧客のフローごとにフロー情報が表示されている。フロー情報は、たとえば、フローIDと、通信有無と、周期と、影響確度と、特性情報と、通信パターンと、パケット数と、冗長化と、を含む。
フロー情報のうち「通信有無」は、障害の発生した通信装置20をフローが通過したか否かを示す情報である。「有」が通過したことを示し、「無」が通過していないことを示す。「特性情報」は、同一フローIDについてのフロー特性情報テーブル800のエントリが示す情報である。「影響確度」は、当該フローについて図23の影響確定推定で算出された確度(SP96)である。「通信パターン」は、当該フローについての障害発生時の通信パターンである。パケット数は、当該障害発生時の通信パターンにおける推定パケット数である。「冗長化」は、障害の発生した通信装置20についての冗長化の有無である。また、操作者が特定のフロー情報を選択した際は、フローの通信パターン情報が表示領域2504に表示される。
通信パターン表示領域2504は、縦軸がパケット数、横軸が時刻のグラフに、通信パターン代表周期2505と特定の時系列データのサンプル情報2506とを表示する。このグラフに障害発生時刻2507を表示することで、データセンタDCiの管理者は障害がフローにどのような影響を与えたかグラフィカルに認識できる。
これにより、管理装置50は、データセンタDCi内の全通信を常に解析することなく、また通信量の少ない顧客の通信の利用実態も把握した上で、障害発生時に実害有り顧客および実害無し顧客を判別するために、各顧客の通信の利用実態を基に各顧客の障害の影響の確度を推定することができる。したがって、データセンタDCiの管理者は、早急な対応が必要な実害有り顧客を迅速に絞り込み、優先的に対応することができる。
また、管理装置50は、類似度により通信パターンをグルーピングすることにより、顧客システムの定期メンテナンスや構成変更などによる各フローの用途の変化を外れ値として除外することができる。したがって、通信障害の影響を被った確度の推定精度の向上を図ることができる。
また、管理装置50は、時系列データの生成時に、各通信装置から顧客単位に指定期間内の総パケット数を取得し、サンプルパケットの情報と組み合わせることにより、各フローの時刻別の推定パケット数の算出精度の向上を図ることができる。
また、管理装置50は、時系列データ生成時に、複数の通信装置から取得したサンプルパケットの情報を統合することにより、各フローの時刻別の推定パケット数の算出精度の向上を図ることができる。
外部データセンタDCjの通信装置20から取得したサンプルパケットサンプルの情報も統合することにより、各フローの時刻別の推定パケット数の算出精度の向上を図ることができる。
また、管理装置50は、外部データセンタDCjの影響で通信パターンが変化している可能性のある時系列データを事前に削除しておくことで、当データセンタDCiでの通信障害発生時に、影響確度推定精度の向上を図ることができる。
また、管理装置50は、外部データセンタDCjの外接通信装置の死活監視を行うことにより、データセンタ間のネットワークにおける障害を検知することで、データセンタ間に跨ったシステムを有する顧客がデータセンタ間ネットワークの障害の影響を受けた確度を推定することができる。
また、管理装置50は、顧客の通信利用によらず発生する通信(たとえば、ARP送信、ブロードキャスト受信など)を通信パターンから除外することにより、通信障害の影響を被った確度の推定精度の向上を図ることができる。
また、管理装置50は、無周期フローを、設定された条件(たとえば、Webサーバなど、短時間で通信量の少ないフローを複数発生させるような条件)にしたがって複数組み合わせることにより、周期性の有無を確認することができる。
また、管理装置50は、顧客への障害影響推測時に通信装置20の冗長化の有無を通知することにより、障害発生時、通信経路が冗長先通信装置に切り替わることで、顧客の通信は瞬断されるに留まったか、通信装置20が冗長化されていないために、顧客の通信は障害復旧までその影響を受け続けたのかを示唆する情報を、データセンタDCiの管理者に提供することができる。
また、管理装置50は、一定期間以上通信の無いフローおよび、一定期間以上分類されていない通信パターングループに含まれる時系列データを削除することにより、データ量を削減でき、かつ古いデータを参照することによる影響確度推定時の誤推定の低減を図ることができる。
また、管理装置50は、通信パターン解析時に、周期性の無い通信を設定された周期(たとえば1日周期)を持つと仮定して時系列データを処理することにより、周期性を持たない通信でも、周期性がある通信と同様に影響確度推定を行うことができる。
また、管理装置50は、障害情報の通知の際、障害の影響確度とともに、障害を受けた通信の種類や推定パケット数を通知することにより、データセンタDCiの管理者は障害の影響確度に加えフローの種類や推定パケット数を考慮して、障害対応の優先度を考えることができる。
また、管理装置50は、顧客ごとの重要度を保持しておき、障害情報の通知の際、障害の影響確度とともに重要度を通知することにより、データセンタDCiの管理者は障害の影響確度に加え顧客の重要度を考慮して、障害対応の優先度を考えることができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。