(57)【要約】  制御対象フロー特定装置（２４）は、記憶部（４０）と、検出部（４３）と、特定部（４４）とを有する。記憶部（４０）は、ネットワークを介してテナントが提供する各テナントサービスと、各テナントサービスのデータが流れるネットワーク上の経路を示すフローとを関連付けた関連付け情報（４０Ａ）を記憶する。検出部（４３）は、各テナントサービスのフローについての障害を検出する。特定部（４４）は、関連付け情報（４０Ａ）に基づき、検出部（４３）により障害を検出したフローから影響を受ける制御対象のフローを特定する。
2014006692.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
ネットワークを介してテナントが提供する各テナントサービスのデータが流れるネットワーク上の経路を示すフローについての障害を検出し、
前記各テナントサービスと、前記各テナントサービスのフローとを関連付けた関連付け情報に基づき、障害を検出した前記フローから影響を受ける制御対象のフローを特定する
各処理を実行させることを特徴とする制御対象フロー特定プログラム。
【請求項２】
前記特定する処理は、前記関連付け情報に基づき、障害を検出した前記フローと同一のテナントサービスの他のフローを前記制御対象のフローと特定する
ことを特徴とする請求項１に記載の制御対象フロー特定プログラム。
【請求項３】
前記特定する処理は、各テナントサービスを提供するシステムの構成要素が記憶された構成管理情報と、前記フローとに基づき、障害を検出した前記フローのデータを用いるテナントサービスの構成要素を通過する他のテナントサービスのフローを前記制御対象のフローと特定する
ことを特徴とする請求項１または請求項２に記載の制御対象フロー特定プログラム。
【請求項４】
コンピュータが、
ネットワークを介してテナントが提供する各テナントサービスのデータが流れるネットワーク上の経路を示すフローについての障害を検出し、
前記各テナントサービスと、前記各テナントサービスのフローとを関連付けた関連付け情報に基づき、障害を検出した前記フローから影響を受ける制御対象のフローを特定する
各処理を実行することを特徴とする制御対象フロー特定方法。
【請求項５】
ネットワークを介してテナントが提供する各テナントサービスと、各テナントサービスのデータが流れるネットワーク上の経路を示すフローとを関連付けた関連付け情報を記憶する記憶部と、
前記各テナントサービスのフローについての障害を検出する検出部と、
前記関連付け情報に基づき、前記検出部により障害を検出したフローから影響を受ける制御対象のフローを特定する特定部と、
を有することを特徴とする制御対象フロー特定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象フロー特定プログラム、制御対象フロー特定方法および制御対象フロー特定装置に関する。
【背景技術】
【０００２】
近年、クラウドに代表される大規模システムが運用されている。例えば、データセンタは、多数の物理サーバ上あるいは物理サーバ上で動作するVirtual  Machine（仮想マシン）上で、様々なシステムを運用して各種のサービスを提供している。【０００３】
ところで、このように複数のシステムが運用される大規模システムでは、何れかのサービスに不具合や設定ミスなどにより障害が発生すると、障害が大規模化する場合がある。例えば、大規模システムでは、障害の発生により各クライアントから一斉に問い合わせなど大量のデータの送信が行われ、バーストトラフィックの発生により、障害が大規模化してしまう場合がある。データセンタは、多数のユーザを抱えているため、障害が大規模化した場合、影響を受けるユーザも多くなる。このような大規模システムにおいて障害の発生を局所化する技術として、不具合を起こしたシステム側ではなく、ネットワークトラフィックを制御する技術が知られている。例えば、Open  Flowなどネットワークをフロー単位で制御する技術を用いて障害が発生したフローを制御する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５１７４４６号公報
【特許文献２】特表２０１０−５２１８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、大規模システムでは、バーストトラフィックの発生により、元々障害が発生したフローと異なるフローに影響が及ぶ場合があり、障害が発生したフローを制御するのみでは、障害の大規模化を防止できない場合がある。【０００６】
１つの側面では、本発明は、障害の大規模化を抑制できる制御対象フロー特定プログラム、制御対象フロー特定方法および制御対象フロー特定装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の開示する制御対象フロー特定プログラムは、コンピュータに、ネットワークを介してテナントが提供する各テナントサービスのデータが流れるネットワーク上の経路を示すフローについての障害を検出する処理を実行させる。また、制御対象フロー特定プログラムは、コンピュータに、各テナントサービスと、各テナントサービスのフローとを関連付けた関連付け情報に基づき、障害を検出したフローから影響を受ける制御対象のフローを特定する処理を実行させる。
【発明の効果】
【０００８】
障害の大規模化を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、データセンタの構成を模式的に示した図である。
【図２】図２は、データセンタに構築されたテナントのシステムの一例を示す図である。
【図３】図３は、フロー情報のデータ構成の一例を示す図である。
【図４】図４は、ＣＭＤＢに記憶された構成管理情報の一例を示す図である。
【図５】図５は、関連付け情報のデータ構成の一例を示す図である。
【図６】図６は、フローとテナントサービスの関連付けを説明するための図である。
【図７】図７は、テナントの各構成要素の接続関係を模式的に示した図である。
【図８】図８は、フローと当該フローを含むテナントサービスの一例を示す図である。
【図９】図９は、障害の一例を示す図である。
【図１０】図１０は、フローＡを遮断した状態を示す図である。
【図１１】図１１は、管理者に通知を行う通知画面の一例を示す図である。
【図１２】図１２は、フローＡ〜Ｆを遮断した状態を示す図である。
【図１３】図１３は、管理処理の手順を示すフローチャートである。
【図１４】図１４は、特定処理の手順を示すフローチャートである。
【図１５】図１５は、制御対象フロー特定プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる制御対象フロー特定プログラム、制御対象フロー特定方法および制御対象フロー特定装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
実施例１について説明する。実施例１では、複数のシステムが運用されるデータセンタ１０に適用した場合について説明する。図１は、データセンタの構成を模式的に示した図である。データセンタ１０は、物理サーバ上あるいは物理サーバ上で動作する仮想マシン上で、各種のソフトウエアを動作させてシステムを構築することが可能とされている。図１の例では、「ＰＭ」は物理サーバを示す。また、「ＶＭ」は物理サーバ上で動作する仮想マシンを示す。また、「ＦＷ＿ａ」「ＦＷ＿ｂ」は仮想マシン上で動作するファイヤーウォールを示す。また、「Ａｐｐ＿ａ」「Ａｐｐ＿ｂ」は仮想マシン上で動作するアプリケーションを示す。また、「ＤＢ＿ａ」「ＤＢ＿ｂ」は仮想マシン上で動作するデータベースを示す。また、データセンタ１０は、ネットワーク（ＮＷ）コントローラ２１と、複数のスイッチ（ＳＷ）２２と、Configuration  Management  Database（ＣＭＤＢ）２３と、サービスマネージャ２４とを有する。本実施例では、例えば、サービスマネージャ２４が制御対象フロー特定装置に対応する。【００１２】
データセンタ１０は、物理サーバ上あるいは物理サーバ上で動作する仮想マシン上で、各種のソフトウエアを動作させて各テナントのシステムを構築し、各テナントのサービスを提供する。このテナントとは、データセンタ１０の環境を利用して、自身のサービスを提供する企業や個人などのユーザである。以下、オペレーティングシステム（ＯＳ）などが提供するサービスなどと区別するため、テナントが提供するサービスを「テナントサービス」と言う。テナントサービスとは、各テナントが運用するシステムの処理によってユーザに提供する機能であり、テナントが運用するシステムで動作するアプリケーション群全体を含む概念である。【００１３】
図２は、データセンタに構築されたテナントのシステムの一例を示す図である。図２の例では、物理サーバＰＭ１上で仮想マシンＶＭ１１、ＶＭ１２が動作し、仮想マシンＶＭ１１上でアプリケーションＡｐｐ＿Ｘ＿１が動作し、仮想マシンＶＭ１２上でアプリケーションＡｐｐ＿Ｙが動作していることを示す。また、図２の例では、物理サーバＰＭ２上で仮想マシンＶＭ２１、ＶＭ２２が動作し、仮想マシンＶＭ２１上でアプリケーションＡｐｐ＿Ｘ＿２を動作していることを示す。また、図２の例では、データセンタ１０に設けられたストレージがストレージｓｔ１およびストレージｓｔ２に仮想化されていることを示す。【００１４】
データセンタ１０は、ネットワークを介して各種のクライアント装置３０が接続可能とされており、クライアント装置３０に対して各テナントによるテナントサービスを提供する。図２の例では、データセンタ１０は、マシンＶＭ１１上で動作するアプリケーションＡｐｐ＿Ｘ＿１、仮想マシンＶＭ２１上で動作するアプリケーションＡｐｐ＿Ｘ＿２およびストレージｓｔ１により、テナントＸによるテナントサービスＸが提供されている。また、データセンタ１０は、マシンＶＭ１２上で動作するアプリケーションＡｐｐ＿Ｙおよびストレージｓｔ２により、テナントＹによるテナントサービスＸを提供されている。【００１５】
本実施例にかかるデータセンタ１０は、例えば、Open  Flow等の技術を用いて、送信元および宛先により特定される通信をフローとして、ネットワークを流れるデータをフロー単位で制御している。図２の例では、フローＡはクライアント装置３０からアプリケーションＡｐｐ＿Ｘ＿１への通信を示す。フローＢはクライアント装置３０からアプリケーションＡｐｐ＿Ｙへの通信を示す。フローＣはアプリケーションＡｐｐ＿Ｘ＿１からストレージｓｔ１への通信を示す。フローＤはアプリケーションＡｐｐ＿Ｙからストレージｓｔ１への通信を示す。フローＥはクライアント装置３０からアプリケーションＡｐｐ＿Ｘ＿２への通信を示す。フローＦはアプリケーションＡｐｐ＿Ｘ＿２からストレージｓｔ２への通信を示す。【００１６】
図１に戻り、ＮＷコントローラ２１は、経路制御を行う装置であり、例えば、サーバコンピュータである。ＮＷコントローラ２１には、フローとする通信の送信元および宛先や、フローを流れるデータをどのように扱うかなど各種の条件がフロー情報２１Ａとして記憶されている。ＮＷコントローラ２１は、フロー情報２１Ａを各スイッチ２２へ配信する。なお、ＮＷコントローラ２１は、物理サーバ上で動作する仮想マシン上に構築してもよい。【００１７】
図３は、フロー情報のデータ構成の一例を示す図である。図３に示すように、フロー情報２１Ａは、フロー、フロー条件、監視情報の各項目を有する。フロー条件の項目は、送信元、宛先の項目が設けられている。監視情報の項目は、パケット数、データ量の項目が設けられている。フローの項目は、フローを識別する識別情報を記憶する領域である。フローには、それぞれを識別する識別情報が付与される。フローの項目には、フローに付与された識別情報が格納される。送信元の項目は、データの送信元を示す情報を格納する領域である。送信元の項目は、データの送信元が何れでもよいものとする場合「＊」が格納され、データの送信元を条件として設定する場合、送信元を示す情報が格納される。宛先の項目は、送信元から受信したデータを転送する宛先を示す情報を格納する領域である。パケット数の項目は、転送したデータのパケット数を格納する領域である。データ量の項目は、転送したデータのデータ量を格納する領域である。なお、本実施例では、フロー条件とした宛先、送信先を識別しやすくするため、フロー情報２１Ａの宛先、送信先の項目に該当する構成要素を記載したが、ネットワーク上での各種の識別情報を組み合わせて宛先、送信先が設定される。例えば、宛先、送信先の項目は、Media  Access  Control  address（ＭＡＣアドレス）やInternet  Protocol  Address（ＩＰアドレス）、port  number（ポート番号）などを組み合わせて宛先、送信先が設定される。【００１８】
図３の例では、フローＡは、データの送信元が何れでもよく、データの宛先が仮想マシンＶＭ１１であり、受信したパケット数が４８，２８７個であり、受信したデータ量が３２３，３４５であることを示す。また、フローＢは、データの送信元が何れでもよく、データの宛先が仮想マシンＶＭ１２であり、受信したパケット数が１２，２６５個であり、受信したデータ量が８，０６７であることを示す。また、フローＣは、データの送信元がアプリケーションＡｐｐ＿Ｘ＿１であり、データの宛先がストレージｓｔ１であり、受信したパケット数が３０，１２３個であり、受信したデータ量が２９０，３２８であることを示す。【００１９】
図１に戻り、スイッチ２２は、データ転送を行う通信機器である。スイッチ２２は、ＮＷコントローラ２１から配信されたフロー情報２１Ａの条件に従ってフロー単位で各テナントのシステムへデータを振り分ける。よって、データセンタ１０では、ＮＷコントローラ２１がフロー情報２１Ａに設定された各フローの条件を変更し、各スイッチ２２へフロー情報２１Ａを配信することにより、フロー単位でネットワークを流れるデータを制御することができる。【００２０】
また、スイッチ２２は、フロー単位で、通過したデータのパケット数およびデータ量を計測し、パケット数およびデータ量をＮＷコントローラ２１へ通知する。ＮＷコントローラ２１は、通知されたパケット数およびデータ量をフロー情報２１Ａにフロー単位で記憶する。【００２１】
ＣＭＤＢ２３には、データセンタ１０内の各種システムの構成情報が記憶されている。例えば、ＣＭＤＢ２３には、各テナントサービスを提供するシステムのハードウェアやソフトウェアなど各種の構成要素に関する情報や、構成要素間の接続関係などの構成管理情報が記憶されている。【００２２】
図４は、ＣＭＤＢに記憶された構成管理情報の一例を示す図である。図４の例では、ＸＭＬ（Extensible  Markup  Language）形式で構成管理情報が記述されており、タグとして、データ名が「Ｇｒａｐｈ」、「ＣｌＳｅｔ」、「ＲｅｌＳｅｔ」を有する。「Ｇｒａｐｈ」は、構成管理情報の定義に用いるタグである。「ＣｌＳｅｔ」は、システムを構成する構成要素の定義に用いるタグである。「ＲｅｌＳｅｔ」は、構成要素間の接続関係の定義に用いるタグである。【００２３】
構成要素には、それぞれを識別するコードが付与される。「ＣｌＳｅｔ」のタグ部分には、それぞれＣｌｉｄ＝“”として構成要素を示すコードが記述され、ｉｔｅｍ＝“”として構成要素の種別が記述される。種別の「ＳＷ」はスイッチであることを示す。また、種別の「ＰＭ」は物理サーバであることを示す。また、種別の「ＶＭ」は仮想マシンであることを示す。また、種別の「Ａｐｐ」はアプリケーションであることを示す。また、種別の「Ｓｔｏｒａｇｅ」はストレージであることを示す。また、種別の「Ｓｅｒｖｉｃｅ」はテナントサービスであることを示す。また、種別の「ｃｌｉｅｎｔ」はクライアント装置であることを示す。【００２４】
また、「ＲｅｌＳｅｔ」のタグ部分には、それぞれｉｄ＝“”として接続関係を区別するためのコードが記述され、ｓｒｃ＝“”、ｄｓｔ＝“”としてそれぞれに接続関係にある構成要素を示すコードが記述されている。【００２５】
図４の例では、“ｓｗ１”はスイッチであることを示す。また、“ｐｍ１”は物理サーバであることを示す。また、“ｖｍ１１”は仮想マシンであることを示す。また、“Ａｐｐ＿Ｘ＿１”はアプリケーションであることを示す。また、“ｔｎｔＸ”はテナントサービスであることを示す。また、“ｃｌ１”はクライアント装置であることを示す。また、図４の例では、スイッチ“ｓｗ１”と物理サーバ“ｐｍ１”が接続関係にあり、接続関係を区別するためフローのコードが“ｒ１”であることを示す。【００２６】
図１に戻り、サービスマネージャ２４は、データセンタ１０のネットワークに障害が発生した場合、障害が発生したフローを検出し、障害が発生したフローから影響を受けるフローを特定する装置であり、例えば、サーバコンピュータである。なお、サービスマネージャ２４は、物理サーバ上で動作する仮想マシン上に構築してもよい。また、サービスマネージャ２４は、ＮＷコントローラ２１などと同一の物理サーバ上または仮想マシン上に構築してもよい。【００２７】
図１に示すように、サービスマネージャ２４は、記憶部４０と、取得部４１と、管理部４２と、検出部４３と、特定部４４と、通知部４５とを有する。【００２８】
記憶部４０は、各種情報を記憶する。例えば、記憶部４０は、テナントサービスとフローとを関連付けた関連付け情報４０Ａを記憶する。記憶部４０のデバイスの一例としては、フラッシュメモリやＮＶＳＲＡＭ(Non  Volatile  Static  Random  Access  Memory)などのデータを書き換え可能な半導体メモリや、ハードディスク、光ディスクなどの記憶装置が挙げられる。【００２９】
図５は、関連付け情報のデータ構成の一例を示す図である。図５に示すように、関連付け情報４０Ａは、フロー、テナントサービス、送信元、宛先、統計情報の各項目を有する。統計情報の項目は、受信パケット数、受信データ量の項目が設けられている。フローの項目は、フローに付与された識別情報を格納する領域である。テナントサービスの項目は、フローに関連付けるテナントサービスを示す情報を格納する領域である。送信元の項目は、データの送信元を示す情報を格納する領域である。送信元の項目は、データの送信元が何れでもよいものとする場合「＊」が格納され、データの送信元を条件として設定する場合、送信元を示す情報が格納される。宛先の項目は、フローを流れるデータの宛先を示す情報を格納する領域である。受信パケット数の項目は、フローを流れたデータのパケット数を格納する領域である。受信データ量の項目は、フローのデータを受信したデータ量を格納する領域である。【００３０】
図５の例では、フローＡは、テナントサービスＸが関連付けられ、データの送信元が何れでもよく、データの宛先が仮想マシンＶＭ１１であり、受信したパケット数が４８，２８７個であり、受信したデータ量が３２３，３４５であることを示す。また、フローＢは、テナントサービスＸが関連付けられ、データの送信元が何れでもよく、データの宛先が仮想マシンＶＭ１２であり、受信したパケット数が１２，２６５個であり、受信したデータ量が８，０６７であることを示す。また、フローＣは、テナントサービスＹが関連付けられ、データの送信元がアプリケーションＡｐｐ＿Ｘ＿１であり、データの宛先がストレージｓｔ１であり、受信したパケット数が３０，１２３個であり、受信したデータ量が２９０，３２８であることを示す。【００３１】
図１に戻り、取得部４１は、各種情報を取得する。例えば、取得部４１は、ＮＷコントローラ２１からフロー情報２１Ａを取得する。このフロー情報２１Ａは、ＮＷコントローラ２１が周期的にサービスマネージャ２４へ配信し、サービスマネージャ２４が受信することにより取得してもよい。また、フロー情報２１Ａは、サービスマネージャ２４がネットワークを介してＮＷコントローラ２１を参照することにより取得してもよい。また、取得部４１は、ＣＭＤＢ２３からデータセンタ１０において提供される各テナントサービスの構成管理情報を取得する。【００３２】
管理部４２は、各種の管理を行う。例えば、管理部４２は、関連付け情報４０Ａのデータを管理する。管理部４２は、取得部４１により取得されたフロー情報２１Ａに関連付け情報４０Ａに登録されていないフローが存在する場合、構成管理情報に基づいて登録されていないフローのデータを用いるテナントサービスを求める。そして、管理部４２は、登録されていないフローと、求めたテナントサービスを関連付けて関連付け情報４０Ａに登録する。【００３３】
ここで、フローとテナントサービスの関連付けについて説明する。図６は、フローとテナントサービスの関連付けを説明するための図である。図６に示すように、例えば、４つのサーバ６０〜６３によりシステムが構築され、テナントＡのテナントサービスＡがエンドユーザに提供されているものとする。なお、Ｓｖｒ＿ｗｅｂ１、Ｓｖｒ＿ｗｅｂ２は、ウェブサーバを示す。また、Ｓｖｒ＿ａｐｐ１は、アプリケーションサーバを示す。また、Ｓｖｒ＿ｄｂ１は、データベースサーバを示す。このサーバ６０〜６３間およびサーバ６０、６１とエンドユーザの間の通信であるフロー７０〜７６には、テナントサービスＡに関するデータが流れる。このため、フロー７０〜７６についてそれぞれテナントサービスＡを関連付ける。【００３４】
例えば、管理部４２は、取得部４１で取得されたフロー情報２１Ａに関連付け情報４０Ａに登録されていないフローが存在する場合、構成管理情報に記憶された構成要素間の接続関係を辿って各テナントサービスで使用する構成要素を特定する。図７は、テナントの各構成要素の接続関係を模式的に示した図である。なお、図７は、図４に示した構成管理情報の各構成要素を構成要素間の接続関係に基づいて、テナントの各構成要素の接続関係を模式的に示した図である。例えば、図７では、スイッチｓｗ１と物理サーバｐｍ１がフローｒ１による接続関係にある。管理部４２は、図４に示した構成管理情報の構成要素間の接続関係を、テナントサービスｔｎｔＸ、ｔｎｔＹから順にｓｒｃに記述された構成要素を辿って、テナントサービスｔｎｔＸ、ｔｎｔＹで使用する構成要素を図７に示すように特定する。【００３５】
そして、管理部４２は、登録されていないフローの送信元および宛先の構成要素を共に含むテナントサービスを特定する。図８は、フローと当該フローを含むテナントサービスの一例を示す図である。図８は、図７に示した接続関係からフローとフローの送信元および宛先の構成要素を共に含むテナントサービスを特定した結果を示している。図８の例では、フローＡは、データの送信元であるクライアント装置ｃｌ１とデータの宛先であるアプリケーションＡｐｐ＿Ｘ＿１が共にテナントサービスｔｎｔＸの構成要素に含まれるため、関連付けるテナントサービスがテナントサービスｔｎｔＸと特定される。また、フローＢは、データの送信元であるクライアント装置ｃｌ２とデータの宛先であるアプリケーションＡｐｐ＿Ｙが共にテナントサービスｔｎｔＹの構成要素に含まれるため、関連付けるテナントサービスがテナントサービスｔｎｔＹと特定される。【００３６】
管理部４２は、登録されていないフローと、特定したテナントサービスを関連付けて関連付け情報４０Ａに登録する。また、管理部４２は、取得部４１により取得されたフロー情報２１Ａに基づいて、関連付け情報４０Ａに記憶された各フローのパケット数およびデータ量を更新する。【００３７】
検出部４３は、各種の検出を行う。例えば、検出部４３は、障害が発生したフローを検出する。検出部４３は、関連付け情報４０Ａに記憶された各フローのパケット数およびデータ量を監視し、所定期間の間に、パケット数およびデータ量の少なくも一方がバーストトラフィックが発生したと見なす所定の許容値以上増加したフローを検出する。この所定期間は、フローのトラフィックの監視に適切な期間に設定すればよい。この所定期間は、テナントサービス毎やフロー毎に定めてもよい。また、許容値もテナントサービス毎やフロー毎に定めてもよい。また、所定期間は、時刻などに応じて期間が変化してもよい。【００３８】
ところで、何れかのフローで障害が発生した場合、障害が発生したフローのデータを制御しても、障害が発生したフローの影響により他のフローに障害が発生する場合がある。【００３９】
特定部４４は、各種の特定を行う。例えば、特定部４４は、検出部４３により、障害が発生したフローが検出された場合、障害が発生したフローから影響を受ける制御対象のフローを特定する。【００４０】
図９は、障害の一例を示す図である。図９の例は、テナントサービスＸのフローＡにバーストトラフィックが発生した場合を示す。この場合、フローＡでのバーストトラフィックの発生により、テナントサービスＸでは、アプリケーションＡｐｐ＿Ｘ＿１の処理の負荷が急増し、障害が発生する場合がある。例えば、このフローＡのバーストトラフィックを抑えるため、フローＡにデータが流れないようにフローＡを遮断する。図１０は、フローＡを遮断した状態を示す図である。図１０に示すように、フローＡを遮断したことにより、フローＡのデータを用いるテナントサービスＸの他のフローＥやフローＦでバーストトラフィックが発生する場合がある。また、フローＦでバーストトラフィックが発生したことにより、スイッチＳＷ３やストレージｓｔ１の処理負荷が高くなり、スイッチＳＷ３やストレージｓｔ２を用いるテナントサービスＹのフローＤでバーストトラフィックが発生する場合がある。【００４１】
そこで、特定部４４は、関連付け情報４０Ａに基づき、障害が検出されたフローと同一のテナントサービスの他の全フローを制御対象のフローと特定する。例えば、特定部４４は、関連付け情報４０Ａのテナントサービスの項目から障害が検出されたフローのテナントサービスを求める。そして、特定部４４は、関連付け情報４０Ａのテナントサービスの項目に、求めたテナントサービスが設定された他のフローを制御対象のフローと特定する。図９の例では、特定部４４は、障害が検出されたフローＡのデータを用いるテナントサービスＸの他のフローＣ、Ｅ、Ｆを制御対象のフローと特定する。【００４２】
また、特定部４４は、構成管理情報とフロー情報２１Ａとに基づき、障害が検出されたフローのデータを用いるテナントサービスの構成要素を通過する他のテナントサービスのフローを制御対象のフローと特定する。例えば、特定部４４は、構成管理情報に基づき、障害が検出されたフローのデータを用いるテナントサービスの構成要素のうち、他のテナントサービスと共有された構成要素を特定する。そして、特定部４４は、フロー情報２１Ａから、他のテナントサービスと共有された構成要素を通過する他のテナントサービスを求め、求めたフローを制御対象のフローと特定する。図９の例では、特定部４４は、テナントサービスＸの構成要素である物理サーバＰＭ１、スイッチＳＷ１を通過するテナントサービスＹのフローＢを制御対象のフローと特定する。また、特定部４４は、物理サーバＰＭ１、スイッチＳＷ２、ＳＷ３を通過するテナントサービスＹのフローＤを制御対象のフローと特定する。【００４３】
通知部４５は、各種の通知を行う。例えば、通知部４５は、障害が検出されたフローおよび特定された制御対象のフローをＮＷコントローラ２１へ通知する。図９の例では、通知部４５は、フローＡ〜ＦをＮＷコントローラ２１へ通知する。なお、通知部４５は、障害が検出されたフローおよび特定された制御対象のフローをデータセンタ１０の管理者に通知してもよい。図１１は、管理者に通知を行う通知画面の一例を示す図である。図１１の例では、障害が検出されたフローＡおよび特定された制御対象のフローＢ〜Ｆが制御対象になったことを示している。【００４４】
なお、図１の例では、機能的な構成を示したため、サービスマネージャ２４を、取得部４１と、管理部４２と、検出部４３と、特定部４４と、通知部４５の処理部に分けているが、例えば、各処理部を１つのデバイスで構成してもよい。デバイスの一例としては、Central  Processing  Unit（ＣＰＵ）やMicro  Processing  Unit（ＭＰＵ）などの電子回路が挙げられる。なお、デバイスとしては、Application  Specific  Integrated  Circuit（ＡＳＩＣ）やField  Programmable  Gate  Array（ＦＰＧＡ）などの集積回路を採用することもできる。【００４５】
ＮＷコントローラ２１は、通知部４５から通知されたフローの制御を行う。例えば、ＮＷコントローラ２１は、通知されたフローの通信を一時的に遮断する。図１２は、フローＡ〜Ｆを遮断した状態を示す図である。図１２に示すように、フローＡ〜Ｆを遮断したことにより、フローＡの障害の発生によって影響を受けるフローＢ〜Ｆの何れかにバーストトラフィックが発生してもさらに他のフローへ影響を及ぼすことを抑制でき、障害が大規模化することを抑制できる。【００４６】
ＮＷコントローラ２１は、遮断したフローへ送信されるデータ量を監視して通信の回復状況を監視し、データ量が正常と見なせる範囲の場合、遮断したフローの通信を除々に回復させる。なお、本実施例では、ＮＷコントローラ２１が通知部４５から通知されたフローを遮断する制御を行う場合について説明したが、これに限定されない。例えば、ＮＷコントローラ２１は、通知されたフローの帯域を他にフローに影響が及ばない範囲に制限する制御を行うものとしてもよい。【００４７】
次に、本実施例に係るサービスマネージャ２４がフロー情報２１Ａに基づいて、関連付け情報４０Ａのデータを管理する管理処理の流れを説明する。図１３は、管理処理の手順を示すフローチャートである。この管理処理は、所定のタイミング、例えば、フロー情報２１Ａを取得したタイミングで実行される。【００４８】
図１３に示すように、管理部４２は、フロー情報２１Ａの全フローに対する処理が完了したか否かを判定する（Ｓ１０）。全フローに対する処理が完了した場合（Ｓ１０肯定）、処理を終了する。【００４９】
一方、全フローに対する処理が完了していない場合（Ｓ１０否定）、管理部４２は、未処理のフローを選択する（Ｓ１１）。管理部４２は、選択したフローが関連付け情報４０Ａに登録されているか否かを判定する（Ｓ１２）。選択したフローが関連付け情報４０Ａに登録されている場合（Ｓ１２肯定）、管理部４２は、関連付け情報４０Ａに記憶された選択したフローのパケット数およびデータ量を更新し（Ｓ１３）、上述のＳ１０へ移行する。【００５０】
一方、選択したフローが関連付け情報４０Ａに登録されていない場合（Ｓ１２否定）、管理部４２は、構成管理情報に記憶された構成要素間の接続関係を辿ってテナントサービス毎の使用する構成要素を特定する（Ｓ１４）。そして、管理部４２は、登録されていないフローの送信元および宛先の構成要素を共に含むテナントサービスを特定する（Ｓ１５）。管理部４２は、選択したフローと特定したテナントサービスを関連付けてパケット数およびデータ量を関連付け情報４０Ａに登録し（Ｓ１６）、上述のＳ１０へ移行する。【００５１】
次に、本実施例に係るサービスマネージャ２４が障害の発生したフローの検出を行い、障害の発生したフローが検出された場合に影響を受ける制御対象のフローを特定する特定処理の流れを説明する。図１４は、特定処理の手順を示すフローチャートである。この特定処理は、周期的に実行される。例えば、特定処理は、フロー情報２１Ａが取得されて関連付け情報４０Ａが更新されたタイミングで実行される。【００５２】
図１４に示すように、検出部４３は、障害が発生したフローの検出を行う（Ｓ２０）。検出部４３は、障害が発生したフローが検出されたか否かを判定する（Ｓ２１）。障害が発生したフローが検出されない場合（Ｓ２１否定）、処理を終了する。【００５３】
一方、障害が発生したフローが検出された場合（Ｓ２１肯定）、特定部４４は、障害が発生したフローを１つ選択する（Ｓ２２）。特定部４４は、関連付け情報４０Ａのテナントサービスの項目から選択したフローのデータを用いるテナントサービスを求める（Ｓ２３）。そして、特定部４４は、関連付け情報４０Ａのテナントサービスの項目に、求めたテナントサービスが設定された他の全フローを制御対象のフローと特定する（Ｓ２４）。【００５４】
また、特定部４４は、構成管理情報に基づき、選択したフローのデータを用いるテナントサービスの構成要素のうち、他のテナントサービスと共有された構成要素を特定する（Ｓ２５）。そして、特定部４４は、フロー情報２１Ａから、他のテナントサービスと共有された構成要素を通過する他のフローを求め、求めたフローを制御対象のフローと特定する（Ｓ２６）。【００５５】
特定部４４は、障害が検出された全フローに対する処理が完了したか否かを判定する（Ｓ２７）。全フローに対する処理が完了していない場合（Ｓ２７否定）、上述のＳ２２へ移行する。一方、全フローに対する処理が完了した場合（Ｓ２７肯定）、通知部４５は、障害が検出されたフローおよび特定された制御対象のフローをＮＷコントローラ２１へ通知し（Ｓ２８）、処理を終了する。【００５６】
このように、サービスマネージャ２４は、ネットワークを介してテナントが提供する各テナントサービスと、各テナントサービスのデータが流れるネットワーク上の経路を示すフローとを関連付けた関連付け情報４０Ａを記憶する。また、サービスマネージャ２４は、各テナントサービスのフローについての障害を検出する。そして、サービスマネージャ２４は、関連付け情報４０Ａに基づき、障害を検出したフローから影響を受ける制御対象のフローを特定する。このように、サービスマネージャ２４は、制御対象のフローを特定できるため、制御対象のフローを制御することにより、障害の大規模化を抑制できる。【００５７】
また、サービスマネージャ２４は、関連付け情報４０Ａに基づき、障害が検出されたフローと同一のテナントサービスの他のフローを制御対象のフローと特定する。これにより、サービスマネージャ２４は、障害が検出されたフローの影響により、障害が検出されたフローと同一のテナントサービスの他のフローに障害が発生する場合でも、制御対象のフローと特定されるため、障害を抑制できる。【００５８】
また、サービスマネージャ２４は、構成管理情報と、フロー情報２１Ａとに基づき、障害が検出されたフローのデータを用いるテナントサービスの構成要素を通過する他のテナントサービスのフローを制御対象のフローと特定する。これにより、サービスマネージャ２４は、障害が検出されたフローの影響により、障害が検出されたフローのテナントサービスの構成要素を通過する他のテナントサービスのフローに障害が発生する場合でも、制御対象のフローと特定されるため、障害を抑制できる。
【実施例２】
【００５９】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。【００６０】
上記の実施例では、関連付け情報４０Ａにフロー毎のパケット数、データ量を記憶し、検出部４３が関連付け情報４０Ａに記憶されたパケット数、データ量から障害の発生を検出する場合について説明したが、開示の装置はこれに限定されない。例えば、検出部４３がＮＷコントローラ２１のフロー情報２１Ａに記憶されたパケット数、データ量を参照して障害の発生を検出してもよい。【００６１】
また、上記の実施例では、サービスマネージャ２４に関連付け情報４０Ａを記憶させた場合について説明したが、開示の装置はこれに限定されない。例えば、関連付け情報４０Ａを別なストレージ装置やコンピュータに記憶させ、サービスマネージャ２４が別なストレージ装置やコンピュータに記憶された関連付け情報４０Ａを参照して処理を行うものとしてもよい。【００６２】
また、上記の実施例では、ＮＷコントローラ２１とサービスマネージャ２４を別に設けた場合について説明したが、開示の装置はこれに限定されない。例えば、ＮＷコントローラ２１にサービスマネージャ２４の機能を追加し、ＮＷコントローラ２１が障害が発生したフローを検出し、障害が発生したフローから影響を受ける制御対象のフローを特定して制御を行ってもよい。【００６３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示す取得部４１、管理部４２、検出部４３、特定部４４、通知部４５の各処理部が適宜統合されてもよい。また、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００６４】
［制御対象フロー特定プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１５は、制御対象フロー特定プログラムを実行するコンピュータを示す図である。【００６５】
図１５に示すように、コンピュータ３００は、ＣＰＵ３１０、Read  Only  Memory（ＲＯＭ）３２０、Hard  Disk  Drive（ＨＤＤ）３３０、Random  Access  Memory（ＲＡＭ）３４０を有する。これら３１０〜３４０の各部は、バス４００を介して接続される。【００６６】
ＲＯＭ３２０には上記実施例の各処理部と同様の機能を発揮する制御対象フロー特定プログラム３２０ａが予め記憶される。例えば、上記実施例１の取得部４１、管理部４２、検出部４３、特定部４４、通知部４５と同様の機能を発揮する制御対象フロー特定プログラム３２０ａを記憶させる。なお、制御対象フロー特定プログラム３２０ａについては、適宜分離しても良い。【００６７】
ＨＤＤ３３０には、各種データを記憶する。例えば、ＨＤＤ３３０は、フロー情報や関連付け情報など各種データを記憶する。【００６８】
そして、ＣＰＵ３１０が、制御対象フロー特定プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、実施例１の各処理部と同様の動作を実行する。すなわち、制御対象フロー特定プログラム３２０ａは、実施例１の取得部４１、管理部４２、検出部４３、特定部４４、通知部４５と同様の動作を実行する。【００６９】
なお、上記した制御対象フロー特定プログラム３２０ａについては、必ずしも最初からＲＯＭ３２０に記憶させることを要しない。制御対象フロー特定プログラム３２０ａはＨＤＤ３３０に記憶させてもよい。【００７０】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、Compact  Disk  Read  Only  Memory（ＣＤ−ＲＯＭ）、Digital  Versatile  Disk（ＤＶＤ）、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。【００７１】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７２】
１０    データセンタ
２１    ＮＷコントローラ
２１Ａ  フロー情報
２２    スイッチ
２４    サービスマネージャ
４０    記憶部
４０Ａ  関連付け情報
４１    取得部
４２    管理部
４３    検出部
４４    特定部
４５    通知部
【図１】
2014006692.tif 000003
【図２】
2014006692.tif 000004
【図３】
2014006692.tif 000005
【図４】
2014006692.tif 000006
【図５】
2014006692.tif 000007
【図６】
2014006692.tif 000008
【図７】
2014006692.tif 000009
【図８】
2014006692.tif 000010
【図９】
2014006692.tif 000011
【図１０】
2014006692.tif 000012
【図１１】
2014006692.tif 000013
【図１２】
2014006692.tif 000014
【図１３】
2014006692.tif 000015
【図１４】
2014006692.tif 000016
【図１５】
2014006692.tif 000017
【国際調査報告】
2014006692.tif 000018
2014006692.tif 000019