如果这是重复的帖子,我很抱歉,似乎我的第一次尝试失败了......
首先介绍一下背景。
首先,我继承了一个来自地狱的经典网络。除其他事项外,我发现大多数客户端数据(包括大量合规性数据)目前都存储在一个 USB 驱动器上,并通过 Samba 与其他客户端共享(并且没有备份)。
为了帮助我晚上睡个好觉,我拼凑了一个带有两个 raid 5 阵列的 linux 文件服务器来存放这些数据,并且为了避免必须重新映射所有的客户端机器,认为在将数据 rsyncing 到文件服务器之后,卸载 USB 磁盘应该是可以的,并且 nfs 将新的挂载点挂载到它们的位置。
经过一些快速测试,这似乎可以正常工作,但是,今天我发现我的用户在通过这种安排打开文件时遇到了很大的麻烦,文件传输速率非常非常慢。
我没有看到直接通过 nfs 安装磁盘(从我的 Linux 机器)有什么问题,但通过 samba 共享却完全无法使用。
我确实在导出点和挂载点都使用了默认设置,今晚不会使用我在谷歌上找到的一些选项,但我想我至少明天必须回滚。
我可以这样做吗?我不明白为什么不能,因为我猜这无论如何都是针对 NAS 系统所做的事情。
有什么建议吗?
答案1
nfs mount option nolock
对我有用。
编辑:您可以在 fstab 中的挂载选项中添加“nolock”,或者添加“mount -o nolock,remount /mount_path”以根据需要挂载它。我在使用 samba 在 nfs 卷上创建挂载时遇到了问题,它创建了无限的开放连接,直到我添加了此挂载选项。
答案2
Samba 手册提到,通过 Samba 重新导出 NFS 挂载点无法正常工作。NFS 并非 100% 兼容 POSIX,因此某些操作与 Samba 预期的不同。
即您应该在运行 NFS 服务的同一台服务器上运行 Samba,直接导出本地磁盘。
答案3
您是否已将调整修复添加到 smb.conf?:
套接字选项 = TCP_NODELAY IPTOS_LOWDELAY
SAMBA 操作指南提供了更多选项和解释: http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/speed.html
对于大多数网络来说,套接字选项 TCP_NODELAY 似乎是最大的单一差异。许多人报告说,添加套接字选项 = TCP_NODELAY 可使 Samba 驱动器的读取性能翻倍。我见过的最好的解释是 Microsoft TCP/IP 堆栈在发送 TCP ACK 时速度很慢。