Virtual Private Clusters
Moab Workload Manager®

20.1 Virtual Private Clusters

20.1.1 Virtual Private Cluster Overview

The Moab Hosting Center Server allows sites to aggregate resources together and make these resources available to a customer as a complete package custom tailored to dynamic customer needs. With Virtual Private Clusters (VPCs), a site can package needed support resources such as network, data, and security objects together allowing a customer to simply request the primary resource actually needed, such as a compute node. With VPCs, Moab will, behind the scenes, dynamically provision all other aspects without burdening the customer with these details.

When requesting resources, a particular VPC profile can be specified using the -p argument of the mshow -a command.

20.1.2 Configuring Virtual Cluster Profiles

VPC Profiles are configured using VCPROFILE. They allow a site to specify resources that should be allocated together with explicitly requested resources and otherwise set defaults for how VPCs should be created.

ACL DESCRIPTION NODEHOURCHARGERATE NODESETLIST NODESETUPCOST
OPRSVPROFILE QUERYDATA REQENDPAD REQSETATTR REQSTARTPAD
           

ATTRIBUTE

ACL
FORMATList of zero or more comma delimited <OTYPE>==<OID>[:<OID>] pairs where <OTYPE> is one of the following:
USER, GROUP, ACCT, CLASS, or QOS
DEFAULT---
DETAILSSpecifies which credentials can view this profile and can create VPCs using this profile.
EXAMPLE
moab.cfg
VCPROFILE[basic] ACL=USER==steve:john,GROUP==staff

Users steve and john and any member of the group staff can use VPC resources.

NOTE: Inputting USER==steve,USER==john will only allow john to use the virtual cluster (as ==john overwrites ==steve). For both to use resources, input USER==steve,USER+=john.

           

ATTRIBUTE

DESCRIPTION
FORMAT<STRING>
DEFAULT---
DETAILSArbitrary human readable string describing VPC profile usage.

(NOTE: This string will be provided to end users via application and web portals to help them select the appropriate resources.)
EXAMPLE
moab.cfg
VCPROFILE[dataset3] DESCRIPTION="custom 1 TB data mining environment with level 3 security"

End-users will see this description when specifying which VPC package to select.

           

ATTRIBUTE

NODEHOURCHARGERATE
FORMAT<DOUBLE>
DEFAULT---
DETAILSPer node chargerate multiplier associated with using resources and services in the specified VPC. See the Utility Computing Accounting or Allocation Management overviews for more information.
EXAMPLE
moab.cfg
VCPROFILE[dataset1] NODEHOURCHARGERATE=1.5
VCPROFILE[dataset2] NODEHOURCHARGERATE=4.0
VCPROFILE[dataset3] NODEHOURCHARGERATE=6.0

Accounts associated with the creation of each data VPC will be charged for VPC utilization with the associated charge multiplier.

           

ATTRIBUTE

NODESETLIST
FORMAT<FEATURE>[,<FEATURE>]...
DEFAULT---
DETAILSNodeset constraints to be applied to explicitly specified reqs in format.

NOTE: The VC profile NODESETLIST attribute only supports blocking node feature based node sets with the ONEOF policy enforced.
EXAMPLE
moab.cfg
VCPROFILE[dataset3] NODESETLIST=fastio,myrinet

Resources will either be allocated entirely from the fastio or the myrinet node set.

           

ATTRIBUTE

NODESETUPCOST
FORMAT<DOUBLE>
DEFAULT---
DETAILSPer node cost in credits associated with provisioning resources and services to enable the associated VPC. See the Utility Computing Accounting or Allocation Management overviews for more information.
EXAMPLE
moab.cfg
VCPROFILE[dataset1] NODESETUPCOST=20.5
VCPROFILE[dataset2] NODESETUPCOST=20.5
VCPROFILE[dataset3] NODESETUPCOST=65.0

Accounts associated with the creation of a new VPC will be assessed a per-node charge for each node in a newly created VPC associated with the overhead of setting up the needed environment.

           

ATTRIBUTE

OPRSVPROFILE
FORMAT<RSVPROFILEID>
DEFAULT---
DETAILSThe default reservation profile for resource requirements that are explicitly specified by the user.
EXAMPLE
moab.cfg
VCPROFILE[dataset3] OPRSVPROFILE=fastp

Resource requirements that are explicitly specified by the requestor and that do not have an explicit reservation profile will use the fastp reservation profile.

           

ATTRIBUTE

QUERYDATA
FORMAT<RESOURCE_QUERY_STRING> (See mshow command usage.)
DEFAULT---
DETAILSList of requirements (reqs) to be co-allocated along with explicitly specified requirements.
EXAMPLE
moab.cfg
VCPROFILE[pkgA] QUERYDATA=minprocs=1,nodefeature=ionodes,duration=00:30:00
VCPROFILE[pkgA] QUERYDATA=mintasks=1,gres=vlan:1,duration=01:00:00

One ionode will be allocated for the first 30 minutes of the VPC and one vlan generic resource will be allocated for the first hour.

           

ATTRIBUTE

REQENDPAD
FORMAT[[[DD:]HH:]MM:]SS
DEFAULT---
DETAILSAmount of additional time required after each explicitly specified req.
EXAMPLE
moab.cfg
VCPROFILE[premium] REQENDPAD=00:05:00

Five minutes of additional walltime will be appended to the end of each explicitly specified requirement.

           

ATTRIBUTE

REQSETATTR
FORMAT<RESOURCE_LIST>
DEFAULT---
DETAILSA list of comma-delimited resource requirements that are merged with the resource request requirements in the corresponding mshow -a command.
EXAMPLE
moab.cfg
VCPROFILE[Large]    REQSETATTR=mintasks=4,gres=tape:2

A request for four tasks and two generic resources named tape are appended to the user-specified resource request.

           

ATTRIBUTE

REQSTARTPAD
FORMAT[[[DD:]HH:]MM:]SS
DEFAULT---
DETAILSAmount of additional time required before each explicitly specified req.
EXAMPLE
moab.cfg
VCPROFILE[premium] REQSTARTPAD=00:15:00

Fifteen minutes of additional walltime will be prepended to the start of each explicitly specified requirement.



The reservation profiles of the VPC set with the QUERYDATA or OPRSVPROFILE attributes can be used to manage provisioning of VPC resources. This provisioning is generally enabled via the use of triggers although it may also be enabled through a resource manager interface.

NOTE: If a QUERYDATA attribute has a nodefeature constraint of $common, the co-allocation query will import the nodefeature constraint of the first explicitly specified req.

20.1.3 Creating VPCs

VPCs are created using the -c vpc argument of the mschedctl command as in the following example:

vpc creation
> mshow -a -p pkgA -w minprocs=4,duration=10:00:00 --flags=tid,summary,future

Partition     Tasks  Nodes      Duration   StartOffset       StartDate
---------     -----  -----  ------------  ------------  --------------
ALL               4      4      10:00:00      00:00:00  13:28:09_04/27  TID=4  ReqID=0
ALL               4      4      10:00:00      10:00:00  17:14:48_04/28  TID=5  ReqID=0
ALL               4      4      10:00:00      20:00:00  21:01:27_04/29  TID=6  ReqID=0

> mschedctl -c vpc -a resources=5 -a package=pkgA

pkgA.721

A VPC can be created with arbitrary variables imported into its environment using the variable attribute. For example, to create a VPC with the variables os and application set, the previously demonstrated mschedctl command could be changed to the following:

vpc variable creation
> mschedctl -c vpc -a resources=5 -a package=pkgA -a variables=os=rhel3;application=renderman45

pkgA.722

20.1.4 Listing VPCs

Listing VPCs is accomplished using the mschedctl -l vpc command.

20.1.5 Modifying VPCs

Modifying VPCs is accomplished using the "mschedctl -m vpc:<VPCID>" command.

20.1.6 Destroying VPCs

Dynamically destroying VPCs is accomplished using the mschedctl -d vpc:<VPCID> command.

20.1.7 Charging for VPCs

Charging within a VPC is flexible allowing charges for pre-execution provisioning overhead, for actual utilization of compute, license, network, and storage resources, and for use and manipulation of generic resources and services. In addition, charge rates can be adjusted based on the service level and resource type requested as well as the credentials of the requestor. See Utility Computing Accounting for more information.

See Also