(57)【要約】【課題】十分な空き容量を有するリソースプールが無い場合でも新たな仮想マシンを稼働させることができるシステム制御装置、制御方法、及びプログラムを提供する。【解決手段】リソース量判定部２０２０は、第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量以上であるか否かを判定する。余剰リソース量増加部２０４０は、第１物理リソースプールの余剰リソース量が必要リソース量未満である場合に、第１物理リソースプールの余剰リソース量を必要リソース量以上の量に増加させる。稼働部２０６０は、第１物理リソースプールの余剰リソース量が必要リソース量以上である場合に、第１物理リソースプールに含まれる物理リソースを用いて対象仮想マシンを稼働させる。【選択図】図１
2015141459.tif 000002
【特許請求の範囲】
【請求項１】
第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定手段と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加手段と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働手段と、
を有するシステム制御装置。
【請求項２】
前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを停止することで前記第１物理リソースプールの余剰リソース量を増加させる請求項１に記載のシステム制御装置。
【請求項３】
仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得手段を有し、
前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に停止する請求項２に記載のシステム制御装置。
【請求項４】
前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを別の物理リソースプールへ移送することで前記第１物理リソースプールの余剰リソース量を増加させる請求項１乃至３いずれか一項に記載のシステム制御装置。
【請求項５】
仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得手段を有し、
前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に移送する請求項４に記載のシステム制御装置。
【請求項６】
前記余剰リソース量増加手段は、前記第１物理リソースプールに物理リソースを加えることで前記第１物理リソースプールの余剰リソース量を増加させる請求項１乃至５いずれか一項に記載のシステム制御装置。
【請求項７】
前記余剰リソース量増加手段は、前記第１物理リソースプールに対して別の物理リソースプールから物理リソースを移植することで、前記第１物理リソースプールに物理リソースを加える請求項６に記載のシステム制御装置。
【請求項８】
前記余剰リソース量増加手段は、
前記第１物理リソースプールの余剰リソース量を増加させる複数の増加方式の中から少なくとも１つの増加方式を選択する方式選択手段と、
前記方式選択手段によって選択された前記増加方式を用いて前記第１物理リソースプールの余剰リソース量を増加させる方式実行手段と、
を有する請求項１乃至７いずれか一項に記載のシステム制御装置。
【請求項９】
コンピュータによって実行される制御方法であって、
第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定ステップと、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加ステップと、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働ステップと、
を有する制御方法。
【請求項１０】
コンピュータにシステム制御装置として動作する機能を持たせるプログラムであって、前記コンピュータに、
第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定機能と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加機能と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働機能と、
を持たせるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム制御装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
複数の物理マシンが設けられているシステムで新たに仮想マシンを稼働させる場合に、仮想マシンをどの物理マシンに配置するかを決定する種々の手法がある。例えばこのような手法として、仮想化によるリソースオーバヘッドを軽減させる手法や、仮想マシン間での可用性を向上させる手法等がある。例えば特許文献１のリソース管理サーバは、与えられた要求仕様を満たす仮想マシンを稼働させるための空き容量があるリソースプールを検索し、空き容量があるリソースプールで仮想マシンを稼働させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１２／０５６７３１号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１で開示されている手法は、対象の仮想マシンが必要とするリソース量以上の空き容量を有するリソースプールがある場合のみ、その仮想マシンを稼働させる。そのため、対象の仮想マシンが必要とするリソース量以上の空き容量を有するリソースプールがない場合、対象の仮想マシンを稼働させることができない。
【０００５】
本発明は、以上の課題に鑑みてなされたものである。本発明の目的は、十分な空き容量を有するリソースプールが無い場合でも新たな仮想マシンを稼働させることができるシステム制御装置、制御方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明が提供するシステム制御装置は、第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定手段と、前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加手段と、前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働手段と、を有する。
【０００７】
本発明が提供する制御方法は、コンピュータによって実行される。当該制御方法は、第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定ステップと、前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加ステップと、前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働ステップと、を有する。
【０００８】
本発明が提供するプログラムは、本発明が提供するシステム制御装置の各機能構成部が有する機能をコンピュータに持たせることで、そのコンピュータに、本発明が提供するシステム制御装置として動作する機能を持たせる。
【発明の効果】
【０００９】
本発明によれば、十分な空き容量を有するリソースプールが無い場合でも新たな仮想マシンを稼働させることができるシステム制御装置、制御方法、及びプログラムが提供される。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係るシステム制御装置をその使用環境と共に示すブロック図である。
【図２】システム制御装置のハードウエア構成を例示するブロック図である。
【図３】実施形態１のシステム制御装置によって実行される処理の流れを例示するフローチャートである。
【図４】仮想マシン情報取得部を有するシステム制御装置を例示するブロック図である。
【図５】仮想マシン情報をテーブル形式で例示する図である。
【図６】実施形態２のシステム制御装置によって実行される処理の流れを例示するフローチャートである。
【図７】第１物理リソースプールが決定されている場合に実施形態３の余剰リソース量増加部が行う処理の流れを例示するフローチャートである。
【図８】第１物理リソースプールが決定されていない場合に実施形態３の余剰リソース量増加部が行う処理の流れを例示するフローチャートである。
【図９】物理リソースの追加方法１を概念的に例示する図である。
【図１０】物理リソースの追加方法１の処理の流れを示すフローチャートである。
【図１１】実施形態５のシステム制御装置を例示するブロック図である。
【図１２】実施形態５のシステム制御装置によって実行される処理の流れを例示するフローチャートである。
【図１３】実施形態６のシステム制御装置を例示するブロック図である。
【図１４】増加方式情報をテーブル形式で例示する図である。
【図１５】実施形態６のシステム制御装置によって実行される処理の流れを例示するフローチャートである。
【図１６】システム制御装置が制御する物理リソースを具体的に例示する図である。
【図１７】システム制御装置が制御する物理リソースを具体的に例示する別の図である。
【図１８】各ユーザに割り当てられた物理リソースを例示する図である。
【図１９】userA によって作成される２つの物理リソースプールを例示する図である。
【図２０】実施例２においてシステム制御装置が制御する物理リソースの構成例を示す図である。
【図２１】各仮想マシンを稼働させるために必要なストレージの容量を示す図である。
【図２２】２）の基準で仮想マシンＥを配置する配置パターンが列挙された図である。
【図２３】３）の基準で仮想マシンＥを配置する配置パターンが列挙された図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１２】
［実施形態１］
図１は、実施形態１に係るシステム制御装置２０００をその使用環境と共に示すブロック図である。図１において、矢印は情報の流れを表している。さらに、図１において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１３】
システム制御装置２０００は仮想マシン及び物理リソースを管理する。仮想マシンとは、ソフトウエアによって生成された仮想的なハードウエアで構成される、仮想的な計算機である。例えば仮想マシンは、仮想マシンモニタやエミュレータなどによって生成及び制御される。仮想マシンは物理リソースを使用して動作する。
【００１４】
物理リソースは、CPU、メモリ、ストレージ、及びネットワークインタフェースなど、種々のハードウエアである。システム制御装置２０００が扱う CPU リソースは、CPU 速度や CPU のコア数などである。システム制御装置２０００が扱うメモリリソースは、メモリ容量などである。システム制御装置２０００が扱うストレージリソースは、ストレージの容量や帯域幅などである。システム制御装置２０００が扱うネットワークリソースは、NIC（Network Interface Card）の帯域幅や LAN 内での経路数やポート数などである。ただし、システム制御装置２０００が扱う各種物理リソースは、これらに限定されない。
【００１５】
システム制御装置２０００が制御する物理リソースの一部又は全部の論理的な集合を、物理リソースプール３０００と呼ぶ。物理リソースプール３０００は、１つ又は複数の仮想マシンを稼働させるために用いられる。例えば物理リソースプール３０００は、ある物理マシンが有する一部又は全部の物理リソースによって構成される。物理マシンとは、種々の物理的な計算機である。例えば物理マシンは、PC (Personal Computer)、サーバ、及び携帯型計算機などである。また、物理リソースプール３０００は、異なる物理マシンが有する物理リソースの組み合わせによって構成されてもよい。例えば、仮想マシンは、ある物理マシン１が有する CPU 及びメモリ、並びに別の物理マシン２が有するストレージを用いて動作しうる。また、物理リソースプール３０００は、共有ストレージなどが有する物理リソースを含んでもよい。
【００１６】
例えばシステム制御装置２０００は、システム制御装置２０００が制御する物理リソースを用いて仮想マシンを稼働させるユーザに対して、物理リソースプール３０００を割り当てる。各ユーザは、自身に割り当てられた物理リソースプール３０００を用いて１つ又は複数の仮想マシンを稼働させる。なお、一人のユーザに対して複数の物理リソースプール３０００を割り当ててもよい。
【００１７】
ここで、システム制御装置２０００が新たに稼働させようとする仮想マシンを対象仮想マシンと表記する。また、対象仮想マシンの稼働に用いる物理リソースプール３０００を第１物理リソースプールと表記する。なお、物理リソースプールの物理リソースを用いて仮想マシンを稼働させることを、「物理リソースプール内で仮想マシンを稼働させる」とも表記する。
【００１８】
本実施形態のシステム制御装置２０００は、リソース量判定部２０２０、余剰リソース量増加部２０４０、及び稼働部２０６０を有する。以下、それぞれについて詳しく説明する。
【００１９】
＜リソース量判定部２０２０＞
リソース量判定部２０２０は、第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量以上であるか否かを判定する。ここで、対象仮想マシンの稼働に要する物理リソース量を、必要リソース量と表記する。また、物理リソースプールが有する物理リソースの余剰リソース量のことを、単に「物理リソースプールの余剰リソース量」とも表記する。
【００２０】
例えば必要リソース量は、対象仮想マシンが使用する物理リソース量を表す。また例えば必要リソース量は、対象仮想マシンが使用する物理リソース量に、所定量や所定割合の余剰量を付加した値であってもよい。具体例として、対象仮想マシンが使用するメモリが 2GB である場合を考える。この場合、例えばメモリに関する必要リソース量は 2GB である。また例えば、メモリに関する必要リソース量は、2GB に余剰量として 10% を付加した 2.2GB であってもよい。
【００２１】
＜余剰リソース量増加部２０４０＞
余剰リソース量増加部２０４０は、第１物理リソースプールの余剰リソース量が必要リソース量未満である場合に、第１物理リソースプールの余剰リソース量を必要リソース量以上の量に増加させる。
【００２２】
＜稼働部２０６０＞
稼働部２０６０は、第１物理リソースプールの余剰リソース量が必要リソース量以上である場合に、第１物理リソースプールに含まれる物理リソースを用いて対象仮想マシンを稼働させる。
【００２３】
＜作用・効果＞
本実施形態によれば、第１物理リソースプールの余剰リソース量が対象仮想マシンを稼働させるために要する物理リソース量（必要リソース量）未満である場合、余剰リソース量増加部２０４０により、第１物理リソースプールの余剰リソース量が必要リソース量以上の量に増加させられる。したがって、第１物理リソースプールの余剰リソースが不足している場合でも、動的に余剰リソースを確保することで、対象仮想マシンを稼働させることができる。また、余剰リソースの確保はシステム制御装置２０００によって自動的に行われるため、対象仮想マシンを稼働させたいユーザが物理リソースプールの管理者に依頼して物理リソースプールの余剰リソース量を確保するといったことを行う必要がない。そのため、物理リソースプール内で対象仮想マシンを稼働させたいユーザにとって、物理リソースプールの利便性が向上する。
【００２４】
＜ハードウエア構成＞
システム制御装置２０００が有する各機能構成部は、例えば、個々に又は複数組み合わせられた状態で、少なくとも１つのハードウエア構成要素として実現される。その他にも例えば、各機能構成部は、少なくとも１つのソフトウエア構成要素として実現される。その他にも例えば、各機能構成部は、ハードウエア構成要素とソフトウエア構成要素の組み合わせにより実現される。
【００２５】
図２は、システム制御装置２０００のハードウエア構成を例示するブロック図である。図２において、システム制御装置２０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージ１０８０、及びネットワークインタフェース１１００を有する。
【００２６】
バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージ１０８０、及びネットワークインタフェース１１００が、相互にデータを送受信するためのデータ伝送路である。プロセッサ１０４０は、例えば CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ１０６０は、例えば RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ１０８０は、例えばハードディスク、SSD (Solid State Drive)、又はメモリカードなどの記憶装置である。また、ストレージ１０８０は、RAM や ROM 等のメモリであってもよい。ネットワークインタフェース１１００は、システム制御装置２０００が他の装置などと通信するためのインタフェースである。ネットワークインタフェース１１００は、有線回線を用いて通信を行うインタフェースであってもよいし、無線回線を用いて通信を行うインタフェースであってもよい。
【００２７】
リソース量判定モジュール１２２０は、システム制御装置２０００に、リソース量判定部２０２０の機能を持たせるためのプログラムである。プロセッサ１０４０は、リソース量判定モジュール１２２０を実行することで、リソース量判定部２０２０の機能を実現する。
【００２８】
余剰リソース量増加モジュール１２４０は、システム制御装置２０００に、余剰リソース量増加部２０４０の機能を持たせるためのプログラムである。プロセッサ１０４０は、余剰リソース量増加モジュール１２４０を実行することで、余剰リソース量増加部２０４０の機能を実現する。
【００２９】
稼働モジュール１２６０は、システム制御装置２０００に、稼働部２０６０の機能を持たせるためのプログラムである。プロセッサ１０４０は、稼働モジュール１２６０を実行することで、稼働部２０６０の機能を実現する。
【００３０】
例えばプロセッサ１０４０は、上記各モジュールをメモリ１０６０上に読み出して実行する。ただし、プロセッサ１０４０は、上記各モジュールを、メモリ１０６０上に読み出さずに実行してもよい。
【００３１】
ストレージ１０８０は、上記各モジュールを格納する。
【００３２】
システム制御装置２０００のハードウエア構成は、図２に示した構成に限定されない。例えば、各モジュールはメモリ１０６０に格納されてもよい。この場合、システム制御装置２０００は、ストレージ１０８０を備えていなくてもよい。
【００３３】
＜処理の流れ＞
図３は、実施形態１のシステム制御装置２０００によって実行される処理の流れを例示するフローチャートである。ステップＳ１０２において、リソース量判定部２０２０は、「第１物理リソースプールの余剰リソース量が必要リソース量以上である」という条件が満たされているか否かを判定する。この条件が満たされていない場合（ステップＳ１０２：ＮＯ）、図３の処理はステップＳ１０４に進む。一方、この条件が満たされている場合（ステップＳ１０２：ＹＥＳ）、図３の処理はステップＳ１０６に進む。
【００３４】
ステップＳ１０４において、余剰リソース量増加部２０４０は、第１物理リソースプールの余剰リソース量を必要リソース量以上のリソース量に増加させる。
【００３５】
ステップＳ１０６において、リソース量判定部２０２０は、「第１物理リソースプールの余剰リソース量が必要リソース量以上である」という条件が満たされているか否かを判定する。この条件が満たされている場合（ステップＳ１０６：ＹＥＳ）、図３の処理はステップＳ１０８に進む。一方、この条件が満たされていない場合（ステップＳ１０６：ＮＯ）、図３の処理は終了する。
【００３６】
ステップＳ１０８において、稼働部２０６０は、第１物理リソースプール内で対象仮想マシンを稼働させる。
【００３７】
なお、対象仮想マシンは複数あってもよい。対象仮想マシンが複数ある場合、例えばシステム制御装置２０００は、図３に示した一連の処理を、各対象仮想マシンについて順次行う。
【００３８】
また例えば、システム制御装置２０００は、図３の処理を一度実行することにより、全ての対象仮想マシンを稼働させるようにしてもよい。具体的には、リソース量判定部２０２０は、各対象仮想マシンを稼働させるために要する必要リソース量の合計値を、ステップＳ２０２における「対象仮想マシンの必要リソース量」として用いる。そして、余剰リソース量増加部２０４０は、全ての対象仮想マシンを稼働させられるように、第１物理リソースプールの余剰リソース量を増加させる。
【００３９】
ここで、対象仮想マシンが複数ある場合に、第１物理リソースプールの余剰リソース量を増加させたとしても、一部の対象仮想マシンしか稼働させられない状況になったとする。この場合、システム制御装置２０００は、稼働させることができる対象仮想マシンのみを稼働させてもよいし、いずれの対象仮想マシンも稼働させずに処理を終了してもよい。
【００４０】
以下、本実施形態についてさらに詳細に説明する。
【００４１】
＜余剰リソース量の取得方法＞
リソース量判定部２０２０が第１物理リソースプールの余剰リソース量を取得する方法は様々である。例えばシステム制御装置２０００の内部または外部に、各物理リソースプールの余剰リソース量を管理する機能を設けておく。そして、リソース量判定部２０２０は、このように管理されている第１物理リソースプールの余剰リソース量を取得する。また、リソース量判定部２０２０は、第１物理リソースプールを構成する物理マシンなどにアクセスして、第１物理リソースプールの余剰リソース量を取得してもよい。
【００４２】
＜必要リソース量の取得方法＞
リソース量判定部２０２０が対象仮想マシンの必要リソース量を取得する方法は様々である。例えばリソース量判定部２０２０は、外部の装置から入力される対象仮想マシンの必要リソース量を取得する。その他にも例えば、リソース量判定部２０２０は、手動で入力される必要リソース量を取得する。さらにリソース量判定部２０２０は、外部の装置にアクセスして、必要リソース量を取得してもよい。また、リソース量判定部２０２０は、このような種々の方法で仮想マシンの ID を取得し、仮想マシンの ID に紐づけられて管理されている仮想マシンの必要リソース量を取得してもよい。
【００４３】
必要リソース量が、対象仮想マシンが使用する物理リソース量に余剰量を付加した値であるとする。この場合、リソース量判定部２０２０は、必要リソース量を取得してもよいし、対象仮想マシンが使用する物理リソース量を取得してもよい。対象仮想マシンが使用する物理リソース量を取得した場合、リソース量判定部２０２０は、取得した値に余剰量を加算することで、必要リソース量を算出する。
【００４４】
＜第１物理リソースプールの決定方法＞
物理リソースプールが複数ある場合に、どの物理リソースプールを第１物理リソースプールとするかを決定する方法は様々である。例えばシステム制御装置２０００は、第１物理リソースプールの指定を受け付ける。また例えば、ユーザごとに物理リソースプールが割り当てられている場合、システム制御装置２０００は、対象仮想マシンを稼働させようとしているユーザに割り当てられている物理リソースプールを、第１物理リソースプールとする。その他にも例えば、システム制御装置２０００は、最も余剰リソース量が多い物理リソースプールを第１物理リソースプールにしてもよい。
【００４５】
[実施形態２]
実施形態２のシステム制御装置２０００は、実施形態１のシステム制御装置２０００と同様に図１で表される。下記で説明する点を除き、実施形態２のシステム制御装置２０００が有する機能は、実施形態１のシステム制御装置２０００が有する機能と同様である。
【００４６】
実施形態２の余剰リソース量増加部２０４０は、第１物理リソースプールの物理リソースを用いて動作している仮想マシンを停止することで、第１物理リソースプールの余剰リソース量を増加させる。なお、ここでいう仮想マシンの停止は、仮想マシンの動作を止めて、その仮想マシンが物理リソースを消費しなくなる状態にすることを意味する。例えば仮想マシンの停止は、仮想マシンのサスペンドやシャットダウンなどである。
【００４７】
第１物理リソースプール内で動作している仮想マシンが複数ある場合、余剰リソース量増加部２０４０は、「どの仮想マシンを停止するか」を決定する。例えば余剰リソース量増加部２０４０は、使用する物理リソース量が多い仮想マシンから優先的に停止する。こうすることで、一度の停止処理によって増加する余剰リソース量が多くなる。その結果、停止する仮想マシンの数を少なくすることができるため、第１物理リソースプール内で稼働中のシステムなどに与える影響を少なくすることができる。また、仮想マシンを停止させる処理に要する時間が短いという利点もある。
【００４８】
その他にも例えば、余剰リソース量増加部２０４０は、優先度の低い仮想マシンから優先的に停止してもよい。この場合、余剰リソース量増加部２０４０は、仮想マシン情報取得部２０８０を有する。仮想マシン情報取得部２０８０は仮想マシン情報を取得する。仮想マシン情報は、仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である。図４は、仮想マシン情報取得部２０８０を有するシステム制御装置２０００を例示するブロック図である。図４において、矢印は情報の流れを表している。さらに、図４において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００４９】
図５は、仮想マシン情報をテーブル形式で例示する図である。図５に示されているテーブルを、仮想マシン情報テーブル１００と表記する。仮想マシン情報テーブル１００は、仮想マシンＩＤ１０２及び優先度１０４という２つの列を有する。仮想マシンＩＤ１０２は、仮想マシンのＩＤを示す。優先度１０４は、仮想マシンＩＤ１０２で特定される仮想マシンの優先度を表す。
【００５０】
なお、余剰リソース量増加部２０４０は、特定の仮想マシンを停止対象から除外する機能を有していてもよい。停止対象から除外する仮想マシンは、静的に決定されてもよいし、動的に決定されていてもよい。静的に決定される場合、例えば上述した仮想マシン情報において、各仮想マシンごとに、停止対象から除外するか否かを併せて示すようにする。こうすることで、第１物理リソースプールを利用するユーザやシステム制御装置２０００の管理者などが、停止対象から除外する仮想マシンを静的に定義できる。
【００５１】
また、停止対象から除外する仮想マシンが動的に決定される場合、例えば余剰リソース量増加部２０４０は、優先度が所定値以上の仮想マシンを停止対象から除外する。こうすることで、特に重要な仮想マシンについて、動作の継続を保証することができる。
【００５２】
＜処理の流れ＞
図６は、実施形態２のシステム制御装置２０００によって実行される処理の流れを例示するフローチャートである。図６において、余剰リソース量増加部２０４０は、優先度に基づいて停止する仮想マシンを決定する。
【００５３】
ステップＳ２０２において、余剰リソース量増加部２０４０は、第１物理リソースプール内で動作している仮想マシンの ID を優先度の昇順にソートする。以下、ここでソートされた仮想マシンを順に並べた場合において j 番目に位置する仮想マシンを、仮想マシン j と表記する。ステップＳ２０４において、余剰リソース量増加部２０４０は、カウンタ i と対象リスト U を初期化する。対象リスト U は、停止する仮想マシンの ID を格納するリストである。ここで、余剰リソース量増加部２０４０は、カウンタ i を 0 に初期化し、対象リストを空集合に初期化する。
【００５４】
ステップＳ２０６からＳ２１６は、継続条件を満たす間繰り返し実行されるループ処理Ａである。継続条件は、「カウンタ i が仮想マシン数 N 未満であること」である。仮想マシン数 N は、第１物理リソースプール内で動作している仮想マシンの総数を表す。
【００５５】
ステップＳ２０６において、余剰リソース量増加部２０４０は、カウンタ i が上記継続条件を満たすか否かを判定する。カウンタ i が上記継続条件を満たす場合、図６の処理はステップＳ２０８に進む。一方、カウンタ i が上記継続条件を満たさない場合、図６の処理は終了する。
【００５６】
ステップＳ２０８において、余剰リソース量増加部２０４０は、仮想マシン i の優先度が対象仮想マシンの優先度より小さいか否かを判定する。ここで、Pi は仮想マシン i の優先度を表し、Pt は対象仮想マシンの優先度を表す。仮想マシン i の優先度が対象仮想マシンの優先度より小さい場合（ステップＳ２０８：ＹＥＳ）、図６の処理はステップＳ２１０に進む。一方、仮想マシン i の優先度が対象仮想マシンの優先度以上である場合（ステップＳ２０８：ＮＯ）、図６の処理は終了する。
【００５７】
ステップＳ２１０において、余剰リソース量増加部２０４０は、仮想マシン i の ID を対象リストに加える。
【００５８】
ステップＳ２１２において、リソース量判定部２０２０は、「対象リストに含まれる仮想マシンの必要リソース量の合計値と第１物理リソースプールの余剰リソース量との和が、対象仮想マシンの必要リソース量以上である」という条件が満たされているか否かを判定する。ここで、Rv_k は ID が k である仮想マシンの必要リソース量を示し、Rv_t は対象仮想マシンの必要リソース量を表す。また、Ra は第１物理リソースプールの余剰リソース量を表す。この条件が満たされている場合、（ステップＳ２１２：ＹＥＳ）、図６の処理はステップＳ２１８に進む。一方、この条件が満たされていない場合（ステップＳ２１２：ＮＯ）、図６の処理はステップＳ２１４に進む。
【００５９】
ステップＳ２１４において、余剰リソース量増加部２０４０は、カウンタ i に 1 を加算する。ステップＳ２１６はループ処理Ａの終端であるため、図６の処理はステップＳ２０６に進む。
【００６０】
ステップＳ２１８において、余剰リソース量増加部２０４０は、対象リストに含まれる各仮想マシンを停止する。
【００６１】
＜作用・効果＞
本実施形態によれば、第１物理リソースプールの物理リソースを用いて動作している仮想マシンを停止することで、第１物理リソースプールの余剰リソース量が増加される。一般的に、仮想マシンを停止させる処理は、後述する仮想マシンの移送などの処理と比較して、処理に要する時間が短い。そのため、本実施形態によれば、対象仮想マシンが稼働するまでに要する時間を短くすることができる。
【００６２】
[実施形態３]
実施形態３のシステム制御装置２０００は、実施形態１のシステム制御装置２０００と同様に図１で表される。以下で説明する点を除き、実施形態３のシステム制御装置２０００が有する機能は、実施形態１のシステム制御装置２０００が有する機能と同様である。
【００６３】
実施形態３において、物理リソースプール３０００は複数存在する。実施形態３の余剰リソース量増加部２０４０は、第１物理リソースプール内で動作している仮想マシンを別の物理リソースプール３０００へ移送することで、第１物理リソースプールの余剰リソース量を増加させる。
【００６４】
ここでいう仮想マシンの移送とは、ある物理リソースプール内で動作している仮想マシンを、別の物理リソースプールへ移すことを意味する。仮想マシンの移送は、移送対象の仮想マシンを停止せずに移送する方法（ライブマイグレーション）で行われてもよいし、移送対象の仮想マシンを停止してから移送し、移送後に停止を解除する方法で行われてもよい。
【００６５】
前述したように、物理リソースプールが複数ある場合にどの物理リソースプールを第１物理リソースプールにするのかを決定する方法は様々である。以下、余剰リソース量増加部２０４０が第１物理リソースプールの決定を行わない場合と、余剰リソース量増加部２０４０が第１物理リソースの決定を行う場合とに分けて説明する。なお、余剰リソース量増加部２０４０が第１物理リソースプールの決定を行う場合とは、例えばシステム制御装置２０００が第１物理リソースプールの指定を受け付ける場合などである。
【００６６】
＜第１物理リソースプールが決定されている場合＞
余剰リソース量増加部２０４０は、既に決定されている第１物理リソースプールの余剰リソース量を増加させる。そのために、余剰リソース量増加部２０４０は、第１物理リソースプールから別の物理リソースプールへ移送する仮想マシンを決定する。例えば余剰リソース量増加部２０４０は、必要リソース量が多い仮想マシンから優先的に移送する。こうすることで、一度の移送処理によって増加する余剰リソース量が多くなる。その結果、移送する仮想マシンの数を少なくすることができる。
【００６７】
その他にも例えば、余剰リソース量増加部２０４０は、優先度の低い仮想マシンから優先的に別の物理リソースプールへ移送してもよい。一般的に、ある仮想マシンを移送すると、移送中や移送直後において、一時的にその仮想マシンの性能が低下する。そこで、性能低下による影響が大きい仮想マシンほど優先度を高く設定しておけば、性能低下による影響が大きい仮想マシンの性能が低下することを防ぐことができる。なお、余剰リソース量増加部２０４０は、例えば実施形態２で説明した方法と同様の方法で各仮想マシンの優先度を取得する。
【００６８】
余剰リソース量増加部２０４０は、移送対象とする仮想マシンが、別の物理リソースプールへ移送できるか否かを判定し、移送可能な場合に移送を行う。例えば余剰リソース量増加部２０４０は、移送対象の仮想マシンの必要リソース量以上の余剰リソースを有する物理リソースプールを探索する。そして、余剰リソース量増加部２０４０は、移送対象の仮想マシンの必要リソース量以上の余剰リソースを有する物理リソースプールが存在する場合、その物理リソースプールへ移送対象の仮想マシンを移送する。一方、移送対象の仮想マシンの必要リソース量以上の余剰リソースを有する物理リソースプールがない場合、余剰リソース量増加部２０４０は、その仮想マシンを移送せず、別の仮想マシンについて同様に移送を試みる。
【００６９】
なお、余剰リソース量増加部２０４０は、特定の仮想マシンを移送対象から除外するようにしてもよい。移送対象から除外する仮想マシンは、予め定義されていてもよいし、動的に決定されてもよい。
【００７０】
既に決定されている第１物理リソースプールの余剰リソース量を増加させる場合における別の方法として、最適化問題を解くことで各仮想マシンの配置を決定する方法がある。この方法の場合、第１物理リソースプール内で動作している仮想マシンだけでなく、第１物理リソースプール以外の物理リソースプール内で動作している仮想マシンも移送されうる。ここで、「仮想マシンの配置を決定する」とは、「仮想マシンをどの物理リソースプール内で動作させるか」を決定することを意味する。余剰リソース量増加部２０４０は、「第１物理リソースプールの余剰リソース量を必要リソース量以上にする」ということを目的とした最適化問題を解くことで、各仮想マシンの配置を算出する。例えば余剰リソース量増加部２０４０は、「各物理リソースプールが有する物理リソース量、動作している各仮想マシンの必要リソース量、動作している各仮想マシンの現在の配置、対象仮想マシンの必要リソース量」を入力として最適化問題を解く。
【００７１】
「第１物理リソースプールの余剰リソース量を必要リソース量以上にする」という目的を満たす仮想マシンの配置が算出できた場合、余剰リソース量増加部２０４０は、算出した配置となるように各仮想マシンを移送する。その結果、第１物理リソースプールの余剰リソース量を必要リソース量以上にすることができる。
【００７２】
ここで、複数の仮想マシンの配置先を変更する場合、「各仮想マシンをどのような順番や経路で移送するのか」を決定する必要がある。この決定は、例えば最短経路問題を解くことで算出する。この問題を解くことにより、仮想マシンをどのような順番や経路で移送するのかが算出される。またその結果、仮想マシンの移送回数も算出される。
【００７３】
なお、仮想マシンの優先度を考慮して移送経路の決定を行ってもよい。例えば、余剰リソース量増加部２０４０は、優先度が所定値以上の仮想マシンを移送対象から除外する。
【００７４】
なお、上記の目的を満たす仮想マシンの配置が複数算出された場合、余剰リソース量増加部２０４０は、複数算出された配置のうちの１つを用いる。例えば余剰リソース量増加部２０４０は、１）未使用となる物理リソースの数が最大となる、２）仮想マシンの移送回数が最小となる、または３）「仮想マシンの移送回数＊移送対象の仮想マシンの容量」が最小となるなどの基準を用いて仮想マシンの配置を決定する。
【００７５】
＜＜処理の流れ＞＞
図７は、第１物理リソースプールが決定されている場合に実施形態３の余剰リソース量増加部２０４０が行う処理の流れを例示するフローチャートである。ここで、図７の処理において、余剰リソース量増加部２０４０は、必要リソース量が多い仮想マシンから順に別の物理リソースプールへ移送するとする。
【００７６】
ステップＳ３０２において、余剰リソース量増加部２０４０は、仮想マシンの ID を必要リソース量の降順にソートする。以下、ここでソートされた仮想マシンを順に並べた場合において j 番目に位置する仮想マシンを、仮想マシン j と表記する。ステップＳ３０４において、余剰リソース量増加部２０４０は、カウンタ i と対象リスト U を初期化する。対象リスト U は、移送する仮想マシンの ID を格納するリストである。ここで、余剰リソース量増加部２０４０は、カウンタ i を 0 に初期化し、対象リスト U を空集合に初期化する。
【００７７】
ステップＳ３０６からＳ３１６は、継続条件を満たす間繰り返し実行されるループ処理Ｂである。継続条件は、「カウンタ i が仮想マシン数 N 未満であること」である。仮想マシン数 N は、第１物理リソースプール内で動作している仮想マシンの総数を表す。
【００７８】
ステップＳ３０６において、余剰リソース量増加部２０４０は、カウンタ i が上記継続条件を満たすか否かを判定する。カウンタ i が上記継続条件を満たす場合、図７の処理はステップＳ３０８に進む。一方、カウンタ i が上記継続条件を満たさない場合、図７の処理は終了する。
【００７９】
ステップＳ３０８において、余剰リソース量増加部２０４０は、仮想マシン i を移送できるか否かを判定する。移送できると判定された場合、図７の処理は、ステップＳ３１０に進む。一方、移送できないと判定された場合、図７の処理は、ステップＳ３１４に進む。
【００８０】
ステップＳ３１０において、余剰リソース量増加部２０４０は、対象リスト U に仮想マシン i の ID を加える。
【００８１】
ステップＳ３１２において、リソース量判定部２０２０は、「対象リストに含まれる全ての仮想マシンの必要リソース量の合計値と第１物理リソースプールの余剰リソース量との和が、対象仮想マシンの必要リソース量以上である」という条件を満たしているか否かを判定する。ここで、Rv_k は ID が k である仮想マシンの必要リソース量を示し、Rv_t は対象仮想マシンの必要リソース量を表す。また、Ra は第１物理リソースプールの余剰リソース量を表す。この条件が満たされている場合（ステップＳ３１２：ＹＥＳ）、図７の処理はステップＳ３１８に進む。一方、この条件が満たされていない場合（ステップＳ３１２：ＮＯ）、図７の処理はステップＳ３１４に進む。
【００８２】
ステップＳ３１４において、余剰リソース量増加部２０４０は、カウンタ i に１を加算する。ステップＳ３１６はループ処理Ｂの終端であるため、図７の処理はステップＳ３０６に進む。
【００８３】
ステップＳ３１８において、余剰リソース量増加部２０４０は、対象リストに含まれる各仮想マシンを移送する。
【００８４】
＜第１物理リソースプールが決定されていない場合＞
余剰リソース量増加部２０４０は、各仮想マシンの配置を変更したときにいずれかの物理リソースプールの余剰リソース量が必要リソース量以上になる場合に、余剰リソース量が必要リソース以上となった物理リソースプールのうちの１つを第１物理リソースプールとする。そして、計算した配置先へ各仮想マシンを移送する。稼働部２０６０は、余剰リソース量増加部２０４０によって第１物理リソースプールとされた物理リソースプールの物理リソースを用いて対象仮想マシンを稼働させる。この方法によれば、予め第１物理リソースプールとして用いるリソースプールを決定しておく必要がない。そのため、システム制御装置２０００の管理者やユーザが、どの物理リソースプールを用いて対象仮想マシンを稼働させることが適切か否かを判断できない場合でも、自動的に適切な物理リソースプールを割り出して対象仮想マシンを配置することが可能となる。
【００８５】
例えば余剰リソース量増加部２０４０は、物理リソースプールの使用効率を向上させるように仮想マシンの配置変更（仮想マシンの集約）を行う。この際、余剰リソース量増加部２０４０は、例えばマルチナップサック問題などの最適化問題を解くことにより、仮想マシンの配置を算出する。この最適化問題は、「少なくとも１つ物理リソースプールの余剰リソース量が、対象仮想マシンの必要リソース量以上となる配置」を算出する最適化問題である。つまり、少なくとも１つの物理リソースプールについて、任意の j に関し、以下の数式（１）を満たすようにする。以下の数式において、i は物理リソースプールの ID を示し、j は物理リソースの種類の ID を示す。そして、Ra_(i,j) は、ID が i の物理リソースプールが有する、種類 j の物理リソースの余剰リソース量を表す。RV_(t,j) は、対象仮想マシンの必要リソース量のうち、種類 j の物理リソースに関する必要リソース量である。任意の j に関して以下の数式（１）を満たす物理リソースプールは、対象仮想マシンを配置可能な物理リソースプールとなる。
【数１】
2015141459.tif 000003
【００８６】
複数の仮想マシンの配置先を変更する場合、前述したように最短経路問題を解くなどの方法によって、仮想マシンの移送経路や移送順序を決定する。
【００８７】
また、上記の目的を満たす仮想マシンの配置が複数算出された場合、前述したように、種々の基準を用いて、利用する仮想マシンの配置を決定する。
【００８８】
＜＜処理の流れ＞＞
図８は、第１物理リソースプールが決定されていない場合に実施形態３の余剰リソース量増加部２０４０が行う処理の流れを例示するフローチャートである。
【００８９】
ステップＳ４０２において、余剰リソース量増加部２０４０は、仮想マシンの配置の候補を算出する。ステップＳ４０４において、余剰リソース量増加部２０４０は、算出された候補の中から、対象仮想マシンの必要リソース量以上の余剰リソースを有する物理リソースプールが１つ以上存在する候補のみを抽出する。
【００９０】
ステップＳ４０６において、余剰リソース量増加部２０４０は、抽出した各候補の配置を実現するために要する仮想マシンの移送経路や移送順序を算出する。ステップＳ４０８において、余剰リソース量増加部２０４０は、設定されている基準に従って、利用する配置を決定する。この基準は、前述した「未使用となる物理リソースが最大となる」などの基準である。ステップＳ４１０において、余剰リソース量増加部２０４０は、決定した配置になるように各仮想マシンを移送する。
【００９１】
＜作用・効果＞
本実施形態によれば、第１物理リソースプールの物理リソースを用いて動作している仮想マシンを別の物理リソースプールへ移送することで、第１物理リソースプールの余剰リソース量が増加される。この方法には、対象仮想マシンを稼働させようとした時点で動作していた別の仮想マシンが、対象仮想マシンを稼働させた後も動作できるという利点がある。
【００９２】
[実施形態４]
実施形態４のシステム制御装置２０００は、実施形態１のシステム制御装置２０００と同様に図１で表される。以下で説明する点を除き、実施形態４のシステム制御装置２０００は、実施形態１のシステム制御装置２０００と同様の機能を有する。
【００９３】
実施形態４の余剰リソース量増加部２０４０は、第１物理リソースプールに物理リソースを加えることで、第１物理リソースプールの空き容量を増加させる。
【００９４】
＜物理リソースの追加方法１＞
余剰リソース量増加部２０４０は、他の物理リソースプールから第１物理リソースプールへ物理リソースを移植することにより、第１物理リソースプールに新たな物理リソースを加える。以下、上述の「他の物理リソースプール」を第２物理リソースプールと表記する。
【００９５】
図９は、物理リソースの追加方法１を概念的に例示する図である。図９において、第１物理リソースプールと第２物理リソースプールは、物理マシン１が有する物理リソースを２つに分けることで構成されている。この例では、メモリリソースを第１物理リソースプールに追加する場合について説明する。物理マシン１は、8GB のメモリを有する。初期状態では、第１物理リソースプールと第２物理リソースプールに対してそれぞれ 4GB のメモリが割り当てられている。また、第１物理リソースプール１と第２物理リソースプールにおいて、2GB のメモリを必要とする仮想マシン１と仮想マシン２がそれぞれ動作しているとする。図９（ａ）は、この初期状態を示す図である。
【００９６】
この状況下において、余剰リソース量増加部２０４０が、3GB のメモリを必要とする対象仮想マシンを第１物理リソースプール内で稼働させようとしたとする。この場合、第１物理リソースプールにおいて、対象仮想マシンを稼働させるためのメモリが 1GB 不足している。
【００９７】
そこで、余剰リソース量増加部２０４０は、第２物理リソースプールに割り当てている 4GB のメモリリソースのうち、1GB を第１物理リソースプールに移植する。図９（ｂ）は、メモリリソースを移した後における状態を示す図である。このように第２物理リソースプールからメモリリソースを移植することで、対象仮想マシンを第１物理リソースプール内で稼働させることができ、なおかつ仮想マシン１と２を稼働させ続けることができる。
【００９８】
ここで、第１物理リソースプールで不足している物理リソースの種類が複数あるとする。例えば、CPU とメモリのリソース量が不足している場合などが考えられる。この場合、余剰リソース量増加部２０４０は、全ての物理リソースを同じ物理リソースプールから移植してもよいし、各種類の物理リソースを２つ以上の異なる物理リソースプールから移植してもよい。後者の場合、物理リソースの種類ごとに、後述する第２物理リソースプールの決定を行う。
【００９９】
＜＜第２物理リソースプールの決定＞＞
どの物理リソースプールを第２物理リソースプールとするかを決定する方法は様々である。例えば余剰リソース量増加部２０４０は、余剰リソース量が最も多い物理リソースプールを第２物理リソースプールとして決定する。また余剰リソース量増加部２０４０は、手動による第２物理リソースプールの指定を受け付けてもよい。
【０１００】
その他にも例えば、余剰リソース量増加部２０４０は、優先度が高い物理リソースプールから順に、第２物理リソースプールの候補として選択する。そして余剰リソース量増加部２０４０は、候補の物理リソースプールの余剰リソース量が、第１物理リソースプールで不足している物理リソース量以上であるか否かを判定する。候補の物理リソースプールの余剰リソース量が、第１物理リソースプールで不足している物理リソース量以上であると判定された場合、余剰リソース量増加部２０４０は、候補とした物理リソースプールを第２物理リソースプールとして決定する。一方、候補の物理リソースプールの余剰リソース量が、第１物理リソースプールで不足している物理リソース量未満であると判定された場合、余剰リソース量増加部２０４０は、次の候補を選択して再度判定を行う。
【０１０１】
物理リソースプールの優先度は、予め設定されていてもよいし、余剰リソース量増加部２０４０によって動的に決定されてもよい。優先度を動的に決定する場合、例えば余剰リソース量増加部２０４０は、第１物理リソースプールとの距離が近い物理リソースプールほど優先度を高くする。ここでいう距離とは、例えばネットワークのホップ数である。
【０１０２】
ここで、余剰リソース量増加部２０４０は、所定の条件を満たさない物理リソースプールを、第２物理リソースプールの候補として選択しないようにしてもよい。例えば所定の条件は、「候補の物理リソースプールの余剰リソース量が所定量以上である」という条件である。このような条件を設けることで、物理リソースプールの余剰リソース量に下限値を設けることができる。一般に、仮想マシンが必要とするリソース量が突発的に多くなることがあるため、物理リソースプールが有する余剰リソース量にはある程度の余裕を持たせておくことが好ましい。物理リソースプールの余剰リソース量に下限値を設けることにより、物理リソースプールの余剰リソース量に余裕を持たせることが可能となる。
【０１０３】
また例えば、上記所定の条件は、「第１物理リソースプールとの距離が所定値以下である」という条件である。こうすることで、物理リソースの移植に要する時間が長い物理リソースプールや、対象仮想マシンの動作が遅くなる蓋然性が高い物理リソースプールを候補から外すことができる。例えば、第１物理リソースプールは物理マシン１が有する物理リソースで構成されており、第２物理リソースプールは物理マシン２が有する物理リソースで構成されているとする。この場合、第２物理リソースプールの物理リソースを第１物理リソースに移植して対象仮想マシンを稼働させると、対象仮想マシンは、「物理マシン１上で動作しつつ、一部の物理リソースにアクセスする際には物理マシン２にアクセスする」という動作をする。このような場合、物理マシン１と物理マシン２との間の距離が離れていると、物理マシン２の物理リソースにアクセスする際に対象仮想マシンの動作が遅くなる。そのため、「第１物理リソースプールとの距離が所定値以下である」という条件を満たす物理リソースプールを第２物理リソースプールとすることが好ましい。
【０１０４】
なお、余剰リソース量増加部２０４０は、１つの種類の物理リソースを、複数の物理リソースプールから第１物理リソースプールへ移植してもよい。例えば余剰リソース量増加部２０４０は、優先度が高い物理リソースプールから順に候補として選択していく。そして、候補として選択した各物理リソースプールから移植できる物理リソース量の合計値と第１物理リソースプールの余剰リソース量との和が、対象仮想マシンの必要リソース量を超えた場合に、余剰リソース量増加部２０４０は、候補として選択した各物理リソースプールから物理リソースを移植する。
【０１０５】
＜＜処理の流れ＞＞
図１０は、物理リソースの追加方法１の処理の流れを示すフローチャートである。ステップＳ５０２において、余剰リソース量増加部２０４０は、物理リソースプールの ID を余剰リソース量の降順にソートする。以下、ここでソートされた仮想マシンを順に並べた場合において j 番目に位置する仮想マシンを、仮想マシン j と表記する。ステップＳ５０４において、余剰リソース量増加部２０４０は、カウンタ i と対象リスト U を初期化する。対象リスト U は、物理リソースの移植元とする物理リソースプールの ID を格納するリストである。ここで、余剰リソース量増加部２０４０は、カウンタ i を 0 に初期化し、対象リスト U を空集合に初期化する。
【０１０６】
ステップＳ５０６からＳ５１６は、継続条件を満たす間繰り返し実行されるループ処理Ｃである。継続条件は、「カウンタ i が物理リソースプール数 N 未満であること」である。物理リソースプール数 N は、第１物理リソースプール以外の物理リソースプールの数を表す。
【０１０７】
ステップＳ５０６において、余剰リソース量増加部２０４０は、カウンタ i が上記継続条件を満たすか否かを判定する。カウンタ i が上記継続条件を満たす場合、図１０の処理はステップＳ５０８に進む。一方、カウンタ i が上記継続条件を満たさない場合、図１０の処理は終了する。
【０１０８】
ステップＳ５０８において、余剰リソース量増加部２０４０は、物理リソースプール i の ID を対象リストに加える。
【０１０９】
ステップＳ５１０において、リソース量判定部２０２０は、「対象リストに含まれる物理リソースプールから移植できる物理リソース量の合計値と第１物理リソースプールの余剰リソース量との和が、必要リソース量以上である」という条件を満たしているか否かを判定する。ここで、Rp_k は ID が k である物理リソースプールから移植できる物理リソース量を示し、Rv_t は対象仮想マシンの必要リソース量を表す。また、Ra は第１物理リソースプールの余剰リソース量を表す。この条件が満たされている場合（ステップＳ５１０：ＹＥＳ）、図１０の処理はステップＳ５１６に進む。一方、この条件が満たされていない場合（ステップＳ５１０：ＮＯ）、図１０の処理はステップＳ５１２に進む。
【０１１０】
ステップＳ５１２において、余剰リソース量増加部２０４０は、カウンタ i に１を加算する。ステップＳ５１４はループ処理Ｃの終端であるため、図１０の処理はステップＳ５０６に進む。
【０１１１】
ステップＳ５１６において、余剰リソース量増加部２０４０は、対象リストに含まれる各物理リソースプールから第１物理リソースプールへ物理リソースを移植する。
【０１１２】
＜物理リソースの追加方法２＞
余剰リソース量増加部２０４０は、どの物理リソースプールにも属していない物理リソースを第１物理リソースプールへ追加する。例えば、どの物理リソースプールにも属していない物理リソースは、予め確保しておいた予備の物理リソースなどである。
【０１１３】
ここで、上記予備の物理リソースは予め起動されていてもよいし、起動されていなくてもよい。予備の物理リソースが起動されていない場合、余剰リソース量増加部２０４０は、予備の物理リソースを起動した上で、その物理リソースを第１物理リソースプールへ追加する。起動していない物理リソースを動的に起動させる処理は、様々な既知の技術で実現できる。例えば、物理マシンを動的に起動させる技術として、Wake-on-Lan などの技術がある。また、物理マシン全体だけでなく、CPU など個々のハードウエアに関しても、動的に起動させる既知の技術がある。これら既知の技術に関するこれ以上の説明は省略する。
【０１１４】
＜第１物理リソースプールに対する制約＞
システム制御装置２０００は、第１物理リソースプールが保有できる物理リソース量に上限を設けてもよい。例えば、ユーザに物理リソースプールを割り当てる場合、ユーザごとに使用できる物理リソース量に上限を設ける。この場合、余剰リソース量増加部２０４０は、「第１物理リソースプールで使用中の物理リソース量と対象仮想マシンの必要リソース量との和が、第１物理リソースプールが保有できる物理リソース量の上限値以下である」という条件が満たされているか否かを判定する。この条件が満たされていない場合に上述した物理リソースの追加を行うと、第１物理リソースプールの物理リソースプール量が上限値を超えてしまう。そこで上記条件が満たされていない場合、余剰リソース量増加部２０４０は、第１物理リソースプールへ物理リソースプールを追加できないと判定する。一方、上記条件が満たされている場合、余剰リソース量増加部２０４０は、前述した各種の方法を利用して第１物理リソースプールへ物理リソースを追加する。
【０１１５】
＜作用・効果＞
本実施形態によれば、第１物理リソースプールに対して物理リソースを追加することで、第１物理リソースプールの余剰リソース量を増加させる。本実施形態には、別の仮想マシンの停止や移送を伴わないため、動作中の他の仮想マシンに与える影響が小さいという利点がある。
【０１１６】
[実施形態５]
図１１は、実施形態５のシステム制御装置２０００を例示するブロック図である。図１１において、矢印は情報の流れを表している。さらに、図１１において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【０１１７】
実施形態５のシステム制御装置２０００は、方式選択部２０４４及び方式実行部２０４６を有する。方式選択部２０４４は、第１物理リソースプールの余剰リソース量を増加させる複数の増加方式の中から、少なくとも１つの増加方式を選択する。方式実行部２０４６は、方式選択部２０４４によって選択された増加方式を用いて第１物理リソースプールの余剰リソース量を増加させる。例えば増加方式は、実施形態２から４で説明した各余剰リソース量増加部２０４０が第１物理リソース量を増加させる方式である
【０１１８】
方式選択部２０４４が増加方式を選択する方法は様々である。例えば方式選択部２０４４は、ユーザによって予め設定されている増加方式を選択する。また例えば、方式選択部２０４４は、ユーザから増加方式の選択を受け付け、ユーザによって選択された増加方式を選択してもよい。
【０１１９】
さらに、方式選択部２０４４は、複数の増加方式を選択してもよい。この場合、方式実行部２０４６は、選択された複数の増加方式を実行する順序や各増加方式を実行する回数の設定を受け付ける。この設定は、予めなされていてもよいし、システム制御装置２０００が処理を実行する際にユーザなどから受け付けるようにしてもよい。
【０１２０】
＜処理の流れ＞
図１２は、実施形態５のシステム制御装置２０００によって実行される処理の流れを例示するフローチャートである。図１２のフローチャートは、ステップＳ１０４の代わりにステップＳ６０２及びＳ６０４を有する点を除き、図３のフローチャートと同様である。ステップＳ６０２において、方式選択部２０４４は、複数の増加方式の中から利用する増加方式を選択する。ステップＳ６０４において、方式実行部２０４６は、選択した増加方式を実行する。
【０１２１】
余剰リソース量増加部２０４０が複数の増加方式を実行する場合、余剰リソース量増加部２０４０は、ステップＳ６０２で複数の増加方式を選択した後ステップＳ６０４でそれら複数の増加方式を順に実行してもよいし、図１２に示す処理を繰り返し実行することで複数の増加方式を実行してもよい。
【０１２２】
＜作用・効果＞
本実施形態によれば、複数の増加方式の中から選択された１つ以上の増加方式を用いて、第１物理リソースの余剰リソース量が増加させられる。こうすることで、余剰リソース量を増加させる方法を柔軟に決定することができる。
【０１２３】
[実施形態６]
図１３は、実施形態６のシステム制御装置２０００を例示するブロック図である。図１３において、矢印は情報の流れを表している。さらに、図１３において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。下記で説明する点を除き、実施形態６のシステム制御装置２０００が有する機能は、実施形態５のシステム制御装置２０００が有する機能と同様である。
【０１２４】
実施形態６の余剰リソース量増加部２０４０は、増加方式情報取得部２０４８を有する。増加方式情報取得部２０４８は、増加方式情報を取得する。増加方式情報は、増加方式の ID をその ID で特定される増加方式の優先度と対応づけている情報である。方式選択部２０４４は、増加方式情報によって示される優先度が高い増加方式を優先的に選択する。なお、増加方式情報取得部２０４８が増加方式情報を取得する方法は、仮想マシン情報取得部２０８０が仮想マシン情報を取得する方法と同様である。
【０１２５】
図１４は、増加方式情報をテーブル形式で例示する図である。図１４に示されているテーブルを、増加方式情報テーブル２００と表記する。増加方式情報テーブル２００は、増加方式ＩＤ２０２および優先度２０４という２つの列を有する。増加方式ＩＤ２０２は、増加方式のＩＤを示す。優先度２０４は、増加方式ＩＤ２０２で特定される増加方式の優先度を表す。
【０１２６】
＜処理の流れ＞
図１５は、実施形態６のシステム制御装置２０００によって実行される処理の流れを例示するフローチャートである。ステップＳ７０２において、方式選択部２０４４は、増加方式の ID を優先度の降順にソートする。以下、ここでソートされた増加方式を順に並べた場合において j 番目に位置する増加方式を、増加方式 j と表記する。ステップＳ２０４において、方式選択部２０４４は、カウンタ i を 0 に初期化する。
【０１２７】
ステップＳ７０６からＳ７１２は、継続条件を満たす間繰り返し実行されるループ処理Ｄである。継続条件は、「カウンタ i が増加方式数 N 未満であること」である。増加方式数 N は、増加方式の総数を表す。
【０１２８】
ステップＳ７０６において、方式選択部２０４４は、カウンタ i が上記継続条件を満たすか否かを判定する。カウンタ i が上記継続条件を満たす場合、図１５の処理はステップＳ７０８に進む。一方、カウンタ i が上記継続条件を満たさない場合、図１５の処理は終了する。
【０１２９】
ステップＳ７０８において、方式選択部２０４４は、「増加方式 i を実行した場合に第１物理リソースプールの余剰リソース量が必要リソース量以上になる」という条件が満たさせるか否かを判定する。この条件が満たされる場合（ステップＳ７０８：ＹＥＳ）、図１５の処理はステップＳ７１４に進む。一方、この条件が満たされない場合（ステップＳ７０８：ＮＯ）、図１５の処理はステップＳ７１０に進む。
【０１３０】
ステップＳ７１０において、方式選択部２０４４は、カウンタ i に 1 を加算する。ステップＳ７１２はループ処理Ｄの終端であるため、図１５の処理はステップＳ７０６に進む。
【０１３１】
ステップＳ７１４において、方式実行部２０４６は、増加方式 i を実行する。
【０１３２】
なお、本実施形態の余剰リソース量増加部２０４０が行う処理の流れは、図１５の流れに限定されない。例えば余剰リソース量増加部２０４０は、図１５のステップＳ７０８における判定処理を行わなくてもよい。この場合、例えば余剰リソース量増加部２０４０は、「第１物理リソースプールの余剰リソース量が対象仮想マシンの必要リソース量以上である」という条件が満たされるまで、優先度の降順で増加方式を順次実行する。
【０１３３】
＜作用・効果＞
本実施形態によれば、利用する増加方式が優先度順に選択される。したがって、何を考慮して増加方式を選択するのかが反映されるように優先度を適宜設定しておくことにより、利用したい増加方式が自動的に利用されるようになる。
【０１３４】
[実施例１]
以下、本発明の実施例を説明する。まず、実施例１として、システム制御装置２０００と物理リソースプール３０００とから成るシステムの具体的な構成例及び利用方法を説明する。なお、以下で説明する具体例はあくまで例示であり、上述した各実施形態のシステム制御装置２０００の実現方法や利用方法を限定するものではない。
【０１３５】
図１６は、システム制御装置２０００が制御する物理リソースを具体的に例示する図である。図１６の場合、システム制御装置２０００が制御する物理リソースは物理マシンに含まれる物理リソースである。この場合、物理リソースプール３０００は、１つ又は複数の物理マシンに含まれる物理リソースの一部又は全部によって構成される。
【０１３６】
図１７は、システム制御装置２０００が制御する物理リソースを具体的に例示する別の図である。図１７の場合、システム制御装置２０００は、物理マシンの外部にある物理リソースも制御する。具体的には、システム制御装置２０００が制御する物理リソースは、物理マシンが有する各種物理リソース、共有ストレージが有するストレージリソース、及び OpenFlow（登録商標）コントローラによって制御されているネットワークリソースである。物理リソースプール３０００は、これら各種の物理リソースの組み合わせで構成される。
【０１３７】
システム制御装置２０００は、複数のユーザそれぞれに対し、システム制御装置２０００が制御する物理リソースの一部を提供する。ユーザは、提供された物理リソースの一部又は全部を任意に組み合わせて物理リソースプール３０００を作成することができる。作成された物理リソースプール３０００は、システム制御装置２０００によって管理される。図１８は、各ユーザに割り当てられた物理リソースを例示する。そして、図１９は、userA によって作成される２つの物理リソースプール３０００を例示する。図１９が示す２つの物理リソースプール３０００が有する物理リソース量の合計は、図１８が示す userA に割り当てられた物理リソース量となっている。
【０１３８】
ユーザは、新たに仮想マシンを作成したい場合、システム制御装置２０００に対して指示を送る。例えばシステム制御装置２０００は、ユーザから、新たな仮想マシン（対象仮想マシン）が使用する各物理リソースのリソース量が記述されたファイルなどを取得することで、対象仮想マシンの必要リソース量を把握する。また例えば、システム制御装置２０００は、ユーザに対して新たな仮想マシンが使用する各物理リソースのリソース量を指定する設定画面を提供し、この設定画面で入力された情報に基づいて対象仮想マシンの必要リソース量を把握してもよい。
【０１３９】
[実施例２]
実施例２として、システム制御装置２０００の動作の具体例を説明する。図２０は、実施例２においてシステム制御装置２０００が制御する物理リソースの構成例を示す図である。実施例２において、システム制御装置２０００が制御する物理リソースは、４つの物理マシン（物理マシンＡ−Ｄ）によって構成される。本実施例において、システム制御装置２０００は、各物理マシンをそれぞれ異なる物理リソースプールとして扱う。また、初期状態において、物理マシンＡ−Ｄにはそれぞれ、仮想マシンＡ−Ｄが配置されている。
【０１４０】
本実施例では、物理リソースとしてストレージの容量に着目する。各物理マシンが有するストレージの容量は、それぞれ 700GB である。図２１は、各仮想マシンを稼働させるために必要なストレージの容量を示す図である。ここで、仮想マシンＥとＦは、システム制御装置２０００が下記の処理で新たに稼働させる仮想マシンである。
【０１４１】
システム制御装置２０００は、ユーザから、仮想マシンＥとＦの稼働要求を受ける。まずシステム制御装置２０００は、物理マシンＡ−Ｄのいずれかに仮想マシンＥを配置できるか否かを判定する。その結果、システム制御装置２０００は、どの物理マシンにも仮想マシンＥを配置できないと判定する。
【０１４２】
本実施例のシステム制御装置２０００は、実施形態３の＜第１物理リソースプールが決定されていない場合＞で説明した動作を行うことで、物理マシンＡ−Ｄのいずれかで仮想マシンＥを動作できるようにする。具体的には、仮想マシンＡ−Ｄのいずれか１つ以上を移送して仮想マシンの配置を変更することで、仮想マシンＥをいずれかの物理マシンで稼働できるようにする。なお、本実施例のシステム制御装置２０００は、前述した１）未使用となる物理リソースの数が最大となる、２）仮想マシンの移送回数が最小となる、または３）「仮想マシンの移送回数＊移送対象の仮想マシンの容量」が最小となるという３つの基準のいずれかに基づいて配置を決定する。
【０１４３】
＜＜１）の基準で配置を決定する場合＞＞
システム制御装置２０００が、１）の基準で配置を決定するとする。本実施例の場合、上記１）の基準を、「未使用となる物理マシンの台数を最大にする」という意味で用いる。この場合、仮想マシンＡ−Ｄのうちのいずれか２台ずつを稼働させるために２台の物理マシンを用い、さらに仮想マシンＥを稼働させるために１台の物理マシンを用いることとなる。例として、物理マシンＡに仮想マシンＡとＢを配置し、物理マシンＢに仮想マシンＣとＤを配置し、物理マシンＣに仮想マシンＥを配置するという方法がある。このように、システム制御装置２０００は、未使用の物理マシンを１台作り出すことができる。
【０１４４】
このような配置方法の数は、「仮想マシンＡ−Ｄを２台ずつ２つの組に分けるパターンの数＊この２つのグループの配置先のパターン数＊仮想マシンＥの配置箇所のパターン数」となる。これは、「６パターン＊１２パターン＊２パターン＝１４４パターン」となる。
【０１４５】
続いて、仮想マシンＦを配置する。未使用の物理マシンの台数を多くするため、仮想マシンＥを配置した時点で仮想マシンが配置されていない物理マシンには、仮想マシンＦを配置しないことが好ましい。つまり、仮想マシンＥを配置した時点で既にいずれかの仮想マシンを配置しており、かつ仮想マシンＦを配置できる物理マシンを仮想マシンＦの配置先とすることが好ましい。
【０１４６】
ここで、仮想マシンＥが配置されている物理マシンは残り容量が１００ＧＢとなるため、その他の仮想マシンを配置することはできない。よって、仮想マシンＡ−ＤとＦのうち、いずれか２台をある物理マシンに配置し、残りの３台を別の物理マシンに配置することになる。ここで、仮想マシンＡ−ＤとＦを２つの組みに分けて、各組みにおける必要リソース量の合計がそれぞれ 700GB 以下にするためには、双方の組み合わせにおいて必要リソース量の合計値が 700GB となる。そのため、仮想マシンＡと組み合わせられるのは、仮想マシンＢと仮想マシンＣのいずれかのみである。よって、仮想マシンＡ−ＤとＦを２つの組みに分ける方法は２パターンのみである。つまり、「仮想マシンＡ、Ｂ」と「仮想マシンＣ、Ｄ、Ｆ」という分け方、及び「仮想マシンＡ、Ｃ」と「仮想マシンＢ、Ｄ、Ｆ」という分け方である。
【０１４７】
このどちらの組み合わせを用いるか、及び各組み合わせをどの物理マシンに配置するのかは、１）の基準のみでは決定できない。そのため、システム制御装置２０００は、ランダムな決定を行ったり、さらに別の基準を用いて決定を行う。
【０１４８】
＜＜２）の基準で配置を決定する場合＞＞
次に、システム制御装置２０００が、２）の基準で配置を決定するとする。仮想マシンＥを稼働させるために必要な移送の最小回数は１回である。これは、いずれか１つの物理マシンから仮想マシンを移送すれば、その移送元の物理マシンに仮想マシンＥを配置できるためである。図２２は、各配置パターンが列挙された図である。図２２に示す通り、この配置パターンの数は１２パターンである。このパターンの数は、「移送する仮想マシンの選択パターンの数＊移送先の物理マシンの選択パターンの数」で算出できる。
【０１４９】
次に、仮想マシンＦの配置を決定する。図２２に示すいずれのパターンについても、仮想マシンを移送せずに仮想マシンＦを配置可能である。仮想マシンＦの配置先は、各ケースについて２通りずつある。よって、２）の基準で決定される各仮想マシンの配置のパターンは２４パターンある。この２４パターンのいずれを用いるのかは、１）の場合と同様、ランダムに決定したり別の基準を用いたりして決定する。
【０１５０】
＜＜３）の基準で配置を決定する場合＞＞
次に、システム制御装置２０００が、３）の基準で配置を決定するとする。２）の基準で仮想マシンＥを配置する場合と同様に、仮想マシンＥを配置するために必要な移送回数の最小値は１回である。そのため、３）の基準で配置を選択するためには、必要リソース量が最も小さい仮想マシンを移送対象とすればよい。よって、移送対象は仮想マシンＤに決定される。この基準を満たす仮想マシンの配置方法の数は、仮想マシンＤの移送先のパターンの数となるため、３パターンとなる。図２３は、この３パターンの配置が列挙された図である。
【０１５１】
次に、仮想マシンＦの配置を決定する。前述したように、仮想マシンＥを配置するパターンとして、図２３に示す３パターンが算出される。余剰リソース量増加部２０４０は、この３パターンの中から最適解を求める。余剰リソース量増加部２０４０は、どのパターンにおいても、現在配置されている仮想マシンを移送することなく仮想マシンＦを配置可能である。パターン１の場合、仮想マシンＦは、物理マシンＢ又はＣへ配置可能である。パターン２又は３の場合、仮想マシンＦは、物理マシンＡ、Ｂ、又はＣへ配置可能である。よって、合計８パターンの解が求められる。この８パターンの配置のいずれを用いるのかは、１）や２）の場合と同様に、ランダムに決定したり別の基準を用いたりして決定する。
【０１５２】
本実施例では仮想マシンの容量だけで判断したが、実際にはメモリリソースや CPU リソースについても考慮する。
【０１５３】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【０１５４】
以下、参考形態の例を付記する。
１．  第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定手段と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加手段と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働手段と、
を有するシステム制御装置。
２．  前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを停止することで前記第１物理リソースプールの余剰リソース量を増加させる１．に記載のシステム制御装置。
３．  仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得手段を有し、
前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に停止する請求項２に記載のシステム制御装置。
４．  前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを別の物理リソースプールへ移送することで前記第１物理リソースプールの余剰リソース量を増加させる１．乃至３．いずれか一項に記載のシステム制御装置。
５．  仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得手段を有し、
前記余剰リソース量増加手段は、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に移送する４．に記載のシステム制御装置。
６．  前記余剰リソース量増加手段は、前記第１物理リソースプールに物理リソースを加えることで前記第１物理リソースプールの余剰リソース量を増加させる１．乃至５．いずれか一項に記載のシステム制御装置。
７．  前記余剰リソース量増加手段は、前記第１物理リソースプールに対して別の物理リソースプールから物理リソースを移植することで、前記第１物理リソースプールに物理リソースを加える６．に記載のシステム制御装置。
８．  前記余剰リソース量増加手段は、
前記第１物理リソースプールの余剰リソース量を増加させる複数の増加方式の中から少なくとも１つの増加方式を選択する方式選択手段と、
前記方式選択手段によって選択された前記増加方式を用いて前記第１物理リソースプールの余剰リソース量を増加させる方式実行手段と、
を有する１．乃至７．いずれか一項に記載のシステム制御装置。
９．  前記余剰リソース量増加手段は、前記増加方式の ID をその ID で特定される増加方式の優先度と対応づけている情報である増加方式情報を取得する増加方式情報取得手段を有し、
前記方式選択手段は、優先度が高い前記増加方式を優先的に選択する、
８．に記載のシステム制御装置。
１０．  コンピュータによって実行される制御方法であって、
第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定ステップと、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加ステップと、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働ステップと、
を有する制御方法。
１１．  前記余剰リソース量増加ステップは、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを停止することで前記第１物理リソースプールの余剰リソース量を増加させる１０．に記載の制御方法。
１２．  仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得ステップを有し、
前記余剰リソース量増加ステップは、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に停止する１１．に記載の制御方法。
１３．  前記余剰リソース量増加ステップは、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを別の物理リソースプールへ移送することで前記第１物理リソースプールの余剰リソース量を増加させる１０．乃至１２．いずれか一項に記載の制御方法。
１４．  仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得ステップを有し、
前記余剰リソース量増加ステップは、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に移送する１３．に記載の制御方法。
１５．  前記余剰リソース量増加ステップは、前記第１物理リソースプールに物理リソースを加えることで前記第１物理リソースプールの余剰リソース量を増加させる１０．乃至１４．いずれか一項に記載の制御方法。
１６．  前記余剰リソース量増加ステップは、前記第１物理リソースプールに対して別の物理リソースプールから物理リソースを移植することで、前記第１物理リソースプールに物理リソースを加える１５．に記載の制御方法。
１７．  前記余剰リソース量増加ステップは、
前記第１物理リソースプールの余剰リソース量を増加させる複数の増加方式の中から少なくとも１つの増加方式を選択する方式選択ステップと、
前記方式選択ステップによって選択された前記増加方式を用いて前記第１物理リソースプールの余剰リソース量を増加させる方式実行ステップと、
を有する１０．乃至１６．いずれか一項に記載の制御方法。
１８．  前記余剰リソース量増加ステップは、前記増加方式の ID をその ID で特定される増加方式の優先度と対応づけている情報である増加方式情報を取得する増加方式情報取得ステップを有し、
前記方式選択ステップは、優先度が高い前記増加方式を優先的に選択する、
１７．に記載の制御方法。
１９．  コンピュータにシステム制御装置として動作する機能を持たせるプログラムであって、前記コンピュータに、
第１物理リソースプールが有する物理リソースの余剰リソース量が、対象仮想マシンの稼働に要する物理リソース量である必要リソース量以上であるか否かを判定するリソース量判定機能と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量未満である場合に、前記第１物理リソースプールが有する物理リソースの余剰リソース量を前記必要リソース量以上のリソース量に増加させる余剰リソース量増加機能と、
前記第１物理リソースプールが有する物理リソースの余剰リソース量が前記必要リソース量以上である場合に、前記第１物理リソースプールが有する物理リソースを用いて前記対象仮想マシンを稼働させる稼働機能と、
を持たせるプログラム。
２０．  前記余剰リソース量増加機能は、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを停止することで前記第１物理リソースプールの余剰リソース量を増加させる１９．に記載のプログラム。
２１．  前記コンピュータに、仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得機能を持たせ、
前記余剰リソース量増加機能は、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に停止する２０．に記載のプログラム。
２２．  前記余剰リソース量増加機能は、前記第１物理リソースプールが有する物理リソースを用いて動作している仮想マシンを別の物理リソースプールへ移送することで前記第１物理リソースプールの余剰リソース量を増加させる１９．乃至２１．いずれか一項に記載のプログラム。
２３．  前記コンピュータに、仮想マシンの ID をその ID で特定される仮想マシンの優先度と対応づけている情報である仮想マシン情報を取得する仮想マシン情報取得機能を持たせ、
前記余剰リソース量増加機能は、前記第１物理リソースプールが有する物理リソースを用いて動作している複数の仮想マシンそれぞれについて前記仮想マシン情報を取得し、優先度が低い仮想マシンを優先的に移送する２２．に記載のプログラム。
２４．  前記余剰リソース量増加機能は、前記第１物理リソースプールに物理リソースを加えることで前記第１物理リソースプールの余剰リソース量を増加させる１９．乃至２３．いずれか一項に記載のプログラム。
２５．  前記余剰リソース量増加機能は、前記第１物理リソースプールに対して別の物理リソースプールから物理リソースを移植することで、前記第１物理リソースプールに物理リソースを加える２４．に記載のプログラム。
２６．  前記余剰リソース量増加機能は、
前記第１物理リソースプールの余剰リソース量を増加させる複数の増加方式の中から少なくとも１つの増加方式を選択する方式選択機能と、
前記方式選択機能によって選択された前記増加方式を用いて前記第１物理リソースプールの余剰リソース量を増加させる方式実行機能と、
を有する１９．乃至２５．いずれか一項に記載のプログラム。
２７．  前記コンピュータに、前記余剰リソース量増加機能は、前記増加方式の ID をその ID で特定される増加方式の優先度と対応づけている情報である増加方式情報を取得する増加方式情報取得機能を持たせ、
前記方式選択機能は、優先度が高い前記増加方式を優先的に選択する、
２６．に記載のプログラム。
【符号の説明】
【０１５５】
１００  仮想マシン情報テーブル
１０２  仮想マシンＩＤ
１０４  優先度
２００  増加方式情報テーブル
２０２  増加方式ＩＤ
２０４  優先度
１０２０  バス
１０４０  プロセッサ
１０６０  メモリ
１０８０  ストレージ
１１００  ネットワークインタフェース
１２２０  リソース量判定モジュール
１２４０  余剰リソース量増加モジュール
１２６０  稼働モジュール
２０００  システム制御装置
２０２０  リソース量判定部
２０４０  余剰リソース量増加部
２０４４  方式選択部
２０４６  方式実行部
２０４８  増加方式情報取得部
２０６０  稼働部
２０８０  仮想マシン情報取得部
３０００  物理リソースプール
【図１】
2015141459.tif 000004
【図２】
2015141459.tif 000005
【図３】
2015141459.tif 000006
【図４】
2015141459.tif 000007
【図５】
2015141459.tif 000008
【図６】
2015141459.tif 000009
【図７】
2015141459.tif 000010
【図８】
2015141459.tif 000011
【図９】
2015141459.tif 000012
【図１０】
2015141459.tif 000013
【図１１】
2015141459.tif 000014
【図１２】
2015141459.tif 000015
【図１３】
2015141459.tif 000016
【図１４】
2015141459.tif 000017
【図１５】
2015141459.tif 000018
【図１６】
2015141459.tif 000019
【図１７】
2015141459.tif 000020
【図１８】
2015141459.tif 000021
【図１９】
2015141459.tif 000022
【図２０】
2015141459.tif 000023
【図２１】
2015141459.tif 000024
【図２２】
2015141459.tif 000025
【図２３】
2015141459.tif 000026