【问题标题】:slurm systemd wait nfs mount all folderslurm systemd 等待 nfs 挂载所有文件夹
【发布时间】:2018-01-29 14:02:26
【问题描述】:

我使用 slurm,我希望我在 systemd 中的守护进程 slurmd 等待我的 nfs 挂载。

这是我的 slurmd.service :

[Unit]
Description=Slurm node daemon
After=network.target nfs-client.target nfs-client.service
ConditionPathExists=/etc/slurm/slurm.conf

[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/slurmd
ExecStart=/usr/sbin/slurmd $SLURMD_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
PIDFile=/var/run/slurmd.pid
KillMode=process
LimitNOFILE=51200
LimitMEMLOCK=infinity
LimitSTACK=infinity

[Install]
WantedBy=multi-user.target

我希望我的服务在我的 nfs 完全组装后运行。我的 nfs 位于 /nfs 因为我的网络很慢,而且我的 nfs 很大,所以我需要等待 1 分钟才能完全组装好我的 nfs。

因为我需要那个 slurm 在 /nfs/slurm 文件夹中写入文件 实际上,当centos启动和slurmd deamon启动时,我有这个错误“/nfs/slurm没有这样的文件或文件夹”

我尝试使用 PathExist 参数但不工作和 TimeoutStartSec 但不工作,我的守护程序运行,我有这个错误。

提前感谢您的帮助。

【问题讨论】:

    标签: centos systemd nfs slurm


    【解决方案1】:

    Systemd 有RequiresMountsFor

    您可以将以下行添加到 slurmd.service 的 [Unit] 部分。

    RequiresMountsFor=/nfs
    

    请记住,如果您使用恢复和暂停功能,您的 ResumeTimeout 必须大于恢复时间 + nfs 挂载时间。

    【讨论】:

      【解决方案2】:

      编写一个脚本来检查nfs 挂载是否可用,否则sleep 是否可用X 秒。然后在systemd服务文件的ExecStartPre=中使用这个脚本。

      $ cat /usr/local/bin/checkNFSMount
      #!/bin/bash
      
      if [ -d /nfs/slurm ]; then
         exit 0;
      else
         sleep 20;
         exit 0;
      fi
      

      systemd服务文件中:

      ExecStartPre=/usr/local/bin/checkNFSMount
      ExecStart=/usr/sbin/slurmd $SLURMD_OPTIONS 
      

      了解ExecStartPrehere

      【讨论】:

        猜你喜欢
        • 2014-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-18
        • 2015-07-09
        相关资源
        最近更新 更多