特許第5836042号(P5836042)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧
<>
  • 特許5836042-管理サーバプログラム 図000002
  • 特許5836042-管理サーバプログラム 図000003
  • 特許5836042-管理サーバプログラム 図000004
  • 特許5836042-管理サーバプログラム 図000005
  • 特許5836042-管理サーバプログラム 図000006
  • 特許5836042-管理サーバプログラム 図000007
  • 特許5836042-管理サーバプログラム 図000008
  • 特許5836042-管理サーバプログラム 図000009
  • 特許5836042-管理サーバプログラム 図000010
  • 特許5836042-管理サーバプログラム 図000011
  • 特許5836042-管理サーバプログラム 図000012
  • 特許5836042-管理サーバプログラム 図000013
  • 特許5836042-管理サーバプログラム 図000014
  • 特許5836042-管理サーバプログラム 図000015
  • 特許5836042-管理サーバプログラム 図000016
  • 特許5836042-管理サーバプログラム 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5836042
(24)【登録日】2015年11月13日
(45)【発行日】2015年12月24日
(54)【発明の名称】管理サーバプログラム
(51)【国際特許分類】
   H04L 12/24 20060101AFI20151203BHJP
   H04L 12/70 20130101ALI20151203BHJP
【FI】
   H04L12/24
   H04L12/70 D
