JP2009237859A - 仮想マシン管理システム - Google Patents

仮想マシン管理システム Download PDF

Info

Publication number
JP2009237859A
JP2009237859A JP2008082628A JP2008082628A JP2009237859A JP 2009237859 A JP2009237859 A JP 2009237859A JP 2008082628 A JP2008082628 A JP 2008082628A JP 2008082628 A JP2008082628 A JP 2008082628A JP 2009237859 A JP2009237859 A JP 2009237859A
Authority
JP
Japan
Prior art keywords
virtual machine
load
computer
load information
information
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.)
Pending
Application number
JP2008082628A
Other languages
English (en)
Inventor
Akira Takagaki
暁 高垣
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008082628A priority Critical patent/JP2009237859A/ja
Publication of JP2009237859A publication Critical patent/JP2009237859A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】仮想マシンが構築されるコンピュータの負荷を抑制し、仮想マシンの処理効率の向上を図る。
【解決手段】コンピュータ内に構築される仮想マシンを管理する仮想マシン管理システムは、仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、仮想マシン上で実行されるプロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、各プロセス負荷情報と、起動/終了プロセス負荷情報と、に基づいて、仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出手段と、を備えた。
【選択図】図1

Description

本発明は、仮想マシン管理システムにかかり、特に、コンピュータ内に構築される仮想マシンの負荷を予測して、当該仮想マシンの配置を管理する仮想マシン管理システムに関する。
ハードウェアリソースの柔軟な活用・サーバ集約等の観点から、ホストマシン上で複数の仮想マシンを動作させることにより運用を行うシステムが実現されている。このようなシステムにおいて、ホストマシンのリソースを効果的に活用するため、仮想マシンの負荷に応じて仮想マシンとホストマシンの割り当てを変更することにより、負荷を平準化する手段が提案・実現されている。例えば、特許文献1には、仮想マシンの負荷に応じてホストマシンに対する仮想マシンの再配置を行う手段が提案されている。
そして、上述したような再配置を行う場合には、負荷の実測値に基づいて当該負荷が高負荷状態にあるかどうかを判定している。ところが、瞬間的に負荷が増大するケースを排除するためには、ある程度の時間続けて高負荷状態にあることを確認する必要があるため、再配置処理の開始までに時間がかかる。そのため、仮想マシンが高負荷状態に陥ってから再配置処理の完了までにかなりの時間を要する恐れがある。その間、高負荷状態となった仮想マシン上での処理効率が低下してしまうという問題があった。
特開2005−115653号公報 特開2004−199561号公報
一方で、特許文献2では、仮想計算機の動作状態における資源の使用状態を予測して、資源が不足する場合には、資源の再割り当てを行う技術を提供している。しかしながら、上記技術では、仮想計算機毎に資源の使用状態を予測しているため、より詳細に資源の負荷状態を判定することができず、適切な仮想マシンの配置が困難となり、仮想マシンの処理効率の向上を図ることが困難である。
このため、本発明の目的は、上述した課題である、仮想マシンが構築されるコンピュータの負荷を抑制し、仮想マシンの処理効率の向上を図る、ことにある。
そこで、本発明の一形態である、コンピュータ内に構築される仮想マシンを管理する仮想マシン管理システムは、
仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、
仮想マシン上で実行されるプロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、
各プロセス負荷情報と、起動/終了プロセス負荷情報と、に基づいて、仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出手段と、
を備えた、という構成を採る。
また、本発明の他の形態である、仮想マシンが構築されるコンピュータは、
仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、
仮想マシン上で実行されるプロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、
各プロセス負荷情報と、起動/終了プロセス負荷情報と、に基づいて、仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出手段と、
を備えた、という構成を採る。
また、本発明の他の形態であるプログラムは、
仮想マシンが構築されるコンピュータに、
仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、
仮想マシン上で実行されるプロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、
各プロセス負荷情報と、起動/終了プロセス負荷情報と、に基づいて、仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出手段と、
を実現させる、という構成を採る。
また、本発明の他の形態である、仮想マシンが構築されるコンピュータに接続された管理装置は、
上記コンピュータが、仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、仮想マシン上で実行されるプロセスの起動又は終了を検出して当該起動/終了プロセスの負荷を前記プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、各プロセス負荷情報と起動/終了プロセス負荷情報とに基づいて仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出手段と、を備えている場合に、
コンピュータが有する仮想マシン負荷算出手段にて算出された仮想マシンの負荷に基づいて、コンピュータ内における仮想マシンの構築状態を変更する仮想マシン構築変更手段を備えた、という構成を採る。
また、本発明の他の形態であるプログラムは、
仮想マシンが構築されるコンピュータに接続された管理装置に、
上記コンピュータが、仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、仮想マシン上で実行されるプロセスの起動又は終了を検出して当該起動/終了プロセスの負荷をプロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、各プロセス負荷情報と起動/終了プロセス負荷情報とに基づいて仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出手段と、を備えている場合に、
コンピュータが有する仮想マシン負荷算出手段にて算出された仮想マシンの負荷に基づいて、コンピュータ内における仮想マシンの構築状態を変更する仮想マシン構築変更手段、を実現させる、という構成を採る。
さらに、本発明の他の形態である、コンピュータ内に構築される仮想マシンを管理する仮想マシン管理方法は、
仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定工程と、
仮想マシン上で実行されるプロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定工程と、
各プロセス負荷情報と、起動/終了プロセス負荷情報と、に基づいて、仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出工程と、
を有する、という構成を採る。
本発明は、以上のように構成されるため、仮想マシンで実行されるプロセスが起動/終了するなど動作状態に変化が生じた場合に、仮想マシン全体の負荷を予測することができ、当該予測した仮想マシンの負荷に基づいてコンピュータに対する仮想マシンを再配置するなど、迅速な対応を取ることができ、特定のコンピュータに負荷が集中することを抑制することができる。その結果、コンピュータの高負荷化を抑制し、仮想マシンによる処理効率の向上を図ることができる。
本発明は、仮想マシンの負荷を予測し、これに基づいて仮想マシンの再配置を行う、という点に特徴を有する。特に、仮想マシンの負荷の予測値の変化を契機として仮想マシンの再配置処理を実施することにより、コンピュータの負荷を抑制する。
そして、本発明の一形態である仮想マシン管理システムは、
コンピュータ内に構築される仮想マシンを管理する仮想マシン管理システムであって、
仮想マシン上で実行中のプロセス毎におけるコンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、
仮想マシン上で実行されるプロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、
各プロセス負荷情報と、起動/終了プロセス負荷情報と、に基づいて、仮想マシンのコンピュータに対する負荷を算出する仮想マシン負荷算出手段と、
を備えた、という構成を採る。
また、上記仮想マシン管理システムは、仮想マシン負荷算出手段にて算出された仮想マシンの負荷に基づいて、コンピュータ内における仮想マシンの構築状態を変更する仮想マシン構築変更手段を備えた、という構成を採る。
また、上記仮想マシン負荷算出手段は、仮想マシンにおける起動/終了プロセスの起動又は終了する前と後のそれぞれにおける当該仮想マシンの負荷を算出し、当該算出した仮想マシンの負荷がプロセスの起動又は終了の前後で変化があった場合に、仮想マシン構築変更手段にその旨を通知し、上記仮想マシン構築変更手段は、仮想マシン負荷算出手段から仮想マシンの負荷がプロセスの起動又は終了の前後で変化があった旨の通知を受けた場合に、コンピュータ内における仮想マシンの構築状態を変更する、という構成を採る。
また、上記仮想マシン管理システムでは、仮想マシンは、複数のコンピュータ内にそれぞれ複数構築可能であり、上記仮想マシン構築変更手段は、複数のコンピュータに対する仮想マシンの配置を変更するよう当該仮想マシンを再配置する、という構成を採る。また、上記仮想マシン構築変更手段は、仮想マシンによって各コンピュータにかかる負荷を平準化するよう、複数のコンピュータに対する仮想マシンの配置を変更する、という構成を採る。なお、上記仮想マシンの負荷は、例えば、仮想マシンが構築されるコンピュータが装備する資源に対する負荷である。
また、具体的に、上記仮想マシン管理システムは、仮想マシンが構築されるコンピュータであるホストマシンと、当該ホストマシンに接続された管理装置と、を備え、上記ホストマシンが、プロセス負荷測定手段と、プロセス負荷特定手段と、仮想マシン負荷算出手段と、を備え、上記管理装置が、仮想マシン構築変更手段を備えた、という構成を採る。
上記発明によると、まず、コンピュータ内に構築された仮想マシンにて実行されているプロセスの負荷を測定し、プロセス負荷情報として記憶する。その後、プロセスの起動/終了が検出されると、当該起動/終了プロセスの負荷を上述したように記憶しているプロセス負荷情報に基づいて予測して特定し、起動/終了プロセス付加情報とする。そして、上記プロセス負荷情報と起動/終了プロセス負荷情報とに基づいて、仮想マシン全体のコンピュータに対する負荷を算出して予測する。
このように、仮想マシンで実行されるプロセスが起動/終了するなど動作状態に変化が生じた場合に、当該起動/終了プロセスの負荷を予測することで、仮想マシン全体の負荷を予測することができる。従って、予測した仮想マシンの負荷に基づいてコンピュータに対する仮想マシンを再配置するなど、迅速な対応を取ることができ、特定のコンピュータに負荷が集中することを抑制することができる。その結果、効果的にコンピュータの高負荷化を抑制し、仮想マシンによる処理効率の向上を図ることができる。
<実施形態>
本発明の実施形態を、図1乃至図11を参照して説明する。図1は、仮想マシン管理システムの構成を示すブロック図である。図2は、仮想マシンの構成を示す機能ブロック図であり、図3は、仮想マシンに記憶される情報の一例を示す図である。図4は、管理サーバの構成を示す機能ブロック図であり、図5乃至図7は、管理サーバに記憶される情報の一例を示す図である。図8乃至図10は、仮想マシンの動作を示すフローチャートであり、図11は、管理サーバの動作を示すフローチャートである。
[構成]
図1に示すように、本実施形態では、ホストマシン1a,2a等(コンピュータ)と、ホストマシン内に構築されており当該ホストマシン上で動作する仮想マシン2a,2b,2c等と、これらを管理する管理サーバ3(管理装置)と、から構成されるシステムを前提としている。この図の例では、ホストマシン1a上で仮想マシン2aが動作し、ホストマシン1b上で仮想マシン2b,2cが動作していることを示している。これらのホストマシン1a,1b及び管理サーバ3は、管理ネットワークに接続されており、ホストマシン1a,1b及び仮想マシン2a,2b,2cは、管理サーバ31によって管理される。また、仮想マシン2a,2b,2c及び端末4a,4b,4cは、運用ネットワークに接続されており、利用者は端末4a,4b,4cを利用することにより仮想マシン2a,2b,2cを操作可能である。なお、図1に示したホストマシン及び仮想マシンの数は一例であって、さらに多くのホストマシンや仮想マシンを備えていてもよい。
次に、上記ホストマシン1aに構築される仮想マシン2aの構成について、図2乃至図3を参照して説明する。なお、他のホストマシン1bに構築される仮想マシン2b,2cも同様の構成を採るため、その説明は省略する。
仮想マシン2aは、ホストコンピュータ1aの演算装置に所定のプログラムが組み込まれることによって、当該ホストコンピュータ1aのCPUやメモリ、ネットワーク、ディスクなどの資源を利用して構築された仮想的なコンピュータである。そして、仮想マシン2aは、図2に示すように、プログラムが組み込まれることによって構築された、プロセス負荷測定部21と、プロセス負荷予測部22と、仮想マシン負荷算出部23と、負荷情報記憶部24と、を備えている。
上記プロセス負荷測定部21(プロセス負荷測定手段)は、仮想マシン2a上で実行中の処理(プログラム)であるプロセス毎に、ホストマシン1aに対する負荷を測定する。具体的に、まず、プロセス負荷測定部21は、仮想マシン2a上で実行中のプロセスの一覧を取得し、予め記憶されている監視対象外のプロセス一覧と照らし合わせ、監視対象プロセスの一覧を作成する。続いて、プロセス負荷測定部21は、取得した監視対象プロセスの負荷情報(CPU使用率、メモリ使用率、ネットワークアクセス負荷、ディスクアクセス負荷等)を、ホストマシン1a内のオペレーティングシステムなどから取得し、当該プロセスの負荷を表すコスト値を計算する。なお、コスト値は、使用率の平均・単位時間当たりのI/O量などを元に、資源の種別(CPU・メモリ・ネットワーク・ディスク等)毎、つまり、ホストマシン1aのハードウェア資源毎に適した手段を用いて計算する。そして、計算したコスト値を、各プロセスの各資源ごとにおける負荷を表すプロセス負荷情報として、プロセス毎に負荷情報記憶部24に記録する。ここで、図3に、記憶したプロセス毎のコスト値の一例を示す。なお、プロセス負荷測定部21によるプロセス負荷情報の計測は、例えば、一定時間毎に全てのプロセスについて実行される。
また、上記プログラム負荷測定部21は、上述したように計測した各仮想マシン上のプロセスの負荷であるコスト値を、管理サーバ3に送信する機能も有する。これにより、管理サーバ3は、後述する図7に示すように、各仮想マシン毎に動作しているプロセスの負荷であるコスト値を記憶しておき、各仮想マシンの実際の負荷を算出することができる。
また、上記プロセス負荷予測部22(プロセス負荷特定手段)は、まず、仮想マシン1a上で実行されるプロセスの起動又は終了を監視する。なお、起動/終了プロセスの監視は、プロセスの起動処理および終了処理をフックして行ってもよく、一定時間毎にプロセス一覧を取得して、その差分を調べることで行ってもよい。そして、仮想マシン1a上で新たなプロセスが起動された場合、あるいは、実行中のプロセスが終了した場合には、負荷情報記憶部24から、当該起動/終了プロセスと同一のプロセスのコスト値を、起動/終了プロセス負荷情報として取得する。これにより、起動/終了プロセスの負荷の予測値を特定することができる。なお、このとき、プロセス負荷予測部22は、予め設定された監視対象外のプロセス一覧に無い起動/終了プロセスに対してのみ負荷の予測を行う。
また、上記仮想マシン負荷算出部23(仮想マシン負荷算出手段)は、上記起動/終了プロセスの負荷の予測値を利用して、自身である仮想マシン2aの負荷を予測して算出し、プロセスが起動する前と後とで、仮想マシン全体の負荷に変化があるか否かを調べる。具体的には、新たにプロセスが起動した場合には、当該起動プロセスが起動する前に仮想マシンで実行されているプロセスのコスト値の合計を、プロセス起動前の負荷として算出し、さらにこれに、上記プロセス負荷予測部22で予測した起動プロセスのコスト値を加算して、プロセス起動後の仮想マシンの予測負荷値を算出する。同様に、新たにプロセスが終了した場合には、当該終了プロセスが終了する前に仮想マシンで実行されているプロセスのコスト値の合計を、プロセス終了前の負荷として算出し、さらにこれに、上記プロセス負荷予測部22で予測した終了プロセスのコスト値を減算して、プロセス終了後の仮想マシンの予測負荷値を算出する。このとき、上述したように算出する仮想マシンの負荷は、各プロセスのコスト値を種別(CPU・メモリ・ネットワーク・ディスク等)毎に加算することによって求める。つまり、仮想マシンの負荷は、仮想マシンにて実行される各プロセスにおける資源の種別(CPU・メモリ・ネットワーク・ディスク等)毎のコスト値の合計の組み合わせとして算出することとなる。但し、算出する仮想マシンの負荷は、上記資源の種別毎に算出することに限定されず、全て種別のコスト値を合計して算出したり、あるいは、種別毎のコスト値に予め設定された重み付けを加味した値を合計して算出してもよい。
そして、仮想マシン負荷算出部23は、上述したようにそれぞれ算出したプロセス起動/終了の前と後における仮想マシンの負荷を比較し、異なる場合は、起動/終了後の負荷予測値を管理サーバ3に送信する。なお、プロセス起動/終了の前後における仮想マシンの負荷の比較は、例えば、予め優先種別として設定された資源の種別におけるコスト値のみを比較して判断してもよく、あるいは、上述したように全ての種別のコスト値を合計した値を比較して判断してもよい。
次に、管理サーバ3の構成について、図4乃至図7を参照して説明する。管理サーバ3は演算装置や記憶装置を備えた一般的なサーバコンピュータである。そして、管理サーバ3は、図4に示すように、装備された演算装置に所定のプログラムが組み込まれることによって構築された、仮想マシン配置部31と、仮想マシン移動部32と、を備えている。また、装備された記憶装置には、ホストマシンキャパシティ情報34と、仮想マシンは位置情報35と、仮想マシン負荷情報36と、を記憶したホストマシン情報記憶部33が形成されている。
上記仮想マシン配置部31(仮想マシン構築変更手段)は、上述したようにホストマシン1aから仮想マシン2aの負荷が変化した旨の通知を受けると、各ホストマシン1a,1bに対する仮想マシン2a,2b,2cの構築状態を変更するよう作動する。具体的には、仮想マシン配置部31は、通知のあった仮想マシン2aの新しい負荷予測値と、他の起動中の全ての仮想マシン2b,2cの負荷予測値と、さらに、ホストマシン1a,1bのキャパシティ値を元に、当該ホストマシン1a,1bの負荷が平準化されるよう、仮想マシン1a,1bとホストマシン2a,2b,2cの割り当てを決定する。
ここで、ホストマシンキャパシティ情報34の一例を図5に示す。この図に示すように、ホストマシンキャパシティ情報34には、ホストマシンの性能を示す値の上限値があらかじめ設定されて記憶されている。例えば、仮想マシンの負荷予測値の上限が[CPU:100,メモリ:100,ネットワーク:100,ディスク:100]である場合、仮想マシンを20台同時に動作させることのできるホストマシンのキャパシティ値として[CPU:2000,メモリ:2000,ネットワーク:2000,ディスク:2000]という値が記憶されている。なお、ホストマシンキャパシティ値の設定は、予め用意された既定値を使用してもよいが、システム管理者がホストマシンの性能に応じて適切な値を設定してもよい。
また、仮想マシン配置情報35には、図6に示すように、各ホストマシン上で動作するよう構築された仮想マシンの配置を表す情報が記憶されている。そしてさらに、仮想マシン負荷情報36には、図7に示すように、上述したように仮想マシン2a等から送信された各仮想マシンの負荷、つまり、各仮想マシンで実行されているプロセスの資源種別毎におけるコスト値が記憶されている。なお、図7には、仮想マシン負荷情報として1つの仮想マシンのコスト値しか示されていないが、他の仮想マシンのコスト値も記憶されている。そして、上記仮想マシン配置情報35と仮想マシン負荷情報36とを用いることで、仮想マシン配置部31は、ホストマシン毎の負荷状況を把握することができる。例えば、まず、ホストマシン上で動作する全ての仮想マシンを図6の仮想マシン配置情報から特定し、これら特定した全ての仮想マシンの負荷を図7の仮想マシン負荷情報から特定して合計することで、各ホストマシンの負荷を算出する。なお、各ホストマシンの負荷は、予め設定された資源の種別(CPU・メモリ・ネットワーク・ディスク等)のうち1つの種別のコスト値についてのみ算出してもよく、あるいは、いずれかの種別を優先するよう重み付けられた各種別のコスト値の合計を求めることで、ホストマシン全体の負荷を求めてもよい。
そして、仮想マシン配置部31は、上述したように仮想マシンの負荷の変化を契機として、負荷が大きいホストマシンから、当該ホストマシン上で動作する仮想マシンを他のホストマシンに移動するよう再配置する。つまり、上述したように算出したホストマシン毎の負荷が、そのキャパシティ値に対して高い割合を有する場合には、当該ホストマシン上からキャパシティ値に対する負荷が低い他のホストマシンに、仮想マシンを移動させるよう再配置する。そして、その配置情報を、仮想マシン配置情報35として記憶し、再配置処理を仮想マシン移動部32に指示する。このとき、仮想マシンの再配置は、全てのホストマシンの負荷が平準化、つまり、ほぼ均等となるよう実行されると望ましいが、必ずしもそのように実行されることに限定されない。少なくとも特定のホストマシンの負荷が高負荷となることを抑制するよう、負荷が低い他のホストマシンに仮想マシンが移動するよう再配置を行う。
そして、仮想マシン移動部32(仮想マシン構築変更手段)は、上記仮想マシン配置部31からの指示に応じて、仮想マシン配置情報35に記憶されている配置に基づいて、各ホストマシン上に仮想マシンを構築する。例えば、仮想マシン移動部32は、仮想マシン基盤が持つ機能を使用して、仮想マシンを別のホストマシンに移動する。つまり、管理サーバ2は、所定のホストマシン上の仮想マシンを他のホストマシンに移動する機能を有している。なお、ホストマシンに仮想マシンを構築する処理は周知の技術であるため、その詳細な説明は省略する。
ここで、上記では、仮想マシン2aから、当該仮想マシンの負荷の変化があったときにその旨が管理サーバ3に通知され、当該管理サーバ3は仮想マシンの負荷の変化に応じてホストマシンに対する仮想マシンの再配置を行う場合を例示したが、仮想マシンの再配置を行うタイミングは、上記タイミングに限定されない。
[動作]
次に、上記構成の仮想マシン管理システムの動作を説明する。なお、以下でも、仮想マシンの動作として符号2aの仮想マシンの動作を一例として説明するが、他の仮想マシンも同様に動作する。
まず、仮想マシン2aは、仮想マシン上で実行中のプロセスの一覧を取得する。このとき、仮想マシン2aは、予め記憶された監視対象外のプロセス一覧を設定情報として持っており、取得したプロセス一覧と照らし合わせることによって、監視対象プロセスの一覧を作成する(ステップA1)。続いて、取得した監視対象プロセスの負荷情報(CPU使用率、メモリ使用率、ネットワークアクセス負荷、ディスクアクセス負荷等)を取得し(ステップA2)、当該プロセスのコスト値を計算する(ステップA3)。そして、計算したコスト値を、負荷情報記憶部24にプロセス毎に記録する(ステップA4、プロセス負荷測定工程)。このとき、仮想マシン2aは、上記各プロセスのコスト値を管理サーバ3に送信し、これに応じて管理サーバ3は、各仮想マシンに実行されているプロセスのコスト値を、図7に示すように記憶しておく。
その後、取得した全監視対象プロセスに対して(ステップA5でNo)、上記ステップA2〜A4の処理を実施した後(ステップA5でYes)、一定時間「Sleep」し、再びステップA1からの処理を繰り返す。上記の処理により、一定時間毎に監視対象プロセスのコスト値が更新される。ここで記述した処理は、全くの無の状態から開始してもよいし、予め用意された既定値が読み込まれた状態や、他の仮想マシンで計算・記録されたコスト値を読み込んだ状態(他の仮想マシン上の負荷情報記憶部のデータをエクスポートし、当該仮想マシンにてインポートした状態)から開始してもよい。
続いて、あるいは、上記図8に示した処理と平行して、仮想マシン2aは、仮想マシン上のプロセスの起動および終了を監視する。監視の手段としては、プロセスの起動処理および終了処理をフックしてもよいし、一定時間毎にプロセス一覧を取得してその差分を調べることで判断してもよい。なお、仮想マシン2aは、上述したように監視対象外のプロセス一覧を記憶しているため、プロセスが起動または終了されると当該プロセスが監視対象かどうかを調べ、監視対象である場合は、図9あるいは図10に示す通知処理へと移る。なお、図9は、新たにプロセスが起動した場合の処理を示し、図10は、実行されていたプロセスが終了した場合の処理を示す。
そして、監視対象プロセスが起動したことを仮想マシン2aが検出した場合には、当該起動プロセスのコスト値を負荷情報記憶部24から取得し(ステップB1、プロセス負荷特定工程)、当該プロセス起動後の仮想マシンの負荷予測値を計算する(ステップB2、仮想マシン負荷算出工程)。このプロセス起動後の仮想マシンの負荷予測値は、当該プロセス起動前の仮想マシンの負荷値に、当該プロセスのコスト値を種別(CPU・メモリ・ネットワーク・ディスク等)毎に加算することによって求める。なお、プロセス起動前の予測値は、上述同様に以前に算出され記憶されている仮想マシンの負荷予測値を用いてもよく、あるいは、実際に仮想マシンに実行されているプロセスの負荷を計測することによって求めた当該仮想マシンの負荷値を用いてもよい。そして、プロセス起動前と起動後で仮想マシンの負荷が異なる場合(ステップB3でYes)、プロセス起動後の仮想マシンの負荷予測値を管理サーバ3に通知する(ステップB4)。
また、上述同様に、監視対象プロセスが終了した場合は、まず、当該プロセスのコスト値を負荷情報記憶部24から取得し(ステップC1、プロセス負荷特定工程)、当該プロセス終了前の仮想マシンの負荷値から当該プロセスのコスト値を種別(CPU・メモリ・ネットワーク・ディスク等)毎に減算することによって、当該プロセス終了後の仮想マシンの負荷予測値を計算する(ステップC2、仮想マシン負荷算出工程)。そして、当該プロセス終了前と終了後で仮想マシンの負荷予測値が異なる場合(ステップC3でYes)、プロセス終了後の仮想マシンの負荷予測値を管理サーバ3に通知する(ステップC4)。
その後、管理サーバ3は、上述したように仮想マシン2aから負荷予測値の変化が通知されると(ステップD1)、通知のあった仮想マシンの新しい負荷予測値と、他の起動中の全ての仮想マシンの負荷予測値およびホストマシンのキャパシティ値を元に、各ホストマシンの負荷が平準化されるよう、仮想マシンとホストマシンの割り当てを決定する(ステップD2)。なお、いずれのホストマシンが予め定めたほどの高負荷ではなく、あるいは、各ホストマシンの負荷に予め定められたほど値ほどの差が無い場合には、仮想マシンの割り当てを変更する必要がないと判断して、何もしない。
そして、ホストマシンの再配置処理において仮想マシンを別のホストマシンに移動する際には、仮想マシン移動部32が仮想マシンを別のホストマシンに移動する(ステップD3、仮想マシン構築変更工程)。
以上のように、本発明によると、仮想マシンで実行されるプロセスが起動/終了するなど動作状態に変化が生じた場合に、当該起動/終了プロセスの負荷を、事前に計測して記憶しておいたプロセスの負荷値に基づいて予測することで、迅速に仮想マシン全体の負荷を予測することができる。従って、予測した仮想マシンの負荷に基づいてホストマシンに対する仮想マシンを再配置するなど、迅速な対応を取ることができ、特定のホストマシンに負荷が集中することを抑制することができる。つまり、仮想マシンの負荷を実測する前に対応を取ることができ、効果的にホストマシンの高負荷化を抑制し、仮想マシンによる処理効率の向上を図ることができる。特に、プロセス毎の負荷を予測しているため、より高精度に仮想マシンの負荷を予測することができ、適切に再配置を行うことができる。
ここで、上記では、複数のホストマシンに複数の仮想マシンが構築される場合を例示したが、これに限定されない。例えば、1台のホストマシンに複数の仮想マシンが構築される場合にも適用可能であり、かかる場合には、例えば、ホストマシンの負荷が高くなりすぎた場合には、仮想マシンを削除するよう作動するとよい。また、複数のホストマシンを備えていて、各ホストマシンにそれぞれ1台の仮想マシンが構築される場合にも適用可能である。かかる場合には、ホストマシンのキャパシティ値に応じて各ホストマシンの負荷が高くなりすぎないよう、予測された負荷値に基づいて仮想マシンを配置するとよい。
本発明は、ホストマシン上で仮想マシンを動作させることにより運用を行うシステムに利用することができ、産業上の利用可能性を有する。
仮想マシン管理システムの構成を示すブロック図である。 仮想マシンの構成を示す機能ブロック図である。 仮想マシンに記憶される情報の一例を示す図である。 管理サーバの構成を示す機能ブロック図である。 管理サーバに記憶される情報の一例を示す図である。 管理サーバに記憶される情報の一例を示す図である。 管理サーバに記憶される情報の一例を示す図である。 仮想マシンの動作を示すフローチャートである。 仮想マシンの動作を示すフローチャートである。 仮想マシンの動作を示すフローチャートである。 管理サーバの動作を示すフローチャートである。
符号の説明
1a,1b ホストマシン
2a,2b,2c 仮想マシン
3 管理サーバ
4a,4b,4c 端末
21 プロセス負荷測定部
22 プロセス負荷予測部
23 仮想マシン負荷算出部
24 負荷情報記憶部
31 仮想マシン配置部
32 仮想マシン移動部
33 ホストマシン情報記憶部
34 ホストマシンキャパシティ情報
35 仮想マシン配置情報
36 仮想マシン負荷情報

Claims (13)

  1. コンピュータ内に構築される仮想マシンを管理する仮想マシン管理システムであって、
    前記仮想マシン上で実行中のプロセス毎における前記コンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、
    前記仮想マシン上で実行される前記プロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、前記プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、
    前記各プロセス負荷情報と、前記起動/終了プロセス負荷情報と、に基づいて、前記仮想マシンの前記コンピュータに対する負荷を算出する仮想マシン負荷算出手段と、
    を備えたことを特徴とする仮想マシン管理システム。
  2. 前記仮想マシン負荷算出手段にて算出された前記仮想マシンの負荷に基づいて、前記コンピュータ内における仮想マシンの構築状態を変更する仮想マシン構築変更手段を備えた、
    ことを特徴とする請求項1記載の仮想マシン管理システム。
  3. 前記仮想マシン負荷算出手段は、前記仮想マシンにおける前記起動/終了プロセスの起動又は終了する前と後のそれぞれにおける当該仮想マシンの負荷を算出し、当該算出した仮想マシンの負荷が前記プロセスの起動又は終了の前後で変化があった場合に、前記仮想マシン構築変更手段にその旨を通知し、
    前記仮想マシン構築変更手段は、前記仮想マシン負荷算出手段から前記仮想マシンの負荷が前記プロセスの起動又は終了の前後で変化があった旨の通知を受けた場合に、前記コンピュータ内における仮想マシンの構築状態を変更する、
    ことを特徴とする請求項2記載の仮想マシン管理システム。
  4. 前記仮想マシンは、複数の前記コンピュータ内にそれぞれ複数構築可能であり、
    前記仮想マシン構築変更手段は、前記複数のコンピュータに対する前記仮想マシンの配置を変更するよう当該仮想マシンを再配置する、
    ことを特徴とする請求項2又は3記載の仮想マシン管理システム。
  5. 前記仮想マシン構築変更手段は、前記仮想マシンによって前記各コンピュータにかかる負荷を平準化するよう、前記複数のコンピュータに対する前記仮想マシンの配置を変更する、
    ことを特徴とする請求項4記載の仮想マシン管理システム。
  6. 前記仮想マシンの負荷は、当該仮想マシンが構築される前記コンピュータが装備する資源に対する負荷である、
    ことを特徴とする請求項1,2,3,4又は5記載の仮想マシン管理システム。
  7. 前記仮想マシンが構築されるコンピュータであるホストマシンと、当該ホストマシンに接続された管理装置と、を備え、
    前記ホストマシンが、前記プロセス負荷測定手段と、前記プロセス負荷特定手段と、前記仮想マシン負荷算出手段と、を備え、
    前記管理装置が、前記仮想マシン構築変更手段を備えた、
    ことを特徴とする請求項2,3,4,5又は6記載の仮想マシン管理システム。
  8. 仮想マシンが構築されるコンピュータであって、
    前記仮想マシン上で実行中のプロセス毎における前記コンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、
    前記仮想マシン上で実行される前記プロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、前記プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、
    前記各プロセス負荷情報と、前記起動/終了プロセス負荷情報と、に基づいて、前記仮想マシンの前記コンピュータに対する負荷を算出する仮想マシン負荷算出手段と、
    を備えたことを特徴とするコンピュータ。
  9. 仮想マシンが構築されるコンピュータに、
    前記仮想マシン上で実行中のプロセス毎における前記コンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、
    前記仮想マシン上で実行される前記プロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、前記プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、
    前記各プロセス負荷情報と、前記起動/終了プロセス負荷情報と、に基づいて、前記仮想マシンの前記コンピュータに対する負荷を算出する仮想マシン負荷算出手段と、
    を実現させるためのプログラム。
  10. 仮想マシンが構築されるコンピュータに接続された管理装置であって、
    前記コンピュータが、前記仮想マシン上で実行中のプロセス毎における前記コンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、前記仮想マシン上で実行される前記プロセスの起動又は終了を検出して当該起動/終了プロセスの負荷を前記プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、前記各プロセス負荷情報と前記起動/終了プロセス負荷情報とに基づいて前記仮想マシンの前記コンピュータに対する負荷を算出する仮想マシン負荷算出手段と、を備えている場合に、
    前記コンピュータが有する前記仮想マシン負荷算出手段にて算出された前記仮想マシンの負荷に基づいて、前記コンピュータ内における仮想マシンの構築状態を変更する仮想マシン構築変更手段を備えた、
    ことを特徴する管理装置。
  11. 仮想マシンが構築されるコンピュータに接続された管理装置に、
    前記コンピュータが、前記仮想マシン上で実行中のプロセス毎における前記コンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定手段と、前記仮想マシン上で実行される前記プロセスの起動又は終了を検出して当該起動/終了プロセスの負荷を前記プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定手段と、前記各プロセス負荷情報と前記起動/終了プロセス負荷情報とに基づいて前記仮想マシンの前記コンピュータに対する負荷を算出する仮想マシン負荷算出手段と、を備えている場合に、
    前記コンピュータが有する前記仮想マシン負荷算出手段にて算出された前記仮想マシンの負荷に基づいて、前記コンピュータ内における仮想マシンの構築状態を変更する仮想マシン構築変更手段、を実現させるためのプログラム。
  12. コンピュータ内に構築される仮想マシンを管理する仮想マシン管理方法であって、
    前記仮想マシン上で実行中のプロセス毎における前記コンピュータに対する負荷を測定してプロセス負荷情報として記憶するプロセス負荷測定工程と、
    前記仮想マシン上で実行される前記プロセスの起動又は終了を検出して、当該起動/終了プロセスの負荷を、前記プロセス負荷情報に基づいて起動/終了プロセス負荷情報として特定するプロセス負荷特定工程と、
    前記各プロセス負荷情報と、前記起動/終了プロセス負荷情報と、に基づいて、前記仮想マシンの前記コンピュータに対する負荷を算出する仮想マシン負荷算出工程と、
    を有することを特徴とする仮想マシン管理方法。
  13. 前記仮想マシン負荷算出工程にて算出された前記仮想マシンの負荷に基づいて、前記コンピュータ内における仮想マシンの構築状態を変更する仮想マシン構築変更工程を有する、
    ことを特徴とする請求項12記載の仮想マシン管理方法。
