Nfs

處理網路擁塞

  • February 28, 2013

我正在私有 GBE LAN 上的 linux 伺服器上添加新的集中式儲存。過去大約有十幾台客戶端機器通過 TCP 進行 NFS v3 掛載。有時 LAN 擁塞和丟棄數據包會導致 NFS 長時間超時。還有什麼我應該看的嗎?例如,我會更喜歡 NFS v4、SMB 或 iSCSI 嗎?

我不看 AFS 或其衍生產品,因為我不想在本地記憶體文件。對於我的應用程序,我需要以同步模式執行伺服器,以確保寫入的所有內容都保存到磁碟。LAN 位於防火牆後面,所有客戶端都在我的控制之下,所以我不擔心安全方面的問題。唯一不在桌面上的是光纖通道,因為我負擔不起添加 SAN。我目前有 timeo=30 和 retrans=default (3)。系統大部分時間都可以正常工作,只是由於 LAN 繁忙時的錯誤導致吞吐量降低。

如果是 Windows 端到端,SMB3真的很擅長這個。微軟做得很好。太好了,從 Server 2012開始,他們甚至允許 HyperV 機器在已安裝的驅動器上執行。

但是,我不認為您是 Windows 端到端的。

iSCSI 在這裡是一個糟糕的選擇,因為作業系統中的儲存堆棧不能很好地適應數據包到達的隨機延遲。這是他們說為您的 iSCSI 網路使用專用網路的最大原因之一。聽起來你有一個,但如果你遇到很多擁塞,我會避開 iSCSI,即使是專用的。

NFS4 在這方面比 NFS3 好得多,因為他們實際上已經配置了協議來調整 TCP 設置。嘗試一下,您可能會發現那些丟包/延遲問題大大減少了。

在這一點上,我不建議非 Windows 系統使用 SMB,我會選擇 NFSv4。那裡有支持,但我個人不相信協議棧足夠健壯,可以承受重擊。一個區別是您的文件管理器是否是 Windows 伺服器;在這種情況下,如果我推薦 NFSv4 而不是 SMB,那就有點麻煩了。

引用自:https://serverfault.com/questions/483267