处理网络拥塞

处理网络拥塞

我正在私有 GBE LAN 上的 Linux 服务器上添加新的集中存储。大约有十几台客户端计算机过去曾通过 TCP 挂载 NFS v3。有时 LAN 会拥塞,丢包会导​​致 NFS 长时间超时。我还应该考虑其他什么吗?例如,我更喜欢 NFS v4、SMB 还是 iSCSI?

我没有考虑 AFS 或其衍生产品,因为我不想在本地缓存文件。对于我的应用程序,我需要以同步模式运行服务器,以确保写入的所有内容都保存到磁盘。LAN 位于防火墙后面,所有客户端都在我的控制之下,因此我并不担心安全方面的问题。唯一不在考虑范围内的是光纤通道,因为我负担不起添加 SAN 的费用。我目前有 timeo=30 和 retrans=default (3)。系统大部分时间都运行正常,只是当 LAN 繁忙时,吞吐量会因错误而下降。

答案1

如果是 Windows 端到端,SMB3 是真的真的在这方面做得很好。微软做得很好。他们甚至允许 HyperV 机器在已安装的驱动器从 Server 2012 开始。

不过,我不认为你是 Windows 端到端的。

iSCSI 在这里不是一个好选择,因为操作系统中的存储堆栈不能很好地处理数据包到达的随机延迟。这是他们建议为 iSCSI 网络使用专用网络的最大原因之一。听起来你有一个,但如果你遇到很多拥塞,我会避开 iSCSI,即使是专用的。

在这方面,NFS4 比 NFS3 好得多,因为他们实际上已经配置了协议来调整 TCP 设置。尝试一下,您可能会发现那些数据包丢失/延迟问题大大减少。

目前,我不建议在非 Windows 系统上使用 SMB,我会选择 NFSv4。虽然有支持,但我个人认为协议栈不足以应对重击。唯一的区别在于,如果您的文件管理器是 Windows 服务器;在这种情况下,我是否会推荐 NFSv4 而不是 SMB 就很难说了。

相关内容