SLURM主节点旧slurmctld.log压缩后无法自动生成新日志的排查咨询
解决Slurmctld日志文件无法自动重建的排查点
检查日志轮转工具的配置
系统自动压缩日志一般由logrotate完成,需确认Slurm对应的logrotate配置(通常在/etc/logrotate.d/slurm)是否配置正确:- 必须包含
create指令,指定与现有日志一致的权限0600、属主slurm和属组slurm,确保轮转后能自动生成符合要求的新日志文件。 - 要添加
postrotate脚本段,执行信号通知slurmctld进程重新打开日志文件,避免进程持续持有已被删除的旧文件句柄。示例配置:/var/log/slurm/slurmctld.log { missingok notifempty compress delaycompress create 0600 slurm slurm postrotate kill -USR1 $(pidof slurmctld) || true endscript }
- 必须包含
确认Slurmctld进程的文件句柄状态
用lsof -p $(pidof slurmctld)查看进程是否仍持有已被压缩删除的旧日志文件句柄(状态显示为(deleted))。如果存在这种情况,手动执行kill -USR1 $(pidof slurmctld)触发进程重新打开日志,同时确保这个操作能被日志轮转工具自动执行。核对日志路径与目录权限
虽然配置中指定了SlurmctldLogFile=/var/log/slurm/slurmctld.log,但要确认:- 实际目录路径是否与配置一致(注意用户提供的目录是
/var/logs/slurm,但配置里是/var/log/slurm,需核对是否存在路径拼写错误)。 /var/log/slurm目录的权限drwxr-xr-x slurm slurm确实允许slurm用户写入,避免因目录权限问题无法创建新文件。
- 实际目录路径是否与配置一致(注意用户提供的目录是
排查安全模块的限制
如果系统启用了SELinux或AppArmor:- SELinux:用
ausearch -m avc -ts recent查看是否有slurmctld创建日志文件的权限拒绝记录,若有则调整SELinux上下文:semanage fcontext -a -t var_log_t "/var/log/slurm(/.*)?" restorecon -Rv /var/log/slurm - AppArmor:检查Slurm对应的配置文件,确保允许进程在
/var/log/slurm目录下创建文件。
- SELinux:用
内容的提问来源于stack exchange,提问作者Emma Athan
相关产品推荐
相关产品推荐

