説明

データサンプリング装置、方法、及び、プログラム

【課題】パケット信号のデータ種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することを目的とする。
【解決手段】上記課題を解決するため、データサンプリング装置は、データ信号の種別に応じて、受信したデータ信号を分類する分類部と、分類された該データ信号をそれぞれ記憶する、先入れ先出し型の複数の記憶部と、一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算する解析部と、該解析部により計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングするサンプリング部とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを伝搬するデータ信号のトラフィックをモニタするデータサンプリング装置、方法、及び、プログラムに関する。
【背景技術】
【0002】
仮想マシンが動作する大規模なシステムを構築する場合、複数のサーバをネットワーク接続する。システムの規模が大きくなるほど、ネットワーク構成は複雑化する。複雑なネットワークを管理するため、sFlow(登録商標)などのトラフィック管理技術が用いられる。
【0003】
sFlowによるトラフィック管理において、sFlowのモニタ機能を実装したノードは、ノードを通過するデータをサプリングする。ノードはサンプリングしたデータに基づいて、通信量やパケットのヘッダ情報などの監視情報をsFlowの管理ノードに送信する。管理ノードは各ノードから受信した監視情報に基づいて、システム全体のトラフィックを管理することが出来る。以下の特許文献1および2には、ネットワークに流れるパケットのサンプリングに関する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−51736号公報
【特許文献2】特開2006−345345号公報
【特許文献3】特開2008−141565号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
通信量やパケットのヘッダ情報などに関する監視情報の精度は、サンプリングしたデータの数が多いほど高くなる。監視対象のポートを通過するパケット信号のデータ種別が複数から成り、それぞれのデータ種別の受信頻度にばらつきがある場合、受信頻度の低いデータ種別に関する監視情報の精度は低くなる。また、監視ポートを通過するパケット信号のトラフィック量の増減に応じて、全体の監視情報の精度も変化する。
【0006】
本技術では、パケット信号のデータ種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、データサンプリング装置は、データ信号の種別に応じて、受信したデータ信号を分類する分類部と、分類された該データ信号をそれぞれ記憶する、先入れ先出し型の複数の記憶部と、一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算する解析部と、該解析部により計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングするサンプリング部とを有する。
【発明の効果】
【0008】
実施形態によれば、パケット信号のデータ種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することが出来る。
【図面の簡単な説明】
【0009】
【図1】無線通信システム1のブロック図である。
【図2】SW4の機能ブロック図である。
【図3】SW4のハードウェアブロック図である。
【図4】分類テーブル15に基づいて、SW4が受信したパケット信号を各キュー160〜16nに振り分ける処理を説明する図である。
【図5】パケット信号のサンプル数に対するエラー率を示すグラフである。
【図6】SW4におけるパケット信号のサンプリング制御を説明するためのシーケンス図である。
【発明を実施するための形態】
【0010】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【0011】
図1は、データセンタ1のシステム構成図である。データセンタ1は複数のノードをネットワーク接続することで、リソースを共有するシステムである。データセンタ1はデータセンタネットワーク2、管理ノード3を有する。データセンタネットワーク2は、データセンタ1を構成するネットワークシステムである。管理ノード3はデータセンタネットワーク2のトラフィックを管理するためのノードである。なお本実施の形態において、データ信号はパケット単位で伝搬するパケット信号とする。
【0012】
データセンタネットワーク2は、スイッチ(SW)4、サーバ6を有する。SW4はネットワークを伝搬するパケット信号の接続先を切り替える。サーバ6は複数のユーザにリソースを提供する。
【0013】
サーバ6はバーチャルスイッチ(vSW)7、バーチャルマシン(VM)8を有する。vSW7はサーバ6で動作する仮想スイッチである。VM8はサーバ6で動作する仮想マシンである。1つのサーバ6で複数のVM8を動作させることにより、1つのサーバ6で複数のOS(Operating System)や異なるアーキテクチャ用のソフトウェアを動作させることが出来る。
【0014】
管理ノード3はそれぞれのSW4およびサーバ6と管理用ネットワークで接続されている。各SW4および各サーバ6は例えばsFlowによるトラフィックのモニタリング情報を管理ノード3へ送信する。管理ノード3は各SW4および各サーバ6から受信したモニタリング情報に基づいて、データセンタネットワーク2全体のネットワークを管理することが出来る。
【0015】
管理用ネットワークは、本実施の形態に示すように、パケット信号を伝送するためのパケット信号ネットワークと別個に設けても良い。管理用ネットワークをパケット信号ネットワークと別個に設けることにより、パケット信号のトラフィックに関わらず、安定したトラフィック管理を行うことが出来る。
【0016】
図2はSW4の機能ブロック図である。SW4はトラフィックモニタ部12、データ処理部13を有する。
【0017】
トラフィックモニタ部12はSW4を通過するパケット信号のトラフィックをモニタする。本実施の形態においてトラフィックモニタ部12はSW4の内部に実装されているが、トラフィックモニタ装置として、SW4と独立した装置としてもよい。
【0018】
データ処理部13はSW4の1つのポートに入力されたパケット信号を他のポートへ切り替えて出力する。本実施の形態においてSW4に実装されたデータ処理部13はスイッチとしての機能を有する。データ処理部13は、ハブやルータとしてのデータ処理機能を実行する部分であってもよい。
【0019】
トラフィックモニタ部12は分類部14、分類テーブル15、解析部11、キュー160〜16n、サンプリング部180〜18n、出力制御部17を有する。
【0020】
分類部14は分類テーブル15に基づいてSW4に入力されたパケット信号をデータ種別ごとに各キュー160〜16nに振り分ける。分類テーブル15はパケット信号のデータ種別とそれに対応するキュー160〜16nの送付先を定義する。ここで、nは‘0’から始まる整数である。分類テーブル15についての詳細は後述する。
【0021】
キュー160〜16nはそれぞれ、先入れ先出し(FIFO:First In First Out)型の記憶部である。キュー160〜16nはそれぞれ、分類部14から分類されたパケット信号を受信すると、解析部11にパケット信号の受信を通知する通知信号を送信する。
【0022】
解析部11は各キュー160〜16nから受信した通知信号の受信回数をキュー160〜16nごとに記録する。解析部11は一定時間ごとに、それぞれのキュー160〜16nから受信した通知信号の合計受信回数、およびそれぞれのキュー160〜16nから受信したデータ種別ごとの通知信号に基づいて、全体のパケット量に対するデータ種別ごとのトラフィック量を算出する。解析部11はデータ種別ごとのトラフィック量の算出結果に基づいて、データ種別ごとのサンプリングレートを決定する。トラフィック量の算出結果に基づくサンプリングレートの決定方法の詳細については後述する。なお、本実施の形態ではデータ種別ごとのパケット信号の受信回数に基づいてサンプリングレートを決定しているが、一定時間ごとのパケット信号のトラフィック量を算出することにより、データ種別ごとのサンプリングレートを決定しても良い。
【0023】
解析部11は決定したサンプリングレートを通知するレート信号をそれぞれのキュー160〜16nに設けられたサンプリング部180〜18nに送信する。サンプリング部180〜18nはキュー160〜16nに蓄積されたデータ種別ごとのパケット信号のうち、レート信号で指定されたサンプリングレートでパケット信号をサンプリングする。サンプリング部180〜18nはサンプリングしたパケット信号であるサンプリング信号を出力制御部17へ送信する。なおサンプリング部180〜18nはサンプリングしたパケット信号の一部を出力制御部17へ送信しても良いし、全部を送信してもよい。パケット信号の一部を送信することにより、SW4から管理ノード3へ送信するネットワークトラフィック量を軽減することが出来る。
【0024】
出力制御部17はそれぞれのサンプリング部180〜18nから受信した複数のサンプリング信号をひとつの信号として管理ノード3に送信する。出力制御部17は例えばマルチプレクサである。
【0025】
以上の通りトラフィックモニタ部12は、パケット信号のデータ種別に基づいてデータ種別ごとのサンプリングレートを最適化することにより、パケット種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することが出来る。
【0026】
図3は、SW4のハードウェアブロック図である。SW4は制御部21、記憶部22、データ処理部13を有する。
【0027】
記憶部22は分類プログラム23、解析プログラム24、出力制御プログラム25、分類テーブル15、サンプリングプログラム28n、キュープログラム26nを記憶する。
【0028】
制御部21は記憶部22に記憶されたプログラムを実行することにより、種々の機能を実現する。制御部21は記憶部22から読み出した分類プログラム23を実行することにより、分類部14として機能する。制御部21は記憶部22から読み出した解析プログラム24を実行することにより、解析部11として機能する。制御部21は記憶部22から読み出した出力制御プログラム25を実行することにより、出力制御部17として機能する。制御部21は記憶部22から読み出したサンプリングプログラム28nを実行することにより、サンプリング部180〜18nとして機能する。制御部21は記憶部22から読み出したキュープログラム26nを実行することにより、キュー160〜16nとして機能する。
【0029】
データ処理部13はトラフィックモニタ部12と同様に、記憶部22に記憶したデータ処理プログラムを制御部21で実行することにより実現されても良いし、トラフィックモニタ部12と別個の制御部および記憶部を用いても良い。
【0030】
以上の通りSW4は、記憶部22に記憶したプログラムを制御部21で実行することにより、SW4に要求される各機能を実現することが出来る。なおSW4は、ASIC(Application Specific Integrated Circuit)などの集積回路によって実現しても良い。
【0031】
図4は分類テーブル15に基づいて、SW4が受信したパケット信号を各キュー160〜16nに振り分ける処理を説明する図である。図4のAは分類テーブル15を示す。図4のBはSW4が受信したパケット信号を示す。図4のCは各キュー160〜16nに分類されたパケット信号を示す。
【0032】
図4のAの分類テーブル15について、列31はポート番号を示す。ポート番号は、通信相手のコンピュータ上で動作する複数のプログラムのうちの一つを通信相手として指定するための番号である。列32はクラス番号を示す。クラス番号は各キュー160〜16nの振り分け先を示しており、図2のSW4における各キュー160〜16nの番号‘n’に対応する。列33は、列31のポート番号に対応する各パケットの解説を示す。
【0033】
図4のAについて、行341は、ポート番号‘80’のパケット信号はクラス番号‘1’のキュー161に振り分け、このパケット信号はHTTP(HyperText Transfer Protocol)であることを示す。行342は、ポート番号‘22’のパケット信号はクラス番号‘2’のキュー162に振り分け、このパケット信号はSSH(Secure Shell)であることを示す。行343および行344は、ポート番号‘20’および‘21’のパケット信号はクラス番号‘3’のキュー163に振り分け、このパケット信号はFTP(File Transfer Protocol)であることを示す。行345は、ポート番号‘23’のパケット信号はクラス番号‘4’のキュー164に振り分け、このパケット信号はTelnetであることを示す。
【0034】
図4のBのSW4が受信したパケット信号について、列35はパケット信号の受信開始からの経過時間を示す。列36はパケット信号の送信元アドレスを示す。列37はパケット信号の送信先アドレスを示す。本実施の形態において送信元アドレスおよび送信先アドレスはMACアドレスで表記されているが、IPアドレスで表記されても良い。
【0035】
列38はポート番号を示す。列38のポート番号は、図4のAの分類テーブル15における列31のポート番号に対応する。列39はペイロードを示す。ここでペイロードは、パケット信号のヘッダ部分を除いたデータ本体を示す。
【0036】
図4のBにおいて、行401は、パケット信号の受信開始から3ms経過後に、アドレス‘00:00:00:00:00:01’のノードからアドレス‘00:00:00:00:00:02’のノードへ送信するペイロード‘get index.html’のパケット信号をポート番号‘80’で受信することを示す。行402は、パケット信号の受信開始から4ms経過後に、アドレス‘00:00:00:00:00:01’のノードからアドレス‘00:00:00:00:00:02’のノードへ送信するペイロード‘get application.cgi’のパケット信号をポート番号‘80’で受信することを示す。行403は、パケット信号の受信開始から10ms経過後に、アドレス‘00:00:00:00:00:03’のノードからアドレス‘00:00:00:00:00:04’のノードへ送信するペイロード‘login:’のパケット信号をポート番号‘22’で受信することを示す。行404は、パケット信号の受信開始から11ms経過後に、アドレス‘00:00:00:00:00:01’のノードからアドレス‘00:00:00:00:00:02’のノードへ送信するペイロード‘get image.jpg’のパケット信号をポート番号‘80’で受信することを示す。
【0037】
図4のCは、図4のBに示すパケット信号を図4のAの分類テーブル15に基づいて、各キュー160〜16nに分類されたパケット信号の様子を示す。キュー160〜16nはそれぞれFIFO型のメモリ領域なので、古いデータから順に排出する。
【0038】
図4のBにおいて、行401、402、404のパケット信号のポート番号は‘80’である。図4のAにおいて、ポート番号‘80’のクラス番号は‘1’である。よって、図4のBにおける行401、402、404に示すパケット信号は、図4のCにおけるパケット信号41、42、43の通りキュー161に格納される。
【0039】
また、行403のパケット信号のポート番号は‘22’である。図4のAにおいて、ポート番号‘22’のクラス番号は‘2’である。よって、図4のBにおける行403に示すパケット信号は、図4のCにおけるパケット信号44の通りキュー162に格納される。図4のBにおいて、ポート番号‘20’のパケット信号は受信されていないため、キュー163には何も格納されていない。
【0040】
以上の通りSW4は、受信したパケット信号のポート番号および分類テーブル15に基づいて、各データ種別に対応するキュー160〜16nにパケット信号を振り分けることが出来る。
【0041】
図5はパケット信号のサンプル数に対するエラー率を示すグラフである。図5に示す通り、SW4におけるエラー率は、サンプル数の二乗の逆数に比例する。
【0042】
本実施の形態においてSW4は、受信したパケット信号をポート番号別に分類後、ポート番号ごとのパケット信号の数に応じて、サンプル数を変化させることが出来る。よって、あるポート番号におけるパケット信号の数が少なくても、サンプル数を多くすることにより、エラー率が一定値以下になるサンプル数に到達するまでの時間を短縮することが出来る。
【0043】
図6はSW4におけるパケット信号のサンプリング制御を説明するためのシーケンス図である。SW4におけるパケット信号の、データ種別ごとのサンプリング数制御は、分類部14、解析部11、サンプリング部180〜18nにより実行される。
【0044】
分類部14は外部ノードから送信されたパケット信号を受信する(S11)。分類部14は受信したパケット信号のヘッダ部分のポート番号を分類テーブル15のポート番号と比較する(S12)。2つのポート番号が一致した場合(S13:YES)、分類部14は変数nに対し、分類テーブル15のポート番号に対応するクラス番号を入力する(S14)。2つのポート番号が一致しない場合(S13:NO)、分類部14は変数nに対し、‘0’を入力する(S15)。
【0045】
分類部14は変数nに入力した値を解析部11に通知する(S16)。分類部14は変数nに対応するキュー160〜16nにパケット信号を振り分ける(S17)。
【0046】
以上の通り分類部14は、受信したパケット信号のヘッダ部分および分類テーブル11に基づいて、パケット信号を各キュー160〜16nへ振り分けることが出来る。
【0047】
解析部11は、分類部14から通知された変数nを受信する(S21)。解析部11は受信した変数nに対応する変数Tnを‘1’増加させる。nの受信開始から一定時間経過していない場合(S23:NO)、解析部11は分類部14から通知される変数nの受信処理を繰り返す。nの受信開始から一定時間経過している場合(S23:YES)、解析部11は変数Tnの合計値である全流量Sを算出する(S24)。なお、ステップS23の判定処理において解析部11は、受信したトラフィック量が一定値以上となったか否かを判定基準としても良い。
【0048】
解析部11は変数Tnの合計値である全流量Sに対する各Tnの比である、流量比Tn/Sを算出する(S25)。前述の通りエラー率は、データサンプリング数の二乗の逆数に比例する。よって解析部11はサンプリングレートとしてTn/Sを算出する(S26)。流量比の二乗に基づいてサンプリングレートを決定することにより、より適正なサンプリングレートをデータ種別ごとに設定することが出来る。
【0049】
解析部11は算出したサンプリングレートを変数nに対応するサンプリング部180〜18nに通知する(S27)。サンプリングレート算出後、解析部11は変数Tnを初期化する(S28)。
【0050】
以上の通り解析部11は、パケット信号のそれぞれのデータ種別に応じたサンプリングレートを算出することが出来る。
【0051】
解析部11から変数Tnに基づくサンプリングレートを受信したサンプリング部180〜18nは、対応するキュー160〜16nのメモリ領域をチェックする(S31)。キュー160〜16nが空の場合(S32:YES)、サンプリング部180〜18nはサンプリング処理を終了する。キュー160〜16nが空でない場合(S32:NO)、サンプリング部180〜18nは解析部11から受信したサンプリングレートに基づいてキュー160〜16nからサンプリングしたサンプリングデータを出力制御部17へ出力する(S33)。各サンプリング部180〜18nはそれぞれ別個に以上の処理を実行し、出力制御部17へサンプリングデータを出力する(S33)。
【0052】
以上の通りサンプリング部180〜18nは、解析部11から通知されたサンプルレートに基づいて、キュー160〜16nに蓄積されたパケット信号のサンプルデータを出力制御部17へ出力することが出来る。
【0053】
以上、SW4のトラフィックモニタ部12は、分類部14、解析部11、サンプリング部180〜18nを有することにより、受信したパケット信号のデータ種別ごとのトラフィック量に応じて、最適なサンプリングレートに基づくデータサンプリングを実行することが出来る。
【符号の説明】
【0054】
1 データセンタ
2 データセンタネットワーク
3 管理ノード
4 SW
6 サーバ
7 vSW
11 解析部
12 トラフィックモニタ部
13 データ処理部
14 分類部
15 分類テーブル
160〜16n キュー
17 出力制御部
180〜18n サンプリング部
21 制御部
22 記憶部

