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 PDF

Info

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
Application number
JP2016570094A
Other languages
Japanese (ja)
Other versions
JP2017520830A (en
Inventor
テナー、ジェフリー、ウェイン
クロッパー、ジョセフ、ウィリアム
ヘンダーソン、カイル、レーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US14/297,724 external-priority patent/US9304805B2/en
Priority claimed from US14/297,707 external-priority patent/US9400672B2/en
Priority claimed from US14/297,677 external-priority patent/US9384027B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority claimed from PCT/IB2015/054229 external-priority patent/WO2015186088A1/en
Publication of JP2017520830A publication Critical patent/JP2017520830A/en
Application granted granted Critical
Publication of JP6628742B2 publication Critical patent/JP6628742B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid 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.

本発明の好ましい実施形態によるクラウド・コンピューティング・ノードのブロック図である。FIG. 2 is a block diagram of a cloud computing node according to a preferred embodiment of the present invention. 本発明の好ましい実施形態によるクラウド・コンピューティング環境のブロック図である。1 is a block diagram of a cloud computing environment according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による抽象モデル層のブロック図である。FIG. 4 is a block diagram of an abstract model layer according to a preferred embodiment of the present invention. 本発明の好ましい実施形態によるクラウド・マネージャの幾つかの特徴を示すブロック図である。FIG. 4 is a block diagram illustrating some features of a cloud manager according to a preferred embodiment of the present invention. 本発明の好ましい実施形態によるクラウドVM要求の幾つかの特徴を示すブロック図である。FIG. 4 is a block diagram illustrating some features of a cloud VM request according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、潜在的ホストコンピュータ・システム上の利用可能なリソースのログを取るための、クラウド・マネージャのための方法のフロー図である。FIG. 4 is a flow diagram of a method for a cloud manager for logging available resources on a potential host computer system according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、ホストコンピュータ・システム上にVMをプロビジョニングするための、クラウド・マネージャのための方法のフロー図である。FIG. 4 is a flow diagram of a method for a cloud manager to provision a VM on a host computer system according to a preferred embodiment of the present invention. 従来技術のx86デュアルコアCPUのブロック図である。FIG. 2 is a block diagram of a conventional x86 dual-core CPU. VM要求に対してホストを選択するための、クラウド・マネージャのための従来技術の方法のフロー図である。FIG. 3 is a flow diagram of a prior art method for a cloud manager to select a host for a VM request. 従来技術のクラウドVM要求においてCPU要件がどのように指定されているのかを示すブロック図である。FIG. 11 is a block diagram showing how CPU requirements are specified in a conventional cloud VM request. 本発明の好ましい実施形態による、3つのx86デュアルコア・プロセッサを示す潜在的ホストコンピュータ・システムのブロック図である。FIG. 2 is a block diagram of a potential host computer system showing three x86 dual-core processors according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、図11の潜在的ホストに割り当てることができるvCPUを含む仮想マシンを示すブロック図である。FIG. 12 is a block diagram illustrating a virtual machine including a vCPU that can be assigned to the potential host of FIG. 11 according to a preferred embodiment of the present invention. vCPUをホストコンピュータ・システム内の物理コア上に配置するための従来技術の方法のフロー図である。FIG. 2 is a flow diagram of a prior art method for placing a vCPU on a physical core in a host computer system. 本発明の好ましい実施形態による、6つのうち2つのコアを示す、Power8 6コアCPUのアーキテクチャを示すブロック図である。FIG. 3 is a block diagram illustrating the architecture of a Power8 6-core CPU, showing two of the six cores, according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、ハードウェア・マルチスレッディング・パラメータを用いて、ホストを選択する、及び、ホスト上のvCPUについての配置を制御する方法のブロック図である。FIG. 4 is a block diagram of a method for selecting a host and controlling placement for vCPUs on the host using hardware multi-threading parameters according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、vCPU数及びハードウェア・マルチスレッディング・パラメータを含むサンプルCPU要件である。5 is a sample CPU requirement including vCPU number and hardware multi-threading parameters according to a preferred embodiment of the present invention. 本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第1のサンプルCPU要件である。5 is a first sample CPU requirement including hardware multithreading parameters according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、図17のCPU要件を満たす潜在的なPower8ホストを示す。FIG. 18 illustrates a potential Power8 host meeting the CPU requirements of FIG. 17, according to a preferred embodiment of the present invention. 本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第2のサンプルCPU要件である。7 is a second sample CPU requirement including hardware multithreading parameters according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、図19のCPU要件を満たす潜在的なPower8ホストを示す。FIG. 20 illustrates a potential Power8 host meeting the CPU requirements of FIG. 19, according to a preferred embodiment of the present invention. 本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第3のサンプルCPU要件である。9 is a third sample CPU requirement including hardware multi-threading parameters according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、図31のCPU要件を満たす潜在的なPower8ホストを示す。31 illustrates a potential Power8 host meeting the CPU requirements of FIG. 31, according to a preferred embodiment of the present invention. 本発明の好ましい実施形態によるハードウェア・マルチスレッディング・パラメータを含む第4のサンプルCPU要件である。4 is a fourth sample CPU requirement including hardware multi-threading parameters according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、図23のCPU要件を満たす潜在的なPower8ホストを示す。23 illustrates a potential Power8 host meeting the CPU requirements of FIG. 23, according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、ハードウェア・マルチスレッディング・パラメータを含むCPU要件を満たすホストを選択するための方法のフロー図である。FIG. 4 is a flow diagram of a method for selecting a host that satisfies CPU requirements including hardware multithreading parameters according to a preferred embodiment of the present invention. ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上にvCPUを配置するための方法のフロー図である。FIG. 4 is a flow diagram of a method for placing a vCPU on a selected host computer system using hardware multi-threading parameters. 本発明の好ましい実施形態による、各潜在的ホストのために集められたホストレベルの統計量を示すブロック図である。FIG. 4 is a block diagram illustrating host-level statistics gathered for each potential host, according to a preferred embodiment of the present invention. 本発明の好ましい実施形態による、ハードウェア・マルチスレッディング・パラメータを指定するためにOpenStackフレーバー内に実装することができる追加の仕様を示すブロック図である。FIG. 3 is a block diagram illustrating additional specifications that may be implemented within OpenStack flavors to specify hardware multithreading parameters, according to a preferred embodiment of the present invention. ハードウェア・マルチスレッディング・パラメータを含むことができる既存のVMに対してリサイズ動作を行うための方法のフロー図である。FIG. 9 is a flow diagram of a method for performing a resize operation on an existing VM that may include hardware multi-threading parameters. 6つのうち2つのコアを示す、スプリットコアがイネーブルにされたPower8 6コアCPUのアーキテクチャを示すブロック図である。FIG. 3 is a block diagram illustrating the architecture of a Power8 6-core CPU with split core enabled, showing two of the six cores. vCPU数及びハードウェア・マルチスレッディング・パラメータを含むサンプルCPU要件である。Sample CPU requirements including vCPU count and hardware multi-threading parameters. ハードウェア・マルチスレッディング・パラメータを含む第1のサンプルCPU要件である。3 is a first sample CPU requirement including hardware multithreading parameters. 図32のCPU要件を満たす潜在的Power8ホストを示す。FIG. 33 illustrates a potential Power8 host meeting the CPU requirements of FIG. 32. ハードウェア・マルチスレッディング・パラメータを含む第2のサンプルCPU要件である。2 is a second sample CPU requirement including hardware multithreading parameters. 図34のCPU要件を満たす潜在的Power8ホストを示す。FIG. 36 illustrates a potential Power8 host meeting the CPU requirements of FIG. 34. ハードウェア・マルチスレッディング・パラメータを含む第3のサンプルCPU要件である。9 is a third sample CPU requirement including hardware multithreading parameters. 図36のCPU要件を満たす潜在的Power8ホストを示す。FIG. 37 illustrates a potential Power8 host meeting the CPU requirements of FIG. 36. ハードウェア・マルチスレッディング・パラメータを含む第4のサンプルCPU要件である。4 is a fourth sample CPU requirement including hardware multi-threading parameters. 図38のCPU要件を満たす潜在的Power8ホストを示す。FIG. 39 illustrates a potential Power8 host meeting the CPU requirements of FIG. 38. ハードウェア・マルチスレッディング・パラメータを含み、かつホストがスプリットコアを有する場合には考慮に入れた、CPU要件を満たすホストを選択するための方法のフロー図である。FIG. 7 is a flow diagram of a method for selecting a host that satisfies CPU requirements, including hardware multithreading parameters, and taking into account if the host has a split core. ハードウェア・マルチスレッディング・パラメータが4又は8に設定されたときに、イネーブルにされたスプリットコア・モードを有するホストを除外するために用いることができるフィルタを示すブロック図である。FIG. 9 is a block diagram illustrating a filter that can be used to exclude hosts having enabled split core mode when the hardware multithreading parameter is set to 4 or 8. ハードウェア・マルチスレッディング・パラメータを用い、ホストがスプリットコアを有する場合には考慮に入れた、選択されたホストコンピュータ・システム上にvCPUを配置するための方法のフロー図である。FIG. 4 is a flow diagram of a method for placing a vCPU on a selected host computer system using hardware multi-threading parameters and taking into account where the host has a split core.

クラウド・マネージャは、ホストコンピュータ・システム上の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. Cloud computing node 100 is merely one example of a suitable cloud computing node and suggests any limitations as to the scope of use or functionality of the embodiments of the invention described herein. It is not intended. In any case, cloud computing node 100 may implement and / or perform any of the functions described above.

クラウド・コンピューティング・ノード100内には、多数の他の汎用又は専用コンピューティング・システム環境若しくは構成と共に動作可能なコンピュータ・システム/サーバ110が存在する。コンピュータ・システム/サーバ110と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び/又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、タブレット・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイスのいずれかを含む分散型クラウド・コンピューティング環境、等が含まれる。   Within the cloud computing node 100 is a computer system / server 110 operable with a number of other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with the computer system / server 110 include, but are not limited to, a personal computer system, a server, Computer systems, tablet computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs , Minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the systems or devices described above.

コンピュータ・システム/サーバ110は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ110は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実行することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔の両方のコンピュータ・システム・ストレージ媒体内に配置されることができる。   Computer system / server 110 may be described in the general context of computer system executable instructions, such as program modules, executed by a computer system. Generally, program modules can include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system / server 110 may execute within a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

図1に示されるように、クラウド・コンピューティング・ノード100内のコンピュータ・システム/サーバ110は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ110のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット120、システム・メモリ130、及び、システム・メモリ130を含む種々のシステム・コンポーネントを処理ユニット120に結合するバス122を含むことができる。   As shown in FIG. 1, the computer system / server 110 in the cloud computing node 100 is shown in the form of a general purpose computing device. The components of the computer system / server 110 include, but are not limited to, one or more processors or processing units 120, a system memory 130, and various system components including the system memory 130. A bus 122 may be included that couples to the processing unit 120.

バス122は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び、種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnect(PCI)バスを含む。   Bus 122 may be any type of bus, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. Represents any one or more of the structures. By way of example, and not limitation, such architectures include the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) Internal Bus Terminal, and the Video Electronics Corporation's External ASICs. (PCI) bus.

