(57)【特許請求の範囲】
【請求項１】
仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートする割当要求ソート手段と、
サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示し、前記サイズがＮ（Ｎは１以上の自然数）の前記サーバには、前記サイズがＮの前記仮想マシンを割り当てることができること、前記サイズがＮの前記サーバに、サイズがＸ（Ｘは１からＮの自然数）の仮想マシンを割り当てることができるならば、整数Ｘの１以外の約数の１つをＡとおくと、前記サーバには、ＸをＡで除した商をサイズとする仮想マシンを割り当てることができること、及び前記約数のＡは、１つの前記サーバの１つのＸに対して、１つだけを選択できること、を満足する分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する仮想マシン割当手段と、を含む
情報処理装置。
【請求項２】
前記分割規格は有効な状態にあり、
前記仮想マシン割当手段は、前記サーバに対応する前記分割規格が複数存在する場合、前記有効な状態にある前記分割規格に前記仮想マシン仕様が適合すると判定した場合に、前記適合すると判定した前記分割規格に対応する前記サーバに対応する、前記仮想マシン仕様が適合しない前記分割規格を前記無効な状態にする
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記サイズの単位とするリソース量は、
前記サーバのリソース量を等分割したリソース量である
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記割当要求ソート手段と前記仮想マシン割当手段とを含む処理手段と、
前記サーバの未割当のリソースの情報と前記分割規格の情報とを記憶する記憶手段と、を含む
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記割り当てた結果を示す情報に基づいて、前記サーバに前記仮想マシンの払出を指示する指示手段を更に含む
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートする割当要求ソート手段と、
サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示し、前記サイズがＮ（Ｎは１以上の自然数）の前記サーバには、前記サイズがＮの前記仮想マシンを割り当てることができること、前記サイズがＮの前記サーバに、サイズがＸ（Ｘは１からＮの自然数）の仮想マシンを割り当てることができるならば、整数Ｘの１以外の約数の１つをＡとおくと、前記サーバには、ＸをＡで除した商をサイズとする仮想マシンを割り当てることができること、及び前記約数のＡは、１つの前記サーバの１つのＸに対して、１つだけを選択できること、を満足する分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する仮想マシン割当手段と、を含む情報処理装置と、
前記サーバと、を含む
情報処理システム。
【請求項７】
コンピュータの割当要求ソート手段が、
仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、
前記払出要求に含まれる仮想マシン仕様を降順にソートし、
前記コンピュータの仮想マシン割当手段が、
サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示し、前記サイズがＮ（Ｎは１以上の自然数）の前記サーバには、前記サイズがＮの前記仮想マシンを割り当てることができること、前記サイズがＮの前記サーバに、サイズがＸ（Ｘは１からＮの自然数）の仮想マシンを割り当てることができるならば、整数Ｘの１以外の約数の１つをＡとおくと、前記サーバには、ＸをＡで除した商をサイズとする仮想マシンを割り当てることができること、及び前記約数のＡは、１つの前記サーバの１つのＸに対して、１つだけを選択できること、を満足する分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、
前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、
前記割り当てた結果を示す情報を出力する
仮想マシン割当方法。
【請求項８】
コンピュータを、仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、
前記払出要求に含まれる仮想マシン仕様を降順にソートする割当要求ソート手段と、
サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示し、前記サイズがＮ（Ｎは１以上の自然数）の前記サーバには、前記サイズがＮの前記仮想マシンを割り当てることができること、前記サイズがＮの前記サーバに、サイズがＸ（Ｘは１からＮの自然数）の仮想マシンを割り当てることができるならば、整数Ｘの１以外の約数の１つをＡとおくと、前記サーバには、ＸをＡで除した商をサイズとする仮想マシンを割り当てることができること、及び前記約数のＡは、１つの前記サーバの１つのＸに対して、１つだけを選択できること、を満足する分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、
前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、
前記割り当てた結果を示す情報を出力する仮想マシン割当手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータやサーバの構成を制御するための技術に関し、特に、仮想マシンを実マシンに割り当てるための技術に関する。
【背景技術】
【０００２】
仮想マシンを実マシンに割り当てるための、さまざまな関連技術が知られている。【０００３】
例えば、特許文献１は、サーバ移行計画作成システムを開示する。そのサーバ移行計画作成システムは、多数の移行元サーバのそれぞれを仮想マシンとして、少数の移行先サーバ上に移行する、サーバ統合を行う。【０００４】
そのサーバ移行計画作成システムのプロセッサは、資源使用量の降順で移行元サーバを１つずつ選択する。また、そのプロセッサは、移行先サーバのうちのいずれかを選択する。例えば、そのプロセッサは、資源容量の残量の昇順で移行先サーバを選択する。【０００５】
次に、そのプロセッサは、その選択した移行元サーバの資源使用量と、その選択した移行先サーバの資源容量の残量と、の比較処理を実行する。【０００６】
その資源使用量がその残量より大きい場合、そのプロセッサは、別の移行先サーバを選択し、上述の比較処理を再度実行する。また、その資源使用量がその残量以下の場合、そのプロセッサは、その選択した移行元サーバを仮想マシンとして、その選択した移行先サーバに割り当てる。【０００７】
特許文献１は、上述のように、サーバ移行計画作成システムが移行元サーバを資源使用量の降順で選択して処理することで、移行後のサーバ（移行先サーバ）台数が少なくなるような移行計画を作成することが可能になるとしている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２１０００１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献１に記載された技術においては、移行先のサーバ台数を適切に削減できない場合があるという問題点がある。【００１０】
その理由は、特許文献１に記載された技術は、移行先サーバへの移行元サーバの割当可否の判断に際して、その移行先サーバへその移行元サーバを割り当てた後の、その移行先サーバの資源容量の残りかたについて考慮していないからである。換言すると、特許文献１に記載された技術は、その移行元サーバの資源使用量とその移行先サーバの資源容量の残量との比較結果のみに基づいて、その移行先サーバへのその移行元サーバの割当可否を判断するからである。【００１１】
本発明の目的は、上述した問題点を解決する情報処理装置、仮想マシン割当方法及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一様態における情報処理装置は、仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートする割当要求ソート手段と、サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示す、分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソート順に、判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する仮想マシン割当手段と、を含む。【００１３】
本発明の一様態における情報処理システムは、仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートする割当要求ソート手段と、サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示す、分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソート順に判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する仮想マシン割当手段と、を含む情報処理装置と、前記サーバと、を含む。【００１４】
本発明の一様態における仮想マシン割当方法は、コンピュータが、仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートし、サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示す、分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する。【００１５】
本発明の一様態におけるコンピュータ読み取り可能な非一時的記録媒体は、仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートし、サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示す、分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する処理をコンピュータに実行させるプログラムを記録する。
【発明の効果】
【００１６】
本発明は、仕様を規格化された複数の仮想マシンをサーバから払い出す際、必要となるサーバの台数を適切に削減することを可能にするという効果がある。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の第１の実施形態に係る規格化仮想マシン割当装置の構成を示すブロック図である。
【図２】図２は、第１の実施形態に係る規格化仮想マシン割当装置を実現するコンピュータのハードウェア構成を示すブロック図である。
【図３】図３は、第１の実施形態に係る規格化仮想マシン割当装置を含む情報処理システムの構成を示すブロック図である。
【図４】図４は、第１の実施形態における払出要求の構造の一例を示す図である。
【図５】図５は、第１の実施形態における分割規格リストの一例を示す図である。
【図６】図６は、第１の実施形態における仮想マシン割当リストの一例を示す図である。
【図７】図７は、第１の実施形態における未割当サーバリソースリストの一例を示す図である。
【図８】図８は、第１の実施形態における規格化仮想マシン割当装置の動作を示すフローチャートである。
【図９】図９は、第１の実施形態における仮想マシン割当部の動作を示すフローチャートである。
【図１０】図１０は、本発明の第２の実施形態に係る規格化仮想マシン割当装置の構成を示すブロック図である。
【図１１】図１１は、第２実施形態における払出要求の構造の一例を示す図である。
【図１２】図１２は、第２の実施形態における仮想マシン割当リストの一例を示す図である。
【図１３】図１３は、本発明の第３の実施形態に係る規格化仮想マシン割当装置の構成を示すブロック図である。
【図１４】図１４は、第３の実施形態における分割規格リストの一例を示す図である。
【図１５】図１５は、第３の実施形態における分割規格リストの一例を示す図である。
【図１６】図１６は、第３の実施形態における規格化仮想マシン割当装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１８】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。
【００１９】
＜＜＜第１の実施形態＞＞＞
図１は、本発明の第１の実施形態に係る規格化仮想マシン割当装置（情報処理装置とも呼ばれる）１００の構成を示すブロック図である。
【００２０】
図１を参照すると、本実施形態に係る規格化仮想マシン割当装置１００は、割当要求ソート部１１０と、仮想マシン割当部１２０とを含む。尚、図１に示す構成要素は、ハードウェア単位の構成要素でも、コンピュータ装置の機能単位に分割した構成要素でもよい。即ち、規格化仮想マシン割当装置１００は、コンピュータであってよい。ここでは、図１に示す構成要素は、コンピュータの機能単位に分割した構成要素とする。
【００２１】
次に、規格化仮想マシン割当装置１００を実現するコンピュータについて説明する。
【００２２】
図２は、本実施形態における規格化仮想マシン割当装置１００を実現するコンピュータ７００のハードウェア構成を示す図である。
【００２３】
図２に示すように、コンピュータ７００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７０１、記憶部７０２、記憶装置７０３、入力部７０４、出力部７０５及び通信部７０６を含む。更に、コンピュータ７００は、外部から供給される記録媒体（または記憶媒体）７０７を含む。記録媒体７０７は、情報を非一時的に記憶する不揮発性記録媒体であってもよい。不揮発性記録媒体は、非一時的記録媒体とも呼ばれる。また、記録媒体７０７は、情報を信号として保持する、一時的記録媒体であってもよい。
【００２４】
ＣＰＵ７０１は、オペレーティングシステム（不図示）を動作させて、コンピュータ７００の、全体の動作を制御する。また、ＣＰＵ７０１は、例えば記憶装置７０３に装着された記録媒体７０７から、プログラムやデータを読み込み、読み込んだプログラムやデータを記憶部７０２に書き込む。そのプログラムは、例えば、後述の図８及び図９に示すフローチャートの動作をコンピュータ７００に実行させるプログラムである。
【００２５】
そして、ＣＰＵ７０１は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図１に示す割当要求ソート部１１０及び仮想マシン割当部１２０として各種の処理を実行する。
【００２６】
尚、ＣＰＵ７０１は、通信網（不図示）に接続されている外部コンピュータ（不図示）から、通信部７０６を経由して、記憶部７０２にプログラムやデータをダウンロードするようにしてもよい。
【００２７】
記憶部７０２は、プログラムやデータ（例えば、後述する未割当サーバリソースリスト８１０及び分割規格リスト８２０）を記憶する。
【００２８】
記憶装置７０３は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、記録媒体７０７を含む。記憶装置７０３（記録媒体７０７）は、プログラムをコンピュータ読み取り可能に記憶する。また、記憶装置７０３は、データ（例えば、後述する未割当サーバリソースリスト８１０及び分割規格リスト８２０）を記憶してもよい。
【００２９】
入力部７０４は、例えばマウスやキーボード、内蔵のキーボタンなど及びそれらの制御手段で実現され、入力操作に用いられる。入力部７０４は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル及びその制御手段などでもよい。入力部７０４は、割当要求ソート部１１０及び仮想マシン割当部１２０の一部として含まれてよい。
【００３０】
出力部７０５は、例えばディスプレイとその制御手段で実現され、出力を確認するために用いられる。出力部７０５は、仮想マシン割当部１２０の一部として含まれてよい。
【００３１】
通信部７０６は、図示しない外部装置とのインタフェースを実現する。通信部７０６は、割当要求ソート部１１０及び仮想マシン割当部１２０のそれぞれの一部として含まれてよい。
【００３２】
以上説明したように、図１に示す規格化仮想マシン割当装置１００の機能単位のブロックは、図２に示すハードウェア構成のコンピュータ７００によって実現される。但し、コンピュータ７００が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ７００は、物理的に結合した１つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【００３３】
尚、上述のプログラムのコードを記録した記録媒体７０７が、コンピュータ７００に供給され、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを読み出して実行してもよい。或いは、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを、記憶部７０２、記憶装置７０３またはその両方に格納するようにしてもよい。すなわち、本実施形態は、コンピュータ７００（ＣＰＵ７０１）が実行するプログラム（ソフトウェア）を、一時的にまたは非一時的に、記憶する記録媒体７０７の実施形態を含む。
【００３４】
以上が、本実施形態における規格化仮想マシン割当装置１００を実現するコンピュータ７００の、ハードウェアについての説明である。
【００３５】
図３は、規格化仮想マシン割当装置１００を含む情報処理システム１０１の構成を示すブロック図である。図３に示すように、情報処理システム１０１は、ネットワーク１０３で接続された規格化仮想マシン割当装置１００及びサーバ１０２を含む。尚、サーバ１０２の台数は、本実施形態の例に係わらず、任意の台数であってよい。
【００３６】
サーバ１０２は、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）ＶＭを割り当てることが可能な物理サーバである。
【００３７】
次に、図１に戻って、規格化仮想マシン割当装置１００が備える各構成要素について詳細に説明する。
【００３８】
＝＝＝割当要求ソート部１１０＝＝＝
割当要求ソート部１１０は、払出要求を取得する。例えば、割当要求ソート部１１０は、図２に示す入力部７０４を介して、オペレータが入力した払出要求を取得する。また、割当要求ソート部１１０は、図２に示す通信部７０６を介して、図示しない外部装置から払出要求を取得するようにしてもよい。
【００３９】
図４は、払出要求８３０の構造の一例を示す図である。図４に示すように払出要求８３０は、仮想マシン仕様８３２と要求個数８３３とを含む。仮想マシン仕様８３２は、その仮想マシンＶＭに対応する仕様を、特定のリソース構成の仮想マシンＶＭのリソース量を単位とする数値である、サイズで示す情報である。換言すると、仮想マシン仕様８３２は、サイズを用いて規格化された仮想マシンＶＭの仕様である。また、要求個数８３３は、サーバ１０２に割り当てられることを要求する、その仮想マシン仕様８３２に対応する、仮想マシンＶＭの個数である。
【００４０】
次に、そのサイズ（或いはサイズを単位とする、「規格化された仮想マシンＶＭの仕様」）について、詳細に説明する。
【００４１】
一般的な仮想マシンＶＭの仕様（リソース量）は、例えば、「ある種類のＣＰＵ２コアと、メモリ量８ＧＢ、ハードディスク容量５００ＧＢ」のように示される。
【００４２】
ＣＰＵは、周波数（クロック数）だけでなく、種類や世代、型番等によって１ＣＰＵコア分の性能が異なる。従って、ＣＰＵの性能値は、ある特定のＣＰＵの性能やその整数分の１の性能を１として、正規化して表現される。例えば、ある仮想マシンＶＭのＣＰＵリソースに関する仕様（ＣＰＵ性能値）は、「性能３のＣＰＵ３コア分」のように規定される。
【００４３】
ここで、その規格化において基本となる、もっとも性能の低い仮想マシンＶＭの仕様（リソース量）を、以下のように規定する。便宜上、ここではこれを仮想マシンＶＭの基本サイズと呼ぶ。仮想マシンＶＭの基本サイズは、例えば、「性能１のＣＰＵ１コア、メモリ２ＧＢ、ハードディスク１２０ＧＢ」である。尚、基本サイズは、上述の例に係わらず、任意に規定されてよい。
【００４４】
この基本サイズの仮想マシンＶＭが、規格化された基本サイズの仮想マシンＶＭである。即ち、この基本サイズが、規格化された最小単位（単位として用いるときは、単にサイズと表記する）の仮想マシンＶＭの仕様である。
【００４５】
他の規格化された仮想マシンＶＭの仕様は、基本サイズの整数倍を基本に規定される。例えば、基本サイズの２倍の仕様は、「性能２のＣＰＵ１コア、メモリ４ＧＢ、ハードディスク２４０ＧＢ」、４倍の仕様は「性能２のＣＰＵ２コア、メモリ８ＧＢ、ハードディスク４８０ＧＢ」のように規定される。便宜上、基本サイズの仕様をサイズ１の仕様、基本サイズのＮ倍の仕様をサイズＮの仕様と呼ぶ。また、サイズＮの仕様を持つ仮想マシンＶＭをサイズＮの仮想マシンＶＭと呼ぶ。
【００４６】
即ち、仮想マシン仕様８３２は、その仮想マシンＶＭに対応する仕様を、基本サイズ（特定のリソース構成の仮想マシンＶＭ）の仕様を単位とする、数値で示す情報である。
【００４７】
サーバ１０２もまた、基本サイズの整数倍の仕様を持つものとする。換言すると、ある標準的な仕様の物理サーバ（サーバ１０２）のリソース量を等分割したものを、基本サイズとして規定する。例えば、サーバ１０２の仕様は「性能２のＣＰＵ８コア、メモリ３２ＧＢ、ハードディスク１９２０ＧＢ」である。この仕様を１６分割することによって、前述の基本サイズの例が得られる。仮想マシンＶＭと同様に、基本サイズのＮ倍の仕様を持つサーバ１０２を、サイズＮのサーバ１０２と呼ぶ。尚、基本サイズは、上記の例に係わらず、サーバ１０２のリソース量から、一定のリソース量を差し引いた残りを等分割されたものであってもよい。また、基本サイズは、サーバ１０２のリソース量が複数の異なるリソース量に分割され、その後にそれらの分割された異なるリソース量のそれぞれが等分割されたものであってもよい。
【００４８】
以上が、その規格化についての詳細な説明である。即ち、そのサイズ（或いはサイズを単位とする、「規格化された仮想マシンＶＭの仕様」）についての詳細な説明である。
【００４９】
図１の割当要求ソート部１１０の説明に戻る。
【００５０】
割当要求ソート部１１０は、取得した払出要求８３０に含まれる仮想マシン仕様８３２を降順でソートする。
【００５１】
例えば、払出要求８３０が「サイズ４；１、サイズ３；２、サイズ２；２」の場合、割当要求ソート部１１０は、仮想マシン仕様８３２を「サイズ４、サイズ３、サイズ３、サイズ２、サイズ２」のようにソートする。
【００５２】
＝＝＝仮想マシン割当部１２０＝＝＝
本実施形態の仮想マシン割当部１２０は、例えば、規格判断部１２１と割当情報生成部１２２とを含む。
【００５３】
仮想マシン割当部１２０の割当情報生成部１２２は、払出要求８３０に含まれる仮想マシン仕様８３２を、ソートされた順に、１つずつ選択する。
【００５４】
続けて、仮想マシン割当部１２０の規格判断部１２１は、分割規格リストを参照し、選択した仮想マシン仕様８３２が、サーバ１０２のそれぞれに対応する分割規格のいずれかに適合するか否かを判定する。
【００５５】
図５は、分割規格リスト８２０の一例を示す図である。図５に示すように、分割規格リスト８２０は、サーバ１０２の識別子であるサーバ識別子８１１と分割規格８２２との組を含む。その分割規格８２２は、サーバ１０２が払出可能な仮想マシンＶＭの仕様を、仮想マシン仕様８３２を用いて示す規格である。その分割規格８２２の詳細は、後述する。
【００５６】
例えば、仮想マシン割当部１２０は、図２に示す記憶部７０２或いは記憶装置７０３に、予め記憶された分割規格リスト８２０を使用する。また、仮想マシン割当部１２０は、図２に示す記録媒体７０７に格納された分割規格リスト８２０を読み出して、使用するようにしてもよい。また、仮想マシン割当部１２０は、図２に示す通信部７０６を介して、図示しない外部装置から分割規格リスト８２０を取得し、その分割規格リスト８２０を使用するようにしてもよい。また、仮想マシン割当部１２０は、図２に示す入力部７０４を介して、オペレータの入力した分割規格リスト８２０を取得し、その分割規格リスト８２０を利用するようにしてもよい。
【００５７】
続けて、仮想マシン割当部１２０の割当情報生成部１２２は、その判定した結果に基づいて、サーバ１０２に、その仮想マシン仕様８３２を割り当てる。そのサーバ１０２は、選択した仮想マシン仕様８３２が適合する分割規格８２２に対応する、サーバ識別子８１１で特定されるサーバ１０２である。「サーバ１０２に仮想マシン仕様８３２を割り当てる」ことの意味は、そのサーバ１０２上のリソースを使って、その仮想マシン仕様８３２の仮想マシンＶＭを払い出せるようにすることである。
【００５８】
続けて、仮想マシン割当部１２０の割当情報生成部１２２は、その割り当てた結果を出力する。仮想マシン割当部１２０は、例えば、割り当てた結果を仮想マシン割当リストとして出力する。
【００５９】
図６は、仮想マシン割当リスト８４０の一例を示す図である。図６に示すように、その仮想マシン割当リスト８４０は、仮想マシン仕様８３２とサーバ識別子８１１との組を含む。その組は、そのサーバ識別子８１１で特定されるサーバ１０２に、その仮想マシン仕様８３２が割り当てられたことを示す。
【００６０】
尚、仮想マシン割当部１２０の割当情報生成部１２２は、上述の判定した結果に加えて、未割当サーバリソースリストにも基づいて、仮想マシン仕様８３２をサーバ１０２のいずれかに割り当てる。ここで、未割当サーバリソースリストは、サーバ１０２のそれぞれに対応する未割当のリソース量のリストである。図７は、未割当サーバリソースリスト８１０の一例を示す図である。図７に示すように、未割当サーバリソースリスト８１０は、サーバ識別子８１１と仮想マシン仕様８３２に割り当てられていないリソースの量を示す未割当リソース量８１２との組を含む。
【００６１】
従って、仮想マシン割当部１２０は、以下の２つの条件を満足するサーバ１０２にその仮想マシン仕様８３２を割り当てる。第１の条件は、そのサーバ１０２の未割当リソース量８１２がその仮想マシン仕様８３２以上であることである。第２の条件は、上述の判定が「その仮想マシン仕様８３２がそのサーバ１０２の分割規格８２２に適合する」という判定であることである。
【００６２】
例えば、仮想マシン割当部１２０は、図２に示す記憶部７０２或いは記憶装置７０３に、予め記憶された未割当サーバリソースリスト８１０を使用する。また、仮想マシン割当部１２０は、図２に示す記録媒体７０７に格納された未割当サーバリソースリスト８１０を読み出して、使用するようにしてもよい。また、仮想マシン割当部１２０は、図２に示す通信部７０６を介して、図示しない外部装置から未割当サーバリソースリスト８１０を取得し、その未割当サーバリソースリスト８１０を使用するようにしてもよい。また、仮想マシン割当部１２０は、図２に示す入力部７０４を介して、オペレータの入力した未割当サーバリソースリスト８１０を取得し、その未割当サーバリソースリスト８１０を利用するようにしてもよい。
【００６３】
尚、仮想マシン割当部１２０は、未割当サーバリソースリスト８１０及び分割規格リスト８２０に加えて、これら以外の任意の情報にも、更に基づいて、仮想マシン仕様８３２をサーバ１０２のいずれかに割り当てるようにしてもよい。その任意の情報は、例えば、仮想マシンＶＭ上で動作するアプリケーションと、サーバ１０２の機種、設置場所及び管理単位との関係などである。
【００６４】
次に、その分割規格８２２について、詳細に説明する。
【００６５】
一般に、サイズＮのサーバ１０２からは、サイズ１〜Ｎの仮想マシンＶＭを払い出すことができる。しかし、分割規格８２２は、次の３つの規定に基づいて、決定される。
【００６６】
第１の規定として、サイズＮのサーバ１０２からはサイズＮの仮想マシンＶＭを払い出すことができる。例えば、サイズ６のサーバ１０２からはサイズ６の仮想マシンＶＭを払い出すことができる。
【００６７】
第２の規定として、サイズＮのサーバ１０２からサイズＸの仮想マシンＶＭを払い出せるなら、整数Ｘの１以外の約数の１つをＡとしたとき、このサーバ１０２からはサイズＹ＝Ｘ／Ａの仮想マシンＶＭを払い出すことができる。例えば、サイズ６のサーバ１０２からはサイズ６の仮想マシンＶＭを払い出せるので、サイズ６の約数のうちの１つである２を選択し、サイズ３（＝６／２）の仮想マシンＶＭを払い出すことができる。
【００６８】
第３の規定として、第２の規定において選択した整数Ｘの約数Ａは、あるサーバ１０２に対して１度選択した以後、変更されてはならない。例えば、前述の例のように、Ａとして２が選択され、サイズ６のサーバ１０２からサイズ６の仮想マシンＶＭとサイズ３の仮想マシンＶＭを払い出せるようにされたとする。その後、整数６の、２とは別の、約数である３を使って、このサーバ１０２からサイズ２（＝６／３）の仮想マシンＶＭを払い出すことは許さない。
【００６９】
更に、補足すると、サイズ６のサーバ１０２からサイズ６とサイズ３の仮想マシンＶＭを払い出せる場合、サイズ３の整数３についてはまだ約数による除算が行われていない。従って、整数３の約数である３を用いてサイズ１（＝３／３）の仮想マシンＶＭを払い出せるようにすることができる。
【００７０】
また、整数Ｘは約数として必ずＸ自身を含む。このため、任意のサイズのサーバ１０２に対して、サイズ１の仮想マシンＶＭを払い出せるようにすることができる。
【００７１】
前述の例では、結果として、サイズ６のサーバ１０２からサイズ６、３、１の仮想マシンＶＭを払い出せることが決定できる。このようにして決定された、サーバ１０２から払い出せる、仮想マシンＶＭサイズのリストをサーバ１０２の分割規格（分割規格８２２）と呼ぶ。また、分割規格８２２を［６−３−１］のように表現する。
【００７２】
サイズが同じであっても、別のサーバ１０２であれば、別の分割規格８２２を持ってもよい。例えば、サイズ６の２つのサーバ１０２の分割規格８２２がそれぞれ［６−３−１］と［６−２−１］とであってもよい。
【００７３】
要するに、本実施形態では、サーバ１０２及び仮想マシンＶＭはサイズという単位で表現されたリソースに関する仕様を持つ。そして、各サーバ１０２は、そのサーバ１０２から払いだしてよい仮想マシンＶＭのサイズを規定した分割規格８２２が付与されている。
【００７４】
以上が、規格化仮想マシン割当装置１００の機能単位の各構成要素についての説明である。
【００７５】
次に本実施形態の動作について、図１〜図９を参照して詳細に説明する。
【００７６】
図８は、本実施形態の規格化仮想マシン割当装置１００の動作を示すフローチャートである。尚、このフローチャートによる処理は、前述したＣＰＵ７０１によるプログラム制御に基づいて、実行されても良い。また、処理のステップ名については、ステップＳ６０１のように、記号で記載する。
【００７７】
割当要求ソート部１１０は、払出要求８３０を取得する（ステップＳ６０１）。
【００７８】
次に、割当要求ソート部１１０は、払出要求８３０に含まれる仮想マシン仕様８３２を降順（サイズの大きい順）でソートする（ステップＳ６０２）。
【００７９】
次に、仮想マシン割当部１２０は、分割規格リスト８２０及び未割当サーバリソースリスト８１０に基づいて、仮想マシン仕様８３２をサーバ１０２のいずれかに割り当てる（ステップＳ６０３）。具体的には、仮想マシン割当部１２０は、その仮想マシン仕様８３２とそれを割り当てられたサーバ１０２のサーバ識別子８１１とを仮想マシン割当リスト８４０に含める。
【００８０】
次に、仮想マシン割当部１２０は、その割り当てた結果を示す割当情報（例えば、仮想マシン割当リスト８４０）を出力する（ステップＳ６０４）。
【００８１】
図９は、図８のステップＳ６０３における、仮想マシン割当部１２０の動作を示すフローチャートである。
【００８２】
仮想マシン割当部１２０の割当情報生成部１２２は、全ての仮想マシン仕様８３２について割当が完了したか否かを確認する（ステップＳ６１１）。例えば、割当情報生成部１２２は、図２に示す記憶部７０２にソートされた仮想マシン仕様８３２のリストを記憶し、その仮想マシン仕様８３２毎にフラグを設けて、割当が完了したか否かを管理する。
【００８３】
全ての仮想マシン仕様８３２について割当が完了した場合（ステップＳ６１１でＹＥＳ）、処理は終了する。
【００８４】
割当がされていない仮想マシン仕様８３２がある場合（ステップＳ６１１でＮＯ）、割当情報生成部１２２は、ソートされた順に、仮想マシン仕様８３２を１つ選択する（ステップＳ６１２）。例えば、割当情報生成部１２２は、上述の仮想マシン仕様８３２のリストを参照し、仮想マシン仕様８３２を順次選択する。
【００８５】
次に、割当情報生成部１２２は、全てのサーバ１０２を選択済みか、否かを確認する（ステップＳ６１３）。例えば、割当情報生成部１２２は、図２に示す記憶部７０２にサーバ識別子８１１のリストを記憶し、そのサーバ識別子８１１毎にフラグを設けて、選択済みか否かを管理する。
【００８６】
全てのサーバ１０２を選択済みの場合（ステップＳ６１３でＹＥＳ）、割当情報生成部１２２は、失敗情報を生成する（ステップＳ６１４）。失敗情報は、仮想マシン仕様８３２の割当が失敗したことを示す情報である。尚、その失敗情報は、割り当てることができなかった仮想マシン仕様８３２の情報や、割り当てることができた仮想マシン仕様８３２の情報などを示す、詳細な情報を含んでもよい。そして、処理は終了する。
【００８７】
選択していないサーバ１０２がある場合（ステップＳ６１３でＮＯ）、割当情報生成部１２２は、選択していないサーバ１０２のいずれかを１つ選択する（ステップＳ６１５）。例えば、割当情報生成部１２２は、未割当サーバリソースリスト８１０を参照して、未割当リソース量８１２が少ない順にサーバ１０２を選択するようにしてよい。また、割当情報生成部１２２は、他の基準に従って、サーバ１０２を選択するようにしてよい。
【００８８】
次に、割当情報生成部１２２は、未割当サーバリソースリスト８１０を参照し、選択したサーバ１０２の未割当リソース量８１２が、選択した仮想マシン仕様８３２以上であるか否かを判定する（ステップＳ６１６）。
【００８９】
その未割当リソース量８１２がその仮想マシン仕様８３２未満の場合（ステップＳ６１６でＮＯ）、処理はステップＳ６１３に戻る。
【００９０】
その未割当リソース量８１２がその仮想マシン仕様８３２以上の場合（ステップＳ６１６でＹＥＳ）、仮想マシン割当部１２０の規格判断部１２１は、分割規格リスト８２０を参照し、その仮想マシン仕様８３２がそのサーバ１０２に対応する分割規格８２２に、適合するか否かを判定する（ステップＳ６１７）。
【００９１】
その仮想マシン仕様８３２がその分割規格８２２に適合しない場合（ステップＳ６１７でＮＯ）、処理はステップＳ６１３に戻る。
【００９２】
その仮想マシン仕様８３２がその分割規格８２２に適合する場合（ステップＳ６１７でＹＥＳ）、規格判断部１２１は、その仮想マシン仕様８３２をそのサーバ１０２に割り当てるように、仮想マシン割当リスト８４０を更新する（ステップＳ６１８）。尚、「その仮想マシン仕様８３２をそのサーバ１０２に割り当てる」ということは、「その仮想マシン仕様８３２に対応する仮想マシンＶＭを、そのサーバ１０２から払い出せるようにする」ことである。
【００９３】
次に、規格判断部１２１は、そのサーバ１０２に対応する未割当リソース量８１２から、その仮想マシン仕様８３２を減算して、未割当サーバリソースリスト８１０を更新する（ステップＳ６１９）。例えば、未割当リソース量８１２が「６」のサーバ１０２から、仮想マシン仕様８３２が「２」の仮想マシンＶＭを払いだした場合、そのサーバ１０２の未割当リソース量８１２は、６−２＝４となる。
【００９４】
上述の動作により、規格化された仮想マシンＶＭを分割規格８２２の定められたサーバ１０２から払い出す場合、必要となるサーバ１０２の台数を適切に削減することができる。上述の動作とは、即ち、それらの仮想マシンＶＭに対応する仮想マシン仕様８３２を大きい順に、適合する分割規格８２２を持つサーバ１０２のいずれかに割り当てる動作である。
【００９５】
その具体例を以下に説明する。
【００９６】
前提として、払出要求８３５は、「サイズ３；２、サイズ４；２」であるとする。サーバ１０２は、サーバ識別子８１１が「ＳＶ００１」及び未割当リソース量８１２が「６」と、サーバ識別子８１１が「ＳＶ００２」及び未割当リソース量８１２が「８」との２台とする。また、分割規格８２２は、サーバ識別子８１１が「ＳＶ００１」及び「ＳＶ００２」のサーバ１０２のそれぞれに対応して、「６−３−１」及び「８−４−１」であるとする。
【００９７】
まず、特許文献１に開示された方法で、仮想マシンＶＭをサーバ１０２から払い出す場合を説明する。
【００９８】
特許文献１に開示された方法は、１つ目の「サイズ４」の仮想マシンＶＭを「ＳＶ００１」のサーバ１０２から払い出すようにする。次に、特許文献１に開示された方法は、２つ目の「サイズ４」の仮想マシンＶＭを「ＳＶ００２」のサーバ１０２に、更に、１つ目の「サイズ３」の仮想マシンＶＭを「ＳＶ００２」のサーバ１０２から払い出すようにする。最後に、特許文献１に開示された方法は、２つ目の「サイズ３」の仮想マシンＶＭを割当可能な未割当のリソースが、いずれのサーバ１０２にも残っていないために、払い出すことを失敗する。この時、「ＳＶ００１」のサーバ１０２には「２」のサイズの、及び「ＳＶ００２」のサーバ１０２には「１」のサイズのそれぞれの、未割当のリソース量が残る。
【００９９】
次に、本実施形態の規格化仮想マシン割当装置１００による、仮想マシンＶＭをサーバ１０２から払い出す場合について説明する。
【０１００】
規格化仮想マシン割当装置１００は、分割規格８２２に基づいて、２つの「サイズ３」の仮想マシン仕様８３２を「ＳＶ００１」へ、２つの「サイズ４」の仮想マシン仕様８３２を「ＳＶ００２」へ割り当てる。従って、規格化仮想マシン割当装置１００は、要求された仮想マシンＶＭを２台のサーバ１０２で払い出すようにすることができる。このとき、両サーバ１０２の未割当のリソース量は、ともに「０」である。
【０１０１】
上述のような成否を分けるのは、未割当のリソースが分断（フラグメンテーション）されるかされないかの違いである。ある分割規格８２２を持つサーバ１０２に、その分割規格８２２に適合するサイズ（仮想マシン仕様８３２）の仮想マシン仕様８３２を、大きい順に割り当てる場合、理論的にフラグメンテーションは発生し得ない。
【０１０２】
例えば、未割当リソース量８１２が「６」及び分割規格８２２が［６−３−１］の、サーバ１０２が複数あるとする。これらのサーバ１０２に、分割規格８２２上もっとも大きな、「６」の仮想マシン仕様８３２を割り当てる処理においては、サーバ１０２の未割当リソース量８１２は常に「０」または「６」である。次に、これらのサーバ１０２に「３」の仮想マシン仕様８３２を割り当てる処理においては、サーバ１０２の未割当リソース量８１２は常に「０」、「３」または「６」となる。従って、この場合も同様に、フラグメンテーションは発生しない。「１」の仮想マシン仕様８３２についても同様である。
【０１０３】
このような、分割規格８２２に適合する仮想マシン仕様８３２の仮想マシンＶＭを、仮想マシン仕様８３２が大きい順に、サーバ１０２から払い出す場合、フラグメンテーションは発生しないという性質から、必要なサーバ数の最適性が保証される。
【０１０４】
尚、ある仮想マシン割当装置が仮想マシンＶＭのリソース量を降順にソートをしない場合、その仮想マシン割当装置による仮想マシンＶＭの割当は、最適性を保証されない。例えば、未割当リソース量８１２が「６」のサーバ１０２が２台あるとする。そして、その仮想マシン割当装置が、それらのサーバ１０２から、まず、仮想マシン仕様８３２が「３」の仮想マシンＶＭを払い出す。次に、その仮想マシン割当装置が、仮想マシン仕様８３２が「６」の仮想マシンＶＭを払い出そうとしても、払い出すことができない。そして、未割当リソース量８１２が「３」のサーバ１０２が２つと仮想マシン仕様８３２が「６」の仮想マシンＶＭが残る。
【０１０５】
本実施形態の規格化仮想マシン割当装置１００は、異なるサイズ（未割当リソース量８１２）や分割規格８２２を持つサーバ１０２が混在していても、前述した場合と同様に、フラグメンテーションは発生せず、サーバ数の最適性が保証される。
【０１０６】
以上が、本実施形態の動作の説明である。
【０１０７】
尚、割当要求ソート部１１０は、仮想マシン割当部１２０に含まれていてもよい。即ち、仮想マシン割当部１２０が仮想マシン仕様８３２を選択する際に、割当要求ソート部１１０が仮想マシン仕様８３２を逐次ソートするようにしてもよい。
【０１０８】
上述した本実施形態における第１の効果は、仕様を規格化された複数の仮想マシンＶＭをサーバ１０２から払い出す際、必要となるサーバ１０２の台数を適切に削減することを可能にする点である。
【０１０９】
その理由は、割当要求ソート部１１０が仮想マシン仕様８３２を降順にソートし、仮想マシン割当部１２０が、分割規格リスト８２０に基づいて、ソートされた順で仮想マシン仕様８３２をサーバ１０２のいずれかに割り当てる、ようにしたからである。
【０１１０】
上述した本実施形態における第２の効果は、サーバ１０２を無駄なく割り当てることを可能にする点である。
【０１１１】
その理由は、標準的な仕様のサーバ１０２のリソース量を等分割したものを、基本サイズとして規定するようにしたからである。
【０１１２】
＜＜＜第２の実施形態＞＞＞
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１１３】
図１０は、本発明の第２の実施形態に係る規格化仮想マシン割当装置２００の構成を示すブロック図である。
【０１１４】
図１０に示すように、規格化仮想マシン割当装置２００は、処理装置２０１と記憶装置８００とを含む。規格化仮想マシン割当装置２００は、例えば、図２に示すコンピュータ７００である。また、規格化仮想マシン割当装置２００は、ハードウェア及びソフトウェアで実現される専用装置であってもよい。
【０１１５】
＝＝＝処理装置２０１＝＝＝
処理装置２０１は、割当要求ソート部２１０、仮想マシン割当部２２０及び指示部２３０を含む。割当要求ソート部２１０、仮想マシン割当部２２０及び指示部２３０は、図２に示すＣＰＵ７０１が、例えば図２に示す記録媒体７０７に格納されたプログラムを実行することにより、実現される。
【０１１６】
＝＝＝割当要求ソート部２１０＝＝＝
割当要求ソート部２１０は、図１１に示すような払出要求８３５を取得する。
【０１１７】
図１１は、払出要求８３５の構造の一例を示す図である。図１１に示すように、払出要求８３５は、任意の数の仮想マシン割当要求８３９を含む。仮想マシン割当要求８３９は、仮想マシン識別子８３１と仮想マシン仕様８３２との組である。仮想マシン識別子８３１は、仮想マシンＶＭを識別する識別子である。
【０１１８】
割当要求ソート部２１０は、例えば払出要求８３５が「ＶＭ００１；３、ＶＭ００２；４、ＶＭ００３；２、ＶＭ００４；３、ＶＭ００５；２」の場合、「ＶＭ００２；４、ＶＭ００１；３、ＶＭ００４；３、ＶＭ００３；２、ＶＭ００５；２」のようにソートする。
【０１１９】
以上の点を除いて、割当要求ソート部２１０は、図１に示す割当要求ソート部１１０と同等である。
【０１２０】
＝＝＝仮想マシン割当部２２０＝＝＝
本実施形態の仮想マシン割当部２２０は、規格判断部１２１と割当情報生成部２２２とを含む。
【０１２１】
仮想マシン割当部２２０の割当情報生成部２２２は、割当要求ソート部２１０により払出要求８３５が上述のようにソートされた結果に基づいて、図１２に示すような仮想マシン割当リスト８４５を生成する。
【０１２２】
図１２は、仮想マシン割当リスト８４５の一例を示す図である。図１２に示すように、仮想マシン割当リスト８４５は、サーバ識別子８１１と、仮想マシンＶＭの識別子である仮想マシン識別子８３１との組を含む。その組は、そのサーバ識別子８１１で特定されるサーバ１０２から、その仮想マシン識別子８３１で特定される仮想マシンＶＭが払い出されることを示す。
【０１２３】
仮想マシン割当部２２０は、未割当サーバリソースリスト８１０及び分割規格リスト８２０を記憶装置８００から取得する。
【０１２４】
以上の点を除いて、仮想マシン割当部２２０は、図１に示す仮想マシン割当部１２０と同等である。
【０１２５】
＝＝＝指示部２３０＝＝＝
指示部２３０は、仮想マシン割当リスト８４５に基づいて、サーバ１０２のそれぞれに、仮想マシンＶＭの払出を指示する。
【０１２６】
＝＝＝記憶装置８００＝＝＝
記憶装置８００は、未割当サーバリソースリスト８１０と、分割規格リスト８２０とを記憶する。
【０１２７】
上述した本実施形態における効果は、第１の実施形態の効果に加えて、サーバ１０２のそれぞれに、仮想マシンＶＭの払出を指示する処理まで実行することを可能にする点である。
【０１２８】
その理由は、以下の構成を含むようにしたからである。第１に、割当要求ソート部２１０が、仮想マシン識別子８３１と組を成す仮想マシン仕様８３２を降順にソートする。第２に、仮想マシン割当部２２０が、その仮想マシン識別子８３１をサーバ１０２に割り当てることを示す、仮想マシン割当リスト８４５を生成する。第３に、指示部２３０が、仮想マシン割当リスト８４５に基づいて、サーバ１０２のそれぞれに、仮想マシンＶＭの払出を指示する。
【０１２９】
＜＜＜第３の実施形態＞＞＞
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０１３０】
図１３は、本発明の第３の実施形態に係る規格化仮想マシン割当装置３００の構成を示すブロック図である。
【０１３１】
図１３を参照すると、本実施形態における規格化仮想マシン割当装置３００は、図１０に示す第２の実施形態の規格化仮想マシン割当装置２００と比べて、処理装置２０１に替えて処理装置３０１を含む。また、記憶装置８００は、分割規格リスト８２０に替えて分割規格リスト８６０を記憶する。
【０１３２】
図１４は、分割規格リスト８６０の一例を示す図である。図１４に示すように、分割規格リスト８６０は、サーバ識別子８１１と分割規格８２２と有効フラグ８６３との組である分割規格レコード８６９を含む。有効フラグ８６３は、対応する分割規格レコード８６９が有効状態にある（「１」）か無効状態にあるか（「０」）かを示す。
【０１３３】
また、分割規格リスト８６０は、サーバ識別子８１１が同一で分割規格８２２が異なる複数の分割規格レコード８６９を含む。換言すると、サーバ１０２は、複数の分割規格８２２を含んでもよい。尚、分割規格リスト８６０は、サーバ１０２のそれぞれについて、そのサーバ１０２の持ち得る分割規格８２２の全部を含んでよいし、一部を含むようにしてもよい。
【０１３４】
＝＝＝処理装置３０１＝＝＝
処理装置３０１は、図１０に示す処理装置２０１と比べて、仮想マシン割当部２２０に替えて仮想マシン割当部３２０を含む。
【０１３５】
＝＝＝仮想マシン割当部３２０＝＝＝
本実施形態の仮想マシン割当部３２０は、規格判断部３２１と割当情報生成部２２２と規格縮減部３２３とを含む。
【０１３６】
仮想マシン割当部３２０の規格判断部３２１は、図１４に示すような分割規格リスト８６０を参照し、選択した仮想マシン仕様８３２が、有効フラグ８６３が「１」である分割規格８２２のいずれかに適合するか否かを判定する。
【０１３７】
また、仮想マシン割当部３２０の規格縮減部３２３は、選択した仮想マシン仕様８３２が、有効フラグ８６３が「１」である分割規格８２２のいずれかに適合すると判定した場合、分割規格８２２の縮減を実行する。規格縮減部３２３は、その適合すると判定した分割規格８２２と同一のサーバ識別子８１１を含む、その仮想マシン仕様８３２が適合しない分割規格レコード８６９の有効フラグ８６３を「０」に設定することで、分割規格８２２を縮減する。
【０１３８】
換言すると、サーバ１０２に対応する分割規格８２２が複数存在する場合、仮想マシン割当部３２０は、有効フラグ８６３が「１」である分割規格８２２に、選択した仮想マシン仕様８３２が適合すると判定した場合、分割規格８２２の縮減処理を行う。仮想マシン割当部３２０は、その適合すると判定した分割規格８２２に対応するサーバ１０２に対応する、その仮想マシン仕様８３２が適合しない分割規格８２２に対応する有効フラグ８６３を「０」に設定することで分割規格８２２を縮減する。
【０１３９】
以上の点を除いて、仮想マシン割当部３２０は、図１０に示す仮想マシン割当部２２０と同等である。
【０１４０】
次に本実施形態の動作について、図１３〜図１６を参照して詳細に説明する。尚、規格化仮想マシン割当装置３００全体の動作は、図４に示すフローチャートに示す動作と同等である。
【０１４１】
図１６は、図９に示す仮想マシン割当部１２０の動作を示すフローチャートに対応する、本実施形態の仮想マシン割当部３２０の動作を示すフローチャートである。
【０１４２】
ステップＳ６１１からステップＳ６１６は、図９のステップＳ６１１からステップＳ６１６と同等である。
【０１４３】
次に、仮想マシン割当部３２０の規格判断部３２１は、分割規格リスト８６０を参照して、その仮想マシン仕様８３２がそのサーバ１０２に対応する分割規格８２２のいずれかに、適合するか否かを判定する（ステップＳ６３７）。
【０１４４】
その仮想マシン仕様８３２がその分割規格８２２に適合しない場合（ステップＳ６３７でＮＯ）、処理はステップＳ６１３に戻る。
【０１４５】
その仮想マシン仕様８３２がその分割規格８２２に適合する場合（ステップＳ６３７でＹＥＳ）、処理はステップＳ６１８へ進む。
【０１４６】
ステップＳ６１８及びステップＳ６１９は、図９のステップＳ６１８及びステップＳ６１９と同等である。
【０１４７】
次に、仮想マシン割当部３２０の規格縮減部３２３は、無効化対象の分割規格８２２を含む、分割規格レコード８６９の有効フラグ８６３を「０」に設定する。ここで、その分割規格レコード８６９は、仮想マシン仕様８３２が適合した分割規格８２２と同一のサーバ識別子８１１を含み、かつその仮想マシン仕様８３２が適合しない分割規格８２２を含む（ステップＳ６４０）。
【０１４８】
分割規格８２２の縮減について、具体的な例を説明する。
【０１４９】
図１４に示す分割規格リスト８６０を参照すると、サーバ識別子８１１が「ＳＶ００１」で、分割規格８２２のそれぞれが「１２−６−３−１」、「１２−６−２−１」及び「１２−４−２−１」である分割規格レコード８６９が含まれる。そして、図１４においては、それらの分割規格レコード８６９の有効フラグ８６３のそれぞれは、全て「１」である。
【０１５０】
ステップＳ６３７において、仮想マシン割当部３２０の規格判断部３２１は、例えば、仮想マシン仕様８３２の「６」が分割規格８２２の「１２−６−３−１」に適合すると判定する。
【０１５１】
この場合、ステップＳ６４０において、仮想マシン割当部３２０の規格縮減部３２３は、サーバ識別子８１１の「ＳＶ００１」を含む、その仮想マシン仕様８３２の「６」が適合しない分割規格レコード８６９の有効フラグ８６３を「０」に設定する。この場合、その仮想マシン仕様８３２の「６」が適合しない分割規格レコード８６９は、分割規格８２２が「１２−４−２−１」である。尚、分割規格８２２が「１２−６−２−１」は、仮想マシン仕様８３２の「６」が適合するので、規格縮減部３２３は、その分割規格レコード８６９の有効フラグ８６３を、変更（「０」に設定）しない。
【０１５２】
結果的に、分割規格リスト８６０は図１５に示すように更新される。
【０１５３】
上述した本実施形態における効果は、第１の実施形態の効果に加えて、各サーバ１０２から、より多くの種類の仕様を持つ仮想マシンＶＭを払い出すようにする可能性を高めることを可能にする点である。
【０１５４】
その理由は、以下の構成を含むようにしたからである。第１に、分割規格リスト８６０が同一のサーバ識別子８１１に対して複数の異なる分割規格８２２が対応する分割規格レコード８６９を含む。第２に、仮想マシン割当部３２０の規格縮減部３２３が、有効な状態にある分割規格８２２に、選択した仮想マシン仕様８３２が適合すると判定した場合、分割規格８２２の縮減処理を行う。
【０１５５】
尚、サーバ識別子８１１に対する分割規格８２２が多いほど（最大の場合で、そのサーバ識別子８１１で特定されるサーバ１０２が持ちうる全ての分割規格８２２）、その効果は大きくなる。従って、最多の分割規格８２２（そのサーバ識別子８１１で特定されるサーバ１０２が持ちうる全ての分割規格８２２）を対象とした場合に、その効果は最大になる。
【０１５６】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されてよい。また、各構成要素は、１つの構成要素が複数のモジュールで実現されてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であるような構成であってよい。また、各構成要素は、ある構成要素の一部と他の構成要素の一部とが重複するような構成であってもよい。
【０１５７】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【０１５８】
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、不揮発性のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【０１５９】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障のない範囲で変更することができる。
【０１６０】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【０１６１】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されてよい。
【０１６２】
以上、各実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得るさまざまな変更をすることができる。
【０１６３】
この出願は、２０１３年２月１８日に出願された日本出願特願２０１３−０２８７４８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１６４】
本発明は、ユーザからの要求に応じて仮想マシンＶＭをどのサーバから払い出すかを決めるための情報処理装置、情報処理システム、方法及びプログラムに適用できる。例えば、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）事業者が、仮想マシンＶＭを払いだすサーバを決定するための情報処理装置、情報処理システム、方法及びプログラムに適用できる。また、ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）事業者等が、仮想マシンＶＭを払いだすサーバを決定するための情報処理装置、情報処理システム、方法及びプログラムにも適用できる。
【符号の説明】
【０１６５】
１００    規格化仮想マシン割当装置
１０１    情報処理システム
１０２    サーバ
１０３    ネットワーク
１１０    割当要求ソート部
１２０    仮想マシン割当部
１２１    規格判断部
１２２    割当情報生成部
２００    規格化仮想マシン割当装置
２０１    処理装置
２１０    割当要求ソート部
２２２    割当情報生成部
２２０    仮想マシン割当部
２３０    指示部
３００    規格化仮想マシン割当装置
３０１    処理装置
３２０    仮想マシン割当部
３２１    規格判断部
３２３    規格縮減部
７００    コンピュータ
７０１    ＣＰＵ
７０２    記憶部
７０３    記憶装置
７０４    入力部
７０５    出力部
７０６    通信部
７０７    記録媒体
８００    記憶装置
８１０    未割当サーバリソースリスト
８１１    サーバ識別子
８１２    未割当リソース量
８２０    分割規格リスト
８２２    分割規格
８３０    払出要求
８３１    仮想マシン識別子
８３２    仮想マシン仕様
８３３    要求個数
８３５    払出要求
８３９    仮想マシン割当要求
８４０    仮想マシン割当リスト
８４５    仮想マシン割当リスト
８６０    分割規格リスト
８６３    有効フラグ
８６９    分割規格レコード
【図１】
0005811301.tif 000002
【図２】
0005811301.tif 000003
【図３】
0005811301.tif 000004
【図４】
0005811301.tif 000005
【図５】
0005811301.tif 000006
【図６】
0005811301.tif 000007
【図７】
0005811301.tif 000008
【図８】
0005811301.tif 000009
【図９】
0005811301.tif 000010
【図１０】
0005811301.tif 000011
【図１１】
0005811301.tif 000012
【図１２】
0005811301.tif 000013
【図１３】
0005811301.tif 000014
【図１４】
0005811301.tif 000015
【図１５】
0005811301.tif 000016
【図１６】
0005811301.tif 000017