JP6248763B2 - キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム - Google Patents

キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム Download PDF

Info

Publication number
JP6248763B2
JP6248763B2 JP2014073953A JP2014073953A JP6248763B2 JP 6248763 B2 JP6248763 B2 JP 6248763B2 JP 2014073953 A JP2014073953 A JP 2014073953A JP 2014073953 A JP2014073953 A JP 2014073953A JP 6248763 B2 JP6248763 B2 JP 6248763B2
Authority
JP
Japan
Prior art keywords
virtual
mirroring
capture point
hypervisor
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014073953A
Other languages
English (en)
Other versions
JP2015197715A (ja
Inventor
淳一 樋口
淳一 樋口
祐士 野村
祐士 野村
泰彦 金政
泰彦 金政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014073953A priority Critical patent/JP6248763B2/ja
Priority to US14/665,490 priority patent/US9547518B2/en
Publication of JP2015197715A publication Critical patent/JP2015197715A/ja
Application granted granted Critical
Publication of JP6248763B2 publication Critical patent/JP6248763B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/208Port mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

本発明はキャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラムに関する。
情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや論理ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
例えば、ハイパーバイザと呼ばれるソフトウェアが、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、ハイパーバイザが、当該リソースを用いて、仮想マシンの通信データを中継する仮想スイッチを物理マシン上で動作させることもある。
ところで、複数の物理マシンを含むシステムにおいて仮想マシン間で送受信されるパケットを収集してシステムの稼働状況を監視することがある。パケットの収集は、パケットを中継するスイッチのミラーリング機能(あるポートを経由するパケットを複製し、別のポートからも送出する)を用いることで行える。例えば、各物理マシン上の仮想マシン間のパケットを何れか1つの物理マシン上の仮想スイッチから集約して収集できるように仮想マシンの配置を変更し、当該仮想スイッチからパケットを収集する提案がある。
なお、仮想マシンサーバ上の物理NIC(Network Interface Card)のうち使用率が上限値より高い物理NICがあると、実行中の仮想マシンのうち最低優先度の仮想マシンの仮想NICの接続先を、使用率が上限値より低い物理NICに切替える提案もある。
特開2013−175075号公報 特開2009−130527号公報
上記提案のように、1つの物理マシン上の仮想スイッチにより所定のポートのミラーリングを実行して、パケットを収集することが考えられる。しかし、この場合、パケットの収集を担当する物理マシンの負荷が高まるおそれがある。そこで、各物理マシンでパケットの収集を分担することが考えられる。具体的には、各物理マシン上の仮想スイッチにより監視対象ポートについて個々にミラーリングを実行し、各仮想スイッチと同じ物理マシン上の所定の仮想マシンによりパケットの収集を実行することが考えられる。
ところが、仮想マシン間のパケットの送受信量は仮想マシンにより実現される機能や仮想マシンが利用される頻度などに応じて異なる。仮想スイッチのポートに着目すると、通信量の比較的多いポートや通信量の比較的少ないポートなど様々である。このため、ミラーリングの対象とするポートの組合せによっては、何れかの物理マシン上で複製/収集されるパケット数が増大し、当該物理マシンに負荷が偏るおそれがある。
1つの側面では、本発明は、各物理マシンの負荷を平準化できるキャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラムを提供することを目的とする。
1つの態様では、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムが実行するキャプチャポイント決定方法が提供される。このキャプチャポイント決定方法では、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する。
また、1つの態様では、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むキャプチャポイント決定システムが提供される。このキャプチャポイント決定システムは、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、物理マシンを有する。
また、1つの態様では、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムにおいて、何れかの物理マシンとして用いられるコンピュータによって実行されるキャプチャポイント決定プログラムが提供される。このキャプチャポイント決定プログラムは、コンピュータに、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、処理を実行させる。
1つの側面では、各物理マシンの負荷を平準化できる。
第1の実施の形態のキャプチャポイント決定システムの例を示す図である。 第2の実施の形態の情報処理システムの例を示す図である。 サーバのハードウェア例を示す図である。 仮想マシンの配置例を示す図である。 仮想マシン間の論理的な通信経路の例を示す図である。 仮想スイッチと仮想マシンとの接続関係の例を示す図である。 パケットキャプチャの例を示す図である。 各マシンの機能例を示す図である。 収集されるパケットの情報の例を示す図である。 キャプチャポイント候補テーブルの例を示す図である。 測定テーブル(ミラーリングオフ時)の例を示す図である。 測定テーブル(ミラーリングオン時)の例を示す図である。 CPU使用率テーブルの例を示す図である。 ミラーリングによるCPUオーバヘッドの算出例を示す図である。 キャプチャポイント候補の決定例を示すフローチャートである。 ΔCmirrorの算出例を示すフローチャートである。 パケットキャプチャ実行時の処理例を示すフローチャートである。 キャプチャポイントの再決定例を示すフローチャートである。 CPU使用率の見積り例を示す図である。 キャプチャポイントの決定例を示す図である。
以下、本実施の形態を、図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のキャプチャポイント決定システムの例を示す図である。キャプチャポイント決定システムは、物理マシン1,2,3,4を含む。物理マシン1,2,3,4はネットワークに接続され、相互に通信可能である。物理マシン1,2,3,4は、それぞれがメモリやプロセッサを備えた物理的なコンピュータである。各プロセッサは、仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能である。物理マシン1は、記憶装置1aおよびプロセッサ1bを有する。
記憶装置1aは、RAMなどの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。プロセッサ1bは、CPU、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。プロセッサ1bはプログラムを実行するものでもよい。プロセッサ1bには、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。物理マシン2,3,4も同様に、このような記憶装置およびプロセッサを備えている。
物理マシン2は、仮想マシン2a,2b,2cおよび仮想スイッチ2dを有する。物理マシン3は、仮想マシン3a,3b,3cおよび仮想スイッチ3dを有する。物理マシン4は、仮想マシン4a,4b,4cおよび仮想スイッチ4dを有する。図1では、各物理マシン上のハイパーバイザの図示を省略している。
仮想マシン2a,2b,2c,3a,3b,3c,4a,4b,4c(各仮想マシン)は、物理マシン上で動作する仮想的なコンピュータである。仮想マシン2a,3a,4aは、仮想マシン2b,2c,3b,3c,4b,4cにより送受信されるパケットを収集し、システムの稼働状況を監視する。仮想マシン2b,2c,3b,3c,4b,4cは、ネットワークを介して相互に連携し、当該ネットワークに接続されたクライアントコンピュータなどに所定のサービスを提供する。
仮想スイッチ2d,3d,4dは、仮想マシン2a,2b,2c,3a,3b,3c,4a,4b,4c(各仮想マシン)の間の通信を中継する中継手段である。仮想スイッチ2dは、ポートP1,P2,P3,P4,P5を有する。ポートP1は、仮想マシン2aと接続されている。ポートP2,P3は、仮想マシン2bと接続されている。ポートP4,P5は、仮想マシン2cと接続されている。仮想スイッチ2dは、ポートP2,P3,P4,P5のうち監視対象のポートを経由する通信データ(パケット)を複製してポートP1からも送出する。すると、仮想マシン2aにより複製されたパケットを収集できる。この機能をミラーリングまたはポートミラーリングなどと呼ぶことがある。また、ミラーリングなどを用いてパケットを収集することをパケットキャプチャと呼ぶことがある。
仮想スイッチ3dは、ポートP6,P7,P8,P9,P10を有する。ポートP6は、仮想マシン3aと接続されている。ポートP7,P8は、仮想マシン3bと接続されている。ポートP9,P10は、仮想マシン3cと接続されている。仮想スイッチ3dは、ポートP7,P8,P9,P10のうち監視対象のポートを経由するパケットを複製してポートP6からも送出する。すると、仮想マシン3aにより複製されたパケットを収集できる。
仮想スイッチ4dは、ポートP11,P12,P13,P14を有する。ポートP11は、仮想マシン4aと接続されている。ポートP12,P13は、仮想マシン4bと接続されている。ポートP14は、仮想マシン4cと接続されている。仮想スイッチ4dは、ポートP12,P13,P14のうち監視対象のポートを経由するパケットを複製してポートP11からも送出する。すると、仮想マシン4aにより複製されたパケットを収集できる。
物理マシン1は、次のようにして、パケットキャプチャの対象とするポートの組合せ(キャプチャポイントと称することがある)を決定する。記憶装置1aは、仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せ(キャプチャポイント)の複数の候補の情報を記憶する。各仮想マシンにより送受信されるパケットを全て取得できるポートの組合せをキャプチャポイントの候補とする。
例えば、第1の実施の形態では次に示す仮想マシンの6つのペアが通信を行うとする。仮想マシン2b,2cの第1ペア。第1ペアの通信はポートP3,P4を介して行われる。仮想マシン2c,3bの第2ペア。第2ペアの通信はポートP4,P8を介して行われる。仮想マシン3b,3cの第3ペア。第3ペアの通信はポートP8,P9を介して行われる。仮想マシン3c,4bの第4ペア。第4ペアの通信はポートP9,P13を介して行われる。仮想マシン2c,4cの第5ペア。第5ペアの通信はポートP5,P14を介して行われる。仮想マシン3c,4cの第6ペア。第6ペアの通信はポートP10,P14を介して行われる。
この場合、キャプチャポイントとして次のような候補が考えられる。第1候補は、ポートP3,P5,P8,P10,P13である。第2候補は、ポートP3,P8,P13,P14である。第3候補は、ポートP4,P5,P9,P10である。例えば、記憶装置1aは、決定されたキャプチャポイント候補を示す情報5を記憶する。
プロセッサ1bは、記憶装置1aの情報を参照して、キャプチャポイントの何れかの候補を用いたミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを仮想スイッチ毎に計測する。プロセッサ1bは、計測した情報を用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出する。
例えば、キャプチャポイントの第1候補であれば、ミラーリングの対象ポートはポートP3,P5,P8,P10,P13である。例えば、プロセッサ1bは、ミラーリングの実行時および非実行時の仮想スイッチ2dによる物理マシン2のプロセッサの使用量を計測する。また、プロセッサ1bは、ポートP2,P3,P4,P5を経由するパケット数も計測する。プロセッサ1bは、パケット数の情報を仮想マシン2aに計測させ、計測結果を仮想マシン2aから取得してもよい。プロセッサ1bは、計測した情報を用いて、収集されるパケット数に応じた仮想スイッチ2dによる物理マシン2のプロセッサの使用量の増分を算出する。例えば、1パケット当たりの収集に伴う仮想スイッチ2dによるプロセッサの使用量の増分を算出してもよい。
同様に、プロセッサ1bは、仮想スイッチ3d,4dについて、ミラーリングの実行時および非実行時の物理マシン3,4のプロセッサの使用量およびポートP7,P8,P9,P10,P12,P13,P14を経由するパケット数を計測する。そして、計測した情報を用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ3d,4d毎に算出する。
プロセッサ1bは、キャプチャポイントの複数の候補それぞれに対し、収集パケット数に応じた仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算する。
各ポートを経由するパケット数および収集されるパケット数に応じた仮想スイッチ毎のプロセッサの使用量の増分は、前段の処理により判明している。このため、プロセッサ1bは、キャプチャポイントの第1候補、第2候補、第3候補それぞれを選択したときの、各物理マシン上のハイパーバイザによるプロセッサの使用量を見積もることができる。
例えば、プロセッサ1bは、第1候補を選択したときのパケット収集時における物理マシン2のハイパーバイザによる物理マシン2のプロセッサの使用量U11を見積もる。同様に、物理マシン3のハイパーバイザによるプロセッサの使用量U12、物理マシン4のハイパーバイザによるプロセッサの使用量U13も見積もる。
また、プロセッサ1bは、第2候補を選択したときのパケット収集時における物理マシン2のハイパーバイザによる物理マシン2のプロセッサの使用量U21を見積もる。同様に、物理マシン3のハイパーバイザによるプロセッサの使用量U22、物理マシン4のハイパーバイザによるプロセッサの使用量U23も見積もる。
更に、プロセッサ1bは、第3候補を選択したときのパケット収集時における物理マシン2のハイパーバイザによる物理マシン2のプロセッサの使用量U31を見積もる。同様に、物理マシン3のハイパーバイザによるプロセッサの使用量U32、物理マシン4のハイパーバイザによるプロセッサの使用量U33も見積もる。
プロセッサ1bは、各キャプチャポイント候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せを決定する。例えば、各候補に対して求まる標準偏差(または、分散)が最小となる候補で示されるポートの組合せを、パケット収集に用いるポートの組合せと決定することが考えられる。
より具体的には、プロセッサ1bは、第1候補について、各ハイパーバイザによるパケット収集時のプロセッサの使用量U11,U12,U13に対し、標準偏差σ1を求める。第2候補についても同様に、各ハイパーバイザによるパケット収集時のプロセッサの使用量U21,U22,U23に対し、標準偏差σ2を求める。第3候補についても同様に、各ハイパーバイザによるパケット収集時のプロセッサの使用量U31,U32,U33に対し、標準偏差σ3を求める。
例えば、標準偏差σ1<σ2<σ3であれば、プロセッサ1bは、キャプチャポイントの第1候補に対応するポートP3,P5,P8,P10,P13を、パケット収集に用いるポートの組合せと決定する。なお、第1の実施の形態の物理マシン1の処理を、物理マシン2,3,4の何れかが実行してもよい。
第1の実施の形態のキャプチャポイント決定システムによれば、キャプチャポイントの複数の候補が取得される。ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分が仮想スイッチ毎に算出される。キャプチャポイントの各候補に対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量が物理マシン毎に計算される。各候補に対して計算された各ハイパーバイザによるプロセッサの使用量の偏差に応じて、複数の候補の中から、パケットの収集に用いるポートの組合せが決定される。これにより、物理マシン2,3,4の負荷を平準化できる。
ここで、各物理マシンによりパケットの収集を分担して実行する場合、何れかの物理マシン上で複製/収集されるパケット数が増大し、当該物理マシンに負荷が偏るおそれがある。仮想マシン間のパケットの送受信量は仮想マシンにより実現される機能や仮想マシンが利用される頻度などに応じて異なり、仮想スイッチのポートに着目すると、通信量の比較的多いポートや通信量の比較的少ないポートなど様々だからである。
例えば、キャプチャポイントを適切に選択することで、特定の物理マシンに負荷が偏らないようにすることが考えられる。しかし、ミラーリングによるプロセッサの負荷が各物理マシンでどの程度であるかを直接計測するのは容易でない。
そこで、第1の実施の形態の方法では、キャプチャポイントの複数の候補に対し、各候補を採用した場合の各ハイパーバイザによるプロセッサの使用量を見積もる。これにより、各ハイパーバイザによるプロセッサの使用量に偏りのないキャプチャポイントを選択可能となる。
このとき、収集されるパケット数に応じた仮想スイッチによるプロセッサの使用量の増分を算出する。このため、各ポートを経由するパケット数(当該ポートをミラーリング対象としたときに収集されるパケット数に相当)から、キャプチャポイントの各候補を採用したときの各ハイパーバイザによるプロセッサの使用量を見積もれる。したがって、キャプチャポイントの全候補について、ミラーリングの実行時および非実行時のハイパーバイザのプロセッサの使用量を計測せずに済む。よって、キャプチャポイントの決定を効率的に行える。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムの例を示す図である。第2の実施の形態の情報処理システムは、サーバ100,200,300、管理サーバ400およびクライアント500,600,700を含む。各装置は、ネットワーク10に接続されている。ネットワーク10は、例えばLAN(Local Area Network)である。なお、クライアント500,600,700は、WAN(Wide Area Network)やインターネットなどの広域ネットワークを介して、ネットワーク10に接続されてもよい。第2の実施の形態の情報処理システムでは、サーバ100,200,300が提供するWebサービスをクライアント500,600,700により利用可能である。サーバ100,200,300上で動作する仮想マシンが互いに連携することで所定のWebサービスが実現される。
ここで、Webサービスは、Webサーバ機能、AP(APplication)サーバ機能およびDB(DataBase)サーバ機能の3つの機能の連携により実行される。Webサーバ機能は、例えば、GUI(Graphical User Interface)などを提供する。APサーバ機能は、例えば、業務特有のロジックによる機能を提供する。DBサーバ機能は、例えば、業務に用いるデータの管理機能を提供する。
サーバ100,200,300は、仮想マシンおよび仮想スイッチが動作可能な物理的なサーバコンピュータ(物理サーバ)である。
管理サーバ400は、サーバ100,200,300の負荷やWebサービスの稼働状況を管理するサーバコンピュータである。クライアント500,600,700は、サーバ100,200,300が提供するWebサービスにアクセスするクライアントコンピュータである。例えば、クライアント500,600,700で実行されるWebブラウザが、ユーザによる操作に応じてWebサービスにアクセスする。
図3は、サーバのハードウェア例を示す図である。サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、読み取り装置106、NIC107を有する。各ユニットがサーバ100のバスに接続されている。
CPU101は、サーバ100の全体を制御するプロセッサである。CPU101は、マルチプロセッサであってもよい。
RAM102は、サーバ100の主記憶装置である。RAM102は、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、CPU101による処理に用いる各種データを記憶する。
HDD103は、サーバ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、サーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイなど各種のディスプレイを用いることができる。
入力信号処理部105は、サーバ100に接続された入力デバイス12から入力信号を取得し、CPU101に出力する。入力デバイス12としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。サーバ100には、複数の種類の入力デバイスが接続されてもよい。
読み取り装置106は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリなどの不揮発性の半導体メモリを使用することもできる。読み取り装置106は、例えば、CPU101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
NIC107は、ネットワーク10に接続され、他の情報処理装置と通信する。NIC107は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
なお、サーバ200,300、管理サーバ400およびクライアント500,600,700もサーバ100と同様のハードウェアを用いて実現できる。
図4は、仮想マシンの配置例を示す図である。サーバ100は、ハイパーバイザ110および仮想マシン120,130,140を有する。ハイパーバイザ110は、サーバ100上で仮想マシン120,130,140を動作させる。
ハイパーバイザ110は、管理サーバ400の指示に基づいて、各仮想マシンに対するハードウェア資源の割当や各仮想マシンの起動/停止を制御する。ハイパーバイザ110は、サーバ100が備えるハードウェア資源への各仮想マシンによるアクセスを調停する。ハイパーバイザ110は、サーバ100上で仮想スイッチ111を動作させる。
仮想スイッチ111は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ111のスイッチ名称(または、識別情報)を“vSW1−1”とする。“1−1”の表記は、サーバ100上で他の仮想スイッチが実行されてもよいことを示している(“vSW1−2”の仮想スイッチが存在してもよい)。
仮想マシン120は、仮想スイッチ111が中継する通信データをミラーリングにより収集して、Webサービスの稼働状況を監視するための仮想マシンである。仮想マシン120のマシン名称を“M1”とする。
仮想マシン130は、Webサーバとして機能する仮想マシンである。仮想マシン130のマシン名称を“Web1”とする。仮想マシン140は、APサーバとして機能する仮想マシンである。仮想マシン140のマシン名称を“AP1”とする。
サーバ200は、ハイパーバイザ210および仮想マシン220,230,240を有する。ハイパーバイザ210は、サーバ200上で仮想マシン220,230,240を動作させる。ハイパーバイザ210の仮想マシン220,230,240に対する制御内容は、ハイパーバイザ110と同様である。ハイパーバイザ210は、サーバ200上で仮想スイッチ211を動作させる。
仮想スイッチ211は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ211のスイッチ名称を“vSW2−1”とする。“2−1”の表記は、サーバ200上で他の仮想スイッチが実行されてもよいことを示している(“vSW2−2”の仮想スイッチが存在してもよい)。
仮想マシン220は、仮想スイッチ211が中継する通信データをミラーリングにより収集して、Webサービスの稼働状況を監視するための仮想マシンである。仮想マシン220のマシン名称を“M2”とする。
仮想マシン230は、Webサーバとして機能する仮想マシンである。仮想マシン230のマシン名称を“Web2”とする。仮想マシン240は、APサーバとして機能する仮想マシンである。仮想マシン240のマシン名称を“AP2”とする。
サーバ300は、ハイパーバイザ310および仮想マシン320,330,340を有する。ハイパーバイザ310は、サーバ300上で仮想マシン320,330,340を動作させる。ハイパーバイザ310の仮想マシン320,330,340に対する制御内容は、ハイパーバイザ110と同様である。ハイパーバイザ310は、サーバ300上で仮想スイッチ311,312を動作させる。
仮想スイッチ311,312は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ311のスイッチ名称を“vSW3−1”とする。仮想スイッチ312のスイッチ名称を“vSW3−2”とする。
仮想マシン320は、仮想スイッチ311,312が中継する通信データをミラーリングにより収集して、Webサービスの稼働状況を監視するための仮想マシンである。仮想マシン320のマシン名称を“M3”とする。
仮想マシン330は、Webサーバとして機能する仮想マシンである。仮想マシン330のマシン名称を“Web3”とする。仮想マシン340は、DBサーバとして機能する仮想マシンである。仮想マシン340のマシン名称を“DB1”とする。
また、以下の説明において、サーバ100のマシン名称を“SV1”とする。また、サーバ200のマシン名称を“SV2”とする。サーバ300のマシン名称を“SV3”とする。また、仮想マシンをVM(Virtual Machine)と略記することがある。
図5は、仮想マシン間の論理的な通信経路の例を示す図である。第2の実施の形態のWebサービスでは、次の仮想マシンのペアが通信する。
第1には、WebサーバとAPサーバとの通信である。具体的には次の通りである。仮想マシン130,140のペア(Web1とAP1)。仮想マシン230,140のペア(Web2とAP1)。仮想マシン230,240のペア(Web2とAP2)。仮想マシン330,240のペア(Web3とAP2)。なお、仮想マシン130,230,330(Webサーバ)は、クライアント500,600,700とも通信する。
第2には、APサーバとDBサーバとの通信である。具体的には次の通りである。仮想マシン140,340のペア(AP1とDB1)。仮想マシン240,340のペア(AP2とDB1)。
ここで、ネットワーク10のネットワークアドレスは、“192.168.1.0/24”である。各仮想マシンに割り当てられたIP(Internet Protocol)アドレスは次の通りである。なお、図5では、各仮想マシンに割り当てられたIPアドレスのうち、最下位の8ビットの値のみを図示し、上位24ビットの図示を省略している。
仮想マシン130がクライアント500,600,700との通信に用いるIPアドレスは“192.168.0.1”である。仮想マシン130が仮想マシン140との通信に用いるIPアドレスは“192.168.0.2”である。仮想マシン140が仮想マシン130,230との通信に用いるIPアドレスは“192.168.0.3”である。仮想マシン140が仮想マシン340との通信に用いるIPアドレスは“192.168.0.4”である。
仮想マシン230がクライアント500,600,700との通信に用いるIPアドレスは“192.168.0.5”である。仮想マシン230が仮想マシン140,240との通信に用いるIPアドレスは“192.168.0.6”である。仮想マシン240が仮想マシン230,330との通信に用いるIPアドレスは“192.168.0.7”である。仮想マシン240が仮想マシン340との通信に用いるIPアドレスは“192.168.0.8”である。
仮想マシン330がクライアント500,600,700との通信に用いるIPアドレスは“192.168.0.9”である。仮想マシン330が仮想マシン240との通信に用いるIPアドレスは“192.168.0.10”である。仮想マシン340が仮想マシン140,240との通信に用いるIPアドレスは“192.168.0.11”である。
図6は、仮想スイッチと仮想マシンとの接続関係の例を示す図である。仮想スイッチ111は、ポート111a,111b,111c,111d,111e,111fを有する。ポート111aは、仮想マシン120の通信に用いられる仮想的な通信インタフェースである。ポート111b,111cは、仮想マシン130の通信に用いられる仮想的な通信インタフェースである。ポート111d,111eは、仮想マシン140の通信に用いられる仮想的な通信インタフェースである。ポート111fは、各仮想マシンがNIC107およびネットワーク10を介して、サーバ200,300、管理サーバ400およびクライアント500,600,700と通信するために用いられる仮想的な通信インタフェースである。
ここで、ポート111aのポート番号は“1”である。ポート111bのポート番号は“2”である。ポート111cのポート番号は“3”である。ポート111dのポート番号は“4”である。ポート111eのポート番号は“5”である。
仮想マシン120は、vNIC(virtual NIC)121を有する。vNIC121は、ポート111aを介して通信するための仮想的な通信インタフェースである。
仮想マシン130は、vNIC131,132を有する。vNIC131は、ポート111bを介してクライアント500,600,700と通信するための仮想的な通信インタフェースである。vNIC131には、IPアドレス“.1”(IPアドレスの最下位の8ビットのみを表記している。以下、同様)が割り当てられている。vNIC132は、ポート111cを介して仮想マシン140と通信するための仮想的な通信インタフェースである。vNIC132には、IPアドレス“.2”が割り当てられている。
仮想マシン140は、vNIC141,142を有する。vNIC141は、ポート111dを介して仮想マシン130,230と通信するための仮想的な通信インタフェースである。vNIC141には、IPアドレス“.3”が割り当てられている。vNIC142は、ポート111eを介して仮想マシン340と通信するための仮想的な通信インタフェースである。vNIC142には、IPアドレス“.4”が割り当てられている。
仮想スイッチ211は、ポート211a,211b,211c,211d,211e,211fを有する。ポート211aは、仮想マシン220の通信に用いられる仮想的な通信インタフェースである。ポート211b,211cは、仮想マシン230の通信に用いられる仮想的な通信インタフェースである。ポート211d,211eは、仮想マシン240の通信に用いられる仮想的な通信インタフェースである。ポート211fは、各仮想マシンが、サーバ200が備えるNIC207およびネットワーク10を介して、サーバ100,300、管理サーバ400およびクライアント500,600,700と通信するために用いられる仮想的な通信インタフェースである。
ここで、ポート211aのポート番号は“1”である。ポート211bのポート番号は“2”である。ポート211cのポート番号は“3”である。ポート211dのポート番号は“4”である。ポート211eのポート番号は“5”である。
仮想マシン220は、vNIC221を有する。vNIC221は、ポート211aを介して通信するための仮想的な通信インタフェースである。
仮想マシン230は、vNIC231,232を有する。vNIC231は、ポート211bを介してクライアント500,600,700と通信するための仮想的な通信インタフェースである。vNIC231には、IPアドレス“.5”が割り当てられている。vNIC232は、ポート211cを介して仮想マシン140,240と通信するための仮想的な通信インタフェースである。vNIC132には、IPアドレス“.6”が割り当てられている。
仮想マシン240は、vNIC241,242を有する。vNIC241は、ポート211dを介して仮想マシン230,330と通信するための仮想的な通信インタフェースである。vNIC241には、IPアドレス“.7”が割り当てられている。vNIC242は、ポート211eを介して仮想マシン340と通信するための仮想的な通信インタフェースである。vNIC242には、IPアドレス“.8”が割り当てられている。
仮想スイッチ311は、ポート311a,311b,311c,311dを有する。ポート311aは、仮想マシン320の通信に用いられる仮想的な通信インタフェースである。ポート311b,311cは、仮想マシン330の通信に用いられる仮想的な通信インタフェースである。ポート311dは、各仮想マシンが、サーバ300が備えるNIC307およびネットワーク10を介して、サーバ100,200、管理サーバ400およびクライアント500,600,700と通信するために用いられる仮想的な通信インタフェースである。
ここで、ポート311aのポート番号は“1”である。ポート311bのポート番号は“2”である。ポート311cのポート番号は“3”である。
仮想スイッチ312は、ポート312a,312b,312cを有する。ポート312aは、仮想マシン320の通信に用いられる仮想的な通信インタフェースである。ポート312bは、仮想マシン340の通信に用いられる仮想的な通信インタフェースである。ポート312cは、仮想マシン340が、NIC307およびネットワーク10を介して、サーバ100,200と通信するために用いられる仮想的な通信インタフェースである。ここで、ポート312aのポート番号は“1”である。ポート312bのポート番号は“2”である。
仮想マシン320は、vNIC321,321aを有する。vNIC321は、ポート311aを介して通信するための仮想的な通信インタフェースである。vNIC321aは、ポート312aを介して通信するための仮想的な通信インタフェースである。
仮想マシン330は、vNIC331,332を有する。vNIC331は、ポート311bを介してクライアント500,600,700と通信するための仮想的な通信インタフェースである。vNIC331には、IPアドレス“.9”が割り当てられている。vNIC332は、ポート311cを介して仮想マシン240と通信するための仮想的な通信インタフェースである。vNIC332には、IPアドレス“.10”が割り当てられている。
仮想マシン340は、vNIC341を有する。vNIC341は、ポート312bを介して仮想マシン140,240と通信するための仮想的な通信インタフェースである。vNIC341には、IPアドレス“.11”が割り当てられている。
図7は、パケットキャプチャの例を示す図である。図7では説明に関係しないポートに対する符号の図示を一部省略している。図5の論理的な通信経路に対して、仮想マシン間の通信のパケットおよび仮想マシンとクライアントとの通信のパケットを全て取得するためのキャプチャポイントの複数の候補を考える。そのうちの1つは、ポート111b,111d,211b,211d,311b,312bの組合せである。仮に、これらのポートを経由するパケットを収集する場合、仮想スイッチ111,211,311,312は次のようにミラーリングを行えばよい。
仮想スイッチ111は、ポート111bを経由するパケットを複製し、ポート111aからも送出する。同様に、ポート111dを経由するパケットを複製し、ポート111aからも送出する。
仮想スイッチ211は、ポート211bを経由するパケットを複製し、ポート211aからも送出する。同様に、ポート211dを経由するパケットを複製し、ポート211aからも送出する。
仮想スイッチ311は、ポート311bを経由するパケットを複製し、ポート311aからも送出する。仮想スイッチ312は、ポート312bを経由するパケットを複製し、ポート312aからも送出する。
図7で例示したミラーリングの方法は一例である。仮想スイッチ111,211,311は、パケットキャプチャを行うポートの組合せに応じて、ミラーリングを行うポートを変更する。
図8は、各マシンの機能例を示す図である。図8に示すユニットの一部または全部は、サーバ100,200,300および管理サーバ400が備えるCPUによって実行されるプログラムのモジュールであってもよい。
仮想マシン120は、記憶部122、パケット収集部123、候補抽出部124、負荷算出部125およびキャプチャポイント決定部126を有する。
記憶部122は、RAM102やHDD103に確保された記憶領域として実現される。記憶部122は、仮想マシン120の処理に用いられる各種の情報(収集したパケットの情報など)を記憶する。記憶部122は、各仮想マシンのIPアドレスと仮想マシンの名称との対応関係や、各仮想マシンで動作する仮想スイッチの名称などの情報も予め記憶している。
パケット収集部123は、仮想スイッチ111の所定のポートを経由するパケットを収集し、記憶部122に格納する。
候補抽出部124は、仮想マシン120,220,320によるパケットキャプチャの結果に基づいて、仮想スイッチ111,211,311,312におけるキャプチャポイントの候補を抽出する。具体的には、候補抽出部124は、図5で例示した仮想マシン同士の接続関係に対し、全ての仮想マシンの間の通信を取得できるようなポートの組合せをキャプチャポイントの候補とする。後述するようにキャプチャポイントの候補は複数得られる。候補抽出部124は、キャプチャポイント候補の情報を記憶部122に格納する。候補抽出部124は、何れかのキャプチャポイント候補を管理サーバ400に通知して、当該キャプチャポイント候補でのミラーリングを開始させることもある。
負荷算出部125は、管理サーバ400と連携して、ミラーリングの実行時(ミラーリングオン時)およびミラーリングの非実行時(ミラーリングオフ時)のハイパーバイザ110,210,310および仮想スイッチ111,211,311,312のリソース使用量を測定する。
負荷算出部125による具体的な測定内容は次の通りである。(1)所定期間(例えば、1分間)における仮想スイッチ111,211,311,312のポート別の送受信パケット数。(2)所定期間(例えば、1分間)のハイパーバイザ110,210,310および仮想スイッチ111,211,311,312のCPU使用率の平均。ただし、ハイパーバイザ110,210,310については、少なくともミラーリングオフ時のCPU使用率を測定していればよい。なお、ハイパーバイザ110,210,310それぞれが使用可能なCPUリソース量の全体を100%とする。負荷算出部125は、測定結果を記憶部122に格納する。
また、負荷算出部125は、上記測定結果を用いて、仮想スイッチ111が1パケットを収集するために所要するCPU101の使用率を算出する。負荷算出部125は、仮想スイッチ211,311,312についても同様に、1パケットを収集するために所要するサーバ200,300のCPU使用率を算出する。負荷算出部125は、算出結果を記憶部122に格納する。
キャプチャポイント決定部126は、1パケット当たりの仮想スイッチ毎のCPU使用率とミラーリングオフ時のハイパーバイザ毎のCPU使用率とを用いて、キャプチャポイントの各候補に対し、ハイパーバイザ110,210,310のミラーリングオン時のCPU使用率を見積もる。前述のように、ハイパーバイザ110,210,310それぞれが使用可能なCPUリソース量の全体を100%とする。
キャプチャポイント決定部126は、見積り結果に基づいて、複数のキャプチャポイント候補の中からキャプチャポイントを決定する。具体的には、キャプチャポイント決定部126は、ハイパーバイザ110,210,310によるCPU使用率のばらつきが最小になるキャプチャポイント候補をキャプチャポイントと決定する。キャプチャポイント決定部126は、ばらつきを示す指標として、分散や標準偏差を用いることができる。キャプチャポイント決定部126は、決定したキャプチャポイントに設定しなおしてミラーリングを行うように、管理サーバ400に通知する。
仮想マシン220は、記憶部222およびパケット収集部223を有する。記憶部222は、サーバ200が備えるRAMやHDDに確保された記憶領域として実現される。記憶部222は、仮想マシン220の処理に用いられる各種の情報を記憶する。
パケット収集部223は、仮想スイッチ211の所定のポートを経由するパケットを収集し、記憶部222に格納する。パケット収集部223は、各ポートを経由するパケットが何れの仮想マシン間のものであるかを仮想マシン120に通知する。例えば、パケット収集部223は、仮想スイッチ211のポートの識別情報(ポート番号)と当該ポートを経由して送受信されるパケットの宛先/送信元IPアドレスの情報とを仮想マシン120に通知することが考えられる。
仮想マシン320は、記憶部322およびパケット収集部323を有する。記憶部322は、サーバ300が備えるRAMやHDDに確保された記憶領域として実現される。記憶部322は、仮想マシン320の処理に用いられる各種の情報を記憶する。
パケット収集部323は、仮想スイッチ311,312の所定のポートを経由するパケットを収集し、記憶部322に格納する。パケット収集部323は、各ポートを経由するパケットが何れの仮想マシン間のものであるかを仮想マシン120に通知する。例えば、パケット収集部323は、仮想スイッチ311,312のポートの識別情報と当該ポートを経由して送受信されるパケットの宛先/送信元IPアドレスの情報とを仮想マシン120に通知することが考えられる。
管理サーバ400は、記憶部410、サーバ監視部420およびミラーリング設定部430を有する。記憶部410は、管理サーバ400が備えるRAMやHDDに確保された記憶領域として実現される。記憶部410は、管理サーバ400の処理に用いられる各種の情報を記憶する。
サーバ監視部420は、ハイパーバイザ110,210,310によるCPU使用率をサーバ100,200,300から取得する。サーバ監視部420は、仮想スイッチ111,211,311,312によるCPU使用率をサーバ100,200,300から取得する。サーバ監視部420は、仮想スイッチ111,211,311,312の各ポートを経由して送受信されるパケット数をサーバ100,200,300から取得する。サーバ監視部420は、負荷算出部125からの要求に応じて取得した情報を負荷算出部125に提供する。
また、サーバ監視部420は、所定のタイミング(例えば、Webサービスの使用頻度が比較的低い時間帯など)で、収集されたパケットを仮想マシン120,220,320から取得して、Webサービスの稼働状況を解析する。収集されたパケットによるシステムの稼働状況の監視方法としては、特開2006−11683号公報が参考になる。
ミラーリング設定部430は、仮想スイッチ111,211,311,312に対するミラーリングの設定を行い、パケット収集部123,223,323によるパケットキャプチャを開始させる。ミラーリング設定部430は、候補抽出部124やキャプチャポイント決定部126から指示されたキャプチャポイントを対象として、仮想スイッチ111,211,311,312のミラーリングの設定を行うこともある。
図9は、収集されるパケットの情報の例を示す図である。パケット情報122aは、パケット収集部123がポート111bについてキャプチャしたパケットの集合である。パケット情報122aは、記憶部122に格納される。ポート111bは、前述のように、クライアント500,600,700上のWebブラウザと仮想マシン130との間のWebアクセスに利用され得る。このため、ポート111bを経由するパケットには、Webアクセスを示すメッセージが含まれる。以下、パケット情報122aの各行に便宜的に付した行番号を示して具体的に説明する。
例えば、行番号“1”のパケットは、クライアント500(IPアドレス“192.168.1.100”)から仮想マシン130(IPアドレス“192.168.1.1”)に対するHTTP(HyperText Transfer Protocol)リクエストを示している。
行番号“2”のパケットは、行番号“1”のHTTPリクエストに応じた仮想マシン130からクライアント500へのHTTPレスポンスを示している。
行番号“3”のパケットは、クライアント600(IPアドレス“192.168.1.101”)から仮想マシン130へのHTTPリクエストを示している。
行番号“4”のパケットは、クライアント700(IPアドレス“192.168.1.102”)から仮想マシン130へのHTTPリクエストを示している。
行番号“5”のパケットは行番号“3”のHTTPリクエストに応じた仮想マシン130からクライアント600へのHTTPレスポンスを示している。
行番号“6”のパケットは行番号“4”のHTTPリクエストに応じた仮想マシン130からクライアント700へのHTTPレスポンスを示している。
上記の説明では、ポート111bを例示したが、パケット収集部123は、ポート111c,111d,111eについても同様にしてパケットを収集できる。
また、パケット収集部223も、パケット収集部123と同様に、ポート211b,211c,211d,211eを経由するパケットを収集する。パケット収集部323も、パケット収集部123と同様に、ポート311b,311c,312bを経由するパケットを収集する。
例えば、仮想マシン130,140の通信であれば、Web−AP連携用のメッセージ(例えば、IIOP(Internet Inter Object Request Broker Protocol)など)を含むパケットを収集できる。また、仮想マシン140,340の通信であれば、DBアクセス用のメッセージなどを含むパケットを収集できる。各パケットは、送信元のIPアドレスおよび宛先のIPアドレスを含む。
パケット収集部123,223,323は、仮想スイッチ111,211,311,312により、複製したパケットにポートを示す情報を付加させて、収集したい複数のポートのパケットを同時に収集できる。
図10は、キャプチャポイント候補テーブルの例を示す図である。キャプチャポイント候補テーブル122bは、候補抽出部124によって生成され、記憶部122に格納される。キャプチャポイント候補テーブル122bは、候補番号およびキャプチャ対象ポート番号の項目を含む。
候補番号の項目には、キャプチャポイント候補を識別する識別番号が設定される。キャプチャ対象ポート番号の項目には、キャプチャポイント候補の情報が設定される。キャプチャポイント候補は、仮想スイッチ111,211,311,312におけるミラーリング対象ポートの組合せである。
例えば、キャプチャポイント候補テーブル122bには、候補番号が“1”、仮想スイッチ111(vSW1−1)のポート番号“2,4”、仮想スイッチ211(vSW2−1)のポート番号“2,4”、仮想スイッチ311(vSW3−1)のポート番号“2”、仮想スイッチ312(vSW3−2)のポート番号“2”という情報が登録されている。これは、候補番号“1”のキャプチャポイント候補は、ポート111b,111d,211b,211d,ポート311b,312bの組であることを示す。
なお、キャプチャポイント候補によっては、何れかの仮想スイッチにおいてミラーリング対象ポートがない場合もある。その場合には、当該仮想スイッチにおけるキャプチャ対象ポート番号の項目に設定なしを示す“−”(ハイフン)を表記している(例えば、候補番号“2”のvSW3−2の欄)。
図11は、測定テーブル(ミラーリングオフ時)の例を示す図である。測定テーブル122cは、負荷算出部125によって生成され、記憶部122に格納される。測定テーブル122cは、スイッチ名、ポート番号、パケット数、CPU使用率(vSW)およびCPU使用率(HV)の項目を含む。ここで、vSWはvirtual SWitchの略である。HVはHyperVisorの略である。
スイッチ名の項目には、仮想スイッチの名称が登録される。ポート番号の項目には、ポート番号が登録される。パケット数の項目には、所定期間(例えば、1分間)に当該ポートを経由して送受信されたパケットの数が登録される。CPU使用率(vSW)の項目には同期間における仮想スイッチの平均のCPU使用率が登録される。単位は%である。CPU使用率(HV)の項目には同期間におけるハイパーバイザの平均のCPU使用率が登録される。
例えば、測定テーブル122cには、スイッチ名が“vSW1−1”、ポート番号が“2”、パケット数が“10000”、CPU使用率(vSW)が“6.45”、CPU使用率(HV)が“60”という情報が登録されている。これは、ポート111bを経由して所定期間内に送受信されたパケット数が10000であり、その間の仮想スイッチ111の平均のCPU使用率が6.45%であったこと、ハイパーバイザ110の平均のCPU使用率が60%であったことを示す。
図12は、測定テーブル(ミラーリングオン時)の例を示す図である。測定テーブル122dは、負荷算出部125によって生成され、記憶部122に格納される。測定テーブル122dは、スイッチ名、ポート番号、パケット数およびCPU使用率(vSW)の項目を含む。各項目に登録される内容は、測定テーブル122cの同名の項目に登録される内容と同様であるため、説明を省略する。なお、前述のように、ミラーリングオン時のハイパーバイザ110,210,310のCPU使用率は測定しなくてもよい。そのため、測定テーブル122dでは、(測定テーブル122cにはある)CPU使用率(HV)の項目の図示を省略している。
図13は、CPU使用率テーブルの例を示す図である。CPU使用率テーブル122eは、負荷算出部125によって生成され、記憶部122に格納される。CPU使用率テーブル122eは、スイッチ名およびCPU使用率の項目を含む。
スイッチ名の項目には、仮想スイッチの名称が登録される。CPU使用率の項目には、1パケット当たりのミラーリングに要する仮想スイッチのCPU使用率ΔCmirrorが登録される。単位は%/パケットである。
例えば、CPU使用率テーブル122eには、スイッチ名が“vSW1−1”、CPU使用率が“0.00008”という情報が登録されている。これは、1パケット当たりのミラーリングに要する仮想スイッチ111のCPU101の使用率が0.00008%であることを示す。これは、所定期間内に収集されるパケット数が1増加すると、当該期間の平均のCPU使用率がΔCmirror=0.00008%増加することを意味する。
負荷算出部125は、測定テーブル122c,122dに基づき、式(1)を用いてΔCmirrorを計算できる。
Figure 0006248763
ここで、Cmirror_offは、ミラーリングオフ時の仮想スイッチのCPU使用率である。Cmirror_onは、ミラーリングオン時の仮想スイッチのCPU使用率である。pmirror_off_totalは、ミラーリングオフ時の当該仮想スイッチによる送受信パケット数(監視対象の仮想マシンに接続されたポートを経由して送受信されたパケット数の合計値)である。pmirror_on_totalは、ミラーリングオン時の当該仮想スイッチによる送受信パケット数(監視対象の仮想マシンに接続されたポートを経由して送受信されたパケット数の合計値)である。pmirrorは、当該仮想スイッチにおいてミラーリングされたパケット数の合計値である。
すなわち、CPU使用率の見積りを行うために、監視対象の仮想マシンに接続する全ての仮想スイッチの何れかのポートをミラーリングすることになる。
式(1)は、監視対象システムの仮想マシンの通信量が仮想マシン間でほぼ比例関係にあることを利用している。ここで、各仮想スイッチには監視対象システムの仮想マシンのみが接続されている構成を想定している。例えば、測定テーブル122cの各ポートのパケット数の比と、測定テーブル122dの各ポートのパケット数の比とは、ほぼ等しい。式(1)を更に詳細に説明すると、次のようになる。
図14は、ミラーリングによるCPUオーバヘッドの算出例を示す図である。負荷算出部125は、次の処理により仮想マシン毎のΔCmirrorを算出する。まず、測定により得られたミラーリングオフ時の仮想スイッチのCPU使用率Cmirror_offを、式(2)を用いてミラーリングオン時と同等のパケット数が送受信された場合に換算する。換算後の値C’mirror_offは、ミラーリングオン時におけるミラーリングに起因しない仮想スイッチのCPU使用率といえる。
Figure 0006248763
ここでは、仮想スイッチのCPU使用率は、送受信されるパケット数に比例すると想定している。次に、式(3)を用いてミラーリングに起因するCPU使用率(CPUオーバヘッド)を算出する。
Figure 0006248763
そして、式(4)を用いて、1パケット当たりのミラーリングによるCPU使用率の増分ΔCmirrorを算出する。
Figure 0006248763
キャプチャポイント決定部126は、ΔCmirrorおよび式(5)を用いて、ミラーリングオン時のハイパーバイザ毎のCPU使用率Cmirror_on_estimatedを算出できる。
Figure 0006248763
ここで、Cmirror_off_hvは、ミラーリングオフ時のハイパーバイザのCPU使用率である。
ただし、式(5)は、サーバ100,200のように監視対象の仮想スイッチが1つの場合である。サーバ300のように、監視対象の仮想スイッチが複数であれば、式(5)の右辺第2項で仮想スイッチ毎に和をとる。この場合、CPU使用率Cmirror_on_estimatedは、式(6)で表せる。
Figure 0006248763
ここで、式(6)の和記号Σは、仮想スイッチ毎に得られるpmirrorとΔCmirrorとの積を、着目するハイパーバイザ上で動作する全ての仮想スイッチに渡って合計することを意味する。
図15は、キャプチャポイント候補の決定例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
(S1)候補抽出部124は、仮想スイッチ111,211,311,312の各ポート(仮想マシンと接続されたポートでよい)を経由する通信データを、ミラーリングにより所定期間だけパケット収集部123,223,323に収集させる。所定期間経過後は、ミラーリングオフしてよい。
(S2)候補抽出部124は、仮想スイッチ111,211,311,312の各ポート(仮想マシンと接続されたポート)を経由して通信する仮想マシンの宛先/送信元IPアドレスを、パケット収集部123,223,323から取得する。候補抽出部124は、取得した情報を基に、各ポートを経由して通信する仮想マシンおよびクライアントのペア(通信ペア)を特定し、ポートと通信ペアとの対応関係の情報を生成し、記憶部122に格納する。更に、全ての通信ペアの一覧を生成して記憶部122に格納する。第2の実施の形態の場合、全通信ペアは、図5において線で結ばれた仮想マシンの6個のペアを含む。また、全通信ペアは仮想マシン130,230,330の何れかと、クライアント500,600,700の何れかとのペア(合計9個)も含む。この場合、全通信ペアに含まれる通信ペアの総数は15である。
(S3)候補抽出部124は、ステップS2で取得した全ポートから複数のポートを選択する全ての組合せをキャプチャポイント候補テーブル122bに仮登録する。
(S4)候補抽出部124は、キャプチャポイント候補テーブル122bから、仮登録したキャプチャポイント候補を1つ選択する(ただし、未選択のものから1つを選択する)。
(S5)候補抽出部124は、選択したキャプチャポイント候補のポートの組合せで、ステップS2で生成した全通信ペアのパケットを収集できるか否かを判定する。全通信ペアのパケットを収集できる場合、処理をステップS6に進める。全通信ペアのパケットを収集できない場合、処理をステップS7に進める。候補抽出部124は、ポートと当該ポートでカバーできる通信ペアとの対応関係をステップS2で把握済みである。したがって、この対応関係の情報を参照して、仮登録したキャプチャポイント候補でカバー可能な通信ペアの組合せが全通信ペアを全て含む場合、全通信ペアのパケットを収集できると判定する。一方、仮登録したキャプチャ対象候補でカバー可能な通信ペアの組合せが、全通信ペアの少なくとも1つの通信ペアを含まない場合、全通信ペアのパケットを収集できないと判定する。
(S6)候補抽出部124は、着目しているキャプチャポイント候補を、キャプチャポイント候補として維持する。そして、処理をステップS8に進める。
(S7)候補抽出部124は、着目しているキャプチャポイント候補を、キャプチャポイント候補テーブル122bから削除する。そして、処理をステップS8に進める。
(S8)候補抽出部124は、キャプチャポイント候補テーブル122bに仮登録した全てのキャプチャポイント候補について、ステップS4以降の処理を行ったか否かを判定する。全てを処理済である場合、処理を終了する。未処理のものが残っている場合、処理をステップS4に進める。
このようにして、サーバ100は、キャプチャポイント候補テーブル122bを生成する。ここで、上記テーブル122bには通信の重複が無い候補のみとしているが、通信の重複のある候補を含めてもよい。上記ステップS1では、監視対象の仮想マシンの通信に直接用いられるポート111b,111c,111d,111e,211b,211c,211d,211e,311b,311c,312bについてパケットキャプチャを行い、それ以外のポート(例えば、ポート111f,211f,311d,312c)を対象外としてよい。それ以外のポートを経由するパケットには、監視したいサービスとは無関係な通信のパケットが比較的多く含まれている可能性が高く、キャプチャ量が多くなる可能性があるからである。ただし、これらのポート(例えば、ポート111f,211f,311d,312c)も対象としてパケット収集させてもよい。なお、上記のキャプチャポイント候補の決定方法については、特開2013−175075号公報を参考にできる。
図16は、ΔCmirrorの算出例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
(S11)サーバ監視部420は、ミラーリングオフ時の仮想スイッチ111,211,311,312およびハイパーバイザ110,210,310のリソース使用量を測定する。測定内容は、仮想スイッチ111,211,311,312の各ポート(監視対象の仮想マシンが接続されたポートのみでよい)を経由して所定期間(例えば、1分間)に送受信されるパケット数と各仮想スイッチによる当該期間の平均のCPU使用率である。また、ハイパーバイザ110,210,310の当該期間の平均のCPU使用率である。サーバ監視部420は、負荷算出部125に計測結果を送信する。負荷算出部125は、取得した情報から測定テーブル122cを生成し、記憶部122に格納する。
(S12)負荷算出部125は、キャプチャポイント候補テーブル122bからキャプチャポイント候補を1つ選択する。選択されるキャプチャポイント候補は任意でよい。ただし、監視対象となる通信に関わる仮想マシンに接続された全ての仮想スイッチ111,211,311,312において何れかのポートでミラーリングが行われる候補とする。例えば、負荷算出部125は、候補番号“1”のキャプチャポイント候補を選択する。
(S13)負荷算出部125は、選択したキャプチャポイント候補を用いたミラーリングの開始をミラーリング設定部430に指示する。ミラーリング設定部430は、指示されたキャプチャポイント候補に含まれるポートの組合せを対象としたミラーリングを開始するよう、仮想スイッチ111,211,311,312に指示する。すると、仮想スイッチ111,211,311,312は、指定されたポートのミラーリングを開始する。
(S14)サーバ監視部420は、ミラーリングオン時の仮想スイッチ111,211,311,312のリソース使用量を測定する。測定内容は、仮想スイッチ111,211,311,312の各ポート(監視対象の仮想マシンが接続されたポートのみでよい)を経由して所定期間(例えば、1分間)に送受信されるパケット数と各仮想スイッチによる当該期間の平均のCPU使用率である。サーバ監視部420は、負荷算出部125に計測結果を送信する。負荷算出部125は、取得した情報から測定テーブル122dを生成し、記憶部122に格納する。サーバ監視部420は、測定が完了した後は、仮想スイッチ111,211,311,312によるミラーリングを停止させる。
(S15)負荷算出部125は、測定テーブル122c,122dを参照し、式(1)を用いて、1パケット当たりのミラーリングによるCPU使用率の増分ΔCmirrorを仮想スイッチ毎に算出する。この場合、pmirrorは、測定テーブル122dから求めることができる(ミラーリング対象のポートを経由したパケット数の仮想スイッチ毎の和)。負荷算出部125は、算出結果に基づきCPU使用率テーブル122eを生成して記憶部122に格納する。
なお、第2の実施の形態の情報処理システムでは、以下に示す手順を実行する前に、図15,16の手順が少なくとも1回実行されていればよい。ただし、図16の手順を定期的に実行して、測定テーブル122c,122dおよびCPU使用率テーブル122eを定期的に更新してもよい。
次に、Webサービスの稼働状況を監視するためのパケットキャプチャの処理手順を説明する。例えば、システムの管理者は、管理サーバ400に対して、パケットキャプチャの実行開始のための入力を行う。すると、以下の手順が開始される。
図17は、パケットキャプチャ実行時の処理例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
(S21)ミラーリング設定部430は、キャプチャポイント候補を1つ選択するよう仮想マシン120に指示する。負荷算出部125は、キャプチャポイント候補テーブル122bを参照して、キャプチャポイント候補を1つ選択し、ミラーリング設定部430に通知する。選択されるキャプチャポイント候補は任意でよい。例えば、負荷算出部125は、候補番号“1”のキャプチャポイント候補を選択する。負荷算出部125は、選択したキャプチャポイント候補を用いたミラーリングの開始をミラーリング設定部430に指示する。ミラーリング設定部430は、指示されたキャプチャポイント候補に含まれるポートの組合せを対象としたミラーリングを開始するよう、仮想スイッチ111,211,311,312に指示する。
(S22)仮想スイッチ111,211,311,312は、指定されたポートのミラーリングを開始する。パケット収集部123,223,323はパケットキャプチャを開始する。
(S23)サーバ監視部420は、ハイパーバイザ110,210,310のリソース使用量を監視する。監視対象には、ハイパーバイザ110,210,310によるCPU使用率が含まれる。
(S24)サーバ監視部420は、ハイパーバイザ110,210,310の何れかによるCPU使用率が、所定の閾値よりも大きいか否かを判定する。CPU使用率の閾値は、サーバ100,200,300毎に定めることができる。例えば、サーバ100,200,300それぞれについて、CPU使用率の閾値75%が設定される。何れかのハイパーバイザによるCPU使用率が閾値よりも大きい場合、処理をステップS25に進める。ハイパーバイザ110,210,310それぞれによるCPU使用率が閾値以下の場合、処理をステップS23に進める。
(S25)サーバ監視部420は、キャプチャポイントの再決定を仮想マシン120に指示する。すると、仮想マシン120は、後述する手順によりキャプチャポイントを再決定し、ミラーリング設定部430に通知する。ミラーリング設定部430は、再決定されたキャプチャポイントに含まれるポートの組合せに変更してミラーリングを開始するよう、仮想スイッチ111,211,311,312に指示する。そして、処理をステップS22に進める。
このようにして、管理サーバ400は、ハイパーバイザ110,210,310によるCPU使用率に応じて、キャプチャポイントの見直しを図る。なお、サーバ監視部420は、1分間隔などの所定の周期で、ステップS24の判定を行ってもよい。
図18は、キャプチャポイントの再決定例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。以下の説明は、図17のステップS25に相当する手順である。
(S31)キャプチャポイント決定部126は、測定テーブル122cを参照して、ミラーリングオフ時のハイパーバイザ110,210,310によるCPU使用率を取得する。
(S32)キャプチャポイント決定部126は、キャプチャポイント候補テーブル122bを参照して、キャプチャポイント候補を1つ選択する。キャプチャポイント決定部126は、パケットキャプチャに現在用いられているキャプチャポイントを選択の対象から除外してもよい。例えば、候補番号“1”のキャプチャポイント候補を用いて現在パケットキャプチャを行っているなら、候補番号“2”以降のキャプチャポイント候補を以下に示す処理対象とすることが考えられる。
(S33)キャプチャポイント決定部126は、サーバ100,200,300(物理サーバ)のうちの1つを選択する(ただし、未選択のものから1つを選択する)。キャプチャポイント決定部126は、選択したサーバで動作するハイパーバイザおよび仮想スイッチに着目して、以下のステップS34,S35の処理を実行する。
(S34)キャプチャポイント決定部126は、測定テーブル122cを参照して、着目しているキャプチャポイントを選択した場合にミラーリングの対象となるパケット数(ミラーリングパケット数)pmirrorを着目する仮想スイッチに対して算出する。例えば、候補番号“2”のキャプチャポイント候補および仮想スイッチ111に着目していれば、ポート111b,111d,111e(ポート番号“2,4,5”)がミラーリング対象のポートである。したがって、例えば、仮想スイッチ111のミラーリングパケット数をpmirror=10000+8000+20000=38000と計算できる。
(S35)キャプチャポイント決定部126は、式(5)または式(6)を用いて、着目しているハイパーバイザのミラーリングオン時のCPU使用率Cmirror_on_estimatedを計算する。ここで、キャプチャポイント決定部126は、1サーバで動作する監視対象の仮想スイッチが単一であれば式(5)、複数であれば式(6)を用いることができる。具体例については後述する。
(S36)キャプチャポイント決定部126は、サーバ100,200,300の全てに対して、Cmirror_on_estimatedを算出済であるか否かを判定する。算出済である場合、処理をステップS37に進める。未算出のサーバがある場合、処理をステップS33に進める。
(S37)キャプチャポイント決定部126は、サーバ100,200,300それぞれの見積りCPU使用率Cmirror_on_estimatedが、全て所定の閾値以下であるか否かを判定する。全て閾値以下である場合、処理をステップS38に進める。閾値よりも大きいものがある場合、処理をステップS39に進める。
(S38)キャプチャポイント決定部126は、サーバ100,200,300それぞれの見積りCPU使用率Cmirror_on_estimatedを用いて、CPU負荷の偏りの評価指標を算出する。評価指標としては、例えば、標準偏差や分散を用いることができる。キャプチャポイント決定部126は、キャプチャポイント候補の候補番号に対応付けて、算出した評価指標を記憶部122に格納する。そして、処理をステップS40に進める。
(S39)キャプチャポイント決定部126は、現在着目しているキャプチャポイント候補を、キャプチャポイントの選択対象から除外する。キャプチャポイント決定部126は、キャプチャポイント候補テーブル122bから該当のキャプチャポイント候補を削除してもよい。そして、処理をステップS40に進める。
(S40)キャプチャポイント決定部126は、キャプチャポイント候補テーブル122bに登録されている全てのキャプチャポイント候補を処理済であるか否かを判定する。全てのキャプチャポイント候補を処理済である場合、処理をステップS41に進める。未処理のキャプチャポイント候補がある場合、処理をステップS32に進める。
(S41)キャプチャポイント決定部126は、キャプチャポイント候補毎に計算した負荷の偏りの評価指標に基づいて、キャプチャポイント候補の中からキャプチャポイントを決定する。例えば、標準偏差を評価指標として求めたなら、キャプチャポイント決定部126は、標準偏差が最小であるキャプチャポイント候補を、キャプチャポイントと決定する。
(S42)キャプチャポイント決定部126は、決定したキャプチャポイントをミラーリング設定部430に通知し、キャプチャポイントの変更を指示する。
図19は、CPU使用率の見積り例を示す図である。図19では、キャプチャポイント候補テーブル122bにおける候補番号“2”のキャプチャポイント候補に着目した場合のハイパーバイザ110,210,310のミラーリングオン時のCPU使用率の見積り例を示している。なお、図19では、測定テーブル122cにおける仮想スイッチ単位のCPU使用率の表記を省略している。
候補番号“2”のキャプチャポイント候補では、ポート111b,111d,111e,211b,211d,211e,311bがミラーリング対象のポートとなる。キャプチャポイント決定部126は、測定テーブル122cおよびCPU使用率テーブル122eを参照して、次のように見積りCPU使用率Cmirror_on_estimatedを算出する。
仮想スイッチ111のミラーリングパケット数は、pmirror=10000+8000+20000=38000である。Cmirror_off_hv=60(%)である。ΔCmirror=0.00008(%/パケット)である。これらを式(5)にあてはめれば、ハイパーバイザ110に関する見積りCPU使用率は、Cmirror_on_estimated=63.04(%)である。
仮想スイッチ211のミラーリングパケット数は、pmirror=12000+11000+25000=48000である。Cmirror_off_hv=50(%)である。ΔCmirror=0.00008(%/パケット)である。これらを式(5)にあてはめれば、ハイパーバイザ210に関する見積りCPU使用率は、Cmirror_on_estimated=53.84(%)である。
仮想スイッチ311のミラーリングパケット数は、pmirror=11000である。Cmirror_off_hv=70(%)である。ΔCmirror=0.00015(%/パケット)である。これらを式(5)にあてはめれば、ハイパーバイザ310に関する見積りCPU使用率は、Cmirror_on_estimated=71.65(%)である。
同様に、図19では、キャプチャポイント候補テーブル122bにおける候補番号“3”のキャプチャポイント候補に着目した場合のハイパーバイザ110,210,310のミラーリングオン時のCPU使用率の見積り例も示している。
候補番号“3”のキャプチャポイント候補では、ポート111b,111c,211b,211c,311b,311c,312bがミラーリング対象のポートとなる。キャプチャポイント決定部126は、測定テーブル122cおよびCPU使用率テーブル122eを参照して、次のように見積りCPU使用率Cmirror_on_estimatedを算出する。
仮想スイッチ111のミラーリングパケット数は、pmirror=10000+5000=15000である。Cmirror_off_hv=60(%)である。ΔCmirror=0.00008(%/パケット)である。これらを式(5)にあてはめれば、ハイパーバイザ110に関する見積りCPU使用率は、Cmirror_on_estimated=61.20(%)である。
仮想スイッチ211のミラーリングパケット数は、pmirror=12000+6000=18000である。Cmirror_off_hv=50(%)である。ΔCmirror=0.00008(%/パケット)である。これらを式(5)にあてはめれば、ハイパーバイザ210に関する見積りCPU使用率は、Cmirror_on_estimated=51.44(%)である。
仮想スイッチ311のミラーリングパケット数は、pmirror=11000+8000=19000である。仮想スイッチ312のミラーリングパケット数は、pmirror=45000である。Cmirror_off_hv=70(%)である。仮想スイッチ311,312に対してΔCmirror=0.00015(%/パケット)である。これらを式(6)にあてはめれば、ハイパーバイザ310に関する見積りCPU使用率は、Cmirror_on_estimated=79.60(%)である。
キャプチャポイント決定部126は、キャプチャポイント候補の候補番号に対応付けて、各ハイパーバイザの見積りCPU使用率を保持する。見積りCPU使用率テーブル122fは、見積りCPU使用率を保持するためのデータ例である。
図20は、キャプチャポイントの決定例を示す図である。図20では、候補番号“2,3,4”のキャプチャポイント候補の中から、キャプチャポイントを選択する例を示している。キャプチャポイント決定部126は、候補番号“4”のキャプチャポイント候補に対しても、ハイパーバイザ110,210,310の見積りCPU使用率を算出する。見積りCPU使用率テーブル122fには、候補番号“2,3,4”のキャプチャポイント候補に対して、ハイパーバイザ110,210,310の見積りCPU使用率を算出した結果が登録されている。
キャプチャポイント決定部126は、ハイパーバイザ110,210,310の見積りCPU使用率が、ハイパーバイザ110,210,310毎のCPU使用率の閾値を上回る場合、該当のキャプチャポイント候補をキャプチャポイントの選択対象から除外する。図20の例では、候補番号“3”のキャプチャポイント候補を採用した場合、サーバ300(すなわち、ハイパーバイザ310)の見積りCPU使用率79.60(%)が閾値75(%)よりも大きくなる。よって、キャプチャポイント決定部126は、候補番号“3”のキャプチャポイント候補をキャプチャポイントの選択対象から除外する。見積りCPU使用率テーブル122hは、見積りCPU使用率テーブル122fから、候補番号“3”のレコードを削除した例である。
キャプチャポイント決定部126は、見積りCPU使用率テーブル122fに基づいて、CPU負荷の偏りの評価指標(ここでは、標準偏差としている)を、キャプチャポイント候補毎に算出する。評価指標情報122iは、標準偏差の算出結果の例を示している。この場合、候補番号“2”に対する標準偏差“7.27”は、候補番号“4”に対する標準偏差“7.93”よりも小さい。各候補番号に対する標準偏差のうち候補番号“2”の標準偏差は最小である。
標準偏差が小さいほど、ハイパーバイザ110,210,310の見積りCPU使用率のばらつきが小さい。見積りCPU使用率のばらつきがより小さいキャプチャポイント候補を選択することで、ミラーリングを行う場合のハイパーバイザ110,210,310(すなわち、サーバ100,200,300)によるCPU負荷を平準化できると期待できる。
よって、キャプチャポイント決定部126は、候補番号“2”のキャプチャポイント候補122jを、キャプチャポイントと決定する。そして、キャプチャポイント決定部126は、ミラーリング設定部430にキャプチャポイントの変更を指示する。
なお、以上の手順では、キャプチャポイントを再設定する場合を想定したが、例えば、図17のステップS22の前に、ステップS25によるキャプチャポイントの決定(この場合は、再決定ではなく決定という方が適切である)を行ってもよい。
また、図16の手順を図17の手順に組み込んで行うことも考えられる。例えば、システムの管理者などのミラーリング開始の指示に応じて、ステップS11の後にステップS21,S22を実行し、ステップS23の前またはステップS23と並行して、ステップS14,S15を実行することも考えられる。この場合、ステップS12,S13はスキップされることになる。
以上のように、第2の実施の形態の情報処理システムによれば、監視対象の仮想マシンを実行するサーバ100,200,300の負荷を平準化できる。
ここで、複数の物理サーバによりパケットの収集を分担して実行する場合、何れかの物理サーバ上で複製/収集されるパケット数が増大し、当該物理サーバに負荷が偏るおそれがある。仮想マシン間のパケットの送受信量は仮想マシンにより実現される機能や仮想マシンが利用される頻度などに応じて異なり、仮想スイッチのポートに着目すると、通信量の比較的多いポートや通信量の比較的少ないポートなど様々だからである。
特に、何れかの仮想マシンにおいてミラーリングによりハイパーバイザのCPUリソースが圧迫されると、監視対象のWebサービスや同ハイパーバイザで動作する他の仮想マシンの性能に影響を及ぼすおそれがある。例えば、仮想マシン間の通信遅延、ディスク(ローカルストレージやネットワークストレージなど)への書き込み/読み出し処理の性能劣化などを引き起こすおそれがある。
これに対し、キャプチャポイントを適切に選択することで、特定の物理サーバに負荷が偏らないようにすることが考えられる。しかし、ミラーリングによるCPUの負荷が各物理サーバでどの程度であるかを直接計測するのは容易でない。
そこで、第1の実施の形態の方法では、キャプチャポイントの複数の候補に対し、各候補を採用した場合の各ハイパーバイザによるCPUの使用量を見積もる。これにより、各ハイパーバイザによるCPUの使用量の偏り(ばらつき)がより小さいキャプチャポイントを選択可能となる。
このとき、1パケット当たりのミラーリングに要するスイッチによるCPUの使用率の増分を算出する。このため、各ポートを経由するパケット数(当該ポートをミラーリング対象としたときに収集されるパケット数に相当)から、キャプチャポイントの各候補を採用したときの各ハイパーバイザによるCPUの使用率を見積もれる。したがって、キャプチャポイントの全候補について、ミラーリングオン時およびミラーリングオフ時のハイパーバイザのCPUの使用量を計測せずに済む。よって、キャプチャポイントの決定を効率的に行える。
第2の実施の形態の説明では、候補抽出部124、負荷算出部125およびキャプチャポイント決定部126を仮想マシン120に設けるものとした。一方、候補抽出部124、負荷算出部125およびキャプチャポイント決定部126を管理サーバ400に設けてもよい。
なお、第1の実施の形態の情報処理は、プロセッサ1bまたは物理マシン2,3,4が備えるプロセッサに、プログラムを実行させることで実現できる。第2の実施の形態の情報処理は、サーバ100,200,300または管理サーバ400が備えるCPUにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体13)に記録できる。
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1,2,3,4 物理マシン
1a 記憶装置
1b プロセッサ
2a,2b,2c,3a,3b,3c,4a,4b,4c 仮想マシン
2d,3d,4d 仮想スイッチ
5 情報
P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14 ポート

