Moab Adaptive Computing Suite Administrator's Guide 5.4

2.3 Resource Allocation and Environment Management

In most utility computing environments, a set of resources will be allocated, dedicated, and provided to the requester. These resources are in essence owned by the requester during the allocation time-frame and the requester may use these resources in any manner. From the end-user point of view, this is all that matters. The resources become available at the requested time and are customized in such a way to allow the requester to accomplish some particular task. The requester sees a complete environment properly suited to the specified task.

However, from the point of view of the administrator and hosting center manager, there is much more that is occurring. While it is true that Moab must allocate the needed compute resources during the requested timeframe, there is much more that must occur. To customize the resources, Moab must allocate the compute nodes before the specified timeframe and must also allocate the resources required to provision and customize the node.

To provision a new utility computing space that is customized to a particular request, Moab may need to re-install a set of nodes with a particular operating system image, assign them new IP addresses in a contiguous range, install a set of applications, then create a VLAN to secure them, and finally create and enable one or more user accounts. In this case, a resource is anything that can be consumed and that must be scheduled. Clearly a compute node is a resource, but so is a provisioning service, a staging node, a range of IP addresses, and a VLAN ID.

To properly automate a hosting center, Moab must be instructed regarding the overhead associated with a given request. While it is relatively easy to allocate four nodes for a period of six hours, this is rarely the task that must be accomplished. To make those four nodes useful, they must be provisioned, customized, and secured. Further, if these nodes consume off-node resources such as network, storage, or software resources, then these resources may all require scheduling. This means that these four nodes require co-allocation of other resources that can vary over time. To properly schedule this request, Moab must make certain that all needed resources are available at the appropriate times, whether used by the requester directly or indirectly, or used by the system to create, customize, or manage the resource.

2.3.1 Allocating Resources as a Virtual Private Cluster

To aid in managing the complexities of resource allocation in a utility computing environment, Moab provides the virtual private cluster object, or VPC. A VPC can be thought of as an exoskeleton that encapsulates a request with additional constraints, requests, and attributes. These additional requests may address storage resource needs, provisioning needs, or other environmental factors.

As covered in the VPC Overview, the virtual private cluster allows a hosting center to group requests together while allowing the customer to specify only the resources needed for the task. For example, if a request was received to allocate 64 nodes in a batch access model, the user may simply specify a need for 64 nodes with 2 CPUs and 1 GB of RAM each. The hosting center may choose to create a VPC called basic which then encapsulates the request with a few additional attributes as in the following example:

VCPROFILE[basic] XXX