(57)【要約】【課題】仮想計算機のＣＰＵ性能の動的変更を実現することによって、ユーザに必要なだけの計算機性能を提供する。【解決手段】仮想計算機の運用状況(仮想計算機上のゲストＯＳの運用状況)を性能監視エージェント及び性能監視マネージャが監視し、仮想計算機の命令実行部分に含まれるダミーサイクルの値を仮想計算機の負荷の変動に応じて変更させることで仮想計算機のＣＰＵ性能を動的に変更する。【選択図】  図２
2006065430.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機の制御方法であって、仮想計算機の命令実行部分に含まれるダミーサイクルの値を仮想計算機の負荷の変動に応じて変更させることで仮想計算機のＣＰＵ性能を動的に変更することを特徴とする仮想計算機性能変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機の制御方法に係り、特に仮想計算機のＣＰＵ性能の動的な変更処理に関する。
【背景技術】
【０００２】
情報部門では、コスト削減の必要性が認識されてきている。そして、基幹系の処理を実施するメインフレームを筆頭とする汎用計算機においてもコスト削減が必要となってきている。汎用計算機の課金方法は、ユーザが利用する計算機の最大のＣＰＵ性能によって基本料金が課金されるシステムである。そこで、サーバ等のハードウェアの性能向上にともない、サーバＯＳ上にソフトウェアで汎用計算機の処理機能を実現する仮想計算機を構築し、汎用計算機として用いることで、従来の計算機を使用するよりもコスト低減を目指す動きがある。
【０００３】
また、ユーザがＣＰＵ性能等の資源を必要としている時に、新たにＣＰＵをプロセッサ単位でユーザに追加するように構成変更を行うキャパシティ・オン・デマンドに関する技術も開発されている(非特許文献１)。またユーザに対して資源を可変的に割当てることを許容することにより資源の使用量に応じて課金をする従量課金システムも提案されている(非特許文献２)。
【０００４】
【非特許文献１】http://www-1.ibm.com/servers/eserver/zseries/announce/z990/on off capacity.html
【非特許文献２】http://www-1.ibm.com/servers/eserver/zseries/swprice/wlc.html
【発明の開示】
【発明が解決しようとする課題】
【０００５】
メインフレームを筆頭とする基幹系の情報処理を実施する計算機は、ユーザが利用する計算機の最大のＣＰＵ性能に性能が固定されるシステムであった。ユーザから見るとＣＰＵ性能を十分に使用していない時であっても、ユーザが使用するＣＰＵ性能は固定されていて、自由に性能を変更することはできず、結果として計算機がアイドル状態となってしまう。また、ＣＰＵ性能を変更する場合には、ユーザに対して仮想計算機を停止させた後、所定の手続きを踏むことで性能変更を実施しなければならず、非常に手間のかかる作業となる。
【０００６】
本発明の目的は、仮想計算機のＣＰＵ性能の動的変更を実現することによって、ユーザに必要なだけの計算機性能を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、仮想計算機の制御方法であって、仮想計算機の命令実行部分に含まれるダミーサイクルの値を仮想計算機の負荷の変動に応じて変更させることで仮想計算機のＣＰＵ性能を動的に変更する。これにより、仮想計算機のＣＰＵ性能を計算機を停止させることなく動的に変更する方法を提供する。
【発明の効果】
【０００８】
本発明によれば、ユーザの仮想計算機の使用状況及びユーザの計算機使用条件に従って、命令実行処理に加えるダミーサイクルを変更することで、特別な操作を要さずに仮想計算機のＣＰＵ性能を変更することができる。これにより、ユーザは仮想計算機をユーザの必要に応じた性能で使用することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【００１０】
図１は、本発明で対象とする仮想計算機を構成する上で必要な要素を示したものである。本発明で対象とする仮想計算機１２は、ハードウェア１０、ホストＯＳ１１の上にソフトウェアを用いて計算機アーキテクチャを構築する。仮想計算機１２の上層にユーザが使用するゲストＯＳ１３が存在する構成になっている。
【００１１】
図２は、本発明で対象とする仮想計算機の構造及び仮想計算機中でＣＰＵ性能の動的変更を実現する構造を示すブロック図である。仮想計算機１２中には性能監視エージェント２０、性能監視マネージャ２１が存在する。性能監視エージェント２０は、仮想計算機１２の性能に関して情報提供を行っている。性能監視マネージャ２１は、仮想計算機１２の稼動状況に応じて仮想計算機のＣＰＵ性能設定を変更することをＩＰ処理部分２３に対して指示する。
【００１２】
ここで、仮想計算機１２がＣＰＵ性能を変更する際のデータのやり取りを示す。仮想計算機１２上のゲストＯＳ１３は、仮想計算機１２が規定している、ある所定の時隔でゲストＯＳ１３の稼動情報２４のデータを収集し、稼動状況データファイル２２に稼動情報２４を格納する（２１０）。次に、性能監視エージェント２０が稼動状況データファイル２２を定期的に確認し、図４のユーザ状態表４３に示されるようにゲストＯＳ１３の稼動情報を集計する(２１１)。次に性能監視マネージャ２１が性能監視エージェント２０で取得した情報を収集し（２１２）、ユーザに対して割当てている仮想計算機のＣＰＵ性能を変更すべきか判断し、仮想計算機のＣＰＵ性能を変更する場合には、性能監視マネージャ内の制御プログラム２５からＩＰ処理部分２３に対して制御が実施される(２１３)。
【００１３】
また、図２のＩＰ処理部分２３の２０１から２０４までの処理は、本仮想計算機のＩＰ処理部分の基本処理ループを示す。ＩＰ処理の基本ループは、イベント処理２０１、命令フェッチ処理２０３、命令実行処理２０４からなるが、本手法においては、仮想計算機１２の性能変更は、ＣＰＵ性能変更処理２０２によって動的に変更される。ＣＰＵ性能変更処理２０２は、性能監視マネージャ２１が性能監視エージェント２０から得られる仮想計算機１２の稼動状況を判断した結果によって、ＩＰ処理部分２３に指示される処理２１３によって実施される。なお、ユーザに割当てるＣＰＵ処理性能を変更する処理は、この処理のみで実施される。
【００１４】
図３は、図２の仮想計算機の性能変化を可能にする仕組みを示したものである。本方式において、仮想計算機のＣＰＵ性能の動的変更はＩＰの命令処理実行処理部分にダミーサイクルを挿入することで実現する。ここで、本仮想計算機のＩＰ部分のＣＰＵ時間を一定の時隔Ｔｓで見た場合、ダミーサイクル３０と命令処理実行時間３１の２つの部分からなる構造をしている。ダミーサイクル３０と命令処理実行時間３１はダミーサイクル３０の実施時間Ｔｄと命令処理実行時間３１の実施時間Ｔｏの合計がＴｓなる条件の下であれば自由に変更可能である。ちなみに、ＩＰの処理性能が最大値をとるときは、ダミーサイクル３０の実施時間Ｔｄの値は０となる。
【００１５】
図６は、ユーザＡが仮想計算機の使用条件を決定するときの入力画面の一例を示す。図６では、仮想計算機使用条件入力画面６１によって、仮想計算機１２はユーザＡのために仮想計算機のＣＰＵ処理性能を必ず最低２.５ＭＩＰＳ分だけを割当て、ゲストＯＳ１３においてＣＰＵ利用率２０％以上８０％未満となるように稼動させる。ゲストＯＳ１３で稼働率が８０％以上となる場合は、最大１０ＭＩＰＳまではＣＰＵ性能処理を増加する契約を結んでいる。また、稼働率が２０％未満となる場合は、最小２.５ＭＩＰＳまで減少させる契約を結んでいる。
上記のような入力画面による使用条件に基づき、本仮想計算機を利用するユーザＡ社には、最低２．５ＭＩＰＳの性能分の仮想計算機のＣＰＵ資源が与えられる。本実施例においては、ユーザＡに対して２．５ＭＩＰＳのＣＰＵ処理性能を割当てているが、ゲストＯＳ１３の稼動状況によって最低２．５ＭＩＰＳから最高１０ＭＩＰＳまでのＣＰＵ処理性能が割当てられる。
【００１６】
次に仮想計算機のＣＰＵ資源割当てを動的に変更する方法について説明する。
【００１７】
図４は図２中の性能監視マネージャ２１が持っている情報を示した図である。図４のユーザ条件設定表４１は仮想計算機ＣＰＵ資源割当て表であり、図６の仮想計算機使用条件入力画面６１の内容に基づき設定する。この場合、ユーザＡに対しては５ＭＩＰＳ相当の仮想計算機のＣＰＵ資源を与え、ＣＰＵ利用率２０%以上８０％未満でプログラムを動作させることとする。仮想計算機のＣＰＵ使用率がこの条件を上回りそうな場合は１０ＭＩＰＳまでは仮想計算機のＣＰＵ処理性能を増加する使用条件となっている。また、仮想計算機のＣＰＵ使用率がこの条件を下回りそうな場合は２．５ＭＩＰＳまでは仮想計算機のＣＰＵ処理性能を減少する使用条件となっている。
【００１８】
その後、図４のユーザ条件設定表４１の情報に基づき仮想計算機のユーザ資源割当履歴表４２が作成される。ユーザ資源割当履歴表４２には、ユーザＡに対する割当ＣＰＵ処理性能における割当時間の履歴のカラムが記録される。また、ユーザＡに与えたＣＰＵ処理性能に関して、仮想計算機使用条件入力画面６１で設定したＣＰＵ使用率以上で稼働していた時間の合計及びＣＰＵ使用率未満で稼働していた時間の合計のカラムも記録される。ここで、ＣＰＵ使用率履歴の８０％以上のカラムは、ＣＰＵ使用率が仮想計算機使用条件入力画面６１で決めた上限を超えた時間が記入される。上限を超えるケースとしては、ユーザが契約した最大の仮想計算機のＣＰＵ処理性能でも処理できない負荷が入った場合が挙げられる。なお、条件超過のカラムには、ユーザが契約した仮想計算機の最大のＣＰＵ処理性能、本実施例では１０ＭＩＰＳでも処理できないほど大きな負荷が入った場合の時間が記入される。また条件未達のカラムには、ユーザが契約した仮想計算機の最小のＣＰＵ処理性能、本実施例では２.５ＭＩＰＳでもゲストＯＳ１３においてＣＰＵ使用率が２０％に達しないほど少ない負荷しかない場合の時間が計算機使用条件外の時間として記入される。
【００１９】
性能監視マネージャ２１は、性能監視エージェント２０から受け取った仮想計算機１２の運用状況、すなわちゲストＯＳ１３の稼動状況である図４のユーザ状態表４３と図４のユーザ条件表４１を照合し、現在の資源割当てが仮想計算機使用条件を満たしているかを調べ、その結果を図４のユーザ資源割当履歴表４２に格納する。仮想計算機１２の運用状況がユーザの仮想計算機使用条件を満たしていない場合は、仮想計算機１２のＣＰＵ処理性能を増やす処理、あるいは、ＣＰＵ処理性能を減らす処理を図２のＩＰ処理部分２３中の処理２０２を実行するよう指示する。図４のユーザ状態表４３では、ユーザへのＣＰＵ処理性能の割当て状況を管理するために、ユーザへのＣＰＵ性能割当のカラムを保持している。
【００２０】
上記制御を行うために、システム立上げ時に資源を分割する手順を図７を用いて説明する。
【００２１】
最初に図６の仮想計算機使用条件入力画面６１に示される情報を入力する（７０１）。仮想計算機使用条件入力画面６１に入力された情報により、性能監視マネージャ２１は、仮想計算機のユーザ条件表４１を設定する（７０２）。
【００２２】
ユーザ条件表４１を参照してユーザＡに最低２.５ＭＩＰＳのＣＰＵ処理性能を与えるべきことを性能監視マネージャ２１が検出すると、ユーザに対して割当てる仮想計算機のＣＰＵ性能をユーザ状態表４３のＣＰＵ性能割当のカラムに記述する（７０３）。
【００２３】
ユーザＡがゲストＯＳ１３を利用した時に稼動状況として集められる情報は性能監視エージェント２０が図５で示されるユーザ状態表５５として取得する。図５のユーザ状態表５５の内容に基づき、性能監視マネージャ２１ではＣＰＵ使用率のカラムが作成される。これによって、ユーザ状態表４３が作成される(７０４)。
【００２４】
さらに、ユーザ条件表４１に基づき、図４のユーザ資源割当履歴表４２を作成する（７０５）。すなわち、各ユーザに対するＣＰＵ使用率履歴やＣＰＵ性能割当履歴を記録するカラムを作成する。
【００２５】
以上により仮想計算機のＣＰＵ資源割当てに必要な情報が生成され、正しく資源割当された状態でシステムが動作開始できる。
【００２６】
次に、性能監視マネージャ２１がゲストＯＳ１３の利用状況に応じて仮想計算機のＣＰＵ資源割当てを変更する際の手順を図８を用いて説明する。
【００２７】
まず、ユーザが使用している仮想計算機１２の稼動情報は、図４の割当履歴表４２に格納される(８０１)。但し、仮想計算機１２のＣＰＵ使用率超過の場合等、ユーザの仮想計算機使用条件を満たしていない場合には、サーバの割当台数を変える制御を行うことでユーザの仮想計算機使用条件を満たすことができる場合には、ユーザの仮想計算機使用条件を満たす状態になった後にユーザ資源割当履歴表４２に格納する。図４のユーザ条件表４１と比較した後(８０２)、仮想計算機使用条件に照らしてユーザに割当てるＣＰＵ性能を削減できないかを性能監視マネージャ２１が検討する（８０３）。
【００２８】
ＣＰＵ資源の割当てを削減可能かどうかの判断方法の１例としては、ユーザのＣＰＵ利用率とユーザに提供されたＣＰＵ処理性能に対して比例計算を行う方法が挙げられる。たとえばユーザＡの仮想計算機使用条件は仮想計算機のＣＰＵ利用率が２０％以上８０％未満であるが、現在の仮想計算機のユーザ割当てＣＰＵ性能が５．０ＭＩＰＳである時に、ＣＰＵ利用率が１５％であれば、仮想計算機のユーザ割当てＣＰＵ性能を２．５ＭＩＰＳに削減してもよいと判断できる。
【００２９】
ここでは、仮想計算機のＣＰＵ性能割当てを２．５ＭＩＰＳまで削減することにする。尚、仮想計算機のＣＰＵ処理性能を削減可能の場合に、ユーザが対話処理を行っている場合には、ユーザに対して仮想計算機の性能が動的に低下したことを気づかれないように処理の終了まで待機するようにしてもよい。
【００３０】
仮想計算機のＣＰＵ割当て制御に戻る。性能監視マネージャ２１が図２のＣＰＵ性能変更処理２０２を実行するように指示する。ここで、性能変更処理は、図４の仮想計算機ＣＰＵ性能-ダミーサイクル対応表４４に従って決定するダミーサイクル３０の実施時間Ｔｄを、図３に示すように設定することで実施する。ＣＰＵ性能変更終了後、性能監視マネージャ２１は図４のユーザ状態表４３のＣＰＵ性能割当のカラムを変更する。その後、ユーザ資源割当履歴表４２において、ＣＰＵ性能割当履歴などのパラメータを変更する(８０４)。
【００３１】
続いてＣＰＵ性能を増強する必要があるかを性能監視マネージャ２１が検討する(８０５)。どのくらい仮想計算機のＣＰＵ性能を増強すべきかの判断は、削減時と同様に比例計算とする。仮想計算機のＣＰＵ性能を増強する場合に、ユーザに割当てる仮想計算機のＣＰＵ性能がＣＰＵ性能の限界を超えていないかを判断する(８０６)。もし、仮想計算機のＣＰＵ性能がＣＰＵ性能の限界を超えている場合には、計算機の運用管理者に通知し、ユーザ資源割当履歴表４２には、ＣＰＵ性能割当履歴のカラムに条件超過ということで記録される(８０７)。
【００３２】
ユーザに割当てる仮想計算機のＣＰＵ性能が仮想計算機のＣＰＵ性能範囲内である場合は、ＣＰＵ性能を新たに割り当てることができ、性能監視マネージャ２１は図２のＣＰＵ性能変更処理２０２を実行するようにＩＰ処理部分２３に指示する。指示を受けた後、図４の仮想計算機ＣＰＵ性能-ダミーサイクル対応表４４に従って決定するダミーサイクル３０の実施時間Ｔｄを図３のように設定することで、ユーザに提供される仮想計算機１２のＣＰＵ性能を動的に変更する。性能変更終了後、性能監視マネージャ２１は図４のユーザ状態表４３のＣＰＵ性能割当のカラムを変更する。その後、ユーザ資源割当履歴表４２においてＣＰＵ性能割当履歴を変更する(８０８)。
【００３３】
本発明は、ＩＰの処理部分に与えているダミーサイクル３０と命令処理実行時間３１の割合を変化させるだけで仮想計算機のＣＰＵ性能を動的に変更することが可能であるため、ＣＰＵ性能を変更する際に、仮想計算機を停止させたり、特別な操作をしたりする必要がないというメリットがある。
【図面の簡単な説明】
【００３４】
【図１】本発明で対象とする仮想計算機及び仮想計算機周辺の構成を示すブロック図である。
【図２】本発明で対象とする仮想計算機の構造及び仮想計算機中でＣＰＵ性能の動的変更を実現する構造を示すブロック図である。
【図３】本発明で対象とする仮想計算機の単位当りの時間におけるＩＰ処理部分での性能変更機構を示すブロック図である。
【図４】本発明で対象とする仮想計算機の性能監視マネージャが持つ情報を示すブロック図である。
【図５】本発明で対象とする仮想計算機の性能監視エージェントが持つ情報を示すブロック図である。
【図６】仮想計算機使用条件の入力画面を示す図である。
【図７】仮想計算機の資源の初期割当を実施する手順を示すフロー図である。
【図８】仮想計算機の資源割当の動的変更を実施する手順を示すフロー図である。
【符号の説明】
【００３５】
１１  ホストＯＳ
１２  仮想計算機
１３  ゲストＯＳ
２０  性能監視エージェント
２１  性能監視マネージャ
２３  ＩＰ処理部分
４１  ユーザ条件設定表
４２  ユーザ資源割当履歴表
４３  ユーザ状態表
４４  仮想計算機ＣＰＵ性能−ダミーサイクル対応表
６１  仮想計算機使用条件入力画面
【図１】
2006065430.tif 000003
【図２】
2006065430.tif 000004
【図３】
2006065430.tif 000005
【図４】
2006065430.tif 000006
【図５】
2006065430.tif 000007
【図６】
2006065430.tif 000008
【図７】
2006065430.tif 000009
【図８】
2006065430.tif 000010