高可用指標
有多種方法可以提高可用性。最優雅的解決方案是重寫您的軟件,以便您可以同時在多個主機上運行它。軟件本身需要有一種方法來檢測錯誤並進行故障轉移。如果您只想提供只讀網頁,那么這相對簡單。但是,這通常很復雜,有時甚至是不可能的,因為您無法自己修改軟件。以下解決方案無需修改軟件即可工作:
- 使用可靠的“服務器”組件
具有相同功能的計算機組件可能具有不同的可靠性數字,具體取決於組件質量。大多數供應商將可靠性更高的組件作為“服務器”組件出售——通常價格更高。
-
消除單點故障(冗余組件)
-
使用不間斷電源 (UPS)
-
在主板上使用冗余電源
-
使用 ECC-RAM
-
使用冗余網絡硬件
-
使用 RAID 進行本地存儲
-
為 VM 數據使用分布式冗余存儲
-
-
減少停機時間
-
可快速響應的管理人員 (24/7)
-
備件的可用性(Proxmox VE 集群中的其他節點)
-
自動錯誤檢測(由ha-manager 提供)
-
自動故障轉移(由ha-manager 提供)
-
Proxmox VE 等虛擬化環境可以更輕松地實現高可用性,因為它們消除了“硬件”依賴性。它們還支持冗余存儲和網絡設備的設置和使用,因此如果一台主機出現故障,您只需在集群內的另一台主機上啟動這些服務即可。
更好的是,Proxmox VE 提供了一個名為ha-manager的軟件堆棧,它可以自動為您執行此操作。它能夠自動檢測錯誤並進行自動故障轉移。
Proxmox VE ha-manager 的工作方式類似於“自動化”管理員。首先,您配置它應該管理哪些資源(VM、容器等)。然后,ha-manager觀察正確的功能,並在出現錯誤時將服務故障轉移到另一個節點。ha-manager還可以處理可能啟動、停止、重新定位和遷移服務的普通用戶請求。
但是高可用性是有代價的。高質量的組件更昂貴,並且使它們冗余至少會使成本增加一倍。額外的備件進一步增加了成本。所以你應該仔細計算收益,並與那些額外的成本進行比較。
高可用要求
在開始使用 HA 之前,您必須滿足以下要求:
-
至少三個集群節點(以獲得可靠的仲裁)
-
虛擬機和容器的共享存儲
-
硬件冗余(無處不在)
-
使用可靠的“服務器”組件
-
硬件看門狗 - 如果不可用,我們回退到 linux 內核軟件看門狗(softdog)
-
可選的硬件防護設備
其他注意事項
HA 堆棧完全異步工作,需要與其他集群成員通信。因此,您需要幾秒鍾才能看到操作結果。
為了提供 HA,每個節點上運行兩個守護進程:
- pve-ha-lrm
本地資源管理器 (LRM),它控制在本地節點上運行的服務。它從當前管理器狀態文件中讀取其服務的請求狀態並執行相應的命令。
- pve-ha-crm
集群資源管理器 (CRM),它進行集群范圍的決策。它向 LRM 發送命令,處理結果,並在出現故障時將資源移動到其他節點。CRM 還處理節點防護。
[ 鎖定 LRM 和 CRM ]
鎖由我們的分布式配置文件系統 (pmxcfs) 提供。它們用於保證每個 LRM 激活一次並正常工作。由於 LRM 僅在持有鎖時才執行操作,因此如果我們可以獲取其鎖,我們可以將故障節點標記為已防護。這讓我們可以安全地恢復任何失敗的 HA 服務,而不受現在未知的失敗節點的任何干擾。這一切都由當前持有經理主鎖的 CRM 監督。
[ 最大並發工作數調整技巧 ]
最多 4 個並發工作數的默認值可能不適合特定設置。例如,可能同時發生 4 個實時遷移,這可能會導致網絡擁塞,並且網絡速度較慢和/或大(內存方面)服務。此外,確保在最壞的情況下,擁塞最小,即使這意味着降低max_worker值。相反,如果您有一個特別強大的高端設置,您可能還想增加它。
在節點故障時,CRM 將服務分發到其余節點。這會增加這些節點上的服務數量,並可能導致高負載,尤其是在小型集群上。請設計您的集群,使其能夠處理這種最壞的情況。
在關機時的遷移過程中,看門狗仍然處於活動狀態。如果節點失去法定人數,它將被隔離並且服務將被恢復。
現在的硬件具有大量內存 (RAM)。所以我們停止所有資源,然后重新啟動它們以避免所有 RAM 在線遷移。如果要使用在線遷移,則需要在關閉節點之前手動調用它。
請不要 kill 掉服務 pve-ha-crm,pve-ha-lrm 或 watchdog-mux。他們管理和使用 watchdog,因此這會導致節點立即重新啟動甚至重置。
============================================================================================================
這里建了一個虛擬機centos7-1使用的是ceph分布式存儲,具備虛擬機熱遷移的條件,首先實現一下虛擬機熱遷移,然后再模擬虛擬機所在物理機故障的情況下,虛擬機自動遷移是否能夠實現。
熱遷移測試
- 如下圖,虛擬機從pve-1主機遷移到pve-2主機:
- 經過大概20秒鍾左右,遷移完成,如下圖:
虛擬機HA測試
- 接下來將這個虛擬機加入HA,如下圖:
- 模擬物理機故障,將pve-2強制stop,如下圖:
- 大概過了4分鍾左右,加入HA的虛擬機在另一台主機pve-3中自動啟動了,如下圖: