.TH "burst_buffer.conf" "5" "January 2022" "Slurm configuration file"
.SH "NAME"
burst_buffer.conf \- Slurm configuration file for burst buffer management.

.SH "DESCRIPTION"
\fBburst_buffer.conf\fP is an ASCII file which describes the configuration
of burst buffer resource management.
This file is only required on the head node(s), where the slurmctld daemon
executes.
The file will always be located in the same directory as the \fBslurm.conf\fR.
.LP
Parameter names are case insensitive.
Any text following a "#" in the configuration file is treated
as a comment through the end of that line.
Changes to the configuration file take effect upon restart of
Slurm daemons, daemon receipt of the SIGHUP signal, or execution
of the command "scontrol reconfigure".
.LP
The configuration parameters available include:

.TP
\fBAllowUsers\fR
Comma separated list of user names and/or IDs permitted to use burst buffers.
The options \fBAllowUsers\fR and \fBDenyUsers\fR can not both be specified.
By default all users are permitted to use burst buffers.
.IP
.\" Possible future enhancement for generic plugin
.\" .TP
.\" \fBAltPool\fR
.\" The AltPool value consists of a comma separated list of alternate pools of
.\" resources, each of which includes a name separated by a colon and a numeric
.\" value.
.\" The numeric value can include a suffix of "k", "m", "g", "t" and "p" which
.\" multiplies the numeric value by 1,024, 1,048,576, 1,073,741,824 etc.
.\" The numeric value is a 64\-bit value.
.\" for example, "AltPool=test:20g,small:4g
.\".TP
.\"\fBCreateBuffer\fR
.\"Fully qualified path name of a program which will create both persistent
.\"and per\-job burst buffers.
.\"This option is not used by the burst_buffer/datawarp plugin.

.TP
\fBDefaultPool\fR
Name of the pool used by default for resource allocations.
The default value is the first pool reported by the burst buffer infrastructure.
This option is only used by the burst_buffer/datawarp plugin.
.IP

.TP
\fBDenyUsers\fR
Colon delimited list of user names and/or IDs prevented from using burst buffers.
The options \fBAllowUsers\fR and \fBDenyUsers\fR can not both be specified.
By default all users are permitted to use burst buffers.
.IP
.\".TP
.\"\fBDestroyBuffer\fR
.\"Fully qualified path name of a program which will destroy both persistent
.\"and per\-job burst buffers.
.\"This option is not used by the burst_buffer/datawarp plugin.

.TP
\fBDirective\fR
The string that must be used by a job to request a burst buffer. This string
must be immediately preceded by a single '#' character. This is currently only
used by the lua plugin. For the lua plugin, the default value is "BB_LUA".
See burst_buffer.html for more details.
.IP

.TP
\fBFlags\fR
String used to control various functions.
Multiple options may be comma separated.
Supported options include:
.IP
.RS
.TP
\fBDisablePersistent\fR
Prevents regular users from being able to create and destroy persistent burst buffers.
This is the default behavior, only privileged users (Slurm operators and
administrators) can create or destroy persistent burst buffers.
.IP

.TP
\fBEmulateCray\fR
Emulating a Cray DataWarp system using the dw_wlm_cli script in the burst_buffer/datawarp plugin.
This is only used by the datawarp plugin.
.IP

.TP
\fBEnablePersistent\fR
Enables regular users to create and destroy persistent burst buffers.
By default, only privileged users (Slurm operators and administrators) can
create or destroy persistent burst buffers.
This is only used by the datawarp plugin.
.IP

.TP
\fBPrivateData\fR
If set, then only Slurm operators and the burst buffer owner can see burst
buffer data.
.IP

.TP
\fBTeardownFailure\fR
If set, then teardown a burst buffer after file staging error. Otherwise
preserve the burst buffer for analysis and manual teardown.
.RE
.IP

.TP
\fBGetSysState\fR
Fully qualified path name of a program which will return the current burst
buffer state.
For the DataWarp plugin, this should be the path of the \fIdw_wlm_cli\fR command
and its default value is /opt/cray/dw_wlm/default/bin/dw_wlm_cli.
This is not used by the lua plugin.
.IP

.TP
\fBGetSysStatus\fR
Fully qualified path name of a program which will return the current burst
buffer status.
For the DataWarp plugin, this should be the path of the \fIdwstat\fR command
and its default value is /opt/cray/dws/default/bin/dwstat.
This is not used by the lua plugin.
.IP
.\".TP
.\"\fBGranularity\fR
.\"Granularity of job space allocations in units of bytes.
.\"The numeric value may have a suffix of "m" (megabytes), "g" (gigabytes),
.\""t" (terabytes), "p" (petabytes), or "n" (nodes).
.\"Bytes is assumed if no suffix is supplied.
.\"This option is not used by the burst_buffer/datawarp plugin.

.TP
\fBOtherTimeout\fR
If a burst buffer operation (other than job validation, stage in, or stage out)
runs for longer than this number of seconds, the job will be placed in a held
state.
A Slurm administrator will be required to release the job.
By default there is a 300 second (5 minute) timeout for these operations.
Also see \fBStageInTimeout\fR, \fBStageOutTimeout\fR, and \fBValidateTimeout\fR
options.
For the lua plugin, the maximum timeout value is 2073600 seconds (24 days).
.IP

.TP
\fBPollInterval\fR
This option only applies to the lua plugin.
If the test_data_{in|out} hooks return success and "BUSY", then they will be
called again after waiting for the specified number of seconds. The default
value is 15 seconds.
.IP

.TP
\fBPrivateData\fR
If set to "true" then users will only be able to view burst buffers they can
use.
Slurm administrators will still be able to view all burst buffers.
By default, users can view all burst buffers.
.IP

.TP
\fBStageInTimeout\fR
If the stage in of files for a job takes more than this number of seconds,
the burst buffer will be released and the job will be placed in a held state.
A Slurm administrator will be required to release the job.
By default there is a one day timeout for the stage in process.
For the lua plugin, the maximum timeout value is 2073600 seconds (24 days).
.IP

.TP
\fBStageOutTimeout\fR
If the stage out of files for a job takes more than this number of seconds,
the burst buffer will be released and the job will be purged.
By default there is a one day timeout for the stage out process.
For the lua plugin, the maximum timeout value is 2073600 seconds (24 days).
.IP

.TP
\fBValidateTimeout\fR
If the validation of a job submission request takes more than this number of
seconds, the submission will be rejected.
The value of \fBValidateTimeout\fR must be less than the value of
\fBMessageTimeout\fR configured in the slurm.conf file or job submission
requests may fail with a response timeout error.
By default there is a 5 second timeout for the validation operations.
In the lua plugin, because the validation operation cannot be killed, this
option is not used.
.IP

.SH "COPYING"
Copyright (C) 2014\-2022 SchedMD LLC.
.LP
This file is part of Slurm, a resource management program.
For details, see <https://slurm.schedmd.com/>.
.LP
Slurm is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
.LP
Slurm is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.

.SH "SEE ALSO"
.LP
\fBslurm.conf\fR(5)
