(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合されたメモリと、
前記メモリ内に常駐し、前記少なくとも１つのプロセッサによって実行されるクラウド・マネージャと、
を備えた装置であって、前記クラウド・マネージャは、
仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数を判定し、前記複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数をさらに判定するホスト監視機構と、
仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取るホスト選択機構であって、前記ＶＭ要求を満たすハードウェア・スレッド数をサポートする数のＣＰＵを含む、前記複数のホストコンピュータ・システムのうちの１つを選択する、ホスト選択機構と、
を備える、装置。
【請求項２】
前記ハードウェア・マルチスレッディング・パラメータを用いて複数の仮想ＣＰＵ（ｖＣＰＵ）を前記選択されたホストコンピュータ・システム上に配置する仮想ＣＰＵ（ｖＣＰＵ）配置機構をさらに備える、請求項１に記載の装置。
【請求項３】
前記ホスト監視機構は、前記複数のホストコンピュータ・システム上の各ＣＰＵに対してスプリットコアがイネーブルにされているかどうかをさらに判定し、ここで前記ホスト選択機構は、前記ＶＭ要求を満たすハードウェア・スレッド数をサポートする数のＣＰＵに加えて、前記ＶＭ要求内の仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを満たすスプリットコア設定を含む、前記複数のホストコンピュータ・システムの１つを選択する、請求項１に記載の装置。
【請求項４】
前記ハードウェア・マルチスレッディング・パラメータ及び前記選択されたホストコンピュータ・システム上の前記スプリットコア設定を用いて複数の仮想ＣＰＵ（ｖＣＰＵ）を前記選択されたホストコンピュータ・システム上に配置する仮想ＣＰＵ（ｖＣＰＵ）配置機構をさらに備えた、請求項３に記載の装置。
【請求項５】
前記ハードウェア・マルチスレッディング・パラメータの第１の値が、ハードウェア・マルチスレッディングがオフになっていることを示している場合、前記ｖＣＰＵ配置機構は、前記ＶＭ内の各ｖＣＰＵを前記選択されたホストコンピュータ・システム内の異なる物理コア上に配置する、請求項２又は請求項３に記載の装置。
【請求項６】
前記ハードウェア・マルチスレッディング・パラメータの第２の値が、ハードウェア・スレッド数についての数値を示している場合、前記ｖＣＰＵ配置機構は、前記ＶＭ内の各ｖＣＰＵを前記選択されたホストコンピュータ・システム内の異なるハードウェア・スレッド上に配置する、請求項２又は請求項３に記載の装置。
【請求項７】
前記ハードウェア・マルチスレッディング・パラメータの第３の値は、前記選択されたホストコンピュータ・システムが、該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかにかかわらず選択されることを示す、請求項１ないし６のいずれか１項に記載の装置。
【請求項８】
前記ＶＭ要求は、メモリ要件及びディスク要件をさらに含む、請求項１ないし７のいずれか１項に記載の装置。
【請求項９】
前記ホスト監視機構は、前記複数のホストコンピュータ・システムの各々の上のメモリ量及びディスク・スペース量をさらに判定する、請求項１ないし８のいずれか１項に記載の装置。  
【請求項１０】
前記ＶＭ要求内の前記仮想ＣＰＵ数が前記ハードウェア・マルチスレッディング・パラメータの値よりも大きい場合、前記ホスト選択機構は、各々が複数のハードウェア・スレッドを有する複数のＣＰＵを含む、前記複数のホストコンピュータ・システムのうちの１つを選択する、請求項１に記載の装置。
【請求項１１】
前記クラウド・マネージャは、前記ハードウェア・マルチスレッディング・パラメータを用いて少なくとも１つのＶＭをリサイズするＶＭリサイズ機構をさらに備える、請求項２に記載の装置。
【請求項１２】
少なくとも１つのプロセッサによって実行される、仮想マシンを配備するためのホストコンピュータ・システムを選択するためのコンピュータ実装方法であって、
仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数を判定することと、
前記複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数を判定することと、
仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取ることと、
前記ＶＭ要求を満たすハードウェア・スレッド数をサポートする数のＣＰＵを含む、前記複数のホストコンピュータ・システムのうちの１つを選択することと、
を含む、方法。
【請求項１３】
複数の仮想ＣＰＵ（ｖＣＰＵ）を前記選択されたホストコンピュータ・システム上に配置するために前記ハードウェア・マルチスレッディング・パラメータを用いることをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記複数のホストコンピュータ・システム上の各ＣＰＵがイネーブルにされたスプリットコアを有しているかどうか判定し、有している場合、コア当たりのサブコア数を判定することをさらに含み、
ここで前記選択するステップは、前記ＶＭ要求を満たすハードウェア・スレッド数をサポートする数のＣＰＵを含む前記複数のホストコンピュータ・システムのうちの１つに加えて、前記ＶＭ要求内の仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを満たすスプリットコア設定を選択することを含む、
請求項１２又は請求項１３に記載の方法。
【請求項１５】
前記複数の仮想ＣＰＵ（ｖＣＰＵ）を前記選択されたホストコンピュータ・システム上に配置するために、前記ハードウェア・マルチスレッディング・パラメータ及び前記選択されたホストコンピュータ・システム上の前記スプリットコア設定を用いることをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記ＣＰＵの数に加えて、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なメモリ量及びディスク・スペース量を判定することをさらに含み、
ここで前記仮想マシン（ＶＭ）要求は、
前記ＶＭのためのメモリの最小量を指定するメモリ要件と、
前記ＶＭのためのディスクの最小量を指定するディスク要件と、
を含み、
ここで前記ハードウェア・マルチスレッディング・パラメータの第１の値は、ハードウェア・マルチスレッディングがオフになっていることを示し、前記ハードウェア・マルチスレッディング・パラメータの第２の値は、ハードウェア・スレッド数についての数値を示し、前記ハードウェア・マルチスレッディング・パラメータの第３の値は、前記選択されたホストコンピュータ・システムが該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかにかかわらず選択されることを示す、
請求項１２に記載の方法。
【請求項１７】
コンピュータ・プログラムであって、請求項１２ないし請求項１６までのいずれか１項に記載の方法を行うステップを前記プロセッサに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に仮想マシンをホストコンピュータ・システムに配備することに関し、より具体的にはハードウェア・マルチスレッディング・パラメータを用いて仮想マシンのためのホストを選択することに関する。
【背景技術】
【０００２】
クラウド環境において、クラウド・マネージャは、仮想マシンをホストコンピュータ・システムに対して配備して仮想サーバを作り出す。典型的には、クラウド・マネージャは、仮想マシン・イメージがシステム・リソースについて要求しているもの、例えばメモリ、ディスク及びＣＰＵを指定する要求を受け取る。クラウド・マネージャは次に、要求されたシステム・リソースを有する利用可能なホストコンピュータ・システムを判定し、利用可能なホストコンピュータ・システムの１つを選択し、仮想マシンを選択されたホストコンピュータ・システムに対して配備する。
【０００３】
ＯｐｅｎＳｔａｃｋは、プライベート及びパブリック・クラウドを構築するためのオープンソース・ソフトウェアである。ＯｐｅｎＳｔａｃｋでは、「フレーバー（ｆｌａｖｏｒ）」と呼ばれる仮想ハードウェア・テンプレートが、仮想マシンに必要なシステム・リソースを指定する。例えば、ＯｐｅｎＳｔａｃｋ内のフレーバーは、仮想マシンのためのメモリのサイズ、ルートディスク・サイズ、及び仮想ＣＰＵ数を指定することができる。仮想マシンが配備されることが必要とされるとき、その仮想マシンのために必要なリソースを指定するフレーバーを伴うクラウド・マネージャに対する呼出しが作成される。クラウド・マネージャは次に、フレーバー内で指定されたリソースを有する１つ又は複数のホストコンピュータ・システムを見つけだし、フレーバーを満たすホストコンピュータ・システムのうちの１つの上に仮想マシンを配備する。
【０００４】
ホスト内のハードウェア・マルチスレッディングは、ホストコンピュータ・システムに対する仮想マシンのプロビジョニングを複雑にする場合がある。従来技術において、ホストコンピュータ・システム上でハイパースレッディングがイネーブルにされている場合、仮想マシンのためのホストコンピュータ・システムを選択するときにハードウェア・スレッド数が考慮され、仮想ＣＰＵは、物理コアを顧慮せずにハードウェア・スレッドに対して割り当てられる。ホストコンピュータ・システム上でハイパースレッディングがイネーブルにされていない場合、仮想マシンのためにホストコンピュータ・システムを選択するときに物理プロセッサコアのみが考慮され、仮想ＣＰＵは、選択されたホストコンピュータ・システム上にＶＭがプロビジョニングされるときに物理プロセッサコアに対してのみ割り当てられる。各コア内に多くのハードウェア・スレッドを含むＰＯＷＥＲのような現代のプロセッサ・アーキテクチャでは、結果として、処理リソースの使用が非常に非効率的になる。
【０００５】
仮想マシンのプロビジョニングは、プロセッサがスプリットコアを有しているときにはさらに複雑になり得る。スプリットコア・プロセッサは、多重サブコアに分割することができるＣＰＵコアを指し、このサブコアは各々、多重ハードウェア・スレッドを含むことができ、ここでサブコアは、ゲスト・オペレーティング・システムにとってはコアとして見える。例えば、８つのハードウェア・スレッドを有する、スプリットコアが可能なコアは、各々が２つのハードウェア・スレッドをサポートすることが可能な４つのサブコアに分割することができる。スプリットコアのイネーブルメントは動的であり、これは分割をホスト・オペレーティング・システム上でプログラム的に変更することができることを意味する。既知のクラウド・マネージャは、スプリットコア・プロセッサを、スプリットコアを有さないプロセッサと異なるように扱わない。結果として、既知のクラウド・マネージャは、仮想マシンをプロビジョニングするときにスプリットコア・プロセッサを使用する利点を実現することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、ハードウェア・マルチスレッディング・パラメータを用いて仮想マシンのためのホストを選択するための方法及び装置を提供することである。
【課題を解決するための手段】
【０００７】
第１の態様によれば、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合されたメモリと、メモリ内に常駐し、少なくとも１つのプロセッサによって実行されるクラウド・マネージャと、を備えた装置が提供され、クラウド・マネージャは、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数を判定し、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数をさらに判定するホスト監視機構と、仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取るホスト選択機構であって、ＶＭ要求を満たすハードウェア・スレッド数を有するＣＰＵ数を含む、複数のホストコンピュータ・システムのうちの１つを選択する、ホスト選択機構と、を備える。
【０００８】
第２の態様によれば、少なくとも１つのプロセッサによって実行される、仮想マシンを配備するためのホストコンピュータ・システムを選択するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数を判定することと、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数を判定することと、仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取ることと、ＶＭ要求を満たすハードウェア・スレッド数を有するＣＰＵ数を含む、複数のホストコンピュータ・システムのうちの１つを選択することと、を含む。
【０００９】
本発明は、コンピュータ・プログラムとしても実装することができる。
【００１０】
好ましい実施形態によれば、クラウド・マネージャは、ホストコンピュータ・システム上のＣＰＵでサポートされるハードウェア・スレッド数を含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上で必要とされるハードウェア・マルチスレッディングの量を指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン（ＶＭ）のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、ＶＭのためのホストコンピュータ・システムを選択する。
【００１１】
１つの実施形態によれば、ハードウェア・マルチスレッディング・パラメータを用いた仮想ＣＰＵの配置を伴って行われる解決策が提供される。
【００１２】
１つの実施形態において、この開示は、一般に仮想マシンをホストコンピュータ・システムに配備することに関し、より具体的には、ハードウェア・マルチスレッディング・パラメータを用いて仮想ＣＰＵをホストコンピュータ・システムに配備することに関する。
【００１３】
１つの実施形態において、スプリットコア・プロセッサを伴うるホストにおける、ハードウェア・マルチスレッディング・パラメータを用いた仮想ＣＰＵのプロビジョニングのための解決策が提供される。
【００１４】
１つの実施形態によれば、この開示は、一般に仮想マシンをホストコンピュータ・システムに配備することに関し、より具体的には、ハードウェア・マルチスレッディング・パラメータを用いて仮想ＣＰＵを１つ又は複数のスプリットコア・プロセッサを含むホストコンピュータ・システムに配備することに関する。
【００１５】
１つの実施形態によれば、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合されたメモリと、メモリ内に常駐し、少なくとも１つのプロセッサによって実行されるクラウド・マネージャと、を備えた装置が提供され、クラウド・マネージャは、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数を判定し、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数をさらに判定するホスト監視機構と、仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取るホスト選択機構であって、ＶＭ要求を満たすハードウェア・スレッド数を有するＣＰＵ数を含む、複数のホストコンピュータ・システムのうちの１つを選択する、ホスト選択機構と、ハードウェア・マルチスレッディング・パラメータを用いて複数の仮想ＣＰＵ（ｖＣＰＵ）を選択されたホストコンピュータ・システム上に配置する仮想ＣＰＵ（ｖＣＰＵ）配置機構と、を備える。
【００１６】
１つの実施形態によれば、少なくとも１つのプロセッサによって実行される、複数の仮想ＣＰＵ（ｖＣＰＵ）をホストコンピュータ・システム上に配置するためコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数を判定することと、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数を判定することと、仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取ることと、ＶＭ要求を満たすハードウェア・スレッド数を有するＣＰＵ数を含む、複数のホストコンピュータ・システムのうちの１つを選択することと、複数のｖＣＰＵを選択されたホストコンピュータ・システム上に配置するためにハードウェア・マルチスレッディング・パラメータを用いることと、を含む。
【００１７】
１つの実施形態によれば、少なくとも１つのプロセッサによって実行される、複数の仮想ＣＰＵ（ｖＣＰＵ）をホストコンピュータ・システム上に配置するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数、メモリ量、及びディスク・スペース量を判定することと、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数を判定することと、仮想マシン（ＶＭ）要求を受け取ることであって、このＶＭ要求が、ＶＭのためのメモリの最小量を指定するメモリ要件と、ＶＭのためのディスクの最小量を指定するディスク要件と、ＶＭのための仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを指定するＣＰＵ要件とを含み、ここでハードウェア・マルチスレッディング・パラメータの第１の値は、ハードウェア・マルチスレッディングがオフになっていることを示し、ハードウェア・マルチスレッディング・パラメータの第２の値は、ハードウェア・スレッド数についての数値を示し、ハードウェア・マルチスレッディング・パラメータの第３の値は、選択されたホストコンピュータ・システムが該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかかにかかわらず選択されることを示す、ＶＭ要求を受け取ることと、ＶＭ要求を満たすハードウェア・スレッド数を有するＣＰＵ数を含む複数のホストコンピュータ・システムのうちの１つを選択することと、複数のｖＣＰＵを選択されたホストコンピュータ・システム上に配置するためにハードウェア・マルチスレッディング・パラメータを用いることであって、ハードウェア・マルチスレッディング・パラメータが、ハードウェア・マルチスレッディングがオフになっていることを示している場合、ＶＭ内の各ｖＣＰＵを選択されたホストコンピュータ・システム内の異なる物理コア上に配置することにより、及び、ハードウェア・マルチスレッディング・パラメータがハードウェア・スレッド数を示している場合、ＶＭ内の各ｖＣＰＵを選択されたホストコンピュータ・システム内の異なるハードウェア・スレッド上に配置することにより、用いることと、を含む。
【００１８】
１つの実施形態によれば、上記段落で説明したような方法であって、ハードウェア・マルチスレッディング・パラメータを用いてＶＭをリサイズすることをさらに含む方法が提供される。
【００１９】
１つの実施形態によれば、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合されたメモリと、メモリ内に常駐し、少なくとも１つのプロセッサによって実行されるクラウド・マネージャと、を備えた装置が提供され、クラウド・マネージャは、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数、及び複数のホストコンピュータ・システム上の各ＣＰＵに対してスプリットコアがイネーブルになっているかどうかを判定するホスト監視機構と、仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取るホスト選択機構であって、ＶＭ要求内の仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを満たすハードウェア・スレッド数を有するＣＰＵ数及びスプリットコア設定を含む、複数のホストコンピュータ・システムのうちの１つを選択する、ホスト選択機構と、を備える。
【００２０】
１つの実施形態によれば、少なくとも１つのプロセッサによって実行される、複数の仮想ＣＰＵ（ｖＣＰＵ）をホストコンピュータ・システム上に配置するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数を判定することと、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数を判定することと、複数のホストコンピュータ・システム上の各ＣＰＵがイネーブルにされたスプリットコアを有しているかどうかを判定し、有している場合、コア当たりのサブコア数を判定することと、仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン（ＶＭ）要求を受け取ることと、ＶＭ要求内の仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを満たすハードウェア・スレッド数を有するＣＰＵ数及びスプリットコア設定を含む、複数のホストコンピュータ・システムのうちの１つを選択することと、を含む。
【００２１】
１つの実施形態によれば、少なくとも１つのプロセッサによって実行される、複数の仮想ＣＰＵ（ｖＣＰＵ）をホストコンピュータ・システム上に配置するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なＣＰＵの数、メモリ量、及びディスク・スペース量を判定することと、複数のホストコンピュータ・システム上の各ＣＰＵによってサポートされるハードウェア・スレッド数を判定することと、複数のホストコンピュータ・システム上の各ＣＰＵがイネーブルにされたスプリットコアを有しているかどうかを判定することと、仮想マシン（ＶＭ）要求を受け取ることであって、このＶＭ要求が、ＶＭのためのメモリの最小量を指定するメモリ要件と、ＶＭのためのディスクの最小量を指定するディスク要件と、ＶＭのための仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを指定するＣＰＵ要件とを含み、ここでハードウェア・マルチスレッディング・パラメータの第１の値は、ハードウェア・マルチスレッディングがオフになっていることを示し、ハードウェア・マルチスレッディング・パラメータの第２の値は、ハードウェア・スレッド数についての数値を示し、ハードウェア・マルチスレッディング・パラメータの第３の値は、選択されたホストコンピュータ・システムが該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかにかかわらず選択されたことを示す、ＶＭ要求を受け取ることと、ＶＭ要求内の仮想ＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを満たすハードウェア・スレッド数を有するＣＰＵ数及びスプリットコア設定を含む、複数のホストコンピュータ・システムのうちの１つを選択することと、複数のｖＣＰＵを選択されたホストコンピュータ・システム上に配置するためにハードウェア・マルチスレッディング・パラメータ及び選択されたホストコンピュータ・システムのスプリットコア設定を用いることであって、ハードウェア・マルチスレッディング・パラメータが、ハードウェア・マルチスレッディングがオフになっていることを示している場合、ＶＭ内の各ｖＣＰＵを選択されたホストコンピュータ・システム内の異なる物理コア上に配置することにより、及び、ハードウェア・マルチスレッディング・パラメータがハードウェア・スレッド数及び選択されたコンピュータ・システムのスプリットコア設定がイネーブルになっていることを示している場合、ＶＭ内の各ｖＣＰＵを選択されたホストコンピュータ・システム内のＣＰＵ内のサブコア内の異なるハードウェア・スレッド上に配置することにより、用いることと、を含む。
【００２２】
１つの実施形態によれば、クラウド・マネージャは、ホストコンピュータ・システム上のＣＰＵによってサポートされるハードウェア・スレッド数を含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許されるのかどうかを指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン（ＶＭ）のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、ＶＭのためのホストコンピュータ・システムを選択する。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、ＶＭのためのホストコンピュータ・システムを選択する。ＶＭは次に、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。
【００２３】
１つの実施形態によれば、クラウド・マネージャは、ホストコンピュータ・システム上のＣＰＵによってサポートされるハードウェア・スレッド数、及びＣＰＵがイネーブルにされたスプリットコアを有しているか否かを含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許されるのかどうかを指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン（ＶＭ）のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータ、ＣＰＵによってサポートされるハードウェア・スレッド、及びスプリットコア設定を考慮に入れて、ＶＭのためのホストコンピュータ・システムを選択する。ＶＭは次に、ハードおウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。結果は、仮想マシンのためのホスト内のＣＰＵリソースのより効率的な利用である。
【００２４】
上記及び他の特徴及び利点は、添付図面に例証されているような、以下の特定の詳細から明らかとなるであろう。
【００２５】
本発明の実施形態を、例示のみの目的で、以下の図面を参照して説明する。同様の記号は、同様の要素を示す。
【図面の簡単な説明】
【００２６】
【図１】本発明の好ましい実施形態によるクラウド・コンピューティング・ノードのブロック図である。
【図２】本発明の好ましい実施形態によるクラウド・コンピューティング環境のブロック図である。
【図３】本発明の好ましい実施形態による抽象モデル層のブロック図である。
【図４】本発明の好ましい実施形態によるクラウド・マネージャの幾つかの特徴を示すブロック図である。
【図５】本発明の好ましい実施形態によるクラウドＶＭ要求の幾つかの特徴を示すブロック図である。
【図６】本発明の好ましい実施形態による、潜在的ホストコンピュータ・システム上の利用可能なリソースのログを取るための、クラウド・マネージャのための方法のフロー図である。
【図７】本発明の好ましい実施形態による、ホストコンピュータ・システム上にＶＭをプロビジョニングするための、クラウド・マネージャのための方法のフロー図である。
【図８】従来技術のｘ８６デュアルコアＣＰＵのブロック図である。
【図９】ＶＭ要求に対してホストを選択するための、クラウド・マネージャのための従来技術の方法のフロー図である。
【図１０】従来技術のクラウドＶＭ要求においてＣＰＵ要件がどのように指定されているのかを示すブロック図である。
【図１１】本発明の好ましい実施形態による、３つのｘ８６デュアルコア・プロセッサを示す潜在的ホストコンピュータ・システムのブロック図である。
【図１２】本発明の好ましい実施形態による、図１１の潜在的ホストに割り当てることができるｖＣＰＵを含む仮想マシンを示すブロック図である。
【図１３】ｖＣＰＵをホストコンピュータ・システム内の物理コア上に配置するための従来技術の方法のフロー図である。
【図１４】本発明の好ましい実施形態による、６つのうち２つのコアを示す、Ｐｏｗｅｒ８  ６コアＣＰＵのアーキテクチャを示すブロック図である。
【図１５】本発明の好ましい実施形態による、ハードウェア・マルチスレッディング・パラメータを用いて、ホストを選択する、及び、ホスト上のｖＣＰＵについての配置を制御する方法のブロック図である。
【図１６】本発明の好ましい実施形態による、ｖＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含むサンプルＣＰＵ要件である。
【図１７】本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第１のサンプルＣＰＵ要件である。
【図１８】本発明の好ましい実施形態による、図１７のＣＰＵ要件を満たす潜在的なＰｏｗｅｒ８ホストを示す。
【図１９】本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第２のサンプルＣＰＵ要件である。
【図２０】本発明の好ましい実施形態による、図１９のＣＰＵ要件を満たす潜在的なＰｏｗｅｒ８ホストを示す。
【図２１】本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第３のサンプルＣＰＵ要件である。
【図２２】本発明の好ましい実施形態による、図３１のＣＰＵ要件を満たす潜在的なＰｏｗｅｒ８ホストを示す。
【図２３】本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第４のサンプルＣＰＵ要件である。
【図２４】本発明の好ましい実施形態による、図２３のＣＰＵ要件を満たす潜在的なＰｏｗｅｒ８ホストを示す。
【図２５】本発明の好ましい実施形態による、ハードウェア・マルチスレッディング・パラメータを含むＣＰＵ要件を満たすホストを選択するための方法のフロー図である。
【図２６】ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上にｖＣＰＵを配置するための方法のフロー図である。
【図２７】本発明の好ましい実施形態による、各潜在的ホストのために集められたホストレベルの統計量を示すブロック図である。
【図２８】本発明の好ましい実施形態による、ハードウェア・マルチスレッディング・パラメータを指定するためにＯｐｅｎＳｔａｃｋフレーバー内に実装することができる追加の仕様を示すブロック図である。
【図２９】ハードウェア・マルチスレッディング・パラメータを含むことができる既存のＶＭに対してリサイズ動作を行うための方法のフロー図である。
【図３０】６つのうち２つのコアを示す、スプリットコアがイネーブルにされたＰｏｗｅｒ８  ６コアＣＰＵのアーキテクチャを示すブロック図である。
【図３１】ｖＣＰＵ数及びハードウェア・マルチスレッディング・パラメータを含むサンプルＣＰＵ要件である。
【図３２】ハードウェア・マルチスレッディング・パラメータを含む第１のサンプルＣＰＵ要件である。
【図３３】図３２のＣＰＵ要件を満たす潜在的Ｐｏｗｅｒ８ホストを示す。
【図３４】ハードウェア・マルチスレッディング・パラメータを含む第２のサンプルＣＰＵ要件である。
【図３５】図３４のＣＰＵ要件を満たす潜在的Ｐｏｗｅｒ８ホストを示す。
【図３６】ハードウェア・マルチスレッディング・パラメータを含む第３のサンプルＣＰＵ要件である。
【図３７】図３６のＣＰＵ要件を満たす潜在的Ｐｏｗｅｒ８ホストを示す。
【図３８】ハードウェア・マルチスレッディング・パラメータを含む第４のサンプルＣＰＵ要件である。
【図３９】図３８のＣＰＵ要件を満たす潜在的Ｐｏｗｅｒ８ホストを示す。
【図４０】ハードウェア・マルチスレッディング・パラメータを含み、かつホストがスプリットコアを有する場合には考慮に入れた、ＣＰＵ要件を満たすホストを選択するための方法のフロー図である。
【図４１】ハードウェア・マルチスレッディング・パラメータが４又は８に設定されたときに、イネーブルにされたスプリットコア・モードを有するホストを除外するために用いることができるフィルタを示すブロック図である。
【図４２】ハードウェア・マルチスレッディング・パラメータを用い、ホストがスプリットコアを有する場合には考慮に入れた、選択されたホストコンピュータ・システム上にｖＣＰＵを配置するための方法のフロー図である。
【発明を実施するための形態】
【００２７】
クラウド・マネージャは、ホストコンピュータ・システム上のＣＰＵによってサポートされるハードウェア・スレッドの数及びＣＰＵがイネーブルにされたスプリットコアを含むか否かを含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許されるのかどうか（又は１つの実施形態において、ホストコンピュータ・システム上で必要とされるハードウェア・マルチスレッディングの量）を指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン（ＶＭ）のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェアマルチスレッディングパラメータ、ＣＰＵによってサポートされるハードウェア・スレッド、及びスプリットコア設定を考慮に入れて、ＶＭのためのホストコンピュータ・システムを選択する。ＶＭは次に、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。結果は、仮想マシンのためのホスト内のＣＰＵリソースのより効率的な利用である。
【００２８】
この開示はクラウド・コンピューティングについての詳細な説明を含んでいるが、本明細書で述べられる教示の実装はクラウド・コンピューティング環境に限定されるものではないことが予め理解される。むしろ、本発明の実施形態は、現在知られている又は後で開発されることになる他の任意の型式のコンピューティング環境と共に実装されることが可能である。
【００２９】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及びリリースすることができる、構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス）の共有プールに対する便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデル、及び少なくとも４つの配備モデルを含むことができる。
【００３０】
特性は以下の通りである。
オンデマンドのセルフサービス：クラウド・コンシューマは、必要に応じて、人間がサービスのプロバイダと対話する必要なく自動的に、サーバ時間及びネットワーク・ストレージといったコンピューティング能力を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス：能力は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、及びＰＤＡ）による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化：プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマに供されるようにプールされ、異なる物理及び仮想リソースが要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を有さないという点で位置独立感覚であるが、より高次の抽象レベル（例えば、国、州、又はデータセンタ）での位置を指定することができる場合がある。
迅速な弾力性：能力は、迅速かつ弾力的に、場合によっては自動的にプロビジョニングされてすばやくスケール・アウトし、迅速に解放されてすばやくスケール・インすることができる。コンシューマにとっては、プロビジョニングに利用可能な能力は、多くの場合、無制限に見え、いつでもどんな量でも購入することができる。
計測されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント）に適した何らかの抽象レベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告して、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【００３１】
サービス・モデルは以下の通りである。
Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）：コンシューマに提供される能力は、クラウド・インフラストラクチャ上で実行される、プロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザなどのシンクライアント・インタフェースを通じて、種々のクライアントデバイスからアクセス可能である（例えば、ウェブ・ベースの電子メール）。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション能力をも含む基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）：コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成されたコンシューマ作成又は取得のアプリケーションを、クラウド・インフラストラクチャ上に配備することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対する制御を有する。
Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）：コンシューマに提供される能力は、コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをそこに配備して実行させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーキング・コンポーネント（例えば、ホストのファイアウォール）選択に対する限定的な制御を有する。
【００３２】
配備モデルは以下の通りである。
プライベート・クラウド：クラウド・インフラストラクチャは、一組織のためだけに運営される。これは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
コミュニティ・クラウド：クラウド・インフラストラクチャは、幾つかの組織によって共有され、関心事項（例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項）を共有する特定のコミュニティをサポートする。これは、それらの組織又は第三者により管理することができ、オンプレミス又はオフプレミスで存在することができる。
パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようにされており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有のエンティティを残しているが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術（例えば、クラウド間の負荷平衡のためのクラウド・バースティング）によって互いに結び付けられた、２つ又はそれより多いクラウド（プライベート、コミュニティ、又はパブリック）の組合せである。
【００３３】
クラウド・コンピューティング環境は、サービス指向であり、無国籍性、低結合性、モジュール性、及び意味論的相互運用性に焦点を合わせている。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００３４】
ここで図１を参照すると、クラウド・コンピューティング・ノードの一例のブロック図が示されている。クラウド・コンピューティング・ノード１００は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の実施形態の使用又は機能の範囲に関していずれかの限定を示唆することを意図するものではない。いずれにせよ、クラウド・コンピューティング・ノード１００は、上述された機能のいずれかを実装及び／又は実施することができる。
【００３５】
クラウド・コンピューティング・ノード１００内には、多数の他の汎用又は専用コンピューティング・システム環境若しくは構成と共に動作可能なコンピュータ・システム／サーバ１１０が存在する。コンピュータ・システム／サーバ１１０と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び／又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、タブレット・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイスのいずれかを含む分散型クラウド・コンピューティング環境、等が含まれる。
【００３６】
コンピュータ・システム／サーバ１１０は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１１０は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実行することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔の両方のコンピュータ・システム・ストレージ媒体内に配置されることができる。
【００３７】
図１に示されるように、クラウド・コンピューティング・ノード１００内のコンピュータ・システム／サーバ１１０は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム／サーバ１１０のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１２０、システム・メモリ１３０、及び、システム・メモリ１３０を含む種々のシステム・コンポーネントを処理ユニット１２０に結合するバス１２２を含むことができる。
【００３８】
バス１２２は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び、種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００３９】
コンピュータ・システム／サーバ１１０は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１１０がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方、並びに取外し可能媒体及び取外し不能媒体の両方を含む。図１には、取外し可能媒体の例がデジタル・ビデオ・ディスク（ＤＶＤ）１９２を含むものとして示されている。
【００４０】
システム・メモリ１３０は、ファームウェア１３２などの、揮発性又は不揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。ファームウェア１３２は、コンピュータ・システム／サーバ１１０に対するインタフェースを提供する。システム・メモリ１３０はまた、ランダム・アクセス・メモリ（ＲＡＭ）１３４及び／又はキャッシュ・メモリ１３６といった、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１１０は、他の取外し可能／取外し不能な、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と呼ばれる）との間の読み出し及び書き込みのために、ストレージ・システム１４０を設けることができる。図示されていないが、取外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブ、及びＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブを設けることができる。このような例においては、各々は、１つ又は複数のデータ媒体インタフェースによってバス１２２に接続することができる。以下でさらに示され、説明されるように、メモリ１３０は、より詳細に後述される機能を実行するように構成されたプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００４１】
プログラム・モジュールの組１５２（少なくとも１つ）を有するプログラム／ユーティリティ１５０を、限定ではなく例として、オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データと共に、メモリ１３０内に格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの幾つかの組合せの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール１５２は、一般に、本明細書において説明される本発明の実施形態の機能及び／又は方法を実行する。
【００４２】
コンピュータ・システム／サーバ１１０はまた、キーボード、ポインティング・デバイス、ディスプレイ１８０、ディスク・ドライブなどといった１つ又は複数の外部デバイス１９０、ユーザがコンピュータ・システム／サーバ１１０と対話することを可能にする１つ又は複数のデバイス、及び／又は、コンピュータ・システム／サーバ１１０が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワークカード、モデムなど）と通信することができる。このような通信は、入力／出力（Ｉ／Ｏ）インタフェース１７０を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ１１０は、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと、ネットワーク・アダプタ１６０を介して通信することができる。示されるように、ネットワーク・アダプタ１６０は、コンピュータ・システム／サーバ１１０の他のコンポーネントと、バス１２２を介して通信する。図示されないが、コンピュータ・システム／サーバ１１０と共に他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ  （ＲＡＩＤ）システム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが挙げられる。
【００４３】
ここで図２を参照すると、例示的なクラウド・コンピューティング環境２００が示される。示されるように、クラウド・コンピューティング環境２００は、例えば携帯情報端末（ＰＤＡ）又は携帯電話２１０Ａ、デスクトップ・コンピュータ２１０Ｂ、ラップトップ・コンピュータ２１０Ｃ、及び／又は自動車コンピュータ・システム２１０Ｎなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスが通信することができる、１つ又は複数のクラウド・コンピューティング・ノード１００を含む。ノード１００は、互いに通信することができる。これらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくはハイブリッド・クラウド、又はこれらの組合せなどの１つ又は複数のネットワーク内で、物理的又は仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境２００は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び／又はソフトウェアを提供できるようになる。図２に示されるコンピューティング・デバイス２１０Ａ−Ｎのタイプは単なる例示として意図されており、コンピューティング・ノード１００及びクラウド・コンピューティング環境２００は、あらゆるタイプのネットワーク及び／又はネットワーク・アドレス指定可能な接続（例えば、ウェブ・ブラウザを用いて）を介して、あらゆるタイプのコンピュータ化された装置と通信できることが理解される。
【００４４】
ここで図３を参照すると、図２のクラウド・コンピューティング環境２００によって提供される機能抽象化層の組が示される。図３に示されるコンポーネント、層及び機能は、単なる例証を意図したものであり、開示及び特許請求の範囲はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【００４５】
ハードウェア及びソフトウェア層３１０は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例は、ＩＢＭ（登録商標）Ｓｙｓｔｅｍ  ｚ（登録商標）システムを一例とするメインフレーム、ＩＢＭ  Ｓｙｓｔｅｍ  ｐ（登録商標）システムを一例とするＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ、ＩＢＭ  Ｓｙｓｔｅｍ  ｘシステム、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒシステム、ストレージ・デバイス、ネットワーク及びネットワーキング・コンポーネントを含む。ソフトウェア・コンポーネントの例は、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（登録商標）アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェア、及びＩＢＭ  ＤＢ２（登録商標）データベース・ソフトウェアを一例とするデータベース・ソフトウェアを含む。ＩＢＭ、Ｓｙｓｔｅｍ  ｚ、Ｓｙｓｔｅｍ  ｐ、ＷｅｂＳｐｈｅｒｅ、及びＤＢ２は、世界中の多くの管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
【００４６】
仮想化層３２０は、仮想エンティティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる、抽象層を提供する。
【００４７】
一例において、管理層３３０は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別検証、並びにデータ及び他のリソースに対する保護を提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者に対して、クラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理は、必要なサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割当て及び管理を提供する。サービスレベル・アグリーメント（ＳＬＡ）計画及び履行は、ＳＬＡに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。クラウド・マネージャ３５０は、より詳細に後述するクラウド・マネージャ（又は共有プール・マネージャ）を表す。クラウド・マネージャ３５０は、図３では管理層３３０内に常駐するものとして示されているが、クラウド・マネージャ３５０は、後述するように、図３に示すレベルの全てにわたることができる。
【００４８】
ワークロード層３４０は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例は、マッピング及びナビゲーションと、ソフトウェア開発及びライフサイクル管理と、仮想教室教育配信と、データ解析処理と、トランザクション処理と、モバイル・デスクトップと、を含む。
【００４９】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する１つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。
【００５０】
コンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持し、格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のものの任意の適切な組合せとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多目的ディスク（ＤＶＤ）、メモリスティック、フロッピーディスク、パンチカード若しくは記録された命令を有する溝内に隆起した構造のような機械式コード化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通って伝搬する電磁波（例えば光ファイバケーブルを通る光パルス）、又は電線を通って伝送される電気信号のようなそれ自体が一時的な信号と解釈されるべきではない。
【００５１】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び／又は無線ネットワークを経由して、外部コンピュータ若しくは外部ストレージ・デバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及び／又はエッジサーバを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。
【００５２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む１つ若しくは複数のプログラミング言語の任意の組合せで記述されたソースコード若しくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。
【００５３】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置（システム）、及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【００５４】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作の態様を実装する命令を含む製品を含むようにすることもできる。
【００５５】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するようにすることもできる。
【００５６】
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。
【００５７】
図４は、図３に示すクラウド・マネージャ３５０の１つの適切な例を示す。クラウド・マネージャ３５０は、リソース要求インタフェース４２０を含むクラウド・プロビジョニング機構４１０を含む。リソース要求インタフェース４２０は、ソフトウェア・エンティティがクラウド・マネージャ３５０から人間が介在することなく仮想マシンを要求することを可能にする。クラウド・マネージャ３５０はまた、ユーザがクラウド・マネージャと対話して、ＶＭのプロビジョニング、ＶＭの破棄、クラウドの性能解析などを含むいずれかの適切な機能を行うことを可能にするユーザ・インタフェース４３０を含む。リソース要求インタフェース４２０とユーザ・インタフェース４３０との違いは、ユーザ・インタフェース４３０は、ユーザが該ユーザによって指定された機能を実行させるために手動で用いる必要があるのに対して、リソース要求インタフェース４２０は、ソフトウェア・エンティティが、人間のユーザからの入力なしで、クラウド機構３５０によるクラウドリソースのプロビジョニングを要求するために用いることができることである。
【００５８】
クラウド・マネージャ３５０はまた、潜在的ホストコンピュータ・システム上の利用可能なリソースを監視し、クラウド・マネージャ３５０が、ＶＭに対して指定されたリソースと潜在的ホストコンピュータ・システム上の利用可能なリソースとを比較することができるようにする、ホスト監視機構４４０を含む。ホスト選択機構４５０は、要求されたＶＭに対して指定されたリソースと潜在的ホストコンピュータ・システム上の利用可能なリソースとの比較に基づいて、潜在的ホストコンピュータ・システムを選択することを可能にする。ｖＣＰＵ配置機構４６０は、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上にｖＣＰＵを配置する。ＶＭリサイズ機構４７０は、元のＶＭがハードウェア・マルチスレッディング・パラメータを用いていない場合であっても、ハードウェア・マルチスレッディング・パラメータを用いた方式で既存のＶＭをリサイズすることを可能にする。
【００５９】
図５は、クラウド・マネージャ３５０によってＶＭがプロビジョニングされることを要求するために図４のクラウド・プロビジョニング機構４１０上のリソース要求インタフェース４２０を介して又はユーザ・インタフェース４３０を介して提出することができる、クラウドＶＭ要求５１０の１つの適切な例を示す。クラウドＶＭ要求５１０は、ＶＭ上で必要とされるリソースに関する要件の任意の仕様を含むことができる。適切な要件の例は、メモリ要件５２０、ディスク要件５３０、及びＣＰＵ要件５４０を含む。メモリ要件５２０は、ＶＭに対して必要なメモリ量を指定する。ディスク要件５３０は、ＶＭに対して必要なディスクの量を指定する。ＣＰＵ要件５４０は、ＶＭに対して必要な仮想ＣＰＵ数を指定し、また、より詳細に後述するようにハードウェア・マルチスレッディング・パラメータも指定する。当然、図５に示されていない他の要件、例えばネットワーク要件及び他の任意の適切な要件をＶＭに対して指定することができる。従来技術において、ＯｐｅｎＳｔａｃｋは、「フレーバー」と呼ばれるものをクラウドＶＭ要求として用いており、これはＶＭ上のリソースに対する最小限の要件を指定する。
【００６０】
図６を参照すると、方法６００は、潜在的ホストコンピュータ・システム上の利用可能なリソースを監視するために、好ましくは図４のホスト監視機構４４０によって行われる。潜在的ホストコンピュータ・システム上の利用可能なリソースが判定され（ステップ６１０）、ログが取られる（ステップ６２０）。方法６００を実装するための１つの既知の方式は、ホストにその利用可能なリソースを照会するドライバを用いる。
【００６１】
図７を参照すると、方法７００は、クラウドＶＭ要求を受け取ることによって開始する（ステップ７１０）。次に、クラウドＶＭ要求内のリソース要件を潜在的ホストコンピュータ・システム上の利用可能なリソースと比較する（ステップ７２０）。ステップ７２０における利用可能なリソースは、図６のステップ６２０において作成したログから読み出すことができることに留意されたい。次いで、クラウドＶＭ要求内のリソース要件を満たすリソースを有するホストが選択される。（ステップ７３０）。次いで、選択されたホストコンピュータ・システム上にＶＭが配備される（ステップ７４０）。
【００６２】
多くの現代のプロセッサ（又はＣＰＵ）は、複数の処理コアを含む。マルチコア・プロセッサの１つの例は、図８に示すｘ８６デュアルコアＣＰＵ８１０である。ｘ８６デュアルコアＣＰＵ８１０は、２つのハードウェア・スレッド８２２及び８２４を有する第１のコア８２０と、２つのハードウェア・スレッド８４２及び８４４を有する第２のコア８４０とを含む。各コア上に複数のハードウェア・スレッドが存在することは、ホストコンピュータ・システムに対するＶＭのプロビジョニングにおける問題を生じさせる場合がある。従来技術において、マルチコアＣＰＵ内のハードウェア・スレッド数は典型的には無視され、物理コアのみが考慮に入れられる。例えば、図９の従来技術の方法９００は、クラウドＶＭ要求を読み出し（ステップ９１０）、次いで、クラウドＶＭ要求内のｖＣＰＵ数を満たす物理コア数を有するホストを選択する（ステップ９２０）。図１０に示すような従来技術のＣＰＵ要件１０１０は、仮想ＣＰＵ（ｖＣＰＵ）数を指定し、これは図５に示すＣＰＵ要件５４０についての１つの適切な例である。方法９００は、ＶＭのためのホストを選択するときに物理コアのみを用いるので、コア上の複数のハードウェア・スレッドは十分に活用されず、そのため利用可能なＣＰＵリソースが利用されない。他の従来技術において、ホストのハイパースレッディングがイネーブルにされているとき、ハードウェア・スレッド数が考慮に入れられ、ハードウェア・スレッドに対するｖＣＰＵの配置は、物理コアを顧慮せずに行われる。ある種のワークロードは異なるコア上のスレッドの活用から利益を得る一方で、他のワークロードは同じコアに対するスレッドによってより良好なサービス提供を受けるので、この手法は非効率的なＶＭをもたらすことになる。
【００６３】
図９のステップ９２０は、ＶＭ要求を満たすホストコンピュータ・システムを選択するための任意の適切な基準又はヒューリスティックを含むことができる。例えば、物理コア数を何らかのオーバーコミット比、例えば２．０により増やすことができる。従って、あるホストが利用可能な３つの物理コアを有する場合、３つの物理コアに２．０のオーバーコミット比を掛けると利用可能なプロセッサは６になり、これは、６つのｖＣＰＵを必要とするＶＭは、そのホスト上に配備することができるが、７つのｖＣＰＵを必要とするＶＭは配備することができないことを意味する。単純な例を例証する。
【００６４】
図１１は、３つのデュアルコアｘ８６ＣＰＵを含むサンプルの潜在的ホストコンピュータ・システムを表す。このホストは、図１１内でコアの網掛けで示されているようにＣＰＵ１内の２つの物理コア及びＣＰＵ２内の２つの物理コアのうちの第１のコアに対して配備された、既にその上で稼働している図１２に示すＶＭ１を有するものと仮定する。さらに図１２に示すＶＭ２を配備する必要があるものと仮定する。利用可能なコアの数が判定され、これは、例えば図１１の例では９であり、すなわち６つのコアにオーバーコミット比２を掛け、そこから図１１に示す潜在的ホスト（Ｐｏｔｅｎｔｉａｌ  Ｈｏｓｔ）１内でＶＭ１によって使用されている３つのコアを差し引いたものである。ＶＭ２は２つのｖＣＰＵを必要とし、潜在的ホスト１は９つの利用可能なコアを有しているので、潜在的ホスト１は、図１２に示すＶＭ２に対して有効な潜在的ホストである。
【００６５】
潜在的ホスト上へのｖＣＰＵの実際の配置は、ＶＭのための潜在的ホストの選択とは分離したステップであることに留意されたい。図１３を参照すると、方法１３００は、クラウドＶＭ要求を読み出すことによって開始する（ステップ１３１０）。次いでクラウドＶＭ要求内のｖＣＰＵが物理コア上に配置される（ステップ１３２０）。図１１において、ＣＰＵ１の第１及び第２のコア並びにＣＰＵ２の第１のコアのスレッドＴ１は、網掛けされており、図１２に示すＶＭ１内の２つのｖＣＰＵがこれら３つの対応するコア上に配置されたことを示す。しかしながら、配置は静的ではないことに留意されたい。異なる時点において、ｖＣＰＵは、いずれかのアクティブ・コア上のいずれかのハードウェア・スレッド上で稼働することができる。ハイパースレッディングを用いると、割り当てられた３つのデュアルコア内に全部で１２のハードウェア・スレッドが存在する。ＶＭ１は、これらのスレッドのうち３つを取り、他のＶＭのために９つを残す。しかしながら、ｖＣＰＵは、スレッドのいずれかに対して割り当てられ、このことは、メモリを共有するオペレーティング・システム・スレッド内で実行される作業は同じｖＣＰＵのハードウェア・スレッド内で最良に実行されることになるが、一方、独立したオペレーティング・システム・スレッド内で実行される作業は、異なるコアのハードウェア・スレッド内でより良く実行されることを意味する。従って、従来技術は、潜在的ホストに対するＶＭの割当ては、現行ではＣＰＵ上のハードウェア・スレッドとコアとの間の差を考慮に入れていないので、ＶＭに対して潜在的ホストが識別される方式及び選択されたホスト上でＶＭが実行される方式において非効率性を生じさせることになる。
【００６６】
従来技術は、仮想ＣＰＵを配備することができるエンティティとして物理プロセッサコア又はハードウェア・スレッドのどちらかを認識するが、両方は認識しない。ハイパースレッディングを用いない場合、図８に示すような単一のデュアルコアＣＰＵは、その２つの物理コア８２０及び８４０の形態の２つの利用可能なＣＰＵを有し、そこにｖＣＰＵを配備することができる。ハイパースレッディングを用いる場合、単一のデュアルコアＣＰＵは、より多くのｖＣＰＵをサポートすることができるが、ｖＣＰＵが同じ物理コア上又は異なるコア上のどちらのハードウェア・スレッドで実行されるのかは決定論的ではない。本明細書の開示及び請求項は、より細かいレベルの粒度を作り出し、ｖＣＰＵが、単に単一の物理コア又は単一のハードウェア・スレッドに対して割り当てられるのではなく、複数のハードウェア・スレッドに割り当てられることが必要とされることを認識する。
【００６７】
ｖＣＰＵが単一のハードウェア・スレッド又はコアのどちらかに割り当てられる問題は、ハードウェア・スレッド数が増えると悪化する。図８及び図１１に示すｘ８６デュアルコアＣＰＵの場合、ハイパースレッディングは、１コア当たり２つのスレッドをもたらす。もっと多くのハードウェア・スレッドを有するプロセッサの場合、問題はより顕著になる。例えば、図１４に示すＰｏｗｅｒ８  ６コアＣＰＵ１４１０は、８つのハードウェア・スレッド１４３２、１４３４、１４３６、１４３８、１４４２、１４４４、１４４６及び１４４８を含む第１のコア１４２０と、同様に８つのハードウェア・スレッド１４６２、１４６４、１４６６、１４６８、１４７２、１４７４、１４７６及び１４７８を含む第２のコア１４５０とを含むように示されている。図１４には他の４つのコアは示されていないが、示された２つのコアと同様である。図９の従来技術の方法９００で示すようにホストが物理コア数に基づいて選択される場合、ハードウェア・スレッドの多くが使用されないことになる。従って、２つのｖＣＰＵが図１４に示す２つのコア１４２０及び１４５０に配備された場合、結果として、各コア上の８つのハードウェア・スレッドのうち７つを無駄にすることになる。正味の結果は、あらゆる所与の時点で２つのコアの１６スレッドのうち２つしか用いられないことであり、これは１６ハードウェア・スレッドのうち１４を無駄にすることになる。このことは、図９に示す従来技術の方法９００を用いると、２つのＰｏｗｅｒ８コア上の１６個の利用可能な処理リソースのうち２つ（１２．５％）しか利用できないことを意味する。代替的に、コア当たり多数のハードウェア・スレッドが存在するときにｖＣＰＵがハードウェア・スレッドに割り当てられた場合、高度の並列性及び共有メモリを必要とするワークロードを有するＶＭは、そのＶＭのための他のｖＣＰＵと同じ物理コア上に位置していることによって、多くの物理コアにわたって分散した場合よりもより良好な性能を得ることになる。
【００６８】
上記で図１４を参照して説明したようにこれだけ多くの未使用スレッド又はｖＣＰＵが物理コアにわたって分散するという問題を回避するために、潜在的なホストを識別しＶＭを配備するための新規方式は、単なる物理コア又は単一のハードウェア・スレッドの代わりに物理コア内の複数のハードウェア・スレッドにｖＣＰＵを割り当てることができるという原理に基づいて、クラウドＶＭ要求内のハードウェア・マルチスレッディング・パラメータを用いて、ハードウェア・スレッドを考慮に入れる。これは、ハードウェア・マルチスレッディングに関連した、クラウドＶＭ要求内の新規パラメータを用いて行われる。本明細書の特定の例に関して、このハードウェア・マルチスレッディング・パラメータは「ＳＭＴ」パラメータと呼ばれ、これは当該分野でＣＰＵ上のハードウェア・マルチスレッディングを説明するために用いられる既知の用語である対称的マルチスレッディング（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｔｈｒｅａｄｉｎｇ）を表す。図１５を参照すると、方法１５００は、クラウドＶＭ要求内のＳＭＴパラメータを、１つの実施形態ではコア当たりのハードウェア・スレッド数及びスプリットコア設定に関したホストに関する情報をと共に用いて、開始し、ホストコンピュータ・システムを選択する（ステップ１５１０）。ひとたびホストコンピュータ・システムが選択されると、クラウドＶＭ要求内の同じＳＭＴパラメータを用いて、選択されたホスト上にＶＭを配備するときのｖＣＰＵについての配置決定を行うことができる（ステップ１５２０）。１つの実施形態において、コア当たりのハードウェア・スレッド数及びスプリットコア設定に関したホストに関する情報もまた、選択されたホスト上にＶＭを配備するときのｖＣＰＵについての配置決定を行うために用いることができる（ステップ１５２０）。
【００６９】
図１０は、クラウドＶＭ要求に対する従来技術のＣＰＵ要件１０１０が、ＶＭ上で必要とされるｖＣＰＵ数１０２０を指定することを含むことを示す。本明細書の開示及び特許請求の範囲による図１６に示すクラウドＶＭ要求１６１０は、ｖＣＰＵ数１６２０を含むが、付加的にハードウェア・マルチスレッディング（ＳＭＴ）パラメータ１６３０を含む。ＳＭＴパラメータの値は、ハードウェア・マルチスレッディングがオフになっていることを示すゼロとすることもでき、又はハードウェア・スレッド数を表す２の累乗とすることもできる。幾つかの例を示す。図１７を参照すると、ＣＰＵ要件１６１０Ａは、図１６に示すＣＰＵ要件１６１０の１つの適切な例であり、２つのｖＣＰＵ１７２０と、値が２のＳＭＴパラメータ１７３０とを含む。図１４に示すようなＰｏｗｅｒ８  ６コアＣＰＵ１４１０を有する潜在的ホストの場合、潜在的ホストは、図１８に示すように、２つのスレッドが使用され、その結果として６つのスレッドが未使用の、１つのコアを有することになる。
【００７０】
図１９の第２のＣＰＵ要件１６１０Ｂは、図１６に示すＣＰＵ要件１６１０の別の適切な例であり、２つのｖＣＰＵ１９２０と、ハードウェア・マルチスレッディングがオフになっていることを示す値のＳＭＴパラメータ１９３０とを含む。ハードウェア・マルチスレッディングがオフであるので、図１４に示すようなＰｏｗｅｒ８  ６コアＣＰＵ１４１０を有する潜在的ホストの場合、潜在的ホストは、図２０に示すように、各コア内の１つのスレッドが使用され、その結果として２つのコア内の１４のスレッドが未使用の、２つのコアを有することになる。ＳＭＴパラメータがオフになっている図１９のＣＰＵ要件１６１０Ｂに対する潜在的ホストの正味の結果は、ハイパースレッディングをディスエーブルにされているときの図１０に示す従来技術のＣＰＵ要件１０１０と同じであり、なぜならホストのハイパースレッディングがディスエーブルにされているとき、従来技術のＣＰＵ要件１０１０はいかなるハイパースレッディングも考慮に入れないからであることに留意されたい。従来技術において、ハイパースレッディングがイネーブルにされた場合、どのコアのハードウェア・スレッドがｖＣＰＵを処理することになるのか予測できない。ハードウェア・マルチスレッディングを考慮に入れたハードウェア・マルチスレッディング・パラメータについての値を指定することで、潜在的ホスト上の未使用ハードウェア・スレッド数を減らすことができ、かつ、どのｖＣＰＵが同じコア上で実行されるのかを制御することができる。
【００７１】
図１６〜図１９の例は、ハードウェア・マルチスレッディング・パラメータが、どのようにｖＣＰＵが配備されるかに対して、どのようにさらなる制御を与えるかを示す。例えば、同じコア上で実行される２つのスレッドは、そのコアが利用可能なキャッシュ・メモリに対する非常に高性能なアクセスを有することになるので、２つのｖＣＰＵを伴うＶＭが同じデータに対して動作するジョブを実行する場合、２つのｖＣＰＵは、図１７及び図１８に示すように同じコア内の２つの異なるハードウェア・スレッドに配備されることが望ましい場合がある。２つのｖＣＰＵを伴うＶＭが互いに独立したジョブを実行する場合、２つのｖＣＰＵは、図１９及び図２０に示すように、２つの異なるコアに配備されることが望ましい場合がある。
【００７２】
図２１の第３のＣＰＵ要件１６１０Ｃは、図１６に示すＣＰＵ要件１６１０の別の適切な例であり、８つのｖＣＰＵ２１２０と、値が８のＳＭＴパラメータ２１３０とを含む。図１４に示すようなＰｏｗｅｒ８  ６コアＣＰＵ１４１０を有する潜在的ホストの場合、潜在的ホストは、図２２に示すように、８つ全てのスレッドが使用され、その結果として未使用のスレッドが存在しない１つのコアを有することになる。
【００７３】
図２３に示す第４のＣＰＵ要件１６１０Ｄは、図１６に示すＣＰＵ要件１６１０の別の適切な例であり、１２個のｖＣＰＵ２３２０と、値が４のＳＭＴパラメータ２３３０とを含む。図１４に示すようなＰｏｗｅｒ８  ６コアＣＰＵ１４１０を有する潜在的ホストの場合、潜在的ホストは、図２４に示すように、各コア内で４つのスレッドが使用され、その結果として１２のスレッドが未使用の３つのコアを有することになる。これらの単純な例は、ホストコンピュータ・システムを選択する際にハードウェア・マルチスレッディング・パラメータを指定することが、どのようにｖＣＰＵがホストコンピュータ・システムに配備されるかということに対して、どのように制御を与えるかを示す。
【００７４】
図１７〜図２４に示す例は、ｖＣＰＵが各々の利用可能なスレッドに配備されることができることを前提としていることに留意されたい。図９〜図１２に関する上記議論は、ＣＰＵ数をある量だけ増やす「オーバーコミット比」を論じている。同様のオーバーコミット比を、本明細書の開示及び特許請求の範囲によりホストコンピュータ・システムを選択することに適用することができる。
【００７５】
図２５を参照すると、方法２５００は、図１６、図１７、図１９、図２１及び図２３に示すようにハードウェア・マルチスレッディング・パラメータが指定されたときに、ホストを選択する。クラウドＶＭ要求を読み出す（ステップ２５１０）。ＳＭＴパラメータがＯＦＦ（ステップ２５２０＝ＹＥＳ）の場合、クラウドＶＭ要求内のｖＣＰＵ数を満たす物理コア数を有するホストが選択される（ステップ２５３０）。ステップ２５３０は、図９の従来技術の方法９００におけるステップ９２０と同様であることに留意されたい。ＳＭＴパラメータがＯＮ（ステップ２５２０＝ＮＯ）の場合、ＳＭＴパラメータ内の数を満たすコア当たりのスレッド数、及びクラウドＶＭ要求内のｖＣＰＵ数をＳＭＴパラメータ内で指定されたスレッド数で割った数を満たすコア数を有するホストが選択される（ステップ２５４０）。これは、クラウドＶＭ要求内のｖＣＰＵ数を満たすハードウェア・スレッド数を有するホストを選択する１つの具体的な方式である。方法２５００は、次いで終了する。
【００７６】
ひとたびホストコンピュータ・システムが選択されると、選択されたホスト上にＶＭのためのｖＣＰＵを配置することができる。図２６を参照すると、方法２６００は、選択されたホスト上にｖＣＰＵが配置されることが必要とされるときに開始する（ステップ２６１０）。ＳＭＴパラメータがオフ（ステップ２６２０＝ＹＥＳ）の場合、各ｖＣＰＵは、異なる物理コア上に配置される（ステップ２６３０）。ＳＭＴパラメータがオン（ステップ２６２０＝ＮＯ）の場合、ｖＣＰＵは、同じ物理コア上の異なるハードウェア・スレッド上に配置することができる（ステップ２６４０）。方法２６００は、次いで終了する。
【００７７】
クラウドＶＭ要求内のハードウェア・マルチスレッディング・パラメータを用いる場合、クラウド・マネージャは、潜在的ホスト内のＣＰＵ内の物理コア数を知る必要があるのみならず、潜在的ホスト内のＣＰＵによってサポートされるスレッド数も知る必要がある。これは、ホストの単一コアが、クラウドＶＭ要求に対して指定されたスレッド数をサポートすることができることを保証するためのである。再び図６を参照すると、これは、ステップ６１０において利用可能なリソースを判定することが、利用可能なＣＰＵコアを判定することを含むのみならず、これらのＣＰＵコア上で多重スレッドが利用可能であるかどうかを判定することも含むことを意味する。これを達成する１つの方式は、図６のステップ６１０において、利用可能なリソースの一部として、ホストコンピュータ・システムによってサポートされる最大ＳＭＴ設定を収集することである。この１つの例を図２７に示し、ここでｍａｘ＿ｇｕｅｓｔ＿ｓｍｔは、潜在的ホストコンピュータ・システムがハードウェア・マルチスレッディングをサポートするか否かを示す、図４のホスト監視機構４４０によって収集された値を示す。ｍａｘ＿ｇｕｅｓｔ＿ｓｍｔがとり得る値は、ホストコンピュータ・システム上でＳＭＴがオフになっていることを示すゼロ、及び各ＣＰＵ上で利用可能なハードウェア・スレッド数を示す２の累乗の数である。ホストコンピュータ・システム内の全てのＣＰＵが同じ型式である場合、ｍａｘ＿ｇｕｅｓｔ＿ｓｍｔは、ホストコンピュータ・システム内のＣＰＵの全てに適用される単一値になる。ホストコンピュータ・システムが異なる数のハードウェア・スレッドを含む異なる型式のＣＰＵを含む場合、ホストコンピュータ・システム内の各ＣＰＵに対して異なるｍａｘ＿ｇｕｅｓｔ＿ｓｍｔが存在し得る。
【００７８】
ＯｐｅｎＳｔａｃｋは、現在、ゲストＣＰＵの所望のトポロジーの指定を補助するいかなる既存のサポートも有していない。本明細書で論じるハードウェア・マルチスレッディング・パラメータの追加を実装する１つの方式は、図２８に示すようにＯｐｅｎＳｔａｃｋフレーバーに付加的な仕様を追加することである。パラメータｐｏｗｅｒｋｖｍ：ｓｍｔは、ゲストＶＭに対する所望のＳＭＴ値を指定するＯｐｅｎＳｔａｃｋフレーバーにおける新規パラメータである。このパラメータがとり得るは、「気にしない（ｄｏｎ’ｔ  ｃａｒｅ）」を示す−１、ＳＭＴがオフであることを示すゼロ、又は幾つかの２の累乗数であることに留意されたい。潜在的ホスト上のハードウェア・マルチスレッディングに関する情報を収集する能力をｍａｘ＿ｇｕｅｓｔ＿ｓｍｔ設定内に含めることにより、及びハードウェア・マルチスレッディングの所望のレベルを指定する能力をＯｐｅｎＳｔａｃｋフレーバー内に含めることにより、本明細書の開示及び特許請求の範囲は、ＶＭを配備するための潜在的ホストコンピュータ・システムを選択する、及びこれらのＶＭをホストコンピュータ・システムのハードウェア・マルチスレッディング能力をより活用した方式で配備する、大いに改善された方式を提供し、これによりホストコンピュータ・システム上のＣＰＵリソースの利用を改善する。
【００７９】
本明細書で論じたハードウェア・マルチスレッディング・パラメータはまた、ＶＭリサイズ動作において用いることもできる。往々にして、ＶＭは、より多い又はより少ないリソースを有する必要があるので、これをリサイズしてＶＭに配備されるリソースを追加又は低減することができる。ＶＭをリサイズするための１つの適切な方式は、ＶＭに対するリソース割当てを変更するＯｐｅｎＳｔａｃｋフレーバーを指定することによる。ＶＭをリサイズするとき、ＯｐｅｎＳｔａｃｋフレーバーは、上述の図２８に示すｐｏｗｅｒｋｖｍ：ｓｍｔパラメータを有する場合がある。図２９は、図４に示すＶＭリサイズ機構によって行われることが好ましいＶＭをリサイズするための方法２９００を示す。既存のＶＭのリサイズ動作のためのフレーバーを読み出す（ステップ２９１０）。ステップ２９１０において参照されるフレーバーは、ＶＭに対するリソースの新たな（すなわちリサイズされた）割当てを伴うフレーバーである。フレーバーがＳＭＴパラメータを含まない（ステップ２９２０＝ＮＯ）場合、ＶＭのＳＭＴパラメータはＯＦＦに設定される（ステップ２９３０）。フレーバーがＳＭＴパラメータを含む（ステップ２９２０＝ＹＥＳ）場合、ＳＭＴパラメータの値がＯＦＦ又は「気にしない」であるとき（ステップ２９４０＝ＹＥＳ）、ＶＭのＳＭＴパラメータはＯＦＦに設定される（ステップ２９３０）。フレーバー内のＳＭＴが２の累乗の値を有するとき（ステップ２９４０＝ＮＯ）、ＶＭのＳＭＴパラメータは、フレーバー内で指定されたＳＭＴの値に設定される（ステップ２９５０）。方法は、次いで終了する。方法２９００は、ＳＭＴパラメータを用いるために既存のＶＭを本質的に「レトロフィット」する方式を可能にする。
【００８０】
Ｐｏｗｅｒ８  ６コアＣＰＵは、サブコアをサポートし、これは、スプリットコアがイネーブルにされたとき、各コア内の８つのスレッドを各々２つのスレッドのサブコアに分割することができることを意味する。スプリットコアがイネーブルにされたＰｏｗｅｒ８  ６コアＣＰＵ３０１０は、図３０に、４つのサブコア３０２２、３０２４、３０２６、及び３０２８に分割された第１のコア３０２０と、４つのサブコア３０５２、３０５４、３０５６、及び３０５８に分割された第２のコア３０５０とを含むものとして示されている。他の４つのコアは図３０には示されていないが、示された２つのコアと同様である。各サブコアは、図３０に示すように２つのハードウェア・スレッドを有する。各コアをサブコアに分けることにより、サブコアをコアの代わりに仮想マシンに割り当てることができ、その結果、かなりの数の未使用ハードウェア・スレッドが節約される。
【００８１】
スプリットコア・ホストが存在する場合、クラウド・マネージャは、ＶＭのためのホストがスプリットコアをサポートするか否かを判定することができることが有利であり得る。図３１を参照すると、ＣＰＵ要件３１１０は、図５に示すクラウドＶＭ要求５１０の一部であることが好ましい。ＣＰＵ要件３１１０は、ｖＣＰＵ数３１２０及びハードウェア・マルチスレッディング・パラメータ３１３０を指定する。これに従う例は、スプリットコアが、ホストの選択及びそのホスト上へのｖＣＰＵの配置にどのように影響するかを例証する。
【００８２】
図３２を参照すると、ＣＰＵ要件３１１０Ａは、図３１に示すＣＰＵ要件３１１０の１つの適切な例であり、２つのｖＣＰＵ３２２０と、値が２のＳＭＴパラメータ３２３０とを含む。図３０に示すようにスプリットコアがイネーブルにされたＰｏｗｅｒ８  ６コアＣＰＵ３０１０を有する潜在的ホストの場合、潜在的ホストは、図３３に示すように、２つのスレッドが使用された１つのサブコアと、その結果として他のＶＭによって使用することができる３つのサブコアとを有することになる。
【００８３】
図３４の第２のＣＰＵ要件３１１０Ｂは、図３１に示すＣＰＵ要件３１１０の別の適切な例であり、２つのｖＣＰＵ３４２０と、値がＯＦＦに設定されたＳＭＴパラメータ３４３０とを含む。ハードウェア・マルチスレッディングがオフになっているので、図３０に示すようにスプリットコアがイネーブルにされたＰｏｗｅｒ８  ６コアＣＰＵ３０１０を有する潜在的ホストの場合、潜在的ホストは、図３５に示すように、各サブコア当たり１つのスレッドが使用され、その結果として各サブコア内で１つのスレッドが未使用の２つのサブコアと、他のＶＭによって用いることができる２つのサブコアとを有することになる。
【００８４】
図３６の第３のＣＰＵ要件３１１０Ｃは、図３１に示すＣＰＵ要件３１１０の別の適切な例であり、８つのｖＣＰＵ３６２０と、値が２のＳＭＴパラメータ３６３０とを含む。ハードウェア・マルチスレッディング・パラメータが値２を有しているので、図３０に示すようにスプリットコアがイネーブルにされたＰｏｗｅｒ８  ６コアＣＰＵ３０１０を有する潜在的ホストの場合、潜在的ホストは、図３７に示すように、各サブコア当たり２つのスレッドが使用され、その結果として未使用のスレッドがない、４つのサブコアを有することになる。１つの特定の実装において、８つ全てのｖＣＰＵを同じ物理コアの８つのスレッド（４つのサブコア）上に配置することができる。当然のことながら、代替的に、図３７の４つのサブコアを２つ又はそれ以上の物理コア上に配置することができる。
【００８５】
図３８の第４のＣＰＵ要件３１１０Ｄは、図３１に示すＣＰＵ要件３１１０の別の適切な例であり、１２個のｖＣＰＵ３８２０と、値が２のＳＭＴパラメータ３８３０とを含む。ハードウェア・マルチスレッディング・パラメータが値２を有しているので、図３０に示すようにスプリットコアがイネーブルにされたＰｏｗｅｒ８  ６コアＣＰＵ３０１０を有する潜在的ホストの場合、潜在的ホストは、図３９に示すように、各サブコア当たり２つのスレッドが使用された、その結果としてどのサブコアでも未使用のスレッドはない、６つのサブコアを有することになる。１つの特定の実装において、１２個のうち８つのｖＣＰＵを同じ物理コアの８つ全てのスレッド（４つのサブコア）上に配置することができ、残りの４つのｖＣＰＵを、異なる物理コア内の２つのサブコア内の４つのスレッドに配置することができる。当然のことながら、代替的に、図３９の６つのサブコアを３つ又はそれ以上の物理コア上に配置することができる。
【００８６】
図３２、図３４、図３６、及び図３８のＣＰＵ要件の例の全ては、ホストがイネーブルにされたスプリットコアを有する場合についてのものである。ホストがディスエーブルにされたスプリットコアを有する場合、結果は、ホストが、スプリットコアがディスエーブルにされた設定を有すること以外は、先に詳述した図１７〜図２４に示した例と同様である。
【００８７】
図３２、図３６、及び図３８の例は、全て値が２のＳＭＴパラメータを有する。Ｐｏｗｅｒ８サブコアは２スレッドを有するので、ＳＭＴパラメータ内で２スレッドを指定することは、Ｐｏｗｅｒ８ＣＰＵ上へのｖＣＰＵの最も効率的な配置をもたらす。しかしながら、ＳＭＴパラメータは、サブコア上のスレッド数を超える場合があることに留意されたい。例えば、図３６の３６３０のＳＭＴパラメータが値４に設定されていた場合、２スレッドのサブコアを有するホストは要求を満たさないことになる。従って、スプリットコアを有さないホストは、ＳＭＴ設定がサブコアに対するスレッド数を超えたときには潜在的ホストではない。
【００８８】
図４０を参照すると、方法４０００は、ホストコンピュータ・システム上でスプリットコアがイネーブルになっているかどうかを考慮に入れたハードウェア・マルチスレッディング・パラメータを含むクラウドＶＭ要求を用いた、ホストコンピュータ・システムの選択を示す。方法４０００は、図４に示すホスト選択機構４５０によって行われることが好ましい。クラウドＶＭ要求が読み出される（ステップ４０１０）。ＳＭＴがＯＦＦ（ステップ４０２０＝ＹＥＳ）であり、かつ潜在的ホストがイネーブルにされたスプリットコアを有する（ステップ４０３０＝ＹＥＳ）とき、潜在的ホストは、クラウドＶＭ要求内のｖＣＰＵ数を満たすサブコア数を有する場合にこれを選択することができる（ステップ４０４０）。ＳＭＴがＯＦＦ（ステップ４０２０＝ＮＯ）であり、かつ潜在的ホストがディスエーブルにされたスプリットコアを有する（ステップ４０３０＝ＮＯ）とき、潜在的ホストは、クラウドＶＭ要求内のｖＣＰＵ数を満たす物理コア数を有する場合にこれを選択することができる（ステップ４０５０）。ＳＭＴがＯＮ（ステップ４０２０＝ＮＯ）であり、かつ潜在的ホストがイネーブルにされたスプリットコアを有する（ステップ４０６０＝ＹＥＳ）とき、潜在的ホストは、サブコアに対するハードウェア・スレッド数がＳＭＴパラメータ内で指定されたハードウェア・スレッド数を満たすことができ、かつサブコア数がクラウドＶＭ要求内のｖＣＰＵ数をＳＭＴパラメータ内で指定されたハードウェア・スレッド数で割った数を満たすことができる場合にこれを選択することができる（ステップ４０７０）。ＳＭＴがＯＮ（ステップ４０２０＝ＮＯ）であり、かつ潜在的ホストがディスエーブルにされたスプリットコアを有する（ステップ４０６０＝ＮＯ）とき、潜在的ホストは、コアに対するハードウェア・スレッド数がＳＭＴパラメータ内で指定されたハードウェア・スレッド数を満たすことができる場合、かつ物理コア数がクラウドＶＭ要求内のｖＣＰＵ数をＳＭＴパラメータ内で指定されたハードウェア・スレッド数でわったものを満たすことができる場合に選択することができる（ステップ４０８０）。方法４０００は、各潜在的ホストに対して繰り返されることが好ましく、その結果、潜在的ホストのプールが得られ、そこから任意の適切な基準又はヒューリスティックを用いてホストの１つを選択することができることに留意されたい。例えば、ＶＭ要求がより効率的なＣＰＵコア及びスレッドの利用をもたらすことになる場合には、ディスエーブルにされたスプリットコアを有するホストに先んじて、イネーブルにされたスプリットコアを有するホストを選択することができる。方法４０００は、どのようにして、ハードウェア・マルチスレッディング・パラメータ並びにスプリットコア設定及びコア当たりのハードウェア・スレッドに関するホストからの情報が、ｖＣＰＵのより効率的な配置をもたらすことになるホストコンピュータ・システムの選択に対してより良い制御を与えるのかを示す。
【００８９】
図４１を参照すると、ＳＭＴ＝４又はＳＭＴ＝８を伴うＶＭが要求されたときに、フィルタＰｏｗｅｒＫＶＭＳＭＴＦｉｌｔｅｒを用いて、クラウド・マネージャは、イネーブルにされたスプリットコア・モードを有するホストをフィルタで除去することができる。このフィルタは、クラウド・マネージャを補助して、ＶＭに対する潜在的ホストの数をより迅速に絞り込むことができる。
【００９０】
図４２を参照すると、方法４２００は、ｖＣＰＵが選択されたホスト上に配置されることが必要とされたときに開始する（ステップ４２１０）。方法４２００は、図４に示すｖＣＰＵ配置機構４６０によって行われることが好ましい。ＳＭＴがＯＦＦ（ステップ４２２０＝ＹＥＳ）であり、かつホスト上でスプリットコアがイネーブルにされている（ステップ４２３０＝ＹＥＳ）とき、ｖＣＰＵは、異なるサブコア上に配置される（ステップ４２４０）。ＳＭＴがＯＦＦ（ステップ４２２０＝ＹＥＳ）であり、かつホスト上でスプリットコアがディスエーブルになっている（ステップ４２３０＝ＮＯ）とき、ｖＣＰＵは、異なる物理コア上に配置される（ステップ４２５０）。ＳＭＴがＯＮ（ステップ４２２０＝ＮＯ）であり、かつホスト上でスプリットコアがイネーブルにされている（ステップ４２６０＝ＹＥＳ）とき、ｖＣＰＵは、サブコアのスレッド上に配置される（ステップ４２７０）。ＳＭＴがＯＮ（ステップ４２２０＝ＮＯ）であり、かつホスト上でスプリットコアがディスエーブルにされている（ステップ４２６０＝ＮＯ）とき、ｖＣＰＵは、同じ物理コアのスレッド上に配置される（ステップ４２８０）。ｖＣＰＵ数が物理コア内のスレッド数を超えた場合、ｖＣＰＵは、全てのｖＣＰＵに対して必要な数のハードウェア・スレッドを提供する数のコア上に配置されることになることを留意されたい。方法４２００は、どのようにして、ハードウェア・マルチスレッディング・パラメータを指定すること及びスプリットコア設定に関する情報を用いることが、ホストコンピュータ・システム上のｖＣＰＵの配置に対してより良い制御を与えるのかを示す。
【００９１】
スプリットコア及びクラウドＶＭ要求内のハードウェア・マルチスレッディング・パラメータを考慮にいれてＶＭを配置することを可能にするために、クラウド・マネージャは、潜在的ホスト内のＣＰＵ内の物理コア数を知る必要があるのみならず、潜在的ホスト内のＣＰＵによってサポートされるスレッド数、及び潜在的ホスト上でスプリットコアがイネーブルであるか否かもまた知る必要がある。再び図６を参照すると、これは、ステップ６１０で利用可能なリソースを判定することが、利用可能なＣＰＵコアを判定することを含むのみならず、これらのＣＰＵコア上で多重スレッドが利用可能であるかどうか、及びこれらのコア上でスプリットコアがイネーブルであるかどうかを判定することも含むことを意味する。これを達成する１つの方式は、図６のステップ６１０において、利用可能なリソースの一部として、潜在的ホストコンピュータ・システム上でスプリットコアがイネーブルであるかどうかを収集することである。
【００９２】
クラウド・マネージャは、ホストコンピュータ・システム上のＣＰＵによってサポートされるハードウェア・スレッド数、及び１つの実施形態では、ＣＰＵがイネーブルにされたスプリットコアを有するか否かを含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、仮想マシン（ＶＭ）をプロビジョニングすることを求める要求を受け取り、この要求は、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許可されているかどうか（又は１つの実施形態においては、ホストコンピュータ・システム上で要求されるハードウェア・マルチスレッディングの量）を指定するハードウェア・マルチスレッディング・パラメータを含む。１つの実施形態において、クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、ＶＭのためのホストコンピュータ・システムを選択する。別の実施形態において、クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータ、ＣＰＵによってサポートされるハードウェア・スレッド、及びスプリットコア設定を考慮に入れて、ＶＭのためのホストコンピュータ・システムを選択する。ＶＭは次に、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。結果は、仮想マシンのためのホスト内のＣＰＵリソースのより効率的な利用である。
【００９３】
当業者は、特許請求の範囲内の多くの変形が可能であることを認識するであろう。従って、上記で開示が具体的に示され、かつ説明されているが、ここでこれらの及び他の形式及び詳細の変更を特許請求の範囲の思想及び範囲から逸脱することなく行うことができることが当業者には理解されるであろう。
【符号の説明】
【００９４】
１００：クラウド・コンピューティング・ノード
１５２：プログラム・モジュール
２００：クラウド・コンピューティング環境
【図１】
0006628742.tif 000002
【図２】
0006628742.tif 000003
【図３】
0006628742.tif 000004
【図４】
0006628742.tif 000005
【図５】
0006628742.tif 000006
【図６】
0006628742.tif 000007
【図７】
0006628742.tif 000008
【図８】
0006628742.tif 000009
【図９】
0006628742.tif 000010
【図１０】
0006628742.tif 000011
【図１１】
0006628742.tif 000012
【図１２】
0006628742.tif 000013
【図１３】
0006628742.tif 000014
【図１４】
0006628742.tif 000015
【図１５】
0006628742.tif 000016
【図１６】
0006628742.tif 000017
【図１７】
0006628742.tif 000018
【図１８】
0006628742.tif 000019
【図１９】
0006628742.tif 000020
【図２０】
0006628742.tif 000021
【図２１】
0006628742.tif 000022
【図２２】
0006628742.tif 000023
【図２３】
0006628742.tif 000024
【図２４】
0006628742.tif 000025
【図２５】
0006628742.tif 000026
【図２６】
0006628742.tif 000027
【図２７】
0006628742.tif 000028
【図２８】
0006628742.tif 000029
【図２９】
0006628742.tif 000030
【図３０】
0006628742.tif 000031
【図３１】
0006628742.tif 000032
【図３２】
0006628742.tif 000033
【図３３】
0006628742.tif 000034
【図３４】
0006628742.tif 000035
【図３５】
0006628742.tif 000036
【図３６】
0006628742.tif 000037
【図３７】
0006628742.tif 000038
【図３８】
0006628742.tif 000039
【図３９】
0006628742.tif 000040
【図４０】
0006628742.tif 000041
【図４１】
0006628742.tif 000042
【図４２】
0006628742.tif 000043