job_container.conf
节:Slurm 配置文件 (5)更新:Slurm 配置文件
索引
名称
job_container.conf - Slurm 的 job_container/tmpfs 插件配置文件描述
job_container.conf 是一个 ASCII 文件,定义了 Slurm 的 job_container/tmpfs 插件使用的参数。该插件读取 job_container.conf 文件以获取配置设置。根据这些设置,它为作业构建一个私有(或可选共享)文件系统命名空间,并在其中挂载一系列目录(默认为 /tmp 和 /dev/shm)。这为作业提供了这些目录的私有视图。这些路径在 job_container.conf 文件中由 'BasePath' 指定的位置挂载。当作业完成时,私有命名空间会被卸载,所有文件会自动删除。 要使用此插件,您的 slurm.conf 文件中还必须包含 'PrologFlags=Contain',如下所示:
JobContainerType=job_container/tmpfs PrologFlags=Contain
该文件将始终位于与 slurm.conf 相同的目录中。
如果使用 job_container.conf 文件定义可供节点使用的命名空间,行上的第一个参数应为 NodeName。如果配置一个不指定节点的命名空间,则行上的第一个参数应为 BasePath。
参数名称不区分大小写。 配置文件中以 "#" 开头的任何文本都被视为注释,直到该行结束。 对配置文件的更改在 Slurm 守护进程重启时生效。
以下 job_container.conf 参数用于控制 job_container/tmpfs 插件的行为。
- AutoBasePath
- 这决定了插件是否应该创建 BasePath 目录。如果在 slurm 启动之前未预先创建目录,则将其设置为 'true'。如果设置为 true,则目录将以 0755 的权限创建。目录在 slurm 关闭期间不会被删除。如果设置为 'false' 或未指定,则插件将期望目录存在。此选项可以在全局或逐行基础上使用。此参数是可选的。
-
- BasePath
- 指定 tmpfs 插件应使用的 PATH 作为挂载私有目录的基础。该路径必须可由插件读取和写入。插件在该路径下为每个作业构建一个目录,然后用于挂载。BasePath 在 slurmd 启动时以 'private' 的方式挂载,并在关闭之前保持挂载。名称中的第一个 "%h" 被替换为运行 slurmd 的主机名。名称中的第一个 "%n" 被替换为运行 slurmd 的 Slurm 节点名称。将 PATH 设置为 'none' 以在存在全局设置时禁用节点子集上的 tmpfs 插件。
注意:BasePath 必须对每个节点唯一。如果 BasePath 位于共享文件系统上,可以使用 "%h" 或 "%n" 创建节点唯一的目录。
注意:BasePath 参数不能设置为 Dirs 指定的任何路径。使用这些目录会导致在尝试挂载和卸载作业的私有目录时发生冲突。
-
- CloneNSScript
- 指定可选初始化脚本的完全限定路径名。该脚本在作业的命名空间构建后运行。此脚本将提供 SLURM_NS 环境变量,以允许脚本加入新创建的命名空间并进行进一步的设置工作。此参数是可选的。
-
- CloneNSScript_Wait
- 在认为脚本失败之前,等待 CloneNSScript 完成的秒数。默认值为 10 秒。
-
- CloneNSEpilog
- 指定可选 epilog 脚本的完全限定路径名。该脚本在命名空间被拆除之前运行。此脚本将提供 SLURM_NS 环境变量,以允许脚本加入即将被移除的命名空间并进行任何清理工作。此参数是可选的。
-
- CloneNSEpilog_Wait
- 在认为脚本失败之前,等待 CloneNSEpilog 完成的秒数。默认值为 10 秒。
-
- Dirs
- 用于创建私有挂载的挂载点列表,以逗号分隔。此参数是可选的,如果未指定,则默认为 "/tmp,/dev/shm"。
注意:/dev/shm 有特殊处理,而不是绑定挂载,始终是一个新的 tmpfs 文件系统。
-
- EntireStepInNS
- 指定 EntireStepInNS=true 将所有 slurmstepd 进程(不包括负责创建命名空间的外部步骤)转移到构建的命名空间中。如果某些路径(例如 SlurmdSpoolDir)不可访问,将会导致问题。此参数是可选的。
-
- InitScript
- 指定可选初始化脚本的完全限定路径名。该脚本在作业的命名空间构建之前运行。它可以用于在构建 /tmp 命名空间之前使作业加入其他命名空间,或者用于任何特定于站点的设置。此参数是可选的。
-
- NodeName
- NodeName 规范可用于允许一个 job_container.conf 文件适用于集群中的所有计算节点,通过指定每行应适用的节点。NodeName 规范可以使用 Slurm 主机列表规范,如下面的示例所示。此参数是可选的。
-
- Shared
- 指定 Shared=true 将在作业特定的文件系统命名空间和根文件系统命名空间之间传播新的挂载,启用在节点上使用 autofs。此参数是可选的。
-
注意
如果在 slurm 运行时更改了 job_container.conf 中的任何参数,则需要重新启动相应节点上的 slurmd 才能使更改生效(scontrol reconfigure 不够)。此外,这可能会对已经在节点上运行的作业造成干扰。因此,必须小心确保在部署对 job_container.conf 的任何更改时没有作业在运行。
重新启动 slurmd 是安全的,并且不会对正在运行的作业造成干扰,只要在重启之间不更改 job_container.conf,否则上述情况适用。
示例
- /etc/slurm/slurm.conf:
- 这些是激活 job_container/tmpfs 插件所需的 slurm.conf 中的条目。
-
JobContainerType=job_container/tmpfs PrologFlags=Contain
- /etc/slurm/job_container.conf:
- 第一个示例文件将为所有节点定义 1 个 basepath,并将自动创建。
AutoBasePath=true BasePath=/var/nvme/storage
第二个示例文件将定义 2 个 basepaths。 第一个将仅在 largemem[1-2] 上,并将自动创建。 第二个将仅在 gpu[1-10] 上,预计存在,并将在每个作业之前运行一个初始化脚本。
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
第三个示例文件将定义 1 个 basepath,该 basepath 将在所有节点上,自动创建,并将 /tmp 和 /var/tmp 作为私有挂载。
AutoBasePath=true BasePath=/var/nvme/storage Dirs=/tmp,/var/tmp
-
版权
版权所有 (C) 2021 加州大学理事会 在劳伦斯伯克利国家实验室制作版权所有 (C) 2021-2022 SchedMD LLC.
此文件是 Slurm 的一部分,一个资源管理程序。 有关详细信息,请参见 <https://slurm.schedmd.com/>。
Slurm 是自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它;许可证的第 2 版,或(根据您的选择)任何更高版本。
Slurm 以希望它会有用的方式分发,但不提供任何担保;甚至不提供适销性或特定用途适用性的隐含担保。有关更多详细信息,请参见 GNU 通用公共许可证。
另请参阅
slurm.conf(5)
索引
此文档是由 man2html 使用手册页创建的。
时间:2025年7月2日 13:21:55 GMT