如何使用高可用性集群消除雲中的單點故障
在提供高可用性保護時,一般原則是確保所有組件都是冗餘的,以避免單點故障 (SPOF)。 也就是說,確保沒有單個元素導致整個系統在失敗時停止。 但是,需要注意的是,運營基礎設施很難在公共雲中訪問。
在一個基於雲的高可用集群,備用節點有可能位於同一主機服務器上,在同一機架中,並使用與操作節點相同的網絡交換機。 除非您使用冗餘配置這些元素,否則它們中的任何一個都可能是 SPOF 並使應用程序面臨災難性故障的風險。
有必要確保集群節點位於不同的雲“區域”和“可用區”上,這些“區域”和“可用區”將數據中心和運營基礎設施物理隔離在不同的地理位置。
確保可用性的主要原則是什麼?
您不能期望構成物理 IT 基礎架構的各種組件永遠按照規范運行。 零件磨損,系統變得不兼容,設置發生變化。 儘管定期維護可以降低停機風險,但在產品生命週期中可能會出現故障。
在極少數情況下,您可能會在操作系統或嵌入式軟件中發現一個嚴重的錯誤,導致應用程序停止工作。
您可能已經註意到,High Availability 集群配置正是符合這一原則,通過將重要服務器及其資源冗餘到活動系統(生產系統)來消除單點故障。 但是,重要的是要記住兩件事。 一,服務器硬件不是唯一的關鍵組件。 第二點,在公共雲基礎架構中,您可能看不到其他關鍵的 SPOF 組件。
謹防隱藏在雲的無形基礎設施中的單點故障陷阱
大多數公共雲以所謂的“多租戶”模式運行。 也就是說,它們在同一物理主機服務器上運行多家公司的虛擬機。 對於常規合同,您無法指定您的系統在哪個主機服務器上運行。 這可能會導致問題,因為雲集群中的備用節點可能放置在運行活動節點的同一主機服務器上。 即使配置了 HA 集群配置,如果主機服務器宕機,運行節點和備用節點也會同時宕機。 在這種情況下,您的雲運營商將決定何時以及如何恢復您的系統。
運行活動節點的主機服務器和運行備用節點的主機服務器可以在同一個機架中。 在這種情況下,機架變成了 SPOF,因此如果那裡發生故障,其下的活動節點和備用節點也會發生故障。
此外,在基礎架構的上層,例如捆綁多個機架的網絡交換機、網關和路由器以及數據中心的電源單元,操作系統節點和備用系統節點可能共存於同一系統中。 如果這些關鍵組件不是冗餘的,那麼您將面臨不可避免的單點故障。 同樣,對於作為公共雲用戶的公司來說,這樣的數據中心基礎設施是一個黑匣子。 可能無法查看詳細配置以識別 SPOF。
應利用公共雲可用性區域和區域來提高可用性
我們如何才能明確避免公共雲中隱藏的單點故障? 最穩健的方法是使用雲端準備的“Availability Zones”和“Regions”。
可用區是數據中心內基礎設施的獨立物理隔離。 區域是地理上分開的獨立數據中心。 一些公共雲允許您故意將這些可用區或區域用於不同目的。
例如,亞馬遜網絡服務 (AWS) 在全球有 12 個區域。 此外,Microsoft Azure 有 22 個區域。通過構建一個 HA 集群配置,其中運行節點和備用節點分佈在這兩個或多個區域的不同可用區中,幾乎可以肯定地避免所有 SPOF。如果您遵守這些最佳實踐,您可以自信地確保可用性,DR (災難恢復) 和 BCP(業務連續性計劃)。