(57)【要約】【課題】適切な負荷分散処理を可能な限り低消費電力で実現すること。【解決手段】電力供給制御装置１０６は、負荷分散制御装置１０１による実計算機の動作状況、仮想計算機制御装置１０２による仮想計算機ＶＭｉの動作状況により、実計算機Ｒｉへの電力供給を制御する。電源タップ制御装置１０５に対し、電力供給する実計算機Ｒｉや遮断する実計算機を指示する。仮想計算機群ＶＭは常時動作とし停止しない。仮想計算機ＶＭｉは、常に電力供給を受けているマスタ計算機Ｍや実計算機Ｒｉ上で動作するため、ジョブ実行しない実計算機Ｒｉへの電力供給を停止して低消費電力化を図ることができる。実計算機群Ｒは、ジョブ実行がない仮想計算機ＶＭｉのみの状態において、仮想計算機ＶＭｉをマスタ計算機Ｍまたは他の実計算機Ｒｉに移動し、起動を停止する。【選択図】図１
2010262382.tif 000002
【特許請求の範囲】
【請求項１】
実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するコンピュータを、
前記仮想計算機群の中から選ばれた一の仮想計算機がジョブを実行中であるか否かを検出する検出手段、
前記各仮想計算機の配置先を特定するテーブルを参照することにより、前記一の仮想計算機を配置する計算機が前記マスタ計算機であるか前記実計算機群内の一の実計算機であるかを判断する判断手段、
前記検出手段によって検出された検出結果と前記判断手段によって判断された判断結果に基づいて、前記一の仮想計算機の移動先の計算機を決定し、前記一の仮想計算機を配置する計算機の起動／起動停止および電源投入／遮断を決定する決定手段、
前記決定手段によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御手段、
として機能させることを特徴とする電力供給制御プログラム。
【請求項２】
前記決定手段は、
前記検出手段によって前記一の仮想計算機がジョブの実行中ではないと検出され、かつ、前記判断手段によって前記一の仮想計算機を配置する計算機が前記実計算機群内の一の実計算機であると判断された場合、前記一の仮想計算機の移動先を前記マスタ計算機に決定するとともに、前記一の実計算機の起動停止および電源遮断を決定し、
前記制御手段は、
前記一の仮想計算機を前記一の実計算機から前記マスタ計算機へ移動させる移動処理を前記計算機制御装置に実行させ、前記移動処理により移動した場合、前記一の実計算機の起動停止処理を前記計算機制御装置に実行させ、前記起動停止処理により起動停止した場合、前記一の実計算機への電源を遮断する電源遮断処理を前記電源制御装置に実行させることを特徴とする請求項１に記載の電力供給制御プログラム。
【請求項３】
前記決定手段は、
前記検出手段によって前記一の仮想計算機がジョブを実行中と検出され、かつ、前記判断手段によって前記一の仮想計算機を配置する計算機が前記マスタ計算機であると判断された場合、前記一の仮想計算機の移動先を前記実計算機群のうち電源遮断されている実計算機に決定するとともに、前記電源遮断されている実計算機への電源投入および起動を決定し、
前記制御手段は、
前記電源遮断されている実計算機へ電源投入する電源投入処理を前記電源制御装置に実行させ、前記電源投入処理により電源投入された実計算機を起動する起動処理を前記計算機制御装置に実行させ、前記起動処理により起動された実計算機に前記一の仮想計算機を移動させる移動処理を前記計算機制御装置に実行させることを特徴とする請求項１に記載の電力供給制御プログラム。
【請求項４】
実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するコンピュータを、
前記各実計算機の負荷を取得する取得手段、
前記実計算機群の中から一の実計算機を指定する指定手段、
前記指定手段によって指定された一の実計算機の負荷に基づいて、前記一の実計算機に配置されている仮想計算機の移動先の計算機を決定するとともに、前記一の実計算機の起動停止および電源遮断を決定する決定手段、
前記決定手段によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御手段、
として機能させることを特徴とする電力供給制御プログラム。
【請求項５】
実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御する電力供給制御装置であって、
前記仮想計算機群の中から選ばれた一の仮想計算機がジョブを実行中であるか否かを検出する検出手段と、
前記各仮想計算機の配置先を特定するテーブルを参照することにより、前記一の仮想計算機を配置する計算機が前記マスタ計算機であるか前記実計算機群内の一の実計算機であるかを判断する判断手段と、
前記検出手段によって検出された検出結果と前記判断手段によって判断された判断結果に基づいて、前記一の仮想計算機の移動先の計算機を決定し、前記一の仮想計算機を配置する計算機の起動／起動停止および電源投入／遮断を決定する決定手段、
前記決定手段によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御手段と、
を備えることを特徴とする電力供給制御装置。
【請求項６】
実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するコンピュータが、
前記仮想計算機群の中から選ばれた一の仮想計算機がジョブを実行中であるか否かを検出する検出工程と、
前記各仮想計算機の配置先を特定するテーブルを参照することにより、前記一の仮想計算機を配置する計算機が前記マスタ計算機であるか前記実計算機群内の一の実計算機であるかを判断する判断工程と、
前記検出工程によって検出された検出結果と前記判断工程によって判断された判断結果に基づいて、前記一の仮想計算機の移動先の計算機を決定し、前記一の仮想計算機を配置する計算機の起動／起動停止および電源投入／遮断を決定する決定工程と、
前記決定工程によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御工程と、
を実行することを特徴とする電力供給制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、電力供給を制御する電力供給制御プログラム、電力供給制御装置、および、電力供給制御方法に関する。
【背景技術】
【０００２】
従来、一般的な負荷分散制御装置では、待ちジョブを実行する条件に合う計算機を探し、見つけたら当該計算機にて待ち状態であったジョブを実行するように制御する。ジョブの実行条件の大前提として、計算機が動いていて、その実行条件を満たしている旨の情報が集められる状態に有る必要がある。
【０００３】
また、計算機ごとにＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）能力および台数が異なりしかも仮想計算機が混在していても、バッチジョブを実行する計算機を自動的に選択してジョブを配送し負荷分散を実行する負荷分散制御装置も開示されている（たとえば、下記特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２１２４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の負荷分散制御装置のジョブ投入は、各計算機の負荷をモニタリングしジョブが短時間で終わるようスケジューリングされて実行される。そのため、各計算機は、実行するジョブがない場合でも常時稼動状況（ＣＰＵ負荷等）を負荷分散制御装置に通知しなければならない。したがって、常に通電し稼動させておく必要があり無駄な電力を消費しているという問題があった。
【０００６】
たとえば、各計算機に負荷が平坦化するように均等にジョブをばら撒くと、計算機ごとにリソースが余ってしまうが、ジョブを実行しているいずれの計算機に対しても電源を遮断することができない。
【０００７】
一方、予めある計算機に対し電力供給を停止しておくことも考えられる。予め停止している計算機は、ジョブ実行対象から外されるため、負荷分散制御装置では、どの計算機種の計算機が不足しているかがわからないこととなる。
【０００８】
たとえば、計算機種Ａの計算機Ｘ，Ｙと計算機種Ｂの計算機Ｚのうち、計算機Ｙ，Ｚの電力供給を停止しておいた状態で計算機種Ａを要求するジョブを計算機Ｘに割当てたとする。そして、計算機Ｘがリソース不足に陥った場合、負荷分散制御装置では、停止している計算機Ｙ，Ｚの計算機種を認識できないため、どちらの計算機に電力供給すればよいかわからないという事態が生じることとなる。
【０００９】
本願は、負荷分散処理を低消費電力で実現する電力供給制御プログラム、電力供給制御装置、および、電力供給制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するに当たって、前記仮想計算機群の中から選ばれた一の仮想計算機がジョブを実行中であるか否かを検出し、前記各仮想計算機の配置先を特定するテーブルを参照することにより、前記一の仮想計算機を配置する計算機が前記マスタ計算機であるか前記実計算機群内の一の実計算機であるかを判断し、検出結果と判断結果に基づいて、前記一の仮想計算機の移動先の計算機を決定し、前記一の仮想計算機を配置する計算機の起動／起動停止および電源投入／遮断を決定し、決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる。
【発明の効果】
【００１１】
本電力供給制御プログラム、電力供給制御装置、および、電力供給制御方法によれば、負荷分散処理を低消費電力で実現することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】実施の形態にかかる負荷分散制御システムのシステム構成図である。
【図２】実施の形態にかかるコンピュータのハードウェア構成を示すブロック図である。
【図３】全仮想計算機種別名対応テーブルの記憶内容を示す説明図である。
【図４】全実計算機種別名対応テーブルの記憶内容を示す説明図である。
【図５】全仮想計算機ジョブ実行状況テーブルの記憶内容を示す説明図である。
【図６】全仮想計算機負荷テーブルの記憶内容を示す説明図である。
【図７】全仮想計算機配置テーブルの記憶内容を示す説明図である。
【図８】全実計算機負荷テーブルの記憶内容を示す説明図である。
【図９】電源管理テーブルの記憶内容を示す説明図である。
【図１０】本実施の形態にかかる電力供給制御装置の機能的構成を示すブロック図である。
【図１１】本実施の形態にかかる電力供給制御装置による電力供給／停止指示処理手順を示すフローチャート（前半）である。
【図１２】図１１に示した電源遮断指示処理（ステップＳ１１０６）の詳細な処理手順を示すフローチャートである。
【図１３】図１１に示した電源投入指示処理（ステップＳ１１０７）の詳細な処理手順を示すフローチャートである。
【図１４】仮想計算機移動要請キューを示す説明図である。
【図１５】実計算機起動／停止要請キューを示す説明図である。
【図１６】本実施の形態にかかる電力供給制御装置による電力供給／停止指示処理手順を示すフローチャート（後半）である。
【図１７】図１６に示した全実計算機負荷算出処理（ステップＳ１６０１）の詳細な処理手順を示すフローチャートである。
【図１８】図１６に示した実計算機探索処理（ステップＳ１６０６）の詳細な処理手順を示すフローチャートである。
【図１９】仮想計算機移動・電源投入／遮断制御処理手順を示すフローチャートである。
【図２０】最終要請となる移動指示情報の決定処理を示す説明図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本開示技術にかかる電力供給制御プログラム、電力供給制御装置、および、電力供給制御方法の好適な実施の形態を詳細に説明する。
【００１４】
（システム構成）
図１は、実施の形態にかかる負荷分散制御システムのシステム構成図である。負荷分散制御システム１００は、負荷分散制御装置１０１、仮想計算機制御装置１０２、マスタ計算機Ｍ、実計算機群Ｒ、電源タップ１０３、電源タップ制御装置１０５、電力供給制御装置１０６を含む構成である。
【００１５】
負荷分散制御装置１０１は、外部からジョブが投入されるとマスタ計算機Ｍや実計算機群Ｒにジョブを供給するコンピュータである。負荷分散制御装置１０１は、ジョブを実行する計算機の負荷の分散制御を実行する。
【００１６】
仮想計算機制御装置１０２は、マスタ計算機Ｍ内に保存されている仮想計算機群ＶＭの実計算機への割り当て指示を実行するコンピュータである。マスタ計算機Ｍは、実計算機群Ｒおよび仮想計算機群ＶＭを統括するコンピュータである。マスタ計算機Ｍ自身も実計算機群Ｒ内の任意の実計算機Ｒｉ（ｉは番号）と同様、ジョブを実行することができる。また、マスタ計算機Ｍは、負荷分散制御装置１０１からの指示に従って、実計算機Ｒｉにジョブを投入したり、仮想計算機制御装置１０２からの指示に従って、ジョブが投入された任意の仮想計算機ＶＭｉを実計算機に移動させる。
【００１７】
実計算機群Ｒは、投入されたジョブを実行するコンピュータ群である。各実計算機Ｒ１〜Ｒ５は、電源タップ１０３を介して電源から電力供給を受けている。各実計算機Ｒ１〜Ｒ５は、マスタ計算機Ｍや他の実計算機Ｒｉから移動してきた仮想計算機ＶＭｉとして、当該仮想計算機ＶＭｉに割当てられたジョブを実行する。各実計算機Ｒ１〜Ｒ５は、マスタ計算機Ｍから直接投入されたジョブを実行することもできる。
【００１８】
仮想計算機群ＶＭは、マスタ計算機Ｍや実計算機群Ｒで動作する仮想的なコンピュータ群である。仮想計算機は、具体的には、たとえば、プログラム（ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も含む）を実行させるハードウェア資源の集合（ＣＰＵやメモリなどの種類、数量）を目的に合わせて動作させるソフトウェアである。
【００１９】
すなわち、仮想計算機ＶＭｉの実体は、たとえば、プログラムやＯＳなどのソフトウェア、当該ソフトウェアに与えられる変数、および、当該ソフトウェアを実行させるためのＣＰＵやメモリなどのハードウェア資源を指定する環境情報を含む。また、当該環境情報に従って実機（マスタ計算機Ｍまたは実計算機Ｒ１〜Ｒ５）を起動させるための起動ソフトウェアも含む。したがって、仮想計算機ＶＭｉの移動とは、環境情報と起動ソフトウェアの移動である。なお、起動ソフトウェアは予め実機に保持しておけば環境情報のみの移動としてもよい。
【００２０】
これにより、仮想計算機ＶＭｉとして指定されたプログラムやハードウェア資源を用いてマスタ計算機Ｍや実計算機Ｒｉが動作することにより、あたかも仮想計算機ＶＭｉが動作しているかのように見せることができる。本実施の形態では、実計算機種ごとに仮想計算機種が割り当てられており、仮想計算機ＶＭｉの計算機種（環境情報）に対応する計算機種（性能）の実計算機Ｒｉ上で当該仮想計算機が動作することとなる。
【００２１】
電源タップ１０３は、各実計算機Ｒｉに電源１０４からの電源投入する中継器である。電源タップ制御装置１０５は、電源タップ１０３の実計算機群Ｒへの電源投入を実計算機ＲｉごとにＯＮ／ＯＦＦ制御する。ＯＮを検知した実計算機Ｒｉは電力供給を受けて起動する。ＯＦＦを検知した実計算機Ｒｉは起動終了することで電力供給が停止される。
【００２２】
電力供給制御装置１０６は、負荷分散制御装置１０１による実計算機Ｒｉの動作状況、仮想計算機制御装置１０２による仮想計算機ＶＭｉの動作状況により、実計算機Ｒｉへの電力供給を制御する。具体的には、たとえば、電源タップ制御装置１０５に対し、電力供給する実計算機Ｒｉや遮断する実計算機Ｒｉを指示する。
【００２３】
負荷分散制御システム１００では、仮想計算機群ＶＭは常時動作とし停止しないこととする。仮想計算機ＶＭｉは、常に電力供給を受けているマスタ計算機Ｍや実計算機Ｒｉ上で動作するため、ジョブ実行しない実計算機Ｒｉへの電力供給を停止して低消費電力化を図ることができる。
【００２４】
また、実計算機群Ｒは、ジョブ実行がない仮想計算機ＶＭｉのみの状態において、仮想計算機ＶＭｉをマスタ計算機Ｍまたは他の実計算機Ｒｉに移動し、起動を停止する。ジョブ実行数が少ない仮想計算機ＶＭｉは実計算機Ｒｉ間を移動し実計算機台数を束ね、停止可能な実計算機Ｒｉを増加させる。このように、仮想計算機ＶＭｉを特定の実計算機Ｒｉに集約することで、ジョブ無実行な実計算機Ｒｉを増加させることができる。これにより、ジョブ実行しない実計算機Ｒｉへの電力供給を停止して低消費電力化を図ることができる。
【００２５】
（コンピュータのハードウェア構成）
図２は、実施の形態にかかるコンピュータのハードウェア構成を示すブロック図である。図２において、コンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２６】
ここで、ＣＰＵ２０１は、コンピュータの全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２７】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２８】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２９】
Ｉ／Ｆ２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３０】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３１】
スキャナ２１２は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３２】
（各種テーブルの記憶内容）
つぎに、本実施の形態で利用する各種テーブルの記憶内容について説明する。本実施の形態では、全仮想計算機種別名対応テーブル、全実計算機種別名対応テーブル、全仮想計算機ジョブ実行状況テーブル、全仮想計算機負荷テーブル、全仮想計算機配置テーブル、全実計算機負荷テーブル、電源管理テーブルを利用する。これらテーブルは、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５などの記憶装置によりその機能を実現する。
【００３３】
図３は、全仮想計算機種別名対応テーブルの記憶内容を示す説明図である。全仮想計算機種別名対応テーブル３００は、仮想計算機を実計算機へ移動する際に必要な仮想計算機種別名を導くテーブルである。全仮想計算機種別名対応テーブル３００は、マスタ計算機Ｍに保存されている。全仮想計算機種別名対応テーブル３００は、仮想計算機名項目と仮想計算機種別名項目とを有し、仮想計算機ごとに仮想計算機名と仮想計算機種別名とがレコード化されている。
【００３４】
仮想計算機名とは、仮想計算機を一意に特定する識別情報である。仮想計算機種別名とは、仮想計算機の種別を一意に特定する識別情報である。なお、本例では、仮想計算機種別名により仮想計算機の環境を表現している。たとえば、「Ｉ２ｃｐｕ４ｃｏｒｅ３２Ｇ」という仮想計算機種別名は、２個のＣＰＵ、４個のコア、３２［ＧＢ］の記憶容量により仮想計算機を実現することを意味している。
【００３５】
図４は、全実計算機種別名対応テーブル４００の記憶内容を示す説明図である。全実計算機種別名対応テーブル４００は、仮想計算機を実計算機へ移動する際に必要な実計算機種別名を導くテーブルである。全実計算機種別名対応テーブル４００は、マスタ計算機Ｍに保存されている。全実計算機種別名対応テーブル４００は、実計算機種別名項目と実計算機名項目とを有し、実計算機ごとに実計算機種別名と実計算機名とがレコード化されている。
【００３６】
実計算機種別名とは、実計算機の種別を一意に特定する識別情報である。なお、本例では、実計算機種別名により実計算機の性能を表現している。たとえば、「Ｉ２ｃｐｕ４ｃｏｒｅ３２Ｇ」という実計算機種別名は、その実計算機が、２個のＣＰＵ、４個のコア、３２［ＧＢ］の記憶容量を有することを意味している。実計算機名とは、実計算機を一意に特定する識別情報である。なお、マスタ計算機Ｍの実計算機名は「Ｍ」とする。
【００３７】
また、仮想計算機は、その仮想計算機の環境と同一またはそれ以上の性能を持つ実計算機に割り当てられる。たとえば、仮想計算機ＶＭ２をマスタ計算機Ｍから実計算機群Ｒに移動する際、全仮想計算機種別名対応テーブル３００から仮想計算機名「ＶＭ２」の仮想計算機種別名「Ｉ２ｃｐｕ４ｃｏｒｅ３２Ｇ」を引く。
【００３８】
そして、全仮想計算機種別名対応テーブル３００から引かれた仮想計算機種別名「Ｉ２ｃｐｕ４ｃｏｒｅ３２Ｇ」と同一の実計算機種別名となる実計算機名「Ｒ３」，「Ｒ４」を全実計算機種別名対応テーブル４００から引く。これにより、仮想計算機ＶＭ２を実計算機Ｒ３，Ｒ４のいずれか一方の実計算機に割当てることができる。
【００３９】
図５は、全仮想計算機ジョブ実行状況テーブル５００の記憶内容を示す説明図である。全仮想計算機ジョブ実行状況テーブル５００は、仮想計算機のジョブ実行の状況を示すテーブルである。全仮想計算機ジョブ実行状況テーブル５００は、負荷分散制御装置１０１に保存されている。全仮想計算機ジョブ実行状況テーブル５００は、仮想計算機名項目と、状態項目と、最大ジョブ数項目と、実行中ジョブ数項目とを有し、仮想計算機ごとに、仮想計算機名、状態、最大ジョブ数、実行中ジョブ数とがレコード化されている。
【００４０】
状態項目において、「ｏｋ」は、ジョブ投入が可能であることを示しており、「ｃｌｏｓｅｄ」は、これ以上ジョブ投入できないことを示している。一行目のレコードを例に挙げると、仮想計算機ＶＭ１の最大ジョブ数は４個で、そのうち実行中ジョブ数は２個であるため、あと２個のジョブ投入が可能（状態：ｏｋ）であることを示している。
【００４１】
仮想計算機群ＶＭのジョブ実行状況は、常時負荷分散制御装置１０１に監視されているため、全仮想計算機ジョブ実行状況テーブル５００は、負荷分散制御装置１０１により常時更新されることとなる。
【００４２】
図６は、全仮想計算機負荷テーブル６００の記憶内容を示す説明図である。全仮想計算機負荷テーブル６００は、仮想計算機の負荷の状況を示すテーブルである。全仮想計算機負荷テーブル６００は、負荷分散制御装置１０１に保存されている。全仮想計算機負荷テーブル６００は、仮想計算機名項目と、ＣＰＵ負荷項目と、空き容量項目とを有し、仮想計算機ごとに、仮想計算機名、ＣＰＵ負荷、空き容量とがレコード化されている。ここで、ＣＰＵ負荷とは、仮想計算機が割当てられたマスタ計算機Ｍまたは実計算機のＣＰＵの使用率である。空き容量とは、仮想計算機が割当てられたマスタ計算機Ｍまたは実計算機における未使用記憶容量である。
【００４３】
仮想計算機群ＶＭの負荷は、常時負荷分散制御装置１０１に監視されているため、全仮想計算機負荷テーブル６００は、負荷分散制御装置１０１により常時更新されることとなる。
【００４４】
図７は、全仮想計算機配置テーブル７００の記憶内容を示す説明図である。全仮想計算機配置テーブル７００は、仮想計算機の配置先を示すテーブルである。全仮想計算機配置テーブル７００は、仮想計算機制御装置１０２に保存されている。全仮想計算機配置テーブル７００は、仮想計算機名項目と、実計算機名項目と、ＣＰＵ状態項目と、メモリ使用量項目とを有し、仮想計算機ごとに、仮想計算機名、実計算機名（仮想計算機の配置先）、ＣＰＵ状態、メモリ使用量とがレコード化されている。
【００４５】
ここで、ＣＰＵ状態とは、仮想計算機が割当てられたマスタ計算機Ｍまたは実計算機のＣＰＵが使用可能か否かを示す情報（フラグ）である。「ｏｋ」である場合は使用可能である。「ｃｌｏｓｅｄ」である場合は使用不可である。ある仮想計算機について、他の実計算機またはマスタ計算機Ｍに移動すると、その仮想計算機のレコードの実計算機名項目の実計算機名が、移動先の計算機名に更新される。同様に、ＣＰＵ状態、メモリ使用量も更新される。
【００４６】
仮想計算機群ＶＭの配置先は、仮想計算機制御装置１０２に常時監視されている。全仮想計算機配置テーブル７００は、仮想計算機の移動が実行される都度、仮想計算機制御装置１０２により更新されることとなる。
【００４７】
図８は、全実計算機負荷テーブル８００の記憶内容を示す説明図である。全実計算機負荷テーブル８００は、実計算機の負荷の状況を示すテーブルである。全実計算機負荷テーブル８００は、電力供給制御装置１０６により作成される。全実計算機負荷テーブル８００は、実計算機名項目と、実計算機種別名項目と、負荷率項目とを有し、実計算機ごとに、実計算機名と、実計算機種別名と、負荷率とがレコード化されている。ここで、負荷率とは、実計算機のＣＰＵ負荷や空き容量（またはメモリ使用量）により計算される値である。
【００４８】
図９は、電源管理テーブル９００の記憶内容を示す説明図である。電源管理テーブル９００は、実計算機の電源状態を示すテーブルである。電源管理テーブル９００は、電力供給制御装置１０６に保存されている。電源管理テーブル９００は、実計算機名項目と、電源状態項目とを有し、実計算機ごとに、実計算機名と、電源状態とがレコード化されている。ここで、電源状態とは、電源のＯＮ（投入）、ＯＦＦ（遮断）のいずれかの状態を示す。
【００４９】
（電力供給制御装置１０６の機能的構成）
図１０は、本実施の形態にかかる電力供給制御装置１０６の機能的構成を示すブロック図である。電力供給制御装置１０６は、検出部１００１と、判断部１００２と、決定部１００３と、制御部１００４と、取得部１００５と、指定部１００６と、判定部１００７と、探索部１００８と、を含む構成である。検出部１００１〜探索部１００８は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０９により、その機能を実現する。
【００５０】
また、計算機制御装置１０１０は、負荷分散制御装置１０１および仮想計算機制御装置１０２を含み、マスタ計算機Ｍと実計算機群Ｒとの間の仮想計算機ＶＭｉの移動および実計算機Ｒｉの起動／起動停止を制御する。電源制御装置１０２０は、電源タップ制御装置１０５および電源タップ１０３を含み、各実計算機Ｒｉの電源投入／遮断をおこなう。
【００５１】
検出部１００１は、仮想計算機群ＶＭの中から選ばれた一の仮想計算機ＶＭｉがジョブを実行中であるか否かを検出する機能を有する。具体的には、たとえば、計算機制御装置１０１０にアクセスして、計算機制御装置１０１０に、マスタ計算機Ｍおよび実計算機群Ｒに配置されている仮想計算機群ＶＭ内の仮想計算機ＶＭｉについてジョブを実行中であるかを検出させる。そして、計算機制御装置１０１０が得た検出結果を受け取る。
【００５２】
判断部１００２は、各仮想計算機ＶＭｉの配置先を特定するテーブルを参照することにより、一の仮想計算機ＶＭｉを配置する計算機がマスタ計算機Ｍであるか実計算機群Ｒ内の一の実計算機Ｒｉであるかを判断する機能を有する。ここで、各仮想計算機ＶＭｉの配置先を特定するテーブルとは、図７に示した全仮想計算機配置テーブル７００である。判断部１００２では、全仮想計算機配置テーブル７００の仮想計算機ＶＭｉのレコードを参照し、実計算機名項目がマスタ計算機Ｍであるか実計算機Ｒｉであるかを判断する。
【００５３】
決定部１００３は、検出部１００１によって検出された検出結果と判断部１００２によって判断された判断結果に基づいて、一の仮想計算機ＶＭｉの移動先の計算機を決定する機能を有する。具体的には、たとえば、後述するように仮想計算機移動要請キュー１４００に移動指示情報を保存する。
【００５４】
また、決定部１００３は、一の仮想計算機ＶＭｉを配置する計算機の起動／起動停止および電源投入／遮断を決定する機能を有する。具体的には、たとえば、後述するように仮想計算機起動／停止要請キュー１５００に起動／停止指示情報を保存する。
【００５５】
ここで、検出結果と判断結果のパターン別の決定処理について説明する。まず、（Ａ）仮想計算機ＶＭｉがジョブの実行中ではなく、かつ、仮想計算機ＶＭｉを配置する計算機が実計算機群Ｒ内の一の実計算機Ｒｉであると判断された場合、仮想計算機ＶＭｉの移動先をマスタ計算機Ｍに決定する。そして、実計算機Ｒｉの起動停止および電源遮断を決定する。
【００５６】
また、（Ｂ）仮想計算機ＶＭｉがジョブを実行中であり、かつ、仮想計算機ＶＭｉを配置する計算機がマスタ計算機Ｍである場合、仮想計算機ＶＭｉの移動先を実計算機群Ｒのうち電源遮断されている実計算機Ｒｉに決定する。そして、電源遮断されている実計算機Ｒｉへの電源投入および起動を決定する。それ以外のパターンでは、移動先や電源投入、電源遮断を決定しない。
【００５７】
制御部１００４は、決定部１００３によって決定された決定結果に応じた処理を計算機制御装置１０１０および電源制御装置１０２０に実行させる機能を有する。具体的には、上記（Ａ）のパターンの場合、仮想計算機ＶＭｉを実計算機Ｒｉからマスタ計算機Ｍへ移動させる移動処理を計算機制御装置１０１０に実行させる。たとえば、計算機制御装置１０１０に仮想計算機ＶＭｉの移動指令を出すことで、計算機制御装置１０１０が移動処理を実行する。
【００５８】
また、移動処理により移動した場合、実計算機Ｒｉの起動停止処理を計算機制御装置１０１０に実行させる。たとえば、計算機制御装置１０１０に実計算機Ｒｉの起動停止指令を出すことで、計算機制御装置１０１０が起動停止処理を実行する。これにより実計算機Ｒｉの起動が停止されるが、電源は投入されたままである。
【００５９】
さらに、起動停止処理により起動停止した場合、実計算機Ｒｉへの電源を遮断する電源遮断処理を電源制御装置１０２０に実行させる。たとえば、計算機制御装置１０１０に実計算機Ｒｉの電源遮断指令を出すことで、計算機制御装置１０１０が電源遮断処理を実行する。これにより実計算機Ｒｉへの電力供給が遮断され、消費電力の低減化を図ることができる。
【００６０】
また、上記（Ｂ）のパターンの場合、電源遮断されている実計算機（Ｒｘとする）へ電源投入する電源投入処理を電源制御装置１０２０に実行させる。たとえば、電源制御装置１０２０に実計算機Ｒｘの電源投入指令を出すことで、電源制御装置１０２０が電源投入処理を実行する。
【００６１】
また、電源投入処理により電源投入された実計算機Ｒｘを起動する起動処理を計算機制御装置１０１０に実行させる。たとえば、計算機制御装置１０１０に実計算機Ｒｘの起動指令を出すことで、計算機制御装置１０１０が起動処理を実行する。
【００６２】
さらに、起動処理により起動された実計算機Ｒｘに仮想計算機ＶＭｉを移動させる移動処理を計算機制御装置１０１０に実行させる。たとえば、計算機制御装置１０１０に仮想計算機ＶＭｉの移動指令を出すことで、計算機制御装置１０１０が移動処理を実行する。
【００６３】
また、取得部１００５は、各実計算機Ｒｉの負荷を取得する機能を有する。具体的には、たとえば、図１７で後述する全実計算機負荷算出処理（ステップＳ１６０１）により、各実計算機Ｒｉの負荷を取得することができる。
【００６４】
指定部１００６は、実計算機群Ｒの中から一の実計算機Ｒｉを指定する機能を有する。具体的には、たとえば任意の実計算機Ｒｉを指定する。また、実計算機群Ｒの負荷のうち最小の負荷の実計算機（Ｒｊとする）から順次指定するのが好ましい。
【００６５】
この場合、決定部１００３では、指定部１００６によって指定された実計算機Ｒｊの負荷（Ｌｒｊとする）に基づいて、実計算機Ｒｊに配置されている仮想計算機（ＶＭｘとする）の移動先の計算機を決定する。具体的には、判定部１００７と探索部１００８により、実計算機Ｒｊに配置されている仮想計算機ＶＭｘの移動先の計算機を決定する。
【００６６】
すなわち、判定部１００７は、実計算機Ｒｊの負荷Ｌｒｊが第１のしきい値以下であるか否かを判定する機能を有する。第１のしきい値とは、実計算機Ｒｉが低負荷であるか高負荷であるかを評価する指標値である。たとえば、５０％という評価値として設定してもよい。この場合、５０％以下であれば、低負荷となり、５０％より大きければ、高負荷となる。低負荷であれば、探索部１００８による探索処理を実行することとなる。この場合、実計算機Ｒｊに配置されている仮想計算機ＶＭｘは、探索された実計算機Ｒｔに移動させられることとなる。
【００６７】
一方、高負荷である場合、判定部１００７では、実計算機Ｒｊの負荷Ｌｒｊが第２のしきい値以下であるか否かを判定する。第２のしきい値とは、実計算機Ｒｉが高負荷であるか過負荷であるかを評価する指標値である。たとえば、１００％という評価値として設定してもよい。この場合、１００％以下であれば、高負荷となり、１００％より大きければ、過負荷となる。過負荷となった場合、決定部１００３は、実計算機Ｒｊに配置されている仮想計算機ＶＭｘのマスタ計算機Ｍへの移動を決定する。また、実計算機Ｒｊの起動停止および電源遮断を決定する。
【００６８】
探索部１００８は、判定部１００７により実計算機Ｒｊの負荷Ｌｒｊが第１のしきい値以下（低負荷）であると判定された場合、実計算機群Ｒのうち実計算機Ｒｊ以外の残余の実計算機群Ｒの中から、実計算機Ｒｊの負荷Ｌｒｊとの総和が第２のしきい値以下となる負荷を有する他の実計算機Ｒｔを探索する機能を有する。
【００６９】
具体的には、実計算機Ｒｊの負荷Ｌｒｊと実計算機Ｒｔの負荷Ｌｒｔとの総和が、第２のしきい値（たとえば、１００％）以下となるような実計算機Ｒｔを探索する。実計算機Ｒｊの負荷Ｌｒｊと実計算機Ｒｔの負荷Ｌｒｔとの総和が、第２のしきい値に近ければ近いほど、実計算機群Ｒ内の稼働台数を極力低減することができる。また、このあと、決定部１００３では実計算機Ｒｊの起動停止および電源遮断を決定する。
【００７０】
（電力供給制御装置１０６による電力供給制御処理手順）
図１１は、本実施の形態にかかる電力供給制御装置１０６による電力供給／停止指示処理手順を示すフローチャート（前半）である。まず、現在時刻が指示タイミングになるまで待ち受け（ステップＳ１１０１：Ｎｏ）、指示タイミングである場合（ステップＳ１１０１：Ｙｅｓ）、テーブル取得処理を実行する（ステップＳ１１０２）。具体的には、全仮想計算機ジョブ実行状況テーブル５００と全仮想計算機負荷テーブル６００を負荷分散制御装置１０１から取得し、全仮想計算機配置テーブル７００を仮想計算機制御装置１０２から取得する。
【００７１】
つぎに、仮想計算機番号ｉをｉ＝１とし（ステップＳ１１０３）、ｉ＞ｎであるか否かを判断する（ステップＳ１１０４）。ｎは仮想計算機ＶＭｉの総数（本例の場合はｎ＝５）である。ｉ＞ｎでない場合（ステップＳ１１０４：Ｎｏ）、仮想計算機ＶＭｉはジョブ無実行な計算機であるか否かを判断する（ステップＳ１１０５）。仮想計算機ＶＭｉがジョブ無実行な計算機である場合（ステップＳ１１０５：Ｙｅｓ）、電源遮断指示処理を実行して（ステップＳ１１０６）、ステップＳ１１０８に移行する。
【００７２】
一方、仮想計算機ＶＭｉがジョブ無実行な計算機である場合（ステップＳ１１０５：Ｎｏ）、電源投入停止指示処理を実行して（ステップＳ１１０７）、ステップＳ１１０８に移行する。ステップＳ１１０８では、仮想計算機番号ｉをインクリメントし（ステップＳ１１０８）、ステップＳ１１０４に戻る。ステップＳ１１０４において、ｉ＞ｎである場合（ステップＳ１１０４：Ｙｅｓ）、図１６の電力供給／停止指示処理手順を示すフローチャート（後半）に移行する。
【００７３】
図１２は、図１１に示した電源遮断指示処理（ステップＳ１１０６）の詳細な処理手順を示すフローチャートである。まず、全仮想計算機配置テーブル７００を参照して、ジョブ無実行の仮想計算機ＶＭｉの実機配置はマスタ計算機Ｍであるか否かを判断する（ステップＳ１２０１）。マスタ計算機Ｍである場合（ステップＳ１２０１：Ｙｅｓ）、マスタ計算機Ｍに対しては電源を遮断しないため、ステップＳ１１０８に移行する。
【００７４】
一方、マスタ計算機Ｍでない場合（ステップＳ１２０１：Ｎｏ）、仮想計算機ＶＭｉは実計算機群Ｒ内の実計算機Ｒｓに配置されていることとなる。この場合、マスタ計算機Ｍへの移動指示をおこない（ステップＳ１２０２）、ステップＳ１２０３に移行する。具体的には、仮想計算機移動要請キュー１４００に当該移動指示情報を投入する。マスタ計算機Ｍへの移動指示をおこなうのは、移動元の実計算機Ｒｓの電源を遮断するためである。
【００７５】
そして、移動元の実計算機Ｒｓに他の仮想計算機ＶＭｊ（ｉ≠ｊ）が配置されているか否かを判断する（ステップＳ１２０３）。配置されている場合（ステップＳ１２０３：Ｙｅｓ）、仮想計算機ＶＭｊによりジョブ実行中であるため、電源遮断指示を出さずにステップＳ１１０８に移行する。一方、仮想計算機ＶＭｊがない場合（ステップＳ１２０３：Ｎｏ）、移動元の実計算機Ｒｓの電源遮断指示をおこない（ステップＳ１２０４）、ステップＳ１１０８に移行する。具体的には、実計算機起動／停止要請キュー１５００に、移動元の実計算機Ｒｓの電源遮断指示情報を投入する。
【００７６】
このように、電源遮断指示処理（ステップＳ１１０６）を実行することにより、ジョブ無実行な仮想計算機ＶＭｉが配置されている実計算機Ｒｓに対し、電源遮断指示をおこなうことができる。したがって、実計算機Ｒｓの消費電力の低減化を図ることができる。
【００７７】
図１３は、図１１に示した電源投入指示処理（ステップＳ１１０７）の詳細な処理手順を示すフローチャートである。まず、全仮想計算機配置テーブル７００を参照して、ジョブ実行中である仮想計算機ＶＭｉの実機配置はマスタ計算機Ｍであるか否かを判断する（ステップＳ１３０１）。マスタ計算機Ｍでない場合（ステップＳ１３０１：Ｎｏ）、実計算機Ｒｓ上でジョブを実行中であるため、電源を投入する必要はない。したがって、ステップＳ１１０８に移行する。
【００７８】
一方、マスタ計算機Ｍである場合（ステップＳ１３０１：Ｙｅｓ）、図６に示した全仮想計算機負荷テーブル６００を参照して、仮想計算機ＶＭｉの負荷が所定のしきい値以上であるか否かを判断する（ステップＳ１３０２）。ここで、仮想計算機ＶＭｉの負荷は、全仮想計算機負荷テーブル６００のＣＰＵ負荷をそのまま利用してもよい。
【００７９】
また、全仮想計算機負荷テーブル６００の空き容量と全仮想計算機配置テーブル７００のメモリ使用量からメモリ使用率を算出し、算出されたメモリ使用率を仮想計算機ＶＭｉの負荷として利用してもよい。また、仮想計算機ＶＭｉの負荷の所定時間（たとえば、１５分）の統計値（たとえば、平均値）としてもよい。また、所定のしきい値は、仮想計算機ＶＭｉを対応する実計算機に移動してジョブ実行させるための値である。たとえば、０％に設定してもよい。
【００８０】
しきい値以上でない場合（ステップＳ１３０２：Ｎｏ）、仮想計算機ＶＭｉを移動する必要がないため、ステップＳ１１０８に移行する。一方、しきい値以上である場合（ステップＳ１３０２：Ｙｅｓ）、全仮想計算機種別名対応テーブル３００および全実計算機種別名対応テーブル４００を参照して、仮想計算機ＶＭｉと同一種別となる移動先の実計算機Ｒｄを検索する（ステップＳ１３０３）。
【００８１】
具体的には、全仮想計算機種別名対応テーブル３００により仮想計算機ＶＭｉの仮想計算機種別を特定し、特定された仮想計算機種別と同一種別の実計算機種別を持つ実計算機を、全実計算機種別名対応テーブル４００から引き、移動先の実計算機Ｒｄとする。移動先の実計算機Ｒｄが複数候補ある場合でも１つだけにする。
【００８２】
このあと、移動先の実計算機Ｒｄへの電源投入指示をおこなう（ステップＳ１３０４）。具体的には、実計算機起動／停止要請キュー１５００に移動先の実計算機Ｒｄへの電源投入指示情報を投入する。そして、仮想計算機ＶＭｉの移動指示をおこなって（ステップＳ１３０５）、ステップＳ１１０８に移行する。具体的には、仮想計算機移動要請キュー１４００に仮想計算機ＶＭｉの移動指示情報を投入する。
【００８３】
このように、電源投入指示処理（ステップＳ１１０７）を実行することにより、マスタ計算機Ｍ上でジョブ実行中の仮想計算機ＶＭｉを実計算機Ｒｄに移動させることができる。したがって、ジョブ実行により電力供給が必要となった移動先の実計算機Ｒｄに対してのみあらたに電源投入することができる。
【００８４】
図１４は、仮想計算機移動要請キュー１４００を示す説明図である。仮想計算機移動要請キュー１４００は、仮想計算機ＶＭｉの移動指示情報が投入されるキューである。仮想計算機移動要請キュー１４００は、たとえば、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリにより構成される。図１４では、１０個の移動指示情報ｍ１〜ｍ１０が保持されている。図１４では、右側の移動指示情報ｍ１が最初に掃き出される情報である。移動指示情報ｍ１〜ｍ１０は、移動対象となる仮想計算機ＶＭｉの仮想計算機名と移動先の実計算機Ｒｄの実計算機名を含む。
【００８５】
図１５は、実計算機起動／停止要請キュー１５００を示す説明図である。実計算機起動／停止要請キュー１５００は、移動元の実計算機Ｒｓの電源起動／停止指示情報が投入されるキューである。実計算機起動／停止要請キュー１５００も、たとえば、ＦＩＦＯメモリにより構成される。図１５では、１０個の電源起動／停止指示情報ｓ１〜ｓ１０が保持されている。図１５では、右側の電源起動／停止指示情報ｓ１が最初に掃き出される情報である。電源起動／停止指示情報ｓ１〜ｓ１０は、要請種別と起動／停止の対象となる実計算機Ｒｓ／Ｒｄの実計算機名を含む。
【００８６】
図１６は、本実施の形態にかかる電力供給制御装置１０６による電力供給／停止指示処理手順を示すフローチャート（後半）である。本フローチャートでは、低負荷の仮想計算機をできる限り実計算機に集約するための処理手順である。
【００８７】
そのため、低負荷の仮想計算機と高負荷の実計算機とをマッチングさせることで実計算機の空きリソースをできる限り最小限にとどめる。これにより、起動に必要な実計算機を必要最小限にとどめることができる。同時に、過負荷な実計算機に対しては、当該実計算機に配置されている仮想計算機を他の余裕のある仮想計算機に移動させることで、リソース不足の解消を図る。
【００８８】
まず、図１１のステップＳ１１０４：Ｙｅｓのあと、全実計算機負荷算出処理を実行する（ステップＳ１６０１）。全実計算機負荷算出処理（ステップＳ１６０１）の詳細については、図１７で説明する。全実計算機負荷算出処理（ステップＳ１６０１）により、図８に示した全実計算機負荷テーブル８００が作成される。全実計算機負荷テーブル８００では、負荷の昇順にソートされている。
【００８９】
つぎに、実計算機のソート番号ｊをｊ＝１とし（ステップＳ１６０２）、ｊ＞ｍであるか否かを判断する（ステップＳ１６０３）。ｍは、実計算機Ｒｊの総数（本例ではｍ＝５）である。ｊ＞ｍでない場合（ステップＳ１６０３：Ｎｏ）、実計算機Ｒｊの負荷Ｌｒｊを、全実計算機負荷テーブル８００から取得する（ステップＳ１６０４）。そして、取得した負荷ＬｒｊがＬｒｊ≦５０％であるか否かを判断する（ステップＳ１６０５）。５０％（この数値には限定されない）は、その実計算機Ｒｊが高負荷であるか低負荷であるかの目安となる指標値である。
【００９０】
Ｌｒｊ≦５０％である場合（ステップＳ１６０５：Ｙｅｓ）、実計算機Ｒｊは高負荷であると判断され、Ｌｒｊ≦５０％でない場合（ステップＳ１６０５：Ｎｏ）、実計算機Ｒｊは低負荷であると判断される。したがって、以降のステップＳ１６０６〜Ｓ１６１１の処理は、実計算機Ｒｊ上の仮想計算機を他の実計算機に集約させる処理を示す。
【００９１】
具体的には、Ｌｒｊ≦５０％である場合（ステップＳ１６０５：Ｙｅｓ）、実計算機探索処理を実行する（ステップＳ１６０６）。実計算機探索処理（ステップＳ１６０６）の詳細は、図１８で説明する。実計算機探索処理（ステップＳ１６０６）では、負荷Ｌｒｊとできる限りマッチする高負荷の実計算機を探索する。たとえば、負荷Ｌｒｊが２０％である場合、負荷８０％を上限としてできる限り高負荷な実計算機を探索する。
【００９２】
そして、探索できたか否かを判断する（ステップＳ１６０７）。探索できなかった場合（ステップＳ１６０７：Ｎｏ）、ソート番号ｊをインクリメントして（ステップＳ１６０８）、ステップＳ１６０３に移行する。一方、探索できた場合（ステップＳ１６０７：Ｙｅｓ）、実計算機Ｒｊで動いている全仮想計算機ＶＭｒを、実計算機探索処理（ステップＳ１６０６）で探索された探索実計算機Ｒｔへ移動させる移動指示をおこなう（ステップＳ１６０９）。具体的には、探索実計算機Ｒｔへの移動指示情報を仮想計算機移動要請キュー１４００に投入する。
【００９３】
そして、実計算機Ｒｊの電源遮断指示をおこなう（ステップＳ１６１０）。具体的には、実計算機起動／停止要請キュー１５００に、実計算機Ｒｊの電源遮断指示情報を投入する。このあと、ソート番号ｊをインクリメントして（ステップＳ１６１１）、ステップＳ１６０３に戻る。
【００９４】
また、ステップＳ１６０５において、Ｌｒｊ≦５０％でない場合（ステップＳ１６０５：Ｎｏ）、以降のステップＳ１６１２〜Ｓ１６１６の処理で、過負荷な実計算機に対しては、当該実計算機に配置されている仮想計算機を他の余裕のある仮想計算機に移動させることで、リソース不足の解消を図る。
【００９５】
具体的には、Ｌｒｊ≦５０％でない場合（ステップＳ１６０５：Ｎｏ）、Ｌｒｊ＞１００％であるか否かを判断する（ステップＳ１６１２）。１００％（この数値には限定されないが、ステップＳ１６０５の指標値よりも大きい）は、その実計算機Ｒｊが過負荷であるか単に高負荷であるかの目安となる指標値である。
【００９６】
Ｌｒｊ＞１００％でない場合（ステップＳ１６１２：Ｎｏ）、実計算機Ｒｊは過負荷でないため、ステップＳ１６１６に移行する。一方、Ｌｒｊ＞１００％である場合（ステップＳ１６１２：Ｙｅｓ）、実計算機Ｒｊは過負荷であるため、実計算機Ｒｊでの仮想計算機台数が１台であるか否かを判断する（ステップＳ１６１３）。
【００９７】
１台である場合（ステップＳ１６１３：Ｙｅｓ）、その仮想計算機を他の実計算機に移しても１００％以上の負荷となるため、移動処理しても意味がない。そのため、ステップＳ１６１６に移行する。一方、複数台である場合（ステップＳ１６１３：Ｎｏ）、実計算機Ｒｊで動いている全仮想計算機ＶＭｒを、マスタ計算機Ｍへ移動させる移動指示をおこなう（ステップＳ１６１４）。具体的には、マスタ計算機Ｍへの移動指示情報を仮想計算機移動要請キュー１４００に投入する。
【００９８】
そして、実計算機Ｒｊの電源遮断指示をおこなう（ステップＳ１６１５）。具体的には、実計算機起動／停止要請キュー１５００に、実計算機Ｒｊの電源遮断指示情報を投入する。このあと、ソート番号ｊをインクリメントして（ステップＳ１６１６）、ステップＳ１６０３に戻る。ステップＳ１６０３において、ｊ＞ｍである場合（ステップＳ１６０３：Ｙｅｓ）、図１１のステップＳ１１０１に戻る。
【００９９】
このように、図１６に示した処理手順によれば、低負荷の仮想計算機と高負荷の実計算機とをマッチングさせることで実計算機の空きリソースをできる限り最小限にとどめることができる。これにより、起動に必要な実計算機を必要最小限にとどめることができ、低消費電力化を図ることができる。同時に、過負荷な実計算機に対しては、当該実計算機に配置されている仮想計算機を他の余裕のある仮想計算機に移動させることで、リソース不足の解消を図ることができる。
【０１００】
図１７は、図１６に示した全実計算機負荷算出処理（ステップＳ１６０１）の詳細な処理手順を示すフローチャートである。本フローチャートでは、図６に示した全実計算機負荷テーブル８００を作成する。
【０１０１】
まず、実計算機番号ｈをｈ＝１とし（ステップＳ１７０１）、全仮想計算機配置テーブル７００を参照して、実計算機Ｒｈを指定する（ステップＳ１７０２）。そして、ｈ＞ｍであるか否かを判断する（ステップＳ１７０３）。ｍは実計算機Ｒｈの総数（本例ではｍ＝５）である。ｈ＞ｍでない場合（ステップＳ１７０３：Ｎｏ）、実計算機Ｒｈ内での仮想計算機番号ｋをｋ＝１とする（ステップＳ１７０４）。つぎに、実計算機Ｒｈを指定した全仮想計算機配置テーブル７００のレコードから実計算機Ｒｈに配置されている仮想計算機ＶＭｋを指定する（ステップＳ１７０５）。
【０１０２】
そして、ｋ＞Ｎｈであるか否かを判断する（ステップＳ１７０６）。Ｎｈは、実計算機Ｒｈ内での仮想計算機ＶＭｋの総数である。ｋ＞Ｎｈでない場合（ステップＳ１７０６：Ｎｏ）、仮想計算機ＶＭｋの負荷率Ｌｖｋを算出する（ステップＳ１７０７）。負荷率Ｌｖｋは、たとえば、ＣＰＵ負荷率とメモリ負荷率を算出する。そして、算出されたＣＰＵ負荷率とメモリ負荷率のうち大きい方の負荷率を仮想計算機ＶＭｋの負荷率Ｌｖｋとする。
【０１０３】
ここで、ＣＰＵ負荷率とは、実負荷率と予定負荷率のうち大きい方の負荷率とする。実負荷率とは、全仮想計算機負荷テーブル６００から引かれた仮想計算機ＶＭｋのＣＰＵ負荷率である。また、予定負荷率とは、全仮想計算機ジョブ実行状況テーブル５００から引かれた仮想計算機ＶＭｋの実行中ジョブ数／最大ジョブ数である。
【０１０４】
また、メモリ負荷率とは、メモリ使用量／最大メモリ容量である。仮想計算機ＶＭｋのメモリ使用量は、全仮想計算機配置テーブル７００から引くことができる。最大メモリ容量は、メモリ使用量＋空き容量である。仮想計算機ＶＭｋの空き容量は、全仮想計算機負荷テーブル６００から引くことができる。
【０１０５】
このあと、ｋをインクリメントして（ステップＳ１７０８）、ステップＳ１７０６に戻る。ステップＳ１７０６において、ｋ＞Ｎｈである場合（ステップＳ１７０６：Ｙｅｓ）、実計算機Ｒｈに配置されているすべての仮想計算機ＶＭｋの負荷率Ｌｖｋが算出されたこととなる。したがって、実計算機Ｒｈの負荷率Ｒｈを算出する（ステップＳ１７０９）。実計算機Ｒｈの負荷率Ｒｈは、実計算機Ｒｈに配置されているすべての仮想計算機ＶＭｋの負荷率Ｌｖｋの総和をとることで算出される。
【０１０６】
このあと、ｈをインクリメントして（ステップＳ１７１０）、ステップＳ１７０３に戻る。ステップＳ１７０３において、ｈ＞ｍである場合（ステップＳ１７０３：Ｙｅｓ）、すべての実計算機Ｒｈについて負荷率Ｌｈが算出されたこととなる。したがって、全実計算機負荷テーブル８００を作成する（ステップＳ１７１１）。全実計算機負荷テーブル８００には、実計算機種別名も記録する。
【０１０７】
なお、実計算機Ｒｈの負荷率Ｌｈを２５％区切りで、０〜２５％、２５．０１〜５０％、５０．０１〜７５％、７５．０１〜１００％、１００％オーバーの５種に分け、２５％，５０％，７５％，１００％，１２５％とした負荷率に丸めることとしてもよい。また、刻みの単位は幾つでもよく、たとえば、１２．５％刻みにしてもよい。
【０１０８】
このあと、全実計算機負荷テーブル８００を負荷率Ｌｈの昇順にソートする（ステップＳ１７１２）。これにより、図８に示した全実計算機負荷テーブル８００となる。そして、ステップＳ１６０２に移行する。
【０１０９】
図１８は、図１６に示した実計算機探索処理（ステップＳ１６０６）の詳細な処理手順を示すフローチャートである。まず、全実計算機負荷テーブル８００から負荷率が最大の実計算機Ｒｍｘを特定する（ステップＳ１８０１）。つぎに、全実計算機負荷テーブル８００を参照して、実計算機Ｒｍｘの実計算機種別がステップＳ１６０４で負荷Ｌｒｊが取得された実計算機Ｒｊと同一種別であるか否かを判断する（ステップＳ１８０２）。同一種別でない場合（ステップＳ１８０２：Ｎｏ）、実計算機Ｒｊに配置されている仮想計算機を集約できないため、ステップＳ１６０７に移行する。
【０１１０】
一方、同一種別である場合（ステップＳ１８０２：Ｙｅｓ）、実計算機Ｒｍｘの負荷率Ｌｒｍｘおよび実計算機Ｒｈの負荷率Ｌｒｈを全実計算機負荷テーブル８００から取得する（ステップＳ１８０３）。そして、負荷率Ｌｒｍｘと負荷率Ｌｒｊの総和が１００％以下であるか否かを判断する（ステップＳ１８０４）。負荷率Ｌｒｍｘと負荷率Ｌｒｊの総和が１００％以下でない場合（ステップＳ１８０４：Ｎｏ）、集約できないため、ステップＳ１６０７に移行する。
【０１１１】
一方、負荷率Ｌｒｍｘと負荷率Ｌｒｊの総和が１００％以下である場合（ステップＳ１８０４：Ｙｅｓ）、実計算機Ｒｍｘを探索実計算機Ｒｔに決定する（ステップＳ１８０５）。そして、実計算機Ｒｍｘのレコードを全実計算機負荷テーブル８００から削除して（ステップＳ１８０６）、ステップＳ１６０７に移行する。
【０１１２】
このように、図１８に示した処理手順によれば、低負荷の仮想計算機と高負荷の実計算機とをマッチングさせることで実計算機の空きリソースをできる限り最小限にとどめることができる。
【０１１３】
図１９は、仮想計算機移動・電源投入／遮断制御処理手順を示すフローチャートである。まず、移動タイミングが来るまで待ち受け（ステップＳ１９０１：Ｎｏ）、移動タイミングがきた場合（ステップＳ１９０１：Ｙｅｓ）、仮想計算機移動要請キュー１４００に移動要請（仮想計算機ＶＭｉの移動指示情報）が残存しているか否かを判断する（ステップＳ１９０２）。残存していない場合（ステップＳ１９０２：Ｎｏ）、ステップＳ１９０１に戻る。
【０１１４】
一方、残存している場合（ステップＳ１９０２：Ｙｅｓ）、仮想計算機移動要請キュー１４００から移動対象仮想計算機を特定する（ステップＳ１９０３）。ここでは、移動対象仮想計算機をＶＭａとする。つぎに、同一の移動対象仮想計算機ＶＭａである移動指示情報を仮想計算機移動要請キュー１４００から抽出する（ステップＳ１９０４）。そして、同一の移動対象仮想計算機ＶＭａを移動対象とする移動指示情報から、最終要請となる移動指示情報を決定する（ステップＳ１９０５）。
【０１１５】
図２０は、最終要請となる移動指示情報の決定処理を示す説明図である。仮想計算機移動要請キュー１４００からは、先頭（図２０中、右側）の移動指示情報から取り出されることとなるが、移動対象仮想計算機ＶＭａが同一の移動指示情報が複数存在する場合、先頭側の移動が後続の移動要請により無駄となる。たとえば、図２０のように、移動指示情報ｍ１、ｍ５、ｍ１０では、移動対象仮想計算機ＶＭａがいずれも仮想計算機ＶＭ１である。したがって、このような場合には、移動指示情報ｍ１、ｍ５、ｍ１０のうち最後に出力される移動指示情報ｍ１０が最終要請に決定される。
【０１１６】
このあと、最終要請に決定された移動指示情報の移動対象仮想計算機ＶＭａの移動方向を、その移動指示情報から検出する（ステップＳ１９０６）。移動方向が、マスタ計算機Ｍから実計算機である場合（ステップＳ１９０６：マスタ⇒実）、ステップＳ１９０７〜Ｓ１９１１により電源投入処理を実行する。
【０１１７】
一方、移動方向が実計算機からマスタ計算機Ｍ、または実計算機から実計算機である場合（ステップＳ１９０６：実⇒マスタ／実⇒実）、ステップＳ１９１２〜Ｓ１９１６により電源遮断処理を実行する。
【０１１８】
図２０の例では、最終要請が移動指示情報ｍ１０に決定される。移動指示情報ｍ１０の移動先実計算機は実計算機Ｒ２である。したがって、移送対象仮想計算機ＶＭａである仮想計算機ＶＭ１がマスタ計算機Ｍに配置されていれば、電源投入処理となり、実計算機に配置されていれば、電源遮断処理となる。
【０１１９】
電源投入処理では、移動方向が、マスタ計算機Ｍから実計算機である場合（ステップＳ１９０６：マスタ⇒実）、移動先実計算機Ｒｄの投入指令をおこなう（ステップＳ１９０７）。具体的には、実計算機起動／停止要請キュー１５００の先頭の起動／停止指示情報を取り出して、電源タップ制御装置１０５に移動先実計算機Ｒｄの投入指令として起動／停止指示情報を送信する。
【０１２０】
電源タップ制御装置１０５は、起動／停止支指示情報に従って、電源タップ１０３をＯＮ／ＯＦＦ制御する。この場合は、投入指令であるため、移動先実計算機Ｒｄへの電源投入を電源タップ１０３に指示することとなる。
【０１２１】
そして、電源管理テーブル９００を更新する（ステップＳ１９０８）。このあと、仮想計算機制御装置１０２に対し、移動対象仮想計算機ＶＭａの移動先実計算機Ｒｄの起動確認指令を送信する（ステップＳ１９０９）。また、仮想計算機制御装置１０２に対し、移動対象仮想計算機ＶＭａの移動指令を送信する（ステップＳ１９１０）。
【０１２２】
仮想計算機制御装置１０２では、起動確認指令を受けると、移動先実計算機Ｒｄからの起動完了を待ち受ける。そして、起動完了の通知を受けた場合、移動対象仮想計算機ＶＭａを起動確認された移動先実計算機Ｒｄに移動させる。そして、移動完了通知を電力供給制御装置１０６に返す。電力供給制御装置１０６は、仮想計算機制御装置１０２から移動対象仮想計算機ＶＭａの移動完了通知を待ち受け（ステップＳ１９１１：Ｎｏ）、移動完了通知を受けた場合（ステップＳ１９１１：Ｙｅｓ）、ステップＳ１９０２に戻る。
【０１２３】
なお、仮想計算機制御装置１０２では、移動対象仮想計算機ＶＭａの移動が完了すると、全仮想計算機配置テーブル７００を更新することとなる。
【０１２４】
また、電源遮断処理では、移動方向が実計算機からマスタ計算機Ｍ、または実計算機から実計算機である場合（ステップＳ１９０６：実⇒マスタ／実⇒実）、移動対象仮想計算機ＶＭａの移動指令をおこなう（ステップＳ１９１２）。具体的には、仮想計算機移動要請キュー１４００の先頭の移動指示情報を取り出して、仮想計算機制御装置１０２に移動対象仮想計算機ＶＭａの移動指令として移動指示情報を送信する。
【０１２５】
仮想計算機制御装置１０２は、移動指令を受けると、移動対象仮想計算機ＶＭａを、移動指示情報で指定された移動先実計算機Ｒｄに移動させる。移動が完了した場合、仮想計算機制御装置１０２は、電力供給制御装置１０６に対し、移動完了通知を返す。
【０１２６】
電力供給制御装置１０６は、仮想計算機制御装置１０２から移動完了通知を待ち受け（ステップＳ１９１３：Ｎｏ）、移動完了通知を受けた場合（ステップＳ１９１３：Ｙｅｓ）、配置元実計算機Ｒｃの停止指令をおこなう（ステップＳ１９１４）。具体的には、実計算機起動／停止要請キュー１５００の先頭の起動／停止指示情報を取り出して、仮想計算機制御装置１０２に対し配置元実計算機Ｒｃの停止指令として、取り出した起動／停止指示情報を送信する。
【０１２７】
なお、仮想計算機制御装置１０２では、移動対象仮想計算機ＶＭａの移動が完了すると、全仮想計算機配置テーブル８００を更新することとなる。
【０１２８】
仮想計算機制御装置１０２では、起動／停止指示情報を受けると、その停止指令にしたがって、配置元実計算機Ｒｃの起動を停止させる。また、電力供給制御装置１０６は、配置元実計算機Ｒｃの電源遮断指令をおこなう（ステップＳ１９１５）。具体的には、電源タップ制御装置１０５に配置元実計算機Ｒｃの電源遮断指令として起動／停止指示情報を送信する。
【０１２９】
電源タップ制御装置１０５は、起動／停止支指示情報に従って、電源タップ１０３をＯＮ／ＯＦＦ制御する。この場合は、停止指令であるため、配置元実計算機Ｒｃの電源遮断を電源タップ１０３に指示することとなる。そして、電源管理テーブル９００を更新して（ステップＳ１９１６）、ステップＳ１９０２に戻ることとなる。
【０１３０】
このように、仮想計算機移動・電源投入／遮断制御処理手順では、移動先となる実計算機Ｒｄに対してのみあらたに電源投入する。また、仮想計算機ＶＭｉが配置されていない実計算機Ｒｈの起動を停止させ電源遮断をおこなう。これにより、実計算機群Ｒに対する消費電力の低減化を図ることができる。
【０１３１】
以上説明したように、本実施の形態によれば、仮想計算機によるジョブ実行の状況に応じて、仮想計算機の移動先、仮想計算機が動作している実計算機の起動／起動停止および電源投入／遮断を決定するため、適切な負荷分散処理を可能な限り低消費電力で実現することができる。
【０１３２】
また、実計算機の起動停止および遮断を決定することにより、必要最低限の実計算機に電力供給をおこなうことができる。これにより、実計算機群の消費電力の低減化を図ることができる。
【０１３３】
また、実計算機で仮想計算機によりジョブを実行させたい場合、電源遮断されている実計算機に電源投入することで、あらたに電源投入および起動された実計算機で仮想計算機によるジョブを実行することができる。したがって、必要な場合にのみ実計算機の稼動台数を増加することができるため、実計算機群の消費電力の低減化を図ることができる。
【０１３４】
また、仮想計算機の環境に適した実計算機を選択することができる。これにより、実計算機が電源遮断されていても、仮想計算機の環境と実計算機の性能を比較するだけで、適切な実計算機を起動させることができ、負荷分散の最適化を図ることができる。
【０１３５】
また、移動要請が複数種類ある場合は、最新のものを優先して適用することにより、仮想計算機の移動処理の効率化を図ることができる。したがって、移動処理回数が削減できるため、省電力化および負荷分散の最適化を図ることができる。
【０１３６】
また、仮想計算機が配置されている実計算機の負荷のレベルに応じて移動先の計算機を決定することにより、ジョブ実行中の仮想計算機を最小限の実計算機台数で集約することができる。
【０１３７】
特に、実計算機が低負荷である場合、低負荷との総和が過負荷にならない程度の高負荷な実計算機を探索することで、実計算機の集約率の向上を図ることができる。これにより、実計算機の稼働台数を削減できるため、仮想計算機のない実計算機の電源を遮断することができる。したがって、実計算機群の消費電力の低減化を図ることができる。
【０１３８】
一方、実計算機が過負荷である場合、その実計算機に配置されている仮想計算機をすべてマスタ計算機に戻すことで、戻された仮想計算機を再度他の実計算機に分配することができる。これにより、負荷分散の最適化を図ることができる。また、仮想計算機がマスタ計算機に戻された実計算機を電源遮断することで、実計算機群の消費電力の低減化を図ることができる。
【０１３９】
なお、本実施の形態で説明した電力供給制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１４０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４１】
（付記１）実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するコンピュータを、
前記仮想計算機群の中から選ばれた一の仮想計算機がジョブを実行中であるか否かを検出する検出手段、
前記各仮想計算機の配置先を特定するテーブルを参照することにより、前記一の仮想計算機を配置する計算機が前記マスタ計算機であるか前記実計算機群内の一の実計算機であるかを判断する判断手段、
前記検出手段によって検出された検出結果と前記判断手段によって判断された判断結果に基づいて、前記一の仮想計算機の移動先の計算機を決定し、前記一の仮想計算機を配置する計算機の起動／起動停止および電源投入／遮断を決定する決定手段、
前記決定手段によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御手段、
として機能させることを特徴とする電力供給制御プログラム。
【０１４２】
（付記２）前記決定手段は、
前記検出手段によって前記一の仮想計算機がジョブの実行中ではないと検出され、かつ、前記判断手段によって前記一の仮想計算機を配置する計算機が前記実計算機群内の一の実計算機であると判断された場合、前記一の仮想計算機の移動先を前記マスタ計算機に決定するとともに、前記一の実計算機の起動停止および電源遮断を決定し、
前記制御手段は、
前記一の仮想計算機を前記一の実計算機から前記マスタ計算機へ移動させる移動処理を前記計算機制御装置に実行させ、前記移動処理により移動した場合、前記一の実計算機の起動停止処理を前記計算機制御装置に実行させ、前記起動停止処理により起動停止した場合、前記一の実計算機への電源を遮断する電源遮断処理を前記電源制御装置に実行させることを特徴とする付記１に記載の電力供給制御プログラム。
【０１４３】
（付記３）前記決定手段は、
前記検出手段によって前記一の仮想計算機がジョブを実行中と検出され、かつ、前記判断手段によって前記一の仮想計算機を配置する計算機が前記マスタ計算機であると判断された場合、前記一の仮想計算機の移動先を前記実計算機群のうち電源遮断されている実計算機に決定するとともに、前記電源遮断されている実計算機への電源投入および起動を決定し、
前記制御手段は、
前記電源遮断されている実計算機へ電源投入する電源投入処理を前記電源制御装置に実行させ、前記電源投入処理により電源投入された実計算機を起動する起動処理を前記計算機制御装置に実行させ、前記起動処理により起動された実計算機に前記一の仮想計算機を移動させる移動処理を前記計算機制御装置に実行させることを特徴とする付記１に記載の電力供給制御プログラム。
【０１４４】
（付記４）前記決定手段は、
前記仮想計算機群の環境と前記実計算機群の性能との対応関係を示すテーブルを参照することにより、前記一の仮想計算機の移動先を前記実計算機群のうち電源遮断されており、かつ、前記一の仮想計算機の環境を設定可能な性能を有する実計算機に決定することを特徴とする付記３に記載の電力供給制御プログラム。
【０１４５】
（付記５）前記決定手段は、
前記一の仮想計算機の移動先の計算機が複数種類存在する場合、前記複数種類の移動先の計算機のうち最新に決定された計算機を移動先の計算機に決定することを特徴とする付記１〜４のいずれか一つに記載の電力供給制御プログラム。
【０１４６】
（付記６）実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するコンピュータを、
前記各実計算機の負荷を取得する取得手段、
前記実計算機群の中から一の実計算機を指定する指定手段、
前記指定手段によって指定された一の実計算機の負荷に基づいて、前記一の実計算機に配置されている仮想計算機の移動先の計算機を決定するとともに、前記一の実計算機の起動停止および電源遮断を決定する決定手段、
前記決定手段によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御手段、
として機能させることを特徴とする電力供給制御プログラム。
【０１４７】
（付記７）前記コンピュータを、
前記一の実計算機の負荷が第１のしきい値以下であるか否かを判定する判定手段、
前記判定手段によって前記一の実計算機の負荷が第１のしきい値以下であると判定された場合、前記実計算機群のうち前記一の実計算機以外の残余の実計算機群の中から、前記一の実計算機の負荷との総和が前記第１のしきい値より大きい第２のしきい値以下となる負荷を有する他の実計算機を探索する探索手段として機能させ、
前記決定手段は、
前記一の実計算機に配置されている仮想計算機の移動先の計算機を前記探索手段によって探索された他の実計算機に決定するとともに、前記一の実計算機の起動停止および電源遮断を決定し、
前記制御手段は、
前記一の実計算機に配置されている仮想計算機を前記一の実計算機から前記他の実計算機へ移動させる移動処理を前記計算機制御装置に実行させ、前記移動処理により移動した場合、前記一の実計算機の起動停止処理を前記計算機制御装置に実行させ、前記起動停止処理により起動停止した場合、前記一の実計算機への電源を遮断する電源遮断処理を前記電源制御装置に実行させることを特徴とする付記６に記載の電力供給制御プログラム。
【０１４８】
（付記８）前記指定手段は、
前記実計算機群の中から最小負荷の前記一の実計算機を指定し、
前記探索手段は、
前記一の実計算機の負荷との総和が前記第１のしきい値より大きい第２のしきい値以下となる最大の負荷を有する他の実計算機を探索することを特徴とする付記７に記載の電源制御プログラム。
【０１４９】
（付記９）前記判定手段は、
前記一の実計算機の負荷が前記第１のしきい値以下でないと判定された場合、さらに、前記一の実計算機の負荷が前記第２のしきい値以下であるか否かを判定し、
前記決定手段は、
前記第２のしきい値以下でないと判定された場合、前記一の実計算機に配置されている仮想計算機の移動先の計算機を前記マスタ計算機に決定するとともに、前記一の実計算機の起動停止および電源遮断を決定し、
前記制御手段は、
前記一の実計算機に配置されている仮想計算機を前記一の実計算機から前記マスタ計算機へ移動させる移動処理を前記計算機制御装置に実行させ、前記移動処理により移動した場合、前記一の実計算機の起動停止処理を前記計算機制御装置に実行させ、前記起動停止処理により起動停止した場合、前記一の実計算機への電源を遮断する電源遮断処理を前記電源制御装置に実行させることを特徴とする付記７または８に記載の電力供給制御プログラム。
【０１５０】
（付記１０）前記決定手段は、
前記一の実計算機に配置されている仮想計算機の移動先の計算機が複数種類存在する場合、前記複数種類の移動先の計算機のうち最新に決定された計算機を移動先の計算機に決定することを特徴とする付記６〜９のいずれか一つに記載の電力供給制御プログラム。
【０１５１】
（付記１１）実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御する電力供給制御装置であって、
前記仮想計算機群の中から選ばれた一の仮想計算機がジョブを実行中であるか否かを検出する検出手段と、
前記各仮想計算機の配置先を特定するテーブルを参照することにより、前記一の仮想計算機を配置する計算機が前記マスタ計算機であるか前記実計算機群内の一の実計算機であるかを判断する判断手段と、
前記検出手段によって検出された検出結果と前記判断手段によって判断された判断結果に基づいて、前記一の仮想計算機の移動先の計算機を決定し、前記一の仮想計算機を配置する計算機の起動／起動停止および電源投入／遮断を決定する決定手段、
前記決定手段によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御手段と、
を備えることを特徴とする電力供給制御装置。
【０１５２】
（付記１２）実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御する電力供給制御装置であって、
前記各実計算機の負荷を取得する取得手段と、
前記実計算機群の中から一の実計算機を指定する指定手段と、
前記指定手段によって指定された一の実計算機の負荷に基づいて、前記一の実計算機に配置されている仮想計算機の移動先の計算機を決定し、前記一の実計算機の起動停止および電源遮断を決定する決定手段と、
前記決定手段によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御手段と、
を備えることを特徴とする電力供給制御装置。
【０１５３】
（付記１３）実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するコンピュータが、
前記仮想計算機群の中から選ばれた一の仮想計算機がジョブを実行中であるか否かを検出する検出工程と、
前記各仮想計算機の配置先を特定するテーブルを参照することにより、前記一の仮想計算機を配置する計算機が前記マスタ計算機であるか前記実計算機群内の一の実計算機であるかを判断する判断工程と、
前記検出工程によって検出された検出結果と前記判断工程によって判断された判断結果に基づいて、前記一の仮想計算機の移動先の計算機を決定し、前記一の仮想計算機を配置する計算機の起動／起動停止および電源投入／遮断を決定する決定工程と、
前記決定工程によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御工程と、
を実行することを特徴とする電力供給制御方法。
【０１５４】
（付記１４）実計算機群と、当該実計算機群に設定可能な仮想計算機群が常駐するマスタ計算機と、前記各実計算機の電源投入／遮断をおこなう電源制御装置と、前記マスタ計算機と前記実計算機群との間の前記仮想計算機の移動および前記実計算機の起動／起動停止を制御する計算機制御装置と、を備える負荷分散制御システムを制御するコンピュータが、
前記各実計算機の負荷を取得する取得工程と、
前記実計算機群の中から一の実計算機を指定する指定工程と、
前記指定工程によって指定された一の実計算機の負荷に基づいて、前記一の実計算機に配置されている仮想計算機の移動先の計算機を決定するとともに、前記一の実計算機の起動停止および電源遮断を決定する決定工程と、
前記決定工程によって決定された決定結果に応じた処理を前記計算機制御装置および前記電源制御装置に実行させる制御工程と、
を実行することを特徴とする電力供給制御方法。
【符号の説明】
【０１５５】
１００  負荷分散制御システム
１０１  負荷分散制御装置
１０２  仮想計算機制御装置
１０３  電源タップ
１０４  電源
１０５  電源タップ制御装置
１０６  電力供給制御装置
３００  全仮想計算機種別名対応テーブル
４００  全実計算機種別名対応テーブル
５００  全仮想計算機ジョブ実行状況テーブル
６００  全仮想計算機負荷テーブル
７００  全仮想計算機配置テーブル
８００  全実計算機負荷テーブル
９００  電源管理テーブル
１００１  検出部
１００２  判断部
１００３  決定部
１００４  制御部
１００５  取得部
１００６  指定部
１００７  判定部
１００８  探索部
１０１０  計算機制御装置
１０２０  電源制御装置
【図１】
2010262382.tif 000003
【図２】
2010262382.tif 000004
【図３】
2010262382.tif 000005
【図４】
2010262382.tif 000006
【図５】
2010262382.tif 000007
【図６】
2010262382.tif 000008
【図７】
2010262382.tif 000009
【図８】
2010262382.tif 000010
【図９】
2010262382.tif 000011
【図１０】
2010262382.tif 000012
【図１１】
2010262382.tif 000013
【図１２】
2010262382.tif 000014
【図１３】
2010262382.tif 000015
【図１４】
2010262382.tif 000016
【図１５】
2010262382.tif 000017
【図１６】
2010262382.tif 000018
【図１７】
2010262382.tif 000019
【図１８】
2010262382.tif 000020
【図１９】
2010262382.tif 000021
【図２０】
2010262382.tif 000022