(57)【要約】      （修正有）【課題】仮想マシンの間のネットワーク・トラフィックを監視して、仮想マシン環境におけるシステム・リソースを管理するためのコンピュータ実施の方法を提供する。【解決手段】複数の計算ノードに割り当てられる仮想マシンの間のネットワーク・トラフィックを監視し、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信を有する第１及び第２の仮想マシンを識別する方法。方法はさらに、第１及び第２の仮想マシンのうちの１つを移動させて、第１及び第２の仮想マシンが同じ計算ノードに割り当てられて第１及び第２の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることを含む。各々の計算ノードはイーサネット・リンクに結合され、ネットワーク・スイッチの管理情報データベースからデータが取得されて第１及び第２の仮想マシンの間の通信に使用されているネットワーク帯域幅の量が決定される。【選択図】図１
2012094119.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の複数の計算ノードに割り当てられた仮想マシンの間のネットワーク・トラフィックを監視することと、
前記ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第１及び第２の仮想マシンを識別することと、
前記第１及び第２の仮想マシンのうちの少なくとも１つを移動させて、前記第１及び第２の仮想マシンが同じ計算ノードに割り当てられて前記第１及び第２の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることと、
を含む、コンピュータ実施の方法。
【請求項２】
前記計算ノードは、ネットワーク・スイッチのイーサネット・リンクに結合され、
前記方法は、前記ネットワーク・スイッチの管理情報データベースからデータを取得して、前記第１及び第２の仮想マシンの間の通信に使用されている前記イーサネット・リンクを通るネットワーク帯域幅の量を決定することをさらに含む、
請求項１に記載のコンピュータ実施の方法。
【請求項３】
前記第１及び第２の仮想マシンの間の通信に起因する前記ネットワーク帯域幅の量は、前記第１及び第２の仮想マシンに割り当てられた媒体アクセス制御アドレス又はインターネット・プロトコル・アドレスによって識別される、請求項２に記載のコンピュータ実施の方法。
【請求項４】
前記第１及び第２の仮想マシンのうちの少なくとも１つを移動させることは、前記第１の仮想マシンを第１の計算ノードから、第２の仮想マシンを動作させている第２の計算ノードに移動させることを含む、請求項１に記載のコンピュータ実施の方法。
【請求項５】
前記第１及び第２の仮想マシンのうちの少なくとも１つを移動させることは、前記第１及び第２の仮想マシンの両方をある計算ノードに移動させることを含む、請求項１に記載のコンピュータ実施の方法。
【請求項６】
前記第１及び第２の仮想マシンの間の仮想マシン間通信の一定時間にわたる典型値を計算することをさらに含み、
前記第１及び第２の仮想マシンを前記識別することは、閾値を上回る仮想マシン間通信の典型値を有する第１及び第２の仮想マシンを識別することを含む、
請求項１に記載のコンピュータ実施の方法。
【請求項７】
前記計算される値は、平均値、中央値、及び標準偏差から選択される、請求項６に記載のコンピュータ実施の方法。
【請求項８】
最高レベルの仮想マシン間通信を有する仮想マシンをランク付けするステップをさらに含む。請求項１に記載のコンピュータ実施の方法。
【請求項９】
前記第２の計算ノードが前記第１の仮想マシンを動作させるのに十分な未使用リソースを有することを確認することをさらに含む、請求項４に記載のコンピュータ実施の方法。
【請求項１０】
前記未使用リソースの量を前記確認することは、前記計算ノードの重要プロダクト・データを読み出して、前記計算ノードの入力／出力容量、プロセッサ容量、及びメモリ容量を決定することを含む、請求項９に記載のコンピュータ実施の方法。
【請求項１１】
前記未使用リソースの量を前記確認することは、前記計算ノードから直接に、プロセッサ利用量及びメモリ利用量を取得することを含む、請求項９に記載のコンピュータ実施の方法。
【請求項１２】
前記第１の仮想マシンを動作させている第１の計算ノード上の未使用リソースの量、及び前記第２の仮想マシンを動作させている第２の計算ノード上の未使用リソースの量を決定することと、
前記第１及び第２の仮想マシンの、前記リソースの要求量を決定することと、
前記第１の仮想マシンを前記第２の計算ノードに移動させることと、前記第２の仮想マシンを前記第１の計算ノードに移動させることとの間で選択して、移動後のリソースの利用量が前記第１及び第２の計算ノードの間で最も均一に分配されるようにすることと、
をさらに含む、請求項１に記載のコンピュータ実施の方法。
【請求項１３】
前記未使用リソースの量を前記決定するステップは、前記計算ノードの重要プロダクト・データを読み出して、前記計算ノードの入力／出力容量、プロセッサ容量、及びメモリ容量を決定することを含む、請求項１２に記載のコンピュータ実施の方法。
【請求項１４】
前記未使用リソースの量を前記決定することは、前記計算ノードから直接に、プロセッサ利用量及びメモリ利用量を取得することを含む、請求項１２に記載のコンピュータ実施の方法。
【請求項１５】
前記ネットワーク・トラフィックの前記閾値量は前記帯域幅の閾値百分率である、請求項２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの管理に関する。より具体的には、本発明は、仮想マシン環境におけるシステム・リソースの管理に関する。
【背景技術】
【０００２】
クラウド・コンピューティング環境において、ユーザにはコンピューティング・クラウド内のどこかの仮想マシンが割り当てられる。仮想マシンは、ソフトウェアのオペレーティング・システムを提供し、例えば、入力／出力帯域幅、処理能力及びメモリ容量などの物理的リソースにアクセスしてユーザのアプリケーションをサポートする。プロビジョニング・ソフトウェアは、クラウド内の使用可能なコンピュータ・ノードの間で仮想マシンを管理し、割り当てる。各々の仮想マシンは他の仮想マシンから独立して動作するので、複数のオペレーティング・システム環境が、互いに完全に分離した状態で同じ物理的コンピュータ上に共存することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
仮想マシンの間のネットワーク・トラフィックを監視して、仮想マシン環境におけるシステム・リソースを管理するためのコンピュータ実施の方法を提供する。
【課題を解決するための手段】
【０００４】
本発明の一実施形態は、ネットワーク上の複数の計算ノードに割り当てられた仮想マシン間のネットワーク・トラフィックを監視することと、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第１及び第２の仮想マシンを識別することとを含むコンピュータ実施の方法を提供する。本方法は、第１及び第２の仮想マシンのうちの少なくとも１つを移動させて、第１及び第２の仮想マシンが同じ計算ノードに割り当てられて第１及び第２の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることをさらに含む。
【図面の簡単な説明】
【０００５】
【図１】本発明によって用いることのできる例示的なコンピュータを示す。
【図２】本発明によって用いることのできる例示的なブレード・シャーシを示す。
【図３】仮想化ラック内の複数の物理的コンピュータを用いる本開示の方法の別の実施形態を示す。
【図４】ネットワーク・スイッチから取得され、管理ノードによって保持されるネットワーク・トラフィック・データを示すテーブルである。
【図５】１つのサーバから別のサーバへの仮想マシンの移動を示すブロック図である。
【図６】本発明の方法のフローチャートである。
【発明を実施するための形態】
【０００６】
本発明の一実施形態は、ネットワーク上の複数の計算ノードに割り当てられた仮想マシン間のネットワーク・トラフィックを監視することと、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第１及び第２の仮想マシンを識別することとを含むコンピュータ実施の方法を提供する。本方法は、第１及び第２の仮想マシンのうちの少なくとも１つを移動させて、第１及び第２の仮想マシンが同じ計算ノードに割り当てられて第１及び第２の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることをさらに含む。
【０００７】
さらに別の実施形態において、計算ノードはネットワーク・スイッチのイーサネット・リンクに結合され、データがネットワーク・スイッチの管理情報データベースから取得されて、第１及び第２の仮想マシンの間の通信に使用されているイーサネット・リンクを通るネットワーク帯域幅の量が決定される。２つの仮想マシンの間の通信は、「仮想マシン間」通信、又は「ＶＭ間」通信と呼ぶことができる。複数の計算ノード上の仮想マシンを有するシステムにおいて、ＶＭ間通信はネットワーク・トラフィックを生じる。ネットワーク・スイッチはその管理情報ベース（ＭＩＢ）内にネットワーク統計データを収集する。随意にＭＩＢデータを用いて第１及び第２の仮想マシンの間の通信に起因するネットワーク帯域幅の量を識別することができ、またＭＩＢデータは第１及び第２の仮想マシンに割り当てられた媒体アクセス制御（ＭＡＣ）アドレス又はインターネット・プロトコル（ＩＰ）アドレスによって識別される。例えば、ＭＩＢデータは、２つの仮想マシンを表すＭＡＣカプレットに関連するネットワーク・トラフィックを識別することができ、又は識別するのに用いることができる。従って、送信元ＶＭのＭＡＣアドレス及び宛先ＶＭのＭＡＣアドレスの両方は２つのＶＭの間のネットワーク・トラフィックに関連して記録することができる。各ネットワーク・スイッチのＭＩＢからのデータは、各シャーシ内の管理ノードと共有することができ、及び／又は遠隔管理ノードと直接共有することができる。遠隔管理ノードがネットワーク・トラフィック・データを直接に取得するか又はシャーシ管理ノードから取得するかに関わらず、遠隔管理エンティティは全てのＶＭ間トラフィック・データにアクセスできる。随意に、最大の仮想マシン間通信を有する仮想マシンを、場合により最大から最小のＶＭ間ネットワーク・トラフィックまでランク付けて、移動させるのに適切なＶＭの識別を容易にすることができる。
【０００８】
本発明の様々な実施形態において、ＶＭ間トラフィックは、ネットワーク・トラフィックに関連するＩＰアドレスもまた識別することができるので、全体のネットワーク・レベルで又は全体のネットワークの内部で、例えばＩＰサブネット・レベルで管理することができる。ルータ（２つの異なったサブネットを接続できるデバイス）を必要としないのでＩＰサブレベルを管理する方がより容易であり得る。従って、ＭＩＢはネットワーク全体にわたる仮想マシンのＩＰアドレスを用いることができる。ネットワークが１つのサブネットのみを含む場合には、各仮想マシンに関連するＭＡＣアドレスを用いるのがより簡単となることがあり、何故ならＭＡＣアドレスはＩＳＯ層２のエンティティであるのに対してＩＰアドレスは層３のエンティティであるからである。
【０００９】
ネットワーク・トラフィックは、高レベルのＶＭ間ネットワーク・トラフィックを有する２つの仮想マシンを同じ物理的計算ノード上に配置することによって減らすことができる。従って、本方法は、第１又は第２の仮想マシンのうちの少なくとも１つを移動させることを含む。１つの選択肢において、移動は第１の仮想マシンを第１の計算ノードから、第２の仮想マシンが動作している第２の計算ノードに移動させることを含む。しかし、第１及び第２の計算ノードは追加の仮想マシンを収容するには不十分な量の未使用リソースを有する可能性がある。別の選択肢において、移動は第１及び第２の仮想マシンの両方を、第１及び第２の仮想マシンの両方を収容するのに十分な使用可能リソースを有する１つの計算ノード、例えば第３の計算ノードに移動させることを含む。
【００１０】
別の実施形態において、コンピュータ実施の方法は、第１及び第２の仮想マシンの間の、一定時間にわたる仮想マシン間通信の典型的な値を計算することをさらに含む。そのような典型値の非限定的な例としては、一定時間にわたる平均帯域幅、中央帯域幅、及び帯域幅の標準偏差が挙げられる。従って、第１及び第２の仮想マシンは、閾値を上回る仮想マシン間通信の典型値を有する仮想マシンとして識別することができる。瞬時値ではなく典型値を用いることは、ＶＭ間ネットワーク・トラフィックの短時間ピークの結果としてＶＭを移動させることを避けることになる。
【００１１】
さらに別の実施形態において、コンピュータ実施の方法は、第２の計算ノードが第１の仮想マシンを動作させるのに十分な未使用リソースを有することを確認することをさらに含む。この確認は、第２の計算ノードの重要プロダクト・データ（ＶＤＰ）を読み出して第２の計算ノードの入力／出力容量、プロセッサ容量、及びメモリ容量を決定することを含むことができる。さらに、プロセッサ利用量及びメモリ利用量を第２の計算ノードから直接取得することができる。未使用リソースの量は、サーバなどの所与の計算ノードのリソースの容量から現在の利用量を差し引くことにより計算することができる。
【００１２】
コンピュータ実施の方法のさらに別の実施形態は、第１の仮想マシンを動作させている第１の計算ノード上の未使用リソースの量及び第２の仮想マシンを動作させている第２の計算ノード上の未使用リソースの量を決定することと、第１及び第２の仮想マシンのリソース要求量を決定することと、第１の仮想マシンを第２の計算ノードに移動させることと第２の仮想マシンを第１の計算ノードに移動させることとの間の選択をして移動後のリソースの利用量が第１及び第２の計算ノードの間で最も均一に分配されるようにすることと、をさらに含む。
【００１３】
第１及び第２の仮想マシンを識別するのに用いられるネットワーク・トラフィックの閾値量は、計算ノードの帯域幅の絶対量として又はリンク帯域幅の百分率として提示することができることを認識されたい。例えば、絶対閾値量は１００Ｍｂｐｓとすることができ、また百分率閾値量はリンク帯域幅の２５％とすることができる。
【００１４】
遠隔管理ノードは、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第１及び第２の仮想マシンを識別することに関与することができる。本発明の様々な実施形態により、遠隔管理ノードはネットワーク内のネットワーク・スイッチのＭＩＢからのネットワーク統計を収集し、どの仮想マシンが最も高レベルのＶＭ間ネットワーク・トラフィックを有するかを決定することができる。遠隔管理ノードは次に第１及び第２の仮想マシンのうちの少なくとも１つの適切な移動を開始して２つの仮想マシンが同じ物理的サーバ上に存在するようにすることができる。２つの仮想マシンが単一の物理的サーバ上で同時に動作する場合、それらＶＭの間のＶＭ間通信は物理的サーバから抜け出ないのでネットワーク・トラフィックに対する寄与が減るか又は解消される。
【００１５】
本出願の文脈において、仮想マシンは、様々な量のリソース、例えば入力／出力容量、メモリ容量、及びプロセッサ容量などを要求するものとして記述することができる。しかし、仮想マシンによって使用されるリソースの量は、大部分は仮想マシンに割り当てられるソフトウェア・タスク又はプロセスの関数となる。例えば、コンピュータ支援の設計製図（ＣＡＤＤ）アプリケーション及び大きなスプレッドシート・アプリケーションは大量の計算を必要とするのでプロセッサ集約型であるが非常に小さなネットワーク帯域幅しか必要としないと考えられる。ウェブ・サーバ・アプリケーションは大量のネットワーク帯域幅を使用するが、使用可能なメモリ又はプロセッサ・リソースの小部分のみを使用することがある。それとは反対に、データベース管理を用いる財務アプリケーションは遥かに大きな処理容量及びメモリ容量を必要とし、入力／出力帯域幅の使用量は少ない。
【００１６】
さらに別に実施形態において本方法は、計算ノードのプロセッサ利用量及びメモリ利用量をその計算ノードから直接取得することをさらに含む。当業者であれば、この情報は、物理的計算ノード上で実行中の全てのプロセスから必要とされるメモリ及びＣＰＵ利用量を取得するハイパーバイザ・タスク・マネージャから得られることを認識するであろう。プロセッサ及びメモリの利用量は、現在使用中のプロセッサ及びメモリ容量の量を示し、又は逆に、現在未使用のプロセッサ及びメモリ容量の量の決定を可能にする。従って、仮想マシン選択プロセスの一部分として、又は少なくとも移動の前に、目標の計算ノードが追加の仮想マシンを実行するのに十分な未使用のプロセッサ及びメモリ容量を有することを確認することができる。
【００１７】
本方法の様々な実施形態に関連して、計算ノードの入力／出力容量、プロセッサ容量、及びメモリ容量を、その計算ノードの重要プロダクト・データを読み出すことによって決定することも可能である。入力／出力容量、プロセッサ容量、及びメモリ容量から、それぞれ、入力／出力容量利用量、プロセッサ容量利用量、及びメモリ容量利用量を差し引くことにより、これらリソースの各々の未使用量が得られる。従って、仮想マシンの入力／出力容量要求量、プロセッサ容量要求量、及びメモリ容量要求量を特定の計算ノード上のリソースの未使用量と比較して、特定の仮想マシンを特定の計算ノードに、何れのリソースも過剰割当てせずに収容することができことを確認することができる。
【００１８】
ここで図を参照すると、図１は本発明によって用いることができる例示的なコンピュータ１０２のブロック図である。コンピュータ１０２に関する、コンピュータ１０２内に示された、ハードウェア及びソフトウェアの両方を含む例示的なアーキテクチャの一部又は全ては、ソフトウェア配備（software deploying）サーバ１５０、並びに、以下で図２及び図６に示されるプロビジョニング・マネージャ／管理ノード２２２及びサーバ・ブレード２０４ａ〜２０４ｎによって用いることができることに留意されたい。本開示において説明されるブレードは、ブレード・シャーシ内のサーバ・ブレードとして例示的に説明され、示されるが、本明細書で説明されるコンピュータの一部又は全ては、独立型コンピュータ、サーバ、又は他の統合型若しくは独立型コンピューティング装置とすることができる。従って、「ブレード」、「サーバ・ブレード」、「コンピュータ」、「サーバ」、及び「計算ノード」という用語は、本説明においては区別なく用いられる。
【００１９】
コンピュータ１０２は、システム・バス１０６に結合されたプロセッサ・ユニット１０４を含む。プロセッサ・ユニット１０４には、それぞれ１つ又は複数のプロセッサ・コアを有する１つ又は複数のプロセッサを用いることができる。ビデオ・アダプタ１０８は、ディスプレイ１１０を駆動／サポートし、同じくシステム・バス１０６に結合される。一実施形態において、スイッチ１０７は、ビデオ・アダプタ１０８をシステム・バス１０６に結合される。代替的に、スイッチ１０７は、ビデオ・アダプタ１０８をディスプレイ１１０に結合することができる。いずれの実施形態においても、スイッチ１０７は、ディスプレイ１１０をシステム・バス１０６に結合し、従って、本明細書で説明されるプロセスをサポートする命令（例えば、以下に説明される仮想マシン・プロビジョニング・プログラム−ＶＭＰＰ１４８）の実行時にのみ機能できることを可能にする、好ましくは機械的なスイッチである。
【００２０】
システム・バス１０６は、バス・ブリッジ１１２を介して、入力／出力（Ｉ／Ｏ）バス１１４に結合される。Ｉ／Ｏインタフェース１１６は、Ｉ／Ｏバス１１４に結合される。Ｉ／Ｏインタフェース１１６は、キーボード１１８、マウス１２０、媒体トレイ１２２（ＣＤ−ＲＯＭドライブのような記憶装置、マルチメディア・インタフェースなどを含むことができる）、プリンタ１２４、及び（ＶＨＤＬチップ１３７が、以下に説明される方法で用いられない場合）外部ＵＳＢポート１２６を含む、様々なＩ／Ｏデバイスとの通信を可能にする。Ｉ／Ｏインタフェース１１６に接続されるポートの形式は、コンピュータ・アーキテクチャの当業者には周知の任意のものであってもよいが、好ましい実施形態においては、これらのポートの一部又は全ては、ユニバーサル・シリアル・バス（ＵＳＢ）ポートである。
【００２１】
図示したように、コンピュータ１０２は、ネットワーク・インタフェース１３０を用いて、ネットワーク１２８を介してソフトウェア配備サーバ１５０と通信することができる。ネットワーク１２８は、インターネットなどの外部ネットワーク、又はイーサネット若しくは仮想プライベート・ネットワーク（ＶＰＮ）などの内部ネットワークとすることができる。
【００２２】
ハード・ドライブ・インタフェース１３２もまた、システム・バス１０６に結合される。ハード・ドライブ・インタフェース１３２は、ハード・ドライブ１３４とのインタフェースである。好ましい実施形態において、ハード・ドライブ１３４は、同じくシステム・バス１０６に結合されたシステム・メモリ１３６と通信する。システム・メモリは、コンピュータ１０２内の最下層の揮発性メモリとして定義される。この揮発性メモリは、これらに限定されるものではないが、キャッシュ・メモリ、レジスタ及びバッファを含む付加的なより高い層の揮発性メモリ（図示せず）を含む。システム・メモリ１３６を埋めるデータは、コンピュータ１０２のオペレーティング・システム（ＯＳ）１３８及びアプリケーション・プログラム１４４を含む。
【００２３】
オペレーティング・システム１３８は、アプリケーション１４４などのリソースへのトランスペアレントなユーザ・アクセスを提供するシェル１４０を含む。一般に、シェル１４０は、インタプリタと、ユーザとオペレーティング・システムとの間のインタフェースとを提供するプログラムである。より具体的には、シェル１４０は、コマンド・ラインのユーザ・インタフェースに入力される又はファイルからのコマンドを実行する。従って、シェル１４０は、コマンド・プロセッサとも呼ばれ、一般に、オペレーティング・ソフトウェア階層の最高位にあり、コマンド・インタプリタとして機能する。シェルは、システム・プロンプトを提供し、キーボード、マウス、又は他のユーザ入力媒体により入力されたコマンドを解釈し、解釈されたコマンドを、処理のためにオペレーティング・システムの適切なより下位（例えばカーネル１４２）に送る。シェル１４０は、テキスト・ベースのライン指向ユーザ・インタフェースであるが、本発明は、グラフィカル、音声、ジェスチャなどの他のユーザ・インタフェース・モードを等しく良好にサポートすることに留意されたい。
【００２４】
図示したように、オペレーティング・システム１３８はまた、カーネル１４２も含み、これは、メモリ管理、プロセス及びタスク管理、ディスク管理、並びにマウス及びキーボード管理などの、オペレーティング・システム１３８の他の部分及びアプリケーション・プログラム１４４に必要な本質的なサービスを提供することを含む、オペレーティング・システム１３８についてのより低いレベルの機能を含む。
【００２５】
アプリケーション・プログラム１４４は、ブラウザ１４６として例示的に示される、随意的なレンダラー（renderer）を含む。ブラウザ１４６は、ワールド・ワイド・ウェブ（ＷＷＷ）クライアント（即ち、コンピュータ１０２）が、ハイパーテキスト転送プロトコル（ＨＰＰ）メッセージングを用いて、インターネットに対するネットワーク・メッセージを送受信するのを可能にし、従って、ソフトウェア配備サーバ１５０及び説明済みの他のコンピュータ・システムとの通信を可能にする、プログラム・モジュール及び命令を含む。
【００２６】
コンピュータ１０２のシステム・メモリ（並びに、ソフトウェア配備サーバ１５０のシステム・メモリ）内のアプリケーション・プログラム１４４は、仮想マシン・プロビジョニング・プログラム（ＶＭＰＰ）１４８も含む。ＶＭＰＰ１４８は、図２〜図６に示すものを含む、以下に説明されるプロセスを実施するためのコードを含む。ＶＭＰＰ１４８は、以下に説明する必要な重要プロダクト・データ（vital product data、ＶＰＤ）を提供するＶＰＤテーブル１５１と通信することができる。一実施形態において、コンピュータ１０２は、オン・デマンド・ベースでのものを含めて、ＶＭＰＰ１４８をソフトウェア配備サーバ１５０からダウンロードすることができる。さらに、本発明の一実施形態において、ソフトウェア配備サーバ１５０は、本発明と関連した機能（ＶＭＰＰ１４８の実行を含む）の全てを実行し、従って、コンピュータ１０２が、ＶＭＰＰ１４８を実行するために、それぞれの内部計算リソースを使用する必要をなくす。
【００２７】
随意的に、ＶＨＤＬ（ＶＨＳＩＣハードウェア記述言語）プログラム１３９も、システム・メモリ１３６内に格納される。ＶＨＤＬは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、及び他の類似の電子デバイスのための例示的な設計入力言語である。一実施形態においては、ＶＭＰＰ１４８からの命令の実行により、ＶＨＤＬプログラム１３９が、ＦＰＧＡ、ＡＳＩＣ等とすることができるＶＨＤＬチップ１３７を構成する。
【００２８】
本発明の別の実施形態において、ＶＭＰＰ１４８からの命令の実行により、ＶＨＤＬエミュレーション・チップ１５２をプログラムするために、ＶＨＤＬプログラム１３９が使用される。ＶＨＤＬエミュレーション・チップ１５２は、ＶＨＤＬチップ１３７について上述したのと類似のアークテクチャを組み込むことができる。ひとたびＶＭＰＰ１４８及びＶＨＤＬプログラム１３９がＶＨＤＬエミュレーション・チップ１５２をプログラムすると、ＶＨＤＬエミュレーション・チップ１５２は、ＶＭＰＰ１４８内に見出される命令の一部又は全ての１つ又は複数の実行によって、記述される一部又は全ての機能を、ハードウェアとして実施する。つまり、ＶＨＤＬエミュレーション・チップ１５２は、ＶＭＰＰ１４８内に見出されるソフトウェア命令の一部又は全てのハードウェア・エミュレーションである。一実施形態において、ＶＨＤＬエミュレーション・チップ１５２は、ひとたびＶＭＰＰ１４８及びＶＨＤＬプログラム１３９からの命令に従って焼かれると、図２〜図６に以下に説明されるプロセスを実施するのに必要な機能を実施する新しい回路に恒久的に変換される、プログラマブル読み出し専用メモリ（ＰＲＯＭ）である。
【００２９】
コンピュータ１０２内に示されるハードウェア要素は、網羅的であることを意図したものではなく、寧ろ、本発明が必要とする本質的な構成要素を強調するための典型的なものである。例えば、コンピュータ１０２は、磁気カッセット、デジタル多目的ディスク（ＤＶＤ）、及びベルヌーイ・カートリッジのような代替的な記憶装置を含むことができる。これら及び他の変形は、本発明の趣旨及び範囲内にあることが意図される。
【００３０】
図２は、リソースのプールに関する「クラウド」環境として機能する例示的なブレード・シャーシ２０２の図である。ブレード・シャーシ２０２は、シャーシ・バックボーン２０６に結合された複数のブレード２０４ａ〜２０４ｎ（ここで、ｎは整数である）を備える。各々のブレードは、１つ又は複数の仮想マシン（ＶＭ）をサポートすることができる。コンピュータ技術分野の当業者には周知であるように、ＶＭは、物理的コンピュータのソフトウェア実施（エミュレーション）である。単一の物理的コンピュータ（ブレード）は、各々が同じ又は異なる、或いは共有のオペレーティング・システムを実行する複数のＶＭをサポートすることができる。一実施形態において、各々のＶＭは、１）特定のタイプのソフトウェア・タスク（例えば、データベース管理、グラフィックス、ワード・プロセッシングなど）を、２）特定のユーザ、加入者、クライアント、グループ、又は他のエンティティのために、３）一日の特定の時間又は週の特定の日（例えば一日の又はスケジュールの許可された時間）に、実行するように具体的に調整し、予約することができる。
【００３１】
図２に示すように、ブレード２０４ａは、複数のＶＭ２０８ａ〜２０８ｎ（ここで、「ｎ」は整数である）をサポートし、ブレード２０４ｎは、さらに別の複数のＶＭ２１０ａ〜２１０ｎ（ここで、「ｎ」は整数である）をサポートする。ブレード２０４ａ〜２０４ｎは、ハイパーバイザ２１４、ゲスト・オペレーティング・システム、及びユーザ用のアプリケーション（図示せず）を供給する記憶装置２１２に結合される。記憶装置２１２からのプロビジョニング・ソフトウェアは、プロビジョニング・マネージャ／管理ノード２２２にロードされ、本明細書で説明される本発明の様々な実施形態に従って、仮想マシンをブレード間で割り当てる。コンピュータのハードウェア特性は、ＶＰＤ１５１からＶＭＰＰ１４８に伝達される（図１に従って）。ＶＭＰＰは、ネットワーク２１６を通じて、コンピュータのハードウェア特性を、ブレード・シャーシのプロビジョニング・マネージャ２２２に、管理インタフェース２２０に、次いで仮想マシン・ワークロード・エンティティ２１８に伝達することができる。
【００３２】
シャーシ・バックボーン２０６もまた、パブリック・ネットワーク（例えば、インターネット）、プライベート・ネットワーク（例えば、仮想プライベート・ネットワーク又は実際の内部ハードウェア・ネットワーク）などとすることができるネットワーク２１６に結合されることに留意されたい。ネットワーク２１６は、仮想マシン・ワークロード２１８が、ブレード・シャーシ２０２の管理インタフェース２２０と通信することを可能にする。仮想マシン・ワークロード２１８は、ブレード・シャーシ２０２内のいずれかのＶＭ上で実行されるように要求されるソフトウェア・タスクである。管理インタフェース２２０は、次に、このワークロードの要求をプロビジョニング・マネージャ／管理ノード２２２に伝達し、このノードは、要求されたソフトウェア・タスクを実行するようにブレード・シャーシ２０２内のＶＭを構成することができるハードウェア及び／又はソフトウェア論理である。実質上、仮想マシン・ワークロード２１８は、ブレード・シャーシ管理インタフェース２２０及びプロビジョニング管理ノード２２２と通信することによって、ＶＭの全体のプロビジョニングを管理する。次に、この要求は、一般的なコンピュータ・システム内のＶＭＰＰ１４８にさらに伝達される（図１を参照されたい）。ブレード・シャーシ２０２は、本開示のシステムが動作することができる例示的なコンピュータ環境であることに留意されたい。しかしながら、本開示のシステムの範囲は、ブレード・シャーシにのみ限定されるべきではない。つまり、本開示の方法及びプロセスは、本明細書に説明される何らかのタイプのワークロード管理を用いる任意のコンピュータ環境においても用いることができる。従って、「ブレード・シャーシ」、「コンピュータ・シャーシ」及び「コンピュータ環境」という用語は、複数のコンピュータ／ブレード／サーバを管理するコンピュータ・システムを説明するのに区別なく用いられる。
【００３３】
図２はまた、本発明のさらに別の実施形態による、ＩＢＭディレクタ・サーバのような随意的な遠隔管理ノード２３０も示す。遠隔管理ノード２３０は、管理インタフェース２２０を介して、ブレード・シャーシ上のシャーシ管理ノード２２２と通信するが、任意の数のブレード・シャーシ及びサーバと通信することができる。従って、グローバル・プロビジョニング・マネージャ２３２は、（ローカル）プロビジョン・マネージャ２２２と通信し、連携して本発明の方法を実施することができる。随意的なグローバル・プロビジョニング・マネージャ２３２は、主として、複数のサーバ・シャーシ又はラックを有する大きな設備において有益であり、その場合、グローバル・プロビジョニング・マネージャは、ＶＭのシャーシ間移動又は割り当てを調整することができる。
【００３４】
グローバル・プロビジョニング・マネージャは、複数シャーシ又は複数ラックの構成のＶＭを常時監視していることが好ましい。ローカル・プロビジョニング・マネージャが有能である場合、そのエンティティは、シャーシ又はラック内でＶＭを移動させる役割を担い、その情報をグローバル・プロビジョニング・マネージャに送る。グローバル・プロビジョニング・マネージャは、複数のシャーシ又はラックの間でＶＭを移動させることに関与し、さらに場合によっては、ローカル・プロビジョニング・マネージャに対して特定のＶＭを移動させるように命令する。例えば、グローバル・プロビジョニング・マネージャ２３２は、該グローバル・プロビジョニング・マネージャが複数のシャーシ又は複数のラック・システム内のシャーシ又はラックの各々の中のＶＭに関するデータを必要とすることを除いて、ローカル・プロビジョニング・マネージャ２２２と同じＶＭデータを含むテーブルを構築し、保持することができる。グローバル・プロビジョニング・マネージャ２３２及びローカル・プロビジョニング・マネージャ２２２の各々が保持するテーブルは、互いの継続的な通信により同期される。有利なことに、複数のテーブルが、プロビジョニング・マネージャのうちの１つが機能停止する場合に継続して動作するのを可能にする冗長性を与える。
【００３５】
図３は、１９インチのラック環境内の複数の物理的サーバを有する本発明の一実施形態を示す。この構成は、図３が仮想化ラック３０２を示す点を除いて、図２に示した構成２０２と類似する。ユーザ３０４は、ソフトウェア・タスクの実行の要求を管理ノード３０６（図２に示したプロビジョニング・マネージャ／管理ノード２２２に類似している）に伝達することができる。特定のサーバ３０８並びにそれが外部ネットワーク３１２及び記憶装置３１４と通信する（ゲートウェイ３１６及び仮想化ストレージ・アレイ３１８を介して）ために結合されたネットワーク・スイッチ３１０のＩ／Ｏ機能に基づいて、ユーザの要求は、適切かつ最適なコンピュータ（例えば、サーバ３０８）にアドレス指定される。仮想化ラック３０２は、例えば、複数のサーバを保持するブレード・シャーシである。各々の物理的サーバ（サーバ３０８を含む）は、入力／出力トラフィックをサポートするために、Ｉ／Ｏネットワーク・アダプタを有する。サーバ上で実行できる仮想マシンの最適数を決定するために、プロビジョニング・マネージャは、物理的サーバのネットワーク構成（Ｉ／Ｏ機能）を取り出し、この情報を調整して、ＶＭを各々のサーバに適切に設定することができなければならない。
【００３６】
図４は、ネットワーク・スイッチのＭＩＢから取得することができ、管理ノードによって保持することができるネットワーク・トラフィック・データの一実施形態を示すテーブル４００である。図示するように、第１列４０２は、通信を始める仮想マシンを列挙し、その仮想マシンを一意的なＭＡＣアドレスによって識別する。例示の目的のために、ＭＡＣアドレスは、シャーシ番号、サーバ番号及び仮想マシン番号をまとめて含むラベルで表される。例えば、ヘッダの下のテーブルの第１行においては、仮想マシンＩＤ「Ｃ１Ｓ１ＶＭ１」は、シャーシ＃１内のサーバ＃１上の仮想マシン＃１を指す。第２列４０４は、通信の宛先の仮想マシンを列挙する。従って、単一の行内で識別される２つの仮想マシンは、カプレットと呼ぶことができ、第３列４０６内に示される帯域幅は、１つの仮想マシンから別の仮想マシンへの通信に起因する仮想マシン間ネットワーク・トラフィックの量（メガビット毎秒（Ｍｂｐｓ）の単位における）である。テーブルの第１行は、Ｃ１Ｓ１ＶＭ１からＣ２Ｓ１ＶＭ１への通信のＶＭ間ネットワーク帯域幅が、平均すると５０Ｍｂｐｓであること示す。ＭＩＢはまた、カプレット間の逆方向の、例えばＣ２Ｓ１ＶＭ１からＣ１Ｓ１ＶＭ１へのＶＭ間ネットワーク・トラフィックに関する項目を含むことができる（データ入力は図示せず）。しかしながら、幾つかの仮想マシン、例えば、ＣＡＤＤプログラムを実行しているＶＭのような幾つかの仮想マシンでは、ＶＭ間ネットワーク・トラフィックは、実質的に全て一方向となり得る。本発明の実施形態は、一方向又は双方向の帯域幅に基づくことができる。サーバが、仮想マシンの移動を受け入れるのに十分な未使用リソースを有するかどうかを判断する目的のために、テーブル４００は、各々の仮想マシンのプロセッサ利用量及びメモリ利用量をさらに含むことができる。
【００３７】
仮想マシンＩＤ  Ｃ１Ｓ１ＶＭ１から生じてシャーシ２のサーバ１上の３つの異なる仮想マシン（Ｃ２Ｓ１ＶＭ１、Ｃ２Ｓ１ＶＭ２、Ｃ２Ｓ１ＶＭ３）に向けられるネットワーク・トラフィック、及び、仮想マシンＩＤ  Ｃ１Ｓ１ＶＭ５から生じてシャーシ２のサーバ１上の単一の仮想マシン（Ｃ２Ｓ１ＶＭ１）に向けられるネットワーク・トラフィックを含んだ、テーブルの一部分のみが示される。シャーシ１のサーバ１及びシャーシ２のサーバ１は、互いに通信することができ、かつ、ネットワーク・スイッチによってグローバル・プロビジョン・マネージャと通信することもできる。
【００３８】
遠隔管理ノードは、定期的に、全体のネットワーク内の各ネットワーク・スイッチのＭＩＢからデータを収集する。ネットワークの安定性を確実にするために、遠隔管理ノードは、仮想マシンの移動の決定を行う前に、一定の時間にわたってトラフィックを平均することが好ましい。閾値レベルを上回るネットワーク帯域幅を有するＶＭ−ＶＭカップレット（対）が識別されると、遠隔管理ノードは、カプレット内のいずれかのＶＭの物理的サーバが、他方のＶＭを受け入れるためのリソースを有するかどうか、又は、カプレットの両方のＶＭが同じ物理的サーバ上に存在するように両方のＶＭを異なる物理的サーバに移動させる必要があるかどうかを判断することになる。図４の実施例においては、シャーシ１のサーバ１のＶＭ５（Ｃ１Ｓ１ＶＭ５）は、十分な処理容量があるために、シャーシ２のサーバ１に移動される。（遠隔管理ノードは、ＶＭイメージを配備し、各物理的サーバの処理及びメモリ容量を既に決定している）。この実施例において単一のＶＭ（Ｃ１Ｓ１ＶＭ５）を移動させることは、ＶＭ間カプレットのプロセスが終了するまでに、平均３００Ｍｂｐｓのネットワーク帯域幅を削除すると予想される。図４のテーブル４００で表される２つのサーバのシステムはかなり小さいが、この実施例は、任意の数のシャーシ内の任意の数のサーバを有するシステム内の２つのサーバを表す。
【００３９】
テーブル４００を作成するために、プロビジョニング・マネージャは、各々のネットワーク・スイッチに対して管理情報ベース（ＭＩＢ）統計に関する要求を送る。例えば、要求は、単純ネットワーク管理プロトコル（ＳＮＭＰ）取得要求／コマンド（即ち、SNMP GET MIB Stats）の形式にすることができる。スイッチは、要求された統計、例えばSNMP PUT（即ち、SNMP PUT MIB Stats）によって応答する。MIB Statsは、プロビジョニング・マネージャが、各仮想マシンによって使用されている帯域幅を含むテーブルを作成又は埋めることを可能にする。各サーバ上の他の仮想マシンの各々に関する付加的なSNMP PUT MIB Statsを、各スイッチからプロビジョニング・マネージャに伝達することができる。
【００４０】
前述のように、ローカル又はグローバル・プロビジョニング・マネージャは、瞬間的ピークがＶＭの移動を生じることのないように、ＶＭ間ネットワーク・トラフィックを一定時間にわたって平均することが好ましい。同様に、ローカル又はグローバル・プロビジョニング・マネージャは、ＶＭが同じ物理的サーバ上にある時間の間留まることを可能にすることによって、ネットワークにわたるＶＭの絶え間のない移動を避け、ネットワークの安定性を確実にするヒステリシス・アルゴリズムを用いることが好ましい。
【００４１】
図５は、図４のテーブル４００に示される仮想マシンの１つのサーバから別のサーバへの移動を示すシステム５００のブロック図である。仮想マシンＣ１Ｓ１ＶＭ５の、シャーシ１（５０４）のサーバ１（５０２）からシャーシ２（５０８）のサーバ１（５０６）への移動が矢印（５１８）で表される。移動の結果、Ｃ１Ｓ１ＶＭ５及びＣ２Ｓ１ＶＭ１のＶＭカプレットは、同じ物理的サーバ上に存在することになり、そのＶＭカプレットに起因する平均３００ＭｂｐｓのＶＭ間ネットワーク・トラフィックが削除されることになる。
【００４２】
図６はコンピュータ実施の方法６００のフローチャートである。ステップ６０２は、ネットワーク上の複数の計算ノードに割り当てられた仮想マシンの間のネットワーク・トラフィックを監視することを含む。ステップ６０４において、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第１及び第２の仮想マシンが識別される。次にステップ６０６は、第１及び第２の仮想マシンのうちの少なくとも１つを移動させ、第１及び第２の仮想マシンが同じ計算ノードに割り当てられて第１及び第２の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることを含む。
【００４３】
別の実施例において、ＶＭ１及びＶＭ２が第１の計算ノード上にあって高レベルのＶＭ間通信（ネットワーク上ではない）を有し、ＶＭ２もまた、第２の計算ノード上のＶＭ３と高レベルのＶＭ間通信（ネットワーク上の）を有することがある。そのような状況において本発明の実施形態は、ＶＭ２を第２の計算ノードに移動させてＶＭ２−ＶＭ３通信に関するネットワーク・トラフィックを削除する必要があると判断する可能性がある。しかしながら、この実施例においてＶＭ２の第２の計算ノードへの移動は、ＶＭ１とＶＭ２はもはや同じ物理的計算ノード上に存在しなくなるので、ＶＭ１−ＶＭ２通信と関連した新たなネットワーク・トラフィックが、偶然生じることになる。しかしながら、ＶＭ間ネットワーク帯域幅の分析の次の繰り返しにより、この新たなＶＭ間帯域幅がＭＩＢ内に識別されることになる。従って、最高レベルのＶＭ間帯域幅を有するＶＭカプレットが識別され、さらなる移動が行われることになる。時間の経過及び本発明の繰り返しにより、ＶＭ１−ＶＭ２ネットワーク帯域幅が、最高レベルのネットワーク帯域幅を有するＶＭカプレットになるなど、著しい帯域幅を消費する場合には、ＶＭ１及びＶＭ２のうちの１つを移動させてＶＭ１及びＶＭ２が再び同じ計算ノード上に存在するようにする。本方法は、ＶＭが繰り返し前後に移動することを防止するヒステリシス機能を含むことが好ましい。本実施例においては、ＶＭ２の第２の計算ノードへの移動後、一定期間、ＶＭ２をさらに第１の計算ノードに戻してはならない期間を開始すべきである。結果として、ＶＭ１−ＶＭ２通信のネットワーク帯域幅を削除する必要がある場合には、本方法は、ＶＭ２を第１の計算ノードに移動させるべきではない（即ち、逆方向の移動を防ぐ）と考え、代りにＶＭ１を移動させるよう試みる。第２の計算ノードがＶＭ１を受け入れるのに不十分なリソースしか有していない場合には、ＶＭ１及びＶＭ２の両方を第３の計算ノードに移動させることができる。従って、時間の経過及び本方法の複数回の繰り返しにより、高レベルのＶＭ間通信を有する複数のＶＭが存在する場合には、これらのＶＭは、最後には、一緒に同じ物理的計算ノード上に達するはずであり、その結果、本方法はＶＭの移動に関して安定点に達する。
【００４４】
当業者であれば認識することになるように、本発明は、システム、方法、又はコンピュータ・プログラムとして具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、又は本明細書で一般的に全て「回路」、「モジュール」、又は「システム」と呼ぶことができるソフトウェア態様とハードウェア態様を組み合せた実施形態の形をとるものとすることができる。さらに、本発明は、その上に具体化されたコンピュータ使用可能プログラム・コードを有する、１つ又は複数のコンピュータ可読記憶媒体内に具体化されたコンピュータ・プログラムの形を取ることができる。
【００４５】
１つ又は複数のコンピュータ使用可能又はコンピュータ可読記憶媒体の任意の組合せを用いることができる。コンピュータ使用可能又はコンピュータ可読記憶媒体は、例えば、これらに限定されるものではないが、電子、磁気、電磁気、又は半導体装置若しくはデバイスとすることができる。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）として、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、又は磁気記憶装置が挙げられる。プログラムを、例えば紙又は他の媒体の光学走査を介して電子的に取り込み、次いで必要に応じて、コンパイルするか、解釈するか、又は適切な方法で処理し、次いでコンピュータのメモリに格納することができるのでコンピュータ使用可能又はコンピュータ可読記憶媒体は、プログラムが印刷された紙又は別の適切な媒体とすることさえ可能である。本明細書の文脈において、コンピュータ使用可能又はコンピュータ可読記憶媒体は、コンピュータによって使用されるプログラムを含む又は格納することができる任意の記憶媒体とすることができる。コンピュータ使用可能記憶媒体上に含まれるコンピュータ使用可能プログラム・コードは、ベースバンド内の、又は搬送波の一部としての、伝搬されたデータ信号により伝達することができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ等を含むがそれらに限定されないいずれかの適切な伝送媒体を用いて、１つの記憶媒体から別の記憶媒体に伝送することができる。
【００４６】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は同様なプログラミング言語のような、従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立したソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部がリモート・コンピュータ上で実行される場合もあり、又は完全にリモート・コンピュータ若しくはサーバ上で実行される場合もある。一番最後のシナリオの場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部のコンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。
【００４７】
本発明は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラムのフローチャート図及び／又はブロック図を参照して以下に説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組合せは、コンピュータ・プログラム命令によって実施することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、機械を製造するために、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施するための手段を作り出すようにさせることができる。
【００４８】
これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能なデータ処理装置を特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施する命令手段を含む製品を製造するようにさせることもできる。
【００４９】
コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置上にロードして、一連の動作ステップをコンピュータ又は他のプログラム可能装置上で実行させ、コンピュータ又は他のプログラム可能装置上で実行される命令がフローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／行為を実施するためのプロセスを提供するように、コンピュータにより実行されるプロセスを生成することもできる。
【００５０】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラムの可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能な命令を含む、モジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図面に記された順序とは異なる順序で行われることもあることにも留意されたい。例えば、連続して図示された２つのブロックが実際には実質的に同時に実行されることもあり、又はこれらのブロックは、関与する機能に応じて、ときには逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組合せは、指定された機能又は行為を実行する専用ハードウェア・ベースのシステム、又は専用ハードウェアとコンピュータ命令との組合せによって実装することができる。
【００５１】
本明細書において用いられる用語は、特定の実施形態を説明する目的のためのもの過ぎず、発明を限定することを意図するものではない。本明細書において用いられる場合、文脈から明らかにそうでないことが示されていない限り、「ａ」、「ａｎ」及び「ｔｈｅ」の単数形は、複数形も同様に含むことが意図される。「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、本明細書において用いられる場合、言明された特徴、整数、ステップ、動作、要素及び／又はコンポーネントの存在を特定するものではあるが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント及び／又はそれらの群の存在又は追加を排除するものではないこともさらに理解される。「好ましくは（ｐｒｅｆｅｒａｂｌｙ）」、「好ましい（ｐｒｅｆｅｒｒｅｄ）」、「好む（ｐｒｅｆｅｒ）」、「随意的に（ｏｐｔｉｏｎａｌｌｙ）」、「することができる（ｍａｙ）」及び類似の用語は、言及される項目、条件、又はステップが、本発明の随意的な（必須ではない）特徴であることを示すために用いられる。
【００５２】
以下の特許請求の範囲における全ての「手段又はステップと機能との組合せ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、行為及び均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料又は行為をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかである。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に好適なものとして理解することを可能にするために、選択及び記載された。
【符号の説明】
【００５３】
１０２：コンピュータ
１０４：プロセッサ・ユニット
１０６：システム・バス
１０７：スイッチ
１０８：ビデオ・アダプタ
１１０：ディスプレイ
１１２：バス・ブリッジ
１１４：Ｉ／Ｏバス
１１６：Ｉ／Ｏインタフェース
１１８：キーボード
１２０：マウス
１２２：媒体トレイ
１２４：プリンタ
１２６：外部ＵＳＢポート
１２８：ネットワーク
１３０：ネットワーク・インタフェース
１３２：ハード・ドライブ・インタフェース
１３４：ハード・ドライブ
１３６：システム・メモリ
１３７：ＶＨＤＬチップ
１３８：オペレーティング・システム（ＯＳ）
１３９：ＶＨＤＬプログラム
１４０：シェル
１４２：カーネル
１４４：アプリケーション・プログラム
１４６：ブラウザ
１４８：仮想マシン・プロビジョニング・プログラム（ＶＭＰＰ）
１５０：ソフトウェア配備サーバ
１５１：重要プロダクト・データ（ＶＰＤ）テーブル
１５２：ＶＨＤＬエミュレーション・チップ
２０２：ブレード・シャーシ
２０４ａ〜２０４ｎ：サーバ・ブレード
２０６：シャーシ・バックボーン
２０８ａ〜２０８ｎ：仮想マシン（ＶＭ）
２１２：記憶装置
２１４：ハイパーバイザ
２１６：ネットワーク
２１８：仮想マシン・ワークロード・エンティティ
２２０：管理インタフェース
２２２：プロビジョニング・マネージャ／管理ノード（ローカル・プロビジョニング・マネージャ）
２３０：遠隔管理ノード
２３２：グローバル・プロビジョニング・マネージャ
３０２：仮想化ラック
３０４：ユーザ
３０６：管理ノード
３０８：サーバ
３１０：ネットワーク・スイッチ
３１２：外部ネットワーク
３１４：記憶装置
３１６：ゲートウェイ
３１８：仮想化ストレージ・アレイ
４００：テーブル
４０２：第１列
４０４：第２列
４０６：第３列
５００：システム
５０２：シャーシ１のサーバ１
５０４：シャーシ１
５０６：シャーシ２のサーバ１
５０８：シャーシ２
５１８：矢印
６００：方法
６０２、６０４、６０６：ステップ
【図１】
2012094119.tif 000003
【図２】
2012094119.tif 000004
【図３】
2012094119.tif 000005
【図４】
2012094119.tif 000006
【図５】
2012094119.tif 000007
【図６】
2012094119.tif 000008