コンピュータ・システム/サーバ110は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ110がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方、並びに取外し可能媒体及び取外し不能媒体の両方を含む。図1には、取外し可能媒体の例がデジタル・ビデオ・ディスク(DVD)192を含むものとして示されている。   Computer system / server 110 typically includes a variety of computer system readable media. Such media can be any available media that can be accessed by computer system / server 110 and includes both volatile and nonvolatile media, as well as removable and non-removable media. . In FIG. 1, an example of a removable medium is shown as including a digital video disk (DVD) 192.

システム・メモリ130は、ファームウェア132などの、揮発性又は不揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。ファームウェア132は、コンピュータ・システム/サーバ110に対するインタフェースを提供する。システム・メモリ130はまた、ランダム・アクセス・メモリ(RAM)134及び/又はキャッシュ・メモリ136といった、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ110は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取外し不能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム140を設けることができる。図示されていないが、取外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブ、及びCD−ROM、DVD−ROM又は他の光媒体などの取外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブを設けることができる。このような例においては、各々は、1つ又は複数のデータ媒体インタフェースによってバス122に接続することができる。以下でさらに示され、説明されるように、メモリ130は、より詳細に後述される機能を実行するように構成されたプログラム・モジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。   System memory 130 may include a computer system readable medium, such as firmware 132, in the form of volatile or non-volatile memory. Firmware 132 provides an interface to computer system / server 110. System memory 130 may also include computer system readable media in the form of volatile memory, such as random access memory (RAM) 134 and / or cache memory 136. Computer system / server 110 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 140 may be provided for reading from and writing to non-removable, nonvolatile magnetic media (not shown, typically referred to as a “hard drive”). . Although not shown, a magnetic disk drive for reading from and writing to a removable non-volatile magnetic disk (eg, a "floppy disk"), and a CD-ROM, DVD-ROM or other optical medium An optical disk drive for reading from and writing to a removable non-volatile optical disk such as an optical disk drive can be provided. In such an example, each could be connected to bus 122 by one or more data media interfaces. As further shown and described below, memory 130 includes at least one program product having a set of program modules (eg, at least one) configured to perform the functions described in more detail below. Can be included.

