我在 LAN 上的 arch linux 上设置了一个 NFS 服务器。其中一个客户端是支持 NFS4.0Alpha 的 Mac OS X 10.6 计算机。OS X 计算机上的用户/组 ID 为 501/20,路由器上相应用户的 ID 为 1001/1001。GID 20 在 arch 计算机上已被占用。
无需手动同步 ID 和压缩所有 ID,正确完成 ID 映射的最佳方法是什么?最好不要接触客户端。还是我应该切换到 SAMBA?这样做有什么好处吗?(目前,即使使用 ID 压缩,NFS 也有些不稳定,在同时复制多个大数据块时会导致冻结……)
是否有关于如何为 OS X 客户端正确设置此 NFS 服务器/客户端系统的最新教程?
至于 Samba:我读到了很多关于它与 NFS 相比性能不佳的文章。在我的 Wi-Fi 网络中,我的速度为 8-9 MB/s(最高 75Mbit/s)。这是否足够慢,以至于我不会感觉到 Samba 的性能差异?虽然设置起来可能比较困难,但它似乎提供了更多功能,并且对 OS X/Windows 的支持更好。
答案1
使用 NFS4.0Α支持
也许这就是不稳定的原因?:)
无需手动同步 ID 和压缩所有 ID,正确完成 ID 映射的最佳方法是什么?最好不要触碰客户端。
NFS 使用的 RPC 通常支持两种身份验证机制:AUTH_UNIX (sec=sys,通过用户 ID) 和 AUTH_GSS (sec=krb5/krb5i,通过 Kerberos 票证)。
如果使用 AUTH_UNIX,目前无法转换 UID。尽管 NFSv4rpc.idmapd
可以转换文件列表中显示的用户名,但它不会影响 RPC AUTH_UNIX 标头中发送的 UID。
您必须同步客户端和服务器 UID,或设置 Kerberos,或切换到不同的文件系统。
至于 Samba:我读到很多文章说它的性能与 NFS 相比不太好。
它在某种程度上取决于客户端和服务器的实现。
我听到传言说 Samba 的性能可以超越 NFSv4,特别是如果客户端和服务器都支持 SMBv2 协议(该协议已经许多改进了旧版 SMBv1/CIFS)。您可能需要max protocol
在 smb.conf 中进行设置。客户端软件也很重要 - 例如,Linux cifs.ko 模块在 3.2 和 3.6 内核之间性能显著提升……奇怪的是,用户空间的速度smbclient
甚至更快。
除了性能之外,与 NFS 的主要区别在于 SMB 从不使用 Unix UID 进行身份验证 - 它需要密码登录或 Kerberos(再次)。这意味着设置为系统范围的挂载可能会更加复杂 - OS X 客户端可能需要使用 GUI 连接到共享,BSD 用户将仅限于 FTP 样式smbclient
。Linux 3.3mount -o multiuser
甚至支持密码登录,但每个用户都必须使用 登录cifscreds add
后才能访问共享。