Ceph NFS 僵尸挂载

半兽人 发表于: 2025-11-27   最后更新时间: 2025-11-27 13:56:11  
{{totalSubscript}} 订阅, 44 游览

经典的 NFS “僵尸挂载(stale / frozen mount)” 问题。即使加了 -f 强制卸载,umount 也卡住,因为内核正在等待 NFS 响应,而后端已经不可达。

在这种情况下,有几种可行的方案:

1. 使用懒卸载(lazy unmount)

懒卸载不会阻塞 shell,它会立即让挂载点从用户空间消失,但内核会延迟清理资源:

umount -l /mnt/nfs2
  • -l = lazy
  • 适合后端已经挂掉的 NFS
  • shell 不会再卡住
  • 挂载点会在不再被进程使用时彻底释放

2. 杀掉占用挂载点的进程

有时候即使 -l,内核仍需要等所有访问挂载点的进程退出。先找占用进程:

lsof /mnt/nfs2

或者:

fuser -m /mnt/nfs2

杀掉它们:

fuser -km /mnt/nfs2

然后再执行:

umount -l /mnt/nfs2

3. 最极端方案:重启客户端节点

如果挂载点完全僵死,且懒卸载无效,有时候 唯一解决办法就是重启客户端。这是安全且可靠的方式,不会破坏 NFS 服务端。

建议流程(安全又不卡 shell)

  1. 不要再用普通 umount -f
  2. 先执行懒卸载:

    umount -l /mnt/nfs
    
  3. 如果挂载点被进程占用:

    fuser -km /mnt/nfs
    umount -l /mnt/nfs
    
  4. 确认卸载:

    mount | grep nfs
    
更新于 2025-11-27

查看ceph更多相关的文章或提一个关于ceph的问题,也可以与我们一起分享文章