5.5 Scheduling Jobs When VMs Exist

Each Job has a VM usage policy. This policy directs how Moab considers physical and virtual nodes when allocating resources for a job. These are the supported policies:

Policy Details
The job should create a one-time use virtual machine for the job to run on. Any virtual machines created by the job are destroyed when the job is finished. If specified, the job itself must request an OS so an appropriate virtual machine can be provisioned.
States that the job should run only on virtual machines that already exist.

If the HIDEVIRTUALNODES parameter is configured with a value of TRANSPARENT, jobs are given a default policy of REQUIREVM. Otherwise they are given a policy of REQUIREPM. These defaults can be overridden by using the extension resource VMUSAGE or by setting the policy via a job template. An example of both is given below.

Examples

As an extension resource:

> msub -l vmusage=requirepm

As a template parameter:

JOBCFG[vmjob] VMUSAGE=requirevm

The VMUSAGE policy of a job can be viewed by using checkjob -v.

VM Tracking

VMs can be represented by VMTracking jobs in the queue. To enable this method, set the VMTRACKING parameter to TRUE in the Moab configuration file. VMTRACKING enables VM tracking in the job queue.

Requesting a VM with mvmctl creates the VMTracking job, and the VMTracking job generates a VMCreate job. Because the VMTracking job is dependent on the VMCreate job, it is placed in the blocked queue until the VMCreate job completes. If the VMCreate job fails, the VMTracking job is placed on BatchHold.

Because the job and the VM are linked, the VM can be destroyed in two ways:

  1. Using the mvmctl -d command
  2. Cancelling the VMTracking job.

Copyright © 2012 Adaptive Computing Enterprises, Inc.®