DE112015000216T5 - Select a host for a virtual machine using a hardware multithreading parameter - Google Patents
Select a host for a virtual machine using a hardware multithreading parameter Download PDFInfo
- Publication number
- DE112015000216T5 DE112015000216T5 DE112015000216.2T DE112015000216T DE112015000216T5 DE 112015000216 T5 DE112015000216 T5 DE 112015000216T5 DE 112015000216 T DE112015000216 T DE 112015000216T DE 112015000216 T5 DE112015000216 T5 DE 112015000216T5
- Authority
- DE
- Germany
- Prior art keywords
- hardware
- host computer
- computer system
- cpus
- hardware multithreading
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 67
- 230000007246 mechanism Effects 0.000 claims description 39
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 14
- 230000009471 action Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 239000000796 flavoring agent Substances 0.000 description 2
- 235000019634 flavors Nutrition 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Hardware Redundancy (AREA)
Abstract
Ein Cloud-Manager überwacht verfügbare Ressourcen auf Host-Computersystemen einschließlich einer Anzahl von Hardware-Threads, die durch CPUs auf den Host-Computersystemen unterstützt werden. Der Cloud-Manager empfängt eine Anforderung zum Bereitstellen einer virtuellen Maschine (VM), die einen Hardware-Multithreading-Parameter enthält, der das Ausmaß von Hardware-Multithreading angibt, das auf dem Host-Computersystem erforderlich ist. Der Cloud-Manager wählt anschließend ein Host-Computersystem für die VM aus und berücksichtigt hierbei den Hardware-Multithreading-Parameter.A cloud manager monitors available resources on host computer systems, including a number of hardware threads supported by CPUs on the host computer systems. The cloud manager receives a request to deploy a virtual machine (VM) that contains a hardware multithreading parameter that indicates the amount of hardware multithreading that is required on the host computer system. The cloud manager then selects a host computer system for the VM, taking into account the hardware multithreading parameter.
Description
HINTERGRUNDBACKGROUND
Technisches GebetTechnical prayer
Diese Offenbarung betrifft allgemein das Bereitstellen virtueller Maschinen für Host-Computersysteme und insbesondere das Auswählen eines Hosts für eine virtuelle Maschine unter Verwendung eines Hardware-Multithreading-Parameters.This disclosure generally relates to providing virtual machines to host computer systems, and more particularly to selecting a host for a virtual machine using a hardware multithreading parameter.
Technischer HintergrundTechnical background
In einer Cloud-Umgebung stellt ein Cloud-Manager virtuelle Maschinen für Host-Computersysteme bereit, um virtuelle Server zu erzeugen. Normalerweise empfängt der Cloud-Manager eine Anforderung, die angibt, was das Image (Abbild) der virtuellen Maschine als Systemressourcen benötigt, zum Beispiel Speicher, Festplatte und CPU. Der Cloud-Manager ermittelt anschließend verfügbare Host-Computersysteme, auf denen die erforderlichen Systemressourcen zur Verfügung stehen, wählt eines der verfügbaren Host-Computersysteme aus und stellt die virtuelle Maschine auf dem ausgewählten Host-Computersystem bereit.In a cloud environment, a cloud manager provides virtual machines for host computer systems to create virtual servers. Typically, the cloud manager receives a request indicating what the virtual machine image (image) needs as system resources, such as memory, hard disk, and CPU. The cloud manager then determines available host computer systems on which the required system resources are available, selects one of the available host computer systems, and provides the virtual machine on the selected host computer system.
OpenStack ist eine Open-Source-Software zum Aufbau privater und öffentlicher Clouds. In OpenStack geben Vorlagen für virtuelle Hardware, die als „Flavors” (Typen) bezeichnet werden, Systemressourcen an, die für virtuelle Maschinen benötigt werden. Beispielsweise kann ein Typ in OpenStack eine Größe des Speichers, eine Stammdatenträgergröße und eine Anzahl virtueller CPUs für eine virtuelle Maschine angeben. Wenn eine virtuelle Maschine bereitgestellt werden muss, wird ein Aufruf an den Cloud-Manager übermittelt, wobei der Typ die benötigten Ressourcen für die virtuelle Maschine angibt. Der Cloud-Manager sucht anschließend ein oder mehrere Host-Computersysteme, auf dem die im Typ angegebenen Ressourcen zur Verfügung stehen, und stellt die virtuelle Maschine auf einem der Host-Computersysteme bereit, die dem Typ entsprechen.OpenStack is an open source software for building private and public clouds. In OpenStack, virtual hardware templates, called "flavors", specify the system resources needed for virtual machines. For example, a type in OpenStack can specify a size of memory, a root volume size, and a number of virtual CPUs for a virtual machine. When a virtual machine needs to be provisioned, a call is sent to the cloud manager, with the type indicating the resources needed for the virtual machine. The cloud manager then locates one or more host computer systems that have the resources specified in the type and provides the virtual machine on one of the host computer systems that matches the type.
Hardware-Multithreading in einem Host kann das Bereitstellen virtueller Maschinen für ein Host-Computersystem erschweren. Nach dem Stand der Technik wird, sofern Hyperthreading auf dem Host-Computersystem aktiviert ist, die Anzahl von Hardware-Threads beim Auswählen eines Host-Computersystems für eine virtuelle Maschine berücksichtigt, und virtuelle CPUs werden Hardware-Threads ungeachtet der physischen Kerne zugeordnet. Sofern Hyperthreading auf dem Host-Computersystem nicht aktiviert ist, werden beim Auswählen eines Host-Computersystems für eine virtuelle Maschine nur physische Prozessorkerne berücksichtigt, und virtuelle CPUs werden physischen Prozessorkernen nur zugeordnet, wenn eine VM (virtuelle Maschine) auf dem ausgewählten Host-Computersystem bereitgestellt ist. Bei modernen Prozessorarchitekturen wie zum Beispiel POWER, die viele Hardware-Threads in jedem Kern enthalten, ist das Ergebnis eine sehr ineffiziente Verwendung von Prozessorressourcen.Hardware multithreading in a host can make it difficult to deploy virtual machines to a host computer system. In the prior art, if hyperthreading is enabled on the host computer system, the number of hardware threads is considered when selecting a host computer system for a virtual machine, and virtual CPUs are assigned to hardware threads regardless of the physical cores. Unless hyperthreading is enabled on the host computer system, selecting a host computer system for a virtual machine only considers physical processor cores, and assigns virtual CPUs only to physical processor cores when deploying a virtual machine (VM) on the selected host computer system is. In modern processor architectures, such as POWER, which contain many hardware threads in each core, the result is a very inefficient use of processor resources.
Das Bereitstellen virtueller Maschinen kann ferner erschwert werden, wenn Prozessoren geteilte Kerne enthalten. Der Begriff „Prozessoren mit geteilten Kernen” bezeichnet einen CPU-Kern, der in mehrere Teilkerne aufgeteilt sein kann, die jeweils mehrere Hardware-Threads enthalten und bei denen der Teilkern einem Gastbetriebssystem gegenüber als Kern erscheint. Zum Beispiel kann ein Kern, der als geteilter Kern mit 8 Hardware-Threads fungieren kann, in 4 Teilkerne aufgeteilt sein, die jeweils 2 Hardware-Threads unterstützen können. Die Aktivierung von geteilten Kernen geschieht dynamisch, was bedeutet, dass die Aufteilung programmtechnisch auf dem Host-Betriebssystem geändert werden kann. Bekannte Cloud-Manager behandeln Prozessoren mit geteilten Kernen in keiner Weise anders als Prozessoren ohne geteilte Kerne. Infolgedessen können bekannte Cloud-Manager beim Bereitstellen virtueller Maschinen die Vorteile der Verwendung von Prozessoren mit geteilten Kernen nicht realisieren.Providing virtual machines can also be made more difficult if processors contain shared cores. The term "split-core processors" refers to a CPU core that can be divided into multiple sub-cores, each containing multiple hardware threads, where the sub-core appears as a core to a guest operating system. For example, a core that can act as a shared core with 8 hardware threads can be divided into 4 sub-cores, each of which can support 2 hardware threads. Activation of shared cores happens dynamically, which means that the partitioning can be programmatically changed on the host operating system. Well-known cloud managers treat processors with shared cores in no different way than processors without shared cores. As a result, known cloud managers can not realize the benefits of using shared core processors when deploying virtual machines.
KURZDARSTELLUNGSUMMARY
Gemäß einem ersten Aspekt wird eine Vorrichtung bereitgestellt, umfassend: mindestens einen Prozessor; einen Speicher, der mit dem mindestens einen Prozessor verbunden ist; einen Cloud-Manager, der sich im Speicher befindet und durch den mindestens einen Prozessor ausgeführt wird, wobei der Cloud-Manager aufweist: einen Host-Überwachungsmechanismus, der eine Anzahl von CPUs ermittelt, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten, und der ferner eine Anzahl von Hardware-Threads ermittelt, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; und einen Host-Auswahlmechanismus, der eine Virtuelle-Maschine-Anforderung (VM-Anforderung) empfängt, die eine Anzahl virtueller CPUs und einen Hardware-Multithreading-Parameter enthält, wobei der Host-Auswahlmechanismus eines der Mehrzahl von Host-Computersystemen auswählt, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads enthält, die der VM-Anforderung entsprechen.According to a first aspect, there is provided an apparatus comprising: at least one processor; a memory connected to the at least one processor; a cloud manager located in memory and executed by the at least one processor, the cloud manager comprising: a host monitoring mechanism that determines a number of CPUs, which are available on a plurality of host computer systems on which virtual machines could be provided, and which further determines a number of hardware threads supported by each CPU on the plurality of host computer systems; and a host selection mechanism receiving a virtual machine request containing a number of virtual CPUs and a hardware multithreading parameter, wherein the host selection mechanism selects one of the plurality of host computer systems that has a Number of CPUs containing a number of hardware threads that match the VM request.
Gemäß einem zweiten Aspekt wird ein mittels Computer realisiertes Verfahren bereitgestellt, das durch mindestens einen Prozessor ausgeführt wird, um ein Host-Computersystem zum Bereitstellen einer virtuellen Maschine auszuwählen, wobei das Verfahren umfasst: Ermitteln einer Anzahl von CPUs, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten; Ermitteln einer Anzahl von Hardware-Threads, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; Empfangen einer Virtuelle-Maschine-Anforderung (VM-Anforderung), die eine Anzahl virtueller CPUs und einen Hardware-Multithreading-Parameter enthält; und Auswählen eines der Mehrzahl von Host-Computersystemen, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads enthält, die der VM-Anforderung entsprechen.According to a second aspect, there is provided a computer-implemented method executed by at least one processor to select a host computer system for providing a virtual machine, the method comprising: determining a number of CPUs running on a plurality of host machines; Computer systems on which virtual machines could be deployed; Determining a number of hardware threads supported by each CPU on the plurality of host computer systems; Receiving a virtual machine request (VM request) containing a number of virtual CPUs and a hardware multithreading parameter; and selecting one of the plurality of host computer systems that includes a number of CPUs having a number of hardware threads that conform to the VM request.
Die Erfindung kann als Computerprogramm realisiert sein.The invention can be realized as a computer program.
Gemäß einer bevorzugten Ausführungsform überwacht ein Cloud-Manager verfügbare Ressourcen auf Host-Computersystemen einschließlich einer Anzahl von Hardware-Threads, die durch CPUs auf den Host-Computersystemen unterstützt werden. Der Cloud-Manager empfängt eine Anforderung zum Bereitstellen einer virtuellen Maschine (VM), die einen Hardware-Multithreading-Parameter enthält, der das Ausmaß von Hardware-Multithreading angibt, das auf dem Host-Computersystem erforderlich ist. Der Cloud-Manager wählt anschließend ein Host-Computersystem für die VM aus und berücksichtigt hierbei den Hardware-Multithreading-Parameter.In accordance with a preferred embodiment, a cloud manager monitors available resources on host computer systems, including a number of hardware threads supported by CPUs on the host computer systems. The cloud manager receives a request to deploy a virtual machine (VM) that contains a hardware multithreading parameter that indicates the amount of hardware multithreading that is required on the host computer system. The cloud manager then selects a host computer system for the VM, taking into account the hardware multithreading parameter.
Gemäß einer Ausführungsform wird eine Lösung bereitgestellt, die sich mit dem Platzieren virtueller CPUs unter Verwendung eines Hardware-Multithreading-Parameters beschäftigt.According to one embodiment, a solution is provided that deals with placing virtual CPUs using a hardware multithreading parameter.
Gemäß einer Ausführungsform betrifft diese Offenbarung allgemein das Bereitstellen virtueller Maschinen für Host-Computersysteme und insbesondere das Bereitstellen virtueller CPUs für ein Host-Computersystem unter Verwendung eines Hardware-Multithreading-Parameters.In one embodiment, this disclosure generally relates to providing virtual machines to host computer systems and, more particularly, to providing virtual CPUs to a host computer system using a hardware multithreading parameter.
Gemäß einer Ausführungsform wird eine Lösung zum Bereitstellen virtueller CPUs unter Verwendung eines Hardware-Multithreading-Parameters in Hosts mit geteilten Kernen bereitgestellt.According to one embodiment, a solution for providing virtual CPUs using a hardware multithreading parameter in shared-core hosts is provided.
Gemäß einer Ausführungsform betrifft diese Offenbarung allgemein das Bereitstellen virtueller Maschinen für Host-Computersysteme und insbesondere das Bereitstellen virtueller CPUs unter Verwendung eines Hardware-Multithreading-Parameters für ein Host-Computersystem, das einen oder mehrere Kerne mit geteilten Prozessoren enthält.In one embodiment, this disclosure generally relates to providing virtual machines to host computer systems, and more particularly, to providing virtual CPUs using a hardware multithreading parameter for a host computer system that includes one or more shared processor cores.
Gemäß einer Ausführungsform wird eine Vorrichtung bereitgestellt, umfassend: mindestens einen Prozessor; einen Speicher, der mit dem mindestens einen Prozessor verbunden ist; einen Cloud-Manager, der sich im Speicher befindet und durch den mindestens einen Prozessor ausgeführt wird, wobei der Cloud-Manager aufweist: einen Host-Überwachungsmechanismus, der eine Anzahl von CPUs ermittelt, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten, und der ferner eine Anzahl von Hardware-Threads ermittelt, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; einen Host-Auswahlmechanismus, der eine Virtuelle-Maschine-Anforderung (VM-Anforderung) empfängt, die eine Anzahl virtueller CPUs und einen Hardware-Multithreading-Parameter enthält, wobei der Host-Auswahlmechanismus eines der Mehrzahl von Host-Computersystemen auswählt, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads enthält, die der VM-Anforderung entsprechen; und einen Platzierungsmechanismus für virtuelle CPUs (vCPU-Platzierungsmechanismus), der den Hardware-Multithreading-Parameter verwendet, um eine Mehrzahl virtueller CPUs (vCPUs) auf dem ausgewählten Host-Computersystem zu platzieren.According to one embodiment, there is provided an apparatus comprising: at least one processor; a memory connected to the at least one processor; a cloud manager located in memory and executed by the at least one processor, the cloud manager comprising: a host monitoring mechanism that determines a number of CPUs available on a plurality of host computer systems, on which virtual machines could be provided, and further determines a number of hardware threads supported by each CPU on the plurality of host computer systems; a host selection mechanism that receives a virtual machine (VM) request that includes a number of virtual CPUs and a hardware multithreading parameter, wherein the host selection mechanism selects one of the plurality of host computer systems that has a number of CPUs containing a number of hardware threads that match the VM request; and a virtual CPU placement mechanism (vCPU placement mechanism) that uses the hardware multithreading parameter to place a plurality of virtual CPUs (vCPUs) on the selected host computer system.
Gemäß einer Ausführungsform wird ein mittels Computer realisiertes Verfahren bereitgestellt, das durch mindestens einen Prozessor ausgeführt wird, um eine Mehrzahl virtueller CPUs (vCPUs) auf einem Host-Computersystem zu platzieren, wobei das Verfahren umfasst Ermitteln einer Anzahl von CPUs, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten; Ermitteln einer Anzahl von Hardware-Threads, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; Empfangen einer Virtuelle-Maschine-Anforderung (VM-Anforderung), die eine Anzahl virtueller CPUs und einen Hardware-Multithreading-Parameter enthält; Auswählen eines der Mehrzahl von Host-Computersystemen, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads enthält, die der VM-Anforderung entsprechen; und Verwenden des Hardware-Multithreading-Parameters, um die Mehrzahl virtueller CPUs auf dem ausgewählten Host-Computersystem zu platzieren.According to one embodiment, there is provided a computer-implemented method executed by at least one processor to place a plurality of virtual CPUs (vCPUs) on a host computer system, the method comprising determining a number of CPUs residing on a plurality of CPUs Host computer systems are available on which virtual machines could be provided; Determining a number of hardware threads supported by each CPU on the plurality of host computer systems; Receive a virtual machine request (VM request) containing a number of virtual CPUs and a hardware multithreading parameter; Selecting one of the plurality of host computer systems that includes a number of CPUs having a number of hardware threads that conform to the VM request; and using the hardware multithreading parameter to place the plurality of virtual CPUs on the selected host computer system.
Gemäß einer Ausführungsform wird ein mittels Computer realisiertes Verfahren bereitgestellt, das durch mindestens einen Prozessor ausgeführt wird, um eine Mehrzahl virtueller CPUs (vCPUs) auf einem Host-Computersystem zu platzieren, wobei das Verfahren umfasst: Ermitteln einer Anzahl von CPUs, einer Speichergröße und einer Plattenspeicherplatzgröße, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten; Ermitteln einer Anzahl von Hardware-Threads, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; Empfangen einer Virtuelle-Maschine-Anforderung (VM-Anforderung), die enthält: einen Speicherbedarf, der eine Mindestspeichergröße für die VM angibt; einen Plattenbedarf, der eine Mindestplattengröße für die VM angibt; und einen CPU-Bedarf, der eine Anzahl virtueller CPUs für die VM und einen Hardware-Multithreading-Parameter angibt, wobei ein erster Wert des Hardware-Multithreading-Parameters anzeigt, dass Hardware-Multithreading ausgeschaltet ist, ein zweiter Wert des Hardware-Multithreading-Parameters einen numerischen Wert für eine Anzahl von Hardware-Threads anzeigt und ein dritter Wert des Hardware-Multithreading-Parameters anzeigt, dass das ausgewählte Host-Computersystem unabhängig davon ausgewählt wird, ob Hardware-Threading auf dem ausgewählten Host-Computersystem ein- oder ausgeschaltet ist; Auswählen eines der Mehrzahl von Host-Computersystemen, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads enthält, die der VM-Anforderung entsprechen; und Verwenden des Hardware-Multithreading-Parameters, um die Mehrzahl von vCPUs auf dem ausgewählten Host-Computersystem zu platzieren, indem jede vCPU in der VM auf einem anderen physischen Kern in dem ausgewählten Host-Computersystem platziert wird, wenn der Hardware-Multithreading-Parameter anzeigt, dass Hardware-Multithreading ausgeschaltet ist, und indem jede vCPU in der VM auf einem anderen Hardware-Thread im ausgewählten Host-Computersystem platziert wird, wenn der Hardware-Multithreading-Parameter die Anzahl von Hardware-Threads anzeigt.According to one embodiment, there is provided a computer implemented method executed by at least one processor to place a plurality of virtual CPUs (vCPUs) on a host computer system, the method comprising: determining a number of CPUs, a memory size, and a Disk space size available on a plurality of host computer systems on which virtual machines could be deployed; Determining a number of hardware threads supported by each CPU on the plurality of host computer systems; Receiving a virtual machine request (VM request) that includes: a memory requirement indicating a minimum amount of memory for the VM; a disk requirement indicating a minimum disk size for the VM; and a CPU demand indicating a number of virtual CPUs for the VM and a hardware multithreading parameter, wherein a first value of the hardware multithreading parameter indicates that hardware multithreading is disabled, a second value of the hardware multithreading Parameters displays a numeric value for a number of hardware threads, and a third value of the hardware multithreading parameter indicates that the selected host computer system is selected regardless of whether hardware threading is on or off on the selected host computer system ; Selecting one of the plurality of host computer systems that includes a number of CPUs having a number of hardware threads that conform to the VM request; and using the hardware multithreading parameter to place the plurality of vCPUs on the selected host computer system by placing each vCPU in the VM on a different physical core in the selected host computer system when the hardware multithreading parameter indicates that hardware multithreading is turned off and by placing each vCPU in the VM on a different hardware thread in the selected host computer system when the hardware multithreading parameter indicates the number of hardware threads.
Gemäß einer Ausführungsform wird ein Verfahren wie im obigen Absatz beschrieben bereitgestellt, das ferner ein Ändern der Größe der VM unter Verwendung des Hardware-Multithreading-Parameters umfasst.According to one embodiment, a method as described in the above paragraph is provided, further comprising changing the size of the VM using the hardware multithreading parameter.
Gemäß einer Ausführungsform wird eine Vorrichtung bereitgestellt, umfassend: mindestens einen Prozessor; einen Speicher, der mit dem mindestens einen Prozessor verbunden ist; einen Cloud-Manager, der sich im Speicher befindet und durch den mindestens einen Prozessor ausgeführt wird, wobei der Cloud-Manager aufweist: einen Host-Überwachungsmechanismus, der ermittelt: eine Anzahl von CPUs, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten; eine Anzahl von Hardware-Threads, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; und, ob für jede CPU auf der Mehrzahl von Host-Computersystemen geteilte Kerne aktiviert sind; einen Host-Auswahlmechanismus, der eine Virtuelle-Maschine-Anforderung (VM-Anforderung) empfängt, die eine Anzahl virtueller CPUs; und einen Hardware-Multithreading-Parameter enthält; wobei der Host-Auswahlmechanismus eines der Mehrzahl von Host-Computersystemen auswählt, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads und Einstellungen für geteilte Kerne enthält, die der Anzahl virtueller CPUs und dem Hardware-Multithreading-Parameter in der VM-Anforderung entsprechen.According to one embodiment, there is provided an apparatus comprising: at least one processor; a memory connected to the at least one processor; a cloud manager located in memory and executed by the at least one processor, the cloud manager comprising: a host monitoring mechanism that determines: a number of CPUs available on a plurality of host computer systems on which virtual machines could be deployed; a number of hardware threads supported by each CPU on the plurality of host computer systems; and whether cores shared by each CPU on the plurality of host computer systems are enabled; a host selection mechanism that receives a virtual machine (VM) request that includes a number of virtual CPUs; and includes a hardware multithreading parameter; wherein the host selection mechanism selects one of the plurality of host computer systems that includes a number of CPUs having a number of hardware threads and shared core settings, the number of virtual CPUs, and the hardware multithreading parameter in the VM request correspond.
Gemäß einer Ausführungsform wird ein mittels Computer realisiertes Verfahren bereitgestellt, das durch mindestens einen Prozessor ausgeführt wird, um eine Mehrzahl virtueller CPUs (vCPUs) auf einem Host-Computersystem zu platzieren, wobei das Verfahren umfasst: Ermitteln einer Anzahl von CPUs, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten; Ermitteln einer Anzahl von Hardware-Threads, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; Ermitteln, ob bei jeder CPU auf der Mehrzahl von Host-Computersystemen geteilte Kerne aktiviert sind, und wenn dem so ist, einer Anzahl von geteilten Kernen pro Kern; Empfangen einer Virtuelle-Maschine-Anforderung (VM-Anforderung), die eine Anzahl virtueller CPUs und einen Hardware-Multithreading-Parameter enthält; und Auswählen eines der Mehrzahl von Host-Computersystemen, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads und Einstellungen für geteilte Kerne enthält, die der Anzahl virtueller CPUs und dem Hardware-Multithreading-Parameter in der VM-Anforderung entsprechen.According to one embodiment, there is provided a computer-implemented method executed by at least one processor to place a plurality of virtual CPUs (vCPUs) on a host computer system, the method comprising: determining a plurality of CPUs that are in plurality of host computer systems on which virtual machines could be provided; Determining a number of hardware threads supported by each CPU on the plurality of host computer systems; Determining if each core on the plurality of host computer systems has shared cores enabled, and if so, a number of shared cores per core; Receiving a virtual machine request (VM request) containing a number of virtual CPUs and a hardware multithreading parameter; and selecting one of the plurality of host computer systems that includes a number of CPUs having a number of hardware threads and shared core settings that correspond to the number of virtual CPUs and the hardware multithreading parameter in the VM request.
Gemäß einer Ausführungsform wird ein mittels Computer realisiertes Verfahren bereitgestellt, das durch mindestens einen Prozessor ausgeführt wird, um eine Mehrzahl virtueller CPUs (vCPUs) auf einem Host-Computersystem zu platzieren, wobei das Verfahren umfasst: Ermitteln einer Anzahl von CPUs, einer Speichergröße und einer Plattenspeicherplatzgröße, die auf einer Mehrzahl von Host-Computersystemen zur Verfügung stehen, auf denen virtuelle Maschinen bereitgestellt werden könnten; Ermitteln einer Anzahl von Hardware-Threads, die durch jede CPU auf der Mehrzahl von Host-Computersystemen unterstützt werden; Ermitteln, ob bei jeder CPU auf der Mehrzahl von Host-Computersystemen geteilte Kerne aktiviert sind; Erhalten einer Virtuelle-Maschine-Anforderung (VM-Anforderung), die enthält: einen Speicherbedarf, der eine Mindestspeichergröße für die VM angibt; einen Plattenbedarf, der eine Mindestplattengröße für die VM angibt; und einen CPU-Bedarf, der eine Anzahl virtueller CPUs für die VM und einen Hardware-Multithreading-Parameter angibt, wobei ein erster Wert des Hardware-Multithreading-Parameters anzeigt, dass Hardware-Multithreading ausgeschaltet ist, ein zweiter Wert des Hardware-Multithreading-Parameters einen numerischen Wert für eine Anzahl von Hardware-Threads anzeigt und ein dritter Wert des Hardware-Multithreading-Parameters anzeigt, dass das ausgewählte Host-Computersystem unabhängig davon ausgewählt wird, ob Hardware-Threading auf dem ausgewählten Host-Computersystem ein- oder ausgeschaltet ist; Auswählen eines der Mehrzahl von Host-Computersystemen, das eine Anzahl von CPUs mit einer Anzahl von Hardware-Threads und Einstellungen für geteilte Kerne enthält, die der Anzahl virtueller CPUs und dem Hardware-Multithreading-Parameter in der VM-Anforderung entsprechen; und Verwenden des Hardware-Multithreading-Parameters und der Einstellungen für geteilte Kerne des ausgewählten Host-Computersystems, um die Mehrzahl von vCPUs auf dem ausgewählten Host-Computersystem zu platzieren, indem jede vCPU in der VM auf einem anderen physischen Kern in dem ausgewählten Host-Computersystem platziert wird, wenn der Hardware-Multithreading-Parameter anzeigt, dass Hardware-Multithreading ausgeschaltet ist, und indem jede vCPU in der VM auf einem anderen Hardware-Thread in einem Teilkern in einer CPU in dem ausgewählten Host-Computersystem platziert wird, wenn der Hardware-Multithreading-Parameter die Anzahl von Hardware-Threads anzeigt und anzeigt, dass die Einstellungen für geteilte Kerne des ausgewählten Computersystems aktiviert sind.According to one embodiment, there is provided a computer implemented method executed by at least one processor to place a plurality of virtual CPUs (vCPUs) on a host computer system, the method comprising: determining a number of CPUs, a memory size, and a Disk space size available on a plurality of host computer systems on which virtual machines could be deployed; Determining a number of hardware threads supported by each CPU on the plurality of host computer systems; Determining whether each core on the plurality of host computer systems has shared cores enabled; Obtaining a virtual machine (VM) request that includes: a memory requirement indicating a minimum amount of memory for the VM; a disk requirement indicating a minimum disk size for the VM; and a CPU demand indicating a number of virtual CPUs for the VM and a hardware multithreading parameter, wherein a first value of the hardware multithreading parameter indicates that hardware multithreading is disabled, a second value of the hardware multithreading Parameters displays a numeric value for a number of hardware threads, and a third value of the hardware multithreading parameter indicates that the selected host computer system is independent selecting whether hardware threading is on or off on the selected host computer system; Selecting one of the plurality of host computer systems that includes a number of CPUs having a number of hardware threads and shared core settings that correspond to the number of virtual CPUs and the hardware multithreading parameter in the VM request; and using the hardware multithreading parameter and the split-core settings of the selected host computer system to place the plurality of vCPUs on the selected host computer system by exposing each vCPU in the VM to a different physical core in the selected host computer system. Computer system is placed when the hardware multithreading parameter indicates that hardware multithreading is turned off, and by placing each vCPU in the VM on a different hardware thread in a sub-core in a CPU in the selected host computer system, if the Hardware Multithreading parameter displays the number of hardware threads and indicates that the split cores settings of the selected computer system are enabled.
Gemäß einer Ausführungsform überwacht ein Cloud-Manager verfügbare Ressourcen auf Host-Computersystemen einschließlich einer Anzahl von Hardware-Threads, die durch CPUs auf den Host-Computersystemen unterstützt werden. Der Cloud-Manager empfängt eine Anforderung zum Bereitstellen einer virtuellen Maschine (VM), die einen Hardware-Multithreading-Parameter enthält, der angibt, ob Hardware-Multithreading auf dem Host-Computersystem zugelassen ist. Der Cloud-Manager wählt anschließend ein Host-Computersystem für die VM aus und berücksichtigt hierbei den Hardware-Multithreading-Parameter. Die VM wird anschließend unter Verwendung des Hardware-Multithreading-Parameters auf dem ausgewählten Host-Computersystem platziert.According to one embodiment, a cloud manager monitors available resources on host computer systems, including a number of hardware threads supported by CPUs on the host computer systems. The cloud manager receives a request to deploy a virtual machine (VM) that contains a hardware multithreading parameter that indicates 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 multithreading parameter. The VM is then placed on the selected host computer system using the hardware multithreading parameter.
Gemäß einer Ausführungsform überwacht ein Cloud-Manager verfügbare Ressourcen auf Host-Computersystemen einschließlich einer Anzahl von Hardware-Threads, die durch CPUs auf den Host-Computersystemen unterstützt werden, und, ob bei den CPUs geteilte Kerne aktiviert sind. Der Cloud-Manager empfängt eine Anforderung zum Bereitstellen einer virtuellen Maschine (VM), die einen Hardware-Multithreading-Parameter enthält, der angibt, ob Hardware-Multithreading auf dem Host-Computersystem zugelassen ist. Der Cloud-Manager wählt anschließend ein Host-Computersystem für die VM aus und berücksichtigt hierbei den Hardware-Multithreading-Parameter, die durch die CPU unterstützten Hardware-Threads und die Einstellungen für geteilte Kerne. Die VM wird anschließend unter Verwendung des Hardware-Multithreading-Parameters auf dem ausgewählten Host-Computersystem platziert. Das Ergebnis ist eine effizientere Nutzung der CPU-Ressourcen in einem Host für eine virtuelle Maschine.In one embodiment, a cloud manager monitors available resources on host computer systems, including a number of hardware threads supported by CPUs on the host computer systems, and whether shared cores are enabled on the CPUs. The cloud manager receives a request to deploy a virtual machine (VM) that contains a hardware multithreading parameter that indicates 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 multithreading parameter, the hardware threads supported by the CPU, and the shared core settings. The VM is then placed on the selected host computer system using the hardware multithreading parameter. The result is a more efficient use of CPU resources in a host for a virtual machine.
Die vorgenannten und weitere Merkmale und Vorteile werden anhand der folgenden ausführlicheren Beschreibung deutlich, wie in den beigefügten Zeichnungen veranschaulicht.The foregoing and other features and advantages will be apparent from the following more particular description, as illustrated in the accompanying drawings.
KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN IN DEN ZEICHNUNGENBRIEF DESCRIPTION OF THE VARIOUS VIEWS IN THE DRAWINGS
Ausführungsformen der vorliegenden Erfindung werden lediglich beispielhaft und unter Bezugnahme auf die folgenden Zeichnungen beschrieben: Ähnliche Bezeichnungen kennzeichnen ähnliche Elemente:Embodiments of the present invention will be described by way of example only and with reference to the following drawings: like terms denote similar elements:
AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION
Ein Cloud-Manager überwacht verfügbare Ressourcen auf Host-Computersystemen einschließlich einer Anzahl von Hardware-Threads, die durch CPUs auf den Host-Computersystemen unterstützt werden, und, ob bei den CPUs geteilte Kerne aktiviert sind. Der Cloud-Manager empfängt eine Anforderung zum Bereitstellen einer virtuellen Maschine (VM), die einen Hardware-Multithreading-Parameter enthält, der das Ausmaß von Hardware-Multithreading angibt, das auf dem Host-Computersystem erforderlich ist. Der Cloud-Manager wählt anschließend ein Host-Computersystem für die VM aus und berücksichtigt hierbei den Hardware-Multithreading-Parameter, die durch die CPU unterstützten Hardware-Threads und die Einstellungen für geteilte Kerne. Die VM wird anschließend unter Verwendung des Hardware-Multithreading-Parameters auf dem ausgewählten Host-Computersystem platziert. Das Ergebnis ist eine effizientere Nutzung der CPU-Ressourcen in einem Host für eine virtuelle Maschine.A cloud manager monitors available resources on host computer systems, including a number of hardware threads supported by CPUs on the host computer systems, and whether shared cores are enabled on the CPUs. The cloud manager receives a request to deploy a virtual machine (VM) that contains a hardware multithreading parameter that indicates the amount of hardware multithreading that is required on the host computer system. The cloud manager then selects a host computer system for the VM, taking into account the hardware multithreading parameter, the hardware threads supported by the CPU, and the shared core settings. The VM is then placed on the selected host computer system using the hardware multithreading parameter. The result is a more efficient use of CPU resources in a host for a virtual machine.
Es versteht sich im Vorhinein, dass, obwohl diese Offenbarung eine ausführliche Beschreibung des Cloud-Computing enthält, eine Realisierung der hierin vorgestellten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art von Datenverarbeitungsumgebung realisiert werden, die gegenwärtig bekannt ist oder in Zukunft entwickelt wird.It should be understood in advance that although this disclosure includes a detailed description of cloud computing, implementation of the teachings presented herein is not limited to a cloud computing environment. Rather, embodiments of the present invention may be practiced in conjunction with any other type of computing environment that is currently known or will be developed in the future.
Cloud-Computing ist ein Modell zum Bereitstellen von Diensten, um einen praktischen und bei Bedarf verfügbaren Netzwerkzugriff auf ein gemeinsam genutztes Reservoir konfigurierbarer Datenverarbeitungsressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die bei minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle enthalten.Cloud computing is a model for providing services to provide convenient and on-demand network access to a shared reservoir of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services). which can be quickly deployed and released with minimal overhead or minimal interaction with a service provider. This cloud model can contain at least five properties, at least three service models, and at least four deployment models.
Die Eigenschaften sind folgende:The properties are the following:
On-demand Self Service (Selbstzuweisung bei Bedarf): Ein Cloud-Kunde kann einseitig Datenverarbeitungsfähigkeiten wie zum Beispiel Serverzeit und Netzwerkspeicher dem Bedarf entsprechend automatisch bereitstellen, ohne dass eine Interaktion von Menschen mit dem Anbieter des Dienstes erforderlich ist.On-demand self-service: A cloud customer can unilaterally provide data processing capabilities such as server time and network storage as needed, without the need for human interaction with the service provider.
Broad Network Access (umfassender Netzwerkzugriff): Es stehen Fähigkeiten über ein Netzwerk zur Verfügung, auf die der Zugriff über Standardmechanismen erfolgt, die die Verwendung heterogener Thin- oder Thick-Client-Plattformen (z. B. Mobiltelefone, Notebook-Computer und PDAs) unterstützen.Broad Network Access: Provides capabilities over a network accessed through standard mechanisms that allow the use of heterogeneous thin or thick client platforms (eg, cell phones, notebook computers, and PDAs) support.
Resource Pooling (Ressourcenbündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehrere Kunden unter Verwendung eines Mehrfachnutzermodells mit unterschiedlichen physischen und virtuellen Ressourcen zu bedienen, die entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine Art Ortsunabhängigkeit in der Weise, dass der Kunde im Allgemeinen keine Kontrolle oder Kenntnis über den exakten Ort der bereitgestellten Ressourcen hat, aber möglicherweise in der Lage ist, den Ort auf einer höheren Abstraktionsebene (z. B. Land, Bundesstaat oder Datenverarbeitungszentrum) anzugeben.Resource Pooling: The vendor's computing resources are bundled to accommodate multiple customers using a multi-user model to service different physical and virtual resources that are dynamically allocated and reassigned according to demand. There is some kind of location independence in that the customer generally has no control or knowledge of the exact location of the resources provided but may be able to locate the site at a higher level of abstraction (eg, country, state, or data processing center ).
Rapid Elasticity (rasche Elastizität): Fähigkeiten können rasch und elastisch bereitgestellt werden, in einigen Fällen automatisch, um den Funktionsumfang schnell nach oben anzupassen, und schnell freigegeben werden, um den Funktionsumfang schnell nach unten anzupassen. Für den Kunden entsteht oftmals der Eindruck, dass die zum Bereitstellen verfügbaren Fähigkeiten unbegrenzt sind und jederzeit in jeder beliebigen Menge gekauft werden können.Rapid Elasticity: Capabilities can be deployed quickly and elastically, in some cases automatically, to quickly scale up the functionality, and quickly released to rapidly adjust the functionality. The customer often gets the impression that the capabilities available for deployment are unlimited and can be purchased at any time in any quantity.
Measured Service (bemessener Dienst): Cloud-Systeme steuern und optimieren automatisch die Ressourcenverwendung durch Nutzung einer Bemessungsfähigkeit auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes geeignet ist (z. B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, sodass Transparenz sowohl für den Anbieter als auch den Kunden des genutzten Dienstes besteht.Measured Service: Cloud systems automatically control and optimize resource usage by using a design capability at a given level of abstraction appropriate to the type of service (eg, storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported so that there is transparency for both the provider and the customer of the service being used.
Die Dienstmodelle sind folgende:The service models are the following:
Software as a Service (SaaS) (Software als Dienst): Die dem Kunden bereitgestellte Fähigkeit besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Die Anwendungen sind von verschiedenen Client-Einheiten aus über eine Thin-Client-Schnittstelle wie zum Beispiel über einen Web-Browser (z. B. auf dem Web beruhende eMail) zugänglich. Der Kunde verwaltet oder steuert die unterlagerte Cloud-Infrastruktur einschließlich von Netzwerken, Servern, Betriebssystemen, Speicherplatz oder sogar einzelnen Anwendungsfähigkeiten nicht, abgesehen von der möglichen Ausnahme eingeschränkter benutzerspezifischer Konfigurationseinstellungen von Anwendungen.Software as a Service (SaaS): The capability provided to the customer is to use the vendor's applications running on a cloud infrastructure. The applications are accessible from various client devices via a thin client interface, such as via a web browser (eg, e-mail based on the web). The customer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities, except for the possible exception of limited application custom configuration settings.
Platform as a Service (PaaS) (Plattform als Dienst): Die dem Kunden bereitgestellte Fähigkeit besteht darin, auf der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen bereitzustellen, die unter Verwendung von Programmiersprachen und Programmierwerkzeugen erzeugt wurden, die durch den Anbieter unterstützt werden. Der Kunde verwaltet oder steuert die unterlagerte Cloud-Infrastruktur einschließlich von Netzwerken, Servern, Betriebssystemen, Speicherplatz nicht, hat aber die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendungen.Platform as a Service (PaaS): The ability provided to the customer is to provide customer-generated or acquired applications on the cloud infrastructure that are generated using programming languages and programming tools supported by the provider , The customer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, but has control of the deployed applications and possibly configurations of the application hosting environment.
Infrastructure as a Service (IaaS) (Infrastruktur als Dienst): Die dem Kunden bereitgestellte Fähigkeit besteht darin, Verarbeitung, Speicherplatz, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Kunde beliebige Software bereitstellen und ausführen kann, zu der Betriebssysteme und Anwendungen gehören können. Der Kunde verwaltet oder steuert die unterlagerte Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicherplatz sowie bereitgestellte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Vernetzungskomponenten (z. B. über Host-Firewalls).Infrastructure as a Service (IaaS): The capability provided to the customer is to provide processing, storage, networking, and other basic computing resources, whereby the customer can deploy and run any software that may include operating systems and applications. The customer does not manage or control the underlying cloud infrastructure, but has control of operating systems, storage space, deployed applications, and possibly limited control over selected networking components (such as host firewalls).
Die Bereitstellungsmodelle sind folgende:The deployment models are:
Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für ein Unternehmen betrieben. Sie kann durch das Unternehmen oder einen Dritten verwaltet werden und auf dem Firmengelände oder außerhalb davon vorhanden sein.Private cloud: The cloud infrastructure is operated exclusively for one company. It may be managed by the Company or a third party and may be located on or outside the Company premises.
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Unternehmen genutzt und unterstützt eine bestimmte Benutzergemeinschaft, die gemeinsame Interessen hat (z. B. eine Aufgabe, Sicherheitsanforderungen, Richtlinie und Gesichtspunkte im Zusammenhang mit der Einhaltung von Gesetzen und Vorschriften). Sie kann durch die Unternehmen oder einen Dritten verwaltet werden und auf dem Firmengelände oder außerhalb davon vorhanden sein.Community Cloud: The cloud infrastructure is used by multiple companies and supports a specific community of common interests (eg a task, security requirements, policy and regulatory compliance issues). It may be managed by the companies or a third party and may exist on or outside the premises.
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Gruppe in einem Industriezweig zur Verfügung gestellt und ist Eigentum eines Unternehmens, das Cloud-Dienste verkauft.Public Cloud: The cloud infrastructure is made available to the general public or a large group in an industry and is owned by a company that sells cloud services.
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Mischung aus zwei oder mehreren Clouds (Private Cloud, Community Cloud oder Public Cloud), die eigenständige Einheiten bleiben, aber über eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z. B. Cloud-Zielgruppenverteilung (Cloud Bursting) zum Lastausgleich zwischen Clouds).Hybrid Cloud: The cloud infrastructure is a mix of two or more (private cloud, community cloud, or public cloud) clouds that remain stand-alone entities, but interconnected by a standardized or proprietary technology that enables data and application portability (eg cloud audience distribution (cloud bursting) for load balancing between clouds).
Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt des Cloud-Computing steht eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten aufweist.A cloud computing environment is service-oriented, with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that has a network of interconnected nodes.
Unter Bezugnahme auf
In dem Cloud-Computing-Knoten
Das Computersystem/der Server
Wie in
Der Bus
Das Computersystem/der Server
Zum Systemspeicher
Ein Programm/Dienstprogramm
Das Computersystem/der Server
Unter Bezugnahme auf
Unter Bezugnahme auf
Eine Hardware- und Softwareschicht
Eine Virtualisierungsschicht
Bei einem Beispiel kann eine Verwaltungsschicht
Eine Betriebslastschicht
Die vorliegende Erfindung kann ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit darauf befindlichen computerlesbaren Programmanweisungen enthalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.The present invention may be a system, a method and / or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to perform aspects of the present invention.
Das computerlesbare Speichermedium kann eine materielle Einheit sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit aufbewahren und speichern kann. Das computerlesbare Speichermedium kann zum Beispiel, ohne auf diese beschränkt zu sein, eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Eine nicht erschöpfende Liste genauerer Beispiele des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versstile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein computerlesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder um elektrische Signale, die über ein Kabel übertragen werden.The computer-readable storage medium may be a physical entity that can store and store instructions for use by an instruction execution unit. For example, but not limited to, the computer-readable storage medium may be 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 foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes: a portable computer diskette, a hard disk, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory). , a static random access memory (SRAM), a compact disc (CD-ROM) portable read only memory, a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanically coded unit such as punched or raised cards Structures in a groove with instructions recorded thereon or any suitable combination of the foregoing. A computer readable storage medium as used herein is not to be construed as being volatile signals, for example, radio waves or free propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (eg, light pulses passing a fiber optic cable) or electrical signals transmitted through a cable.
Hierin beschriebene computerlesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk von einem computerlesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb der betreffenden Datenverarbeitungs-/Verarbeitungseinheit weiter.Computer readable program instructions described herein may be downloaded over a network, for example the Internet, a local area network, a wide area network and / or a wireless network, from a computer readable storage medium to relevant data processing units or to an external computer or external storage unit. The network may include copper transmission cables, fiber optics, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each data processing unit receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective data processing unit.
Computerlesbare Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung können Assembleranweisungen, ISA-Anweisungen (ISA Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Daten zum Setzen von Zuständen oder entweder Quellcode oder Objektcode sein, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, zu denen eine objektorientierte Programmiersprache wie beispielsweise Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen gehören. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltungen, Field-Programmable Gate Arrays (FPGA) oder programmierbare logische Arrays (PLA) gehören, die computerlesbaren Programmanweisungen ausführen, indem Zustandsinformationen der computerlesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Ausführungsformen der vorliegenden Erfindung durchgeführt werden.Computer readable program instructions for performing operations of the present The invention may be assembler instructions, ISA (ISA) instruction set instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or either source code or object code written in any combination of one or more programming languages. which may include an object-oriented programming language such as Smalltalk, C ++ or the like and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a Local Area Network (LAN) or Wide Area Network (WAN), or the connection can be made to an external computer (for example, over the Internet using an Internet Service Provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGA), or programmable logic arrays (PLA), may execute the computer readable program instructions by using state information of the computer readable program instructions to personalize the electronic circuit, such that embodiments of the present invention are performed.
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagramm-Darstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata durch Computerprogrammanweisungen realisiert werden kann bzw. können.Aspects of the present 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 flowcharts and / or block schemes and combinations of blocks in the flowcharts and / or block schemes may be implemented by computer program instructions.
Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms und/oder des Blockschemas angegebenen Funktionen/Aktionen zu realisieren. Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das computerlesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable computing device to generate a machine such that the instructions executed via the processor of the computer or other programmable data processing device provide means to control the information in a block or file. to implement functions / actions specified in the blocks of the flowchart and / or the block schema. These computer program instructions may also be stored in a computer readable medium that may instruct a computer, other programmable computing devices or other entities to function in a particular manner so that the computer readable medium having instructions stored thereon comprises a product containing instructions corresponding to those in a block or in the blocks of the flowcharts and / or the block diagrams specified function / action.
Die computerlesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.The computer readable program instructions may also be loaded into a computer, other programmable computing devices, or other devices to cause a number of operations to be performed on the computer, other programmable devices, or other devices to facilitate a computer-implemented process so that the instructions executed on the computer, on other programmable devices or units, implement the functions / actions specified in a block or in the blocks of the flowcharts and / or the block diagrams.
Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Dementsprechend kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die im Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der damit verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschemata und/oder der dargestellten Flussdiagramme sowie Kombinationen von Blöcken in den dargestellten Blockschemata und/oder in dargestellten Flussdiagrammen mithilfe von bestimmten Zwecken dienenden hardwaregestützten Systemen zur Ausführung der angegebenen Funktionen bzw. Aktionen oder mithilfe von Kombinationen aus bestimmten Zwecken dienender Hardware und Computeranweisungen ausgeführt werden kann bzw. können.The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. Accordingly, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions having one or more executable instructions for implementing the specified logic function (s). In some alternative implementations, the functions specified in the block may be performed in a different order from that shown in the figures. For example, two consecutive blocks may in fact be executed substantially concurrently, or the blocks may sometimes be executed in reverse order depending on the functionality involved. In addition, it should be noted that each block of the illustrated block diagrams and / or flowcharts, as well as combinations of blocks in the illustrated block diagrams and / or flowcharts, are illustrated by dedicated hardware-based systems for performing the specified functions or actions or combinations thereof can be performed for specific purpose hardware and computer instructions.
Der Cloud-Manager
Unter Bezugnahme auf
Unter Bezugnahme auf
Viele moderne Prozessoren (bzw. CPUs) enthalten mehrere Verarbeitungskerne. Ein Beispiel eines Mehrkernprozessors ist eine x86-Dual-Core-CPU
Schritt
Zu beachten ist, dass das eigentliche Platzieren von vCPUs auf einem infrage kommenden Host ein Schritt ist, der vom Auswählen des infrage kommenden Hosts für die VM getrennt ist. Unter Bezugnahme auf
Der Stand der Technik erkennt entweder einen physischen Prozessorkern oder einen Hardware-Thread, aber nicht beide als Einheit, auf der eine virtuelle CPU bereitgestellt werden kann. Ohne Hyperthreading hat eine einzelne Dual-Core-CPU, wie in
Das Problem von entweder einem einzigen Hardware-Thread oder Kern zugeordneten vCPUs wird verschärft, wenn die Anzahl von Hardware-Threads erhöht wird. Bei den x86-Dual-Core-CPUs, die in den
Um das oben beschriebene Problem so vieler ungenutzter Threads bzw. auf physischen Kernen verteilter vCPUs zu vermeiden, berücksichtigt unter Bezugnahme auf
Ein zweiter CPU-Bedarf
Die Beispiele in den
Ein dritter CPU-Bedarf
Ein vierter CPU-Bedarf
Zu beachten ist, dass die in den
Unter Bezugnahme auf
Sobald ein Host-Computersystem ausgewählt wurde, können die vCPUs für die VM auf dem ausgewählten Host platziert werden. Unter Bezugnahme auf
Bei einem Hardware-Multithreading-Parameter in der Cloud-VM-Anforderung muss der Cloud-Manager nicht nur die Anzahl physischer Kerne in CPUs in einem infrage kommenden Host kennen, sondern er muss außerdem die Anzahl von Threads kennen, die durch die CPUs in dem infrage kommenden Host unterstützt werden. Dadurch soll gewährleistet werden, dass ein einzelner Kern des Hosts die Anzahl von Threads unterstützen kann, die für die Cloud-VM-Anforderung angegeben ist. Unter erneuter Bezugnahme auf
OpenStack bietet gegenwärtig keine Unterstützung, die die Angabe der gewünschten Topologie der Gast-CPU ermöglicht. Eine Möglichkeit zur Realisierung der Hinzufügung eines hierin erörterten Hardware-Multithreading-Parameters besteht darin, zu einem OpenStack-Typ eine zusätzliche Angabe hinzuzufügen, wie in
Der hierin erörterte Hardware-Multithreading-Parameter kann auch bei einem VM-Größenänderungsvorgang verwendet werden. Manchmal muss eine VM mehr oder weniger Ressourcen zur Verfügung haben, sodass ihre Größe geändert werden kann, um der VM bereitgestellte Ressourcen hinzuzufügen oder zu verringern. Eine geeignete Möglichkeit zur Änderung der Größe einer VM besteht darin, einen OpenStack-Typ anzugeben, der die Zuordnung von Ressourcen zu der VM ändert. Beim Ändern der Größe einer VM kann der OpenStack-Typ den Parameter powerkvm:smt enthalten, der oben erörtert wurde und in
Die Power8-CPU mit 6 Kernen unterstützt Teilkerne, was bedeutet, dass die acht Threads in jedem Kern in Teilkerne von jeweils zwei Threads aufgeteilt werden können, wenn geteilte Kerne aktiviert sind. Eine Power8-CPU
Bei vorliegenden Hosts mit geteilten Kernen wäre es für den Cloud-Manager von Vorteil, ermitteln zu können, ob ein Host für eine VM geteilte Kerne unterstützt. Unter Bezugnahme auf
Unter Bezugnahme auf
Ein zweiter CPU-Bedarf
Ein dritter CPU-Bedarf
Ein vierter CPU-Bedarf
Alle CPU-Bedarfsbeispiele in den
Die Beispiele in den
Unter Bezugnahme auf
Unter Bezugnahme auf
Unter Bezugnahme auf
Um VMs unter Berücksichtigung geteilter Kerne und eines Hardware-Multithreading-Parameters in der Cloud-VM-Anforderung platzieren zu können, muss der Cloud-Manager nicht nur die Anzahl physischer Kerne in CPUs in einem infrage kommenden Host kennen, sondern er muss außerdem die Anzahl von Threads kennen, die durch die CPUs in dem infrage kommenden Host unterstützt werden, und er muss wissen, ob geteilte Kerne auf einem infrage kommenden Host aktiviert sind. Unter erneuter Bezugnahme auf
Ein Cloud-Manager überwacht verfügbare Ressourcen auf Host-Computersystemen einschließlich einer Anzahl von Hardware-Threads, die durch CPUs auf den Host-Computersystemen unterstützt werden, und bei einer Ausführungsform, ob bei den CPUs geteilte Kerne aktiviert sind. Der Cloud-Manager empfängt eine Anforderung zum Bereitstellen einer virtuellen Maschine (VM), die einen Hardware-Multithreading-Parameter enthält, der das Ausmaß von Hardware-Multithreading angibt, das auf dem Host-Computersystem erforderlich ist. Bei einer Ausführungsform wählt der Cloud-Manager anschließend ein Host-Computersystem für die VM aus und berücksichtigt hierbei den Hardware-Multithreading-Parameter. Bei einer weiteren Ausführungsform wählt der Cloud-Manager anschließend ein Host-Computersystem für die VM aus und berücksichtigt hierbei den Hardware-Multithreading-Parameter, die durch die CPU unterstützten Hardware-Threads und die Einstellungen für geteilte Kerne. Die VM wird anschließend unter Verwendung des Hardware-Multithreading-Parameters auf dem ausgewählten Host-Computersystem platziert. Das Ergebnis ist eine effizientere Nutzung der CPU-Ressourcen in einem Host für eine virtuelle Maschine.A cloud manager monitors available resources on host computer systems, including a number of hardware threads supported by CPUs on the host computer systems, and in one embodiment, whether shared cores are enabled on the CPUs. The cloud manager receives a request to deploy a virtual machine (VM) that contains a hardware multithreading parameter that indicates the amount of hardware multithreading that is required on the host computer system. In one embodiment, the cloud manager then selects a host computer system for the VM, taking into account the hardware multithreading parameter. In another embodiment, the cloud manager then selects a host computer system for the VM, taking into account the hardware multithreading parameter, the hardware threads supported by the CPU, and the shared core settings. The VM is then placed on the selected host computer system using the hardware multithreading parameter. The result is a more efficient use of CPU resources in a host for a virtual machine.
Dem Fachmann wird klar sein, dass viele Variationen im Rahmen des Schutzbereichs der Ansprüche möglich sind. Obwohl die Offenbarung oben ausführlich dargestellt und beschrieben ist, versteht es sich daher für den Fachmann, dass diese und andere Änderungen an Form und Einzelheiten im Rahmen des Geltungsbereichs vorgenommen werden können, ohne vom Grundgedanken und Schutzbereich der Ansprüche abzuweichen.It will be apparent to those skilled in the art that many variations are possible within the scope of the claims. Therefore, while the disclosure has been shown and described in detail above, it will be understood by those skilled in the art that these and other changes in form and details may be made within the scope without departing from the spirit and scope of the claims.
Claims (28)
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/297,724 | 2014-06-06 | ||
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 US9384027B2 (en) | 2014-06-06 | 2014-06-06 | Selecting a host for a virtual machine using a hardware multithreading parameter |
US14/297,707 US9400672B2 (en) | 2014-06-06 | 2014-06-06 | Placement of virtual CPUS using a hardware multithreading parameter |
US14/297,677 | 2014-06-06 | ||
US14/305,955 | 2014-06-16 | ||
US14/305,853 | 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 |
US14/305,703 | 2014-06-16 | ||
US14/305,853 US9400673B2 (en) | 2014-06-06 | 2014-06-16 | Placement of virtual CPUS using a hardware multithreading parameter |
US14/305,703 US9372705B2 (en) | 2014-06-06 | 2014-06-16 | Selecting a host for a virtual machine using a hardware multithreading parameter |
PCT/IB2015/054229 WO2015186088A1 (en) | 2014-06-06 | 2015-06-04 | Selecting a host for a virtual machine using a hardware multithreading parameter |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112015000216T5 true DE112015000216T5 (en) | 2016-09-01 |
Family
ID=56682546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112015000216.2T Pending DE112015000216T5 (en) | 2014-06-06 | 2015-06-04 | Select a host for a virtual machine using a hardware multithreading parameter |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP6628742B2 (en) |
KR (1) | KR101884549B1 (en) |
CN (1) | CN106462446B (en) |
DE (1) | DE112015000216T5 (en) |
GB (1) | GB2541340B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673928B (en) * | 2019-09-29 | 2021-12-14 | 天津卓朗科技发展有限公司 | Thread binding method, thread binding device, storage medium and server |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352952B2 (en) * | 2008-12-01 | 2013-01-08 | Citrix Systems, Inc. | Systems and methods for facilitating virtualization of a heterogeneous processor pool |
US9317336B2 (en) | 2011-07-27 | 2016-04-19 | Alcatel Lucent | Method and apparatus for assignment of virtual resources within a cloud environment |
US8850442B2 (en) * | 2011-10-27 | 2014-09-30 | Verizon Patent And Licensing Inc. | Virtual machine allocation in a computing on-demand system |
JP5503678B2 (en) * | 2012-03-07 | 2014-05-28 | 株式会社Nttドコモ | Host providing system and host providing method |
JP5813554B2 (en) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
JP5894496B2 (en) | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
US20140007097A1 (en) * | 2012-06-29 | 2014-01-02 | Brocade Communications Systems, Inc. | Dynamic resource allocation for virtual machines |
-
2015
- 2015-06-04 DE DE112015000216.2T patent/DE112015000216T5/en active Pending
- 2015-06-04 JP JP2016570094A patent/JP6628742B2/en active Active
- 2015-06-04 KR KR1020167033176A patent/KR101884549B1/en active IP Right Grant
- 2015-06-04 GB GB1620786.2A patent/GB2541340B/en active Active
- 2015-06-04 CN CN201580024412.1A patent/CN106462446B/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN106462446A (en) | 2017-02-22 |
CN106462446B (en) | 2019-10-08 |
GB2541340B (en) | 2017-07-19 |
GB2541340A (en) | 2017-02-15 |
GB201620786D0 (en) | 2017-01-18 |
JP6628742B2 (en) | 2020-01-15 |
KR20160147958A (en) | 2016-12-23 |
JP2017520830A (en) | 2017-07-27 |
KR101884549B1 (en) | 2018-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112012000444B4 (en) | Method, system and computer program product for determining an optimal data processing environment for executing an image and method for implementing a corresponding system | |
DE112012004336B4 (en) | System, method and program product for cost-conscious selection of templates for providing shared resources | |
DE112013001889B4 (en) | Dynamically allocate a workload across a variety of clouds | |
DE102013205572B4 (en) | USING SOFTWARE COMPONENT METADATA TO PROVIDE VIRTUAL MACHINES IN A NETWORKED DATA PROCESSING ENVIRONMENT | |
DE112012002941T5 (en) | Application resource manager via a cloud | |
DE102013216735A1 (en) | Resource allocation in a virtualized computing environment | |
DE112010003886T5 (en) | Providing services using a cloud services catalog | |
DE112018005898T5 (en) | DYNAMIC PROVISION OF SOFTWARE FUNCTIONS | |
DE102012215219A1 (en) | Determine distributions of virtual machine image patterns in a networked computing environment | |
DE112019000421B4 (en) | WORKLOAD MANAGEMENT WITH DATA ACCESS DISCOVERY IN A COMPUTING CLUSTER | |
DE112021000390T5 (en) | ADJUST THE PERFORMANCE OF A DATA PROCESSING SYSTEM | |
DE102021127254A1 (en) | Content-aware selecting nodes to create containers | |
DE112021005586T5 (en) | AUTOMATICALLY SCALING A QUERY CONTROL ROUTINE FOR ENTERPRISE-SCALE BIG DATA WORKLOADS | |
DE112021003294T5 (en) | SYSTEM MANAGEMENT BASED ON PERFORMANCE AND EFFICIENCY | |
DE112020003825T5 (en) | Correspondence between external operations and containers, and mutation events | |
DE102021122508A1 (en) | BALANCING MAINPLANER AND DISTRIBUTED WORKLOADS BASED ON PERFORMANCE AND COST | |
DE112018004415B4 (en) | OPTIMIZATION OF CLOUD RESOURCES IN POLICY-BASED OPERATIONS IN TIERED STORAGE | |
DE102014116744A1 (en) | Management of information technology resources | |
DE112019002052T5 (en) | DATA PROTECTION AWARENESS IN THE PROVISION OF WORKLOADS | |
DE112021005927T5 (en) | PATCHING WORKFLOWS | |
DE112021003499T5 (en) | SCALABLE OPERATORS FOR AUTOMATED WORKLOAD MANAGEMENT IN HYBRID CLOUD ENVIRONMENTS | |
DE112021001974T5 (en) | PROACTIVELY PERFORM TASKS BASED ON AN ESTIMATION OF HARDWARE RECONFIGURATION TIMES | |
DE112022003126T5 (en) | ACCESSING TOPOLOGICAL MAPPING OF CORES | |
DE112021005394T5 (en) | TAG-DRIVEN PLANNING OF COMPUTING RESOURCES FOR FUNCTIONAL EXECUTION | |
DE112021001559T5 (en) | RULE DISTRIBUTION ON INSTITUTIONS OF A RULE ENGINE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R084 | Declaration of willingness to licence |