什麼用於基於軟體的共享文件儲存?
情況:設置負載均衡器
目前,我們的數據中心有成對的所有伺服器(執行 CentOS Linux):每台伺服器都有一個鏡像伺服器。我們目前沒有使用任何負載平衡,因此 serverA 獲得所有流量,當它發生故障(硬體或軟體)時,我們可以通過在 serverB 上配置 serverA IP 地址來快速切換到 serverB。我們正在使用 MySQL 主/主複製(儘管我們可以簡單地使用主/從複製進行目前設置)和 rsync 以保持 vhost 文件同步(伺服器 A 同步到伺服器 B)。
這對我們來說效果很好,但是效率很低,因為我們有 50% 的硬體在機器出現故障之前什麼都不做。我們正在考慮在伺服器對前面放置負載均衡器,這樣我們就可以將負載分配到兩台機器上,並為每個集群添加額外的伺服器。
問題:共享文件儲存
設置這個可能不會比在每個伺服器對前面放置一個負載均衡器,然後讓它將流量分配到該對的每個伺服器。除了一件事:文件儲存。目前 rsync 將更改從 serverA 推送到 serverB,但不是相反。我們可以設置它,使 rsync 也從 serverB 執行到 serverA,但問題是 rsync 永遠不知道是創建還是刪除 serverA 上存在但 serverB 上不存在的文件。我查看了Unison,但該項目似乎已停止。
問題:基於軟體的共享文件儲存的最佳解決方案是什麼?
所以,我正在尋找不同的解決方案。請注意,我不想添加更多硬體(因此沒有 NAS/SAN 解決方案)。另請注意,每個集群需要少量儲存(低於 500GB),並且所有伺服器都在同一個本地網路上。我們有一個不錯的備份解決方案(備份每 3 小時執行一次)。
我一直在研究DRBD,這似乎很適合我們的情況,但我沒有這方面的經驗。DRBD 是我們要走的路嗎?請分享您使用此解決方案和其他類似解決方案的經驗。有什麼陷阱要考慮嗎?我在正確的軌道上嗎?請賜教:)
DRBD 很棒。
好東西:
- 它在複製數據方面做得非常出色
- DRBD 在幾個案例中防止了災難,它發現卷已經安裝在另一個節點上,我們從 SAN 獲得的原始卷無法告訴我們。
- Heartbeat 已經對 DRBD 有很好的支持。
挑戰:
- 記住要對其進行適當的監控,以便在發生腦裂時發現它們 - 並且可以處理它。
- 如果頂部沒有啟用集群的文件系統,則無法將 DRBD 安裝在兩台伺服器上——我對這部分沒有任何經驗。
- 通過將 DRBD 配置為使用所有可用頻寬來同步磁碟,很容易“DOS”伺服器。只需配置較低的吞吐量,就可以了。
為了在多個節點上掛載“相同的”文件系統,我們繼續回到 NFS,儘管我們一直在測試各種解決方案。我在生產中沒有任何問題的設置是在 DRBD 之上的 EXT4 之上的 NFS。我不敢對數據庫文件系統這樣做,但對於 wwwroot 來說沒關係。