(58)【調査した分野】(Int.Cl.,DB名)
サーバ上に構築された仮想マシンに対応する仮想スイッチのポートを流通するパケットのトラフィックをコピーしたポートミラートラフィックを監視するモニタリング装置であって、
前記ポートとの間にトンネルを設定する設定部と、
前記トンネルの回線帯域が、前記ポートミラートラフィックの通信帯域を充足するか否かを判定する判定部と、
前記判定部が充足しないと判定した場合、前記仮想マシンを前記サーバとは異なるサーバへ移動させ、該移動に先立って移動先のサーバの仮想スイッチのポートとの間のトンネルを設定させる調整部と、
前記トンネルに転送された前記ポートミラートラフィックを監視する監視部と、
を備えることを特徴とするモニタリング装置。
前記調整部は、前記ポートミラートラフィックの通信帯域を充足する前記仮想マシンの移動先がない場合、前記ポートミラートラフィックのパケットサイズを調整することを特徴とする請求項1または2に記載のモニタリング装置。
前記調整部は、前記ポートミラートラフィックのパケットの所定のプロトコルヘッダに後続する部分を削除してパケットサイズを調整することを特徴とする請求項3または4に記載のモニタリング装置。
サーバ上に構築された仮想マシンに対応する仮想スイッチのポートを流通するパケットのトラフィックをコピーしたポートミラートラフィックを監視するモニタリング装置で実行されるモニタリング方法であって、
前記ポートとの間にトンネルを設定する設定工程と、
前記トンネルの回線帯域が、前記ポートミラートラフィックの通信帯域を充足するか否かを判定する判定工程と、
前記判定工程において充足しないと判定された場合、前記仮想マシンを前記サーバとは異なるサーバへ移動させ、該移動に先立って移動先のサーバの仮想スイッチのポートとの間のトンネルを設定させる調整工程と、
前記トンネルに転送された前記ポートミラートラフィックを監視する監視工程と、
を含んだことを特徴とするモニタリング方法。
サーバ上に構築された仮想マシンに対応する仮想スイッチのポートを流通するパケットのトラフィックをコピーしたポートミラートラフィックを監視するモニタリングプログラムであって、
前記ポートとの間にトンネルを設定する設定ステップと、
前記トンネルの回線帯域が、前記ポートミラートラフィックの通信帯域を充足するか否かを判定する判定ステップと、
前記判定ステップにおいて充足しないと判定された場合、前記仮想マシンを前記サーバとは異なるサーバへ移動させ、該移動に先立って移動先のサーバの仮想スイッチのポートとの間のトンネルを設定させる調整ステップと、
前記トンネルに転送された前記ポートミラートラフィックを監視する監視ステップと、
をコンピュータに実行させるためのモニタリングプログラム。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0013】
[モニタリング対象と概要]
まず、
図1および
図2を参照して、本実施形態のモニタリング装置によるパケットモニタリングの対象である通信システムの構成について説明する。
図1に示すように、通信システム10は、内部に仮想スイッチBおよびVMが構成される物理サーバAと、スイッチやハブ等のネットワーク装置2とを含むクラウド基盤装置が通信回線で接続され、クラウド基盤のネットワークとして構成される。具体的に、物理サーバA上の複数のVMが仮想スイッチBのポートを介してネットワーク装置2に接続される。
【0014】
本実施形態では、物理サーバA1上のVM1をパケットモニタリングの対象とする。この場合、VM1をネットワークに接続する仮想スイッチB1のポートとトンネル終端装置3との間に、予めGRE(Generic Routing Encapsulation)プロトコル用の通信路であるトンネルC1を設定する。そして、VM1が接続されるポートを流通するパケットのコピーをGREプロトコルでカプセル化(以下、GREカプセル化と称する。)し、トンネルC1を経由してモニタリング装置1に転送する。
【0015】
また、ライブマイグレーションによりVM1の移動先となる物理サーバA2上の仮想スイッチB2のポートとトンネル終端装置3との間にも、予めトンネルC2を設定する。すなわち、仮想スイッチB2の移動後のVM1に対応するポートを流通するパケットのコピーをGREカプセル化して、トンネルC2を経由してモニタリング装置1に転送するように設定する。これにより、ライブマイグレーションによりVM1が移動した後には、移動先の物理サーバA2上の仮想スイッチB2のポートを経由したVM1のパケットモニタリングを継続することができる。
【0016】
なお、モニタリング装置1とトンネル終端装置3とが直接接続されてもよい。または、モニタリング装置1がトンネル終端機能を備えてもよい。この場合、
図2に例示するように、
図1のトンネル終端装置3の代わりに、トンネル終端機能を備えたモニタリング装置1が配置される。
【0017】
本実施形態のモニタリング装置1において、
図2に破線で示す従来のポートミラートラフィックT1が生じない。そのため、
図2に点線で示す別のVM(
図2の例ではVM2)の通信トラフィックT0を圧迫することがない。また、VM1がライブマイグレーションにより物理サーバA1から物理サーバA2へ移動した後にも、同様のポートミラートラフィックT2が生じないため、物理サーバA2上の他のVMの通信トラフィックに影響を及ぼさない。さらに、VM1の移動先の物理サーバA2とモニタリング装置1との間に予めトンネルC2を設定してポートミラーを行なえるようにしておく。したがって、ライブマイグレーションがあってもポートミラートラフィックが継続する。
【0018】
[モニタリング装置の構成]
次に、
図3を参照して本実施形態のモニタリング装置1の構成について説明する。モニタリング装置1は、ワークステーションやパソコン等の汎用コンピュータで実現され、装置内部のCPU(Central Processing Unit)等の演算処理装置がメモリに記憶された制御プログラムを実行することによって、制御部として機能する。
【0019】
また、モニタリング装置1は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される、リソースデータベース(DB)141と設備DB142とを備える。
【0020】
リソースDB141は、クラウド基盤装置の動的な状態の情報を管理する。具体的に、リソースDB141には、例えば、クラウド基盤装置の生死、ユーザに割り当てられているCPUやメモリ等のユーザ属性に関する情報、通信量や使用中の通信帯域またはネットワークポートのUp/Down等のネットワークに関する情報等が含まれる。これらの情報は、リソース管理部14がリソース監視部15、リソース設定部16、およびモニタリング設定部13から取得して適時に更新する。
【0021】
設備DB142は、クラウド基盤装置の静的な設備の情報を管理する。具体的に、設備DB142には、クラウド基盤装置の台数、CPUの種類や数、メモリ、ストレージ、NIC(Network Interface Card)数や接続される回線帯域等のネットワークに関する情報等が含まれる。
【0022】
モニタリング装置1は、制御部の制御により、仮想スイッチB1のポートとの間にトンネルC1を設定する。また、モニタリング装置1は、トンネルC1の回線帯域が、仮想スイッチB1のポートを流通するパケットのトラフィックをコピーしたポートミラートラフィックの通信帯域を充足するか否かを判定する。充足しないと判定した場合、モニタリング装置1は、ユーザ指示に応じてVM1を物理サーバA1とは異なる物理サーバA2へ移動させ、移動に先立って移動先の物理サーバA2の仮想スイッチB2のポートとの間にトンネルC2を設定させる。また、モニタリング装置1は、トンネルC(C1,C2)に転送されたポートミラートラフィックを監視する。
【0023】
制御部は、具体的に、
図3に示すように、ユーザ入出力処理部11、モニタリング判断部12、モニタリング設定部13、リソース管理部14、リソース監視部15、およびリソース設定部16を含んで構成される。
【0024】
ユーザ入出力処理部11は、モニタリング対象のポート、他の通信トラフィックへの影響度合い、モニタリングの品質、およびVMの移動の可否を指定するモニタリング実施指示のユーザ入力を受け付けて、モニタリング判断部12に通知する。また、ユーザ入出力処理部11は、リソース管理部14からクラウド基盤装置の設備情報および状態の情報を受け取って、ユーザに通知する。
【0025】
モニタリング判断部12は、判定部および調整部として、通知されたモニタリング実施指示の内容と、リソース管理部14から受信したクラウド基盤装置の設備情報および状態情報を基に、モニタリング実施の可否を判断する。例えば、モニタ通信帯域と、ポートミラートラフィックに充当できる回線帯域である環境の残帯域とを比較して、モニタ通信帯域が環境の残帯域以下の場合にモニタリング実施が可能と判断する。詳細については後述する。また、モニタリング判断部12は、モニタリング設定部13にモニタリング実施を指示する。また、モニタリング判断部12は、リソース設定部16にVMの移動を指示する。
【0026】
モニタリング設定部13は、設定部として、モニタリング判断部12からモニタリング実施指示を受信した場合、指定されたクラウド基盤装置へのトンネルを設定し、モニタリングの開始または終了をクラウド基盤装置に指示する。また、モニタリング設定部13は、モニタリング設定により発生したクラウド基盤装置の状態の変化をリソース管理部14に通知する。
【0027】
リソース管理部14は、リソースDB141および設備DB142に格納される情報を管理する。具体的に、リソース管理部14は、クラウド基盤装置の状態が変化した場合に、リソース監視部15、リソース設定部16、およびモニタリング設定部13からクラウド基盤装置の状態の変化の通知を受け付けて、リソースDB141に記録する。また、リソース管理部14は、クラウド基盤装置の設備情報を設備DB142に記録する。また、リソース管理部14は、ユーザ入出力処理部11およびモニタリング判断部12に、クラウド基盤装置の状態の変化を通知する。
【0028】
リソース監視部15は、クラウド基盤装置の生死、CPU、メモリ、通信量およびネットワークポートのUp/Down等の状態を定期的に監視して、クラウド基盤装置の状態に変化が生じた場合に、状態の変化の通知を受け付ける。また、リソース監視部15は、取集したクラウド基盤装置の状態の変化をリソース管理部14に通知する。また、リソース監視部15は、監視部として、トンネルを流通するポートミラートラフィックを監視する。
【0029】
リソース設定部16は、VMの作成、削除または移動、ポートミラートラフィック用の通信路の作成、削除または変更をクラウド基盤装置に指示する。また、リソース設定部16は、指示によりクラウド基盤装置の状態の変化が生じた場合に、リソース管理部14に通知する。
【0030】
[モニタリング処理手順]
次に、
図4を参照して、モニタリング装置1におけるモニタリング処理手順について説明する。
図4に示すように、まず、モニタリング装置1のユーザ入出力処理部11が、ユーザからのモニタリング実施指示を受信して、モニタリング判断部12がメモリ等に保持する(S1)。ここで、モニタリング実施指示には、モニタリング対象のポートの他、他の通信トラフィックへの影響度合い、モニタリングの品質、パケットサイズ、およびVMの移動の可否等の、モニタリングに関するユーザ指示の内容が含まれる。他の通信への影響度合いには、例えば「ユーザ通信帯域は保証」等が設定される。モニタリングの品質には、例えば「モニタ品質は高品質」等が設定される。パケットサイズでは、後述するパケット調整を行なう場合に参照される情報が指定される。例えば、Ethernet(登録商標)フレームのバイト数やEthernetフレーム内のプロトコルヘッダ等が指定される。VMの移動の可否には、例えば「VM移動可」等が設定される。
【0031】
モニタリング判断部12は、ポートミラートラフィック用のネットワークの帯域を調整するモニタリング調整処理(S2〜S9)を実行する。具体的に、モニタリング判断部12は、リソースDB141および設備DB142を参照し、モニタリング対象のポートのトラフィックと、環境すなわちポートミラートラフィック用の回線のリソースを確認する(S2)。そして、モニタリング判断部12は、モニタ通信帯域すなわちモニタリング対象のポートのトラフィックの通信帯域と、環境の残帯域すなわちポートミラートラフィックに充当できる回線帯域とを比較する(S3)。
【0032】
比較の結果、モニタ通信帯域が環境の残帯域以下の場合(S3,Yes)、モニタリング判断部12は、モニタリング実施可と判断し、モニタリング設定部13にモニタリング実施を指示する。これにより、モニタリング調整処理が終了し、モニタリング処理はモニタリング設定処理(S10)に移行する。
【0033】
一方、モニタ通信帯域が環境の残帯域を超過する場合(S3,No)、モニタリング判断部12は、まず、メモリ等に保持されているモニタリング実施指示に含まれるVMの移動の可否を確認する(S4)。
【0034】
VMの移動が不可である場合には(S4,No)、モニタリング判断部12は、後述するステップS8に処理を進める。一方、VMの移動が可である場合に(S4,Yes)、モニタリング判断部12は、モニタ通信帯域とユーザ通信帯域との合計の帯域を確保できるVMの移動先を検索する(S5)。具体的に、モニタリング判断部12は、リソースDB141のユーザ属性に関する情報および設備DB142を参照し、モニタ通信帯域とユーザ通信帯域とを導出する。そして、モニタリング判断部12は、モニタ通信帯域とユーザ通信帯域との合計の帯域を確保するために必要な拡張リソースを算出する。また、モニタリング判断部12は、各移動先候補について必要な拡張リソースを確保できるか否かを判断する(S6)。
【0035】
必要な拡張リソースを確保できるVMの移動先がある場合には(S6,Yes)、モニタリング判断部12は、VMの移動を決定し(S7)、ステップS2の処理に戻して移動先の環境のリソースを確認する。一方、VMの移動先がない場合には(S6,No)、モニタリング判断部12は、メモリに保持されているモニタリング実施指示に含まれるモニタリングの品質を参照し、モニタリングの品質を下げることができるか否かを確認する(S8)。
【0036】
モニタリングの品質を下げることができない場合には(S8,No)、モニタリング判断部12は、モニタリング実施不可と判断し、一連のモニタリング処理を終了する。
【0037】
一方、モニタリングの品質を下げることができる場合には(S8,Yes)、モニタリング判断部12は、モニタリングの品質を低下させる調整処理を行う(S9)。具体的に、モニタリグ判断部12は、モニタリング実施指示に含まれるパケットサイズの指定に応じて、パケットサイズを調整してモニタリング品質を低下させる。
【0038】
例えば、Ethernetフレームのバイト数が指定された場合、モニタリング判断部12は、
図5に例示するように、Ethernetフレームの先頭から指定のバイト数(
図5ではxバイト)の部分を保持し、後続する部分を削除してパケットサイズを調整する。あるいは、Ethernetフレーム内のプロトコルヘッダが指定された場合、モニタリング判断部12は、
図6に例示するように、指定されたプロトコルヘッダ(
図6ではTCP)まで保持し、後続するプロトコルヘッダおよびペイロードを削除してパケットサイズを調整する。
【0039】
ステップS10のモニタリング設定処理では、モニタリング設定部13が、モニタリング判断部12からモニタリング実施指示を受信して、クラウド基盤装置のモニタ通信帯域のリソースを予約する。具体的に、モニタリング設定部13は、指定された物理サーバAのポートとの間にGREプロトコル用のトンネルCを設定する。このトンネルは、例えばパケットモニタリング実施の期間に限定されて設定される。
【0040】
トンネルを設定した後、モニタリングが実施される(S11)。具体的に、モニタリング設定部13がクラウド基盤装置に対して、モニタリング開始を指示する。これによりリソース監視部15によるモニタリングが開始される。また、モニタリング設定部13がクラウド基盤装置に対してモニタリング終了を指示すると、モニタリングが終了する。これにより、一連のモニタリング処理が終了する。
【0041】
なお、上記ステップS6の処理において、必要な拡張リソースを確保できる複数の移動先候補がある場合、モニタリング判断部12は、候補のリストを保持する。また、リソース設定部16が移動に先立って移動先の物理サーバA2の場所をモニタリング判断部12に通知する機能を具備する場合には、モニタリング判断部12は、通知を受け付けて、ステップS10の処理においてモニタリング設定部13に、通知された物理サーバA2の仮想スイッチB2のポートとの間にトンネルC2を設定させる。一方、リソース設定部16が移動に先立って移動先の物理サーバA2の場所をモニタリング判断部12に通知する機能を具備しない場合には、モニタリング判断部12は、ステップS10の処理においてモニタリング設定部13に候補ごとにトンネルC2を設定させる。
【0042】
以上、説明したように、本実施形態のモニタリング装置1は、仮想スイッチB1のポートとの間にトンネルC1を設定する。また、モニタリング装置1は、トンネルC1の回線帯域が、仮想スイッチB1のポートのポートミラートラフィックの通信帯域を充足するか否かを判定し、充足しないと判定した場合、モニタリング装置1は、VM1を物理サーバA1とは異なる物理サーバA2へ移動させ、移動に先立って移動先の物理サーバA2の仮想スイッチB2のポートとの間のトンネルC2を設定する。また、モニタリング装置1は、トンネルC(C1,C2)に転送されたポートミラートラフィックを監視する。
【0043】
これにより、クラウド基盤のネットワークにおいて、仮想スイッチB1の任意のポートについて、指定のモニタリングの品質を維持してパケットモニタリングを行うことができる。また、VMをライブマイグレーションにより回線帯域に余裕のある物理サーバA2に移動させる場合にも、予め移動先の仮想スイッチB2との間にトンネルC2を設定することにより、ポートミラートラフィックの監視が継続される。また、ポートミラートラフィックがユーザ通信帯域を圧迫することがないので、ユーザ通信の品質を低下させることがない。
【0044】
また、モニタリング判断部12は、複数のVMの移動先候補がある場合、候補ごとにトンネルC2を設定させる。これにより、VMの移動に伴って確実にポートミラートラフィックが継続し、パケットモニタリングを継続して行える。
【0045】
また、モニタリング判断部12は、ポートミラートラフィックの通信帯域を充足するVMの移動先がない場合、ユーザの要望に応じてパケットサイズを調整してポートミラートラフィックの通信帯域を変更する。これにより、ユーザの要望に応じて、パケット数を減らすことなくモニタ通信帯域を削減してパケットモニタリングを継続して行える。
【0046】
[他の実施形態]
[プログラム]
上記実施形態に係るモニタリング装置1が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、係るプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、モニタリング装置1と同様の機能を実現するモニタリングプログラムを実行するコンピュータの一例を説明する。
【0047】
図7に示すように、モニタリングプログラムを実行するコンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0048】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
【0049】
ここで、
図7に示すように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1031やメモリ1010に記憶される。
【0050】
また、モニタリングプログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明したモニタリング装置1が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1031に記憶される。
【0051】
また、モニタリングプログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0052】
なお、モニタリングプログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、モニタリングプログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0053】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。