(57)【要約】【課題】粒度の細かい資源割当制御を実現する。【解決手段】一つの物理サーバ上に物理サーバの物理資源を論理的分割した複数の仮想環境を構成し、前記複数の仮想環境の各々で、優先度を有し、互いに異なるプロセスを実行する仮想計算機システムである。この仮想計算機システムは、複数の仮想環境の各々で実行するプロセスの情報に基づいて、複数の仮想環境の中から、優先度が低いプロセスが稼動している仮想環境を検出し、検出した仮想環境上の優先度が低いプロセスの実行を抑止する。【選択図】図２
2010282550.tif 000002
【特許請求の範囲】
【請求項１】
一つの物理サーバ上に前記物理サーバの物理資源を論理的分割した複数の仮想環境を構成し、前記複数の仮想環境の各々で、優先度を有し、互いに異なるプロセスを実行する仮想計算機システムであって、
前記複数の仮想環境の各々で実行する前記プロセスの情報に基づいて、前記複数の仮想環境の中から、前記優先度が低い前記プロセスが稼動している仮想環境を検出し、検出した仮想環境上の前記優先度が低い前記プロセスの実行を抑止する実行制限指示部を設けたことを特徴とする仮想計算機システム。
【請求項２】
請求項１に記載の仮想計算機システムにおいて、実行を抑止した前記プロセスは、前記プロセスが使用する前記物理資源を、前記複数の仮想環境を制御するハイパバイザへと返却し、前記ハイパバイザは返却された前記物理資源を前記複数の仮想環境のいずれかに再割当することを特徴とする仮想計算機システム。
【請求項３】
一つの物理サーバ上に前記物理サーバの物理資源を論理的分割した複数の仮想環境の各々で、優先度を有し、互いに異なるプロセスを実行する仮想計算機システムにおける前記物理資源の割当方法であって、前記仮想計算機システムは、
前記複数の仮想環境の各々で実行する前記プロセスの情報に基づいて、前記複数の仮想環境の中から、前記優先度が低い前記プロセスが稼動している仮想環境を検出し、検出した仮想環境上の前記優先度が低い前記プロセスの実行を抑止することを特徴とする物理資源の割当方法。
【請求項４】
請求項３に記載の物理資源の割当方法において、実行を抑止した前記プロセスは、前記プロセスが使用する前記物理資源を、前記複数の仮想環境を制御するハイパバイザへと返却し、前記ハイパバイザは返却された前記物理資源を前記複数の仮想環境のいずれかに再割当することを特徴とする物理資源の割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一つの物理サーバ上に複数の仮想環境を有する仮想計算機システムに関し、特に仮想環境へ物理資源を効率的に割当てる技術に関するものである。
【背景技術】
【０００２】
物理計算機を構成する物理資源を、排他的にまたは時分割的に、かつ論理的に分割することにより複数のLPAR(Logial PARtition)が仮想環境として動作し、各LPARへの物理資源の割り当てを動的に変更する仮想計算機システムにおいて、各LPARにおけるプロセスの待ち行列の長さに基づき、各LPARへの物理資源の配分を決定し、割当てている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２０２９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの物理サーバ上に複数のLPARが存在するシステムにおいて、LPARの実行を制御するハイパバイザからは、どのプロセス(アプリケーション)にどれだけの資源が割り当てられているのかを判別できない。そのため、優先度の低いプロセスが動作し、多くの資源を使用しているLPARに対しても、予め決められたサービス比率に応じて、資源を割当てている。よって優先度の高いプロセスを実行しているLPARに充分な資源が割り当てられないという問題がある。
【０００５】
上記背景技術では、LPAR単位の負荷状況（プロセスの待ち行列の長さ）を元に資源割当をしており、上記の各LPAR内のプロセスにある優先度の問題に対する考慮が欠けている。
【課題を解決するための手段】
【０００６】
上記課題に鑑みて、本発明は次のような態様である。一つの物理サーバ上に物理サーバの物理資源を論理的分割した複数の仮想環境を構成し、前記複数の仮想環境の各々で、優先度を有し、互いに異なるプロセスを実行する仮想計算機システムである。この仮想計算機システムは、複数の仮想環境の各々で実行するプロセスの情報に基づいて、複数の仮想環境の中から、優先度が低いプロセスが稼動している仮想環境を検出し、検出した仮想環境上の優先度が低いプロセスの実行を抑止する。
【０００７】
本発明の他の態様は、実行を抑止したプロセスは、このプロセスが使用する物理資源を、複数の仮想環境を制御するハイパバイザへと返却し、ハイパバイザは返却された物理資源を複数の仮想環境のいずれかに再割当する。
【発明の効果】
【０００８】
本発明によれば、物理サーバ上に複数の仮想環境を有する仮想計算機システムにおいて、粒度の細かい資源割当制御ができる。具体的には、物理サーバ上で稼動するプロセスの優先度に従った実行制御ができる。
【図面の簡単な説明】
【０００９】
【図１】対象とするシステムの物理資源および仮想環境の構成図である。
【図２】実施形態のシステム構成図である。
【図３】LPARのプロセス情報テーブルである。
【図４】全LPARのプロセス情報テーブルである。
【図５】各LPARの実行制限パラメタ用テーブルである。
【図６】資源放棄/資源返却回数計測用テーブルである。
【図７】実行制限指示部の処理フローチャートである。
【図８】実行制限パラメタ上限更新の処理フローチャートである。
【図９】資源の足りないLPAR数をカウントする処理のフローチャートである。
【図１０】LPARの実行制限パラメタ上限更新の処理フローチャートである。
【図１１】実行制限パラメタ下限更新の処理フローチャートである。
【図１２】放棄資源をハイパバイザに返却され続けたLPAR数をカウントする処理のフローチャートである。
【図１３】LPARの実行制限パラメタ下限更新の処理フローチャートである。
【図１４】資源割当管理部の処理フローチャートである。
【図１５】資源放棄通知部の処理フローチャートである。
【図１６】資源割当先算出用テーブルである。
【図１７】資源割当制御部の処理フローチャートである。
【発明を実施するための形態】
【００１０】
図1は、本実施形態が対象とするシステムの(a)物理資源構成および、その物理資源構成のシステム上に構築される(b)仮想環境の構成を示した図である。一つの物理サーバ101は、物理資源（以下、単に資源と呼ぶ。）として物理CPU102、物理メモリ103、物理HDD 104を有する。サーバ管理部105は、管理対象の物理サーバ101の物理資源の資源情報を管理すると共に障害を監視する。サーバ管理部105は、物理メモリ103上のプログラムであり、物理CPU102によって実行される。
【００１１】
ハイパバイザ106は、物理メモリ103上に存在し、物理資源を論理的に分割し、仮想環境を構築する。LPAR(Logial PARtition)107は、ハイパバイザ106により論理的に分割された資源を有する仮想環境である。
【００１２】
図2に、本実施形態のシステム構成図を示す。実行制限指示部201は、物理サーバ101を管理サーバとして動作させるサーバ管理部105内に存在し、LPAR 107からのプロセス情報の取得、LPAR 107上のプロセスの実行を制限すべきかの判断、実行制限パラメタの算出、各LPAR 107の資源割当管理部203へ実行制限パラメタの通知などを実行する。
【００１３】
プロセス情報取得部202は、LPAR 107内に存在し、LPAR 107上で稼動するプロセスの情報の取得、取得したプロセス情報の実行制限指示部201への通知などを実行する。
【００１４】
資源割当管理部203は、LPAR 107内に存在し、実行制限指示部201からの実行制限パラメタの受け取り、資源放棄通知部204の生成、資源放棄通知部204のプロセスの優先度の実行制限パラメタへの設定などを実行する。
【００１５】
資源放棄通知部204は、LPAR 107内に存在し、図示していないオペレーティングシステムのプロセススケジューラにより資源をLPAR 107に割当てられたタイミングで、資源を放棄することをハイパバイザ106へ通知する。
【００１６】
資源割当制御部205は、ハイパバイザ106内に存在し、LPAR 107内の資源放棄通知部204から資源放棄の通知の受け取り、資源放棄を通知された資源の再割当すべきかの判断、資源放棄を通知された資源を割り当てるLPAR 107の決定などを実行する。
【００１７】
図2では、分かり易くするために、管理サーバとして動作させるサーバ管理部105を含む物理サーバ101と、ハイパバイザ106によりLPAR 107を制御する物理サーバ101とを分けて図示しているが、同一の物理サーバ101で構成してもよい。
【００１８】
図3は、サーバ管理部105内の実行制限指示部201が用いる、各LPAR 107のプロセス稼動情報を格納したプロセス情報テーブルを示す図である。図3の(a)、(b)および(c)は、それぞれＬＰＡＲ1、ＬＰＡＲ2及びＬＰＡＲ3のプロセス情報テーブル206を示している。実行制限指示部201は、各ＬＰＡＲのプロセス情報取得部202から得た情報を、このプロセス情報テーブル206に格納する。
【００１９】
プロセスID 301は、プロセスの識別子である。プロセス名302は、プロセスの名前である。実行優先度303は、プロセスの相対的な優位性である。CPU使用率304は、LPAR107に割当てられたCPU資源に占める、プロセスが使用したCPU資源の割合である。CPU待ち状態304は、オペレーティングシステムスケジューラが持つ、図示していないCPU待ち行列を参照し、プロセスがその待ち行列にキューイングされた期間があれば真（true）、そうでなければ偽(false)となる真理値である。
【００２０】
実行制限指示部201は、プロセス情報テーブル206を、プロセス情報取得部202より情報を取得した契機に、実行優先度303をキーに昇順に整列する。ただし、実行優先度303が同じ値のレコードについては、CPU使用率304をキーに昇順に整列する。
【００２１】
図4は、サーバ管理部105内の実行制限指示部201が用いる、全LPARプロセス情報テーブル207を示す図である。LPAR番号401は、プロセスが存在するLPARの番号を指す整数値である。
【００２２】
図4は、実行制限指示部201が、図3の各ＬＰＡＲプロセス情報テーブル206を集約して作成した全プロセス情報テーブル207であり、各ＬＰＡＲプロセス情報テーブル206の情報の更新を契機に、図4のレコードを実行優先度303をキーに昇順に整列する。ただし、実行優先度303が同じ値のレコードについては、CPU使用率304をキーに昇順に整列する。
【００２３】
図5は、サーバ管理部105内の実行制限指示部201が用いる、実行制限パラメタ用テーブル208を示す図である。閾値最大値501は、ユーザが指定する閾値の最大値である。実行制限パラメタ502とは、実行制限指示部201が資源割当管理部203へ渡す閾値である。
【００２４】
実行制限パラメタ502を受け取った資源割当管理部203は、LPAR 107で稼動する、実行制限パラメタ502より小さいプロセスの実行を抑止する。
【００２５】
図6は、ハイパバイザ106内の資源割当制御部205が用いる、計測した資源放棄回数と資源返却回数を格納する資源放棄/資源返却回数計測用テーブルを示す図である。資源放棄回数601は、プロセスが実行制限されたLPAR 107が、資源放棄をハイパバイザ106へ通知した回数を表す。資源返却回数602は、資源放棄通知をしたLPAR 107がハイパバイザ106より、資源を返却された回数を表す。
【００２６】
図7は、実行制限指示部201の処理フローチャートである。実行制限指示部201は処理を開始すると、全LPARプロセス情報テーブル207を参照し、全プロセス中の少なくとも一つのプロセス(CPU待ち状態305=真が成立するプロセス)がCPU待ちかどうかを判定する（ステップ701）。少なくとも一つのプロセスがCPU待ちである場合、実行制限パラメタ上限更新処理を実行し（ステップ702）、すべてのプロセスがCPU待ちでない場合、実行制限パラメタ下限更新処理を実行する（ステップ703）。実行制限パラメタ上限更新処理および実行制限パラメタ下限更新処理については後述する。
【００２７】
実行制限パラメタに変更があるかどうかを判定し（ステップ704）、変更がある場合は、各LPAR 107の資源割当管理部203へ実行制限パラメタを渡す（ステップ705）。その後、一定時間ウエイトし（ステップ706）、ステップ701へ戻り、処理を繰り返す。
【００２８】
図8は、ステップ702の実行制限パラメタ上限更新の処理フローチャートである。実行制限パラメタ上限更新処理を開始すると、資源の足りないLPAR数をカウント801し、カウントした数を変数countに格納する（ステップ801）。
【００２９】
次に、資源の足りないLPAR 107が存在するかどうか判定する（ステップ802）。実際には変数countを参照し、countが0でないならば、資源の足りないLPAR数が存在すると判定する。資源の足りないLPAR数が存在する場合、count数分LPAR 107の実行制限パラメタ上限更新処理を実行する（ステップ803）。
【００３０】
図9は、ステップ801の資源の足りないLPAR数をカウントする処理のフローチャートである。資源の足りないLPAR数をカウントする処理を開始すると、変数countを0で初期化する（ステップ901）。
【００３１】
次に以下の処理を、管理対象サーバ上に存在するLPAR数回（lpar＝ｎまで）繰り返す（ステップ902）。lpar番目のLPAR 107の少なくとも一つのプロセスが、実行優先度303が閾値最大値501(max_priority)以上、かつCPU待ち状態305が真である(iswait=true)場合（ステップ903）、lpar番目のLPAR 107を資源の足りないLPAR 107としてカウントする（ステップ904）。実際には、countをインクリメントする。
【００３２】
図10は、ステップ803のcount数分LPAR 107の実行制限パラメタ上限更新の処理フローチャートである。count数分LPAR 107の実行制限パラメタ上限更新処理を開始すると、以下の処理を、管理対象サーバ上に存在するLPAR 107数回（ｎ回）繰り返す（ステップ1001）。実行制限パラメタ上限更新候補値を算出し、配列updatepriority[]に格納する（ステップ1002）。実行制限パラメタ上限更新候補値の算出は、実行制限パラメタの値よりも大きい優先度のプロセスの中で、優先度が最小のプロセスの優先度値を求めることである。実行制限パラメタの値よりも大きい優先度のプロセスが存在しない場合、−1を配列updatepriority[]に格納する。
【００３３】
次に、以下の処理を、count回繰り返す（ステップ1004）。変数iに、updatepriority[k]が最小値(負の数を除く)となる整数kを代入する（ステップ1005）。実行制限パラメタ用テーブル中LPAR iの実行制限パラメタをupdatepriority[i]に更新する（ステップ1006）。updatepriority[i]に、ステップ1002で求めた実行制限パラメタ上限更新候補値を代入する（ステップ1007）。
【００３４】
図11は、ステップ703の実行制限パラメタ下限更新の処理フローチャートである。実行制限パラメタ下限更新処理を開始すると、放棄資源をハイパバイザ106に返却され続けたLPAR数をカウントし、カウントした数を変数countに格納する（ステップ1101）。
【００３５】
次に、放棄資源をハイパバイザ106に返却され続けたLPAR 107が存在するかどうか判定1102する（ステップ1102）。実際には変数countを参照し、countが0でないならば、放棄資源をハイパバイザ106に返却され続けたLPAR 107が存在すると判定する。放棄資源をハイパバイザ106に返却され続けたLPAR 107が存在する場合、count数分LPARの実行制限パラメタ下限更新処理を実行する（ステップ1103）。
【００３６】
図12は、ステップ1101の放棄資源をハイパバイザ106に返却され続けたLPAR数をカウントする処理のフローチャートである。放棄資源をハイパバイザ106に返却され続けたLPAR数をカウントする処理を開始すると、変数countを0で初期化する（ステップ1201）。
【００３７】
次に以下の処理を、管理対象サーバ上に存在するLPAR数回（lpar＝ｎまで）繰り返す（ステップ1202）。lpar番目のLPAR 107は放棄資源をハイパバイザ106に返却され続けたかを判定する（ステップ1203）。実際には、資源放棄/返却回数計測用テーブル209を参照し、lpar番目のLPAR 107の資源放棄回数601(countdiscard)と資源返却変数602(countreturn)が一致し、かつ資源放棄回数601(countdiscard)≠0の場合に、lpar番目のLPAR 107は放棄資源をハイパバイザ106に返却され続けたと判定する。lpar番目のLPAR 107が放棄資源をハイパバイザ106に返却され続けた場合、countをインクリメント1204し（ステップ1204）、lpar番目のLPAR 107の資源放棄回数601(countdiscard)と資源返却変数602(countreturn)を0でリセットする（ステップ1205）。
【００３８】
図13は、ステップ1103のcount数分LPAR107の実行制限パラメタ上限更新の処理フローチャートである。count数分LPAR107の実行制限パラメタ下限更新処理を開始すると、以下の処理を、管理対象サーバ上に存在するLPAR107数回（ｎ回）繰り返す（ステップ1301）。実行制限パラメタ下限更新候補値を算出し、配列updatepriority[]に格納する（ステップ1302）。実行制限パラメタ下限更新候補値の算出は、実行制限パラメタの値よりも小さい優先度のプロセスの中で、優先度が最大のプロセスの優先度値を求めることである。実行制限パラメタの値よりも小さい優先度のプロセスが存在しない場合、−1を配列updatepriority[]に格納する。
【００３９】
次に、以下の処理を、count回繰り返す（ステップ1304）。変数iに、配列updatepriority[k]が最大値となる整数kを代入する（ステップ1305）。実行制限パラメタ用テーブル中LPAR iの実行制限パラメタをupdatepriority[i]に更新する（ステップ1306）。updatepriority[i]に、ステップ1302で求めた実行制限パラメタ下限更新候補値を代入する（ステップ1307）。
【００４０】
図14は、資源割当管理部203の処理フローチャートである。資源割当管理部203の処理を開始すると、LPAR 107上に資源放棄通知部204を生成する（ステップ1401）。資源放棄通知部204は、OSのプロセススケジューラへの資源の割当てを契機に、LPAR 107の資源を放棄することをハイパバイザ106へ通知する。資源割当管理部203は資源放棄通知部204を生成後、LPAR 107にプロセス実行制限があるかを判定する（ステップ1402）。実行制限がある場合、資源放棄通知部204の起動を確認し（ステップ1403）、起動してなければ、資源放棄通知部204を起動する（ステップ1404）。また、プロセス実行制限がなければ、資源放棄通知部204の停止を確認し（ステップ1405）、停止していなければ、資源放棄通知部204を停止させる（ステップ1406）。
【００４１】
次に資源割当管理部203は、資源放棄通知部204の優先度と実行制限指示部201より受け取った実行制限パラメタとを比較する（ステップ1407）。両者が異なる値であれば、資源放棄通知部204の優先度を実行制限パラメタの値とする（ステップ1408）。その後、一定時間ウエイトし（ステップ1409）、ステップ1402へ戻り、処理を繰り返す。
【００４２】
図15は、資源放棄通知部204の処理フローチャートである。資源放棄通知部204は、OSのプロセススケジューラからLPAR 107に資源が割当てられると処理を開始し、LPAR 107の資源を放棄することをハイパバイザ106へ通知する（ステップ1501）。その後、放棄した資源をハイパバイザ106に返却されたかどうかを判定する（ステップ1502）。放棄資源をハイパバイザ106に返却されていれば場合、一定時間ウエイトし（ステップ1503）、ステップ1501へ戻り、処理を繰り返す。放棄資源をハイパバイザ106に返却されなかった場合、OSに処理を返し、資源割当待ち状態に遷移する（ステップ1504）。
【００４３】
図16は、ハイパバイザ106内の資源割当制御部205が用いる、放棄された資源をどのLPAR 107に再割当するのか算出するための資源割当先算出用テーブル210を示す図である。CPU待ち状態プロセスの中で最大の優先度値1601は、各LPAR内の実行制限パラメタよりも大きい優先度のプロセスの中で、優先度が最大のプロセスの優先度を示す整数値である。ハイパバイザ106の資源割当制御部205は、実行制限指示部201より、CPU待ち状態プロセスの中で最大の優先度値を受け取り、資源割当先算出用テーブル210に格納する。実行制限パラメタよりも大きい優先度のプロセスが存在しない場合、実行制限指示部201は資源割当制御部205に−1の値を渡す。
【００４４】
図17は、ハイパバイザ106内の資源割当制御部205の処理フローチャートである。資源割当制御部205の処理を開始すると、資源割当制御部205は、各LPAR 107内の資源割当通知部204から資源放棄の通知を受けるまでウエイトする（ステップ1701）。資源放棄の通知を受け、処理を再開する。資源割当制御部205は資源を放棄したLPAR 107の資源放棄／資源返却回数計測用テーブル209の資源放棄回数601(countdiscard)の値をインクリメントする（ステップ1702）。
【００４５】
資源不足のLPAR 107が存在するかどうかを判定する（ステップ1703）。実際には、資源割当先算出用テーブル210を参照し、CPU待ち状態プロセスの中で最大の優先度値1601がすべてのLPAR107に関して−1である場合に、資源不足のLPAR 107が存在しないと判定する。
【００４６】
資源不足のLPAR 107が存在しない場合、資源放棄したLPAR 107へ資源を返却し（ステップ1704）、資源放棄したLPAR 107の資源放棄／資源返却回数計測用テーブル209の資源返却回数602(countreturn)をインクリメントする（ステップ1705）。資源不足のLPAR 107が存在する場合、資源の再割当先LPARを算出する（ステップ1706）。実際には、資源割当先算出用テーブル210を参照し、CPU待ち状態プロセスの中で最大の優先度値1601が最大のLPAR 107を資源割当先とする。放棄したLPAR 107から資源を奪い（ステップ1707）、奪った資源をステップ1706で求めたLPAR 107へ再割当する（ステップ1708）。
【００４７】
本実施形態によれば、物理サーバ上に複数の仮想環境を有するシステムにおいて、粒度の細かい資源割当制御ができる。具体的には、物理サーバ上で稼動するプロセスの優先度に従った実行制御ができる。この効果により、ユーザ操作なしに、プロセスの優先度に応じた最適な資源の割当が実現可能である。
【符号の説明】
【００４８】
101：物理サーバ、102：物理CPU、103：物理メモリ、104：物理HDD、105：サーバ管理部、106：ハイパバイザ、107：LPAR(Logial PARtition)、201：実行制限指示部、202：プロセス情報取得部、203：資源割当管理部、204：資源放棄通知部、205：資源割当制御部、206：LPARプロセス情報テーブル、207：全LPARプロセス情報テーブル、208：実行制限パラメタ用テーブル、209：資源放棄/資源返却回数計測用テーブル、210：資源割当先算出用テーブル。
【図１】
2010282550.tif 000003
【図２】
2010282550.tif 000004
【図３】
2010282550.tif 000005
【図４】
2010282550.tif 000006
【図５】
2010282550.tif 000007
【図６】
2010282550.tif 000008
【図７】
2010282550.tif 000009
【図８】
2010282550.tif 000010
【図９】
2010282550.tif 000011
【図１０】
2010282550.tif 000012
【図１１】
2010282550.tif 000013
【図１２】
2010282550.tif 000014
【図１３】
2010282550.tif 000015
【図１４】
2010282550.tif 000016
【図１５】
2010282550.tif 000017
【図１６】
2010282550.tif 000018
【図１７】
2010282550.tif 000019