在生產 Web 伺服器上使用 NFS 是否合理?

在生產 Web 伺服器上使用 NFS 是否合理?

假設連接是透過 LAN 1Gbe 或 10Gbe 連接,NFS 是否可以在生產伺服器上合理地用作將計算伺服器連接到儲存伺服器的一種方式?

顯然存在一些網路開銷,如果啟用了同步模式,NFS 的寫入速度似乎特別慢。除此之外,它看起來相當輕量級,並且能夠根據我的判斷進行擴展,但我個人對此缺乏經驗。我錯了嗎?

問題是我現在有一台伺服器既充當儲存伺服器又充當 Web 伺服器,但我最終可能需要在將來將兩者分開,並考慮到某些請求需要透過 Web 應用程式層進行身份驗證在初始化檔案傳輸之前,使用該軟體會有點棘手。網路檔案系統安裝是最簡單的選擇,我只是..不知道這是否是一個好的選擇。

我還計劃嘗試使用 NFS 的本地緩存,這應該會大大提高效能,但我不確定這是否足夠。

就替代方案而言,據我所知,只有 iSCSI 是真正的競爭對手,而且大多數人似乎更推薦 NFS,而不是其他鮮為人知的產品。

答案1

NFS 很好,除非滿足一些特定的其他標準,即:

  • 所涉及的系統都能夠本機使用 NFS。 Windows在這裡不算數,它有點兒可以工作,但它有很多怪癖,並且在跨平台環境中處理 NFS 時通常會很痛苦(如果它是只是Windows,使用 SMB3,它消除了 NFS 的大多數其他問題)。請注意,在客戶端,這意味著內核級支持,因為用戶級實現要么必須處理使用 FUSE 之類的固有效率問題,要么必須直接連結到需要訪問分享。
  • 您已正確驗證 NFS 用戶端如何處理 NFS 伺服器重新啟動。這包括作業系統本身(其中應該在大多數情況下都可以),以及將存取共享的軟體。特別是,當使用共享的軟體長時間保持文件開啟時,在某些客戶端平台上需要特別小心,因為並非所有NFS 用戶端實作都透過明確重新安裝和重新驗證鎖定和檔案句柄來優雅地處理伺服器重新啟動(這導致客戶端軟體出現各種問題)。請注意,每當升級或重新配置堆疊的任何部分時,您都應該重新檢查這一點。
  • 您願意設定正確的使用者/群組 ID 映射。這很重要,因為如果沒有它,您要么需要鏡像系統之間的UID/GID 映射(可行,但我會對針對面向互聯網的系統的內部網絡設置SSO 持謹慎態度),否則您最終可能會遇到嚴重的問題安全隱患(即您在一個系統上看到的權限與您在其他系統上看到的權限不符)。
  • 您正在透過安全的網路連結進行操作,或願意為共用正確設定身份驗證。如果沒有身份驗證,連結上的任何人都可以存取它(惡意用戶端可以輕鬆繞過基本的 UNIX 自主存取控制)。

假設您滿足所有這些標準,並且您擁有相當快的網絡,那麼您應該沒問題。另外,如果您可以運行巨型幀,那就這樣做,它們對任何網路檔案系統或網路區塊儲存都有很大幫助。

答案2

NFS 絕對沒問題,並且比 iSCSI 更受青睞,因為 NFS 更易於管理、共享和備份。

答案3

多年來,我們一直使用 NFS 將 SAN 連接到 VMware ESXi 伺服器,並在其上運行數百個虛擬機器。一點也不麻煩。

瓶頸在於儲存系統而不是網路協定。

當然,網路連接應該足夠快,即 10Gb 乙太網路或光纖。我們甚至不再需要單獨的儲存網路。

答案4

iSCSI 可能會快一點...

https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/storage_protocol_comparison-white-paper.pdf

https://www.hyper-v.io/whos-got-bigger-balls-testing-nfs-vs-iscsi-performance-part-3-test-results/

……但是 NFS 與任何其他網路重定向器(SMB3、AFS/AFP 等)一樣允許並發多訪問,這對於 iSCSI 或其他區塊協定來說很棘手。

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392

相關內容