问题现象
在天河超算系统中,添加一个用户(cthulhu)到分组greatoldones中,在控制节点执行任务后发现另一个控制节点和登录节点上使用id cthulhu命令输出如下:
[root@mn0%CM ~]# id cthulhu
uid=1234(cthulhu) gid=1235(cthulhu) groups=1236(myster),1237(cthulhu)
在控制节点和另一个登录节点上清除缓存,再次执行命令发现分组成功同步:
[root@mn0%CM ~]# nscd -i passwd;nscd -i group;id cthulhu;
uid=1234(cthulhu) gid=1235(cthulhu) groups=1236(myster),1238(greatoldones),1237(cthulhu)
问题分析
使用cat /etc/nscd.conf命令,观察 positive-time-to-live参数如下:
positive-time-to-live group 3600
这条参数说明用户组的更新每小时进行一次。
解决方法
方法一
手动在各个节点上执行 nscd -i passwd;nscd -i group; 命令清除缓存并同步。
方法二
更改用户组的同步时间,频繁更新用户组。具体操作如下:
1.在控制节点上使用vi编辑/etc/nscd.conf文件,将上文描述参数更改为60,保存。
2.在控制节点上登录到登陆节点,重启nscd服务(systemctl restart nscd)
各个服务器上操作相同,可以先尝试更新一台服务器,同步成功后在同步每台服务器的配置文件并重启服务。
风险预估
频繁更新组的信息,会导致所有的节点均到管理节点获取信息。这个过程会造成较大的运算压力,建议手动清除缓存或者多等一段时间。
用到的命令
停止nscd服务:systemctl stop nscd
重启nscd服务:systemctl reatart nscd
查看nscd服务:systemctl status nscd