【国等の委託研究の成果に係る記載事項】(出願人による申告)平成24年度、総務省「大規模災害時に被災地の通信能力を緊急増強する技術の研究開発(大規模通信混雑時における通信処理機能のネットワーク化に関する研究開発)」委託研究、産業技術力強化法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートする割当要求ソート手段と、
サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示し、前記サイズがN(Nは1以上の自然数)の前記サーバには、前記サイズがNの前記仮想マシンを割り当てることができること、前記サイズがNの前記サーバに、サイズがX(Xは1からNの自然数)の仮想マシンを割り当てることができるならば、整数Xの1以外の約数の1つをAとおくと、前記サーバには、XをAで除した商をサイズとする仮想マシンを割り当てることができること、及び前記約数のAは、1つの前記サーバの1つのXに対して、1つだけを選択できること、を満足する分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する仮想マシン割当手段と、を含む
情報処理装置。
仮想マシンの仕様を、特定のリソース構成の仮想マシンのリソース量を単位とする数値である、サイズで示す仮想マシン仕様を含む払出要求を取得し、前記払出要求に含まれる仮想マシン仕様を降順にソートする割当要求ソート手段と、
サーバのそれぞれに対応する、前記サイズを用いて前記サーバが払出可能な仕様の前記仮想マシンを示し、前記サイズがN(Nは1以上の自然数)の前記サーバには、前記サイズがNの前記仮想マシンを割り当てることができること、前記サイズがNの前記サーバに、サイズがX(Xは1からNの自然数)の仮想マシンを割り当てることができるならば、整数Xの1以外の約数の1つをAとおくと、前記サーバには、XをAで除した商をサイズとする仮想マシンを割り当てることができること、及び前記約数のAは、1つの前記サーバの1つのXに対して、1つだけを選択できること、を満足する分割規格のいずれかに、前記仮想マシン仕様が適合するか否かを前記ソートされた順に判定し、前記判定した結果と前記サーバの未割当のリソースの情報とに基づいて、前記仮想マシン仕様を前記サーバのいずれかに割り当て、前記割り当てた結果を示す情報を出力する仮想マシン割当手段と、を含む情報処理装置と、
前記サーバと、を含む
情報処理システム。
【発明を実施するための形態】
【0018】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。
【0019】
<<<第1の実施形態>>>
図1は、本発明の第1の実施形態に係る規格化仮想マシン割当装置(情報処理装置とも呼ばれる)100の構成を示すブロック図である。
【0020】
図1を参照すると、本実施形態に係る規格化仮想マシン割当装置100は、割当要求ソート部110と、仮想マシン割当部120とを含む。尚、
図1に示す構成要素は、ハードウェア単位の構成要素でも、コンピュータ装置の機能単位に分割した構成要素でもよい。即ち、規格化仮想マシン割当装置100は、コンピュータであってよい。ここでは、
図1に示す構成要素は、コンピュータの機能単位に分割した構成要素とする。
【0021】
次に、規格化仮想マシン割当装置100を実現するコンピュータについて説明する。
【0022】
図2は、本実施形態における規格化仮想マシン割当装置100を実現するコンピュータ700のハードウェア構成を示す図である。
【0023】
図2に示すように、コンピュータ700は、CPU(Central Processing Unit)701、記憶部702、記憶装置703、入力部704、出力部705及び通信部706を含む。更に、コンピュータ700は、外部から供給される記録媒体(または記憶媒体)707を含む。記録媒体707は、情報を非一時的に記憶する不揮発性記録媒体であってもよい。不揮発性記録媒体は、非一時的記録媒体とも呼ばれる。また、記録媒体707は、情報を信号として保持する、一時的記録媒体であってもよい。
【0024】
CPU701は、オペレーティングシステム(不図示)を動作させて、コンピュータ700の、全体の動作を制御する。また、CPU701は、例えば記憶装置703に装着された記録媒体707から、プログラムやデータを読み込み、読み込んだプログラムやデータを記憶部702に書き込む。そのプログラムは、例えば、後述の
図8及び
図9に示すフローチャートの動作をコンピュータ700に実行させるプログラムである。
【0025】
そして、CPU701は、読み込んだプログラムに従って、また読み込んだデータに基づいて、
図1に示す割当要求ソート部110及び仮想マシン割当部120として各種の処理を実行する。
【0026】
尚、CPU701は、通信網(不図示)に接続されている外部コンピュータ(不図示)から、通信部706を経由して、記憶部702にプログラムやデータをダウンロードするようにしてもよい。
【0027】
記憶部702は、プログラムやデータ(例えば、後述する未割当サーバリソースリスト810及び分割規格リスト820)を記憶する。
【0028】
記憶装置703は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、記録媒体707を含む。記憶装置703(記録媒体707)は、プログラムをコンピュータ読み取り可能に記憶する。また、記憶装置703は、データ(例えば、後述する未割当サーバリソースリスト810及び分割規格リスト820)を記憶してもよい。
【0029】
入力部704は、例えばマウスやキーボード、内蔵のキーボタンなど及びそれらの制御手段で実現され、入力操作に用いられる。入力部704は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル及びその制御手段などでもよい。入力部704は、割当要求ソート部110及び仮想マシン割当部120の一部として含まれてよい。
【0030】
出力部705は、例えばディスプレイとその制御手段で実現され、出力を確認するために用いられる。出力部705は、仮想マシン割当部120の一部として含まれてよい。
【0031】
通信部706は、図示しない外部装置とのインタフェースを実現する。通信部706は、割当要求ソート部110及び仮想マシン割当部120のそれぞれの一部として含まれてよい。
【0032】
以上説明したように、
図1に示す規格化仮想マシン割当装置100の機能単位のブロックは、
図2に示すハードウェア構成のコンピュータ700によって実現される。但し、コンピュータ700が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ700は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【0033】
尚、上述のプログラムのコードを記録した記録媒体707が、コンピュータ700に供給され、CPU701は、記録媒体707に格納されたプログラムのコードを読み出して実行してもよい。或いは、CPU701は、記録媒体707に格納されたプログラムのコードを、記憶部702、記憶装置703またはその両方に格納するようにしてもよい。すなわち、本実施形態は、コンピュータ700(CPU701)が実行するプログラム(ソフトウェア)を、一時的にまたは非一時的に、記憶する記録媒体707の実施形態を含む。
【0034】
以上が、本実施形態における規格化仮想マシン割当装置100を実現するコンピュータ700の、ハードウェアについての説明である。
【0035】
図3は、規格化仮想マシン割当装置100を含む情報処理システム101の構成を示すブロック図である。
図3に示すように、情報処理システム101は、ネットワーク103で接続された規格化仮想マシン割当装置100及びサーバ102を含む。尚、サーバ102の台数は、本実施形態の例に係わらず、任意の台数であってよい。
【0036】
サーバ102は、仮想マシン(Virtual Machine)VMを割り当てることが可能な物理サーバである。
【0037】
次に、
図1に戻って、規格化仮想マシン割当装置100が備える各構成要素について詳細に説明する。
【0038】
===割当要求ソート部110===
割当要求ソート部110は、払出要求を取得する。例えば、割当要求ソート部110は、
図2に示す入力部704を介して、オペレータが入力した払出要求を取得する。また、割当要求ソート部110は、
図2に示す通信部706を介して、図示しない外部装置から払出要求を取得するようにしてもよい。
【0039】
図4は、払出要求830の構造の一例を示す図である。
図4に示すように払出要求830は、仮想マシン仕様832と要求個数833とを含む。仮想マシン仕様832は、その仮想マシンVMに対応する仕様を、特定のリソース構成の仮想マシンVMのリソース量を単位とする数値である、サイズで示す情報である。換言すると、仮想マシン仕様832は、サイズを用いて規格化された仮想マシンVMの仕様である。また、要求個数833は、サーバ102に割り当てられることを要求する、その仮想マシン仕様832に対応する、仮想マシンVMの個数である。
【0040】
次に、そのサイズ(或いはサイズを単位とする、「規格化された仮想マシンVMの仕様」)について、詳細に説明する。
【0041】
一般的な仮想マシンVMの仕様(リソース量)は、例えば、「ある種類のCPU2コアと、メモリ量8GB、ハードディスク容量500GB」のように示される。
【0042】
CPUは、周波数(クロック数)だけでなく、種類や世代、型番等によって1CPUコア分の性能が異なる。従って、CPUの性能値は、ある特定のCPUの性能やその整数分の1の性能を1として、正規化して表現される。例えば、ある仮想マシンVMのCPUリソースに関する仕様(CPU性能値)は、「性能3のCPU3コア分」のように規定される。
【0043】
ここで、その規格化において基本となる、もっとも性能の低い仮想マシンVMの仕様(リソース量)を、以下のように規定する。便宜上、ここではこれを仮想マシンVMの基本サイズと呼ぶ。仮想マシンVMの基本サイズは、例えば、「性能1のCPU1コア、メモリ2GB、ハードディスク120GB」である。尚、基本サイズは、上述の例に係わらず、任意に規定されてよい。
【0044】
この基本サイズの仮想マシンVMが、規格化された基本サイズの仮想マシンVMである。即ち、この基本サイズが、規格化された最小単位(単位として用いるときは、単にサイズと表記する)の仮想マシンVMの仕様である。
【0045】
他の規格化された仮想マシンVMの仕様は、基本サイズの整数倍を基本に規定される。例えば、基本サイズの2倍の仕様は、「性能2のCPU1コア、メモリ4GB、ハードディスク240GB」、4倍の仕様は「性能2のCPU2コア、メモリ8GB、ハードディスク480GB」のように規定される。便宜上、基本サイズの仕様をサイズ1の仕様、基本サイズのN倍の仕様をサイズNの仕様と呼ぶ。また、サイズNの仕様を持つ仮想マシンVMをサイズNの仮想マシンVMと呼ぶ。
【0046】
即ち、仮想マシン仕様832は、その仮想マシンVMに対応する仕様を、基本サイズ(特定のリソース構成の仮想マシンVM)の仕様を単位とする、数値で示す情報である。
【0047】
サーバ102もまた、基本サイズの整数倍の仕様を持つものとする。換言すると、ある標準的な仕様の物理サーバ(サーバ102)のリソース量を等分割したものを、基本サイズとして規定する。例えば、サーバ102の仕様は「性能2のCPU8コア、メモリ32GB、ハードディスク1920GB」である。この仕様を16分割することによって、前述の基本サイズの例が得られる。仮想マシンVMと同様に、基本サイズのN倍の仕様を持つサーバ102を、サイズNのサーバ102と呼ぶ。尚、基本サイズは、上記の例に係わらず、サーバ102のリソース量から、一定のリソース量を差し引いた残りを等分割されたものであってもよい。また、基本サイズは、サーバ102のリソース量が複数の異なるリソース量に分割され、その後にそれらの分割された異なるリソース量のそれぞれが等分割されたものであってもよい。
【0048】
以上が、その規格化についての詳細な説明である。即ち、そのサイズ(或いはサイズを単位とする、「規格化された仮想マシンVMの仕様」)についての詳細な説明である。
【0049】
図1の割当要求ソート部110の説明に戻る。
【0050】
割当要求ソート部110は、取得した払出要求830に含まれる仮想マシン仕様832を降順でソートする。
【0051】
例えば、払出要求830が「サイズ4;1、サイズ3;2、サイズ2;2」の場合、割当要求ソート部110は、仮想マシン仕様832を「サイズ4、サイズ3、サイズ3、サイズ2、サイズ2」のようにソートする。
【0052】
===仮想マシン割当部120===
本実施形態の仮想マシン割当部120は、例えば、規格判断部121と割当情報生成部122とを含む。
【0053】
仮想マシン割当部120の割当情報生成部122は、払出要求830に含まれる仮想マシン仕様832を、ソートされた順に、1つずつ選択する。
【0054】
続けて、仮想マシン割当部120の規格判断部121は、分割規格リストを参照し、選択した仮想マシン仕様832が、サーバ102のそれぞれに対応する分割規格のいずれかに適合するか否かを判定する。
【0055】
図5は、分割規格リスト820の一例を示す図である。
図5に示すように、分割規格リスト820は、サーバ102の識別子であるサーバ識別子811と分割規格822との組を含む。その分割規格822は、サーバ102が払出可能な仮想マシンVMの仕様を、仮想マシン仕様832を用いて示す規格である。その分割規格822の詳細は、後述する。
【0056】
例えば、仮想マシン割当部120は、
図2に示す記憶部702或いは記憶装置703に、予め記憶された分割規格リスト820を使用する。また、仮想マシン割当部120は、
図2に示す記録媒体707に格納された分割規格リスト820を読み出して、使用するようにしてもよい。また、仮想マシン割当部120は、
図2に示す通信部706を介して、図示しない外部装置から分割規格リスト820を取得し、その分割規格リスト820を使用するようにしてもよい。また、仮想マシン割当部120は、
図2に示す入力部704を介して、オペレータの入力した分割規格リスト820を取得し、その分割規格リスト820を利用するようにしてもよい。
【0057】
続けて、仮想マシン割当部120の割当情報生成部122は、その判定した結果に基づいて、サーバ102に、その仮想マシン仕様832を割り当てる。そのサーバ102は、選択した仮想マシン仕様832が適合する分割規格822に対応する、サーバ識別子811で特定されるサーバ102である。「サーバ102に仮想マシン仕様832を割り当てる」ことの意味は、そのサーバ102上のリソースを使って、その仮想マシン仕様832の仮想マシンVMを払い出せるようにすることである。
【0058】
続けて、仮想マシン割当部120の割当情報生成部122は、その割り当てた結果を出力する。仮想マシン割当部120は、例えば、割り当てた結果を仮想マシン割当リストとして出力する。
【0059】
図6は、仮想マシン割当リスト840の一例を示す図である。
図6に示すように、その仮想マシン割当リスト840は、仮想マシン仕様832とサーバ識別子811との組を含む。その組は、そのサーバ識別子811で特定されるサーバ102に、その仮想マシン仕様832が割り当てられたことを示す。
【0060】
尚、仮想マシン割当部120の割当情報生成部122は、上述の判定した結果に加えて、未割当サーバリソースリストにも基づいて、仮想マシン仕様832をサーバ102のいずれかに割り当てる。ここで、未割当サーバリソースリストは、サーバ102のそれぞれに対応する未割当のリソース量のリストである。
図7は、未割当サーバリソースリスト810の一例を示す図である。
図7に示すように、未割当サーバリソースリスト810は、サーバ識別子811と仮想マシン仕様832に割り当てられていないリソースの量を示す未割当リソース量812との組を含む。
【0061】
従って、仮想マシン割当部120は、以下の2つの条件を満足するサーバ102にその仮想マシン仕様832を割り当てる。第1の条件は、そのサーバ102の未割当リソース量812がその仮想マシン仕様832以上であることである。第2の条件は、上述の判定が「その仮想マシン仕様832がそのサーバ102の分割規格822に適合する」という判定であることである。
【0062】
例えば、仮想マシン割当部120は、
図2に示す記憶部702或いは記憶装置703に、予め記憶された未割当サーバリソースリスト810を使用する。また、仮想マシン割当部120は、
図2に示す記録媒体707に格納された未割当サーバリソースリスト810を読み出して、使用するようにしてもよい。また、仮想マシン割当部120は、
図2に示す通信部706を介して、図示しない外部装置から未割当サーバリソースリスト810を取得し、その未割当サーバリソースリスト810を使用するようにしてもよい。また、仮想マシン割当部120は、
図2に示す入力部704を介して、オペレータの入力した未割当サーバリソースリスト810を取得し、その未割当サーバリソースリスト810を利用するようにしてもよい。
【0063】
尚、仮想マシン割当部120は、未割当サーバリソースリスト810及び分割規格リスト820に加えて、これら以外の任意の情報にも、更に基づいて、仮想マシン仕様832をサーバ102のいずれかに割り当てるようにしてもよい。その任意の情報は、例えば、仮想マシンVM上で動作するアプリケーションと、サーバ102の機種、設置場所及び管理単位との関係などである。
【0064】
次に、その分割規格822について、詳細に説明する。
【0065】
一般に、サイズNのサーバ102からは、サイズ1〜Nの仮想マシンVMを払い出すことができる。しかし、分割規格822は、次の3つの規定に基づいて、決定される。
【0066】
第1の規定として、サイズNのサーバ102からはサイズNの仮想マシンVMを払い出すことができる。例えば、サイズ6のサーバ102からはサイズ6の仮想マシンVMを払い出すことができる。
【0067】
第2の規定として、サイズNのサーバ102からサイズXの仮想マシンVMを払い出せるなら、整数Xの1以外の約数の1つをAとしたとき、このサーバ102からはサイズY=X/Aの仮想マシンVMを払い出すことができる。例えば、サイズ6のサーバ102からはサイズ6の仮想マシンVMを払い出せるので、サイズ6の約数のうちの1つである2を選択し、サイズ3(=6/2)の仮想マシンVMを払い出すことができる。
【0068】
第3の規定として、第2の規定において選択した整数Xの約数Aは、あるサーバ102に対して1度選択した以後、変更されてはならない。例えば、前述の例のように、Aとして2が選択され、サイズ6のサーバ102からサイズ6の仮想マシンVMとサイズ3の仮想マシンVMを払い出せるようにされたとする。その後、整数6の、2とは別の、約数である3を使って、このサーバ102からサイズ2(=6/3)の仮想マシンVMを払い出すことは許さない。
【0069】
更に、補足すると、サイズ6のサーバ102からサイズ6とサイズ3の仮想マシンVMを払い出せる場合、サイズ3の整数3についてはまだ約数による除算が行われていない。従って、整数3の約数である3を用いてサイズ1(=3/3)の仮想マシンVMを払い出せるようにすることができる。
【0070】
また、整数Xは約数として必ずX自身を含む。このため、任意のサイズのサーバ102に対して、サイズ1の仮想マシンVMを払い出せるようにすることができる。
【0071】
前述の例では、結果として、サイズ6のサーバ102からサイズ6、3、1の仮想マシンVMを払い出せることが決定できる。このようにして決定された、サーバ102から払い出せる、仮想マシンVMサイズのリストをサーバ102の分割規格(分割規格822)と呼ぶ。また、分割規格822を[6−3−1]のように表現する。
【0072】
サイズが同じであっても、別のサーバ102であれば、別の分割規格822を持ってもよい。例えば、サイズ6の2つのサーバ102の分割規格822がそれぞれ[6−3−1]と[6−2−1]とであってもよい。
【0073】
要するに、本実施形態では、サーバ102及び仮想マシンVMはサイズという単位で表現されたリソースに関する仕様を持つ。そして、各サーバ102は、そのサーバ102から払いだしてよい仮想マシンVMのサイズを規定した分割規格822が付与されている。
【0074】
以上が、規格化仮想マシン割当装置100の機能単位の各構成要素についての説明である。
【0075】
次に本実施形態の動作について、
図1〜
図9を参照して詳細に説明する。
【0076】
図8は、本実施形態の規格化仮想マシン割当装置100の動作を示すフローチャートである。尚、このフローチャートによる処理は、前述したCPU701によるプログラム制御に基づいて、実行されても良い。また、処理のステップ名については、ステップS601のように、記号で記載する。
【0077】
割当要求ソート部110は、払出要求830を取得する(ステップS601)。
【0078】
次に、割当要求ソート部110は、払出要求830に含まれる仮想マシン仕様832を降順(サイズの大きい順)でソートする(ステップS602)。
【0079】
次に、仮想マシン割当部120は、分割規格リスト820及び未割当サーバリソースリスト810に基づいて、仮想マシン仕様832をサーバ102のいずれかに割り当てる(ステップS603)。具体的には、仮想マシン割当部120は、その仮想マシン仕様832とそれを割り当てられたサーバ102のサーバ識別子811とを仮想マシン割当リスト840に含める。
【0080】
次に、仮想マシン割当部120は、その割り当てた結果を示す割当情報(例えば、仮想マシン割当リスト840)を出力する(ステップS604)。
【0081】
図9は、
図8のステップS603における、仮想マシン割当部120の動作を示すフローチャートである。
【0082】
仮想マシン割当部120の割当情報生成部122は、全ての仮想マシン仕様832について割当が完了したか否かを確認する(ステップS611)。例えば、割当情報生成部122は、
図2に示す記憶部702にソートされた仮想マシン仕様832のリストを記憶し、その仮想マシン仕様832毎にフラグを設けて、割当が完了したか否かを管理する。
【0083】
全ての仮想マシン仕様832について割当が完了した場合(ステップS611でYES)、処理は終了する。
【0084】
割当がされていない仮想マシン仕様832がある場合(ステップS611でNO)、割当情報生成部122は、ソートされた順に、仮想マシン仕様832を1つ選択する(ステップS612)。例えば、割当情報生成部122は、上述の仮想マシン仕様832のリストを参照し、仮想マシン仕様832を順次選択する。
【0085】
次に、割当情報生成部122は、全てのサーバ102を選択済みか、否かを確認する(ステップS613)。例えば、割当情報生成部122は、
図2に示す記憶部702にサーバ識別子811のリストを記憶し、そのサーバ識別子811毎にフラグを設けて、選択済みか否かを管理する。
【0086】
全てのサーバ102を選択済みの場合(ステップS613でYES)、割当情報生成部122は、失敗情報を生成する(ステップS614)。失敗情報は、仮想マシン仕様832の割当が失敗したことを示す情報である。尚、その失敗情報は、割り当てることができなかった仮想マシン仕様832の情報や、割り当てることができた仮想マシン仕様832の情報などを示す、詳細な情報を含んでもよい。そして、処理は終了する。
【0087】
選択していないサーバ102がある場合(ステップS613でNO)、割当情報生成部122は、選択していないサーバ102のいずれかを1つ選択する(ステップS615)。例えば、割当情報生成部122は、未割当サーバリソースリスト810を参照して、未割当リソース量812が少ない順にサーバ102を選択するようにしてよい。また、割当情報生成部122は、他の基準に従って、サーバ102を選択するようにしてよい。
【0088】
次に、割当情報生成部122は、未割当サーバリソースリスト810を参照し、選択したサーバ102の未割当リソース量812が、選択した仮想マシン仕様832以上であるか否かを判定する(ステップS616)。
【0089】
その未割当リソース量812がその仮想マシン仕様832未満の場合(ステップS616でNO)、処理はステップS613に戻る。
【0090】
その未割当リソース量812がその仮想マシン仕様832以上の場合(ステップS616でYES)、仮想マシン割当部120の規格判断部121は、分割規格リスト820を参照し、その仮想マシン仕様832がそのサーバ102に対応する分割規格822に、適合するか否かを判定する(ステップS617)。
【0091】
その仮想マシン仕様832がその分割規格822に適合しない場合(ステップS617でNO)、処理はステップS613に戻る。
【0092】
その仮想マシン仕様832がその分割規格822に適合する場合(ステップS617でYES)、規格判断部121は、その仮想マシン仕様832をそのサーバ102に割り当てるように、仮想マシン割当リスト840を更新する(ステップS618)。尚、「その仮想マシン仕様832をそのサーバ102に割り当てる」ということは、「その仮想マシン仕様832に対応する仮想マシンVMを、そのサーバ102から払い出せるようにする」ことである。
【0093】
次に、規格判断部121は、そのサーバ102に対応する未割当リソース量812から、その仮想マシン仕様832を減算して、未割当サーバリソースリスト810を更新する(ステップS619)。例えば、未割当リソース量812が「6」のサーバ102から、仮想マシン仕様832が「2」の仮想マシンVMを払いだした場合、そのサーバ102の未割当リソース量812は、6−2=4となる。
【0094】
上述の動作により、規格化された仮想マシンVMを分割規格822の定められたサーバ102から払い出す場合、必要となるサーバ102の台数を適切に削減することができる。上述の動作とは、即ち、それらの仮想マシンVMに対応する仮想マシン仕様832を大きい順に、適合する分割規格822を持つサーバ102のいずれかに割り当てる動作である。
【0096】
前提として、払出要求835は、「サイズ3;2、サイズ4;2」であるとする。サーバ102は、サーバ識別子811が「SV001」及び未割当リソース量812が「6」と、サーバ識別子811が「SV002」及び未割当リソース量812が「8」との2台とする。また、分割規格822は、サーバ識別子811が「SV001」及び「SV002」のサーバ102のそれぞれに対応して、「6−3−1」及び「8−4−1」であるとする。
【0097】
まず、特許文献1に開示された方法で、仮想マシンVMをサーバ102から払い出す場合を説明する。
【0098】
特許文献1に開示された方法は、1つ目の「サイズ4」の仮想マシンVMを「SV001」のサーバ102から払い出すようにする。次に、特許文献1に開示された方法は、2つ目の「サイズ4」の仮想マシンVMを「SV002」のサーバ102に、更に、1つ目の「サイズ3」の仮想マシンVMを「SV002」のサーバ102から払い出すようにする。最後に、特許文献1に開示された方法は、2つ目の「サイズ3」の仮想マシンVMを割当可能な未割当のリソースが、いずれのサーバ102にも残っていないために、払い出すことを失敗する。この時、「SV001」のサーバ102には「2」のサイズの、及び「SV002」のサーバ102には「1」のサイズのそれぞれの、未割当のリソース量が残る。
【0099】
次に、本実施形態の規格化仮想マシン割当装置100による、仮想マシンVMをサーバ102から払い出す場合について説明する。
【0100】
規格化仮想マシン割当装置100は、分割規格822に基づいて、2つの「サイズ3」の仮想マシン仕様832を「SV001」へ、2つの「サイズ4」の仮想マシン仕様832を「SV002」へ割り当てる。従って、規格化仮想マシン割当装置100は、要求された仮想マシンVMを2台のサーバ102で払い出すようにすることができる。このとき、両サーバ102の未割当のリソース量は、ともに「0」である。
【0101】
上述のような成否を分けるのは、未割当のリソースが分断(フラグメンテーション)されるかされないかの違いである。ある分割規格822を持つサーバ102に、その分割規格822に適合するサイズ(仮想マシン仕様832)の仮想マシン仕様832を、大きい順に割り当てる場合、理論的にフラグメンテーションは発生し得ない。
【0102】
例えば、未割当リソース量812が「6」及び分割規格822が[6−3−1]の、サーバ102が複数あるとする。これらのサーバ102に、分割規格822上もっとも大きな、「6」の仮想マシン仕様832を割り当てる処理においては、サーバ102の未割当リソース量812は常に「0」または「6」である。次に、これらのサーバ102に「3」の仮想マシン仕様832を割り当てる処理においては、サーバ102の未割当リソース量812は常に「0」、「3」または「6」となる。従って、この場合も同様に、フラグメンテーションは発生しない。「1」の仮想マシン仕様832についても同様である。
【0103】
このような、分割規格822に適合する仮想マシン仕様832の仮想マシンVMを、仮想マシン仕様832が大きい順に、サーバ102から払い出す場合、フラグメンテーションは発生しないという性質から、必要なサーバ数の最適性が保証される。
【0104】
尚、ある仮想マシン割当装置が仮想マシンVMのリソース量を降順にソートをしない場合、その仮想マシン割当装置による仮想マシンVMの割当は、最適性を保証されない。例えば、未割当リソース量812が「6」のサーバ102が2台あるとする。そして、その仮想マシン割当装置が、それらのサーバ102から、まず、仮想マシン仕様832が「3」の仮想マシンVMを払い出す。次に、その仮想マシン割当装置が、仮想マシン仕様832が「6」の仮想マシンVMを払い出そうとしても、払い出すことができない。そして、未割当リソース量812が「3」のサーバ102が2つと仮想マシン仕様832が「6」の仮想マシンVMが残る。
【0105】
本実施形態の規格化仮想マシン割当装置100は、異なるサイズ(未割当リソース量812)や分割規格822を持つサーバ102が混在していても、前述した場合と同様に、フラグメンテーションは発生せず、サーバ数の最適性が保証される。
【0106】
以上が、本実施形態の動作の説明である。
【0107】
尚、割当要求ソート部110は、仮想マシン割当部120に含まれていてもよい。即ち、仮想マシン割当部120が仮想マシン仕様832を選択する際に、割当要求ソート部110が仮想マシン仕様832を逐次ソートするようにしてもよい。
【0108】
上述した本実施形態における第1の効果は、仕様を規格化された複数の仮想マシンVMをサーバ102から払い出す際、必要となるサーバ102の台数を適切に削減することを可能にする点である。
【0109】
その理由は、割当要求ソート部110が仮想マシン仕様832を降順にソートし、仮想マシン割当部120が、分割規格リスト820に基づいて、ソートされた順で仮想マシン仕様832をサーバ102のいずれかに割り当てる、ようにしたからである。
【0110】
上述した本実施形態における第2の効果は、サーバ102を無駄なく割り当てることを可能にする点である。
【0111】
その理由は、標準的な仕様のサーバ102のリソース量を等分割したものを、基本サイズとして規定するようにしたからである。
【0112】
<<<第2の実施形態>>>
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0113】
図10は、本発明の第2の実施形態に係る規格化仮想マシン割当装置200の構成を示すブロック図である。
【0114】
図10に示すように、規格化仮想マシン割当装置200は、処理装置201と記憶装置800とを含む。規格化仮想マシン割当装置200は、例えば、
図2に示すコンピュータ700である。また、規格化仮想マシン割当装置200は、ハードウェア及びソフトウェアで実現される専用装置であってもよい。
【0115】
===処理装置201===
処理装置201は、割当要求ソート部210、仮想マシン割当部220及び指示部230を含む。割当要求ソート部210、仮想マシン割当部220及び指示部230は、
図2に示すCPU701が、例えば
図2に示す記録媒体707に格納されたプログラムを実行することにより、実現される。
【0116】
===割当要求ソート部210===
割当要求ソート部210は、
図11に示すような払出要求835を取得する。
【0117】
図11は、払出要求835の構造の一例を示す図である。
図11に示すように、払出要求835は、任意の数の仮想マシン割当要求839を含む。仮想マシン割当要求839は、仮想マシン識別子831と仮想マシン仕様832との組である。仮想マシン識別子831は、仮想マシンVMを識別する識別子である。
【0118】
割当要求ソート部210は、例えば払出要求835が「VM001;3、VM002;4、VM003;2、VM004;3、VM005;2」の場合、「VM002;4、VM001;3、VM004;3、VM003;2、VM005;2」のようにソートする。
【0119】
以上の点を除いて、割当要求ソート部210は、
図1に示す割当要求ソート部110と同等である。
【0120】
===仮想マシン割当部220===
本実施形態の仮想マシン割当部220は、規格判断部121と割当情報生成部222とを含む。
【0121】
仮想マシン割当部220の割当情報生成部222は、割当要求ソート部210により払出要求835が上述のようにソートされた結果に基づいて、
図12に示すような仮想マシン割当リスト845を生成する。
【0122】
図12は、仮想マシン割当リスト845の一例を示す図である。
図12に示すように、仮想マシン割当リスト845は、サーバ識別子811と、仮想マシンVMの識別子である仮想マシン識別子831との組を含む。その組は、そのサーバ識別子811で特定されるサーバ102から、その仮想マシン識別子831で特定される仮想マシンVMが払い出されることを示す。
【0123】
仮想マシン割当部220は、未割当サーバリソースリスト810及び分割規格リスト820を記憶装置800から取得する。
【0124】
以上の点を除いて、仮想マシン割当部220は、
図1に示す仮想マシン割当部120と同等である。
【0125】
===指示部230===
指示部230は、仮想マシン割当リスト845に基づいて、サーバ102のそれぞれに、仮想マシンVMの払出を指示する。
【0126】
===記憶装置800===
記憶装置800は、未割当サーバリソースリスト810と、分割規格リスト820とを記憶する。
【0127】
上述した本実施形態における効果は、第1の実施形態の効果に加えて、サーバ102のそれぞれに、仮想マシンVMの払出を指示する処理まで実行することを可能にする点である。
【0128】
その理由は、以下の構成を含むようにしたからである。第1に、割当要求ソート部210が、仮想マシン識別子831と組を成す仮想マシン仕様832を降順にソートする。第2に、仮想マシン割当部220が、その仮想マシン識別子831をサーバ102に割り当てることを示す、仮想マシン割当リスト845を生成する。第3に、指示部230が、仮想マシン割当リスト845に基づいて、サーバ102のそれぞれに、仮想マシンVMの払出を指示する。
【0129】
<<<第3の実施形態>>>
次に、本発明の第3の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0130】
図13は、本発明の第3の実施形態に係る規格化仮想マシン割当装置300の構成を示すブロック図である。
【0131】
図13を参照すると、本実施形態における規格化仮想マシン割当装置300は、
図10に示す第2の実施形態の規格化仮想マシン割当装置200と比べて、処理装置201に替えて処理装置301を含む。また、記憶装置800は、分割規格リスト820に替えて分割規格リスト860を記憶する。
【0132】
図14は、分割規格リスト860の一例を示す図である。
図14に示すように、分割規格リスト860は、サーバ識別子811と分割規格822と有効フラグ863との組である分割規格レコード869を含む。有効フラグ863は、対応する分割規格レコード869が有効状態にある(「1」)か無効状態にあるか(「0」)かを示す。
【0133】
また、分割規格リスト860は、サーバ識別子811が同一で分割規格822が異なる複数の分割規格レコード869を含む。換言すると、サーバ102は、複数の分割規格822を含んでもよい。尚、分割規格リスト860は、サーバ102のそれぞれについて、そのサーバ102の持ち得る分割規格822の全部を含んでよいし、一部を含むようにしてもよい。
【0134】
===処理装置301===
処理装置301は、
図10に示す処理装置201と比べて、仮想マシン割当部220に替えて仮想マシン割当部320を含む。
【0135】
===仮想マシン割当部320===
本実施形態の仮想マシン割当部320は、規格判断部321と割当情報生成部222と規格縮減部323とを含む。
【0136】
仮想マシン割当部320の規格判断部321は、
図14に示すような分割規格リスト860を参照し、選択した仮想マシン仕様832が、有効フラグ863が「1」である分割規格822のいずれかに適合するか否かを判定する。
【0137】
また、仮想マシン割当部320の規格縮減部323は、選択した仮想マシン仕様832が、有効フラグ863が「1」である分割規格822のいずれかに適合すると判定した場合、分割規格822の縮減を実行する。規格縮減部323は、その適合すると判定した分割規格822と同一のサーバ識別子811を含む、その仮想マシン仕様832が適合しない分割規格レコード869の有効フラグ863を「0」に設定することで、分割規格822を縮減する。
【0138】
換言すると、サーバ102に対応する分割規格822が複数存在する場合、仮想マシン割当部320は、有効フラグ863が「1」である分割規格822に、選択した仮想マシン仕様832が適合すると判定した場合、分割規格822の縮減処理を行う。仮想マシン割当部320は、その適合すると判定した分割規格822に対応するサーバ102に対応する、その仮想マシン仕様832が適合しない分割規格822に対応する有効フラグ863を「0」に設定することで分割規格822を縮減する。
【0139】
以上の点を除いて、仮想マシン割当部320は、
図10に示す仮想マシン割当部220と同等である。
【0140】
次に本実施形態の動作について、
図13〜
図16を参照して詳細に説明する。尚、規格化仮想マシン割当装置300全体の動作は、
図4に示すフローチャートに示す動作と同等である。
【0141】
図16は、
図9に示す仮想マシン割当部120の動作を示すフローチャートに対応する、本実施形態の仮想マシン割当部320の動作を示すフローチャートである。
【0142】
ステップS611からステップS616は、
図9のステップS611からステップS616と同等である。
【0143】
次に、仮想マシン割当部320の規格判断部321は、分割規格リスト860を参照して、その仮想マシン仕様832がそのサーバ102に対応する分割規格822のいずれかに、適合するか否かを判定する(ステップS637)。
【0144】
その仮想マシン仕様832がその分割規格822に適合しない場合(ステップS637でNO)、処理はステップS613に戻る。
【0145】
その仮想マシン仕様832がその分割規格822に適合する場合(ステップS637でYES)、処理はステップS618へ進む。
【0146】
ステップS618及びステップS619は、
図9のステップS618及びステップS619と同等である。
【0147】
次に、仮想マシン割当部320の規格縮減部323は、無効化対象の分割規格822を含む、分割規格レコード869の有効フラグ863を「0」に設定する。ここで、その分割規格レコード869は、仮想マシン仕様832が適合した分割規格822と同一のサーバ識別子811を含み、かつその仮想マシン仕様832が適合しない分割規格822を含む(ステップS640)。
【0148】
分割規格822の縮減について、具体的な例を説明する。
【0149】
図14に示す分割規格リスト860を参照すると、サーバ識別子811が「SV001」で、分割規格822のそれぞれが「12−6−3−1」、「12−6−2−1」及び「12−4−2−1」である分割規格レコード869が含まれる。そして、
図14においては、それらの分割規格レコード869の有効フラグ863のそれぞれは、全て「1」である。
【0150】
ステップS637において、仮想マシン割当部320の規格判断部321は、例えば、仮想マシン仕様832の「6」が分割規格822の「12−6−3−1」に適合すると判定する。
【0151】
この場合、ステップS640において、仮想マシン割当部320の規格縮減部323は、サーバ識別子811の「SV001」を含む、その仮想マシン仕様832の「6」が適合しない分割規格レコード869の有効フラグ863を「0」に設定する。この場合、その仮想マシン仕様832の「6」が適合しない分割規格レコード869は、分割規格822が「12−4−2−1」である。尚、分割規格822が「12−6−2−1」は、仮想マシン仕様832の「6」が適合するので、規格縮減部323は、その分割規格レコード869の有効フラグ863を、変更(「0」に設定)しない。
【0152】
結果的に、分割規格リスト860は
図15に示すように更新される。
【0153】
上述した本実施形態における効果は、第1の実施形態の効果に加えて、各サーバ102から、より多くの種類の仕様を持つ仮想マシンVMを払い出すようにする可能性を高めることを可能にする点である。
【0154】
その理由は、以下の構成を含むようにしたからである。第1に、分割規格リスト860が同一のサーバ識別子811に対して複数の異なる分割規格822が対応する分割規格レコード869を含む。第2に、仮想マシン割当部320の規格縮減部323が、有効な状態にある分割規格822に、選択した仮想マシン仕様832が適合すると判定した場合、分割規格822の縮減処理を行う。
【0155】
尚、サーバ識別子811に対する分割規格822が多いほど(最大の場合で、そのサーバ識別子811で特定されるサーバ102が持ちうる全ての分割規格822)、その効果は大きくなる。従って、最多の分割規格822(そのサーバ識別子811で特定されるサーバ102が持ちうる全ての分割規格822)を対象とした場合に、その効果は最大になる。
【0156】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が1個のモジュールとして実現されてよい。また、各構成要素は、1つの構成要素が複数のモジュールで実現されてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であるような構成であってよい。また、各構成要素は、ある構成要素の一部と他の構成要素の一部とが重複するような構成であってもよい。
【0157】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【0158】
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、不揮発性のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【0159】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障のない範囲で変更することができる。
【0160】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【0161】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されてよい。
【0162】
以上、各実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得るさまざまな変更をすることができる。
【0163】
この出願は、2013年2月18日に出願された日本出願特願2013−028748を基礎とする優先権を主張し、その開示の全てをここに取り込む。