小编num*_*er9的帖子

陈旧的 NFS 文件句柄为什么 fsid 解决它?

问题陈述(注意这个问题已经解决了,但是还有一个问题是为什么解决方案有效)

NFS 服务器是 Ubuntu 16.04.4 LTS。客户端是 Ubuntu 16.04.4 LTS 和 CentOS 6.10 和 7 的组合。

NFS 服务器数月以来一直运行良好,一项特殊的导出为多个客户提供备份服务。NFS 服务器目录如下所示:

/mnt/backups/client1
/mnt/backups/client2
/mnt/backups/client3
/mnt/backups/client4
Run Code Online (Sandbox Code Playgroud)

/etc/exports 包含:

/mnt/backups 1.2.3.0/24(rw,sync,no_subtree_check)
Run Code Online (Sandbox Code Playgroud)

客户端仅在备份期间挂载 nfs 服务器,然后在完成后卸载备份。

这工作正常,但是,确定客户端不应该能够在 /mnt/backups 目录中看到彼此。每个客户端都使用相同的备份 uid/gid。因此,决定通过使用 /etc/exports 文件来分离目录。

为此,NFS 服务器被停止,并且 /etc/exports 被修改,因此它包含:

/mnt/backups/client1 1.2.3.21(rw,sync,no_subtree_check)
/mnt/backups/client2 1.2.3.22(rw,sync,no_subtree_check)
/mnt/backups/client3 1.2.3.23(rw,sync,no_subtree_check)
/mnt/backups/client4 1.2.3.24(rw,sync,no_subtree_check)
Run Code Online (Sandbox Code Playgroud)

回想一下,客户端仅在进行备份时(凌晨 4 点)挂载 NFS 服务器。在服务器上重启了NFS服务,用exportfs检查导出,看起来不错。

好的,测试客户端1:

mount nfserver:/mnt/backups/client1 /mnt/client1
Run Code Online (Sandbox Code Playgroud)

工作正常,但是,对 /mnt/client1 的任何操作都会导致:

cannot open directory /mnt/client1/: Stale file handle
Run Code Online (Sandbox Code Playgroud)

采取行动的决心(这并没有工作):重新启动NFS服务器上。重新启动客户端。lsof |grep /mnt 在客户端和服务器上查看是否有任何程序将文件保持打开状态。服务器/客户端上的权限检查。同样,将 NFS /etc/exports 切换回旧文件并从客户端安装 nfs 服务器。切换回“新”方法不起作用。

经过多次咬牙切齿,手册页和 …

filesystems nfs mount

6
推荐指数
1
解决办法
4594
查看次数

标签 统计

filesystems ×1

mount ×1

nfs ×1