# US 10,374,967 B2 · Profile-based placement of clients

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

- Number: US 10,374,967 B2
- Document ID: US10374967B2
- Status: Granted
- Kind: B2
- Application number: 14/137,851
- Filed: 2013-12-20
- Published: 2015-04-30
- Granted: 2019-08-06
- Earliest claimed: 2013-10-28
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Badarinadh Vissamsetti
- Web page: https://patentgrep.com/patent/US10374967B2

## CPC

- G06F 9/5044: {considering hardware capabilities}
- H04L 47/70: Admission control; Resource allocation
- G06F 9/505: {considering the load}
- G06F 9/5055: {considering software capabilities, i.e. software resources associated or available to the machine}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A client placement module and method for placing a client in a distributed computer system uses at least one requirement profile with profile parameters to determine whether any host computer in the distributed computer system satisfies resource requirements of the client and also matches the profile parameters in the at least one requirement profile.

## Claims

### Claim 1

A method for placing a client in a distributed computer system, the method comprising:
receiving profile parameters from a user, wherein at least some of the profile parameters have importance settings that are set to a highest importance level, a lower importance level and a lowest importance level, wherein the highest importance level indicates that a first profile parameter is required by the user in a corresponding requirement profile, the lower importance level indicates that a second profile parameter is not required by the user but is desirable by the user in the corresponding requirement profile and the lowest importance level indicates that a third profile parameter is less important to the user in the corresponding requirement profile than the second profile parameter;
automatically creating multiple requirement profiles with different priorities for the client using the profile parameters provided by the user, each of the multiple requirement profiles including at least some of the profile parameters, the multiple requirement profiles including at least a first requirement profile with a highest priority and a second requirement profile with a lowest priority, the first requirement profile with the highest priority including at least one profile parameter not included in the second requirement profile with the lowest priority, wherein the at least one profile parameter is not required by the user but is desirable by the user in the first requirement profile with the highest priority;
determining whether any host computer in the distributed computer system satisfies resource requirements of the client and also matches the profile parameters in one of the multiple requirement profiles, including successively applying the multiple requirement profiles with different priorities in an order from the first requirement profile with the highest priority to the second requirement profile with the lowest priority if no host computer in the computer cluster matches the profile parameters of one or more applied requirement profiles until at least one host computer that matches the profile parameters for one of the multiple requirement profiles is found, wherein a requirement profile with a lower priority includes fewer profile parameters than a requirement profile with a higher priority, and wherein each of the requirement profiles with the different priorities includes the profile parameters with the importance settings set at the highest importance level; and
identifying a host computer in the distributed computer system as a suitable host computer to place the client if the host computer satisfies the resource requirements of the client and also matches the profile parameters in the requirement profile.

### Claim 2 (depends on 1)

The method of claim 1, wherein the profile parameters provided by the user includes at least one of a capability and a feature of a desired host computer in which to place the client.

### Claim 3 (depends on 1)

The method of claim 1, wherein the determining whether any host computer in the distributed computer system satisfies the resource requirements of the client includes executing a resource allocation analysis on host computers of a cluster of host computers in the distributed computer system to determine one or more candidate host computers in which to place the client.

### Claim 4 (depends on 3)

The method of claim 3, wherein the determining whether any host computer in the distributed computer system satisfies the resource requirements of the client includes performing a load balancing analysis on the host computers of the cluster of host computers in the distributed computer system.

### Claim 5 (depends on 3)

The method of claim 3, wherein the determining whether any host computer in the distributed computer system matches the profile parameters in the at least one requirement profile includes determining whether any of the determined candidate host computers match the profile parameters in the at least one requirement profile.

### Claim 6 (depends on 1)

The method of claim 1, wherein the successively applying each of the multiple requirement profiles includes first applying the first requirement profile with the highest priority and then subsequently applying a requirement profile with the next highest priority if no host computer in the computer cluster matches the profile parameters of the first requirement profile with the highest priority, wherein the requirement profile with the next highest priority includes fewer profile parameters than the first requirement profile with the highest priority.

### Claim 7 (depends on 6)

The method of claim 6, wherein the applying the first requirement profile with the highest priority includes applying the first requirement profile with the highest priority that includes all the profile parameters regardless of the importance settings of the some of the profile parameters.

### Claim 8 (depends on 7)

The method of claim 7, further comprising applying the second requirement profile with the lowest priority that includes only the profile parameters with the importance settings set at the highest importance level.

### Claim 9