プログラム・モジュールの組152(少なくとも1つ)を有するプログラム/ユーティリティ150を、限定ではなく例として、オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データと共に、メモリ130内に格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの幾つかの組合せの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール152は、一般に、本明細書において説明される本発明の実施形態の機能及び/又は方法を実行する。   A program / utility 150 having a set of program modules 152 (at least one) may include, by way of example and not limitation, an operating system, one or more application programs, other program modules, and program data, It can be stored in the memory 130. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. Program module 152 generally performs the functions and / or methods of the embodiments of the present invention described herein.

コンピュータ・システム/サーバ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 / server 110 may also include one or more external devices 190, such as a keyboard, pointing device, display 180, disk drive, etc., one that allows a user to interact with computer system / server 110. Or any device (eg, network card, modem, etc.) that enables computer system / server 110 to communicate with one or more other computing devices. can do. Such communication can be performed via an input / output (I / O) interface 170. Further still, computer system / server 110 may include one or more networks, such as a local area network (LAN), a universal wide area network (WAN), and / or a public network (eg, the Internet), and a network Communication can occur through the adapter 160. As shown, network adapter 160 communicates with other components of computer system / server 110 via bus 122. Although not shown, it should be understood that other hardware and / or software components can be used with computer system / server 110. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, Redundant Array of Independent Disk (RAID) systems, tape drives, and data archives. Storage systems and the like.

ここで図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 cloud computing environment 200 is shown. As shown, the cloud computing environment 200 includes a cloud consumer, such as, for example, a personal digital assistant (PDA) or cell phone 210A, a desktop computer 210B, a laptop computer 210C, and / or an automotive computer system 210N. It includes one or more cloud computing nodes 100 with which the local computing devices used by can communicate. Nodes 100 can communicate with each other. These can be physically or virtually grouped within one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud as described above, or a combination thereof. Yes (not shown). This allows the cloud computing environment 200 to provide infrastructure, platform, and / or software as a service that does not require the cloud consumer to maintain resources on local computing devices. The types of computing devices 210A-N shown in FIG. 2 are intended by way of example only, and the computing node 100 and the cloud computing environment 200 may be any type of network and / or network addressable. It is understood that any type of computerized device can be communicated via a connection (eg, using a web browser).

ここで図3を参照すると、図2のクラウド・コンピューティング環境200によって提供される機能抽象化層の組が示される。図3に示されるコンポーネント、層及び機能は、単なる例証を意図したものであり、開示及び特許請求の範囲はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。   Referring now to FIG. 3, a set of functional abstraction layers provided by the cloud computing environment 200 of FIG. 2 is shown. It should be understood that the components, layers, and functions shown in FIG. 3 are intended to be illustrative only and that the disclosure and claims are not limited thereto. As shown, the following layers and corresponding functions are provided.

ハードウェア及びソフトウェア層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 software layer 310 includes hardware and software components. Examples of hardware components are a mainframe, exemplified by an IBM® System z® system, and a RISC (Reduced Instruction Set Computer) architecture-based, exemplified by an IBM System p® system. Servers, IBM System x systems, IBM BladeCenter systems, storage devices, networks and networking components. Examples of software components include network application server software, such as the IBM WebSphere® application server software, and database software, such as the IBM DB2® database software. IBM, System z, System p, WebSphere, and DB2 are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide.

仮想化層320は、仮想エンティティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる、抽象層を提供する。   The virtualization layer 320 is an abstraction layer that can provide the following examples of virtual entities: virtual servers, virtual storage, virtual networks including virtual private networks, virtual applications and operating systems, and virtual clients. I will provide a.

一例において、管理層330は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別検証、並びにデータ及び他のリソースに対する保護を提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者に対して、クラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理は、必要なサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割当て及び管理を提供する。サービスレベル・アグリーメント(SLA)計画及び履行は、SLAに従って将来的な必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。クラウド・マネージャ350は、より詳細に後述するクラウド・マネージャ(又は共有プール・マネージャ)を表す。クラウド・マネージャ350は、図3では管理層330内に常駐するものとして示されているが、クラウド・マネージャ350は、後述するように、図3に示すレベルの全てにわたることができる。   In one example, management layer 330 can provide the functions described below. Resource provisioning provides for the dynamic sourcing of computing and other resources utilized to perform tasks within a cloud computing environment. Metering and pricing provides cost tracking when resources are utilized within a cloud computing environment and billing or billing for the consumption of these resources. In one example, these resources can include application software licenses. Security provides identity verification for cloud consumers and tasks, and protection for data and other resources. The user portal provides consumers and system administrators with access to a cloud computing environment. Service level management provides for the allocation and management of cloud computing resources such that required service levels are met. Service Level Agreement (SLA) planning and implementation provides for the pre-positioning and procurement of cloud computing resources whose future needs are anticipated according to the SLA. Cloud manager 350 represents a cloud manager (or shared pool manager), described in more detail below. Although cloud manager 350 is shown in FIG. 3 as residing within management layer 330, cloud manager 350 can span all of the levels shown in FIG. 3, as described below.

