(57)【要約】  物理装置内で実行される複数の仮想マシンが、同一の物理装置内で送受信するデータを収集するデータ収集部と、前記データ収集部により収集されたデータを外部装置に出力する通信部と、を備える情報処理装置。
2013111343.tif 000002
【特許請求の範囲】
【請求項１】
物理装置内で実行される複数の仮想マシンが、同一の物理装置内で送受信するデータを収集するデータ収集部と、
前記データ収集部により収集されたデータを外部装置に出力する通信部と、
を備える情報処理装置。
【請求項２】
前記データ収集部は、前記複数の仮想マシンが同一の物理装置内で送受信するデータを、前記複数の仮想マシンが外部装置との間で送受信するデータと区別して収集することを特徴とする、
請求項１記載の情報処理装置。
【請求項３】
前記通信部とは異なる第２の通信部であって、前記複数の仮想マシンが外部装置との間で送受信するデータの入出力を行う第２の通信部を備える、
請求項２記載の情報処理装置。
【請求項４】
前記データ収集部は、第１の観測位置で観測されたデータであって該第１の観測位置において該第１の観測位置に対応付けられた仮想マシンに近づく方向に転送されるデータと、第２の観測位置で観測されたデータであって該第２の観測位置において該第２の観測位置に対応付けられた仮想マシンから遠ざかる方向に転送されるデータと、の組み合わせのうち特定のデータ内容が一致するデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項２記載の情報処理装置。
【請求項５】
前記データ収集部は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンから遠ざかる方向に転送されるデータと、前記第２の通信部が外部装置に送信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項３記載の情報処理装置。
【請求項６】
前記データ収集部は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンに近づく方向に転送されるデータと、前記第２の通信部が外部装置から受信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項３記載の情報処理装置。
【請求項７】
前記データ収集部は、前記複数の仮想マシンと外部装置の間を中継する中継部がデータを受信したとき、該中継部の仮想的な受信ポートと、仮想的な送信ポートの双方が前記複数の仮想マシン側に対応付けられている場合に、該中継部が受信したデータを前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項２記載の情報処理装置。
【請求項８】
請求項３記載の情報処理装置と、
前記第２の通信部との間で送受信したデータのコピーと、前記通信部から受信したデータとを出力するスイッチと、
を備える情報処理システム。
【請求項９】
前記スイッチは、
前記第２の通信部との間でデータの送受信を行うと共に、該送受信したデータのコピーを第２のスイッチに送信する第１のスイッチと、
前記第１のスイッチから受信したデータと、前記通信部から受信したデータとを合わせて出力する前記第２のスイッチと、
を備えることを特徴とする、
請求項８記載の情報処理システム。
【請求項１０】
物理装置内で複数の仮想マシンが実行される情報処理装置の通信データ出力方法であって、
前記情報処理装置が、
前記複数の仮想マシンが同一の物理装置内で送受信するデータを収集し、
前記収集されたデータを外部装置に出力する、
通信データ出力方法。
【請求項１１】
前記収集する処理は、前記複数の仮想マシンが同一の物理装置内で送受信するデータを、前記複数の仮想マシンが外部装置との間で送受信するデータと区別して収集する処理であることを特徴とする、
請求項１０記載の通信データ出力方法。
【請求項１２】
前記出力する処理は、前記複数の仮想マシンが外部装置との間で送受信するデータの入出力を行う第２の通信部とは異なる通信部を用いて前記収集されたデータを外部装置に出力する処理であることを特徴とする、
請求項１１記載の通信データ出力方法。
【請求項１３】
前記収集する処理は、第１の観測位置で観測されたデータであって該第１の観測位置において該第１の観測位置に対応付けられた仮想マシンに近づく方向に転送されるデータと、第２の観測位置で観測されたデータであって該第２の観測位置において該第２の観測位置に対応付けられた仮想マシンから遠ざかる方向に転送されるデータと、の組み合わせのうち特定のデータ内容が一致するデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理である、
請求項１１記載の通信データ出力方法。
【請求項１４】
前記収集する処理は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンから遠ざかる方向に転送されるデータと、前記第２の通信部が外部装置に送信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理である、
請求項１２記載の通信データ出力方法。
【請求項１５】
前記収集する処理は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンに近づく方向に転送されるデータと、前記第２の通信部が外部装置から受信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理であることを特徴とする、
請求項１２記載の通信データ出力方法。
【請求項１６】
前記収集する処理は、前記複数の仮想マシンと外部装置の間を中継する中継部がデータを受信したとき、該中継部の仮想的な受信ポートと、仮想的な送信ポートの双方が前記複数の仮想マシン側に対応付けられている場合に、該中継部が受信したデータを前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理であることを特徴とする、
請求項１１記載の通信データ出力方法。
【請求項１７】
物理装置内で複数の仮想マシンが実行される情報処理装置の通信データ出力プログラムであって、
前記情報処理装置に、
前記複数の仮想マシンが、同一の物理装置内で送受信するデータを収集させ、
前記収集されたデータを外部装置に出力させる、
通信データ出力プログラム。
【請求項１８】
前記収集する処理は、前記複数の仮想マシンが同一の物理装置内で送受信するデータを、前記複数の仮想マシンが外部装置との間で送受信するデータと区別して収集する処理であることを特徴とする、
請求項１７記載の通信データ出力プログラム。
【請求項１９】
前記出力する処理は、前記複数の仮想マシンが外部装置との間で送受信するデータの入出力を行う第２の通信部とは異なる通信部を用いて前記収集されたデータを外部装置に出力する処理であることを特徴とする、
請求項１８記載の通信データ出力プログラム。
【請求項２０】
前記収集する処理は、第１の観測位置で観測されたデータであって該第１の観測位置において該第１の観測位置に対応付けられた仮想マシンに近づく方向に転送されるデータと、第２の観測位置で観測されたデータであって該第２の観測位置において該第２の観測位置に対応付けられた仮想マシンから遠ざかる方向に転送されるデータと、の組み合わせのうち特定のデータ内容が一致するデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理である、
請求項１８記載の通信データ出力プログラム。
【請求項２１】
前記収集する処理は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンから遠ざかる方向に転送されるデータと、前記第２の通信部が外部装置に送信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理である、
請求項１９記載の通信データ出力プログラム。
【請求項２２】
前記収集する処理は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンに近づく方向に転送されるデータと、前記第２の通信部が外部装置から受信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理であることを特徴とする、
請求項１９記載の通信データ出力プログラム。
【請求項２３】
前記収集する処理は、前記複数の仮想マシンと外部装置の間を中継する中継部がデータを受信したとき、該中継部の仮想的な受信ポートと、仮想的な送信ポートの双方が前記複数の仮想マシン側に対応付けられている場合に、該中継部が受信したデータを前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集する処理であることを特徴とする、
請求項１８記載の通信データ出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、通信データ出力方法、及び通信データ出力プログラムに関する。
【背景技術】
【０００２】
従来、サーバ装置等の情報処理装置において、外部装置との間で送受信されるデータに関する情報を収集する処理が行われている。【０００３】
例えば、複数のサーバ装置がスイッチに接続されたシステムであって、ポートミラーリング機能を有するスイッチを通過する全てのパケットをミラーリングしてメッセージ分析装置に送信するシステムが開示されている。スイッチは、システムにおけるデータ転送を行う装置であり、スイッチングハブとも称される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８２２１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のシステムは、物理的な装置内で送受信されるデータが情報処理装置から出力されないため、物理的な装置内で送受信されるデータを取得することができない。【０００６】
一つの側面では、本発明は、複数の仮想マシンが同一の物理装置内で送受信するデータを、外部装置に出力することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様は、物理装置内で実行される複数の仮想マシンが、同一の物理装置内で送受信するデータを収集するデータ収集部と、前記データ収集部により収集されたデータを外部装置に出力する通信部と、を備える情報処理装置である。
【発明の効果】
【０００８】
一実施態様によれば、複数の仮想マシンが同一の物理装置内で送受信するデータを、外部装置に出力することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施例に係る情報処理システム１のシステム構成例である。
【図２】物理サーバ１００のハードウエア構成例である。
【図３】パケットのヘッダ部分であるＭＡＣヘッダＭＨとＩＰヘッダＩＨの内容を示す図である。
【図４】システム可視化装置４００の構成例である。
【図５】ミラー部１１４による処理の概要を概念的に示す図である。
【図６】ミラー部１１４が上りパケットであるか下りパケットであるかを判別する処理の流れを示すフローチャートである。
【図７】ミラー部１１４が上りパケットであるか下りパケットであるかを判別する処理の流れを示すフローチャートの他の例である。
【図８】ＶＭの数が三の場合に行われるパケット比較の組み合わせを示す図である。
【図９】ＶＭの数が四の場合に行われるパケット比較の組み合わせを示す図である。
【図１０】ミラー部１１４がパケット比較を行う際の処理の流れを示すフローチャートである。
【図１１】変形例の情報処理システム１＃及び物理サーバ１００＃、２００＃を示す図である。
【図１２】本発明の第２実施例に係る情報処理システム２のシステム構成例である。
【図１３】ミラー部１１４*による処理の概要を概念的に示す図である。
【図１４】ミラー部１１４*が下りパケットを選択的に収集する処理の流れを示すフローチャートである。
【図１５】ミラー部１１４*が下りパケットを選択的に収集する処理の流れを示すフローチャートの他の例である。
【図１６】ミラー部１１４*がパケット比較を行う際の処理の流れを示すフローチャートである。
【図１７】本発明の第３実施例に係る情報処理システム３のシステム構成例である。
【図１８】第３実施例に係るブリッジ１１３**及びミラー部１１４**、又はブリッジ２１３**及びミラー部２１４**により実行される処理の流れを示すフローチャートである。
【図１９】ＭＡＣアドレステーブル１１５として格納されるデータの一例である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１１】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係る情報処理装置、通信データ出力方法、通信データ出力プログラム、並びにこれらを利用した情報処理システムについて説明する。【００１２】
図１は、本発明の第１実施例に係る情報処理システム１のシステム構成例である。情報処理システム１は、情報処理装置の一例としての物理サーバ１００、２００と、物理スイッチ３００、３１０と、システム可視化装置４００と、を備える。各物理サーバ、各物理スイッチ等が形成するネットワークでは、例えばイーサネット（登録商標）；Ethernet（登録商標）、ＩＥＥＥ８０２．３、ＦＤＤＩ（Fiber-Distributed  Data  Interface）、ＰＰＰ（Point  to  Point  Protocol）等の通信プロトコルが採用される。【００１３】
図２は、物理サーバ１００のハードウエア構成例である。物理サーバ１００は、例えば、ＣＰＵ（Central  Processing  Unit）１００Ａと、ドライブ装置１００Ｂと、補助記憶装置１００Ｄと、メモリ装置１００Ｅと、インターフェース装置１００Ｆと、入力装置１００Ｇと、ディスプレイ装置１００Ｈと、を備える。これらの構成要素は、バスやシリアル回線等を介して接続されている。【００１４】
ＣＰＵ１００Ａは、例えば、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ等を有するプロセッサである。【００１５】
ドライブ装置１００Ｂは、記憶媒体１００Ｃからプログラムやデータを読み込み可能な装置である。プログラムを記録した記憶媒体１００Ｃがドライブ装置１００Ｂに装着されると、プログラムが記憶媒体１００Ｃからドライブ装置１００Ｂを介して補助記憶装置１００Ｄにインストールされる。記憶媒体１００Ｃは、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型の記憶媒体である。また、補助記憶装置１００Ｄは、例えば、ＨＤＤ（Hard  Disk  Drive）やフラッシュメモリである。【００１６】
プログラムのインストールは、上記のように記憶媒体１００Ｃを用いる他、インターフェース装置１００Ｆがネットワークを介して他のコンピュータよりダウンロードし、補助記憶装置１００Ｄにインストールすることによって行うこともできる。ネットワークは、インターネット、ＬＡＮ（Local  Area  Network）、無線ネットワーク等である。また、プログラムは、物理サーバ１００の出荷時に、予め補助記憶装置１００ＤやＲＯＭ（Read  Only  Memory）等に格納されていてもよい。【００１７】
このようにしてインストール又は予め格納されたプログラムをＣＰＵ１００Ａが実行することにより、図２に示す態様の情報処理装置が、本実施例の物理サーバ１００として機能することができる。【００１８】
メモリ装置１００Ｅは、例えば、ＲＡＭ（Random  Access  Memory）やＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）である。インターフェース装置１００Ｆは、上記ネットワークとの接続等を制御する。【００１９】
入力装置１００Ｇは、例えば、キーボード、マウス、ボタン、タッチパッド、タッチパネル、マイク等である。また、ディスプレイ装置１００Ｈは、例えば、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）等の表示装置である。物理サーバ１００は、ディスプレイ装置１００Ｈの他、プリンタ、スピーカ等の他の種類の出力装置を備えてもよい。【００２０】
なお、物理サーバ２００については、物理サーバ１００と同じハードウエア構成を採用することができるため、説明を省略する。【００２１】
図１に戻り、情報処理システム１の各構成要素について説明する。【００２２】
物理サーバ１００は、ホストＯＳ（Operating  System）１１０と、ホストＯＳ１１０上で動作するゲストＯＳ１２０とによって制御される。また、物理サーバ１００は、物理スイッチ３００に接続されたＮＩＣ（Network  Interface  Card）１３０と、物理スイッチ３１０に接続されたＮＩＣ１３２と、を備える。【００２３】
また、物理サーバ１００は、ホストＯＳ１１０上に構築される、ＶＩＦ（Virtual  Interface）１１１、１１２、ブリッジ１１３、ミラー部１１４等のソフトウエア手段を有する。【００２４】
また、物理サーバ１００は、ゲストＯＳ１２０上に構築される、ＶＭ（Virtual  Machine；仮想マシン又は仮想計算機）１２１、１２２等のソフトウエア手段を有する。ＶＭ１２１、１２２は、それぞれ仮想ＮＩＣ１２３、１２４を有している。【００２５】
同様に、物理サーバ２００は、ホストＯＳ２１０と、ホストＯＳ２１０上で動作するゲストＯＳ２２０とによって制御される。また、物理サーバ２００は、物理スイッチ３００に接続されたＮＩＣ２３０と、物理スイッチ３１０に接続されたＮＩＣ２３２と、を備える。【００２６】
また、物理サーバ２００は、ホストＯＳ２１０上に構築される、ＶＩＦ２１１、２１２、ブリッジ２１３、ミラー部２１４等のソフトウエア手段を有する。【００２７】
また、物理サーバ２００は、ゲストＯＳ２２０上に構築される、ＶＭ２２１、２２２等のソフトウエア手段を有する。ＶＭ２２１、２２２は、それぞれ仮想ＮＩＣ２２３、２２４を有している。【００２８】
ＶＭ１２１、１２２、２２１、２２２は、それぞれが例えばＷｅｂサーバ、アプリサーバ、データベースサーバ等として機能し、情報処理システム１に接続されたクライアントコンピュータに各種情報サービスを提供することができる。本実施例では各物理サーバ上に二ずつＶＭが存在するものとしたが、各物理サーバ上に存在するＶＭの数は、如何なる数であってもよい。【００２９】
情報処理システム１において、異なる物理サーバ上のＶＭ間の通信は、例えばパケット単位で物理スイッチ３００を介して行われる。パケットは、特許請求の範囲における単位データの一例である。図３は、パケットのヘッダ部分であるＭＡＣ（Media  Access  Control）ヘッダＭＨとＩＰヘッダＩＨの内容を示す図である。【００３０】
異なる物理サーバ上のＶＭ間の通信の一例として、ＶＭ１２１からＶＭ２２１にパケット「Ａ」を送信する際には、仮想ＮＩＣ１２３、ＶＩＦ１１１、ブリッジ１１３、ＮＩＣ１３０により物理スイッチ３００にパケット「Ａ」が転送される。そして、パケット「Ａ」は物理スイッチ３００、ＮＩＣ２３０、ブリッジ２１３、ＶＩＦ２１１、仮想ＮＩＣ２２３によりＶＭ２２２に転送される。パケットの宛先は、ブリッジ１１３、２１３、物理スイッチ３００等において、例えば各ＶＩＦに対応した宛先ＭＡＣアドレスを参照して判別される。【００３１】
一方、同じ物理サーバ上のＶＭ間の通信は、パケット単位でブリッジ１１３を介して行われる。例えば、ＶＭ１２１からＶＭ１２２にパケット「Ｂ」を送信する際には、仮想ＮＩＣ１２３、ＶＩＦ１１１、ブリッジ１１３、ＶＩＦ１１２、仮想ＮＩＣ１２４によりパケット「Ｂ」が転送される。【００３２】
物理スイッチ３００は、図示しないＭＡＣアドレスとポートの対応表（ＭＡＣアドレステーブル）を有し、上記のようにパケット転送を行う。また、物理スイッチ３００は、ポートミラーリング機能を有し、転送したパケットのコピーを物理スイッチ３１０に送信する処理（ミラーリング）を行う。【００３３】
ミラー部１１４は、同じ物理サーバ上のＶＭ間で送受信されたパケットを収集し、収集したパケットをＮＩＣ１３２に送信する。ＮＩＣ１３２は、ミラー部１１４から入力されたパケットを物理スイッチ３１０に転送する。ミラー部２１４の機能はミラー部１１４と同様である。ミラー部１１４、２１４は、それぞれパケットバッファ１１４Ａ、２１４Ａを使用する。【００３４】
物理スイッチ３１０は、物理スイッチ３００及びＮＩＣ１３２、２３２から入力されたパケットをシステム可視化装置４００に送信する。これらの処理によって、物理サーバ間、及び物理サーバ内で送受信されたパケットがシステム可視化装置４００に入力され、情報処理システム１内で送受信される全てのパケットのデータがシステム可視化装置４００に集約される。【００３５】
図４は、システム可視化装置４００の構成例である。システム可視化装置４００は、キャプチャ部４１０と、キャプチャデータ格納部４２０と、メッセージ解析部４３０と、プロトコルログ格納部４４０と、ログ分析部４５０と、トランザクションデータ格納部４６０と、を備える。【００３６】
キャプチャ部４１０は、物理スイッチ３１０からパケットを受信してキャプチャデータ格納部４２０に格納する。メッセージ解析部４３０は、キャプチャデータ格納部４２０に格納されたパケットから所定のデータを抽出してプロトコルログ格納部４４０に格納する。ログ分析部４５０は、プロトコルログ格納部４４０に格納されたデータを用いてログの分析処理を実施し、トランザクションデータ格納部４６０に格納する。システム可視化装置４００の構成についてはあくまで一例であり、他の態様を採用してもよい。【００３７】
（ミラー部１１４、２１４の処理内容）
以下、ミラー部１１４、２１４が、同じ物理サーバ上のＶＭ間で送受信されたパケットを収集する処理の内容について、より具体的に説明する。なお、ミラー部１１４とミラー部２１４は同じ処理を行うため、ミラー部１１４についてのみ説明する。【００３８】
図５は、ミラー部１１４による処理の概要を概念的に示す図である。図５の上段に示すように、ミラー部１１４は、物理サーバ１００が有する全てのＶＭが送受信するパケット（すなわちＶＩＦ１１１、１１２を通過するパケット）をキャプチャし、ＶＭ毎、上り／下り毎にパケットバッファ１１４Ａの該当領域に格納する。具体的にミラー部１１４は、ＶＭ１２１に送信される上りパケット、ＶＭ１２１から他のＶＭに送信される下りパケット、ＶＭ１２２に送信される上りパケット、ＶＭ１２２から他のＶＭに送信される下りパケットと区別してパケットバッファ１１４Ａに格納する。以下、ＶＭ１２１に送信される上りパケットを「ＶＭ１２１の上りパケット」と、ＶＭ１２１から他のＶＭに送信される下りパケットを「ＶＭ１２１の下りパケット」と略記する。また、ＶＭ１２２に送信される上りパケットを「ＶＭ１２２の上りパケット」と、ＶＭ１２２から他のＶＭに送信される下りパケットを「ＶＭ１２２の下りパケット」と略記する。【００３９】
なお、図１におけるＶＩＦ１１１、１１２を通過するパケットに関して、上向きの矢印は上りパケットであることを示し、下向きの矢印は下りパケットであることを示す。【００４０】
より厳密には、本実施例において上りパケットは、パケットがキャプチャされた位置であるＶＩＦにおいて、当該ＶＩＦに対応付けられた（当該ＶＩＦがパケットの送受信を担当する）ＶＭに近づく方向に転送されるパケットと定義することができる。【００４１】
一方、下りパケットは、パケットがキャプチャされた位置であるＶＩＦにおいて、当該ＶＩＦに対応付けられたＶＭから遠ざかる方向に転送されるパケットと定義することができる。【００４２】
なお、パケットがキャプチャされた位置に対応付けられたＶＭが複数存在することも想定される（第２実施例におけるＮＩＣ１３０でキャプチャされた場合がその一例である）。この場合、「対応付けられたＶＭ」を、「対応付けられた複数のＶＭのうちいずれか」と読み替えればよい。例えばＮＩＣ１３０に対応付けられるＶＭは、物理サーバ１００上の全てのＶＭ（１２１、１２２）であり、ＮＩＣ２３０に対応付けられるＶＭは、物理サーバ２００上の全てのＶＭ（２２１、２２２）である。【００４３】
図６は、ミラー部１１４が上りパケットであるか下りパケットであるかを判別する処理の流れを示すフローチャートである。本フローチャートは、パケットがキャプチャされる度に実行される。【００４４】
まず、ミラー部１１４は、キャプチャしたパケットのＭＡＣヘッダにおける宛先ＭＡＣアドレスと、パケットがキャプチャされた位置であるＶＩＦに対応するＶＭのＭＡＣアドレスを比較する（Ｓ５００）。そして、ミラー部１１４は、宛先ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致するか否かを判定する（Ｓ５０２）。【００４５】
宛先ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致する場合、ミラー部１１４は、上りパケットと判定し、当該パケットをパケットバッファ１１４Ａの該当領域に格納する（Ｓ５０４）。【００４６】
宛先ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致しない場合、ミラー部１１４は、パケットのＭＡＣヘッダにおける送信元ＭＡＣアドレスと、パケットがキャプチャされた位置であるＶＩＦに対応するＶＭのＭＡＣアドレスを比較する（Ｓ５０６）。そして、ミラー部１１４は、送信元ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致するか否かを判定する（Ｓ５０８）。【００４７】
送信元ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致する場合、ミラー部１１４は、下りパケットと判定し、当該パケットをパケットバッファ１１４Ａの該当領域に格納する（Ｓ５１０）。【００４８】
送信元ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致しない場合、ミラー部１１４は、エラーデータとみなして当該パケットを削除する（Ｓ５１２）。【００４９】
なお、Ｓ５０４又はＳ５１０で格納されたパケットには、キャプチャされた時刻が付与される。【００５０】
ミラー部１１４が上りパケットであるか下りパケットであるかを判別する処理は、ＩＰヘッダに含まれる送信先アドレスや送信元アドレスを用いて行ってもよい。この場合、ミラー部１１４は、各ＶＭのＩＰアドレスを、ＶＩＦに対応付けてテーブルデータとして保持する。【００５１】
図７は、ミラー部１１４が上りパケットであるか下りパケットであるかを判別する処理の流れを示すフローチャートの他の例である。本フローチャートは、パケットがキャプチャされる度に実行される。【００５２】
まず、ミラー部１１４は、キャプチャしたパケットのＩＰヘッダにおける送信先アドレスと、パケットがキャプチャされた位置であるＶＩＦに対応するＶＭのＩＰアドレスを比較する（Ｓ６００）。そして、ミラー部１１４は、送信先アドレスとＶＭのＩＰアドレスが一致するか否かを判定する（Ｓ６０２）。【００５３】
送信先アドレスとＶＭのＩＰアドレスが一致する場合、ミラー部１１４は、上りパケットと判定し、当該パケットをパケットバッファ１１４Ａの該当領域に格納する（Ｓ６０４）。【００５４】
送信先アドレスとＶＭのＩＰアドレスが一致しない場合、ミラー部１１４は、キャプチャしたパケットのＩＰヘッダにおける送信元アドレスと、パケットがキャプチャされた位置であるＶＩＦに対応するＶＭのＩＰアドレスを比較する（Ｓ６０６）。そして、ミラー部１１４は、送信元アドレスとＶＭのＩＰアドレスが一致するか否かを判定する（Ｓ６０８）。【００５５】
送信元アドレスとＶＭのＩＰアドレスが一致する場合、ミラー部１１４は、下りパケットと判定し、当該パケットをパケットバッファ１１４Ａの該当領域に格納する（Ｓ６１０）。【００５６】
送信元アドレスとＶＭのＩＰアドレスが一致しない場合、ミラー部１１４は、エラーデータとみなして当該パケットを削除する（Ｓ６１２）。【００５７】
なお、Ｓ６０４又はＳ６１０で格納されたパケットには、キャプチャされた時刻が付与される。【００５８】
ミラー部１１４は、図６又は図７に示す処理によってパケットをパケットバッファ１１４Ａの該当領域に格納すると、図５の下段に示すように、パケットが同一であるかどうか比較して同じ物理サーバ１００上のＶＭ間で送受信されたパケットを抽出する。パケットの比較は、ＶＭ１２１の上りパケットとＶＭ１２２の下りパケットの組み合わせと、ＶＭ１２１の下りパケットとＶＭ１２２の上りパケットの組み合わせのそれぞれについて行われる。【００５９】
ここで、物理サーバ１００上に三以上のＶＭが存在する場合、ミラー部１１４は、あるＶＭの上りパケットと他の全てのＶＭの下りパケットの比較、及び当該ＶＭの下りパケットと他の全てのＶＭの上りパケットの比較を、全てのＶＭに対して行う。図８は、ＶＭの数が三の場合に行われるパケット比較の組み合わせを示す図である。また、図９は、ＶＭの数が四の場合に行われるパケット比較の組み合わせを示す図である。図８及び９において、各ＶＭをＶＭ１、ＶＭ２、…と表記した。このように、ミラー部１１４は、ＶＭの数をｎとすると、（ｎＰ２）通りのパケット比較を行う。【００６０】
図１０は、ミラー部１１４がパケット比較を行う際の処理の流れを示すフローチャートである。本フローは、例えば所定時間毎に繰り返し実行される。【００６１】
まず、ミラー部１１４は、パケットバッファ１１４Ａの「ＶＭ１２１の上りパケット」を格納した領域からパケットを順に一つ取り出し（Ｓ７００）、更に「ＶＭ１２２の下りパケット」を格納した領域からパケットを順に一つ取り出す（Ｓ７０２）。パケットの取り出し順は、例えばＦＩＦＯ（First  In,  First  Out）に従って決定される。【００６２】
次に、ミラー部１１４は、Ｓ７００及びＳ７０２で取り出したパケットにおけるＩＰヘッダ内のＩＰパケットを識別する情報である「ＩＤ」、「送信元アドレス」、「送信先アドレス」を比較する（Ｓ７０４）。そして、ミラー部１１４は、ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致しているか否かを判定する（Ｓ７０６）。【００６３】
ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致している場合、ミラー部１１４は、一致したパケット対のうちいずれかを（例えば下りパケットを）ＮＩＣ１３２に送信する（Ｓ７０８）。そして、ミラー部１１４は、当該一致したパケット対をパケットバッファ１１４Ａから削除する（Ｓ７１０）。ミラー部１１４は、Ｓ７１０の処理の後は、後述するＳ７１４に進み処理を実行する。【００６４】
ＩＰヘッダの「ＩＤ」等が全て一致しなかった場合、ミラー部１１４は、「ＶＭ１２２の下りパケット」に関するループ処理において「ＶＭ１２２の下りパケット」を格納した領域の全てのパケットを取り出したか否かを判定する（Ｓ７１２）。「ＶＭ１２２の下りパケット」に関するループ処理とは、Ｓ７０２〜Ｓ７１０の処理を繰り返し行うループ処理である。当該ループ処理において、「ＶＭ１２２の下りパケット」の全てのパケットを取り出していない場合、ミラー部１１４は、Ｓ７０２に戻り、「ＶＭ１２２の下りパケット」から次のパケットを取り出してＳ７０４以降の処理を実行する。【００６５】
「ＶＭ１２２の下りパケット」の全てのパケットを取り出した場合、又はＳ７１０の後、ミラー部１１４は、「ＶＭ１２１の上りパケット」に関するループ処理において「ＶＭ１２１の上りパケット」の全てのパケットを取り出したか否かを判定する（Ｓ７１４）。「ＶＭ１２１の上りパケット」に関するループ処理とは、Ｓ７００〜Ｓ７１２の処理を繰り返し行うループ処理である。当該ループ処理において、「ＶＭ１２１の上りパケット」の全てのパケットを取り出していない場合、ミラー部１１４は、Ｓ７００に戻り、「ＶＭ１２１の上りパケット」から次のパケットを取り出してＳ７０２以降の処理を実行する。【００６６】
「ＶＭ１２１の上りパケット」の全てのパケットを取り出した場合、ミラー部１１４は、パケットバッファ１１４Ａの「ＶＭ１２１の下りパケット」を格納した領域からパケットを順に一つ取り出す（Ｓ７２０）。更にミラー部１１４は、「ＶＭ１２２の上りパケット」を格納した領域からパケットを順に一つ取り出す（Ｓ７２２）。【００６７】
次に、ミラー部１１４は、Ｓ７２０及びＳ７２２で取り出したパケットにおけるＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」を比較する（Ｓ７２４）。そして、ミラー部１１４は、ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致しているか否かを判定する（Ｓ７２６）。【００６８】
ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致している場合、ミラー部１１４は、一致したパケット対のうちパケットのうちいずれかを（例えば下りパケットを）ＮＩＣ１３２に送信する（Ｓ７２８）。そして、ミラー部１１４は、当該一致したパケット対をパケットバッファ１１４Ａから削除する（Ｓ７３０）。【００６９】
ＩＰヘッダの「ＩＤ」等が全て一致しなかった場合、ミラー部１１４は、「ＶＭ１２２の上りパケット」に関するループ処理において「ＶＭ１２２の上りパケット」を格納した領域の全てのパケットを取り出したか否かを判定する（Ｓ７３２）。「ＶＭ１２２の上りパケット」に関するループ処理とは、Ｓ７２２〜Ｓ７３０の処理を繰り返し行うループ処理である。当該ループ処理において、「ＶＭ１２２の上りパケット」の全てのパケットを取り出していない場合、ミラー部１１４は、Ｓ７２２に戻り、次のパケットを取り出してＳ７２４以降の処理を実行する。【００７０】
「ＶＭ１２２の上りパケット」の全てのパケットを取り出した場合、ミラー部１１４は、「ＶＭ１２１の下りパケット」に関するループ処理において「ＶＭ１２１の下りパケット」の全てのパケットを取り出したか否かを判定する（Ｓ７３４）。「ＶＭ１２１の下りパケット」に関するループ処理とは、Ｓ７２０〜Ｓ７３２の処理を繰り返し行うループ処理である。当該ループ処理において、「ＶＭ１２１の下りパケット」の全てのパケットを取り出していない場合、ミラー部１１４は、Ｓ７２０に戻り、次のパケットを取り出してＳ７２２以降の処理を実行する。【００７１】
「ＶＭ１２１の下りパケット」の全てのパケットを取り出した場合、ミラー部１１４は、パケットバッファ１１４Ａに格納された全てのパケットのうち、キャプチャされてから一定時間経過したパケットを削除する（Ｓ７４０）。【００７２】
なお、図１０に示すフローチャートは、物理サーバ１００上に存在するＶＭの数が二である場合についてのものである。物理サーバ１００上に存在するＶＭの数ｎが三以上である場合は、Ｓ７００〜Ｓ７１４、Ｓ７２０〜Ｓ７３４のようなループ処理を、（ｎＰ２）通り行えばよい。【００７３】
（変形例）
ここで、変形例の情報処理システム及び物理サーバについて述べる。図１１は、変形例の情報処理システム１＃及び物理サーバ１００＃、２００＃を示す図である。本図においては、第１実施例の情報処理システム１及び物理サーバ１００、２００の対応する構成要素の符号に「＃」を付している。【００７４】
変形例の物理サーバ１００＃が有するミラー部１１４＃は、ＶＩＦ１１１＃、１１２＃を通過する全てのパケットを収集し、ＮＩＣ１３２＃に送信する。係る構成によって、複数の仮想マシンが同一の物理サーバ内で送受信するデータを、外部装置に出力することができる。この結果、外部装置すなわちシステム可視化装置は、複数の仮想マシンが同一の物理サーバ内で送受信するデータと、物理サーバが外部装置との間で送受信するデータの双方を収集することができる。【００７５】
図１に示す第１実施例の情報処理システム及び物理サーバは、変形例の情報処理システム及び物理サーバに比してＮＩＣ１３２のパケット転送負荷を低減することができる。変形例の物理サーバ１００＃ではＮＩＣ１３２＃が「Ａ↓Ｂ↓Ｄ↓Ｃ↑」を転送するのに対し、本実施例の物理サーバ１００ではＮＩＣ１３２が「Ｂ↓Ｄ↓」を転送するからである。【００７６】
第１実施例の情報処理システム及び物理サーバは、同じ物理サーバ上のＶＭ間で送受信されたパケットを収集してＮＩＣ１３２に送信し、異なる物理サーバ間で送受信されるパケットのミラーリングは物理スイッチ３００の機能に任せている。このため、ＮＩＣ１３２におけるパケット転送負荷は過大なものとならず、スムーズな情報送受信が実現される。また、過度に高機能のＮＩＣ１３２を搭載する必要が無くなり、コストや重量の増加を抑制することができる。ミラー部２１４とＮＩＣ２３２の関係についても同様である。【００７７】
（まとめ）
以上説明した本実施例の情報処理装置（物理サーバ）、その通信データ出力方法及びプログラム、並びに情報処理システムによれば、複数の仮想マシンが同一の物理サーバ内で送受信するデータを、外部装置に出力することができる。この結果、外部装置すなわちシステム可視化装置は、複数の仮想マシンが同一の物理サーバ内で送受信するデータと、物理サーバが外部装置との間で送受信するデータの双方を収集することができる。【００７８】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係る情報処理装置、通信データ出力方法、通信データ出力プログラム、並びにこれらを利用した情報処理システムについて説明する。【００７９】
図１２は、本発明の第２実施例に係る情報処理システム２のシステム構成例である。第２実施例に係る情報処理システム２は、ミラー部の処理内容が第１実施例と異なる。このため、ミラー部１１４*、２１４*と表記すると共に、それぞれが使用するパケットバッファをパケットバッファ１１４*Ａ、２１４*Ａと表記し、その他の構成要素については第１実施例と同じ符号を付して説明する。【００８０】
（ミラー部１１４*、２１４*の処理内容）
以下、ミラー部１１４*、２１４*が、同じ物理サーバ上のＶＭ間で送受信されたパケットを収集する処理の内容について、より具体的に説明する。なお、ミラー部１１４*とミラー部２１４*は同じ処理を行うため、ミラー部１１４*についてのみ説明する。【００８１】
図１３は、ミラー部１１４*による処理の概要を概念的に示す図である。図１３の上段に示すように、ミラー部１１４*は、物理サーバ１００が有する全てのＶＭが送受信する下りパケット、及びＮＩＣ１３０を通過する下りパケットをキャプチャし、パケットバッファ１１４*Ａの該当領域に格納する。具体的にミラー部１１４*は、ＶＭ１２１から他のＶＭに送信される下りパケット、ＶＭ１２２から他のＶＭに送信される下りパケット、ＮＩＣ１３０から物理スイッチ３００に転送される下りパケットと区別してパケットバッファ１１４*Ａに格納する。以下、ＶＭ１２１から他のＶＭに送信される下りパケットを「ＶＭ１２１の下りパケット」と、ＶＭ１２２から他のＶＭに送信される下りパケットを「ＶＭ１２２の下りパケット」と略記する。また、ＮＩＣ１３０から物理スイッチ３００に送信される下りパケットを「ＮＩＣ１３０の下りパケット」と略記する。【００８２】
本実施例において、ＮＩＣ１３０においてキャプチャされた「上りパケット」は、ＮＩＣ１３０が外部装置（物理スイッチ３００）から受信するパケットであり、「下りパケット」は、ＮＩＣ１３０が外部装置（物理スイッチ３００）に送信するパケットである。【００８３】
上記のように、ミラー部１１４*は、下りパケットを選択的に収集する。図１４は、ミラー部１１４*が下りパケットを選択的に収集する処理の流れを示すフローチャートである。本フローチャートは、ミラー部１１４*によりパケットがキャプチャされる度に実行される。【００８４】
まず、ミラー部１１４*は、ＶＩＦ１１１又はＶＩＦ１１２でキャプチャされたパケットであるか否かを判定する（Ｓ８００）。【００８５】
ＶＩＦ１１１又はＶＩＦ１１２でキャプチャされたパケットである場合、ミラー部１１４*は、以下の処理を行う。ミラー部１１４*は、キャプチャしたパケットのＭＡＣヘッダにおける送信元ＭＡＣアドレスと、パケットがキャプチャされた位置であるＶＩＦに対応するＶＭのＭＡＣアドレスを比較する（Ｓ８０２）。そして、ミラー部１１４*は、送信元ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致するか否かを判定する（Ｓ８０４）。【００８６】
送信元ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致する場合、ミラー部１１４*は、下りパケットと判定し、当該パケットをパケットバッファ１１４*Ａの該当領域に格納する（Ｓ８０６）。【００８７】
送信元ＭＡＣアドレスとＶＭのＭＡＣアドレスが一致しない場合、ミラー部１１４*は、上りパケット又はエラーデータとみなして当該パケットを削除する（Ｓ８０８）。【００８８】
一方、Ｓ８００において、ＶＩＦ１１１又はＶＩＦ１１２でキャプチャされたパケットでない、すなわちＮＩＣ１３０でキャプチャされたパケットであると判定された場合、ミラー部１１４*は、以下の処理を行う。【００８９】
まず、ミラー部１１４*は、送信元ＭＡＣアドレスと、物理サーバ１００が有する全てのＶＭ（１２１、１２２）のＭＡＣアドレスを比較する（Ｓ８１０）。そして、ミラー部１１４*は、送信元ＭＡＣアドレスがいずれかのＶＭのＭＡＣアドレスと一致するか否かを判定する（Ｓ８１２）。【００９０】
送信元ＭＡＣアドレスがいずれかのＶＭのＭＡＣアドレスと一致する場合、ミラー部１１４*は、下りパケットと判定し、当該パケットをパケットバッファ１１４*Ａの該当領域に格納する（Ｓ８１４）。【００９１】
送信元ＭＡＣアドレスが全てのＶＭのＭＡＣアドレスと一致しない場合、ミラー部１１４*は、上りパケット又はエラーデータとみなして当該パケットを削除する（Ｓ８０８）。【００９２】
なお、Ｓ８０６又はＳ８１４で格納されたパケットには、キャプチャされた時刻が付与される。【００９３】
図１５は、ミラー部１１４*が下りパケットを選択的に収集する処理の流れを示すフローチャートの他の例である。本フローチャートは、ミラー部１１４*によりパケットがキャプチャされる度に実行される。【００９４】
まず、ミラー部１１４*は、ＶＩＦ１１１又はＶＩＦ１１２でキャプチャされたパケットであるか否かを判定する（Ｓ９００）。【００９５】
ＶＩＦ１１１又はＶＩＦ１１２でキャプチャされたパケットである場合、ミラー部１１４*は、以下の処理を行う。ミラー部１１４*は、キャプチャしたパケットのＩＰヘッダにおける送信元アドレスと、パケットがキャプチャされた位置であるＶＩＦに対応するＶＭのＩＰアドレスを比較する（Ｓ９０２）。そして、ミラー部１１４*は、送信元アドレスとＶＭのＩＰアドレスが一致するか否かを判定する（Ｓ９０４）。【００９６】
送信元アドレスとＶＭのＩＰアドレスが一致する場合、ミラー部１１４*は、下りパケットと判定し、当該パケットをパケットバッファ１１４*Ａの該当領域に格納する（Ｓ９０６）。【００９７】
送信元ＣアドレスとＶＭのＩＰアドレスが一致しない場合、ミラー部１１４*は、上りパケット又はエラーデータとみなして当該パケットを削除する（Ｓ９０８）。【００９８】
一方、Ｓ９００において、ＶＩＦ１１１又はＶＩＦ１１２でキャプチャされたパケットでない、すなわちＮＩＣ１３０でキャプチャされたパケットであると判定された場合、ミラー部１１４*は、以下の処理を行う。ミラー部１１４*は、キャプチャしたパケットのＩＰヘッダにおける送信元アドレスと、物理サーバ１００が有する全てのＶＭ（１２１、１２２）のＩＰアドレスを比較する（Ｓ９１０）。そして、ミラー部１１４*は、送信元アドレスがいずれかのＶＭのＩＰアドレスと一致するか否かを判定する（Ｓ９１２）。【００９９】
送信元アドレスがいずれかのＶＭのＩＰアドレスと一致する場合、ミラー部１１４*は、下りパケットと判定し、当該パケットをパケットバッファ１１４*Ａの該当領域に格納する（Ｓ９１４）。【０１００】
送信元アドレスが全てのＶＭのＩＰアドレスと一致しない場合、ミラー部１１４*は、上りパケット又はエラーデータとみなして当該パケットを削除する（Ｓ９０８）。【０１０１】
なお、Ｓ９０６又はＳ９１４で格納されたパケットには、キャプチャされた時刻が付与される。【０１０２】
ミラー部１１４*は、パケットをパケットバッファ１１４*Ａの該当領域に格納すると、図１３の下段に示すように、パケットが同一であるかどうか比較して同じ物理サーバ１００上のＶＭ間で送受信されたパケットを抽出する。パケットの比較は、ＶＭ１２１の下りパケットとＮＩＣ１３０を通過する下りパケットの組み合わせと、ＶＭ１２２の下りパケットとＮＩＣ１３０を通過する下りパケットの組み合わせのそれぞれについて行われる。【０１０３】
図１６は、ミラー部１１４*がパケット比較を行う際の処理の流れを示すフローチャートである。本フローは、例えば所定時間毎に繰り返し実行される。【０１０４】
まず、ミラー部１１４*は、パケットバッファ１１４*Ａの「ＶＭ１２１の下りパケット」を格納した領域からパケットを順に一つ取り出し（Ｓ１０００）、「ＮＩＣ１３０の下りパケット」を格納した領域からパケットを順に一つ取り出す（Ｓ１００２）。パケットの取り出し順は、例えばＦＩＦＯ（First  In,  First  Out）に従って決定される。【０１０５】
次に、ミラー部１１４*は、Ｓ１０００及びＳ１００２で取り出したパケットにおけるＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」を比較する（Ｓ１００４）。そして、ミラー部１１４*は、ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致しているか否かを判定する（Ｓ１００６）。【０１０６】
ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致している場合、ミラー部１１４*は、当該パケット対をパケットバッファ１１４*Ａから削除する（Ｓ１００８）。ミラー部１１４*は、Ｓ１００８の処理の後は、後述するＳ１０１２に進み処理を実行する。【０１０７】
ＩＰヘッダの「ＩＤ」等が全て一致しなかった場合、ミラー部１１４*は、「ＮＩＣ１３０の下りパケット」に関するループ処理において「ＮＩＣ１３０の下りパケット」を格納した領域の全てのパケットを取り出したか否かを判定する（Ｓ１０１０）。「ＮＩＣ１３０の下りパケット」に関するループ処理とは、Ｓ１００２〜Ｓ１００８の処理を繰り返し行うループ処理である。当該ループ処理において、「ＮＩＣ１３０の下りパケット」の全てのパケットを取り出していない場合、ミラー部１１４*は、Ｓ１００２に戻り、「ＮＩＣ１３０の下りパケット」から次のパケットを取り出してＳ１００４以降の処理を実行する。【０１０８】
「ＮＩＣ１３０の下りパケット」の全てのパケットを取り出した場合、又はＳ１００８の後、ミラー部１１４*は、以下の処理を行う。ミラー部１１４*は、「ＶＭ１２１の下りパケット」に関するループ処理において「ＶＭ１２１の下りパケット」の全てのパケットを取り出したか否かを判定する（Ｓ１０１２）。「ＶＭ１２１の下りパケット」に関するループ処理とは、Ｓ１０００〜Ｓ１０１０の処理を繰り返し行うループ処理である。当該ループ処理において、「ＶＭ１２１の下りパケット」の全てのパケットを取り出していない場合、ミラー部１１４*は、Ｓ１０００に戻り、「ＶＭ１２１の下りパケット」から次のパケットを取り出してＳ１００２以降の処理を実行する。【０１０９】
「ＶＭ１２１の下りパケット」の全てのパケットを取り出した場合、ミラー部１１４*は、パケットバッファ１１４*Ａの「ＶＭ１２２の下りパケット」を格納した領域からパケットを順に一つ取り出す（Ｓ１０２０）。次に、ミラー部１１４*は、「ＮＩＣ１３０の下りパケット」を格納した領域からパケットを順に一つ取り出す（Ｓ１０２２）。【０１１０】
次に、ミラー部１１４*は、Ｓ１０２０及びＳ１０２２で取り出したパケットにおけるＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」を比較する（Ｓ１０２４）。そして、ミラー部１１４*は、ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致しているか否かを判定する（Ｓ１０２６）。【０１１１】
ＩＰヘッダの「ＩＤ」、「送信元アドレス」、「送信先アドレス」が全て一致している場合、ミラー部１１４*は、当該パケット対をパケットバッファ１１４*Ａから削除する（Ｓ１０２８）。ミラー部１１４*は、Ｓ１０２８の処理の後は、後述するＳ１０１２に進み処理を実行する。【０１１２】
ＩＰヘッダの「ＩＤ」等が全て一致しなかった場合、ミラー部１１４*は、「ＮＩＣ１３０の下りパケット」に関するループ処理において「ＮＩＣ１３０の下りパケット」を格納した領域の全てのパケットを取り出したか否かを判定する（Ｓ１０３０）。「ＮＩＣ１３０の下りパケット」に関するループ処理とは、Ｓ１０２２〜Ｓ１０２８の処理を繰り返し行うループ処理である。当該ループ処理において、「ＮＩＣ１３０の下りパケット」の全てのパケットを取り出していない場合、ミラー部１１４*は、Ｓ１０２２に戻り、「ＮＩＣ１３０の下りパケット」から次のパケットを取り出してＳ１０２４以降の処理を実行する。【０１１３】
「ＮＩＣ１３０の下りパケット」の全てのパケットを取り出した場合、又はＳ１０２８の後、ミラー部１１４*は以下の処理を行う。ミラー部１１４*は、「ＶＭ１２２の下りパケット」に関するループ処理において「ＶＭ１２２の下りパケット」の全てのパケットを取り出したか否かを判定する（Ｓ１０３２）。「ＶＭ１２２の下りパケット」に関するループ処理とは、Ｓ１０２０〜Ｓ１０３０の処理を繰り返し行うループ処理である。「ＶＭ１２２の下りパケット」の全てのパケットを取り出していない場合、ミラー部１１４*は、Ｓ１０２０に戻り、「ＶＭ１２２の下りパケット」から次のパケットを取り出してＳ１０２２以降の処理を実行する。【０１１４】
「ＶＭ１２２の下りパケット」の全てのパケットを取り出した場合、ミラー部１１４*は、パケットバッファ１１４*Ａに格納された全てのパケットのうち、キャプチャされてから一定時間経過したパケットをＮＩＣ１３２に送信する（Ｓ１０４０）。【０１１５】
なお、図１６に示すフローチャートは、物理サーバ１００上に存在するＶＭの数が二である場合についてのものである。物理サーバ１００上に存在するＶＭの数ｎが三以上である場合は、ミラー部１１４*は、Ｓ１０００〜Ｓ１０１２、Ｓ１０２０〜Ｓ１０３２のようなループ処理を、（ｎＰ２）通り行えばよい。【０１１６】
本実施例と、図１１に示す変形例の情報処理システム１＃及び物理サーバ１００＃、２００＃との相違点については、第１実施例と同様であるため、説明を省略する。【０１１７】
（まとめ）
以上説明した本実施例の情報処理装置（物理サーバ）、その通信データ出力方法及びプログラム、並びに情報処理システムによれば、複数の仮想マシンが同一の物理サーバ内で送受信するデータを、外部装置に出力することができる。この結果、外部装置すなわちシステム可視化装置は、複数の仮想マシンが同一の物理サーバ内で送受信するデータと、物理サーバが外部装置との間で送受信するデータの双方を収集することができる。【０１１８】
また、第１実施例と比較すると、キャプチャを行う位置は増加するものの、パケットバッファ１１４*Ａにおいて、キャプチャしたパケットを格納する領域数を少なくすることができる（図５、１３参照）。【０１１９】
＜第３実施例＞
以下、図面を参照し、本発明の第３実施例に係る情報処理装置、通信データ出力方法、通信データ出力プログラム、並びにこれらを利用した情報処理システムについて説明する。（以下、下線省略）
図１７は、本発明の第３実施例に係る情報処理システム３のシステム構成例である。第３実施例に係る情報処理システム３は、各物理サーバ１００、２００のホストＯＳ１１０、１２０がそれぞれ、ＭＡＣアドレステーブル１１５、１２５を備える。ＭＡＣアドレステーブル１１５は、補助記憶装置１００Ｄ又はメモリ装置１００Ｅ上に設定されるテーブルデータである。同様に、ＭＡＣアドレステーブル２１５は、補助記憶装置２００Ｄ又はメモリ装置２００Ｅ上に設定されるテーブルデータである。【０１２０】
また、本発明の第３実施例に係る情報処理システム３は、ブリッジ及びミラー部の処理内容が第１実施例と異なる。このため、図１７では、ブリッジ１１３**、２１３**、ミラー部１１４**、２１４**と表記すると共に、その他の構成要素については第１実施例と同じ符号を付した。【０１２１】
図１８は、第３実施例に係るブリッジ１１３**及びミラー部１１４**、又はブリッジ２１３**及びミラー部２１４**により実行される処理の流れを示すフローチャートである。以下、ブリッジ１１３**及びミラー部１１４**による処理であるものとして説明するが、ブリッジ２１３**及びミラー部２１４**によっても同様の処理が行われる。【０１２２】
まず、ブリッジ１１３**が、ＶＩＦ１１１又は１１２、或いはＮＩＣ１３０からパケットを受信するまで待機する（Ｓ１１００）。パケットを受信すると、ブリッジ１１３**は、ミラー部１１４**にその旨を通知する（Ｓ１１０２）。【０１２３】
ミラー部１１４**は、上記通知を受けると、受信したのが、ブリッジ１１３**の仮想的なポートのうちＶＩＦ１１１又は１１２に対応したポートであるか否かを判定する（Ｓ１１０４）。【０１２４】
受信したのが、ブリッジ１１３**の仮想的なポートのうち、ＶＩＦ１１１又は１１２に対応したポートでない場合、ミラー部１１４**は、Ｓ１１００に戻りブリッジ１１３**がパケットを受信するまで待機する。【０１２５】
受信したのが、ブリッジ１１３**の仮想的なポートのうち、ＶＩＦ１１１又は１１２に対応したポートである場合、ミラー部１１４**は、パケットの送信先ＭＡＣアドレスを用いてＭＡＣアドレステーブル１１５を検索する（Ｓ１１０６）。【０１２６】
図１９は、ＭＡＣアドレステーブル１１５として格納されるデータの一例である。ＭＡＣアドレステーブル１１５には、仮想的なポートに対して、ブリッジ１１３**により学習されたＭＡＣアドレス（学習ＭＡＣヘッダアドレス）が対応付けられて格納される。【０１２７】
ミラー部１１４**は、パケットの送信先ＭＡＣアドレスが、ＭＡＣアドレステーブル１１５に登録されているか否かを判定する（Ｓ１１０８）。【０１２８】
パケットの送信先ＭＡＣアドレスが、ＭＡＣアドレステーブル１１５に登録されていない場合、ミラー部１１４**は、当該パケットをブリッジ１１３**からコピーし、コピーしたパケットをＮＩＣ１３２に送信する（Ｓ１１１０）。なお、ブリッジ１１３**は、受信したパケットの送信元ＭＡＣアドレスを、パケットを受信した仮想的なポートに対応付けてＭＡＣアドレステーブル１１５に登録する機能を有する。【０１２９】
ＭＡＣアドレステーブル１１５に登録されている場合、ミラー部１１４**は、ＭＡＣアドレステーブル１１５において送信先ＭＡＣアドレスに対応するポートがＶＩＦ１１１又は１１２に対応するポートであるか否かを判定する（Ｓ１１１２）。【０１３０】
ＭＡＣアドレステーブル１１５において送信先ＭＡＣアドレスに対応するポートがＶＩＦ１１１又は１１２に対応するポートでない場合、ミラー部１１４**は、Ｓ１１００に戻りブリッジ１１３**がパケットを受信するまで待機する。【０１３１】
一方、ＶＩＦ１１１又は１１２に対応するポートである場合、ミラー部１１４**は、当該パケットをブリッジ１１３**からコピーし、コピーしたパケットをＮＩＣ１３２に送信する（Ｓ１１１０）。【０１３２】
係る処理の結果、図１７に示すパケットＢがＶＭ１２１からＶＭ１２２に送信される場合、パケットＢの送信先ＭＡＣアドレスであるＶＭ１２２のＭＡＣアドレスがＭＡＣアドレステーブル１１５に登録されていれば、ＮＩＣ１３２にパケットＢが送信される。また、ＶＭ１２２のＭＡＣアドレスがＭＡＣアドレステーブル１１５に登録されていない場合も同様に、ＮＩＣ１３２にパケットＢが送信される。後者の場合、ＶＭ１２２のＭＡＣアドレスはＭＡＣアドレステーブル１１５に登録されることになるため、以降の処理においてはＳ１１１２において肯定的な判定を得ることにより、ＮＩＣ１３２にパケットが送信される。【０１３３】
一方、図１７に示すパケットＡがＶＭ１２１からＶＭ２２１に送信される場合について説明する。この場合、パケットＡの送信ＭＡＣアドレスであるＶＭ２２３のＭＡＣアドレスがＭＡＣアドレステーブル１１５に登録されていれば、ポートがＮＩＣ１３０に対応するためＮＩＣ１３２にパケットＡが送信されない。パケットＡの送信ＭＡＣアドレスであるＶＭ２２３のＭＡＣアドレスがＭＡＣアドレステーブル１１５に登録されていない場合は、ＮＩＣ１３２にパケットＡが送信される。この場合、物理スイッチ３００においてもパケットＡがミラーリングされるため、システム可視化装置４００にはパケットＡが重複して送信されるが、以降はＭＡＣアドレステーブル１１５に登録されことになるため、係る重複は許容できる範囲内である。【０１３４】
同様に、パケットＣがＶＭ２２１からＶＭ１２１に送信される場合、パケットＣはブリッジ１１３**におけるＮＩＣ１３０に対応するポートで受信されるため、ＮＩＣ１３２にパケットＣが送信されない。【０１３５】
本実施例と、図１１に示す変形例の情報処理システム１＃及び物理サーバ１００＃、２００＃との相違点については、第１実施例と同様であるため、説明を省略する。【０１３６】
（まとめ）
以上説明した本実施例の情報処理装置（物理サーバ）、その通信データ出力方法及びプログラム、並びに情報処理システムによれば、複数の仮想マシンが同一の物理サーバ内で送受信するデータを、外部装置に出力することができる。この結果、外部装置すなわちシステム可視化装置は、複数の仮想マシンが同一の物理サーバ内で送受信するデータと、物理サーバが外部装置との間で送受信するデータの双方を収集することができる。【０１３７】
なお、第３実施例の情報処理装置は、第１実施例と同様、ＭＡＣアドレスに代えてＩＰアドレスを用いてパケットの収集を行ってもよい。【０１３８】
（以上、追加実施例）
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。【０１３９】
例えば、第２実施例におけるミラー部１１４*は、全てのＶＭが送受信する下りパケット、及びＮＩＣ１３０を通過する下りパケットをキャプチャし、内容が一致するものを除外するものとしたが、これに限られない。第２実施例におけるミラー部１１４*は、全てのＶＭが送受信する上りパケット、及びＮＩＣ１３０を通過する上りパケットをキャプチャし、内容が一致するものを除外してＮＩＣ１３２にパケットを送信するものとしてもよい。【０１４０】
また、物理スイッチ３００、３１０は、統合されて同体の物理スイッチとなってもよい。【０１４１】
また、各実施例におけるＯＳやＶＭの配置は任意事項であり、情報処理装置（物理サーバ）上に複数のＶＭが存在すれば、本発明の適用は可能である。【０１４２】
また、各物理サーバは、外部装置との送受信を行うＮＩＣとミラー部が収集したパケットを送信するＮＩＣを分けるものとしたが、同一のＮＩＣで外部装置との送受信パケットとミラー部が収集したパケットの双方を扱うものとしてもよい。この場合、ミラー部が収集したパケットを他のパケットと区別可能な態様でミラー部が収集したパケットを送信すると好適である。例えば、ミラー部が収集したパケットを送信する期間と、他のパケットを送受信する期間を分けることや、ミラー部が収集したパケットには所定の識別子を付すこと等が考えられる。
【産業上の利用可能性】
【０１４３】
本発明は、コンピュータ製造業、コンピュータソフトウエア産業、情報サービス提供産業等に利用することができる。
【符号の説明】
【０１４４】
１、２  情報処理システム
１００、２００  物理サーバ
１１０、２１０  ホストＯＳ
１１１、１１２、２１１、２１２  ＶＩＦ
１１３、１１３**、２１３、２１３**  ブリッジ
１１４、１１４*、１１４**、２１４、２１４*、２１４**  ミラー部
１１４Ａ、１１４*Ａ、２１４Ａ、２１４*Ａ  パケットバッファ
１１５  ＭＡＣアドレステーブル
１２０、２２０  ゲストＯＳ
１２１、１２２、２２１、２２２  ＶＭ
１２３、１２４、２２３、２２４  仮想ＮＩＣ
１３０、１３２  ＮＩＣ
３００、３１０  物理スイッチ
４００  システム可視化装置
【図１】
2013111343.tif 000003
【図２】
2013111343.tif 000004
【図３】
2013111343.tif 000005
【図４】
2013111343.tif 000006
【図５】
2013111343.tif 000007
【図６】
2013111343.tif 000008
【図７】
2013111343.tif 000009
【図８】
2013111343.tif 000010
【図９】
2013111343.tif 000011
【図１０】
2013111343.tif 000012
【図１１】
2013111343.tif 000013
【図１２】
2013111343.tif 000014
【図１３】
2013111343.tif 000015
【図１４】
2013111343.tif 000016
【図１５】
2013111343.tif 000017
【図１６】
2013111343.tif 000018
【図１７】
2013111343.tif 000019
【図１８】
2013111343.tif 000020
【図１９】
2013111343.tif 000021
【手続補正書】
【提出日】平成26年6月30日(2014.6.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理装置内で実行される複数の仮想マシンが、同一の物理装置内で送受信するデータを収集するデータ収集部と、
前記データ収集部により収集されたデータを外部装置に出力する通信部と、
を備え、
前記データ収集部は、前記複数の仮想マシンが同一の物理装置内で送受信するデータを、前記複数の仮想マシンが外部装置との間で送受信するデータと区別して収集することを特徴とする、
情報処理装置。
【請求項２】
前記通信部とは異なる第２の通信部であって、前記複数の仮想マシンが外部装置との間で送受信するデータの入出力を行う第２の通信部を備える、
請求項１記載の情報処理装置。
【請求項３】
前記データ収集部は、第１の観測位置で観測されたデータであって該第１の観測位置において該第１の観測位置に対応付けられた仮想マシンを送信先として転送されるデータと、第２の観測位置で観測されたデータであって該第２の観測位置において該第２の観測位置に対応付けられた仮想マシンを送信元として転送されるデータと、の組み合わせのうち特定のデータ内容が一致するデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項１記載の情報処理装置。
【請求項４】
前記データ収集部は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンを送信元として転送されるデータと、前記第２の通信部が外部装置に送信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項２記載の情報処理装置。
【請求項５】
前記データ収集部は、所定の観測位置で観測されたデータであって該所定の観測位置において該所定の観測位置に対応付けられた仮想マシンを送信先として転送されるデータと、前記第２の通信部が外部装置から受信するデータと、を取得し、該取得したデータのうち特定のデータ内容が一致するデータの対を除外した残余のデータを、前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項２記載の情報処理装置。
【請求項６】
前記データ収集部は、前記複数の仮想マシンと外部装置の間を中継する中継部がデータを受信したとき、該中継部の仮想的な受信ポートと、仮想的な送信ポートの双方が前記複数の仮想マシン側に対応付けられている場合に、該中継部が受信したデータを前記複数の仮想マシンが同一の物理装置内で送受信するデータと判断して収集することを特徴とする、
請求項１記載の情報処理装置。
【請求項７】
請求項２記載の情報処理装置と、
前記第２の通信部との間で送受信したデータのコピーと、前記通信部から受信したデータとを出力するスイッチと、
を備える情報処理システム。
【請求項８】
前記スイッチは、
前記第２の通信部との間でデータの送受信を行うと共に、該送受信したデータのコピーを第２のスイッチに送信する第１のスイッチと、
前記第１のスイッチから受信したデータと、前記通信部から受信したデータとを合わせて出力する前記第２のスイッチと、
を備えることを特徴とする、
請求項７記載の情報処理システム。
【請求項９】
物理装置内で複数の仮想マシンが実行される情報処理装置の通信データ出力方法であって、
前記情報処理装置が、
前記複数の仮想マシンが同一の物理装置内で送受信するデータを収集し、
前記収集されたデータを外部装置に出力し、
前記データの収集は、前記複数の仮想マシンが同一の物理装置内で送受信するデータを、前記複数の仮想マシンが外部装置との間で送受信するデータと区別して収集することを特徴とする、
通信データ出力方法。
【請求項１０】
物理装置内で複数の仮想マシンが実行される情報処理装置の通信データ出力プログラムであって、
前記情報処理装置に、
前記複数の仮想マシンが、同一の物理装置内で送受信するデータを収集させ、
前記収集されたデータを外部装置に出力させ、
前記データの収集は、前記複数の仮想マシンが同一の物理装置内で送受信するデータを、前記複数の仮想マシンが外部装置との間で送受信するデータと区別して収集させることを特徴とする、
通信データ出力プログラム。
【国際調査報告】
2013111343.tif 000022
2013111343.tif 000023
2013111343.tif 000024