An Insight Orchestration template is the logical specification of an infrastructure service using template components known as logical objects, enabling the user to provision an infrastructure service from resources. Allocation is the process of finding the resources to match to the logical objects described in a template. The process of matching logical objects to resources is a key capability of the Insight Orchestration controller and is part of several request types, including Create request.
After validating the arguments of a Create request, the Insight Orchestration controller performs an allocation. If the Insight Orchestration can locate the resources that match the template, then the allocation is successful. After a successful match, Insight Orchestration reserves the selected resources and provisions to construct the infrastructure service specified by the template. If Insight Orchestration does not locate the necessary resources, the request fails, the resources are not reserved, and the service infrastructure is not created.
Insight Orchestration can also utilize the allocation process during the provisioning process. This internal allocation process can begin when Insight Orchestration cannot successfully provision a logical sever. Insight Orchestration releases the allocated server and attempts another allocation to find a replacement server and continue the provisioning. If the reallocation fails, the Create request fails.
Allocation is a search process to find resources that fit the constraints of a template.
In Insight Orchestration templates, logical objects are either specified by attribute value or by name. You can specify networks, logical server groups, and storage by attributes. You can also specify networks by name.
Insight Orchestration cannot successfully allocate a template if you view logical resources in isolation. Insight Orchestration cannot allocate a network without successfully allocating the logical server groups connected to that network. Similarly, Insight Orchestration cannot allocate logical server group without successfully allocating the storage for all the servers within the group.
When Insight Orchestration executes the allocation algorithm to search for resources, it attempts to allocate networks, then logical server groups, and finally storage. To maximize the chances of success, within each category, the allocation algorithm always attempts to allocate the most constrained logical object first. For example, all the networks in a template are evaluated, and the network with the smallest number of candidate subnets is chosen to allocate first.
A Virtual Connect Domain Group defines the boundaries for a set of resources; specifically compute server, networks, and SAN volumes. Any resource within a VCDomain Group is visible or connected to any other resource within the same VC Domain Group. However, connectivity between VCDomain Groups is uncertain. The Insight Orchestration algorithm verifies VCDomain group boundaries by backtracking, incrementally building candidate solutions for allocation, and abandoning each partial candidate as soon as it determines that it cannot possibly complete the allocation. If the subnet does not have enough servers attached to the network associated to the VCDomain Group, the subnet allocated to a network is abandoned. Insight Orchestration chooses another candidate subnet and retries the logical server group allocation. If another valid candidate subnet is not located, the allocation process fails, and all partial reservations are released.
Template allocation takes place within the context of multiple Create requests submitted simultaneously from different users. If two allocations occur at the same time, they might fail. This occurs if users provision a solution using the same resources at the same time. Consequently, Insight Orchestration treats allocation as a critical step to ensure only one allocation occurs at a time.