Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
job_container.conf(5)	    Slurm Configuration File	   job_container.conf(5)

NAME
     job_container.conf - Slurm configuration file for namespace plugins

DESCRIPTION
     job_container.conf  is  an  ASCII	file  which  defines  parameters used by
     Slurm's namespace/tmpfs plugin. Based on these parameters, the plugin  will
     create the appropriate job-specifc namespace(s).

     The  namespace/tmpfs  plugin  creates  a filesystem namespace and will con-
     struct a private (or optionally shared) filesystem namespace  and	mount  a
     list  of  directories (defaults to /tmp and /dev/shm) inside it, giving 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 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:

     NamespaceType=namespace/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 con-
     figuration  file  is  treated  as	a  comment through the end of that line.
     Changes to the configuration file take effect upon restart  of  Slurm  dae-
     mons.

     The  following job_container.conf parameters are defined to control the be-
     havior of the namespace/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 parame-
	    ter 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 host-
	    name 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 spec-
	    ified 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 after the  namespace  construction  of  a
	    job.  This script will be provided the SLURM_NS environment variable
	    containing the path to the namespace that can be used by the nsenter
	    command. This variable will allow the script to join the newly  cre-
	    ated  namespace  and  do  further  setup work. This parameter is op-
	    tional.

     CloneNSScript_Wait
	    The number of seconds to wait for the CloneNSScript to complete  be-
	    fore 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 containing the path to
	    the namespace that can be used by the nsenter command. This variable
	    will 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 be-
	    fore considering the script failed. The default value is 10 seconds.

     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  parame-
	    ter 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_con-
	    tainer.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, en-
	    able 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 name-
	    space/tmpfs plugin.

	    NamespaceType=namespace/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 sec-
	    ond 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  de-
     tails.

SEE ALSO
     slurm.conf(5)

Slurm 26.05		    Slurm Configuration File	   job_container.conf(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=job_container.conf&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help