Date: 9 11 月, 2022
解釋切換、故障轉移和恢復之間微妙但關鍵的區別
高可用性是一個專長,與大多數專長一樣,它有自己的詞彙和術語。 我們的客戶通常對 IT 非常了解,但如果他們沒有在 HA 環境中工作,我們的一些常見 HA 術語可能會給他們和我們造成相當大的混亂。 它們聽起來很簡單,但在 HA 的上下文中具有非常具體的含義。這裡討論了其中三個術語——切換、故障轉移和恢復。
什麼是切換?
切換是一種用戶發起的通過行動高可用性(HA) 集群解決方案用戶界面或 CLI。 在切換中,用戶手動啟動更改受保護應用程序的源或主服務器的操作。 在典型的切換場景中,所有正在運行的應用程序和依賴項都按順序停止,從父應用程序開始,到所有子/依賴項都停止時結束。 一旦應用程序及其依賴關係停止,它們就會在新指定的主服務器或源服務器上以有序的方式重新啟動。
例如,如果您有資源 Alpha、Beta 和 Gamma。 資源 Alpha 取決於資源 Beta 和 Gamma。 資源 Beta 取決於資源 Gamma。在切換事件中,首先停止資源 Alpha,然後是 Beta,最後是 Gamma。一旦所有三個都停止,切換將繼續使資源在預期服務器上進入操作狀態。該過程從資源 Gamma 開始,然後是 Beta,最後是資源 Alpha 的啟動操作完成。傳統上,切換操作需要更多時間,因為必須以優雅有序的方式停止資源。 當需要更新軟件版本同時保持正常運行時間、在主要生產節點上執行維護工作(通過滾動升級)或進行 DR 測試時,通常會執行切換。
關鍵要點:如果沒有失敗導致該動作,那麼它是一個切換
什麼是故障轉移?
故障轉移操作通常是響應服務器崩潰或意外/計劃外重新啟動的非用戶啟動操作。 考慮具有兩個節點(節點 A 和節點 B)的 HA 集群的場景。在這種情況下,所有關鍵應用程序 Alpha、Beta 和 Gamma 都在節點 A 上啟動並運行。 在這種情況下,當節點 A 遇到意外/計劃外的重新啟動、斷電、停止或恐慌時,就會發生故障轉移。 一旦 HA 軟件檢測到節點 A 在集群中不再正常運行並且在操作上可用(由解決方案定義),它將觸發故障轉移操作以恢復對可用集群節點上的關鍵應用程序、資源、服務和依賴項的訪問, 在這種情況下是節點 B。在故障轉移場景中,由於節點 A 經歷了崩潰(或其他模擬的即時故障),因此節點 A 上沒有進程可以停止,因此一旦處理了適當的檢測和隔離操作,節點 B 將立即開始恢復過程資源。 與切換情況一樣,該過程從資源 Gamma 開始,然後是 Beta,最後是資源 Alpha 的啟動操作完成。 傳統上,故障轉移操作比切換需要的時間更少。 這是因為處理一個故障轉移不需要在前一個主(運行中或活動)節點上停止(或靜默)任何資源。
關鍵要點:發生故障轉移以響應系統故障。
什麼是恢復?
恢復事件很容易與故障轉移混淆。 當進程、服務器、通信路徑、磁盤甚至集群資源發生故障並且高可用性軟件響應於識別的故障而運行時,就會發生恢復事件。 大多數 HA 軟件解決方案能夠以多種方式處理恢復事件。 最突出的方法包括:
- 在本地優雅重啟,然後在遠程優雅重啟
- 總是在本地嘗試重新啟動,如果恢復成功,則不會發生進一步的操作。 如果本地重新啟動失敗,則會發生下一個操作
- 如果本地重啟失敗,資源會優雅地移動到遠程節點
- 在本地優雅重啟,然後在遠程強制重啟
- 總是在本地嘗試重新啟動,如果恢復成功,則不會發生進一步的操作。如果本地重新啟動失敗,則會發生下一個操作。
- 通過隔離主節點將資源移動到遠程節點
- 遠程強制重啟
- 從不在本地嘗試重新啟動
- 如方法 2b 中所述,資源總是被強製到下一個可用的集群節點。
- 強制服務器重啟,沒有遠程故障轉移
- 總是在本地嘗試重新啟動
- 如果本地重啟失敗,則重啟主節點以嘗試恢復服務。
- 資源不會失敗到遠程系統
- 基於策略的本地重啟,然後遠程
- 策略可以控制遠程嘗試恢復之前的重試次數
由於恢復策略的多種變化,很容易看到類似於切換行為的恢復事件。 在方法 1 和 5 中經常出現這種情況。 在這些場景中,應用程序和服務在遠程節點上啟動之前以有序的方式優雅地停止。 方法 2 和 3,客戶經常會看到類似於故障轉移的行為。 在方法 2 和 3 中,主服務器由 HA 軟件重新啟動或隔離,這會創建類似於故障轉移的可觀察行為。方法 4 通常是一個很少使用的選項,但它混合了切換和故障轉移。方法 4 從正常停止應用程序和服務開始,然後重新啟動應用程序和服務(很像切換)。 但是,如果應用程序和服務的本地重新啟動失敗,系統將重新啟動(很像故障轉移),但實際上不會失敗到遠程集群節點。 雖然很少見,但通常在存在不平衡集群的情況下調用方法 4,或者與基於策略的方法一起使用。
關鍵要點:恢復事件取決於選擇的方法 供應商之間的 HA 術語是一個常見術語可以具有不同含義的領域。 當您使用企業應用程序部署和維護集群解決方案時,請確保您了解解決方案提供商關於故障轉移、切換和恢復的條款。而且,當你在做的時候,確保你知道餐廳會把醬汁放在一邊(放在碟子裡),還是放在一邊(你的土豆泥) 經許可轉載西歐