図1は、本発明の実施例1のネットワークシステムの構成を示すブロック図である。
本実施の形態のネットワークシステムは、複数のNW(Network)装置、複数の計算機、及び管理計算機から構成される。
図1に示すように、ネットワークシステムは、例えば、ルータ1(100A)、FW(FireWall)1(100B)、コアSW(SWitch)1(100C)、エッジSW1(100D)、エッジSW2(100E)、物理サーバ1(200A)、物理サーバ2(200B)、管理サーバ500、SE(System Engineer)用端末700、DC(Data Center)管理者用端末800、テナント管理者用端末900、及び検証機150から構成される。
なお、以下の説明では、ルータ1(100A)、FW1(100B)、コアSW1(100C)、エッジSW1(100D)、及びエッジSW2(100E)を総称してNW装置100とも記載する。さらに、以下の説明では、NW装置100、物理サーバ1(200A)、及び物理サーバ2(200B)を総称して物理装置とも記載する。また、ネットワークシステムは、前述した物理装置に限定されず、ロードバランサ及びVPN(Virtual Private Network)装置等であってもよい。
物理サーバ200は、仮想マシン300(Virtual Machine:以下VMと記載する)を生成する仮想化部(図示省略)を実行する。物理サーバ200は、プロセッサ、メモリ、及びネットワークインタフェースを有し、プロセッサがメモリ上にロードされた仮想化部を実現するプログラムを実行する。
仮想化部は、物理サーバ200の計算機リソースを用いて生成された、一つ以上のVM300を稼動させる。また、仮想化部は、VM300を接続するための仮想SW400を生成し、仮想SW400を介してVM300と外部のネットワークとが接続される。なお、仮想化部としてはハイパバイザ、及びVMM(Virtual Machine Monitor)等を用いることが考えられる。
ルータ1(100A)は、VPN及びインターネット等の外部ネットワーク2と接続する。ルータ1(100A)から物理サーバ200又は管理サーバ500までのネットワークがデータセンタ(Data Center:以下DCと記載する)内の内部ネットワークを構成する。
なお、管理サーバ500は、NW装置100、物理サーバ200、仮想SW400、及びVM300とは、論理的に分離されたネットワークを介して接続される。なお、NW装置100、物理サーバ200、後述する仮想SW400、及びVM300は、物理的に異なる管理用ネットワークを介して、管理サーバ500と接続されてもよい。
NW装置100は、ネットワーク内の装置間を接続し、ネットワーク内で送受信される情報を、所定の宛先の装置に転送する。なお、仮想SWもNW装置100と同様の機能を有する。なお、NW装置100は、プロセッサ、メモリ、及びネットワークインタフェースを有する。
管理サーバ500は、NW装置100、物理サーバ200、仮想SW、及びVMを管理する。管理サーバ500は、NW装置100と通信することによって、ネットワークシステムの構成情報を取得し、また、NW装置100、物理サーバ200、仮想SW400、及びVM300に対する設定等を行うことができる。本実施例では、管理サーバ500は、テナントパターンを生成するために用いられるパターンパーツを生成する。
ここで、テナントパターンとは、テナントの設計に必要なパラメータの決定方法から構成される情報である。パターンパーツとは、一つ以上の設定項目又は一つ以上のIDプールの少なくともいずれかから構成される情報であり、テナントパターン生成時に繰り返し利用される情報である。設定項目は、ネットワークシステムを構成するノード等に設定される一つ以上のパラメータ、及び当該パラメータの決定方法を含む情報を示す。IDプールは、設定項目に含まれるパラメータに対して割り当てるIDの集合を示す。
また、以下の説明において、「テナントの生成」とは、テナントパターンを用いてテナントの設定内容が生成され、当該テナントの設定内容を実際のシステムに設定することを表す。
なお、管理サーバ500のハードウェア構成及びソフトウェア構成については、図2を用いて後述する。
SE用端末700、DC管理者用端末800、及びテナント管理者用端末900は、プロセッサ、メモリ、ネットワークインタフェース、マウス及びキーボード等から構成される入力装置、並びに、表示装置等から構成される出力装置を備える。SE用端末700、DC管理者用端末800、及びテナント管理者用端末900は、例えば、管理サーバ500と接続する。
ネットワークSEはSE用端末700を操作し、DC管理者はDC管理者用端末800を操作し、また、テナント管理者はテナント管理者用端末900を操作することによって管理サーバ500に各種指示を行うことができる。
ここで、ネットワークSEとは、DC内の各テナントに依存しない基盤部分を設計し、当該基盤部分を構築、及び変更するユーザである。DC管理者は、DCの運用を担当し、DC内に生成された複数のテナントを管理するユーザである。テナント管理者は、自身が担当するテナントのみを管理(テナントの生成及び構成の変更等)を行う。
検証機150は、NW装置の動作検証のために用いる機器であり、例えば、ルータ、SW、FW、ロードバランサ、VPN装置等である。検証機150は、サービス用のネットワークからは分離された検証用ネットワークを介して、管理サーバ500と接続する。
なお、ネットワークシステムを構成する物理装置は、図1に示した構成に限定されず、適宜の数を変更することができる。
図2は、本発明の実施例1の管理サーバ500の構成を説明するブロック図である。
管理サーバ500は、プロセッサ550、メモリ510、内部記憶装置560、I/Oインタフェース(I/F)570、及びネットワークインタフェース(I/F)580を備える。
管理サーバ500は、内部ネットワークに接続される他の装置、例えば、NW装置100等と、ネットワークI/F580を介して情報を送受信する。また、I/O I/F570は、例えば、HBA(Host Bus Adapter)等で構成され、図示しないストレージ装置等に接続する。
プロセッサ550は、メモリ510に格納されるプログラムを実行する。メモリ510は、プロセッサ550によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。
具体的には、メモリ510は、テナントパターン生成/検証部511、自動設計設定部512、及び検証ルール生成部513を実現するためのプログラムを格納する。また、メモリ510は、性能要件確認用シナリオ521、抽出用文字列情報522、パターンパーツ(設定項目)情報523、パターンパーツ(プール)情報524、検証ルール管理情報525、テナントパターン情報528、テナントパターン(サブネット)情報529、マッピング情報530、IDプール情報531、コマンドテンプレート情報532、テナントインスタンス管理情報533、物理構成情報536、及び設計設定タスク情報537を格納する。
プロセッサ550は、メモリ510に格納されるプログラムに従って動作することによって、所定の機能を有する機能部として動作する。例えば、プロセッサ550は、テナントパターン生成/検証部511を実現するプログラムを動作することによって、テナントパターン生成/検証部511が有する機能を実現する。他のプログラムについても同様である。さらに、プロセッサ550は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。
以下の説明では、機能部を主語に説明する場合、プロセッサ550が機能部を実現するプログラムに従って動作していることを示す。
また、各プログラムは、内部記憶装置560等の非一時的な記憶媒体に格納されてもよい。この場合、プロセッサ550が、内部記憶装置560からプログラムを読み出し、読み出されたプログラムをメモリ510上にロードし、ロードされたプログラムを実行する。
また、メモリ510に格納されるテーブル等の情報は、内部記憶装置560、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、又は、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
以下、メモリ510に格納されるプログラム及び情報について説明する。
テナントパターン生成/検証部511は、パターンパーツを用いて、ネットワークSEが要求するテナントパターンを生成する。さらに、テナントパターン生成/検証部511は、検証ルールを用いて、生成されたテナントパターンの内容を検証する。
自動設計設定部512は、テナントパターンを用いて、テナント管理者が要求するテナントの設定内容を生成する。さらに、自動設計設定部512は、生成されたテナントの設定内容を物理装置に反映(設定)する。これによって、所定のテナントが生成される。
検証ルール生成部513は、ネットワークSEが要求するパターンパーツ及び検証ルールを生成する。ここで、検証ルールとは、テナントパターン、又はテナントパターンを用いて生成される実際のテナントの設定内容を検証するための情報である。検証ルール生成部513は、後述するように、検証ルール「インスタンス数の上限」及び検証ルール「パラメータ値の範囲」等の検証ルールを生成する。
性能要件確認用シナリオ521は、検証ルール「インスタンス数の上限」が生成される場合に、検証機150の性能を確認するためのコマンド、及び当該コマンドに対応する応答文字列の対応関係を示す情報を格納する。性能要件確認用シナリオ521の詳細については、図3を用いて後述する。
抽出用文字列情報522は、検証ルール「パラメータ値の範囲」又は検証ルール「インスタンス数の上限」が生成される場合に、検証機150等のマニュアルからパラメータ値の範囲又は上限値を抽出するための文字列を格納する。抽出用文字列情報522の詳細については、図4を用いて後述する。
パターンパーツ(設定項目)情報523は、パターンパーツのうち設定項目に関する情報を格納する。パターンパーツ(設定項目)情報523は、テナントパターンを生成又は変更するときに利用される。パターンパーツ(設定項目)情報523の詳細については、図5を用いて後述する。
パターンパーツ(プール)情報524は、パターンパーツのうちIDプールに関する情報を格納する。パターンパーツ(プール)情報524は、パラメータ値を決定するときに利用される。パターンパーツ(プール)情報524の詳細については、図6を用いて後述する。
検証ルール管理情報525は、検証ルール生成部513によって生成された検証ルールに関連する情報を格納する。本実施例では、複数の検証ルールが生成されるため、検証ルール管理情報525には複数の検証ルールに関連する情報が格納される。検証ルール管理情報525の詳細については、図7、図8、及び図9を用いて後述する。
テナントパターン情報528は、テナントを生成するための情報であるテナントパターンに関する情報を格納する。テナントパターン情報528には、ノード、設定項目、パラメータ、及びパラメータ値の決定方法等の情報が格納される。テナントパターン情報528の詳細については、図10A及び図10Bを用いて後述する。
テナントパターン(サブネット)情報529は、テナントのサブネットを生成するための情報である。テナントパターン(サブネット)情報529の詳細については、図11を用いて後述する。
マッピング情報530は、テナントパターンにおけるノードと、設定対象となる物理装置との対応関係を示す情報である。マッピング情報530の詳細については、図12を用いて後述する。
IDプール情報531は、テナントパターンのパラメータ値を決定するためのIDプールを規定する情報である。IDプール情報531の詳細については、図13を用いて後述する。
コマンドテンプレート情報532は、パラメータ部分が未設定である設定コマンドの文字列である。コマンドテンプレート情報532は、設定項目に関連する情報であり、決定されたパラメータ値をコマンドテンプレートのパラメータ部分に代入することによって、設定コマンドが生成される。コマンドテンプレート情報532の詳細については、図14を用いて後述する。
テナントインスタンス管理情報533は、自動設計設定部512によって生成又は更新されたノードに関するテナントインスタンスの情報を管理する。ここで、インスタンスとは、テナントパターンから生成されたテナント、並びに、テナントにおけるノード、サブネット、及びマッピング等の実体である。
本実施例では、ノード、サブネット、マッピングのそれぞれのインスタンスに関するテナントインスタンス情報5331、5332、5333が存在する。テナントインスタンス管理情報533の詳細については、図15、図16、及び図17を用いて後述する。
物理構成情報536は、各機能部が管理対象の物理装置又は仮想装置から情報を収集し、又は、情報を設定するための認証情報及びアドレス等を格納する。物理構成情報536の詳細については、図18を用いて後述する。
設計設定タスク情報537は、運用者等が設計した設定内容を含む設計又は設定タスクを管理する。設計設定タスク情報537の詳細については、図19を用いて後述する。
図3は、本発明の実施例1の性能要件確認用シナリオ521の一例を示す説明図である。
性能要件確認用シナリオ521は、ID5211、性能要件5212、コマンド5213、及び応答文字列5214を含む。
ID5211は、性能要件確認用シナリオ521におけるエントリ、すなわち、シナリオを一意に識別するための識別子である。性能要件5212は、確認対象の性能を示す情報である。性能要件5212は、パターンパーツ及び検証ルールの生成時に、SE用端末700から入力される。
コマンド5213は、確認対象の性能を確認するために用いられるコマンドの文字列である。応答文字列5214は、コマンドの実行結果である文字列である。応答文字列5214に格納される文字列の中から、確認対象の性能値が抽出される。本項目は正規表現等によって、応答文字列5214の中から、確認対象の性能値が抽出される。図3に示す例では、括弧の部分「()」が、確認対象の性能値として抽出される。
図4は、本発明の実施例1の抽出用文字列情報522の一例を示す説明図である。
抽出用文字列情報522は、ID5221、及び抽出用文字列5222を含む。
ID5221は、抽出用文字列情報522におけるエントリ、すなわち、抽出用文字列を一意に識別するための識別子である。本項目は、パターンパーツ及び検証ルール生成時に、SE用端末700から入力される。このとき、ID5221に対応する抽出用文字列を用いて、検証ルールが生成される。
抽出用文字列5222は、パラメータ値の範囲、又はインスタンス数の上限値等をマニュアルから抽出するための文字列である。本項目は正規表現を用いてもよい。図4に示す例では、括弧の部分「値1」と「値2」がパラメータ値の範囲として抽出される。
図5は、本発明の実施例1のパターンパーツ(設定項目)情報523の一例を示す説明図である。
パターンパーツ(設定項目)情報523は、パターンパーツID52301、ノード52302、多重度52303、設定項目52304、設定順番52305、パラメータID52306、パラメータ52307、決定方法52308、パラメータ種別タグ52309、及びコマンドテンプレート52310を含む。
パターンパーツID52301は、パターンパーツ(設定項目)情報523におけるエントリ、すなわち、パターンパーツを一意に識別するための識別子である。パターンパーツ(設定項目)情報523には、一つ以上の設定項目から構成されるパターンパーツに関する情報が格納される。
ノード52302は、パターンパーツがノードである場合に、当該ノードを識別するための情報である。ノード以外のパターンパーツの場合には、ノード52302には、ハイフン記号が格納される。
多重度52303は、生成されるノードの数に関する情報である。図5に示すように、アスタリスク記号と数値を用いて、デフォルトのインスタンス数を規定できる。例えば、パターンパーツID52301が「パーツ4」のエントリでは、デフォルトのインスタンス数が「2」である。
設定項目52304は、パターンパーツを構成する設定項目の識別名である。設定順番52305は、設定項目単位の設定順番である。テナントの設計時には本項目を利用して、設定順番が決められる。
パラメータID52306は、設定項目に含まれるパラメータを一意に識別するための識別子である。パラメータ52307は、パラメータの識別名である。
決定方法52308は、パラメータ52307に対応するパラメータの決定方法である。決定方法の詳細については、図10を用いて後述する。なお、パターンパーツの決定方法はテナントパターンの決定方法と以下の点が異なる。
1点目は、パターンパーツに規定されていない外部の情報を参照する決定方法「参照」の場合、参照先は規定されず、単に「参照して決める」という情報だけが規定されるものする。なお、パラメータに対して検証ルール「値の関連性」が適用されている場合、管理サーバ500は、テナントパターン生成時にユーザに参照先の候補を示し、参照先の決定を支援する。
2点目は、決定方法「プールからの割り当て」では、テナントパターン生成時に、図6に記載のパターンパーツ(プール)情報524におけるIDプールが利用され、決定方法「プール(パターン生成時に利用プールを指定)」では、とテナントパターン生成時に、プールが指定される。
パラメータ種別タグ52309は、パラメータの種別である。本項目を用いて、検証ルール「値の関連性」等が設定された設定項目の参照先のパラメータ候補が選択される。
コマンドテンプレート52310は、設定項目の設定コマンドを生成するときに利用されるコマンドテンプレートの識別子である。コマンドテンプレートは、設定項目の追加及び設定項目の削除が指定される。
本実施例では、前述したようなパターンパーツを利用することによって、テナントパターンを容易に生成できる。
図6は、本発明の実施例1のパターンパーツ(プール)情報524の一例を示す説明図である。
パターンパーツ(プール)情報524は、パターンパーツID5241、プール名5242、種類5243、及び個別情報5244を含む。
パターンパーツID5241は、パターンパーツ(プール)情報524のエントリ、すなわち、パターンパーツを一意に識別するための識別子である。パターンパーツ(プール)情報524には、IDプールから構成されるパターンパーツに関する情報が格納される。
プール名5242は、IDプールの識別名である。種類5243は、IDプールの種類である。なお、IDプールの詳細については、図13を用いて後述する。
個別情報5244は、IDプールの具体的な内容を格納する。図4に示す例では、プール名5242が「IPアドレス1」のエントリの個別情報5244には、ネットワークアドレスの範囲、及びデフォルトマスク長が格納され、プール名5242が「VLAN ID」、「ポリシ ID」及び「ACL ID」のエントリの個別情報5244には、最小ID及び最大IDが格納される。
なお、デフォルトマスク長は、割り当てられるネットワークアドレスのデフォルトのマスク長である。最小IDは、IDプールにおけるIDの最小値である。最大ID、IDプールにおけるIDの最大値である。
次に、検証ルール管理情報525について説明する。本実施例では、検証ルール管理情報525には、検証ルールそのものの情報を管理する検証ルール情報5251、並びに、所定の検証ルールの具体的な内容を管理する検証ルール内容(上限値)情報5252及び検証ルール内容(必要構成)情報5253が含まれる。以下、それぞれ情報について説明する。
図7は、本発明の実施例1の検証ルール情報5251の一例を示す説明図である。
検証ルール情報5251は、検証ルールID52511、検証ルール種類52512、検証ルール内容52513、検証対象52514、デバイス情報52515を含む。
検証ルールID52511は、検証ルール情報5251のエントリ、すなわち、検証ルールを一意に識別するための識別子である。
検証ルール種類52512は、検証ルールの種類である。本実施例では、「パラメータ値の範囲」、「インスタンス数の上限」、「値の関連性」、「設定順番」、「必要構成」の五つの種類の検証ルールがある。
検証ルール「パラメータ値の範囲」は、パラメータ値が取り得る範囲を検証するルールである。検証ルール「インスタンス数の上限」は、設定項目又はノードのインスタンス数の上限値を検証するルールである。検証ルール「値の関連性」は、テナントパターンにおける所定のパラメータの種別を検証するルールである。検証ルール「設定順番」は、設定項目間の順序性を検証するルールである。検証ルール「必要構成」は、設定項目を設定するために、予め設定されている必要がある構成の有無を検証するルールである。なお、検証対象の構成は、主にテナントで共有される設定項目である。
検証ルール内容52513は、検証ルールの内容である。検証ルールの種類に応じて、以下のように検証ルール内容52513に格納される内容が異なる。
検証ルール「パラメータ値の範囲」では、検証ルール内容52513には、所定のパラメータ値に範囲があることが規定される。図7に示す例では、FWのポリシIDにはパラメータ値の範囲があることが規定されている。FWのポリシID以外にも、例えば、スイッチの回線帯域幅、VLAN ID、スパニングツリーのポート等の各種優先度、スパニングツリーのBPDU等の各種送信間隔、及びルーティングプロトコルのメトリック等がある。
検証ルール「インスタンス数の上限」では、検証ルール内容52513には、インスタンス数に上限があることが規定される。なお、性能要件によって、インスタンス数の上限値は異なる。また、前提となる設定項目(同時に利用する機能)によっても、インスタンス数の上限値が変わる。したがって、当該検証ルールには、図8に示すような性能要件及び前提設定項目が規定され、性能要件又は前提設定項目の組み合わせごとに上限値が規定される。
図7に示す例では、インスタンス数の上限値が設けられた設定項目としてVRFが規定されている。VRF以外にも例えば、FWの仮想ルータ等がある。
検証ルール「値の関連性」では、検証ルール内容52513には、所定のパラメータが他のパラメータと関連性があること、及び関連するパラメータの識別情報が規定される。関連するパラメータの識別情報は、パラメータ種別タグ52309を用いて規定される。
図7に示す例では、ロードバランサの送信先サーバのIPには他のパラメータと関連性があり、関連するパラメータの種別は「公開サーバIP」であることが規定されている。送信先サーバのIP以外にも、例えば、「デフォルトゲートウェイのIPアドレス」、「上位スイッチのIPアドレス」、「ポートに設定するVLAN ID」、及び「対向ポートに設定するVLAN ID」等がある。
検証ルール「設定順番」では、検証ルール内容52513には、二つの設定項目A及び設定項目Bの順序性が規定される。本実施例では、設定項目Bは、設定項目Aの後に設定される設定項目であるものとする。また、設定項目は、後述する設定項目種別タグ52805(図10A参照)を用いて規定される。
図7に示す例では、「VRF」は「VRFとVLANの関連付け」より先に設定されることが規定されている。これ以外にも例えば、「VLAN」と「VLAN IFへのIP設定」、「アクセスリスト」と「フロー定義」等がある。
検証ルール「必要構成」では、検証ルール内容52513には、検証ルールの検証対象である設定項目において、予め設定が必要な設定項目が規定される。図7に示す例では、「ACL」は、予め「共通ゾーン」の設定が必要であることが規定されている。これ以外にも例えば、「VLAN」と「ポートのトランクモード設定」、「VLANをリングに所属」と「リング」、「ポートチャネルへのVLAN設定」と「ポートチャネル(LLDP)」等がある。
検証対象52514は、検証ルールを適用する対象(パターンパーツ)を特定する情報である。本実施例では、検証ルールを適用するパターンパーツを特定する情報として、パターンパーツの識別子、又はパラメータの識別子が用いられる。なお、検証ルールの種類に応じて、格納される情報が以下のように異なる。
検証ルール「パラメータ値の範囲」の場合、個々のパラメータが検証対象である。検証ルール「インスタンス数の上限」の場合、設定項目が検証対象である。検証ルール「値の関連性」の場合、個々のパラメータが検証対象である。検証ルール「設定順番」の場合、特定のパターンパーツが検証対象とならず、検証ルール内容52513において規定された設定項目及びパラメータ種別タグ52309が同一である設定項目が検証対象である。検証ルール「必要構成」の場合、設定項目が検証対象である。
なお、検証ルールの検証対象は、パターンパーツ単位ではなくテナントパターンそのものの検証に用いることも可能である。この場合、検証ルールの検証ルール内容52513に格納される対象のパラメータ、又は設定項目のパラメータ種別タグ52309が同一であるテナントパターンのパラメータ、若しくは設定項目が検証対象となる。
デバイス情報52515は、検証ルールを適用する場合に用いられる、物理装置毎の情報である。デバイス情報52515は、機種52516、及び値52517を含む。
機種52516は、物理装置の機種の識別情報である。値52517は、物理装置におけるパラメータ値等である。
検証ルール「パラメータ値の範囲」では、値52517には、パラメータ値の範囲が規定される。検証ルール「インスタンス数の上限」では、値52517には、性能要件毎、及び前提設定項目の組合せ毎に、インスタンス数の上限値が規定される。
図7に示す例では、性能要件が二つあり、各性能要件に対して前提設定項目が二つある。例えば、性能要件1「CPU負荷が50%以下」で、前提1「OSPF」をVRFごとに動作させ、前提2「マルチキャスト」を動作させない場合は、上限値は、「35」であることが分かる。
また、前提設定項目が「演算」の場合、検証ルールIDが「10」のエントリのようにデバイス情報52515の値52517には、性能要件毎のインスタンス数の上限値のみが規定される。前提設定項目がある場合、インスタンス数の上限値に対して、図8で規定された演算が実行される。例えば、前提設定項目「OSPF」があり、性能要件が「CPU負荷80%以下」の場合、インスタンス数の上限値は、200(上限値2)x0.5=100となる。検証ルール「値の関連性」、「設定順番」、及び「必要構成」では、機種毎のパラメータ値の規定は不要である。
管理サーバ500は、テナントパターン、又はテナントの設定内容に対して、前述したような多様な種類の検証を行うことができる。これによって、適切な構成のテナントパターン、又はテナントを容易に生成することができる。
検証ルール「パラメータ値の範囲」に基づいた検証が行われることによって、物理装置がサポートする範囲内のパラメータ値を設定できる。物理装置に対してサポートされた範囲外のパラメータ値が入力できるため不正な動作を生ずる場合があるが、当該検証ルールに基づいた検証が行われることによって、運用者等が事前に物理装置に入力されるパラメータ値の範囲を確認することができる。したがって、テナントパターン、又はテナントの設計ミスを低減できる。
検証ルール「インスタンス数の上限」に基づいた検証が行われることによって、テナントパターン、又はテナントにおいて要求された品質を確保することができる。さらに、検証ルール「インスタンス数の上限」に基づいた検証では、テナントパターン毎に異なる性能要件に対応した検証を行うことができる。
検証ルール「値の関連性」に基づいた検証が行われることによって、パターンパーツを利用するときに、パターンパーツのパラメータとは異なるパラメータとの関連付けが容易となり、テナントパターンへの組み込みが容易になる。
検証ルール「設定順番」に基づいた検証が行われることによって、運用者は正しい設定順番で設定項目を設定できる。したがって、テナントの設定ミスを低減することができる。
検証ルール「必要構成」に基づいた検証が行われることによって、設定ミスを低減することができる。
図8は、本発明の実施例1における検証ルール内容(上限値)情報5252の一例を示す説明図である。
検証ルール内容(上限値)情報5252は、図7に記載の検証ルールのうち、検証ルール「インスタンス数の上限」に関する性能要件及び前提設定項目に関する情報を格納する。
インスタンス数の上限値は、テナントパターンに対する性能要件、及び性能に影響し、検証対象の設定項目に関連する他の設定項目(前提設定項目)によっても異なるため、検証ルール内容(上限値)情報5252に性能要件及び前提設定項目が規定される。
検証ルール内容(上限値)情報5252は、検証ルールID52521、性能要件52522、前提ID52523、前提設定項目(個別指定)52524、及び前提設定項目(演算)52525を含む。
検証ルールID52521は、検証ルールを一意に識別するための識別子である。ここでは、検証ルール「インスタンス数の上限」に対応するエントリの識別子が格納される。
性能要件52522は、性能要件、及び性能要件の上限値を示す情報である。具体的なインスタンス数の上限値は、図7のデバイス情報52515の値52517によって規定され、本項目は値52517への参照(上限値1、上限値2等)に用いられる情報である。図8に示す例では、性能要件としてCPU負荷が規定されている。これ以外にも例えば、MACテーブルの使用率、メモリの使用率、及び帯域使用率等がある。
前提ID52523は、前提設定項目を一意に識別する識別子である。
前提設定項目(個別指定)52524は、インスタンス数の上限値の前提となる設定項目である。本項目の組合せ毎にインスタンス数の上限値が規定される。図8に示す例では、前提設定項目としてOSPF、及びマルチキャストが規定されている。これ以外にも例えば、リング、スパニングツリー、及び各種動的ルーティングプロトコル等がある。
前提設定項目(演算)52525は、インスタンス数の上限値の前提となる設定項目、及び当該設定項目の有無に応じてインスタンス数の上限値を算出するための演算内容である。
図9は、本発明の実施例1の検証ルール内容(必要構成)情報5253の一例を示す説明図である。
検証ルール内容(必要構成)情報5253は、検証ルール「必要構成」を確認するためのコマンド、及び当該コマンドに対応する応答文字列に関する情報を格納する。
検証ルール内容(必要構成)情報5253は、対象検証ルールID52531、確認構成52532、確認用コマンド52533、及び応答文字列52534を含む。
対象検証ルールID52531は、検証ルールを一意に識別するための識別子である。ここでは、検証ルール「必要構成」に対応するエントリの識別子が格納される。確認構成52532は、確認対象の構成(設定項目)である。
確認用コマンド52533は、確認対象の構成が設定されているか否かを確認するためのコマンドである。応答文字列52534は、確認用コマンド52533を実行し、確認対象の構成が設定されていた場合に返ってくる文字列の一部である。したがって、確認用コマンド52533を実行した結果、返ってきた文字列に応答文字列52534が含まれている場合、必要な構成が設定されていると判定される。
図10A及び図10Bは、本発明の実施例1のテナントパターン情報528の一例を示す説明図である。
テナントパターン情報528は、テナントパターンID52801、ノード52802、多重度52803、設定項目52804、設定項目種別タグ52805、設定順番52806、パターンパーツID52807、インスタンス数上限値52808、パラメータ52809、決定方法52810、パラメータ種別タグ52811、業務フロー52812、及びコマンドテンプレート52813を含む。
テナントパターン情報528ではテナントのノードとして、テナントを管理するための管理情報を規定できる。また、テナントパターン情報528では管理情報にパラメータを規定できる。なお、管理情報には物理装置のマッピングを行わない。図10Bに示す例では、一番下のエントリが前述した管理情報に対応するものである。
テナントパターンID52801は、テナントパターンを一意に識別するための識別子である。ノード52802は、テナントパターンにおいて規定されるノードを識別するための情報である。
多重度52803は、テナントにおいて、同一の構成のノードが生成される数である。ここで、同一の構成のノードとは、同一のサブネットに属し、かつ、設定項目、及びパラメータが同一のノードを示す。図10Bに示すように、所定の記号と数値を用いて、デフォルトのノード数を規定できる。
例えば、ノード52802が「コアSW1」のエントリの多重度52803には、ハイフン記号が格納される。本実施例では、ハイフン記号が格納される場合には、該当するノードが一つ生成されることを意味する。また、ノード52802が「VM1」のエントリの多重度52803には、アスタリスク記号の場合、アスタリスク記号の次に記載された数だけノードが生成される。
なお、運用者がノード数を指定した場合には、指定された数のノードが生成される。一方、運用者がノード数を指定しない場合には、多重度52803において規定された数のノードが生成される。
設定項目52804は、ノードに対する設定項目である。設定項目種別タグ52805は、設定項目52804の種別を表す情報である。設定項目種別タグ52805は、検証ルール「設定順番」等で検証対象の設定項目を特定するために用いられる。また、検証ルール生成部513によって、検証ルール「インスタンス数の上限」が生成される場合に、前提設定項目を設定するためのコマンドテンプレート等を取得するために、設定項目種別タグ52805に基づいて利用する設定項目が特定される。
設定順番52806は、テナントパターン内の設定項目の設定順番である。設定順番52806に示された順番に従って、設定内容が生成される。また、検証ルール「設定順番」に基づく検証では、設定項目間において本項目が正しいか否かが検証される。
パターンパーツID52807は、テナントパターンの生成時に用いられたパターンパーツの識別子である。なお、パターンパーツが用いられていない場合、パターンパーツID52807には、ハイフン記号が格納される。
インスタンス数上限値52808は、設定項目のインスタンス数の上限値である。テナントパターン生成時に、入力された性能要件、及び前提設定項目に基づいて、図7に記載の検証ルール「インスタンス数の上限」における値52517からインスタンス数の上限値が選択され、選択されたインスタンス数の上限値が本項目に格納される。
パラメータ52809は、設定項目に含まれるパラメータの識別名である。なお、パラメータはノード内の複数の設定項目で利用することが可能である。
決定方法52810は、ネットワーク構成の設計時にパラメータ値を決定する方法又は定義である。
決定方法52810には、例えば、「固定」、「プール」、「プール(サブネット指定)」、及び「参照」等の決定方法を示す値が格納される。
「固定」は、予め設定された固定値をパラメータ値として決定する方法であり、テナントパターン情報において規定される。図10に示す例では、ノード52802が「FW1」のエントリのうち、パラメータ52809が「送信元」に対応する決定方法52810には、「Any」という固定値が規定される。
「プール」は、IDプール情報531の中から所定のIDプールが指定され、指定されたIDプールから未使用のIDをパラメータ値として割り当てる方法である。なお、指定されたIDプールから割り当てられた値は、指定されたIDプールにおいて「使用中」という状態に変更される。
また、IDプールでは割り当て要求を受けた時にどのIDを割り当てるかを規定したロジックを予め指定するものとする。当該ロジックには、例えば、未使用の最小のIDから順に割り当てる「若番から」というロジック、未使用のIDからランダムに割り当てる「ランダム」というロジック等がある。
図10に示す例では、ノード52802が「FW1」のエントリのうち、パラメータ52809が「ACL ID」に対応する決定方法52810には、「若番から」というロジックが規定される。したがって、IDプール4における未使用のIDのうち、最小のIDが「ACL ID」に割り当てられる。
「プール(サブネット指定)」は、指定されたサブネットに割り当てられたネットワークアドレスから未使用のIPアドレスをパラメータ値として割り当てる方法である。なお、割り当てられた値は、指定されたIDプールにおいて「使用中」という状態に変更される。
「参照」は、他のノードのパラメータ又はサブネット情報のパラメータ値を参照し、参照されたパラメータ値を参照元のパラメータ値として設定する方法である。なお、参照先のパラメータ値と同一のパラメータ値を設定する場合に限定されず、参照先のパラメータ値に基づいて、予め設定された演算処理の実行後のパラメータ値、又は、予め設定された文字列処理の実行後のパラメータ値等を、参照元のパラメータ値として設定することも可能である。
図10に示す例では、ノード52802が「FW1」のエントリのうち、パラメータ52809が「宛先」に対応する決定方法52810には、サブネット3のネットワークアドレスが参照され、参照された値が宛先の値となる。
パラメータ種別タグ52811は、パラメータの種別であり、検証ルール「値の関連性」等において、当該パラメータと関連がある他のパラメータを特定するために用いられる。
業務フロー52812は、設定項目ごとに設計設定を実施する業務フローの情報、及び設計設定の実施時における設定項目の操作種別に関する情報である。操作種別は、「追加」、「変更」、及び「削除」があり、管理サーバ500は、指定された操作種別に対応するコマンドテンプレートを使用し、ノードの設定内容を生成する。なお、一つの設定項目に対して、複数の業務フローを関連づけることができる。
図10に示す例では、ノード52802が「FW1」のエントリのうち、設定項目52804「ACL」に対応する業務フロー52812には、業務フローとして「ACL変更」が、操作種別として「追加」が規定される。したがって、運用者が業務フロー「ACL変更」を指定した場合、管理サーバ500は、FW1のACLを追加し、追加用のコマンドテンプレートを用いて、ノードの設定内容を生成する。
コマンドテンプレート52813は、ノードの設定内容のコマンドを生成するためのテンプレート情報である。コマンドテンプレート52813には、追加、変更、削除用のコマンドテンプレートが登録される。
図11は、本発明の実施例1のテナントパターン(サブネット)情報529の一例を示す説明図である。
テナントパターン(サブネット)情報529は、テナントパターンID5291、サブネットID5292、VLAN IDプール5293、所属ノード5294、及びアドレスプール5295を含む。
テナントパターンID5291は、サブネットが所属するテナントパターンを識別するための識別子である。サブネットID5292は、テナントパターンのサブネットを一意に識別するための識別子である。VLAN IDプール5293は、当該サブネットにおいて利用するVLAN IDを割り当てる場合に用いられるIDプールである。所属ノード5294は、当該サブネットに所属するノードの情報である。アドレスプール5295は、当該サブネットにおいて利用するネットワークアドレスを割り当てる場合に用いられるIDプールである。
図12は、本発明の実施例1のマッピング情報530の一例を示す説明図である。
マッピング情報530は、テナントパターンID5301、ノード5302、物理装置5303、及びノード仮想化5304を含む。
テナントパターンID5301は、テナントパターンを識別するための識別子である。ノード5302は、テナントパターンを構成するノードの識別子であり、マッピング元のノードを示す情報である。物理装置5303は、ノードのマッピング先の物理装置を識別するための情報である。
ノード仮想化5304は、ノードを仮想化するか否かを示す情報である。本実施例では、ノード仮想化5304には、ノード仮想化を許可する旨の情報が格納される。例えば、ノードがサーバの場合、当該サーバをマッピング先としては物理サーバ200又はVM300の二つのマッピング先が存在し、ノード仮想化5304にノード仮想化を許可する旨の情報が格納される場合には、物理装置5303に示された物理サーバ200上で稼働するVM300がマッピング先となる。
図13は、本発明の実施例1のIDプール情報531の一例を示す説明図である。
IDプール情報531は、ID5311、プール名5312、種類5313、及び個別情報5314を含む。
IDプール情報531は、ID及びアドレスの使用状況を管理するプールインスタンスを生成するための情報である。複数のテナントパターンによって共通のIDプールが利用される場合と、個々のテナントパターンインスタンスごとにIDプールが利用される場合とがある。
ID5311は、IDプールを一意に識別するための識別子である。プール名5312は、当該IDプールの名前情報である。
種類5313は、IDプールの種類の情報である。IDプールの種類には、例えば、「IPアドレス」、及び「ID」がある。「IPアドレス」のIDプールでは、ネットワークアドレス単位と個々のIPアドレス単位との2段階のID管理が行われる。「ID」のIDプールでは、個々のID単位でID管理が行われる。ここで、ID管理とは、IDの使用/不使用の状態を管理することを示す。
個別情報5314は、IDプールの具体的な内容を格納する。「IPアドレス」のIDプールの場合、個別情報5314には、ネットワークアドレス及びデフォルトマスク長が格納される。また、「ID」のIDプールの場合、個別情報5314には、最小ID及び最大IDが格納される。
図14は、本発明の実施例1のコマンドテンプレート情報532の一例を示す説明図である。
コマンドテンプレート情報532は、ID5321、名前5322、及びコマンドテンプレート5323を含む。コマンドテンプレート情報532は、ネットワークシステム全体で規定され、複数のテナントパターンによって利用される。
ID5321は、コマンドテンプレートを一意に識別するための識別子である。名前5322は、コマンドテンプレートの名前情報である。
コマンドテンプレート5323は、コマンドテンプレートを格納した情報である。コマンドテンプレートは、コマンド又は命令列にパラメータを代入できるような形式になっており、管理サーバ500はコマンドテンプレート5323のコマンドにパラメータを代入することによって、所定のコマンドを生成する。
図14の例では、ID5321が「2」のエントリには、名前5322が「ACL削除」のコマンドテンプレートが格納される。当該コマンドテンプレートは、「unset policy id <ID>」であり、<ID>部分がパラメータである。管理サーバ500は、<ID>に所定のIDを代入して、コマンドを生成する。
次に、テナントインスタンス管理情報533について説明する。テナントインスタンス管理情報533には、テナントインスタンスのノードに関する情報を管理するテナントインスタンス(ノード)情報5331、テナントインスタンスのサブネットに関する情報を管理するテナントインスタンス(サブネット)情報5332、及びテナントインスタンスのノードと物理装置との間のマッピングに関する情報を管理するテナントインスタンス(マッピング)情報5333を含む。以下、それぞれ情報について説明する。
図15は、本発明の実施例1のテナントインスタンス(ノード)情報5331の一例を示す説明図である。
テナントインスタンス(ノード)情報5331は、テナントインスタンスID53311、ノード53312、ノードインスタンス53313、設定項目53314、パラメータ53315、及びパラメータ値53316を含む。
テナントインスタンスID53311は、各テナントのインスタンスを一意に識別するための識別子である。ノード53312は、テナントパターンにおいて規定されるノードを識別するための情報である。
ノードインスタンス53313は、テナントインスタンスにおけるノードを識別するための情報である。テナントパターンにおいて、多重度が設定されたVMの場合、一つのノードに対して、複数のノードインスタンスが生成される。
図15に示す例では、ノード53312が「VM1」は、テナントパターン情報528において多重度52803が「3」と設定したため、三つのノードインスタンス53332「tVM1−1」、「tVM1−2」、「tVM1−3」が生成される。
設定項目53314は、テナントインスタンスにおける各ノードの設定項目である。パラメータ53315は、設定項目に含まれるパラメータの識別名である。パラメータ値53316は、テナントの設計時に選択されたパラメータの値である。
図16は、本発明の実施例1のテナントインスタンス(サブネット)情報5332の一例を示す説明図である。
テナントインスタンス(サブネット)情報5332は、テナントインスタンスID53321、サブネットID53322、VLAN ID53323、所属ノード53324、及びネットワークアドレス53325を含む。
テナントインスタンスID53321は、テナントインスタンスを一意に識別するための識別子である。サブネットID53322は、テナントインスタンス内のサブネットを一意に識別するための識別子である。
VLAN ID53323は、当該サブネットに割り当てられたVLAN IDである。所属ノード53324は、当該サブネットに所属するノードの情報である。ネットワークアドレス53325は、当該サブネットに割り当てられたネットワークアドレスである。
図17は、本発明の実施例1のテナントインスタンス(マッピング)情報5333の一例を示す説明図である。
テナントインスタンス(マッピング)情報5333は、テナントインスタンスID53331、ノードインスタンス53332、及び対応物理装置53333を含む。
テナントインスタンスID53331は、テナントインスタンスを識別するための識別子である。ノードインスタンス53332は、マッピング元のノード、すなわち、テナントインスタンスにおけるノードを識別するための情報である。
対応物理装置53333は、マッピング先の物理装置を識別するための情報である。なお、ノードインスタンスがVMの場合、当該VMの対応物理装置53333には、仮のVM、当該VMを接続する仮想SW、及び当該仮想SWを含む物理サーバの情報が格納される。これは、ネットワークの設計時には、物理サーバ200上にVMがデプロイされていない場合があるためである。
図18は、本発明の実施例1の物理構成情報536の一例を示す説明図である。
物理構成情報536は、装置5361、機種5362、管理IPアドレス5363、及びTelnetアカウント5364を含む。
装置5361は、ネットワークシステム内で装置を一意に識別するための識別子である。機種5362は、物理装置の機種である。なお、仮想的な装置の場合、機種5362には情報が格納されない。
管理IPアドレス5363は、当該装置から情報を収集し、また、装置に対する設定を行うためのアクセス先の管理用IPアドレス情報である。Telnetアカウント5364は、装置に対する設定を行う場合に使用される認証情報であるTelnetアカウント、及びパスワードに関する情報である。なお、Telnetではなく、SSH等を用いて物理装置にアクセスしてもよく、その場合は、SSHのアカウント情報が保持されることとなる。
図19は、本発明の実施例1の設計設定タスク情報537の一例を示す説明図である。
設計設定タスク情報537は、ID5371、設計日時5372、設計内容5373、使用テナントパターン5374、テナントインスタンスID5375、及び設定内容5376を含む。
ID5371は、設計設定タスクを一意に識別するための識別子である。
設計日時5372は、当該設計設定タスクの実行によってテナントの設計が完了した日時である。設計内容5373は、当該設計設定タスクの実行によって生成されたテナントの設計内容である。
使用テナントパターン5374は、当該設計設定タスクの実行時に使用されたテナントパターンを識別するための情報である。使用テナントパターン5374には、テナントパターンの識別子が格納される。
テナントインスタンスID5375は、当該設計設定タスクの実行によって生成されたテナントインスタンスを一意に識別するための情報である。設定内容5376は、当該設計設定タスクの実行によって生成されたテナントの設定内容である。
次に、各情報を設定するためのユーザインタフェースについて説明する。
図20は、本発明の実施例1における検証ルール生成用のユーザインタフェースの一例を示す説明図である。図21Aは、本発明の実施例1におけるテナントパターン生成用のユーザインタフェースの一例を示す説明図である。図21Bは、本発明の実施例1における検証結果を表示するユーザインタフェースの一例を示す説明図である。図22は、本発明の実施例1におけるテナントの設計設定用のユーザインタフェースの一例を示す説明図である。
図20に示す情報入力画面1000は、ネットワークSEが検証ルール「インスタンス数の上限」を生成する場合に用いられる。なお、情報入力画面1000は、SE用端末700の出力装置に表示された画面イメージである。
情報入力画面1000は、検証機情報入力領域1001、検証シナリオ入力領域1002、及び実行ボタン1004を含む。
検証機情報入力領域1001は、検証機150の情報を入力するための領域である。検証機150の情報としては、例えば、管理IPアドレス、機種、アカウント名、及びパスワードである。
検証シナリオ入力領域1002は、検証シナリオの内容を入力するための領域である。検証シナリオの内容としては、対象設定項目、及び性能要件である。なお、性能要件は複数入力できるため、検証シナリオ入力領域1002には、性能要件追加ボタン1003が含まれる。ネットワークSEは、性能要件追加ボタン1003を操作することによって、必要な数だけ性能要件を追加することができる。
実行ボタン1004は、検証機情報入力領域1001及び検証シナリオ入力領域1002に入力された情報に基づいて、検証ルール「インスタンス数の上限」の生成を指示するための操作ボタンである。
本実施例では、ネットワークSEが実行ボタン1004を操作すると、検証機に対して対象設定項目が設定され、入力された性能要件に対応する性能要件確認用シナリオ521を用いて、性能が確認される。検証ルールの詳細な生成方法については、図25Aを用いて後述する。
実行ボタン1004が操作されると、ネットワークSEに対して検証ルール確認画面1010が表示される。ネットワークSEは、検証ルール確認画面1010を参照して、検証ルールの設定を確認できる。図20に示す例では、性能要件「CPU負荷50%以下」におけるVRFのインスタンス数の上限値が「50」となっていることが分かる。
ネットワークSEがキャンセルボタン1012を操作すると、検証ルールの生成が中止される。一方、ネットワークSEがOKボタン1011を操作すると、表示された内容の検証ルール「インスタンス数の上限」が生成され、検証ルール情報5251に生成された検証ルール「インスタンス数の上限」に関する情報が追加される。
図20では検証機150を用いて検証ルールを生成する場合のユーザインタフェースを示したが、「既存テナントパターンに基づく生成」、及び「マニュアルに基づく生成」等の他の生成方法の種類の場合も同様の情報入力画面及び検証ルール確認画面が提供される。
図21Aに示すテナントパターン生成画面1100は、ネットワークSEが、パターンパーツを用いてテナントパターンを生成する場合に用いられる。なお、テナントパターン生成画面1100は、SE用端末700の出力装置に表示された画面イメージである。
図21Aに示すように、テナントパターン生成画面1100の左ペイン1101には、管理サーバ500に格納されるパターンパーツの一覧が表示される。また、テナントパターン生成画面1100の右ペイン1102には、生成中のテナントパターンが表示され、ノード、及びノードの設定項目が表示される。
パターンパーツをテナントパターンに追加する場合、ネットワークSEは、右ペイン1102、又は右ペイン1102に表示されたノード上に、左ペイン1101に表示されたパターンパーツをドラッグアンドドロップすることによって、それぞれ、ノードが追加され、又はノードへの設定項目が追加される。
例えば、ネットワークSEが、左ペイン1101のノードパーツの「VM(内部サーバ)」を右ペイン1102にドラッグアンドドロップした場合、右ペイン1102の一番下に表示されるようなノードが追加される。また、ネットワークSEが、左ペイン1101の設定項目パーツの「FWポリシ(任意)」を、右ペイン1102の「ノード:外部FW」上にドラッグアンドドロップした場合、「ノード:外部FW」内にFWポリシのエントリが追加される。
右ペイン1102の上部に検証処理に関連する入力領域1103がある。ネットワークSEが、当該入力領域1103のチェックボックス1104にチェックを入れおくと、管理サーバ500がテナントパターンを編集する度に関連する検証処理を実行する。また、チェックボックス1104のチェックが外された状態の場合、ネットワークSEが検証実行ボタン1105を操作すると、管理サーバ500によって検証処理が実行される。
管理サーバ500が検証処理を実行し、当該検証処理の結果、不正であると判定された場合、図21Bに示すような、不正を示す検証結果を通知するダイアログ1110が表示される。当該ダイアログ1110には、ネットワークSEに対して、テナントパターンにおける不正を示す検証結果、及び修正案が提示される。
前述したように、ネットワークSEは、パターンパーツを利用することによってテナントパターンを容易に生成することができ、さらに、生成されたテナントパターンの内容を検証することによって、生成されたテナントパターンの誤りを確認することができる。
図22に示すテナント設計設定画面1200は、テナント管理者が新たに追加するテナントを設計する場合に用いられる。なお、テナント設計設定画面1200は、テナント管理者用端末900の出力装置に表示された画面イメージである。
テナント設計設定画面1200は、テナントパターン選択領域1201、及びユーザ指定領域1202を含む。
テナント管理者は、追加するテナントを設計するためにテナントパターン選択領域1201に表示されたテナントパターンから所定のテナントパターンを選択する。図22に示す例では、テナントパターン選択領域1201には、テナントパターンがプルダウンで表示される。
特別な要件がない場合、テナント管理者は、テナントパターン選択領域1201のみを選択すればよく、ネットワークに関する詳細な内容を考慮することなくテナントの設計設定が行える。このように、テナント管理者が、ネットワークの詳しい知識を有さない場合であっても、誤りのないネットワークの設計設定を行うことができる。
一方、選択されたテナントパターンが、決定方法が「ユーザ指定」と規定されたパラメータを含む場合、又はノードに対する多重度が設定されている場合には、ユーザ指定領域1202が表示される。
ユーザ指定領域1202において、パラメータ値が入力され、当該パラメータに検証ルール「パラメータ値の範囲」が適用されている場合、管理サーバ500は、入力されたパラメータ値に対して検証処理を実行する。検証処理の詳細については、図30Aを用いて後述する。
なお、図30Aの説明では、実行ボタン1203が操作された後に、一括して検証ルール「パラメータ値の範囲」について検証が行われる処理となっているが、ステップS601からステップS606の処理は、パラメータ値が入力された時点で実行されてもよい。
検証処理の結果、不正であると判定された場合、入力値不正通知画面1210が表示される。入力値不正通知画面1210には、入力可能なパラメータ値の範囲が提示される。
実行ボタン1203が操作された後、検証ルール「インスタンス数の上限」及び検証ルール「必要構成」について検証が行われる。検証処理の詳細については、図30Bを用いて後述する。
検証処理の結果、不正であると判定された場合、テナント管理者及びDC管理者に対して、不正通知画面1220、1230が表示される。
テナント管理者は、インスタンス数の上限値における不正への対応はできないため、DC管理者が当該不正に対応する必要がある。したがって、テナント管理者とDC管理者とには、それぞれ異なる内容の情報が通知される。また、インスタンス数の上限値に達する前に、例えば、所定のノードのインスタンス数がインスタンス数の上限値に近くなった時点において、管理サーバ500は、DC管理者にインスタンス数がインスタンス数の上限値に近くない旨を通知してもよい。
図23は、本発明の実施例1のネットワークシステムにおけるパターンパーツ及び検証ルール生成処理、及びテナントパターン生成処理の流れを説明するシーケンス図である。図24は、本発明の実施例1のパターンパーツ及び検証ルール生成処理、及びテナントパターン生成処理の実行時に、装置間において送受信されるメッセージの一例を示す説明図である。
ステップS101からステップS105の処理は、パターンパーツ及び検証ルール生成フェーズにおける処理である。
まず、SE用端末700は、管理サーバ500にパターンパーツ及び検証ルール生成を要求する(ステップS101)。
管理サーバ500は、生成要求を受け付けると、当該生成要求に含まれるパターンパーツ及び検証ルールの生成方法の種類に基づいて、パターンパーツ及び検証ルール生成処理を実行する(ステップS102)。パターンパーツ及び検証ルールの生成処理については、図25Aを用いて後述する。
このとき、パターンパーツ及び検証ルールの生成方法の種類が「検証機に基づく生成」である場合、管理サーバ500は、検証機150に対して、検証ルール生成用の制御メッセージを送信する(ステップS103)。制御メッセージは、図3に記載した性能確認用コマンド等が含まれる。検証機150は、管理サーバ500に制御メッセージに対する制御結果である文字列を返す(ステップS104)。
管理サーバ500は、SE用端末700に、ステップS102の生成処理の処理結果を送信する(ステップS105)。当該処理結果には、生成されたパターンパーツ、及び検証ルールが含まれる。
ステップS101からステップS105の処理は、生成されるパターンパーツ又は検証ルール数だけ繰り返し実行される。
ステップS106からステップS112の処理は、新規テナントパターンの生成フェーズにおける処理である。
まず、SE用端末700は、管理サーバ500に物理装置情報を入力する(ステップS106)。物理装置情報は、図18に示す内容の情報であり、NW装置100の設定に必要な情報である。
管理サーバ500は、受信した物理装置情報に基づいて、物理構成情報536を更新する(ステップS107)。具体的には、受信した物理装置情報が、物理構成情報536に格納される。
管理サーバ500は、物理構成情報536への更新処理の結果をSE用端末700に送信する(ステップS108)。
SE用端末700は、管理サーバ500に、新規テナントパターンの生成、又はテナントパターンの編集を要求する(ステップS109)。当該要求には、テナントパターンの生成又は編集時に利用されるパターンパーツ、検証ルール「インスタンス数の上限」における具体的なインスタンス数の上限値を決定するための性能要件、及びテナントパターンを生成に必要な情報が含まれる。
管理サーバ500は、要求された内容に基づいて、テナントパターンを生成する(ステップS110)。テナントパターンの生成処理の詳細については、図26を用いて後述する。
管理サーバ500は、テナントパターンを生成した後、又はテナントパターンを編集した後に、テナントパターンの検証処理を実行する(ステップS111)。テナントパターンの検証処理の詳細については、図27A、図27B、及び図27Cを用いて後述する。
管理サーバ500は、SE用端末700に、テナントパターンの検証処理の処理結果を送信する(ステップS112)。当該処理結果には、テナントパターンの生成処理の結果、及びテナントパターンの検証処理の結果が含まれる。また、テナントの検証処理の結果には、「不正」と判定された箇所、及び当該箇所における修正提案が含まれる。
ステップS109からステップS112までの処理は、テナントパターンの編集が終了するまで、又は、不正と判定される箇所がなくなるまで繰り返し実行される。
図24に示すメッセージは、ステップS101からステップS112において送受信されるメッセージの送信元、送信先及び内容をそれぞれ示す。
図25A、図25B、及び図25Cは、本発明の実施例1のパターンパーツ及び検証ルール生成処理を説明するフローチャートである。
このフローチャートは、図23のステップS102において実行されるパターンパーツ及び検証ルール生成処理の一例を示す。
管理サーバ500は、SE用端末700から受け付けた生成要求に含まれる生成方法の種類を判定する(ステップS201)。
生成方法の種類が「検証機に基づく生成」であると判定された場合、図25Bに示すような処理が実行される。生成方法の種類が「マニュアルに基づく生成」であると判定された場合、図25Cに示すような処理が実行される。
なお、図24に示すように、生成方法の種類毎に生成要求に含まれる情報が異なる。「既存テナントパターンに基づく生成」である場合、生成要求にはパターンパーツ化対象のノード又は設定項目の一覧が含まれる。生成方法が「検証機に基づく生成」である場合、生成要求には検証機の機種、前提設定項目の一覧、検証対象の設定項目、及び性能要件が含まれる。ここで、性能要件は、図8の性能要件52522に示すような情報である。また、生成方法が「マニュアルに基づく生成」である場合、生成要求には生成する検証ルールの種類、設定項目の種類、抽出文字列ID、及びマニュアルの情報が含まれる。
生成方法の種類が「既存テナントパターンに基づく生成」であると判定された場合、管理サーバ500は、パターンパーツ化対象のノード又は設定項目を選択する(ステップS202)。
具体的には、管理サーバ500は、生成要求に含まれるパターンパーツ化対象のノード又は設定項目の一覧を参照し、当該一覧から、パターンパーツ化対象のノード又は設定項目を選択する。
管理サーバ500は、選択されたノード又は設定項目内に含まれるパラメータを選択する(ステップS203)。
具体的には、管理サーバ500は、テナントパターン情報528を参照し、選択されたノード又は設定項目に対応するエントリのパラメータ52809の中から、パラメータを一つ選択する。
管理サーバ500は、選択されたパラメータの決定方法を判定する(ステップS204)。
具体的には、管理サーバ500は、選択されたパラメータ52809に対応する決定方法52810を参照して、選択されたパラメータの決定方法を判定する。ここでは、パラメータの決定方法が、「参照」、「プール」、又は、「参照」及び「プール」以外の決定方法の何れであるかが判定される。
決定方法が「参照」及び「プール」以外の決定方法であると判定された場合、管理サーバ500は、ステップS208に進む。
決定方法が「プール」であると判定された場合、管理サーバ500は、「プール(テナントパターンの生成時に利用プールを指定)」を生成し(ステップS207)、ステップS208に進む。
当該処理によって、例えば、図5のパラメータID52306が「パラメータ101」のエントリの決定方法52308のような決定方法が生成される。
決定方法が「参照」であると判定された場合、管理サーバ500は、パターンパーツ化対象以外のノード又は設定項目に含まれる他のパラメータを参照して、パラメータ値が決定されるか否かを判定する(ステップS205)。
例えば、図10のノード52802が「FW1」のパラメータ52809が「宛先」の場合、FW1とは異なるサブネット3のネットワークアドレスを参照している。したがって、管理サーバ500は、パターンパーツ化対象以外のノード又は設定項目に含まれる他のパラメータを参照して、パラメータの値が決定されると判定する。
ステップS205の条件を満たさないと判定された場合、管理サーバ500は、ステップS208に進む。
ステップS205の条件を満たすと判定された場合、管理サーバ500は、検証ルール情報5251に、検証ルール「値の関連性」に対応するエントリを生成し(ステップS206)、ステップS208に進む。
具体的には、管理サーバ500は、生成されたエントリの検証対象52514にステップS203において選択されたパラメータの識別子を設定し、検証ルール内容52513の「関連先」に、参照先のパラメータのパラメータ種別タグ52811を設定する。
管理サーバ500は、選択されたノード又は設定項目に含まれる全てのパラメータについて処理が完了したか否かを判定する(ステップS208)。
全てのパラメータについて処理が完了していないと判定された場合、管理サーバ500は、ステップS203に戻る。
全てのパラメータについて処理が完了したと判定された場合、パーツ化対象として選択されたノード又は設定項目を一つのパターンパーツとして生成し(ステップS209)、処理を終了する。
具体的には、管理サーバ500は、パターンパーツ(設定項目)情報523に、新たなエントリを生成し、当該エントリに必要な情報を格納する。なお、生成されたエントリには、テナントパターン情報528の選択されたノード又は設定項目に対応するエントリの情報が格納される。
ステップS201において、生成方法が「検証機に基づく生成」であると判定された場合、管理サーバ500は、前提設定項目の組合せを選択する(ステップS210)。
具体的には、管理サーバ500は、生成要求に含まれる前提設定項目の一覧を参照して、前提設定項目の組合せを選択する。なお、前提設定項目の組合せには、少なくとも一つの前提設定項目が含まれるものとする。また、前提設定項目の一覧に含まれる前提設定項目が一つのみの場合、当該前提設定項目のみを含む組合せが選択されるものとする。
管理サーバ500は、選択された前提設定項目の組合せを検証機150に設定する(ステップS211)。
具体的には、管理サーバ500は、生成要求に含まれる検証機の機種に基づいて、検証処理に用いる検証機150を特定する。さらに、管理サーバ500は、特定された検証機150に、選択された前提設定項目の組合せを設定する。
管理サーバ500は、インスタンス数の上限値を「0」に設定し(ステップS212)、生成要求に含まれる性能要件に基づいて性能要件確認用シナリオを選択する(ステップS213)。
具体的には、管理サーバ500は、生成要求に含まれる性能要件の種別が、性能要件確認用シナリオ521の性能要件5212と一致するエントリを検索する。
管理サーバ500は、生成要求に含まれる性能要件から対象の性能要件を選択し(ステップS214)、また、検証対象の設定項目を検証機150に設定する(ステップS215)。
管理サーバ500は、選択された性能要件確認用シナリオを用いて、検証機150から性能値を取得する(ステップS216)。
管理サーバ500は、取得された性能値が生成要求に含まれる性能要件の値より大きいか否かを判定する(ステップS217)。
取得された性能値が生成要求に含まれる性能要件の値以下であると判定された場合、管理サーバ500は、上限値を1インクリメントし(ステップS218)、ステップS215に戻る。
取得された性能値が生成要求に含まれる性能要件の値より大きいと判定された場合、管理サーバ500は、前提設定項目の組合せ、及び現在のインスタンス数の上限値に基づいて、検証ルール「インスタンス数の上限」を生成する(ステップS219)。具体的には、以下のような処理が実行される。
管理サーバ500は、検証ルール情報5251及び検証ルール内容(上限値)情報5252に、それぞれ、新たなエントリを生成する。
管理サーバ500は、検証ルールID52511に所定の識別子を格納し、また、検証ルール種類52512に「インスタンス数の上限」を格納する。管理サーバ500は、検証ルール内容52513に設定項目に上限値がある旨の情報を格納し、検証対象52514に設定項目の識別子を格納する。なお、設定項目の識別子は、管理サーバ500によって自動的に付与されるものとする。管理サーバ500は、機種52516に生成要求の含まれる検証機の機種を格納し、値52517に選択された前提設定項目の組み合わせ及びインスタンス数の上限値を格納する。
なお、すでに対応するエントリが生成されている場合には、管理サーバ500は、当該エントリの値52517に新たな情報を追加する。
さらに、管理サーバ500は、検証ルールID52521に検証ルールID52511と同一の識別子を格納し、性能要件52522に生成要求に含まれる性能要件を格納する。管理サーバ500は、前提ID52523に所定の識別子を格納する。管理サーバ500は、前提設定項目52524、52525に、選択された前提設定項目の組合せの具体的な内容を格納する。
以上がステップS218の処理の説明である。この処理によって、例えば、図7の検証ルールIDが「2」のような検証ルールが生成される。
次に、管理サーバ500は、選択された前提設定項目の組合せについて、全ての性能要件の処理が完了したか否か判定する(ステップS220)。
例えば、生成要求に含まれる性能要件が上限値1及び上限値2を対象とする場合、上限値1及び上限値2について処理が終了したか否かが判定される。上限値1のみしか処理が終了していない場合、管理サーバ500は、全ての性能要件の処理が完了していないと判定する。
選択された前提設定項目の組合せについて、全ての性能要件の処理が完了していないと判定された場合、管理サーバ500は、ステップS214に戻る。
選択された前提設定項目の組合せについて、全ての性能要件の処理が完了したと判定された場合は、管理サーバ500は、全ての前提設定項目の組合せについて処理が終了したか否かを判定する(ステップS221)。
全ての前提設定項目の組合せについて処理が完了していないと判定された場合、管理サーバ500は、ステップS210に戻る。全ての前提設定項目の組合せについて処理が完了したと判定された場合、管理サーバ500は、処理を終了する。
ステップS201において、生成方法が「マニュアルに基づく生成」であると判定された場合、管理サーバ500は、抽出用文字列情報522を用い、生成要求に含まれるマニュアルからパラメータ値の範囲、又はインスタンス数の上限値を抽出する(ステップS222)。このとき、当該マニュアルの対象となる機種等の情報も抽出される。なお、生成要求に含まれる検証ルールが検証ルール「パラメータ値の範囲」の場合、パラメータ値が抽出され、「インスタンス数の上限」の場合、インスタンス数の上限値が抽出される。
管理サーバ500は、生成要求に含まれる検証ルールの種類を判定する(ステップS223)。
生成要求に含まれる検証ルールの種類が検証ルール「パラメータ値の範囲」であると判定された場合、管理サーバ500は、抽出されたパラメータ値の範囲用いて、検証ルール「パラメータ値の範囲」を生成し(ステップS224)、処理を終了する。具体的には、以下のような処理が実行される。
管理サーバ500は、検証ルール情報5251に新たなエントリを生成し、当該エントリの検証ルールID52511に所定の識別子を格納し、検証ルール種類52512に「パラメータ値の範囲」を格納する。
管理サーバ500は、生成されたエントリの検証ルール内容52513に、抽出されたパラメータ値の範囲に関連する情報を格納する。管理サーバ500は、検証対象52514に生成要求に含まれる設定項目の識別子を格納する。
さらに、管理サーバ500は、機種52516にマニュアルから抽出された機種の情報を格納し、値52517に抽出されたパラメータ値の範囲を格納する。
以上がステップS224の処理である。この処理によって、例えば、図7の検証ルールIDが「1」のような検証ルールが生成される。
生成要求に含まれる検証ルールの種類が検証ルール「インスタンス数の上限」であると判定された場合、管理サーバ500は、抽出されたインスタンス数の上限値を用いて、検証ルール「インスタンス数の上限」を生成し(ステップS225)、処理を終了する。
ステップS225の処理は、ステップS224と同様の処理が実行される。なお、デバイス情報52515に格納される情報が異なる。
以上で説明したように、本発明では、パターンパーツ及び検証ルールを容易に生成することができる。また、後述するように、運用者は、パターンパーツ及び検証ルールを用いることによって、容易にテナントパターンを生成することができる。
図26は、本発明の実施例1のパターンパーツを用いたテナントパターン生成処理を説明するフローチャートである。
このフローチャートは、図23のステップS110において実行されるテナントパターン生成処理の一例を示す。
ネットワークSEがパターンパーツを選択する度に、テナントパターン生成処理が実行される。また、テナントパターン生成処理は、検証ルール「値の関連性」を用いて、ネットワークSEがパラメータ間の関連性を示す規定の生成を支援するための処理である。
管理サーバ500は、ネットワークSEによって選択されたパターンパーツをテナントパターンに追加する(ステップS301)。具体的には、以下のような処理が実行される。
管理サーバ500は、テナントパターン情報に新たなエントリを追加し、テナントパターンID52801に、パターンパーツを追加するテナントパターンの識別子を格納する。管理サーバ500は、パターンパーツ(設定項目)情報523を参照して、ネットワークSEによって選択されたパターンパーツに対応するエントリを取得する。管理サーバ500は、取得されたエントリの情報に基づいて、新たに追加されたエントリの各カラムに、必要な情報を格納する。
以上が、ステップS301の処理である。なお、ネットワークSEは、図21Aに示すようなユーザインタフェースを用いて、テナントパターンに対するパターンパーツの追加を要求する。
次に、管理サーバ500は、選択されたパターンパーツに検証ルール「値の関連性」が適用されているか否かを判定する(ステップS302)。具体的には、以下のような処理が実行される。
管理サーバ500は、ステップS301においてパターンパーツ(設定項目)情報523から取得されたエントリのパラメータID52306に基づいて検証ルール情報5251を参照する。
管理サーバ500は、検証対象52514に格納される値が、パラメータID52306と一致するエントリを検索する。管理サーバ500は、検索されたエントリの検証ルール種類52512が「値の関連性」であるか否かを判定する。
以上がステップS302の処理である。
選択されたパターンパーツに検証ルール「値の関連性」が適用されていないと判定された場合、管理サーバ500は、処理を終了する。
選択されたパターンパーツに検証ルール「値の関連性」が適用されていると判定された場合、管理サーバ500は、生成中のテナントパターンの中から、検証ルール内容52513に規定された「関連先」と同一のパラメータ種別タグのパラメータを抽出する(ステップS303)。
具体的には、管理サーバ500は、テナントパターン情報528を参照し、生成中のテナントパターンに対応するエントリの中から、パラメータ種別タグ52811が、検証ルール内容52513に規定された「関連先」のパラメータ種別タグと一致するエントリを検索する。
管理サーバ500は、ネットワークSEに対して、抽出されたパラメータの一覧を参照先候補として提示する(ステップS304)。ネットワークSEは、参照先候補として提示されたパラメータの一覧の中から参照先のパラメータを選択する。
管理サーバ500は、ネットワークSEによって選択されたパラメータを、検証ルールが適用される検証対象であるパラメータの参照先として設定し(ステップS305)、処理を終了する。
具体的には、管理サーバ500は、テナントパターンに追加されたエントリの決定方法52308に、「参照」及び選択されたパラメータの識別子を格納する。
図27A、図27B、及び図27Cは、本発明の実施例1のテナントパターン検証処理を説明するフローチャートである。
このフローチャートは、図23のステップS111において実行されるテナントパターン検証処理の一例を示す。図21Aのチェックボックス1104にチェックが入っている場合、又は、ネットワークSEが検証実行ボタン1105を操作した場合に、当該処理が実行される。このとき、管理サーバ500には、対象テナントパターンの識別子が入力される。
管理サーバ500は、検証ルール情報5251の中から検証ルールを選択する(ステップS401)。ここでは、上のエントリから順に選択されるものとする。なお、一度選択されたエントリは、選択対象から除かれる。
管理サーバ500は、選択された検証ルールが適用されるパターンパーツを特定する(ステップS402)。具体的には、以下のような処理が実行される。
管理サーバ500は、検証ルール情報5251を参照して、選択された検証ルールに対応するエントリの検証対象52514を取得する。管理サーバ500は、取得された検証対象52514に基づいて、テナントパターン情報528を参照して、パターンパーツを特定する。ここで、検証対象52514に格納される情報によって特定方法が以下のように異なる。
取得された検証対象52514がパターンパーツの識別子である場合、管理サーバ500は、テナントパターン情報528を参照して、テナントパターンID52801が対象テナントパターンの識別子に一致するエントリを特定する。管理サーバ500は、特定されたエントリの中から、パターンパーツID52807が取得された検証対象52514と一致するエントリを検索する。
取得された検証対象52514がパラメータの識別子である場合、管理サーバ500は、パターンパーツ(設定項目)情報523を参照して、パラメータID52306が取得された検証対象52514と一致するパラメータを含むパターンパーツを検索する。これによって、パターンパーツID52301が取得される。管理サーバ500は、テナントパターン情報528を参照して、テナントパターンID52801が対象テナントパターンの識別子に一致するエントリを特定する。管理サーバ500は、特定されたエントリの中から、パターンパーツID52807が取得されたパターンパーツID52301と一致するパターンパーツのエントリを検索する。
なお、検証ルール「パラメータ値の範囲」及び検証ルール「値の関連性」の場合、パラメータの識別子からパターンパーツが特定され、検証ルール「インスタンス数の上限」及び検証ルール「必要構成」の場合、パターンパーツの識別子からパターンパーツが特定される。検証ルール「設定順番」の場合、検証対象52514は空欄のためステップS402の処理は実行されない。
以上がステップS402の処理である。この処理によって、検証対象となる、パターンパーツ(ノード又は設定項目)が特定される。なお、特定されるパターンパーツが複数存在する場合、特定されたパターンパーツのリスト、例えば、パターンパーツID52807のリストが出力される。また、特定されるパターンパーツが存在しない場合、すなわち、検証ルールが対象テナントパターンに適用されない場合、空のリストが出力されるものとする。
次に、管理サーバ500は、選択された検証ルールの種類を判定する(ステップS403)。
具体的には、管理サーバ500は、選択された検証ルールに対応するエントリの検証ルール種類52512を参照して、選択された検証ルールの種類を判定する。
検証ルール「値の関連性」が選択された場合、図27Bに示す処理が実行される。検証ルール「設定順番」が選択された場合、図27Cに示す処理が実行される。検証ルール「必要構成」が選択された場合、管理サーバ500は、ステップS410に進む。
検証ルール「インスタンス数の上限」が選択された場合、管理サーバ500は、当該検証ルールにおいて規定された性能要件52522に基づいて、パターンパーツ(設定項目)のインスタンス数の上限値を決定し(ステップS409)、ステップS410に進む。決定されたパターンパーツ(設定項目)のインスタンス数の上限値は、テナントパターン情報528のインスタンス数上限値52808に格納される。
また、上限値を決定するための前提設定項目52524が規定されている場合、管理サーバ500は、検証対象のテナントパターン情報528の中に、前提設定項目52524に対応する設定項目52804が含まれているか否かを判定する。当該判定処理では、前提設定項目52524と同一の設定項目種別タグ52805がある場合に、テナントパターン情報528の中に、前提設定項目52524に対応する設定項目52804が含まれていると判定される。管理サーバ500は、含まれている前提設定項目の組み合わせに基づいて上限値を決定する。
なお、特定された検証対象(ノード又は設定項目)が複数ある場合、ステップS409の処理が繰り返し実行される。
検証ルール「パラメータ値の範囲」が選択された場合、管理サーバ500は、当該検証ルールの適用先が対象テナントパターンのパターンパーツ(ノード又は設定項目)であるか否かを判定する(ステップS404)。すなわち、選択された検証ルール「パラメータ値の範囲」が、対象テナントパターンに適用される検証ルールであるか否かが判定される。
具体的には、管理サーバ500は、ステップS402の出力結果が空のリストであるか否かを判定する。出力結果が空のリストの場合、管理サーバ500は、選択された検証ルール「パラメータ値の範囲」が、対象テナントパターンに適用される検証ルールでないと判定する。
選択された検証ルール「パラメータ値の範囲」が、対象テナントパターンに適用される検証ルールでないと判定された場合、管理サーバ500は、ステップS410に進む。
選択された検証ルール「パラメータ値の範囲」が、対象テナントパターンに適用される検証ルールであると判定された場合、管理サーバ500は、検証対象52514から特定されるパターンパーツのパラメータ値の範囲R1を算出する(ステップS405)。
具体的には、管理サーバ500は、ステップS402において特定されたパターンパーツのエントリの決定方法52810に基づいて、当該パターンパーツのパラメータ値の範囲を決定する。
例えば、図10Aのノード52802が「FW1」のパラメータ52809「ACL ID」の決定方法はプール4からの割り当てであるため、管理サーバ500は、パターンパーツ(プール)情報524を参照する。図6に示す例では、プール4は、10から10000の値を割り当て可能であるため、管理サーバ500は、当該パラメータ値の範囲R1を「10」から「10000」と算出する。
管理サーバ500は、設定対応物理装置の機種を特定し、特定された物理装置におけるパラメータ値の範囲R2を選択する(ステップS406)。具体的には、以下のような処理が実行される。
管理サーバ500は、テナントパターン情報528を参照して、ステップS402において特定されたパターンパーツを含むノード52802を取得する。管理サーバ500は、マッピング情報530を参照して、ノード5302が取得されたノード52802と一致するエントリを検索する。
管理サーバ500は、検索されたエントリの物理装置5303に基づいて、物理構成情報536を参照して、物理装置に対応するエントリを特定する。管理サーバ500は、特定されたエントリの機種5326に基づいて、検証ルール情報5251のデバイス情報52515を参照して、パラメータ値の範囲R2を選択する。
例えば、ノード5302が「FW1」の場合、図12に示すように物理装置5303は「FW1」が設定対象物理装置であり、図18に示すように装置5361が「FW1」の機種5362は「J1」である。したがって、管理サーバ500は、検証ルールID52511が「1」のエントリのデバイス情報52515のうち、機種52516が「J1」に対応する値52517を選択する。これによって、パラメータ値の範囲R2は「1」から「4000」となる。
管理サーバ500は、パラメータ値の範囲R1がパラメータ値の範囲R2の範囲内であるか否かを判定する(ステップS407)。
パラメータ値の範囲R1が、パラメータ値の範囲R2の範囲内であると判定された場合、管理サーバ500は、ステップS410に進む。これは、決定方法に基づいて算出されるパラメータ値が、検証ルールにおいて規定された値の範囲内に収まることが保証されるためである。
パラメータ値の範囲R1が、パラメータ値の範囲R2の範囲内でないと判定された場合、管理サーバ500は、ネットワークSEに対して、不正を示す検証結果及び修正案を通知し(ステップS408)、ステップS410に進む。これは、決定方法に基づいて算出されるパラメータ値が、検証ルールにおいて規定されたパラメータ値の範囲を超える可能性があるためである。したがって、管理サーバ500は、生成されるテナントパターンに不正がある旨を通知する。
ここで、通知される修正案としては、例えば、パラメータ値を決定する場合に用いられるIDプールの「最大ID」を、検証ルール情報5251に基づいて小さくする等の修正案が考えられる。
なお、前述した一例では、パラメータ値の範囲R1は「10」から「10000」であり、パラメータ値の範囲R2は「1」から「4000」であるため、不正を示す検証結果が出力される。
なお、特定された検証対象(ノード又は設定項目)が複数ある場合、ステップS405からステップS408の処理が繰り返し実行される。
管理サーバ500は、全ての検証ルールについて処理が完了したか否かを判定する(ステップS410)。
全ての検証ルールについて処理が完了していないと判定された場合、管理サーバ500は、ステップS401に戻る。全ての検証ルールについて処理が完了したと判定された場合、管理サーバ500は、処理を終了する。
ステップS403において、検証ルール「値の関連性」が選択された場合、管理サーバ500は、当該検証ルールの適用先が対象テナントパターンのパターンパーツ(ノード又は設定項目)であるか否かを判定する(ステップS411)。すなわち、選択された検証ルール「値の関連性」が、対象テナントパターンに適用される検証ルールであるか否かが判定される。ステップS411の処理は、ステップS404の処理と同一である。
選択された検証ルール「値の関連性」が、対象テナントパターンに適用される検証ルールでないと判定された場合、管理サーバ500は、ステップS410に進む。
選択された検証ルール「値の関連性」が、対象テナントパターンに適用される検証ルールであると判定された場合、管理サーバ500は、検証対象52514に対応するパラメータの決定方法52810において規定された参照先のパラメータのパラメータ種別タグ52811が検証ルール内容52513において規定された値と同一であるか否かを判定する(ステップS412)。具体的には、以下のような処理が実行される。
管理サーバ500は、検証対象52514に対応するパラメータの決定方法52810を参照して、検証対象であるパラメータが参照する他のパラメータの識別子を特定する。管理サーバ500は、パラメータ52809が特定されたパラメータの識別子と一致するエントリを検索する。
管理サーバ500は、検索されたエントリのパラメータ種別タグ52811が検証ルール内容52513に規定されたパラメータ種別タグと一致するか否かを判定する。
ここで、検証ルール内容52513に規定されるパラメータ種別タグは、例えば、図7の検証ルールID52511が「3」のエントリの検証ルール内容52513における「公開サーバIP」という情報である。
以上が、ステップS412の処理の説明である。
パラメータ種別タグが同一であると判定された場合、管理サーバ500は、ステップS410に進む。これは、正しい値の関連性が維持されているためである。なお、参照先のパラメータのパラメータ種別タグ52309に値が格納されていない場合、管理サーバ500は、検証ルールに基づく検証を行うことができないため、ステップS410に進む。
パラメータ種別タグが同一でないと判定された場合、管理サーバ500は、ネットワークSEに対して、不正を示す検証結果及び修正案を通知し(ステップS413)、ステップS410に進む。
例えば、管理サーバ500は、対象テナントパターンの中から、検証ルール情報5251に基づいて、パラメータ種別タグ52811が検証ルール内容52513に規定されたパラメータ種別タグと同一であるパラメータを抽出し、検証対象のパラメータが参照する先の候補を修正案として提示する。
なお、特定された検証対象(ノード又は設定項目)が複数ある場合、S411からS413の処理が繰り返し実行される。
ステップS403において、検証ルール「設定順番」が選択された場合、管理サーバ500は、対象テナントパターンから、検証ルール内容52513において規定された設定項目Aの設定項目種別タグが同一である設定項目を選択する(ステップS414)。
具体的には、管理サーバ500は、テナントパターン情報528を参照して、テナントパターンID52801が対象テナントパターンの識別子に一致するエントリを特定する。管理サーバ500は、特定されたエントリの中から、設定項目種別タグ52805が、検証ルール内容52513において規定された設定項目Aの設定項目種別タグと一致するエントリを検索する。
管理サーバ500は、ステップS414において検索された設定項目Aに対応する設定項目を含むノードのエントリから、検証ルール内容52513において規定された設定項目Bの設定項目種別タグが同一である設定項目を選択する(ステップS415)。
管理サーバ500は、選択された設定項目が存在するか否かを判定する(ステップS416)。具体的には、設定項目A及び設定項目Bがともに存在するか否かが判定される。
選択された設定項目が存在しないと判定された場合、管理サーバ500は、ステップS418に進む。
選択された設定項目が存在すると判定された場合、管理サーバ500は、ネットワークSEに対して、不正を示す検証結果及び修正案を通知し(ステップS417)、ステップS418に進む。
通知される修正案としては、例えば、検証ルール情報5251に基づいて、設定項目Bが設定された後に設定項目Aが設定される場合、テナントパターン内の設定項目の設定順番を変更する等が考えられる。
管理サーバ500は、検証ルール内容52513において規定された全ての設定項目Aについて処理が完了したか否かを判定する(ステップS418)。
全ての設定項目Aについて処理が完了していないと判定された場合、管理サーバ500は、ステップS414に戻る。全ての設定項目Aについて処理が完了したと判定された場合、管理サーバ500は、ステップS410に進む。
図27A、図27B、及び図27Cを用いて説明したように、ネットワークSEは、テナントパターン生成時に、パターンパーツを用いることによって容易にテナントパターンを生成できる。また、管理サーバ500は、生成されたテナントパターンに対して、検証処理を実行することによって、正しい構成のテナントパターンを容易に生成できる。これによって、テナント構築作業及び変更作業の効率化及び高品質化を実現できる。
図28は、本発明の実施例1のネットワークシステムにおけるテナントのネットワーク設計設定処理の流れを説明するシーケンス図である。図29は、本発明の実施例1のテナントネットワーク設計設定処理の実行時に、装置間において送受信されるメッセージの一例を説明する図である。
まず、テナント管理者用端末900は、管理サーバ500にテナントの追加を要求する(ステップS501)。テナントの追加要求には、少なくとも、使用されるテナントパターンの識別子が含まれる。なお、テナント管理者がユーザ入力値を指定した場合、テナントの追加要求には当該ユーザ入力値も含まれる。
なお、図28に示す例では、テナント管理者用端末900からテナントの追加要求が送信されているが、DC管理者用端末800から当該要求が送信されてもよい。この場合、ステップS506において受信する検証結果、及びステップS510において受信する処理結果は、DC管理者用端末800に送信される。
管理サーバ500は、テナントの追加要求を受け付けると、当該要求に含まれるテナントパターンの識別子に基づいてマッピング情報530を参照して、テナントパターン内のノードに対応する物理装置を特定する(ステップS502)。
具体的には、管理サーバ500は、マッピング情報530を参照して、テナントパターンID5301が追加要求に含まれるテナントパターンの識別子に一致するエントリを検索する。管理サーバ500は、検索されたエントリのノード5302及び物理装置5303を参照することによって、テナントパターン内のノードに対応する物理装置を特定する。
管理サーバ500は、ネットワークシステムのノードに対するパラメータ値を決定するためのパラメータ値決定処理、及び決定されたパラメータ値に基づく設定内容生成処理を実行する(ステップS503)。
また、管理サーバ500は、設定内容生成処理の実行中に、設定内容の検証処理を実行する。この時、管理サーバ500は、検証ルール「必要構成」に基づく検証処理を実行するために、NW装置100にアクセスする(ステップS504、ステップS505)。パラメータ値決定処理、及び設計内容生成処理の詳細については、図30A、30Bを用いて後述する。
管理サーバ500は、検証結果をテナント管理者用端末900に通知する(ステップS506)。当該検証結果には、検証処理の結果及び設計設定処理の結果が含まれる。
不正を示す検証結果が含まれなくなるまで、ステップS501からステップS506の処理が繰り返し実行される。例えば、テナント管理者は、不正を示す検証結果が出力された場合、テナントの設計時に入力するユーザ入力値を検証ルールにおいて規定されるパラメータ値の範囲内の値に変更する。
管理サーバ500は、不正を示す検証結果が出力されなくなった後、設定処理を開始し、NW装置100に設定要求を送信する(ステップS507)。
NW装置100は、設定要求を受信した後、ステップS503において生成された設定内容に基づいて、NW装置100自身の構成情報を更新し、管理サーバ500に設定結果を通知する(ステップS508)。
管理サーバ500は、全てのNW装置100から設定結果を受信した後、追加したテナントのテナントインスタンスを生成する(ステップS509)。このとき、管理サーバ500は、生成されたテナントインスタンスに関する情報を、テナントインスタンス管理情報533に格納する。その後、管理サーバ500は、設計設定タスク情報537の状態を更新する(ステップS510)。
管理サーバ500は、テナント管理者用端末900に、処理結果を通知する(ステップS511)。また、管理サーバ500は、ステップS503において実行された設定内容生成処理において検証ルール「インスタンス数の上限」に基づく検証処理の結果、現在のインスタンス数がインスタンス数の上限値より大きくなった場合、DC管理者にアラートを送信する(ステップS512)。
アラートの内容としては、例えば、現在のインスタンス数がインスタンス数の上限値より大きくなったため、NW装置100の増設等の提案が考えられる。また、管理サーバ500は、インスタンス数がインスタンス数の上限値に近くなった時に、NW装置100の増設等の提案をDC管理者に通知してもよい。
前述したように、管理サーバ500は、テナントのネットワークの設計設定時に、パラメータ値の範囲について検証を行い、当該検証結果から追加される設定項目に必要なNW設定の検証を行い、さらに、性能に応じたインスタンス数の上限値について検証を行う。これによって、ネットワーク設定の失敗を防止することができる。
図29に示すメッセージは、ステップS501からステップS512において送受信されるメッセージの送信元、送信先及び内容をそれぞれ示す。
図30A、及び図30Bは、本発明の実施例1のパラメータ値決定処理、及び設定内容生成処理を説明するフローチャートである。
このフローチャートは、図28のステップS503において実行されるパラメータ値決定処理、及び設定内容生成処理の一例を示す。
管理サーバ500は、テナントパターン情報528を参照して、テナントの追加時に使用されるテナントパターンに含まれるパラメータの中から、処理対象のパラメータを選択する(ステップS601)。なお、一度選択されたパラメータは、選択対象から除かれる。
管理サーバ500は、選択されたパラメータのエントリの決定方法52810に基づいて、当該パラメータのパラメータ値V1を決定する(ステップS602)。なお、パラメータ値の決定方法としては、図10A及び図10Bに示すように、「参照」、「プール」、「ユーザ指定」、及び「固定」がある。
管理サーバ500は、選択されたパラメータに対して検証ルール「パラメータ値の範囲」が適用されているか否かを判定する(ステップS603)。具体的には、以下のような処理が実行される。
管理サーバ500は、検証ルール情報5251を参照して、検証ルール種類52512が「パラメータ値の範囲」であるエントリを検索する。管理サーバ500は、検索されたエントリの検証対象52514からパラメータの識別子を取得する。
管理サーバ500は、パターンパーツ(設定項目)情報523を参照して、パラメータID52306が取得されたパラメータの識別子と一致するエントリを検索する。管理サーバ500は、検索されたエントリからパラメータ52307を取得し、選択されたパラメータとパラメータ52307とが一致するか否かを判定する。
選択されたパラメータとパラメータ52307とが一致する場合、管理サーバ500は、選択されたパラメータに対して検証ルール「パラメータ値の範囲」が適用されていると判定する。
以上が、ステップS603の処理である。
選択されたパラメータに対して検証ルール「パラメータ値の範囲」が適用されていないと判定された場合、管理サーバ500は、ステップS606に進む。
選択されたパラメータに対して検証ルール「パラメータ値の範囲」が適用されていると判定された場合、管理サーバ500は、決定されたパラメータ値V1が、検証ルール「パラメータ値の範囲」において規定されたパラメータ値の範囲内であるか否かを判定する(ステップS604)。具体的には、以下のような処理が実行される。
管理サーバ500は、テナントパターン情報528を参照して、選択されたパラメータを含むノードを特定する。管理サーバ500は、ステップS502において特定された物理装置の情報に基づいて、特定されたノードがマッピングされる物理装置を特定する。
管理サーバ500は、物理構成情報536の装置5361を参照して、特定された物理装置に対応するエントリを検索し、検索されたエントリの機種5362から物理装置の機種の情報を取得する。
管理サーバ500は、取得された物理装置の機種の情報に基づいて、検証ルール情報5251を参照して、検証ルール「パラメータ値の範囲」において規定されたパラメータ値の範囲を特定する。管理サーバ500は、決定されたパラメータ値V1が、特定されたパラメータ値の範囲内であるか否かを判定する。
以上がステップS604の処理である。
パラメータ値V1が、検証ルール「パラメータ値の範囲」において規定されたパラメータ値の範囲内でないと判定された場合、管理サーバ500は、テナント管理者に対して、不正を示す検証結果及び修正案を通知し(ステップS605)、ステップS606に進む。
通知される修正案では、例えば、設計時のユーザ入力値の範囲として、当該パラメータに適用されている検証ルール「パラメータ値の範囲」に規定されたパラメータ値の範囲が提示される。
パラメータ値V1が、検証ルール「パラメータ値の範囲」において規定されたパラメータ値の範囲内であると判定された場合、管理サーバ500は、ステップS606に進む。
管理サーバ500は、全てのパラメータの処理が完了したか否かを判定する(ステップS606)。
全てのパラメータの処理が完了していないと判定された場合、管理サーバ500は、ステップS601に戻る。
全てのパラメータの処理が完了していると判定された場合、管理サーバ500は、不正を示す検証結果が一つ以上あるか否かを判定する(ステップS607)。
不正を示す検証結果が一つ以上あると判定された場合、管理サーバ500は、処理を終了する。
不正を示す検証結果がないと判定された場合、管理サーバ500は、対象テナントパターンにおける設定項目を選択する(ステップS611)。なお、一度選択された設定項目は、選択対象から除かれる。
具体的には、管理サーバ500は、テナントパターン情報528の設定項目52804を参照して、処理対象の設定項目を選択する。
管理サーバ500は、選択された設定項目に検証ルールが適用されているかを判定する(ステップS612)。具体的には、以下のような処理が実行される。
管理サーバ500は、テナントパターン情報528を参照して、選択された設定項目52804に対応するエントリのパターンパーツID52807に識別子が格納されているか否かを判定する。
パターンパーツID52807に識別子が格納されていない場合、管理サーバ500は、選択された設定項目に検証ルールが適用されていないと判定する。
パターンパーツID52807に識別子が格納されている場合、管理サーバ500は、検証ルール情報5251を参照して、検証対象52514がパターンパーツID52807と一致するエントリを検索する。
検証対象52514がパターンパーツID52807と一致するエントリが存在しない場合、管理サーバ500は、選択された設定項目に検証ルールが適用されていないと判定する。一方、検証対象52514がパターンパーツID52807と一致するエントリが存在する場合、管理サーバ500は、選択された設定項目に検証ルールが適用されていると判定する。
以上がステップS612の処理の説明である。
選択された設定項目に検証ルールが適用されていないと判定された場合、管理サーバ500は、ステップS620に進む。
選択された設定項目に検証ルールが適用されていると判定された場合、管理サーバ500は、適用されている検証ルールの種類を判定する(ステップS613)。
適用されている検証ルールの種類が検証ルール「インスタンス数の上限」である場合、管理サーバ500は、現在のインスタンス数に「1」を加算した値Kが、選択された設定項目に対応するエントリのインスタンス数上限値52808に格納される値以下であるか否かを判定する(ステップS614)。
なお、インスタンス数上限値52808はステップS409において決定される。
値Kがインスタンス数上限値52808に格納される値以下であると判定された場合、管理サーバ500は、ステップS620に進む。
値Kがインスタンス数上限値52808に格納される値より大きいと判定された場合、管理サーバ500は、テナント管理者に対して、不正を示す検証結果を通知する(ステップS615)。
インスタンス数については、一つのテナントのみ管理するテナント管理者では対応できない場合が多いため、テナント管理者に対する通知内容には、インスタンス数の上限値を超えた旨、及び、「DC管理者に連絡してください」等の対策案が提示される。
管理サーバ500は、DC管理者に対して、不正を示す検証結果、及び修正案を通知し(ステップS616)、ステップS620に進む。通知される修正案としては、例えば、検証ルール情報5251に基づいて、機器の増設等の修正案が考えられる。
ステップS613において、適用される検証ルールの種類が検証ルール「必要構成」である場合、管理サーバ500は、必要構成が設定されているか否かを判定するために、NW装置に対して確認用コマンドを実行する(ステップS617)。具体的には、以下のような処理が実行される。
管理サーバ500は、ステップS612において検索された検証ルール情報5251のエントリの検証ルールID52511に基づいて検証ルール内容(必要構成)情報5253を参照し、当該検証ルールID52511に一致するエントリを検索する。
管理サーバ500は、検索されたエントリの確認用コマンド52533を取得し、テナントが構成されるネットワークシステムに含まれるNW装置に対して、確認用コマンドを実行する。
管理サーバ500は、NW装置から出力された確認用コマンドの実行結果に、応答文字列52534に一致する文字列が含まれるか否かを判定する(ステップS618)。
確認用コマンドの実行結果に、応答文字列52534に一致する文字列が含まれると判定された場合、管理サーバ500は、ステップS620に進む。
確認用コマンドの実行結果に、応答文字列52534に一致する文字列が含まれないと判定された場合、管理サーバ500は、DC管理者に対して、不正を示す検証結果、及び修正案を通知し(ステップS619)、ステップS620に進む。通知される修正案としては、前記検証ルール情報5251に基づいて、必要な設定項目の設定を喚起する情報の提示が考えられる。
管理サーバ500は、選択された設定項目の追加用コマンドテンプレートにパラメータを代入して、当該設定項目の設定内容を生成する(ステップS620)。具体的には、以下のような処理が実行される。
管理サーバ500は、選択された設定項目52804に対応するエントリのコマンドテンプレート52813から、追加用コマンドテンプレートの識別子を取得する。管理サーバ500は、コマンドテンプレート情報532を参照して、ID5321が取得された追加用コマンドテンプレートの識別子と一致するエントリを検索する。
管理サーバ500は、検索されたエントリのコマンドテンプレート5323から、追加用コマンドテンプレートを取得する。管理サーバ500は、取得された追加用コマンドテンプレートに、決定方法52810に基づいて決定されるパラメータを代入し、設定項目の設定内容を生成する。
以上がステップS620の処理の説明である。
管理サーバ500は、全ての設定項目の処理が完了したか否かを判定する(ステップS621)。
全ての設定項目の処理が完了していないと判定された場合、管理サーバ500は、ステップS611に戻る。
全ての設定項目の処理が完了したと判定された場合、管理サーバ500は処理を終了する。
以上のように、本発明によれば、NW装置及び物理計算機が接続されるネットワークシステムにおいて、テナントのネットワーク設計に用いるテナントのパターン及びテナントの設定内容の検証を行うことができる。
本発明によれば、運用者は、パターンパーツの利用することによって容易にテナントパターンを生成することができる。また、テナントパターンの生成時に検証ルールに基づく、テナントパターンの構成について検証が行われるため、運用者は正しい設定内容のテナントパターンを生成できる。したがって、DCの運用フェーズにおいて、正しいテナントパターンを用いて、テナントの設計をすることによって、設計及び設定の作業ミスを低減できる。
また、管理サーバ500がパターンパーツ及び検証ルールの生成を支援することによって、パターンパーツ及び検証ルールを容易に生成できる。さらに、パターンパーツ及び検証ルールを共有することによって、ネットワーク設計の効率化、高品質化が実現できる。
なお、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体(例えば、非一時的な記憶媒体)に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。本実施例では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
また、本実施例では、管理サーバ500が各種処理を実行するものとして説明したが、本発明はこれに限定されない。例えば、NW装置100及び物理サーバ200が、管理サーバ500が有する機能を備えていてもよい。この場合、複数のNW装置100及び複数の物理サーバ200に各機能部を分散して配置してもよい。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。