(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6035601
(24)【登録日】2016年11月11日
(45)【発行日】2016年11月30日
(54)【発明の名称】パケットリプレイ方法
(51)【国際特許分類】
G06F 11/34 20060101AFI20161121BHJP
G06F 11/36 20060101ALI20161121BHJP
G06F 13/00 20060101ALI20161121BHJP
【FI】
G06F11/34 157
G06F11/34 195
G06F11/36 196
G06F13/00 351M
【請求項の数】10
【全頁数】11
(21)【出願番号】特願2012-223804(P2012-223804)
(22)【出願日】2012年10月9日
(65)【公開番号】特開2014-78053(P2014-78053A)
(43)【公開日】2014年5月1日
【審査請求日】2015年2月10日
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】100100310
【弁理士】
【氏名又は名称】井上 学
(74)【代理人】
【識別番号】100098660
【弁理士】
【氏名又は名称】戸田 裕二
(74)【代理人】
【識別番号】100091720
【弁理士】
【氏名又は名称】岩崎 重美
(72)【発明者】
【氏名】森 拓郎
(72)【発明者】
【氏名】田中 修一
(72)【発明者】
【氏名】神 祐介
【審査官】
多賀 実
(56)【参考文献】
【文献】
特開2012−133413(JP,A)
【文献】
特開2005−175915(JP,A)
【文献】
特開平09−062601(JP,A)
【文献】
特開2003−283564(JP,A)
【文献】
米国特許出願公開第2009/0156314(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/28−11/36
G06F13/00
(57)【特許請求の範囲】
【請求項1】
パケット関係性分析を用いた、パケットリプレイ方法であって、
予め、複数のリプレイパターンを記憶しておき、
ノード間で送受信されるパケットをキャプチャし、
キャプチャを開始した時刻であるキャプチャ開始時刻を記憶し、キャプチャされた前記パケットであるキャプチャパケットと前記キャプチャパケットの解析結果であるパケット解析結果と当該キャプチャパケットがキャプチャされた時刻であるキャプチャ完了時刻とを対応付けて記憶し、
前記対応付けられた情報に基づいて、前記複数のリプレイパターンから所定のリプレイパターンを特定し、
特定されたリプレイパターンを用いて再現処理を実行することを特徴とするパケットリプレイ方法。
【請求項2】
請求項1に記載のパケットリプレイ方法において、
前記複数のリプレイパターンは、定時リプレイ、連続リプレイ、時間差連続リプレイ、
応答リプレイおよび時間差応答リプレイであり、
前記再現処理は、前記特定されたリプレイパターンと前記キャプチャパケットより作成されたリプレイ送信パケットを、特定された前記リプレイパターンに基づいたタイミングでリプレイ対象ノードに送信し、前記リプレイ対象ノードから受信した受信パケットと、前記キャプチャパケットを比較することで再現されたかを判断することを特徴とするパケットリプレイ方法。
【請求項3】
請求項2に記載のパケットリプレイ方法において、
前記定時リプレイは、前記キャプチャパケットに関係する関係パケットの受信を行わず、リプレイ開始から前記キャプチャ開始時刻と前記キャプチャ完了時刻との差であるキャプチャ時間が経過した時点で前記リプレイ送信パケットを送信することを特徴とするパケットリプレイ方法。
【請求項4】
請求項2に記載のパケットリプレイ方法において、
前記連続リプレイは、前記キャプチャパケットに関係する関係パケットが送信されたのち、所定時間以内に前記リプレイ送信パケットを送信することを特徴とするパケットリプレイ方法。
【請求項5】
請求項2に記載のパケットリプレイ方法において、
前記時間差連続リプレイは、前記キャプチャパケットに関係する関係パケットが送信されたのち、時間差連続リプレイ時間経過後に前記リプレイ送信パケットを送信し、前記時間差連続リプレイ時間は、前記キャプチャパケットおよび前記関係パケットのそれぞれの前記キャプチャ開始時刻と前記キャプチャ完了時刻との差であるキャプチャ時間の差を用いることを特徴とするパケットリプレイ方法。
【請求項6】
請求項2に記載のパケットリプレイ方法において、
前記応答リプレイは、前記キャプチャパケットに関係する関係パケットを受信したのち、所定時間以内に前記リプレイ送信パケットを送信することを特徴とするパケットリプレイ方法。
【請求項7】
請求項2に記載のパケットリプレイ方法において、
前記キャプチャパケットに関係する関係パケットを受信したのち、時間差応答リプレイ時間経過後に前記リプレイ送信パケットを送信し、前記時間差応答リプレイ時間は、前記キャプチャパケットおよび前記関係パケットのそれぞれの前記キャプチャ開始時刻と前記キャプチャ完了時刻との差であるキャプチャ時間の差を用いることを特徴とするパケットリプレイ方法。
【請求項8】
請求項2乃至7のいずれかに記載のパケットリプレイ方法において、
前記リプレイパターンの特定は、前記キャプチャパケットのヘッダ情報およびペイロード情報および前記パケット解析結果および前記キャプチャ完了時刻および前記キャプチャ開始時刻と前記キャプチャ完了時刻との差であるキャプチャ時間を任意に組み合わせて、パケット関係算出ルールに基づき、実行することを特徴とするパケットリプレイ方法。
【請求項9】
請求項2乃至8のいずれかに記載のパケットリプレイ方法において、
前記リプレイ送信パケットは、当該リプレイ送信パケットを送信する際に、生成されることを特徴とするパケットリプレイ方法。
【請求項10】
請求項2乃至8のいずれかに記載のパケットリプレイ方法において、
前記キャプチャパケットと前記受信パケットを比較する際の判別基準となることを特徴とするパケット比較ルールを有し、当該パケット比較ルールに従って前記再現の判断を実行することを特徴とするパケットリプレイ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数ノード間での通信を再現する計算機システムに関するものである。その中でも特に、パケットキャプチャを利用した再現に関する。また、本発明は、再現された通信による障害等の分析やマイグレーションの際の分析にも適用可能である。
【背景技術】
【0002】
複数のノードで構成され、各ノードが連携をして処理を行う計算機システムにおいては、以前に計算機システムが処理した内容を再度処理(再現)させたい場合がある。その例を2つ挙げる。
【0003】
1つ目は、ある計算機ノードで発生した問題を再現したい場合である。バグ等の要因によって計算機システムが想定外の動作をした場合、問題点の確認や修正後のテストを目的とする。この例では、再度処理する期間が短期かつ処理内容は少数である。
【0004】
2つ目は、ある計算機ノードの後継ノードを開発した際に、これまでと同様の処理を行うか確認する場合である。この例では再度処理する期間が長期かつ処理内容は大量である。
【0005】
この再処理では、起因となっている計算機ノードは1つもしくはごく少数であるにも関わらず、再処理のためには計算機システム全体で同じ処理を実行せねばならず、コストが高いという問題がある。特に、再処理対象の計算機システムが現在サービスを運用している場合には、再処理のためにサービスを停止せねばならず、サービスのクオリティに大きな影響を与える。
【0006】
そこで用いられる技術がパケットのリプレイ技術である。リプレイとは、まず計算機システム内の計算機ノード間でやりとりされている通信パケットをあらかじめキャプチャし記録しておく。ある計算機ノードで再処理を行う場合に、対象の計算機ノード(対象ノード)と、リプレイを行う計算機ノード(リプレイノード)のみを用意する。リプレイノードは複数の計算機ノードを模擬し、記録してある通信パケットのうち対象ノードが受信していたパケットを送信するとこで、キャプチャ時と同様の通信を再現する。
【0007】
一般的なリプレイでは、通信パケットが送信された時刻と通信パケットを関係付けて記録することで、記録された際と同様の時間間隔でのリプレイを実現する。
【0008】
特許文献1には、通信パケットを記録する際に、各計算機ノードの各パケット送信時における受信パケット量を記録する方式が記載されている。リプレイを行う際の各パケットの送信条件は、前述の時刻情報に加え、前述の受信パケット量を用いる。二つの条件が満たされた際にパケットを送信することで、疑似的に応答を行っているかのようなリプレイが可能となる。
【0009】
特許文献2には、各ノード間の通信における要求(リクエスト)と応答(レスポンス)をペアとし、対象ノードが要求を送信したならば、リプレイノードが応答を送信する方式が記載されている。要求と応答が関係付けられることを前提としているが、確実な応答のリプレイが可能となる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2010−205011号公報
【特許文献2】特開2008−97457号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
リプレイにおいては、キャプチャしたい際のパケットに正確であることが望ましい。この正確性とはキャプチャ時の時刻だけではなく、ノード間で行われる要求と応答の間隔も含む。なぜならば、例として、ノードAが送信したパケットをノードBが受信し、ノードB内部で処理を行った後、結果をノードAに送信するような処理において、ノードBを模擬するとする。この際、リプレイする際に時刻情報のみに基づいた場合、ノードAが何らかの要因により遅れてパケットを送信する場合、最悪の場合はノードAの送信前にノードBを模擬したノードがパケットを送信してしまう。これはリクエストを受ける前にレスポンスが返っており、リプレイとして不適切である。
【課題を解決するための手段】
【0012】
上記の課題を解決するために、本発明では、通信におけるリクエストを受けたノードの処理時間も含めて再現するものであり、リプレイパターンを複数用意しておき、キャプチャされたパケットとそのキャプチャされた時刻との関係により、複数のリプレイパターンから1つのパターンを特定し、この内容に従って再現処理を実行する。
【0013】
より具体的な形態を示すと次のとおりである。
パケット間の関係性を算出する装置を用いた、パケットリプレイ装置であって、前記パケットリプレイ装置は、ネットワーク経路上のパケットを複製し転送する機能を有する装置を用い、やり取りされているパケットの複製であるキャプチャパケットを入力とし、キャプチャパケットとキャプチャ時刻を関連付け、パケット関係算出ルールに基づき、前記キャプチャパケット間の関係性であるパケット関係を算出しリプレイパターン5種からパターンを選択し、リプレイ対象ノードに対して、送信パケット作成ルールに基づき、前記キャプチャパケットからリプレイ送信パケットを作成し、前記リプレイパターンに基づいたタイミングで前記リプレイ送信パケットを送信し、前記リプレイ対象ノードからネットワークを介し受信パケットを得た際には、比較ルールに基づき、前記キャプチャパケットと前記受信パケットの内容を比較し、応答すべきリプレイ送信パケットが存在する場合は送信を行う。
【発明の効果】
【0014】
本発明の代表的形態によれば、パケットのリプレイにおいて、要求に対する応答の模擬や、アプリケーションの処理遅延の模擬が可能となる。
【図面の簡単な説明】
【0015】
【
図1A】本発明の一実施の形態におけるパケット関係性解析およびリプレイを行うパケットリプレイ装置のブロック図
【
図1B】本発明の一実施の形態におけるパケットリプレイ装置利用時のシステム構成図
【
図2A】本発明の一実施の形態におけるパケットリプレイの解析処理のフロー
【
図2B】本発明の一実施の形態におけるパケットリプレイの関係性解析処理のフロー
【
図3】本発明の一実施の形態におけるパケット送信部へ渡される追加情報を示す図
【
図4】本発明の一実施の形態におけるパケット受信部へ渡される追加情報を示す図
【
図5】本発明の一実施の形態におけるパケットリプレイの送信要求処理のフロー
【
図6】本発明の一実施の形態におけるパケットリプレイの送信処理のフロー
【
図7】本発明の一実施の形態におけるパケットリプレイの受信処理のフロー
【
図8】本発明の一実施の形態における通信時の変換情報を示す図
【発明を実施するための形態】
【0016】
本発明の代表的な形態は、パケット送受信機能を備える計算機システムにおいて、
パケットリプレイ機能が、外部から前記キャプチャパケットと、パケット関係算出ルールと、パケット生成ルールと、パケット比較ルールとを受付け、パケットリプレイにおける最適な前記リプレイ手法を選択し、前記リプレイ対象ノードに対して前記リプレイ送信パケットを送信することを特徴とする。
【0017】
本発明の代表的な形態では、パケットリプレイ手法を、定時リプレイ、連続リプレイ、時間差連続リプレイ、応答リプレイ、時間差応答リプレイの5種に分類する。
【0018】
定時リプレイはパケットキャプチャ時の時経過時間に基づきリプレイを行い、連続リプレイおよび時間差連続リプレイは前記リプレイパケットの送信を契機にリプレイを行い、応答リプレイおよび時間差応答リプレイは前記対象ノードからのパケット受信を契機にリプレイを行う。
【0019】
以下、図面を参照しながら本発明の一実施形態について、図面を参照して説明する。
図1Aは,実施形態に係わる、パケット関係性解析およびリプレイを行う、パケットリプレイ装置101のブロック図である。以下の各装置は、いわゆる情報処理装置で実現されるものであって、プログラムに従って演算部(CPU)が下記に示す処理を実行するものである。
【0020】
パケットリプレイ装置101は、ある計算機システムでやり取りされていたパケット情報を受け取り、計算機システム内の任意の個数のノードを模擬してパケット情報をリプレイするための装置である。
【0021】
パケットリプレイ装置101は、パケットリプレイ部102と、一般的な計算機資源としてのネットワークインタフェース103、メモリ104、CPU105、記憶装置106、及び、ユーザインタフェース107を有している。
【0022】
ユーザによりユーザインタフェース107から入力される情報のうち、パケット情報はパケット情報受付部108へ送られ、模擬する計算機ノード情報とパケット間関係算出ルールはパケット間関係算出部109へ送られ、パケット送信ルールはパケット送信設定部110へ送られ、パケット比較ルールはパケット比較部111へ送られ、通信変換情報は通信情報変換部へ送られる。また、これらの情報は、各種キューおよびテーブルの形式で記憶装置106に保存される。
【0023】
パケットリプレイ装置101は、さらに、パケット情報解析部112、パケット送信部113、
パケット受信部114、リプレイ結果出力部115を備えている。
パケットリプレイ部102の各部(各機能)は、メモリに記録された所定のコンピュータプログラムを計算機資源上で実行することで実現される。
【0024】
図1Bは、パケットリプレイ装置利用時のシステム構成図である。パケット収集環境120では、各計算機ノード121はネットワーク123を介して相互に通信を行っている。パケット収集装置は計算機ノード121とネットワーク123の間に設置され、通信の内容を取得し、パケット情報124としてパケットリプレイ装置101へ送付する。パケットリプレイ環境125では、パケットリプレイ装置101が、パケット情報124に基づき、計算機ノード121を模擬した通信行う(
図1:126)。
【0025】
図2Aは、パケットリプレイの解析処理のフローである。パケット情報解析部112は、パケット情報を解析し、パケット情報をプロトコルや通信レイヤごとの情報に切り分け、識別子となるパケット識別子を与えた、パケット解析情報を作成する。
【0026】
パケット間関係算出部109は、パケット情報解析部112からパケット解析情報を受け取り、あらかじめ入力されていたパケット間関係算出ルールを用いて、パケット解析情報のリプレイパターンを算出する。リプレイにおいて、パケットリプレイ装置101から送信する必要のあるパケットについては、パケット解析情報と、リプレイパターンと、送信補足情報を合わせてパケット送信部113に登録する。この際、登録したパケットのリプレイパターンが定時リプレイならば(
図2A:201)、そのパケットをタイマ待ち状態として設定する(
図2A:202)。
リプレイにおいて、パケットリプレイ装置101が受信するパケットについては、パケット解析情報と受信補足情報を合わせてパケット受信部114に登録する。
【0027】
図2Bは、パケットリプレイの関係性解析処理のフローである。
パケット間関係算出部109は、パケット解析情報をリプレイする際に用いるリプレイパターンを算出する。パケット間関係解析処理は、比較対象となるパケットに対してループを用い(
図2B:210)、各比較パケットに対し処理を行う。あらかじめ与えられている関係性(
図2B:212)ごとにループを行い(
図2B:211)、入力パケットと比較パケットを各関係性ルールに適用し(
図2B:213)、関係が算出された場合(
図2B:214)、入力パケットのリプレイパターンとリプレイのための補足情報を与える(
図2B:215)(
図3:303)(
図4:402)。どのパケットとも関係性が無かった場合は、リプレイパターンを「定時」とする(
図2B:216)。
【0028】
なお、比較対象とするパケットは、基本的には各解析の開始までに得ていたパケット解析情報全てだが、時間やアドレス情報を用いて対象を絞り込んでもよい。
【0029】
図3は、パケット送信部113へ解析情報が渡される際に、パケット解析情報に加えて与えられる情報である。パケット識別子301はパケット解析情報に含まれる情報であり、パケット間の繋がりを表す場合に用いる。リプレイパターン302は、リプレイによるパケット送信の方式を5種に分類したものである。送信補足情報303には、リプレイに必要な補足情報が記載される。
【0030】
図4は、パケット受信部114へ解析情報が渡される際に、パケット解析情報に加えて与えられる情報である。パケット識別子401はパケット解析情報に含まれる情報であり、パケット間の繋がりを表す場合に用いる。受信補足情報402には、パケット受信の際に応答でリプレイする際に必要な補足情報が記載される。
【0031】
図5は、パケットリプレイの送信要求処理のフローである。
送信処理は、一定時間ごとに、タイマ待ち状態の送信パケットに対してループを用いて行う(
図5:501)。パケットの待ち時間が経過していた場合(
図5:502)対象パケットを送信キューへ入れる(
図5:503)。送信したパケットに続く連続送信パケットが存在する場合(
図5:504)、そのパケットをタイマ待ち状態に設定する(
図5:505)。即座に送信が行われるよう、待ち時間はゼロとする。送信したパケットに続く時間差連続送信パケットが存在する場合(
図5:506)、そのパケットをタイマ待ち状態に設定する(
図5:507)。タイマ待ち時間は、解析の際にパケット間関係算出部109より送信補足情報303として与えられている。
【0032】
図6は、パケットリプレイの送信処理のフローである。この処理は、送信キューに送信パケットが入れられるたびに行う。送信キューから送信パケット(
図6:601)を取り出した後、リプレイシステムに送信ルールが設定されているかどうか調べる(
図6:602)。設定されている場合は送信ルール(
図6:603)に基づき送信パケットを整形(
図6:604)した後、パケットを送信する(
図6:605)。
【0033】
図7は、パケットリプレイの受信処理のフローである。受信処理は、外部ノードからパケットを受信した際に、受信待ち状態の送信パケットに対してループを用いて行う(図:701)
。受信パケットは、比較ルール(
図7:702)を用いて各受信待ちパケットと一致するか比較処理を行う(
図7:703)。二つのパケット一致している場合(
図7:704)は、応答の必要があるかをチェックする。受信待ちパケットが応答でパケットリプレイを行う場合(
図7:705)、対象の送信パケットをタイマ待ち状態に設定する(
図7:706)。即座に送信が行われるよう、待ち時間はゼロとする。時間差応答送信パケットが存在する場合(
図7:707)、そのパケットをタイマ待ち状態に設定する(
図7:708)。タイマ待ち時間は、解析時にパケット間関係算出部109より送信補足情報303として与えられている。
【0034】
なお、ループ対象のパケット解析情報は、時刻や通信路を用いて対象数を絞り込んでもよい。
【0035】
図8は、通信変換情報である。通信変換情報801には、プロトコル802ごとのパラメータ803変換ルールが記述されている。パケットの送信および受信を行う際には変換元情報804を参照し、用いる通信情報が変換元情報804に該当する場合は、変換先情報805へと変換を行ってから送受信の処理を行う。
【0036】
本実施の形態においては、計算機システムの構成に合わせたパケット関係性ルールを作成し、キャプチャしたパケットにルールを適用することでパケットの関係性を算出する。これにより、リプレイの作業効率向上のみならず、キャプチャ対象システムに影響を与えないキャプチャおよびリプレイを実現する。
【産業上の利用可能性】
【0037】
本発明の部分ジョブパターン作成方式は、マイグレーションにおける、部分ジョブパターンごとのコストと移行できる計算機資源の量を示すため、利用者は費用対効果を考慮して最適な部分ジョブパターンを選択することができる。
【符号の説明】
【0038】
101 パケットリプレイ装置
102 パケットリプレイ部
103 ネットワークインタフェース
104 メモリ
105 CPU
106 記憶装置
107 ユーザインタフェース
108 パケット情報受付部
109 パケット間関係算出部
110 パケット送信設定部
111 パケット比較部
112 パケット情報解析部
113 パケット送信部
114 パケット受信部
115 リプレイ結果出力部
116 通信変換情報受付部