# US 10,313,479 B2 · Methods and apparatus to manage workload domains in virtual server racks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,479 B2
- Document ID: US10313479B2
- Status: Granted
- Kind: B2
- Application number: 15/280,334
- Filed: 2016-09-29
- Published: 2017-05-25
- Granted: 2019-06-04
- Earliest claimed: 2015-11-24
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Jason A. Lochhead; Raj Yavatkar; Thirumalesh Reddy; Shreekanth Ankala
- Web page: https://patentgrep.com/patent/US10313479B2

## CPC

- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 47/70: Admission control; Resource allocation
- H04L 41/5006: Creating or negotiating SLA contracts, guarantees or penalties
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and apparatus to manage workload domains in virtual server racks are disclosed. An example apparatus includes a policy enforcer to evaluate whether capacities of the plurality of workload domains comply with policy capacity levels of respective user-defined policies for the plurality of workload domains, and a resource manager to, when a first workload domain has a first quantity of resources that exceeds a first policy capacity level of a first user-defined policy, identify a second workload domain requesting a second quantity of resources, when the second quantity of resources is equal to the first quantity of resources, allocate the first quantity of resources from the first workload domain to the second workload domain to satisfy the first policy capacity level, when the second quantity of resources is less than the first quantity of resources, allocate the second quantity of resources from the first workload domain to the second workload domain, and de-allocate remaining resources from the first workload domain to a shared resource pool to satisfy the first policy capacity level.

## Claims

### Claim 1

An apparatus to manage a plurality of workload domains, the apparatus comprising:
a policy enforcer to evaluate whether capacities of the plurality of workload domains comply with policy capacity levels of respective user-defined policies for the plurality of workload domains; and
a resource manager to, when a first workload domain has a first quantity of resources that exceeds a first policy capacity level of a first user-defined policy:
identify a second workload domain requesting a second quantity of resources;
when the second quantity of resources is equal to the first quantity of resources, allocate the first quantity of resources from the first workload domain to the second workload domain to satisfy the first policy capacity level; and
when the second quantity of resources is less than the first quantity of resources:
allocate the second quantity of resources from the first workload domain to the second workload domain; and
de-allocate remaining resources from the first workload domain to a shared resource pool to satisfy the first policy capacity level.

### Claim 2 (depends on 1)

An apparatus as defined in claim 1, wherein the second workload domain is to request the second quantity of resources to satisfy a second policy capacity level associated with a second user-defined policy for the second workload domain.

### Claim 3 (depends on 1)

An apparatus as defined in claim 1, wherein the resource manager is to, when the second quantity of resources is greater than the first quantity of resources:
identify a third workload domain with a third quantity of resources that exceeds a third policy capacity level of a third user-defined policy;
when an aggregate of the first quantity of resources and the third quantity of resources is equal to the second quantity of resources:
allocate the first quantity of resources from the first workload domain to the second workload domain; and
allocate the third quantity of resources from the third workload domain to the second workload domain to satisfy the third policy capacity level;
when an aggregate of the first quantity of resources and the third quantity of resources is less than the second quantity of resources and another workload domain with excess resources is not identified:
de-allocate the first quantity of resources from the first workload domain to a shared resource pool to satisfy the first policy capacity level; and
de-allocate the third quantity of resources from the first workload domain to a shared resource pool to satisfy the third policy capacity level.

### Claim 4 (depends on 3)

An apparatus as defined in claim 3, wherein when the aggregate of the first quantity of resources and the third quantity of resources is less than the second quantity of resources and another workload domain with excess resources is identified, allocate the first quantity of resources, the third quantity of resources, and the excess resources to the second workload domain.

### Claim 5 (depends on 1)

An apparatus as defined in claim 1, wherein the first quantity of resources exceeds the first policy capacity level of the first user-defined policy by a threshold amount.

### Claim 6 (depends on 1)

An apparatus as defined in claim 1, wherein the policy enforcer is to categorize the plurality of workload domains according to a policy update type.

### Claim 7 (depends on 6)

An apparatus as defined in claim 6, wherein the policy update type is at least one of CPU speed, memory, or mass storage.

### Claim 8

A method to manage a plurality of workload domains, the method comprising:
evaluating, by executing an instruction with a processor, whether capacities of the plurality of workload domains comply with policy capacity levels of respective user-defined policies for the plurality of workload domains; and
when a first workload domain has a first quantity of resources that exceeds a first policy capacity level of a first user-defined policy:
identifying, by executing an instruction with the processor, a second workload domain requesting a second quantity of resources;
when the second quantity of resources is equal to the first quantity of resources, allocating, by executing an instruction with the processor, the first quantity of resources from the first workload domain to the second workload domain to satisfy the first policy capacity level; and
when the second quantity of resources is less than the first quantity of resources:
allocating, by executing an instruction with the processor, the second quantity of resources from the first workload domain to the second workload domain; and
de-allocating, by executing an instruction with the processor, remaining resources from the first workload domain to a shared resource pool to satisfy the first policy capacity level.

