天天看點

Azure上的高可用概念Azure上的高可用概念

Azure上的高可用概念介紹

Azure上的高可用概念

公衆号:來學雲計算

Azure上的高可用概念Azure上的高可用概念

場景一:

某智能家居廠家,使用者喊出“小X同學,幫我掃地”後,伺服器當機了,掃地機器人不能立即啟動,于是,使用者可能再連續喊幾次後,無奈又習慣的按下了掃地機器人的啟動按鈕。

場景二:

某高層建築有2000個房間,10個房間煙感連續發出報警,理論上出現了火災并在逐漸擴散,恰巧,伺服器又當機了,然後…

兩個場景都是伺服器當機,但後果卻不同,根據業務實際情況,我們必須考慮軟體架構的高可用性。

有人會說,上雲吧,上雲比自己搭建伺服器穩定多了。通常情況下是這樣的,但是,不要忽略SLA這個重要的概念,雲産品都是有SLA的,SLA是什麼呢?SLA全稱是ServiceLevel Agreement,翻譯為服務水準協定,他表明了公有雲提供服務的等級以及品質。比如我們說月度99.95%的SLA,意味着每個月服務出現故障的時間隻能占總時間的0.05%,如果這個月是30天,那麼約等于21.6分鐘。

對于場景一,或許21.6分鐘是可容忍的,但對于場景二,絕對是不允許的。

針對各種高可用方案,通常會提到下面這些概念(不是針對Azure的概念):

同城 容災

同城 容災 是在同城或相近區域内 ( ≤ 200K M )建立兩個資料中心 : 一個為資料中心,負責日常生産運作 ; 另一個為災難備份中心,負責在災難發生後的應用系統運作。

同城災難備份的資料中心與災難備份中心的距離比較近,通信線路品質較好,比較容易實作資料的同步 複制 ,保證高度的資料完整性和資料零丢失。同城災難備份一般用于防範火災、建築物破壞、供電故障、計算機系統及人為破壞引起的災難。

異地 容災

異地 容災 主備中心之間的距離較遠 (> 200KM ) , 異地災難備份不僅可以防範火災、建築物破壞等可能遇到的風險隐患,還能夠防範戰争、地震、水災等風險。

由于同城災難備份和異地災難備份各有所長,為達到最理想的防災效果,資料中心應考慮采用同城和異地各建立一個災難備份中心的方式解決。

Azure上有很多高可用的方案可供我們選擇,以盡可能提高我們的業務系統能夠盡可能的穩定對外提供服務,首先要做的是了解Azure上的高可用相關的概念,才能靈活應用。

什麼是 Azure 區域?

Azure 在世界各地的多個資料中心運作。 這些資料中心分組到地理區域,讓使用者可靈活選擇建構應用程式的位置。

可以在規定的地理區域(例如“中國東部”、“中國北部”或“中國東部2”)中建立 Azure 資源。 為了提供備援和可用性,每個區域都設有多個資料中心。 這樣,便可靈活設計應用程式,建立距離使用者最近的VM,滿足任何法律、符合性或稅務要求。

截至2019年11月,Azure全球共計54個區域,中國大陸有4個區域。

Azure 地域Azure 區域組織為地域形式。Azure 地域保證資料駐留、主權、符合性和恢複能力的要求在地域邊界内得到遵從。

區域對

每個 Azure 區域都與同一地理位置内的另一區域配對。 此方法适用于跨地域複制資源(例如VM 存儲),降低因自然災害、社會動亂、電力中斷或實體網絡中斷而同時影響兩個區域的可能性。 區域對的其他優點包括:

出現範圍較廣的 Azure 區域中斷時,每個區域對中有一個區域優先級更高,這樣可以縮短應用程式的還原時間。

将逐一對配對的區域進行計劃内Azure 更新,盡量減少停機時間并降低應用程式中斷風險。

出于稅務和執法管轄權方面的考慮,資料仍以配對的形式駐留在同一地域内。

Azure 中的高可用性概述

可以通過多種不同的方式建立 Azure 中的高可用性。 有兩個選項是“可用性集”和“可用性區域”。 通過使用可用性集,你的VM 将受到保護,進而免受資料中心内可能發生的故障的影響。 這包括硬體故障和Azure 軟體故障。 通過使用可用性區域,你的VM 将放置在實體上獨立、沒有共享資源的基礎設施上,是以将受到保護,不受整個資料中心故障的影響。

當你想要在 Azure 中部署基于 VM 的可靠解決方案時,請使用可用性集或可用性區域。

可用性集概述

