(57)【特許請求の範囲】
【請求項１】
複数種類の物理機器がネットワークで接続された情報処理システム上に構築された、複数種の仮想化技術によって構成された一種類以上の複数の仮想リソースと、複数の前記仮想リソースを接続するエッジと、を含む論理トポロジ情報を、テナント毎に互いに区別して管理する管理サーバであって、
前記物理機器への操作に係る設定情報と、前記設定情報に対応する前記論理トポロジへの操作と、の対応関係を保持し、
前記対応関係に基づき、前記物理機器への前記設定情報から、いずれかの前記論理トポロジへの操作を特定する設定情報解析部と、
前記テナント毎の論理トポロジ情報と、前記論理トポロジへの操作と、各々の前記テナントを特定するテナント識別子と、に基づき、前記物理機器への前記設定情報の入力により変更された後の、前記テナントの論理トポロジを模擬生成するトポロジ生成部と、
模擬生成された前記テナントの論理トポロジに基づき、前記操作に係る設定情報の正しさを検証する検証部と、を有する
ことを特徴とする管理サーバ。
【請求項２】
請求項１に記載の管理サーバにおいて、
前記検証部は、
１つの前記操作に係る前記設定情報に対応する論理トポロジへの操作によって、
前記模擬生成された前記テナントの論理トポロジが他のテナントと接続しない場合に、前記設定情報が正しいと判定し、
前記模擬生成された前記テナントの前記論理トポロジが他のテナントと接続する場合に、前記設定情報が誤りであると判定する
ことを特徴とする管理サーバ。
【請求項３】
請求項１または２に記載の管理サーバにおいて、
前記検証部は、
１つの前記操作に係る前記設定情報に対応する論理トポロジへの操作によって、前記模擬生成された前記テナントと異なるテナントのトポロジ情報から、仮想リソース、および／または、エッジを削除する場合に、前記設定情報が誤りであると判定する
ことを特徴とする管理サーバ。
【請求項４】
請求項１から３のいずれか一に記載の管理サーバにおいて、
予め、定められた検証結果の重要度を保持しておき、
前記検証部による検証結果を可視化する視覚化部を有し、
前記検証部は、判定した、前記操作に係る設定情報の正しさの検証結果と、前記検証結果に該当する重要度と、を対応づけて保存し、
前記視覚部は、前記テナントに係る、前記操作と、前記検証結果と、前記重要度と、を対応づけて可視化する
ことを特徴とする管理サーバ。
【請求項５】
請求項４に記載の管理サーバにおいて、
前記視覚部は、さらに、
前記模擬生成したテナントの論理トポロジを併せて可視化する
ことを特徴とする管理サーバ。
【請求項６】
請求項１から５のいずれか一に記載の管理サーバにおいて、
前記検証部は、さらに、
前記模擬生成したテナントの論理トポロジを構成する仮想リソースに含まれるＩＰアドレスが重複しないことと、
前記模擬生成したテナントの論理トポロジを構成する仮想リソースが、前記仮想リソースのエッジにより接続されることと、を検証する
ことを特徴とする管理サーバ。
【請求項７】
複数種類の物理機器がネットワークで接続された情報処理システム上に構築された、複数種の仮想化技術によって構成された一種類以上の複数の仮想リソースと、複数の前記仮想リソースを接続するエッジと、を含む論理トポロジ情報を、テナント毎に互いに区別して管理する管理サーバによる検証方法であって、
前記物理機器への操作にかかわる設定情報と、前記設定情報に対応する前記論理トポロジへの操作と、の対応関係と、
前記対応関係に基づき、前記物理機器への前記設定情報から、いずれかの前記論理トポロジへの操作を特定するステップと、
前記テナント毎の論理トポロジ情報と、前記論理トポロジへの操作と、各々の前記テナントを特定するテナント識別子と、に基づき、前記物理機器への前記設定情報の入力により変更された後の、前記テナントの論理トポロジを模擬生成するステップと、  模擬生成された前記テナントの論理トポロジに基づき、前記操作に係る設定情報の正しさを検証するステップと、を有する
ことを特徴とする検証方法。
【請求項８】
請求項７に記載の検証方法は、さらに、
１つの前記操作に係る前記設定情報に対応する論理トポロジへの操作によって、
前記模擬生成された前記テナントの論理トポロジが他のテナントと接続しない場合に、前記設定情報が正しいと判定するステップと、
前記模擬生成された前記テナントの前記論理トポロジが他のテナントと接続する場合に、前記設定情報が誤りであると判定するステップと、を有する
ことを特徴とする検証方法。
【請求項９】
請求項７または８に記載の検証方法は、さらに、
１つの前記操作に係る前記設定情報に対応する論理トポロジへの操作によって、
前記模擬生成された前記テナントと異なるテナントのトポロジ情報から、仮想リソース、および／または、エッジを削除する場合に、前記設定情報が誤りであると判定するステップを有する
ことを特徴とする検証方法。
【請求項１０】
請求項７から９のいずれか一に記載の検証方法は、さらに、
予め、定められた検証結果の重要度を保持しておき、
前記判定された検証結果を可視化するステップと、
前記判定された、前記操作に係る設定情報の正しさの検証結果と、前記検証結果に該当する重要度と、を対応づけてを保存するステップと、
前記テナントに係る、前記操作と、前記検証結果と、前記重要度と、を対応づけて可視化するステップと、を有する
ことを特徴とする検証方法。
【請求項１１】
請求項１０に記載の検証方法は、さらに、
前記模擬生成したテナントの論理トポロジを併せて可視化するステップを有する
ことを特徴とする検証方法
【請求項１２】
請求項７から１１のいずれか一に記載の検証方法は、さらに、
前記模擬生成したテナントの論理トポロジを構成する仮想リソースに含まれるＩＰアドレスが重複しないことを検証するステップと、
前記模擬生成したテナントの論理トポロジを構成する仮想リソースが、前記仮想リソースのエッジにより接続されることを検証するステップと、を有する
ことを特徴とする検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、ネットワークを構成する機器に設定する設定情報を管理する管理サーバおよび管理サーバで実施する設定情報の検証方法に関する。
【背景技術】
【０００２】
近年、コンピュータネットワーキングの技術分野において、複数の仮想化技術を組み合わせて使用することで、様々な構成をとれる複雑な仮想ネットワークを構築できるようになった。
【０００３】
仮想化技術には、様々な技術があり、サーバ分野では、物理的なサーバを複数の仮想マシンに分割する技術を含む。ネットワーク分野では、ネットワークのレイヤごとに仮想化技術があり、Ｌ２（Ｌａｙｅｒ  ２）レイヤのものやＬ３（Ｌａｙｅｒ  ３）レイヤのものを含む。Ｌ２レイヤの仮想化技術は、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のような仮想ＬＡＮ(Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)技術、ＶＬＡＮインタフェースやサブインタフェースのような仮想インタフェース技術を含む。また、Ｌ３レイヤの仮想化技術は、ＶＲＦ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇ）やＶＲ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒ）のような仮想ルータ技術を含む。ストレージ分野では、複数の物理ハードディスクをまとめた１つのストレージを論理的に複数のＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）に分割する技術を含む。このような仮想化技術によって分割されたＶＬＡＮや仮想マシンなどの様々な仮想的リソースは総称して仮想リソースと呼ばれる。
【０００４】
仮想ＬＡＮ技術や仮想インタフェース技術を用いることで、物理的な構成変更を必要とせずに、仮想ネットワークの構築と変更が可能となる。例えば、データセンタネットワークにおいては、様々なネットワーク構成を持つ顧客（以下、テナントと称す）のネットワークを仮想化して、単一の物理ネットワーク上に集約し、仮想ネットワークの構成を変更するだけで、顧客の要望に合ったネットワークを構築できる。
【０００５】
しかしながら、仮想ネットワークは、機器に入力する設定情報、例えばコマンド、を変更するだけで構成を容易に変更可能であるため、誤った設定情報を機器に入力することにより、あるテナントの仮想ネットワークが、異なるテナントの仮想ネットワークに接続されるといった障害が発生する可能性もある。異なるテナント間で仮想ネットワークが接続することで、例えば、あるテナントの仮想マシンから異なるテナントがファイルサーバとして使用する仮想マシンに接続可能となるといった重大な障害が発生する場合が考えられる。
【０００６】
データセンタを運用する事業者や管理者にとっては、このような障害の発生原因となる得る設定情報の誤りを、設定情報を機器に入力する前に検出または予防したいという要望がある。
【０００７】
本技術分野の背景技術として、特許文献１がある。この公報には、コマンドの入力順序を記載した入力方式設定ファイルを備え、コマンドを入力するときは、入力方式設定ファイルにコマンドが存在するか否かにも基づいて入力すると記載されている。
【０００８】
また、特許文献２がある。この公報には、「設計時トポロジ算出部が、通信機器に設定されるレイヤごとの設計情報および物理接続情報に基づいて、ネットワークのレイヤごとの設計時トポロジを生成し、構築後トポロジ算出部が、実際に各通信機器に設定されたレイヤごとの設定情報を収集し、収集した設定情報に基づいて、実際に構築されたネットワークのレイヤごとの構築後トポロジを生成し、トポロジ比較部が、設計時トポロジと構築後トポロジとをレイヤごとに比較すると記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−６０１０５号公報
【特許文献２】特開２００８−１８２４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の技術では、新規に入力するコマンドを入力可能なコマンドが記載された入力方式設定ファイルと比較する。コマンドにはテナントを示す識別子はなく、かつ、テナントとコマンドとの対応関係も保持していないため、新規入力コマンドにより、あるテナントの仮想リソースが異なるテナントの仮想リソースに接続する障害を検出することはできない。
【００１１】
特許文献２に記載の技術では、ネットワークの各レイヤのトポロジを用いて、ネットワークの接続性を検証する。検証する情報にテナントの情報は含まれないため、異なるテナントのネットワークには接続していないこと（テナントの独立性）を検証することはできない。また、設定情報を機器に入力し、構築後に機器から収集した設定情報を基に生成したトポロジと、設計情報から生成したトポロジを比較するため、設定情報の誤りを、機器にコマンドを入力する前に検出することはできない。
【課題を解決するための手段】
【００１２】
開示されるのは、機器に新規に入力しようとする設定情報により、仮想リソースと、それら仮想リソースを接続するエッジとにより構成される情報処理システムの論理的構造（以下、論理トポロジと称す）がどのように変化するかを、模擬するとともに、設定情報の入力により発生する障害を設定情報入力前に検証する論理トポロジ検証サーバおよびそれに用いる検証方法である。
【００１３】
本明細書では上記課題を解決する方法を複数開示しているが、その一例は、複数種類の物理機器がネットワークで接続された情報処理システム上に構築された、複数種の仮想化技術によって構成された一種類以上の複数の仮想リソースと、複数の前記仮想リソースを接続するエッジと、を含む論理トポロジ情報を、テナント毎に互いに区別して管理する管理サーバであって、
前記物理機器への操作に係る設定情報と、前記設定情報に対応する前記論理トポロジへの操作と、の対応関係を保持し、
前記対応関係に基づき、前記物理機器への前記設定情報から、いずれかの前記論理トポロジへの操作を特定する設定情報解析部と、
前記テナント毎の論理トポロジ情報と、前記論理トポロジへの操作と、各々の前記テナントを特定するテナント識別子と、に基づき、前記物理機器への前記設定情報の入力により変更された後の、前記テナントの論理トポロジを模擬生成するトポロジ生成部と、
模擬生成された前記テナントの論理トポロジに基づき、前記操作に係る設定情報の正しさを検証する検証部と、を有する管理サーバである。
【発明の効果】
【００１４】
開示により、新規設定情報が正しいか否かを、物理機器への設定入力前に調べることができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態におけるシステム構成例を示す図である。
【図２】実施の形態におけるサービスサーバ１０６ａおよびＬ２スイッチ１０５ａの構成例である。
【図３】実施の形態におけるＦＣスイッチ１０７ａおよびストレージ１０８ａの構成例である。
【図４】実施の形態における管理サーバ１０９の物理構成例である。
【図５】実施の形態における管理サーバ１０９の構成例である。
【図６】テナントトポロジＤＢの５０４の構成例である。
【図７】テナントトポロジＤＢの５０４の可視化画面例である。
【図８】ノードパターンテーブル５３４ａの構成例である。
【図９】エッジパターンテーブル５３４ｂの構成例である。
【図１０】重要度テーブル５２５の構成例である。
【図１１】設定情報解析部５１２の構成例である。
【図１２】新規設定情報５３１の構成例である。
【図１３】新規設定トポロジ生成部５１３の処理を説明するフローチャートの例である。
【図１４】ノード追加処理を説明するフローチャートの例である。
【図１５】ノード削除処理を説明するフローチャートの例である。
【図１６】エッジ追加処理を説明するフローチャートの例である。
【図１７】エッジ削除処理を説明するフローチャートの例である。
【図１８】新規設定トポロジ５２６の構成例である。
【図１９】新規設定トポロジ５２６の可視化画面例である。
【図２０】二重生成削除検証部５１６を説明するフローチャートの例である。
【図２１】テナント間検証部５１７を説明するフローチャートの例である。
【図２２】独立性検証部５１８を説明するフローチャートの例である。
【図２３】属性検証部５１９を説明するフローチャートの例である。
【図２４】テナント内検証部５２０を説明するフローチャートの例である。
【図２５】ＩＰ重複検証部５２１および接続性検証部５２２を説明するフローチャートの例である。
【図２６】検証結果テーブル５２７の構成例である。
【図２７】テナントトポロジ検証画面の例である。
【図２８】実施例２におけるシステム構成例を示す図である。
【図２９】例外ノード管理テーブル５２８の構成例である。
【図３０】実施例２における独立性検証部５２９を説明するフローチャートの例である。
【発明を実施するための形態】
【００１６】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１７】
第１の実施例を、データセンタのネットワークシステムにおいて、機器に設定された設定情報を基に生成したテナント毎の論理トポロジと、機器に新規に入力する設定情報とを用いて、設定情報入力後のテナントの論理トポロジを模擬生成し、設定情報を事前に検証する例について説明する。
【００１８】
論理トポロジとは、仮想ネットワークを構成する仮想リソースと、仮想リソースを接続するエッジと、の関係を示す論理的構造である。論理トポロジにおいて、仮想リソースはノードと呼ばれる。テナントの論理トポロジとは、テナント毎の情報処理システムを構築する論理トポロジ、すなわち、仮想リソース（ノード）とエッジとの接続関係を示す。
【００１９】
例えば、ノードには、仮想マシン、ＶＬＡＮ、ＶＬＡＮインタフェース、仮想ルータ、仮想ストレージインタフェース、Ｚｏｎｅ、ＬＵ等が含まれ、エッジには仮想マシンとＶＬＡＮとの接続や、ＶＬＡＮと仮想ルータとの接続等が含まれる。各仮想リソースについては後で詳しく説明する。
【００２０】
図１は、本実施形態におけるシステム構成の例を示す図である。
【００２１】
データセンタ１００は、ネットワーク１０１を介して、適宜のＩＣＴサービスを提供するためのシステムを構成する。そのシステムの構成要素になりうる機器として、ファイアウォール１０２、ロードバランサ１０３、Ｌ３スイッチ１０４、Ｌ２スイッチ１０５ａ、１０５ｂのようなネットワーク機器に加えて、サーバ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄといったサーバ機器、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）スイッチ１０７ａ、１０７ｂのようなＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）スイッチ機器、ストレージ１０８ａ、１０８ｂなどのストレージ機器を含む。これら機器を全て用いてシステムを構成する必要はなく、適宜の種類の機器を適宜の個数だけ用いて、適宜のＩＣＴサービスを提供するためのシステムを構成すればよい。また、このシステムには、管理サーバ１０９が接続される。管理サーバ１０９はコンソール１１０と接続している。
【００２２】
ファイアウォール１０２、ロードバランサ１０３、Ｌ３スイッチ１０４、Ｌ２スイッチ１０５ａ、１０５ｂのようなネットワーク機器は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を構築し、サーバ１０６ａ〜１０６ｄにネットワーク接続性を提供するとともに、サーバが送受信するパケットを制御する。これらネットワーク機器はサーバと接続し、また、管理サーバ１０９やデータセンタ１００の外部のネットワークとも接続してもよい。ＬＡＮ内通信をするためのプロトコルはＥｔｈｅｒｎｅｔ（登録商標）を含み、ＬＡＮ間通信をするためのプロトコルはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を含む。そして、これらネットワーク機器は、ＶＬＡＮのような仮想ＬＡＮ技術、ＶＬＡＮインタフェースやサブインタフェースのような仮想インタフェース技術、ＶＲＦやＶＲのような仮想ルータ技術を有し、物理的なネットワークの上に仮想的なネットワークを構成する。
【００２３】
サーバ１０６ａ〜１０６ｄのようなサーバ機器は、適宜のＩＣＴサービスを行うためのアプリケーションを実行する。以下、サーバ１０６ａ〜１０６ｄをサービスサーバと称する。これらサーバ機器は、前述のネットワーク機器を介して相互に接続し、また、データセンタ１００の外部に接続する。また、後述のように、ＦＣスイッチ１０７ａ、１０７ｂを介して、ストレージ機器１０８ａ、１０８ｂにアクセスする。それぞれのサーバ機器は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）やＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）あるいはＣＮＡ（Ｃｏｎｖｅｒｇｅｄ  Ｎｅｔｗｏｒｋ  Ａｄａｐｔｅｒ）を搭載し、ＬＡＮおよびＳＡＮにアクセスする。サーバ機器には、ＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）技術あるいはＬＰＡＲ（Ｌｏｇｉｃａｌ  Ｐａｒｔｉｔｉｏｎｉｎｇ）技術によって、複数の仮想サーバ（ＶＭ）が生成されていてもよい。この場合、ＶＭは仮想的なインタフェースであるｖＮＩＣ(Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ)、ｖＨＢＡ（Ｖｉｒｔｕａｌ  Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）や仮想ＣＮＡを生成し、これらの仮想的なインタフェースにより、ネットワーク機器あるいはストレージ機器にアクセスする。
【００２４】
ＦＣスイッチ１０７ａ、１０７ｂのようなＳＡＮスイッチ機器は、ＳＡＮを構成し、サービスサーバ１０６ａ〜１０６ｄからのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）要求をストレージ１０８ａ、１０８ｂに転送し、ストレージ１０８から読み出したＩ／Ｏデータをサービスサーバ１０６ａ〜１０６ｄに転送する。ＳＡＮ内通信およびＳＡＮ間通信をするためのプロトコルは、ＦＣ、ＦＣＩＰ（ＦＣ  ｏｖｅｒ  ＩＰ）、ＦＣｏＥ（ＦＣ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）やｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）を含む。また、これらＳＡＮスイッチ機器は、Ｚｏｎｉｎｇ、ＮＰＩＶ（Ｎ  Ｐｏｒｔ＿ＩＤ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）、ＶＳＡＮ（Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋｉｎｇ）のような仮想化技術を備えている。これ以外の仮想化技術を備えていてもよい。
【００２５】
ストレージ１０８ａ、１０８ｂのようストレージ機器は、前述のＳＡＮを介して、サービスサーバ１０６ａ〜１０６ｄに外部記憶領域を提供する。ストレージ機器１０８は、ストレージにアクセスする物理ポートを仮想化するためのＮＰＩＶ、物理ストレージに構成された論理ヴォリュームであるＬＵ（Ｌｏｇｉｃａｌ Ｕｎｉｔ）を含む。ストレージ１０８は、ストレージのポートと、ＬＵおよびサーバを対応付けるＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）マスキングなどの機能を備えていてもよい。
【００２６】
管理サーバ１０９は、テナント毎の論理トポロジを保持し、システム内の機器に入力する設定情報から、テナントの論理トポロジを模擬生成したり、設定情報を検証したりする。
【００２７】
なお、上記のシステムの構成機器（ファイアウォールやロードバランサなど）の機能は、ハードウェアによって提供されてもよく、また、ソフトウェアによって提供されてもよい。
【００２８】
図２に、サービスサーバ１０６ａとＬ２スイッチ１０５ａの装置構成例を示す。サービスサーバ１０６ａは、ハードウェア２０１として物理ＣＰＵ２０２、物理メモリ２０３、物理ＮＩＣ２０４、物理ＨＢＡ２０５を備える。ハードウェア２０１として備える各リソース（２０２〜２０５）は仮想化処理部２１０によって複数の仮想マシン（２２０、２３０、２４０）に分割される。各仮想マシン２２０、２３０、２４０は、1つ以上の仮想ＮＩＣ２２１および仮想ＨＢＡ２２２を備える。仮想ＮＩＣ２２１は仮想スイッチ部２１２を介して物理ＮＩＣ２０４に接続され、仮想ＨＢＡ２２２は仮想ポート部２１３を介して物理ＨＢＡ２０５に接続される。
【００２９】
仮想化処理部２１０は、サーバ設定情報２１１を保持する。サーバ設定情報２１１は、サービスサーバ１０６ａに生成された仮想マシン（２２０、２３０、２４０）と、仮想マシンが備える仮想ＮＩＣ２２１、仮想ＨＢＡ２２２の情報および仮想ＮＩＣ２２１、仮想ＨＢＡ２２２に対応付けられる物理ＮＩＣ２０４、物理ＨＢＡ２０５との対応関係を管理する。また、仮想ＮＩＣ２２１が属するＶＬＡＮとの対応関係もサーバ設定情報２１１に含まれる。
【００３０】
サービスサーバ１０６ａには、複数の仮想リソースが設定されている。仮想マシン（２２０、２３０、２４０）は論理トポロジにおいて仮想マシンノードＮ７０５として表わされる。
【００３１】
仮想ＮＩＣ２２１および仮想ＮＩＣ２２１が属するＶＬＡＮは、ＬＡＮの仮想リソースの一つであり、論理トポロジにおいては、ＶＬＡＮインタフェースノードＮ７０２およびＶＬＡＮノードＮ７０１として表わされる。仮想ＨＢＡ２２２は、ＳＡＮの仮想リソースの一つであり、論理トポロジにおいては、仮想ストレージインタフェースノードＮ７０４として表わされる。サービスサーバ１０６ａに生成されたこれらの仮想リソース（ノード）の情報と、仮想リソース間のエッジの情報は、サーバ設定情報２１１に設定情報として保持されており、サーバ設定情報２１１を解析することで、サービスサーバ１０６ａに生成された論理トポロジの情報を取得することができる。
【００３２】
Ｌ２スイッチ１０５ａは、ハードウェア２５０として物理ＣＰＵ２５１、物理メモリ２５２、1つ以上の物理ＮＩＣ２５３を備える。さらに、Ｌ２スイッチ１０５ａは、ネットワークの各レイヤの仮想化処理を行うために、仮想化処理部２６０を備える。仮想化処理部２６０は、Ｌ２スイッチ設定情報２６１を保持し、ＶＬＡＮ処理部２６２とＶＲＦ処理部２６３を備える。
【００３３】
Ｌ２スイッチ設定情報２６１は、ＶＬＡＮ処理部２６２およびＶＲＦ処理部２６３の処理に必要な設定情報であり、ＶＬＡＮおよびＶＲＦの定義情報、ＶＬＡＮとＶＲＦとの対応関係、ＶＬＡＮに含まれるインタフェースの情報、ＶＲＦとＶＲＦとの対応関係等が含まれる。その他の情報を含んでいてもよい。
【００３４】
ＶＬＡＮ処理部２６２は、Ｌ２スイッチ設定情報２６１に設定された情報を参照し、Ｌ２レイヤの仮想化技術であるＶＬＡＮの処理を行う。ＶＲＦ処理部２６３は、Ｌ２スイッチ設定情報２６１に設定された情報を参照し、Ｌ３レイヤの仮想化技術であるＶＲＦの処理を行う。Ｌ２スイッチに機種により、ＶＲＦ処理部は、他のＬ３レイヤの仮想化技術であるＶＲ処理部であってもよい。仮想化処理部２６０の処理はハードウェアで行ってもソフトウェアで行ってもどちらでもよい。
【００３５】
論理トポロジにおいて、ＶＬＡＮの定義情報はＶＬＡＮノードＮ７０１、ＶＲＦの定義情報はＶＲＦノードＮ７０３、ＶＬＡＮに含まれるインタフェースの情報はＶＬＡＮインタフェースノードＮ７０２、ＶＬＡＮとＶＲＦとの対応関係やＶＲＦとＶＲＦとの対応関係はエッジとして表わされる。そのため、Ｌ２スイッチ設定情報２６１を解析することで、Ｌ２スイッチ１０５ａに設定された論理トポロジの情報を取得することができる。
【００３６】
図３にＦＣスイッチ１０７ａとストレージ１０８ａの装置構成例を示す。
【００３７】
ＦＣスイッチ１０７ａはハードウェア３００として物理ＣＰＵ３０１、物理メモリ３０２、1つ以上の物理ＦＣポート３０３を備える。さらに、ＦＣスイッチ１０７ａは、特定のサーバ（１０６ａから１０６ｄからのいずれか）からのＩ／Ｏ要求を、サーバに対応づけられたＬＵを含む適切なストレージ（１０８ａと１０９ｂのいずれか）に転送するために、物理ＣＰＵ３０１による物理メモリ３０２に格納されているプログラムの実行またはハードウェアにより実現されるＺｏｎｉｎｇ処理部３０５を備える。Ｚｏｎｉｎｇ処理部３０５は、ストレージアダプタのイニシエータとターゲットの対応関係を示すＺｏｎｅ情報（物理メモリ３０２または図示しない記録装置に格納される）を参照する。Ｚｏｎｅ情報は、ＦＣスイッチ設定情報３０４に保持されている。
【００３８】
論理トポロジにおいて、Ｚｏｎｅ情報はＺｏｎｅノードＮ７０６として表わされる。
【００３９】
ストレージ１０８ａはハードウェア３１０として物理ＣＰＵ３１１、物理メモリ３１２、1つ以上の物理ＦＣポート３１３、１つ以上の物理ディスク３１４を備える。物理ＦＣポート３１３は、ＦＣｏＥポートでもよい。物理ディスク３１４は、複数のＬＵ３１７に論理的に分割される。
【００４０】
さらに、ストレージ１０８ａは、特定の物理ＦＣポート３１３から入力された特定のサーバ（１０６ａから１０６ｄからのいずれか）からのＩ／Ｏ要求をサーバに対応づけられたＬＵ３１７にに転送するために、物理ＣＰＵ３１１による物理メモリ３１２に格納されているプログラムの実行またはハードウェアにより実現されるＬＵＮマスキング処理部３１６を備える。ＬＵＮマスキング処理部３１６は、サーバのイニシエータと、ＬＵの番号（ＬＵＮ）とを対応づけるＬＵＮマスキング情報を参照する。
【００４１】
物理ディスク３１４を複数のＬＵ３１７に論理的に分割するためのＬＵ定義情報や、ＬＵＮマスキング情報は、ストレージ設定情報３１５（物理メモリ３１２または図示しない記録装置に格納される）に保持されている。
【００４２】
論理トポロジにおいて、ＬＵ３１７の定義情報は、仮想ストレージインタフェースノードＮ７０４およびＬＵノードＮ７０７として表わされる。また、ＬＵＮマスキング情報は、仮想ストレージインタフェースノードとＺｏｎｅノードとを接続するエッジとして表わされる。
【００４３】
図４に、管理サーバ１０９の装置構成の例を示す。管理サーバ１０９は、物理ＣＰＵ４０１、物理メモリ４０２、補助記憶装置４０３を備える一般的な計算機を用いて実現することができる。さらに、各装置を構成するそれぞれの機能は、ＣＰＵが補助記憶装置に格納されているプログラムを実行することにより、上記計算機上に具現化される。各プログラムは、あらかじめ、上記計算機内の補助記憶装置４０３に格納されていてもよい。あるいは、各プログラムは、必要なときに通信インタフェース４０４やメディアインタフェース４０５を経由して上記計算機が利用可能な媒体を介し、他の装置から上記記憶装置に導入されてもよい。媒体とは、たとえば、通信媒体（すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号）、またはメディアインタフェース４０５に着脱可能な外部記憶媒体４０７を指す。なお、管理サーバ１０９は、入出力装置４０６を介して管理サーバを操作するコンソール１１０に接続してもよい。
【００４４】
図５は、管理サーバ１０９の機能構成例を示す図である。
【００４５】
管理サーバ１０９は、構成要素として、管理要求受付部５０１、視覚化部５０２、テナントトポロジ生成部５０３、テナントトポロジ検証部５１０を有する。
【００４６】
管理要求受付部５０１は、テナントの論理トポロジの生成、検証に関する処理要求をオペレータから受付け、各機能部に処理の実行を命令する。オペレータが要求する処理は、例えば、新たに機器に設定する設定情報（以下、新規設定情報と称す）の検証要求や、新規設定情報によって変更されるテナントの論理トポロジの可視化である。また、オペレータからの処理要求には、管理サーバ内の各処理部が使用するテーブルやＤＢの登録要求も含まれる。これらの処理要求により、テナントトポロジ検証部５１０および、視覚化部５０２が実行される。各処理部が必要とする新規設定情報やテナントＩＤ等の情報も管理要求受付部５０１を介して各処理部に通知される。
【００４７】
視覚化部５０２は、新たに機器に設定する新規設定情報の検証結果や、新規設定情報により変更されるテナントのトポロジ情報を可視化する。検証結果の可視化には、ＣＬＩ表示制御部５０６を用いてＣＬＩ（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ）画面に検証結果を出力する。また、トポロジ情報の可視化にはＧＵＩ表示制御部５０５を用いてＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面に論理トポロジを出力する。
【００４８】
テナントトポロジ生成部５０３は、データセンタ内の各機器（１０２〜１０８ｂ）から設定情報（サーバ設定情報２１１、Ｌ２スイッチ設定情報２６１、ＦＣスイッチ設定情報３０４、ストレージ設定情報３１５等）を収集し、収集した設定情報からテナント毎の論理トポロジを生成し、テナントトポロジＤＢ５０４に格納する。なお、テナントトポロジ生成部５０３は必ず必要な処理部ではなく、オペレータが手動でテナントトポロジＤＢ５０４のエントリを作成し、管理要求受付部５０１を介してテナントトポロジＤＢ５０４に設定してもよい。
【００４９】
図６にテナントトポロジＤＢ５０４の構成例を示す。テナントトポロジＤＢ５０４は、テナントの情報処理システムを構築する仮想リソースと、仮想リソース間のエッジと、の接続関係、すなわち、論理トポロジをテナント毎に示すデータベースである。テナントトポロジＤＢ５０４は、１つ以上の論理トポロジエントリで構成される。１つの論理トポロジエントリは、１つのテナントの論理トポロジを示す。１つの論理トポロジエントリ６００ａは、トポロジＩＤ６０１、テナントＩＤ６０２、ノード管理テーブル６１０、エッジ管理テーブル６２０を含む。
【００５０】
トポロジＩＤ６０１は、テナントトポロジＤＢ５０４内で一意に論理トポロジを識別するための識別子である。テナントＩＤ６０２は、テナントを識別するための識別子である。テナントトポロジＤＢ５０４内でテナントを一意に識別できる値であれば、識別子は文字列であったり、数字であったり、記号であったりしてもよい。テナントに関連づかない仮想リソースが機器に設定されている場合、論理トポロジエントリのテナントＩＤ６０２はＮＵＬＬを用いる。
【００５１】
ノード管理テーブル６１０は、テナントの情報処理システムを構成する仮想リソース（ノード）の情報を管理するためのテーブルである。構成要素としてノード識別子６１１、ノードタイプ６１２、機器識別子６１３、タイプ内識別子６１４を含む。ノード識別子６１１は、仮想ネットワーク全体で一意にノードを特定するための識別子である。ノードタイプ６１２は、仮想リソースの種類を示す識別子である。仮想リソースには、ＶＬＡＮノードＮ７０１、ＶＬＡＮインタフェースノードＮ７０２、ＶＲＦノードＮ７０３、仮想ストレージインタフェースノードＮ７０４、仮想マシンノードＮ７０５、ＺｏｎｅノードＮ７０６、ＬＵノードＮ７０７等が含まれる。
【００５２】
本実施例では、ノードタイプＮ１はＶＬＡＮノード、ノードタイプＮ２はＶＬＡＮインタフェースノードＮ７０２、ノードタイプＮ３はＶＲＦノードＮ７０３、ノードタイプＮ４は仮想ストレージインタフェースノードＮ７０４、ノードタイプＮ５は仮想マシンノードＮ７０５、ノードタイプＮ６はＺｏｎｅノードＮ７０６、ノードタイプＮ７はＬＵノードＮ７０７に対応する。
【００５３】
機器識別子６１３は、ノードが定義されている物理機器の識別子を示す。ノードが複数の物理機器で定義されている場合は、機器識別子６１３に複数の物理機器の識別子が含まれる。
【００５４】
タイプ内識別子６１４は、ノードタイプ６１２に付随する識別子を含む。ノードタイプＮ１のＶＬＡＮの場合、タイプ内識別子６１４にはＶＬＡＮ ＩＤを含む。ノードタイプＮ２のＶＬＡＮインタフェースの場合、タイプ内識別子６１４にはＶＬＡＮインタフェース番号と、インタフェースに付与されたＩＰアドレスの両方を含む。ノードタイプＮ３のＶＲＦの場合、タイプ内識別子６１４には仮想ルータ番号を含む。ノードタイプＮ４の仮想ストレージインタフェースの場合、タイプ内識別子６１４には、仮想ＨＢＡのＷＷＮまたはストレージの物理ＦＣポートのＷＷＮを含む。ノードタイプＮ５の仮想マシンの場合、タイプ内識別子６１４には仮想マシンの識別子を含む。ノードタイプＮ６のＺｏｎｅの場合、タイプ内識別子６１４には、Ｚｏｎｅに含まれるイニシエータとターゲットのＷＷＮを含む。ノードタイプＮ７のＬＵの場合、タイプ内識別子６１４にはＬＵＮが含まれる。
【００５５】
行６１５は、機器ＳＷ１およびＳｅｒｖｅｒ１に、ＶＬＡＮ番号（ノードＮ１のタイプ内識別子）が１０のＶＬＡＮ（ノードＮ１）が存在することを意味し、行６１６は、機器ＳＷ１においてＶＬＡＮインタフェース番号（ノードＮ２のタイプ内識別子）が１０、ＩＰアドレスがｘ．ｘ．ｘ．ｘのＶＬＡＮインタフェース（ノードＮ２）が存在することを意味し、行６１７は機器ＦＷ１において仮想ルータ番号（ノードＮ３のタイプ内識別子）が１の仮想ルータ（ノードＮ３）が存在することを意味する。
【００５６】
エッジ管理テーブル６２０は、テナントの情報処理システムを構成する仮想リソース（ノード）を接続するエッジを管理するためのテーブルである。エッジ管理テーブル６２０は構成要素として、エッジ識別子６２１、エッジタイプ６２２、ノード識別子６２３−１、６２３−２を含む。エッジ識別子６２１は、仮想ネットワーク全体で一意にエッジを特定するための識別子である。エッジタイプ６２２は、エッジの種類を示す識別子である。ノード識別子６２３−１、６２３−２は、エッジの両端に接続されるノードのノード識別子である。
【００５７】
テナントトポロジＤＢ５０４をコンソール１１０上に可視化した論理トポロジ構成例を図７に示す。可視化は、視覚化部５０２のＧＵＩ表示制御部５０５により実現され、図７の外枠が、図２７に示すテナントトポロジ検証画面の新規設定トポロジ表示エリア２７０１に相当する。
【００５８】
識別子１０００で示されるテナントの情報処理システムは、２つの仮想マシンノードＮ７０５から構成され、仮想マシンノードＮ７０は、仮想ストレージインタフェースノードＮ７０４、ＺｏｎｅノードＮ７０６を介してＬＵノードＮ７０７に接続する。さらに、仮想マシンノードＮ７０５は、ＶＬＡＮインタフェースノードＮ７０２、ＶＬＡＮを介してＶＲＦＮ７０３に接続し、ＶＲＦはさらに異なるＶＲＦに接続していることを示している。本構成例では、論理トポロジをテナント毎に可視化しているが、複数のテナントの論理トポロジを同時に可視化してもよい。
【００５９】
図５に戻り、テナントトポロジ検証部５１０を説明する。
【００６０】
テナントトポロジ検証部５１０は、構成要素として、テーブル登録部５１１、設定情報解析部５１２、新規設定トポロジ生成部５１３、二重生成削除検証部５１６、テナント間検証部５１７、テナント内検証部５２０、パターンテーブル５２４、重要度テーブル５２５、新規設定トポロジ５２６、検証結果テーブル５２７を含む。
【００６１】
テーブル登録部５１１は、テナントトポロジ検証部５１０の各処理が使用するテーブルの登録、変更、削除を行う。オペレータがテーブルの登録、削除、変更要求を行った場合に、管理要求受付部５０１から、オペレータが要求した登録、変更、削除情報を受け付け、各テーブルの操作を行う。本処理で登録されるテーブルはパターンテーブル５２４、重要度テーブル５２５である。
【００６２】
設定情報解析部５１２は、テナントの情報処理システムの構築、変更、削除に関する機器毎の新規設定情報から、該当するテナントの論理トポロジに対する操作対象と操作を１つずつ特定し、新規設定トポロジ生成部５１３、二重生成削除検証部５１６、テナント間検証部５１７、テナント内検証部５２０の処理を命令する。
【００６３】
新規設定トポロジ生成部５１３は、新規設定情報を機器に入力することにより、テナントの論理トポロジがどのように変化するかを解析し、新規設定情報入力後のテナントの論理トポロジを模擬生成する。新規設定トポロジ生成部５１３には、ノード操作部５１４とエッジ操作部５１５があり、操作対象により、異なる処理部が実行される。生成した論理トポロジは新規設定トポロジ５２６に保存される。
【００６４】
二重生成削除検証部５１６は、設定操作によりテナントトポロジＤＢ５０４に既に存在するノードやエッジを生成（二重生成）したり、テナントトポロジＤＢ５０４に存在しないノードやエッジを削除（二重削除）したりしないかを検証する。検証結果は検証結果テーブル５２７に登録される。
【００６５】
テナント間検証部５１７は、新規設定情報を機器に入力することにより、操作対象のテナント以外のテナントの論理トポロジに影響が及ばないことを検証する。独立性検証部５１８は、１つの設定操作によって、操作対象のテナントの論理トポロジが異なるテナントの論理トポロジに接続する障害の可能性を検証する。属性検証部５１９は、設定操作によって、操作対象以外のテナントの論理トポロジを削除する障害の可能性を検証する。検証結果は検証結果テーブル５２７に登録される。
【００６６】
テナント内検証部５２０は、複数の設定操作により操作対象のテナントの論理トポロジが変化した後も、テナント内の接続性が保たれることを検証する。ＩＰ重複検証部５２１は、テナント内に同一のＩＰアドレスを含む仮想リソースが存在し、通信が不可能となる障害の可能性を検証する。接続性検証部５２２は、テナントの論理トポロジを構成する仮想リソースが、エッジによって接続されず、仮想リソース間の通信が不可能となる障害の可能性を検証する。到達性検証部５２３は、テナント内の仮想リソース間の通信においてルーティングテーブルやＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）やＬＢ（Ｌｏａｄ  Ｂａｌａｎｃｅｒ）等を経由することにより、Ｌ３レイヤ以上の接続性が確保されず通信が不可能となる障害の可能性を検証する。検証結果は検証結果テーブル５２７に登録される。
【００６７】
図８および図９にパターンテーブル５２４の構成例を示す。パターンテーブル５２４は、設定情報解析部５１２が、物理機器に新たに設定する設定情報から、テナントの論理トポロジへの操作を特定するために使用するテーブルである。パターンテーブル５２４には、ノードパターンテーブル５２４ａ（図８）とエッジパターンテーブル５２４ｂ（図９）が含まれる。
【００６８】
ノードパターンテーブル５２４ａは機器に設定する設定情報から、仮想リソース（ノード）に関する操作を抽出するためのテーブルである。ノードパターンテーブル５２４ａは、仮想リソースの操作に関する設定パターン８０１と、ノードタイプ８０２と、操作タイプ８０３との対応を管理する。ノードタイプ８０２は、設定パターン８０１により操作される仮想リソースの種別を示す。ノードタイプ８０２の種類は、テナントトポロジＤＢ５０４におけるノードタイプ６１２と一致する。操作タイプ８０３は、設定パターン８０１による仮想リソースの操作が、追加であるか削除であるかを示す。
【００６９】
設定パターン８０１の各セルに記載されている内容について説明する。セル内の最初の行は、ある項目の設定を開始するコマンドであることを意味し、最後の行はこの項目に関する設定を終了するコマンドであることを意味する。例えば、ＶＬＡＮインタフェースの設定パターン８１２においては、“ｉｎｔｅｒｆａｃｅ  ｖｌａｎ  ＜ｉｄ＞”が、あるＶＬＡＮインタフェースの設定を開始するコマンドであることを意味し、最後の“ｅｘｉｔ”の行が、この設定を終了するコマンドであることを意味する。また、テナントトポロジＤＢ５０４のタイプ内識別子６１４で説明したように、ＶＬＡＮインタフェースのタイプ内識別子は、ＶＬＡＮ  ＩＤとＩＰアドレスである。“ｉｎｔｅｒｆａｃｅ  ｖｌａｎ  ＜ｉｄ＞”から、ＶＬＡＮインタフェースのタイプ内識別子であるＶＬＡＬＮ  ＩＤは＜ｉｄ＞、“ｉｐ  ａｄｄｒｅｓｓ  ＜ｘ．ｘ．ｘ．ｘ／ｙ＞”から、ＶＬＡＮインタフェースのタイプ内識別子であるＩＰアドレスは＜ｘ．ｘ．ｘ．ｘ／ｙ＞と特定する。“：”で記載される場所には、設定パターン８０１に示されていないコマンドが存在してもよいことを示す。
【００７０】
エッジパターンテーブル５２４ｂは、機器に設定する設定情報から、仮想リソース（ノード）を接続するエッジに関する操作を抽出するためのテーブルである。エッジパターンテーブル５２４ｂは、エッジの操作に関する接続パターン９０１と、エッジタイプ９０２と、接続ノードタイプ９０３、操作タイプ９０４との対応を管理する。エッジタイプ９０２は、エッジの種別を示す。例えば、エッジＥ１はＶＬＡＮとＶＬＡＮインタフェースそれぞれの仮想リソース間の接続、エッジＥ２はＶＬＡＮインタフェースとＶＲＦそれぞれの仮想リソース間の接続、エッジＥ３はＶＲＦの２つの仮想リソース間の接続である。
【００７１】
接続パターン９０１の各セルに記載されている内容について説明する。セル内の最初の行は、ある項目の設定を開始するコマンドであることを意味し、最後の行はこの項目に関する設定を終了するコマンドであることを意味する。例えば、接続パターン９１１において“ｉｎｔｅｒｆａｃｅ  ｖｌａｎ”から始まるコマンドがエッジの設定を開始するコマンドであることを意味し、“ｅｘｉｔ”がこの設定を終了するコマンドであることを意味する。”＜ｉｄ＞”で示されるＶＬＡＮの仮想リソースと、ＶＬＡＮインタフェースの仮想リソースを接続するエッジを追加することを示す。なお、“：”で記載される場所には、接続パターンの例に示されていないコマンドが存在してもよいことを示す。
【００７２】
接続パターン９１２においては、＜ｉｄ１＞で示されるＶＬＡＮインタフェースの仮想リソースと＜ｉｄ２＞で示されるＶＲＦの仮想リソースとを接続するエッジを追加することを示す。接続パターン９１３においては、＜ｉｄ１＞で示されるＶＲＦの仮想リソースと＜ｉｄ２＞で示されるＶＲＦの仮想リソースとが、＜ｎａｍｅ＞で示される文字列によって関連付けられ、２つのＶＲＦ仮想リソース間を接続するエッジが追加することを示す。
【００７３】
接続パターン９１４においては、＜ｉｄ＞”で示されるＶＬＡＮの仮想リソースと、ＶＬＡＮインタフェースの仮想リソースを接続するエッジを削除することを示す。
【００７４】
パターンテーブル５２４は機器毎にテーブルを保持する。そのため、パターンテーブル５２４には、ファイアウォール１０２用、ロードバランサ１０３用、Ｌ３スイッチ１０４用、Ｌ２スイッチ１０５用、サービスサーバ１０６用、ＦＣスイッチ１０７用、ストレージ１０８用のパターンテーブルが含まれる。また、機器により、機種が異なる場合、例えば、サービスサーバ１０６ａとサービスサーバ１０６ｂで機種が異なる場合は、サービスサーバ１０６ａ用のパターンテーブルとサービスサーバ１０６ｂ用のパターンテーブルを保持する。
【００７５】
図１０に重要度テーブル５２５の構成例を示す。重要度テーブル５２５は、二重生成削除検証部５１６、テナント間検証部５１７、テナント内検証部５２０において判定した検証結果の重要度を判定し、検証結果テーブル５２７に登録する際に用いるテーブルである。
【００７６】
重要度テーブル５２５には、検証ＩＤ１００１と、検証結果１００２と、重要度１００３と、検証結果の説明１００４との対応関係を、各検証部５１６〜５２３における検証結果と一致するように、予め設定しておく。
【００７７】
検証ＩＤ１００１は、テナントトポロジ検証部５１０内の各検証部５１６〜５２３で検証した検証結果を示す識別子である。検証結果１００２は、検証結果がＷａｒｎｉｎｇであるか、Ｆａｉｌであるか、Ｐａｓｓであるかを示す。重要度１００３は、検証結果の重要度を示す。検証結果の説明１００４は、検証結果を説明するための文字列である。検証結果の説明１００４は必ず必要な構成要素ではない。
【００７８】
検証結果１００２は、Ｗａｒｎｉｎｇ、Ｆａｉｌ、Ｐａｓｓの３段階であるが、オペレータは、重要度１００３を、検証部毎に任意の値に設定できる。そのため、検証結果１００２が同じ場合でも、検証結果の重要度を変更することができる。例えば、テナント間検証部５１７における検証結果Ｆａｉｌは重要度を高く設定し、テナント内検証部５２０における検証結果Ｆａｉｌは重要度を低く設定することができる。テナント間検証部５１７によって検証される障害の方が、障害の波及範囲が広いためである。
【００７９】
新規設定トポロジ５２６および検証結果テーブル５２７については、後述する新規設定トポロジ生成部５１３、二重生成削除検証部５１６、テナント間検証部５１７、テナント内検証部５２０の詳細な処理フローとともに説明する。
【００８０】
次に、テナントトポロジＤＢ５０４と、新たに機器に設定する新規設定情報５３１から、テナントの論理トポロジを模擬生成する処理フローとテナントの論理トポロジを検証する処理フローを詳細に説明する。
【００８１】
オペレータはコンソール１１０より、新たに機器に設定する予定の新規設定情報５３１と新規設定情報５３１に対応づけられるテナントＩＤ５３２を入力する。入力された新規設定情報５３１とテナントＩＤ５３２は、管理要求受付部５０１を介して設定情報解析部５１２に通知される。
【００８２】
図１１に設定情報解析部５１２の処理フローを示す。
【００８３】
設定情報解析部５１２は、新規設定情報５３１およびテナントＩＤ５３２を取得する（ステップ１１０１）。
【００８４】
図１２に新規設定情報５３１の例を示す。新規設定情報５３１は、１つのテナントに関連付けて機器に入力する設定コマンドの一覧である。コマンド以外の設定方法を用いる機器、例えばＷＥＢインタフェース等は、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ   Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）で書かれた設定情報の一覧であってもよい。複数の機器に設定情報を入力する場合は、機器毎に設定操作の一覧を入力する。例えば、５３１ａは、Ｌ２スイッチの機種ａａａへ入力する設定操作の一覧であり、５３１ｂは、サーバに入力する設定操作の一覧であったり、５３１ｃはＦＣスイッチに入力する設定操作の一覧であったりする。新規設定情報５３１には、対応する機器に入力可能な設定操作が記述されており、文法的な誤りは含まれないことを前提とする。設定操作の文法的な誤りは既存の方法を用いて予め検証を行う。
【００８５】
次に、設定情報解析部５１２は、新規設定情報５３１ａに対応した機器および機種のパターンテーブル５２４を参照し（ステップ１１０２）、新規設定情報５３１ａの中から、パターンテーブル５２４の設定パターン８０１または接続パターン９０１に一致する設定操作を一つ特定する（ステップ１１０３）。設定操作は、ノードパターン管理テーブルの設定パターン８０１または、エッジパターンテーブルの接続パターン９０１によって特定される論理トポロジの操作を１つ行う、１つ以上のコマンドのまとまりである。さらに、設定操作に対応する論理トポロジの操作におけるオブジェクト情報と操作（追加または削除）、設定する機器の機器識別子を特定する（ステップ１１０４）。オブジェクト情報はノードまたはエッジの情報であり、ノードの場合は、ノードタイプ、タイプ内識別子の情報が含まれる。エッジの場合は、エッジタイプ、エッジで接続される２つのノードのノードタイプとタイプ内識別子の情報が含まれる。
【００８６】
例えば、ノードパターンテーブル５２４ａ、エッジパターンテーブル５２４ｂを参照して、新規設定情報５３１ａを検索すると、８１１行の設定パターン８０１が検索にヒットし、設定操作１２０１が１つ特定されるとともに、ノードパターンテーブル５２４ａのノードタイプ８０２、操作タイプ８０３から、設定操作１２０１による操作が、ノードタイプＮ１（ＶＬＡＮノード）の追加であることが特定でき、ＶＬＡＮノードのタイプ内識別子であるＶＬＡＮ ＩＤは１００であることが特定できる。
【００８７】
ステップ１１０４により特定したオブジェクト情報と操作、機器識別子、テナントＩＤ５３２を引数として新規設定トポロジ生成部５１３、二重生成削除検証部５１６、テナント間検証部５１７の処理を実行する（ステップ１１０５、１１０６、１１０７）。
【００８８】
すべての設定操作についてステップ１１０２から１１０７の処理を繰り返し、全設定操作の処理が終了した場合（ステップ１１０８でＹｅｓ）は、テナント内検証部５２０の処理を実行する（ステップ１１０９）。新規設定情報５３１に複数の機器の設定情報が含まれる場合は、機器ごとに設定情報解析部５１２の処理を実行する。
【００８９】
図１３に新規設定トポロジ生成部５１３の処理フローを示す。
【００９０】
新規設定トポロジ生成部５１３は、設定情報解析部５１２から、オブジェクト情報、操作、機器識別子、テナントＩＤ５３２を取得する（ステップ１３０１）。
【００９１】
ステップ１３０１で取得したテナントＩＤが設定された新規設定トポロジが存在しない場合（ステップ１３０２でＮｏ）は、初期化処理（ステップ１３０３）を実行し、新規設定トポロジ５２６を初期化する。
【００９２】
図１８に新規設定トポロジ５２６の構成例を示す。新規設定トポロジ５２６は、新規設定情報によるテナントの論理トポロジの変化を模擬するためのテーブルである。新規設定トポロジ５２６の構成要素は、トポロジＩＤ１８０１、テナントＩＤ１８０２、ノード管理テーブル１８１０、エッジ管理テーブル１８２０を含む。ノード管理テーブル１８１０の構成要素として、ノード識別子１８１１、ノードタイプ１８１２、機器識別子１８１３、タイプ内識別子１８１４、テナントＩＤ１８１５を含む。エッジ管理テーブル１８２０の構成要素として、エッジ識別子１８２１、エッジタイプ１８２２、ノード識別子１８２３−１、１８２３−２を含む。
【００９３】
新規設定トポロジ５２６の構成は、ノード管理テーブル１８１０の構成要素にテナントＩＤ１８１５が含まれる以外は、テナントトポロジＤＢ５０４を構成する1つの論理トポロジエントリと同等である。
【００９４】
初期化処理（ステップ１３０３）では、新規設定トポロジ５２６を新規生成後、ステップ１３０１で取得したテナントＩＤを基にテナントトポロジＤＢ５０４を検索する。テナントＩＤが一致するテナントの論理トポロジエントリが存在する場合には、該当するエントリに設定された全情報を新規設定トポロジ５２６にコピーし、ノード管理テーブル１８１０内のテナントＩＤ１８１５に、ステップ１３０１で取得したテナントＩＤを登録する。テナントＩＤが一致するテナントトポロジエントリが存在しない場合には、新規設定トポロジ５２６のテナントＩＤ１８０２に、ステップ１３０１で取得したテナントＩＤのみを登録する。
【００９５】
新規設定トポロジが存在する場合（ステップ１３０２でＹｅｓ）は、初期化処理（ステップ１３０３）は行わない。
【００９６】
次に、ステップ１３０１で取得したオブジェクト情報がノードの場合（ステップ１３０４でＹｅｓ）は、ノード操作部５１４の処理を実行する（ステップ１３０５）。ステップ１３０１で取得したオブジェクト情報がエッジの場合（ステップ１３０６でＹｅｓ）は、エッジ操作部５１５の処理を実行する（ステップ１３０７）。オブジェクト情報がノードまたはエッジに該当しない場合には処理を終了する。
【００９７】
次に、ノード操作部５１４の処理を説明する。
【００９８】
ステップ１３０１取得した操作が追加の場合（ステップ１３０８でＹｅｓ）は、ノード追加処理を実行する（ステップ１３０９）。ステップ１３０１で取得した操作が削除の場合（ステップ１３１０でＹｅｓ）は、ノード削除処理を実行する（ステップ１３１１）。
【００９９】
図１４にノード操作部５１４のノード追加処理の処理フローを示す。
【０１００】
ノード追加処理は、オブジェクト情報に含まれるノードタイプ、タイプ内識別子を基に、新規設定トポロジ５２６を検索する（ステップ１４０１）。新規設定トポロジ５２６のノード管理テーブル１８１０に、ノードタイプ、タイプ内識別子が一致するノードが存在する場合（ステップ１４０２でＹｅｓ）には、検索にヒットしたノードの機器識別子１８１３を参照する。該当ノードの機器識別子１８１３に、ステップ１３０１で取得した機器識別子が既に登録されている場合（ステップ１４０３でＹｅｓ）場合には、処理を終了する。機器識別子が登録されていない場合（ステップ１４０３でＮｏ）の場合には、検索にヒットしたノードの機器識別子１８１３に、ステップ１３０１で取得した機器識別子を登録して処理を終了する。新規設定トポロジ５２６のノード管理テーブル１８１０に、ノードタイプ、タイプ内識別子が一致するノードが存在しない場合（ステップ１４０２でＮｏ）には、新規設定トポロジ５２６のノード管理テーブル１８１０に、ノードタイプ１８１２、機器識別子１８１３、タイプ内識別子１８１４、テナントＩＤ１８１５を登録し処理を終了する。
【０１０１】
図１５にノード操作部５１４のノード削除処理の処理フローを示す。
【０１０２】
ノード削除処理は、オブジェクト情報に含まれるノードタイプ、機器識別子、タイプ内識別子を基に、新規設定トポロジ５２６を検索する（ステップ１５０１）。
【０１０３】
新規設定トポロジ５２６のノード管理テーブル１８１０に、ノードタイプ、機器識別子、タイプ内識別子が一致するノードが存在する場合（ステップ１５０２でＹｅｓ）には、新規設定トポロジ５２６内の該当ノードの機器識別子１８１３から該当機器の機器識別子を削除する（ステップ１５０６）。該当ノードの機器識別子１８１３からすべての機器識別子が削除された場合（ステップ１５０７でＹｅｓ）は、新規設定トポロジ５２６のノード管理テーブル１８１０から該当ノードのエントリを削除する（ステップ１５０８）。該当ノードの機器識別子１８１３に他の機器の機器識別子が登録されている場合（ステップ１５０７でＮｏ）は処理を終了する。
【０１０４】
新規設定トポロジ５２６のノード管理テーブル１８１０に、ノードタイプ、機器識別子、タイプ内識別子が一致するノードが存在しない場合（ステップ１５０２でＮｏ）には、ノードタイプ、機器識別子、タイプ内識別子を基に、テナントトポロジＤＢ５０４を検索する（ステップ１５０３）。テナントトポロジＤＢ５０４内の論理トポロジエントリのノード管理テーブル６１０に、ノードタイプ、機器識別子、タイプ内識別子が一致するノードが存在しない場合（ステップ１５０４でＮｏ）には処理を終了する。
【０１０５】
テナントトポロジＤＢ５０４内の論理トポロジエントリのノード管理テーブル６１０に、ノードタイプ、機器識別子、タイプ内識別子が一致するノードが存在する場合（ステップ１５０４でＹｅｓ）は、該当ノードを含むテナントの論理トポロジエントリから、ノード管理テーブル６１０とエッジ管理テーブル６２０を新規設定トポロジ５２６のノード管理テーブル１８１０およびエッジ管理テーブル１８２０に取り込み、ノード管理テーブル１８１０のテナントＩＤ１８１５には、テナントトポロジＤＢ５０４の論理トポロジエントリのテナントＩＤ６０２に登録された値を登録する（ステップ１５０５）。ステップ１５０６以降の処理は前述の通りである。
【０１０６】
図１３に戻り、エッジ操作部５１５の処理フローについて説明する。
【０１０７】
エッジ操作部５１５は、ステップ１３０１取得した操作が追加の場合（ステップ１３１２でＹｅｓ）は、エッジ追加処理を実行する（ステップ１３１３）。ステップ１３０１で取得した操作が削除の場合（ステップ１３１４でＹｅｓ）は、エッジ削除処理を実行する（ステップ１３１５）。
【０１０８】
図１６にエッジ操作部５１５のエッジ追加処理の処理フローを示す。
【０１０９】
エッジ追加処理は、ステップ１３０１で取得したオブジェクト情報に含まれる２つのノードの情報の中から１つを選択する（ステップ１６０１）。ステップ１６０１で選択したノードのノードタイプ、機器識別子、タイプ内識別子を基に、新規設定トポロジ５２６を検索する（ステップ１６０２）。新規設定トポロジ５２６のノード管理テーブル１８１０に、ノードタイプ、機器識別子、タイプ内識別子が一致するノードが存在する場合（ステップ１６０３でＹｅｓ）は、ステップ１６０８を実行する。新規設定トポロジ５２６のノード管理テーブル１８１０に、ノードタイプ、機器識別子、タイプ内識別子が一致するノードが存在しない場合（ステップ１６０３でＮｏ）は、ノードタイプ、タイプ内識別子を基にテナントトポロジＤＢ５０４を検索する（ステップ１６０４）。テナントトポロジＤＢ５０４内の論理トポロジエントリのノード管理テーブル６１０に、ノードタイプ、タイプ内識別子が一致するノードが存在しない場合（ステップ１６０５でＮｏ）は、エッジを構成する一端のノードが存在しないと判定し、ステップ１６０８を実行する。
【０１１０】
テナントトポロジＤＢ５０４内の論理トポロジエントリのノード管理テーブル６１０に、ノードタイプ、タイプ内識別子が一致するノードが存在する場合（ステップ１６０５でＹｅｓ）は、ステップ１６０４で検索にヒットしたノードを含む論理トポロジエントリのテナントＩＤ６０２と、ステップ１３０１で取得したテナントＩＤとを比較する。テナントＩＤが一致する場合（ステップ１６０６でＮｏ）は、ステップ１６０８を実行する。
【０１１１】
テナントＩＤが不一致の場合（ステップ１６０６でＹｅｓ）は、ステップ１６０４で検索にヒットしたノードを含む論理トポロジエントリのノード管理テーブル６１０とエッジ管理テーブル６２０を新規設定トポロジ５２６のノード管理テーブル１８１０とエッジ管理テーブル１８２０に追加し、追加したノードのテナントＩＤ１８１５には、テナントトポロジＤＢ５０４の論理トポロジエントリのテナントＩＤ６０２に登録された値を登録する（ステップ１６０７）。
【０１１２】
ステップ１６０８では、エッジを構成する２つのノードを基に新規設定トポロジの検索が終了したかを判定する。エッジを構成する２つノードの検索が終了していない場合（ステップ１６０８でＮｏ）には、ステップ１６０１に戻り、もう一方のノードの検索を行う。エッジを構成する２つのノードの検索が終了した場合（ステップ１６０８でＹｅｓ）は、エッジの両端のノードが存在しているかを判定する。エッジの両端のノードが存在しない場合（ステップ１６０９でＮｏ）は、処理を終了する。エッジの両端ノードが存在する場合（ステップ１６０９でＹｅｓ）は、新規設定トポロジ５２６にエッジを追加する（ステップ１６１０）。
【０１１３】
図１７にエッジ操作部５１５のエッジ削除処理の処理フローを示す。
【０１１４】
オブジェクト情報に含まれるエッジタイプ、エッジで接続される２つのノードのノードタイプ、装置識別子、タイプ内識別子を基に、新規設定トポロジ５２６のノード管理テーブル１８１０、エッジ管理テーブル１８２０を検索する（ステップ１７０１）。
【０１１５】
エッジタイプ、エッジで接続される２つのノードのノードタイプ、装置識別子、タイプ内識別子が一致するエッジが存在する場合（ステップ１７０２でＹｅｓ）は、該当するエッジを新規設定トポロジ５２６のエッジ管理テーブル１８２０から削除し（ステップ１７０７）、処理を終了する。
【０１１６】
エッジが存在しない場合（ステップ１７０２でＮｏ）は、エッジタイプ、エッジで接続される２つのノードのノードタイプ、装置識別子、タイプ内識別子を基に、テナントトポロジＤＢ５０４のノード管理テーブル６１０、エッジ管理テーブル６２０を検索する（ステップ１７０３）。
【０１１７】
エッジタイプ、エッジで接続される２つのノードのノードタイプ、装置識別子、タイプ内識別子が一致するエッジが存在しない場合（ステップ１７０４でＮｏ）は、処理を終了する。エッジが存在する場合（ステップ１７０４でＹｅｓ）は、該当エッジを含む論理トポロジエントリのテナントＩＤ６０２と、ステップ１３０１で取得したテナントＩＤとを比較する。テナントＩＤが一致する場合（ステップ１７０５でＮｏ）の場合は処理を終了する。テナントＩＤが不一致の場合（ステップ１７０５でＹｅｓ）は、ステップ１７０４で検索にヒットしたエッジを含む論理トポロジエントリのノード管理テーブル６１０とエッジ管理テーブル６２０を新規設定トポロジ５２６のノード管理テーブル１８１０とエッジ管理テーブル１８２０に追加し、ノード管理テーブル１８１０のテナントＩＤ１８１５には、テナントトポロジＤＢ５０４の論理トポロジエントリのテナントＩＤ６０２に登録された値を登録する（ステップ１７０６）。ステップ１７０７で、該当するエッジを新規設定トポロジ５２６のエッジ管理テーブル１８２０から削除し、処理を終了する。
【０１１８】
以上のようにして、機器に設定情報を入力することによりテナントの論理トポロジがどのように変更するかを設定操作毎に模擬することができる。
【０１１９】
特に、ステップ１５０３からステップ１５０８の処理により、新規に機器に入力予定の設定操作により、異なるテナントのノード情報を削除した論理トポロジを生成することができる。また、ステップ１６０４からステップ１６１０の処理により、新規に機器に入力予定の設定操作により、異なるテナントのノードと接続した論理トポロジを生成することができる。さらに、ステップ１７０３から１７０７の処理により、新規に機器に入力予定の設定操作により、異なるテナントのエッジ情報を削除した論理トポロジを生成することができる。
【０１２０】
図１９に、新規設定トポロジ生成部５１３の処理を実行後、視覚化部５０２により、新規設定トポロジ５２６を、図２７に示すテナントトポロジ検証画面のトポロジ表示エリア２７０１に可視化した例を示す。この例では、誤った設定操作を含む設定情報によりテナントＩＤ１０００の仮想ルータの仮想リソースＮ１９０１と、テナントＩＤ２０００のＶＬＡＮインタフェースの仮想リソースＮ１９０２が、エッジＥ１９０３により接続されることを示している。
【０１２１】
図２０に二重生成削除検証部５１６の処理フローを示す。二重生成削除検証部５１６は、二重生成検証部５１６ａと二重削除検証部５１６ｂの２つの処理フローを含む。
【０１２２】
まず、二重生成検証部５１６ａについて説明する。
【０１２３】
二重生成検証部５１６ａは、設定操作によって追加する仮想リソースが既に設定済みでないことを検証する。
【０１２４】
二重生成検証部５１６ａは、設定情報解析部５１２から、オブジェクト情報と、操作と、機器識別子と、テナントＩＤ５３２と、を取得する（ステップ２００１）。
【０１２５】
操作が追加操作以外の場合（ステップ２００２でＮｏ）は処理を終了する。操作が追加操作の場合（ステップ２００２でＹｅｓ）は、オブジェクト情報を基にテナントトポロジＤＢ５０４を検索する（ステップ２００３）。オブジェクト情報はノードまたはエッジの情報であり、ノードの場合は、ノードタイプ、タイプ内識別子の情報が含まれる。エッジの場合は、エッジタイプ、エッジで接続される２つのノードのノードタイプとタイプ内識別子の情報が含まれる。
【０１２６】
例えば、オブジェクトがノードの場合は、ノードタイプ、タイプ内識別子、機器識別子を基にテナントトポロジＤＢ５０４のノード管理テーブル６１０を検索する。オブジェクトの場合は、エッジタイプ、エッジで接続される２つのノードのノードタイプ、タイプ内識別子、機器識別子を基にテナントトポロジＤＢ５０４のノード管理テーブル６１０とエッジ管理テーブル６２０を検索する。
【０１２７】
オブジェクト情報が一致するオブジェクトがテナントトポロジＤＢ５０４に存在するかを判定する（ステップ２００４）。オブジェクトがノードの場合には、ステップ２００１で取得したオブジェクト情報（ノードタイプ、タイプ内識別子）、機器識別子が一致するノードが存在するかを判定する。オブジェクトがエッジの場合には、ステップ２００１で取得したオブジェクト情報（エッジタイプ、エッジで接続される２つのノードのノードタイプとタイプ内識別子）が一致するエッジが存在するかを判定する（ステップ２００５）。
【０１２８】
オブジェクトが既に存在する場合（ステップ２００４でＹｅｓ）には、二重生成と判定し、検証結果に対応する検証ＩＤ（例えば、ｖ１）を取得する。検証ＩＤは、検証処理における検証結果を一意に特定できる識別子であり、重要度テーブル５２５の検証ＩＤ１００１に登録された値のいずれかと一致する。
【０１２９】
オブジェクトが存在しない場合（ステップ２００４でＮｏ）には、検証Ｐａｓｓと判定し、検証結果に対応する検証ＩＤ（例えば、ｖ１０００）を取得する（ステップ２００６）。
【０１３０】
取得した検証ＩＤを基に重要度テーブル５２５を参照し、検証結果１００２、重要度１００３を取得し、検証結果テーブル５２７に設定操作１２０１、検証結果１００２、重要度１００３を登録する。設定操作１２０１は、既に登録されている場合は、登録しない（ステップ２００７）。
【０１３１】
図２６に検証結果テーブル５２７の構成例を示す。検証結果テーブル５２７は、設定操作２６０１と、設定情報による操作の検証結果、重要度を管理するためのテーブルであり、テナント別に管理する。構成要素として、設定操作２６０１と、各検証部に対応した検証結果、重要度の登録欄（２６０２〜２６０７）を含む。本実施例における検証部は、二重生成削除検証部５１６、テナント間検証部５１７における独立性検証部５１８および属性検証部５１９、テナント内検証部５２０におけるＩＰ重複検証部５２１、接続性検証部５２２、到達性検証部５２３であるため、各検証部に対応した検証結果の登録欄を含む。例えば、二重生成削除検証部５１６の検証結果および重要度は、二重生成削除検証結果の登録欄２６０２に登録する。本構成例では、各登録欄の上段に検証結果を登録し、下段に重要度を示す。検証結果ＷＡはＷａｒｎｉｎｇを示す。重要度Ｌ１は重要度が１であること示す。
【０１３２】
図２０に戻り、二重削除検証部５１６ｂについて説明する。
【０１３３】
二重削除検証部５１６ｂは、設定操作によって削除する仮想リソースが存在することを検証する。
【０１３４】
二重削除検証部５１６ｂは、設定情報解析部５１２から、オブジェクト情報と、操作と、機器識別子と、テナントＩＤ５３２と、を取得する（ステップ２０１１）。
【０１３５】
操作が削除操作以外の場合（ステップ２０１２でＮｏ）は処理を終了する。操作が削除操作の場合（ステップ２０１２でＹｅｓ）は、オブジェクト情報を基にテナントトポロジＤＢ５０４を検索する（ステップ２０１３）。オブジェクトの検索方法は、二重生成検証部と同様である。
【０１３６】
オブジェクトが存在しない場合（ステップ２０１４でＮｏ）には、二重削除と判定し、検証結果に対応する検証ＩＤ（例えば、ｖ２）を取得する。オブジェクトが存在する場合（ステップ２０１４でＹｅｓ）には、検証Ｐａｓｓと判定し、検証結果に対応する検証ＩＤ（例えば、ｖ１００２）を取得する。
【０１３７】
取得した検証ＩＤを基に重要度テーブル５２５を参照し、検証結果１００２、重要度１００３を取得し、検証結果テーブル５２７に設定操作１２０１、検証結果１００２、重要度１００３を登録する（ステップ２０１７）。設定操作は、既に登録されている場合は、登録しない。
【０１３８】
次にテナント間検証部５１７の処理フローを示す。
【０１３９】
テナント間検証部５１７は、新規設定情報を機器に入力することにより、操作対象のテナント以外のテナントの論理トポロジに影響が及ばないことを検証する。独立性検証部５１８は、１つの設定操作によって、操作対象のテナントの論理トポロジが異なるテナントの論理トポロジに接続する障害が引き起こされる可能性を検証する。属性検証部５１９は、設定操作によって、操作対象以外のテナントの論理トポロジが操作する障害が引き起こされる可能性を検証する。
【０１４０】
図２１にテナント間検証部５１７の処理フローを示す。
【０１４１】
テナント間検証部５１７は、設定情報解析部５１２から、オブジェクト情報、操作、機器識別子、テナントＩＤ５３２を取得する（ステップ２１０１）。
【０１４２】
操作が削除操作（ステップ２１０２でＹｅｓ）の場合は、属性検証部５１９の処理を実行する（ステップ２１０３）。操作が追加操作（ステップ２１０５でＹｅｓ）の場合は、ステップ２１０１で取得したオブジェクト情報がエッジの場合（ステップ２１０５でＹｅｓ）に、独立性検証部５１８の処理を実行する（ステップ２１０６）。
【０１４３】
独立性検証は、エッジを追加する場合に必要な検証項目である。属性検証は、仮想リソース、すなわちノード、および／またはエッジを削除する場合に必要な検証項目である。
【０１４４】
図２２に独立性検証部５１８の処理フローを示す。
【０１４５】
独立性検証部５１８は、テナント間検証部５１７よりオブジェクト情報、操作、機器識別子、テナントＩＤを取得する（ステップ２２０１）。独立性検証部５１８はエッジ追加操作の場合に実行される処理のため、オブジェクト情報はエッジの情報である。エッジの情報にはエッジタイプ、エッジで接続される２つのノードのノードタイプとタイプ内識別子の情報が含まれる。
【０１４６】
エッジで接続される２つのノード情報のうち、１つのノード情報を選択し（ステップ２２０２）、ノードタイプ、タイプ内識別子を基に新規設定トポロジ５２６を検索する（ステップ２２０３）。ノードタイプ、ノードのタイプ内識別子が一致するノードが存在する場合（ステップ２２０４でＹｅｓ）は、ステップ２２０３で検索したノードは同一テナントに含まれるノードと判断できる。次にステップ２２１０を実行する。
【０１４７】
ノードタイプ、ノードのタイプ内識別子が一致しない場合（ステップ２２０４でＮｏ）は、新規設定トポロジ５２６内にエッジで接続しようとするノードが存在せず、他のテナントの論理トポロジに含まれるノードに接続する可能性がある。そこで、ノードタイプ、ノードのタイプ内識別子を基にテナントトポロジＤＢ５０４を検索する（ステップ２２０５）。ノードタイプ、ノードのタイプ内識別子が一致するノードが存在しない場合（ステップ２２０６でＮｏ）は、設定操作によって接続しようとするノード１つが存在しないと判定し、対応する検証ＩＤを取得する（ステップ２２０７）。
【０１４８】
ノードタイプ、ノードのタイプ内識別子が一致するノードが存在する場合（ステップ２２０６でＹｅｓ）は、該当ノードを含むテナントの論理トポロジエントリのテナントＩＤ６０２を取得する。
【０１４９】
テナントＩＤ６０２がステップ２２０１で取得したテナントＩＤと一致するか、ＮＵＬＬ以外の場合（ステップ２２０８でＮｏ）は、エッジを追加することにより、異なるテナントのノードと接続するため、独立性違反と判断する。対応する検証ＩＤを取得する（ステップ２２０９）。
【０１５０】
テナントＩＤ６０２がステップ２２０１で取得したテナントＩＤと一致するか、ＮＵＬＬの場合（ステップ２２０８でＹｅｓ）は、ステップ２２０２で選択したノードの検証はＰａｓｓと判定する。テナントＩＤ６０２がＮＵＬＬの場合は、特定のテナントに関連づけられていない論理トポロジエントリであることを示す。例えば、テナント追加時の新規設定情報を少なくするために、ＶＬＡＮ等の仮想リソースを予め機器に設定しておく場合等は、テナントＩＤがＮＵＬＬの論理トポロジエントリとなる。
【０１５１】
ステップ２２１０では、エッジで接続される２つのノードの検証が終了したかを判定する。２つのノードの検証が終了していない場合（ステップ２２１０でＮｏ）は、ステップ２２０２に戻り、もう一方のノードの検証を行う。２つのノードの検証が終了した場合（ステップ２２１０でＹｅｓ）の場合は、検証Ｐａｓｓと判定し、対応する検証ＩＤを取得する（ステップ２２１１）。ステップ２２１２では、重要度テーブル５２５を参照し、検証ＩＤに対応する検証結果１００２と重要度１００３を取得する。取得した検証結果１００２と重要度１００３を検証結果テーブル５２７に登録する(ステップ２２１２）。
【０１５２】
図２３に属性検証部５１９の処理フローを説明する。
【０１５３】
属性検証部５１９は、テナント間検証部５１７よりオブジェクト情報、操作、機器識別子、テナントＩＤを取得する（ステップ２３０１）。属性検証部５１９は削除操作の場合に実行される処理である。オブジェクト情報には、ノードまたはエッジの情報が含まれる。
【０１５４】
ステップ２３０１で取得したオブジェクト情報を基に、テナントトポロジＤＢ５０４を検索する（ステップ２３０２）。例えば、オブジェクトがノードの場合は、ノードタイプ、タイプ内識別子、機器識別子を基にテナントトポロジＤＢ５０４のノード管理テーブル６１０を検索する。オブジェクトがエッジの場合は、エッジタイプ、エッジで接続される２つのノードのノードタイプ、タイプ内識別子、機器識別子を基にテナントトポロジＤＢ５０４のノード管理テーブル６１０とエッジ管理テーブル６２０を検索する。
【０１５５】
オブジェクト情報が一致するオブジェクトがテナントトポロジＤＢ５０４に存在するかを判定する（ステップ２３０３）。オブジェクトがノードの場合には、ステップ２３０１で取得したオブジェクト情報（ノードタイプ、タイプ内識別子）、機器識別子が一致するノードが存在するかを判定する。オブジェクトがエッジの場合には、ステップ２３０１で取得したオブジェクト情報（エッジタイプ、エッジで接続される２つのノードのノードタイプとタイプ内識別子）が一致するエッジが存在するかを判定する。
【０１５６】
オブジェクトが存在しない場合（ステップ２３０３でＮｏ）には、二重削除と判定し、検証結果に対応する検証ＩＤ（例えば、ｖ２）を取得する（ステップ２３０４）。なお、二重削除は、二重生成削除検証部５１６で検証済みのため、属性検証部５１９で検証ＩＤを付与しなくてもよい。
【０１５７】
オブジェクトが存在する場合（ステップ２３０３でＹｅｓ）は、ステップ２３０１で取得したテナントＩＤと、ステップ２３０２で検索にヒットしたノードを含む論理トポロジエントリのテナントＩＤ６０２が一致するかを判定する。
【０１５８】
テナントＩＤが一致する場合は、検証Ｐａｓｓと判定し、対応する検証ＩＤ（例えば、ｖ１００４）を取得する（ステップ２３０６）。テナントＩＤが一致しない場合は、対応する設定操作によって、異なるテナントの論理トポロジが変更されるため、属性違反と判定する。対応する検証ＩＤ（例えば、ｖ５）を取得する（ステップ２３０７）。
【０１５９】
ステップ２３０８では、重要度テーブル５２５を参照し、検証ＩＤに対応する検証結果１００２と重要度１００３を取得する。取得した検証結果１００２と重要度１００３を検証結果テーブル５２７に登録する（ステップ２３０８）。
【０１６０】
図２４にテナント内検証部５２０の処理フローを示す。テナント内検証部５２０は、新規設定情報に含まれる１つ以上の設定操作によってテナントの論理トポロジが変化した後も、テナント内の接続性が保たれることを検証する。ＩＰ重複検証部５２１、接続性検証部５２２、到達性検証部５２３の処理を逐次実行する。
【０１６１】
図２５にＩＰ重複検証部５２１と接続性検証部５２２の処理フローを示す。
【０１６２】
ＩＰ重複検証部５２１は、操作対象のテナント内の同一のＩＰアドレスを含む仮想リソースが存在し、通信が不可能となる障害の可能性を検証する。
【０１６３】
ＩＰ重複検証部５２１は、まず、新規設定トポロジ５２６を取得する（ステップ２５０１）。ノード管理テーブル１８１０を参照し、タイプ内識別子１８１４にＩＰアドレスを含むすべてのノードを取得する（ステップ２５０２）。
【０１６４】
ノードのＩＰアドレスを比較し、ＩＰアドレスに重複がないかを判定する（ステップ２５０３）。ＩＰアドレスが重複する場合は、ＩＰ重複と判定し、対応する検証ＩＤ（例えば、ｖ６）を取得する（ステップ２５０５）。ＩＰアドレスが重複しない場合は、検証Ｐａｓｓと判定し、対応する検証ＩＤ（例えば、ｖ１００５）を取得する（ステップ２５０４）。
【０１６５】
ステップ２５０６では、重要度テーブル５２５を参照し、検証ＩＤに対応する検証結果１００２と重要度１００３を取得する。取得した検証結果１００２と重要度１００３を、検証結果テーブル５２７のＩＰ重複検証結果の欄に登録する。ＩＰアドレスの重複検証は、複数の設定操作２６０１に対して行われる。検証結果から、対応する設定操作を特定する場合は、重複したＩＰアドレスをもとに、検証結果テーブル５２７の設定操作２６０１を検索し、重複したＩＰアドレスを含む設定操作に対しては、検証結果Ｆａｉｌと重要度を登録し、重複したＩＰアドレスを含まない設定操作に対しては、検証結果Ｐａｓｓを登録する。
【０１６６】
接続性検証部５２２は、テナントの論理トポロジを構成する仮想リソースが、エッジによって接続されず、仮想リソース間の通信が不可能となる障害の可能性を検証する。
【０１６７】
接続性検証部５２２は、まず、新規設定トポロジ５２６を取得する（ステップ２５１１）。ノード管理テーブル１８１０とエッジ管理テーブル１８２０を参照し、一般的な探索アルゴリズムを用いて、新規設定トポロジに含まれる全ノードと全エッジが接続されることを検証する。全ノードと全エッジが接続されない場合（ステップ２５１２でＮｏ）は、接続性違反と判定し、対応する検証ＩＤ（例えば、ｖ７）を取得する(ステップ２５１４)。全ノードと全エッジが接続される場合（ステップ２５１２でＹｅｓ）の場合は、検証Ｐａｓｓと判定し、対応する検証ＩＤ（例えば、ｖ１００６）を取得する。
【０１６８】
ステップ２５１５では、重要度テーブル５２５を参照し、検証ＩＤに対応する検証結果１００２と重要度１００３を取得する。取得した検証結果１００２と重要度１００３を、検証結果テーブル５２７の接続性検証結果の欄に登録する。検証結果が、特定の設定操作２６０１に対応づかない場合は、設定操作２６０１は空欄としたまま、検証結果を登録する。
【０１６９】
到達性検証部５２３は、テナント内の仮想リソースがＬ３レイヤの接続性が確保されず通信が不可能となる障害の可能性を検証する。ＩＰアドレスをタイプ内識別子に持つ適切なノード間で、ルーティングテーブル、ＡＣＬ（Ａｃｃｅｓｓ Ｃｏｎｔｒｏｌ Ｌｉｓｔ）、ＬＢ、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）を介して接続可能であることを、一般的な方法、例えば、"Ｏｎ  ｓｔａｔｉｃ  ｒｅａｃｈａｂｉｌｉｔｙ  ａｎａｌｙｓｉｓ  ｏｆ  ＩＰ ｎｅｔｗｏｒｋｓ、”  ＩＥＥＥ ＩＮＦＯＣＯＭ ２００５、 ｐｐ. ２１７０−２１８３、 Ｍａｒｃｈ、 ２００５.を用いて検証する。
【０１７０】
以上の検証処理により、新規設定情報を機器に入力することで発生する障害の可能性を事前に検証することができる。
【０１７１】
図２７はコンソール１１０に表示されるテナントトポロジ検証画面例である。
【０１７２】
テナントトポロジ検証画面には、新規設定トポロジ表示エリア２７０１、テナントＩＤ登録エリア２７０２、新規設定情報登録エリア２７０３、検証結果表示エリア２７０６を含む。新規設定トポロジ表示エリア２７０１は、新規設定トポロジ５２６を視覚化部５０２のＧＵＩ表示制御部５０５により可視化した結果が表示される。
【０１７３】
テナントＩＤ登録エリアは、オペレータがテナントＩＤ５３２を入力するための領域である。新規設定情報登録エリア２７０３は、オペレータが新規設定情報５３１を登録するための領域であり、登録ボタン２７０４および検証開始ボタン２７０５を含む。検証結果表示エリア２７０６は、視覚化部５０２におけるＣＬＩ表示制御部５０６により可視化した検証結果が表示される。
【０１７４】
本実施の形態によると、データセンタのネットワークシステムにおいて、機器に設定された設定情報を基に生成したテナント毎の論理トポロジと、機器に新規に入力する設定情報とを用いて、設定情報入力後のテナントの論理トポロジを模擬生成することができる。これにより、異なるテナントに含まれる仮想リソースが接続する障害が発生する可能性を視覚的に把握することができる。また、設定情報を設定操作ごとに検証することで、障害の発生原因となる設定操作を迅速に特定することができる。
【実施例２】
【０１７５】
第２の実施例を、データセンタのネットワークシステムにおいて、機器に設定された設定情報を基に生成したテナント毎の論理トポロジと、機器に新規に入力する設定情報とを用いて、設定情報を事前に検証する際に、テナント間の接続を許可する例について説明する。テナント間の接続を許可する例として、例えば、テナントの情報処理システムが利用者に対してサービスを提供するネットワークはテナント毎に独立して構築するが、情報処理システムを構成する仮想リソースを管理するためのネットワークは、テナント間で共有して構築する場合である。
【０１７６】
本実施形態におけるシステム構成の例は、第１の実施例と同様である。ただし、管理サーバ１０９に追加機能が必要となる。図２８に例示する、本実施形態における管理サーバ１０９は、通常は許可しないテナント間の接続を許可する例外を認めるために、管理サーバ１０９は、例外ノード管理テーブル５２８と実施例１とは異なる独立性検証部５２９をテナントトポロジ検証部５１０に有する。
【０１７７】
独立性検証部５２９は、例外ノード管理テーブル５２８を参照し、テナント間の独立性能検証を行う。例外ノード管理テーブル５２８は、オペレータによって事前に登録される。オペレータがコンソール１１０を介して通知したテーブルの構成要素の情報は、管理要求受付グ５０１、テーブル登録部５１１を介して例外ノード管理テーブル５２８に登録される。削除、変更も同様に行われる。
【０１７８】
図２９に、例外ノード管理テーブル５２８の構成例を示す。例外ノード管理テーブル５２８は、テナント間の接続を許可する例外的なノードを管理するためのテーブルである。構成要素として、ノード識別子２９１１、ノードタイプ２９１２、機器識別子２９１３、タイプ内識別子２９１４、許可テナントＩＤ２９１５を含む。ノード識別子２９１１は、仮想ネットワーク全体で一意にノードを特定するための識別子である。オペレータが例外ノードを登録する時点でノードに識別子２９１１が割り当てられていない場合は、空欄でもよい。ノードタイプ２９１２は、仮想リソースの種類を示す識別子である。仮想リソースには、ＶＬＡＮノードＮ７０１、ＶＬＡＮインタフェースノードＮ７０２、ＶＲＦノードＮ７０３、仮想ストレージインタフェースノードＮ７０４、仮想マシンノードＮ７０５、ＺｏｎｅノードＮ７０６、ＬＵノードＮ７０７等が含まれる。機器識別子２９１３は、テナント間の接続を例外的に認めるノードが定義されている物理機器の識別子である。ＶＬＡＮノードＮ７０１のように、複数の物理機器にノードが定義される場合、テナント間接続を許可する物理機器は、２９１３に登録された物理機器に限定される。タイプ内識別子２９１４は、ノードタイプ２９１２に付随する識別子である。許可テナントＩＤ２９１５は、ノードタイプ２９１２およびタイプ内識別子２９１４で特定されるノードに接続を許可するテナントのＩＤを示す。
【０１７９】
行２９１６は、テナントＩＤ１０００および１００１に含まれるノードは、機器ＳＷ１で、ＶＬＡＮ番号（ノードＮ１のタイプ内識別子）が５００のＶＬＡＮ（ノードＮ１）に、接続を許可することを意味し、行２９１７は、あらゆるテナントＩＤのテナントに含まれるノードは、機器ＳＷ１で、ＶＬＡＮ番号（ノードＮ１のタイプ内識別子）が６００のＶＬＡＮ（ノードＮ１）に接続を許可することを意味する。
【０１８０】
図３０に、本実施形態におけるテナント間検証部５１７の独立性検証部５２９の処理フローを示す。ステップ２２０１からステップ２２０８までの処理は、第一の実施の形態と同様である。本実施形態では、ステップ２２０８において、テナントＩＤ６０２がステップ２２０１で取得したテナントＩＤと一致するか、ＮＵＬＬの場合（ステップ２２０８でＹｅｓ）は、ステップ２２１０を実行する。この場合、同一テナントの仮想リソース、または、テナントに関連づけられていない仮想リソースに接続すると判断でき、独立性は確保されていると判断できる。
【０１８１】
ステップ２２０８において、テナントＩＤ６０２がステップ２２０１で取得したテナントＩＤと一致しないか、ＮＵＬＬでない場合（ステップ２２０８でＹｅｓ）は、異なるテナントの仮想リソースに接続する可能性があると判断されるため、ステップ３００１を実行する。
【０１８２】
ステップ３００１では、ステップ２２０２で取得したノードの情報（ノードタイプ、タイプ内識別子）をもとに、例外ノード管理テーブル５２８を検索する。例外ノード管理テーブル５２８に、ノードタイプ、タイプ内識別子が一致するノードが存在する場合は、該当ノードに登録された機器識別子２９１３、許可テナントＩＤ２９１５を確認する。該当ノードに登録された機器識別子２９１３、許可テナントＩＤ２９１５に、ステップ２２０１で取得した機器識別子、テナントＩＤの両方が含まれる場合（ステップ３００２でＹｅｓ）の場合は、例外的にテナント間接続を許可したノードに接続すると判定し、次にステップ２２１０を実行する。
【０１８３】
例外ノード管理テーブル５２８に、ノードタイプ、タイプ内識別子が一致するノードが存在しない場合、または、ノードタイプ、タイプ内識別子が一致するノードは存在するが、該当ノードの機器識別子２９１３にステップ２２０１で取得した機器識別子が含まれない場合（ステップ３００２でＮｏ）、または許可テナントＩＤ２９１５にステップ２２０１で取得したテナントＩＤが含まれない場合は、例外的にテナント間接続を許可したノード以外のノードに接続するため、独立性違反と判定し、対応する検証ＩＤを取得する（ステップ２２０９）。
【０１８４】
ステップ２２１０からステップ２２１２までの処理フローは、第一の実施の形態と同様である。また、独立性検証部５２９以外の処理についても、第一の実施の形態と同様である。
【０１８５】
このようにして、第２の実施の形態では、テナントの情報処理システムを構成する仮想リソースが、オペレータが規定した特定の物理機器、仮想リソースにおいて接続することを許可する検証が可能となる。これにより、情報処理システムが利用者にたいしてサービスを提供するネットワークはテナント毎に独立性を確保しつつ、情報処理システムを構成する仮想リソースの管理のためのネットワークはテナント間で共通化する等、テナント間の独立性検証の判断をより柔軟に行うことができる。
【符号の説明】
【０１８６】
１００  データセンタ
１０１  ネットワーク
１０２  ファイアウォール
１０３  ロードバランサ
１０４  Ｌ３スイッチ
１０５ａ、１０５ｂ  Ｌ２スイッチ
１０６ａ、１０６ｂ、１０６ｃ、１０６ｄ  サーバ
１０７ａ、１０７ｂ  ＦＣスイッチ
１０８ａ、１０９ｂ  ストレージ
１０９  管理サーバ
１１０  コンソール
２０１、２６０、３００、３１０  ハードウェア
２０２、２５１、３０１、３１１、４０１  物理ＣＰＵ
２０３、２５２、３０２、３１２、４０２  物理メモリ
２０４、２５３  物理ＮＩＣ
２０５  物理ＨＢＡ
２１０  仮想化処理部
２１１  サーバ設定情報
２１２  仮想スイッチ部
２１３  仮想ポート部
２６０  仮想処理部
２６１  Ｌ２スイッチ設定情報
２６２  ＶＬＡＮ処理部
２６３  ＶＲＦ処理部
３０３  物理ＦＣポート
３０５  Ｚｏｎｉｎｇ処理部
３１４  物理ディスク
３１５  ストレージ設定情報
３１６  ＬＵＮマスキング処理部
３１７  ＬＵ
４０３  補助記憶装置
４０４  通信インタフェース
４０５  メディアインタフェース
４０６  入出力装置
４０７  外部記憶媒体
５０１  管理要求受付部
５０２  視覚化部
５０３  テナントトポロジ生成部
５０４  テナントトポロジＤＢ
５０５  ＧＵＩ表示制御部
５０６  ＣＬＩ表示制御部
５１０  テナントトポロジ検証部５１０
５１１  テーブル登録部
５１２  設定情報解析部
５１３  新規設定トポロジ生成部
５１４  ノード操作部
５１５  エッジ操作部
５１６  二重生成削除検証部
５１７  テナント間検証部
５１８  独立性検証部
５１９  属性検証部
５２０  テナント内検証部
５２１  ＩＰ重複検証部
５２２  接続性検証部
５２３  到達性検証部
５２４  パターンテーブル
５２５  重要度テーブル
５２６  新規設定トポロジ
５２７  検証結果テーブル
５２８  例外ノード管理テーブル
５２９  実施の形態２における独立性検証部
５３１  新規設定情報
５３２  テナントＩＤ
【図１】
0005953109.tif 000002
【図２】
0005953109.tif 000003
【図３】
0005953109.tif 000004
【図４】
0005953109.tif 000005
【図５】
0005953109.tif 000006
【図６】
0005953109.tif 000007
【図７】
0005953109.tif 000008
【図８】
0005953109.tif 000009
【図９】
0005953109.tif 000010
【図１０】
0005953109.tif 000011
【図１１】
0005953109.tif 000012
【図１２】
0005953109.tif 000013
【図１３】
0005953109.tif 000014
【図１４】
0005953109.tif 000015
【図１５】
0005953109.tif 000016
【図１６】
0005953109.tif 000017
【図１７】
0005953109.tif 000018
【図１８】
0005953109.tif 000019
【図１９】
0005953109.tif 000020
【図２０】
0005953109.tif 000021
【図２１】
0005953109.tif 000022
【図２２】
0005953109.tif 000023
【図２３】
0005953109.tif 000024
【図２４】
0005953109.tif 000025
【図２５】
0005953109.tif 000026
【図２６】
0005953109.tif 000027
【図２７】
0005953109.tif 000028
【図２８】
0005953109.tif 000029
【図２９】
0005953109.tif 000030
【図３０】
0005953109.tif 000031