Claims (7)

  1. 仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムが実行するキャプチャポイント決定方法であって、
    仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、
    前記複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、
    各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、前記複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、
    キャプチャポイント決定方法。
  2. 前記決定では、ミラーリングの実行時の各ハイパーバイザによるプロセッサの使用量の標準偏差または分散が最小になる候補を選択する、請求項1記載のキャプチャポイント決定方法。
  3. 前記決定では、前記複数の候補のうち、ミラーリングの実行時に何れかのハイパーバイザによるプロセッサの使用量が閾値よりも大きい候補を、選択の候補から除外する、請求項1または2記載のキャプチャポイント決定方法。
  4. 前記算出では、ミラーリング非実行時および実行時の仮想スイッチのプロセッサの使用量とミラーリング非実行時および実行時のミラーリング対象のポートを経由するパケット数とからミラーリングに起因する仮想スイッチのプロセッサの使用量を算出し、当該算出結果に基づいて、収集されるパケット数に応じた仮想スイッチによるプロセッサの使用量の増分を算出する、請求項1乃至3の何れか1項に記載のキャプチャポイント決定方法。
  5. 前記計算では、所定数パケットのミラーリングに伴う仮想スイッチによるプロセッサの使用量の増分とミラーリング対象のポートを経由するパケット数とを乗じた値とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを加算することで、当該ハイパーバイザによるプロセッサの使用量を計算する、請求項1乃至4の何れか1項に記載のキャプチャポイント決定方法。
  6. 仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むキャプチャポイント決定システムであって、
    仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、
    前記複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、
    各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、前記複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、物理マシン、
    を有するキャプチャポイント決定システム。
  7. 仮想マシンおよび仮想スイッチを動作させるハイパーバイザを実行可能なプロセッサを備えた物理マシンを複数含むシステムにおいて、何れかの物理マシンとして用いられるコンピュータに、
    仮想マシン間で送受信されるパケットを収集する各仮想スイッチのポートの組合せの複数の候補を取得し、ミラーリングの実行時および非実行時の仮想スイッチによるプロセッサの使用量と各ポートを経由するパケット数とを用いて、収集されるパケット数に応じたプロセッサの使用量の増分を仮想スイッチ毎に算出し、
    前記複数の候補それぞれに対し、算出した仮想スイッチによるプロセッサの使用量の増分とミラーリングの非実行時のハイパーバイザによるプロセッサの使用量とを用いて、ミラーリングの実行時のハイパーバイザによるプロセッサの使用量を物理マシン毎に計算し、
    各候補に対して計算した各ハイパーバイザによるプロセッサの使用量の偏差に応じて、前記複数の候補の中から、パケットの収集に用いるポートの組合せを決定する、
    処理を実行させるキャプチャポイント決定プログラム。
