【文献】
梅田 雅一,外1名,「仮想Linux環境を活用したSaaS型ネットワーク構築演習システムの開発」,マルチメディア,分散,協調とモバイル(DICOMO2009)シンポジウム論文集 情報処理学会シンポジウムシリーズ [CD−ROM],社団法人情報処理学会,2009年 7月 1日,第2009巻,第1号,pp.1457-1464
(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0006】
仮想化されたサービス機能の組み合わせによるシステム構築では、ベンダ製品やオープンソースなどの既存製品と独自に開発したサービス機能を個別の仮想マシンに搭載し、連携させる形態が一般的になると考えられる。しかしながら、組み合わせが複雑となった場合に、バグ追跡やボトルネック分析を行うためには多くの煩雑な作業による解析を行わなければならず非常に困難となるという課題がある。例えば、基盤的な技術の仮想化に伴い、開発者や運用者は仮想化された機構までを考慮する必要があり、期待する動作を満足する否かを確認するためのデバッグや動作試験のフェーズが非常に困難になると考えられる。
【0007】
このような背景を鑑みて本発明がなされたのであり、本発明は、デバッグおよび動作試験を効率的に行うことができる仮想マシンの接続制御システム、仮想マシンの接続制御方法およびプログラムを提供することを課題とする。
【課題を解決するための手段】
【0008】
前記した課題を解決するため、請求項1に記載の発明は、複数の仮想マシンを動作させる仮想マシンの接続制御システムであって、前記仮想マシンを含む仮想リソースを管理するリソース管理サーバと、前記リソース管理サーバと連携し、前記仮想マシン
同士のノード間接続の単位であるコネクション単位で、前記仮想マシンおよび前記コネクションを生成するとともに、当該生成またはその削除の操作、および状態表示を、GUI操作により行うGUIサーバと、を備え、前記GUIサーバは、GUI操作を監視し、イベントを前記リソース管理サーバへ送信するとともに、前記リソース管理サーバからの仮想マシン生成およびコネクション生成確認通知を基に、GUIを更新するGUI制御部と、GUI画面における仮想マシンを管理するとともに、前記リソース管理サーバにおける仮想マシンが変更された場合にイベントを受信し、前記GUI制御部に通知する仮想マシン状態管理部と、GUI画面における仮想マシン間の接続状態を管理するとともに、前記リソース管理サーバにおける接続状態が変更された場合にイベントを受信し、前記GUI制御部に通知するコネクション状態管理部と、を備え
、前記リソース管理サーバは、前記GUIサーバからの通知を受けモジュール生成またはその削除の処理を行うモジュール制御部と、前記リソース管理サーバ上の前記仮想マシンを管理し、前記仮想マシンのダウンを含むイベントを前記GUI制御部へ通知する仮想マシン制御部と、前記リソース管理サーバ上の前記仮想マシン間の接続を管理し、前記仮想マシンのNW断を含むイベントを前記GUI制御部へ通知するコネクション制御部と、を備えることを特徴とする仮想マシンの接続制御システムとした。
【0009】
また、請求項
6に記載の発明は、複数の仮想マシンを動作させる仮想マシンの接続制御方法であって、前記仮想マシンを含む仮想リソースを管理するリソース管理サーバを有し、前記リソース管理サーバとは、別に備えられたGUIサーバでは、前記リソース管理サーバと連携し、前記仮想マシン
同士のノード間接続の単位であるコネクション単位で、前記仮想マシンおよび前記コネクションを生成するステップと、前記仮想マシンおよび前記コネクションの生成またはその削除の操作、および状態表示を、GUI操作により行うステップと、GUI操作を監視し、イベントを前記リソース管理サーバへ送信するとともに、前記リソース管理サーバからの仮想マシン生成およびコネクション生成確認通知を基に、GUIを更新するGUI制御ステップと、GUI画面における仮想マシンを管理するとともに、前記リソース管理サーバにおける仮想マシンが変更された場合にイベントを受信し、前記GUI制御ステップの前記GUI操作の監視のために通知するステップと、GUI画面における仮想マシン間の接続状態を管理するとともに、前記リソース管理サーバにおける接続状態が変更された場合にイベントを受信し、前記GUI制御ステップの前記GUI操作の監視のために通知するステップと、を実行し、
前記リソース管理サーバでは、前記GUIサーバからの通知を受けモジュール生成またはその削除の処理を行うステップと、前記リソース管理サーバ上の前記仮想マシンを管理し、前記仮想マシンのダウンを含むイベントを前記GUIサーバへ通知するステップと、前記リソース管理サーバ上の前記仮想マシン間の接続を管理し、前記仮想マシンのNW断を含むイベントを前記GUIサーバへ通知するステップと、を実行することを特徴とする仮想マシンの接続制御方法とした。
【0010】
また、請求項
7に記載の発明は、複数の仮想マシンを動作させる仮想マシンの接続制御システム
内で処理を実行するGUIサーバおよびリソース管理サーバとしての各コンピュータに搭載されるプログラムであって、前記GUIサーバとしてのコンピュータを、前記仮想マシンを含む仮想リソースを管理するリソース管理サーバと連携し、前記仮想マシン
同士のノード間接続の単位であるコネクション単位で、前記仮想マシンおよび前記コネクションを生成する手段、前記仮想マシンおよび前記コネクションの生成またはその削除の操作、および状態表示を、GUI操作により行う手段、GUI操作を監視し、イベントを前記リソース管理サーバへ送信するとともに、前記リソース管理サーバからの仮想マシン生成およびコネクション生成確認通知を基に、GUIを更新するGUI制御手段、GUI画面における仮想マシンを管理するとともに、前記リソース管理サーバにおける仮想マシンが変更された場合にイベントを受信し、前記GUI制御手段に通知する仮想マシン状態管理手段、GUI画面における仮想マシン間の接続状態を管理するとともに、前記リソース管理サーバにおける接続状態が変更された場合にイベントを受信し、前記GUI制御手段に通知するコネクション状態管理手段、として機能させるためのプログラム
とし、前記リソース管理サーバとしてのコンピュータを、前記GUIサーバからの通知を受けモジュール生成またはその削除の処理を行うモジュール制御手段、前記リソース管理サーバ上の前記仮想マシンを管理し、前記仮想マシンのダウンを含むイベントを前記GUI制御手段へ通知する仮想マシン制御手段、前記リソース管理サーバ上の前記仮想マシン間の接続を管理し、前記仮想マシンのNW断を含むイベントを前記GUI制御手段へ通知するコネクション制御手段、として機能させるためのプログラムとした。
【0011】
このようにすることで、グラフィカルな操作により接続を簡易にして煩雑さを解消することができる。これにより、複雑さによるバグ追跡やボトルネック分析にかかる負担を軽減することができる。また、システムのアップデートを容易にすることができる。さらに、仮想マシンおよびそれらのコネクション操作、監視をグラフィカルな操作により実行できるので、システムの運用性を高めることができる。
また、GUIサーバのGUI制御部は、GUIを常に最新の状態に更新することができる。このようにして、GUIサーバとリソース管理サーバとの連携を図ることができる。
また、仮想マシンリストおよびコネクション状態リストを常に最新の状態に更新し、GUIを更新することができる。
【0014】
また、請求項
2に記載の発明は、前記GUIサーバが、GUI画面における負荷ツールを含むモジュールを生成するスクリプトを管理するモジュール管理部を備えることを特徴とする請求項1に記載の仮想マシンの接続制御システムとした。
【0015】
このようにすることで、テストツールや監視ツールを簡易に接続することができ、システムのデバッグや検証を容易にするができる。
【0018】
また、請求項
3に記載の発明は、前記GUIサーバが、前記リソース管理サーバに、GUI操作の内容をGUI構成情報として送信し、前記仮想マシン制御部は、送信された前記GUI構成情報を基に、前記仮想マシンの生成またはその削除に関する仮想マシン情報を抽出し、仮想マシン操作プログラムを経由して前記仮想マシンの操作を行い、前記コネクション制御部は、送信された前記GUI構成情報を基に、コネクション生成またはその削除に関するコネクション情報を抽出し、NWリソース操作プログラムを経由して前記仮想マシンの接続を変更することを特徴とする請求項
1に記載の仮想マシンの接続制御システムとした。
【0019】
このようにすることで、既存の操作プログラムを利用して、仮想マシンの接続をグラフィカルに行うことができる。また、仮想マシン間の中間状態をも含め直感的に監視することができる。これにより、開発および運用における工程を迅速化することができ、サービスの提供サイクルを早めることができる。
また、請求項
4に記載の発明は、前記GUIサーバが、GUI操作により前記仮想マシンの出力側を一乃至複数に分岐させ、前記仮想マシンとは異なる一乃至複数の仮想マシンの入力側に繋ぐことを特徴とする請求項1に記載の仮想マシンの接続制御システムとした。
このようにすることで、仮想マシンと前記仮想マシンとは異なる一乃至複数の仮想マシンとの間に、プローブのように挿入することができ、データフローの途中段階のトラヒックを監視可能とする。
また、請求項
5に記載の発明は、前記GUIサーバが、GUI操作により複数の前記仮想マシンの出力側を分岐させ、複数の前記仮想マシンとは異なる仮想マシンの入力側に繋ぐことを特徴とする請求項1に記載の仮想マシンの接続制御システムとした。
このようにすることで、ユーザはGUI画面上で、各VMから収集したトラフィックをまとめて分析することができる。
【発明の効果】
【0020】
本発明によれば、デバッグおよび動作試験を効率的に行うことができる仮想マシンの接続制御システム、仮想マシンの接続制御方法およびプログラムを提供することができる。
【発明を実施するための形態】
【0022】
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)における仮想マシンの接続制御システム等について説明する。
図1は、本発明の実施形態に係る仮想マシンの接続制御システムを示す構成図である。本実施形態の仮想マシンの接続制御システムは、サービス機能を再利用可能なモジュール単位に分割し、仮想マシンを独立した環境の上で動作させることで、部品のようにして必要に応じて利用し運用性を高めるといったSFCに適用した例である。デバッグや動作試験を効率的に実行するためのテスト機構を実現できる。
図1に示すように、仮想マシンの接続制御システム100は、GUIサーバ110と、リソース管理サーバ120と、を備える。GUIサーバ110とリソース管理サーバ120は、ルータ2を介して接続され、ルータ2は例えばWAN(Wide Area Network)からなるネットワーク1に接続される。仮想マシン121の接続制御システム100は、リソース管理サーバ120とは別に、GUIサーバ110を設けたことを特徴とする。
【0023】
<GUIサーバ>
GUIサーバ110は、リソース管理サーバ120と機能的に分かれていることが特徴である。GUIサーバ110からみて、リソース管理サーバ120はバックエンドである。
GUIサーバ110は、リソース管理サーバ120と連携し、仮想マシン121のコネクション単位で、仮想マシン121およびコネクションを生成するとともに、当該生成またはその削除の操作、および状態表示を、GUI操作により行う。GUIサーバ110は、GUI操作を監視し、イベントをリソース管理サーバ120へ送信する。GUIサーバ110は、リソース管理サーバ120に、GUI操作の内容をGUI構成情報152(後記
図5および
図6参照)として送信する。
【0024】
GUIサーバ110は、ユーザスクリプト管理部111、モジュール管理部112、GUI制御部113、仮想マシン状態管理部114、およびコネクション状態管理部11
5を備える。
ユーザスクリプト管理部111は、ユーザがモジュール(後記)の機能を拡張しようとする場合、ユーザが独自定義するモジュールのスプリクトを管理する(後記
図7の動作参照)。
モジュール管理部112は、GUIにおける負荷ツールなどのモジュールを生成するためのスクリプト(後記
図8のモジュールメニュー150参照)を管理する。モジュール管理部112は、モジュールにユーザ独自の機能追加を行う場合は、ユーザスクリプト管理部111へ独自スクリプトを追加し、既存モジュールと組み合わせて用いる。
【0025】
GUI制御部113は、GUI操作を監視し、イベントをリソース管理サーバ120へ送信する。GUI制御部113は、リソース管理サーバ120からの仮想マシン121の生成およびコネクション生成確認通知を基に、GUIへ更新を反映する(後記
図3参照)。このGUI更新によりGUI操作画面(後記
図8参照)が表示される。
【0026】
GUI制御部113は、リソース管理サーバ120からの仮想マシン121の生成およびコネクション生成確認通知を基に、GUIを更新する。
具体的には、GUI制御部113は、どのようなメニューがあるかを仮想マシン状態管理部114およびコネクション状態管理部115に問い合わせ、仮想マシン状態管理部114およびコネクション状態管理部115をGUI制御部113のバックグランドで動作させる。すなわち、GUI制御部113からの問い合わせ(仮想マシン121の生成指示、コネクション生成指示)を受けた仮想マシン状態管理部114およびコネクション状態管理部115は、リソース管理サーバ120に対して、仮想マシン121の生成およびコネクション生成を指示するとともに、リソース管理サーバ120から該当する仮想マシン121の生成およびコネクション生成確認通知を受け取って仮想マシンリストおよびコネクション状態リストを更新する。GUI制御部113は、仮想マシン状態管理部114およびコネクション状態管理部115から該当する仮想マシン121の生成およびコネクション生成確認通知を受け取ってGUIへ更新を反映する。
【0027】
仮想マシン状態管理部114は、GUI画面におけるVM間の接続状態を管理するとともに、リソース管理サーバ120における接続状態が変更された場合にイベントを受信し、GUI制御部113に通知する(後記
図3参照)。
また、仮想マシン状態管理部114は、仮想マシン操作プログラム125との仲立ちをする(後記
図3の制御シーケンス参照)。具体的には、仮想マシン状態管理部114は、GUIサーバ110に指示された遠隔操作機能部(図示省略)からの命令を変換し、リソース管理サーバ120の仮想マシン操作プログラム125へ与え、必要に応じてNWリソース操作プログラム126実行による状態取得までを行う。
【0028】
コネクション状態管理部115は、GUI画面におけるVM間の接続状態を管理するとともに、リソース管理サーバ120における接続状態が変更された場合にイベントを受信し、GUI制御部113に通知する(後記
図3参照)。
また、コネクション状態管理部115は、NWリソース操作プログラム126との仲立ちをする(
図3の制御シーケンスにより後記)。具体的には、コネクション状態管理部115は、GUIサーバ110に指示された遠隔操作機能部(図示省略)からの命令を変換し、リソース管理サーバ120のNWリソース操作プログラム126へ与え、必要に応じてNWリソース操作プログラム126実行による状態取得までを行う。
【0029】
<リソース管理サーバ>
リソース管理サーバ120は、仮想マシン121を含む仮想リソースを管理する。
リソース管理サーバ120は、複数の仮想マシン(VM)121、モジュール制御部122、仮想マシン制御部123、コネクション制御部124、仮想マシン操作プログラム125、およびNWリソース操作プログラム126を備える。
仮想マシン(以下、適宜VMという)121は、サードパーティが提供する既存機能である。
モジュール制御部122は、GUIサーバ110からの通知を受けモジュール生成/削除の処理を行う。
【0030】
仮想マシン制御部123は、リソース管理サーバ120上の仮想マシン121を管理し、GUIサーバ110からの通知を受けて操作を行い、また仮想マシン121のダウンなどのイベントをGUI制御部113へ通知する。
また、仮想マシン制御部123は、送信されたGUI構成情報152を基に、仮想マシン121の生成、削除に関するVM情報を抽出し、仮想マシン操作プログラム125を経由して仮想マシン121の操作を行う。
コネクション制御部124は、リソース管理サーバ120上の仮想マシン121間の接続を管理し、GUIサーバ110からの通知を受けて操作を行い、また仮想マシン121のNW断などのイベントをGUI制御部113へ通知する。
また、コネクション制御部124は、送信されたGUI構成情報152を基に、コネクション生成、削除に関するコネクション情報を抽出し、NWリソース操作プログラム126を経由して仮想マシン121の接続を変更する。
【0031】
仮想マシン操作プログラム125は、VMの生成、削除などライフサイクル管理を行う機能である。仮想マシン操作プログラム125は、サードパーティが提供する既存機能であり、KVM(Kernel-based Virtual Machine)などの先行実装例がある。
NWリソース操作プログラム126は、VMの接続を行う機能であり、サードパーティが提供するIntelDPDKなどがある。
仮想マシン操作プログラム125およびNWリソース操作プログラム126は、いずれもサードパーティが提供する既存機能である。
【0032】
以下、上述のように構成された仮想マシン121の接続制御システム100の動作を説明する。
<サーバ間の連携>
まず、GUIサーバ110とリソース管理サーバ120間の連携について述べる。
図2は、GUIサーバ110とリソース管理サーバ120間の連携を説明する図である。
図2に示すように、GUIサーバ110は、モジュールメニュー150(後記
図8参照)と、リソース情報151(後記
図8参照)と、を有する。GUIサーバ110は、GUI操作を表示するGUI画面210を有する。
図2では、GUI画面210には、ポートPort#1,#2と、仮想マシンVM#1〜#5と、これらを繋ぐ線と、モジュールメニュー150と、リソース情報151と、が表示されている。また、GUIサーバ110は、GUI操作の内容をGUI構成情報(後記
図5のGUI構成情報152参照)としてリソース管理サーバ120へ送信する。
一方、リソース管理サーバ120は、GUIサーバ110による仮想マシン(VM)121の操作内容を管理する。
図2では、リソース管理サーバ120は、内部状態220を模式的に示している。
【0033】
GUIサーバ110とリソース管理サーバ120は連携して動作することに特徴がある。
例えば、
図2の符号aに示すように、GUIサーバ110の操作は、即座にリソース管理サーバ120へ反映される。具体的には、GUIサーバ110による仮想マシン(VM)121の操作は、仮想マシン状態管理部114からリソース管理サーバ120の仮想マシン制御部123へと通知される。また、GUIサーバ110によるNWの操作は、コネクション状態管理部115からリソース管理サーバ120のコネクション制御部124へと通知される。
また、
図2の符号bに示すように、リソース管理サーバ120側のイベント(VMシャットダウンなど)は、GUIサーバ110へ反映される。具体的には、障害による仮想マシンのダウンなどのイベントは、リソース管理サーバ120からGUIサーバ110へ通知される。また、コネクション設定失敗などのイベントは、リソース管理サーバ120からGUIサーバ110へ通知される。
【0034】
次に、GUIサーバ110とリソース管理サーバ120の制御シーケンスについて述べる。
図3は、GUIサーバ110とリソース管理サーバ120の制御シーケンスを説明する図である。
GUIサーバ110のGUI制御部113は、仮想マシン状態管理部114に仮想マシン生成指示を発行する(ステップS1参照)。
仮想マシン状態管理部114は、この仮想マシン生成指示をリソース管理サーバ120の仮想マシン制御部123に送信する(ステップS2参照)。
仮想マシン制御部123は、GUIサーバ110から送信された仮想マシン生成指示に基づいて仮想マシン生成のための指令を仮想マシン操作プログラム125に指示する(ステップS3参照)。
リソース管理サーバ120は、仮想マシン操作プログラム125を実行して仮想マシン121を生成する(ステップS4参照)。
仮想マシン制御部123は、仮想マシン操作プログラム125による仮想マシン121の生成を確認する(ステップS5参照)。
仮想マシン制御部123は、仮想マシン121の生成確認通知をGUIサーバ110の仮想マシン状態管理部114に送信する(ステップS6参照)。
【0035】
仮想マシン状態管理部114は、仮想マシン121の生成確認通知を受けて、自身が持つ仮想マシンリスト(図示省略)を更新する(ステップS7参照)。
仮想マシン状態管理部114は、GUI制御部113に、仮想マシン121の生成確認を通知する(ステップS8参照)。
GUI制御部113は、仮想マシン121の生成確認通知に基づいて、GUI(GUI画面)へ更新を反映する(ステップS9参照)。
【0036】
GUI制御部113は、コネクション状態管理部115にコネクション生成指示を発行する(ステップS10参照)。
コネクション状態管理部115は、このコネクション生成指示をリソース管理サーバ120のコネクション制御部124に送信する(ステップS11参照)。
コネクション制御部124は、GUIサーバ110から送信されたコネクション生成指示に基づいてコネクション生成のための指令をNWリソース操作プログラム126に指示する(ステップS12参照)。
リソース管理サーバ120は、NWリソース操作プログラム126を実行してコネクション設定を行う(ステップS13参照)。
仮想マシン121は、自身のコネクション設定を行う(ステップS14参照)。
コネクション制御部124は、NWリソース操作プログラム126によるコネクション生成を確認する(ステップS15参照)。
コネクション制御部124は、コネクション生成確認通知をGUIサーバ110のコネクション状態管理部115に送信する(ステップS16参照)。
【0037】
コネクション状態管理部115は、コネクション生成確認通知を受けて、自身が持つコネクション状態リスト(図示省略)を更新する(ステップS17参照)。
コネクション状態管理部115は、GUI制御部113に、コネクション生成確認を通知する(ステップS18参照)。
GUI制御部113は、コネクション生成確認通知に基づいて、GUI(GUI画面)へ更新を反映する(ステップS19参照)。
【0038】
次に、リソース管理サーバ120における制御について説明する。
<リソース管理サーバにおける制御>
図4は、リソース管理サーバ120における制御を説明する図である。
図4に示すように、リソース管理サーバ120は、仮想マシン制御部123、コネクション制御部124、仮想マシン操作プログラム125、およびNWリソース操作プログラム126を備える。仮想マシン制御部123は、API(Application Programming Interface)を用いて、仮想マシン操作プログラム125の機能およびデータなどを管理する。また、コネクション制御部124は、APIを用いて、NWリソース操作プログラム126の機能およびデータなどを管理する。仮想マシン操作プログラム125には、KVMなどを実装することができる。KVMなどは、外部プログラムに対してAPIを設けているので、このAPIを利用する。また、NWリソース操作プログラム126は、IntelDPDKなどを実装することができる。IntelDPDKなどについても外部プログラムに対してAPIを設けているので、このAPIを利用する。
【0039】
<リソース管理サーバにおけるVM操作>
図5は、リソース管理サーバ120におけるVM操作を説明する図である。
図5に示すように、GUIサーバ110(
図1および
図2参照)からリソース管理サーバ120に、GUI操作の内容がGUI構成情報152として送信される。
図5の例では、GUI構成情報152には、VM#1をVM#
5に接続し、VM#5をVM#2に接続すること、VM#1をVM#3に接続し、VM#3をVM#4に接続し、さらにVM#4をVM#2に接続する、GUI操作の内容が記述されている。
リソース管理サーバ120の仮想マシン制御部123は、GUIサーバ110(
図1および
図2参照)から送信されたGUI構成情報152を基に、仮想マシンの生成、削除に関するVM情報を抽出する(
図5の符号c参照)。そして、仮想マシン制御部123は、APIを利用して、仮想マシン操作プログラム125に対しVM生成/削除を指示する(
図5の符号d参照)。仮想マシン制御部123は、仮想マシン操作プログラム125を実行し、仮想マシン操作プログラム125を経由して仮想マシン121a〜121eの操作を行う(
図5の符号e参照)。なお、
図5では、仮想マシン操作プログラム125実行によるリソース管理サーバ120の内部状態220を模式的に示している。
【0040】
<リソース管理サーバにおけるコネクション操作>
図6は、リソース管理サーバ120におけるコネクション操作を説明する図である。
図6に示すように、GUIサーバ110(
図1および
図2参照)からリソース管理サーバ120に、GUI操作の内容がGUI構成情報152として送信される。
図5の例では、GUI構成情報152には、VM#1をVM#
5に接続し、VM#5をVM#2に接続すること、VM#1をVM#3に接続し、VM#3をVM#4に接続し、さらにVM#4をVM#2に接続する、GUI操作の内容が記述されている。
リソース管理サーバ120のコネクション制御部124は、GUIサーバ110(
図1および
図2参照)から送信されたGUI構成情報152を基に、コネクション生成、削除に関するコネクション情報を抽出する(
図5の符号f参照)。そして、コネクション制御部124は、APIを利用して、NWリソース操作プログラム126に対しVM生成/削除を指示する(
図5の符号g参照)。仮想マシン制御部123は、NWリソース操作プログラム126を実行し、NWリソース操作プログラム126を経由して仮想マシン121a〜121eの操作を行う(
図6の符号h参照)。なお、
図6では、NWリソース操作プログラム126実行によるリソース管理サーバ120の内部状態220を模式的に示している。
【0041】
<モジュール管理部によるモジュール管理>
図7は、モジュール管理部112によるモジュール管理を説明する図である。
図7に示すように、GUIサーバ110は、ユーザスクリプト管理部111、モジュール管理部112、コネクション状態管理部115を備え、リソース管理サーバ120は、モジュール制御部122、コネクション制御部124を備える。
GUIサーバ110のユーザスクリプト管理部111およびモジュール管理部112は、リソース管理サーバ120のモジュール制御部122にモジュール生成スクリプト153を送信する。また、GUIサーバ110のコネクション状態管理部115は、リソース管理サーバ120のコネクション制御部124にGUI構成情報152を送信する。
ユーザスクリプト管理部111は、モジュールの機能を拡張するために追加する独自定義機能であり、モジュール生成スクリプト153に組み込むかたちで使用する。
【0042】
GUIサーバ110は、GUI操作によりモジュール生成もしくはユーザスクリプトの組み込みを行うことができる。GUI操作によりモジュール生成もしくはユーザスクリプトの組み込みを行った場合、
図7の符号iに示すように、GUIサーバ110のユーザスクリプト管理部111およびモジュール管理部112は、リソース管理サーバ120のモジュール制御部122にモジュール生成スクリプト153を送信する。モジュール制御部122は、送信されたモジュール生成スクリプト153を基に、モジュール生成を行う。具体的には、モジュール制御部122は、所定のアプリケーション(ツールアプリケーション、または単にツールという)を起動してモジュール生成を行う。モジュール生成後は、GUI画面210(
図2参照)へ反映される。
【0043】
次に、
図7の符号jに示すように、GUI操作によりモジュールと仮想マシンを接続すると、
図6で述べたように、GUIサーバ110のコネクション状態管理部115からリソース管理サーバ120のコネクション制御部124にGUI構成情報152が送信される。コネクション制御部124は、送信されたGUI構成情報152を基に、モジュールおよび仮想マシン121の接続を行う。
【0044】
[操作画面の動作概要]
次に、GUIサーバ110の操作画面の動作について説明する。
図8は、GUIサーバ110の操作画面の動作概要を説明する図である。
図8に示すように、GUIサーバ110は、仮想マシン状態管理部114およびコネクション状態管理部115を介して、リソース管理サーバ120からモジュールメニュー150およびリソース情報151を取得する。
モジュールメニュー150は、例えば、「テストモジュール」として、負荷ツールA、負荷ツールB、パケットフィルタ…、「監視モジュール」として、イベント監視(例えばICMP:Internet Control Message Protocolを用いる)、イベント9および監視(例えばHTTP:Hypertext Transfer Protocolを用いる)、トラフィック計測…がある。また、「ユーザ定義スクリプト」として、スクリプトA、スクリプトB…がある。
【0045】
リソース情報151は、例えば、ID:VM#5、App:Firewall、TX:xxx[Mpps]、RX:xxx[Mpps]…がある。リソース情報151は、元はリソース管理サーバ120の仮想マシンVM#1〜#5が有している。リソース管理サーバ120の仮想マシン制御部123は、GUIサーバ110の仮想マシン生成指示を受けると、この指示に従って仮想マシンVM#1〜#5からリソース情報151を取得する(
図3参照)。そして、仮想マシン制御部123は、取得したリソース情報151をGUIサーバ110に送信し、仮想マシン状態管理部114を経由して、GUI制御部113にリソース情報151を送る(
図3参照)。
【0046】
GUIサーバ110は、GUI操作を表示するGUI画面210を有し、リソース管理サーバ120の仮想マシンVM#1〜#5から取得したリソース情報151を基に、GUIへ更新反映する(
図3参照)。
図8では、GUI画面210には、ポートPort#1,#2と、仮想マシンVM#1〜#5と、これらを繋ぐ線と、モジュールメニュー150と、が表示されている。ここでは、ポートPort#1は、負荷ツールA(テストモジュールの1つ)の接続点(IntelDPDKでは、NWの端点をPortと呼ぶ)、ポートPort#2は、トラフィック計測点(監視モジュールの1つ)である。また、
図8の白抜き矢印(⇒印)は、マウス等のポインティングデバイスの指示点である。この指示点がノードやリンクに達するとリソース情報151が表示される。
【0047】
図8の符号kに示すように、GUIサーバ110は、仮想的なNWリソースを抽象化しグラフとしてGUI操作可能にする(バックエンド機能)。
図8の符号lに示すように、ノードやリンクの入力と出力をマウスオーバすると、状態が表示される。ここでは、仮想マシンVM#5の出力へのマウスオーバにより、仮想マシンVM#5についてのリソース情報151が表示される。
図8の符号mに示すように、ノード間を接続すると、NWリソースが払い出され接続される。ここでは、仮想マシンVM#4とVM#2のノード間接続操作、および仮想マシンVM#5とVM#4のノード間接続操作によりNWリソースが払い出され(読み出され)、VM#4とVM#2、およびVM#5とVM#2とが接続される。
また、
図8のモジュールメニュー150に示すように、開発、運用に用いる機能モジュールをあらかじめ部品として用意し、選択によりNWに組み込む。
【0048】
次に、GUIサーバ110のデータフローの途中段階でのトラフィック監視および異常検出動作について説明する。
図9および
図10は、GUIサーバ110のデータフローの途中段階でのトラフィック監視および異常検出動作を説明する図である。
図9に示すように、仮想マシンAと仮想マシンB、仮想マシンBと仮想マシンCが接続されている。このノードの接続状態において、
図9の符号nに示すように、GUI操作により仮想マシンAの出力側を分岐させ、仮想マシンD1として複製し、複製した仮想マシンD1を元の仮想マシンBの入力側に繋ぐ。仮想マシンAの出力側を分岐させて複製することで、仮想マシンD1を仮想マシンAと仮想マシンBとの間に、プローブ(probe: 探針)のように挿入することができる。
仮想マシンD1へのマウスオーバによりGUI画面210上に、
図10(a)に示す仮想マシンA通過後のトラフィックを表示する。ユーザはGUI画面210上で、仮想マシンA通過後のトラフィック(
図10(a)参照)を監視することができる。
【0049】
同様に、
図9の符号oに示すように、GUI操作により仮想マシンBの出力側を分岐させ、仮想マシンD2として複製し、複製した仮想マシンD2を元の仮想マシンCの入力側に繋ぐ。仮想マシンBの出力側を分岐させて複製することで、仮想マシンD2を仮想マシンBと仮想マシンCとの間に、プローブのように挿入することができる。
仮想マシンD2へのマウスオーバによりGUI画面210上に、
図10(b)に示す仮想マシンB通過後のトラフィックを表示する。ユーザはGUI画面210上で、仮想マシンB通過後のトラフィック(
図10(b)参照)を監視することができる。なお、仮想マシンB通過後のトラフィック(
図10(b)参照)は、仮想マシンA通過後のトラフィック(
図10(a)参照)と同じである例を示している。
【0050】
次に、GUIサーバ110のシステム全体での統計情報取得動作について説明する。
図11および
図12は、GUIサーバ110のシステム全体での統計情報取得動作を説明する図である。
図11に示すように、仮想マシンAと仮想マシンB、仮想マシンBと仮想マシンCが接続されている。このノードの接続状態において、
図11の符号pに示すように、GUI操作により仮想マシンAの出力側を分岐させ、仮想マシンBを複製して仮想マシンB1とB2とB3とする。複製した仮想マシンB1,B2,B3を仮想マシンCの入力側に繋ぐ。仮想マシンAの出力側を分岐させて複製することで、元の仮想マシンBと並列に、仮想マシンB1,B2,B3を挿入することができる。
【0051】
さらに、
図11の符号q,r,sに示すように、GUI操作により各仮想マシンB1,B2,B3の出力側を分岐させ、仮想マシンCを複製して仮想マシンDとする。
仮想マシンDへのマウスオーバによりGUI画面210上に、
図12に示すシステム全体でのトラフィックを表示する。
図12は、各VMから収集したトラフィックを示す図である。ユーザはGUI画面210上で、各VMから収集したトラフィックを分析することができる。なお、各VMから収集したトラフィックは、仮想マシンA通過後のトラフィック(
図10(a)参照)および仮想マシンB通過後のトラフィック(
図10(b)参照)と同じである例を示している。
【0052】
以上説明したように、本実施形態に係る仮想マシンの接続制御システム100(
図1参照)は、仮想マシンを含む仮想リソースを管理するリソース管理サーバ120と、リソース管理サーバ120と連携し、仮想マシンおよびコネクション単位で、仮想マシンおよび前記コネクションを生成するとともに、当該生成またはその削除の操作、および状態表示を、GUI操作により行うGUIサーバ110と、を備える。GUIサーバ110は、GUI操作を監視し、イベントをリソース管理サーバ120へ送信する。また、GUIサーバ110は、リソース管理サーバ120に、GUI操作の内容をGUI構成情報152(
図5および
図6参照)として送信する。GUIサーバ110は、リソース管理サーバ120からの仮想マシン生成およびコネクション生成確認通知を基に、GUIへ更新するGUI制御部113と、GUI画面におけるVM間の接続状態を管理するとともに、リソース管理サーバ120における接続状態が変更された場合にイベントを受信し、GUI制御部113に通知する仮想マシン状態管理部114と、GUI画面におけるVM間の接続状態を管理するとともに、リソース管理サーバ120における接続状態が変更された場合にイベントを受信し、GUI制御部113に通知するコネクション状態管理部115と、GUI画面における負荷ツールなどのモジュールを生成するためのスクリプトを管理するモジュール管理部112と、を備える。
【0053】
このようにすることで、グラフィカルな操作により接続を簡易にして煩雑さを解消することができる。特に、組み合わせが複雑となった場合に、バグ追跡やボトルネック分析を行うためには多くの煩雑な作業による解析を行わねばならず非常に困難となっていた。本実施形態によれば、複雑さによるバグ追跡やボトルネック分析にかかる負担を軽減することができる。また、システムのアップデートを容易にすることができる。さらに、VMおよびそれらのコネクション操作、監視をグラフィカルな操作により実行できるので、システムの運用性を高めることができる。
【0054】
また、VMの接続をグラフィカルな操作により実行できるので、VM間の中間状態をも含め直感的に監視することができる。これにより、開発および運用における工程を迅速化することができ、サービスの提供サイクルを早めることができる。
【0055】
また、本実施形態では、GUIサーバ110が、GUI画面における負荷ツールを含むモジュールを生成するスクリプトを管理するモジュール管理部112を備えることで、テストツールや監視ツールを簡易に接続することができ、システムのデバッグや検証を容易にするができる。
【0056】
なお、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0057】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。