(Click to open topic with navigation)
Synopsis
Overview
A virtual container (VC) is a logical grouping of objects with a shared variable space and applied policies. Containers can hold virtual machines, jobs, reservations, and nodes. Containers can also be nested inside other containers.
A VC can be owned by a user, group, or account. Users can only view VCs to which they have access. Level 1 administrators (Admin1) can view and modify all VCs. The owner can also be changed. When modifying the owner, you must also specify the owner type:
mvcctl -m OWNER=acct:bob myvc
Adding objects to VCs at submission: You associate jobs, VMs, and reservations with a specified VC upon submission. For example,
The user who submits objects must have access to the VC or the command is rejected.
FullXML flag
The FullXML flag will cause the mvcctl -q command to show VCs in a hierarchical manner. If doing a non-XML (plaintext) query, sub-VCs will be listed inside their parent VCs. Each VC will be indented more than its parent.
VC[vc2] (vc2) Owner: user:jason VCs: VC[vc1] (vc1) Owner: user:jason Jobs: Moab.1 Rsvs: system.1 VCs: VC[vc3] (vc3) Owner: user:jason VC[vc4] (vc4) Owner: user:jason
If doing an XML query, the XML for all sub-objects (VCs, but also reservations, jobs, etc.) will also be included in the VC.
<Data> <vc DESCRIPTION="vc2" NAME="vc2" OWNER="user:jason"> <vc DESCRIPTION="vc1" NAME="vc1" OWNER="user:jason"> <job CmdFile="sleep 7200" Flags="GLOBALQUEUE,NORMSTART" Group="jason" JobID="Moab.1" PAL="[base]" RM="internal" ReqAWDuration="2:00:00" User="jason"> <req Index="0"></req> </job> <rsv ACL="RSV=%=system.1=;" AUser="jason" AllocNodeList="n0,n1,n2,n3,n4,n5,n6,n7,n8,n9" HostExp="ALL" HostExpIsSpecified="TRUE" Name="system.1" Partition="base" ReqNodeList="n0:1,n1:1,n2:1,n3:1,n4:1,n5:1,n6:1,n7:1,n8:1,n9:1" Resources="PROCS=[ALL]" StatCIPS="5964" SubType="Other" Type="User" ctime="1299953557" duration="3600" endtime="1299957157" flags="ISCLOSED,ISGLOBAL,ISACTIVE,REQFULL" starttime="1299953557"> <CL aff="neutral" cmp="%=" name="system.1" type="RSV"> </ACL> <CL aff="neutral" cmp="%=" name="system.1" type="RSV"></CL> <History> <event state="PROCS=40" time="1299953557"></event> </History> </rsv> <vc DESCRIPTION="vc3" NAME="vc3" OWNER="user:jason"></vc> </vc> <vc DESCRIPTION="vc4" NAME="vc4" OWNER="user:jason"></vc> </vc> </Data>
Note that the XML from the blocking and non-blocking commands may differ.
Virtual Container Flags
The following table indicates available virtual container (VC) flags and associated descriptions. Note that the Deleting, HasStarted, and Workflow flags cannot be set by a user but are helpful indicators of status.
VC Flags | |
---|---|
DestroyObjects | When the VC is destroyed, any reservations, jobs, and VMs in the VC are also destroyed. This is recursive, so any objects in sub-VCs are also destroyed. Nodes are not removed. |
DestroyWhenEmpty | When the VC is empty, it is destroyed. |
Deleting |
Set by the scheduler when the VC has been instructed to be removed. Internal flag. Administrators cannot set or clear this flag. |
HasStarted |
This flag is set on a VC workflow where at least one job has started. Internal flag. Administrators cannot set or clear this flag. |
HoldJobs | This flag will place a hold on any job that is submitted to the VC while this flag is set. It is not applied for already existing jobs that are added into the VC. If a job with a workflow is submitted to the VC, all jobs within the workflow are placed on hold. |
NoReleaseWhenScheduled | Prevents Moab from lifting the UserHold on the workflow when it is scheduled. This enables an approval method in which an administrator must release the hold manually before the service is allowed to start as scheduled. See Requiring Approval for Services to run for more information. |
Workflow |
Designates this VC as a VC that is for workflows. This flag is set when generated by a job template workflow. Workflow jobs can only be attached to one workflow VC. Internal flag. Administrators cannot set or clear this flag. |
Format
-d | |
---|---|
Format | mvcctl -d<lab01> |
Description | Destroy the VC. |
Example |
mvcctl -d vc13 >>VC 'vc13' destroyed |
-x | |
---|---|
Format | mvcctl -x<action><name> |
Description |
Executes the given action on the virtual container (VC). |
Example |
mvcctl -x schedulevc vc1 |