JP2008082628A 2008-03-27 2008-03-27 仮想マシン管理システム Pending JP2009237859A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008082628A JP2009237859A (ja) 2008-03-27 2008-03-27 仮想マシン管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008082628A JP2009237859A (ja) 2008-03-27 2008-03-27 仮想マシン管理システム

Publications (1)

Publication Number Publication Date
JP2009237859A true JP2009237859A (ja) 2009-10-15

Family

ID=41251736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008082628A Pending JP2009237859A (ja) 2008-03-27 2008-03-27 仮想マシン管理システム

Country Status (1)

Country Link
JP (1) JP2009237859A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011129071A (ja) * 2009-12-21 2011-06-30 Mitsubishi Heavy Ind Ltd 計算機管理装置、計算機管理方法及び計算機管理プログラム
JP2011145894A (ja) * 2010-01-14 2011-07-28 Nec Corp 情報処理システム、情報処理装置、情報処理方法およびプログラム
WO2011155233A1 (ja) * 2010-06-11 2011-12-15 株式会社日立製作所 クラスタ構成管理方法、管理装置及びプログラムを格納した記憶媒体
WO2012004948A1 (ja) * 2010-07-06 2012-01-12 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、及び集積回路
WO2012053393A1 (ja) * 2010-10-19 2012-04-26 株式会社日立製作所 仮想計算機を配置する方法及び装置
WO2012066640A1 (ja) * 2010-11-16 2012-05-24 株式会社日立製作所 計算機システム、マイグレーション方法及び管理サーバ
US8321530B2 (en) 2010-05-27 2012-11-27 Canon Kabushiki Kaisha Cloud computing system, server computer, device connection method, and storage medium
US8909763B2 (en) 2011-03-31 2014-12-09 Mitsubishi Heavy Industries, Ltd. Computing-device management device, computing-device management method, and computing-device management program
US9223636B2 (en) 2013-01-08 2015-12-29 International Business Machines Corporation Low-risk server consolidation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214962A (ja) * 1993-01-19 1994-08-05 Hitachi Ltd 負荷分散制御方法および分散処理システム
JP2001014286A (ja) * 1999-06-29 2001-01-19 Hitachi Ltd 並列計算機での負荷分散制御方法
JP2002024194A (ja) * 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ジョブ分散処理方法および分散処理システム
JP2005115653A (ja) * 2003-10-08 2005-04-28 Ntt Data Corp 仮想マシン管理装置及びプログラム
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214962A (ja) * 1993-01-19 1994-08-05 Hitachi Ltd 負荷分散制御方法および分散処理システム
JP2001014286A (ja) * 1999-06-29 2001-01-19 Hitachi Ltd 並列計算機での負荷分散制御方法
JP2002024194A (ja) * 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ジョブ分散処理方法および分散処理システム
JP2005115653A (ja) * 2003-10-08 2005-04-28 Ntt Data Corp 仮想マシン管理装置及びプログラム
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011129071A (ja) * 2009-12-21 2011-06-30 Mitsubishi Heavy Ind Ltd 計算機管理装置、計算機管理方法及び計算機管理プログラム
JP2011145894A (ja) * 2010-01-14 2011-07-28 Nec Corp 情報処理システム、情報処理装置、情報処理方法およびプログラム
US8321530B2 (en) 2010-05-27 2012-11-27 Canon Kabushiki Kaisha Cloud computing system, server computer, device connection method, and storage medium
WO2011155233A1 (ja) * 2010-06-11 2011-12-15 株式会社日立製作所 クラスタ構成管理方法、管理装置及びプログラムを格納した記憶媒体
JP2011258119A (ja) * 2010-06-11 2011-12-22 Hitachi Ltd クラスタ構成管理方法、管理装置及びプログラム
US9069589B2 (en) 2010-07-06 2015-06-30 Panasonic Intellectual Property Corporation Of America Virtual computer system, virtual computer control method and accumulation circuit
WO2012004948A1 (ja) * 2010-07-06 2012-01-12 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、及び集積回路
JP5815524B2 (ja) * 2010-07-06 2015-11-17 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、仮想計算機制御方法、及び集積回路
WO2012053393A1 (ja) * 2010-10-19 2012-04-26 株式会社日立製作所 仮想計算機を配置する方法及び装置
JPWO2012053393A1 (ja) * 2010-10-19 2014-02-24 株式会社日立製作所 仮想計算機を配置する方法及び装置
WO2012066640A1 (ja) * 2010-11-16 2012-05-24 株式会社日立製作所 計算機システム、マイグレーション方法及び管理サーバ
JP5577412B2 (ja) * 2010-11-16 2014-08-20 株式会社日立製作所 計算機システム、マイグレーション方法及び管理サーバ
US8909763B2 (en) 2011-03-31 2014-12-09 Mitsubishi Heavy Industries, Ltd. Computing-device management device, computing-device management method, and computing-device management program
US9223636B2 (en) 2013-01-08 2015-12-29 International Business Machines Corporation Low-risk server consolidation

Similar Documents

Publication Publication Date Title
JP2009237859A (ja) 仮想マシン管理システム
KR101814560B1 (ko) 가상 머신 마이그레이션 관리 방법, 장치, 및 시스템
JP6075226B2 (ja) プログラム、仮想マシン管理方法および情報処理装置
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
RU2015114568A (ru) Автоматизированное профилирование использования ресурса
JP5609730B2 (ja) 情報処理プログラム及び方法、転送処理装置
JP2011123873A (ja) データセンターにおいて電力を動的に割り当てる方法および装置
JP2010224756A (ja) 仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置
KR20130115574A (ko) 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치
JP2009193385A (ja) コンピュータシステム
JPWO2016178316A1 (ja) 計算機調達予測装置、計算機調達予測方法、及び、プログラム
JP5448787B2 (ja) 計算機管理装置、計算機管理方法及び計算機管理プログラム
JP2015069384A (ja) 情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラム
JP2009277022A (ja) 情報処理システム、負荷制御方法、および負荷制御プログラム
US20180217875A1 (en) Data processing system and data processing method
KR101608859B1 (ko) 클라우드 기반의 지능형 전력제어 시스템
JP5935505B2 (ja) 情報処理装置、仮想マシン制御方法、仮想マシン制御プログラム
JP2011186821A (ja) 仮想化環境管理システム、装置、方法及びプログラム
JP5617586B2 (ja) 情報処理プログラム、中継装置及び中継管理装置
JP2008269422A (ja) インストール管理方法とインストール管理プログラムとインストール管理装置
JP2013127685A (ja) 情報処理システムおよび運用管理方法
CN110019372A (zh) 数据监控方法、装置、服务器及存储介质
JP2019079120A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2014206805A (ja) 制御装置
JP6349983B2 (ja) 異常検知方法、異常検知プログラムおよび異常検知装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110726