### Claim 9 (depends on 8)

A method as defined in claim 8, wherein the second workload domain is to request the second quantity of resources to satisfy a second policy capacity level associated with a second user-defined policy for the second workload domain.

### Claim 10 (depends on 8)

A method as defined in claim 8, further including, when the second quantity of resources is greater than the first quantity of resources:
identifying a third workload domain with a third quantity of resources that exceeds a third policy capacity level of a third user-defined policy;
when an aggregate of the first quantity of resources and the third quantity of resources is equal to the second quantity of resources:
allocating the first quantity of resources from the first workload domain to the second workload domain; and
allocating the third quantity of resources from the third workload domain to the second workload domain to satisfy the third policy capacity level;
when an aggregate of the first quantity of resources and the third quantity of resources is less than the second quantity of resources and another workload domain with excess resources is not identified:
de-allocating the first quantity of resources from the first workload domain to a shared resource pool to satisfy the first policy capacity level; and
de-allocating the third quantity of resources from the first workload domain to a shared resource pool to satisfy the third policy capacity level.

### Claim 11 (depends on 10)

A method as defined in claim 10, further including, when the aggregate of the first quantity of resources and the third quantity of resources is less than the second quantity of resources and another workload domain with excess resources is identified, allocating the first quantity of resources, the third quantity of resources, and the excess resources to the second workload domain.

### Claim 12 (depends on 8)

A method as defined in claim 8, wherein the first quantity of resources exceeds the first policy capacity level of the first user-defined policy by a threshold amount.

### Claim 13 (depends on 8)

A method as defined in claim 8, further including categorizing the plurality of workload domains according to a policy update type.

### Claim 14 (depends on 13)

A method as defined in claim 13, wherein the policy update type is at least one of CPU speed, memory, or mass storage.

### Claim 15

A non-transitory computer-readable storage medium comprising instructions that, when executed, cause a machine to at least:
evaluate whether capacities of a plurality of workload domains comply with policy capacity levels of respective user-defined policies for the plurality of workload domains; and
when a first workload domain has a first quantity of resources that exceeds a first policy capacity level of a first user-defined policy:
identify a second workload domain requesting a second quantity of resources;
when the second quantity of resources is equal to the first quantity of resources, allocate the first quantity of resources from the first workload domain to the second workload domain to satisfy the first policy capacity level; and
when the second quantity of resources is less than the first quantity of resources:
allocate the second quantity of resources from the first workload domain to the second workload domain; and
de-allocate remaining resources from the first workload domain to a shared resource pool to satisfy the first policy capacity level.

### Claim 16 (depends on 15)

A storage medium as defined in claim 15, wherein the second workload domain is to request the second quantity of resources to satisfy a second policy capacity level associated with a second user-defined policy for the second workload domain.

### Claim 17 (depends on 15)

A storage medium as defined in claim 15, wherein the instructions, when executed, cause the machine to, when the second quantity of resources is greater than the first quantity of resources:
identify a third workload domain with a third quantity of resources that exceeds a third policy capacity level of a third user-defined policy;
when an aggregate of the first quantity of resources and the third quantity of resources is equal to the second quantity of resources:
allocate the first quantity of resources from the first workload domain to the second workload domain; and
allocate the third quantity of resources from the third workload domain to the second workload domain to satisfy the third policy capacity level;
when an aggregate of the first quantity of resources and the third quantity of resources is less than the second quantity of resources and another workload domain with excess resources is not identified:
de-allocate the first quantity of resources from the first workload domain to a shared resource pool to satisfy the first policy capacity level; and
de-allocate the third quantity of resources from the first workload domain to a shared resource pool to satisfy the third policy capacity level.

### Claim 18 (depends on 17)

A storage medium as defined in claim 17, wherein the instructions, when executed, cause the machine to, when the aggregate of the first quantity of resources and the third quantity of resources is less than the second quantity of resources and another workload domain with excess resources is identified, allocate the first quantity of resources, the third quantity of resources, and the excess resources to the second workload domain.

### Claim 19 (depends on 15)

A storage medium as defined in claim 15, wherein the first quantity of resources exceeds the first policy capacity level of the first user-defined policy by a threshold amount.

### Claim 20 (depends on 15)

A storage medium as defined in claim 15, wherein the instructions, when executed, cause the machine to categorize the plurality of workload domains according to a policy update type.