【請求項の数】8
【全頁数】25
(21)【出願番号】特願2011-219714(P2011-219714)
(22)【出願日】2011年10月4日
(65)【公開番号】特開2013-81053(P2013-81053A)
(43)【公開日】2013年5月2日
【審査請求日】2014年9月30日
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】100100310
【弁理士】
【氏名又は名称】井上 学
(74)【代理人】
【識別番号】100098660
【弁理士】
【氏名又は名称】戸田 裕二
(74)【代理人】
【識別番号】100091720
【弁理士】
【氏名又は名称】岩崎 重美
(72)【発明者】
【氏名】肥村 洋輔
(72)【発明者】
【氏名】保田 淑子
(72)【発明者】
【氏名】中山 真理子
【審査官】 上田 翔太
(56)【参考文献】
【文献】 特開2009−194675(JP,A)
【文献】 再公表特許第2011/118585(JP,A1)
【文献】 管理者の夢がかなう!Visioでネットワーク見える化&監視,2010年11月 8日,URL,http://ascii.jp/elem/000/000/567/567873/
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/24
H04L 12/70
(57)【特許請求の範囲】
【請求項1】
物理ネットワークで接続され、複数の物理機器構築された仮想ネットワークを管理する管理サーバとして、前記物理ネットワークに接続されたコンピュータを機能させる管理サーバプログラムであって、
前記管理サーバは、
前記仮想ネットワークとして、仮想LAN技術を含む複数種類の仮想化技術によって定義された、仮想LANを含む複数種類の仮想リソースが接続されて構成される仮想ネットワークの定義情報を受け取り、
前記仮想LANを含む複数種類の仮想リソースのノードを、前記物理機器に設定された機器設定情報から特定、前記仮想リソースのノードを定義した機器設定情報とノードタイプを格納するノードパターン管理テーブルと
前記複数の仮想リソースのノードと、ノードを接続するためのエッジが接続可能かどうかを示すエッジの接続ノードタイプを示す情報を格納するエッジパターン管理テーブルと、を保持し、
前記ノードパターン管理テーブルと前記エッジパターン管理テーブルとを参照し
ノードパターン管理テーブルのノードタイプとエッジパターン管理テーブルの接続ノードタイプに基づきエッジでノードを接続可能かどうか判定し、
接続可能なノードとエッジを用いて前記仮想ネットワークの論理トポロジ情報を生成することを特徴とする管理サーバプログラム。
【請求項2】
請求項に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記管理サーバプログラムが機能させる前記管理サーバにおいて、
前記物理機器として、物理サーバ機器と物理ネットワーク機器のいずれか一方または両方を対象とし、
前記仮想化技術は、前記仮想LAN技術に加え、仮想インタフェース技術、仮想ルータ技術、仮想サーバ技術のいずれか一つ以上を含み、
対象とする前記仮想ネットワークにおいて、前記仮想リソースは、前記仮想サーバ技術によって前記物理サーバ機器内で論理的に生成しネットワーク機能を付与することで実現されるか、もしくは、前記物理ネットワーク機器内で論理的に生成されるものを含むことを特徴とする管理サーバプログラム。
【請求項3】
請求項に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
対象とする前記仮想ネットワーク
前記仮想インタフェース技術、前記仮想ルータ技術、前記仮想サーバ技術のいずれかによって生成される仮想リソースのノードの情報は、さらに、仮想リソースのノードを保有する物理機器の識別子を含むことを特徴とする管理サーバプログラム。
【請求項4】
請求項1からのいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記論理トポロジ情報として、前記ノードと前記エッジとを用いたグラフを生成し、
前記グラフを表示させることを特徴とする管理サーバプログラム。
【請求項5】
請求項からのいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記仮想リソースのノード間の関係の種類をエッジタイプとし、
前記エッジタイプは、仮想LANと仮想インタフェース間の関係、仮想インタフェースと仮想ルータ間の関係、仮想ルータ間の関係、のいずれかを表すことを特徴とする管理サーバプログラム。
【請求項6】
請求項1からのいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて
前記物理ネットワークは、物理LAN、物理インタフェース、物理ルータのいずれか一つ以上の種類の物理リソースを含み、
一つの前記物理リソースを、前記仮想リソースにおいて該当する前記ノードタイプの一つのノードとして管理することを特徴とする管理サーバプログラム。
【請求項7】
請求項1からのいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
対象とする前記仮想ネットワークにおいて、
前記設定パターンは、さらに、仮想ネットワークインタフェース技術により生成される仮想リソースのノードの情報と、生成される仮想リソースのノードに設定されるIPアドレスの対応関係を保持し、
前記仮想リソースの種類における当該仮想リソースのノードを識別する識別子は、ノードタイプが仮想インタフェースの場合は、抽出されたパラメータのうちIPアドレスを含み、
前記管理サーバは、前記設定パターンに基づいて、抽出済みの仮想インタフェースを表す仮想リソースのノードに設定されるIPアドレス情報を抽出し管理することを特徴とする管理サーバプログラム。
【請求項8】
請求項1からのいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記物理機器に設定された機器設定情報を、当該物理機器から取得することを特徴とする管理サーバプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示される主題は仮想ネットワーク、構成管理サーバ及び構成管理方法に、関する。
【背景技術】
【0002】
近年、コンピュータネットワーキングの技術分野において、複数の仮想化技術を組み合わせて使用することで、様々な構成をとれる複雑な仮想ネットワークを構築できるようになった。
【0003】
仮想化技術は、L2(Layer 2)レイヤのものやL3(Layer 3)レイヤのものを含む。L2レイヤの仮想化技術は、VLAN(Virtual Local Area Network)のような仮想LAN(Local Area Network)技術、VLANインタフェースやサブインタフェースのような仮想インタフェース技術を含む。また、L3レイヤの仮想化技術は、VRF(Virtual Routing and Forwarding)やVR(Virtual Router)のような仮想ルータ技術を含む。
【0004】
仮想LAN技術や仮想インタフェース技術を用いることで、例えば、オフィスネットワークにおいて、物理的な制約に縛られずに、仮想ネットワークの構築と構成変更が容易にできるようになった。また、前記技術に加えて仮想ルータ技術も組み合わせることで、例えば、データセンタネットワークやキャリアネットワークにおいては、様々なネットワーク構成を持つ顧客ネットワークを仮想化し、単一の物理ネットワークの上に集約できるようになった。
【0005】
しかしながら、仮想ネットワークが複雑な構成をとれるようになった結果、仮想ネットワークの論理構成(論理トポロジ)を把握することが困難になっている。ネットワークを構成する物理機器はそれぞれ、各々の物理機器の中にあたかも複数の仮想機器が存在するように機能し、また、仮想機器同士が仮想的なリンクによって自由に接続されるようになった。その結果、目視できる物理的な結線状態を見るだけでは、仮想ネットワークの論理トポロジを把握できなくなっている。これに対して、機器への設定情報(すなわち、コンフィグ)を調べることにより仮想ネットワークの論理トポロジを把握しようとしても、複雑な仮想ネットワークでは膨大な項目の設定情報が機器群に設定されており、仮想ネットワークの全体的な論理トポロジを把握するのが困難になっている。
【0006】
従来より仮想ネットワークの論理トポロジ把握において採られてきた方法とその問題は次のとおりである。ひとつ目は、仮想ネットワークの論理トポロジを管理台帳に記載し保持する方法である。この手法における問題は、台帳変更を介さない臨時的な設定変更などが重なると、台帳に記載されている情報と、機器に実際に設定されている内容が、必ずしも一致しなくなる点である。ふたつ目の方法は、前述の問題点に対して採られる方法であり、機器の設定情報を手作業で解釈し、論理トポロジ図を描く方法である。しかしながら、複雑な仮想ネットワークでは、先にも説明したように膨大な項目が機器に設定されるため、この方法は、ヒューマンエラーを起こす恐れがあり、また、多大な時間を要するため非現実的である。
【0007】
従来の方法が抱える問題を解決するためには、機器の設定情報(コンフィグ)を自動的に解析し、仮想ネットワークの論理トポロジ情報を自動生成することが課題となる。機器のコンフィグを解析することができれば、仮想ネットワークの論理トポロジを把握でき、この解析を自動化することで、ヒューマンエラーを削減しつつ作業時間をも削減できる。
【0008】
この課題に対して、仮想ネットワークにおける論理トポロジ情報を自動生成する従来技術が、ある。
【0009】
特許文献1では、L3の仮想化技術である仮想ルータ間の情報交換の関係を自動的に生成する。この技術は、MPLS(Multi Protocol Label Switching)ネットワークのVPN(Virtual Private Network)サービスにおいて用いられる。この技術を用いると、MPLSルータのVRFの設定情報を基に、複数の顧客サイトそれぞれの仮想ルータ間の経路交換関係を把握できる。
【0010】
特許文献2では、L2の仮想化技術であるVLANのトポロジ情報を自動生成する。この技術は、スイッチやルータからなるネットワーク環境において機器に設定されているコンフィグ情報から、VLANインタフェースに関する設定情報を用いて、複数のVLANから構成される論理トポロジの情報を生成する(段落0047〜0056、図6、7)。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】米国特許第7,593,352号明細書
【特許文献2】特開2009−194675号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
これら従来技術の問題は、複数の仮想化技術を用いたネットワーク環境において、仮想ネットワークの論理トポロジ情報を生成できないことである。
【0013】
特許文献1が開示する技術は、対象機器がVPNを実現するためのルータのみであり、仮想ルータのトポロジ情報を生成できるものの、仮想LANに関するトポロジ情報を生成できない。オフィスネットワークやデータセンタネットワークでは、仮想LANは一般的に利用される技術であるが、本技術ではその論理トポロジを把握できない点が問題である。
【0014】
特許文献2が開示する技術は、対象機器がVLANを実現するスイッチあるいはルータのみであり、仮想ルータ技術を用いた環境では、仮想ネットワークの論理トポロジを正しく把握できない点が問題である。また、論理トポロジを生成するために生成プログラム内部で持つべき情報が開示されていない。
【0015】
したがって、特許文献1および特許文献2では、仮想LAN、仮想インタフェース、仮想ルータ技術などを組み合わせて構成される複雑な仮想ネットワーク環境において、その論理トポロジ情報を生成できないという問題がある。複数の仮想化技術を用いる仮想ネットワークは、単一の仮想化技術を用いる場合に比べて、管理すべき情報や対応付けるべき情報が複雑であり、前記の問題点は、従来技術の単純な拡張では容易には解決できない。
【課題を解決するための手段】
【0016】
本明細書で開示されるのは、複数の仮想化技術を用いて構築される仮想ネットワークの論理トポロジ情報を自動生成する技術である。複数の仮想化技術とは、仮想LAN技術、仮想インタフェース技術、仮想ルータ技術のいずれか一つ以上を含む。
【0017】
開示される第一の態様は、
サーバ機器、ストレージ機器、ネットワーク機器を含む物理機器がネットワークで接続された情報処理システム上に構築された、複数種の仮想化技術によって構成された複数種の仮想リソースを含む仮想ネットワークの論理トポロジの構成管理方法であって、
複数の仮想化技術により生成された複数の仮想リソースのいずれかを特定するための設定パターンと、
複数の仮想リソース間の接続関係のいずれかを特定するための接続パターンと、を保持するステップと、
設定パターンと接続パターンとに基づき、物理機器に設定された設定情報から、複数の仮想リソースと複数の仮想リソースとの間の接続情報を抽出するステップと、
抽出した接続情報に基づき、仮想ネットワークの論理トポロジ情報を生成するステップと、を備えることを特徴とする。
【0018】
上記論理トポロジの構成管理方法は、さらに、
仮想ネットワークを構成する複数物理機器の設定情報の収集に用いる情報を、複数の物理機器毎に管理するステップと、
管理する情報を用いて物理機器の設定情報を収集するステップと、を備えてもよい。
【0019】
上記論理トポロジの構成管理方法は、さらに、
生成した論理トポロジ情報を可視化するステップと、
管理要求に応じて、可視化した論理トポロジを構成する仮想リソース情報または仮想リソース間の接続情報の一部を追加あるいは削除するステップを備えてもよい。
【0020】
上記論理トポロジの構成管理方法は、さらに、
物理機器に設定された設定情報から、設定パターン情報と接続パターン情報に基づき、仮想リソース情報を識別するためのパラメータを抽出するステップを備えてもよい。
【0021】
上記論理トポロジの構成管理方法において、
仮想リソース情報は、仮想リソースの種類を示す情報と、仮想リソースを保有する物理機器の識別子と、仮想リソースの種類における当該仮想リソースを識別する識別子と、を含み、
仮想リソース間の接続情報は、接続対象となる2つの仮想リソース情報を含むものであってもよい。
【0022】
上記仮想リソース情報がノードに対応付けられ、上記仮想リソースの接続情報がエッジに対応付けられる場合、上記論理トポロジの構成管理方法は、さらに、
物理機器に設定された設定情報から、設定パターン情報に基づいて、ノードを生成するステップと、
物理機器に設定された設定情報から、接続パターン情報に基づいて、エッジを生成するステップと、
仮想ネットワークの論理トポロジに対応するノードとエッジからなるグラフを生成するステップと、を備えてよい。
【0023】
上記論理トポロジの構成管理方法において、
設定パターン情報に対して仮想リソースの種類を表すノードタイプが対応づけられ、
接続パターン情報に対して仮想リソースの接続関係の種類を表すエッジタイプが対応づけられ、
論理トポロジは少なくとも3種類のノードタイプと、少なくとも3種類のエッジタイプを含み、
生成するノードを表すノード情報は、ノードを一意に識別するためのノード識別子と、ノードタイプと、物理機器識別子と、ノードタイプ内の識別子と、を含み、
生成するエッジを現すエッジ情報は、エッジタイプと、当該エッジが接続する2つのノードのノード情報識別子と、を含むものであってもよい。
【0024】
なお、上記情報処理システムが管理サーバを備え、当該管理サーバが、上記論理トポロジの構成管理方法を実施してもよい。
【0025】
上記各態様は、例えば、仮想化技術を用いて構築される情報処理システムに応用可能である。
【発明の効果】
【0026】
複数種類の仮想化技術を用いて構築される仮想ネットワークにおいて、論理トポロジの作成を容易化できる。
【図面の簡単な説明】
【0027】
図1】実施の形態におけるシステム構成例を示す図である。
図2】実施の形態における管理サーバ109の構成例である。
図3】ネットワーク機器管理テーブル204の構成例である。
図4】ノードパターン管理テーブル241aの構成例である。
図5】エッジパターン管理テーブル242aの構成例である。
図6】ノード管理テーブル243の構成例である。
図7】エッジ管理テーブル244の構成例である。
図8】ノード生成部234の構成例である。
図9】エッジ生成部235の構成例である。
図10】論理トポロジ生成フローを例示する図である。
図11】コンフィグ単体の解析処理S1003のフローを例示する図である。
図12】単一ノード生成・登録処理S1105のフローを例示する図である。
図13】単一エッジ生成・登録処理S1110のフローを例示する図である。
図14】論理トポロジの例を示す図である。
図15】論理トポロジ管理画面の例を示す図である。
図16】管理サーバ109の装置構成を例示する図である。
【発明を実施するための形態】
【0028】
一実施例を、データセンタにおけるネットワークシステムにおける論理トポロジ生成を例にとって説明する。なお、データセンタネットワークはあくまでも適用箇所の一形態であり、適用先には複数のデータセンタにまたがったネットワーク、キャリアネットワーク、オフィスネットワーク、あるいは、キャンパスネットワークなどを含む。
【0029】
図1は、本実施形態におけるシステム構成の例を示す図である。
【0030】
データセンタ100は、ネットワーク101を介して、適宜のICTサービスを提供するためのシステムを構成する。そのシステムの構成要素になりうる機器として、ファイアウォール102、ロードバランサ103、L3スイッチ104、L2スイッチ105a、105bのようなネットワーク機器に加えて、サーバ106a、106b、106c、106dといったサーバ機器、FC(Fibre Channel)スイッチ107a、107bのようなSAN(Storage Area Network)スイッチ機器、ストレージ108a、108bなどのストレージ機器を含む。これら機器を全て用いてシステムを構成する必要はなく、適宜の種類の機器を適宜の個数だけ用いて、適宜のICTサービスを提供するためのシステムを構成すればよい。また、このシステムには、管理サーバ109が接続される。管理サーバ109はコンソール110と接続している。
【0031】
ファイアウォール102、ロードバランサ103、L3スイッチ104、L2スイッチ105a、105bのようなネットワーク機器は、LAN(Local Area Network)を構築し、サーバ106a〜106dにネットワーク接続性を提供するとともに、サーバが送受信するパケットを制御する。これらネットワーク機器はサーバと接続し、また、管理サーバ109やデータセンタ100の外部のネットワークとも接続してもよい。LAN内通信をするためのプロトコルはEthernet(登録商標)を含み、LAN間通信をするためのプロトコルはIP(Internet Protocol)を含む。そして、これらネットワーク機器は、VLANのような仮想LAN技術、VLANインタフェースやサブインタフェースのような仮想インタフェース技術、VRFやVRのような仮想ルータ技術を有し、物理的なネットワークの上に仮想的なネットワークを構成する。
【0032】
サーバ106a〜106dのようなサーバ機器は、適宜のICTサービスを行うためのアプリケーションを実行する。これらサーバ機器は、前述のネットワーク機器を介して相互に接続し、また、データセンタ100の外部に接続する。また、後述のように、FCスイッチ107a、107bを介して、ストレージ機器108a、108bにアクセスする。それぞれのサーバ機器は、NIC(Network Interface Card)やHBA(Host Bus Adapter)あるいはCNA(Converged Network Adapter)を搭載し、LANおよびSANにアクセスする。サーバ機器には、VMM(Virtual Machine Monitor)技術あるいはLPAR(Logical Partitioning)技術によって、複数の仮想サーバ(VM)が生成されていてもよい。この場合、VMは仮想的なインタフェースであるvNIC(Virtual Network Interface Card)、vHBA(Virtual Host Bus Adaptor)や仮想CNAを生成し、これらの仮想的なインタフェースにより、ネットワーク機器あるいはストレージ機器にアクセスする。
【0033】
FCスイッチ107a、107bのようなSANスイッチ機器は、SANを構成し、サーバ106a〜106dからのI/O(Input/Output)要求をストレージ108a、108bに転送し、ストレージ108から読み出したI/Oデータをサーバ106a〜106dに転送する。SAN内通信およびSAN間通信をするためのプロトコルは、FC、FCIP(FC over IP)、FCoE(FC over Ethernet)やiSCSI(Internet Small Computer System Interface)を含む。また、これらSANスイッチ機器は、Zoning、NPIV(N Port_ID Virtualization)、VSAN(Virtual Storage Area Networking)のような仮想化技術を備えている。これ以外の仮想化技術を備えていてもよい。
【0034】
ストレージ108a、108bのようストレージ機器は、前述のSANを介して、サーバ106a〜106dに外部記憶領域を提供する。ストレージ機器108は、ストレージにアクセスする物理ポートを仮想化するためのNPIV、物理ストレージに構成された論理ヴォリュームであるLU(Logical Unit)を含む。ストレージ108は、ストレージのポートと、LUおよびサーバを対応付けるLUN(Logical Unit Number)マスキングなどの機能を備えていてもよい。
【0035】
管理サーバ109は、システム内の機器がそれぞれ保有するコンフィグを収集し、収集したコンフィグを用いて、データセンタ100の複数機器が構築する仮想ネットワークの全体あるいは一部の論理トポロジ情報を生成する。生成した論理トポロジ情報を可視化し、コンソール110の画面に表示する。
【0036】
なお、上記のシステムの構成機器(ファイアウォールやロードバランサなど)の機能は、ハードウェアによって提供されてもよく、また、ソフトウェアによって提供されてもよい。
【0037】
図2は、管理サーバ109の構成例を示す図である。
【0038】
管理サーバ109は、構成要素として、コンフィグ収集部201、トポロジ視覚化部202、管理要求受付部203、ネットワーク機器管理テーブル204、生成トポロジDB205、論理トポロジ生成部206を有する。
【0039】
コンフィグ収集部201は、データセンタ100内のネットワーク機器からコンフィグを収集する。コンフィグ収集部201の構成要素には、ネットワーク機器情報登録部211とコンフィグ収集部212を含む。ネットワーク機器情報登録部211は、データセンタ100内のネットワーク機器からコンフィグを収集する上で必要な情報を、後述するネットワーク機器管理テーブル204に対して追加または削除する。
【0040】
コンフィグ収集部212は、ネットワーク機器管理テーブル204のネットワーク機器情報を参照し、データセンタ100内の各ネットワーク機器からコンフィグを収集する。収集したコンフィグは、例えば、管理サーバ109内にコンフィグファイルとして保存され、保存したファイル名の一覧がネットワーク機器管理テーブル204に保持される。なお、このコンフィグ収集部212は必須ではなく、管理サーバ109がコンフィグを解析できればいずれの方法でもよい。例えば、管理者が手動でコンフィグを収集し、管理サーバ109内にコンフィグファイルとして保存してもよい。
【0041】
トポロジ視覚化部202は、生成トポロジDB205内のトポロジ情報を可視化し、GUI表示制御部221を用いて、GUI(Graphical User Interface)画面に論理トポロジを出力する。
【0042】
管理要求受付部203は、論理トポロジ情報の生成に関する処理要求をオペレータから受け付け、各機能部に処理の実行を命令する。オペレータが要求する処理は、例えば、コンフィグの収集、収集したコンフィグに基づく論理トポロジ情報の生成、生成した論理トポロジの視覚化である。この例において、それぞれの処理に対応する機能部は、コンフィグ収集部201、論理トポロジ生成部206、トポロジ視覚化部202である。また、他にも、オペレータが要求する処理は、例えば、ノードパターンやエッジパターンの登録がある。この例においては、論理トポロジ生成部206を介して、ノードパターン登録部232ないしエッジパターン登録部233が呼び出される。
【0043】
ネットワーク機器管理テーブル204は、ネットワーク機器からコンフィグを収集する上で必要な情報を保持する。その情報とは、機器の識別子、機種、IPアドレス、ログイン名、パスワードなどを含む。ネットワーク機器管理テーブル204の詳細は図3において説明する。
【0044】
生成トポロジDB205は、論理トポロジ生成部206が生成した論理トポロジ情報を保持する。
【0045】
論理トポロジ生成部206は、コンフィグ収集部201が収集したコンフィグファイルを解析し、仮想ネットワークの論理トポロジ情報をノードとエッジからなるグラフ構造として生成し、生成トポロジDB205に保存する。
【0046】
論理トポロジ生成部206は、構成要素として、論理トポロジ生成・管理テーブル231、ノードパターン登録部232、エッジパターン登録部233、ノード生成部234、エッジ生成部235、論理トポロジ構築部236を含む。
【0047】
論理トポロジ生成・管理テーブル231は、コンフィグからノードとエッジを生成するための情報を管理し、生成したノードとエッジを管理するものであり、ひとつまたは複数のノードパターン管理テーブル241a、241b、241c、ひとつまたは複数のエッジパターン管理テーブル242a、242b、242c、ノード管理テーブル243、エッジ管理テーブル244を含む。コンフィグからノードを生成する際に、ノードパターン管理テーブル241a〜241cが参照され、エッジを生成する際にエッジパターン管理テーブル242a〜242cが参照される。生成されたノードとエッジはそれぞれ、ノード管理テーブル243、エッジ管理テーブル244に保存される。
【0048】
ノードパターン登録部232は、コンフィグのノードパターンをノードパターン管理テーブル241に登録する。例えば、新しい機種の機器をデータセンタに導入した際に、管理者はこの機器に対応するノードパターンを新規入力する。新規入力されるノードパターンは、管理要求受付部203、論理トポロジ生成部206を介してノードパターン登録部232に入力され、ノードパターン登録部232はこの新規ノードパターンを新規のノードパターン管理テーブル241dとして生成する。
【0049】
なお、ノードパターンとは、コンフィグにおける各種仮想化技術の仮想リソースの生成を示す設定コマンドの設定パターンである。設定パターンの詳細は、図4において説明する。
【0050】
また、前述の仮想リソースとは、仮想化技術によって生成される仮想的なインスタンスであり、仮想ネットワークの論理トポロジの構成要素となるインスタンスのことである。仮想リソースは、例えば、仮想LANのインスタンス、仮想インタフェースのインスタンス、仮想ルータのインスタンスを含む。
【0051】
エッジパターン登録部233は、コンフィグのエッジパターンをエッジパターン管理テーブル242に登録する。例えば、新しい機種の機器をデータセンタに導入した際に、利用者はこの機器に対応するエッジパターンを新規入力する。新規入力されるエッジパターンは、管理要求受付部203、論理トポロジ生成部206を介してエッジパターン登録部233に入力され、ノードパターン登録部232はこの新規エッジパターンを新規のエッジパターン管理テーブル242dとして生成する。
【0052】
なお、エッジパターンとは、コンフィグにおける各種仮想化技術の仮想リソース間の接続を示す設定コマンドのパターンである。この設定コマンドのパターンの詳細は、図5において説明する。
【0053】
また、仮想リソース間の接続とは、論理トポロジを構成する前述の仮想リソース間の論理的な結線のことである。仮想リソース間の接続は、例えば、VLANとVLANインタフェースの接続、VLANインタフェースとVRFの接続を含む。
【0054】
ノード生成部234は、ノードパターン管理テーブル241に基づいて、機器のコンフィグのうち、仮想リソースの生成に該当するコマンドを抽出し、抽出したコマンドを含む情報に基づいて、前記の仮想リソースに対応するノードを生成する。生成ノードは、ノード管理テーブル243に保存される。ノード生成部234の詳細は図8において説明する。
【0055】
エッジ生成部235は、エッジパターン管理テーブル242に基づいて、機器のコンフィグのうち、仮想リソース間の接続に該当するコマンドを抽出し、抽出したコマンドを含む情報に基づいて、前記の仮想リソース間の接続に対応するエッジを生成する。生成エッジは、エッジ管理テーブル244に保存される。エッジ生成部235の詳細は図9において説明する。
【0056】
論理トポロジ構築部236は、ノード管理テーブル243とエッジ管理テーブル244の内容に基づいて、データセンタ100の仮想ネットワークの論理トポロジ情報を生成し、生成トポロジDB205に保存する。このDBに保存するトポロジ情報の形式は、隣接行列、接続行列、隣接リスト、接続リストなど適宜の形式でよい。本実施の形態では隣接リストの形式を利用する。
【0057】
ノードパターン管理テーブル241a〜241cは、コンフィグにおける各種仮想化技術の仮想リソースの生成を示す設定パターンを、ノードタイプに対応付けて保持する。仮想リソースの生成の例には、仮想インタフェースのインスタンスの新規生成、仮想ルータのインスタンスの新規生成があげられる。なお、これらテーブルは、機器の機種ごとに用意される。例えば、機種aaaのノードパターンは241aである。ノードパターン管理テーブル241aの詳細は図4において説明する。
【0058】
エッジパターン管理テーブル242a〜242cは、コンフィグにおける各種仮想化技術の仮想リソース間の接続を示す接続パターンを保持する。仮想リソース間の接続の例には、仮想LANのインスタンスと仮想インタフェースとのインスタンスの論理的な結線や、仮想インタフェースのインスタンスと仮想ルータのインスタンスとの論理的な結線があげられる。このテーブルは、機器の機種ごとに用意される。例えば、機種aaaのエッジパターンは242aである。エッジパターン管理テーブル242aの詳細は図5において説明する。
【0059】
ノード管理テーブル243は、コンフィグから生成されるノードを管理するテーブルである。ノード管理テーブル243の詳細は図6において説明する。
【0060】
エッジ管理テーブル244は、コンフィグから生成されるエッジをに管理するテーブルである。エッジ管理テーブル244の詳細は図7において説明する。
【0061】
図3は、ネットワーク機器管理テーブル204の構成例である。
【0062】
ネットワーク機器管理テーブル204は、データセンタ100内のネットワーク機器からコンフィグを収集する際に用いる情報を管理する。管理対象情報として、機器識別子301、機種302、IPアドレス303、ユーザ名304、パスワード305、コンフィグのファイル名306がある。機器識別子301は、個々のネットワーク機器を、ネットワーク全体から一意に特定するための識別子である。機種302、IPアドレス303、ユーザ名304、パスワード305は、ネットワーク機器にリモートログインし、コンフィグを収集するために必要な情報である。ファイル名306は、収集したコンフィグを保存する時のファイル名である。ネットワーク機器管理テーブル204は、これ以外の情報も適宜保持してもよい。
【0063】
図4は、ノードパターン管理テーブル241aの構成例を示す。
【0064】
ノードパターン管理テーブル241aは、機種aaaについて、ノードタイプ401と仮想リソースの生成に関する設定パターン402とを対応付けた設定パターンを管理する。
【0065】
ノードタイプとは、仮想リソースの種類を表す。例えば、ノードN1は仮想LANに関する仮想リソース、ノードN2は仮想インタフェースに関する仮想リソース、ノードN3は仮想ルータに関する仮想リソースである。
【0066】
例えば、設定パターン411は仮想LAN技術のひとつであるVLAN(ノードN1)の仮想リソースの生成、設定パターン412は仮想インタフェース技術のひとつであるVLANインタフェース(ノードN2)の仮想リソースの生成、設定パターン413は仮想ルータ技術のひとつであるVRF(ノードN3)の仮想リソースの生成に関する設定パターンである。コンフィグの中でこれら設定パターンにマッチする箇所が見つかると、対応するノードタイプのノードが生成される。
【0067】
設定パターン402の各セルに記載されている内容について説明する。セル内の最初の行は、ある項目の設定を開始することを意味し、最後の行はこの項目に関する設定を終了することを意味する。例えば、VLANインタフェースの設定パターン412においては、“interface vlan <id>”の行が、あるVLANインタフェースの設定を開始することを意味し、最後の“!”の行が、この設定に関する記述の最後の行であることを意味する。この開始から終了までの間には、設定パターン402に示されていない文字列が存在してもよい。例えば、設定パターン412に記載の“ip address”の行は必須ではない。設定パターンがしたがうべき条件は、後述するノード生成処理において、ノードのタイプとタイプ内識別子を判別できることである。タイプ内識別子とは、あるコンフィグのあるノードタイプにおいてノードを一意に特定するための識別子(コンフィグに記載の仮想リソースの識別子)である。ノードパターン管理テーブル241aの例においては、設定パターン中に<id>と示されている箇所が、タイプ内識別子に該当する。例えば、VLAN(ノードN1)の設定パターン411であれば、VLAN番号に該当する箇所<id>が、ノードタイプN1のタイプ内識別子である。
【0068】
また、上記で説明したノードパターン管理テーブル241aの構成は必須ではなく、適宜の構成をとってもよい。ノードパターン管理テーブルがしたがうべき条件は、ノードを生成する処理において、コンフィグからノードに関する設定パターンを判別し、ノード識別子を抽出できることである。したがって、例えば、ノードパターン管理テーブル241a〜241cそれぞれに機種aaa、bbb、cccを割り当てるのではなく、ひとつのテーブルにおいて、列402に機種aaa、別の列に機種bbb、また別の列に機種cccの設定パターンを保持するといった構成をとってもよい。
【0069】
図5は、エッジパターン管理テーブル242aの構成例を示す。
【0070】
エッジパターン管理テーブル242aは、機種aaaについて、エッジタイプ501、接続ノードタイプ502、仮想リソース間の接続に関する接続パターン503を管理する。
【0071】
エッジタイプ501とは、仮想リソースの接続関係の種類を表す。例えば、エッジE1は仮想LANと仮想インタフェースそれぞれの仮想リソース間の接続、エッジE2は仮想インタフェースと仮想ルータそれぞれの仮想リソース間の接続、エッジE3は仮想ルータの2つの仮想リソース間の接続である。このように、各エッジタイプは、エッジが接続する2つのノードのノードタイプ(接続ノードタイプ502)にも対応付けられる。
【0072】
この例において、接続パターン511はVLAN(ノードN1)の仮想リソースとVLANインタフェース(ノードN2)の仮想リソースを接続するエッジE1、接続パターン512はVLANインタフェース(ノードN2)の仮想リソースとVRF(ノードN3)の仮想リソースを接続するエッジE2、接続パターン513はVRF(ノードN3)の2つの仮想リソースを接続するエッジ3に関する接続パターンである。コンフィグの中でこれら接続パターンにマッチする箇所が見つかると、対応するエッジが生成される。
【0073】
接続パターン503の各セルに記載されている内容について説明する。セル内の最初の行は、ある項目の設定を開始することを意味し、最後の行はこの項目に関する設定を終了することを意味する。例えば、接続パターン511において“interface vlan”から始まる行が最初の行であり、“!”の行が最後の行である。なお、この開始から終了までの間には、接続パターンの例に示されていない文字列が存在してもよい。
【0074】
例えば、接続パターン511に記載の“ip address”の行は必須ではない。また、接続パターン513は、“route−map”の行から始まり“!”の行で終わるブロックと、“vrf definition”の行から始まり“!”で終わるブロックの、複数のブロックからなる。両ブロックは<name>と示される文字列によって相互に対応付けられる。両ブロック間にはこのエッジに関係しない文字列が存在してもよい。
【0075】
接続パターンがしたがうべき条件は、後述するエッジ生成処理において、エッジのタイプと、エッジの両端に接続される2ノードのタイプ内識別子を判別できることである。タイプ内識別子は、前述の通り、ある機器内のあるノードタイプに関してノードを一意に特定するための識別子であり、この例では、接続パターン中に<id1>、<id2>と示されている箇所である。
【0076】
具体的には、エッジE2の接続パターン512であれば、VLANインタフェース番号に該当する箇所<id1>が片方のノードのタイプ内識別子であり、VRF番号に該当する箇所<id2>が他方のノードのタイプ内識別子である。なお、エッジE1の接続パターン511のように、両者のノードのタイプ内識別子が同じ箇所<id>に示される場合もある。
【0077】
なお、上記で説明したエッジパターン管理テーブル242aの構成は必須ではなく、適宜の構成をとってもよい。エッジパターン管理テーブルがしたがうべき条件は、エッジを生成する処理において、コンフィグからエッジに関する接続パターンを判別し、エッジ識別子を抽出できることである。したがって、例えば、エッジパターン管理テーブル242a〜242cそれぞれに機種aaa、bbb、cccを割り当てるのではなく、ひとつのテーブルにおいて、列503に機種aaa、別の列に機種bbb、また別の列に機種cccの接続パターンを保持するといった構成をとってもよい。
【0078】
図6は、ノード管理テーブル243の構成例を示す。
【0079】
ノード管理テーブル243は、コンフィグの設定パターンに基づいて生成されたノードを一元的に管理する。各ノードは、仮想ネットワーク全体で一意に特定できるノード識別子601を有する。ノードの要素には、ノードタイプ401、ノードが存在する物理機器の識別子603、タイプ内識別子604を含む。
【0080】
行611は仮想LAN番号(ノードN1のタイプ内識別子)が10の仮想LAN(ノードN1)が存在することを意味し、行612は機器SW1において仮想インタフェース番号(ノードN2のタイプ内識別子)が10の仮想インタフェース(ノードN2)が存在することを意味し、行613は機器FWにおいて仮想ルータ番号(ノードN3のタイプ内識別子)が1の仮想ルータ(ノードN3)が存在することを意味する。
【0081】
なお、上記で説明したノード管理テーブル243の構成は必須ではなく、適宜の構成をとってもよい。このほかのテーブル構成方法としては、例えば、ノードタイプごとにテーブルを分ける方法や、機器ごとにテーブルを分ける方法をとってもよい。ノード管理テーブル243がしたがうべき条件は、各機器の各ノードタイプのノードを一元的に管理できることである。
【0082】
図7は、エッジ管理テーブル244の構成例を示す。
【0083】
エッジ管理テーブル244は、コンフィグの接続パターンに基づいて生成されたエッジに係るエッジ情報を一元的に管理する。各エッジは、仮想ネットワーク全体で一意に特定できるエッジ識別子701を有し、エッジ情報の要素として、エッジタイプ702と、エッジの両端に接続されるノードのノード識別子601−1、601−2を含む。なお、エッジ管理テーブル244において、エッジタイプ702は必ずしも必要ではなく、特定の2ノードが接続されることを意味する必要最低限の情報さえあればよい。
【0084】
なお、上記で説明したエッジ管理テーブル244の構成は必須ではなく、エッジを管理できる適宜の構成をとってもよい。このほかのテーブル構成方法としては、例えば、エッジタイプごとにテーブルを分ける方法をとってもよい。
【0085】
図8は、ノード生成部234の構成例を示す図である。
【0086】
ノード生成部234は、構成要素として、ノードパターンテーブル呼出部801、ノードパターン抽出部802、ノードパラメータ抽出部803、ノード情報生成部804、ノード識別子生成部805、ノード情報登録部806を含む。
【0087】
ノードパターン呼出部801は、コンフィグ解析対象の機器の機種に対応するノードパターン管理テーブル241を呼び出す。機種情報はネットワーク機器管理テーブル204から特定する。ノードパターン呼出部801は、管理者からのトポロジ情報生成要求をトリガとして、管理要求受付部203と論理トポロジ生成部206を介して実行される。
【0088】
ノードパターン抽出部802は、呼び出したノードパターン管理テーブル241に記載の設定パターンにしたがって、コンフィグからノードに関する設定コマンドを抽出する。
【0089】
ノードパラメータ抽出部803は、抽出した設定コマンドそれぞれについて、ノードのタイプ内識別子を抽出する。
【0090】
ノード情報生成部804は、ノードのノードタイプ、タイプ内識別子、機器識別子を要素とするノードを生成する。
【0091】
ノード識別子生成部805は、生成したノードを一意に特定するための識別子を生成する。
【0092】
ノード情報登録部806は、生成したノードをノード管理テーブル243に追加する。
【0093】
図9は、エッジ生成部235の構成例を示す図である。
【0094】
エッジ生成部235は、構成要素として、エッジパターンテーブル呼出部901、エッジパターン抽出部902、エッジパラメータ抽出部903、エッジ情報生成部904、ノード検索部905、エッジ識別子生成部906、エッジ情報登録部907を含む。
【0095】
エッジパターンテーブル呼出部901は、解析対象コンフィグの機器の機種に対応する、エッジパターン管理テーブル242を呼び出す。機種情報はネットワーク機器管理テーブル204から特定する。
【0096】
エッジパターン抽出部902は、呼び出したエッジパターン管理テーブルに基づいて、コンフィグからエッジに関する接続コマンドを抽出する。
【0097】
エッジパラメータ抽出部903は、抽出した接続コマンドからそれぞれについて、エッジによって接続される2ノードのタイプ内識別子を抽出する。
【0098】
エッジ情報生成部904は、エッジが接続する2ノードの情報(ノードの要素には、抽出したタイプ内識別子、機器識別子、ノードタイプを有する)を生成する。
【0099】
ノード検索部905は、ノード管理テーブル243から、前記2ノードの情報に基づき、前記2ノードを検索し、それら2ノードのノード識別子を返す。この2つのノード識別子が、生成するエッジの要素に含まれる。
【0100】
エッジ識別子生成部906は、生成したエッジを一意に特定するための識別子を生成する。
【0101】
エッジ情報登録部907は、生成したエッジをエッジ管理テーブル244に追加する。
【0102】
図10は、論理トポロジ情報生成フローを示す図である。
【0103】
コンフィグ収集部201は、ネットワーク機器管理テーブル204の情報に基づいて、各ネットワーク機器からコンフィグを収集する(S1001)。コンフィグの収集に使用する方法は、telnet、TFTP(Trivial File Transfer Protocol)、NETCONF(Network Configuration Protocol)、あるいはSNMP(Simple Network Management Protocol)などを含む。
【0104】
次に、各機器から収集したコンフィグそれぞれについて、コンフィグ単体の解析処理を行う(S1003)。処理S1003は個々のコンフィグについてひとつまたは複数のノードとエッジを生成する処理を行う。詳細は図11において説明する。
【0105】
全てのコンフィグを解析し、全てのノードとエッジを生成した後に、論理トポロジ構築部236は、ノード管理テーブル243とエッジ管理テーブル244の要素を単一のグラフとして統合し、生成トポロジDB205に保存する(S1005)。
【0106】
最後に、GUI表示制御部221は、生成トポロジDB205内の論理トポロジを可視化し、コンソール110に表示する(S1006)。なお、GUI表示制御部221は、生成した論理トポロジの中で、特定のノードやエッジを追加または削除するといった操作を行ってもよい。
【0107】
図11は、コンフィグ単体の解析処理S1003のフローを示す図である。
【0108】
最初に、解析対象のコンフィグのファイル名306に基づいて、ネットワーク機器管理テーブル204から、コンフィグに対応する機器識別子301と機種302を特定する(S1101)。
【0109】
次に、ノード生成の処理に移る。
【0110】
ノードパターンテーブル呼出部801は、ネットワーク機器管理テーブル204から特定した機種に対応するノードパターン管理テーブル241を特定する(S1102)。
【0111】
この特定したテーブルに基づいて、ノードパターン抽出部802は、コンフィグの中から、ノードパターン402に該当するコマンドを抽出し、抽出したコマンドに該当するノードタイプ401も判別する(S1103)。
【0112】
そして、抽出したコマンドそれぞれについて、単一ノードの生成処理と登録処理を行う(S1105)。この処理では、ひとつの抽出コマンドに対応するノードを生成し、ノード管理テーブル243に登録する。この処理の詳細は図12において説明する。
【0113】
ノード生成処理を完了した後は、エッジ生成処理に移る。
【0114】
エッジパターンテーブル呼出部901は、解析対象のコンフィグに関して、ネットワーク機器管理テーブル204から取得した機種に対応するノードパターン管理テーブル241を特定する(S1107)。
【0115】
この特定したテーブルに基づいて、エッジパターン抽出部902は、コンフィグの中から、接続パターン503に該当するコマンドを抽出し、抽出したコマンドに該当するエッジタイプ501と、このエッジに接続される2つのノードのノードタイプ502も判別する(S1108)。
【0116】
そして、抽出したコマンドそれぞれについて、単一エッジの生成処理と登録処理を行う(S1110)。この処理では、抽出したコマンドに対応するエッジを生成し、エッジ管理テーブル244に登録する。この処理の詳細は図13において説明する。
【0117】
なお、本実施例においては、コンフィグにおいてノードパターンにマッチしたコマンドを全て抽出した後に、それぞれのコマンドについてノード生成処理を行っているが、この順序は必須ではない。すなわち、コマンドをひとつ抽出する度に、この抽出コマンドに関してノード生成処理を行うなどの適宜の方法をとってもよい。
【0118】
エッジパターン抽出処理とエッジ処理の順序についても、同様に必須ではない。すなわち、エッジパターンにマッチするコマンドをひとつ抽出する度に、この抽出コマンドに関してエッジ生成処理を行うなどの適宜の方法をとってもよい。
【0119】
また、本実施例においては、ノード生成処理の後にエッジ生成処理を行っているが、この順序も必須ではなく、両者の処理を並行に行っても構わない。すなわち、コンフィグを解析しつつ、ノードとエッジに関するパターンに関して並行マッチング処理を行い、見つかったパターンに関連するノードとエッジを適宜生成してもよい。エッジを生成する際に、エッジの両端に結ばれるノードが既に生成済みであるような条件さえ満たしていれば、いかなる順序で個々のノードとエッジを生成してもよい。
【0120】
図12は、単一ノード生成・登録処理S1105の処理フローを示す図である。この処理は、抽出したコマンドに対応するノードを生成し、ノード管理テーブル243に登録する。そのために以下のような処理を行う。
【0121】
最初に、ノードパラメータ抽出部803が、抽出コマンドからタイプ内識別子を特定する(S1201)。具体的には、ステップS1103で抽出したひとつのコマンドについて、ステップS1103で判別されたノードタイプと、ノードパターン管理テーブル241の設定パターン402にしたがって、ノードのタイプ内識別子を特定する。
【0122】
次に、ノード情報生成部804が、ノードを新規生成する(S1202)。新規生成ノードが持つべき要素は3つあり、それらはノードタイプ(ステップS1103で判別)、タイプ内識別子(ステップS1201で特定)、機器識別子(S1101で特定)である。なお、ノードタイプがN1(仮想LAN技術の仮想リソース)の場合は、例外的に機器識別子は付与しない(あるいは機器識別子にn/aなどの固定文字列を入力する)。
【0123】
そして、生成したノードと同じ要素を持つノードが、ノード管理テーブル243に既に存在しているかどうかを確認する(S1203)。存在していなければ以下の処理(S1204〜S1206)を行い、存在していれば以下の処理を行わず単一ノード生成・登録処理S1105は終了する。
【0124】
ノード識別子生成部805は、新規生成したノードに対するノード識別子を生成する(S1204)。本実施例においては、ノード識別子を整数とし、ノード管理テーブル243に存在するノードのノード識別子のうち、最大のものに1を足した値を、新規生成ノードのノード識別子とする。なお、ノード識別子は他の方法によって決定されてもよい。ノード識別子の書式や生成規則がしたがうべき条件は、各ノードがネットワーク全体で一意に特定できることである。
【0125】
ノード情報生成部804は、前記のノード識別子を新規生成ノードに付与する(S1205)。
【0126】
ノード情報登録部806は、ノード識別が付与された新規生成ノードを、ノード管理テーブル243に追加する(S1206)。
【0127】
以上が、単一ノード生成・登録処理である。
【0128】
図13は、単一エッジ生成・登録処理S1110を示す図である。この処理は、抽出したコマンドに対応するエッジを生成し、エッジ管理テーブル244に登録する。そのために、以下のような処理を行う。
【0129】
最初に、エッジパラメータ抽出部903は、エッジが接続する2ノードのタイプ内識別子を、抽出コマンドから特定する(S1301)。具体的には、ステップS1109で抽出したひとつのコマンドについて、ステップS1108で判別されたエッジタイプ、エッジが接続する2つのノードのノードタイプと、エッジパターン管理テーブル242の接続パターン503にしたがって、エッジが接続する2ノードのタイプ内識別子を特定する。
【0130】
次に、エッジ情報生成部904が、エッジに接続される2ノードのノード情報を生成する(S1302)。ノードが持つべき要素は3つあり、それらはノードタイプ(ステップS1108で判別)、タイプ内識別子(ステップS1301で特定)、機器識別子(S1101で特定)である。なお、ノードタイプがN1(仮想LANの仮想リソース)の場合は、例外的に機器識別子は付与しない(あるいは機器識別子にn/aなどの固定文字列を入力する)。
【0131】
そして、ノード検索部905は、S1103で生成した2ノードと同じ要素を持つノードを、ノード管理テーブル243から検索する(S1303)。ノード検索部905は、この検索によりヒットした2つのノードのノード識別子を、エッジ情報生成部904に渡す。
【0132】
エッジ情報生成部904は、エッジを新規生成する(S1304)。エッジに持たせる要素は、エッジタイプと、エッジが接続する2ノードのノード識別子である。
【0133】
エッジ識別子生成部906は、新規生成したエッジに対するエッジ識別子を生成する(S1305)。実施例においては、エッジ識別子を整数とし、エッジ管理テーブル244に存在するエッジのエッジ識別子のうち、最大のものに1を足した値を、新規生成エッジのエッジ識別子とする。なお、エッジ識別子は他の方法によって決定されてもよい。エッジ識別子の書式や生成規則がしたがうべき条件は、各エッジがネットワーク全体で一意に特定できることである。
【0134】
エッジ情報生成部904は、前記のエッジ識別を新規生成エッジに付与する(S1035)。
【0135】
エッジ情報登録部907は、エッジ識別が付与された新規生成エッジを、エッジ管理テーブル244に追加する(S1306)。
【0136】
以上が、単一エッジ生成・登録処理のフローである。
【0137】
図14は、これまでに説明したトポロジ生成処理によって生成されるトポロジの例を示す図である。
【0138】
コンフィグにより生成されたノードはN1401〜N1407であり、生成されたエッジはE1411〜E1415である。ノードN1はN1401、N1415であり、ノードN2はN1402、N1406であり、ノードN3はN1403、N1404である。エッジE1はE1411、E1415であり、ノードタイプN1とN2のノードを接続している。エッジE2はE1412、E1414であり、ノードタイプN2とN3のノードを接続している。エッジE3はE1413であり、ノードタイプN3の2ノードを接続している。
【0139】
図15は、トポロジ生成画面の例である。
【0140】
トポロジ生成画面1501は、コンソール110に表示される。トポロジ生成画面1501は、例えば、トポロジ表示タブ1502とパターン一覧タブ1503を含む。
【0141】
トポロジ表示タブ1502内では、トポロジを表示するための一連の項目を表示する。このタブは、生成トポロジ表示エリア1511と機器一覧表示エリア1512を含む。
【0142】
パターン一覧タブ1503では、ネットワーク機器の各機種に対応するノードパターン管理テーブル241、エッジパターン管理テーブル242を表示する。この画面上では、例えば、新規機種についてのノードパターン管理テーブルやエッジパターン管理テーブルを追加する。
【0143】
生成トポロジ表示エリア1511では、視覚化した論理トポロジ情報1521を表示する。なお、表示したトポロジのノードとエッジを追加または削除するといった表示制御を行うボタン1522〜1525を含んでもよい。また、視覚化にあたっては、仮想インタフェース(ノードN2)の表示を省略し、仮想LAN(ノードN1)と仮想ルータ(ノードN3)を直接接続する表現方法で表示するなど、適宜の方法をとってもよい。
【0144】
機器一覧表示エリア1512では、ネットワーク機器一覧1531を表示する。また、このタブの中では、ネットワーク機器一覧1531に機器情報を登録するためのボタン1532、ネットワーク機器からのコンフィグ収集を実行するためのボタン1533、収集したコンフィグからの論理トポロジ情報の生成を実行するためのボタン1534、生成したトポロジを画面上に表示するためのボタン1535を有する。
【0145】
図16に、管理サーバ109の装置構成の例を示す。管理サーバ109は、CPU1601、メモリ1602、補助記憶装置1603を備える一般的な計算機を用いて実現することができる。さらに、各装置を構成するそれぞれの機能は、CPUが補助記憶装置に格納されているプログラムを実行することにより、上記計算機上に具現化される。各プログラムは、あらかじめ、上記計算機内の補助記憶装置1603に格納されていてもよい。あるいは、各プログラムは、必要なときにLANインタフェース1604やメディアインタフェース1605を経由して上記計算機が利用可能な媒体を介し、他の装置から上記記憶装置に導入されてもよい。媒体とは、たとえば、通信媒体(すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号)、またはメディアインタフェース1605に着脱可能な外部記憶媒体1607を指す。なお、管理サーバ109は、入出力装置1606を介して管理サーバを操作するコンソール110に接続してもよい。
【0146】
本実施の形態によると、複数の仮想化技術を用いて構築される仮想ネットワークにおいて、論理トポロジを迅速かつ正確に把握できる。また、生成したトポロジ情報を視覚化することにより、論理トポロジ図作成における個々人のスキルの差を解消でき、論理トポロジ図の品質を一定に保てる。また、論理トポロジの視覚化によって、コンフィグの正しさを直感的に検証できるようになる。
【0147】
本実施例においては、3種類のノードをN1、N2、N3を定義し、それぞれのタイプ内識別子として、仮想LAN識別子、仮想インタフェース識別子、仮想ルータ識別子を付与した。一方、データセンタ100に構築されるシステムの構成によっては、以下のように、ノードに情報を追加しても有用である。すなわち、ノード管理テーブル243を以下のように拡張する方法も有用である。
【0148】
まず、仮想的でない物理的な機能要素を含める方法である。この方法では、例えば、物理LANの識別子として仮想LANの0番(仮想LANとして設定できない番号)を割り当てる、あるいは、物理ルータの識別子として仮想ルータ番号の0番を割り当てるなどのように、物理的なリソースを仮想リソースのひとつとしてみなす。この方法は、例えば、仮想LANに加えて物理LAN、仮想インタフェースに加えて物理インタフェース、仮想ルータに加えて物理ルータも、ネットワーク通信のためのリソースとして機能するシステムにおいて有用である。
【0149】
次に、仮想LANにIPセグメント情報を付加する方法である。この方法では、ひとつのVLANが複数のIPセグメントを持ち、VLAN内においてもルーティングをする場合などに有効である。この場合では、N1のタイプ内識別子として、仮想LAN番号に加えて、仮想LANのIPセグメント情報を付加し、N2のタイプ内識別子として、仮想インタフェース番号に加えて、インタフェースのIPアドレスを付加する。IPセグメントの情報はコンフィグに記載されているため、この情報を抽出するようにノードパターン管理テーブル241を拡張するだけでよい。
【0150】
そして、LANの物理的な結線情報を加味する方法である。この方法では、新たにノード、エッジの体系を定義しなおす必要があり、それらはノードN1、N2、N3、エッジE0、E1、E2、E3である。ノードN1は物理インタフェースを表し、ノードN2、N3は実施例と同様に、それぞれ、仮想インタフェース、仮想ルータである。エッジE0は物理インタフェース間が物理リンクで接続されていることを意味し、エッジE1は物理インタフェースと仮想インタフェースとの設定関係を意味し、エッジE2、E3は実施例と同様である。再定義するノードタイプN1が持つべき要素は3つあり、それらはノードタイプ、機器識別子と、タイプ内識別子として物理インタフェース識別子と仮想LAN識別子のペアである。2つの物理機器がリンクで結ばれている場合は、ふたつのノードN1がエッジE0で結ばれる。物理インタフェースに仮想LANが割り当てられている場合は、ノードN1とN2をエッジE0で結ぶ。この方法は、物理結線情報が入手できる場合に、仮想LANの詳細なトポロジを把握する際に有用である。
【0151】
最後に、サーバ、ストレージの情報を含める方法である。サーバおよびストレージも、本実施例で定義したノードN1、N2、N3、エッジE1、E2、E3を用いて表現できる。サーバ機器に関する情報として、VMはノードN3、vNIC、vHBAはノードN2に対応する。ストレージ機器やSANスイッチ機器に関する情報として、LUおよびVSANがノードN3、VSANインタフェースやNPIVによって生成される仮想インタフェースがノードN2、Zoningによって生成されるゾーンがノードN1に対応する。これら機能要素の関連付けは、同様にエッジとして表現される。また、本実施例で定義したノードN1、N2、N3、エッジE1、E2、E3とは異なるノードとエッジを定義し、それぞれのノードとエッジをサーバ、ストレージの仮想化技術に対応させてもよい。
【0152】
ネットワーク機器のコンフィグは、SNMP(Simple Network Management Protocol)で収集されるMIB(Management Information Base)でもよい。この方法をとる場合、ネットワーク機器管理テーブル204に必要な情報は、SNMPのコミュニティ名などである。また、ノードパターン管理テーブル241、エッジパターン管理テーブル242の設定パターンには、MIBの形式にしたがうように改変する必要がある。
【符号の説明】
【0153】
100 データセンタ
101 ネットワーク
102 ファイアウォール
103 ロードバランサ
104 L3スイッチ
105a、105b L2スイッチ
106a、106b、106c、106d サーバ
107a、107b FCスイッチ
108a、108b ストレージ
109 管理サーバ
110 コンソール
201 コンフィグ収集部
202 トポロジ視覚化部
203 管理要求受付部
204 ネットワーク機器管理テーブル
205 生成トポロジDB
206 論理トポロジ生成部
211 ネットワーク機器情報登録部
212 コンフィグ収集部
221 GUI表示制御部
231 論理トポロジ生成・管理テーブル
232 ノードパターン登録部
233 エッジパターン登録部
234 ノード生成部
235 エッジ生成部
236 論理トポロジ構築部
241a、241b、241c ノードパターン管理テーブル
242a、242b、242c エッジパターン管理テーブル
243 ノード管理テーブル
244 エッジ管理テーブル
801 ノードパターンテーブル呼出部
802 ノードパターン抽出部
803 ノードパラメータ抽出部
804 ノード情報生成部
805 ノード識別子生成部
806 ノード情報登録部
901 エッジパターンテーブル呼出部
902 エッジパターン抽出部
903 エッジパラメータ抽出部
904 エッジ情報生成部
905 ノード検索部
906 エッジ識別子生成部
907 エッジ情報登録部
1501 論理トポロジ管理画面
1502 トポロジ表示タブ
1503 パターン一覧タブ
1511 トポロジ表示エリア
1512 機器一覧エリア
1521 生成トポロジ
1522 ノード追加ボタン
1523 ノード削除ボタン
1524 エッジ追加ボタン
1525 エッジ削除ボタン
1531 機器一覧
1532 機器情報登録ボタン
1533 コンフィグ収集実行ボタン
1534 解析実行ボタン
1535 トポロジ表示実行ボタン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16