本明細書における特許請求の範囲および開示は、サーバ・クラウド中のサーバのためのキャパシティ・オン・デマンドを管理するクラウド・キャパシティ・オン・デマンド・マネージャを提供する。クラウド・キャパシティ・オン・デマンド・マネージャは、1つまたは複数のサーバからキャパシティを借りることができ、あるサーバから借りたキャパシティをサーバ・クラウド中の異なるサーバに貸すことができる。サーバ・クラウドがもはや完全な状態でないとき、サーバ・クラウド中にもはやないサーバから借りたキャパシティはディセーブルにされ、サーバ・クラウド中にもはやないサーバは、サーバ・クラウドに貸したキャパシティを回収する。
図1を参照すると、コンピュータ・システム100は、クラウド・キャパシティ・オン・デマンド・マネージャを備えるサーバ・コンピュータ・システムの適切な一実装形態である。サーバ・コンピュータ・システム100は、IBM eServer System xコンピュータ・システムである。しかし、コンピュータ・システムが複雑なマルチユーザ・コンピューティング装置であろうとシングルユーザ・ワークステーションであろうと組込み制御システムであろうと、本明細書の開示がどんなコンピュータ・システムにも等しく適用されることは、当業者なら理解するであろう。図1に示すように、コンピュータ・システム100は、1つまたは複数のプロセッサ110、メイン・メモリ120、大容量記憶インタフェース130、表示インタフェース140、およびネットワーク・インタフェース150を備える。これらのシステム・コンポーネントは、システム・バス160の使用によって相互接続される。大容量記憶インタフェース130は、ローカル大容量記憶デバイス155などの大容量記憶デバイスをコンピュータ・システム100に接続するのに使用される。ある特定のタイプのローカル大容量記憶デバイス155は、読取可能かつ書込可能なCD−RWドライブであり、これは、CD−RW195に対してデータの記憶および読取りを行うことができる。
メイン・メモリ120は、データ121、オペレーティング・システム122、クラウド処理メカニズム123、クラウド・キャパシティ・オン・デマンド・マネージャ124、インストールされたリソース125、永続リソース126、クラウド永続リソース127、借りたリソース128、および貸したリソース129を含むことが好ましい。データ121は、コンピュータ・システム100中の任意のプログラムへの入力または任意のプログラムからの出力としての働きをする、任意のデータを表す。オペレーティング・システム122は、マルチタスキング・オペレーティング・システムである。クラウド処理メカニズム123は、サーバ100とサーバ・クラウド中の他のサーバとの間の協働をサポートするソフトウェアである。クラウド・キャパシティ・オン・デマンド・マネージャ124は、サーバ・クラウド中のサーバのためのキャパシティ・オン・デマンドを管理し、あるサーバからキャパシティを借りてこのキャパシティを異なるサーバに貸すことができる。インストールされたリソース125は、使用されるようにイネーブルにされているか否かにかかわらず、サーバ100にインストールされたリソースを含む。永続リソース126は、サーバ100上で永続的にイネーブルにされるリソースを含む。クラウド永続キャパシティ127は、サーバ100がメンバとして属するサーバ・クラウド中の任意のサーバに対して永続的にイネーブルにされるリソースのキャパシティを含む。借りたキャパシティ128は、サーバ100がサーバ・クラウド中の他のサーバから借りたリソースのキャパシティを含む。貸したキャパシティ129は、サーバ100がサーバ・クラウド中の他のサーバに貸したリソースのキャパシティを含む。サーバ・クラウド中の他のサーバからキャパシティを借りることによって、クラウド・キャパシティ・オン・デマンド・マネージャ124は、サーバ・クラウド中の追加のリソースを用いて動作するためのより大きなフレキシビリティおよびより低いコストを提供する。
コンピュータ・システム100は、周知の仮想アドレッシング・メカニズムを利用する。この仮想アドレッシング・メカニズムにより、コンピュータ・システム100のプログラムは、複数のより小さい記憶エンティティ(メイン・メモリ120およびローカル大容量記憶デバイス155など)へのアクセスではなく、大きい連続したアドレス空間へのアクセスのみを有するかのように挙動することができる。したがって、データ121、オペレーティング・システム122、クラウド処理メカニズム123、クラウド・キャパシティ・オン・デマンド・マネージャ124、インストールされたリソース125、永続リソース126、クラウド永続キャパシティ127、借りたキャパシティ128、および貸したキャパシティ129は、メイン・メモリ120中にあるように示されているが、これらのアイテムは必ずしも全てが完全にメイン・メモリ120中に同時に含まれるとは限らないことは、当業者なら認識するであろう。また、「メモリ」という用語は、本明細書ではコンピュータ・システム100の仮想メモリ全体を指すのに総称的に使用され、コンピュータ・システム100に結合された他のコンピュータ・システムの仮想メモリを含む場合があることにも留意されたい。
プロセッサ110は、1つまたは複数のマイクロプロセッサまたは集積回路あるいはその両方から構築されたものとすることができる。プロセッサ110は、メイン・メモリ120に記憶されたプログラム命令を実行する。メイン・メモリ120は、プロセッサ110がアクセスできるプログラムおよびデータを記憶する。コンピュータ・システム100が起動したとき、プロセッサ110は最初に、オペレーティング・システム122を構成するプログラム命令を実行する。プロセッサ110はまた、クラウド・キャパシティ・オン・デマンド・マネージャ124を実行する。
コンピュータ・システム100は単一のプロセッサおよび単一のシステム・バスのみを備えるように示されているが、複数のプロセッサまたは複数のバスあるいはその両方を有するコンピュータ・システムを使用してクラウド・キャパシティ・オン・デマンド・マネージャを実践できることは、当業者なら理解するであろう。加えて、使用されるインタフェースはそれぞれ、計算集約型の処理をプロセッサ110からオフロードするのに使用される完全にプログラムされた別々のマイクロプロセッサを備えることが好ましい。しかし、I/Oアダプタを使用してこれらの機能を実施することもできることは、当業者なら理解するであろう。
表示インタフェース140は、1つまたは複数の表示装置165をコンピュータ・システム100に直接に接続するのに使用される。これらの表示装置165は、ノンインテリジェント(すなわちダム)端末である場合と、完全にプログラム可能なワークステーションである場合とがあるが、これらの表示装置165を使用して、コンピュータ・システム100と交信する能力がシステム管理者およびユーザにもたらされる。しかし、1つまたは複数の表示装置165との交信をサポートするために表示インタフェース140が設けられているが、ユーザおよび他のプロセスとの必要な全ての対話はネットワーク・インタフェース150を介して行うこともできるので、コンピュータ・システム100は必ずしも表示装置165を必要とするとは限らないことに留意されたい。
ネットワーク・インタフェース150は、ネットワーク170を介してコンピュータ・システム100を他のコンピュータ・システムまたはワークステーション175に接続するのに使用される。ネットワーク・インタフェース150は、ネットワーク170が今日のアナログ技法もしくはディジタル技法またはその両方を含むか、あるいは将来の何らかのネットワーキング・メカニズムを介するかにかかわらず、電子デバイスを相互接続するための任意の適切な方法を広く表す。ネットワーク・インタフェース150は、ネットワーク170上の通信を可能にするハードウェアとソフトウェアの組合せを含むことが好ましい。ネットワーク・インタフェース150中のソフトウェアは、適切なネットワーク・プロトコルを使用した他のコンピュータ・システム175とのネットワーク170経由の通信を管理する通信マネージャを含むことが好ましい。多くの異なるネットワーク・プロトコルを使用してネットワークを実現することができる。これらのプロトコルは、コンピュータがネットワークを介して通信するのを可能にする特殊化されたコンピュータ・プログラムである。TCP/IP(伝送制御プロトコル/インターネット・プロトコル)は、ネットワーク・インタフェース150内で通信マネージャによって使用できる適切なネットワーク・プロトコルの一例である。
当業者には理解されるであろうが、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または、ソフトウェアとハードウェアの態様を組み合わせた実施形態の形をとることができ、本明細書ではこれらを全て「回路」、「モジュール」、「プロセス」、または「システム」と一般に呼ぶ場合がある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み入れられた1つまたは複数のコンピュータ可読媒体において具体化されるコンピュータ・プログラム製品の形をとることもできる。
1つまたは複数のコンピュータ可読媒体の、任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁、赤外線、もしくは半導体の、システム、装置、またはデバイス、あるいはこれらの適切な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、1つもしくは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラム可能な読取専用メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読取専用メモリ(CD−ROM)、光学記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組合せを含むことになる。この文書のコンテキストでは、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによって使用されるかまたはそれらに関連して使用されるプログラムを、収録あるいは記憶することのできる、任意の有形媒体とすることができる。
コンピュータ可読信号媒体は、例えばベースバンド中にまたは搬送波の一部として、コンピュータ可読プログラム・コードが組み入れられた伝搬データ信号を含むことができる。このような伝搬信号は、電磁、光学、またはこれらの任意の適切な組合せを含めた(ただしこれらに限定されない)様々な形のうちのいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でない任意のコンピュータ可読媒体であって、命令実行システム、装置、もしくはデバイスによって使用されるかまたはそれらに関連して使用されるプログラムを、通信するか伝搬するかあるいは搬送できる、任意のコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に組み入れられたプログラム・コードは、ワイヤレス、有線、光ファイバ・ケーブル、RFなど、またはこれらの任意の適切な組合せを含めた(ただしこれらに限定されない)、任意の適切な媒体を使用して伝送することができる。
本発明の態様に関する動作を実施するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語、Streams処理言語、または同様のプログラミング言語などの従来の手続き型プログラミング言語を含めた、1つまたは複数のプログラミング言語の任意の組合せで書かれてよい。プログラム・コードは、スタンドアロンのソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されるか部分的にユーザのコンピュータ上で実行されるか、一部はユーザのコンピュータ上で実行され一部はリモート・コンピュータ上で実行されるか、または完全にリモート・コンピュータもしくはサーバ上で実行されてよい。最後のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、または、接続は、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)行われてもよい。
本発明の態様を、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート説明またはブロック図あるいはその両方に関して本明細書に述べる。フローチャート説明またはブロック図あるいはその両方の各ブロック、ならびに、フローチャート説明またはブロック図あるいはその両方の中のブロックの組合せを、コンピュータ・プログラム命令によって実現できることは理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供して、マシンを生み出すことができ、したがって、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令は、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロック中で指定される機能/行為を実現する手段をもたらす。
これらのコンピュータ・プログラム命令はまた、コンピュータ可読媒体に記憶されてよく、このコンピュータ可読媒体は、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに、特定の方式で機能するよう指示することができ、したがって、コンピュータ可読媒体に記憶された命令は、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロック中で指定される機能/行為を実現する命令を含む製造品を生み出す。
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされてよく、それにより、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップが実施されて、コンピュータ実装プロセスが生み出され、したがって、コンピュータまたは他のプログラム可能装置上で実行される命令は、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロック中で指定される機能/行為を実現するためのプロセスを提供する。
本明細書に開示する方法は、ウェブベースのサービスを提供することの一部として実施することができる。このようなサービスは、例えば、この方法を支払いと引き換えにオンライン・ユーザに提供することを含んでよい。
図2を参照すると、サーバ・クラウド中のサーバの実例的な従来技術構成が、サーバ・クラウド・システム200として示されている。サーバ・クラウド・システム200は、4つのサーバ210A〜210Dを含み、これらのサーバは全て、サーバ・クラウド230中で何らかのネットワーキング・メカニズムを介して相互接続される。各サーバは、インストールされたプロセッサおよび永続プロセッサを備える。インストールされたプロセッサは、サーバに物理的にインストールされたプロセッサの数を指定し、永続プロセッサの数は、サーバ上で永続的にイネーブルにされるプロセッサの数を指定する。図2の特定の例では、各サーバは、225A〜225Dおよび226A〜226Dに示すように、8つのインストールされたプロセッサおよび2つの永続プロセッサを備える。従来技術のサーバ・クラウド・システム200中では、各サーバは、それ自体のキャパシティ・オン・デマンド・マネージャ232A〜232Dを備え、これらのキャパシティ・オン・デマンド・マネージャは、キャパシティ・オン・デマンドを提供するための既知の方法によって、各サーバのキャパシティを増大させることができる。しかし、サーバごとのキャパシティ・オン・デマンド・マネージャは、サーバ・クラウド230中の他のサーバ上のキャパシティから独立して扱われる。したがって、各キャパシティ・オン・デマンド・マネージャ232A〜232Dの機能は、サーバがサーバ・クラウド230の一部であるときと、サーバがサーバ・クラウド230の一部でないときとで違いがない。
図3に、従来技術のサーバ・クラウド・システム200にいくつかの点で類似するサーバ・クラウド・システム300を示す。サーバ・クラウド・システム300は、サーバ・クラウド330中で何らかのネットワーキング・メカニズムを介して相互接続される4つのサーバ310A〜310Dを含む。サーバ310A〜310Dはそれぞれ、図1に示すサーバ・コンピュータ・システム100とすることができる。各サーバは、8つのインストールされたプロセッサ325A〜325D、および2つの永続プロセッサ326A〜326Dを備える。しかし、サーバ310Aは追加で、クラウド・キャパシティ・オン・デマンド・マネージャ124も備え、これは、サーバ・クラウド中のサーバのためのキャパシティ・オン・デマンドを管理し、必要時に、あるサーバから、別のサーバに貸されるキャパシティを借りることができる。各サーバ310A〜310Dは、キャパシティを借りることとキャパシティを貸すことの両方ができるので、各サーバは、借りたプロセッサ328A〜328D、および貸したプロセッサ329A〜329Dを追跡する。328A〜328Dは、図3では「借りたプロセッサ」として示されているが、実際には、借りた、プロセッサのキャパシティである。同様に、329A〜329Dは、図3では「貸したプロセッサ」として示されているが、実際には、貸した、プロセッサのキャパシティである。図3に示す構成では、各サーバが、その2つの永続プロセッサによってそれ自体の処理負荷を扱うことができると仮定する。
次に図4に移るが、この例では、サーバ310Dが処理負荷の増大のせいで追加のプロセッサ・キャパシティを必要とすると仮定し、さらに、サーバ310Dが、既にイネーブルにされている2つの永続プロセッサ326Dに加えて、3つの追加プロセッサのキャパシティを必要とすると仮定する。従来技術では、サーバ310D上のキャパシティ・オン・デマンド・マネージャが、インストールされたプロセッサのうちのさらに3つをイネーブルにすることができ、その結果、サーバ310Dには合計5つの永続プロセッサがあることになる。しかし、クラウド・キャパシティ・オン・デマンド・マネージャ124は、サーバ・クラウド中の1つまたは複数のサーバから一時的に借りてサーバ310Dに貸すことのできる未使用キャパシティがサーバ・クラウド中にある可能性があると認識する。図4の特定の例では、サーバ310A、310B、および310Cの各々が、各サーバ上の2つの永続プロセッサのうちの一方を使用してそれらの作業負荷を処理できると仮定する。このことは、各サーバが、追加のキャパシティを必要とするサーバ310Dに貸せる1つのプロセッサのキャパシティを有することを意味する。したがって、クラウド・キャパシティ・オン・デマンド・マネージャ124は、図4の326A〜326Cに示すように、永続プロセッサの数を2から1に減少させ、図4の329A〜329Cに示すように、貸したプロセッサの数を0から1に増加させる。次いで、クラウド・キャパシティ・オン・デマンド・マネージャは、図4の3つの借りたプロセッサ328Dを提供する矢印付き点線によって示すように、これらの貸したプロセッサ329A〜329Cのキャパシティをサーバ310Dに貸すことができる。図4で貸されるものおよび借りられるものは、プロセッサ・キャパシティであることに留意されたい。したがって、図3に示すサーバ・クラウド・システム300中でイネーブルにされるプロセッサの総数は、4つの各サーバ上の2つの永続プロセッサ326A〜326Bであり、合計8つのプロセッサがイネーブルにされる。図3に示すサーバ・クラウド・システム300中でイネーブルにされるプロセッサの総数は依然として8つであり、これらは、3つのサーバの各々からの1つの永続プロセッサ326A〜326Cと、サーバ310D上の2つの永続プロセッサ326Dと、サーバ310D上の3つの借りたプロセッサ328Dである。クラウド・キャパシティ・オン・デマンド・マネージャが、あるサーバからキャパシティを借りてこのキャパシティをサーバ・クラウド中の異なるサーバに貸すことができることにより、顧客が特定のサーバのために追加のキャパシティを購入するのではなくサーバ上の未使用キャパシティを利用するのを可能にすることになる極めてフレキシブルなシステムがもたらされる。この結果、サーバ・クラウド中の総キャパシティをより効率的に、よりコスト効果のある方式で使用するシステムとなる。
図5を参照すると、方法500は、サーバ・クラウドが確立されるときに開始する(ステップ510)。サーバ・クラウドが完全な状態であり(ステップ520=はい)、サーバ・クラウド中のサーバが追加のキャパシティを必要とし(ステップ530=はい)、サーバ・クラウド中の1つまたは複数の他のサーバが貸すためのキャパシティを有するとき(ステップ540=はい)は、1つまたは複数の他のサーバはキャパシティを貸し(ステップ550)、サーバは借りたキャパシティを使用する(ステップ560)。サーバ・クラウド中のどのサーバも追加キャパシティを必要としないとき(ステップ530=いいえ)は、方法500はステップ520にループバックして継続する。同様に、他のどのサーバも貸すためのキャパシティを有さないとき(ステップ540=いいえ)は、方法500はステップ520にループバックして継続する。方法500は、サーバ・クラウドがもはや完全な状態でなくなるまで(ステップ520=いいえ)継続することができ、サーバ・クラウドが完全な状態でなくなった時点で、借りたキャパシティはディセーブルにされ(ステップ570)、貸したキャパシティは回収される(ステップ580)。ステップ570および580は、2つの異なる方式で機能する場合があることに留意されたい。第1の実装形態では、あるサーバがもはやサーバ・クラウドのメンバでないせいでサーバ・クラウドがもはや完全な状態でないとき(ステップ520=いいえ)は、サーバ・クラウド中の全てのサーバ上の借りたキャパシティはステップ570でディセーブルにされ、サーバ・クラウド中の全てのサーバ上の貸したキャパシティは回収される。第2の実装形態では、あるサーバ(紛失サーバ)がもはやサーバ・クラウドのメンバでないせいでサーバ・クラウドがもはや完全な状態でないとき(ステップ520=いいえ)は、紛失サーバからキャパシティを借りてまだサーバ・クラウド中にあるサーバがあればそのサーバ中で、紛失サーバに対する借りたキャパシティはステップ570でディセーブルにされる。紛失サーバは、それ自体がもはやサーバ・クラウドのメンバでないことを検出すると、ステップ580で、貸したキャパシティを回収する。第1の実装形態は、オール・オア・ナッシング手法であり、サーバ・クラウド中のいずれかのサーバが失われると、全ての借りたキャパシティはディセーブルにされ、全ての貸したキャパシティは回収される。第2の実装形態では、選択的に、紛失サーバから借りたキャパシティがディセーブルにされ、紛失サーバ上の貸したキャパシティが回収されるが、サーバ・クラウド中の残りのサーバは、紛失サーバが失われたことによって影響を受けない借りたキャパシティおよび貸したキャパシティを使用して機能することができる。
ステップ520で、サーバ・クラウドが完全な状態であるかどうかの判定は、任意の適切な方式で行うことができる。例えば、特定の一実装形態では、サーバ・クラウド中のサーバ間でトークンが回されて、サーバ・クラウドが維持される。あるサーバがそのトークンを定義済み期間内に送らなかった場合は、このサーバはもはや正しく機能していないと見なされ、このことは、サーバ・クラウドがもはや完全な状態でないことを意味する。代替の一実装形態では、クラウド・キャパシティ・オン・デマンド・マネージャは、サーバ・クラウドのメンバのログをとることができ、サーバ・クラウド中の各サーバに定期的に問い合わせることができる。各サーバが適切な応答によって応答した場合、クラウド・キャパシティ・オン・デマンド・マネージャは、サーバ・クラウドがまだ完全な状態であることを知る。サーバのうちの1つが応答しなかった場合は、クラウド・キャパシティ・オン・デマンド・マネージャは、応答しなかったサーバが正しく機能していないこと、したがってもはやサーバ・クラウド中にないことを知る。次いで、クラウド・キャパシティ・オン・デマンド・マネージャは、上に論じた措置を講じて、借りたキャパシティをディセーブルにし、貸したキャパシティを回収することができる。本明細書における開示および特許請求の範囲は、現在知られている方法であろうと将来開発される方法であろうと、サーバ・クラウドが完全な状態であるかどうか判定するための任意の適切な方法に及ぶ。
クラウド・キャパシティ・オン・デマンド・マネージャ124は、サーバ・クラウド中のサーバにまたがってキャパシティを管理することができるので、このことは、図6に示す新しい概念を引き起こす。サーバ・クラウド・システム600は、4つのサーバ610A〜610Dを含み、これらのサーバは、同じインストールされたプロセッサ325A〜325D、永続プロセッサ326A〜326D、借りたプロセッサ328A〜328D、および貸したプロセッサ329A〜329Dを有する。サーバ610A〜610Dはそれぞれ、図1に示すサーバ・コンピュータ・システム100とすることができる。加えて、「クラウド永続プロセッサ」と本明細書で呼ぶ新しい概念が導入され、それにより、永続的にイネーブルにされサーバ・クラウド中のどのサーバによっても使用できる、サーバ上のキャパシティが表される。図6の特定の例では、各サーバ610A〜610Dは、2つのクラウド永続プロセッサ627A〜627Dを備える。これらのクラウド永続プロセッサについてのこれらのキャパシティは、クラウド永続プロセッサが存在するサーバを含めた、サーバ・クラウド630中のどのサーバによっても使用することができる。
図7を参照するが、キャパシティの貸し借りを促した図4の条件と同じ条件、すなわち、サーバ610Dがさらに3つのプロセッサ分の3つのキャパシティを必要とするという条件を仮定する。サーバ610Dは、2つのクラウド永続プロセッサ627Dを使用することができ、図7の矢印付き点線で示すように、第3の必要なプロセッサをサーバ610Cから借りることができる。サーバ610C上の1つの貸したプロセッサ329Cは、クラウド永続プロセッサ627Cの数を2から1に減少させることに留意されたい。クラウド永続プロセッサと呼ばれるこの新しい特徴を定義することによって、クラウド・キャパシティ・オン・デマンド・マネージャは、サーバ・クラウド中のサーバ間でどのリソースが借りられるかまたは貸されるかに関して、より大きなフレキシビリティを有することができる。例えば、クラウド・キャパシティ・オン・デマンド・マネージャ124は、最初に、全てのクラウド永続プロセッサを借りることができる。というのは、これらは、サーバ上のいずれかの永続プロセッサを借りる前にクラウド処理のために確保されるからである。代替方式では、クラウド永続プロセッサは、サーバ・クラウド中のサーバ間で共有することが許可される唯一のキャパシティとすることができる。永続プロセッサとは別に定義されたクラウド永続プロセッサのキャパシティを有することによって、クラウド・キャパシティ・オン・デマンド・マネージャ124は、サーバ・クラウド全体にわたるキャパシティの貸し借りにおいてより大きなフレキシビリティを有する。
図3、4、6、および7では、クラウド・キャパシティ・オン・デマンド・マネージャ124は、サーバ・クラウド中の1つのサーバ上にあるように示されている。代替の一実装形態では、クラウド・キャパシティ・オン・デマンド・マネージャ124は、図8に示すように、サーバ・クラウド中の別個のエンティティ上にあってもよい。サーバ・クラウド・システム800では、4つのサーバ810A、610B、610C、および610Dが、サーバ・クラウド830中で相互接続される。サーバ・クラウド830中ではハードウェア管理コンソール820も接続され、ハードウェア管理コンソール820は、クラウド・キャパシティ・オン・デマンド・マネージャ124を備える。ハードウェア管理コンソール820は、サーバ・クラウド中のサーバを構成するのを可能にし、サーバ・クラウド中のサーバ中のリソースおよびキャパシティを管理するためのユーザ・インタフェースを提供する。ハードウェア管理コンソール820はまた、サーバ・クラウド中のサーバを監視することができ、サーバ・クラウドがもはや完全な状態でないときを検出することができる。このように、ハードウェア管理コンソール820は、サーバの関係をサーバ自体に管理させるのではなく、サーバ外の独立した制御ポイントを提供し、これにより、サーバがサーバ・クラウドを去るときがより容易になる。例えば、図7で、サーバ610Aが動作不良を起こして応答しなくなった場合、クラウド・キャパシティ・オン・デマンド・マネージャ124は、もはやその仕事を行うことができない。図8に示すようにクラウド・キャパシティ・オン・デマンド・マネージャ124を別個のハードウェア管理コンソール820中に配置することによって、クラウド・キャパシティ・オン・デマンド・マネージャ124は、どのサーバがサーバ・クラウドを去るかにかかわらず機能し続けることができる。
図9を参照すると、クラウド・キャパシティ・オン・デマンド・マネージャ124は、クラウド・メンバシップ910、すなわちどのサーバがサーバ・クラウドのメンバであるかを追跡し、借りたキャパシティ920および貸したキャパシティ930を追跡する。クラウド・キャパシティ・オン・デマンド・マネージャ124はまた、キャパシティ照会メカニズム940を備え、このキャパシティ照会メカニズム940は、サーバ・クラウド中の各サーバに照会して、サーバが貸すためのキャパシティを有するかどうか判定することができる(図5のステップ540参照)。借りたキャパシティ920および貸したキャパシティ930は、任意の適切な方式で追跡することができる。例えば、図10に示すクラウド・リソース・テーブル1010は、借りたキャパシティ920および貸したキャパシティ930の状況を常に把握するための適切な方法の1つを表す。エントリ1020は、P3のキャパシティID、プロセッサのリソース・タイプ、および、サーバAがこのキャパシティの所有元でありこのキャパシティがまだ貸し出されていないことを示す。エントリ1030は、P14のキャパシティID、プロセッサのリソース・タイプ、および、サーバCがこのキャパシティの所有元でありこのキャパシティがサーバDに貸されたことを示す。借りたキャパシティおよび貸したキャパシティの状況を常に把握することによって、クラウド・キャパシティ・オン・デマンド・マネージャ124は、サーバ・クラウドがもはや完全な状態でないときに、借りたキャパシティをディセーブルにすることができる(図7のステップ570参照)。各サーバは、サーバがもはやサーバ・クラウド中にないときを検出できるメカニズムを備えることが好ましく、それに応答して、クラウド中の他のサーバに既に貸し出したキャパシティがあればそれを回収することになることに留意されたい(図8のステップ580参照)。
上記の例ではプロセッサについて論じているが、プロセッサは、サーバ・クラウド内で貸し借りできるキャパシティを有するリソースの適切な一例を表す。本明細書における開示および特許請求の範囲は、サーバ中の任意の適切なリソース、およびサーバ・クラウド中の任意の適切なリソースに明白に及び、限定ではないがこれらのリソースは、プロセッサ、メモリ、入出力(I/O)スロット、ネットワーク・アダプタなどを含む。また、クラウド・キャパシティ・オン・デマンド・マネージャによって貸し借りされているものは、リソース自体ではなく、リソースのキャパシティであることにも留意されたい。したがって、サーバ310Dが2つの永続プロセッサ326Dおよび3つの借りたプロセッサ328Dを有するとき、このことは、サーバ310D中の8つのインストールされたプロセッサ325Dのうちの5つを使用できることを意味する。「借りたプロセッサ」328Dは、他のサーバから借りた、プロセッサのキャパシティを表す。サーバ上の永続プロセッサと借りたプロセッサの合計は、インストールされたプロセッサの総数を超えることはできないことに留意されたい。
本開示および特許請求の範囲は、サーバ・クラウド中のサーバのためのキャパシティ・オン・デマンドを管理するクラウド・キャパシティ・オン・デマンド・マネージャに関する。クラウド・キャパシティ・オン・デマンド・マネージャは、1つまたは複数のサーバからキャパシティを借りることができ、あるサーバから借りたキャパシティをサーバ・クラウド中の異なるサーバに貸すことができる。サーバ・クラウドがもはや完全な状態でないとき、サーバ・クラウド中にもはやないサーバから借りたキャパシティはディセーブルにされ、サーバ・クラウド中にもはやないサーバは、サーバ・クラウドに貸したキャパシティを回収する。
請求項の範囲内で多くの変形が可能であることは、当業者なら理解するであろう。したがって、本開示について特に図示および上述しているが、請求項の主旨および範囲を逸脱することなく、形式および詳細におけるこれらおよび他の変更を本開示に加えることができることは、当業者には理解されるであろう。