JP2014073953A 2014-03-31 2014-03-31 キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム Expired - Fee Related JP6248763B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014073953A JP6248763B2 (ja) 2014-03-31 2014-03-31 キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム
US14/665,490 US9547518B2 (en) 2014-03-31 2015-03-23 Capture point determination method and capture point determination system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014073953A JP6248763B2 (ja) 2014-03-31 2014-03-31 キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム

Publications (2)

Publication Number Publication Date
JP2015197715A JP2015197715A (ja) 2015-11-09
JP6248763B2 true JP6248763B2 (ja) 2017-12-20

Family

ID=54190491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014073953A Expired - Fee Related JP6248763B2 (ja) 2014-03-31 2014-03-31 キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム

Country Status (2)

Country Link
US (1) US9547518B2 (ja)
JP (1) JP6248763B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483299B2 (en) * 2014-06-30 2016-11-01 Bmc Software, Inc. Capacity risk management for virtual machines
US10257123B2 (en) * 2015-05-05 2019-04-09 Dell Products Lp Software-defined-networking (SDN) enabling operating-system containers for real-time application traffic flow improvement
JP6642196B2 (ja) 2016-03-29 2020-02-05 富士通株式会社 解析プログラム、解析装置、及び解析方法
US10261839B2 (en) * 2016-11-02 2019-04-16 International Business Machines Corporation Outlier and root cause determination of excessive resource usage in a virtual machine environment
JP6809165B2 (ja) 2016-11-25 2021-01-06 富士通株式会社 情報処理装置、分析プログラム及び分析方法
JP6740911B2 (ja) 2017-01-16 2020-08-19 富士通株式会社 ポート切替プログラム、ポート切替方法、および情報処理装置
CN109525509A (zh) * 2017-09-19 2019-03-26 中兴通讯股份有限公司 网卡镜像抓包方法、终端以及可读存储介质
JP7024323B2 (ja) * 2017-10-26 2022-02-24 富士通株式会社 パケット制御プログラム、パケット制御方法、およびパケット制御装置
US11665094B2 (en) 2020-11-30 2023-05-30 Vmware, Inc. Collecting, processing, and distributing telemetry data
US11249809B1 (en) * 2021-02-05 2022-02-15 International Business Machines Corporation Limiting container CPU usage based on network traffic
JP2022164414A (ja) * 2021-04-16 2022-10-27 株式会社日立製作所 ストレージ装置及びアドレス設定方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403998B2 (en) * 2003-04-10 2008-07-22 International Business Machines Corporation Estimating network management bandwidth
JP4610240B2 (ja) 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
US7796596B2 (en) * 2004-08-03 2010-09-14 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for producing, transporting, and capturing network traffic data
US8799891B2 (en) * 2005-03-02 2014-08-05 Hewlett-Packard Development Company, L.P. System and method for attributing CPU usage of a virtual machine monitor to a corresponding virtual machine
US20080028399A1 (en) * 2006-07-26 2008-01-31 Diwaker Gupta System and method for attributing to a corresponding virtual machine CPU utilization of a network driver domain based on observed communication through a virtualized interface
US8248928B1 (en) * 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
JP4417993B2 (ja) 2007-11-21 2010-02-17 株式会社東芝 ネットワーク仮想化システム、中継装置、およびプログラム
EP2401683A4 (en) * 2009-02-27 2015-07-29 Broadcom Corp METHOD AND SYSTEM FOR NETWORKING VIRTUAL MACHINES
US9112894B2 (en) * 2009-05-08 2015-08-18 Universiti Sains Malaysia Real time distributed network monitoring and security monitoring platform (RTD-NMS)
US20110080829A1 (en) * 2009-10-05 2011-04-07 Vss Monitoring, Inc. Method, apparatus and system for monitoring network conditions via a stacked topology of network captured traffic distribution devices
JP5560936B2 (ja) * 2010-06-16 2014-07-30 富士通株式会社 構成情報取得方法、仮想プローブおよび構成情報取得制御装置
US8806487B2 (en) * 2011-01-14 2014-08-12 Nec Laboratories America, Inc. Calculating virtual machine resource utilization information
US9571354B2 (en) * 2011-03-28 2017-02-14 Citrix Systems, Inc. Systems and methods for tracking application layer flow via a multi-connection intermediary device
CN104012041B (zh) * 2011-05-24 2018-02-09 思杰系统有限公司 用于分析网络指标的系统和方法
WO2013111343A1 (ja) * 2012-01-27 2013-08-01 富士通株式会社 情報処理装置、情報処理システム、通信データ出力方法、及び通信データ出力プログラム
JP5834999B2 (ja) * 2012-02-27 2015-12-24 富士通株式会社 データ収集方法、情報処理システムおよびプログラム
US8909770B2 (en) * 2012-06-04 2014-12-09 Brocade Communications Systems, Inc. Performance estimator for network devices
JP2013254424A (ja) * 2012-06-08 2013-12-19 Nec Corp 情報処理システム、管理装置およびその制御方法
WO2014000297A1 (zh) * 2012-06-30 2014-01-03 华为技术有限公司 虚拟端口监控方法和设备
US8984125B2 (en) * 2012-08-16 2015-03-17 Fujitsu Limited Computer program, method, and information processing apparatus for analyzing performance of computer system
US20140115166A1 (en) * 2012-10-24 2014-04-24 Vss Monitoring, Inc. System, method, and apparatus for determining allocation of filtering resources for the filtering of captured data packets
US9584393B2 (en) * 2013-03-15 2017-02-28 Extreme Networks, Inc. Device and related method for dynamic traffic mirroring policy
US20140351415A1 (en) * 2013-05-24 2014-11-27 PacketSled Inc. Selective packet capture
US8966074B1 (en) * 2013-09-13 2015-02-24 Network Kinetix, LLC System and method for real-time analysis of network traffic
US9203711B2 (en) * 2013-09-24 2015-12-01 International Business Machines Corporation Port mirroring for sampling measurement of network flows
JP2015076643A (ja) * 2013-10-04 2015-04-20 富士通株式会社 制御プログラム、制御装置および制御方法

