Linux

KVM+DRBD 在兩台主動-被動伺服器之間複製,手動切換

  • August 7, 2019

我需要在主動-被動模式下建構 2 節點集群(類似?)解決方案,即一台伺服器處於活動狀態,而另一台伺服器處於被動(備用)狀態,不斷從活動中複製數據。基於 KVM 的虛擬機將在活動節點上執行。

如果主動節點由於任何原因不可用,我想手動切換到第二個節點(成為主動節點和另一個被動節點)。

我看過這個教程:https ://www.alteeve.com/w/AN!Cluster_Tutorial_2#Technologies_We_Will_Use

但是,我沒有足夠的勇氣相信全自動故障轉移並建構複雜的東西並相信它可以正常執行。腦裂情況的風險太大,複雜性以某種方式失敗,數據損壞等,而我的最大停機時間要求並不嚴重到需要立即自動故障轉移。

我無法找到有關如何建構這種配置的資訊。如果您已經這樣做了,請在答案中分享資訊/HOWTO。

或者也許可以使用 Linux 節點建構高度可靠的自動故障轉移?Linux 高可用性的問題在於,就像 8 年前一樣,人們似乎對這個概念產生了濃厚的興趣,而且許多教程現在已經很老了。這表明 HA 在實踐中可能存在實質性問題,一些/許多系統管理員乾脆放棄了它。

如果可能,請分享如何建構它的資訊以及您在生產中執行集群的經驗。

我的安裝與您描述的設置非常相似:通過 DRBD 主動/被動具有備用副本的 KVM 伺服器。為了使系統盡可能簡單(並避免任何自動腦裂,即:由於我的客戶弄亂了集群網路),我還放棄了自動集群故障轉移。

該系統已有 5 年以上的歷史,從未給我帶來任何問題。我的音量設置如下:

  • 用於 VM 儲存的專用 RAID 卷;
  • 一個包含 QEMU/KVM 配置文件的小覆蓋卷;
  • 更大的虛擬磁碟捲;
  • 管理整個專用陣列塊設備的 DRBD 資源。

我寫了一些 shell 腳本來幫助我在故障轉移的情況下。你可以在這裡找到它們

請注意,該系統的架構旨在實現最高性能,即使以犧牲快速快照和基於文件(而不是基於卷)的虛擬磁碟等功能為代價。

現在重建一個類似的主動/被動設置,我會非常傾向於使用 ZFS 和通過send/recv. 它不是實時的、基於塊的複制,但對於 90% 以上的情況來說已經足夠了。

如果真的需要實時複製,我會在 ZVOL + XFS 之上使用 DRBD;事實上,我非常滿意地在我的實驗室測試了這樣的設置 + 自動起搏器開關。lvmthin如果無法使用 3rdy 部分模組(就像 ZoL 一樣),我會在卷 + XFS之上使用 DRBD 資源。

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