ワークロード層340は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例は、マッピング及びナビゲーションと、ソフトウェア開発及びライフサイクル管理と、仮想教室教育配信と、データ解析処理と、トランザクション処理と、モバイル・デスクトップと、を含む。   Workload tier 340 provides examples of functions for which a cloud computing environment can be utilized. Examples of workloads and functions that can be provided from this layer include mapping and navigation, software development and lifecycle management, virtual classroom education delivery, data analysis processing, transaction processing, and mobile desktop. Including.

本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有する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 cloud manager 350 shown in FIG. Cloud manager 350 includes a cloud provisioning mechanism 410 that includes a resource request interface 420. The resource request interface 420 allows a software entity to request a virtual machine from the cloud manager 350 without human intervention. The cloud manager 350 also includes a user interface 430 that allows the user to interact with the cloud manager to perform any suitable function, including provisioning VMs, destroying VMs, analyzing cloud performance, and the like. Including. The difference between the resource request interface 420 and the user interface 430 is that the user interface 430 needs to be manually used by a user to perform a function specified by the user, while the resource request interface 420 , A software entity can be used to request provisioning of cloud resources by the cloud mechanism 350 without input from a human user.

クラウド・マネージャ350はまた、潜在的ホストコンピュータ・システム上の利用可能なリソースを監視し、クラウド・マネージャ350が、VMに対して指定されたリソースと潜在的ホストコンピュータ・システム上の利用可能なリソースとを比較することができるようにする、ホスト監視機構440を含む。ホスト選択機構450は、要求されたVMに対して指定されたリソースと潜在的ホストコンピュータ・システム上の利用可能なリソースとの比較に基づいて、潜在的ホストコンピュータ・システムを選択することを可能にする。vCPU配置機構460は、ハードウェア・マルチスレッディング・パラメータを用いて、選択されたホストコンピュータ・システム上にvCPUを配置する。VMリサイズ機構470は、元のVMがハードウェア・マルチスレッディング・パラメータを用いていない場合であっても、ハードウェア・マルチスレッディング・パラメータを用いた方式で既存のVMをリサイズすることを可能にする。   The cloud manager 350 also monitors available resources on the potential host computer system, and the cloud manager 350 determines whether resources specified on the VM and available resources on the potential host computer system are available. And a host monitoring mechanism 440 that allows for a comparison to be made. The host selection mechanism 450 allows for selecting a potential host computer system based on a comparison of the resources specified for the requested VM with the resources available on the potential host computer system. I do. The vCPU placement mechanism 460 places the vCPU on the selected host computer system using the hardware multi-threading parameters. VM resizing mechanism 470 allows existing VMs to be resized in a manner using hardware multi-threading parameters, even when the original VM does not use hardware multi-threading parameters.

図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 resource request interface 420 on the cloud provisioning mechanism 410 of FIG. 4 or via the user interface 430 to request that a VM be provisioned by the cloud manager 350. , Shows one suitable example of a cloud VM request 510. Cloud VM request 510 may include any specification of requirements for resources required on the VM. Examples of suitable requirements include a memory requirement 520, a disk requirement 530, and a CPU requirement 540. The memory requirement 520 specifies the required amount of memory for the VM. Disk requirements 530 specify the amount of disk required for the VM. The CPU requirements 540 specify the number of virtual CPUs required for the VM, and also specify hardware multithreading parameters, as described in more detail below. Of course, other requirements not shown in FIG. 5, such as network requirements and any other suitable requirements, may be specified for the VM. In the prior art, OpenStack uses what is called a "flavor" as a cloud VM request, which specifies the minimum requirements for resources on the VM.

図6を参照すると、方法600は、潜在的ホストコンピュータ・システム上の利用可能なリソースを監視するために、好ましくは図4のホスト監視機構440によって行われる。潜在的ホストコンピュータ・システム上の利用可能なリソースが判定され(ステップ610)、ログが取られる(ステップ620)。方法600を実装するための1つの既知の方式は、ホストにその利用可能なリソースを照会するドライバを用いる。   Referring to FIG. 6, a method 600 is preferably performed by the host monitoring mechanism 440 of FIG. 4 to monitor available resources on a potential host computer system. Available resources on the potential host computer system are determined (step 610) and logged (step 620). One known way to implement the method 600 uses a driver that queries the host for its available resources.

図7を参照すると、方法700は、クラウドVM要求を受け取ることによって開始する(ステップ710)。次に、クラウドVM要求内のリソース要件を潜在的ホストコンピュータ・システム上の利用可能なリソースと比較する(ステップ720)。ステップ720における利用可能なリソースは、図6のステップ620において作成したログから読み出すことができることに留意されたい。次いで、クラウドVM要求内のリソース要件を満たすリソースを有するホストが選択される。(ステップ730)。次いで、選択されたホストコンピュータ・システム上にVMが配備される(ステップ740)。   Referring to FIG. 7, the method 700 begins by receiving a cloud VM request (step 710). Next, the resource requirements in the cloud VM request are compared to available resources on the potential host computer system (step 720). Note that the available resources in step 720 can be read from the log created in step 620 of FIG. Then, a host having resources meeting the resource requirements in the cloud VM request is selected. (Step 730). Next, the VM is deployed on the selected host computer system (step 740).

