(57)【要約】【課題】複数の仮想計算機への資源の割当てを動的に再配分するにあたって、資源の割当てを最適化して、近い将来に他のＬＰＡＲの性能不足が発生しにくいように、各ＬＰＡＲに割当てられた資源を配分する。【解決手段】資源管理サーバが、仮想計算機ＬＰＡＲの資源の使用状態を収集し、収集したデータに基づき、資源の使用状態を予測する。また、過去の仮想計算機ＬＰＡＲの実行履歴により、各々の仮想計算機ＬＰＡＲの資源の使用状態についての相関関係を算出する。そして、予測値と算出した相関係数とに基づき、各々の仮想計算機ＬＰＡＲの資源割当て値を算出し、その資源割当て値にしたがって、各々の仮想計算機ＬＰＡＲの資源割当てをおこなう。【選択図】        図１
2004199561.tif 000002
【特許請求の範囲】
【請求項１】
計算機の資源を複数の計算機に割当てて、各々の計算機で独立してプログラムを実行する計算機システムの計算機資源割当方法において、
(１)前記計算機の資源使用状態を収集するステップ、
(２)前記収集したデータに基づき、各々の計算機の資源使用についての相関関係を算出するステップ、
(３)前記収集したデータと前記算出した相関係数とに基づき、各々の計算機の資源割当て値を算出し、その資源割当て値にしたがって、各々の計算機の資源割当てをおこなうステップ
を有することを特徴とする計算機資源割当方法。
【請求項２】
前記(３)のステップが、前記収集したデータに基づいて、各々の計算機の資源使用状態を予測し、その予測した資源使用状態と前記算出した相関係数とに基づき、各々の計算機の資源割当て値を算出する処理を含むことを特徴とする請求項１記載の計算機資源割当方法。
【請求項３】
前記(３)のステップで資源を割当てる必要のあると判断された計算機に対して、他の計算機の資源の割当てを減じて、減じた資源をその計算機に再割り当てするに際し、
その計算機と前記相関係数の大きい計算機ほど資源の割当てを減じないことにしたことを特徴とする請求項１記載の計算機資源割当方法。
【請求項４】
時間帯や各々の計算機で動作しているプログラムの特性に応じて相関係数を切り替える処理を含むことを特徴とする請求項１記載の計算機資源割当方法。
【請求項５】
計算機の資源を複数の計算機に割当てて、各々の計算機で独立してプログラムを実行する計算機システムの計算機資源割当を管理するための資源管理サーバにおいて、
計算機の資源使用状態を収集する資源使用状態データ収集部と、
前記収集したデータに基づき、各々の計算機の資源使用についての相関関係を算出する相関係数算出部と、
前記収集したデータと前記算出した相関係数とに基づき、各々の計算機の資源割当て値を算出し、その資源割当て値にしたがって、各々の計算機の資源割当てをおこなう資源割当部とを有することを特徴とする資源管理サーバ。
【請求項６】
さらに、前記収集したデータに基づいて、各々の計算機の資源使用状態を予測する資源使用予測部を有し、その予測した資源使用状態に基づき前記資源割当部が資源の割当てをおこなうことを特徴とする請求項５記載の資源管理サーバ。
【請求項７】
資源割当部が、資源を割当てる必要のあると判断された計算機に対して、他の計算機の資源の割当てを減じて、減じた資源をその計算機に再割り当てするに際し、
その計算機と前記相関係数の大きい計算機ほど資源の割当てを減じないことにしたことを特徴とする請求項５記載の資源管理サーバ。
【請求項８】
前記相関係数算出部が、時間帯や各々の計算機で動作しているプログラムの特性に応じて切り替えて、相関係数を算出することを特徴とする請求項５記載の資源管理サーバ。
【請求項９】
計算機の資源を複数の計算機に割当てて、各々の計算機で独立してプログラムを実行する計算機システムにおいて、
この計算機システムの有する資源管理サーバは、前記計算機の資源使用状態を収集し、その収集したデータに基づき、各々の計算機の資源使用についての相関関係を算出して、前記収集したデータと前記算出した相関係数とに基づき、各々の計算機の資源割当て値を算出し、その資源割当て値を、計算機の資源割当てを制御する機構に送信し、
計算機の資源割当てを制御する機構は、その資源割当て値に基づいて、各々の計算機の資源割当てをおこなうことを特徴とする計算機システム。
【請求項１０】
前記資源管理サーバは、資源を割当てる必要のあると判断した計算機に対して、他の計算機の資源を、その資源を割当てる必要のあると判断した計算機の資源として移動させるときに、
その計算機と前記相関係数の大きい計算機ほど資源の移動をさせないようにし、
その計算機と前記相関係数小さい計算機ほど資源の移動をさせるようにすることを特徴とする請求項９記載の計算機システム。
【請求項１１】
前記資源を割当てる計算機が、複数の計算機上に構成されたことを特徴とする請求項９記載の計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機資源割当方法に係り、複数の仮想計算機への資源を動的に割り当てるにあたって、資源の割当てを最適化して、各々の仮想計算機の相関から計算機資源の配分を理想的におこなう計算機資源割当方法に関する。
【０００２】
【従来の技術】
仮想計算機システムにおいては、ＣＰＵ（命令プロセッサ）、メモリ（主記憶）、および、チャネルなどの物理計算機が有している資源を、ハイパバイザが論理的に分割し、複数の仮想計算機ＬＰＡＲに割当てる。仮想計算機ＬＰＡＲ(Logical Partition)は、実在する物理計算機の資源を論理的に分割している仮想的な計算機である。
【０００３】
仮想計算機システムについては、例えば、特許文献１の従来技術の項で紹介されている。
【０００４】
また、仮想計算機システムに割当てられたメモリの構成を動的に変更する方法としては、特許文献２に開示されている。
【０００５】
【特許文献１】
米国特許第４５６４９０３号明細書
【特許文献２】
特開平６−３４８５８４号公報
【０００６】
【発明が解決しようとする課題】
仮想計算機システムは、一台のハードウェアとしての計算機で複数のＯＳを同時に実行することができ、用途によっては非常に有用なシステムであるということができる。
【０００７】
そして、仮想計算機システムにおいては、資源の割当ては、負荷の高い仮想計算機ＬＰＡＲほど、多く割り当てることが望ましく、資源を動的に変更する機能が必要となってくる。
【０００８】
従来の仮想計算機システムの資源の割当てにおいては、自システム（自ＬＰＡＲ）の負荷の変化に基づいておこなっているため、他システム（他ＬＰＡＲ）と連携した複合システムの場合に、他システムの負荷の変化を想定して資源の割当てを変更することはできなかった。そのため、資源の割当てを変更しても、近い将来に他システムで性能不足が発生するおそれがあり、他システムと調整して資源の割当てを変更しても、他システムに性能不足が波及しないように資源を配分することは困難であった。
【０００９】
例えば、仮想計算機システムの各ＬＰＡＲにおいて、インターネットのＷＥＢサーバ、データベースサーバ、開発用のテストサーバをそれぞれ運用しており、ＷＥＢサーバの負荷が増大すると近い将来にデータベースサーバの負荷が増大するといった相関関係が見られる場合であっても、ＷＥＢサーバの負荷が増大した時点では、近い将来データベースサーバの性能が不足し得ることを想定した資源の再割当をおこなう仕組みは、従来では提供されておらず、データベースサーバの性能が不足した時点で再び資源の再割当をおこなう必要があるという問題点があった。
【００１０】
本発明は、上記問題点を解決するためになされたもので、その目的は、複数の仮想計算機への資源の割当てを動的に再配分するにあたって、資源の割当てを最適化して、各々の仮想計算機の相関から計算機資源の配分を理想的におこなうようにして、近い将来に他の仮想計算機の性能不足が発生しにくいように、各仮想計算機に割当てられた資源を配分することを可能にする計算機資源割当方法を提供することにある。
【００１１】
【課題を解決するための手段】
上記問題点を解決するために、本発明の仮想計算機システムの計算機資源割当方法は以下のようにした。資源管理サーバが、仮想計算機ＬＰＡＲの資源の使用状態を収集し、収集したデータに基づき、資源の使用状態を予測する。また、過去の仮想計算機ＬＰＡＲの実行履歴により、各々の仮想計算機ＬＰＡＲの資源の使用状態についての相関関係を算出する。
【００１２】
そして、予測値と算出した相関係数とに基づき、各々の仮想計算機ＬＰＡＲの資源割当て値を算出し、その資源割当て値にしたがって、各々の仮想計算機ＬＰＡＲの資源割当てをおこなう。
【００１３】
このときに、ある仮想計算機ＬＰＡＲにおいて資源の割当不足が予測されるとき、その仮想計算機ＬＰＡＲとの相関係数が小さい仮想計算機ＬＰＡＲに割当てていた資源を優先的に資源の割当が不足した仮想計算機ＬＰＡＲへ割当て、その仮想計算機ＬＰＡＲとの相関係数が大きい仮想計算機ＬＰＡＲ（近い将来に性能不足が発生しやすい傾向があるＬＰＡＲ）に割当てていた資源はなるべく減じないことにする。
【００１４】
これは、二つの仮想計算機ＬＰＡＲの相関係数が大きい場合、一方の仮想計算機ＬＰＡＲが使用する資源が増加すると他方の仮想計算機ＬＰＡＲが使用する資源も同時に、あるいは、近い将来に増加する傾向がある。すなわち、ある仮想計算機ＬＰＡＲにおいて資源不足が予測されるとき、その仮想計算機ＬＰＡＲとの相関係数が大きい仮想計算機ＬＰＡＲは、近い将来に性能不足が発生しやすい傾向があるためである。
【００１５】
このようにすることにより、近い将来に各仮想計算機ＬＰＡＲの性能不足が発生しにくいように、各仮想計算機ＬＰＡＲに割当てられた資源を再配分することが可能になる。
【００１６】
すなわち、上記の手段によって、資源管理サーバが各ＬＰＡＲの資源を管理するシステムにおいて、あるＬＰＡＲの資源の割当不足が予測されたときに、各ＬＰＡＲ間の相関関係に基づき、資源の割当不足が予測されたＬＰＡＲとの相関関係が低いＬＰＡＲから優先的にＣＰＵ割当率、およびメモリ割当量を減じることにより、効率よく各ＬＰＡＲに資源を再割当てすることが可能になる。
【００１７】
また、各仮想計算機ＬＰＡＲを、複数の物理計算機上に構成し、資源管理サーバが資源の管理を複数の物理計算機上にわたっておこなえるようにする。
【００１８】
このようにすれば、各ＬＰＡＲが複数の物理計算機にある場合に、これらの物理計算機の合計の資源割当の上限が定められた設定であっても、設定の範囲内で効率よく各物理計算機の資源の割当を増減しながら各ＬＰＡＲの資源の割当を再配分することが可能になる。
【００１９】
【発明の実施の形態】
以下、本発明に係る各実施形態を、図１ないし図１４を用いて説明する。
【００２０】
〔仮想計算機システムの構成〕
先ず、図１を用いて本発明に係る計算機資源割当方法をおこなう仮想計算機システムの構成について説明する。
図１は、本発明に係る計算機資源割当方法をおこなう仮想計算機システムの構成図である。
【００２１】
本発明の仮想計算機システムは、物理計算機１２１と資源管理サーバ１０１が、ネットワーク１３１により、接続された構成である。
【００２２】
ここで、物理計算機１２１と言うのは、仮想計算機と対比した語であり、ハードウェアとしての計算機に、論理的な仮想計算機が構築されることを意味している。
【００２３】
資源管理サーバは、物理計算機１２１上に構築される仮想計算機ＬＰＡＲ１２２上に割当てる資源を管理して、適切な資源配分をおこなうために指示を与えるサーバである。
【００２４】
資源管理サーバ１０１は、機能モジュールとして、資源使用状態収集部１０２、相関係数算出部１０３、資源使用予測部１０４、資源不足検出部１０５、資源割当決定部１０６を持ち、データテーブルとしては、資源使用状態テーブル１０７、相関係数テーブル１０８、資源使用予測テーブル１０９、資源割当設定テーブル１１０、および、資源割当情報テーブル１１１を備えている。
【００２５】
物理計算機１２１は、複数の仮想計算機ＬＰＡＲ１２２が構築され、独立して動作することができる。また、物理計算機１２１上のＣＰＵ、メモリが各仮想計算機ＬＰＡＲ１２２に割り当てられ、見かけ上は、各々の仮想計算機ＬＰＡＲ１２２が、ＣＰＵ１２４、メモリ１２５を有しているように見ることができる。また、仮想計算機ＬＰＡＲ１２２は、資源使用測定部１２３を有し、その仮想計算機ＬＰＡＲ１２２の資源の使用に関するデータを測定している。
【００２６】
ハイパバイザ１２６は、物理計算機１２１を論理的に分割し、複数の仮想計算機ＬＰＡＲ１２２を構成するための制御機能であり、各仮想計算機ＬＰＡＲ１２２に資源を割り当てるための資源割当部１２７を有している。
【００２７】
仮想計算機ＬＰＡＲ１２２の資源使用測定部１２３は、定期的にＬＰＡＲ１２２の資源の使用状態に関するデータ、すなわち、ＣＰＵ１２４の使用率、および、メモリ１２５の使用量を測定し、資源管理サーバ１０１の資源使用状態収集部１０２へ測定した資源の使用状態に関するデータを送信する。資源使用状態収集部１０２は、受け取った資源の使用状態に関するデータを収集し、資源使用状態テーブル１０７、および資源割当情報テーブル１１１へ格納する。
【００２８】
次に、相関係数算出部１０３は、資源使用状態テーブル１０７を使用して各ＬＰＡＲの相関係数を算出し、相関係数テーブル１０８へ格納する。相関係数とは、各仮想計算機ＬＰＡＲ１２２が、動作時に他の仮想計算機ＬＰＡＲ１２２とどのような資源の使用状態の相関を持って動作するかを表す指数であり、これについては後に説明する。
【００２９】
次に、資源使用予測部１０４は、前記資源使用状態収集部１０２がデータを収集するたびに、前記資源使用状態テーブル１０７を使用して各ＬＰＡＲの、動作状態における資源の使用状態を予測して、資源使用予測テーブル１０９へ格納する。
【００３０】
次に、資源不足検出部１０５において、格納した資源使用予測テーブル１０９に基づき、各ＬＰＡＲの資源が不足するかどうか判定する。資源が不足する場合には、資源割当決定部１０６において、資源の再割当の配分を決定し、資源割当情報テーブル１１１へ決定した資源の割当に関する情報を格納し、さらに、資源割当情報テーブル１１１のデータを、ハイパバイザ１２６の資源割当部１２７へ送信する。資源割当部１２７は、その配分情報に従って、仮想計算機ＬＰＡＲ１２２に対するＣＰＵ１２４、および、メモリ１２５の割当配分を変更する。
【００３１】
なお、本実施形態では、計算機資源は、ＣＰＵとメモリを例にして説明するが、その他の計算機資源でもよい。例えば、仮想計算機ＬＰＡＲ１２２のディスクの数、チャネルの数などのＩ／Ｏに関する資源でもよい。
【００３２】
〔計算機資源割当方法のためのデータ構造〕
次に、図２ないし図６を用いて本発明に係る計算機資源割当方法のためのデータ構造について説明する。
図２は、資源使用状態テーブル１０７のテーブル構造を示す図である。
図３は、相関係数テーブル１０８のテーブル構造を示す図である。
図４は、資源使用予測テーブル１０９のテーブル構造を示す図である。
図５は、資源割当設定テーブル１１０のテーブル構造を示す図である。
図６は、資源割当情報テーブル１１１のテーブル構造を示す図である。
【００３３】
資源使用状態テーブル１０７は、仮想計算機ＬＰＡＲ１２２ごとに用意され、各資源の状態を時系列で格納するためのテーブルであり、図２に示されるように、ＬＰＡＲ番号２０１を有し、さらに、ＣＰＵ使用率２０３、および、メモリ使用量２０４を時刻２０２についての時系列で格納される。
【００３４】
ＣＰＵ使用率２０３には、時刻２０２に示される時刻にその仮想計算機ＬＰＡＲ１２２が、物理計算機１２１のＣＰＵを実際に使用した時間の割合を百分率（％）で示した値が格納される。例えば、１０：２５から１０：３０までの５分間に、ＬＰＡＲ１がＣＰＵを合計２分間使用した場合、ＣＰＵ使用率は２分／５分×１００＝４０％である。メモリ使用量２０４には、その仮想計算機ＬＰＡＲ１２２が実際に使用したメモリの量が格納される。
【００３５】
この資源使用状態テーブル１０７には、このように資源使用状態収集部１０２が各ＬＰＡＲ１２２から収集した資源の使用状態に関するデータが時系列で格納され、相関係数算出部１０３における相関係数の算出、資源使用予測部１０４における資源の使用状態の予測のために使用される。
【００３６】
相関係数テーブル１０８は、仮想計算機ＬＰＡＲ１２２の資源の使用状態の実績から仮想計算機ＬＰＡＲ１２２間の資源の使用状態の相関を表した相関係数を格納するためのテーブルであり、図３に示されるように、ＬＰＡＲ番号３０１ごとに、各仮想計算機ＬＰＡＲ１２２の全てのＬＰＡＲ３０２、３０３、３０４との組み合わせについての相関係数が格納される。
【００３７】
相関係数とは、任意の２つのＬＰＡＲの資源の使用状態の相関関係を示す値である。ＬＰＡＲｉとＬＰＡＲｊの相関係数をｋijとすると、０≦ｋij≦１であり、ｋij＝０のときは両者の資源の使用状態には相関関係がなく、ｋij＝１のときは、両者の性能には密接な相関関係があるものとして定義する。相関係数ｋijが大きい（１に近い）場合には、ＬＰＡＲｉが使用する資源が増加するとＬＰＡＲｊが使用する資源も同時に、あるいは、近い将来に増加する傾向があることに注意しておく。また、相関係数ｋijが小さい（０に近い）場合には、ＬＰＡＲｉが使用する資源は、ＬＰＡＲｊが使用する資源の増減に影響されず、無関係に増減する傾向があることに注意しておく。
【００３８】
この相関係数テーブル１０８には、相関係数算出部１０３が資源使用状態テーブル１０７に基づいて算出した相関係数が格納され、資源割当決定部１０６において仮想計算機ＬＰＡＲ１２２に対する資源の割当てのために使用される。
【００３９】
は資源使用予測テーブル１０９は、各仮想計算機ＬＰＡＲ１２２ごとの資源の使用状態を予測した値を格納するためのテーブルであり、図４に示されるように、ＬＰＡＲ番号４０１ごとに予測ＣＰＵ使用率４０２、および、予測メモリ使用量４０３が格納される。
【００４０】
この資源使用予測テーブル１０９には、資源使用予測部１０４が資源使用状態テーブル１０７に基づいて算出した予測データが格納される。例えば、資源使用状態テーブル１０７に５分間隔でデータが格納され、１０：３０のデータまで格納されたとき、資源使用予測部１０４は次のタイミング、すなわち１０：３５に予測されるデータを算出し、資源使用予測テーブル１０９へ前記予測されるデータを格納する。
【００４１】
資源割当設定テーブル１１０は、仮想計算機ＬＰＡＲ１２２ごとに、資源の割当てのための範囲を規定するためのテーブルであり、図５に示されるように、ＬＰＡＲ番号５０１ごとに、その仮想計算機ＬＰＡＲ１２２が契約しているＣＰＵ割当率の最大値５０２、最小値５０３、および、メモリ割当量の最大値５０４、最小値５０５が格納される。
【００４２】
資源割当設定テーブル１１０には、予め、各ＬＰＡＲの資源割当てのための最大値、最小値を設定しておき、その値が変更されるときには更新される。
【００４３】
ＣＰＵ割当率とは、物理計算機１２１が有するＣＰＵをその仮想計算機ＬＰＡＲ１２２に割当てている時間を百分率（％）で示したものである。例えば、５分間に３０秒間だけＬＰＡＲ１へＣＰＵを割当てている場合には、ＣＰＵ割当率は１０％である。ＣＰＵ割当率とＣＰＵ使用率は異なる値であり、同じ時間帯ではＣＰＵ割当率≧ＣＰＵ使用率である。例えば、前記３０秒間の割当て（ＣＰＵ割当率は１０％）のうち、実際に、ＬＰＡＲ１がＣＰＵを使用した時間が１５秒間であれば、ＣＰＵ使用率は５％である。同様に、メモリ割当率とは、物理計算機が有するメモリを該ＬＰＡＲに割当てた量である。同じ時間帯ではメモリ割当率≧メモリ使用量である。
【００４４】
資源割当情報テーブル１１１は、各仮想計算機ＬＰＡＲ１２２に対する資源の割当てを決定するために使用されるテーブルであり、ＬＰＡＲ番号６０１ごとに、ＣＰＵ割当率６０２、およびメモリ割当量６０３を有する。
【００４５】
変更前の資源割当情報テーブル１１１（図６（ａ））には、資源使用状態収集部１０２が各ＬＰＡＲから収集した資源の使用状態の情報が格納され、資源不足検出部１０５、および、資源割当決定部１０６によって資源の割当てを決定するために使用される。
【００４６】
資源割当決定部１０６によって、決定された資源の割当ての情報は、再び、資源割当情報テーブル１１１に格納される。そして、この変更された資源割当情報テーブル１１１（図６（ｂ））の値は、ハイパバイザ１２６の資源割当部１２７へ送信される。
【００４７】
〔計算機資源割当方法のための処理〕
次に、図７ないし図１３を用いて本発明に係る計算機資源割当方法のための処理について説明する。
【００４８】
最初に、図７により本発明の計算機資源割当方法の処理の概要について説明する。
図７は、本発明に係る計算機資源割当方法の処理を示すゼネラルチャートである。
【００４９】
先ず、資源使用状態収集処理では、資源管理サーバ１０１の資源使用状態収集部１０２は、各仮想計算機ＬＰＡＲ１２２の資源使用状態を収集して、その仮想計算機ＬＰＡＲ１２２の資源使用状態テーブル１０７に格納する（Ｓ７０１）。
【００５０】
次に、相関係数算出処理では、資源管理サーバ１０１の相関係数算出部１０２は、資源使用状態テーブル１０７を参照して、仮想計算機ＬＰＡＲ１２２間の相関係数を求めて、相関係数テーブル１０８に格納する（Ｓ７０２）。
【００５１】
次に、資源使用予測処理では、資源管理サーバ１０１の資源使用予測部１０４は、資源使用状態テーブル１０７を参照して、仮想計算機ＬＰＡＲ１２２間の資源の使用状態を予測して、資源使用予測テーブル１０９に格納する（Ｓ７０３）。
【００５２】
次に、資源割当決定処理では、資源管理サーバ１０１の資源割当決定部１０６は、資源の割当ての変更をおこなう仮想計算機ＬＰＡＲ１２２を決定して、新たな資源割当ての配分を求めて、それを資源割当テーブル１１１に格納して、ハイパーバイザ１２６に送信する（Ｓ７０４）。
【００５３】
以下、各処理の詳細について説明する。
【００５４】
先ず、図８により資源使用状態収集処理について説明する。
図８は、資源使用状態収集処理を示すフローチャートである。
【００５５】
先ず、資源使用状態収集部１０２は、仮想計算機ＬＰＡＲ１２２から、例えば、以下の表１に示されるような資源の使用状態のデータ００１を収集する（Ｓ８０１）。
【００５６】
【表１】
2004199561.tif 000003
そして、資源の使用状態のデータ００１に含まれる時刻００３、ＣＰＵ使用率００４、メモリ使用量００５を、それぞれ資源使用状態テーブル１０７の時刻２０２、ＣＰＵ使用率２０３、メモリ使用量００４に格納する（Ｓ８０２）。
【００５７】
次に、資源の使用状態のデータ００１に含まれるＣＰＵ割当率００６、メモリ割当量００７を、それぞれ資源割当テーブル１１１のＣＰＵ割当率６０２、メモリ割当量６０３に格納する（Ｓ８０３）。
【００５８】
次に、図９により相関係数算出処理について説明する。
図９は、相関係数算出処理を示すフローチャートである。
【００５９】
先ず、相関係数算出部１０３は、相関係数算出部１０３は、資源使用状態テーブル１０７から各仮想計算機ＬＰＡＲ１２２の資源使用状態のデータを取得する（Ｓ９０１）。次に、各仮想計算機ＬＰＡＲ１２２間の相関係数を算出する。
【００６０】
相関係数は、図３の相関係数テーブルの見られるように、ＬＰＡＲ番号の全ての組み合わせについてそれぞれ算出する（Ｓ９０２）。例えば、ＬＰＡＲがｎ個あるときは、ｎ×ｎ個の組み合わせについて相関係数を算出する。ＬＰＡＲｉの資源使用状態テーブル１０７からＣＰＵ使用率２０３、あるいは、メモリ使用量２０４を時刻２０２についての時系列で取り出し、これらをベクトルとして表現し、ｐi＝（ｐi1，ｐi2，…，ｐit）としたとき、ＬＰＡＲｉとＬＰＡＲｊの相関係数ｋijはベクトルの内積およびベクトル長を使用して、以下の（式１）で求めることができる。
【００６１】
【数１】
2004199561.tif 000004
このようにして、相関係数は、ＣＰＵ使用率、およびメモリ使用量のそれぞれについて算出することができる。そして、算出した相関係数を相関係数テーブル１０８へ格納する（Ｓ９０３）。相関係数は、ＣＰＵ使用率、およびメモリ使用量のそれぞれについて格納することができる。またいずれか一方のみ、あるいは両者の平均値を格納することもできる。
【００６２】
各ＬＰＡＲ上で動作しているプログラムは時間帯によってオンライン運用やバッチ運用といったように大幅に特性が異なるため、前記相関係数の算出に使用する資源使用状態のデータを時間帯によって切り分けることにより、時間帯ごとに最適な相関係数を算出することができる。また、新たな運用を開始する場合には、相関係数の算出に使用するための資源の使用状態に関するデータが未整備であることが考えられるため、新たな運用をおこなうための仮想計算機ＬＰＡＲ１２２についての相関係数を、別の手段により計算するなり、予測するなどして、入力してテーブルに格納することもできる。
【００６３】
次に、図１０により資源使用予測処理について説明する。
図１０は、資源使用予測処理を示すフローチャートである。
【００６４】
先ず、資源使用状態テーブル１０７から各仮想計算機ＬＰＡＲ１２２のＣＰＵ使用率２０３、および、メモリ使用量２０４を時刻２０２についての時系列で取得する（Ｓ１００１）。そして、ＬＰＡＲそれぞれについて、前記取得した資源使用状態データに基づいて資源の使用状態を予測する（Ｓ１００２）。資源使用状態の予測においては、例えば、最近の過去ｍ回の資源使用状態データを滑らかな曲線、あるいは、直線で結ぶｍ−１次関数を利用するという技法により、次に資源使用状態データが送られてくるタイミングに相当する時刻の資源使用状態を導き出すことができる。
【００６５】
資源使用状態の予測はＣＰＵ使用率、およびメモリ使用量のそれぞれについて算出する。
【００６６】
次に、前記予測した値を資源使用予測テーブル１０９の予測ＣＰＵ使用率４０２、および、予測メモリ使用量４０３に格納する（Ｓ１００３）。
【００６７】
次に、図１１により資源割当決定処理について説明する。
図１１は、資源割当決定処理を示すフローチャートである。
【００６８】
先ず、資源割当情報テーブル１１１から各仮想計算機ＬＰＡＲ１２２のＣＰＵ割当率６０２、および、メモリ割当量６０３を取得する（Ｓ１１０１）。
【００６９】
次に、資源使用予測テーブル１０９から各仮想計算機ＬＰＡＲ１２２の予測ＣＰＵ使用率４０２、および、予測メモリ使用量４０３を取得する（Ｓ１１０２）。
【００７０】
次に、資源割当設定テーブル１１０から各仮想計算機ＬＰＡＲ１２２の最大ＣＰＵ割当率５０２、および、最大メモリ割当量５０４を取得する（Ｓ１１０３）。
【００７１】
そして、Ｓ１１０４からＳ１１０７の処理について、ＬＰＡＲ番号ｉ＝１，２，３のそれぞれについて繰り返す。
【００７２】
ＬＰＡＲｉのＣＰＵ、メモリのそれぞれについて、資源の不足が予測され、かつ、ＣＰＵやメモリの割当てを増強できる場合、すなわち、条件式「割当値＜予測値、かつ、割当値＜最大割当値」が満たされる場合には、Ｓ１１０６に進み、資源割当配分決定処理をおこない、前記条件式が満たされない場合には、Ｓ１１０７に進み、資源割当配分決定処理をおこなう（Ｓ１１０５）。資源割当配分決定処理は、サブルーチンであり、次に詳細に説明する。
【００７３】
ＬＰＡＲ番号ｉ＝１，２，３のそれぞれについての処理が終了している場合は、Ｓ１１０８に進む（Ｓ１１０７）。
【００７４】
最後に、資源割当情報テーブル１１１に格納されているデータをネットワーク１３１を経由してハイパバイザ１２６の資源割当部１２７へ送信する（Ｓ１１０８）。
【００７５】
次に、図１２により資源割当配分決定処理について説明する。
図１２は、資源割当配分決定処理を示すフローチャートである。
【００７６】
この処理は、図１１のＳ１１０５でコールされる処理であり、資源の不足が予測されたＬＰＡＲｉが発生した場合に、他の仮想計算機ＬＰＡＲ１２２から資源を移動させて、ＬＰＡＲｉと他仮想計算機ＬＰＡＲ１２２との相関関係に応じて資源の不足が予測されたＬＰＡＲｉに再割当てをおこなう処理である。
【００７７】
先ず、資源使用予測テーブル１０９から各仮想計算機ＬＰＡＲ１２２の予測値を取得する（Ｓ１２０１）。予測値とは、予測ＣＰＵ使用率４０２、および予測メモリ使用量４０３のうち、Ｓ１１０５の判定において資源割当の不足が検出されたものである。
【００７８】
次に、資源割当情報テーブル１１１から各仮想計算機ＬＰＡＲ１２２の割当値を取得する（Ｓ１２０２）。割当値とは、ＣＰＵ割当率６０２、および、メモリ割当量６０３のうち、Ｓ１１０５の判定において、資源割当の不足が検出されたものである。
【００７９】
次に、ＬＰＡＲｊの予測される資源割当不足値「ｄi＝予測値−割当値」を算出する（Ｓ１２０３）。
【００８０】
次に、ＬＰＡＲｊ（ｊ＝１，２，３）の予測される未使用予測値「ｓj＝割当値−予測値」を算出する（Ｓ１２０４）。ｓj＜０のときはｓj＝０とする。
【００８１】
次に、相関係数テーブル１０８からＬＰＡＲｉと各ＬＰＡＲｊとの相関係数ｋijを取得する。
【００８２】
Ｓ１２０６からステップ１２０８は、ＬＰＡＲ番号ｊ＝１，２，３について繰り返す処理である。
【００８３】
前記算出したｄi、ｓj、および、前記取得したｋijをもとにＬＰＡＲｊ（ｊ＝１，２，３）の割当値を変更する（Ｓ１２０７）。ＬＰＡＲｊの割当値の変更分Δjは以下の（式２）によって算出することができる。
【００８４】
【数２】
2004199561.tif 000005
ここで、前記変更分Δjがｓjよりも大きいときはΔj＝ｓjとする。また、Δjは、前記の（式２）に限らず、相関係数ｋijに基づく任意の配分方法で決定することができる。前記算出したΔjを前記割当値から減じた値を、資源割当情報テーブル１１１のＣＰＵ割当率６０２、ないし、メモリ割当量６０３へ格納する（Ｓ１２０９）。
【００８５】
ここで、図３、図４、および、図６に示す数値を用い、ＬＰＡＲ１のＣＰＵ資源の割当が不足し、他のＬＰＡＲに割当てていたＣＰＵ資源を減じて、ＬＰＡＲ１へ割当てるケースにおける具体例を説明する。
【００８６】
ＬＰＡＲ１のＣＰＵ資源不足値は、予測値４０２＝５０％、割当値６０２＝４０％であるため、ＬＰＡＲ１の資源不足値は「ｄ1＝１０％」である。また、各ＬＰＡＲｉの予測されるＣＰＵの未使用予測値ｓiは「ｓ1＝０％、ｓ2＝３０％−１０％＝２０％、ｓ3＝３０％−２０％＝１０％」である。したがって、各ＬＰＡＲｉから減じるＣＰＵ割当率ΔiはΔ1＝０％、Δ2＝８．５７％≒９％、Δ3＝１．４３％≒１％である。すなわち、ＬＰＡＲ２からΔ2＝９％、ＬＰＡＲ３からΔ3＝１％のＣＰＵ資源を削減してＬＰＡＲ１へ「Δ2＋Δ3＝１０％」のＣＰＵ資源を割当てることができる。
【００８７】
そして、Δ2、Δ3により資源の再配分をおこなうことにより、ＬＰＡＲ１、ＬＰＡＲ２、ＬＰＡＲ３の新たな構成は、ＬＰＡＲ１のＣＰＵ割当率＝４０％＋Δ2＋Δ3＝５０％、ＬＰＡＲ２のＣＰＵ割当率＝３０％−Δ2＝２１％、ＬＰＡＲ３のＣＰＵ割当率＝３０％−Δ3＝２９％となる。
【００８８】
このケースでは、ＬＰＡＲ１とＬＰＡＲ３の相関係数が大きい（１に近い）ため、ＬＰＡＲ１のＣＰＵ資源が不足すると近い将来にＬＰＡＲ３のＣＰＵ資源も不足しやすい傾向があるが、上記算出したように、ＬＰＡＲ１の資源の割当てが不足するときに、ＬＰＡＲ１との相関関係の低いＬＰＡＲ２のＣＰＵ割当率をΔ2（＝９％）によって多く減じ、ＬＰＡＲ１との相関関係の高いＬＰＡＲ３は、近い将来の資源の割当て不足に備えて、Δ3（＝１％）で示される値しか割当率を減少させないので、ＬＰＡＲ３の資源の割当てをあまり減らさないで済むことになる。
【００８９】
なお、上記の実施形態での説明では、資源の割当を調節するために、資源使用状態のデータから予測値を求め、それにより、仮想計算機ＬＰＡＲ１２２の資源の再配分を調節する方法について述べてきた。しかしながら、資源使用状態のデータから予測値を求めずとも、直接に、図２の資源使用状態テーブルのデータを参照して、資源の割当をおこなうための仮想計算機ＬＰＡＲ１２２とその資源の配分の割合いを求めることにしてもよい。
【００９０】
次に、図１３により資源使用測定処理について説明する。
図１３は、資源使用測定処理を示すフローチャートである。
【００９１】
資源使用測定処理は、各仮想計算機ＬＰＡＲ１２２上の資源使用測定部１２３により、一定時間間隔でシステムが停止するまでおこなわれる。
【００９２】
Ｓ１３０１からＳ１３０４は、一定の時間間隔でシステムが停止するまで繰り返し動作する。
【００９３】
先ず、各仮想計算機ＬＰＡＲ１２２のＣＰＵ１２４のＣＰＵ使用率とＣＰＵ割当率、および、メモリ１２５のメモリ使用量とメモリ割当量を測定する（Ｓ１３０２）。
【００９４】
次に、前記測定した資源使用データ、ＬＰＡＲ番号、および、時刻を前記表１の資源使用データ００１の形式によって、資源管理サーバ１０１の資源使用状態収集部１０２へ送信する（Ｓ１３０３）。資源使用状態収集部１０２は資源使用データ００１を受信すると、図７に示した計算機資源割当方法の処理を開始する。
【００９５】
〔他の実施形態〕
以下、本発明に係る計算機資源割当方法をおこなう仮想計算機システムの他の構成について説明する。
図１４は、本発明に係る計算機資源割当方法をおこなう仮想計算機システムの他の構成図である。
【００９６】
本実施形態では、物理計算機１４０３は、第一の実施形態と同様に複数の仮想計算機ＬＰＡＲ１４０４を有する。資源管理サーバ１４０１、および、ＬＰＡＲ１４０４は、ネットワーク１４０２により接続され、資源管理サーバ１４０１が、ＣＰＵやメモリなどの資源の管理をおこない資源の割当配分の指示を各仮想計算機ＬＰＡＲ１４０４におこなうのも同様である。
【００９７】
本実施形態では、各仮想計算機ＬＰＡＲ１４０４が、複数の物理計算機１４０３にわたって、構成されていることが異なっている。そして、資源管理サーバ１４０１は、複数の物理計算機１４０３にまたがる各仮想計算機ＬＰＡＲ１４０４の資源の割当てを調整することが可能である。
【００９８】
すなわち、仮想計算機ＬＰＡＲ１４０４が、異なる物理計算機にある場合であっても、上記図１を用いて説明した仮想計算機システム全く同じ方法により、複数ある物理計算機の合計性能を増減することなく、各ＬＰＡＲのＣＰＵ割当率、およびメモリ割当量を再配分することができる。このように、複数ある物理計算機のＣＰＵ資源、およびメモリ容量を各々変更することができ、資源の割当ての合計の上限が定められた設定で計算機システムを運用している場合にも、このシステムにより、合計の資源の割当てを一定に保ちながら、各物理計算機の資源の割当てを増減し、各仮想計算機ＬＰＡＲ１４０４へ有効に資源を割当てることが可能になる。
【００９９】
〔本実施形態の応用〕
各仮想計算機ＬＰＡＲにおいてインターネットのＷＥＢサーバ、データベースサーバ、開発用テストサーバといった異なる業務を運用しているシステムがあり、ＷＥＢサーバの負荷が増大すると、近い将来にデータベースサーバの負荷も増大するが、開発用テストサーバの負荷の増減はＷＥＢサーバの負荷の増減とは無関係である、といった相関関係が見られる場合を想定する。
【０１００】
この場合に、ＷＥＢサーバの負荷が増大し、資源の割当不足が予測された時点において、相関関係の低い開発用テストサーバのＣＰＵ割当率およびメモリ割当率をより多く減じることにする。このようにすれば、相関関係の強いデータベースの負荷が近い将来増大した場合に、再び、各仮想計算機ＬＰＡＲの資源の割当率を変更し直さなければならないという事態が発生することを予防することが可能になる。
【０１０１】
さらに、本実施形態では、一台の物理計算機の資源を複数の仮想計算機ＬＰＡＲに割当てる例について説明したが、資源を割当てる計算機は、物理計算機であっても同様に本発明は適用することができる。すなわち、資源管理サーバを置き、物理計算機の要求に応じて、ＣＰＵ資源やメモリなどの割当てをおこなう場合にも本発明の資源割当ての手法を用いることにより、資源の割当てを最適化して、各々の計算機の相関から計算機資源の配分を理想的におこなう計算機システムを構築することができる。
【０１０２】
【発明の効果】
本発明によれば、複数の仮想計算機への資源の割当てを動的に再配分するにあたって、資源の割当てを最適化して、各々の仮想計算機の相関から計算機資源の配分を理想的におこなうようにして、近い将来に他の仮想計算機の性能不足が発生しにくいように、各仮想計算機に割当てられた資源を配分することを可能にする計算機資源割当方法を提供することができる。
【図面の簡単な説明】
【図１】本発明に係る計算機資源割当方法をおこなう仮想計算機システムの構成図である。
【図２】資源使用状態テーブル１０７のテーブル構造を示す図である。
【図３】相関係数テーブル１０８のテーブル構造を示す図である。
【図４】資源使用予測テーブル１０９のテーブル構造を示す図である。
【図５】資源割当設定テーブル１１０のテーブル構造を示す図である。
【図６】資源割当情報テーブル１１１のテーブル構造を示す図である。
【図７】本発明に係る計算機資源割当方法の処理を示すゼネラルチャートである。
【図８】資源使用状態収集処理を示すフローチャートである。
【図９】相関係数算出処理を示すフローチャートである。
【図１０】資源使用予測処理を示すフローチャートである。
【図１１】資源割当決定処理を示すフローチャートである。
【図１２】資源割当配分決定処理を示すフローチャートである。
【図１３】資源使用測定処理を示すフローチャートである。
【図１４】本発明に係る計算機資源割当方法をおこなう仮想計算機システムの他の構成図である。
【符号の説明】
１０１…資源管理サーバ
１０２…資源使用状態収集部
１０３…相関係数算出部
１０４…資源使用予測部
１０５…資源不足検出部
１０６…資源割当決定部
１０７…資源使用状態テーブル
１０８…相関係数テーブル
１０９…資源使用予測テーブル
１１０…資源割当設定テーブル
１１１…資源割当情報テーブル
１２１…物理計算機
１２２…仮想計算機ＬＰＡＲ
１２３…資源使用測定部
１２４…ＣＰＵ
１２５…メモリ
１２６…ハイパバイザ
１２７…構成変更部
１３１…ネットワーク
１４０１…資源管理サーバ
１４０２…ネットワーク
１４０３…物理計算機
１４０４…仮想計算機ＬＰＡＲ。
【図１】
2004199561.tif 000006
【図２】
2004199561.tif 000007
【図３】
2004199561.tif 000008
【図４】
2004199561.tif 000009
【図５】
2004199561.tif 000010
【図６】
2004199561.tif 000011
【図７】
2004199561.tif 000012
【図８】
2004199561.tif 000013
【図９】
2004199561.tif 000014
【図１０】
2004199561.tif 000015
【図１１】
2004199561.tif 000016
【図１２】
2004199561.tif 000017
【図１３】
2004199561.tif 000018
【図１４】
2004199561.tif 000019