Nfs
用於複製的 DRBD 與 GlusterFS
我需要建構一個解決方案來託管內部 git 儲存庫。它需要支持數十萬(或更多)儲存庫。
我計劃使用具有共享儲存的多個“啞”伺服器,因此基本上當客戶端嘗試訪問儲存庫時 - 它會被負載平衡器重定向到任何可用的伺服器。對儲存庫的任何更改 - 將在所有節點上複製。
我的第一個想法是為此使用 GlusterFS,但我讀過它不能很好地處理小文件。我也在考慮使用 DRBD 自己複製所有內容,但這需要更多設置,並且與 GlusterFS 相比似乎更複雜。
兩者中哪一個提供更好的性能?基本上我要解決的問題是,當任何伺服器出現故障時 - 我希望其他人仍然能夠提供數據。
這是一個經典的橫向擴展案例,IMO GlusterFS 應該符合要求。您可以試一試 - 只需啟動幾個虛擬機,設置一些磚塊用於儲存庫儲存並執行壓力測試。
無論如何,DRBD 在這裡不是一個選項 - 它無法擴展。如果有的話,我會看看其他對象儲存項目(例如 Swift),如果 Gluster 不能很好地工作,但它們都不是非常注重性能的
我為 cyrus 郵件伺服器設置了類似的設置,其中 gluster 已被證明無法在壓力測試期間處理負載。我們最初選擇 gluster 是因為它很簡單,但不得不搬回 drbd。然而,正如 dyasny 強調的那樣,drbd activs/active cfg 是不可取的(更不用說疼痛了)。如果您需要所有伺服器同時掛載共享儲存,drbd 不是一個選項。您可能想要查看的另一件事是帶有鎖管理器的 cvmd。lvm2 現在支持 raid 類型 lv 並為此目的使用 man 程式碼。這與適當的文件系統(如果需要一些集群感知的)混合是一種選擇。但是我從來沒有在生產中自己測試過它,只是作為 PoC。