job_container/tmpfs
Overview
job_container/tmpfs is an optional plugin that provides job-specific, private temporary file system space.
When enabled on the cluster, each job will have its own /tmp and /dev/shm directory, separate from every other job as well as the system. These are mapped in the job as "/tmp" and "/dev/shm". The directories used to mount in a private name space can be configured with the Dirs= option in job_container.conf
Installation
This plugin is built and installed as part of the default build, no extra installation steps are required.
Setup
Slurm must be configured to load the job container plugin by adding JobContainerType=job_container/tmpfs and PrologFlags=contain in slurm.conf. Additional configuration must be done in the "job_container.conf" file, which should be placed in the same directory as the slurm.conf.
Job containers can be configured for all nodes, or for a subset of nodes. As an example, if all nodes will be configured the same way, you would put the following in your job_container.conf:
AutoBasePath=true BasePath=/var/nvme/storage
A full description of the parameters available in the job_container.conf file can be found here.
Initial Testing
An easy way to verify that the container is working is to run a job and ensure that the /tmp directory is empty (since it normally has some other files) and that "." is owned by the user that submitted the job.
tim@slurm-ctld:~$ srun ls -al /tmp total 8 drwx------ 2 tim root 4096 Feb 10 17:14 . drwxr-xr-x 21 root root 4096 Nov 15 08:46 ..
Spank
This plugin interfaces with the SPANK api, and automatically joins the job's container in the following functions:
- spank_task_init_privileged()
- spank_task_init()
In addition to the job itself, The TaskProlog will also be executed inside the container.
Last modified 26 July 2022