Azure

Azure - 故障/更新域

  • December 30, 2020

我正在努力理解 Azure 中的故障/更新域的概念,我們將不勝感激。我在同一可用性集下配置了 2 個虛擬機,分別具有 2 個故障域和 2 個更新域:

                            Fault Domain           Update Domain
server_iis1                        0                        0
server_iis2                        1                        1

據我所知,故障域實際上是一個機架,但是以下幾點讓我感到困惑:

  1. 如果我完全失去了故障域 0,那麼 server_iis1 就消失了?server_iis1 的第二個實例所在的位置應該在機架故障(故障域 0)的情況下啟動並執行,這將為我提供 99.95% 的 SLA?
  2. 同樣,對於 server_iis2 ,如果我失去了故障域 1,那麼 server_iis2 應該如何啟動並執行?
  3. Server_iis1 和 Server_iis2 是完全不同的 2 個虛擬機,具有不同的數據和要服務的客戶。

故障域旨在保護您的工作負載(在 vm 上執行的應用程序),以防出現意外的硬體故障。在上面的範例中,iis1 和 iis2 是兩個獨立的虛擬機,它們在同一個物理數據中心(可用區)中執行,但位於不同的故障域中。這意味著如果由於某種原因 vm 支持基礎架構的某些物理組件發生故障(機架電源、交換機、物理主機等),另一個 iis vm 將保持執行,因為它位於不同的硬體集群(故障域)上在同一個數據中心。

對於許多人來說,一件不太清楚的事情是,您的應用程序必須足夠智能,才能同時在兩台機器上執行。如果我在 iis1 上有一個應用程序(excel 作為一個非常基本的範例(只是幽默我)),在 iis2 上有一個不同的應用程序(powerpoint),如果 iis1 出現故障,您將無法訪問該應用程序(excel),直到 vm 故障轉移到另一個主機可能需要幾分鐘。iis2 反之亦然,如果它失敗了,你就會輸掉(powerpoint)。要真正使故障域正常工作,您需要在 iis1 和 iis2 上執行 excel 和 powerpoint,因此如果一個 vm 發生故障,另一個仍然可以為應用程序提供服務,當然您的應用程序需要足夠智能來處理故障/故障轉移。

Soooo 容錯域可防止基礎架構中出現意外的意外故障。

更新域旨在確保在維護時段(客戶或 Microsoft 發起)期間,我們不會一次重新啟動/更新所有電腦。

例如,如果我有 5 台前端 Web 伺服器連接到 5 台後端伺服器,我會將 5 台前端伺服器放在同一個更新域中,這樣它們就不會同時重新啟動,從而確保我始終可以提供 Web 流量。這也適用於我的後端伺服器。我會將它們放在一個更新域中,以確保它們永遠不會同時重新啟動。這樣做可以確保我保持伺服器執行,儘管在維護視窗期間降級。

可用性集確實提供了 99.95% 的 SLA。可用區提供 99.99% 的 SLA

將您的虛擬機部署到可用區會將您的虛擬機複製到另一個物理數據中心(區域)。如果出現故障,這種故障轉移會自動發生,客戶無需執行任何操作。

Avail set 更便宜,部署可用性區域成本更高,因為您不僅擁有與區域之間的數據複製相關的 vm 成本,而且我們談論的是一分錢一分貨。

希望有幫助

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