Also Published As

Publication number Publication date
JP2015197715A (ja) 2015-11-09
US9547518B2 (en) 2017-01-17
US20150277959A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP6248763B2 (ja) キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム
EP2631796A1 (en) Data collection method and information processing system
JP6455035B2 (ja) 負荷分散管理装置、制御方法およびプログラム
JP6237318B2 (ja) 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
US10225333B2 (en) Management method and apparatus
TWI628587B (zh) 用於虛擬化儲存單元的儲存單元選擇
US9229778B2 (en) Method and system for dynamic scaling in a cloud environment
US9864749B2 (en) Methods for provisioning workloads in a storage system using machine learning and devices thereof
JP6213053B2 (ja) プログラム、情報処理装置およびスケジュール決定方法
JP4557178B2 (ja) 仮想マシン管理システム、その方法及びそのプログラム
US20180026855A1 (en) Network management system, device, and method
US9596189B1 (en) Virtual machine management
US10552089B2 (en) Data processing for managing local and distributed storage systems by scheduling information corresponding to data write requests
JP2011258098A (ja) 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
US20170310609A1 (en) Apparatus and method for managing computing resources in network function virtualization system
JP4894745B2 (ja) 仮想マシン移動制御方式
US20180157541A1 (en) Information processing apparatus, method for controlling same, and storage medium
CN103399791A (zh) 一种基于云计算的虚拟机迁移方法和装置
US11803414B2 (en) Diagonal autoscaling of serverless computing processes for reduced downtime
US20210103870A1 (en) Cost presentation apparatus, cost presentation method, computer-readable storage medium
US10929263B2 (en) Identifying a delay associated with an input/output interrupt
JP2018088041A (ja) 接続数制御プログラム、振り分け装置および接続数制御方法
JP6627808B2 (ja) 仮想マシン移動制御方法と通信システムとコントローラ及びプログラム
US20170147407A1 (en) System and method for prediciting resource bottlenecks for an information technology system processing mixed workloads
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171106

R150 Certificate of patent or registration of utility model

Ref document number: 6248763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees