因此,我们有一个运行 CentOS 6.6 的中型 NFS4 存储服务器,导出一个 NFS 共享/storageDat
(即 NFS 根,其中绑定了两个 RAID 卷:./dat1
和./dat2
);导出选项:rw,sync,no_wdelay,no_subtree_check,fsid=0
我们在相当多的 Fedora20 工作站和台式机(超过 100 个)上安装了 NFS,并且大多数时候一切运行良好,使用较大的 MTU 和客户端安装选项rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,soft,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.216.10.1,local_lock=none,addr=10.216.14.200
,安装点/storageDat
也相当快(读取 >400MByte/s 传输)
但是:有时,在单台机器上,NFS 会执行以下操作:要运行的程序必须访问 NFS 上的某个深层文件夹:
/storageDat/dat2/projects/other/Tool_does_special/ProjectX/Sample/tooloutputR2
这将导致出现“没有这样的文件或目录”的错误,在服务器上查看,目录存在,访问权限正确(甚至与相关用户一起测试);回到客户端:
ls -al
完整文件抛出“没有这样的文件或目录”
ls -al
'从完整路径中找到父目录,即。
/storageDat/dat2/projects/other/Tool_does_special/
工作并显示子目录(ProjectX.ProjectY)
ls -al
'ing/storageDat/dat2/projects/other/Tool_does_special/ProjectX
返回所有存在的错误消息;
但进入目录
cd /storageDat/dat2/projects/other/Tool_does_special/
然后执行 als -alR
就可以正常显示所有子目录中的所有文件。直接跟进 a
ls -al
在
/storageDat/dat2/projects/other/Tool_does_special/ProjectX/Sample/tooloutputR2
但是失败并显示“没有这样的文件[...]”消息。
我们认为它与 NFS 缓存有关,但无法准确定位错误,无法预测其出现,也无法可靠地消除它。甚至没有想过修复它。
任何意见都将不胜感激!(是的,我确实将我的实际文件夹重命名为可以在线发布的名称)
答案1
我的服务器也遇到了同样的问题。我有 12 台服务器,其中第 13 台服务器只安装了 NFS,其他 12 台服务器安装了 Autofs。
嗯,事情是这样的,在第 13 台服务器中我发现 autofs 正在运行,并且使用与其他 12 台服务器相同的配置文件,所以基本上他试图将自身挂载到相同的原点/目标文件中。
我停止了该服务器中的 Autofs 服务,然后我就可以访问该文件夹了。当您同时在多台机器上工作时,就会发生这种情况,有时我会在服务器上设置 autofs,而我不应该这样做。
陈!