可用性集是一種邏輯分組功能,在Azure 中使用它可以確定将 VM 資源部署在 Azure 資料中心後,這些資源互相隔離。 Azure 確定可用性集中部署的 VM 能夠跨多個實體伺服器、計算機架、存儲單元和網絡交換機運作。 如果出現硬體或Azure 軟體故障,隻有一部分 VM 會受到影響,整體應用程式仍會保持運作,可供客戶使用。 如果想要建構可靠的雲解決方案,可用性集是一項關鍵功能。

假設某個基于 VM 的典型解決方案包含四個前端 Web 伺服器,以及兩個托管資料庫的後端VM。 在 Azure 中,若想在部署 VM 之前先定義兩個可用性集:一個可用性集用于“Web”層級,另一個可用性集用于“資料庫”層級。 建立新的VM 時,可在 azvm create 指令中指定可用性集作為參數,Azure 會自動確定在可用性集中建立的VM 在多個實體硬體資源之間保持獨立。 如果運作某個Web 伺服器或資料庫伺服器的實體硬體有問題,可以确信Web 伺服器和資料庫 VM 的其他執行個體會保持運作狀态,因為它們位于不同的硬體上。

可用性區域概述(截至2019年11月,中國區尚無可用性區域)

可用性區域是一個高可用性産品/服務,在資料中心發生故障時可以保護應用程式和資料。 可用性區域是Azure 區域中獨特的實體位置。 每個區域由一個或多個資料中心組成,這些資料中心配置了獨立電源、冷卻和網絡。 為確定能夠進行複原,所有已啟用的區域中必須至少有三個單獨的區域。 區域中可用性區域的實體隔離可以在發生資料中心故障的情況下保護應用程式和資料。 區域備援服務可跨可用性區域複制應用程式和資料,以防範單點故障。 借助可用性區域,Azure 提供業界最佳的 99.99% VM 正常運作時間 SLA。

與可用性集類似,假設某個基于VM 的典型解決方案包含四個前端 Web 伺服器,以及兩個托管資料庫的後端VM。 與可用性集類似,你将希望在兩個單獨的可用性區域中部署VM:一個可用性區域用于“Web”層,另一個可用性區域用于“資料庫”層。 當你建立新的VM 并将可用性區域指定為 azvm create 指令的參數時,Azure 會自動確定你建立的 VM 隔離在完全不同的可用性區域中。 如果運作某個Web 伺服器或資料庫伺服器 VM 的整個資料中心出現問題,你就會知道Web 伺服器和資料庫 VM 的其他執行個體仍在運作,因為它們在完全獨立的資料中心中運作。

Azure 區域中的可用性區域是容錯域和更新域的組合。 例如,如果在Azure 區域的三個區域中建立三個或更多VM,則 VM 将有效分布在三個容錯域和三個更新域中。 Azure 平台會識别更新域上的此分布,以確定不同區域中的VM 不會同時更新。

通過将計算、存儲、網絡和資料資源共置在一個區域并将其複制到其他區域,在應用程式體系結構中内置高可用性。 支援可用性區域的Azure 服務劃分為兩類:

區域性服務–将資源固定到特定區域(例如虛拟機、托管磁盤、标準IP 位址)或

區域備援服務 – 平台自動跨區域複制(例如區域備援存儲和SQL 資料庫)。

若要在 Azure 上實作全面的業務連續性,可結合使用可用性區域和Azure 區域對來建構應用程式體系結構。 可以使用Azure 區域中的可用性區域以同步方式複制應用程式和資料以實作高可用性,并以異步方式跨Azure 區域複制以實作災難恢複保護。

容錯域

容錯域是共享公用電源和網絡交換機的基礎硬體邏輯組,類似于本地資料中心内的機架。 在可用性集内建立 VM 時,Azure 平台會将 VM 自動分布到這些容錯域。 此方法可限制潛在實體硬體故障、網絡中斷或斷電的影響。

更新域

更新域是可以同時維護或重新啟動的基礎硬體邏輯組。 在可用性集内建立 VM 時,Azure 平台會自動将 VM 分布到這些更新域。 Azure 平台進行定期維護時,此方法可確定至少有一個應用程式執行個體始終保持運作狀态。 在計劃内維護期間,更新域的重新開機順序可能不會按序進行,但一次隻重新開機一個更新域。

可用性集由可防止硬體故障以及允許安全應用更新的兩個額外分組構成 - 容錯域 (FD) 和更新域 (UD)。

了解了這些概念,下面我們會逐一介紹 Azure上的負載均衡,應用程式網關,流量管理器等産品,然後實戰操作,最終看能否拔掉生産環境中的網線。

繼續閱讀