多くの現代のプロセッサ(又は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-core CPU 810 shown in FIG. The x86 dual-core CPU 810 includes a first core 820 having two hardware threads 822 and 824, and a second core 840 having two hardware threads 842 and 844. The presence of multiple hardware threads on each core can create problems in provisioning VMs to host computer systems. In the prior art, the number of hardware threads in a multi-core CPU is typically ignored, and only physical cores are taken into account. For example, the prior art method 900 of FIG. 9 reads a cloud VM request (step 910) and then selects a host with a number of physical cores that satisfies the number of vCPUs in the cloud VM request (step 920). The prior art CPU requirement 1010 as shown in FIG. 10 specifies the number of virtual CPUs (vCPUs), which is one suitable example for the CPU requirement 540 shown in FIG. Because the method 900 uses only physical cores when selecting a host for a VM, multiple hardware threads on the cores are not fully utilized, thus not utilizing available CPU resources. In other prior art, when host hyper-threading is enabled, the number of hardware threads is taken into account, and the placement of vCPUs on hardware threads is done without regard to the physical core. This approach results in inefficient VMs because some workloads benefit from thread utilization on different cores while other workloads are better served by threads on the same core. become.

図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 VM 2 shown in FIG. 12 needs to be deployed. The number of available cores is determined, which is, for example, 9 in the example of FIG. 11, ie, 6 cores are multiplied by an overcommit ratio of 2 and from there within the Potential Host 1 shown in FIG. 3 minus the three cores used by VM1. Since VM2 requires two vCPUs and potential host 1 has nine available cores, potential host 1 is a valid potential host for VM2 shown in FIG.

潜在的ホスト上への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 method 1300 begins by reading a cloud VM request (step 1310). Next, the vCPU in the cloud VM request is placed on the physical core (step 1320). In FIG. 11, the first and second cores of the CPU 1 and the thread T1 of the first core of the CPU 2 are shaded, and two vCPUs in the VM 1 shown in FIG. Indicates that it was placed. However, note that the placement is not static. At different times, the vCPU can run on any hardware thread on any active core. With hyperthreading, there are a total of twelve hardware threads in three dual cores assigned. VM1 takes three of these threads, leaving nine for the other VMs. However, a vCPU is assigned to any of the threads, which means that work performed in operating system threads that share memory is best performed in the same vCPU hardware thread. On the other hand, work performed in a separate operating system thread means that it is better performed in hardware threads of different cores. Thus, the prior art identifies potential hosts for VMs because the assignment of VMs to potential hosts does not currently take into account differences between hardware threads and cores on the CPU. This will create inefficiencies in the manner and manner in which the VM runs on the selected host.

従来技術は、仮想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 physical cores 820 and 840, where the vCPU could be deployed. it can. With hyper-threading, a single dual-core CPU can support more vCPUs, but it is determined whether the vCPUs run on the same physical core or on different hardware threads on different cores. Not theoretical. The disclosure and claims herein create a finer level of granularity, where a vCPU is assigned to multiple hardware threads rather than simply being assigned to a single physical core or a single hardware thread. Recognize that it needs to be assigned to

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-core CPU 1410 shown in FIG. 14 has a first core 1420 including eight hardware threads 1432, 1434, 1436, 1438, 1442, 1444, 1446, and 1448, as well as eight hardware threads. A second core 1450 including 1462, 1464, 1466, 1468, 1472, 1474, 1476 and 1478 is shown. The other four cores are not shown in FIG. 14, but are similar to the two cores shown. If the host is selected based on the number of physical cores, as shown in the prior art method 900 of FIG. 9, many of the hardware threads will not be used. Thus, if two vCPUs are deployed in the two cores 1420 and 1450 shown in FIG. 14, this will result in wasting seven of the eight hardware threads on each core. The net result is that at any given time, only two of the two core's 16 threads are used, which wastes 14 of the 16 hardware threads. This means that using the prior art method 900 shown in FIG. 9, only two (12.5%) of the 16 available processing resources on two Power8 cores are available. Alternatively, if a vCPU is assigned to a hardware thread when there are a large number of hardware threads per core, a VM with a workload that requires a high degree of parallelism and shared memory can Are located on the same physical core as the other vCPUs, resulting in better performance than if distributed over many physical cores.

上記で図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 method 1500 begins by using the SMT parameters in a cloud VM request, in one embodiment, with information about the host regarding hardware threads per core and split core configuration, and A computer system is selected (step 1510). Once the host computer system is selected, the same SMT parameters in the cloud VM request can be used to make a placement decision for the vCPU when deploying the VM on the selected host (step 1520). In one embodiment, information about the host regarding hardware threads per core and split core configuration may also be used to make placement decisions for the vCPU when deploying VMs on the selected host. Yes (step 1520).

図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 art CPU requirements 1010 for cloud VM requests include specifying the required number of vCPUs 1020 on the VM. The cloud VM request 1610 shown in FIG. 16 according to the disclosure and claims of this specification includes the number of vCPUs 1620, but additionally includes hardware multithreading (SMT) parameters 1630. The value of the SMT parameter can be zero, indicating that hardware multithreading is turned off, or it can be a power of two, representing the number of hardware threads. Here are some examples. Referring to FIG. 17, a CPU requirement 1610A is one suitable example of the CPU requirement 1610 shown in FIG. 16, and includes two vCPUs 1720 and an SMT parameter 1730 having a value of 2. In the case of a potential host with a Power8 6-core CPU 1410 as shown in FIG. 14, the potential host has two threads used, as shown in FIG. Will have a core.

図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 second CPU requirement 1610B in FIG. 19 is another suitable example of the CPU requirement 1610 shown in FIG. 16, in which two vCPUs 1920 and an SMT parameter 1930 having a value indicating that hardware multithreading is turned off. And Since hardware multithreading is off, for a potential host with a Power8 6-core CPU 1410 as shown in FIG. 14, the potential host uses one thread in each core as shown in FIG. As a result, 14 threads in the two cores will have two unused cores. The net result of the potential host for the CPU requirement 1610B of FIG. 19 with the SMT parameter turned off is the same as the prior art CPU requirement 1010 shown in FIG. 10 when hyperthreading is disabled; Note that prior art CPU requirements 1010 do not take into account any hyperthreading when host hyperthreading is disabled. In the prior art, when hyperthreading is enabled, it is not possible to predict which core hardware thread will service the vCPU. By specifying values for hardware multithreading parameters that take hardware multithreading into account, the number of unused hardware threads on potential hosts can be reduced, and which vCPUs are on the same core. Can be controlled by

図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 third CPU requirement 1610C in FIG. 21 is another suitable example of the CPU requirement 1610 shown in FIG. 16, and includes eight vCPUs 2120 and an SMT parameter 2130 having a value of 8. In the case of a potential host having a Power8 6-core CPU 1410 as shown in FIG. 14, the potential host is used as shown in FIG. 22 where all eight threads are used and as a result there are no unused threads 1 Will have one core.

図23に示す第4のCPU要件1610Dは、図16に示すCPU要件1610の別の適切な例であり、12個のvCPU2320と、値が4のSMTパラメータ2330とを含む。図14に示すようなPower8 6コアCPU1410を有する潜在的ホストの場合、潜在的ホストは、図24に示すように、各コア内で4つのスレッドが使用され、その結果として12のスレッドが未使用の3つのコアを有することになる。これらの単純な例は、ホストコンピュータ・システムを選択する際にハードウェア・マルチスレッディング・パラメータを指定することが、どのようにvCPUがホストコンピュータ・システムに配備されるかということに対して、どのように制御を与えるかを示す。   The fourth CPU requirement 1610D shown in FIG. 23 is another suitable example of the CPU requirement 1610 shown in FIG. 16, and includes 12 vCPUs 2320 and an SMT parameter 2330 having a value of 4. In the case of a potential host with a Power8 6-core CPU 1410 as shown in FIG. 14, the potential host has four threads used in each core, as shown in FIG. Of the three cores. These simple examples illustrate how specifying hardware multi-threading parameters when selecting a host computer system can be seen in how the vCPU is deployed in the host computer system. Indicates whether to give control.

図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 method 2500 selects a host when hardware multi-threading parameters are specified as shown in FIGS. 16, 17, 19, 21 and 23. The cloud VM request is read (step 2510). If the SMT parameter is OFF (step 2520 = YES), a host having the number of physical cores satisfying the number of vCPUs in the cloud VM request is selected (step 2530). Note that step 2530 is similar to step 920 in prior art method 900 of FIG. If the SMT parameter is ON (step 2520 = NO), the number of threads per core satisfying the number in the SMT parameter and the number obtained by dividing the number of vCPUs in the cloud VM request by the number of threads specified in the SMT parameter are satisfied A host having the number of cores is selected (step 2540). This is one specific method of selecting a host having the number of hardware threads that satisfies the number of vCPUs in the cloud VM request. Method 2500 then ends.

ひとたびホストコンピュータ・システムが選択されると、選択されたホスト上に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, method 2600 begins when a vCPU is required to be located on a selected host (step 2610). If the SMT parameter is off (step 2620 = YES), each vCPU is placed on a different physical core (step 2630). If the SMT parameter is on (step 2620 = NO), the vCPU may be located on a different hardware thread on the same physical core (step 2640). Method 2600 then ends.

クラウド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 step 610 not only includes determining available CPU cores, but also on which multiple threads are available on those CPU cores. It also includes determining whether or not there is. One way to achieve this is to collect, at step 610 in FIG. 6, the maximum SMT setting supported by the host computer system as part of the available resources. One example of this is shown in FIG. 27, where max_guest_smt indicates the value collected by the host monitor 440 of FIG. 4, indicating whether the potential host computer system supports hardware multi-threading. The possible values for max_guest_smt are zero, indicating that SMT is off on the host computer system, and a power of two number indicating the number of hardware threads available on each CPU. If all CPUs in the host computer system are of the same type, max_guest_smt will be a single value that applies to all of the CPUs in the host computer system. If the host computer system includes different types of CPUs that include different numbers of hardware threads, there may be a different max_guest_smt for each CPU in the host computer system.

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 method 2900 for resizing a VM, which is preferably performed by the VM resizing mechanism shown in FIG. The flavor for the resizing operation of the existing VM is read (step 2910). The flavor referenced in step 2910 is the flavor with the new (ie, resized) allocation of resources for the VM. If the flavor does not include the SMT parameter (step 2920 = NO), the SMT parameter of the VM is set to OFF (step 2930). When the flavor includes the SMT parameter (step 2920 = YES), when the value of the SMT parameter is OFF or “don't care” (step 2940 = YES), the SMT parameter of the VM is set to OFF (step 2930). . If the SMT in the flavor has a power of two value (step 2940 = NO), the SMT parameter of the VM is set to the value of the SMT specified in the flavor (step 2950). The method then ends. Method 2900 enables a scheme that essentially “retrofits” existing VMs to use SMT parameters.

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 Power86 CPU 3010 with the split core enabled includes a first core 3020 divided into four sub-cores 3022, 3024, 3026, and 3028, and four sub-cores 3052, 3054, 3056, and 3058 in FIG. And a second core 3050 divided into two. The other four cores are not shown in FIG. 30, but are similar to the two cores shown. Each subcore has two hardware threads as shown in FIG. By dividing each core into sub-cores, sub-cores can be assigned to virtual machines instead of cores, thereby saving a significant number of unused hardware threads.

スプリットコア・ホストが存在する場合、クラウド・マネージャは、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 CPU requirement 3110 is preferably a part of the cloud VM request 510 shown in FIG. The CPU requirement 3110 specifies the number of vCPUs 3120 and the hardware multithreading parameters 3130. The examples that follow illustrate how split cores affect the choice of host and the placement of vCPUs on that host.

図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, CPU requirement 3110A is one suitable example of CPU requirement 3110 shown in FIG. 31 and includes two vCPUs 3220 and an SMT parameter 3230 having a value of 2. For a potential host with a Power8 6-core CPU 3010 with split core enabled as shown in FIG. 30, the potential host is, as shown in FIG. 33, one sub-core with two threads used and its The result is to have three subcores that can be used by other VMs.

図34の第2のCPU要件3110Bは、図31に示すCPU要件3110の別の適切な例であり、2つのvCPU3420と、値がOFFに設定されたSMTパラメータ3430とを含む。ハードウェア・マルチスレッディングがオフになっているので、図30に示すようにスプリットコアがイネーブルにされたPower8 6コアCPU3010を有する潜在的ホストの場合、潜在的ホストは、図35に示すように、各サブコア当たり1つのスレッドが使用され、その結果として各サブコア内で1つのスレッドが未使用の2つのサブコアと、他のVMによって用いることができる2つのサブコアとを有することになる。   The second CPU requirement 3110B in FIG. 34 is another suitable example of the CPU requirement 3110 shown in FIG. 31, and includes two vCPUs 3420 and an SMT parameter 3430 whose value is set to OFF. With hardware multi-threading turned off, for a potential host with a Power86 CPU core 3010 with the split core enabled as shown in FIG. One thread is used per subcore, resulting in one thread in each subcore having two unused subcores and two subcores that can be used by other VMs.

図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 third CPU requirement 3110C in FIG. 36 is another suitable example of the CPU requirement 3110 shown in FIG. 31, and includes eight vCPUs 3620 and an SMT parameter 3630 having a value of 2. Since the hardware multithreading parameter has the value 2, for a potential host with a Power86 CPU core 3010 with the split core enabled as shown in FIG. 30, the potential host is shown in FIG. As such, two threads are used for each subcore, resulting in four subcores with no unused threads. In one particular implementation, all eight vCPUs can be placed on eight threads (four sub-cores) of the same physical core. Of course, alternatively, the four sub-cores of FIG. 37 could be located on two or more physical cores.

図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 fourth CPU requirement 3110D of FIG. 38 is another suitable example of the CPU requirement 3110 shown in FIG. 31, and includes 12 vCPUs 3820 and an SMT parameter 3830 having a value of 2. Since the hardware multithreading parameter has the value 2, for a potential host with a Power86 CPU core 3010 with the split core enabled as shown in FIG. 30, the potential host is shown in FIG. Thus, two threads were used for each subcore, resulting in six subcores, with no unused threads in any subcore. In one particular implementation, eight of the twelve vCPUs can be placed on all eight threads (four sub-cores) of the same physical core, and the remaining four vCPUs are placed on two different cores in different physical cores. It can be placed on four threads in one sub-core. Of course, alternatively, the six sub-cores of FIG. 39 could be located on three or more physical cores.

図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 SMT parameter 3630 in FIG. 36 is set to a value of 4, a host having a two-threaded subcore will not satisfy the request. Thus, a host without a split core is not a potential host when the SMT setting exceeds the number of threads for the sub-core.

図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 method 4000 illustrates a method for a host computer system using a cloud VM request that includes hardware multi-threading parameters that takes into account whether split core is enabled on the host computer system. Indicates a choice. The method 4000 is preferably performed by the host selection mechanism 450 shown in FIG. The cloud VM request is read (Step 4010). When SMT is OFF (step 4020 = YES) and the potential host has split cores enabled (step 4030 = YES), the potential host determines the number of sub-cores that satisfy the number of vCPUs in the cloud VM request. If so, this can be selected (step 4040). When the SMT is OFF (step 4020 = NO) and the potential host has a disabled split core (step 4030 = NO), the potential host is a physical core that satisfies the number of vCPUs in the cloud VM request. This can be selected if it has a number (step 4050). When SMT is ON (step 4020 = NO) and the potential host has split cores enabled (step 4060 = YES), the potential host determines if the number of hardware threads for the sub-core is in the SMT parameter. If the number of hardware threads specified can be satisfied and the number of sub-cores can satisfy the number of vCPUs in the cloud VM request divided by the number of hardware threads specified in the SMT parameters Can be selected (step 4070). When SMT is ON (step 4020 = NO) and the potential host has a disabled split core (step 4060 = NO), the potential host determines if the number of hardware threads for the core is in the SMT parameter. And the number of physical cores can be satisfied by dividing the number of vCPUs in the cloud VM request by the number of hardware threads specified in the SMT parameter. Case can be selected (step 4080). The method 4000 is preferably repeated for each potential host, resulting in a pool of potential hosts from which one can select one of the hosts using any suitable criteria or heuristics. Note that you can. For example, if a VM request would result in more efficient CPU core and thread utilization, select a host with an enabled split core prior to a host with a disabled split core. be able to. Method 4000 describes a method for a host computer system in which hardware multi-threading parameters and information from the host regarding split core settings and hardware threads per core will result in a more efficient placement of vCPUs. To give better control over the choice of.

図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 method 4200 begins when a vCPU is required to be located on a selected host (step 4210). The method 4200 is preferably performed by the vCPU placement mechanism 460 shown in FIG. When SMT is OFF (step 4220 = YES) and the split core is enabled on the host (step 4230 = YES), the vCPU is located on a different sub-core (step 4240). When the SMT is OFF (step 4220 = YES) and the split core is disabled on the host (step 4230 = NO), the vCPU is placed on a different physical core (step 4250). When SMT is ON (step 4220 = NO) and the split core is enabled on the host (step 4260 = YES), the vCPU is placed on the sub-core thread (step 4270). When SMT is ON (step 4220 = NO) and the split core is disabled on the host (step 4260 = NO), the vCPU is placed on a thread of the same physical core (step 4280). . Note that if the number of vCPUs exceeds the number of threads in the physical core, the vCPUs will be placed on as many cores as will provide the required number of hardware threads for all vCPUs. . Method 4200 illustrates how specifying hardware multi-threading parameters and using information about split core settings provides better control over vCPU placement on a host computer system. .

スプリットコア及びクラウド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 step 610 not only includes determining available CPU cores, but also on which multiple threads are available on those CPU cores. It is also meant to include determining if there is, and whether split cores are enabled on these cores. One way to achieve this is to collect, in step 610 of FIG. 6, as part of the available resources, whether the split core is enabled on the potential host computer system.

クラウド・マネージャは、ホストコンピュータ・システム上の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つのプロセッサに結合されたメモリと、
前記メモリ内に常駐し、前記少なくとも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(vCPU)を前記選択されたホストコンピュータ・システム上に配置する仮想CPU(vCPU)配置機構をさらに備える、請求項1に記載の装置。   The apparatus of claim 1, further comprising a virtual CPU (vCPU) placement mechanism that places a plurality of virtual CPUs (vCPUs) on the selected host computer system using the hardware multithreading parameters. 前記ホスト監視機構は、前記複数のホストコンピュータ・システム上の各CPUに対してスプリットコアがイネーブルにされているかどうかをさらに判定し、ここで前記ホスト選択機構は、前記VM要求を満たすハードウェア・スレッド数をサポートする数のCPUに加えて、前記VM要求内の仮想CPU数及びハードウェア・マルチスレッディング・パラメータを満たすスプリットコア設定を含む、前記複数のホストコンピュータ・システムの1つを選択する、請求項1に記載の装置。 The host monitoring mechanism further determines whether a split core is enabled for each CPU on the plurality of host computer systems, wherein the host selection mechanism determines whether a hardware core that satisfies the VM request. Selecting one of the plurality of host computer systems including a number of CPUs supporting the number of threads , as well as a split core setting that satisfies a number of virtual CPUs in the VM request and hardware multithreading parameters. Item 2. The apparatus according to Item 1. 前記ハードウェア・マルチスレッディング・パラメータ及び前記選択されたホストコンピュータ・システム上の前記スプリットコア設定を用いて複数の仮想CPU(vCPU)を前記選択されたホストコンピュータ・システム上に配置する仮想CPU(vCPU)配置機構をさらに備えた、請求項3に記載の装置。   A virtual CPU (vCPU) that places a plurality of virtual CPUs (vCPUs) on the selected host computer system using the hardware multithreading parameters and the split core settings on the selected host computer system The device of claim 3, further comprising a positioning mechanism. 前記ハードウェア・マルチスレッディング・パラメータの第1の値が、ハードウェア・マルチスレッディングがオフになっていることを示している場合、前記vCPU配置機構は、前記VM内の各vCPUを前記選択されたホストコンピュータ・システム内の異なる物理コア上に配置する、請求項2又は請求項3に記載の装置。 If the first value of the hardware multi-threading parameter indicates that hardware multi-threading is turned off, the vCPU placement mechanism may assign each vCPU in the VM to the selected host computer. · placing on a different physical cores in the system, the serial placement of the device in claim 2 or claim 3. 前記ハードウェア・マルチスレッディング・パラメータの第2の値が、ハードウェア・スレッド数についての数値を示している場合、前記vCPU配置機構は、前記VM内の各vCPUを前記選択されたホストコンピュータ・システム内の異なるハードウェア・スレッド上に配置する、請求項2又は請求項3に記載の装置。 If the second value of the hardware multi-threading parameter indicates a numerical value for the number of hardware threads, the vCPU placement mechanism assigns each vCPU in the VM to the selected host computer system. different placed on hardware threads, device mounting serial to claim 2 or claim 3 of. 前記ハードウェア・マルチスレッディング・パラメータの第3の値は、前記選択されたホストコンピュータ・システムが、該選択されたホストコンピュータ・システム上でハードウェア・スレッディングがオン又はオフのどちらであるかにかかわらず選択されることを示す、請求項1ないし6のいずれか1項に記載の装置。 A third value of the hardware multi-threading parameter is determined by the selected host computer system whether hardware threading is on or off on the selected host computer system. indicating that it is selected, according to any one of claims 1 to 6. 前記VM要求は、メモリ要件及びディスク要件をさらに含む、請求項1ないし7のいずれか1項に記載の装置。 The VM request further comprises the memory requirements and disk requirements A device according to any one of claims 1 to 7. 前記ホスト監視機構は、前記複数のホストコンピュータ・システムの各々の上のメモリ量及びディスク・スペース量をさらに判定する、請求項1ないし8のいずれか1項に記載の装置。 The host monitoring mechanism, the amount of memory on each of the plurality of host computer systems and further determines the amount of disk space, apparatus according to any one of claims 1 to 8. 前記VM要求内の前記仮想CPU数が前記ハードウェア・マルチスレッディング・パラメータの値よりも大きい場合、前記ホスト選択機構は、各々が複数のハードウェア・スレッドを有する複数のCPUを含む、前記複数のホストコンピュータ・システムのうちの1つを選択する、請求項1に記載の装置。   If the number of virtual CPUs in the VM request is greater than the value of the hardware multi-threading parameter, the host selection mechanism may include a plurality of hosts, each including a plurality of CPUs having a plurality of hardware threads. The apparatus of claim 1, wherein one of the computer systems is selected. 前記クラウド・マネージャは、前記ハードウェア・マルチスレッディング・パラメータを用いて少なくとも1つのVMをリサイズするVMリサイズ機構をさらに備える、請求項2に記載の装置。 The cloud manager further comprises a VM resizing mechanism for resizing at least one VM using the hardware multithreading parameters, apparatus mounting serial to claim 2. 少なくとも1つのプロセッサによって実行される、仮想マシンを配備するためのホストコンピュータ・システムを選択するためのコンピュータ実装方法であって、
仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能な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.
数の仮想CPU(vCPUを前記選択されたホストコンピュータ・システム上に配置するために前記ハードウェア・マルチスレッディング・パラメータを用いることをさらに含む、請求項12に記載の方法。 Further comprising using the hardware multithreading parameter to place multiple virtual CPU (vCPUs) on the selected host computer system, the method according to claim 12. 前記複数のホストコンピュータ・システム上の各CPUがイネーブルにされたスプリットコアを有しているかどうか判定し、有している場合、コア当たりのサブコア数を判定することをさらに含み、
ここで前記選択するステップは、前記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 .
前記複数の仮想CPU(vCPU)を前記選択されたホストコンピュータ・システム上に配置するために、前記ハードウェア・マルチスレッディング・パラメータ及び前記選択されたホストコンピュータ・システム上の前記スプリットコア設定を用いることをさらに含む、請求項14に記載の方法。 Using the hardware multi-threading parameters and the split core settings on the selected host computer system to place the plurality of virtual CPUs (vCPUs) on the selected host computer system. 15. The method of claim 14 , further comprising: 前記CPUの数に加えて、仮想マシンを配備することができる複数のホストコンピュータ・システム上で利用可能なメモリ量及びディスク・スペース量を判定することをさらに含み、
ここで前記仮想マシン(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 .
コンピュータ・プログラムであって、請求項12ないし請求項16までのいずれか1項に記載の方法を行うステップを前記プロセッサに実行させる、コンピュータ・プログラム。 A computer program to perform the steps of performing a method according to any one of up to claims 12 claim 16 to the processor, the computer program.
JP2016570094A 2014-06-06 2015-06-04 Method and apparatus for selecting a host for a virtual machine using hardware multithreading parameters Active JP6628742B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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