JP6628742B2 - Method and apparatus for selecting a host for a virtual machine using hardware multithreading parameters - Google Patents
Method and apparatus for selecting a host for a virtual machine using hardware multithreading parameters Download PDFInfo
- Publication number
- JP6628742B2 JP6628742B2 JP2016570094A JP2016570094A JP6628742B2 JP 6628742 B2 JP6628742 B2 JP 6628742B2 JP 2016570094 A JP2016570094 A JP 2016570094A JP 2016570094 A JP2016570094 A JP 2016570094A JP 6628742 B2 JP6628742 B2 JP 6628742B2
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- host computer
- computer system
- host
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Hardware Redundancy (AREA)
Description
本開示は、一般に仮想マシンをホストコンピュータ・システムに配備することに関し、より具体的にはハードウェア・マルチスレッディング・パラメータを用いて仮想マシンのためのホストを選択することに関する。 The present disclosure relates generally to deploying virtual machines on a host computer system, and more particularly, to selecting a host for a virtual machine using hardware multi-threading parameters.
クラウド環境において、クラウド・マネージャは、仮想マシンをホストコンピュータ・システムに対して配備して仮想サーバを作り出す。典型的には、クラウド・マネージャは、仮想マシン・イメージがシステム・リソースについて要求しているもの、例えばメモリ、ディスク及びCPUを指定する要求を受け取る。クラウド・マネージャは次に、要求されたシステム・リソースを有する利用可能なホストコンピュータ・システムを判定し、利用可能なホストコンピュータ・システムの1つを選択し、仮想マシンを選択されたホストコンピュータ・システムに対して配備する。 In a cloud environment, a cloud manager deploys virtual machines to a host computer system to create virtual servers. Typically, the cloud manager receives a request specifying what the virtual machine image is requesting for system resources, such as memory, disk, and CPU. The cloud manager then determines available host computer systems having the requested system resources, selects one of the available host computer systems, and assigns the virtual machine to the selected host computer system. Deploy to
OpenStackは、プライベート及びパブリック・クラウドを構築するためのオープンソース・ソフトウェアである。OpenStackでは、「フレーバー(flavor)」と呼ばれる仮想ハードウェア・テンプレートが、仮想マシンに必要なシステム・リソースを指定する。例えば、OpenStack内のフレーバーは、仮想マシンのためのメモリのサイズ、ルートディスク・サイズ、及び仮想CPU数を指定することができる。仮想マシンが配備されることが必要とされるとき、その仮想マシンのために必要なリソースを指定するフレーバーを伴うクラウド・マネージャに対する呼出しが作成される。クラウド・マネージャは次に、フレーバー内で指定されたリソースを有する1つ又は複数のホストコンピュータ・システムを見つけだし、フレーバーを満たすホストコンピュータ・システムのうちの1つの上に仮想マシンを配備する。 OpenStack is open source software for building private and public clouds. In OpenStack, a virtual hardware template called "flavor" specifies system resources required for a virtual machine. For example, the flavor in OpenStack can specify the size of memory for the virtual machine, the root disk size, and the number of virtual CPUs. When a virtual machine is required to be deployed, a call is made to the cloud manager with a flavor that specifies the required resources for that virtual machine. The cloud manager then finds one or more host computer systems having the specified resources in the flavor and deploys the virtual machine on one of the host computer systems that fills the flavor.
ホスト内のハードウェア・マルチスレッディングは、ホストコンピュータ・システムに対する仮想マシンのプロビジョニングを複雑にする場合がある。従来技術において、ホストコンピュータ・システム上でハイパースレッディングがイネーブルにされている場合、仮想マシンのためのホストコンピュータ・システムを選択するときにハードウェア・スレッド数が考慮され、仮想CPUは、物理コアを顧慮せずにハードウェア・スレッドに対して割り当てられる。ホストコンピュータ・システム上でハイパースレッディングがイネーブルにされていない場合、仮想マシンのためにホストコンピュータ・システムを選択するときに物理プロセッサコアのみが考慮され、仮想CPUは、選択されたホストコンピュータ・システム上にVMがプロビジョニングされるときに物理プロセッサコアに対してのみ割り当てられる。各コア内に多くのハードウェア・スレッドを含むPOWERのような現代のプロセッサ・アーキテクチャでは、結果として、処理リソースの使用が非常に非効率的になる。 Hardware multi-threading within a host can complicate the provisioning of virtual machines to host computer systems. In the prior art, when hyper-threading is enabled on a host computer system, the number of hardware threads is taken into account when selecting a host computer system for a virtual machine, and the virtual CPU allocates physical cores. Assigned to hardware threads without care. If hyperthreading is not enabled on the host computer system, only the physical processor cores are considered when selecting the host computer system for the virtual machine, and the virtual CPU is Are only assigned to physical processor cores when VMs are provisioned. Modern processor architectures such as POWER, which include many hardware threads in each core, result in very inefficient use of processing resources.
仮想マシンのプロビジョニングは、プロセッサがスプリットコアを有しているときにはさらに複雑になり得る。スプリットコア・プロセッサは、多重サブコアに分割することができるCPUコアを指し、このサブコアは各々、多重ハードウェア・スレッドを含むことができ、ここでサブコアは、ゲスト・オペレーティング・システムにとってはコアとして見える。例えば、8つのハードウェア・スレッドを有する、スプリットコアが可能なコアは、各々が2つのハードウェア・スレッドをサポートすることが可能な4つのサブコアに分割することができる。スプリットコアのイネーブルメントは動的であり、これは分割をホスト・オペレーティング・システム上でプログラム的に変更することができることを意味する。既知のクラウド・マネージャは、スプリットコア・プロセッサを、スプリットコアを有さないプロセッサと異なるように扱わない。結果として、既知のクラウド・マネージャは、仮想マシンをプロビジョニングするときにスプリットコア・プロセッサを使用する利点を実現することができない。 Provisioning a virtual machine can be even more complex when the processor has a split core. A split-core processor refers to a CPU core that can be divided into multiple sub-cores, each of which can include multiple hardware threads, where the sub-core appears as a core to a guest operating system . For example, a split-core capable core having eight hardware threads can be divided into four sub-cores, each capable of supporting two hardware threads. The split core enablement is dynamic, which means that the split can be changed programmatically on the host operating system. Known cloud managers do not treat split-core processors differently than processors without split cores. As a result, known cloud managers fail to realize the benefits of using a split-core processor when provisioning virtual machines.
本発明の目的は、ハードウェア・マルチスレッディング・パラメータを用いて仮想マシンのためのホストを選択するための方法及び装置を提供することである。 It is an object of the present invention to provide a method and apparatus for selecting a host for a virtual machine using hardware multi-threading parameters.
第1の態様によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに結合されたメモリと、メモリ内に常駐し、少なくとも1つのプロセッサによって実行されるクラウド・マネージャと、を備えた装置が提供され、クラウド・マネージャは、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数を判定し、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数をさらに判定するホスト監視機構と、仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取るホスト選択機構であって、VM要求を満たすハードウェア・スレッド数を有するCPU数を含む、複数のホストコンピュータ・システムのうちの1つを選択する、ホスト選択機構と、を備える。 According to a first aspect, there is provided an apparatus comprising at least one processor, a memory coupled to the at least one processor, and a cloud manager resident in the memory and executed by the at least one processor. The cloud manager determines the number of CPUs available on the plurality of host computer systems on which the virtual machines can be deployed and determines the number of CPUs supported by each CPU on the plurality of host computer systems. A host monitoring mechanism for further determining the number of threads, and a host selecting mechanism for receiving a virtual machine (VM) request including the number of virtual CPUs and hardware multi-threading parameters, the CPU having a number of hardware threads satisfying the VM request Multiple host computers, including Selecting one of the data system, comprising a host selection mechanism.
第2の態様によれば、少なくとも1つのプロセッサによって実行される、仮想マシンを配備するためのホストコンピュータ・システムを選択するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数を判定することと、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数を判定することと、仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取ることと、VM要求を満たすハードウェア・スレッド数を有するCPU数を含む、複数のホストコンピュータ・システムのうちの1つを選択することと、を含む。 According to a second aspect, there is provided a computer-implemented method for selecting a host computer system for deploying a virtual machine, executed by at least one processor, the method comprising deploying a virtual machine. Determining the number of CPUs available on multiple host computer systems, determining the number of hardware threads supported by each CPU on multiple host computer systems, and determining the number of virtual CPUs. Receiving a virtual machine (VM) request including hardware multi-threading parameters and selecting one of a plurality of host computer systems including a number of CPUs having a number of hardware threads that satisfy the VM request. And including.
本発明は、コンピュータ・プログラムとしても実装することができる。 The present invention can also be implemented as a computer program.
好ましい実施形態によれば、クラウド・マネージャは、ホストコンピュータ・システム上のCPUでサポートされるハードウェア・スレッド数を含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上で必要とされるハードウェア・マルチスレッディングの量を指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン(VM)のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、VMのためのホストコンピュータ・システムを選択する。 According to a preferred embodiment, the cloud manager monitors available resources on the host computer system, including the number of hardware threads supported by the CPU on the host computer system. The cloud manager receives a request for provisioning a virtual machine (VM) that includes hardware multithreading parameters that specify the amount of hardware multithreading required on the host computer system. The cloud manager then selects a host computer system for the VM, taking into account the hardware multi-threading parameters.
1つの実施形態によれば、ハードウェア・マルチスレッディング・パラメータを用いた仮想CPUの配置を伴って行われる解決策が提供される。 According to one embodiment, there is provided a solution performed with the placement of virtual CPUs using hardware multi-threading parameters.
1つの実施形態において、この開示は、一般に仮想マシンをホストコンピュータ・システムに配備することに関し、より具体的には、ハードウェア・マルチスレッディング・パラメータを用いて仮想CPUをホストコンピュータ・システムに配備することに関する。 In one embodiment, this disclosure relates generally to deploying a virtual machine to a host computer system, and more specifically, deploying a virtual CPU to a host computer system using hardware multithreading parameters. About.
1つの実施形態において、スプリットコア・プロセッサを伴うるホストにおける、ハードウェア・マルチスレッディング・パラメータを用いた仮想CPUのプロビジョニングのための解決策が提供される。 In one embodiment, a solution is provided for provisioning a virtual CPU with hardware multithreading parameters in a host with a split-core processor.
1つの実施形態によれば、この開示は、一般に仮想マシンをホストコンピュータ・システムに配備することに関し、より具体的には、ハードウェア・マルチスレッディング・パラメータを用いて仮想CPUを1つ又は複数のスプリットコア・プロセッサを含むホストコンピュータ・システムに配備することに関する。 According to one embodiment, this disclosure relates generally to deploying virtual machines on a host computer system, and more specifically, using a hardware multi-threading parameter to split a virtual CPU into one or more splits. Deploying on a host computer system that includes a core processor.
1つの実施形態によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに結合されたメモリと、メモリ内に常駐し、少なくとも1つのプロセッサによって実行されるクラウド・マネージャと、を備えた装置が提供され、クラウド・マネージャは、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数を判定し、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数をさらに判定するホスト監視機構と、仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取るホスト選択機構であって、VM要求を満たすハードウェア・スレッド数を有するCPU数を含む、複数のホストコンピュータ・システムのうちの1つを選択する、ホスト選択機構と、ハードウェア・マルチスレッディング・パラメータを用いて複数の仮想CPU(vCPU)を選択されたホストコンピュータ・システム上に配置する仮想CPU(vCPU)配置機構と、を備える。 According to one embodiment, there is provided an apparatus comprising at least one processor, memory coupled to the at least one processor, and a cloud manager resident in the memory and executed by the at least one processor. The cloud manager determines the number of CPUs available on the plurality of host computer systems on which the virtual machines can be deployed and determines the number of CPUs supported by each CPU on the plurality of host computer systems. A host monitoring mechanism for further determining the number of threads, and a host selecting mechanism for receiving a virtual machine (VM) request including the number of virtual CPUs and hardware multi-threading parameters, the CPU having a number of hardware threads satisfying the VM request Multiple host con And a virtual CPU (vCPU) that places one or more virtual CPUs (vCPUs) on the selected host computer system using a hardware multithreading parameter to select one of the computer systems. An arrangement mechanism.
1つの実施形態によれば、少なくとも1つのプロセッサによって実行される、複数の仮想CPU(vCPU)をホストコンピュータ・システム上に配置するためコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数を判定することと、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数を判定することと、仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取ることと、VM要求を満たすハードウェア・スレッド数を有するCPU数を含む、複数のホストコンピュータ・システムのうちの1つを選択することと、複数のvCPUを選択されたホストコンピュータ・システム上に配置するためにハードウェア・マルチスレッディング・パラメータを用いることと、を含む。 According to one embodiment, there is provided a computer-implemented method for deploying a plurality of virtual CPUs (vCPUs) executed by at least one processor on a host computer system, the method deploying a virtual machine. Determining the number of available CPUs on the plurality of host computer systems, determining the number of hardware threads supported by each CPU on the plurality of host computer systems, and Receiving a virtual machine (VM) request including a number and hardware multithreading parameters, and selecting one of a plurality of host computer systems including a number of CPUs having a number of hardware threads that satisfy the VM request To select multiple vCPUs Includes the use of hardware multithreading parameters for placement on a host computer system, the.
1つの実施形態によれば、少なくとも1つのプロセッサによって実行される、複数の仮想CPU(vCPU)をホストコンピュータ・システム上に配置するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数、メモリ量、及びディスク・スペース量を判定することと、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数を判定することと、仮想マシン(VM)要求を受け取ることであって、このVM要求が、VMのためのメモリの最小量を指定するメモリ要件と、VMのためのディスクの最小量を指定するディスク要件と、VMのための仮想CPU数及びハードウェア・マルチスレッディング・パラメータを指定するCPU要件とを含み、ここでハードウェア・マルチスレッディング・パラメータの第1の値は、ハードウェア・マルチスレッディングがオフになっていることを示し、ハードウェア・マルチスレッディング・パラメータの第2の値は、ハードウェア・スレッド数についての数値を示し、ハードウェア・マルチスレッディング・パラメータの第3の値は、選択されたホストコンピュータ・システムが該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかかにかかわらず選択されることを示す、VM要求を受け取ることと、VM要求を満たすハードウェア・スレッド数を有するCPU数を含む複数のホストコンピュータ・システムのうちの1つを選択することと、複数のvCPUを選択されたホストコンピュータ・システム上に配置するためにハードウェア・マルチスレッディング・パラメータを用いることであって、ハードウェア・マルチスレッディング・パラメータが、ハードウェア・マルチスレッディングがオフになっていることを示している場合、VM内の各vCPUを選択されたホストコンピュータ・システム内の異なる物理コア上に配置することにより、及び、ハードウェア・マルチスレッディング・パラメータがハードウェア・スレッド数を示している場合、VM内の各vCPUを選択されたホストコンピュータ・システム内の異なるハードウェア・スレッド上に配置することにより、用いることと、を含む。 According to one embodiment, there is provided a computer-implemented method for deploying a plurality of virtual CPUs (vCPUs) on a host computer system, the method being executed by at least one processor, the method comprising deploying a virtual machine. Determining the number of CPUs, the amount of memory, and the amount of disk space available on a plurality of host computer systems, and the hardware supported by each CPU on the plurality of host computer systems. Determining the number of threads and receiving a virtual machine (VM) request, where the VM request specifies a minimum amount of memory for the VM and a minimum amount of disk for the VM. Specifying disk requirements, number of virtual CPUs for VMs, and hardware multithreading A CPU requirement specifying a hardware multithreading parameter, wherein the first value of the hardware multithreading parameter indicates that hardware multithreading is turned off, and the second value of the hardware multithreading parameter. Indicates a numerical value for the number of hardware threads, and the third value of the hardware multi-threading parameter indicates that the selected host computer system has hardware threading on the selected host computer system. Receiving a VM request, indicating that is selected whether it is on or off, and including a number of CPUs having a number of hardware threads that satisfy the VM request. Select one of And using the hardware multi-threading parameter to place the plurality of vCPUs on the selected host computer system, wherein the hardware multi-threading parameter is turned off when hardware multi-threading is turned off. If so, placing each vCPU in the VM on a different physical core in the selected host computer system and the hardware multithreading parameter indicating the number of hardware threads And using each vCPU in the VM by placing it on a different hardware thread in the selected host computer system.
1つの実施形態によれば、上記段落で説明したような方法であって、ハードウェア・マルチスレッディング・パラメータを用いてVMをリサイズすることをさらに含む方法が提供される。 According to one embodiment, there is provided a method as described in the preceding paragraph, further comprising resizing the VM using hardware multi-threading parameters.
1つの実施形態によれば、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに結合されたメモリと、メモリ内に常駐し、少なくとも1つのプロセッサによって実行されるクラウド・マネージャと、を備えた装置が提供され、クラウド・マネージャは、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数、及び複数のホストコンピュータ・システム上の各CPUに対してスプリットコアがイネーブルになっているかどうかを判定するホスト監視機構と、仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取るホスト選択機構であって、VM要求内の仮想CPU数及びハードウェア・マルチスレッディング・パラメータを満たすハードウェア・スレッド数を有するCPU数及びスプリットコア設定を含む、複数のホストコンピュータ・システムのうちの1つを選択する、ホスト選択機構と、を備える。 According to one embodiment, there is provided an apparatus comprising at least one processor, memory coupled to the at least one processor, and a cloud manager resident in the memory and executed by the at least one processor. The cloud manager can determine the number of CPUs available on the multiple host computer systems on which the virtual machines can be deployed, the number of hardware threads supported by each CPU on the multiple host computer systems, A host monitoring mechanism for determining whether a split core is enabled for each CPU on a plurality of host computer systems, and a virtual machine (VM) request including a number of virtual CPUs and hardware multi-threading parameters. Host selection machine to receive Selecting one of the plurality of host computer systems, including the number of virtual CPUs in the VM request and the number of CPUs having the number of hardware threads that satisfy the hardware multithreading parameters and the split core setting. , A host selection mechanism.
1つの実施形態によれば、少なくとも1つのプロセッサによって実行される、複数の仮想CPU(vCPU)をホストコンピュータ・システム上に配置するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数を判定することと、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数を判定することと、複数のホストコンピュータ・システム上の各CPUがイネーブルにされたスプリットコアを有しているかどうかを判定し、有している場合、コア当たりのサブコア数を判定することと、仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取ることと、VM要求内の仮想CPU数及びハードウェア・マルチスレッディング・パラメータを満たすハードウェア・スレッド数を有するCPU数及びスプリットコア設定を含む、複数のホストコンピュータ・システムのうちの1つを選択することと、を含む。 According to one embodiment, there is provided a computer-implemented method for deploying a plurality of virtual CPUs (vCPUs) on a host computer system, the method being executed by at least one processor, the method comprising deploying a virtual machine. Determining the number of CPUs available on the plurality of host computer systems capable of doing so; determining the number of hardware threads supported by each CPU on the plurality of host computer systems; Determine if each CPU on the host computer system has split cores enabled, and if so, determine the number of sub-cores per core; and determine the number of virtual CPUs and hardware Virtual machine (VM) requests containing multi-threading parameters Selecting one of the plurality of host computer systems, including the number of CPUs having a number of virtual threads in the VM request and the number of hardware threads satisfying the hardware multi-threading parameters and the split core setting. To do.
1つの実施形態によれば、少なくとも1つのプロセッサによって実行される、複数の仮想CPU(vCPU)をホストコンピュータ・システム上に配置するためのコンピュータ実装方法が提供され、この方法は、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数、メモリ量、及びディスク・スペース量を判定することと、複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数を判定することと、複数のホストコンピュータ・システム上の各CPUがイネーブルにされたスプリットコアを有しているかどうかを判定することと、仮想マシン(VM)要求を受け取ることであって、このVM要求が、VMのためのメモリの最小量を指定するメモリ要件と、VMのためのディスクの最小量を指定するディスク要件と、VMのための仮想CPU数及びハードウェア・マルチスレッディング・パラメータを指定するCPU要件とを含み、ここでハードウェア・マルチスレッディング・パラメータの第1の値は、ハードウェア・マルチスレッディングがオフになっていることを示し、ハードウェア・マルチスレッディング・パラメータの第2の値は、ハードウェア・スレッド数についての数値を示し、ハードウェア・マルチスレッディング・パラメータの第3の値は、選択されたホストコンピュータ・システムが該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかにかかわらず選択されたことを示す、VM要求を受け取ることと、VM要求内の仮想CPU数及びハードウェア・マルチスレッディング・パラメータを満たすハードウェア・スレッド数を有するCPU数及びスプリットコア設定を含む、複数のホストコンピュータ・システムのうちの1つを選択することと、複数のvCPUを選択されたホストコンピュータ・システム上に配置するためにハードウェア・マルチスレッディング・パラメータ及び選択されたホストコンピュータ・システムのスプリットコア設定を用いることであって、ハードウェア・マルチスレッディング・パラメータが、ハードウェア・マルチスレッディングがオフになっていることを示している場合、VM内の各vCPUを選択されたホストコンピュータ・システム内の異なる物理コア上に配置することにより、及び、ハードウェア・マルチスレッディング・パラメータがハードウェア・スレッド数及び選択されたコンピュータ・システムのスプリットコア設定がイネーブルになっていることを示している場合、VM内の各vCPUを選択されたホストコンピュータ・システム内のCPU内のサブコア内の異なるハードウェア・スレッド上に配置することにより、用いることと、を含む。 According to one embodiment, there is provided a computer-implemented method for deploying a plurality of virtual CPUs (vCPUs) on a host computer system, the method being executed by at least one processor, the method comprising deploying a virtual machine. Determining the number of CPUs, the amount of memory, and the amount of disk space available on a plurality of host computer systems, and the hardware supported by each CPU on the plurality of host computer systems. Determining a number of threads, determining whether each CPU on the plurality of host computer systems has an enabled split core, and receiving a virtual machine (VM) request; This VM request specifies the minimum amount of memory for the VM And the disk requirements specifying the minimum amount of disks for the VM, and the CPU requirements specifying the number of virtual CPUs and the hardware multithreading parameters for the VM, where the hardware multithreading parameters The first value indicates that hardware multi-threading is turned off, the second value of the hardware multi-threading parameter indicates a numerical value for the number of hardware threads, and the hardware multi-threading parameter A third value of the VM request indicates that the selected host computer system has been selected on the selected host computer system regardless of whether hardware threading is on or off. And V Selecting one of a plurality of host computer systems, including a number of CPUs having a number of virtual threads and a number of hardware threads that satisfy a hardware multithreading parameter in the request and a split core setting; using the hardware multithreading parameters and the selected host computer system's split core settings to place the vCPU on the selected host computer system, wherein the hardware multithreading parameters are By placing each vCPU in the VM on a different physical core in the selected host computer system, if it indicates that multithreading is turned off, and If the threading parameters indicate that the number of hardware threads and the split-core setting of the selected computer system are enabled, each vCPU in the VM is loaded into the CPU in the selected host computer system. By placing it on a different hardware thread in the sub-core of the.
1つの実施形態によれば、クラウド・マネージャは、ホストコンピュータ・システム上のCPUによってサポートされるハードウェア・スレッド数を含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許されるのかどうかを指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン(VM)のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、VMのためのホストコンピュータ・システムを選択する。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、VMのためのホストコンピュータ・システムを選択する。VMは次に、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。 According to one embodiment, the cloud manager monitors available resources on the host computer system, including the number of hardware threads supported by the CPU on the host computer system. The cloud manager receives a request for provisioning a virtual machine (VM) that includes hardware multithreading parameters that specify whether hardware multithreading is allowed on the host computer system. The cloud manager then selects a host computer system for the VM, taking into account the hardware multi-threading parameters. The cloud manager then selects a host computer system for the VM, taking into account the hardware multi-threading parameters. The VM is then deployed on the selected host computer system using the hardware multi-threading parameters.
1つの実施形態によれば、クラウド・マネージャは、ホストコンピュータ・システム上のCPUによってサポートされるハードウェア・スレッド数、及びCPUがイネーブルにされたスプリットコアを有しているか否かを含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許されるのかどうかを指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン(VM)のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータ、CPUによってサポートされるハードウェア・スレッド、及びスプリットコア設定を考慮に入れて、VMのためのホストコンピュータ・システムを選択する。VMは次に、ハードおウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。結果は、仮想マシンのためのホスト内のCPUリソースのより効率的な利用である。 According to one embodiment, the cloud manager includes the number of hardware threads supported by the CPU on the host computer system, and whether the CPU has split cores enabled, Monitor available resources on the host computer system. The cloud manager receives a request for provisioning a virtual machine (VM) that includes hardware multithreading parameters that specify whether hardware multithreading is allowed on the host computer system. The cloud manager then selects a host computer system for the VM, taking into account hardware multi-threading parameters, hardware threads supported by the CPU, and split core settings. The VM is then deployed on the selected host computer system using the hardware multi-threading parameters. The result is more efficient utilization of CPU resources in the host for virtual machines.
上記及び他の特徴及び利点は、添付図面に例証されているような、以下の特定の詳細から明らかとなるであろう。 The above and other features and advantages will be apparent from the following specific details, as illustrated in the accompanying drawings.
本発明の実施形態を、例示のみの目的で、以下の図面を参照して説明する。同様の記号は、同様の要素を示す。 Embodiments of the present invention will be described by way of example only with reference to the following drawings. Like symbols indicate like elements.
クラウド・マネージャは、ホストコンピュータ・システム上のCPUによってサポートされるハードウェア・スレッドの数及びCPUがイネーブルにされたスプリットコアを含むか否かを含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許されるのかどうか(又は1つの実施形態において、ホストコンピュータ・システム上で必要とされるハードウェア・マルチスレッディングの量)を指定するハードウェア・マルチスレッディング・パラメータを含む、仮想マシン(VM)のプロビジョニングを求める要求を受け取る。クラウド・マネージャは次に、ハードウェアマルチスレッディングパラメータ、CPUによってサポートされるハードウェア・スレッド、及びスプリットコア設定を考慮に入れて、VMのためのホストコンピュータ・システムを選択する。VMは次に、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。結果は、仮想マシンのためのホスト内のCPUリソースのより効率的な利用である。 The cloud manager determines the available resources on the host computer system, including the number of hardware threads supported by the CPU on the host computer system and whether the CPU includes split cores enabled. To monitor. The cloud manager may specify whether hardware multithreading is allowed on the host computer system (or, in one embodiment, the amount of hardware multithreading required on the host computer system). Receive a request for provisioning a virtual machine (VM), including multi-threading parameters. The cloud manager then selects a host computer system for the VM, taking into account hardware multi-threading parameters, hardware threads supported by the CPU, and split core settings. The VM is then deployed on the selected host computer system using the hardware multi-threading parameters. The result is more efficient utilization of CPU resources in the host for virtual machines.
この開示はクラウド・コンピューティングについての詳細な説明を含んでいるが、本明細書で述べられる教示の実装はクラウド・コンピューティング環境に限定されるものではないことが予め理解される。むしろ、本発明の実施形態は、現在知られている又は後で開発されることになる他の任意の型式のコンピューティング環境と共に実装されることが可能である。 Although this disclosure includes a detailed description of cloud computing, it will be appreciated in advance that the implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be implemented with any other type of computing environment now known or later developed.
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及びリリースすることができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対する便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、及び少なくとも4つの配備モデルを含むことができる。 Cloud computing is a configurable computing resource (eg, network, network bandwidth, server, processing, memory) that can be quickly provisioned and released with minimal administrative effort or service provider interaction. , Storage, applications, virtual machines, and services) to provide convenient on-demand network access to a shared pool. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
特性は以下の通りである。
オンデマンドのセルフサービス:クラウド・コンシューマは、必要に応じて、人間がサービスのプロバイダと対話する必要なく自動的に、サーバ時間及びネットワーク・ストレージといったコンピューティング能力を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマに供されるようにプールされ、異なる物理及び仮想リソースが要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を有さないという点で位置独立感覚であるが、より高次の抽象レベル(例えば、国、州、又はデータセンタ)での位置を指定することができる場合がある。
迅速な弾力性:能力は、迅速かつ弾力的に、場合によっては自動的にプロビジョニングされてすばやくスケール・アウトし、迅速に解放されてすばやくスケール・インすることができる。コンシューマにとっては、プロビジョニングに利用可能な能力は、多くの場合、無制限に見え、いつでもどんな量でも購入することができる。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象レベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告して、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
The characteristics are as follows.
On-demand self-service: Cloud consumers can unilaterally provision computing power, such as server time and network storage, as needed, without the need for human interaction with service providers.
Extensive Network Access: Capabilities are available on the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (eg, mobile phones, laptops, and PDAs). You.
Resource pooling: Provider computing resources are pooled for use by multiple consumers using a multi-tenant model, and different physical and virtual resources are dynamically allocated and re-allocated on demand. Assigned. Consumers are generally position independent in that they have no control or knowledge of the exact location of the resources provided, but at a higher level of abstraction (eg, country, state, or data center). May be specified.
Rapid resilience: Capabilities can be provisioned quickly and resiliently, sometimes automatically provisioned, to quickly scale out, and quickly released to scale in quickly. For consumers, the capacity available for provisioning often looks unlimited and can be purchased in any quantity at any time.
Metered services: The cloud system automatically allocates resource usage by leveraging metering capabilities at some level of abstraction appropriate for the type of service (eg, storage, processing, bandwidth, and active user accounts). Control and optimization. Resource usage can be monitored, controlled, and reported to provide transparency to both service providers and consumers of the services used.
サービス・モデルは以下の通りである。
Software as a Service(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で実行される、プロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザなどのシンクライアント・インタフェースを通じて、種々のクライアントデバイスからアクセス可能である(例えば、ウェブ・ベースの電子メール)。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション能力をも含む基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成されたコンシューマ作成又は取得のアプリケーションを、クラウド・インフラストラクチャ上に配備することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対する制御を有する。
Infrastructure as a Service(IaaS):コンシューマに提供される能力は、コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをそこに配備して実行させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーキング・コンポーネント(例えば、ホストのファイアウォール)選択に対する限定的な制御を有する。
The service model is as follows.
Software as a Service (SaaS): The ability provided to the consumer is to use the provider's application, which runs on the cloud infrastructure. Applications are accessible from various client devices through a thin client interface, such as a web browser (eg, web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
Platform as a Service (PaaS): The ability provided to consumers is to deploy consumer-created or acquired applications created using programming languages and tools supported by the provider on the cloud infrastructure. . Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but have control over deployed applications and, in some cases, application hosting environment configuration.
Infrastructure as a Service (IaaS): The ability provided to a consumer is a process, storage, network, and other that allows the consumer to deploy and execute any software that may include an operating system and applications. Is to provision basic computing resources. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating system, storage, deployed applications, and possibly limited control over networking components (eg, host firewalls). Having.
配備モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、一組織のためだけに運営される。これは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を共有する特定のコミュニティをサポートする。これは、それらの組織又は第三者により管理することができ、オンプレミス又はオフプレミスで存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようにされており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティを残しているが、データ及びアプリケーションのポータビリティを可能にする標準化技術又は専用技術(例えば、クラウド間の負荷平衡のためのクラウド・バースティング)によって互いに結び付けられた、2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の組合せである。
The deployment model is as follows.
Private Cloud: The cloud infrastructure operates for one organization only. It can be managed by the organization or a third party, and can exist on-premises or off-premises.
Community cloud: The cloud infrastructure is shared by several organizations and supports specific communities that share concerns (eg, mission, security requirements, policies, and compliance considerations). It can be managed by those organizations or third parties, and can exist on-premises or off-premises.
Public Cloud: The cloud infrastructure is made available to the general public or large industry groups and is owned by the organization that sells the cloud services.
Hybrid cloud: The cloud infrastructure leaves its own entity, but with standardized or proprietary technologies that enable data and application portability (eg, cloud bursting for load balancing between clouds). A combination of two or more clouds (private, community, or public) tied together.
クラウド・コンピューティング環境は、サービス指向であり、無国籍性、低結合性、モジュール性、及び意味論的相互運用性に焦点を合わせている。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。 Cloud computing environments are service-oriented and focus on statelessness, low connectivity, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
ここで図1を参照すると、クラウド・コンピューティング・ノードの一例のブロック図が示されている。クラウド・コンピューティング・ノード100は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の実施形態の使用又は機能の範囲に関していずれかの限定を示唆することを意図するものではない。いずれにせよ、クラウド・コンピューティング・ノード100は、上述された機能のいずれかを実装及び/又は実施することができる。
Referring now to FIG. 1, a block diagram of an example of a cloud computing node is shown.
クラウド・コンピューティング・ノード100内には、多数の他の汎用又は専用コンピューティング・システム環境若しくは構成と共に動作可能なコンピュータ・システム/サーバ110が存在する。コンピュータ・システム/サーバ110と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び/又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、タブレット・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイスのいずれかを含む分散型クラウド・コンピューティング環境、等が含まれる。
Within the
コンピュータ・システム/サーバ110は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ110は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実行することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔の両方のコンピュータ・システム・ストレージ媒体内に配置されることができる。
Computer system /
図1に示されるように、クラウド・コンピューティング・ノード100内のコンピュータ・システム/サーバ110は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ110のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット120、システム・メモリ130、及び、システム・メモリ130を含む種々のシステム・コンポーネントを処理ユニット120に結合するバス122を含むことができる。
As shown in FIG. 1, the computer system /
バス122は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び、種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。
コンピュータ・システム/サーバ110は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ110がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方、並びに取外し可能媒体及び取外し不能媒体の両方を含む。図1には、取外し可能媒体の例がデジタル・ビデオ・ディスク(DVD)192を含むものとして示されている。
Computer system /
システム・メモリ130は、ファームウェア132などの、揮発性又は不揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。ファームウェア132は、コンピュータ・システム/サーバ110に対するインタフェースを提供する。システム・メモリ130はまた、ランダム・アクセス・メモリ(RAM)134及び/又はキャッシュ・メモリ136といった、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ110は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム140を設けることができる。図示されていないが、取外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブ、及びCD−ROM、DVD−ROM又は他の光媒体などの取外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブを設けることができる。このような例においては、各々は、1つ又は複数のデータ媒体インタフェースによってバス122に接続することができる。以下でさらに示され、説明されるように、メモリ130は、より詳細に後述される機能を実行するように構成されたプログラム・モジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
プログラム・モジュールの組152(少なくとも1つ)を有するプログラム/ユーティリティ150を、限定ではなく例として、オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データと共に、メモリ130内に格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの幾つかの組合せの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール152は、一般に、本明細書において説明される本発明の実施形態の機能及び/又は方法を実行する。
A program /
コンピュータ・システム/サーバ110はまた、キーボード、ポインティング・デバイス、ディスプレイ180、ディスク・ドライブなどといった1つ又は複数の外部デバイス190、ユーザがコンピュータ・システム/サーバ110と対話することを可能にする1つ又は複数のデバイス、及び/又は、コンピュータ・システム/サーバ110が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワークカード、モデムなど)と通信することができる。このような通信は、入力/出力(I/O)インタフェース170を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ110は、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと、ネットワーク・アダプタ160を介して通信することができる。示されるように、ネットワーク・アダプタ160は、コンピュータ・システム/サーバ110の他のコンポーネントと、バス122を介して通信する。図示されないが、コンピュータ・システム/サーバ110と共に他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、Redundant Array of Independent Disk (RAID)システム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが挙げられる。
Computer system /
ここで図2を参照すると、例示的なクラウド・コンピューティング環境200が示される。示されるように、クラウド・コンピューティング環境200は、例えば携帯情報端末(PDA)又は携帯電話210A、デスクトップ・コンピュータ210B、ラップトップ・コンピュータ210C、及び/又は自動車コンピュータ・システム210Nなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスが通信することができる、1つ又は複数のクラウド・コンピューティング・ノード100を含む。ノード100は、互いに通信することができる。これらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくはハイブリッド・クラウド、又はこれらの組合せなどの1つ又は複数のネットワーク内で、物理的又は仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境200は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを提供できるようになる。図2に示されるコンピューティング・デバイス210A−Nのタイプは単なる例示として意図されており、コンピューティング・ノード100及びクラウド・コンピューティング環境200は、あらゆるタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いて)を介して、あらゆるタイプのコンピュータ化された装置と通信できることが理解される。
Referring now to FIG. 2, an exemplary
ここで図3を参照すると、図2のクラウド・コンピューティング環境200によって提供される機能抽象化層の組が示される。図3に示されるコンポーネント、層及び機能は、単なる例証を意図したものであり、開示及び特許請求の範囲はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
Referring now to FIG. 3, a set of functional abstraction layers provided by the
ハードウェア及びソフトウェア層310は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例は、IBM(登録商標)System z(登録商標)システムを一例とするメインフレーム、IBM System p(登録商標)システムを一例とするRISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ、IBM System xシステム、IBM BladeCenterシステム、ストレージ・デバイス、ネットワーク及びネットワーキング・コンポーネントを含む。ソフトウェア・コンポーネントの例は、IBM WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェア、及びIBM DB2(登録商標)データベース・ソフトウェアを一例とするデータベース・ソフトウェアを含む。IBM、System z、System p、WebSphere、及びDB2は、世界中の多くの管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
The hardware and
仮想化層320は、仮想エンティティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる、抽象層を提供する。
The
一例において、管理層330は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別検証、並びにデータ及び他のリソースに対する保護を提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者に対して、クラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理は、必要なサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割当て及び管理を提供する。サービスレベル・アグリーメント(SLA)計画及び履行は、SLAに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。クラウド・マネージャ350は、より詳細に後述するクラウド・マネージャ(又は共有プール・マネージャ)を表す。クラウド・マネージャ350は、図3では管理層330内に常駐するものとして示されているが、クラウド・マネージャ350は、後述するように、図3に示すレベルの全てにわたることができる。
In one example,
ワークロード層340は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例は、マッピング及びナビゲーションと、ソフトウェア開発及びライフサイクル管理と、仮想教室教育配信と、データ解析処理と、トランザクション処理と、モバイル・デスクトップと、を含む。
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する1つ又は複数のコンピュータ可読ストレージ媒体を含むことができる。 The invention can be a system, method, and / or computer program product. The computer program product may include one or more computer readable storage media having computer readable program instructions for causing a processor to perform aspects of the present invention.
コンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持し、格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のものの任意の適切な組合せとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクトディスク読み出し専用メモリ(CD−ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカード若しくは記録された命令を有する溝内に隆起した構造のような機械式コード化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバケーブルを通る光パルス)、又は電線を通って伝送される電気信号のようなそれ自体が一時的な信号と解釈されるべきではない。 The computer readable storage medium may be a tangible device capable of holding and storing instructions for use by the instruction execution device. The computer-readable storage medium can be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. Not limited. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read only memory ( EPROM or flash memory), static random access memory (SRAM), portable compact disk read only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, punch card or recorded instructions And mechanically coded devices, such as raised structures in grooves, and any suitable combinations of the above. A computer-readable storage medium, as used herein, is a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (eg, a light pulse through a fiber optic cable), or It should not be interpreted as a transient signal per se, such as an electrical signal transmitted through a wire.
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードすることも、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び/又は無線ネットワークを経由して、外部コンピュータ若しくは外部ストレージ・デバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及び/又はエッジサーバを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体にストレージのために転送する。 The computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing / processing device, or may be downloaded, for example, over the Internet, a local area network, a wide area network, and / or a wireless network. Via an external computer or an external storage device. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and stores the computer readable program instructions on a computer readable storage medium in the respective computing / processing device. Transfer to
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語及び「C」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む1つ若しくは複数のプログラミング言語の任意の組合せで記述されたソースコード若しくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。 Computer readable program instructions for performing the operations of the present invention include assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or Java, Smalltalk. Source code or object code written in any combination of one or more programming languages, including an object-oriented programming language such as C ++, C ++, and a conventional procedural programming language such as the "C" programming language or a similar programming language It can be either. The computer readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, and partly on the user's computer. It may be performed and run in part on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or a connection to an external computer (Eg, through the Internet using an Internet service provider). In some embodiments, an electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) includes computer readable program instructions to implement aspects of the present invention. By using the state information to personalize the electronic circuit, computer readable program instructions can be executed.
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。 Aspects of the invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を含むようにすることもできる。 These computer readable program instructions are provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing device to produce a machine, and thereby executed by a computer or other processor of a programmable data processing device. The instructions may create means for implementing the specified function / operation in one or more blocks of the flowcharts and / or block diagrams. These computer program instructions are stored in a computer readable medium capable of directing a computer, programmable data processor, and / or other device to function in a particular manner, whereby A computer-readable medium having stored instructions may include a product that includes instructions that implement aspects of a function / operation specified in one or more blocks of the flowcharts and / or block diagrams.
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。 Computer readable program instructions are loaded onto a computer, other programmable data processing device or other device, and a series of operating steps are performed on the computer, another programmable data processing device or other device, and the computer implementation , Whereby instructions executed on a computer, other programmable device or other device implement specified functions / acts in one or more blocks of flowcharts and / or block diagrams. It can also be done.
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。 The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of the systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of an instruction, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, depending on the functions involved, or they may sometimes be executed in the reverse order. Each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, can also be implemented by dedicated hardware-based systems that perform the specified functions or operations, or Note also that a combination of dedicated hardware and computer instructions may be implemented.
図4は、図3に示すクラウド・マネージャ350の1つの適切な例を示す。クラウド・マネージャ350は、リソース要求インタフェース420を含むクラウド・プロビジョニング機構410を含む。リソース要求インタフェース420は、ソフトウェア・エンティティがクラウド・マネージャ350から人間が介在することなく仮想マシンを要求することを可能にする。クラウド・マネージャ350はまた、ユーザがクラウド・マネージャと対話して、VMのプロビジョニング、VMの破棄、クラウドの性能解析などを含むいずれかの適切な機能を行うことを可能にするユーザ・インタフェース430を含む。リソース要求インタフェース420とユーザ・インタフェース430との違いは、ユーザ・インタフェース430は、ユーザが該ユーザによって指定された機能を実行させるために手動で用いる必要があるのに対して、リソース要求インタフェース420は、ソフトウェア・エンティティが、人間のユーザからの入力なしで、クラウド機構350によるクラウドリソースのプロビジョニングを要求するために用いることができることである。
FIG. 4 shows one suitable example of the
クラウド・マネージャ350はまた、潜在的ホストコンピュータ・システム上の利用可能なリソースを監視し、クラウド・マネージャ350が、VMに対して指定されたリソースと潜在的ホストコンピュータ・システム上の利用可能なリソースとを比較することができるようにする、ホスト監視機構440を含む。ホスト選択機構450は、要求されたVMに対して指定されたリソースと潜在的ホストコンピュータ・システム上の利用可能なリソースとの比較に基づいて、潜在的ホストコンピュータ・システムを選択することを可能にする。vCPU配置機構460は、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上にvCPUを配置する。VMリサイズ機構470は、元のVMがハードウェア・マルチスレッディング・パラメータを用いていない場合であっても、ハードウェア・マルチスレッディング・パラメータを用いた方式で既存のVMをリサイズすることを可能にする。
The
図5は、クラウド・マネージャ350によってVMがプロビジョニングされることを要求するために図4のクラウド・プロビジョニング機構410上のリソース要求インタフェース420を介して又はユーザ・インタフェース430を介して提出することができる、クラウドVM要求510の1つの適切な例を示す。クラウドVM要求510は、VM上で必要とされるリソースに関する要件の任意の仕様を含むことができる。適切な要件の例は、メモリ要件520、ディスク要件530、及びCPU要件540を含む。メモリ要件520は、VMに対して必要なメモリ量を指定する。ディスク要件530は、VMに対して必要なディスクの量を指定する。CPU要件540は、VMに対して必要な仮想CPU数を指定し、また、より詳細に後述するようにハードウェア・マルチスレッディング・パラメータも指定する。当然、図5に示されていない他の要件、例えばネットワーク要件及び他の任意の適切な要件をVMに対して指定することができる。従来技術において、OpenStackは、「フレーバー」と呼ばれるものをクラウドVM要求として用いており、これはVM上のリソースに対する最小限の要件を指定する。
FIG. 5 can be submitted via the
図6を参照すると、方法600は、潜在的ホストコンピュータ・システム上の利用可能なリソースを監視するために、好ましくは図4のホスト監視機構440によって行われる。潜在的ホストコンピュータ・システム上の利用可能なリソースが判定され(ステップ610)、ログが取られる(ステップ620)。方法600を実装するための1つの既知の方式は、ホストにその利用可能なリソースを照会するドライバを用いる。
Referring to FIG. 6, a
図7を参照すると、方法700は、クラウドVM要求を受け取ることによって開始する(ステップ710)。次に、クラウドVM要求内のリソース要件を潜在的ホストコンピュータ・システム上の利用可能なリソースと比較する(ステップ720)。ステップ720における利用可能なリソースは、図6のステップ620において作成したログから読み出すことができることに留意されたい。次いで、クラウドVM要求内のリソース要件を満たすリソースを有するホストが選択される。(ステップ730)。次いで、選択されたホストコンピュータ・システム上にVMが配備される(ステップ740)。
Referring to FIG. 7, the
多くの現代のプロセッサ(又はCPU)は、複数の処理コアを含む。マルチコア・プロセッサの1つの例は、図8に示すx86デュアルコアCPU810である。x86デュアルコアCPU810は、2つのハードウェア・スレッド822及び824を有する第1のコア820と、2つのハードウェア・スレッド842及び844を有する第2のコア840とを含む。各コア上に複数のハードウェア・スレッドが存在することは、ホストコンピュータ・システムに対するVMのプロビジョニングにおける問題を生じさせる場合がある。従来技術において、マルチコアCPU内のハードウェア・スレッド数は典型的には無視され、物理コアのみが考慮に入れられる。例えば、図9の従来技術の方法900は、クラウドVM要求を読み出し(ステップ910)、次いで、クラウドVM要求内のvCPU数を満たす物理コア数を有するホストを選択する(ステップ920)。図10に示すような従来技術のCPU要件1010は、仮想CPU(vCPU)数を指定し、これは図5に示すCPU要件540についての1つの適切な例である。方法900は、VMのためのホストを選択するときに物理コアのみを用いるので、コア上の複数のハードウェア・スレッドは十分に活用されず、そのため利用可能なCPUリソースが利用されない。他の従来技術において、ホストのハイパースレッディングがイネーブルにされているとき、ハードウェア・スレッド数が考慮に入れられ、ハードウェア・スレッドに対するvCPUの配置は、物理コアを顧慮せずに行われる。ある種のワークロードは異なるコア上のスレッドの活用から利益を得る一方で、他のワークロードは同じコアに対するスレッドによってより良好なサービス提供を受けるので、この手法は非効率的なVMをもたらすことになる。
Many modern processors (or CPUs) include multiple processing cores. One example of a multi-core processor is the x86 dual-
図9のステップ920は、VM要求を満たすホストコンピュータ・システムを選択するための任意の適切な基準又はヒューリスティックを含むことができる。例えば、物理コア数を何らかのオーバーコミット比、例えば2.0により増やすことができる。従って、あるホストが利用可能な3つの物理コアを有する場合、3つの物理コアに2.0のオーバーコミット比を掛けると利用可能なプロセッサは6になり、これは、6つのvCPUを必要とするVMは、そのホスト上に配備することができるが、7つのvCPUを必要とするVMは配備することができないことを意味する。単純な例を例証する。 Step 920 of FIG. 9 may include any suitable criteria or heuristics for selecting a host computer system that meets the VM requirements. For example, the number of physical cores can be increased by some overcommit ratio, for example, 2.0. Thus, if a host has three physical cores available, multiplying three physical cores by an overcommit ratio of 2.0 results in six available processors, which requires six vCPUs. VMs can be deployed on that host, which means that VMs that require seven vCPUs cannot be deployed. Illustrate a simple example.
図11は、3つのデュアルコアx86CPUを含むサンプルの潜在的ホストコンピュータ・システムを表す。このホストは、図11内でコアの網掛けで示されているようにCPU1内の2つの物理コア及びCPU2内の2つの物理コアのうちの第1のコアに対して配備された、既にその上で稼働している図12に示すVM1を有するものと仮定する。さらに図12に示すVM2を配備する必要があるものと仮定する。利用可能なコアの数が判定され、これは、例えば図11の例では9であり、すなわち6つのコアにオーバーコミット比2を掛け、そこから図11に示す潜在的ホスト(Potential Host)1内でVM1によって使用されている3つのコアを差し引いたものである。VM2は2つのvCPUを必要とし、潜在的ホスト1は9つの利用可能なコアを有しているので、潜在的ホスト1は、図12に示すVM2に対して有効な潜在的ホストである。
FIG. 11 illustrates a sample potential host computer system including three dual-core x86 CPUs. This host has already been deployed to the two physical cores in CPU1 and the first of the two physical cores in CPU2, as indicated by the shaded cores in FIG. Assume that we have the VM1 shown in FIG. 12 running above. It is further assumed that the
潜在的ホスト上へのvCPUの実際の配置は、VMのための潜在的ホストの選択とは分離したステップであることに留意されたい。図13を参照すると、方法1300は、クラウドVM要求を読み出すことによって開始する(ステップ1310)。次いでクラウドVM要求内のvCPUが物理コア上に配置される(ステップ1320)。図11において、CPU1の第1及び第2のコア並びにCPU2の第1のコアのスレッドT1は、網掛けされており、図12に示すVM1内の2つのvCPUがこれら3つの対応するコア上に配置されたことを示す。しかしながら、配置は静的ではないことに留意されたい。異なる時点において、vCPUは、いずれかのアクティブ・コア上のいずれかのハードウェア・スレッド上で稼働することができる。ハイパースレッディングを用いると、割り当てられた3つのデュアルコア内に全部で12のハードウェア・スレッドが存在する。VM1は、これらのスレッドのうち3つを取り、他のVMのために9つを残す。しかしながら、vCPUは、スレッドのいずれかに対して割り当てられ、このことは、メモリを共有するオペレーティング・システム・スレッド内で実行される作業は同じvCPUのハードウェア・スレッド内で最良に実行されることになるが、一方、独立したオペレーティング・システム・スレッド内で実行される作業は、異なるコアのハードウェア・スレッド内でより良く実行されることを意味する。従って、従来技術は、潜在的ホストに対するVMの割当ては、現行ではCPU上のハードウェア・スレッドとコアとの間の差を考慮に入れていないので、VMに対して潜在的ホストが識別される方式及び選択されたホスト上でVMが実行される方式において非効率性を生じさせることになる。
Note that the actual placement of the vCPU on the potential host is a separate step from the selection of the potential host for the VM. Referring to FIG. 13, the
従来技術は、仮想CPUを配備することができるエンティティとして物理プロセッサコア又はハードウェア・スレッドのどちらかを認識するが、両方は認識しない。ハイパースレッディングを用いない場合、図8に示すような単一のデュアルコアCPUは、その2つの物理コア820及び840の形態の2つの利用可能なCPUを有し、そこにvCPUを配備することができる。ハイパースレッディングを用いる場合、単一のデュアルコアCPUは、より多くのvCPUをサポートすることができるが、vCPUが同じ物理コア上又は異なるコア上のどちらのハードウェア・スレッドで実行されるのかは決定論的ではない。本明細書の開示及び請求項は、より細かいレベルの粒度を作り出し、vCPUが、単に単一の物理コア又は単一のハードウェア・スレッドに対して割り当てられるのではなく、複数のハードウェア・スレッドに割り当てられることが必要とされることを認識する。
The prior art recognizes either a physical processor core or a hardware thread as an entity on which a virtual CPU can be deployed, but not both. Without hyper-threading, a single dual-core CPU as shown in FIG. 8 would have two available CPUs in the form of its two
vCPUが単一のハードウェア・スレッド又はコアのどちらかに割り当てられる問題は、ハードウェア・スレッド数が増えると悪化する。図8及び図11に示すx86デュアルコアCPUの場合、ハイパースレッディングは、1コア当たり2つのスレッドをもたらす。もっと多くのハードウェア・スレッドを有するプロセッサの場合、問題はより顕著になる。例えば、図14に示すPower8 6コアCPU1410は、8つのハードウェア・スレッド1432、1434、1436、1438、1442、1444、1446及び1448を含む第1のコア1420と、同様に8つのハードウェア・スレッド1462、1464、1466、1468、1472、1474、1476及び1478を含む第2のコア1450とを含むように示されている。図14には他の4つのコアは示されていないが、示された2つのコアと同様である。図9の従来技術の方法900で示すようにホストが物理コア数に基づいて選択される場合、ハードウェア・スレッドの多くが使用されないことになる。従って、2つのvCPUが図14に示す2つのコア1420及び1450に配備された場合、結果として、各コア上の8つのハードウェア・スレッドのうち7つを無駄にすることになる。正味の結果は、あらゆる所与の時点で2つのコアの16スレッドのうち2つしか用いられないことであり、これは16ハードウェア・スレッドのうち14を無駄にすることになる。このことは、図9に示す従来技術の方法900を用いると、2つのPower8コア上の16個の利用可能な処理リソースのうち2つ(12.5%)しか利用できないことを意味する。代替的に、コア当たり多数のハードウェア・スレッドが存在するときにvCPUがハードウェア・スレッドに割り当てられた場合、高度の並列性及び共有メモリを必要とするワークロードを有するVMは、そのVMのための他のvCPUと同じ物理コア上に位置していることによって、多くの物理コアにわたって分散した場合よりもより良好な性能を得ることになる。
The problem of assigning a vCPU to either a single hardware thread or a core is exacerbated as the number of hardware threads increases. For the x86 dual-core CPU shown in FIGS. 8 and 11, hyperthreading results in two threads per core. The problem is more pronounced for processors with more hardware threads. For example, a Power8 6-
上記で図14を参照して説明したようにこれだけ多くの未使用スレッド又はvCPUが物理コアにわたって分散するという問題を回避するために、潜在的なホストを識別しVMを配備するための新規方式は、単なる物理コア又は単一のハードウェア・スレッドの代わりに物理コア内の複数のハードウェア・スレッドにvCPUを割り当てることができるという原理に基づいて、クラウドVM要求内のハードウェア・マルチスレッディング・パラメータを用いて、ハードウェア・スレッドを考慮に入れる。これは、ハードウェア・マルチスレッディングに関連した、クラウドVM要求内の新規パラメータを用いて行われる。本明細書の特定の例に関して、このハードウェア・マルチスレッディング・パラメータは「SMT」パラメータと呼ばれ、これは当該分野でCPU上のハードウェア・マルチスレッディングを説明するために用いられる既知の用語である対称的マルチスレッディング(Symmetric Multithreading)を表す。図15を参照すると、方法1500は、クラウドVM要求内のSMTパラメータを、1つの実施形態ではコア当たりのハードウェア・スレッド数及びスプリットコア設定に関したホストに関する情報をと共に用いて、開始し、ホストコンピュータ・システムを選択する(ステップ1510)。ひとたびホストコンピュータ・システムが選択されると、クラウドVM要求内の同じSMTパラメータを用いて、選択されたホスト上にVMを配備するときのvCPUについての配置決定を行うことができる(ステップ1520)。1つの実施形態において、コア当たりのハードウェア・スレッド数及びスプリットコア設定に関したホストに関する情報もまた、選択されたホスト上にVMを配備するときのvCPUについての配置決定を行うために用いることができる(ステップ1520)。
To avoid the problem of distributing so many unused threads or vCPUs across physical cores as described above with reference to FIG. 14, a new scheme for identifying potential hosts and deploying VMs is: Based on the principle that vCPUs can be assigned to multiple hardware threads in a physical core instead of just a physical core or a single hardware thread, the hardware multi-threading parameter in the cloud VM request is Used to take hardware threads into account. This is done using new parameters in the cloud VM request related to hardware multi-threading. For the particular example herein, this hardware multi-threading parameter is called the "SMT" parameter, which is a well-known term used in the art to describe hardware multi-threading on a CPU. Represents Symmetric Multithreading. Referring to FIG. 15, a
図10は、クラウドVM要求に対する従来技術のCPU要件1010が、VM上で必要とされるvCPU数1020を指定することを含むことを示す。本明細書の開示及び特許請求の範囲による図16に示すクラウドVM要求1610は、vCPU数1620を含むが、付加的にハードウェア・マルチスレッディング(SMT)パラメータ1630を含む。SMTパラメータの値は、ハードウェア・マルチスレッディングがオフになっていることを示すゼロとすることもでき、又はハードウェア・スレッド数を表す2の累乗とすることもできる。幾つかの例を示す。図17を参照すると、CPU要件1610Aは、図16に示すCPU要件1610の1つの適切な例であり、2つのvCPU1720と、値が2のSMTパラメータ1730とを含む。図14に示すようなPower8 6コアCPU1410を有する潜在的ホストの場合、潜在的ホストは、図18に示すように、2つのスレッドが使用され、その結果として6つのスレッドが未使用の、1つのコアを有することになる。
FIG. 10 illustrates that prior
図19の第2のCPU要件1610Bは、図16に示すCPU要件1610の別の適切な例であり、2つのvCPU1920と、ハードウェア・マルチスレッディングがオフになっていることを示す値のSMTパラメータ1930とを含む。ハードウェア・マルチスレッディングがオフであるので、図14に示すようなPower8 6コアCPU1410を有する潜在的ホストの場合、潜在的ホストは、図20に示すように、各コア内の1つのスレッドが使用され、その結果として2つのコア内の14のスレッドが未使用の、2つのコアを有することになる。SMTパラメータがオフになっている図19のCPU要件1610Bに対する潜在的ホストの正味の結果は、ハイパースレッディングをディスエーブルにされているときの図10に示す従来技術のCPU要件1010と同じであり、なぜならホストのハイパースレッディングがディスエーブルにされているとき、従来技術のCPU要件1010はいかなるハイパースレッディングも考慮に入れないからであることに留意されたい。従来技術において、ハイパースレッディングがイネーブルにされた場合、どのコアのハードウェア・スレッドがvCPUを処理することになるのか予測できない。ハードウェア・マルチスレッディングを考慮に入れたハードウェア・マルチスレッディング・パラメータについての値を指定することで、潜在的ホスト上の未使用ハードウェア・スレッド数を減らすことができ、かつ、どのvCPUが同じコア上で実行されるのかを制御することができる。
The
図16〜図19の例は、ハードウェア・マルチスレッディング・パラメータが、どのようにvCPUが配備されるかに対して、どのようにさらなる制御を与えるかを示す。例えば、同じコア上で実行される2つのスレッドは、そのコアが利用可能なキャッシュ・メモリに対する非常に高性能なアクセスを有することになるので、2つのvCPUを伴うVMが同じデータに対して動作するジョブを実行する場合、2つのvCPUは、図17及び図18に示すように同じコア内の2つの異なるハードウェア・スレッドに配備されることが望ましい場合がある。2つのvCPUを伴うVMが互いに独立したジョブを実行する場合、2つのvCPUは、図19及び図20に示すように、2つの異なるコアに配備されることが望ましい場合がある。 The examples of FIGS. 16-19 show how the hardware multithreading parameters give more control over how the vCPUs are deployed. For example, two threads running on the same core will have very high performance access to the cache memory available to that core, so a VM with two vCPUs will operate on the same data When executing two jobs, it may be desirable for the two vCPUs to be deployed on two different hardware threads within the same core, as shown in FIGS. When a VM with two vCPUs executes independent jobs, it may be desirable for the two vCPUs to be deployed on two different cores, as shown in FIGS.
図21の第3のCPU要件1610Cは、図16に示すCPU要件1610の別の適切な例であり、8つのvCPU2120と、値が8のSMTパラメータ2130とを含む。図14に示すようなPower8 6コアCPU1410を有する潜在的ホストの場合、潜在的ホストは、図22に示すように、8つ全てのスレッドが使用され、その結果として未使用のスレッドが存在しない1つのコアを有することになる。
The
図23に示す第4のCPU要件1610Dは、図16に示すCPU要件1610の別の適切な例であり、12個のvCPU2320と、値が4のSMTパラメータ2330とを含む。図14に示すようなPower8 6コアCPU1410を有する潜在的ホストの場合、潜在的ホストは、図24に示すように、各コア内で4つのスレッドが使用され、その結果として12のスレッドが未使用の3つのコアを有することになる。これらの単純な例は、ホストコンピュータ・システムを選択する際にハードウェア・マルチスレッディング・パラメータを指定することが、どのようにvCPUがホストコンピュータ・システムに配備されるかということに対して、どのように制御を与えるかを示す。
The
図17〜図24に示す例は、vCPUが各々の利用可能なスレッドに配備されることができることを前提としていることに留意されたい。図9〜図12に関する上記議論は、CPU数をある量だけ増やす「オーバーコミット比」を論じている。同様のオーバーコミット比を、本明細書の開示及び特許請求の範囲によりホストコンピュータ・システムを選択することに適用することができる。 Note that the examples shown in FIGS. 17-24 assume that a vCPU can be deployed on each available thread. The discussion above with respect to FIGS. 9-12 discusses an "overcommit ratio" that increases the number of CPUs by a certain amount. Similar overcommit ratios can be applied to selecting a host computer system according to the disclosure and claims herein.
図25を参照すると、方法2500は、図16、図17、図19、図21及び図23に示すようにハードウェア・マルチスレッディング・パラメータが指定されたときに、ホストを選択する。クラウドVM要求を読み出す(ステップ2510)。SMTパラメータがOFF(ステップ2520=YES)の場合、クラウドVM要求内のvCPU数を満たす物理コア数を有するホストが選択される(ステップ2530)。ステップ2530は、図9の従来技術の方法900におけるステップ920と同様であることに留意されたい。SMTパラメータがON(ステップ2520=NO)の場合、SMTパラメータ内の数を満たすコア当たりのスレッド数、及びクラウドVM要求内のvCPU数をSMTパラメータ内で指定されたスレッド数で割った数を満たすコア数を有するホストが選択される(ステップ2540)。これは、クラウドVM要求内のvCPU数を満たすハードウェア・スレッド数を有するホストを選択する1つの具体的な方式である。方法2500は、次いで終了する。
Referring to FIG. 25, the
ひとたびホストコンピュータ・システムが選択されると、選択されたホスト上にVMのためのvCPUを配置することができる。図26を参照すると、方法2600は、選択されたホスト上にvCPUが配置されることが必要とされるときに開始する(ステップ2610)。SMTパラメータがオフ(ステップ2620=YES)の場合、各vCPUは、異なる物理コア上に配置される(ステップ2630)。SMTパラメータがオン(ステップ2620=NO)の場合、vCPUは、同じ物理コア上の異なるハードウェア・スレッド上に配置することができる(ステップ2640)。方法2600は、次いで終了する。
Once the host computer system is selected, a vCPU for the VM can be placed on the selected host. Referring to FIG. 26,
クラウドVM要求内のハードウェア・マルチスレッディング・パラメータを用いる場合、クラウド・マネージャは、潜在的ホスト内のCPU内の物理コア数を知る必要があるのみならず、潜在的ホスト内のCPUによってサポートされるスレッド数も知る必要がある。これは、ホストの単一コアが、クラウドVM要求に対して指定されたスレッド数をサポートすることができることを保証するためのである。再び図6を参照すると、これは、ステップ610において利用可能なリソースを判定することが、利用可能なCPUコアを判定することを含むのみならず、これらのCPUコア上で多重スレッドが利用可能であるかどうかを判定することも含むことを意味する。これを達成する1つの方式は、図6のステップ610において、利用可能なリソースの一部として、ホストコンピュータ・システムによってサポートされる最大SMT設定を収集することである。この1つの例を図27に示し、ここでmax_guest_smtは、潜在的ホストコンピュータ・システムがハードウェア・マルチスレッディングをサポートするか否かを示す、図4のホスト監視機構440によって収集された値を示す。max_guest_smtがとり得る値は、ホストコンピュータ・システム上でSMTがオフになっていることを示すゼロ、及び各CPU上で利用可能なハードウェア・スレッド数を示す2の累乗の数である。ホストコンピュータ・システム内の全てのCPUが同じ型式である場合、max_guest_smtは、ホストコンピュータ・システム内のCPUの全てに適用される単一値になる。ホストコンピュータ・システムが異なる数のハードウェア・スレッドを含む異なる型式のCPUを含む場合、ホストコンピュータ・システム内の各CPUに対して異なるmax_guest_smtが存在し得る。
When using hardware multi-threading parameters in the Cloud VM request, the cloud manager not only needs to know the number of physical cores in the CPU in the potential host, but also is supported by the CPU in the potential host You also need to know the number of threads. This is to ensure that a single core of the host can support the specified number of threads for Cloud VM requests. Referring again to FIG. 6, this means that determining available resources in
OpenStackは、現在、ゲストCPUの所望のトポロジーの指定を補助するいかなる既存のサポートも有していない。本明細書で論じるハードウェア・マルチスレッディング・パラメータの追加を実装する1つの方式は、図28に示すようにOpenStackフレーバーに付加的な仕様を追加することである。パラメータpowerkvm:smtは、ゲストVMに対する所望のSMT値を指定するOpenStackフレーバーにおける新規パラメータである。このパラメータがとり得るは、「気にしない(don’t care)」を示す−1、SMTがオフであることを示すゼロ、又は幾つかの2の累乗数であることに留意されたい。潜在的ホスト上のハードウェア・マルチスレッディングに関する情報を収集する能力をmax_guest_smt設定内に含めることにより、及びハードウェア・マルチスレッディングの所望のレベルを指定する能力をOpenStackフレーバー内に含めることにより、本明細書の開示及び特許請求の範囲は、VMを配備するための潜在的ホストコンピュータ・システムを選択する、及びこれらのVMをホストコンピュータ・システムのハードウェア・マルチスレッディング能力をより活用した方式で配備する、大いに改善された方式を提供し、これによりホストコンピュータ・システム上のCPUリソースの利用を改善する。 OpenStack does not currently have any existing support to assist guest CPUs in specifying the desired topology. One way to implement the addition of hardware multithreading parameters discussed herein is to add additional specifications to the OpenStack flavor, as shown in FIG. The parameter powerkvm: smt is a new parameter in the OpenStack flavor that specifies the desired SMT value for the guest VM. Note that this parameter can be -1 to indicate "don't care", zero to indicate that SMT is off, or some power of two. By including the ability to gather information about hardware multithreading on potential hosts in the max_guest_smt setting and the ability to specify the desired level of hardware multithreading in the OpenStack flavor, The disclosure and claims greatly improve the selection of potential host computer systems for deploying VMs, and deploying these VMs in a manner that makes better use of the hardware multi-threading capabilities of the host computer system. And provides improved utilization of CPU resources on the host computer system.
本明細書で論じたハードウェア・マルチスレッディング・パラメータはまた、VMリサイズ動作において用いることもできる。往々にして、VMは、より多い又はより少ないリソースを有する必要があるので、これをリサイズしてVMに配備されるリソースを追加又は低減することができる。VMをリサイズするための1つの適切な方式は、VMに対するリソース割当てを変更するOpenStackフレーバーを指定することによる。VMをリサイズするとき、OpenStackフレーバーは、上述の図28に示すpowerkvm:smtパラメータを有する場合がある。図29は、図4に示すVMリサイズ機構によって行われることが好ましいVMをリサイズするための方法2900を示す。既存のVMのリサイズ動作のためのフレーバーを読み出す(ステップ2910)。ステップ2910において参照されるフレーバーは、VMに対するリソースの新たな(すなわちリサイズされた)割当てを伴うフレーバーである。フレーバーがSMTパラメータを含まない(ステップ2920=NO)場合、VMのSMTパラメータはOFFに設定される(ステップ2930)。フレーバーがSMTパラメータを含む(ステップ2920=YES)場合、SMTパラメータの値がOFF又は「気にしない」であるとき(ステップ2940=YES)、VMのSMTパラメータはOFFに設定される(ステップ2930)。フレーバー内のSMTが2の累乗の値を有するとき(ステップ2940=NO)、VMのSMTパラメータは、フレーバー内で指定されたSMTの値に設定される(ステップ2950)。方法は、次いで終了する。方法2900は、SMTパラメータを用いるために既存のVMを本質的に「レトロフィット」する方式を可能にする。
The hardware multi-threading parameters discussed herein can also be used in VM resizing operations. Often, a VM needs to have more or less resources, so it can be resized to add or reduce the resources deployed to the VM. One suitable way to resize a VM is by specifying an OpenStack flavor that changes the resource allocation for the VM. When resizing a VM, the OpenStack flavor may have the powerkvm: smt parameter shown in FIG. 28 above. FIG. 29 illustrates a
Power8 6コアCPUは、サブコアをサポートし、これは、スプリットコアがイネーブルにされたとき、各コア内の8つのスレッドを各々2つのスレッドのサブコアに分割することができることを意味する。スプリットコアがイネーブルにされたPower8 6コアCPU3010は、図30に、4つのサブコア3022、3024、3026、及び3028に分割された第1のコア3020と、4つのサブコア3052、3054、3056、及び3058に分割された第2のコア3050とを含むものとして示されている。他の4つのコアは図30には示されていないが、示された2つのコアと同様である。各サブコアは、図30に示すように2つのハードウェア・スレッドを有する。各コアをサブコアに分けることにより、サブコアをコアの代わりに仮想マシンに割り当てることができ、その結果、かなりの数の未使用ハードウェア・スレッドが節約される。
The Power8 6-core CPU supports sub-cores, which means that when split cores are enabled, the eight threads in each core can be divided into sub-cores of two threads each. The
スプリットコア・ホストが存在する場合、クラウド・マネージャは、VMのためのホストがスプリットコアをサポートするか否かを判定することができることが有利であり得る。図31を参照すると、CPU要件3110は、図5に示すクラウドVM要求510の一部であることが好ましい。CPU要件3110は、vCPU数3120及びハードウェア・マルチスレッディング・パラメータ3130を指定する。これに従う例は、スプリットコアが、ホストの選択及びそのホスト上へのvCPUの配置にどのように影響するかを例証する。
If a split core host is present, it may be advantageous for the cloud manager to be able to determine whether the host for the VM supports split core. Referring to FIG. 31, the
図32を参照すると、CPU要件3110Aは、図31に示すCPU要件3110の1つの適切な例であり、2つのvCPU3220と、値が2のSMTパラメータ3230とを含む。図30に示すようにスプリットコアがイネーブルにされたPower8 6コアCPU3010を有する潜在的ホストの場合、潜在的ホストは、図33に示すように、2つのスレッドが使用された1つのサブコアと、その結果として他のVMによって使用することができる3つのサブコアとを有することになる。
Referring to FIG. 32,
図34の第2のCPU要件3110Bは、図31に示すCPU要件3110の別の適切な例であり、2つのvCPU3420と、値がOFFに設定されたSMTパラメータ3430とを含む。ハードウェア・マルチスレッディングがオフになっているので、図30に示すようにスプリットコアがイネーブルにされたPower8 6コアCPU3010を有する潜在的ホストの場合、潜在的ホストは、図35に示すように、各サブコア当たり1つのスレッドが使用され、その結果として各サブコア内で1つのスレッドが未使用の2つのサブコアと、他のVMによって用いることができる2つのサブコアとを有することになる。
The
図36の第3のCPU要件3110Cは、図31に示すCPU要件3110の別の適切な例であり、8つのvCPU3620と、値が2のSMTパラメータ3630とを含む。ハードウェア・マルチスレッディング・パラメータが値2を有しているので、図30に示すようにスプリットコアがイネーブルにされたPower8 6コアCPU3010を有する潜在的ホストの場合、潜在的ホストは、図37に示すように、各サブコア当たり2つのスレッドが使用され、その結果として未使用のスレッドがない、4つのサブコアを有することになる。1つの特定の実装において、8つ全てのvCPUを同じ物理コアの8つのスレッド(4つのサブコア)上に配置することができる。当然のことながら、代替的に、図37の4つのサブコアを2つ又はそれ以上の物理コア上に配置することができる。
The
図38の第4のCPU要件3110Dは、図31に示すCPU要件3110の別の適切な例であり、12個のvCPU3820と、値が2のSMTパラメータ3830とを含む。ハードウェア・マルチスレッディング・パラメータが値2を有しているので、図30に示すようにスプリットコアがイネーブルにされたPower8 6コアCPU3010を有する潜在的ホストの場合、潜在的ホストは、図39に示すように、各サブコア当たり2つのスレッドが使用された、その結果としてどのサブコアでも未使用のスレッドはない、6つのサブコアを有することになる。1つの特定の実装において、12個のうち8つのvCPUを同じ物理コアの8つ全てのスレッド(4つのサブコア)上に配置することができ、残りの4つのvCPUを、異なる物理コア内の2つのサブコア内の4つのスレッドに配置することができる。当然のことながら、代替的に、図39の6つのサブコアを3つ又はそれ以上の物理コア上に配置することができる。
The
図32、図34、図36、及び図38のCPU要件の例の全ては、ホストがイネーブルにされたスプリットコアを有する場合についてのものである。ホストがディスエーブルにされたスプリットコアを有する場合、結果は、ホストが、スプリットコアがディスエーブルにされた設定を有すること以外は、先に詳述した図17〜図24に示した例と同様である。 All of the examples of CPU requirements in FIGS. 32, 34, 36, and 38 are for the case where the host has a split core enabled. If the host has a split core disabled, the result is similar to the example shown in FIGS. 17-24 detailed above, except that the host has a setting with the split core disabled. It is.
図32、図36、及び図38の例は、全て値が2のSMTパラメータを有する。Power8サブコアは2スレッドを有するので、SMTパラメータ内で2スレッドを指定することは、Power8CPU上へのvCPUの最も効率的な配置をもたらす。しかしながら、SMTパラメータは、サブコア上のスレッド数を超える場合があることに留意されたい。例えば、図36の3630のSMTパラメータが値4に設定されていた場合、2スレッドのサブコアを有するホストは要求を満たさないことになる。従って、スプリットコアを有さないホストは、SMT設定がサブコアに対するスレッド数を超えたときには潜在的ホストではない。
The examples of FIGS. 32, 36, and 38 all have an SMT parameter with a value of 2. Since the Power8 sub-core has two threads, specifying two threads in the SMT parameters results in the most efficient placement of vCPUs on Power8 CPUs. Note, however, that the SMT parameter may exceed the number of threads on the sub-core. For example, if the
図40を参照すると、方法4000は、ホストコンピュータ・システム上でスプリットコアがイネーブルになっているかどうかを考慮に入れたハードウェア・マルチスレッディング・パラメータを含むクラウドVM要求を用いた、ホストコンピュータ・システムの選択を示す。方法4000は、図4に示すホスト選択機構450によって行われることが好ましい。クラウドVM要求が読み出される(ステップ4010)。SMTがOFF(ステップ4020=YES)であり、かつ潜在的ホストがイネーブルにされたスプリットコアを有する(ステップ4030=YES)とき、潜在的ホストは、クラウドVM要求内のvCPU数を満たすサブコア数を有する場合にこれを選択することができる(ステップ4040)。SMTがOFF(ステップ4020=NO)であり、かつ潜在的ホストがディスエーブルにされたスプリットコアを有する(ステップ4030=NO)とき、潜在的ホストは、クラウドVM要求内のvCPU数を満たす物理コア数を有する場合にこれを選択することができる(ステップ4050)。SMTがON(ステップ4020=NO)であり、かつ潜在的ホストがイネーブルにされたスプリットコアを有する(ステップ4060=YES)とき、潜在的ホストは、サブコアに対するハードウェア・スレッド数がSMTパラメータ内で指定されたハードウェア・スレッド数を満たすことができ、かつサブコア数がクラウドVM要求内のvCPU数をSMTパラメータ内で指定されたハードウェア・スレッド数で割った数を満たすことができる場合にこれを選択することができる(ステップ4070)。SMTがON(ステップ4020=NO)であり、かつ潜在的ホストがディスエーブルにされたスプリットコアを有する(ステップ4060=NO)とき、潜在的ホストは、コアに対するハードウェア・スレッド数がSMTパラメータ内で指定されたハードウェア・スレッド数を満たすことができる場合、かつ物理コア数がクラウドVM要求内のvCPU数をSMTパラメータ内で指定されたハードウェア・スレッド数でわったものを満たすことができる場合に選択することができる(ステップ4080)。方法4000は、各潜在的ホストに対して繰り返されることが好ましく、その結果、潜在的ホストのプールが得られ、そこから任意の適切な基準又はヒューリスティックを用いてホストの1つを選択することができることに留意されたい。例えば、VM要求がより効率的なCPUコア及びスレッドの利用をもたらすことになる場合には、ディスエーブルにされたスプリットコアを有するホストに先んじて、イネーブルにされたスプリットコアを有するホストを選択することができる。方法4000は、どのようにして、ハードウェア・マルチスレッディング・パラメータ並びにスプリットコア設定及びコア当たりのハードウェア・スレッドに関するホストからの情報が、vCPUのより効率的な配置をもたらすことになるホストコンピュータ・システムの選択に対してより良い制御を与えるのかを示す。
Referring to FIG. 40, a
図41を参照すると、SMT=4又はSMT=8を伴うVMが要求されたときに、フィルタPowerKVMSMTFilterを用いて、クラウド・マネージャは、イネーブルにされたスプリットコア・モードを有するホストをフィルタで除去することができる。このフィルタは、クラウド・マネージャを補助して、VMに対する潜在的ホストの数をより迅速に絞り込むことができる。 Referring to FIG. 41, when a VM with SMT = 4 or SMT = 8 is requested, using the filter PowerKVMMSFilter, the cloud manager filters out hosts with split-core mode enabled. be able to. This filter can assist the cloud manager to more quickly narrow down the number of potential hosts for a VM.
図42を参照すると、方法4200は、vCPUが選択されたホスト上に配置されることが必要とされたときに開始する(ステップ4210)。方法4200は、図4に示すvCPU配置機構460によって行われることが好ましい。SMTがOFF(ステップ4220=YES)であり、かつホスト上でスプリットコアがイネーブルにされている(ステップ4230=YES)とき、vCPUは、異なるサブコア上に配置される(ステップ4240)。SMTがOFF(ステップ4220=YES)であり、かつホスト上でスプリットコアがディスエーブルになっている(ステップ4230=NO)とき、vCPUは、異なる物理コア上に配置される(ステップ4250)。SMTがON(ステップ4220=NO)であり、かつホスト上でスプリットコアがイネーブルにされている(ステップ4260=YES)とき、vCPUは、サブコアのスレッド上に配置される(ステップ4270)。SMTがON(ステップ4220=NO)であり、かつホスト上でスプリットコアがディスエーブルにされている(ステップ4260=NO)とき、vCPUは、同じ物理コアのスレッド上に配置される(ステップ4280)。vCPU数が物理コア内のスレッド数を超えた場合、vCPUは、全てのvCPUに対して必要な数のハードウェア・スレッドを提供する数のコア上に配置されることになることを留意されたい。方法4200は、どのようにして、ハードウェア・マルチスレッディング・パラメータを指定すること及びスプリットコア設定に関する情報を用いることが、ホストコンピュータ・システム上のvCPUの配置に対してより良い制御を与えるのかを示す。
Referring to FIG. 42, the
スプリットコア及びクラウドVM要求内のハードウェア・マルチスレッディング・パラメータを考慮にいれてVMを配置することを可能にするために、クラウド・マネージャは、潜在的ホスト内のCPU内の物理コア数を知る必要があるのみならず、潜在的ホスト内のCPUによってサポートされるスレッド数、及び潜在的ホスト上でスプリットコアがイネーブルであるか否かもまた知る必要がある。再び図6を参照すると、これは、ステップ610で利用可能なリソースを判定することが、利用可能なCPUコアを判定することを含むのみならず、これらのCPUコア上で多重スレッドが利用可能であるかどうか、及びこれらのコア上でスプリットコアがイネーブルであるかどうかを判定することも含むことを意味する。これを達成する1つの方式は、図6のステップ610において、利用可能なリソースの一部として、潜在的ホストコンピュータ・システム上でスプリットコアがイネーブルであるかどうかを収集することである。
The cloud manager needs to know the number of physical cores in the CPU in the potential host to allow the VM to be deployed taking into account the split core and hardware multi-threading parameters in the cloud VM request Not only is there a need to know the number of threads supported by the CPU in the potential host, and whether split cores are enabled on the potential host. Referring again to FIG. 6, this means that determining available resources in
クラウド・マネージャは、ホストコンピュータ・システム上のCPUによってサポートされるハードウェア・スレッド数、及び1つの実施形態では、CPUがイネーブルにされたスプリットコアを有するか否かを含めて、ホストコンピュータ・システム上の利用可能なリソースを監視する。クラウド・マネージャは、仮想マシン(VM)をプロビジョニングすることを求める要求を受け取り、この要求は、ホストコンピュータ・システム上でハードウェア・マルチスレッディングが許可されているかどうか(又は1つの実施形態においては、ホストコンピュータ・システム上で要求されるハードウェア・マルチスレッディングの量)を指定するハードウェア・マルチスレッディング・パラメータを含む。1つの実施形態において、クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータを考慮に入れて、VMのためのホストコンピュータ・システムを選択する。別の実施形態において、クラウド・マネージャは次に、ハードウェア・マルチスレッディング・パラメータ、CPUによってサポートされるハードウェア・スレッド、及びスプリットコア設定を考慮に入れて、VMのためのホストコンピュータ・システムを選択する。VMは次に、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上に配置される。結果は、仮想マシンのためのホスト内のCPUリソースのより効率的な利用である。 The cloud manager includes the number of hardware threads supported by the CPU on the host computer system, and in one embodiment, whether the CPU has a split core enabled or not. Monitor the above available resources. The cloud manager receives a request to provision a virtual machine (VM), the request indicating whether hardware multi-threading is allowed on the host computer system (or, in one embodiment, the host Hardware multithreading parameters that specify the amount of hardware multithreading required on the computer system. In one embodiment, the cloud manager then selects a host computer system for the VM, taking into account the hardware multi-threading parameters. In another embodiment, the cloud manager then selects a host computer system for the VM, taking into account hardware multithreading parameters, hardware threads supported by the CPU, and split core settings. I do. The VM is then deployed on the selected host computer system using the hardware multi-threading parameters. The result is more efficient utilization of CPU resources in the host for virtual machines.
当業者は、特許請求の範囲内の多くの変形が可能であることを認識するであろう。従って、上記で開示が具体的に示され、かつ説明されているが、ここでこれらの及び他の形式及び詳細の変更を特許請求の範囲の思想及び範囲から逸脱することなく行うことができることが当業者には理解されるであろう。 One skilled in the art will recognize that many variations are possible within the scope of the claims. Thus, while the disclosure has been particularly shown and described above, these and other changes in form and detail can be made without departing from the spirit and scope of the appended claims. It will be understood by those skilled in the art.
100:クラウド・コンピューティング・ノード
152:プログラム・モジュール
200:クラウド・コンピューティング環境
100: Cloud Computing Node 152: Program Module 200: Cloud Computing Environment
Claims (17)
前記少なくとも1つのプロセッサに結合されたメモリと、
前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラウド・マネージャと、
を備えた装置であって、前記クラウド・マネージャは、
仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数を判定し、前記複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数をさらに判定するホスト監視機構と、
仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取るホスト選択機構であって、前記VM要求を満たすハードウェア・スレッド数をサポートする数のCPUを含む、前記複数のホストコンピュータ・システムのうちの1つを選択する、ホスト選択機構と、
を備える、装置。 At least one processor;
Memory coupled to the at least one processor;
A cloud manager resident in the memory and executed by the at least one processor;
An apparatus comprising: wherein the cloud manager comprises:
Determining the number of CPUs available on a plurality of host computer systems where virtual machines can be deployed and further determining the number of hardware threads supported by each CPU on the plurality of host computer systems A host monitoring mechanism,
A host selection mechanism for receiving a virtual machine (VM) request including a number of virtual CPUs and hardware multi-threading parameters, the plurality of hosts including a number of CPUs supporting a number of hardware threads satisfying the VM request. A host selection mechanism for selecting one of the computer systems;
An apparatus comprising:
仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なCPUの数を判定することと、
前記複数のホストコンピュータ・システム上の各CPUによってサポートされるハードウェア・スレッド数を判定することと、
仮想CPU数及びハードウェア・マルチスレッディング・パラメータを含む仮想マシン(VM)要求を受け取ることと、
前記VM要求を満たすハードウェア・スレッド数をサポートする数のCPUを含む、前記複数のホストコンピュータ・システムのうちの1つを選択することと、
を含む、方法。 A computer implemented method for selecting a host computer system for deploying a virtual machine, executed by at least one processor, comprising:
Determining the number of CPUs available on a plurality of host computer systems on which a virtual machine can be deployed;
Determining the number of hardware threads supported by each CPU on the plurality of host computer systems;
Receiving a virtual machine (VM) request including the number of virtual CPUs and hardware multithreading parameters;
Selecting one of the plurality of host computer systems including a number of CPUs supporting a number of hardware threads that satisfy the VM request;
Including, methods.
ここで前記選択するステップは、前記VM要求を満たすハードウェア・スレッド数をサポートする数のCPUを含む前記複数のホストコンピュータ・システムのうちの1つに加えて、前記VM要求内の仮想CPU数及びハードウェア・マルチスレッディング・パラメータを満たすスプリットコア設定を選択することを含む、
請求項12又は請求項13に記載の方法。 Determining whether each CPU on the plurality of host computer systems has an enabled split core, and if so, determining the number of sub-cores per core;
The step of selecting may include, in addition to one of the plurality of host computer systems including a number of CPUs supporting the number of hardware threads satisfying the VM request, the number of virtual CPUs in the VM request And selecting a split core setting that satisfies the hardware multithreading parameters;
14. The method according to claim 12 or claim 13 .
ここで前記仮想マシン(VM)要求は、
前記VMのためのメモリの最小量を指定するメモリ要件と、
前記VMのためのディスクの最小量を指定するディスク要件と、
を含み、
ここで前記ハードウェア・マルチスレッディング・パラメータの第1の値は、ハードウェア・マルチスレッディングがオフになっていることを示し、前記ハードウェア・マルチスレッディング・パラメータの第2の値は、ハードウェア・スレッド数についての数値を示し、前記ハードウェア・マルチスレッディング・パラメータの第3の値は、前記選択されたホストコンピュータ・システムが該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかにかかわらず選択されることを示す、
請求項12に記載の方法。 Determining, in addition to the number of CPUs, the amount of memory and disk space available on a plurality of host computer systems on which virtual machines can be deployed;
Here, the virtual machine (VM) request is:
A memory requirement specifying a minimum amount of memory for the VM;
Disk requirements specifying a minimum amount of disks for the VM;
Including
Here, a first value of the hardware multithreading parameter indicates that hardware multithreading is off, and a second value of the hardware multithreading parameter is a number of hardware threads. And the third value of the hardware multithreading parameter is whether the selected host computer system has hardware threading on or off on the selected host computer system. To indicate that it will be selected,
The method according to claim 12 .
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/297,724 US9304805B2 (en) | 2014-06-06 | 2014-06-06 | Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors |
US14/297,707 | 2014-06-06 | ||
US14/297,677 | 2014-06-06 | ||
US14/297,707 US9400672B2 (en) | 2014-06-06 | 2014-06-06 | Placement of virtual CPUS using a hardware multithreading parameter |
US14/297,677 US9384027B2 (en) | 2014-06-06 | 2014-06-06 | Selecting a host for a virtual machine using a hardware multithreading parameter |
US14/297,724 | 2014-06-06 | ||
US14/305,703 US9372705B2 (en) | 2014-06-06 | 2014-06-16 | Selecting a host for a virtual machine using a hardware multithreading parameter |
US14/305,853 US9400673B2 (en) | 2014-06-06 | 2014-06-16 | Placement of virtual CPUS using a hardware multithreading parameter |
US14/305,703 | 2014-06-16 | ||
US14/305,853 | 2014-06-16 | ||
US14/305,955 | 2014-06-16 | ||
US14/305,955 US9304806B2 (en) | 2014-06-06 | 2014-06-16 | Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors |
PCT/IB2015/054229 WO2015186088A1 (en) | 2014-06-06 | 2015-06-04 | Selecting a host for a virtual machine using a hardware multithreading parameter |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017520830A JP2017520830A (en) | 2017-07-27 |
JP6628742B2 true JP6628742B2 (en) | 2020-01-15 |
Family
ID=56682546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016570094A Active JP6628742B2 (en) | 2014-06-06 | 2015-06-04 | Method and apparatus for selecting a host for a virtual machine using hardware multithreading parameters |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP6628742B2 (en) |
KR (1) | KR101884549B1 (en) |
CN (1) | CN106462446B (en) |
DE (1) | DE112015000216T5 (en) |
GB (1) | GB2541340B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673928B (en) * | 2019-09-29 | 2021-12-14 | 天津卓朗科技发展有限公司 | Thread binding method, thread binding device, storage medium and server |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352952B2 (en) * | 2008-12-01 | 2013-01-08 | Citrix Systems, Inc. | Systems and methods for facilitating virtualization of a heterogeneous processor pool |
US9317336B2 (en) * | 2011-07-27 | 2016-04-19 | Alcatel Lucent | Method and apparatus for assignment of virtual resources within a cloud environment |
US8850442B2 (en) * | 2011-10-27 | 2014-09-30 | Verizon Patent And Licensing Inc. | Virtual machine allocation in a computing on-demand system |
JP5503678B2 (en) * | 2012-03-07 | 2014-05-28 | 株式会社Nttドコモ | Host providing system and host providing method |
JP5813554B2 (en) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
JP5894496B2 (en) * | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
US20140007097A1 (en) * | 2012-06-29 | 2014-01-02 | Brocade Communications Systems, Inc. | Dynamic resource allocation for virtual machines |
-
2015
- 2015-06-04 KR KR1020167033176A patent/KR101884549B1/en active IP Right Grant
- 2015-06-04 JP JP2016570094A patent/JP6628742B2/en active Active
- 2015-06-04 CN CN201580024412.1A patent/CN106462446B/en active Active
- 2015-06-04 GB GB1620786.2A patent/GB2541340B/en active Active
- 2015-06-04 DE DE112015000216.2T patent/DE112015000216T5/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR101884549B1 (en) | 2018-08-29 |
CN106462446A (en) | 2017-02-22 |
GB201620786D0 (en) | 2017-01-18 |
JP2017520830A (en) | 2017-07-27 |
KR20160147958A (en) | 2016-12-23 |
DE112015000216T5 (en) | 2016-09-01 |
GB2541340A (en) | 2017-02-15 |
CN106462446B (en) | 2019-10-08 |
GB2541340B (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10514960B2 (en) | Iterative rebalancing of virtual resources among VMs to allocate a second resource capacity by migrating to servers based on resource allocations and priorities of VMs | |
US9830677B2 (en) | Graphics processing unit resource sharing | |
US9619274B2 (en) | Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors | |
US9639390B2 (en) | Selecting a host for a virtual machine using a hardware multithreading parameter | |
US8825863B2 (en) | Virtual machine placement within a server farm | |
US10606624B2 (en) | Placement of virtual machines on physical hosts | |
US9876732B2 (en) | Managing provisioning for cloud resource allocations | |
US10671438B2 (en) | Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex | |
US20150235156A1 (en) | Enabling Capacity On Demand In A Computing System Using A Calendar | |
US9619294B2 (en) | Placement of virtual CPUs using a hardware multithreading parameter | |
US10831409B2 (en) | Volume reconfiguration for virtual machines | |
JP6628742B2 (en) | Method and apparatus for selecting a host for a virtual machine using hardware multithreading parameters | |
WO2015186088A1 (en) | Selecting a host for a virtual machine using a hardware multithreading parameter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170522 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190522 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190816 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20191112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6628742 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |