Technologies for dividing work across accelerator devices
US-2024143410-A1 · May 2, 2024 · US
US9026630B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9026630-B2 |
| Application number | US-201113160215-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 14, 2011 |
| Priority date | Jun 14, 2011 |
| Publication date | May 5, 2015 |
| Grant date | May 5, 2015 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
One or more embodiments of the present invention provide a method for performing initial placement and load balancing of a data objects in a distributed system. The distributed system includes hardware resources, e.g., host systems and storage arrays, which are configured to execute and/or store data objects. A data object is initially placed into the distributed system by creating a virtual cluster of hardware resources that are compatible to execute and/or host the data object, and then selecting from the virtual cluster a hardware resource that is optimal for executing and/or hosting the data object. The data object is placed into the selected hardware resource, whereupon a load balancing operation is optionally performed across the virtual cluster. The virtual cluster is subsequently released, and the distributed system is returned to its original state with the data object included therein.
Opening claim text (preview).
What is claimed is: 1. A method for performing initial placement of a data object in a distributed system that includes a plurality of hardware resources, the method comprising: receiving a request to create an instance of a virtual machine, the data object comprising a portion of the virtual machine; determining, in response to the request, a list of hardware resources that satisfy one or more criteria of the data object; creating, in response to the request, a virtual cluster that includes a subset of the hardware resources included in the list of hardware resources; selecting a hardware resource from the virtual cluster into which the data object is to be placed; placing the data object into the hardware resource; and releasing the virtual cluster. 2. The method of claim 1 , wherein determining the list of hardware resources involves referencing statistical information associated with the plurality of hardware resources against one or more criteria of the data object. 3. The method of claim 2 , wherein the statistical information is managed by periodically querying a plurality of agents, wherein each agent in the plurality of agents executes on a different hardware resource included in the plurality of hardware resources. 4. The method of claim 1 , further comprising the steps of: performing a load balancing operation across the virtual cluster that causes data objects to be transferred between the hardware resources included in the virtual cluster. 5. The method of claim 1 , wherein selecting the hardware resource comprises selecting the hardware resource at random or selecting the hardware resource based on at least a portion of the one or more criteria of the data object. 6. The method of claim 5 , wherein the one or more criteria specifies that the hardware resources do not exceed a threshold level of current utilization. 7. The method of claim 1 , wherein the data object comprises a virtual disk associated with the virtual machine and each hardware resource comprises a different storage array. 8. The method of claim 7 , wherein the one or more criteria of the data object includes at least one of a type requirement, a space utilization requirement, and an input/output (I/O) load requirement. 9. The method of claim 1 , wherein the data object comprises an executable portion of the virtual machine and each hardware resource comprises a different host system configured to execute the executable portion of the virtual machine. 10. The method of claim 9 , wherein the executable portion of the virtual machine is placed into a host system that is coupled to a storage array that stores a virtual disk corresponding to the executable portion of the virtual machine. 11. The method of claim 9 , wherein the one or more criteria of the data object includes at least one of a type requirement, a central processing unit (CPU) utilization requirement, and a virtual machine-to-host system affinity requirement. 12. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform initial placement of a data object in a distributed system that includes a plurality of hardware resources, by performing the steps of: receiving a request to create an instance of a virtual machine, the data object comprising a portion of the virtual machine; determining, in response to the request, a list of hardware resources that satisfy one or more criteria of the data object; creating, in response to the request, a virtual cluster that includes a subset of the hardware resources included in the list of hardware resources; selecting a hardware resource from the virtual cluster into which the data object is to be placed; placing the data object into the hardware resource; and releasing the virtual cluster. 13. The non-transitory computer-readable storage medium of claim 12 , further comprising the steps of: performing a load balancing operation across the virtual cluster that causes data objects to be transferred between the hardware resources included in the virtual cluster. 14. The non-transitory computer-readable storage medium of claim 12 , wherein selecting the hardware resource comprises selecting the hardware resource at random or selecting the hardware resource based on at least a portion of the one or more criteria of the data object. 15. A method of performing a load balancing operation across a plurality of hardware resources, the method comprising: receiving a request to perform the load balancing operation; receiving a signal from each of a plurality of agents, that indicates a loading level of a hardware resource on which the agent is executing; generating a list of hardware resources that are overloaded and a list of hardware resources that are underloaded; selecting, from the list of hardware resources that are overloaded, a first subset of hardware resources; selecting, from the list of hardware resources that are underloaded, a second subset of hardware resources; creating, in response to the request, a virtual cluster that includes the first subset of hardware resources and the second subset of hardware resources; performing a load balancing operation that causes data objects to be transferred between the hardware resources included in the virtual cluster; and releasing the virtual cluster. 16. The method of claim 15 , wherein the load balancing operation further comprises powering-off underloaded hardware resources included in the virtual cluster after the data objects have been transferred between the hardware resources. 17. The method of claim 15 , wherein the plurality of hardware resources includes at least two storage arrays. 18. The method of claim 17 , wherein a storage array is overloaded when an amount of free space available on the storage array falls beneath a particular percentage, or when an input/output (I/O) load on the storage array exceeds a particular threshold value. 19. The method of claim 15 , wherein the plurality of hardware resources includes at least two host systems. 20. The method of claim 19 , wherein a host system is overloaded when a utilization load on a central processing unit (CPU) included in the host system exceeds a particular percentage. 21. The method of claim 15 , wherein the second subset includes a substantially similar number of hardware resources as the first subset. 22. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform a load balancing operation across a plurality of hardware resources, by performing the steps of: receiving a request to perform the load balancing operation; receiving a signal from each of a plurality of agents, that indicates a loading level of a hardware resource on which the agent is executing; generating a list of hardware resources that are overloaded and a list of hardware resources that are underloaded; selecting, from the list of hardware resources that are overloaded, a first subset of hardware resources; selecting, from the list of hardware resources that are underloaded, a second subset of hardware resources; creating, in response to the request, a virtual cluster that includes the first subset of hardware resources and the second subset of hardware resources; performing a load balancing operation that causes data objects to be transferred between the hardware resources included in the virtual cluster; and releasing the virtual c
considering hardware capabilities · CPC title
involving task migration · CPC title
Hypervisor-specific management and integration aspects · CPC title
considering data affinity · CPC title
Distributed allocation of resources, e.g. bandwidth brokers · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.