Azure HDInsight 的可靠性
本文說明 Azure HDInsight 的可靠性支援,並涵蓋可用性區域及跨區域復原和商務持續性。 如需更多關於 Azure 可靠性的詳細概觀,請參閱 Azure 可靠性。
可用性區域支援
Azure 可用性區域是每個 Azure 區域內至少三個實體獨立的資料中心群組。 每個區域內的資料中心都配備了獨立的電源、冷卻系統和網路基礎結構。 在本機區域失敗的案例中,可用性區域的設計在於,當一個區域受影響時,讓其餘兩個區域支援區域服務、容量和高可用性。
這類失敗的範圍可從軟體和硬體故障,擴及到如地震、淹水和火災的事件。 透過 Azure 服務的備援和邏輯隔離,實現對失敗的容錯。 如需深入了解 Azure 的可用性區域,請參閱區域和可用性區域。
已啟用 Azure 可用性區域的服務旨在提供正確程度的可靠性和彈性。 您可以透過兩種方式加以設定。 它們可以是區域備援,具有跨區域自動複寫功能,或者是區域性的,將執行個體釘選在特定區域。 兩種方法可以結合使用。 如需區域與區域備援結構的詳細資訊,請參閱使用可用性分區和區域的建議。
Azure HDInsight 支援 分區部署設定。 Azure HDInsight 叢集節點會放在您在所選區域中選取的單一區域中。 區域性 HDInsight 叢集會與其他區域中發生的任何中斷隔離。 不過,如果中斷會影響為 HDInsight 叢集選擇的特定區域,將無法使用叢集。 此部署模型會在叢集內提供低成本、低延遲的網路連線能力。 將此部署模型複寫至多個可用性區域可以提供較高層級的可用性,以防禦硬體故障。
重要
對於使用者未指定特定區域的部署,節點類型不會具有區域復原性,而且在該區域的任何區域中斷期間可能會發生停機。
必要條件
只有在 2023 年 6 月 15 日之後建立的叢集才支援可用性區域。 叢集建立之後,便無法更新可用性區域設定。 即使更新現有的非可用性區域叢集,也無法透過此方式使用可用性區域。
必須在自訂 VNet 下建立叢集。
您需要自備適用於 Ambari DB 的 SQL DB 和外部中繼存放區 (例如 Hive 中繼存放區),才能在相同的可用性區域中設定這些 DB。
您的 HDInsight 叢集必須使用下列其中一個區域中的可用性區域選項來建立:
- 澳大利亞東部
- 巴西南部
- 加拿大中部
- 美國中部
- 美國東部
- 美國東部 2
- 法國中部
- 德國中西部
- 日本東部
- 南韓中部
- 北歐
- 卡達中部
- 東南亞
- 美國中南部
- 英國南部
- US Gov 維吉尼亞州
- 西歐
- 美國西部 2
使用可用性區域來建立 HDInsight 叢集
您可以使用 Azure Resource Manager (ARM) 範本,將 HDInsight 叢集啟動至指定的可用性區域。
在 resources 區段中,您需要新增 'zones' 區段,並提供您想要在其中部署此叢集的可用性區域。
"resources": [
{
"type": "Microsoft.HDInsight/clusters",
"apiVersion": "2021-06-01",
"name": "[parameters('cluster name')]",
"location": "East US 2",
"zones": [
"1"
],
}
]
驗證跨區域的一個可用性區域內的節點
HDInsight 叢集就緒時,您可以檢查位置以查看其部署所在的可用性區域。
取得 API 回應:
[
{
"location": "East US 2",
"zones": [
"1"
],
}
]
擴大叢集
您可以使用更多背景工作角色節點來擴大 HDInsight 叢集。 新增的背景工作角色節點將會放在此叢集的相同可用性區域中。
可用性區域移轉
Azure HDInsight 叢集目前不支援將現有的叢集執行個體就地移轉至可用性區域支援。 不過,您可以選擇重新建立叢集,並在叢集建立期間選擇不同的可用性區域或區域。 不同區域中的次要待命叢集和不同的可用性區域可用於災害復原情節中。
區域關閉體驗
當可用性區域關閉時:
- 您無法透過 ssh 連線至此叢集。
- 您無法刪除或是擴大或縮小此叢集。
- 您無法提交工作或查看工作歷程記錄。
- 您仍然可以在不同的區域中提交新的叢集建立要求。
跨區域災害復原和商務持續性
災害復原 (DR)是指從重大影響事件中復原,例如自然災害或不成功的部署 (導致停機和資料遺失)。 無論原因為何,解決災害的最佳辦法是定義完善且經過測試的 DR 方案,以及主動支援 DR 的應用程式設計。 開始思考建立災害復原方案之前,請參閱設計災害復原策略的建議。
Microsoft 在災害復原方面採取共同責任模型。 在共同責任模型中,Microsoft 確保基準基礎結構和平台服務可供使用。 此時,許多 Azure 服務不會自動複寫資料,或從失敗區域回復為交叉複寫到另一個已啟用的區域。 您需要為這些服務制定適合工作負載的災害復原方案。 在 Azure 平台即服務 (PaaS) 供應項目上執行的多數服務,都有提供支援災害復原的功能和指導,您可以使用特定服務功能快速復原,制定災害復原方案。
Azure HDInsight 叢集相依於許多 Azure 服務,例如儲存體、資料庫、Active Directory、Active Directory 網域服務、網路和金鑰保存庫。 設計完善的高可用性和容錯分析應用程式應該設計有足夠的備援,以承受其中一或多個服務中的區域中斷。 本節概述商務持續性規劃的最佳做法、單一和多重區域可用性及最佳化選項。
多區域地理位置的災害復原
使用跨區域高可用性災害復原來改善商務持續性,需要較高複雜度和較高成本的架構設計。 下表詳細說明可能會增加所有權總成本的一些技術領域。
成本最佳化
區域 | 成本上升的原因 | 最佳化策略 |
---|---|---|
資料儲存體 | 在次要區域中複製主要資料/資料表 | 僅複寫策展的資料 |
資料輸出 | 輸出跨區域資料傳輸需付出代價。 檢閱頻寬定價指導方針 | 僅複寫策展的資料,以減少區域磁碟使用量 |
叢集計算 | 次要區域中的其他 HDInsight 叢集 | 使用自動化指令碼以在主要計算失敗之後部署次要計算。 使用自動調整將次要叢集大小保持在最小狀態。 使用更便宜的 VM SKU。 在 VM SKU 可折扣的區域中建立次要區域。 |
驗證 | 次要區域中的多使用者案例會產生額外的 Microsoft Entra Domain Services 設定 | 避免在次要區域中進行多使用者設定。 |
複雜度最佳化
區域 | 複雜度擴大的原因 | 最佳化策略 |
---|---|---|
讀取寫入模式 | 需要主要區域和次要區域都啟用讀取和寫入 | 將次要區域設計為唯讀 |
Zero RPO & RTO | 需要零資料遺失 (RPO=0) 和零停機 (RTO=0) | 以減少需要容錯移轉的元件數目方式設計 RPO 和 RTO。 如需 RTO 和 RPO 的詳細資訊,請參閱復原目標。 |
商務功能 | 次要區域中需要主要區域的完整商務功能 | 評估您是否可在次要區域以商務功能的最低關鍵子集執行。 |
連線性 | 要求來自主要區域的所有上游和下游系統也連線到次要區域 | 將次要區域連線能力限制為最低關鍵子集。 |
當您建立多區域災害復原計畫時,請考慮下列建議:
確定發生災害時所需的最小商務功能及其原因。 例如,評估您是否需要資料轉換層 (以黃色顯示) 和資料服務層 (以藍色顯示) 的容錯移轉功能,或者您是否只需要資料服務層的容錯移轉。
根據工作負載、開發生命週期和部門分割您的叢集。 具有更多叢集可減少影響多個不同商務流程的單一大型失敗機率。
讓次要區域成為唯讀。 同時具有讀取和寫入功能的容錯移轉區域可能會產生複雜的架構。
發生災害時,暫時性叢集更容易管理。 以可循環叢集的方式設計工作負載,且叢集中不會維護任何狀態。
如果發生災害,而且需要在新區域中重新啟動,通常工作負載會保持未完成狀態。 將您的工作負載設計為本質上等冪。
在叢集部署期間使用自動化,並確保盡可能編寫叢集組態設定的指令碼,以確保發生災害時進行快速且完全自動化的部署。
中斷偵測、通知及管理
在 HDInsight 上使用 Azure 監視工具來偵測叢集中的異常行為,並設定對應的警示通知。 您可以部署預先設定的 HDInsight 叢集特定管理解決方案,收集特定叢集類型的重要效能計量。 如需詳細資訊,請參閱適用於 HDInsight 的 Azure 監視。
訂閱 Azure 健康情況警示,以通知訂用帳戶、服務或區域的服務問題、計劃性維護、健康情況和安全性諮詢。 包含問題原因和解析 ETA 的健康情況通知可協助您更妥善地執行容錯移轉和容錯回復。 如需詳細資訊,請參閱 Azure 服務健康情況文件。
單一區域地理位置的災害復原
基本 HDInsight 系統中的每個元件都有自己的單一區域容錯機制。 請記住,不一定會發生災難性事件來影響商務功能。 單一區域中下列一或多個服務中的服務事件也可能導致遺失預期的商務功能。
計算 (虛擬機器):Azure HDInsight 叢集 HDInsight 提供 99.9% 的可用性 SLA。 為了在單一部署中提供高可用性,HDInsight 會伴隨許多預設處於高可用性模式的服務。 HDInsight 中的容錯機制是由 Microsoft 和 Apache OSS 生態系統高可用性服務所提供。
下列基礎結構元件設計為高可用性:
- 作用中和待命前端節點
- 多個閘道節點
- 三個 Zookeeper 仲裁節點
- 由容錯和更新網域散發的背景工作角色節點
下列服務也設計為高度可用:
- Apache Ambari 伺服器
- 適用於 YARN 的應用程式時間軸伺服器
- 適用於 Hadoop MapReduce的作業歷程記錄伺服器
- Apache Livy
- HDFS
- YARN Resource Manager
- HBase Master
若要深入瞭解,請參閱 Azure HDInsight 支援的高可用性服務。
中繼存放區:Azure SQL Database。 HDInsight 會使用 Azure SQL Database 作為中繼存放區,以提供 99.99% 的 SLA。 三個資料複本會保存在資料中心內,且複寫是同步的。 如果複本遺失,則會無縫地提供替代複本。 現成支援作用中異地複寫,最多四個資料中心。 當手動或資料中心發生容錯移轉時,階層中的第一個複本即會自動變成可讀寫。 如需詳細資訊,請參閱 Azure SQL Database 商務持續性。
儲存體:Azure Data Lake Gen2 或 Blob 儲存體。 HDInsight 建議 Azure Data Lake Storage Gen2 作為基礎儲存層。 Azure 儲存體 (包括 Azure Data Lake Storage Gen2) 可提供 99.9% 的 SLA。 HDInsight 會使用 LRS 服務,其中三個資料複本會保存在資料中心內,而且複寫是同步的。 當複本遺失時,會無縫地提供複本。
驗證:Microsoft Entra ID, Microsoft Entra Domain Services, Enterprise Security Package。
- Microsoft Entra ID 提供 99.9% 的 SLA。 Active Directory 是一種全域服務,具有多個層級的內部備援和自動復原能力。 如需詳細資訊,請參閱 Microsoft 持續改善 Microsoft Entra ID 的可靠性。
- Microsoft Entra 網域服務提供 99.9% 的 SLA。 Microsoft Entra 網域服務是一種高度可用服務,裝載於分散全球的資料中心。 複本集是 Microsoft Entra 網域服務中的預覽功能,可在 Azure 區域離線時啟用地理災害復原。 如需詳細資訊,請參閱 Microsoft Entra 網域服務的複本集概念和功能以深入了解。
- Azure DNS 提供 100% 的 SLA。 HDInsight 會在各種位置使用 Azure DNS 進行網域名稱解析。
選擇性服務,例如 Azure Key Vault 和 Azure Data Factory。