(57)【特許請求の範囲】
【請求項１】
各ユーザ端末を収容するユーザ収容スイッチに対して、前記ユーザ端末が利用するサービスを実行する、１つ以上のサービス提供サーバ上の仮想マシンへ向けての前記ユーザ端末からのパケットの経路情報を示すタグを設定するとともに、前記１つ以上のサービス提供サーバを収容するデータセンタスイッチに対して、前記タグに対応した前記パケットの転送ルールを示す転送ポリシを送信するタグ割当サーバであって、
１つの前記仮想マシン当たりに割当可能な前記サービス提供サーバのコア数の範囲、および、各サービスにおける前記サービス提供サーバの１コア当たりの収容ユーザ数が記憶される記憶手段を備え、
前記コア数の範囲を最小数から最大数まで変化させて、前記仮想マシンへ割り当てる割当コア数と、前記１コア当たりの収容ユーザ数とを乗算して、本来の収容ユーザ数を計算し、前記本来の収容ユーザ数を超えない範囲で、最も大きな２の冪数をみなし収容ユーザ数として算出し、前記本来の収容ユーザ数と前記みなし収容ユーザ数とを用いて前記コア数における収容効率を算出し、前記コア数の範囲を最小数から最大数まで変化させたうちで、前記収容効率の最も高いコア数を、前記サービスにおける仮想マシンへの割当コア数として決定するとともに、当該割当コア数における前記みなし収容ユーザ数を、１仮想マシン当たりの収容ユーザ数として決定し、
前記サービスそれぞれにおいて決定した前記１仮想マシン当たりの収容ユーザ数のうち、最も小さな収容ユーザ数である２の冪数を決定し、当該決定した２の冪数ごとに前記パケットが利用するサービスを実行する仮想マシンそれぞれの収容ユーザ数を制限して、前記仮想マシンの組合せである経路情報を前記ユーザ端末について順に設定することにより前記タグを生成し、
前記生成したタグを各ユーザ端末に対応付けたタグ付与情報を前記ユーザ収容スイッチに送信し、
前記生成したタグに対応した前記転送ルールを前記データセンタスイッチに送信すること
を特徴とするタグ割当サーバ。
【請求項２】
前記本来の収容ユーザ数を超えない範囲で、最も大きな２の冪数をみなし収容ユーザ数として算出する代わりに、
前記本来の収容ユーザ数を超えない範囲で、最も大きな、３以上の自然数のうちのいずれかの冪数をみなし収容ユーザ数として算出し、
前記サービスそれぞれにおいて決定した前記１仮想マシン当たりの収容ユーザ数のうち、最も小さな収容ユーザ数である前記３以上の自然数のうちのいずれかの冪数を決定し、当該決定した３以上の自然数のうちのいずれかの冪数ごとに前記パケットが利用するサービスを実行する仮想マシンそれぞれの収容ユーザ数を制限して、前記仮想マシンの組合せである経路情報を前記ユーザ端末について順に設定することにより前記タグを生成すること
を特徴とする請求項１に記載のタグ割当サーバ。
【請求項３】
各ユーザ端末を収容するユーザ収容スイッチに対して、前記ユーザ端末が利用するサービスを実行する、１つ以上のサービス提供サーバ上の仮想マシンへ向けての前記ユーザ端末からのパケットの経路情報を示すタグを設定するとともに、前記１つ以上のサービス提供サーバを収容するデータセンタスイッチに対して、前記タグに対応した前記パケットの転送ルールを示す転送ポリシを送信するタグ割当サーバのタグ割当方法であって、
前記タグ割当サーバは、
１つの前記仮想マシン当たりに割当可能な前記サービス提供サーバのコア数の範囲、および、各サービスにおける前記サービス提供サーバの１コア当たりの収容ユーザ数が記憶される記憶手段を備えており、
前記コア数の範囲を最小数から最大数まで変化させて、前記仮想マシンへ割り当てる割当コア数と、前記１コア当たりの収容ユーザ数とを乗算して、本来の収容ユーザ数を計算し、前記本来の収容ユーザ数を超えない範囲で、最も大きな２の冪数をみなし収容ユーザ数として算出し、前記本来の収容ユーザ数と前記みなし収容ユーザ数とを用いて前記コア数における収容効率を算出し、前記コア数の範囲を最小数から最大数まで変化させたうちで、前記収容効率の最も高いコア数を、前記サービスにおける仮想マシンへの割当コア数として決定するとともに、当該割当コア数における前記みなし収容ユーザ数を、１仮想マシン当たりの収容ユーザ数として決定するステップと、
前記サービスそれぞれにおいて決定した前記１仮想マシン当たりの収容ユーザ数のうち、最も小さな収容ユーザ数である２の冪数を決定し、当該決定した２の冪数ごとに前記パケットが利用するサービスを実行する仮想マシンそれぞれの収容ユーザ数を制限して、前記仮想マシンの組合せである経路情報を前記ユーザ端末について順に設定することにより前記タグを生成するステップと、
前記生成したタグを各ユーザ端末に対応付けたタグ付与情報を前記ユーザ収容スイッチに送信するステップと、
前記生成したタグに対応した前記転送ルールを前記データセンタスイッチに送信するステップと、
を実行することを特徴とするタグ割当方法。
【請求項４】
コンピュータに、請求項３に記載のタグ割当方法を実行させるためのタグ割当プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化されたネットワーク機能を経由するようにパケットの転送経路を制御するサービスチェイニングに適用する、タグ割当サーバ、タグ割当方法およびタグ割当プログラムに関する。
【背景技術】
【０００２】
専用のハードウェア装置で実現されてきたネットワーク機能、例えば、ファイアウォールやＷＡＮ高速化機能などを仮想化し、汎用サーバ上の仮想マシン（Virtual Machine）（以下、「ＶＭ」と記載することがある。）で動作させることが行われつつある。また、それらの仮想マシンで実現したネットワーク機能をユーザの要求に応じて選択的に提供するサービスチェイニングの実現が検討されている。
【０００３】
サービスチェイニングを実現する技術として、例えばOpenFlow（非特許文献１参照）がある。このOpenFlowの技術を用いることにより、ユーザ（ユーザ端末）の送信するＩＰパケットに適用する転送ポリシ（パケット転送ルール）をOpenFlow対応スイッチに設定することで、ユーザのＩＰパケットについて、任意の仮想マシンを経由させることができる。
【０００４】
しかしながら、OpenFlowでは、ユーザ毎の転送ポリシを、ユーザのパケットが経由するすべてのOpenFlow対応スイッチに設定する必要があり、通信キャリアのように大規模なユーザを収容する場合には転送ポリシの数が膨大となり、スケーラビリティに問題がある。
【０００５】
一方、スケーラビリティの問題を解決し得るサービスチェイニングの実現技術として、ＳＦＣ（Service Function Chaining）（非特許文献２参照）がある。ＳＦＣは、ＩＰパケットの転送ポリシを示すタグをネットワークの入り口でユーザのパケットに付与し、ユーザのパケットが経由する各スイッチにタグ毎の転送ポリシを設定する技術である。タグ数は、ユーザ数ではなく、ユーザに提供するネットワーク機能（以下、「サービス」と称する場合がある。）の組み合わせの数で抑えられるため、スケーラビリティが高い。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“OpenFlow Switch Specification Version 1.3.4”，March 27 2014，［online］，［平成27年1月30日検索］，インターネット＜ＵＲＬ：https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-switch-v1.3.4.pdf＞
【非特許文献２】“Service Function Chaining (SFC) Architecture draft-ietf-sfc-architecture-02”，September 20 2014，IETF，［online］，［平成27年1月30日検索］，インターネット＜ＵＲＬ：http://tools.ietf.org/pdf/draft-ietf-sfc-architecture-02.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＳＦＣでは別の問題として、負荷分散装置の問題がある。各サービスは、単一の仮想マシンで収容できるユーザ数に限りがあるため、複数の仮想マシンに分散してユーザを収容する必要がある。そのため、サービス毎に負荷分散装置を設置し、ユーザのトラフィックを振り分けることを行う。
【０００８】
例えば、図１３に示すように、ＳＦＣでは、サービス単位での経路を識別するタグ（サービスＡ→サービスＢ→サービスＣを経由することを示すタグ「Ａ→Ｂ→Ｃ」）をパケットに付与し、各スイッチ５がそのタグに基づきパケットを転送する。しかしながら、ＳＦＣの手法では、サービス毎にそのパケットを各仮想マシン６０に振り分ける（仮想）ロードバランサ（ｖＬＢ）７が必要となる。
【０００９】
つまり、負荷分散装置（ロードバランサ：ＬＢ）自体も、仮想化された一つのネットワーク機能（仮想ロードバランサ：ｖＬＢ）として汎用サーバ上で動作させることができるものの、サービス毎に負荷分散機能（ｖＬＢ）が必要となってしまう。そのため、汎用サーバの数が増加し、大きなコスト増の要因になるという問題がある。
【００１０】
ここで、ＳＦＣにおいて、サービス毎の負荷分散装置を不要とする手法として、サービス単位ではなく、サービスを構成する仮想マシン単位の転送ポリシを示すタグをパケットに付与する方法が考えられる。その場合は、例えば、仮想マシンを識別するタグとして、タグ「Ａ１→Ｂ４→Ｃ３」等が付与される。しかしながらこの手法では、単純にはタグ数が仮想マシンの組み合わせの数となってしまい、タグ数が膨大になるため、OpenFlowと同様にスケーラビリティの問題が生じてしまう。
【００１１】
このような背景に鑑みて本発明がなされたのであり、本発明は、大規模網においてサービスチェイニングを実現する際に、サービス単位で経路を識別するタグ数を抑制し、かつ、サービス毎の負荷分散装置の設置を不要にする、タグ割当サーバ、タグ割当方法およびタグ割当プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
前記した課題を解決するため、請求項１に記載の発明は、各ユーザ端末を収容するユーザ収容スイッチに対して、前記ユーザ端末が利用するサービスを実行する、１つ以上のサービス提供サーバ上の仮想マシンへ向けての前記ユーザ端末からのパケットの経路情報を示すタグを設定するとともに、前記１つ以上のサービス提供サーバを収容するデータセンタスイッチに対して、前記タグに対応した前記パケットの転送ルールを示す転送ポリシを送信するタグ割当サーバであって、１つの前記仮想マシン当たりに割当可能な前記サービス提供サーバのコア数の範囲、および、各サービスにおける前記サービス提供サーバの１コア当たりの収容ユーザ数が記憶される記憶手段を備え、前記コア数の範囲を最小数から最大数まで変化させて、前記仮想マシンへ割り当てる割当コア数と、前記１コア当たりの収容ユーザ数とを乗算して、本来の収容ユーザ数を計算し、前記本来の収容ユーザ数を超えない範囲で、最も大きな２の冪数をみなし収容ユーザ数として算出し、前記本来の収容ユーザ数と前記みなし収容ユーザ数とを用いて前記コア数における収容効率を算出し、前記コア数の範囲を最小数から最大数まで変化させたうちで、前記収容効率の最も高いコア数を、前記サービスにおける仮想マシンへの割当コア数として決定するとともに、当該割当コア数における前記みなし収容ユーザ数を、１仮想マシン当たりの収容ユーザ数として決定し、前記サービスそれぞれにおいて決定した前記１仮想マシン当たりの収容ユーザ数のうち、最も小さな収容ユーザ数である２の冪数を決定し、当該決定した２の冪数ごとに前記パケットが利用するサービスを実行する仮想マシンそれぞれの収容ユーザ数を制限して、前記仮想マシンの組合せである経路情報を前記ユーザ端末について順に設定することにより前記タグを生成し、前記生成したタグを各ユーザ端末に対応付けたタグ付与情報を前記ユーザ収容スイッチに送信し、前記生成したタグに対応した前記転送ルールを前記データセンタスイッチに送信することを特徴とするタグ割当サーバとした。
【００１３】
また、請求項３に記載の発明は、各ユーザ端末を収容するユーザ収容スイッチに対して、前記ユーザ端末が利用するサービスを実行する、１つ以上のサービス提供サーバ上の仮想マシンへ向けての前記ユーザ端末からのパケットの経路情報を示すタグを設定するとともに、前記１つ以上のサービス提供サーバを収容するデータセンタスイッチに対して、前記タグに対応した前記パケットの転送ルールを示す転送ポリシを送信するタグ割当サーバのタグ割当方法であって、前記タグ割当サーバが、１つの前記仮想マシン当たりに割当可能な前記サービス提供サーバのコア数の範囲、および、各サービスにおける前記サービス提供サーバの１コア当たりの収容ユーザ数が記憶される記憶手段を備えており、前記コア数の範囲を最小数から最大数まで変化させて、前記仮想マシンへ割り当てる割当コア数と、前記１コア当たりの収容ユーザ数とを乗算して、本来の収容ユーザ数を計算し、前記本来の収容ユーザ数を超えない範囲で、最も大きな２の冪数をみなし収容ユーザ数として算出し、前記本来の収容ユーザ数と前記みなし収容ユーザ数とを用いて前記コア数における収容効率を算出し、前記コア数の範囲を最小数から最大数まで変化させたうちで、前記収容効率の最も高いコア数を、前記サービスにおける仮想マシンへの割当コア数として決定するとともに、当該割当コア数における前記みなし収容ユーザ数を、１仮想マシン当たりの収容ユーザ数として決定するステップと、前記サービスそれぞれにおいて決定した前記１仮想マシン当たりの収容ユーザ数のうち、最も小さな収容ユーザ数である２の冪数を決定し、当該決定した２の冪数ごとに前記パケットが利用するサービスを実行する仮想マシンそれぞれの収容ユーザ数を制限して、前記仮想マシンの組合せである経路情報を前記ユーザ端末について順に設定することにより前記タグを生成するステップと、前記生成したタグを各ユーザ端末に対応付けたタグ付与情報を前記ユーザ収容スイッチに送信するステップと、前記生成したタグに対応した前記転送ルールを前記データセンタスイッチに送信するステップと、を実行することを特徴とするタグ割当方法とした。
【００１４】
このようにすることにより、タグ割当サーバは、各サービスにおける仮想マシンの割当コア数を決定し、その仮想マシンの収容ユーザ数を２の冪数以下に制限することができる。これにより、仮想マシンの組み合わせ数のパターン数を減少させることができるため、タグ数の増大を抑制することができる。さらに、タグ数を抑制することで、スケーラビリティの問題を発生することなく、サービス毎の負荷分散装置を不要とすることができる。
【００１５】
請求項２に記載の発明は、前記本来の収容ユーザ数を超えない範囲で、最も大きな２の冪数をみなし収容ユーザ数として算出する代わりに、前記本来の収容ユーザ数を超えない範囲で、最も大きな、３以上の自然数のうちのいずれかの冪数をみなし収容ユーザ数として算出し、前記サービスそれぞれにおいて決定した前記１仮想マシン当たりの収容ユーザ数のうち、最も小さな収容ユーザ数である前記３以上の自然数のうちのいずれかの冪数を決定し、当該決定した３以上の自然数のうちのいずれかの冪数ごとに前記パケットが利用するサービスを実行する仮想マシンそれぞれの収容ユーザ数を制限して、前記仮想マシンの組合せである経路情報を前記ユーザ端末について順に設定することにより前記タグを生成することを特徴とする請求項１に記載のタグ割当サーバとした。
【００１６】
このようにすることにより、タグ割当サーバは、仮想マシンの収容ユーザ数を３以上の自然数のうちのいずれかの冪数以下に制限することができる。これにより、タグ数の増大を抑制することができる。
【００１７】
請求項４に記載の発明は、コンピュータに、請求項３に記載のタグ割当方法を実行させるためのタグ割当プログラムとした。
【００１８】
このようにすることで、一般的なコンピュータに、請求項３に記載のタグ割当方法を実行させることができる。
【発明の効果】
【００１９】
本発明によれば、大規模網においてサービスチェイニングを実現する際に、サービス単位で経路を識別するタグ数を抑制し、かつ、サービス毎の負荷分散装置の設置を不要にする、タグ割当サーバ、タグ割当方法およびタグ割当プログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るタグ割当システムの構成の概要を説明するための図である。
【図２】本実施形態に係るＶＭ割当コア数決定処理を説明するための図である。
【図３】本実施形態に係るタグ割当サーバが設定するタグ情報について説明するための図である。
【図４】本実施形態に係るタグ割当システムの全体構成を示す図である。
【図５】本実施形態に係るタグ割当サーバの構成例を示す機能ブロック図である。
【図６】本実施形態に係るサービス収容情報テーブルのデータ構成例を示す図である。
【図７】本実施形態に係るＶＭ情報テーブルのデータ構成例を示す図である。
【図８】本実施形態に係るタグ情報テーブルのデータ構成例を示す図である。
【図９】本実施形態に係るタグ付与情報テーブルのデータ構成例を示す図である。
【図１０】本実施形態に係るサービス収容情報テーブルの作成処理を示すフローチャートである。
【図１１】本実施形態に係るタグ割当サーバが実行する、ユーザの追加削除に伴う、タグの割当・解除処理を示すシーケンス図である。
【図１２】本実施形態に係るタグ割当サーバが実行する、ＶＭの追加削除に伴うタグの追加削除処理を示すシーケンス図である。
【図１３】従来技術においてサービスチェイニングを実現するＳＦＣでのパケットの振り分け手法を説明するための図である。
【発明を実施するための形態】
【００２１】
＜本願発明の概要＞
まず、本実施形態に係るタグ割当サーバ１０を含むタグ割当システム１の構成と特徴について説明する。図１は、本実施形態に係るタグ割当システム１の構成の概要を説明するための図である。
本実施形態に係るタグ割当システム１は、前記した従来のサービスチェイニングに用いられる図１３に示したシステムと比べ、図１に示すように、サービス毎の負荷分散装置（ｖＬＢ）を設けていないことを特徴とする。
【００２２】
この構成を実現するため、タグ割当システム１が備えるタグ割当サーバ１０は、各サービスにおけるＶＭ６０に割り当てるコア数を、２の冪数（２Ｎ）（Ｎは正の整数）を超えない範囲で最も収容ユーザ数の収容効率が高いコア数に決定する（ステップＳ１：詳細は図２を参照して後記する。）。タグ割当サーバ１０は、各サービスのＶＭに割り当てるコア数をＶＭ管理サーバ３０に指示する（ステップＳ２）。そして、タグ割当サーバ１０は、ユーザ端末毎のサービスの経路情報であるタグ情報を設定し、タグ毎の転送ポリシ（タグ情報）を、各データセンタスイッチ５０に送信する（ステップＳ３）。また、タグ割当サーバ１０は、パケットに付与するユーザ（ユーザ端末）毎のタグを示すタグ付与情報を、ユーザ収容スイッチ４０に送信する（ステップＳ４）。ユーザ収容スイッチ４０は、ユーザ端末から送信されるパケットに、タグ付与情報で示されるタグを付与する（ステップＳ５）。そして、データセンタスイッチ５０は、転送ポリシ（タグ情報）に従って、そのパケットをサービス提供サーバ上のＶＭ６０に転送する（ステップＳ６）。
【００２３】
図２は、本実施形態に係るタグ割当サーバ１０が、各サービスにおけるＶＭ６０に割り当てるコア数を、２の冪数（２Ｎ）を超えない範囲で最も収容ユーザ数の収容効率が高いコア数に決定する処理（図１のステップＳ１。以下、「ＶＭ割当コア数決定処理」と称することがある。）を説明するための図である。
タグ割当サーバ１０は、ＶＭに割当可能なコア数の範囲（例えば、１〜８）のすべてについて、各サービスの１コア当たりの収容ユーザ数に基づき各コア数での収容可能ユーザ数（各コア数で収容可能な最大のユーザ数）を算出し、その算出した収容可能ユーザ数と、２の冪数で計算される収容ユーザ数（２Ｎ）とを用いて収容効率を計算する。そして、タグ割当サーバ１０は、収容効率が最も高いコア数を、そのサービスにおけるＶＭ６０に割り当てるコア数に決定する。
【００２４】
例えば、図２（ａ）に示すサービスＲは、ＶＭ割当コア数が「７」のとき、収容可能ユーザ数が「１０５０」、１ＶＭ当たりの収容ユーザ数（２Ｎ）が「１０２４（＝２１０）」であり、収容効率が「９７．５％」となる。ここで、図２（ｂ）に示すように、サービスＲにおいては、ＶＭの割当コア数が１〜８のうち「７」のときに、収容可能ユーザ数（１０５０）と１ＶＭ当たりの収容ユーザ数（２１０）とに基づき計算された収容効率が最も高くなるため、ＶＭの割当コア数として「７」が決定される。同様にして、図２（ａ）において、サービスＰにおいては、ＶＭ割当コア数が「５」に決定され、サービスＱにおいては、ＶＭ割当コア数が「８」に決定され、サービスＳにおいては、ＶＭ割当コア数が「５」に決定される。
このようにして、タグ割当サーバ１０は、各サービスにおけるＶＭ割当コア数を決定するとともに、１ＶＭ当たりの収容ユーザ数を２の冪数（２Ｎ）以下に制限した値に決定する。
【００２５】
次に、タグ割当サーバ１０が設定するタグ情報について、図３を参照して説明する。
図３（ａ）は、タグ割当サーバ１０が、図２に示したＶＭ割当コア数決定処理と同様の処理により、サービスＡ，Ｂ，Ｃ，Ｄについての１ＶＭ当たりの収容ユーザ数（２Ｎ）を算出した結果を示す。ここで、本実施形態に係るタグ割当サーバ１０は、各サービスにおいて、１ＶＭあたりの収容ユーザ数を２の冪数（２Ｎ）以下に制限して、タグを設定する。
【００２６】
例えば、図３（ａ）に示すように、サービスＡは、収容ユーザ数が２１２に決定される。サービスＢは、収容ユーザ数が２１１に決定される。サービスＣは、収容ユーザ数が２１０に決定される。また、サービスＤ、収容ユーザ数が２１０に決定される。このようにすることにより、図３（ｂ）に示すように、各サービスのＶＭの経路を示すタグを、収容ユーザ数が２１０までのユーザ端末には、タグ「A1_B1_C1_D1」を設定し、収容ユーザ数がその次の２１０までのユーザ端末には、タグ「A1_B1_C2_D2」を設定し、収容ユーザ数がその次の２１０までのユーザ端末には、タグ「A1_B2_C3_D3」を設定（それ以降も同様）する。
【００２７】
このようにすることにより、従来技術では、サービス毎の負荷分散装置を不要としＶＭ単位で経路を設定する場合、タグ数がＶＭの組み合わせの数になり膨大となってしまうのに比べ、本実施形態に係るタグ割当サーバ１０によれば、１ＶＭ当たりの収容ユーザ数を２の冪数（２Ｎ）以下に制限することにより、ＶＭの組み合わせのパターン数を減少でき、タグ数を抑制することが可能となる。
【００２８】
＜システム構成＞
次に、本実施形態に係るタグ割当システム１の全体構成について説明する。
図４は、本実施形態に係るタグ割当サーバ１０を含むタグ割当システム１の全体構成を示す図である。
図４に示すようにタグ割当システム１は、複数のユーザ端末４を収容し、ＩＰネットワーク２に接続されるユーザ収容スイッチ４０（４０ａ，４０ｂ）と、ＩＰネットワーク２に接続され、ユーザ端末４に対してサービスを提供するサービス提供サーバ６（６Ａ，６Ｂ，６Ｃ，…）を収容するデータセンタスイッチ５０（５０ａ，５０ｂ）と、ＩＰネットワーク２に接続されるタグ割当サーバ１０と、ユーザ情報更新端末２０と、ＶＭ管理サーバ３０とを含んで構成される。なお、ユーザ収容スイッチ４０およびデータセンタスイッチ５０は、図４に示すような、ユーザ収容スイッチ４０（４０ａ，４０ｂ）、データセンタスイッチ５０（５０ａ，５０ｂ）のそれぞれ２台に限定されず、１台以上であればよい。以下、各装置についてより詳細に説明する。
【００２９】
ユーザ端末４は、ユーザがネットワークサービスを利用するために使用する汎用な端末であり、例えば、ＰＣ（Personal Computer）等により構成される。
ユーザ収容スイッチ４０は、サービスチェイニングを実現するためのＳＦＣ等のプロトコルに対応した汎用なスイッチである。このユーザ収容スイッチ４０は、タグ割当サーバ１０から通知されるタグ付与情報に従って、ユーザ端末４から送信されるＩＰパケットにタグを付与する。
【００３０】
データセンタスイッチ５０は、ＳＦＣ等のプロトコルに対応した汎用なスイッチである。このデータセンタスイッチ５０は、タグ割当サーバ１０から通知されるタグ毎の転送ポリシ（タグ情報）に従って、タグが付されたＩＰパケットを適切なサービス提供サーバ６上のＶＭ６０に転送する。
【００３１】
サービス提供サーバ６は、汎用なサーバ装置であり、ＶＭ管理サーバ３０からの指示に従って、各サービス用のＶＭを実行する。
ＶＭ管理サーバ３０は、汎用なサーバ装置等により構成され、タグ割当サーバ１０からの指示に従って、サービス提供サーバ６に各サービス用のＶＭ６０の実行を指示する。
ユーザ情報更新端末２０は、ネットワークサービスの運用者がユーザ（ユーザ端末４）の追加や削除を行うための汎用な操作端末であり、例えば、ＰＣ等により構成される。
【００３２】
≪タグ割当サーバ≫
次に、タグ割当サーバ１０について詳細に説明する。
タグ割当サーバ１０は、各サービスに割り当てるコア数を決定しＶＭ管理サーバ３０に指示情報を送信する。そして、タグ割当サーバ１０は、ユーザ端末４毎のサービスの経路情報であるタグ情報を設定し、タグ毎の転送ポリシ（タグ情報）を各データセンタスイッチ５０に送信する。また、タグ割当サーバ１０は、パケットに付与するユーザ（ユーザ端末４）毎のタグを示すタグ付与情報を、ユーザ収容スイッチ４０に送信する。
さらに、タグ割当サーバ１０は、ＶＭの増減に伴ってタグの追加や削除を実行し、ユーザ（ユーザ端末４）に付与するタグを管理するとともに、ユーザ（ユーザ端末４）の追加削除に伴って、タグの割り当てを変更する処理を行う。
【００３３】
図５は、本実施形態に係るタグ割当サーバ１０の構成例を示す機能ブロック図である。タグ割当サーバ１０は、制御手段１１と、入出力手段１２と、記憶手段１３とを備える。
【００３４】
入出力手段１２は、ＩＰネットワーク２（図４参照）を介して、ユーザ情報更新端末２０、ＶＭ管理サーバ３０、ユーザ収容スイッチ４０およびデータセンタスイッチ５０等との間で、情報と送受信を行う通信インタフェースと、不図示のキーボード等の入力装置やモニタ等の出力装置との間で情報の入出力を行う入出力インタフェースとから構成される。
【００３５】
記憶手段１３は、ハードディスクやフラッシュメモリ、ＲＡＭ（Random Access Memory）等により構成され、サービス収容情報テーブル１００、ＶＭ情報テーブル２００、タグ情報テーブル３００およびタグ付与情報テーブル４００を格納する。なお、各テーブルに記憶される情報の詳細は後記する。
【００３６】
制御手段１１は、タグ割当サーバ１０全体の制御を司り、サービス収容情報作成手段１１１と、ＶＭ追加削除要求手段１１２と、ユーザ追加削除受付手段１１３と、タグ情報通知手段１１４と、タグ付与情報通知手段１１５とを含んで構成される。なお、この制御手段１１は、例えば、記憶手段１３に格納されたプログラム（タグ割当プログラム）をＣＰＵ（Central Processing Unit）がＲＡＭに展開し実行することで実現される。
【００３７】
サービス収容情報作成手段１１１は、１ＶＭに割当可能なコア数の範囲（例えば、１〜８）と、各サービスにおける１コア当たりの収容ユーザ数に基づき、各サービスにおける、１ＶＭ当たりの割当コア数と、１ＶＭ当たりの収容ユーザ数とを決定し、サービス収容情報テーブル１００（図６参照）に格納する。
【００３８】
図６は、本実施形態に係るサービス収容情報テーブル１００のデータ構成例を示す図である。
図６に示すように、サービス収容情報テーブル１００には、データ項目として、サービス名１１０、１コア当たりの収容ユーザ数１２０、ＶＭへの割当コア数１３０および１ＶＭ当たりの収容ユーザ数１４０の各情報が格納される。
サービス名１１０には、各サービス提供サーバ６が提供するサービスの識別情報が格納される。１コア当たりの収容ユーザ数１２０には、性能試験等で予め検出した各サービスの１コア当たりに収容できるユーザ数が格納される。ＶＭへの割当コア数１３０は、使用するサービス提供サーバ６の仕様から予め定められるＶＭに割当可能なコア数の範囲（例えば、１〜８）のうちから、サービス収容情報作成手段１１１により決定された最適なＶＭへの割当コア数の値が格納される。１ＶＭ当たりの収容ユーザ数１４０には、サービス収容情報作成手段１１１により決定された最適なＶＭへの割当コア数における収容可能なユーザ数を超えない範囲で最も大きな、２の冪数（２Ｎ）で表わされる１ＶＭ当たりに収容するユーザ数が格納される。
なお、このＶＭへの割当コア数１３０と１ＶＭ当たりの収容ユーザ数１４０は、サービス収容情報作成手段１１１による、サービス収容情報作成処理により決定されるものであり、その詳細は、図１０を参照して後記する。
【００３９】
図５に戻り、ＶＭ追加削除要求手段１１２は、ＶＭ情報テーブル２００（図７参照）におけるユーザ（ユーザ端末４）の収容状況（収容ユーザ数２４０）に基づいて、ＶＭ管理サーバ３０に対して、ＶＭの追加や削除を要求する。また、ＶＭ追加削除要求手段１１２は、ＶＭの追加や削除に応じて、ＶＭ情報テーブル２００およびタグ情報テーブル３００（図８参照）を更新し、追加または削除するタグ情報を、各データセンタスイッチ５０に送信する。
なお、このＶＭの追加や削除に伴う、タグの追加や削除の処理の詳細は、図１２を参照して後記する。
【００４０】
図７は、本実施形態に係るＶＭ情報テーブル２００のデータ構成例を示す図である。
図７に示すように、ＶＭ情報テーブル２００には、データ項目として、ＶＭ２１０、ＩＰアドレス２２０、最大収容可能ユーザ数２３０および収容ユーザ数２４０の各情報が格納される。
ＶＭ２１０には、サービス提供サーバ６に設けられるＶＭの識別情報が格納される。ＩＰアドレス２２０には、各ＶＭ２１０のＩＰアドレスが格納される。
【００４１】
最大収容可能ユーザ数２３０には、１ＶＭ当たりに収容可能なユーザ数の最大値が格納される。なお、この最大収容可能ユーザ数２３０は、図６に示したサービス収容情報テーブル１００で決定された１ＶＭ当たりの収容ユーザ数１４０の値、つまり、２の冪数（２Ｎ）のユーザ数が格納される。つまり、サービスＷ（Ｗ１〜Ｗ３）については、最大収容可能ユーザ数２３０として、５１２（＝２９）が格納される。サービスＸ（Ｘ１）については、最大収容可能ユーザ数２３０として、２０４８（＝２１１）が格納される。サービスＹ（Ｙ１）については、最大収容可能ユーザ数２３０として、４０９６（＝２１２）が格納される。そして、サービスＺ（Ｚ１〜Ｚ６）については、最大収容可能ユーザ数２３０として、２５６（＝２８）が格納される。
収容ユーザ数２４０には、実際にそのＶＭに収容されるユーザ（ユーザ端末４）数が格納される。
【００４２】
図５に戻り、ユーザ追加削除受付手段１１３は、ユーザ情報更新端末２０からユーザの追加要求や削除要求を受け付ける。そして、ユーザ追加削除受付手段１１３は、ユーザの追加要求に対しては、タグの割当を行い、削除要求に対しては、タグの解除を行う。また、ユーザ追加削除受付手段１１３は、タグの割当や解除に伴い、ＶＭ情報テーブル２００（図７参照）、タグ情報テーブル３００（図８参照）およびタグ付与情報テーブル４００（図９参照）を更新する。
なお、このユーザの追加や削除に伴う、タグの割当の変更処理の詳細は、図１１を参照して後記する。
【００４３】
図８は、本実施形態に係るタグ情報テーブル３００のデータ構成例を示す図である。
図８に示すように、タグ情報テーブル３００には、データ項目として、タグ３１０、最大割当可能ユーザ数３２０および割当ユーザ数３３０の各情報が格納される。
【００４４】
タグ３１０には、そのユーザ（ユーザ端末４）からのＩＰパケットが利用するサービスを実行するＶＭの経路情報が格納される。例えば、タグが「Z1_W1_X1_Y1」であれば、サービスＺを実行するＶＭ「Z1」→サービスＷを実行するＶＭ「W1」→サービスＸを実行するＶＭ「X1」→サービスＹを実行するＶＭ「Y1」の経路でＩＰパケットが転送されることを示している。
最大割当可能ユーザ数３２０は、タグ３１０に割当可能な最大のユーザ数が格納される。なお、図８に示す例では、１ＶＭ当たりの収容ユーザ数１４０（図６）が「２５６」であるサービス「Ｚ」をすべて経由するため、最大割当可能ユーザ数３２０は、すべて「２５６」となる。
割当ユーザ数３３０は、実際にそのタグ３１０に割り当てたユーザ（ユーザ端末４）の数が格納される。
【００４５】
図９は、本実施形態に係るタグ付与情報テーブル４００のデータ構成例を示す図である。
図９に示すように、タグ付与情報テーブル４００には、データ項目として、ユーザ４１０およびタグ４２０の各情報が格納される。
【００４６】
ユーザ４１０には、そのユーザ（ユーザ端末４）の識別情報が格納される。
また、タグ４２０には、そのユーザ（ユーザ端末４）に対応付けて、そのユーザが利用するサービスのタグに関する情報、つまり、そのユーザ（ユーザ端末４）からのＩＰパケットが利用するサービスを実行するＶＭの経路情報が格納される。
【００４７】
図５に戻り、タグ情報通知手段１１４は、ＶＭの追加や削除に伴って、ＶＭ情報テーブル２００（図７参照）およびタグ情報テーブル３００（図８参照）が更新された場合に、その更新結果に基づき、データセンタスイッチ５０に対して、タグ毎の転送ポリシの追加や削除を通知する。なお、詳細は、図１２を参照して後記する。
【００４８】
タグ付与情報通知手段１１５は、ユーザの追加や削除に伴って、タグ付与情報テーブル４００（図９参照）が更新された場合に、その更新結果に基づき、ユーザ収容スイッチ４０に対して、変更となったタグ付与情報を送信する。なお、ユーザ収容スイッチ４０は、受信したタグ付与情報に基づき、ユーザ端末４から受信したＩＰパケットへのタグ付与ポリシの追加や削除を実行する。なお、詳細は、図１１を参照して後記する。
【００４９】
＜処理の流れ＞
次に、本実施形態に係るタグ割当サーバ１０が実行する処理について詳細に説明する。なお、本実施形態に係るタグ割当システム１全体の処理の流れについては、図１に参照して説明したため省略し、ここでは、タグ割当サーバ１０が実行する、サービス収容情報テーブル１００の作成処理、ユーザの追加削除処理、ＶＭの追加削除に伴うタグの追加削除処理について説明する。
【００５０】
≪サービス収容情報テーブル作成処理≫
まず、タグ割当サーバ１０のサービス収容情報作成手段１１１が行う、サービス収容情報テーブル１００の作成処理について説明する。
図１０は、本実施形態に係るタグ割当サーバ１０（サービス収容情報作成手段１１１）が実行する、サービス収容情報テーブル１００の作成処理を示すフローチャートである。
ここで、サービス収容情報作成手段１１１は、１ＶＭに割当可能なコア数の範囲（例えば、１〜８）と、各サービスにおける１コア当たりの収容ユーザ数に基づき、各サービスにおける、１ＶＭ当たりの割当コア数と、１ＶＭ当たりの収容ユーザ数とを決定し、サービス収容情報テーブル１００（図６参照）に格納する。
なお、各サービスにおける１コア当たりの収容ユーザ数は、前記したように、性能試験等で検出しておく値であり、サービス収容情報テーブル１００に予め格納されているものとする。また、１ＶＭに割当可能なコア数の範囲（例えば、１〜８）も、予めタグ割当サーバ１０の記憶手段１３に格納されているものとする。
【００５１】
図１０に示すように、まず、サービス収容情報作成手段１１１は、すべてのサービスについて、ＶＭへの割当コア数と１ＶＭあたりの収容ユーザ数が決定するまで、下記の処理を繰り返す（ステップＳ１０１）。
【００５２】
次に、サービス収容情報作成手段１１１は、各サービスについて、ＶＭへの割当コア数を最小数（例えば、「１」）から最大数（例えば、「８」）まで変化させて、それぞれのコア数での収容効率を算出する（ステップＳ１０２）。
【００５３】
具体的には、サービス収容情報作成手段１１１は、各サービスについて、それぞれのコア数での収容効率を、以下の式（１）に基づき算出する。
［収容効率］＝［みなし収容ユーザ数］÷［本来の収容ユーザ数］  ・・・式（１）
【００５４】
ここで、[本来の収容ユーザ数]は、ＶＭで実際に収容可能なユーザ数であり、下記の式（２）により算出する。
[本来の収容ユーザ数]＝[ＶＭへの割当コア数]＊[１コア当たりの収容ユーザ数]  
・・・式（２）
【００５５】
また、［みなし収容ユーザ数］は、［本来の収容ユーザ数］を超えない範囲で最も大きな２の冪数で表現できる自然数であり、下記の式（３）により算出する。但し、floor(x)は、ｘを超えない最大の整数を返す関数である。
【００５６】
【数１】
0006310406.tif 000002
【００５７】
サービス収容情報作成手段１１１は、このようにして算出した収容効率が最大となる割当コア数とその割当コア数でのみなし収容ユーザ数を、当該サービスにおけるＶＭへの割当コア数および１ＶＭ当たりの収容ユーザ数として決定し、サービス収容情報テーブル１００に格納する（ステップＳ１０３）。なお、この処理は、図２（ｂ）において説明した処理であり、図２（ｂ）に示すサービスＲでは、収容効率が最も高くなるコア数（ＶＭへの割当コア数）として「７」が決定され、そのときの１ＶＭ当たりの収容ユーザ数が「１０２４（＝２１０）」となる。
ここで、収容効率が同じ値となり、最大値となるコア数が複数算出された場合には、１ＶＭ当たりの収容ユーザ数が最大となるように、コア数が最も大きいものを当該サービスの割当コア数とする。
【００５８】
次に、ステップＳ１０４において、サービス収容情報作成手段１１１は、すべてのサービスについて、ＶＭへの割当コア数と１ＶＭあたりの収容ユーザ数が決定するまで、ステップＳ１０１に戻り、処理を繰り返す。
【００５９】
続いて、サービス収容情報作成手段１１１は、決定した各サービスにおけるＶＭへの割当コア数を、ＶＭ管理サーバ３０に指示する（ステップＳ１０５）。
【００６０】
このようにして、タグ割当サーバ１０が、各サービスにおけるＶＭへの割当コア数と１ＶＭ当たりの収容ユーザ数を決定することにより、サービス提供サーバ６の収容効率の低下を抑止しながら、１ＶＭ当たりの収容ユーザ数を２の冪数とすることができる。つまり、１ＶＭ当たりの収容ユーザ数を２の冪数（２Ｎ）以下に制限することにより、ＶＭの組み合わせパターン数を減少でき、ＶＭの組み合わせパターン数だけ必要となるタグ数を抑制することができる。
【００６１】
≪ユーザの追加削除処理≫
次に、タグ割当システム１のタグ割当サーバ１０が、ユーザ（ユーザ端末４）の追加や削除に伴って、タグの割当を変更する際の処理について説明する。
図１１は、本実施形態に係るタグ割当サーバ１０（ユーザ追加削除受付手段１１３）が実行する、ユーザの追加削除に伴う、タグの割当・解除処理を示すシーケンス図である。
【００６２】
〔ユーザの追加処理〕
まず、ネットワークの運用者がユーザ情報更新端末２０上で新たなユーザ（ユーザ端末４）の登録を行うと、ユーザ情報更新端末２０は、タグ割当サーバ１０に対して、ユーザ追加要求を送信する（ステップＳ２０１） 。
このユーザ追加要求には、ユーザ名とユーザの契約回線の物理収容位置情報が含まれる。この物理収容位置情報は、例えば、そのユーザ端末４が接続されるユーザ収容スイッチ４０の識別情報である。
【００６３】
ユーザ追加要求を受信したタグ割当サーバ１０（ユーザ追加削除受付手段１１３）は、タグ情報テーブル３００（図８）を参照し、割当ユーザ数に空きのあるタグ(例えば、「Z5_W3_X1_Y1」)を、当該ユーザに割り当てるタグとして決定する（ステップＳ２０２：割当タグ決定処理）。
そして、タグ割当サーバ１０（ユーザ追加削除受付手段１１３）は、タグ情報テーブル３００における当該タグの割当ユーザ数３３０を更新(加算)するとともに、ＶＭ情報テーブル２００の該当ＶＭ２１０の収容ユーザ数２４０を更新（加算）し、タグ付与情報テーブル４００に当該ユーザのレコードを新規に追加して、決定したタグを登録する（ステップＳ２０３：テーブル更新処理）。
【００６４】
次にタグ割当サーバ１０のタグ付与情報通知手段１１５は、新規追加ユーザがユーザ端末４から送信するＩＰパケットに対して、ステップＳ２０３において決定したタグが付与されるように、ユーザ収容スイッチ４０に対して、タグ付与情報追加要求を送信する（ステップＳ２０４）。
このタグ付与情報追加要求には、タグ付与情報テーブル４００に新たに追加されたユーザのタグ(例えば、「Z5_W3_X1_Y1」)と、当該ユーザの契約回線の物理収容位置情報とが含まれる。
なお、ユーザ収容スイッチ４０が複数ある場合には、ユーザ情報更新端末２０から送信されたユーザ追加要求に含まれるユーザの契約回線の物理収容位置情報から、当該ユーザが収容されているユーザ収容スイッチ４０を特定し、当該のユーザ収容スイッチ４０に対して、タグ付与情報追加要求を送信する。
【００６５】
タグ付与情報追加要求を受信したユーザ収容スイッチ４０は、タグ付与情報追加要求に含まれる物理収容位置情報で特定される回線から受信したＩＰパケットに対して、タグ付与情報追加要求に含まれるタグを付与するように設定し、タグ付与情報追加応答をタグ割当サーバ１０に送信する（ステップＳ２０５） 。
【００６６】
そして、タグ付与情報追加応答を受信したタグ割当サーバ１０（ユーザ追加削除受付手段１１３）は、ユーザ追加応答をユーザ情報更新端末２０に送信する（ステップＳ２０６）。
【００６７】
このようにすることにより、タグ割当サーバ１０（ユーザ追加削除受付手段１１３）は、新たなユーザ（ユーザ端末４）の追加に伴うタグの設定をユーザ収容スイッチ４０に対して行うことができる。
【００６８】
〔ユーザの削除処理〕
次に、ユーザの削除処理について説明する。
まず、ネットワークの運用者がユーザ情報更新端末２０上でユーザの削除を行うと、ユーザ情報更新端末２０は、タグ割当サーバ１０に対して、ユーザ削除要求を送信する（ステップＳ３０１） 。
このユーザ削除要求には、ユーザ名とユーザの契約回線の物理収容位置情報が含まれる。
【００６９】
ユーザ削除要求を受信したタグ割当サーバ１０（ユーザ追加削除受付手段１１３）は、タグ付与情報テーブル４００（図９参照）から当該ユーザのタグ（該当レコード）を削除する（ステップＳ３０２：タグ削除処理）。また、タグ割当サーバ１０（ユーザ追加削除受付手段１１３）は、当該ユーザに割り当てられていたタグについて、タグ情報テーブル３００（図８参照）における割当ユーザ数３３０を更新(減算)し、ＶＭ情報テーブル２００（図７参照）の該当ＶＭ２１０の収容ユーザ数２４０を更新（減算）する（ステップＳ３０３：テーブル更新処理）。
【００７０】
次に、タグ割当サーバ１０（タグ付与情報通知手段１１５）は、ユーザ収容スイッチ４０に対して、タグ付与情報削除要求を送信する（ステップＳ３０４）。
このタグ付与情報削除要求には、ユーザの契約回線の物理収容位置情報が含まれる。
【００７１】
タグ付与情報削除要求を受信したユーザ収容スイッチ４０は、タグ付与情報削除要求に含まれる物理収容位置情報で特定される回線に関するタグ付与設定を解除し、タグ付与情報削除応答をタグ割当サーバ１０に送信する（ステップＳ３０５） 。
【００７２】
そして、タグ付与情報削除応答を受信したタグ割当サーバ１０（ユーザ追加削除受付手段１１３）は、ユーザ削除応答をユーザ情報更新端末２０に送信する（ステップＳ３０６）。
【００７３】
このようにすることにより、タグ割当サーバ１０は、ユーザ情報更新端末２０から、ユーザ削除要求を受信した場合に、ユーザ収容スイッチ４０の該当するタグ付与情報を更新（解除）することができる。
【００７４】
≪ＶＭ追加削除に伴うタグの追加削除処理≫
次に、タグ割当システム１のタグ割当サーバ１０が行う、ＶＭの追加削除に伴うタグの追加削除処理について説明する。
図１２は、本実施形態に係るタグ割当サーバ１０（ＶＭ追加削除要求手段１１２）が実行する、ＶＭの追加削除に伴うタグの追加削除処理を示すシーケンス図である。
【００７５】
〔ＶＭの追加に伴うタグの追加処理〕
まず、タグ割当サーバ１０（ＶＭ追加削除要求手段１１２）は、ＶＭ情報テーブル２００（図７参照）に格納されている収容ユーザ数２４０を参照し、収容可能な残りのユーザ数が所定値以下となったサービスについて、当該サービスのＶＭ６０を追加するため、ＶＭ管理サーバ３０にＶＭ追加要求を送信する（ステップＳ４０１）。例えば、図７に示すＶＭ２１０の「Ｚ５」の収容ユーザ数２４０が、ユーザの追加等により増加し（図７では、収容ユーザ数２４０が「２５１」）、最大収容可能ユーザ数２３０の「２５６」に比べ、収容可能な残りのユーザ数が所定値以下になった場合、当該サービス（サービスＺ）のＶＭを追加するものと決定し、ＶＭ管理サーバ３０にＶＭ追加要求を送信する。
このＶＭ追加要求には、当該ＶＭに追加したいサービスの識別情報（例えば、サービスＺ）が付される。
【００７６】
ＶＭ追加要求を受信したＶＭ管理サーバ３０は、ＶＭ追加要求に付されたサービス（ここでは、サービスＺ）のＶＭ６０を起動するサービス提供サーバ６を決定し、ＶＭ６０を起動した後、当該ＶＭ６０に割り当てたＩＰアドレス（例えば、「10.0.2.3」を含むＶＭ追加応答を、タグ割当サーバ１０に送信する（ステップＳ４０２）。
【００７７】
ＶＭ追加応答を受信したタグ割当サーバ１０（ＶＭ追加削除要求手段１１２）は、当該ＶＭのレコード（例えば、図７のＶＭ２１０が「Ｚ６」のレコード）を、新たにＶＭ情報テーブル２００に作成する。
また、タグ割当サーバ１０（ＶＭ追加削除要求手段１１２）は、追加したＶＭに対応するタグのレコード（例えば、図８の「Z6_W3_X1_Y1」のレコード）をタグ情報テーブル３００に作成する（ステップＳ４０３：タグ追加に伴うテーブル更新処理）。
【００７８】
続いて、タグ割当サーバ１０（タグ情報通知手段１１４）は、新たに追加するタグについての転送ポリシ（パケット転送ルール）を各データセンタスイッチ５０に登録するため、タグ情報追加要求を各データセンタスイッチ５０に送信する（ステップＳ４０４）。
このタグ情報追加要求には、当該タグのパケット転送ルールとして、タグの名称（例えば、「Z6_W3_X1_Y1」）と、経由するＶＭ６０のＩＰアドレスの情報（ＩＰアドレスリストであり、例えば、追加するタグが「Z6_W3_X1_Y1」であれば、「10.0.2.3、10.0.1.2、10.0.0.1、10.0.0.2」）が含まれる。
【００７９】
タグ情報追加要求を受信したデータセンタスイッチ５０は、タグ情報追加要求に含まれるタグが付されたパケットが、タグ情報追加要求に含まれるＩＰアドレスリストで指定された各ＶＭ６０を順に通過するような転送設定を実行し、タグ情報追加応答をタグ割当サーバ１０に送信する（ステップＳ４０５）。
【００８０】
このようにすることにより、タグ割当サーバ１０は、ＶＭ情報テーブル２００（図７参照）に格納されている収容ユーザ数２４０に基づき、ＶＭ６０の追加をＶＭ管理サーバ３０に要求し、ＶＭ６０の追加に伴い更新されたタグ情報に基づき、データセンタスイッチ５０の転送ポリシ（パケット転送ルール）を変更することができる。
【００８１】
［ＶＭの削除に伴うタグの削除処理］
タグ割当サーバ１０（ＶＭ追加削除要求手段１１２）は、ＶＭ情報テーブル２００（図７参照）に格納されている収容ユーザ数２４０を参照し、収容ユーザ数２４０がゼロとなった場合に、利用しないＶＭ６０を削除するため、ＶＭ管理サーバ３０にＶＭ削除要求を送信する（ステップＳ５０１）。
なお、ここでは、収容ユーザ数２４０がゼロとなった場合に、ＶＭ削除要求を送信するものとするが、収容ユーザ数２４０が減少し所定値以下となった場合に、空きのある他のＶＭ６０にユーザの割当を移行し、所定値以下となったＶＭの収容ユーザ数２４０をゼロとした上で、ＶＭ削除要求を送信するようにしてもよい。
このＶＭ削除要求には、削除したいＶＭの識別情報（例えば、ＩＰアドレス）が付される。
【００８２】
ＶＭ削除要求を受信したＶＭ管理サーバ３０は、ＶＭ削除要求に付されたＶＭの識別情報に基づき、当該ＶＭを停止した後、ＶＭ削除応答をタグ割当サーバ１０に送信する（ステップＳ５０２）。
【００８３】
ＶＭ削除応答を受信したタグ割当サーバ１０（ＶＭ追加削除要求手段１１２）は、当該ＶＭ６０のレコードをＶＭ情報テーブル２００（図７）から削除するとともに、削除したＶＭ６０に対応するタグのレコードをタグ情報テーブル３００（図８）から削除する（ステップＳ５０３：タグ削除に伴うテーブル更新処理）。
【００８４】
続いて、タグ割当サーバ１０（タグ情報通知手段１１４）は、削除したタグの転送ポリシ（パケット転送ルール）を各データセンタスイッチ５０から削除するため、タグ情報削除要求を各データセンタスイッチ５０に送信する（ステップＳ５０４）。
このタグ情報削除要求には、タグの名称（例えば、「Z6_W3_X1_Y1」）が含まれる。
【００８５】
タグ削除要求を受信した各データセンタスイッチ５０は、タグ情報削除要求に含まれるタグに関する設定を解除し、タグ情報削除応答をタグ割当サーバ１０に送信する（ステップＳ５０５）。
【００８６】
このようにすることにより、タグ割当サーバ１０は、ＶＭ情報テーブル２００（図７参照）に格納されている収容ユーザ数２４０に基づき、ＶＭ６０の削除をＶＭ管理サーバ３０に要求し、ＶＭ６０の削除に伴い更新されたタグ情報に基づき、データセンタスイッチ５０の転送ポリシ（パケット転送ルール）を変更することができる。
【００８７】
以上説明したように、本実施形態に係るタグ割当サーバ１０、タグ割当方法およびタグ割当プログラムによれば、大規模網においてサービスチェイニングを実現する際に、タグ割当サーバ１０が、各サービスにおけるＶＭの割当コア数を決定し、そのＶＭの収容ユーザ数を２の冪数以下に制限することができる。これにより、ＶＭの組み合わせ数のパターン数を減少させることができるため、タグ数の増大を抑制することができる。さらに、タグ数を抑制することで、スケーラビリティの問題を発生することなく、サービス毎の負荷分散装置を不要とすることができる。
【００８８】
本発明は、上記において説明した実施形態に限定されず、その趣旨を逸脱しない範囲で変更可能である。
例えば、タグ割当サーバ１０とＶＭ管理サーバ３０の機能を、一つのサーバに重畳させてもよく、また、タグ割当サーバ１０が備える機能を複数のサーバに分散して配備するようにしてもよい。
また、本実施形態では、ＶＭ６０の収容ユーザ数を２の冪数以下に制限したが、３の冪数など、３以上の自然数のうちのいずれかの冪数以下に制限してもよい。
【符号の説明】
【００８９】
１      タグ割当システム
２      ＩＰネットワーク
４      ユーザ端末
６      サービス提供サーバ
１０    タグ割当サーバ
１１    制御手段
１２    入出力手段
１３    記憶手段
２０    ユーザ情報更新端末
３０    ＶＭ管理サーバ
４０    ユーザ収容スイッチ
５０    データセンタスイッチ
６０    ＶＭ（仮想マシン）
１００  サービス収容情報テーブル
１１１  サービス収容情報作成手段
１１２  ＶＭ追加削除要求手段
１１３  ユーザ追加削除受付手段
１１４  タグ情報通知手段
１１５  タグ付与情報通知手段
２００  ＶＭ情報テーブル
３００  タグ情報テーブル
４００  タグ付与情報テーブル
【図１】
0006310406.tif 000003
【図２】
0006310406.tif 000004
【図３】
0006310406.tif 000005
【図４】
0006310406.tif 000006
【図５】
0006310406.tif 000007
【図６】
0006310406.tif 000008
【図７】
0006310406.tif 000009
【図８】
0006310406.tif 000010
【図９】
0006310406.tif 000011
【図１０】
0006310406.tif 000012
【図１１】
0006310406.tif 000013
【図１２】
0006310406.tif 000014
【図１３】
0006310406.tif 000015