仮想マシンの監視管理装置、監視管理方法及びコンピュータプログラム
【課題】複数の仮想化ソフトウェアにより仮想化された仮想マシンの一括監視管理を可能とする。
【解決手段】仮想マシン24を特定して操作が指示されると、予め記憶しておいた情報に基づいて、仮想マシン24に対応する仮想化ソフトウェア23とホストマシン25とを特定する。特定した仮想化ソフトウェア23用のプラグインから、特定されたホストマシン25に仮想マシン24と操作内容を通知する。ホストマシン25は、通知された仮想マシン24と操作内容を仮想化ソフトウェア23に通知する。仮想化ソフトウェア23は、通知された仮想マシン24に操作内容を通知する。仮想マシン24は、通知された操作を実行し、仮想化ソフトウェア23、ホストマシン25、プラグインを介して監視管理装置に伝達する。
【解決手段】仮想マシン24を特定して操作が指示されると、予め記憶しておいた情報に基づいて、仮想マシン24に対応する仮想化ソフトウェア23とホストマシン25とを特定する。特定した仮想化ソフトウェア23用のプラグインから、特定されたホストマシン25に仮想マシン24と操作内容を通知する。ホストマシン25は、通知された仮想マシン24と操作内容を仮想化ソフトウェア23に通知する。仮想化ソフトウェア23は、通知された仮想マシン24に操作内容を通知する。仮想マシン24は、通知された操作を実行し、仮想化ソフトウェア23、ホストマシン25、プラグインを介して監視管理装置に伝達する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想マシンを監視管理する装置と方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
コンピュータのリソースを仮想化ソフトウェア(仮想化ソリューション)により仮想化し、仮想化したリソース上でOS(オペレーティングシステム)を実行させる仮想化技術が知られている。リソースを仮想化することにより、複数のOSを並行して実行させたり、異なったアーキテクチャのOSを同時に動作させることが可能となる。仮想化されたコンピュータを仮想マシン又は仮想機械と呼ぶ。
【0003】
仮想化されていないコンピュータ(即ち、物理マシン)は、OpenView(商標)などの監視管理ソフトウェアを用いて監視管理を行うことが可能である。
【0004】
仮想マシンについても、仮想マシン用の監視管理ソフトウェアが存在する。例えば、VMware(商標)で仮想化された仮想マシンを監視管理するためにVMwareInfrastructureClient(商標)が提供されており、Xen(商標)で仮想化された仮想マシンを監視管理するためにVirtualMachineManager(商標)が提供されている。
【0005】
ユーザが、非仮想マシン用の監視管理ソフトウェアで非仮想マシンを操作する場合は、ユーザは「マシン」と「操作」を指示する必要がある。一方、仮想マシン用の監視管理ソフトウェアで仮想マシンを操作する場合は、「マシン」、「操作」、「ホストマシン」、「仮想化ソフトウェア」を指定する必要がある。ここで、操作とは、例えば、性能情報の取得、マシンの状態の変更(起動・停止、リソース割り当て変更等)、ジョブの制御、パッチ管理などを意味する。
【0006】
このように、非仮想マシンを操作するために必要な情報と仮想マシンを操作するために必要な情報との間には差異があるため、非仮想マシンと仮想マシンとが混在する仮想化混在環境においては、シームレスな監視管理は困難である。
【0007】
また、従来の監視管理ソフトウェアは、特定の仮想化ソフトウェア専用であり、複数の仮想化ソフトウェアには対応できない。このため、複数の仮想化ソフトウェアにより仮想化された複数種の仮想マシンを含む仮想環境を監視管理することはできない。
【0008】
また、従来の監視管理ソフトウェアは、動作の度に、依存関係、即ち、監視管理対象の仮想マシンと、該仮想マシンを実現している仮想化ソフトウェアとホストマシンの対応関係をチェックする必要があり、オーバーヘッドが大きく、高速動作が困難である。
【0009】
また、従来の監視管理ソフトウェアは、監視管理対象の仮想マシンに対しエージェントをインストールし、監視管理対象の仮想マシンと直接通信し、エージェントからマシン情報を取得することが多い。しかし、仮想マシンでは、CPU使用率やメモリ等の監視の精度が低いため情報が不正確である。
一方、特許文献1には、ホスト上の仮想マネージャが各仮想マシンからの情報を取得可能な技術が開示されている。しかし、監視管理ソフトウェアが仮想管理マネージャから情報を収集したとしても、「マシン」、「操作」、「ホストマシン」、「仮想化ソフトウェア」といった情報が必要であることに変わりはない。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特表2007-513405号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、上述した問題に鑑みてなされたものであり、複数(種)の仮想化ソフトウェアにより仮想化された仮想マシンの監視管理を可能とする監視管理装置、監視管理方法及びコンピュータプログラムを提供することを目的とする。
また、本発明は、仮想マシンと非仮想マシンとを共に監視管理可能な監視管理装置、監視管理方法及びコンピュータプログラムを提供することを他の目的とする。
また、本発明は、ホストマシン、仮想化ソフトウェア等を意識せずに透過的に操作可能にする監視管理装置、監視管理方法及びコンピュータプログラムを提供することを他の目的とする。
また、本発明は、信頼性の高い監視管理を可能とする監視管理装置、監視管理方法及びコンピュータプログラムを提供することを他の目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明の第1の観点に係る監視管理装置は、
操作対象のマシンを特定するマシン特定情報と操作内容を特定する操作特定情報とを入力する入力手段と、
監視管理対象のホストマシンと仮想マシンと仮想化ソフトウェアとを対応付ける対応付手段と、
仮想化ソフトウェア別に配置され、対応する仮想化ソフトウェアとの間で通信を行う仮想化モジュールと、
前記入力手段により入力されたマシン特定情報と前記対応付手段とに基づいて、入力されたマシン特定情報に対応するホストマシンと仮想化ソフトウェアとを特定する特定手段と、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールに、操作対象のマシンを特定するマシン特定情報と、操作内容を特定する操作特定情報と、ホストマシンを特定するホストマシン情報とを通知するモジュール通知手段と、
を備え、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールは、通知されたホストマシン情報で特定されるホストマシンに、操作対象のマシンと操作内容を通知する、
ことを特徴とする。
【0013】
例えば、前記仮想化モジュールと該仮想化モジュールに接続されたホストマシンとを介して監視管理対象の仮想コンピュータの構成情報を収集する収集手段を備え、前記対応付手段は、前記収集手段が収集した情報を保持する。
【0014】
例えば、前記収集手段は、周期的に、監視管理対象のコンピュータの構成情報を収集する。
【0015】
例えば、非仮想マシンとの間で通信を行う非仮想マシン用のモジュールを備え、前記対応付手段は、非仮想マシンの名称と該マシンが非仮想マシンであることを示す情報とを保持し、前記モジュール通知手段は、非仮想マシンについては、非仮想マシン用のモジュールに通知し、該非仮想マシン用のモジュールは、通知されたマシン名を有する非仮想マシンに、入力された操作を指示する。
【0016】
例えば、仮想化モジュールや非仮想マシン用モジュールは、プラグイン形式で構成されている。
【0017】
また、本発明の第2の観点に係る監視管理方法は、
コンピュータにより監視管理対象のコンピュータを監視管理する方法であって、
仮想マシンを特定して操作が指示された時に、コンピュータにより、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定して、
コンピュータにより、特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する、
ことを特徴とする。
【0018】
また、本発明の第3の観点に係るコンピュータプログラムは、
コンピュータに、
仮想マシンを特定して操作が指示された時に、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定する処理と、
特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する処理と、
を実行させることを特徴とする。
【発明の効果】
【0019】
例えば、第1の観点に係る発明によれば、マシンを特定すると、そのマシンのホストマシンと該マシンの仮想化ソフトウェアの種類が自動的に抽出され、これらの情報を用いて処理が行われる。このため、マシンがどの仮想化ソフトウェアにより仮想化されたものであるかを判別して処理を指定する必要がない。
【図面の簡単な説明】
【0020】
【図1】この発明の一実施の形態に係るコンピュータシステムの構成を示す構成図である。
【図2】(a)仮想マシンが動作する仮想マシンサーバの構成を示す図、(b)仮想化されていないコンピュータである非仮想マシンの構成を示す図である。
【図3】監視管理装置の物理的な構成を示すブロック図である。
【図4】監視管理装置と監視管理クライアントの機能ブロック図である。
【図5】仮想マシンと非仮想マシンとが混在した仮想化混在環境の例を示す図である。
【図6】(a)図5に示す仮想化混在環境を監視管理する場合に、監視管理システムに格納されるマシン情報テーブルT1の例を示す図である。(b)図5に示す仮想化混在環境を監視管理する場合に、監視管理システムに格納される対応付テーブルT2の例を示す図である。
【図7】(a)、(b)は、任意のマシンに操作を指示する手順を示すフローチャートである。
【図8】(a)、(b)は、任意のマシンに操作を指示する手順を示すフローチャートである。
【図9】(a)〜(c)は、操作を指示したマシンからの応答を伝達する手順を示すフローチャートである。
【図10】(a)、(b)は、操作を指示したマシンからの応答を伝達する手順を示すフローチャートである。
【図11】マシン情報テーブルT1を作成又は更新する処理を示すフローチャートである。
【図12】監視管理対象のシステムの構成の変化の具体例を示した図である。
【図13】図12に示す構成のマシン情報テーブルT1の例を示す図である。
【図14】仮想化ソフトウェアの種類を増加させる場合の処理手順を説明するためのブロック図である。
【発明を実施するための形態】
【0021】
以下、本発明の一実施の形態に係る仮想化混在環境用監視管理システムについて説明する。
【0022】
本実施形態に係る監視管理システムは、物理的には、図1に示すように、監視管理対象の複数台のコンピュータ11(111〜11n)と、監視管理装置13と、監視管理クライアント15とから構成される。
【0023】
複数台のコンピュータ111〜11nは、仮想マシンが動作するコンピュータ(以下、区別のため、仮想マシンサーバと呼ぶ)と、仮想化されていないコンピュータ(以下区別のため非仮想マシンと呼ぶ)とを含む。
コンピュータ111〜11nの一部は、ネットワークNWに接続され、相互に通信が可能となっている。
【0024】
コンピュータ11のうち、仮想マシンサーバは、図2(a)に示すように、ハードウェア22、仮想化ソフトウェア23、一又は複数の仮想マシン24、ホストマシン25から構成される。
【0025】
ハードウェア22は、仮想化対象のコンピュータ11のCPU(Central Processing Unit)、メモリ等のハードウェアリソースである。
【0026】
仮想化ソフトウェア(仮想化ソリューション)23は、仮想マシンサーバ上にインストールされ、ハードウェア22上で動作し、仮想マシン24の動作、ホストマシン25の動作を可能とするプログラムである。また、仮想化ソフトウェア23は、ホストマシン25を介して監視管理装置13と交信し、また、各仮想マシン24と交信する。
例えば、ハイパーバイザ型の仮想化ソフトウェア23として、VMware Infrastructure(商標)、Xen(商標)、及び、Hyper-V(商標)などが存在する。また、HostOS型の仮想化ソフトウェア23として、VMware Workstation(商標)、及び、VirtualPC(商標)などが存在する。
【0027】
仮想マシン24は、仮想化ソフトウェア23上で動作する。仮想マシン24のOSは互いに異なっても同一でもよい。仮想マシン24上で任意のアプリーションソフトウェアが動作する。
【0028】
ホストマシン25は、例えば、仮想マシンサーバにインストールされたOSであり、仮想化ソフトウェア23を通じて仮想マシン24の管理を行うとともに監視管理装置13と各種処理のやりとりを行う。
【0029】
コンピュータ11のうち、仮想化されていないコンピュータである非仮想マシンは、図2(b)に示すように、ハードウェア27とOS(オペレーティングシステム)28とから構成される。
【0030】
図1に示す監視管理装置13は、監視管理対象のコンピュータ11を監視・管理する装置である。
監視管理装置13は、物理的には、図3に示すように、CPU31、記憶部32、通信部33、入出力部34を備える。
【0031】
CPU31は、記憶部32に格納された動作プログラムを実行し、図4に示すように、仮想化モジュール41(41X,41Y,41P)と、仮想化モジュールAPI42と、監視管理マネージャ43とを実現する。
【0032】
仮想化モジュール41は、仮想化ソフトウェア23(の種類)毎に用意され、監視管理クライアント15からの指示等に従って、対応する仮想化ソフトウェア23との間でホストマシン25を介して通信を行う。図4の例では、仮想化ソフトウェア23として、仮想化ソフトウェアXと仮想化ソフトウェアYの2つ(2種類)が用意されている。このため、仮想化モジュール41も、仮想化ソフトウェアXによる仮想化環境を監視管理する仮想化ソフトウェアX用モジュール41Xと、仮想化ソフトウェアYによる仮想化環境を監視管理する仮想化ソフトウェアY用モジュール41Yの2種類が用意されている。
【0033】
さらに、非仮想マシンを制御するための非仮想マシン用モジュール41Pが用意されている。
【0034】
これらのモジュール41X、41Y、41Pは、ソフトウェア本体(仮想化モジュールAPI42や監視管理マネージャ43を含む)の大きな変更なしに、追加や削除が可能なプラグインの形態で用意されており、図面では、プラグインP,プラグインY,プラグインPと表している。
【0035】
一方、仮想化モジュールAPI(Application Program Interface)42は、全てのプラグイン41に共通に配置されており、監視管理クライアント15からの指示に応答して、仮想化環境を特定し、対応するプラグイン41に指示を伝達する。この処理を行うため、仮想化モジュールAPI42は、監視管理対象の仮想マシン24の名称と、その仮想マシン24が動作しているホストマシン25の名称と、仮想マシン24を実現している仮想化ソフトウェア(X,Y)23とを対応付けたマシン情報テーブルT1を格納している。また、マシン情報テーブルT1は、監視管理対象の非仮想マシンを特定する情報を含む。
【0036】
また、仮想化モジュールAPI42には、プラグイン41の追加・削除が容易となるように、例えば、仮想化ソフトウェア23とプラグイン41の対応付テーブルT2を用意する。新たなプラグイン41を追加する場合には、例えば、新プラグイン41と対応する新仮想化ソフトウェア23の対応を対応付テーブルT2に追記する。
これにより、新仮想化ソフトウェア23により実現される仮想マシン24を操作する際に、仮想化モジュールAPI42が対応付テーブルT2を参照し、新プラグイン41を利用することとなる。
【0037】
一例として、監視管理対象の仮想化混在システムが、図4に示す構成のときには、対応付テーブルT2は、図6(b)に示すものとなる。
また、監視管理対象の仮想化混在システムが、図5に例示する構成のときには、マシン情報テーブルT1は、図6(a)に示すようなものとなる。即ち、図5の例では、仮想化ソフトウェア23Xの環境には、2台のホストマシンMPとMQがある。そして、ホストマシンMPには、3台の仮想マシンMB〜MDが対応しており、ホストマシンMQには、2台の仮想マシンMI〜MJが対応している。また、仮想化ソフトウェア23Yの環境には、1台のホストマシンMOが配置されており、3台の仮想マシンME,MF,MHが対応している。さらに、非仮想マシンMAとMGが監視管理対象となっている。図6(a)に示すマシン情報テーブルT1には、これらの関係が全て登録されている。
【0038】
監視管理マネージャ43は、監視管理装置13の全体の動作を制御する。
【0039】
図1に示す監視管理クライアント15は、一般のコンピュータから構成され、ユーザの操作に従って監視管理装置13に種々の指示を入力し、また、監視管理装置13から提供された情報を出力する。このため、監視管理クライアント15には、専用のクライアントモジュールがインストールされている。
【0040】
次に、上記構成のコンピュータシステムの動作を説明する。
まず、前提として、各仮想マシン24及び非仮想マシンは、それぞれ、プログラムに従って動作し、必要に応じて、ネットワークNWを介して情報の交換も行う。この動作自体は、従来と同様である。
【0041】
一方、監視管理装置13は、こうして動作している各マシンを監視及び管理する。
ここで、ユーザがいずれかのマシンの操作を希望したとする。なお、操作とは、例えば、以下のようなものをいう。
(1)性能情報取得。
(2)マシンの状態変更。
a)起動、停止。
b)メモリやCPU等のリソース割り当て変更。
c)マシン間のOSイメージの移動(VMwareではVMotion, XenではLiveMigrationと呼ばれる)。
d)OSイメージの新規作成、スナップショットの作成、バックアップ。
e)リソースプールの管理。
(3)ジョブの制御。
(4)パッチ管理。
【0042】
この場合、ユーザは、監視管理クライアント15上で、操作対象のマシンの名称(識別情報等でもよい)と実行したい操作を選択(指定)する。クライアントモジュールは、入力内容を検出し、操作対象のマシンを特定するマシン特定情報と操作内容を特定する操作特定情報とを監視管理装置13に通知する。なお、マシン特定情報と操作特定情報との形式は任意である。
【0043】
通知に応答し、監視管理装置13の仮想化モジュールAPI42は、図7(a)の処理を開始し、まず、通知されたマシン名を引数にマシン情報テーブルT1を検索し、対応するホストマシン25と仮想化ソフトウェア23の種類を特定する(ステップS11)。なお、マシンが非仮想マシンの場合には、「非仮想マシン」が特定される。次に、仮想化モジュールAPI42は、対応付テーブルT2を参照して、特定した仮想化ソフトウェア23(又は非仮想マシン)に対応するプラグイン41を特定する。
次に、仮想化モジュールAPI42は、特定したプラグイン41に、操作対象のマシンと、特定したホストマシン25(又は非仮想マシン)と、操作の内容と、要求元とを通知する(ステップS12)。即ち、マシン特定情報と操作特定情報とホストマシン特定情報と、要求元特定情報とを通知する。なお、マシン特定情報と操作特定情報とは、監視管理クライアント15が通知する情報と実質的に同一であればよく、完全に同一である必要はない。
【0044】
操作対象のマシンが仮想マシンの場合、仮想化モジュールAPI42からプラグイン41X又は41Yに上述の通知が行われる。通知を受けたプラグイン41X又は41Yは、図7(b)の処理を開始し、まず、通知されたホストマシン25(又は非仮想マシン)に、通知された操作対象のマシン名と操作内容と要求元とを通知する(ステップS13)。
【0045】
通知を受けたホストマシン25は、図8(a)の処理を開始し、仮想化ソフトウェア23に、通知された操作対象のマシンと操作内容と要求元とを通知する(ステップS14)。
【0046】
通知を受けた仮想化ソフトウェア23は、図8(b)の処理を開始し、通知された操作対象のマシン(仮想マシン24)に操作内容と要求元とを通知する(ステップS15)。
【0047】
通知を受けたマシン(仮想マシン24)は、通知された操作を行う。
操作が完了すると、マシンは、図9(a)の処理を開始し、操作の結果を示す情報と最終送信先(要求元)とを仮想化ソフトウェア23に通知する(ステップS21)。
【0048】
通知に応答し、仮想化ソフトウェア23は、図9(b)の処理を開始し、操作結果情報と最終送信先(要求元)とをホストマシン25に通知する(ステップS22)。
【0049】
通知に応答し、ホストマシン25は、図9(c)の処理を開始し、操作結果情報と最終送信先(要求元)とを対応するプラグイン41に通知する(ステップS23)。
【0050】
通知に応答し、プラグイン41は、図10(a)の処理を開始し、操作結果情報と最終送信先(要求元)とを仮想化モジュールAPI42に通知する(ステップS24)。
【0051】
通知に応答し、仮想化モジュールAPI42は、図10(b)の処理を開始し、操作結果情報を最終送信先(要求元)に通知する(ステップS25)。
【0052】
一方、操作対象のマシンが非仮想マシンの場合には、仮想化モジュールAPI42は、プラグイン41Pを特定し、プラグイン41Pに、特定した非仮想マシンと、操作の内容と、要求元とを通知する。プラグイン41Pは、仮想化モジュールAPI42から通知された非仮想マシンに、操作内容と要求元とを通知する。通知を受けた非仮想マシンは、通知された操作を行う。操作が完了すると、非仮想マシンは、操作の結果を示す情報と最終送信先(要求元)とをプラグイン41Pに通知する。プラグイン41Pは、図10(a)の処理を実行し、操作結果情報と最終送信先(要求元)とを仮想化モジュールAPI42に通知する(ステップS24)。仮想化モジュールAPI42は、図10(b)の処理を開始し、操作結果情報を最終送信先(要求元)に通知する(ステップS25)。
【0053】
こうして、監視管理クライアント15は、任意のマシンを、そのマシンが位置するホストマシン25やそのマシンの仮想化ソフトウェア23を意識することなく、操作することができる。
【0054】
例えば、ユーザの指定した操作対象がマシンMBであったと仮定する。図5の仮想化環境の下では、マシンMBは、ホストマシンMPに位置する仮想マシン24であり、仮想化ソフトウェア23は「X」である。従って、操作の指示は、仮想化モジュールAPI42→プラグイン41X→ホストマシンMP→仮想化ソフトウェアX→仮想マシンMBと伝達される。さらに、仮想マシンMBからの応答は、仮想マシンMB→仮想化ソフトウェアX→ホストマシンMP→プラグイン41X→仮想化モジュールAPI42→監視管理クライアント15、と伝達される。
【0055】
また、例えば、ユーザの指定した操作対象がマシンMGであったと仮定する。図5の仮想化環境の下では、マシンMGは、非仮想マシンである。従って、操作の指示は、仮想化モジュールAPI42→プラグイン41P→非仮想マシンMGと伝達される。さらに、非仮想マシンMGからの応答は、非仮想マシンMG→プラグイン41P→仮想化モジュールAPI42→監視管理クライアント15、と伝達される。
【0056】
このようにして、本実施形態では、マシン情報テーブルT1を仮想化モジュールAPI42に配置し、操作対象マシンをキーに、マシン情報テーブルT1を検索し、検索で得た情報を入力情報に追加し、操作対象マシンの特定に利用する。これにより、ユーザは、詳細な情報を意識することなく、仮想マシン24と非仮想マシンとを同様に監視管理することが可能となる。
【0057】
マシン情報テーブルT1の作成手法自体は任意であるが、仮想化モジュールAPI42が、例えば図11のフローチャートに示す手順で作成することが望ましい。
【0058】
仮想化モジュールAPI42には、予め、各コンピュータ11がどの仮想化ソフトウェア23(XとYのどちら)で仮想化されているかという情報と、そのコンピュータ11上のホストマシン25のアドレス(例えば、IPアドレス)が予め登録されている。
【0059】
仮想化モジュールAPI42は、まず、プラグイン41を1つ特定する(ステップS31)。例えば、プラグイン41Xを特定する。
【0060】
次に、仮想化モジュールAPI42は、特定したプラグイン41に対応するホストマシン25(又は非仮想マシン)を1つ特定する(ステップS32)。
【0061】
次に、仮想化モジュールAPI42は、特定したプラグイン41から特定したホストマシン25(又は非仮想マシン)宛に、構成情報(ステータス)を問い合わせる情報を送信する(ステップS33)。
【0062】
ホストマシン25は、問い合わせを受信すると、この問い合わせを仮想化ソフトウェア23に伝達する。仮想化ソフトウェア23は、自己の上で稼働している仮想マシン24に順次問い合わせ、仮想マシン名(又は識別情報)を取得する。仮想化ソフトウェア23は、取得した仮想マシン名をホストマシン25に通知する。ホストマシン25は、ホストマシン名と取得した仮想マシン名とを対応付けて、プラグイン41に通知する。非仮想マシンの場合には、同様に、そのマシン名を返信する。
【0063】
仮想モジュールAPI42は、プラグイン41を介して、ホストマシン名と仮想マシン名の組(又は非仮想マシンの名称)を受信し、一旦記憶する(ステップS34)。こうして、監視管理対象の構成情報が蓄積される。
【0064】
続いて、特定しているプラグイン41に対応する全てのホストマシン25についての処理が終了したか否かを判別し(ステップS35)、処理が終了していれば(ステップS35;Yes)、全てのプラグイン41についての処理を終了したか否かを判別する(ステップS36)。
【0065】
ステップS35で、終了していない、即ち、未処理(構成情報を受け取っていない)のホストマシン25が存在すると判別した場合には(ステップS35;No)、未処理のホストマシン25を特定し(ステップS37)、ステップS33以下の処理を繰り返す。
【0066】
また、ステップS36で、終了していない、即ち、未処理(構成情報を受け取っていない)のプラグイン41が存在すると判別した場合には(ステップS36;No)、未処理のプラグイン41を特定し(ステップS38)、ステップS32以下の処理を繰り返す。
【0067】
ステップS37で全てのプラグイン41について処理が終了したと判別すると(ステップS36;Yes)、仮想モジュールAPI42は、ステップS34で蓄積した構成情報を用いて、マシン情報テーブルT1を作成する(ステップS39)。
【0068】
図11のマシン情報テーブル作成処理を、例えば、タイマ割り込み等に応じて周期的に実行することにより、監視管理対象のシステムの構成の変化を反映した監視管理が可能となる。
【0069】
一例として、図5に示す構成において、ホストマシンMOに位置していた仮想マシンMHが、図12に示すように、ホストマシンMQに移動したと仮定する。
【0070】
この変更が発生した後、図11の処理が開始すると、仮想化モジュールAPI42は、例えば、プラグイン41Xを指定し(ステップS31)、続いて、ホストマシンMPを指定し(ステップS32)、問い合わせを行い(ステップS33)、その構成情報を取得して記憶する(ステップS34)。続いて、仮想化モジュールAPI42は、未処理のホストマシンMQを指定し(ステップS37)、問い合わせを行い(ステップS33)、その構成情報を取得して記憶する(ステップS34)。この段階では、ホストマシンMPと仮想マシンMB〜MDが同一の仮想化ソフトウェアX上に配置されているとの構成情報と、ホストマシンMQと仮想マシンMH、MI、MJとが同一の仮想化ソフトウェアX上に配置されているとの構成情報が記憶される。
【0071】
続いて、未処理のプラグイン41Yを指定し(ステップS38)、ホストマシンMOを指定し(ステップS32)、問い合わせを行い(ステップS33)、ホストマシンMOと仮想マシンMEとMFとが仮想化ソフトウェアY上に配置されているとの構成情報を取得しこれを記憶する(ステップS34)。
【0072】
続いて、未処理のプラグイン41Pを指定し(ステップS38)、マシンMAを指定し(ステップS32)、問い合わせを行い(ステップS33)、非仮想マシンMAの情報を取得しこれを記憶する(ステップS34)。この段階では、他に非仮想マシンが存在しないので、ステップS35,S36でYesと判別され、構成情報を収集する処理が終了する。
【0073】
続いて、得られた構成情報に基づいて、例えば、図13に示すように、マシン情報テーブルT1が生成される(ステップS39)。
【0074】
仮想化モジュールAPI42又は監視管理クライアント15は、新たに生成されたマシン情報テーブルT1と先に生成したマシン情報テーブルT1とを比較することにより、例えば、仮想マシンMHがホストマシンMOからMQに移動し、非仮想マシンMGが除去されたことが判別できる。
【0075】
次に、図14に示すように、監視管理対象に、仮想化ソフトウェアZにより、仮想化されたコンピュータ11を追加する場合の処理を説明する。
【0076】
この場合、まず、新たな仮想化ソフトウェアZに対応するプラグイン(仮想化モジュール)41Zを生成し、監視管理装置13に追加する。さらに、仮想化モジュールAPI42の対応付テーブルT2に、仮想化ソフトウェア41Zとプラグイン41Zの組を登録する。また、プラグイン41Zの通信先として、追加する仮想マシンサーバのホストマシン(ここでは、MSとする)のアドレスを指定する。
【0077】
このようにすれば、プラグイン41Zを追加した後、図11の処理を行う際に、ステップS31で、プラグイン41Zが指定され、さらに、ステップS32で、ホストマシンMSが指定され、ホストマシンMSからプラグイン41Zを介して、仮想化ソフトウェアZ上のホストマシンMSと仮想マシンの構成情報が得られ、マシン情報テーブルT1に追加される。以後、追加された仮想化ソフトウェアZ上のホストマシンMSと各仮想マシン24への操作が可能となる。
【0078】
以上説明したように、本実施の形態によれば、監視管理装置、より正確には、監視管理ソフトウェアが、「マシン名、ホストマシン、仮想化ソフトウェア」をテーブル等で保持し、マシンごとにその属性を自動で検出し、テーブルを再設定する。これにより、各仮想マシン24及び/又は非仮想マシンが別の属性に変更された場合であっても、「ホストマシン、仮想化ソフトウェア」を意識することなく、必要な指示や操作を行うことができる。
【0079】
また、環境の差異を吸収する層である仮想化モジュールがプラグイン形式であるため、プラグイン41を追加すれば、任意の仮想化ソフトウェア23に対応可能である。
【0080】
なおこの発明は、上記実施の形態に限定されず、種々の変形及び応用が可能である。例えば、上述した各部材の数、方式などは任意に変更可能である。
例えば、上記実施の形態においては、仮想マシン24自身が、問い合わせに応じて、自己の情報を監視管理装置13に返信したが、例えば、仮想化ソフトウェア23或いは仮想マシン24にエージェントを配置し、エージェントが、要求された情報を取得して返信するように構成してもよい。また、ユーザの指示を、監視管理クライアント15を介して監視管理装置13に入力したが、監視管理クライアント15の入出力部34から直接入力する等してもよい。
【符号の説明】
【0081】
11(111〜11n)…監視管理対象コンピュータ
13…監視管理装置
15…監視管理クライアント
22…ハードウェア
23…仮想化ソフトウェア
24…仮想マシン
25…ホストマシン
31…CPU
32…記憶部
33…通信部
34…入出力部
41(41X,41Y,41P,41Z)…プラグイン(仮想化モジュール)
42…仮想化モジュールAPI
43…監視管理マネージャ
【技術分野】
【0001】
本発明は、仮想マシンを監視管理する装置と方法、及びコンピュータプログラムに関する。
【背景技術】
【0002】
コンピュータのリソースを仮想化ソフトウェア(仮想化ソリューション)により仮想化し、仮想化したリソース上でOS(オペレーティングシステム)を実行させる仮想化技術が知られている。リソースを仮想化することにより、複数のOSを並行して実行させたり、異なったアーキテクチャのOSを同時に動作させることが可能となる。仮想化されたコンピュータを仮想マシン又は仮想機械と呼ぶ。
【0003】
仮想化されていないコンピュータ(即ち、物理マシン)は、OpenView(商標)などの監視管理ソフトウェアを用いて監視管理を行うことが可能である。
【0004】
仮想マシンについても、仮想マシン用の監視管理ソフトウェアが存在する。例えば、VMware(商標)で仮想化された仮想マシンを監視管理するためにVMwareInfrastructureClient(商標)が提供されており、Xen(商標)で仮想化された仮想マシンを監視管理するためにVirtualMachineManager(商標)が提供されている。
【0005】
ユーザが、非仮想マシン用の監視管理ソフトウェアで非仮想マシンを操作する場合は、ユーザは「マシン」と「操作」を指示する必要がある。一方、仮想マシン用の監視管理ソフトウェアで仮想マシンを操作する場合は、「マシン」、「操作」、「ホストマシン」、「仮想化ソフトウェア」を指定する必要がある。ここで、操作とは、例えば、性能情報の取得、マシンの状態の変更(起動・停止、リソース割り当て変更等)、ジョブの制御、パッチ管理などを意味する。
【0006】
このように、非仮想マシンを操作するために必要な情報と仮想マシンを操作するために必要な情報との間には差異があるため、非仮想マシンと仮想マシンとが混在する仮想化混在環境においては、シームレスな監視管理は困難である。
【0007】
また、従来の監視管理ソフトウェアは、特定の仮想化ソフトウェア専用であり、複数の仮想化ソフトウェアには対応できない。このため、複数の仮想化ソフトウェアにより仮想化された複数種の仮想マシンを含む仮想環境を監視管理することはできない。
【0008】
また、従来の監視管理ソフトウェアは、動作の度に、依存関係、即ち、監視管理対象の仮想マシンと、該仮想マシンを実現している仮想化ソフトウェアとホストマシンの対応関係をチェックする必要があり、オーバーヘッドが大きく、高速動作が困難である。
【0009】
また、従来の監視管理ソフトウェアは、監視管理対象の仮想マシンに対しエージェントをインストールし、監視管理対象の仮想マシンと直接通信し、エージェントからマシン情報を取得することが多い。しかし、仮想マシンでは、CPU使用率やメモリ等の監視の精度が低いため情報が不正確である。
一方、特許文献1には、ホスト上の仮想マネージャが各仮想マシンからの情報を取得可能な技術が開示されている。しかし、監視管理ソフトウェアが仮想管理マネージャから情報を収集したとしても、「マシン」、「操作」、「ホストマシン」、「仮想化ソフトウェア」といった情報が必要であることに変わりはない。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特表2007-513405号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、上述した問題に鑑みてなされたものであり、複数(種)の仮想化ソフトウェアにより仮想化された仮想マシンの監視管理を可能とする監視管理装置、監視管理方法及びコンピュータプログラムを提供することを目的とする。
また、本発明は、仮想マシンと非仮想マシンとを共に監視管理可能な監視管理装置、監視管理方法及びコンピュータプログラムを提供することを他の目的とする。
また、本発明は、ホストマシン、仮想化ソフトウェア等を意識せずに透過的に操作可能にする監視管理装置、監視管理方法及びコンピュータプログラムを提供することを他の目的とする。
また、本発明は、信頼性の高い監視管理を可能とする監視管理装置、監視管理方法及びコンピュータプログラムを提供することを他の目的とする。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明の第1の観点に係る監視管理装置は、
操作対象のマシンを特定するマシン特定情報と操作内容を特定する操作特定情報とを入力する入力手段と、
監視管理対象のホストマシンと仮想マシンと仮想化ソフトウェアとを対応付ける対応付手段と、
仮想化ソフトウェア別に配置され、対応する仮想化ソフトウェアとの間で通信を行う仮想化モジュールと、
前記入力手段により入力されたマシン特定情報と前記対応付手段とに基づいて、入力されたマシン特定情報に対応するホストマシンと仮想化ソフトウェアとを特定する特定手段と、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールに、操作対象のマシンを特定するマシン特定情報と、操作内容を特定する操作特定情報と、ホストマシンを特定するホストマシン情報とを通知するモジュール通知手段と、
を備え、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールは、通知されたホストマシン情報で特定されるホストマシンに、操作対象のマシンと操作内容を通知する、
ことを特徴とする。
【0013】
例えば、前記仮想化モジュールと該仮想化モジュールに接続されたホストマシンとを介して監視管理対象の仮想コンピュータの構成情報を収集する収集手段を備え、前記対応付手段は、前記収集手段が収集した情報を保持する。
【0014】
例えば、前記収集手段は、周期的に、監視管理対象のコンピュータの構成情報を収集する。
【0015】
例えば、非仮想マシンとの間で通信を行う非仮想マシン用のモジュールを備え、前記対応付手段は、非仮想マシンの名称と該マシンが非仮想マシンであることを示す情報とを保持し、前記モジュール通知手段は、非仮想マシンについては、非仮想マシン用のモジュールに通知し、該非仮想マシン用のモジュールは、通知されたマシン名を有する非仮想マシンに、入力された操作を指示する。
【0016】
例えば、仮想化モジュールや非仮想マシン用モジュールは、プラグイン形式で構成されている。
【0017】
また、本発明の第2の観点に係る監視管理方法は、
コンピュータにより監視管理対象のコンピュータを監視管理する方法であって、
仮想マシンを特定して操作が指示された時に、コンピュータにより、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定して、
コンピュータにより、特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する、
ことを特徴とする。
【0018】
また、本発明の第3の観点に係るコンピュータプログラムは、
コンピュータに、
仮想マシンを特定して操作が指示された時に、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定する処理と、
特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する処理と、
を実行させることを特徴とする。
【発明の効果】
【0019】
例えば、第1の観点に係る発明によれば、マシンを特定すると、そのマシンのホストマシンと該マシンの仮想化ソフトウェアの種類が自動的に抽出され、これらの情報を用いて処理が行われる。このため、マシンがどの仮想化ソフトウェアにより仮想化されたものであるかを判別して処理を指定する必要がない。
【図面の簡単な説明】
【0020】
【図1】この発明の一実施の形態に係るコンピュータシステムの構成を示す構成図である。
【図2】(a)仮想マシンが動作する仮想マシンサーバの構成を示す図、(b)仮想化されていないコンピュータである非仮想マシンの構成を示す図である。
【図3】監視管理装置の物理的な構成を示すブロック図である。
【図4】監視管理装置と監視管理クライアントの機能ブロック図である。
【図5】仮想マシンと非仮想マシンとが混在した仮想化混在環境の例を示す図である。
【図6】(a)図5に示す仮想化混在環境を監視管理する場合に、監視管理システムに格納されるマシン情報テーブルT1の例を示す図である。(b)図5に示す仮想化混在環境を監視管理する場合に、監視管理システムに格納される対応付テーブルT2の例を示す図である。
【図7】(a)、(b)は、任意のマシンに操作を指示する手順を示すフローチャートである。
【図8】(a)、(b)は、任意のマシンに操作を指示する手順を示すフローチャートである。
【図9】(a)〜(c)は、操作を指示したマシンからの応答を伝達する手順を示すフローチャートである。
【図10】(a)、(b)は、操作を指示したマシンからの応答を伝達する手順を示すフローチャートである。
【図11】マシン情報テーブルT1を作成又は更新する処理を示すフローチャートである。
【図12】監視管理対象のシステムの構成の変化の具体例を示した図である。
【図13】図12に示す構成のマシン情報テーブルT1の例を示す図である。
【図14】仮想化ソフトウェアの種類を増加させる場合の処理手順を説明するためのブロック図である。
【発明を実施するための形態】
【0021】
以下、本発明の一実施の形態に係る仮想化混在環境用監視管理システムについて説明する。
【0022】
本実施形態に係る監視管理システムは、物理的には、図1に示すように、監視管理対象の複数台のコンピュータ11(111〜11n)と、監視管理装置13と、監視管理クライアント15とから構成される。
【0023】
複数台のコンピュータ111〜11nは、仮想マシンが動作するコンピュータ(以下、区別のため、仮想マシンサーバと呼ぶ)と、仮想化されていないコンピュータ(以下区別のため非仮想マシンと呼ぶ)とを含む。
コンピュータ111〜11nの一部は、ネットワークNWに接続され、相互に通信が可能となっている。
【0024】
コンピュータ11のうち、仮想マシンサーバは、図2(a)に示すように、ハードウェア22、仮想化ソフトウェア23、一又は複数の仮想マシン24、ホストマシン25から構成される。
【0025】
ハードウェア22は、仮想化対象のコンピュータ11のCPU(Central Processing Unit)、メモリ等のハードウェアリソースである。
【0026】
仮想化ソフトウェア(仮想化ソリューション)23は、仮想マシンサーバ上にインストールされ、ハードウェア22上で動作し、仮想マシン24の動作、ホストマシン25の動作を可能とするプログラムである。また、仮想化ソフトウェア23は、ホストマシン25を介して監視管理装置13と交信し、また、各仮想マシン24と交信する。
例えば、ハイパーバイザ型の仮想化ソフトウェア23として、VMware Infrastructure(商標)、Xen(商標)、及び、Hyper-V(商標)などが存在する。また、HostOS型の仮想化ソフトウェア23として、VMware Workstation(商標)、及び、VirtualPC(商標)などが存在する。
【0027】
仮想マシン24は、仮想化ソフトウェア23上で動作する。仮想マシン24のOSは互いに異なっても同一でもよい。仮想マシン24上で任意のアプリーションソフトウェアが動作する。
【0028】
ホストマシン25は、例えば、仮想マシンサーバにインストールされたOSであり、仮想化ソフトウェア23を通じて仮想マシン24の管理を行うとともに監視管理装置13と各種処理のやりとりを行う。
【0029】
コンピュータ11のうち、仮想化されていないコンピュータである非仮想マシンは、図2(b)に示すように、ハードウェア27とOS(オペレーティングシステム)28とから構成される。
【0030】
図1に示す監視管理装置13は、監視管理対象のコンピュータ11を監視・管理する装置である。
監視管理装置13は、物理的には、図3に示すように、CPU31、記憶部32、通信部33、入出力部34を備える。
【0031】
CPU31は、記憶部32に格納された動作プログラムを実行し、図4に示すように、仮想化モジュール41(41X,41Y,41P)と、仮想化モジュールAPI42と、監視管理マネージャ43とを実現する。
【0032】
仮想化モジュール41は、仮想化ソフトウェア23(の種類)毎に用意され、監視管理クライアント15からの指示等に従って、対応する仮想化ソフトウェア23との間でホストマシン25を介して通信を行う。図4の例では、仮想化ソフトウェア23として、仮想化ソフトウェアXと仮想化ソフトウェアYの2つ(2種類)が用意されている。このため、仮想化モジュール41も、仮想化ソフトウェアXによる仮想化環境を監視管理する仮想化ソフトウェアX用モジュール41Xと、仮想化ソフトウェアYによる仮想化環境を監視管理する仮想化ソフトウェアY用モジュール41Yの2種類が用意されている。
【0033】
さらに、非仮想マシンを制御するための非仮想マシン用モジュール41Pが用意されている。
【0034】
これらのモジュール41X、41Y、41Pは、ソフトウェア本体(仮想化モジュールAPI42や監視管理マネージャ43を含む)の大きな変更なしに、追加や削除が可能なプラグインの形態で用意されており、図面では、プラグインP,プラグインY,プラグインPと表している。
【0035】
一方、仮想化モジュールAPI(Application Program Interface)42は、全てのプラグイン41に共通に配置されており、監視管理クライアント15からの指示に応答して、仮想化環境を特定し、対応するプラグイン41に指示を伝達する。この処理を行うため、仮想化モジュールAPI42は、監視管理対象の仮想マシン24の名称と、その仮想マシン24が動作しているホストマシン25の名称と、仮想マシン24を実現している仮想化ソフトウェア(X,Y)23とを対応付けたマシン情報テーブルT1を格納している。また、マシン情報テーブルT1は、監視管理対象の非仮想マシンを特定する情報を含む。
【0036】
また、仮想化モジュールAPI42には、プラグイン41の追加・削除が容易となるように、例えば、仮想化ソフトウェア23とプラグイン41の対応付テーブルT2を用意する。新たなプラグイン41を追加する場合には、例えば、新プラグイン41と対応する新仮想化ソフトウェア23の対応を対応付テーブルT2に追記する。
これにより、新仮想化ソフトウェア23により実現される仮想マシン24を操作する際に、仮想化モジュールAPI42が対応付テーブルT2を参照し、新プラグイン41を利用することとなる。
【0037】
一例として、監視管理対象の仮想化混在システムが、図4に示す構成のときには、対応付テーブルT2は、図6(b)に示すものとなる。
また、監視管理対象の仮想化混在システムが、図5に例示する構成のときには、マシン情報テーブルT1は、図6(a)に示すようなものとなる。即ち、図5の例では、仮想化ソフトウェア23Xの環境には、2台のホストマシンMPとMQがある。そして、ホストマシンMPには、3台の仮想マシンMB〜MDが対応しており、ホストマシンMQには、2台の仮想マシンMI〜MJが対応している。また、仮想化ソフトウェア23Yの環境には、1台のホストマシンMOが配置されており、3台の仮想マシンME,MF,MHが対応している。さらに、非仮想マシンMAとMGが監視管理対象となっている。図6(a)に示すマシン情報テーブルT1には、これらの関係が全て登録されている。
【0038】
監視管理マネージャ43は、監視管理装置13の全体の動作を制御する。
【0039】
図1に示す監視管理クライアント15は、一般のコンピュータから構成され、ユーザの操作に従って監視管理装置13に種々の指示を入力し、また、監視管理装置13から提供された情報を出力する。このため、監視管理クライアント15には、専用のクライアントモジュールがインストールされている。
【0040】
次に、上記構成のコンピュータシステムの動作を説明する。
まず、前提として、各仮想マシン24及び非仮想マシンは、それぞれ、プログラムに従って動作し、必要に応じて、ネットワークNWを介して情報の交換も行う。この動作自体は、従来と同様である。
【0041】
一方、監視管理装置13は、こうして動作している各マシンを監視及び管理する。
ここで、ユーザがいずれかのマシンの操作を希望したとする。なお、操作とは、例えば、以下のようなものをいう。
(1)性能情報取得。
(2)マシンの状態変更。
a)起動、停止。
b)メモリやCPU等のリソース割り当て変更。
c)マシン間のOSイメージの移動(VMwareではVMotion, XenではLiveMigrationと呼ばれる)。
d)OSイメージの新規作成、スナップショットの作成、バックアップ。
e)リソースプールの管理。
(3)ジョブの制御。
(4)パッチ管理。
【0042】
この場合、ユーザは、監視管理クライアント15上で、操作対象のマシンの名称(識別情報等でもよい)と実行したい操作を選択(指定)する。クライアントモジュールは、入力内容を検出し、操作対象のマシンを特定するマシン特定情報と操作内容を特定する操作特定情報とを監視管理装置13に通知する。なお、マシン特定情報と操作特定情報との形式は任意である。
【0043】
通知に応答し、監視管理装置13の仮想化モジュールAPI42は、図7(a)の処理を開始し、まず、通知されたマシン名を引数にマシン情報テーブルT1を検索し、対応するホストマシン25と仮想化ソフトウェア23の種類を特定する(ステップS11)。なお、マシンが非仮想マシンの場合には、「非仮想マシン」が特定される。次に、仮想化モジュールAPI42は、対応付テーブルT2を参照して、特定した仮想化ソフトウェア23(又は非仮想マシン)に対応するプラグイン41を特定する。
次に、仮想化モジュールAPI42は、特定したプラグイン41に、操作対象のマシンと、特定したホストマシン25(又は非仮想マシン)と、操作の内容と、要求元とを通知する(ステップS12)。即ち、マシン特定情報と操作特定情報とホストマシン特定情報と、要求元特定情報とを通知する。なお、マシン特定情報と操作特定情報とは、監視管理クライアント15が通知する情報と実質的に同一であればよく、完全に同一である必要はない。
【0044】
操作対象のマシンが仮想マシンの場合、仮想化モジュールAPI42からプラグイン41X又は41Yに上述の通知が行われる。通知を受けたプラグイン41X又は41Yは、図7(b)の処理を開始し、まず、通知されたホストマシン25(又は非仮想マシン)に、通知された操作対象のマシン名と操作内容と要求元とを通知する(ステップS13)。
【0045】
通知を受けたホストマシン25は、図8(a)の処理を開始し、仮想化ソフトウェア23に、通知された操作対象のマシンと操作内容と要求元とを通知する(ステップS14)。
【0046】
通知を受けた仮想化ソフトウェア23は、図8(b)の処理を開始し、通知された操作対象のマシン(仮想マシン24)に操作内容と要求元とを通知する(ステップS15)。
【0047】
通知を受けたマシン(仮想マシン24)は、通知された操作を行う。
操作が完了すると、マシンは、図9(a)の処理を開始し、操作の結果を示す情報と最終送信先(要求元)とを仮想化ソフトウェア23に通知する(ステップS21)。
【0048】
通知に応答し、仮想化ソフトウェア23は、図9(b)の処理を開始し、操作結果情報と最終送信先(要求元)とをホストマシン25に通知する(ステップS22)。
【0049】
通知に応答し、ホストマシン25は、図9(c)の処理を開始し、操作結果情報と最終送信先(要求元)とを対応するプラグイン41に通知する(ステップS23)。
【0050】
通知に応答し、プラグイン41は、図10(a)の処理を開始し、操作結果情報と最終送信先(要求元)とを仮想化モジュールAPI42に通知する(ステップS24)。
【0051】
通知に応答し、仮想化モジュールAPI42は、図10(b)の処理を開始し、操作結果情報を最終送信先(要求元)に通知する(ステップS25)。
【0052】
一方、操作対象のマシンが非仮想マシンの場合には、仮想化モジュールAPI42は、プラグイン41Pを特定し、プラグイン41Pに、特定した非仮想マシンと、操作の内容と、要求元とを通知する。プラグイン41Pは、仮想化モジュールAPI42から通知された非仮想マシンに、操作内容と要求元とを通知する。通知を受けた非仮想マシンは、通知された操作を行う。操作が完了すると、非仮想マシンは、操作の結果を示す情報と最終送信先(要求元)とをプラグイン41Pに通知する。プラグイン41Pは、図10(a)の処理を実行し、操作結果情報と最終送信先(要求元)とを仮想化モジュールAPI42に通知する(ステップS24)。仮想化モジュールAPI42は、図10(b)の処理を開始し、操作結果情報を最終送信先(要求元)に通知する(ステップS25)。
【0053】
こうして、監視管理クライアント15は、任意のマシンを、そのマシンが位置するホストマシン25やそのマシンの仮想化ソフトウェア23を意識することなく、操作することができる。
【0054】
例えば、ユーザの指定した操作対象がマシンMBであったと仮定する。図5の仮想化環境の下では、マシンMBは、ホストマシンMPに位置する仮想マシン24であり、仮想化ソフトウェア23は「X」である。従って、操作の指示は、仮想化モジュールAPI42→プラグイン41X→ホストマシンMP→仮想化ソフトウェアX→仮想マシンMBと伝達される。さらに、仮想マシンMBからの応答は、仮想マシンMB→仮想化ソフトウェアX→ホストマシンMP→プラグイン41X→仮想化モジュールAPI42→監視管理クライアント15、と伝達される。
【0055】
また、例えば、ユーザの指定した操作対象がマシンMGであったと仮定する。図5の仮想化環境の下では、マシンMGは、非仮想マシンである。従って、操作の指示は、仮想化モジュールAPI42→プラグイン41P→非仮想マシンMGと伝達される。さらに、非仮想マシンMGからの応答は、非仮想マシンMG→プラグイン41P→仮想化モジュールAPI42→監視管理クライアント15、と伝達される。
【0056】
このようにして、本実施形態では、マシン情報テーブルT1を仮想化モジュールAPI42に配置し、操作対象マシンをキーに、マシン情報テーブルT1を検索し、検索で得た情報を入力情報に追加し、操作対象マシンの特定に利用する。これにより、ユーザは、詳細な情報を意識することなく、仮想マシン24と非仮想マシンとを同様に監視管理することが可能となる。
【0057】
マシン情報テーブルT1の作成手法自体は任意であるが、仮想化モジュールAPI42が、例えば図11のフローチャートに示す手順で作成することが望ましい。
【0058】
仮想化モジュールAPI42には、予め、各コンピュータ11がどの仮想化ソフトウェア23(XとYのどちら)で仮想化されているかという情報と、そのコンピュータ11上のホストマシン25のアドレス(例えば、IPアドレス)が予め登録されている。
【0059】
仮想化モジュールAPI42は、まず、プラグイン41を1つ特定する(ステップS31)。例えば、プラグイン41Xを特定する。
【0060】
次に、仮想化モジュールAPI42は、特定したプラグイン41に対応するホストマシン25(又は非仮想マシン)を1つ特定する(ステップS32)。
【0061】
次に、仮想化モジュールAPI42は、特定したプラグイン41から特定したホストマシン25(又は非仮想マシン)宛に、構成情報(ステータス)を問い合わせる情報を送信する(ステップS33)。
【0062】
ホストマシン25は、問い合わせを受信すると、この問い合わせを仮想化ソフトウェア23に伝達する。仮想化ソフトウェア23は、自己の上で稼働している仮想マシン24に順次問い合わせ、仮想マシン名(又は識別情報)を取得する。仮想化ソフトウェア23は、取得した仮想マシン名をホストマシン25に通知する。ホストマシン25は、ホストマシン名と取得した仮想マシン名とを対応付けて、プラグイン41に通知する。非仮想マシンの場合には、同様に、そのマシン名を返信する。
【0063】
仮想モジュールAPI42は、プラグイン41を介して、ホストマシン名と仮想マシン名の組(又は非仮想マシンの名称)を受信し、一旦記憶する(ステップS34)。こうして、監視管理対象の構成情報が蓄積される。
【0064】
続いて、特定しているプラグイン41に対応する全てのホストマシン25についての処理が終了したか否かを判別し(ステップS35)、処理が終了していれば(ステップS35;Yes)、全てのプラグイン41についての処理を終了したか否かを判別する(ステップS36)。
【0065】
ステップS35で、終了していない、即ち、未処理(構成情報を受け取っていない)のホストマシン25が存在すると判別した場合には(ステップS35;No)、未処理のホストマシン25を特定し(ステップS37)、ステップS33以下の処理を繰り返す。
【0066】
また、ステップS36で、終了していない、即ち、未処理(構成情報を受け取っていない)のプラグイン41が存在すると判別した場合には(ステップS36;No)、未処理のプラグイン41を特定し(ステップS38)、ステップS32以下の処理を繰り返す。
【0067】
ステップS37で全てのプラグイン41について処理が終了したと判別すると(ステップS36;Yes)、仮想モジュールAPI42は、ステップS34で蓄積した構成情報を用いて、マシン情報テーブルT1を作成する(ステップS39)。
【0068】
図11のマシン情報テーブル作成処理を、例えば、タイマ割り込み等に応じて周期的に実行することにより、監視管理対象のシステムの構成の変化を反映した監視管理が可能となる。
【0069】
一例として、図5に示す構成において、ホストマシンMOに位置していた仮想マシンMHが、図12に示すように、ホストマシンMQに移動したと仮定する。
【0070】
この変更が発生した後、図11の処理が開始すると、仮想化モジュールAPI42は、例えば、プラグイン41Xを指定し(ステップS31)、続いて、ホストマシンMPを指定し(ステップS32)、問い合わせを行い(ステップS33)、その構成情報を取得して記憶する(ステップS34)。続いて、仮想化モジュールAPI42は、未処理のホストマシンMQを指定し(ステップS37)、問い合わせを行い(ステップS33)、その構成情報を取得して記憶する(ステップS34)。この段階では、ホストマシンMPと仮想マシンMB〜MDが同一の仮想化ソフトウェアX上に配置されているとの構成情報と、ホストマシンMQと仮想マシンMH、MI、MJとが同一の仮想化ソフトウェアX上に配置されているとの構成情報が記憶される。
【0071】
続いて、未処理のプラグイン41Yを指定し(ステップS38)、ホストマシンMOを指定し(ステップS32)、問い合わせを行い(ステップS33)、ホストマシンMOと仮想マシンMEとMFとが仮想化ソフトウェアY上に配置されているとの構成情報を取得しこれを記憶する(ステップS34)。
【0072】
続いて、未処理のプラグイン41Pを指定し(ステップS38)、マシンMAを指定し(ステップS32)、問い合わせを行い(ステップS33)、非仮想マシンMAの情報を取得しこれを記憶する(ステップS34)。この段階では、他に非仮想マシンが存在しないので、ステップS35,S36でYesと判別され、構成情報を収集する処理が終了する。
【0073】
続いて、得られた構成情報に基づいて、例えば、図13に示すように、マシン情報テーブルT1が生成される(ステップS39)。
【0074】
仮想化モジュールAPI42又は監視管理クライアント15は、新たに生成されたマシン情報テーブルT1と先に生成したマシン情報テーブルT1とを比較することにより、例えば、仮想マシンMHがホストマシンMOからMQに移動し、非仮想マシンMGが除去されたことが判別できる。
【0075】
次に、図14に示すように、監視管理対象に、仮想化ソフトウェアZにより、仮想化されたコンピュータ11を追加する場合の処理を説明する。
【0076】
この場合、まず、新たな仮想化ソフトウェアZに対応するプラグイン(仮想化モジュール)41Zを生成し、監視管理装置13に追加する。さらに、仮想化モジュールAPI42の対応付テーブルT2に、仮想化ソフトウェア41Zとプラグイン41Zの組を登録する。また、プラグイン41Zの通信先として、追加する仮想マシンサーバのホストマシン(ここでは、MSとする)のアドレスを指定する。
【0077】
このようにすれば、プラグイン41Zを追加した後、図11の処理を行う際に、ステップS31で、プラグイン41Zが指定され、さらに、ステップS32で、ホストマシンMSが指定され、ホストマシンMSからプラグイン41Zを介して、仮想化ソフトウェアZ上のホストマシンMSと仮想マシンの構成情報が得られ、マシン情報テーブルT1に追加される。以後、追加された仮想化ソフトウェアZ上のホストマシンMSと各仮想マシン24への操作が可能となる。
【0078】
以上説明したように、本実施の形態によれば、監視管理装置、より正確には、監視管理ソフトウェアが、「マシン名、ホストマシン、仮想化ソフトウェア」をテーブル等で保持し、マシンごとにその属性を自動で検出し、テーブルを再設定する。これにより、各仮想マシン24及び/又は非仮想マシンが別の属性に変更された場合であっても、「ホストマシン、仮想化ソフトウェア」を意識することなく、必要な指示や操作を行うことができる。
【0079】
また、環境の差異を吸収する層である仮想化モジュールがプラグイン形式であるため、プラグイン41を追加すれば、任意の仮想化ソフトウェア23に対応可能である。
【0080】
なおこの発明は、上記実施の形態に限定されず、種々の変形及び応用が可能である。例えば、上述した各部材の数、方式などは任意に変更可能である。
例えば、上記実施の形態においては、仮想マシン24自身が、問い合わせに応じて、自己の情報を監視管理装置13に返信したが、例えば、仮想化ソフトウェア23或いは仮想マシン24にエージェントを配置し、エージェントが、要求された情報を取得して返信するように構成してもよい。また、ユーザの指示を、監視管理クライアント15を介して監視管理装置13に入力したが、監視管理クライアント15の入出力部34から直接入力する等してもよい。
【符号の説明】
【0081】
11(111〜11n)…監視管理対象コンピュータ
13…監視管理装置
15…監視管理クライアント
22…ハードウェア
23…仮想化ソフトウェア
24…仮想マシン
25…ホストマシン
31…CPU
32…記憶部
33…通信部
34…入出力部
41(41X,41Y,41P,41Z)…プラグイン(仮想化モジュール)
42…仮想化モジュールAPI
43…監視管理マネージャ
【特許請求の範囲】
【請求項1】
操作対象のマシンを特定するマシン特定情報と操作内容を特定する操作特定情報とを入力する入力手段と、
監視管理対象のホストマシンと仮想マシンと仮想化ソフトウェアとを対応付ける対応付手段と、
仮想化ソフトウェア別に配置され、対応する仮想化ソフトウェアとの間で通信を行う仮想化モジュールと、
前記入力手段により入力されたマシン特定情報と前記対応付手段とに基づいて、入力されたマシン特定情報に対応するホストマシンと仮想化ソフトウェアとを特定する特定手段と、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールに、操作対象のマシンを特定するマシン特定情報と、操作内容を特定する操作特定情報と、ホストマシンを特定するホストマシン情報とを通知するモジュール通知手段と、
を備え、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールは、通知されたホストマシン情報で特定されるホストマシンに、操作対象のマシンと操作内容を通知する、
ことを特徴とする監視管理装置。
【請求項2】
前記仮想化モジュールと該仮想化モジュールに接続されたホストマシンとを介して監視管理対象の仮想コンピュータの構成情報を収集する収集手段を備え、
前記対応付け手段は、前記収集手段が収集した情報を保持する、
ことを特徴とする請求項1に記載の監視管理装置。
【請求項3】
前記収集手段は、周期的に、監視管理対象のコンピュータの構成情報を収集する、
ことを特徴とする請求項2に記載の監視管理装置。
【請求項4】
非仮想マシンとの間で通信を行う非仮想マシン用のモジュールを備え、
前記対応付手段は、非仮想マシンの名称と該マシンが非仮想マシンであることを示す情報とを保持し、
前記モジュール通知手段は、非仮想マシンについては、前記非仮想マシン用のモジュールに通知し、
該非仮想マシン用のモジュールは、通知されたマシン名を有する非仮想マシンに、入力された操作を指示する、
ことを特徴とする請求項1、2又は3に記載の監視管理装置。
【請求項5】
前記仮想化モジュールは、プラグイン形式で構成されている、ことを特徴とする請求項1乃至4のいずれか1項に記載の監視管理装置。
【請求項6】
コンピュータにより監視管理対象のコンピュータを監視管理する方法であって、
仮想マシンを特定して操作が指示された時に、コンピュータにより、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定して、
コンピュータにより、特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する、
ことを特徴とする監視管理方法。
【請求項7】
コンピュータに、
仮想マシンを特定して操作が指示された時に、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定する処理と、
特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する処理と、
を実行させることを特徴とするコンピュータプログラム。
【請求項1】
操作対象のマシンを特定するマシン特定情報と操作内容を特定する操作特定情報とを入力する入力手段と、
監視管理対象のホストマシンと仮想マシンと仮想化ソフトウェアとを対応付ける対応付手段と、
仮想化ソフトウェア別に配置され、対応する仮想化ソフトウェアとの間で通信を行う仮想化モジュールと、
前記入力手段により入力されたマシン特定情報と前記対応付手段とに基づいて、入力されたマシン特定情報に対応するホストマシンと仮想化ソフトウェアとを特定する特定手段と、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールに、操作対象のマシンを特定するマシン特定情報と、操作内容を特定する操作特定情報と、ホストマシンを特定するホストマシン情報とを通知するモジュール通知手段と、
を備え、
前記特定手段により特定された仮想化ソフトウェアに対応する仮想化モジュールは、通知されたホストマシン情報で特定されるホストマシンに、操作対象のマシンと操作内容を通知する、
ことを特徴とする監視管理装置。
【請求項2】
前記仮想化モジュールと該仮想化モジュールに接続されたホストマシンとを介して監視管理対象の仮想コンピュータの構成情報を収集する収集手段を備え、
前記対応付け手段は、前記収集手段が収集した情報を保持する、
ことを特徴とする請求項1に記載の監視管理装置。
【請求項3】
前記収集手段は、周期的に、監視管理対象のコンピュータの構成情報を収集する、
ことを特徴とする請求項2に記載の監視管理装置。
【請求項4】
非仮想マシンとの間で通信を行う非仮想マシン用のモジュールを備え、
前記対応付手段は、非仮想マシンの名称と該マシンが非仮想マシンであることを示す情報とを保持し、
前記モジュール通知手段は、非仮想マシンについては、前記非仮想マシン用のモジュールに通知し、
該非仮想マシン用のモジュールは、通知されたマシン名を有する非仮想マシンに、入力された操作を指示する、
ことを特徴とする請求項1、2又は3に記載の監視管理装置。
【請求項5】
前記仮想化モジュールは、プラグイン形式で構成されている、ことを特徴とする請求項1乃至4のいずれか1項に記載の監視管理装置。
【請求項6】
コンピュータにより監視管理対象のコンピュータを監視管理する方法であって、
仮想マシンを特定して操作が指示された時に、コンピュータにより、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定して、
コンピュータにより、特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する、
ことを特徴とする監視管理方法。
【請求項7】
コンピュータに、
仮想マシンを特定して操作が指示された時に、予め記憶している属性情報に基づいて、該仮想マシンに対応する仮想化ソフトウェアを特定する処理と、
特定した仮想化ソフトウェアと通信が可能なソフトウェアモジュールを選択して、選択したソフトウェアモジュールから仮想化ソフトウェアに操作の内容を通知する処理と、
を実行させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−262545(P2010−262545A)
【公開日】平成22年11月18日(2010.11.18)
【国際特許分類】
【出願番号】特願2009−114045(P2009−114045)
【出願日】平成21年5月8日(2009.5.8)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
【公開日】平成22年11月18日(2010.11.18)
【国際特許分類】
【出願日】平成21年5月8日(2009.5.8)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】
[ Back to top ]