A management server for a distributed computer system comprising:
memory and
a processor configured to:
receive profile parameters from a user, wherein at least some of the profile parameters have importance settings that are set to a highest importance level, a lower importance level and a lowest importance level, wherein the highest importance level indicates that a first profile parameter is required by the user in a corresponding requirement profile, the lower importance level indicates that a second profile parameter is not required by the user but is desirable by the user in the corresponding requirement profile and the lowest importance level indicates that a third profile parameter is less important to the user in the corresponding requirement profile than the second profile parameter;
automatically create multiple requirement profiles with different priorities for the client using the profile parameters provided by the user, each of the multiple requirement profiles including at least some of the profile parameters, the multiple requirement profiles including at least a first requirement profile with a highest priority and a second requirement profile with a lowest priority, the first requirement profile with the highest priority including at least one profile parameter not included in the second requirement profile with the lowest priority, wherein the at least one profile parameter is not required by the user but is desirable by the user in the first requirement profile with the highest priority;
determine whether any host computer in the distributed computer system satisfies resource requirements of the client and also matches the profile parameters in one of the multiple requirement profiles, including successively applying the multiple requirement profiles with different priorities in an order from the first requirement profile with the highest priority to the second requirement profile with the lowest priority if no host computer in the computer cluster matches the profile parameters of one or more applied requirement profiles until at least one host computer that matches the profile parameters for one of the multiple requirement profiles is found, wherein a requirement profile with a lower priority includes fewer profile parameters than a requirement profile with a higher priority, and wherein each of the requirement profiles with the different priorities includes the profile parameters with the importance settings set at the highest importance level; and
identify a host computer in the distributed computer system as a suitable host computer to place the client if the host computer satisfies the resource requirements of the client and also matches the profile parameters in the requirement profile.

### Claim 10 (depends on 9)

The management server of claim 9, wherein the profile parameters provided by the user includes at least one of a capability and a feature of a desired host computer in which to place the client.

### Claim 11 (depends on 9)

The management server of claim 9, wherein the processor uses results of a resource allocation analysis on host computers of a cluster of host computers in the distributed computer system to determine the suitable host computer.

### Claim 12 (depends on 11)

The management server of claim 11, wherein the processor uses results of a load balancing analysis on the host computers of the cluster of host computers in the distributed computer system to determine the suitable host computer.

### Claim 13 (depends on 9)

The management server of claim 9, wherein the processor is configured to first apply the first requirement profile with the highest priority and then subsequently apply a requirement profile with the next highest priority if no host computer in the computer cluster matches the profile parameters of the requirement profile with the highest priority, wherein the requirement profile with the next highest priority includes fewer profile parameters than the first requirement profile with the highest priority.

### Claim 14 (depends on 13)

The management server of claim 13, wherein the processor is configured to apply the first requirement profile with the highest priority that includes all the profile parameters regardless of the importance settings of the some of the profile parameters.

### Claim 15 (depends on 14)

The management server of claim 14, wherein the processor is configured to apply the second requirement profile with the lowest priority that includes only the profile parameters with the importance settings set at the highest importance level.

### Claim 16

A non-transitory computer-readable storage medium containing program instructions for placement of a client in a distributed computer system, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform steps comprising:
receiving profile parameters from a user, wherein at least some of the profile parameters have importance settings that are set to a highest importance level, a lower importance level and a lowest importance level, wherein the highest importance level indicates that a first profile parameter is required by the user in a corresponding requirement profile, the lower importance level indicates that a second profile parameter is not required by the user but is desirable by the user in the corresponding requirement profile and the lowest importance level indicates that a third profile parameter is less important to the user in the corresponding requirement profile than the second profile parameter;
automatically creating multiple requirement profiles with different priorities for the client using the profile parameters provided by the user, each of the multiple requirement profiles including at least some of the profile parameters, the multiple requirement profiles including at least a first requirement profile with a highest priority and a second requirement profile with a lowest priority, the first requirement profile with the highest priority including at least one profile parameter not included in the second requirement profile with the lowest priority, wherein the at least one profile parameter is not required by the user but is desirable by the user in the first requirement profile with the highest priority;
determining whether any host computer in the distributed computer system satisfies resource requirements of the client and also matches the profile parameters in one of the multiple requirement profiles, including successively applying the multiple requirement profiles with different priorities in an order from the first requirement profile with the highest priority to the second requirement profile with the lowest priority if no host computer in the computer cluster matches the profile parameters of one or more applied requirement profiles until at least one host computer that matches the profile parameters for one of the multiple requirement profiles is found, wherein a requirement profile with a lower priority includes fewer profile parameters than a requirement profile with a higher priority, and wherein each of the requirement profiles with the different priorities includes the profile parameters with the importance settings set at the highest importance level; and
identifying a host computer in the distributed computer system as a suitable host computer to place the client if the host computer satisfies the resource requirements of the client and also matches the profile parameters in the requirement profile.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein the determining whether any host computer in the distributed computer system satisfies the resource requirements of the client includes executing a resource allocation analysis on host computers of a computer cluster in the distributed computer system to determine one or more candidate host computers in which to place the client.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the determining whether any host computer in the distributed computer system satisfies the resource requirements of the client includes performing a load balancing analysis on the host computers of the cluster of host computers in the distributed computer system.

### Claim 19 (depends on 18)

The non-transitory computer-readable storage medium of claim 18, wherein the determining whether any host computer in the distributed computer system matches the profile parameters in the at least one requirement profile includes determining whether any of the determined candidate host computers match the profile parameters in the at least one requirement profile.

### Claim 20 (depends on 16)

The non-transitory computer-readable of claim 16, wherein the successively applying each of the multiple requirement profiles includes first applying the first requirement profile with the highest priority and then subsequently applying a requirement profile with the next highest priority if no host computer in the computer cluster matches the first profile parameters of the requirement profile with the highest priority, wherein the requirement profile with the next highest priority includes fewer profile parameters than the first requirement profile with the highest priority.
