Note the following about input and output to the algorithm.
Input: One or more vApp templates and a request to place one or more vApps.
Output: Either an error response if the placement is not possible or an indication of which vDCs and which templates must be used, and how many vApps placed in each.
The algorithm relies on several configuration options that can have some impact on the output. The general algorithm is the same regardless of the current configuration. Similarly, the inputs dictate the possible outputs. However, the algorithm also recognizes a single special case. The special case occurs when just one vApp is being placed, which changes the way the algorithm selects the outputs. When placing multiple vApps, the algorithm tries to find a fair distribution of vApps across all the available resources. In the special case of placing a single vApp, the algorithm instead tries to place the vApp in the vDC that makes the vApp available in the shortest possible time.
The algorithm starts out with one or more vApp templates which can be used interchangeably to deploy the requested number of vApps. From this initial list of templates, the system locates all the vDCsin which it may be possible to place a vApp. Possibilities include the following:
All the vDCs to which the templates belong
Any vDC that shares storage with a vDC that owns one of the templates, and therefore can access the template and any vDC that has a shadow copy of any of the initial templates.
From this collection of vDCs, the system removes any that are not currently available for deployments due to the current configuration. The storage usage for the vDC is then checked. Any vDC whose current storage level is above the configured threshold in VMware Learning Platform is ruled out. For the vDCs still under consideration, the system calculates a current resource utilization score based on the current amount of memory and CPU in use relative to the limits configured for that vDC. This utilization score is compared to the configured usage threshold, and any vDC whose utilization is above the threshold is noted –although not ruled out at this point.
The final piece of information collected for the vDCs still under consideration is any outstanding work that VMware Learning Platform has already assigned to the vDC.
This will not rule out any vDC but does the factor into the calculations for assigning deployments.
If the algorithm is placing a single vApp, then at this point the algorithm has enough information to determine which vDC is likely to produce the fastest deployment. That vDC is selected and the process then complete.
When placing multiple vApps, VMware Learning Platform generally considers all the available vDCs roughly equal and tries to evenly distribute the vApps across all available vDCs. The exceptions to even distribution are:
If it has reached it storage limits, then a vDC will not be used
If placing new vApps in that vDC will push it past its storage limit
Deployment to a vDC will be scaled back when its utilization score moves past its threshold. In this case, the number of vApps assigned to that vDC will be scaled back from what might be an even distribution by an amount dependent on how far past its utilization threshold the vDC has gone. The extra vApps are assigned to other vDCs.