(57)【特許請求の範囲】
【請求項１】
クラウドシステム内のクラウドリソースを割り当てるための装置であって、
クラウドシステムのクラウドリソースの割当を要求するように構成されたクラウドリソース要求を受信することであって、クラウドリソース要求が、クラウドリソース要求情報を含み、クラウドリソース要求情報が、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含み、クラウドリソース要求情報が、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含む、受信することと、
クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース要求に関連付けられたクラウドリソース割当を決定することであって、クラウドリソース割当が、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報を含み、クラウドリソース割当が、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報を含む、決定することと
を行うように構成されたプロセッサ、およびプロセッサに通信可能に接続されたメモリを備える、装置。
【請求項２】
プロセッサが、クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース割当情報を決定するように構成される、請求項１に記載の装置。
【請求項３】
プロセッサが、クラウドリソース移行パラメータおよびクラウドリソース割当パラメータに基づき、クラウドリソース移行情報を決定するように構成される、請求項１に記載の装置。
【請求項４】
クラウドリソース割当パラメータが、要求されたクラウドリソースのタイプ、要求されたクラウドリソースの量、クラウドリソースの位置、または待ち時間制約のうち、少なくとも１つを含むか、
クラウドリソース移行パラメータが、クラウドリソースが移行することになる時、クラウドリソースの移行元の位置、クラウドリソースの移行先の位置、またはクラウドリソースが移行可能な最大回数のうち、少なくとも１つを含むか
の、少なくとも一方である、請求項１に記載の装置。
【請求項５】
クラウドリソース割当情報が、クラウドシステムの物理リソースへのクラウドリソースのマッピングを指定するか、
クラウドリソース移行情報が、クラウドリソースが移行することになる時、クラウドリソースの移行元の位置、またはクラウドリソースの移行先の位置のうち、少なくとも１つを含むか
の、少なくとも一方である、請求項１に記載の装置。
【請求項６】
プロセッサが、クラウドリソース割当のクラウドリソース移行情報に基づき、クラウドリソース要求に応答して割り当てられた、割り当てられたクラウドリソースの移行を開始するように構成される、請求項１に記載の装置。
【請求項７】
プロセッサが、
クラウドリソース要求情報を含む次のクラウドリソース要求を受信することと、
クラウドリソース割当のクラウドリソース移行情報に基づき、次のクラウドリソース要求に向けて次のクラウドリソース割当を決定することと
を行うように構成される、請求項１に記載の装置。
【請求項８】
プロセッサが、
クラウドシステムに関連付けられたクラウドシステムステータス情報に基づき、クラウドリソース割当を決定することと、
クラウドリソース割当情報を含み入れるためにクラウドシステムステータス情報を更新することと、
クラウドリソース要求情報を含む次のクラウドリソース要求を受信することと、
更新されたクラウドシステムステータス情報に含まれるクラウドリソース移行情報および次のクラウドリソース要求のクラウドリソース要求情報に基づき、次のクラウドリソース要求に向けて次のクラウドリソース割当を決定することと
を行うように構成される、請求項１に記載の装置。
【請求項９】
クラウドシステム内のクラウドリソースを割り当てるための方法であって、
クラウドシステムのクラウドリソースの割当を要求するように構成されたクラウドリソース要求を受信することであって、クラウドリソース要求が、クラウドリソース要求情報を含み、クラウドリソース要求情報が、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含み、クラウドリソース要求情報が、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含む、受信することと、
クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース要求に関連付けられたクラウドリソース割当を決定することであって、クラウドリソース割当が、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報と、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報とを含む、決定することと
を行うために、プロセッサおよびメモリを使用することを含む、方法。
【請求項１０】
コンピュータによる実行時に、クラウドシステム内のクラウドリソースを割り当てる方法をコンピュータに実行させる命令を記憶する、コンピュータ可読記憶媒体であって、方法が、
クラウドシステムのクラウドリソースの割当を要求するように構成されたクラウドリソース要求を受信することであって、クラウドリソース要求が、クラウドリソース要求情報を含み、クラウドリソース要求情報が、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含み、クラウドリソース要求情報が、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含む、受信することと、
クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース要求に関連付けられたクラウドリソース割当を決定することであって、クラウドリソース割当が、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報と、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報とを含む、決定することと
を含む、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は全体として、通信ネットワークに関し、より詳細には、分散型クラウドシステムにおけるリソース割当に関するが、これに限定するものではない。
【背景技術】
【０００２】
一部のクラウドオペレータが、分散型クラウドシステムを利用したクラウドサービスを提供し始めてはいるものの、目下、多くのクラウドオペレータは、分散型クラウドシステムとは対極の、集中型クラウドシステムを利用したクラウドサービスをホストしている。概して、集中型クラウドシステムは、分散型クラウドシステムよりもデータセンタが少ないのが普通であり、また、集中型クラウドシステムのデータセンタは、分散型クラウドシステムのデータセンタよりも大きいのが普通である。集中型クラウドシステムとは対極となる分散型クラウドシステムの利用は、広域に分散した既存設備（例えば、既存インフラの主立った基礎を既に備えている、ネットワークプロバイダの中央局）を既に保有しているサービスプロバイダなど、一部のサービスプロバイダにとって、経済的に有利なものとなり得る。
【０００３】
このような集中型クラウドシステムでは、要求元は、クラウドオペレータに１つ以上のリソースの使用を要求することができ、その場合、クラウドオペレータは、データセンタのうちの１つから、要求元が使用するための要求リソースを割り当てることができる。しかし、集中型クラウドシステムの利用は、大規模な経済的利益を引き出すのに適してはいるものの、ユーザの待ち時間が増加するなどの制限や、潜在的な信頼性の問題をもたらす傾向にある。その一方、集中型クラウドシステムとは対極となる分散型クラウドシステムを利用すれば、ユーザの待ち時間を減少させることが可能となるが、分散型クラウドシステムにおける要求元へのリソース割当は、通例、集中型クラウドシステムにおける要求元へのリソース割当よりも複雑なものとなってしまう。
【発明の概要】
【課題を解決するための手段】
【０００４】
先行技術における様々な不備に対し、クラウドシステム内の仮想リソースを割り当てると同時に、クラウドシステム内の割り当てられた仮想リソースの移行をサポートするという実施形態を以て対処する。
【０００５】
少なくとも幾つかの実施形態では、ある装置が、クラウドシステム内のクラウドリソースを割り当てるために構成される。本装置は、プロセッサと、そのプロセッサに通信可能に接続されたメモリとを備える。プロセッサは、クラウドリソース要求情報を含むクラウドリソース要求を受信するように構成される。クラウドリソース要求情報は、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含む。クラウドリソース要求情報は、クラウドリソース要求に応答した、割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含む。プロセッサは、クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース割当を決定するように構成される。クラウドリソース割当は、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報を含む。クラウドリソース割当は、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報を含む。
【０００６】
少なくとも幾つかの実施形態では、ある方法が、クラウドシステム内のクラウドリソースを割り当てるために構成される。本方法は、クラウドリソース割当要求を受信し、クラウドリソース割当を決定するために、プロセッサとメモリを使用することを含む。クラウドリソース要求は、クラウドリソース要求情報を含む。クラウドリソース要求情報は、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含む。クラウドリソース要求情報は、クラウドリソース要求に応答した、割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含む。クラウドリソース割当は、クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づいて決定される。クラウドリソース割当は、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報を含む。クラウドリソース割当は、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報を含む。
【０００７】
少なくとも幾つかの実施形態では、あるコンピュータ可読記憶媒体が、コンピュータによる実行時に、クラウドシステム内のクラウドリソースを割り当てる方法をコンピュータに実行させる命令を記憶する。この方法は、クラウドリソース割当要求を受信することと、クラウドリソース割当を決定することとを含む。クラウドリソース要求は、クラウドリソース要求情報を含む。クラウドリソース要求情報は、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含む。クラウドリソース要求情報は、クラウドリソース要求に応答した、割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含む。クラウドリソース割当は、クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づいて決定される。クラウドリソース割当は、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報を含む。クラウドリソース割当は、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報を含む。
【０００８】
本明細書の教示は、以下の詳細な説明を添付図面と併せて検討することにより、容易に理解することが可能である。
【図面の簡単な説明】
【０００９】
【図１】クラウドリソース管理システムが管理中の例示的分散型クラウドシステムを示す図である。
【図２】分散型クラウドシステムにおいてクラウドリソースの割当を決定する方法の実施形態を示す図である。
【図３】分散型クラウドシステムにおいてクラウドリソースの割当を決定する方法の実施形態を示す図である。
【図４】本明細書に記載の機能を実行する際の使用に適したコンピュータの上位レベルブロック図を示す図である。
【発明を実施するための形態】
【００１０】
理解を容易にするために、可能な場合には、各図で共通する同一要素の指定には同一の参照番号を使用している。
【００１１】
一般的に、クラウドシステムにおけるクラウドリソースの割当および移行を実行するためには、クラウドリソース管理機能が設けられる。少なくとも幾つかの実施形態では、分散型クラウドシステム内でのクラウドリソースの割当は、クラウドシステム内でのクラウドリソース割当要求を受信することであって、このクラウドリソース割当要求が、要求されているクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含むと共に、クラウドリソース割当要求に応答して割り当てられることになるクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含む、受信することと、クラウドリソース割当要求に基づきクラウドリソース割当を決定することであって、このクラウドリソース割当が、要求されたクラウドリソースをクラウドシステムの物理リソースへのマッピングを指定すると共に、クラウドリソース割当要求に応答して割り当てられるクラウドリソースの移行を制御するためのクラウドリソース移行情報を指定する、決定することとを含み得る。クラウドリソース要求に応答して決定されたクラウドリソース割当の一環であるクラウドリソース移行情報の指定により、割当中のクラウドリソースの１回以上の将来の移行を考慮するクラウドリソースのより知的な割当を提供するためにクラウドリソース移行情報を使用することが可能となる。現在のクラウドリソース要求に応答して決定されたクラウドリソース割当の一環であるクラウドリソース移行情報の指定により、分散型クラウドシステムの将来のクラウドリソース要求に応答して将来のクラウドリソース割当を決定するために使用されることになるクラウドリソース割当のクラウドリソース移行情報を使用することも可能となる。特定タイプのリソース（即ち、クラウドリソース）を管理するための特定タイプのシステム（即ち、分散型クラウドシステム）のコンテキストにおけるクラウドリソース割当機能の使用に関して主に示し説明するが、クラウドリソース割当機能は、あらゆる好適な種類のリソースが割当および移行可能なあらゆる好適な種類のシステムのコンテキストにおいても使用可能であることは理解されよう。
【００１２】
図１は、クラウドリソース管理システムが管理中の例示的分散型クラウドシステムを示している。
【００１３】
分散型クラウドシステム（ＤＣＳ）１００は、複数の分散データセンタ（ＤＤＣ）１１０１−１１０Ｎ（ＤＤＣ１１０と総称する）、通信ネットワーク（ＣＮ）１２０、クライアントデバイス（ＣＤ）１３０、およびクラウドリソース管理システム（ＣＲＭＳ）１４０を含んでいる。
【００１４】
ＤＤＣ１１０は、クラウド利用者のためにクラウドサービスをサポートするように構成することができる。例えば、クラウドサービスとしては、クラウドコンピューティングサービス、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）、などが挙げられる。ＤＤＣ１１０は、クラウド利用者のためにクラウドサービスをサポートするのに使用可能な、様々な種類および構成のリソースを含むことができる。このリソースとしては、様々な種類および構成の仮想リソースをサポートするのに使用可能な、様々な種類および構成の物理リソースが挙げられる。ＤＤＣ１１０１−１１０Ｄは、それぞれ通信パス１０９１−１０９Ｄ（通信パス１０９と総称する）を介して、ＣＮ１２０と通信することができる。
【００１５】
ＤＤＣ１１０は、クラウド利用者にクラウドサービスを提供するのに使用可能な、物理リソース（ＰＲ）１１２１−１１２Ｄ（ＰＲ１１２と総称する）の各セットを含んでいる。例えば、ＤＤＣ１１０のＰＲ１１２としては、コンピューティングリソース、メモリリソース、ストレージリソース、ネットワーキングリソース、などが挙げられる。例えば、ＤＤＣ１１０のＰＲ１１２としては、サーバ、プロセッサコア、メモリデバイス、ストレージデバイス、ネットワーキングデバイス（例えば、スイッチ、ルータなど）、通信リンク、などが挙げられる。より具体的には、例えば、ＤＤＣ１１０のＰＲ１１２としては、ＤＤＣ１１０内で仮想リソースをホストするように構成されたホストサーバ（例えば、ラック内に構成され、それぞれのトップオブラック（ＴＯＲ）スイッチ、ハイパーバイザなどを介して接続されたサーバブレードを含む）、ＤＤＣ１１０内のホストサーバの通信をサポートするように構成された集約スイッチおよびルータ（例えば、ＤＤＣ１１０内のホストサーバ間のもの、ＤＤＣ１１０のホストサーバとＤＤＣ１１０の外部に位置するデバイスとの間のもの）など、およびそれらの多様な組み合わせが挙げられる。データセンタのＰＲ（例えば、１つ以上のＤＤＣ１１０のＰＲ１１２など）の一般的構成および動作については、当業者であれば理解されよう。
【００１６】
ＤＤＣ１１０のＰＲ１１２は、クラウド利用者のためにクラウドリソース（ＣＲ）１１３１−１１３Ｄ（ＣＲ１１３と総称する）の各セットをサポートするように構成される。例えば、ＤＤＣ１１０のＰＲ１１２を用いてサポートされるＣＲ１１３としては、仮想コンピューティングリソース、仮想メモリリソース、仮想ストレージリソース、仮想ネットワーキングリソース（例えば、帯域幅）など、およびそれらの多様な組み合わせ（例えば、仮想マシン（ＶＭ）、仮想アプリケーション、仮想アプリケーションインスタンス、仮想ファイルシステム、など）が挙げられる。ＤＤＣ１１０のＣＲ１１３の割当は、クラウド利用者により、ＣＲＭＳ１４０へのクラウドリソース割当要求を介して要求され得る。データセンタのＰＲを用いるＶＲ（例えば、１つ以上のＤＤＣ１１０のＰＲ１１２を用いるＣＲ１１３など）の一般的構成および動作については、当業者であれば理解されようことは、認められるであろう。
【００１７】
ＤＤＣ１１０（または少なくとも一部のＤＤＣ１１０）は、地理的に分散させることができる。ＤＤＣ１１０は、あらゆる好適な地理的位置に設置することができる。ＤＤＣ１１０は、あらゆる好適な規模の地理的領域（例えば、全地球的に、特定の大陸上で、特定の国内で、一国の特定箇所内で、など）にわたって分散させることができる。ＤＤＣ１１０は、エンドユーザに対し比較的近距離に設置することもできる。例えば、クラウドプロバイダがネットワークサービスプロバイダとなり得る場合、少なくとも一部のＤＤＣ１１０は、ネットワークサービスプロバイダの中央局（ＣＯ）内で実装することができる。ＣＯ内に配備された従来の通信機器がコンパクトになればなるほど、場所がＣＯにおいて利用可能になり、分散型クラウドシステムの一部として動作するように構成されたサーバを配備するために利用できるようになる、ということは理解されよう。また、そのようなＣＯは、通常、分散型クラウドシステムに関連付けられた追加トラフィックをサポートするように構成可能とするために、高度にネットワーク化される傾向がある、ということも理解されよう。
【００１８】
ＣＮ１２０は、ＤＣＳ１００内の通信をサポートするのに適したあらゆる通信ネットワークを含むことができる（例えば、ＤＤＣ１１０間のもの、ＣＤ１３０とＤＤＣ１１０の間のもの、ＣＤ１３０とＣＲＭＳ１４０の間のもの、ＣＲＭＳ１４０とＤＤＣ１１０の間のもの、など）。例えば、ＣＮ１２０は、１つ以上のワイヤラインネットワーク、または１つ以上のワイヤレスネットワークを含むことが可能であり、こうしたネットワークとしては、モバイル向け全地球システム（ＧＳＭ（登録商標））ベースのネットワーク、符号分割多元接続（ＣＤＭＡ）ベースのネットワーク、ロングタームエボリューション（ＬＴＥ）ベースのネットワーク、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）などから、１つ以上が挙げられる。ＣＮ１２０は、ＤＤＣ１１０のＣＲ１１３のアクセスおよび使用に関連付けられた通信（例えば、ＤＤＣ１１０間のもの、ＣＤ１３０とＤＤＣ１１０の間のもの、など）向けサポートを含め、ＤＣＳ１００内の通信をサポートするように構成された、ネットワークリソース１２１を含む。例えば、ネットワークリソース１２１としては、ネットワーク要素（例えば、データルーティングデバイス、制御機能など）、通信リンクなど、およびそれらの多様な組み合わせが挙げられる。少なくとも幾つかの場合（例えば、ＤＤＣ１１０があるネットワークサービスプロバイダによって提供されており、そのネットワークサービスプロバイダがＣＮ１２０も提供するような場合）、ネットワークリソース１２１（例えば、帯域幅や、その他の適切なタイプのネットワークリソース１２１）の割当は、クラウド利用者により、ＣＲＭＳ１４０に対するクラウドリソース割当要求に伴って要求され得る。
【００１９】
ＣＤ１３０は、ＤＣＳ１００内で機能するように構成された、クライアントデバイスである。例えば、ＣＤ１３０は、ＤＤＣ１１０内のクラウドリソースの割当を要求するために、ＣＲＭＳ１４０と通信するように構成することができる。例えば、ＣＤ１３０は、ＤＤＣ１１０内でＣＤ１３０に割り当てられた仮想リソース（例えば、ＣＤ１３０またはその他のデバイスからのリソース割当要求に応答して割り当てられたもの）にアクセスし使用するために、ＤＤＣ１１０と通信するように構成することができる。例えば、ＣＤ１３０は、シンクライアント、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセットトップボックス、メディアプレイヤ、ゲートウェイ、サーバ、ネットワークデバイス、などとすることができる。
【００２０】
ＣＲＭＳ１４０は、ＤＣＳ１００内のリソース管理をサポートするように構成することができる。ＣＲＭＳ１４０は、仮想リソース（例えば、ＤＤＣ１１０のＣＲ１１３、およびオプションでＣＮ１２０のネットワークリソース１２１）の管理をサポートするように構成することができ、この管理には、利用可能な仮想リソース（例えば、ＤＤＣ１１０の利用可能なＣＲ１１３、およびオプションでＣＮ１２０の利用可能なネットワークリソース１２１）の割当、割り当てられた仮想リソースの移行（例えば、ＤＤＣ１１０の割り当てられたＣＲ１１３の移行（例えば、ＤＤＣ１１０内のサーバ間、ＤＤＣ１１０間、など）、およびオプションでＣＮ１２０の割り当てられたネットワークリソース１２１の移行）など、およびそれらの多様な組み合わせが含まれる。ＣＲＭＳ１４０は、ＤＣＳ１００内のＣＲ１１３の割当および移行を制御するように構成することができる。ＣＲＭＳ１４０は、ＤＣＳ１００内で割当中のＣＲ１１３の予想される将来の移行に基づき、ＤＣＳ１００内のＣＲ１１３を割り当てるように構成することができる。ＣＲＭＳ１４０は、ＤＣＳ１００内のＣＲ１１３を割り当てた後、その移行を指定および制御することを可能にするという方法で、ＤＣＳ１００内のＣＲ１１３を割り当てるように構成することができる。
【００２１】
ＣＲＭＳ１４０は、クラウドリソース割当要求を受信し、そのクラウドリソース割当要求に応答してクラウドリソース割当を決定するように構成することができる。クラウドリソース割当要求は、ＣＲ１１３を要求するクラウド利用者の好適なデバイスから受信することができる（例えば、ＣＤ１３０から、またはＣＤ１３０が使用するために割り当てられたＣＲ１１３を取得中のデバイスから）。クラウドリソース割当要求は、要求されているＣＲ１１３の割当を指定する、クラウドリソース割当パラメータ（例えば、要求されるＣＲ１１３のタイプ、要求されるＣＲ１１３の量、およびオプションで、ＣＲ１１３の割当が従う１つ以上のクラウド利用者割当ルール（例えば、要求されるＣＲ１１３の位置、ＣＲ１１３の割当が従う１つ以上の割当ルール、ネットワーク待ち時間制限、など））を含むことができる。また、クラウドリソース割当要求は、クラウドリソース割当要求に応答して割り当てられるＣＲ１１３の移行に関連付けられた、１つ以上のクラウドリソース移行パラメータ（例えば、割り当てられたＣＲ１１３が移行することになる時間、割り当てられたＣＲ１１３の移行元の位置、割り当てられたＣＲ１１３の移行先の位置、割り当てられたＣＲ１１３の移行が従う１つ以上のクラウドリソース割当パラメータなど、およびそれらの多様な組み合わせ）も含むことができる。
【００２２】
ＣＲＭＳ１４０は、クラウドリソース割当要求に基づき（例えば、クラウドリソース割当パラメータ、クラウドリソース移行パラメータなど、およびそれらの多様な組み合わせに基づき）、クラウドリソース割当を決定するように構成することができる。ＣＲＭＳ１４０は、利用可能なＣＲ１１３の特徴、利用可能なＣＲ１１３をホストしているＤＤＣ１１０の特徴（例えば、ＤＤＣ１１０の負荷、ＤＤＣ１１０内のネットワーク接続性の特徴、など）、ＣＮ１２０の特徴（例えば、ＤＤＣ１１０間のネットワーク接続性の特徴、ＣＮ１２０に関連付けられたネットワークステータス情報、など）、クラウドプロバイダの１つ以上の目的（例えば、負荷のバランス調整、収益の最大化、など）などのうち、１つ以上に基づき、クラウドリソース割当を決定するように構成することができる。クラウドリソース割当は、ＤＤＣ１１０のＰＲ１１２に対する、割り当てられたＣＲ１１３のマッピングを指定することができる。また、クラウドリソース割当は、ＤＤＣ１１０のＰＲ１１２間での割り当てられたＣＲ１１３の移行計画を示す、即ち、ＤＤＣ１１０のＰＲ１１２間での割り当てられたＣＲ１１３の移行を制御する際の使用に向けて構成された、クラウドリソース移行情報を指定することもできる。少なくとも幾つかの実施形態では、クラウドリソース割当のクラウドリソース移行情報は、クラウドリソース移行計画とも呼称され得る。
【００２３】
ＣＲＭＳ１４０は、自身が決定したクラウドリソース割当に基づき、ＣＲ１１３の割当を制御するように構成することができる。ＣＲＭＳ１４０は、自身が決定したクラウドリソース割当に基づいてＤＤＣ１１０のＣＲ１１３のプロビジョニングを制御するために、１つ以上のＤＤＣ１１０と通信するように構成することができる。
【００２４】
ＣＲＭＳ１４０は、関連付けられたクラウドリソース割当要求の送信元であったデバイス（例えば、ＣＤ１３０、ＣＤ１３０が使用するために割り当てられたＣＲ１１３を取得中のデバイス、など）に対し、クラウドリソース割当要求に応答して、クラウドリソース割当応答を提供するように構成することができる。クラウドリソース割当応答は、クラウドリソース割当要求がＣＲＭＳ１４０によって満たされているかどうかの指示、ＣＲＭＳ１４０によって決定されたクラウドリソース割当を示す情報（例えば、割り当てられたＣＲ１１３の位置、割り当てられたＣＲ１１３と通信する際に用いるアドレス、クラウドリソース移行情報、など）など、およびそれらの多様な組み合わせのうち、１つ以上を含むことができる。
【００２５】
ＣＲＭＳ１４０は、ＤＣＳ１００内のクラウドリソースの移行を制御するように構成することができる。ＣＲＭＳ１４０は、割り当てられたＣＲ１１３の割当をクラウドリソース割当要求に応答して指定するクラウドリソース割当の一環として指定されたクラウドリソース移行情報に基づき、割り当てられたＣＲ１１３の移行を制御するように構成することができる。ＣＲＭＳ１４０は、他の好適な情報（例えば、割り当てられたＣＲ１１３の割当をもたらしたクラウドリソース割当要求の一環として指定されたクラウドリソース割当パラメータ、ＤＤＣ１１０に関連付けられたステータス情報（例えば、ＤＤＣ１１０の現在の負荷、予想されるＤＤＣ１１０の負荷、など）など、およびそれらの多様な組み合わせ）に基づき、割り当てられたＣＲ１１３の移行を制御するように構成することができる。ＣＲＭＳ１４０は、ＰＲ１１２間での割り当てられたＣＲ１１３の移行を制御するように構成することができる。ＣＲＭＳ１４０は、ＰＲ１１２の第１のセットからＰＲ１１２の第２のセットへの、割り当てられたＣＲ１１３のセットの移行を制御するように構成することができる。例えば、ＣＲＭＳ１４０は、あるＤＤＣ１１０内の第１のホストサーバから第２のホストサーバへのＶＭの移行、第１のＤＤＣ１１０のホストサーバから第２のＤＤＣ１１０のホストサーバへのＶＭの移行、などを制御するように構成することができる。同様に、例えば、ＣＲＭＳ１４０は、あるＤＤＣ１１０内で第１のラック上のホストサーバから第２のラック上のホストサーバへのＶＭのセットの移行、第１のＤＤＣ１１０内のホストサーバから第２のＤＤＣ１１０内のホストサーバへのＶＭのセットの移行、などを制御するように構成することができる。ＣＲＭＳ１４０は、クラウドリソース割当要求に応答して割り当てられたＣＲ１１３の移行のために、その他様々なタイプのリソース移行をサポートするように構成することができる。
【００２６】
なお、クラウドリソース要求に応答して決定されたクラウドリソース割当の一環であるクラウドリソース移行情報の指定により、割当中のクラウドリソースの１回以上の将来の移行を考慮するクラウドリソースのより知的な割当を提供するためにクラウドリソース移行情報を使用することが可能となる。
【００２７】
現在のクラウドリソース割当要求に応答して決定されたクラウドリソース割当の一環であるクラウドリソース移行情報の指定により、ＣＲＭＳ１４０が受信する将来のクラウドリソース割当要求に応答して将来のクラウドリソース割当を決定するために使用されることになるクラウドリソース割当のクラウドリソース移行情報を使用することが可能となる、ということに注意されたい。ＣＲＭＳ１４０は、ＤＣＳ１００内のクラウドリソース割当のための１つ以上の将来のクラウドリソース割当要求の承認を増加または最大化するように持っていく方法で、現在のクラウドリソース割当要求に応答してＤＣＳ１００内のクラウドリソースを割り当てるように構成することができる。将来のクラウドリソース要求は先験的に知られていないのが普通であるので、現在のクラウドリソース要求に応答しての利用可能なＣＲ１１３の割当は、現在のクラウドリソース要求に応答しての利用可能なＣＲ１１３の割当が将来に到着するクラウドリソース要求についての知識が一切なくともなされ得るという意味において、オンラインで実行可能であるということが理解されよう。ＣＲＭＳ１４０は、１つ以上の過去のクラウドリソース割当要求に応答してＣＲＭＳ１４０によって決定および実施された１つ以上のクラウドリソース割当のために指定されたクラウドリソース移行情報に基づき、１つ以上の将来のクラウドリソース割当要求に応答してＣＲ１１３を割り当てるように構成することができる。これにより、ＤＤＣ１１０の負荷が分散され均一となることを保証すること、または保証する傾向を持たせることが可能となる。ＣＲＭＳ１４０は、クラウドリソース割当要求を受信し、ＤＣＳ１００内のクラウドリソース割当要求およびクラウドリソース割当に関連付けられたクラウドリソース割当パラメータ（例えば、クラウドリソース割当の一環として指定されたクラウドリソース移行情報を含むクラウドリソース割り当て情報）に基づいてＤＣＳ１００内のクラウドリソースの割当を決定するように構成することができる。ＣＲＭＳ１４０は、他の様々な方法で、ＤＣＳ１００に関連付けられたクラウドリソース移行情報に基づくＤＣＳ１００内のクラウドリソースの割当を改良するように構成することができる。
【００２８】
ＣＲＭＳ１４０は、クラウドリソース割当機能の他の様々な機能を実行するように構成することができる。
【００２９】
図２は、分散型クラウドシステムにおいてクラウドリソースの割当を決定する方法の実施形態を示している。連続的に実行されるものとして主に示され説明されているが、方法２００のステップのうちの少なくとも一部は、同時に、または図２に示したのとは異なる順序で実行されてよいことは理解されよう。
【００３０】
ステップ２０１において、方法２００は開始される。
【００３１】
ステップ２１０では、クラウドリソース割当要求が受信される。クラウドリソース割当要求は、クラウドリソース要求情報を含む。クラウドリソース要求情報は、要求されているクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータ、クラウドリソース割当要求に応答して割り当てられることになるクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータなど、およびそれらの多様な組み合わせを含むことができる。
【００３２】
クラウドリソース要求情報は、要求されているクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータを含むことができる。クラウドリソース割当パラメータは、クラウドリソース割当要求において要求されたクラウドリソースの割当を決定するのに使用可能な任意の情報を含むことができる。クラウドリソース割当パラメータは、クラウドリソース割当要求において要求されたクラウドリソースの割当が従うパラメータを含むことができる。例えば、クラウドリソース割当パラメータは、要求されたクラウドリソースのタイプ、要求されたクラウドリソースの量、クラウドリソースの使用が要求される持続時間、クラウドリソースの割当が従うまたは従い得る１つ以上のクラウド利用者割当ルール（例えば、クラウドリソースが割り当てられることになる位置（例えば、１つ以上の地理的位置、１つ以上のデータセンタ、１つ以上のデータセンタ内の１つ以上の位置、など）、クラウドリソースの割当が従う１つ以上のアンチアフィニティルール、割り当てられることになるクラウドリソースを使用する通信に関連付けられた１つ以上の待ち時間制約、など）など、およびそれらの多様な組み合わせの指示を含むことができる。
【００３３】
クラウドリソース要求情報は、クラウドリソース割当要求に応答して割り当てられることになるクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータを含むことができる。クラウドリソース移行パラメータは、クラウドリソース割当要求に応答して割り当てられたクラウドリソースの移行を決定し制御するのに使用可能な任意の情報を含むことができる。クラウドリソース移行パラメータは、クラウドリソース割当要求に応答して割り当てられたクラウドリソースの移行が従うパラメータを含むことができる。例えば、クラウドリソース移行パラメータは、クラウドリソースが移行することになる時間、クラウドリソースの移行元／移行先となる位置、クラウドリソースが移行可能な最大回数など、およびそれらの多様な組み合わせを含むことができる。また、クラウドリソース移行パラメータは、クラウドリソース割当要求に応答して割り当てられたクラウドリソースの移行を決定し制御するために使用可能な何らかのクラウドリソース割当パラメータを含むものとみなすこともできる。
【００３４】
クラウドリソース要求情報はいずれも、このような情報が、クラウドリソース要求に応答してのクラウドリソースの割当や、クラウドリソース割当要求に応答して割り当てられたクラウドリソースの移行などの制限を可能とするため、制約であるとみなされ得ることが理解されよう。
【００３５】
また、クラウドリソース要求情報がクラウドリソース割当要求内に含まれる実施形態について主に示され説明されているが、クラウドリソース要求情報の一部または全部が、クラウドリソース割当要求の外部で提供または取得され得るということも理解されよう。
【００３６】
ステップ２２０では、クラウドリソース割当要求に対し、クラウドリソース割当が決定される。クラウドリソース割当は、クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づいて決定することができる。クラウドリソース割当は、クラウドリソース割当情報、クラウドリソース移行情報、などを含むことができる。
【００３７】
クラウドリソース割当は、クラウドリソース割当情報を含むことができる。クラウドリソース割当情報は、クラウドリソース割当パラメータに基づいて決定されるものであるが、クラウドリソース移行パラメータに基づいて決定することも可能である。クラウドリソース割当情報は、分散型クラウドシステムの物理リソースに対する、要求されたクラウドリソースのマッピングを指定する。例えば、クラウドリソース割当情報は、各クラウドリソースについて、そのクラウドリソースがホストされることになる位置（例えば、データセンタ、ラック、サーバなど）の識別を含むことができる。
【００３８】
クラウドリソース割当は、クラウドリソース移行情報を含むことができる。クラウドリソース移行情報は、クラウドリソース移行パラメータに基づいて決定されるものであるが、クラウドリソース割当パラメータに基づいて決定することも可能である。クラウドリソース移行情報は、分散型クラウドシステム内で割り当てられたクラウドリソースの移行を指定する。例えば、クラウドリソース移行情報は、クラウドリソースが移行することになる時間、クラウドリソースの移行元／移行先となる位置（例えば、分散型クラウドシステムの物理リソースの第１のセットから、分散型クラウドシステムの物理リソースの第２のセットまで）などのうち、少なくとも１つを含むことができる。
【００３９】
ステップ２９９において、方法２００は終了する。
【００４０】
現在のクラウドリソース割当要求に関連付けられたクラウドリソース移行情報は、現在のクラウドリソース割当要求に関連付けられたクラウドリソース移行パラメータに基づいて決定可能であるということが、少なくとも図２の方法２００から理解されよう。加えて、本明細書で検討したように、現在のクラウドリソース割当要求に関連付けられたクラウドリソース移行情報は、先行するクラウドリソース割当要求向けに決定されたクラウドリソース移行情報に基づいて決定することもできる。このことは、現在のクラウドリソース割当要求の処理を目的とした、先行するクラウドリソース割当要求向けに決定された先行するクラウドリソース割当のクラウドリソース移行情報の直接使用、現在のクラウドリソース割当要求の処理を目的とした、先行するクラウドリソース割当のクラウドリソース移行情報を含み入れるための分散型クラウドシステムステータス情報の更新および更新された分散型クラウドシステムステータス情報の使用（これについての例示的実施形態は、図３において示される）など、ならびにそれらの多様な組み合わせのうち、１つ以上を介して処理することができる。
【００４１】
図３は、分散型クラウドシステムにおいてクラウドリソースの割当を決定する方法の実施形態を示している。連続的に実行されるものとして主に示され説明されているが、方法３００のステップのうちの少なくとも一部は、同時に、または図３に示したのとは異なる順序で実行されてよいことは理解されよう。
【００４２】
ステップ３０１において、方法３００は開始される。
【００４３】
ステップ３１０では、現在のクラウドリソース割当要求が受信される。現在のクラウドリソース割当要求は、クラウドリソース要求情報を含む。クラウドリソース要求情報は、要求されているクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータ、クラウドリソース割当要求に応答して割り当てられることになるクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータなど、およびそれらの多様な組み合わせを含むことができる。
【００４４】
ステップ３２０では、分散型クラウドシステムに関連付けられた分散型クラウドシステムステータス情報が決定される。分散型クラウドシステムステータス情報は、分散型クラウドシステムのデータセンタにおいて利用可能なクラウドリソースの指示、分散型クラウドシステムのデータセンタにおいて既に割り当てられたクラウドリソースの指示（例えば、データセンタの負荷を示し得る）、分散データセンタ同士の間での通信をサポートするのに利用可能な通信ネットワークの利用可能ネットワークリソースの指示など、およびそれらの多様な組み合わせのうち、１つ以上を含むことができる。分散型クラウドシステムステータス情報は、先行するクラウドリソース割当要求（こうしたクラウドリソース割当要求は、先行するクラウドリソース割当要求に応答して実行されるクラウドリソース割当が考慮されるべきものとなるように、既に処理されている）に応答してなされたクラウドリソース割当のクラウドリソース割当を含むことができ、この先行するクラウドリソース割当要求は、先行するクラウドリソース割当要求に応答して割り当てられたクラウドリソースのクラウドリソース移行を指定するクラウドリソース移行情報を含むことができる。
【００４５】
ステップ３３０では、現在のクラウドリソース割当要求に対し、現在のクラウドリソース割当が決定される。現在のクラウドリソース割当は、現在のクラウドリソース割当要求のクラウドリソース割当要求情報（例えば、クラウドリソース割当パラメータおよびクラウドリソース移行パラメータ）に基づいて決定することができる。現在のクラウドリソース割当は、クラウドリソース割当情報、クラウドリソース移行情報、などを含むことができる。
【００４６】
ステップ３４０では、現在のクラウドリソース要求のクラウドリソースが、現在のクラウドリソース割当に基づき、分散型クラウドシステム内で割り当てられる。
【００４７】
ステップ３５０では、分散型クラウドシステムステータス情報が、現在のクラウドリソース割当の現在のクラウドリソース割当情報を含み入れるために更新される。この方法では、現在のクラウドリソース割当の、クラウドリソース割当情報のみならず、クラウドリソース移行情報までもが、将来のクラウドリソース割当要求を処理する際に利用可能となる。
【００４８】
ステップ３６０では、次のクラウドリソース割当要求が受信される。次のクラウドリソース割当要求は、クラウドリソース要求情報を含む。クラウドリソース要求情報は、要求されているクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータ、クラウドリソース割当要求に応答して割り当てられることになるクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータなど、およびそれらの多様な組み合わせを含むことができる。
【００４９】
ステップ３７０では、次のクラウドリソース割当要求が、次のクラウドリソース割当要求のクラウドリソース要求情報、および更新された分散型クラウドシステムステータス情報に基づいて処理される。先に触れたように、更新された分散型クラウドシステムステータス情報は先行する現在の（現時点では過去のもの）クラウドリソース割当に関連付けられたクラウドリソース移行情報を含むため、次のクラウドリソース割当要求に応答したクラウドリソースの割当は、先に割り当てられたクラウドリソースの移行計画を考慮に入れながら決定することができる。
【００５０】
ステップ３９９において、方法３００は終了する。
【００５１】
少なくとも幾つかの実施形態では、１つ以上の将来のクラウドリソース割当要求の承認を増加または最大化するように持っていく方法で現在のクラウドリソース要求に対しクラウドシステムの利用可能なクラウドリソース（例えば、ＤＣＳ１００のＤＤＣ１１０が持つＣＲ１１３）の割当に関する問題は、プライマルデュアル法で定式化することができる。ここでは、クラウドリソース割当要求に応答してのクラウドリソースの割当のために使用する情報（例えば、クラウドリソース割当要求に含まれる情報、分散型クラウドシステムステータス情報、１つ以上のクラウドリソース移行計画、など）が、制約のセットとしてモデル化され、クラウドプロバイダの収益を最大化することが目的となる。問題の定式化および関連するクラウドリソース割当処理（クラウドリソースとしては、他のタイプのクラウド処理、クラウドメモリリソース、クラウドストレージリソースなども挙げられ得るため、非限定的実施例として、ＶＭ割当を使用する）に関する例示的実施形態の説明を以下に続ける。
【００５２】
図１を再度参照する。少なくとも幾つかの実施形態では、ＣＲＭＳ１４０は、そのシステムがタイムスロット式システムを意味するように構成することが可能である。このタイムスロット式システムでは、タイムスロットがｔによって指標付けられ、ｎ個のクラウド位置（例えば、ＤＤＣ１１０）が含まれる。クラウド位置は、本明細書ではより広く、クラウドリソース位置とも呼称され得る。タイムスロット式システムでは、ｔによって指標付けされたタイムスロットは、あらゆる好適な時間のインクリメント（例えば、秒、分、時間、日、など）を使用することができる。タイムスロット式システムでは、クラウド位置はｉによって指標付けされ、各クラウド位置ｉは、タイムスロットｔにおけるＢ（ｉ，ｔ）個のＶＭをホストする容量を持つ。Ｂ（ｉ，ｔ）の値は、ＣＲＭＳ１４０に知られていることを前提としてよい。割り当てられているクラウドリソース（例示的にはＣＲ１１３）がＶＭであるという実施形態のコンテキストにおいて主に提示されているが、割り当てられているクラウドリソースとしては、システムがサポート可能であり、クラウドリソース割当要求の一環として指定可能な、あらゆるタイプのクラウドリソース（例えば、他のタイプのクラウド処理リソース、クラウドメモリリソース、クラウドストレージリソース、など）を挙げることができる、ということは理解されよう。タイムスロット式システムでは、２つのクラウド位置（例えば、ＤＤＣ１１０）ｉおよびｉ’の距離は、δ（ｉ，ｔ）として定義される。２つのクラウド位置ｉおよびｉ’の距離は、物理的な距離、基底をなすネットワークにおけるクラウド位置ｉからクラウド位置ｉ’までの最短パス、パケットをクラウド位置ｉからクラウド位置ｉ’まで転送するための推定平均遅延、またはその他あらゆる好適な距離の尺度とすることができる。
【００５３】
ＣＲＭＳ１４０は、クラウドリソース割当要求を受信するように構成される（このクラウドリソース割当要求は、ＣＲＭＳ１４０への到着データ、またはシステムへの到着データと呼称することも可能である）。タイムスロット式システムでは、クラウドリソース割当要求はＶＭに対する要求であるため、ＶＭ要求と呼称することもできる。ＶＭ要求は、ｌによって指標付けされる。ＶＭ要求ｌは、自身に関連付けられた、以下の情報を有する：
（１）要求されたＶＭのグループ（ｍ（ｌ）と表記する）。このとき、特定のＶＭ要求に属するＶＭはｊによって指標付けされる。
（２）ＶＭ要求ｌに関しＶＭグループｊに要求されたＶＭの数（Ｎ（ｌ，ｊ）と表記する）。
（３）タイムスロットＴ（ｌ）のセット。この間にＶＭ要求ｌの要求されたＶＭがインスタンス化されることになる。
（４）要求されたＶＭのグループによって満たされることになる割当制約のセット（例えば、要求されたＶＭをインスタンス化可能なクラウド位置ｉに対する制約、要求されたＶＭのインスタンス化不可なクラウド位置ｉの指示など、およびそれらの多様な組み合わせ）。
【００５４】
なお、タイムスロットＴ（ｌ）のセットに関して、タイムスロットＴ（ｌ）のセットは、連続した時間間隔を含んでも含まなくてもよいことに注意されたい。要求ｌに対するタイムスロットの総数をＬ（ｌ）＝｜Ｔ（ｌ）｜で表す。より広くＶＭ要求に対応可能となるのは、ＶＭ要求ｌのＶＭグループｊのＶＭの数がタイムスロットの関数となる場合である。換言すれば、ＶＭの数はＮ（ｌ，ｊ，ｔ）として与えられ、全てのｔ∈Ｔ（ｌ）に対して定義される。但し、表記を平明なものに保つために、ＶＭ割当機能の実施形態は、ＶＭ要求ｌのＶＭグループｊのＶＭの数が、Ｔ（ｌ）で表すタイムスロットの全てにわたって同一である場合のコンテキストにおいて、主に説明する（即ち、Ｎ（ｌ，ｊ，ｔ）ではなくＮ（ｌ，ｊ）を使用する）。
【００５５】
なお、リソースの過剰使用を防ぐため、ＶＭ移行を実施することもできることに注意されたい。この問題の定式化では、（１）ＶＭ要求ｌに対する移行決定は、そのＶＭ要求ｌが処理されるときに決定される、（２）ＶＭ要求ｌのＶＭは、任意のタイムスロットの開始時に、実現可能性制約を満たすクラウド位置ｉの任意のセットへと移行可能である、（３）ＶＭ要求ｌにおけるＶＭの移行は、システムの現在のステータス（例えば、ＤＤＣ１１０の現在のステータス）に基づくものである、（４）将来の利用情報に基づくＶＭの計画されていない移行は許可されない、および（５）ＶＭ要求ｌのＶＭの寿命内でＶＭ要求ｌのＶＭが移行可能な回数に対しては制約が存在しないという点で、ＶＭの移行は制約されない、という前提が立てられる。様々な実施形態において、これらの前提のうちの１つ以上が緩和または修正されてよいことは理解されよう。
【００５６】
割当制約のセットは、ＶＭ要求ｌのＶＭをインスタンス化可能なクラウド位置ｉ（例えば、ＤＤＣ１１０）に対する、１つ以上の制約を含むことができる。このような割当制約の一例が、以下のように定義した、クラウド位置制限制約である：ＶＭ要求ｌのＶＭｊが、クラウド位置のセットＳ（ｌ，ｊ）に位置付けられるように制約され、このとき、クラウド位置のセットＳ（ｌ，ｊ）は、何らかの所与のクラウド位置ｊからのΔの距離内にある任意のクラウド位置ｉを含む（即ち、Ｓ（ｌ，ｊ）−｛ｉ’：δ（ｉ，ｉ’）≦Δ｝）。距離は任意の好適な方法で測定することができる（例えば、物理的な距離として、基底をなすネットワークにおけるクラウド位置ｉからクラウド位置ｉ’までの最短パスとして、パケットをクラウド位置ｉからクラウド位置ｉ’まで転送するための推定平均遅延として、またはその他あらゆる好適な距離の尺度として）。
【００５７】
ＣＲＭＳ１４０は、ＶＭ要求ｌに対するＶＭ割当を決定するように構成することができ、このとき、ＶＭ要求ｌに対するＶＭ割当は、システムのクラウド位置への（例えば、システムのＤＤＣ１１０への）要求されたＶＭのマッピングである。ＶＭ要求ｌに対するＶＭ割当は、（１）ＶＭ要求ｌの一環として指定された割当制約のセットが満足される、および（２）クラウド位置ｉにおける容量制約が満足されるように決定される。ＶＭ要求ｌに対するＶＭ割当は、クラウド位置ｉおよびタイムスロットｔへの、ＶＭ要求ｌのＶＭのリソースマッピングＰとして表すことができる。ここでは、タイムスロットｔ∈Ｔ（ｌ）におけるＶＭ要求ｌのＶＭｊに属するＮ（ｌ，ｊ）個のＶＭのクラウド位置ｉを表記するためにＰ（ｌ，ｊ，ｔ）が使用され、ＶＭ要求ｌに対するＶＭグループｊのマッピングにリソースマッピングＰが使用されるときのタイムスロットｔにおいてクラウド位置ｉに割り当てられたＶＭの総数を表記するためにＡ（ｌ，Ｐ，ｉ，ｔ）が使用される（即ち、
【数１】
0006334707.tif 000002
）。加えて、ＶＭ要求ｌに対して実行可能なリソースマッピングのセットをＰｌで表記する（なお、移行制約はＰｌの定義に包摂される）。少なくとも幾つかの実施形態では、ＣＲＭＳ１４０は、将来のＶＭ要求の知識なしにＶＭ要求に応答してＶＭのオンライン割当をサポートするように構成され、また少なくともそのような幾つかの実施形態は、将来のＶＭ需要が予め知られているＶＭ要求に応答してのＶＭのオフライン割当をまず検討することによって、より良く理解することができる。
【００５８】
ＣＲＭＳ１４０は、将来のＶＭ要求（将来のＶＭ需要を示している）が予め知られているＶＭ要求に応答してのＶＭのオフライン割当をサポートすることができる。少なくとも幾つかの実施形態では、システム内で実際に割り当てられる要求されたＶＭの数（本明細書では、承認されたＶＭの数とも呼称され得る）を最大化する、各タイムスロットｔに対する有効なリソースマッピングＰを決定することが目的となり得る。リソースマッピングＰ∈ＰｌがタイムスロットｔでのＶＭ要求ｌに対して使用される場合を
【数２】
0006334707.tif 000003
とし、それ以外の場合を
【数３】
0006334707.tif 000004
とする。承認されたＶＭの数を最大化するという問題は、以下のように記述することができる：
【数４】
0006334707.tif 000005
ここでは、目的関数における括弧内の項は、リソースマッピングＰが選択された場合のクラウド位置ｉにおいてインスタンス化されたＶＭの総数である。式［１］は、各タイムスロットｔにおいて使用されるリソースマッピングは、最大でも１回であるということを保証する。式［２］は、各タイムスロットｔにおける各クラウド位置ｉに対する容量制約を実施する。明瞭にするため、
【数５】
0006334707.tif 000006
である上記問題の線形プログラミング緩和法を検討する。なお、上限
【数６】
0006334707.tif 000007
は式［１］によって含意されているため、定式化から除外することができる。上記線形プログラミング緩和法に対する双対は、以下のように記述することができる：
【数７】
0006334707.tif 000008
ここでは、式［４］から、
【数８】
0006334707.tif 000009
となる。将来についての情報は現時点で利用不可であるため、ＶＭ要求の処理がＶＭ要求の受信時に実行されるのであれば、ＶＭのオフライン割当は実際にはまず使用不可となることは理解されよう。よって、ＶＭのオフライン割当に関して上で提示した主問題および双対問題は、一定競争比を用いてＶＭのオンライン割当向けの処理を展開させるために使用することができる。
【００５９】
ＣＲＭＳ１４０は、ＶＭ要求に応答してのＶＭのオンライン割当をサポートすることができる。少なくとも幾つかの実施形態では、ＶＭ要求に応答してのＶＭのオンライン割当は、各タイムスロットｔにおいてＶＭおよびＶＭ向けデータセンタを選択することを含む。先に説明したように、ＶＭ要求ｌに応答してＶＭの割当を決定するために、ＶＭ要求ｌが受信され、ＶＭ要求ｌの処理が開始される場合、以下の情報が利用可能となる：（１）要求されたＶＭのグループ（ｍ（ｌ）と表記する）。このとき、特定のＶＭ要求に属するＶＭはｊによって指標付けされる。（２）ＶＭ要求ｌに関しＶＭグループｊに要求されたＶＭの数（Ｎ（ｌ，ｊ）と表記する）。（３）タイムスロットＴ（ｌ）のセット。この間にＶＭ要求ｌの要求されたＶＭがインスタンス化されることになる。（４）要求されたＶＭのグループによって満たされることになる割当制約のセット（例えば、要求されたＶＭをインスタンス化可能なクラウド位置ｉに対する制約、要求されたＶＭのインスタンス化不可なクラウド位置ｉの指示など、およびそれらの多様な組み合わせ）。（５）クラウド位置ｉの各々において利用可能な残り容量。加えて、実行可能なクラウド位置ｉへのＶＭのマッピングのセットをＰｌと表記する。ＣＲＭＳ１４０は、ＶＭ要求ｌおよびクラウド位置ｉの各々において利用可能な残り容量に基づいてリソースマッピングＰ∈Ｐｌを決定し、このとき、リソースマッピングＰ∈Ｐｌは、システムのクラウド位置ｉへのＶＭ要求ｌの要求されたＶＭの割当を指定する。
【００６０】
少なくとも幾つかの実施形態では、ＶＭ要求ｌに基づくリソースマッピングＰ∈Ｐｌの決定は、ＶＭのオフライン割当に関して上述したようなプライマルデュアル方式を用いて実行される。ＶＭのオフライン割当に関して上で定義した双対変数π（ｌ）およびδ（ｉ，ｔ）はゼロに初期化され、各タイムスロットｔの終了時に更新される。各ＶＭ要求ｌに対し、以下のステップが実行される：
（１）各タイムスロットｔについて、時間ｔにおけるクラウド位置ｉへＶＭ  ｊを割り当てることの重みが、ｗ（ｉ，ｊ，ｔ）＝Ｎ（ｌ，ｊ）［１−δ（ｉ，ｔ）］として計算される。
（２）各タイムスロットｔについて、最大の重みマッピングＰ∈Ｐｌが計算され、このとき、マッピングＰの重みは、
【数９】
0006334707.tif 000010
として計算される。
（３）各ＶＭ  ｊについて、Ｒ（Ｐ（ｌ，ｊ，ｔ），ｔ）←Ｒ（Ｐ（ｌ，ｊ，ｔ），ｔ）＋Ｎ（ｌ，ｊ）∀ｔ∈Ｔ（ｌ）に基づき、タイムスロットｔに対しクラウド位置ｉへと割り当てられた総負荷を更新する（即ち、タイムスロットｔに対しクラウド位置ｉへと割り当てられた総負荷を追跡するためにＲ（ｉ，ｔ）を使用する）。
（４）ＶＭがクラウド位置ｉに割り当てられた後、ＶＭ  ｊについての双対変数π（ｌ，ｔ）およびδ（ｉ，ｔ）の値が、各タイムスロットｔ∈Ｔ（ｌ）について以下のように更新される：
【数１０】
0006334707.tif 000011
【００６１】
最大の重みマッピングＰ∈Ｐｌの計算の複雑性は、指定された割当制約のタイプに依存するということは理解されよう。クラウド位置制限制約の場合、各ＶＭ  ｊについて、クラウド位置ｉ∈Ｓ（ｌ，ｊ）は、時間ｔにおけるクラウド位置ｉへＶＭ  ｊを割り当てることの重み（即ち、ｗ（ｉ，ｊ，ｔ））が最大化されるように選択することができる。換言すれば、
【数１１】
0006334707.tif 000012
となる。
【００６２】
π（ｌ，ｔ）の値は、タイムスロットｌにおいて計算され、後には更新されないということ、およびδ（ｉ，ｔ）の値は、クラウド位置ｉに関するタイムスロットｔに対しＶＭが割り当てられるときにはいつでも更新されるということは理解されよう。
【００６３】
各ＶＭ要求ｌの処理後も双対な実行可能解が維持され、このとき、δ（ｉ，ｔ）の値はＶＭ要求ｌに対するＶＭ割当の実行時に使用されるが、π（ｌ，ｔ）の値はＶＭ割当の実行のためのプロセスの分析に使用されるために予測されるのみであるということが示され得る。
【００６４】
少なくとも幾つかの実施形態では、パフォーマンス保証が、ＶＭのオンライン割当とＶＭのオフライン割当のパフォーマンスを比較することによって提供され得る。オフラインＶＭ割当プロセスは、将来についての知識を備えており、また、上で論じたように、個々のＶＭ要求がクラウド位置容量と比較して小さい場合、ＶＭの割当のためのＶＭ要求の処理が、ＶＭの割当のためのオンラインプロセスがＶＭの割当のためのオフラインプロセスによって割り当てられたＶＭの定比率を上回って割り当てられるように実行される、といった整数プログラミング問題として定式化されている。
【００６５】
本明細書では、クラウドリソースの移行がクラウドリソースの予め計画された移行であるクラウドリソース割当機能の実施形態に関して主に示され説明されているが、少なくとも幾つかの実施形態では、クラウドリソース割当機能が、クラウドリソースの反応性（ｒｅａｃｔｉｖｅ）の移行をサポートするように構成することもできることは理解されよう。クラウドリソースの反応性の移行は、クラウドリソースが割り当てられる物理リソースが過負荷または機能停止しているという決定、クラウドリソースをホストしているデータセンタまたはデータセンタの一部がメンテナンスのためにオフラインになるという決定、クラウドリソースをホストしているデータセンタまたはデータセンタの一部に対しクラウドのデフラグが実行されるという決定など、あらゆる好適なタイプのトリガ条件に応答して開始されてよい。少なくとも幾つかの実施形態では、分散型クラウドシステム内でのクラウドリソースの割当は、要求されたクラウドリソース量の指示を含むクラウドリソース要求情報を含むクラウドリソース割当要求を受信することと、分散型クラウドシステムの物理リソースへの分散型クラウドシステムの既存クラウドリソースのマッピングの指示を含む分散型クラウドシステムステータス情報を決定することと、分散型クラウドシステムの物理リソース間での割り当てられたクラウドリソースの移行を示すクラウドリソース移行計画を決定することと、クラウドリソース割当要求に対するリソース割当を、クラウドリソース要求情報、分散型クラウドシステムステータス情報、およびクラウドリソース移行計画に基づいて決定することとを含み得る。少なくとも幾つかの実施形態では、分散型クラウドシステム内でのクラウドリソースの割当は、クラウドシステム内のクラウドリソースの第１のセットの割当に対する要求を受信することと、クラウドリソースの第１のセットの割当に対する要求に基づいてクラウドリソースの第１のセットに対するクラウドリソース割当を決定することであって、このときクラウドリソース割当がクラウドシステムの物理リソースの第１のセットへのクラウドリソースの第１のセットのマッピングを指定する、決定することと、クラウドシステムの物理リソースの第１のセットからクラウドシステムの物理リソースの第２のセットへのクラウドシステム内のクラウドリソースの第１のセットの移行のための移行計画を決定することと、クラウドシステム内のクラウドリソースの第２のセットの割当に対する要求を受信することと、クラウドリソースの第２のセットに対するクラウドリソース割当を、クラウドリソースの第２のセットの割当に対する要求およびクラウドシステム内のクラウドリソースの第１のセットを移行するための移行計画に基づいて決定することとを含み得る。
【００６６】
図４は、本明細書に記載の機能を実行する際の使用に適したコンピュータの上位レベルブロック図を示している。
【００６７】
コンピュータ４００は、プロセッサ４０２（例えば、中央処理ユニット（ＣＰＵ）、および／または他の好適なプロセッサ）、およびメモリ４０４（例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）など）を備えている。
【００６８】
また、コンピュータ４００は、協働モジュール／プロセス４０５を備えることができる。協働プロセス４０５をメモリ４０４にロードし、プロセッサ４０２がそれを実行することにより、本明細書に論じた機能を実装することが可能である。よって、協働プロセス４０５（関連データ構造を含む）は、ＲＡＭメモリ、磁気もしくは光ドライブ、またはディスケットなど、コンピュータ可読記憶媒体に記憶されてよい。
【００６９】
また、コンピュータ４００は、１つ以上の入出力デバイス４０６（例えば、ユーザ入力デバイス（キーボード、キーパッド、マウス、など）、ユーザ出力デバイス（ディスプレイ、スピーカ、など）、入力ポート、出力ポート、受信器、送信器、１つ以上のストレージデバイス（例えば、テープドライブ、フロッピードライブ、ハードディスクドライブ、コンパクトディスクドライブ、など）など、およびそれらの多様な組み合わせ）を備えることができる。
【００７０】
図４に示すコンピュータ４００が、本明細書に記載の機能的要素および／または本明細書に記載の機能的要素の一部を実装するのに適した、一般的アーキテクチャおよび機能を提供することは理解されよう。例えば、コンピュータ４００は、ＤＤＣ１１０の要素、ＣＮ１２０の要素、ＣＤ１３０、ＣＲＭＳ１４０などのうち、１つ以上を実装するのに適した一般的アーキテクチャおよび機能を提供する。
【００７１】
本明細書に示し記載する機能は、ソフトウェア内での実装が可能であり（例えば、（１つ以上のプロセッサによる実行を介するなどして）汎用コンピュータ上で実行できるよう、１つ以上のプロセッサにソフトウェアを実装し、それによって専用コンピュータを実現する、など）、かつ／またはハードウェア内での実装も可能である（例えば、汎用コンピュータ、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、および／またはその他任意のハードウェア相当物を使用する）ということは理解されよう。
【００７２】
ソフトウェアメソッドとして本明細書で論じたステップの一部は、ハードウェア内部において、例えば、様々な方法ステップを実行するプロセッサと協働する回路として、実装することが可能であることは理解されよう。本明細書に記載の機能／要素の一部は、コンピュータプログラム製品として実装可能であり、そのときコンピュータ命令は、コンピュータによって処理されると、そのコンピュータの動作を、本明細書に記載の方法および／または技術が呼び出されるか実現されるように適合させる。本発明の方法を呼び出すための命令は、固定型または着脱可能型媒体に格納すること、放送におけるデータ流またはその他の信号担持媒体を介して送信すること、および／または命令に従って動作しているコンピューティングデバイス内のメモリに記憶することが可能である。
【００７３】
本明細書で用いられる「もしくは、または、あるいは（ｏｒ）」という語は、別段の指示（例えば、「または他の（ｏｒ  ｅｌｓｅ）」や「または替わりに（ｏｒ  ｉｎ  ｔｈｅ  ａｌｔｅｒｎａｔｉｖｅ）」などの使用）がない限り、非排他的な「ｏｒ」を表しているということは理解されよう。
【００７４】
様々な実施形態の態様は、特許請求の範囲に明記する。様々な実施形態が持つ、それらの態様およびその他の態様を、番号付けされた以下の各項に明記する：
１．クラウドシステム内のクラウドリソースを割り当てるための装置であって、
クラウドリソース要求情報を含むクラウドリソース要求を受信することであって、クラウドリソース要求情報が、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータと、クラウドリソース要求に応答した、割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータとを含む、受信することと、
クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報と、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報とを含む、クラウドリソース割当を決定することと
を行うように構成されたプロセッサ、およびプロセッサに通信可能に接続されたメモリを備える、装置。
【００７５】
２．プロセッサが、クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース割当情報を決定するように構成される、第１項に記載の装置。
【００７６】
３．プロセッサが、クラウドリソース移行パラメータおよびクラウドリソース割当パラメータに基づき、クラウドリソース移行情報を決定するように構成される、第１項に記載の装置。
【００７７】
４．クラウドリソース割当パラメータが、要求されたクラウドリソースのタイプ、要求されたクラウドリソースの量、クラウドリソースの位置、または待ち時間制約のうち、少なくとも１つを含む、第１項に記載の装置。
【００７８】
５．クラウドリソース移行パラメータが、クラウドリソースが移行することになる時間、クラウドリソースの移行元の位置、クラウドリソースの移行先の位置、またはクラウドリソースが移行可能な最大回数のうち、少なくとも１つを含む、第１項に記載の装置。
【００７９】
６．クラウドリソース割当情報が、クラウドシステムの物理リソースへのクラウドリソースのマッピングを指定する、第１項に記載の装置。
【００８０】
７．クラウドリソース移行情報が、クラウドリソースが移行することになる時間、クラウドリソースの移行元の位置、またはクラウドリソースの移行先の位置のうち、少なくとも１つを含む、第１項に記載の装置。
【００８１】
８．プロセッサが、クラウドリソース割当のクラウドリソース移行情報に基づき、クラウドリソース要求に応答して割り当てられた、割り当てられたクラウドリソースの移行を開始するように構成される、第１項に記載の装置。
【００８２】
９．プロセッサが、
クラウドリソース要求情報を含む次のクラウドリソース要求を受信することと、
クラウドリソース割当のクラウドリソース移行情報に基づき、次のクラウドリソース要求に向けて次のクラウドリソース割当を決定することと
を行うように構成される、第１項に記載の装置。
【００８３】
１０．プロセッサが、
クラウドシステムに関連付けられたクラウドシステムステータス情報に基づき、クラウドリソース割当を決定することと、
クラウドリソース割当情報を含み入れるためにクラウドシステムステータス情報を更新することと、
クラウドリソース要求情報を含む次のクラウドリソース要求を受信することと、
更新されたクラウドリソース情報のクラウドリソース移行情報および次のクラウドリソース要求のクラウドリソース要求情報に基づき、次のクラウドリソース要求に向けて次のクラウドリソース割当を決定することと
を行うように構成される、第１項に記載の装置。
【００８４】
１１．クラウドシステム内のクラウドリソースを割り当てるための方法であって、
クラウドリソース要求情報を含むクラウドリソース要求を受信することであって、クラウドリソース要求情報が、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータと、クラウドリソース要求に応答した、割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータとを含む、受信することと、
クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報と、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報とを含む、クラウドリソース割当を決定することと
を行うために、プロセッサおよびメモリを使用する、方法。
【００８５】
１２．クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース割当情報が決定される、第１１項に記載の方法。
【００８６】
１３．クラウドリソース移行パラメータおよびクラウドリソース割当パラメータに基づき、クラウドリソース移行情報が決定される、第１１項に記載の方法。
【００８７】
１４．クラウドリソース割当パラメータが、要求されたクラウドリソースのタイプ、要求されたクラウドリソースの量、クラウドリソースの位置、または待ち時間制約のうち、少なくとも１つを含む、第１１項に記載の方法。
【００８８】
１５．クラウドリソース移行パラメータが、クラウドリソースが移行することになる時間、クラウドリソースの移行元の位置、クラウドリソースの移行先の位置、またはクラウドリソースが移行可能な最大回数のうち、少なくとも１つを含む、第１１項に記載の方法。
【００８９】
１６．クラウドリソース割当情報が、クラウドシステムの物理リソースへのクラウドリソースのマッピングを指定する、第１１項に記載の方法。
【００９０】
１７．クラウドリソース移行情報が、クラウドリソースが移行することになる時間、クラウドリソースの移行元の位置、またはクラウドリソースの移行先の位置のうち、少なくとも１つを含む、第１１項に記載の方法。
【００９１】
１８．クラウドリソース割当のクラウドリソース移行情報に基づき、クラウドリソース要求に応答して割り当てられた、割り当てられたクラウドリソースの移行を開始することを更に含む、第１１項に記載の方法。
【００９２】
１９．クラウドリソース要求情報を含む次のクラウドリソース要求を受信することと、
クラウドリソース割当のクラウドリソース移行情報に基づき、次のクラウドリソース要求に向けて次のクラウドリソース割当を決定することと
を更に含む、第１１項に記載の方法。
【００９３】
２０．クラウドシステムに関連付けられたクラウドシステムステータス情報に基づき、クラウドリソース割当を決定することと、
クラウドリソース割当情報を含み入れるためにクラウドシステムステータス情報を更新することと、
クラウドリソース要求情報を含む次のクラウドリソース要求を受信することと、
更新されたクラウドリソース情報のクラウドリソース移行情報および次のクラウドリソース要求のクラウドリソース要求情報に基づき、次のクラウドリソース要求に向けて次のクラウドリソース割当を決定することと
を更に含む、第１１項に記載の方法。
【００９４】
２１．コンピュータによる実行時に、クラウドシステム内のクラウドリソースを割り当てる方法をコンピュータに実行させる命令を記憶する、コンピュータ可読記憶媒体であって、方法が、
クラウドリソース要求情報を含むクラウドリソース要求を受信することであって、クラウドリソース要求情報が、クラウドリソース要求に応答した、要求されたクラウドリソースの割当に関連付けられたクラウドリソース割当パラメータと、クラウドリソース要求に応答した、割り当てられたクラウドリソースの移行に関連付けられたクラウドリソース移行パラメータとを含む、受信することと、
クラウドリソース割当パラメータおよびクラウドリソース移行パラメータに基づき、クラウドリソース要求に応答した、クラウドシステム内のクラウドリソースの割当を指定するクラウドリソース割当情報と、クラウドリソース要求に応答した、クラウドシステム内の割り当てられたクラウドリソースの移行を指定するクラウドリソース移行情報とを含む、クラウドリソース割当を決定することと
を含む、コンピュータ可読記憶媒体。
【００９５】
本明細書に表した教示を組み込んだ様々な実施形態を、本明細書で詳らかに示し説明してきたが、当業者であれば、これらの教示を組み込んだまま、別の多種多様な実施形態を容易に案出し得ることは理解されよう。
【図１】
0006334707.tif 000013
【図２】
0006334707.tif 000014
【図３】
0006334707.tif 000015
【図４】
0006334707.tif 000016