该问题简要摘要:
CentOS6.9 系统上的 NFS 共享在 Windows 或 Linux 系统上挂载时可以正常显示目录,但在 Mac OS 系统上挂载时无法显示目录。在 Mac OS 系统上挂载 NFS 共享后,Finder 在尝试加载目录内容时出现卡顿现象。
/var/log/messages 中的错误消息:
kernel: nfsd: last server has exited, flushing export cache
kernel: Installing knfsd (copyright (C) 1996 [email protected])
kernel: NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
cat /etc/passwd | grep rpc 的输出
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
我真的很难理解 /var/log/messages 中的错误消息,nfs 出了什么问题?我在网上找到了其他几篇帖子,指出 /etc/passwd 中的路径不正确,尽管该帖子中的其他人表示应该没问题。
我仔细检查了 /etc/passwd 中列出的路径,发现 /var/lib 中没有这样的 rpcbind 文件夹,但 /var/cache 中有一个,该帖子中的人说这是正确的路径。该路径可能导致问题吗?
我计划采取的下一步是重新启动 nfs 和 rpcbind 服务,如果失败,则使用 yum reinstall nfs-util rpcbind 重新安装。如果这两种方法都失败,那么我会考虑将路径从 /var/lib 更改为 /var/cache。
以前有人遇到过这个问题吗?
答案1
如果我的理解正确,问题本身不是出在 NFS 上,而是出在 Finder 上。Windows 和 Linux 客户端在连接到 NFS 挂载时没有显示性能问题。
以下是我解决 Finder 性能问题所采取的步骤:
- 已停止 rpcbind 服务
- 已停止 nfslock 服务
- 执行命令 rm -rf /var/lib/nfs/statd/sm/*
- 执行命令 rm -rf /var/lib/nfs/statd/sm.bak/*
- 启动 rpcbind 服务
- 启动 nfslock 服务
- 重新启动 nfs 服务
之后 Finder 就能够轻松打开并列出目录了。我不太清楚为什么会这样,但效果很明显。
最后,我确实尝试将 /var/lib/rpcbind 的符号链接添加到 /var/cache/rpcbind,但这没有什么区别(当然我重新启动了所有适当的服务)所以我默认恢复到原始设置。
编辑:罪魁祸首是隐藏文件,有数百万个。Finder 处理所有这些文件时非常困难。删除它们比我尝试过的其他任何方法都更能改善性能。