我们在一所大学的实验室里尝试创建一个可以在 OS X 和 Ubuntu 机器之间共享的 NFS 共享。这个问题让我的主管和我在过去几天里抓狂不已 - 之所以在这里发帖,是因为我们束手无策。
我将尽力概括一下目前的情况:
- NFS 守护进程(1:1.2.5-3ubuntu3.1)正在 Ubuntu 服务器 12.04 上运行
服务器设置(/etc/exports)如下所示:
/export -rw,fsid=0,no_subtree_check client.computer.name /export/data -rw,async,subtree_check,all_squash,anonuid=2000,anongid=2000 client.computer.name /export/moredata -rw,async,subtree_check client.computer.name
使用以下命令,share /data 和 /moredata 已经成功安装在 Ubuntu 机器上,没有任何问题:
sudo mount server:/data /srv/data
在某些运行 Lion 或 Snow Leopard 的 Mac OS X 机器上,挂载都正常工作,但由于一些我认为与当前问题无关的问题,需要修改挂载命令
sudo mount -t nfs -o resvport,vers=4,proto=tcp,port=2049 server:/data /Volumes/data
然而,在两台运行 OS X 10.8(Mountain Lion 的最新版本)的独立机器上,都存在着重大问题。
大约有一半的时间,NFS 共享在运行 OS X 10.8 的 iMac 上安装正常,但我的计算机却停滞不前,甚至在服务器目录上运行“ls -la”也需要几分钟才能启动。服务器安装后,即使在本地目录上运行 ls 也会产生同样的效果!
另一半时间里,计算机在安装过程中会停止运行。
- 编辑由于挂载点已添加到聚光灯排除列表中,因此聚光灯索引不是问题。
此外,运行活动监视器或“top”不会产生任何洞察,没有任何内容占用超过 10% 的处理能力,并且有足够的可用 RAM。
我该如何调试?查询哪些日志有用?
** 更新 **
- 挂载前后的 rpcinfo 日志
- 以下是共享安装过程中的一些有趣的日志结果:
这是看起来更令人担忧的信息
2013-01-11 12:27:49.572191 PST - 348.1506 - Client: mount_nfs, UID: 0, EUID: 0, GID: 0, EGID: 0
2013-01-11 12:27:49.572191 PST - 348.1506, Module: SystemCache - Invalid name (null) for KAUTH_EXTLOOKUP_VALID_PW/GRNAM
答案1
尝试添加nolocks
和locallocks
到那些特定的机器支架。
答案2
(OS X 索引/搜索服务)可能spotlight
正在尝试索引新的挂载点,这意味着尝试遍历整个目录结构及其中的每个文件。您可以执行以下操作禁用这些挂载点上的索引
- 打开系统偏好设置
- 点击“聚焦”
- 点击“隐私”
- 单击
+
将 NFS 挂载点添加到排除列表中。
答案3
这是 IO 瓶颈,而不是 CPU 瓶颈。这就是您在任务管理器中看不到高百分比使用率的原因。
这让我想到,您与 NFS 服务器的网络连接可能存在问题。可能是路由器、集线器或交换机,中间的设备可能会丢弃您的数据包(在不同硬件的不同场合,FTP 和 SVN 都遇到过这个问题)。如果可以的话,我会尝试为服务器和 iMac 设置静态 IP,并使用一根经过测试的良好以太网电缆将它们直接连接在一起。然后看看它的表现如何。
如果问题仍然存在,也许您可以在 Mac 上使用第三方 NFS 安装软件,这可以精确地指出是否是 Apple 的 NFS 实现导致了问题。
也许可以尝试在 Mac 上的虚拟机中安装 Linux,看看是否可以连接到该虚拟机上的 NFS。这样可以排除 iMac 端的任何硬件问题。
工具:
- 查看Mac和Linux端的终端应用程序“iotop”命令。
- Wireshark,我不怎么用它,但也许它会有帮助。