Workflow management is an important capability which helps to automate both end-to-end workload and system processes. This eliminates manual intervention, thereby speeding processes and eliminating potential errors. The building blocks of this set of capabilities includes a trigger-based workflow engine, job templates, submit filters, data staging, generic events and generic system jobs. Example uses of these workflow elements would be to perform health checks, handle failures, develop workload workflows, provision/re-purpose nodes, off-line impaired servers, etc.
Trigger-based Workflow Engine
Moab triggers are configurable actions that respond to an event occurring on a Moab object. A trigger is attached to an object and consists of both an event that may take place on the object and the action that the trigger will take. Moab objects to which a trigger may be associated are: Job Triggers, Node Triggers, Reservation Triggers, Resource Manager Triggers, Schedule Triggers, and Threshold Triggers.
Triggers may be connected in multi-step workflows, they may pass variables, allowed to only fire once or re-arm, have timeout periods, have time offsets, and a maximum number of retries allowed. With the rich set of trigger objects, actions and workflow logic the trigger workflow engine provides a powerful automation tool for system and workload processes, allowing administrators to automate desired behaviors on their cluster.
Generic System Jobs
A generic system job is a method of creating a workflow job object, which has no workload to run other than a specific system action. This allows you to string a number of system actions together for more involved system automation use cases. The job is considered complete when the trigger completes.
The greater Moab’s awareness of the computing environment is, the better it can automate actions and workflows. Generic events are used to identify failures and other occurrences of which Moab should be made aware. This information may result in automated resource recovery, notifications, adjustments to statistics, or changes in policy.
Moab job templates are a set of pre-con
figured settings, attributes, and resources that Moab applies to jobs. They are used to match and categorize jobs, set default values, or generate workflows.
With a submit filter you can automatically modify a job before Moab processes it.
Moab’s data staging capabilities allow it to automatically manage data movement in context of when and where a job runs without blocking the resource. This is important as it simplifies a user’s experience and it avoids wasting resources when transferring large files. Moab supports 1) staging data to or from a shared file system, 2) staging data to or from local node storage on a single compute node and 3) staging data to or from a shared file system on an unspecified cluster – resolved at job migration – in a grid configuration. Automating this process improves user productivity and optimizes resource utilization.
With the above mentioned workflow elements, Moab is able to provide rich building blocks to automate workload and system level processes. This helps save time, avoid errors and drive up overall productivity.