autofs 挂载在非活动状态后不会断开连接

Ste*_*HNH 11 rhel nfs mount autofs

我在几个 Linux 服务器上安装了autofs,这些服务器连接到用户 /home 目录的中央 NFS 服务器。在登录时挂载目录时效果很好,但挂载似乎永远不会超时。我检查了 /etc/sysconfig/autofs 并且默认值确实设置为 300,所以这些应该在 5 分钟后超时。

重新启动autofs确实会卸载所有目录,所以我知道它是有能力的。

我尝试在目录上随机使用lsof,但任何时候都没有文件打开。

我还安装了一个我知道不是活动的随机目录,但这些目录永远不会自行卸载。其中一些盒子有 10 多个用户登录一次,并且坐骑永远不会下降。

我只是想找出一种更好的方法来找出原因。我在任何日志中都看不到任何具体内容。

任何建议表示赞赏。谢谢!

更新

我打开了autofs 的调试,但它似乎没有显示任何异常。这些日志是在 /home/user1 最初安装后 7 分钟和 6 分钟不活动后生成的。根据 5 分钟的默认设置,这应该已卸载。我从来没有看到通过日志表明甚至尝试卸载。

Jan 11 12:52:00 linux automount[26505]: st_expire: state 1 path /home
Jan 11 12:52:00 linux automount[26505]: expire_proc: exp_proc = 3055176592 path /home
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user1
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user2
Jan 11 12:52:00 linux automount[26505]: expire_proc_indirect: expire /home/user3
Jan 11 12:52:00 linux automount[26505]: 3 remaining in /home
Jan 11 12:52:00 linux automount[26505]: expire_cleanup: got thid 3055176592 path /home stat 7
Jan 11 12:52:00 linux automount[26505]: expire_cleanup: sigchld: exp 3055176592 finished, switching from 2 to 1
Jan 11 12:52:00 linux automount[26505]: st_ready: st_ready(): state = 2 path /home
Run Code Online (Sandbox Code Playgroud)

更新 2 在与 Red Hat 支持人员讨论此问题后,解决方案最终只是缩短主目录的超时值。我这样做了,看起来不错。显然有东西每 2 1/2 到 3 分钟遍历一次挂载点并导致它停留。

解决方案是将超时值添加到该映射的 /etc/auto.master 文件中:

 /home     /etc/auto_home --timeout=120
Run Code Online (Sandbox Code Playgroud)

dch*_*kov 5

除了 TIMEOUT 变量 autofs 有一个检查间隔:

# cat /var/log/messages
Jan 11 21:45:35 client automount[24804]: mounted offset on /net/server/share with timeout 300, freq 75 seconds
Run Code Online (Sandbox Code Playgroud)

它等于 TIMEOUT/4。每 TIMEOUT/4 秒 autofs 询问内核上次访问目录的时间。因此,在您的环境中,在 375 秒不活动后,您的目录将被取消。

要获得更详细的日志,您应该添加LOGGING="debug"/etc/sysconfig/autofs