Provided by: slurm-client_24.11.5-4_amd64 bug

NAME

       job_container.conf - Slurm configuration file for job_container/tmpfs plugin

DESCRIPTION

       job_container.conf  is an ASCII file which defines parameters used by Slurm's job_container/tmpfs plugin.
       The plugin reads the job_container.conf file to find out the configuration settings.  Based  on  them  it
       constructs  a  private  (or  optionally  shared)  filesystem  namespace  for the job and mounts a list of
       directories (defaults to /tmp and /dev/shm) inside it. This  gives  the  job  a  private  view  of  these
       directories.   These   paths   are   mounted   inside   the  location  specified  by  'BasePath'  in  the
       job_container.conf file. When the job completes, the private namespace is unmounted and all files therein
       are automatically removed.  To make use of this plugin, 'PrologFlags=Contain' must  also  be  present  in
       your slurm.conf file, as shown:

       JobContainerType=job_container/tmpfs
       PrologFlags=Contain

       The file will always be located in the same directory as the slurm.conf.

       If  using the job_container.conf file to define a namespace available to nodes the first parameter on the
       line should be NodeName. If configuring a namespace without specifying nodes, the first parameter on  the
       line should be BasePath.

       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.

       The  following  job_container.conf  parameters   are   defined   to   control   the   behavior   of   the
       job_container/tmpfs plugin.

       AutoBasePath
              This  determines  if  plugin  should  create  the  BasePath  directory or not. Set it to 'true' if
              directory is not pre-created before slurm startup. If set to true, the directory is  created  with
              permission  0755.  Directory  is  not  deleted  during  slurm  shutdown.  If set to 'false' or not
              specified, plugin would expect directory to exist. This option can be used on a global or per-line
              basis.  This parameter is optional.

       BasePath
              Specify the PATH that the tmpfs plugin should use as a base to mount the private directories. This
              path must be readable and writable by the plugin. The plugin constructs a directory for  each  job
              inside  this  path, which is then used for mounting. The BasePath gets mounted as 'private' during
              slurmd start and remains mounted until shutdown. The first "%h" within the name is  replaced  with
              the  hostname  on which the slurmd is running. The first "%n" within the name is replaced with the
              Slurm node name on which the slurmd is running. Set PATH to 'none' to disable the tmpfs plugin  on
              node subsets when there is a global setting.

              NOTE: The BasePath must be unique to each node. If BasePath is on a shared filesystem, you can use
              "%h" or "%n" to create node-unique directories.

              NOTE:  The  BasePath  parameter  cannot  be set to any of the paths specified by Dirs. Using these
              directories will cause conflicts when trying to mount and unmount the private directories for  the
              job.

       CloneNSScript
              Specify fully qualified pathname of an optional initialization script. This script is run fter the
              namespace construction of a job. This script will be provided the SLURM_NS environment variable to
              allow  the script to join the newly created namespace and do further setup work. This parameter is
              optional.

       CloneNSScript_Wait
              The number of seconds to wait for the CloneNSScript to  complete  before  considering  the  script
              failed. The default value is 10 seconds.

       CloneNSEpilog
              Specify  fully  qualified  pathname of an optional epilog script. This script runs just before the
              namespace is torn down. This script will be provided the SLURM_NS environment  variable  to  allow
              the  script  to  join  the soon to be removed namespace and do any cleanup work. This parameter is
              optional.

       CloneNSEpilog_Wait
              The number of seconds to wait for the CloneNSEpilog to  complete  before  considering  the  script
              failed. The default value is 10 seconds.

       Dirs   A  list  of  mount  points  separated with commas to create private mounts for.  This parameter is
              optional and if not specified it defaults to "/tmp,/dev/shm".

              NOTE: /dev/shm has special handling, and  instead  of  a  bind  mount  is  always  a  fresh  tmpfs
              filesystem.

       EntireStepInNS
              Specifying  EntireStepInNS=true  will pivot all slurmstepd processes (excluding the external step,
              which is tasked with creating the namespace) into  the  constructed  namespace.  This  will  cause
              issues if certain paths such as SlurmdSpoolDir are inaccessible. This parameter is optional.

       InitScript
              Specify  fully  qualified pathname of an optional initialization script. This script is run before
              the namespace construction of a job. It can be used to make the  job  join  additional  namespaces
              prior  to  the  construction of /tmp namespace or it can be used for any site-specific setup. This
              parameter is optional.

       NodeName
              A NodeName specification can be used to permit one job_container.conf file  to  be  used  for  all
              compute nodes in a cluster by specifying the node(s) that each line should apply to.  The NodeName
              specification can use a Slurm hostlist specification as shown in the example below. This parameter
              is optional.

       Shared Specifying Shared=true will propagate new mounts between the job specific filesystem namespace and
              the root filesystem namespace, enable using autofs on the node. This parameter is optional.

NOTES

       If any parameters in job_container.conf are changed while slurm is running, then slurmd on the respective
       nodes  will  need  to  be  restarted for changes to take effect (scontrol reconfigure is not sufficient).
       Additionally this can be disruptive to jobs already running on the node. So care must be  taken  to  make
       sure no jobs are running if any changes to job_container.conf are deployed.

       Restarting  slurmd  is  safe  and  non-disruptive  to  running jobs, as long as job_container.conf is not
       changed between restarts in which case above point applies.

EXAMPLE

       /etc/slurm/slurm.conf:
              These are the entries required in slurm.conf to activate the job_container/tmpfs plugin.

              JobContainerType=job_container/tmpfs
              PrologFlags=Contain

       /etc/slurm/job_container.conf:
              The first sample file will define 1 basepath for all nodes and it will be automatically created.
              AutoBasePath=true
              BasePath=/var/nvme/storage

              The second sample file will define 2 basepaths.  The first will only be on  largemem[1-2]  and  it
              will  be  automatically  created.  The second will only be on gpu[1-10], will be expected to exist
              and will run an initscript before each job.
              NodeName=largemem[1-2] AutoBasePath=true BasePath=/var/nvme/storage_a
              NodeName=gpu[1-10] BasePath=/var/nvme/storage_b InitScript=/etc/slurm/init.sh

              The third sample file will Define 1 basepath that will be on  all  nodes,  automatically  created,
              with /tmp and /var/tmp as private mounts.
              AutoBasePath=true
              BasePath=/var/nvme/storage Dirs=/tmp,/var/tmp

COPYING

       Copyright  (C)  2021  Regents  of  the  University  of  California Produced at Lawrence Berkeley National
       Laboratory
       Copyright (C) 2021-2022 SchedMD LLC.

       This   file   is   part   of   Slurm,   a   resource    management    program.     For    details,    see
       <https://slurm.schedmd.com/>.

       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.

       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.

SEE ALSO

       slurm.conf(5)

April 2025                                  Slurm Configuration File                       job_container.conf(5)