Mac OS X 客户端在通过 NFSv4 挂载和写入 Linux 服务器时崩溃

Jef*_*unk 7 nfs mac-osx lion

我们是一家 Linux 商店,支持大约 30 台 Mac。我们的 Leopard 和 Snow Leopard 系统设置了 LDAP 身份验证和自动挂载的 NFSv3 主目录,因此我们的员工无论使用 OS X 还是 Ubuntu,都拥有相同的登录名和文件。我们唯一的问题是使用 NFSv3,我们不能使用 Firefox >= 4。这个问题在 Lion 中仍然存在。

现在 OS X 在 Lion 中支持 NFSv4,我决定尝试一下。它很快就失败了。我无法打开应用程序。当我使用ssh登录时,许多与文件操作相关的命令挂起。

在 Linux NFSv4 客户端上,您必须在 /etc/idmpad.conf 中设置用于映射客户端和服务器之间的用户名的域名。狮子座有这样的吗?我还需要检查其他配置设置吗?

我也尝试过使用最新版本的 Netatalk,但过了一会儿,Microsoft Word 开始说文件是只读的。

更新信息

我们发现在 NFSv3 中使用 async 解决了我们在 Firefox 中的问题。不幸的是,异步不能解决 NFSv4 的问题。

结果证明这是对问题的误解。async 不能解决 NFSv3 或 NFSv4 的问题。

测试方法

我们的 LDAP 服务器中有几个测试帐户,其中 autofs 条目指向 Ubuntu 上的 NFSv4 服务器。我通过登录窗口或 ssh 登录进行测试。在 GUI 中,我尝试打开应用程序并编辑文本文件。通过 ssh,我尝试使用 vim 编辑文本文件。

对于 NFS 管理器的建议,我使用 su 成为这些用户之一,并尝试使用 vim 编辑文件。

服务器设置

这是来自我的测试 nfsv4 服务器的 /etc/exports。这些设置与生产 NFSv3 服务器相同。

/var/lib/nfs/v4root @utm(ro,fsid=0,root_squash,insecure,no_subtree_check,async) @admin(ro,fsid=0,no_root_squash,insecure,no_subtree_check,async)

/var/lib/nfs/v4root/d2/export/fac @utm(fsid=31,rw,async,root_squash,no_subtree_check,insecure) @admin(fsid=31,rw,async,no_root_squash,no_subtree_check,insecure)
/var/lib/nfs/v4root/d2/export/grad @utm(fsid=32,rw,async,root_squash,no_subtree_check,insecure) @admin(fsid=32,rw,async,no_root_squash,no_subtree_check,insecure)
/var/lib/nfs/v4root/d2/export/staff @utm(fsid=33,rw,async,root_squash,no_subtree_check,insecure) @admin(fsid=33,rw,async,no_root_squash,no_subtree_check,insecure)

/d2/export/fac @utm(fsid=41,rw,async,root_squash,no_subtree_check,insecure) @admin(fsid=41,rw,async,no_root_squash,no_subtree_check,insecure)
/d2/export/grad @utm(fsid=42,rw,async,root_squash,no_subtree_check,insecure) @admin(fsid=42,rw,async,no_root_squash,no_subtree_check,insecure)
/d2/export/staff @utm(fsid=43,rw,async,root_squash,no_subtree_check,insecure) @admin(fsid=43,rw,async,no_root_squash,no_subtree_check,insecure)
Run Code Online (Sandbox Code Playgroud)

客户端安装选项

客户端使用 LDAP 中的 autofs 来挂载文件系统。选项如下:

intr,tcp,rw,vers=4,timeo=20
Run Code Online (Sandbox Code Playgroud)

我只尝试了 vers=4,但得到了相同的结果。

网络

对于此测试,客户端和服务器位于不同的子网上。流量通过具有千兆位连接的 100 Mbps cisco 交换机到 cisco 路由交换机。吞吐量测试显示 91 Mbps 的传输速度一致,ping 低 0.3 毫秒。该网络多年来一直适用于 NFSv3。

解决方案

等待 10.7.3。我很高兴地报告这是 10.7.2 中的一个错误,并且 10.7.3 预发布版本修复了它。

Jef*_*unk 1

这是一个错误。它在预发布更新中短暂运行,但又被破坏了。我已向 Apple 提交了错误报告。