Scheduler configuration is maintained using the flat text configuration file moab.cfg. All configuration file entries consist of simple <PARAMETER> <VALUE> pairs that are whitespace delimited. Parameter names are not case sensitive but <VALUE> settings are. Some parameters are array values and should be specified as <PARAMETER>[<INDEX>] (Example: QOSCFG[hiprio] PRIORITY=1000); the <VALUE> settings may be integers, floats, strings, or arrays of these. Some parameters can be specified as arrays wherein index values can be numeric or alphanumeric strings. If no array index is specified for an array parameter, an index of zero (0) is assumed. The example below includes both array based and non-array based parameters:
SCHEDCFG[cluster2] SERVER=head.c2.org MODE=NORMAL LOGLEVEL 6 LOGDIR /var/tmp/moablog
See the parameters documentation for information on specific parameters.
The moab.cfg file is read when Moab is started up or recycled. Also, the mschedctl -m command can be used to reconfigure the scheduler at any time, updating some or all of the configurable parameters dynamically. This command can be used to modify parameters either permanently or temporarily. For example, the command mschedctl -m LOGLEVEL 3 will temporarily adjust the scheduler log level. When the scheduler restarts, the log level restores to the value stored in the Moab configuration files. To adjust a parameter permanently, the option --flags=persistent should be set.
At any time, the current server parameter settings may be viewed using the mschedctl -l command.
Most aspects of Moab behavior are configurable. This includes both scheduling policy behavior and daemon behavior. In terms of configuring server behavior, the following realms are most commonly modified.
Moab provides extensive and highly configurable logging facilities controlled by parameters.
Moab checkpoints its internal state. The checkpoint file records statistics and attributes for jobs, nodes, reservations, users, groups, classes, and almost every other scheduling object.
The Client interface is configured using the SCHEDCFG parameter. Most commonly, the attributes SERVER and PORT must be set to point client commands to the appropriate Moab server. Other parameters such as CLIENTTIMEOUT may also be set.
The scheduler mode of operation is controlled by setting the MODE attribute of the SCHEDCFG parameter. The following modes are allowed:
Mode | Description |
---|---|
Interactive | Moab interactively confirms each scheduling action before taking any steps. (See interactive mode overview for more information.) |
Monitor | Moab observes cluster and workload performance, collects statistics, interacts with allocation management services, and evaluates failures, but it does not actively alter the cluster, including job migration, workload scheduling, and resource provisioning. (See monitor mode overview for more information.) |
Normal | Moab actively schedules workload according to mission objectives and policies; it creates reservations; starts, cancels, preempts, and modifies jobs; and takes other scheduling actions. |
Simulation | Moab obtains workload and resource information from specified simulation trace files and schedules the defined virtual environment. |
Singlestep | Moab behaves as in NORMAL mode but will only schedule a single iteration and then exit. |
Slave | Moab behaves as in NORMAL mode but will only start a job when explicitly requested by a trusted grid peer service or administrator. |
Test | Moab behaves as in NORMAL mode, will make reservations, and scheduling decisions, but will then only log scheduling actions it would have taken if running in NORMAL mode. In most cases, TEST mode is identical to MONITOR mode. (See test mode overview for more information.) |