JP5834999B2 - データ収集方法、情報処理システムおよびプログラム - Google Patents

データ収集方法、情報処理システムおよびプログラム Download PDF

Info

Publication number
JP5834999B2
JP5834999B2 JP2012039583A JP2012039583A JP5834999B2 JP 5834999 B2 JP5834999 B2 JP 5834999B2 JP 2012039583 A JP2012039583 A JP 2012039583A JP 2012039583 A JP2012039583 A JP 2012039583A JP 5834999 B2 JP5834999 B2 JP 5834999B2
Authority
JP
Japan
Prior art keywords
information processing
virtual machine
virtual machines
allocation
communication data
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
JP2012039583A
Other languages
English (en)
Other versions
JP2013175075A (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 JP2012039583A priority Critical patent/JP5834999B2/ja
Priority to US13/716,619 priority patent/US20130227566A1/en
Priority to EP12198049.4A priority patent/EP2631796A1/en
Publication of JP2013175075A publication Critical patent/JP2013175075A/ja
Application granted granted Critical
Publication of JP5834999B2 publication Critical patent/JP5834999B2/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
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はデータ収集方法、情報処理システムおよびプログラムに関する。
現在、情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや論理ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
例えば、ハイパーバイザと呼ばれるソフトウェアが、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、例えば、ハイパーバイザが、当該リソースを用いて、仮想マシンの通信データを中継する機能(仮想スイッチと呼ぶことがある)を物理マシン上で動作させることもある。仮想スイッチに仮想マシンの通信を中継させることで、物理マシン上に仮想マシンのネットワークを構築できる。このように、複数の物理マシンを備え、物理マシン上で動作する複数の仮想マシンを用いたサービスをクライアント装置から利用可能とする情報処理システムがある。
このような情報処理システムでは仮想マシンの稼働状況を監視することがある。例えば、仮想スイッチが中継する仮想マシン間のパケットをミラーリングにより収集するための仮想マシン(仮想プローブ)を物理サーバ上で動作させ、仮想プローブが収集したパケットに基づき当該物理サーバ上の仮想マシンの構成変更を検出する提案がある。
また、物理マシンが備える物理NIC(Network Interface Card)の使用率を監視し、使用率が上限値より高い物理NICを用いて通信する仮想マシンのうち優先度の低い仮想マシンが、使用率の低い物理NICを用いて通信するよう割当変更する提案がある。
なお、通信装置とネットワークとの間の通信を中継する中継装置から通信のデータ量の情報を取得し、当該情報に基づいて通信装置の通信負荷を取得することで、通信装置に通信負荷を計測させる場合よりも、通信装置の負荷を軽減する提案がある。
更に、複数のサーバが連携するシステムにおいて、ネットワークを流れるサーバ間のメッセージを収集し、収集したメッセージを組合せて解析することで、当該システムにおけるトランザクションの処理状態を分析する提案がある。
特開2012−4781号公報 特開2009−176103号公報 特開2008−271050号公報 特開2006−11683号公報
あるサービスの処理のために、異なる物理マシン上の複数の仮想マシンが連携する場合がある。この場合、当該サービスに係る仮想マシン間で通信される全データを、仮想マシン間の通信を中継する仮想スイッチから収集して、サービスの状況を監視することが考えられる。このとき、データ収集のため、特定の物理マシンでデータ収集用の仮想マシンを動作させる。そこで、当該データ収集用の仮想マシンを用いて、異なる物理マシン上の各仮想スイッチが中継するデータを、どのように効率的に収集するかが問題となる。
例えば、当該特定の物理マシン以外の他の物理マシンで動作する仮想マシン同士が通信することがある。その場合、当該データ収集用の仮想マシンでは、その通信のデータを取得するのが困難である。そこで、各物理マシン上の仮想スイッチが中継するデータを複製し、物理マシン間を接続するネットワークを介して特定の物理マシンで動作するデータ収集用の仮想マシンに送ることが考えられる。しかし、この場合、複製したデータがネットワークに流れる。このため、複製したデータにより、監視中のネットワークの負荷が高まり非効率的となる。
一側面によれば、本発明は、データ収集を効率的に行うことができるデータ収集方法、情報処理システムおよびプログラムを提供することを目的とする。
一実施態様によれば、仮想マシンおよび仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムが実行する通信データのデータ収集方法が提供される。データ収集方法では、複数の仮想マシンが送受信する通信データに基づいて、複数の仮想マシンのうち互いに通信する仮想マシンの1またはそれ以上のペアを取得する。複数の情報処理装置のうちの1つの情報処理装置を選択して、1またはそれ以上のペアのうち、選択した情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、当該情報処理装置で実行されるように複数の仮想マシンの割当を変更する。当該情報処理装置で動作する中継手段が中継する通信データを収集する。
また、一実施態様によれば、仮想マシンおよび仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えた情報処理システムが提供される。情報処理システムは、割当決定手段と制御手段とを有する。割当決定手段は、複数の仮想マシンが送受信する通信データに基づいて、複数の仮想マシンのうち互いに通信する仮想マシンの1またはそれ以上のペアを取得し、複数の情報処理装置のうちの1つの情報処理装置を選択して、1またはそれ以上のペアのうち、選択した情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、当該情報処理装置で実行されるように複数の仮想マシンの割当の変更内容を決定する。制御手段は、決定された変更内容に基づいて複数の仮想マシンの割当を変更し、当該情報処理装置で動作する中継手段が中継する通信データの収集を行うように当該情報処理装置を制御する。
また、一実施態様によれば、コンピュータが実行するプログラムであって、仮想マシンおよび仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムで通信データの収集に用いられるプログラムが提供される。
一実施態様によれば、データ収集を効率的に行うことができる。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 実行サーバのハードウェア例を示す図である。 仮想マシンの割当例を示す図である。 仮想マシンの割当例(続き)を示す図である。 第2の実施の形態のソフトウェア例を示す図である。 通信経路の例を示す図である。 物理サーバリソース管理テーブルの例を示す図である。 VMリソース管理テーブルの例を示す図である。 収集される通信データの例を示す図である。 通信ペアテーブルの例を示す図である。 全通信ペアテーブルの例を示す図である。 キャプチャ対象候補テーブルの例を示す図である。 VM配置候補テーブルの例を示す図である。 データ収集処理の例を示すフローチャートである。 キャプチャ対象候補の決定例を示すフローチャートである。 仮想マシンの配置決定の例を示すフローチャートである。 仮想マシンの配置決定の具体例を示す図である。 仮想マシンの配置決定の具体例を示す図(続き)である。 割当変更後の接続例を示す図である。 割当変更後の通信経路の例を示す図である。 監視時のデータ収集の例を示す図である。 監視時のデータ収集の他の例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、情報処理装置1,2,3を備えている。情報処理装置1,2,3はネットワーク4を介して接続されている。情報処理装置1,2,3は、CPUなどのプロセッサとRAMなどのメモリとを備えてもよく、メモリに記憶されたプログラムをプロセッサが実行するコンピュータであってもよい。
情報処理装置2は、仮想マシン2a,2bおよび中継手段2cが動作可能である。情報処理装置3は、仮想マシン3a,3bおよび中継手段3cが動作可能である。例えば、情報処理装置2,3で実行されるハイパーバイザが、これら仮想マシンおよび中継手段を情報処理装置2,3上で動作させる。
仮想マシン2a,2b,3a,3bは、所定のサービスの処理のために連携する。ここで、仮想マシン2aの識別名を“V1”とする。仮想マシン2bの識別名を“V2”とする。仮想マシン3aの識別名を“V3”とする仮想マシン3bの識別名を“V4”とする。中継手段2c,3cは、仮想マシン間の通信データを中継する。中継手段2c,3cは、仮想スイッチや仮想ルータなどと呼ばれるものでもよい。
第1の実施の形態の情報処理システムでは、仮想マシン2a,2b,3a,3bの通信データを収集する。そして、収集した通信データに基づいてサービスの状況(各仮想マシンの稼働状況)を監視する。例えば、収集した通信データを組合せて仮想マシン間における要求/応答の対応関係の正常なパターンや異常なパターンなどを分析して、サービス全体の稼働状況を監視する。図1(A)では、監視のためのデータ収集前(仮想マシンの割当変更前)の仮想マシンの配置状況を例示している。
情報処理装置1は、割当決定手段1aおよび制御手段1bを有する。
割当決定手段1aは、仮想マシン2a,2b,3a,3bが送受信する通信データに基づいて、仮想マシン2a,2b,3a,3bのうち互いに通信する仮想マシンの1またはそれ以上のペアを取得する。例えば、割当決定手段1aは、中継手段2c,3cが中継する通信データを所定の期間だけミラーリングにより収集し、収集した通信データの送信元/宛先のアドレスの情報から互いに通信する仮想マシンのペア(図1では通信するペアと表記)を取得してもよい。また、例えば、割当決定手段1aは、仮想マシン2a,2b,3a,3bから各仮想マシンが何れの他の仮想マシンと通信しているかを示す情報を取得してもよい。仮想マシン2a,2b,3a,3bは、通信データの生成元であり、自身が通信データに設定した送信元/宛先のアドレスの情報を割当決定手段1aに提供できる。これにより、割当決定手段1aは互いに通信する仮想マシンのペアとして、例えば、ペア(V1,V2)、(V2,V3)、(V3,V4)を取得する。
割当決定手段1aは、情報処理装置2,3のうちの1つの情報処理装置を選択して、1またはそれ以上のペアのうち、選択した情報処理装置以外の他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、選択した情報処理装置で実行されるように仮想マシン2a,2b,3a,3bの割当の変更内容を決定する。例えば、割当決定手段1aは、情報処理装置2を選択する。そして、選択した情報処理装置2以外の情報処理装置3で動作する仮想マシン3a,3bのペア(V3,V4)のうちの仮想マシン3a(V3)が、選択した情報処理装置2で実行されるように割当を変更すると決定する。
制御手段1bは、決定された変更内容に基づいて、仮想マシン2a,2b,3a,3bの割当を変更する。仮想マシンの割当の変更には、例えば、ライブマイグレーションと呼ばれる技術を利用できる。ライブマイグレーションとは、仮想マシンを終了させずに、ハイパーバイザ間で仮想マシンに関するデータを移動させる技術である。ライブマイグレーションにより、仮想マシンを実行する情報処理装置を動的に変更することができる。図1(B)では、割当変更後の仮想マシンの配置状況を例示している。例えば、制御手段1bは、仮想マシン3aを情報処理装置3から情報処理装置2へ移動させる。
制御手段1bは、割当決定手段1aにより選択された情報処理装置2で動作する中継手段2cが中継する通信データの収集を行うように情報処理装置2を制御する。例えば、制御手段1bは、データ収集用の仮想マシンを新たに情報処理装置2上で動作させる。そして、当該データ収集用の仮想マシンを用いて中継手段2cが中継する通信データをミラーリングにより収集させる。すると、ペア(V1,V2)、(V2,V3)、(V3,V4)の間の全ての通信データを、当該データ収集用の仮想マシンを用いて収集できる。
なお、割当決定手段1aおよび制御手段1bの何れか一方または両方は、それぞれ別個の情報処理装置上に設けられてもよい。また、割当決定手段1aおよび制御手段1bの何れか一方または両方は、情報処理装置2,3(例えば、情報処理装置2,3で動作する仮想マシン)に設けられてもよい。
第1の実施の形態の情報処理システムによれば、割当決定手段1aにより、仮想マシン2a,2b,3a,3bが送受信する通信データに基づいて、仮想マシン2a,2b,3a,3bのうち互いに通信する仮想マシンのペアが取得される。割当決定手段1aにより、情報処理装置2,3のうちの1つの情報処理装置が選択されて、取得されたペアのうち、選択された情報処理装置以外の他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、選択された情報処理装置で実行されるように複数の仮想マシンの割当の変更内容が決定される。制御手段1bにより、決定された変更内容に基づいて仮想マシン2a,2b,3a,3bの割当が変更される。制御手段1bにより、選択された情報処理装置で動作する中継手段が中継する通信データの収集を行うように当該情報処理装置が制御される。
これにより、データ収集を効率的に行うことができる。具体的には、次の通りである。
例えば、図1(A)で示すように仮想マシン2a,2bが情報処理装置2で動作し、仮想マシン3a,3bが情報処理装置3で動作し、互いに通信するペアが(V1,V2)、(V2,V3)、(V3,V4)である場合を考える。この場合、当該配置において全ペアにつき仮想マシン間の通信データを収集しようとすると、次のように通信データをミラーリングして収集することになる。すなわち、ペア(V1,V2)については中継手段2cが中継する通信データを複製して収集する。ペア(V2,V3)については中継手段2c,3cの何れか一方が中継する通信データを複製して収集する。ペア(V3,V4)については中継手段3cが中継する通信データを複製して収集する。
そのために、例えば、情報処理装置2でデータ収集用の仮想マシンを動作させ、当該仮想マシンを用いて中継手段2c,3cが複製する通信データを収集することが考えられる。しかし、この場合、中継手段3cにより複製された通信データは、ネットワーク4を経由して中継手段2cに送られる。すると、当該複製された通信データによってネットワーク4の負荷が高まる。複製された通信データは、監視用のデータであり、本来のサービスに用いられるものではない。このため、監視中に、当該通信データでネットワーク4の帯域が利用されると、本来のサービスなどの通信で利用可能な帯域が低減することになり非効率的となる。
そこで、第1の実施の形態の情報処理システムでは、図1(B)に示すように、仮想マシンの割当を変更してから監視のためのデータ収集を行う。すなわち、情報処理装置3で動作する仮想マシン3a,3bのペアのうち、仮想マシン3aを情報処理装置2へ割当変更した後に、中継手段2cが中継する通信データを収集する。当該割当変更後は、仮想マシン3a,3bの通信データは中継手段2cにより中継される。したがって、中継手段2cのみが中継する通信データを収集することで、全ペアについての通信データを収集できるようになる。このようにすれば、監視中に、複製された通信データをネットワーク4に流さなくてよい。よって、複製された通信データを流すことによるネットワーク4の負荷への影響を低減できる。このようにして、データ収集を効率的に行うことができる。
なお、何れの情報処理装置に、何れの仮想マシンを移動させるか、を種々の基準に基づいて決定してもよい。例えば、仮想マシンの配置変更に伴う負荷を示す情報や配置変更後にデータ収集を行う際の負荷を示す情報を予測し、予測した負荷に基づいて仮想マシン3a,3bの何れを情報処理装置2に移動させるか決定することが考えられる。具体的には、配置変更する仮想マシンの数によって仮想マシンの配置変更に伴う負荷を予測することが考えられる。また、収集する通信データの量、中継手段の設定変更量によってデータ収集を行う際の負荷を予測することが考えられる。そして、これらの少なくとも何れかが小さくなるように移動先の情報処理装置や移動対象の仮想マシンを決定する。このようにすれば、データ収集を一層効率的に行うことができる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、実行サーバ100,200、管理サーバ300およびクライアント400,500,600を含む。各装置は、ネットワーク10に接続されている。ネットワーク10は、例えばLAN(Local Area Network)である。なお、クライアント400,500,600は、WAN(Wide Area Network)やインターネットなどの広域ネットワークを介して、ネットワーク10に接続されてもよい。第2の実施の形態の情報処理システムでは、実行サーバ100,200が提供するサービスをクライアント400,500,600が利用する。実行サーバ100,200が提供するサービスの処理は、実行サーバ100,200上で動作する仮想マシンが連携して実行される。
第2の実施の形態では、実行サーバ100,200がWebサービスを提供する場合を例示する。当該Webサービスは、Webサーバ機能、AP(APplication)サーバ機能およびDB(DataBase)サーバ機能の3つの機能の連携により実行されるものとする。Webサーバ機能は、例えば、GUI(Graphical User Interface)などを提供する。APサーバ機能は、例えば、業務特有のロジックによる機能を提供する。DBサーバ機能は、例えば、業務に用いるデータの管理機能を提供する。
実行サーバ100,200は、仮想マシンおよび仮想スイッチが動作可能なサーバコンピュータである。なお、以下の説明では仮想マシンをVM(Virtual Machine)と呼ぶことがある。
管理サーバ300は、実行サーバ100,200で動作する仮想マシンの配置を管理するサーバコンピュータである。
クライアント400,500,600は、実行サーバ100,200が提供するWebサービスにアクセスするクライアントコンピュータである。
図3は、実行サーバのハードウェア例を示す図である。実行サーバ100は、CPU101、RAM102、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、ディスクドライブ106およびNIC107を有する。各ユニットが実行サーバ100のバスに接続されている。実行サーバ200、管理サーバ300およびクライアント400,500,600も、実行サーバ100と同様のハードウェアを用いて実装できる。
CPU101は、実行サーバ100の情報処理を制御するプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部を読み出し、RAM102に展開してプログラムを実行する。なお、実行サーバ100は、複数のプロセッサを設けて、プログラムを分散して実行してもよい。
RAM102は、CPU101が実行するプログラムや処理に用いるデータを一時的に記憶する揮発性メモリである。なお、実行サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えていてもよい。
HDD103は、OSプログラムやアプリケーションプログラムなどのプログラムおよびデータを記憶する不揮発性の記憶装置である。HDD103は、CPU101の命令に従って、内蔵の磁気ディスクに対してデータの読み書きを行う。なお、実行サーバ100は、HDD以外の種類の不揮発性の記憶装置(例えば、SSD(Solid State Drive)など)を備えてもよく、複数の記憶装置を備えていてもよい。
画像信号処理部104は、CPU101の命令に従って、実行サーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、例えば、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイを用いることができる。
入力信号処理部105は、実行サーバ100に接続された入力デバイス12から入力信号を取得し、CPU101に出力する。入力デバイス12としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
ディスクドライブ106は、記録媒体13に記録されたプログラムやデータを読み取る駆動装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、例えば、CPU101の命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
NIC107は、ネットワーク10を介して他のサーバと通信を行う通信インタフェースである。NIC107は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図4は、仮想マシンの割当例を示す図である。実行サーバ100は、ハイパーバイザ110および仮想マシン120,130,140を有する。
ハイパーバイザ110は、実行サーバ100上で仮想マシン120,130,140を動作させる。ハイパーバイザ110は、管理サーバ300の指示に基づいて、各仮想マシンに対するハードウェア資源の割当を行う。ハイパーバイザ110は、管理サーバ300の指示に基づいて、各仮想マシンの起動・停止を行う。また、ハイパーバイザ110は、実行サーバ100が備えるハードウェア資源への各仮想マシンによるアクセスを調停する。更に、ハイパーバイザ110は、実行サーバ100上で仮想スイッチ111を動作させる。
仮想スイッチ111は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ111のスイッチ名称を“vSW1”とする。仮想スイッチ111は、ポート111a,111b,111c,111d,111e,111f,111gを有する。ポート111aは、仮想マシン120の通信に用いられる仮想的な通信インタフェースである。ポート111b,111cは、仮想マシン130の通信に用いられる仮想的な通信インタフェースである。ポート111d,111eは、仮想マシン140の通信に用いられる仮想的な通信インタフェースである。ポート111fは空きである。ポート111gは、NIC107およびネットワーク10を介して、実行サーバ200、管理サーバ300およびクライアント400,500,600と通信するために用いられる仮想的な通信インタフェースである。
仮想マシン120は、仮想スイッチ111が中継する通信データをミラーリングにより収集して、各仮想マシンの稼働状況を監視するための仮想マシンである。仮想マシン120のマシン名称を“監視用VM”とする。例えば、仮想スイッチ111は、ポート111a以外の1またはそれ以上のポートを流れる通信データを複製して、ポート111aからも送信する。仮想マシン120は、当該通信データを収集して、通信データに含まれるメッセージから他の仮想マシンに関する種々の情報を取得できる。仮想マシン120は、vNIC(virtual NIC)121を有する。vNIC121は、ポート111aを介して通信するための仮想的な通信インタフェースである。
仮想マシン130,140は、Webサーバ機能を実行する仮想マシンである。仮想マシン130のマシン名称を“Web1”とする。仮想マシン140のマシン名称を“Web2”とする。
仮想マシン130は、vNIC131,132を有する。vNIC131は、ポート111bを介してクライアント400,500,600と通信するための仮想的な通信インタフェースである。vNIC132は、ポート111cを介して仮想マシン220と通信するための仮想的な通信インタフェースである。
仮想マシン140は、vNIC141,142を有する。vNIC141は、ポート111dを介してクライアント400,500,600と通信するための仮想的な通信インタフェースである。vNIC142は、ポート111eを介して仮想マシン220と通信するための仮想的な通信インタフェースである。
実行サーバ200は、ハイパーバイザ210および仮想マシン220,230を有する。なお、図4では実行サーバ200が備える物理NICを便宜的にNIC207と表記している。
ハイパーバイザ210は、実行サーバ200上で仮想マシン220,230を動作させる。ハイパーバイザ210は、管理サーバ300の指示に基づいて、各仮想マシンに対するハードウェア資源の割当を行う。ハイパーバイザ210は、管理サーバ300の指示に基づいて、各仮想マシンの起動・停止を行う。また、ハイパーバイザ210は、実行サーバ200が備えるハードウェア資源への各仮想マシンによるアクセスを調停する。更に、ハイパーバイザ210は、実行サーバ200上で仮想スイッチ211を動作させる。
仮想スイッチ211は、仮想マシン間で送受信される通信データを中継する。仮想スイッチ211のスイッチ名称を“vSW2”とする。仮想スイッチ211は、ポート211a,211b,211cを有する。ポート211aは、仮想マシン220と通信するための仮想的な通信インタフェースである。ポート211bは、仮想マシン230と通信するための仮想的な通信インタフェースである。ポート211cは、NIC207を介して通信するための仮想的な通信インタフェースである。
仮想マシン220は、APサーバ機能を実行する仮想マシンである。仮想マシン220のマシン名称を“AP1”とする。仮想マシン220は、vNIC221を有する。vNIC221は、ポート211aを介して仮想マシン130,140,230と通信するための仮想的な通信インタフェースである。
仮想マシン230は、DBサーバ機能を実行する仮想マシンである。仮想マシン230のマシン名称を“DB1”とする。仮想マシン230は、vNIC231を有する。vNIC231は、ポート211bを介して仮想マシン220と通信するための仮想的な通信インタフェースである。
管理サーバ300は、NIC307を有する。NIC307は、ネットワーク10と接続される物理的な通信インタフェースである。
クライアント400,500,600は、それぞれNIC407,507,607を有する。NIC407,507,607は、ネットワーク10と接続される物理的な通信インタフェースである。
なお、以下の説明において、実行サーバ100のマシン名称を“SV1”とする。また、実行サーバ200のマシン名称を“SV2”とする。
次に、各物理マシン/仮想マシンに割当てられるネットワークの識別情報を例示する。
図5は、仮想マシンの割当例(続き)を示す図である。第2の実施の形態では、仮想マシン120,130,140,220,230、管理サーバ300およびクライアント400,500,600は、同一のサブネットに属している。ネットワークアドレスは、“192.168.1.0/24”である。図5では、各vNICおよび各NICに割当てられたIP(Internet Protocol)アドレスのうち、ネットワークアドレス部分の図示を省略し、ホストアドレス部分のみを表記している。各vNICおよび各NICに割当てられているIPアドレスのホストアドレスは次の通りである。vNIC121は“.50”である。vNIC131は“.1”である。vNIC132は“.2”である。vNIC141は“.3”である。vNIC142は“.4”である。vNIC221は“.5”である。vNIC231は“.6”である。NIC307は“.10”である。NIC407は“.100”である。NIC507は“.101”である。NIC607は“.102”である。
また、仮想スイッチ111の各ポートはポート番号が振られている。各ポートのポート番号は次の通りである。ポート111aは“1”である。ポート111bは“2”である。ポート111cは“3”である。ポート111dは“4”である。ポート111eは“5”である。ポート111fは“6”である。ポート111gは“7”である。
同様に、仮想スイッチ211の各ポートはポート番号が振られている。各ポートのポート番号は次の通りである。ポート211aは“1”である。ポート211bは“2”である。ポート211cは“3”である。
図6は、第2の実施の形態のソフトウェア例を示す図である。図6に示すユニットの一部または全部は、実行サーバ100,200、管理サーバ300およびクライアント400,500,600が実行するプログラムのモジュールであってもよい。また、図4に示すユニットの一部または全部は、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの電子回路であってもよい。なお、図6では、ハイパーバイザ110,210の図示を省略している。
仮想マシン120は、記憶部122、データ収集部123、割当決定部124および監視部125を有する。
記憶部122は、割当決定部124や監視部125の処理に用いる各種のデータを記憶する。例えば、記憶部122は、実行サーバ100,200で利用可能なリソースを管理するためのデータおよび各仮想マシンに割当てられているリソースを管理するためのデータを記憶する。これらリソースを管理するための情報は、管理サーバ300から取得できる。また、記憶部122は、データ収集部123が収集した仮想マシン間の通信データを記憶する。更に、記憶部122は、当該通信データに基づいて、割当決定部124が分析したデータを記憶する。
データ収集部123は、割当決定部124や監視部125の指示に応じて、仮想スイッチ111が中継する通信データを収集する。例えば、データ収集部123は、ポート111bを経由する通信データを収集したい場合、仮想スイッチ111にポート111bを経由する通信データを複製させて、ポート111aにも送信させる。すると、データ収集部123は、当該複製された通信データを収集できる。このような手法はポートミラーリング(以下、ミラーリングという)と呼ばれることがある。また、ミラーリングなどを用いてイーサネット(登録商標)フレームなどの通信データを収集して、当該フレームに含まれるIPパケットなど分析する手法をパケットキャプチャと呼ぶことがある。以下では、通信データを収集することを単にキャプチャということがある。
また、データ収集部123は、仮想スイッチ211が中継する通信データを仮想スイッチ211に複製させ、ネットワーク10を経由して収集することもできる。例えば、ポートごとに順番にミラーリングを行えば、ポートごとに当該ポートを経由する通信データを収集できる。また、仮想スイッチ111,211が通信データにポートを識別する情報を付与すれば、収集対象としたい全てのポートにつき同時にミラーリングを行うこともできる。データ収集部123は、収集した通信データを仮想スイッチ111,211上のポートに対応付けて記憶部122に格納する。
割当決定部124は、監視部125が仮想マシン130,140,220,230の監視を開始する前に、各仮想マシンの割当の変更内容を決定する。例えば、割当決定部124は、仮想スイッチ111,211が中継する通信データを所定期間だけデータ収集部123に収集させ、当該通信データに基づいて、各仮想マシンの割当の変更内容を決定する。割当決定部124は、決定した割当の変更内容を管理サーバ300に通知して、各仮想マシンの割当変更の実行を依頼する。
監視部125は、仮想マシン130,140,220,230の稼働状況を監視する。具体的には、監視部125は、仮想マシン130,140,220,230の割当が管理サーバ300により変更されると、仮想マシン130,140,220,230の通信データの収集をデータ収集部123に行わせる。例えば、監視部125は、データ収集部123が収集した通信データ(Webサーバ機能、APサーバ機能およびDBサーバ機能の間で送受信される通信データ)を組合せて、当該Webサービス全体における処理の実行状況を監視する。
仮想マシン130は、Web処理部133を有する。仮想マシン140は、Web処理部143を有する。Web処理部133,143は、Webサーバ機能を実行する。例えば、Web処理部133,143は、クライアント400が実行するブラウザ410の要求により、仮想マシン220が実行するAP処理部222に所定の処理の実行を要求する。また、Web処理部133,143は、AP処理部222から処理の実行結果を取得すると、当該実行結果をブラウザ410に応答する。
仮想マシン220は、AP処理部222を有する。AP処理部222は、APサーバ機能を実行する。例えば、AP処理部222は、Web処理部133,143からの要求に応じて、仮想マシン230が実行するDB処理部232からデータを取得し、所定の処理を実行する。また、AP処理部222は、当該処理の実行結果をWeb処理部133,143に応答する。
仮想マシン230は、DB処理部232を有する。DB処理部232は、DBサーバ機能を実行する。例えば、DB処理部232は、AP処理部222からの要求に応じて、実行サーバ200または他の装置に記憶されたデータベースにアクセスして、データの登録・更新・削除などの処理を行う。DB処理部232は、データベースへのアクセス結果をAP処理部222に応答する。
管理サーバ300は、記憶部310および割当制御部320を有する。
記憶部310は、実行サーバ100,200で利用可能なリソースを管理するための情報を記憶する。また、記憶部310は、各仮想マシンに割当てられているリソースを管理するための情報を記憶する。これらの情報は仮想マシン120からの要求に応じて、例えば、割当制御部320により仮想マシン120に提供される。
割当制御部320は、割当決定部124から仮想マシンの割当変更の実行依頼を受け付けると、受け付けた変更内容に基づいて仮想マシンの割当を変更する。仮想マシンの割当の変更は、実行サーバ100,200に対する仮想マシンの配置を変更することを意味する。例えば、割当制御部320は、ライブマイグレーションと呼ばれる技術を用いて、仮想マシンの割当を変更する。
クライアント400は、ブラウザ410を有する。ブラウザ410は、Web処理部133,143にWebアクセスするためのWebブラウザである。クライアント500,600もクライアント400と同様にブラウザを有している。
図7は、通信経路の例を示す図である。仮想マシン130,140,220,230が提供するWebサービスの処理において利用される通信経路は、次の通りである。ブラウザ410とWeb処理部133,143との間では通信経路R1を利用できる。通信経路R1は、ネットワーク10およびポート111bを介してクライアント400と仮想マシン130とをつなぐ経路を含む。通信経路R1は、ネットワーク10およびポート111dを介してクライアント400と仮想マシン140とをつなぐ経路を含む。クライアント500,600もクライアント400と同様に、通信経路R1を用いて、仮想マシン130,140と通信できる。
また、Web処理部133,143とAP処理部222との間では、通信経路R2を利用できる。通信経路R2は、ポート111c、ネットワーク10およびポート211aを介して仮想マシン130,220をつなぐ経路を含む。通信経路R2は、ポート111e、ネットワーク10およびポート211aを介して仮想マシン140,220をつなぐ経路を含む。
更に、AP処理部222とDB処理部232との間では、通信経路R3を利用できる。通信経路R3は、ポート211a,211bを介して仮想マシン220,230をつなぐ経路である。
図8は、物理サーバリソース管理テーブルの例を示す図である。物理サーバリソース管理テーブル122aは、記憶部122に格納される。例えば、割当決定部124は、管理サーバ300から、物理サーバリソース管理テーブル122aの情報を取得し、記憶部122に格納する。物理サーバリソース管理テーブル122aは、物理サーバ名、CPU(GHz(Giga Hertz))、メモリ(GB(Giga Bytes))およびVM名の項目を含む。
物理サーバ名の項目には、実行サーバのマシン名称が登録される。CPU(GHz)の項目には、実行サーバにおいて、割当可能な全CPUリソース(未割当分と割当済分との合計)を示す情報が登録される。メモリ(GB)の項目には、実行サーバにおいて、割当可能な全メモリ(RAM)リソース(未割当分と割当済分との合計)を示す情報が登録される。VM名の項目には、実行サーバにおいて、現在動作中の仮想マシンのマシン名称が登録される。
例えば、物理サーバリソース管理テーブル122aには、物理サーバ名が“SV1”、CPU(GHz)が“8”、メモリ(GB)が“24”、VM名が“監視用VM,Web1,Web2”という情報が登録される。
これは、実行サーバ100において、CPUリソースとして8GHz、メモリリソースとして24GBを仮想マシンに割当可能であることを示している。また、実行サーバ100において、仮想マシン120,130,140が動作中であることを示している。
図9は、VMリソース管理テーブルの例を示す図である。VMリソース管理テーブル122bは、記憶部122に格納される。例えば、割当決定部124は、管理サーバ300からVMリソース管理テーブル122bの情報を取得し、記憶部122に格納する。VMリソース管理テーブル122bは、VM名、CPU(GHz)、メモリ(GB)およびスイッチ名−ポートの項目を含む。
VM名の項目には、仮想マシンのマシン名称が登録される。CPU(GHz)の項目には、仮想マシンを実行するために所要するCPUリソースを示す情報が登録される。メモリ(GB)の項目には、仮想マシンを実行するために所要するメモリリソースを示す情報が登録される。スイッチ名−ポートの項目には、仮想マシンが現在通信に用いているスイッチ名称とポート番号との組が登録される。
例えば、VMリソース管理テーブル122bには、VM名が“Web1”、CPU(GHz)が“2”、メモリ(GB)が“4”、スイッチ名−ポートが“vSW1−2,vSW1−3”という情報が登録される。
これは、仮想マシン120の実行のためにCPUリソースとして2GHzを所要し、メモリリソースとして4GBを所要することを示す。また、仮想マシン120が仮想スイッチ111のポート111b,111cを用いて通信していることを示す。
図10は、収集される通信データの例を示す図である。通信データ群122cは、データ収集部123がポート111bについてキャプチャした通信データの集合である。通信データ群122cは、記憶部122に格納される。ポート111bは、上述したように、クライアント400,500,600上のブラウザとWeb処理部133との間のWebアクセスに利用され得る。このため、当該ポート111bを経由する通信データには、Webアクセスを示すメッセージが含まれ得る。以下、通信データ群122cの各行に便宜的に付した行番号を示して具体的に説明する。
例えば、行番号“1”の通信データは、クライアント400(IPアドレス“192.168.1.100”)から仮想マシン130(IPアドレス“192.168.1.1”)へのHTTP(HyperText Transfer Protocol)リクエストを示している。
行番号“2”の通信データは、行番号“1”のHTTPリクエストに応じた仮想マシン130からクライアント400へのHTTPレスポンスを示している。
行番号“3”の通信データは、クライアント500(IPアドレス“192.168.1.101”)から仮想マシン130へのHTTPリクエストを示している。
行番号“4”の通信データは、クライアント600(IPアドレス“192.168.1.102”)から仮想マシン130へのHTTPリクエストを示している。
行番号“5”の通信データは行番号“3”のHTTPリクエストに応じた仮想マシン130からクライアント500へのHTTPレスポンスを示している。
行番号“6”の通信データは行番号“4”のHTTPリクエストに応じた仮想マシン130からクライアント600へのHTTPレスポンスを示している。
データ収集部123は、ポートごとに順番にデータ収集を行うことで、各ポートを経由する通信データをポートごとに収集する。上記の説明では、ポート111bを例示したが、ポート111c,111d,111e,211a,211bについても同様にして通信データを収集できる。例えば、Web処理部133とAP処理部222との間の通信であれば、Web−AP連携用のメッセージ(例えば、IIOP(Internet Inter Object Request Broker Protocol)など)を含む通信データを収集できる。また、AP処理部222とDB処理部232との間の通信であれば、DBアクセス用のメッセージなどを含む通信データを収集できる。各通信データは、送信元のIPアドレスおよび宛先のIPアドレスを含む。なお、仮想スイッチ111,211により複製した通信データにポートを示す情報を付加させて、収集したい複数のポートの通信データを同時に収集してもよい。
図11は、通信ペアテーブルの例を示す図である。通信ペアテーブル122dは、割当決定部124により作成され、記憶部122に格納される。割当決定部124は、データ収集部123が所定期間だけ収集した通信データに基づいて、通信ペアテーブル122dを作成する。通信ペアテーブル122dは、スイッチ名、ポート番号および通信ペアの項目を含む。
スイッチ名の項目には、スイッチ名称が登録される。ポート番号の項目には、ポート番号が登録される。通信ペアの項目には、通信の送信元/宛先となるIPアドレスのペア(以下、通信ペアということがある)が登録される。ここで、IPアドレスは、仮想マシン130,140,220,230に対して一意に割当てられるものである(1つの仮想マシンに複数のIPアドレスが割当てられることもある)。したがって、IPアドレスのペアは、通信する仮想マシンのペアを示している。なお、通信ペアの項目は、第1のIPアドレスを登録する項目(1)と、第1のIPアドレスと対になる第2のIPアドレスを登録する項目(2)とを更に含んでいる。
例えば、通信ペアテーブル122dには、スイッチ名が“vSW1”、ポート番号が“2”、通信ペアが(1)“192.168.1.100”、(2)“192.168.1.1”という情報が登録される。これは、仮想スイッチ111のポート111bにおいて、IPアドレスの“192.168.1.100”(クライアント400)と“192.168.1.1”(仮想マシン130)とのペアを送信元/宛先とした通信が行われていることを示す。なお、送信元が“192.168.1.100”、宛先が“192.168.1.1”である場合も送信元が“192.168.1.1”、宛先が“192.168.1.100”である場合も1レコードで示すものとする。具体的には、当該レコードは、通信データ群122cの行番号“1”、“2”の通信に対応付けられる。ただし、通信ペアテーブル122dには何れか一方の場合が存在すれば登録され得る。また、1つのポートに対して、複数の通信ペアが登録されることもある。例えば、スイッチ名“vSW1”のポート番号“2”には3つの通信ペアが登録されている。
図12は、全通信ペアテーブルの例を示す図である。全通信ペアテーブル122eは、割当決定部124により作成され、記憶部122に格納される。割当決定部124は、通信ペアテーブル122dに基づいて、全通信ペアテーブル122eを作成する。全通信ペアテーブル122eは、通信ペアの項目を含む。
通信ペアの項目には、通信の送信元/宛先となるIPアドレスのペアが登録される。通信ペアの項目は、第1のIPアドレスを登録する項目(1)と、第1のIPアドレスと対になる第2のIPアドレスを登録する項目(2)とを更に含んでいる。
ここで、全通信ペアテーブル122eは、通信ペアテーブル122dから通信ペアを重複なく抽出したものである。すなわち、監視対象とする仮想マシン130,140,220,230の間の全ての通信ペアにつき通信データを収集する場合、全通信ペアテーブル122eに登録された全通信ペアについて通信データを収集すればよい。すなわち、全通信ペアテーブル122eに登録された全通信ペアの通信データをカバーできるポートの組合せがキャプチャ対象候補となる。
図13は、キャプチャ対象候補テーブルの例を示す図である。キャプチャ対象候補テーブル122fは、割当決定部124により作成され、記憶部122に格納される。割当決定部124は、通信ペアテーブル122dおよび全通信ペアテーブル122eに基づいて、キャプチャ対象候補テーブル122fを作成する。キャプチャ対象候補テーブル122fは、項番、キャプチャ対象候補およびキャプチャ量(Mbps(Mega bits per second))の項目を含む。
項番の項目には、レコードを識別するための情報が登録される。キャプチャ対象候補の項目には、キャプチャ対象候補とするポートの組合せを示す情報が登録される。各ポートは“スイッチ名称−ポート番号”の形式で示されている。キャプチャ量(Mbps)の項目には、当該キャプチャ対象候補でキャプチャを行う場合に想定される収集データの量(以下、キャプチャ量ということがある)が登録される。
例えば、キャプチャ対象候補テーブル122fには、項番が“1”、キャプチャ対象候補が“vSW1−2,vSW1−4,vSW2−1”、キャプチャ量(Mbps)が“30”という情報が登録される。
これは、項番“1”では、キャプチャ対象候補をポート111b,111d,211aの組合せとすることを示している。また、ポート111b,111d,211aについてデータ収集を行った場合、想定されるキャプチャ量が30(Mbps)であることを示している。
なお、キャプチャ量の取得に関しては各種の方法が考えられる。例えば、データ収集部123が各ポートで毎秒収集されるデータ量の平均を計測して、割当決定部124に通知してもよい。また、割当決定部124がSNMP(Simple Network Management Protocol)を用いて仮想スイッチ111,211から各ポートで毎秒通信されるデータ量を取得してもよい。そして、割当決定部124は、キャプチャ対象候補に含まれる各ポートにおいて毎秒通信されるデータ量の合計を、キャプチャ量(Mbps)の項目に登録する。
図14は、VM配置候補テーブルの例を示す図である。VM配置候補テーブル122gは、割当決定部124により作成され、記憶部122に格納される。割当決定部124は、物理サーバリソース管理テーブル122a、VMリソース管理テーブル122bおよびキャプチャ対象候補テーブル122fに基づいて、VM配置候補テーブル122gを作成する。VM配置候補テーブル122gは、項番、VM配置候補、移動VM数、キャプチャ量(Mbps)およびキャプチャ対象ポート数の項目を含む。
項番の項目には、レコードを識別するための情報が登録される。VM配置候補の項目には、各実行サーバに対する仮想マシンの配置候補を示す情報が登録される。VM配置候補の項目は、SV1およびSV2の項目を更に含んでいる。SV1の項目には、実行サーバ100に配置する仮想マシンのマシン名称が登録される。SV2の項目には、実行サーバ200に配置する仮想マシンのマシン名称が登録される。移動VM数の項目には、現在の配置から配置VM名の項目で示される配置に変更した場合に、割当変更の対象となる(移動させる)仮想マシンの総数が登録される。ここで、移動させる仮想マシンの総数は、Webサービスに関連する仮想マシンについてのみ算出する(監視用の仮想マシン120の移動は考慮しない)。なぜなら、監視用の仮想マシン120は、移動の処理を行わずに、配置変更先で新規に動作させてもよいからである。ただし、監視用の仮想マシン120を移動させる場合には、当該移動分を回数に含めてもよい。キャプチャ量(Mbps)の項目には、配置VM名の項目で示される配置に変更した場合に、想定されるキャプチャ量が登録される。キャプチャ対象ポート数の項目には、配置VM名の項目で示される配置に変更した場合に、キャプチャ対象とするポート数が登録される。ここで、キャプチャ対象とするポート数は、配置変更後において、仮想マシン120が全通信ペアについて監視用のキャプチャを行うために、1つの仮想スイッチ上でキャプチャ対象とする最小のポート数である。
例えば、VM配置候補テーブル122gには、項番が“1”、実行サーバ100に対するVM配置の候補が“監視用VM,Web1,Web2,AP1”、実行サーバ200に対するVM配置の候補が“DB1”、移動VM数が“1”、キャプチャ量(Mbps)が“30”、キャプチャ対象ポート数が“3”という情報が登録される。
これは、仮想マシン120,130,140,220を実行サーバ100に配置し、仮想マシン230を実行サーバ200に配置するように割当変更した場合、仮想マシンの移動回数が1回であることを示す。移動回数が1回である理由は、仮想マシン220を実行サーバ200から実行サーバ100に移動させれば(移動数1)、項番“1”の配置となるからである。また、当該変更後のキャプチャ量が30Mbpsであり、キャプチャ対象となるポート数が3であることを示す。キャプチャ対象ポート数が3である理由は、割当変更後の仮想スイッチ111のポートのうち、全通信ペアテーブル122eに登録された全ペアの通信をカバーするために次の合計3つのポートから通信データを収集すればよいからである。第1には、仮想マシン130,140がクライアント400,500,600との通信に用いる2つのポート111b,111dである。第2には、仮想マシン220が仮想マシン130,140,230との通信に用いる1つのポートである。よって、合計2+1=3がキャプチャ対象ポート数となる。なお、キャプチャ量は、キャプチャ対象の各ポートのキャプチャ量の合計である。
また、例えば、VM配置候補テーブル122gには、項番が“2”、実行サーバ100に対するVM配置の候補が“監視用VM,Web1,Web2,DB1”、実行サーバ200に対するVM配置の候補が“AP1”、移動VM数が“1”、キャプチャ量(Mbps)が“30”、キャプチャ対象ポート数が“5”という情報が登録される。
登録された各情報の示す内容は、項番“1”と同様である。ここで、キャプチャ対象ポート数が5である理由は、割当変更後の仮想スイッチ111のポートのうち、全通信ペアテーブル122eに登録された全ペアの通信をカバーするために次の合計5つのポートから通信データを収集すればよいからである。第1には、仮想マシン130,140がクライアント400,500,600との通信に用いる2つのポート111b,111dである。第2には、仮想マシン130,140が仮想マシン220との通信に用いる2つのポート111c,111eである。第3には、仮想マシン230が仮想マシン220との通信に用いる1つのポートである。よって、合計2+2+1=5がキャプチャ対象ポート数となる。
なお、上述したように、移動VM数には、監視用の仮想マシン120の移動は考慮していない。このため、項番“3”では、実行サーバ100に仮想マシン230を配置し、実行サーバ200に仮想マシン120,130,140,220を配置するように割当変更する場合を例示しているが、このときの移動VM数は“3”となる。仮想マシン230を実行サーバ200から実行サーバ100に移動させ(移動数1)、仮想マシン130,140を実行サーバ100から実行サーバ200に移動させる(移動数2)からである(移動数の合計1+2=3)。ただし、この場合、仮想マシン120を実行サーバ100から実行サーバ200に移動させる場合には、当該移動分(移動数1)を加算して、移動VM数“4”(移動数の合計3+1=4)と評価してもよい。
図15は、データ収集処理の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
(ステップS11)割当決定部124は、監視対象とする仮想マシン130,140,220,230の指定を受け付ける。例えば、情報処理システムの管理者によって、監視対象の各仮想マシンのマシン名が指定される。割当決定部124は、データ収集部123が収集した通信データに基づいて、キャプチャ対象候補を決定し、記憶部122に記憶されたキャプチャ対象候補テーブル122fに登録する。詳細は後述する。
(ステップS12)割当決定部124は、キャプチャ対象候補テーブル122fに基づいて、VM配置候補を作成し、記憶部122に記憶されたVM配置候補テーブル122gに登録する。割当決定部124は、VM配置候補テーブル122gに基づいて、監視時のVM配置を決定する。
(ステップS13)割当決定部124は、決定されたVM配置に基づいて仮想マシンの配置変更を行うように割当制御部320に依頼する。割当制御部320は、決定されたVM配置に基づいて、仮想マシンの配置変更を実行する。
(ステップS14)割当制御部320は、配置変更が完了すると、仮想マシン120(監視用VM)に監視対象の仮想マシン130,140,220,230の監視を開始させる。例えば、仮想マシン120が実行サーバ100に配置されていれば、データ収集部123は、仮想スイッチ111がミラーリングした通信データを収集する。また、例えば、配置変更により仮想マシン120が実行サーバ200に移動される(または、新たに起動される)こともある。この場合、データ収集部123は、仮想スイッチ211がミラーリングした通信データを収集する。何れの場合にも、監視部125はデータ収集部123により収集された通信データを組合せてサービス全体の稼働状況を監視する。
このようにして、仮想マシンの割当を変更した後に、監視のためのデータ収集を開始する。次に、上記ステップS11の具体的な処理手順を説明する。
図16は、キャプチャ対象候補の決定例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
(ステップS21)割当決定部124は、仮想スイッチ111,211の各ポートを経由する通信データを所定期間だけデータ収集部123に収集させる。例えば、割当決定部124は、記憶部122に記憶されたVMリソース管理テーブル122bに基づいて、監視対象の仮想マシン130,140,220,230が何れの仮想スイッチの何れのポートを用いて通信しているかを特定できる。データ収集部123は、特定されたポート111b,111c,111d,111e,211a,211bについて、仮想スイッチ111,211にミラーリングさせればよい。データ収集部123は、各ポートについて順番にミラーリングさせてデータ収集することでポートごとの通信データを収集できる。例えば、データ収集部123は、ポート111bについて通信データ群122cを収集する。データ収集部123は、収集した通信データを各仮想スイッチ上のポートに対応付けて記憶部122に格納する。
(ステップS22)割当決定部124は、記憶部122に記憶された通信データに基づいて、通信ペアを取得する。割当決定部124は、記憶部122に記憶された通信ペアテーブル122dに当該通信ペアを登録する。更に、割当決定部124は、通信ペアテーブル122dに基づいて全通信ペアテーブル122eを作成し、記憶部122に格納する。
(ステップS23)割当決定部124は、通信ペアテーブル122dに含まれる全ポートの全ての組合せをキャプチャ対象候補としてキャプチャ対象候補テーブル122fに仮登録する。例えば、6つの異なるポート111b,111c,111d,111e,211a,211bから複数選択する全組合せの数は、57通りある。割当決定部124は、この全ての組合せをキャプチャ対象候補テーブル122fに仮登録する。
(ステップS24)割当決定部124は、キャプチャ対象候補テーブル122fに仮登録したキャプチャ対象候補を1つ読み出す。ここで、割当決定部124は、キャプチャ量が未登録のキャプチャ対象候補を読み出す。
(ステップS25)割当決定部124は、読み出したキャプチャ対象候補に係るポートの組合せで、全通信ペアテーブル122eに登録されたIPアドレスの全通信ペアの通信データを収集できるか否かを判定する。全通信ペアの通信データを収集できる場合、処理をステップS26に進める。全通信ペアの通信データを収集できない場合、処理をステップS27に進める。例えば、割当決定部124は、通信ペアテーブル122dを参照して、各ポートでカバーできる通信ペアを把握できる。例えば、仮登録したキャプチャ対象候補でカバー可能な通信ペアの組合せが、全通信ペアテーブル122eに登録された通信ペアを全て含む場合、全通信ペアの通信データを収集できると判断する。一方、仮登録したキャプチャ対象候補でカバー可能な通信ペアの組合せが、全通信ペアテーブル122eに登録された通信ペアを全て含まない場合、全通信ペアの通信データを収集できないと判断する。
(ステップS26)割当決定部124は、読み出したキャプチャ対象候補を用いてキャプチャを行った場合に想定されるキャプチャ量を算出して、キャプチャ対象候補テーブル122fに登録する。そして、処理をステップS28に進める。例えば、割当決定部124は、キャプチャ対象候補の各ポートのデータ通信量をデータ収集部123に計測させ、各ポートのデータ通信量を合計することで、当該キャプチャ対象候補のキャプチャ量を算出できる。また。割当決定部124は、SNMPを用いて仮想スイッチ111,211から当該キャプチャ対象候補の各ポートのデータ通信量を取得して合計することで、キャプチャ量を算出してもよい。
(ステップS27)割当決定部124は、読み出したキャプチャ対象候補をキャプチャ対象候補テーブル122fから削除する。そして、処理をステップS28に進める。
(ステップS28)割当決定部124は、キャプチャ対象候補テーブル122fに仮登録した全てのキャプチャ対象候補について、ステップS24以降の処理を行ったか否かを判定する。全てを処理済である場合、処理を終了する。未処理のものが残っている場合、処理をステップS24に進める。例えば、割当決定部124は、キャプチャ対象候補テーブル122fに登録された全てのキャプチャ対象候補についてキャプチャ量が登録されていれば、全ての組合せが処理済であると判断する。一方、割当決定部124は、キャプチャ対象候補テーブル122fにキャプチャ量が登録されていないポートの組合せが残っている場合、未処理の組合せが残っていると判断する。
このようにして、仮想マシン120は、キャプチャ対象候補テーブル122fにキャプチャ対象候補を登録する。
なお、上記ステップS21では、割当決定部124は、監視対象の仮想マシン130,140,200,230の通信に直接用いられるポート111b,111c,111d,111e,211a,211bについてデータ収集部123にデータ収集させ、それ以外のポート(例えば、ポート111g,111f,211c)は対象外とする。それ以外のポートを経由する通信データには、監視したいサービスとは無関係な通信に係る通信データが多量に含まれている可能性が高く、キャプチャ量が多くなる可能性が高いからである(すなわち、後述する絞り込みで除外される可能性が高い)。ただし、割当決定部124は、これらのポートについてデータ収集部123にデータ収集させてもよい。
更に、ステップS21では、割当決定部124は、仮想マシン130,140,220,230から各仮想マシンが何れの他の仮想マシンと通信しているかを示す情報を取得してもよい。仮想マシン130,140,220,230は、通信データの生成元であり、自身が通信データに設定した送信元/宛先のアドレスの情報を割当決定部124に提供できる。
次に、図15のステップS12の具体的な処理手順を説明する。
図17は、仮想マシンの配置決定の例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
(ステップS31)割当決定部124は、記憶部122に記憶されたキャプチャ対象候補テーブル122fから、キャプチャ対象候補を1つ読み出す。
(ステップS32)割当決定部124は、監視用VMを動作させる1つの実行サーバを選択し、読み出したキャプチャ対象候補に含まれる各ポートを用いて通信する仮想マシンが、当該1つの実行サーバで動作するようにVM配置候補を作成する。このとき、割当決定部124は、各実行サーバにおけるリソースの利用状況を考慮する。リソースの利用状況は、記憶部122に記憶された物理サーバリソース管理テーブル122aおよびVMリソース管理テーブル122bに基づいて把握できる。また、仮想マシン140,220,230以外の外部のクライアント400,500,600と通信する仮想マシン130,140と監視用VMとは同じ実行サーバ上で動作させるようにする。クライアント400,500,600との間で送受信される通信データは、仮想マシン130,140が動作する実行サーバ以外の実行サーバへは送られないからである。割当決定部124は、作成したVM配置候補を記憶部122に記憶されたVM配置候補テーブル122gに登録する。VM配置候補を決定するための、より具体的な方法は後述する。
(ステップS33)割当決定部124は、VM配置候補テーブル122gに登録された各VM配置候補について、各種評価値(移動VM数、キャプチャ量およびキャプチャ対象ポート数)を登録する。移動VM数は、現在の仮想マシンの配置状況からVM配置候補の配置へと変更するために幾つの仮想マシンを移動させればよいかを特定することで求められる。なお、配置変更後も現在と同じ実行サーバ上で動作させる仮想マシンについては、移動を行わなくてよい。キャプチャ対象ポート数は、VM配置候補を作成するために参照したキャプチャ対象候補に含まれるポートの数である。キャプチャ量は、当該キャプチャ対象候補に対応するキャプチャ量である。
(ステップS34)割当決定部124は、キャプチャ対象候補テーブル122fに登録された全てのキャプチャ対象候補についてステップS31〜S33の処理を行ったか否かを判定する。全てのキャプチャ対象候補について処理済である場合、処理をステップS35に進める。未処理のキャプチャ対象候補がある場合、処理をステップS31に進める。例えば、ステップS33の後、処理したキャプチャ対象候補に処理済のフラグを付与して、本ステップS34の判定に用いてもよい。
(ステップS35)割当決定部124は、VM配置候補テーブル112gに登録されたVM配置候補が1つであるか否かを判定する。1つである場合、当該VM配置候補を監視時のVM配置とすることを決定して処理を終了する。1つでない、すなわち、VM配置候補が複数ある場合、処理をステップS36に進める。
(ステップS36)割当決定部124は、VM配置候補テーブル112gに基づいて、移動VM数によるVM配置候補の絞り込みを行う。具体的には、割当決定部124は、移動VM数が最小のVM配置候補を抽出する。
(ステップS37)割当決定部124は、ステップS36の絞り込みによって、VM配置候補を1つに絞り込めたか否かを判定する。1つに絞り込めた場合、当該VM配置候補を監視時のVM配置とすることを決定して処理を終了する。1つに絞り込めなかった場合、処理をステップS38に進める。
(ステップS38)割当決定部124は、VM配置候補テーブル112gに基づいて、ステップS36で絞り込んだ結果に対し、更にキャプチャ量による絞り込みを行う。具体的には、割当決定部124は、キャプチャ量が最小のVM配置候補を抽出する。
(ステップS39)割当決定部124は、ステップS38の絞り込みによって、VM配置候補を1つに絞り込めたか否かを判定する。1つに絞り込めた場合、当該VM配置候補を監視時のVM配置とすることを決定して処理を終了する。1つに絞り込めなかった場合、処理をステップS40に進める。
(ステップS40)割当決定部124は、VM配置候補テーブル112gに基づいて、ステップS38で絞り込んだ結果に対し、更にキャプチャ対象ポート数による絞り込みを行う。具体的には、割当決定部124は、キャプチャ対象ポート数が最小のVM配置候補を抽出する。
このようにして、割当決定部124は、VM配置候補の絞り込みを行って、監視時のVM配置候補を決定する。なお、ステップS40の絞り込みを行った後、最終的にVM配置候補が1つに絞り込めない場合も考え得る。この場合、割当決定部124は、何れのVM配置候補を採用するかを、システムの管理者などに選択させてもよい。
ここで、上記ステップS36〜S40の絞り込みを行うのは次の理由による。
移動VM数による絞り込みを行うのは、移動回数が少ないほど、移動に伴う各実行サーバの負荷を軽減でき、また、移動を迅速に完了して、監視を開始できるからである。
また、キャプチャ量による絞り込みを行うのは、キャプチャ量が少ないほど、通信データを記憶するための記憶領域が少なくて済むからである。また、処理対象のデータ量も少なくて済み、効率的に監視を行えるからである。特に、キャプチャ対象とするポートの選択の仕方によっては、同一の通信データを重複してキャプチャしてしまう場合もあり、このような場合には、キャプチャ量が増大し得る。キャプチャ量による絞り込みを行うことで、同じ通信データを重複してキャプチャしてしまう可能性も低減できる。
更に、キャプチャ対象ポート数による絞り込みを行うのは、キャプチャ対象ポート数が少ないほど、ミラーリングのための設定を省力化でき、また、ミラーリングの際のデータ複製に伴う負荷を低減できるからである。
また、ステップS36〜S40における絞り込みは任意の順序で行うことができる。例えば、キャプチャ量による絞り込み、キャプチャ対象ポート数による絞り込み、移動VM数による絞り込み、の順序で絞り込んでもよい。また、3種類の絞り込みを行うものとしたが、このうちの何れか1種類または2種類の絞り込みを行うようにしてもよい。
なお、ステップS32では、例えば、キャプチャ対象候補テーブル122fの項番“1”のキャプチャ対象候補について次のようにVM配置候補を決定する。まず、監視用VMとする仮想マシンを配置する実行サーバとして実行サーバ100を選択する。そして、ポート111b,111d,211a(それぞれ、“vSW1−2”、“vSW1−4”、“vSW2−1”に対応)を用いて通信する仮想マシン130,140,220が、選択した実行サーバ100に配置されるようにVM配置候補を決定する。このVM配置候補は、VM配置候補テーブル112gの項番“1”に相当する。ここで、仮想マシン120,130,140,220を動作させるための所要CPUリソースの合計は8GHzであり、所要メモリリソースの合計は20GBである。これは、実行サーバ100で割当可能なCPUリソース8GHz、メモリリソース24GB内に収まっている。
また、キャプチャ対象候補テーブル122fの項番“1”のキャプチャ対象候補については、監視用VMとする仮想マシンの配置先候補として実行サーバ200も考え得る。この場合のVM配置候補は、VM配置候補テーブル112gの項番“3”に相当する(ここで、VM配置候補テーブル112gは移動VM数でソートした後に項番を付している)。当該項番“3”のVM配置候補では、実行サーバ200で監視用VMの仮想マシン、仮想マシン130,140,220(所要CPUリソースの合計は8GHz)を実行することで、実行サーバ200で割当可能なCPUリソース8GHz分を全て消費する。このため、仮想マシン230を実行サーバ100に割当変更するようなVM配置候補とする。
実行サーバの割当可能リソースや仮想マシンの所要リソースを考慮してVM配置候補を決定することで、現実的ではないVM配置候補を除外でき、配置決定のための処理を効率化できる。
更に、キャプチャ対象候補テーブル122fの項番“2”のキャプチャ対象候補に対応するVM配置候補として、VM配置候補テーブル122gでは項番“2”、“4”が例示されている。
また、ステップS32では、仮想マシン130,140,220,230とクライアント400,500,600を次のようにして区別できる。例えば、各仮想マシンのマシン名称とIPアドレスとの対応関係を示す情報を記憶部122に予め格納しておく。そうすれば、通信データ群122cにおいて当該対応関係に含まれないIPアドレスをクライアント400,500,600のものと判断できる。あるいは、クライアント400,500,600を固定のIPアドレスにより区別できれば、通信データ群122cに含まれる当該IPアドレスをクライアント400,500,600のものと判断することもできる。ステップS32のように、クライアントと通信する仮想マシンを監視用VMと同じ実行サーバに配置することで、当該クライアントとの通信データも効率的に収集できる。
図18は、仮想マシンの配置決定の具体例を示す図である。図18では、VM配置候補テーブル122gが得られている場合に、割当決定部124が上記ステップS36〜S40の手順でVM配置候補の絞り込みを行う過程を例示している。まず、割当決定部124は、移動VM数が最小のVM配置候補を抽出する(ステップS36)。VM配置候補テーブル122gでは、項番“1”、“2”のVM配置候補の移動VM数が1で最小である。したがって、割当決定部124は、項番“1”、“2”にVM配置候補を絞り込む。この時点で、VM配置候補は2つであり、1つに絞り込まれていないので、割当決定部124は、次の絞り込みを行う。
割当決定部124は、これまでに絞り込まれたVM配置候補のうち、キャプチャ量が最小のVM配置候補を抽出する(ステップS38)。VM配置候補テーブル122gでは、項番“1”、“2”のVM配置候補ともキャプチャ量は30Mbpsで同じである。この場合、割当決定部124は、項番“1”、“2”の両方のVM配置候補を抽出する。この時点で、VM配置候補は2つであり、1つに絞り込まれていないので、割当決定部124は次の絞り込みを行う。
図19は、仮想マシンの配置決定の具体例を示す図(続き)である。割当決定部124は、これまでに絞り込まれたVM配置候補のうち、キャプチャ対象ポート数が最小のVM配置候補を抽出する(ステップS40)。VM配置候補テーブル122gでは、項番“1”のVM配置候補のキャプチャ対象ポート数が“3”で最小である。したがって、割当決定部124は、項番“1”にVM配置候補を絞り込む。割当決定部124は、最終的に1つ残った項番“1”のVM配置候補を監視時のVM配置に決定する。
割当決定部124は、決定したVM配置とするように割当制御部320に依頼する。すると、割当制御部320は、仮想マシンの配置変更を行う。図19の絞り込み結果を例に採ると、割当制御部320は、仮想マシン220(マシン名“AP1”)を実行サーバ200から実行サーバ100へ移動させる。
図20は、割当変更後の接続例を示す図である。図20では、割当制御部320が仮想マシン220を実行サーバ200から実行サーバ100へ移動させる場合を例示している。割当制御部320は、例えば、次の(1)〜(5)手順をハイパーバイザ110,210に実行させることで、仮想マシン220の移動を行える。
(1)実行サーバ100(移動先)で仮想マシン220用のCPU/メモリリソースを予約する。
(2)実行サーバ200(移動元)で仮想マシン220に割当てられているメモリリソースのデータを、実行サーバ100で仮想マシン220用に新たに割当てたメモリリソースにコピーする。
(3)実行サーバ200から実行サーバ100へ当該仮想マシン220に割当てていたCPUリソースの状態をコピーし、実行サーバ200で仮想マシン220を停止させる。
(4)実行サーバ100で仮想マシン220を再開し、実行サーバ200で仮想マシン220に割当てていたリソースを解放する。
(5)実行サーバ100上の仮想マシン220についてネットワーク設定(例えば、所定のアドレスなど)を更新する。これにより、vNIC221は、例えば仮想スイッチ111のポート111fを用いて仮想マシン130,140,230と通信を行えるようになる。この場合、ポート211aを経由して送受信されていた通信データは、ポート111fを経由することになる。したがって、ポート111fについてミラーリングを行えば、割当変更前のポート211aを経由して送受信されていた通信データを収集できる。
なお、この場合は、監視用VMである仮想マシン120を実行サーバ100上で継続して動作させるため、監視用VMの仮想マシンの移動は発生しない。一方、他の実行サーバ上へ監視用VMを配置変更することもある。この場合には、割当制御部320は、当該配置先の実行サーバで監視用VMの仮想マシンを新たに起動させてデータ収集および監視を開始させる。あるいは、上記と同様の手順によって、実行サーバ100から配置先の実行サーバに(監視用VMである)仮想マシン120を移動させてもよい。
割当制御部320は、仮想マシンの移動後の実行サーバ100,200におけるリソースの割当状況を、記憶部310に記憶された物理サーバリソースおよびVMリソースを管理するための情報に反映させる。
図21は、割当変更後の通信経路の例を示す図である。図21では、ハイパーバイザ110,210、管理サーバ300などの図示を省略している。仮想マシン220の移動後において、仮想マシン130,140,220,230が提供するWebサービスで利用され得る通信経路は、次の通りである。
クライアント400,500,600と仮想マシン130,140との間の通信に利用可能な通信経路R1は、図7で示した通信経路R1と同様である。
仮想マシン130(Web処理部133)と仮想マシン220(AP処理部222)との間の通信、および、仮想マシン140(Web処理部143)と仮想マシン220(AP処理部222)との間の通信は、通信経路R2aを利用できる。通信経路R2aは、ポート111c,ポート111fを介して仮想マシン130,220をつなぐ経路を含む。通信経路R2は、ポート111e,111fを介して仮想マシン140,220をつなぐ経路を含む。
更に、仮想マシン220(AP処理部222)と仮想マシン230(DB処理部232)との間の通信は、通信経路R3aを利用できる。通信経路R3aは、ポート111f,ネットワーク10およびポート211bを介して仮想マシン220,230をつなぐ経路である。
図22は、監視時のデータ収集の例を示す図である。監視部125は、データ収集部123に通信データのキャプチャを開始させる。データ収集部123は、ポート111b,111d,111fを用いて通信される通信データを仮想スイッチ111に複製させ、ポート111aを用いて仮想マシン120にも送信させる(ミラーリング)。データ収集部123は、当該ミラーリングされた通信データを収集する。
ここで、キャプチャ対象のポート111fは、割当変更前のポート211aを経由して送受信されていた通信データの送受信に用いられる。そして、ポート111b,111d,211aの組合せは、本例のWebサービスにおける全通信ペアをカバーできるポートの組合せとして選択されたものである。したがって、ポート111b,111d,111fをキャプチャ対象とすることで、当該全通信ペアの通信データを収集できる。
監視部125は、例えば、収集された通信データを組合せて、仮想マシン130,140,220,230によるWebサービスの稼働状況を監視する。
図23は、監視時のデータ収集の他の例を示す図である。図23では、図22との比較のために、仮想マシンの割当変更を行わずに通信データを収集する場合を例示している。
この場合、全通信ペアの通信データを仮想マシン120で収集するために、例えばポート111b,111d,211aについてミラーリングすることが考えられる。この場合、ポート111b,111dを経由する通信データを仮想スイッチ111上で複製して、仮想マシン120にも送る。また、ポート211aを経由する通信データを仮想スイッチ211上で複製して、実行サーバ100上の仮想マシン120にも送る。
しかし、仮想スイッチ211上で複製した通信データは、ネットワーク10を介して実行サーバ100に送られることになる。すると、ネットワーク10で当該複製した通信データを中継することになり、監視期間中はネットワーク10の帯域が圧迫されてしまう。この場合、本来のWebサービスまたはネットワーク10を介して実現される他のサービスなどで利用可能な帯域が低減してしまい、非効率的となる。
そこで、第2の実施の形態の情報処理システムでは、監視のためのデータ収集を行う前に、仮想マシンの割当を変更する。具体的には、1つの実行サーバを選択し、当該1つの実行サーバ以外で動作し互いに通信する仮想マシンのペアのうちの少なくとも一方の仮想マシンが、当該1つの実行サーバ上で動作するように仮想マシンの割当を変更する。
これにより、選択された1つの実行サーバで監視用の仮想マシンを動作させ、当該1つの実行サーバ上でデータ収集することで、全ての仮想マシンのペアにつき通信データを収集できる。したがって、ネットワーク10に複製したデータを流さなくてもよくなり、監視に伴うネットワーク10の負荷への影響を軽減することができる。
更に、仮想マシンの割当変更後の配置候補が複数存在する場合には、仮想マシンの移動に伴う負荷を示す情報や割当変更後にキャプチャを行う際の負荷を示す情報を予測し、予測結果に基づいて何れの配置候補を採用するかを決定する。具体的には、仮想マシンの移動に伴う負荷を移動させる仮想マシンの数により予測する。また、キャプチャを行う際の負荷を、割当変更後に想定されるキャプチャ量および割当変更後のキャプチャ対象ポート数により予測する。これらの負荷が小さくなるように、複数の配置候補を絞り込む。負荷がより小さくなるような方法を選択することで、監視時のデータ収集をより一層効率的に行うことができる。
以上の説明では、割当決定部124を仮想マシン120上に設けるものとしたが、他の例も考えられる。例えば、監視部125を設けた仮想マシンとは別個の仮想マシンに割当決定部124を設けてもよい。更に、割当決定部124を管理サーバ300に設けてもよい。データ収集部123によるデータ収集機能も、割当決定部124と同様に、他の仮想マシンや管理サーバ300などに設けて割当決定部124と連携させることができる。
また、連携する複数の仮想マシンが2つの実行サーバ100,200に配置される例を示したが、3以上の実行サーバに配置される複数の仮想マシンが連携する場合にも、割当決定部124の機能を利用できる。更に、Web3階層のサービスを例示したが、2または4以上の階層で通信するサービスを監視する場合にも、割当決定部124の機能を利用できる。
なお、上述の機能は、コンピュータに所定のプログラムを実行させることで実現することもできる。当該プログラムは、コンピュータ読み取り可能な可搬型の記録媒体(例えば、記録媒体13)に記録しておくことができる。当該プログラムを流通させるには、例えば、そのプログラムが記録された記録媒体を配布する。または、そのプログラムをサーバコンピュータに格納しておき、ネットワーク経由でコンピュータに転送してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたはネットワークから取得したプログラムを、自装置の不揮発性の記憶媒体に格納する。そして、当該不揮発性の記憶媒体からプログラムを読み取り実行する。ただし、コンピュータは、取得したプログラムを、不揮発性の記憶媒体に格納せずに逐次、RAMに展開して実行することも可能である。
1,2,3 情報処理装置
1a 割当決定手段
1b 制御手段
2a,2b,3a,3b 仮想マシン
2c,3c 中継手段
4 ネットワーク

Claims (9)

  1. 仮想マシンおよび前記仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムが実行する通信データのデータ収集方法であって、
    複数の仮想マシンが送受信する通信データに基づいて、前記複数の仮想マシンのうち互いに通信する仮想マシンの1またはそれ以上のペアを取得し、
    前記複数の情報処理装置のうちの1つの情報処理装置を選択して、前記1またはそれ以上のペアのうち、選択した前記情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、前記情報処理装置で実行されるように前記複数の仮想マシンの割当を変更し、
    前記情報処理装置で動作する中継手段が中継する通信データを収集する、
    データ収集方法。
  2. 前記複数の仮想マシンの割当を変更するとき、前記複数の情報処理装置それぞれを前記1つの情報処理装置として選択した場合の前記複数の仮想マシンの割当の変更後の複数の配置候補を取得し、前記複数の配置候補それぞれついて割当の変更に伴う情報処理装置の負荷を示す情報および通信データを収集する際の情報処理装置の負荷を示す情報の少なくとも何れかを予測し、予測結果に基づいて前記複数の仮想マシンの割当変更後の配置を決定する、請求項1記載のデータ収集方法。
  3. 前記割当の変更に伴う情報処理装置の負荷を示す情報は、前記複数の仮想マシンの現在の配置を配置候補で示される配置とするために割当の変更対象となる仮想マシンの数を含む、請求項2記載のデータ収集方法。
  4. 前記通信データを収集する際の情報処理装置の負荷を示す情報は、配置候補で示される配置へ割当を変更した場合に収集される通信データの量を含む、請求項2または3記載のデータ収集方法。
  5. 前記通信データを収集する際の情報処理装置の負荷を示す情報は、配置候補で示される配置へ変更した場合に、通信データの収集に用いる中継手段に設けられており通信データの収集対象となるポートの数を含む、請求項2乃至4の何れか一項に記載のデータ収集方法。
  6. 前記複数の仮想マシンの割当を変更するとき、前記複数の情報処理装置以外のクライアント装置と通信する仮想マシンが、選択した前記情報処理装置で実行されるように前記複数の仮想マシンの割当を変更する、請求項1乃至5の何れか一項に記載のデータ収集方法。
  7. 前記複数の仮想マシンの割当を変更するとき、前記複数の情報処理装置で仮想マシンに割当可能なリソース量を示す情報と前記複数の仮想マシンそれぞれの動作に所要するリソース量を示す情報とに基づいて、前記1つの情報処理装置と割当を変更する仮想マシンとを選択する、請求項1乃至6の何れか一項に記載のデータ収集方法。
  8. 仮想マシンおよび前記仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えた情報処理システムであって、
    複数の仮想マシンが送受信する通信データに基づいて、前記複数の仮想マシンのうち互いに通信する仮想マシンの1またはそれ以上のペアを取得し、前記複数の情報処理装置のうちの1つの情報処理装置を選択して、前記1またはそれ以上のペアのうち、選択した前記情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、前記情報処理装置で実行されるように前記複数の仮想マシンの割当の変更内容を決定する割当決定手段と、
    決定された変更内容に基づいて前記複数の仮想マシンの割当を変更し、前記情報処理装置で動作する中継手段が中継する通信データの収集を行うように前記情報処理装置を制御する制御手段と、
    を有する情報処理システム。
  9. 仮想マシンおよび前記仮想マシンの通信データを中継する中継手段が動作可能な複数の情報処理装置を備えたシステムで通信データの収集に用いられるプログラムであって、
    コンピュータに、
    複数の仮想マシンが送受信する通信データに基づいて、前記複数の仮想マシンのうち互いに通信する仮想マシンの1またはそれ以上のペアを取得し、
    前記複数の情報処理装置のうちの1つの情報処理装置を選択して、前記1またはそれ以上のペアのうち、選択した前記情報処理装置以外の全ての他の情報処理装置で動作する仮想マシンのペアの少なくとも一方の仮想マシンが、前記情報処理装置で実行されるように前記複数の仮想マシンの割当を変更し、
    前記情報処理装置で動作する中継手段が中継する通信データの収集を行うように前記情報処理装置を制御する、
    処理を実行させるプログラム。
JP2012039583A 2012-02-27 2012-02-27 データ収集方法、情報処理システムおよびプログラム Expired - Fee Related JP5834999B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012039583A JP5834999B2 (ja) 2012-02-27 2012-02-27 データ収集方法、情報処理システムおよびプログラム
US13/716,619 US20130227566A1 (en) 2012-02-27 2012-12-17 Data collection method and information processing system
EP12198049.4A EP2631796A1 (en) 2012-02-27 2012-12-19 Data collection method and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012039583A JP5834999B2 (ja) 2012-02-27 2012-02-27 データ収集方法、情報処理システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2013175075A JP2013175075A (ja) 2013-09-05
JP5834999B2 true JP5834999B2 (ja) 2015-12-24

Family

ID=47603030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012039583A Expired - Fee Related JP5834999B2 (ja) 2012-02-27 2012-02-27 データ収集方法、情報処理システムおよびプログラム

Country Status (3)

Country Link
US (1) US20130227566A1 (ja)
EP (1) EP2631796A1 (ja)
JP (1) JP5834999B2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104904187B (zh) * 2013-01-09 2018-03-23 瑞典爱立信有限公司 处理网络中的协议地址的方法和处理设备
JP5483513B1 (ja) * 2013-02-19 2014-05-07 ロート製薬株式会社 網膜疾患の予防、改善、又は治療用粘膜適用剤
US9575782B2 (en) 2013-10-13 2017-02-21 Nicira, Inc. ARP for logical router
US9519513B2 (en) 2013-12-03 2016-12-13 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
US9246840B2 (en) * 2013-12-13 2016-01-26 International Business Machines Corporation Dynamically move heterogeneous cloud resources based on workload analysis
US9495238B2 (en) 2013-12-13 2016-11-15 International Business Machines Corporation Fractional reserve high availability using cloud command interception
KR20150085309A (ko) * 2014-01-15 2015-07-23 한국전자통신연구원 서버 가상 머신 제공 방법 및 시스템과 이를 지원하는 서버 장치
US9678731B2 (en) 2014-02-26 2017-06-13 Vmware, Inc. Methods and apparatus to generate a customized application blueprint
JP2015171128A (ja) * 2014-03-11 2015-09-28 富士通株式会社 パケットの取得方法、パケット取得装置、及び、パケット取得プログラム
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
JP6248763B2 (ja) 2014-03-31 2017-12-20 富士通株式会社 キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム
EP3140734B1 (en) 2014-05-09 2020-04-08 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9658897B2 (en) * 2014-06-23 2017-05-23 International Business Machines Corporation Flexible deployment and migration of virtual machines
US20150378763A1 (en) 2014-06-30 2015-12-31 Vmware, Inc. Methods and apparatus to manage monitoring agents
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10176004B2 (en) * 2014-11-18 2019-01-08 International Business Machines Corporation Workload-aware load balancing to minimize scheduled downtime during maintenance of host or hypervisor of a virtualized computing system
JP6356599B2 (ja) * 2014-12-26 2018-07-11 株式会社日立製作所 監視支援システム、監視支援方法、および監視支援プログラム
US9961105B2 (en) * 2014-12-31 2018-05-01 Symantec Corporation Systems and methods for monitoring virtual networks
JP6338186B2 (ja) * 2015-02-17 2018-06-06 日本電信電話株式会社 仮想化ネットワークシステム
US10623481B2 (en) * 2015-04-27 2020-04-14 Microsoft Technology Licensing, Llc Balancing resources in distributed computing environments
US10225184B2 (en) 2015-06-30 2019-03-05 Nicira, Inc. Redirecting traffic in a virtual distributed router environment
JP2017108231A (ja) * 2015-12-08 2017-06-15 富士通株式会社 通信制御プログラム、通信制御方法及び情報処理装置
US10291648B2 (en) * 2015-12-22 2019-05-14 At&T Intellectual Property I, L.P. System for distributing virtual entity behavior profiling in cloud deployments
US10831465B2 (en) 2016-02-12 2020-11-10 Nutanix, Inc. Virtualized file server distribution across clusters
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
JP6809165B2 (ja) 2016-11-25 2021-01-06 富士通株式会社 情報処理装置、分析プログラム及び分析方法
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US10728090B2 (en) * 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
KR102024530B1 (ko) * 2017-02-01 2019-09-24 한국전자통신연구원 네트워크 데이터 통합 수집 장치 및 방법
US10715433B2 (en) 2017-03-31 2020-07-14 Mitsubishi Electric Corporation Information processing apparatus and information processing method
US10616241B2 (en) * 2017-06-05 2020-04-07 Honeywell International Inc. Systems and methods for performing external data validation for aircraft onboard systems
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
JP6992611B2 (ja) * 2018-03-09 2022-01-13 株式会社デンソー 中継装置
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11088906B2 (en) * 2018-05-10 2021-08-10 International Business Machines Corporation Dependency determination in network environment
US11579678B2 (en) * 2018-07-02 2023-02-14 Telefonaktiebolaget Lm Ericsson (Publ) Software switch and method therein
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11196668B2 (en) * 2020-04-21 2021-12-07 Entry Point, Llc End user premises device controller
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11263040B2 (en) * 2020-05-26 2022-03-01 Vmware, Inc. Measuring host utilization in a datacenter
US12131192B2 (en) 2021-03-18 2024-10-29 Nutanix, Inc. Scope-based distributed lock infrastructure for virtualized file server
US12117972B2 (en) 2021-08-19 2024-10-15 Nutanix, Inc. File server managers and systems for managing virtualized file servers
US20230066137A1 (en) 2021-08-19 2023-03-02 Nutanix, Inc. User interfaces for disaster recovery of distributed file servers
WO2023238444A1 (ja) * 2022-06-10 2023-12-14 パナソニックIpマネジメント株式会社 監視装置及び監視方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990667B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
JP4610240B2 (ja) 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
US8145760B2 (en) * 2006-07-24 2012-03-27 Northwestern University Methods and systems for automatic inference and adaptation of virtualized computing environments
JP4827790B2 (ja) 2007-04-18 2011-11-30 株式会社日立製作所 通信負荷取得装置および通信負荷取得方法
EP2193484A4 (en) * 2007-08-31 2011-12-21 Cirba Inc METHOD AND SYSTEM FOR EVALUATING VIRTUALIZED ENVIRONMENTS
JP4636625B2 (ja) 2008-01-25 2011-02-23 株式会社日立情報システムズ 仮想ネットワークシステムのnic接続制御方法と仮想ネットワークのnic接続制御システムおよびプログラム
JP2010140134A (ja) * 2008-12-10 2010-06-24 Hitachi Ltd 仮想マシン管理方法、プログラムおよび管理サーバ
US20120005505A1 (en) * 2009-03-13 2012-01-05 Tolia Niraj Determining Status Assignments That Optimize Entity Utilization And Resource Power Consumption
JP2011180889A (ja) * 2010-03-02 2011-09-15 Nec Corp ネットワークリソース管理システム、装置、方法及びプログラム
JP5560936B2 (ja) * 2010-06-16 2014-07-30 富士通株式会社 構成情報取得方法、仮想プローブおよび構成情報取得制御装置
US8892779B2 (en) * 2012-05-10 2014-11-18 International Business Machines Corporation Virtual machine allocation at physical resources

Also Published As

Publication number Publication date
JP2013175075A (ja) 2013-09-05
US20130227566A1 (en) 2013-08-29
EP2631796A1 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
JP5834999B2 (ja) データ収集方法、情報処理システムおよびプログラム
US8595364B2 (en) System and method for automatic storage load balancing in virtual server environments
US9137148B2 (en) Information processing system and information processing apparatus
US9753669B2 (en) Real time cloud bursting
JP5478107B2 (ja) 仮想ストレージ装置を管理する管理サーバ装置及び仮想ストレージ装置の管理方法
US20170366606A1 (en) Real Time Cloud Workload Streaming
JP5489601B2 (ja) 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム
JP5458308B2 (ja) 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
JP4434235B2 (ja) 計算機システムまたは計算機システムの性能管理方法
US9547518B2 (en) Capture point determination method and capture point determination system
US8656012B2 (en) Management computer, storage system management method, and storage system
JP2005216151A (ja) 資源運用管理システム及び資源運用管理方法
WO2014178104A1 (ja) 計算機システム及び非同期リモートレプリケーションの分析を支援する方法
JP2015076643A (ja) 制御プログラム、制御装置および制御方法
CN109144972A (zh) 一种数据迁移的方法以及数据节点
JP2010066931A (ja) 負荷分散機能を有した情報処理装置
WO2016082078A1 (zh) 路径管理的系统、装置和方法
JP6448779B2 (ja) サーバストレージシステムを含んだ計算機システム
JP4451118B2 (ja) 情報処理システム、管理装置、論理デバイス選択方法及びプログラム
JP6627808B2 (ja) 仮想マシン移動制御方法と通信システムとコントローラ及びプログラム
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
US20130212209A1 (en) Information processing apparatus, switch, storage system, and storage system control method
JP2011070464A (ja) 計算機システム及び計算機システムの性能管理方法
JP2019036089A (ja) 情報処理装置、ストレージシステムおよびプログラム
JP2022087808A (ja) ストレージ・エリア・ネットワーク輻輳のエンドポイント通知を行う方法、システム、およびコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150806

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: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151019

R150 Certificate of patent or registration of utility model

Ref document number: 5834999

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees