mvcctl

(Moab Virtual Container Control)

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, physical 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. Admin1 users 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,

Note: 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.00" SubType="Other"
       Type="User" ctime="1299953557" duration="3600"
       endtime="1299957157"
       flags="ISCLOSED,ISGLOBAL,ISACTIVE,REQFULL"
       starttime="1299953557">
         <ACL 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
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.
When the VC is empty, it is destroyed.

Set by the scheduler when the VC has been instructed to be removed.

Note Internal flag. Administrators cannot set or clear this flag.

This flag is set on a VC workflow where at least one job has started.

Note Internal flag. Administrators cannot set or clear this flag.
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.

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.

Note Internal flag. Administrators cannot set or clear this flag.
   

Format

-a
mvcctl -a <OType>:<OName>[,<OType>:<OName>] <name>
---
Add the given object(s).
mvcctl -a JOB:Moab.45 vc13
>>job 'Moab.45' added to VC 'vc13'
   
-c
mvcctl -c [<description>]
---
Create a virtual container (VC). The VC name is auto-generated. It is recommended that you supply a description; otherwise the description is the same as the auto-generated name.
mvcctl -c "Linux testing machine"
>>VC 'vc13' created
   
-d
mvcctl -d <lab01>
---
Destroy the VC.
mvcctl -d vc13
>>VC 'vc13' destroyed
   
-m
mvcctl -m <ATTR>=VAL[,<ATTR>=<VAL>] <name>
---
Modify the VC. Attributes are flags, owner, reqstarttime, reqnodeset, variables, and owner; note that only the owner can modify owner. Use reqstarttime when implementing guaranteed start time to specify when jobs should start. The reqnodeset attribute indicates the node set that jobs should run in that are submitted to a virtual container.
mvcctl variables+=HV=node8 vc13
>>VC 'vc13' successfully modified
									
mvcctl -m flags+=DESTROYWHENEMPTY vc1
>>VC 'vc1' successfully modified
   
-q
mvcctl -q [<name>|ALL] [--xml][--blocking][--flags=fullxml]
---
Query VCs
mvcctl -q ALL
VC[vc13] (Linux testing machine)
Create Time: 1311027343    Creator: jdoe
Owner: user:jdoe
ACL:   USER=%=jdoe+;
Jobs:  Moab.45
Vars:  HV=node88
Flags: DESTROYWHENEMPTY
   
-r
mvcctl -r <OType>:<OName>[,<OType>:<OName>] <name>
---
Remove the given object(s) from the VC.
mvcctl -r JOB:Moab.45 vc13
>>job 'Moab.45' removed from VC 'vc13'
   
-x
mvcctl -x <action> <name>
---
Executes the given action on the virtual container (VC).
mvcctl -x schedulevc vc1

 

Copyright © 2012 Adaptive Computing Enterprises, Inc.®