【特許請求の範囲】
【請求項1】
データ信号の種別に応じて、受信したデータ信号を分類する分類部と、
分類された該データ信号をそれぞれ記憶する、先入れ先出し型の複数の記憶部と、
一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算する解析部と、
該解析部により計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングするサンプリング部と
を有するデータサンプリング装置。
【請求項2】
該解析部は該全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率を二乗した値に基づいてサンプリングレートを計算する、請求項1に記載のデータサンプリング装置。
【請求項3】
データ信号の種別に応じて、受信したデータ信号を分類し、
分類された該データ信号をそれぞれ、先入れ先出し型の複数の記憶部に記憶し、
一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算し、
計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングする
データサンプリング方法。
【請求項4】
受信したデータ信号の種別ごとのクラスを記憶する記憶部にアクセス可能なコンピュータに、該データの種別ごとのサンプリングレートを設定する処理を実行させるデータサンプリングプログラムであって、該コンピュータに、
該データ信号の種別および該記憶部に記憶した種別ごとのクラスに応じて、受信したデータ信号を分類させ、
分類された該データ信号をそれぞれ、先入れ先出し型の複数のキューに記憶させ、
一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算させ、
計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングさせる
データサンプリングプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−93735(P2013−93735A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−234423(P2011−234423)
【出願日】平成23年10月25日(2011.10.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】