便宜、可靠的高可用性解決方案?
我們正在尋找一種方法來提高我們其中一個伺服器的可靠性(Apache/MySQL/Virtualmin 設置)。到目前為止,在過去的六個月裡,我們已經與該伺服器發生了所有可能的集群問題(DNS 故障、DDOS、Dom0 故障、網路中斷、DomU 故障……;在美好的第二天),雖然所有的都得到了解決在不到一天的時間裡,它仍然令人擔憂——該主機上大約有 50 個客戶網站,每次伺服器宕機時,它們都會扼殺我們的喉嚨(伺服器的可用性仍然超過契約保證的 99%,但好吧……你請記住伺服器停機的 5 次,而不是 360 天停機)。
到目前為止的計劃:
- 備份 DNS 伺服器(應該問題不大)
- 伺服器本身的高可用性設置。這裡的問題是數據複製到輔助主機。
主機將位於不同的(Hetzner,順便說一句)數據中心,因此我們將擁有相當有限的頻寬(100 MBit 上行鏈路,並且應該至少為實際使用者留下一些頻寬……)並且數據加密更多或少一個固定的要求。
DRBD 本身在 WAN 上的擴展能力很差,它也不提供加密。DRBD 代理聲稱可以解決頻寬問題(但不是加密問題,據我所見),但從我讀到的內容來看,它太貴了,5000 美元/年太多了(我很確定這比什麼要多)我們用那台伺服器賺錢)。
另一方面,根據我的個人經驗,OpenVPN/SSH 隧道不夠可靠,無法保證我們不會有誤報觸發不必要的故障轉移(更不用說降低硬碟性能的成本了)。
那麼……有什麼替代品?還是我只是忽略了什麼?
編輯:為了澄清,我更喜歡文件系統/塊設備級別的複制。應用程序級複製是可能的,但我寧願執行一個複制解決方案,而不是為每個應用程序執行一個複制解決方案。
您似乎有點堅持使用 DRBD 複製。我認為這是因為它不適合您的需求。它複製塊設備並且非常佔用頻寬(儘管連結壓縮可能會減輕很多)。看看你是否對更高級別的複制不滿意——比如數據庫的MySQL 複製機制和文件系統的lsyncd之類的機制。
將它與來自linux-ha項目的東西粘合在一起,或者設置半自動或手動故障轉移機制並結合一些監控肯定是一項工作,但從長遠來看應該會給你想要的東西。
當然,你仍然需要一個加密隧道來傳輸流量,但我不明白你不願意使用 OpenVPN - 因為隧道只是為了備份/備用系統而存在,你將有一個見證人(在具有自動故障轉移的 HA 設置)或獨立於隧道存在的監控系統(在具有監控的設置中),您將不會在隧道中斷時進行任何故障轉移,而只會在中斷時收到警報以修復隧道(即當然是必要的,否則您將失去故障轉移到最新備用系統的能力)。