分享方式:


Azure Batch 的可靠性

本文說明 Azure Batch 的可靠性支援,並涵蓋可用性區域的區域內復原能力,以及跨區域復原和商務持續性的連結。

可用性區域支援

Azure 可用性區域是每個 Azure 區域內至少三個實體獨立的資料中心群組。 每個區域內的資料中心都配備了獨立的電源、冷卻系統和網路基礎結構。 在本機區域失敗的案例中,可用性區域的設計在於,當一個區域受影響時,讓其餘兩個區域支援區域服務、容量和高可用性。

這類失敗的範圍可從軟體和硬體故障,擴及到如地震、淹水和火災的事件。 透過 Azure 服務的備援和邏輯隔離,實現對失敗的容錯。 如需深入了解 Azure 的可用性區域,請參閱區域和可用性區域

已啟用 Azure 可用性區域的服務旨在提供正確程度的可靠性和彈性。 您可以透過兩種方式加以設定。 它們可以是區域備援,具有跨區域自動複寫功能,或者是區域性的,將執行個體釘選在特定區域。 兩種方法可以結合使用。 如需區域與區域備援結構的詳細資訊,請參閱使用可用性區域和區域的建議

在支援可用性區域上,Batch 會維持與 Azure 的同位。

必要條件

  • 針對使用者訂用帳戶模式 Batch 帳戶,請確定您要在其中建立集區的訂用帳戶對於要求的 VM SKU 沒有區域供應項目限制。 若要查看您的訂用帳戶是否有任何限制,請呼叫資源 SKU 清單 API,並檢查 ResourceSkuRestrictions。 如果區域限制存在,您可以提交支援票證來移除區域限制。

  • 由於 InfiniBand 不支援區域間通訊,因此若集區已啟用節點間通訊,且使用支援 InfiniBand 的 VM SKU,則您就無法建立具有區域原則的集區。

  • 在支援可用性區域上,Batch 會維持與 Azure 的同位。 若要使用區域選項,您的集區必須建立在具有可用性區域支援的 Azure 區域中。

  • 若要將您的 Batch 集區配置在可用性區域,集區建立位置所在的 Azure 區域必須支援多個區域中所要求的 VM SKU。 若要驗證該區域是否支援多個區域中要求的 VM SKU,請呼叫資源 SKU 清單 API,並檢查 resourceSkulocationInfo 欄位。 請確定要求的 VM SKU 有多個區域受到支援。 您也可以使用 Azure CLI,透過下列命令列出所有可用的資源 SKU:

    
        az vm list-skus
    
    

建立跨可用性區域的 Azure Batch 集區

如需如何跨可用性區域建立 Batch 集區的範例,請參閱建立跨可用性區域的 Azure Batch 集區

了解如何使用 Azure 入口網站Azure CLIPowerShellBatch Management API 建立 Batch 帳戶。

區域關閉體驗

在區域關閉中斷期間,會導致該區域內的節點無法使用。 來自其他區域中相同節點集區內的任何節點都不會受到影響,並繼續可供使用。

Azure Batch 帳戶不會重新配置或建立新的節點來補償因中斷而關閉的節點。 使用者必須在節點集區中新增更多節點,然後從其他狀況良好的區域加以配置。

容錯

為因應潛在的可用性區域故障,您應該超量佈建服務的容量,以確保解決方案可以容許 1/3 的容量損失,並在整個區域的中斷期間繼續正常運作,而不會降低效能。 由於平台會將 VM 分散到三個區域,因此您必須至少考慮一個區域的失敗,請將尖峰工作負載執行個體計數乘以區域/(zone-1) 或 3/2 的因素。 例如,如果您的一般尖峰工作負載需要四個執行個體,您應該佈建六個執行個體:(2/3 * 6 個執行個體) = 4 個執行個體。

可用性區域移轉

您無法將現有 Batch 集區移轉至可用性區域支援。 若您想要跨可用性區域重新建立 Batch 集區,請參閱建立跨可用性區域的 Azure Batch 集區

跨區域災害復原和商務持續性

所有 Azure 區域皆可使用 Azure Batch。 但建立 Batch 帳戶時,必須將其與特定區域建立關聯。 該 Batch 帳戶的所有後續作業僅適用於該區域。 例如,集區和相關聯的虛擬機器 (VM) 會建立於 Batch 帳戶所在的相同區域中。

設計使用 Batch 的應用程式時,您必須考量 Batch 在某個區域中無法使用的可能性。 您有可能遇到罕見的情況:整個區域都發生問題、區域中的整個 Batch 服務發生問題,或您的特定 Batch 帳戶發生問題。

如果使用 Batch 的應用程式或解決方案必須隨時可供使用,則應將其設計為可容錯移轉至另一個區域,或一律將工作負載拆分到兩個或更多區域之間。 這兩種方法都至少需要兩個 Batch 帳戶,且須分別位於不同的區域中。

您負責使用 Azure Batch 設定跨區域災害復原。 如果您跨特定區域執行多個 Batch 帳戶並利用可用性區域,則當其中一個 Batch 帳戶無法使用時,您的應用程式仍可滿足災害復原目標。

當將容錯移轉的功能提供給替代區域時,解決方案中的所有元件都必須納入考量中;僅具備第二個 Batch 帳戶是不夠的。 例如,在大部分 Batch 應用程式中,都需要 Azure 儲存體帳戶。 儲存體帳戶和 Batch 帳戶必須位於相同區域中,才能獲得可接受的效能。

設計可容錯移轉的解決方案時,請考慮下列幾點:

  • 在每個區域中預先建立所有必要的服務,例如 Batch 帳戶和儲存體帳戶。 建立帳戶通常不會收費,僅當使用帳戶或儲存資料時才會產生費用。

  • 確保事先為所有使用者訂用帳戶 Batch 帳戶設定適當配額,以便您使用 Batch 帳戶來配置所需的核心數目。

  • 使用範本和/或指令碼在區域中自動部署應用程式。

  • 持續更新所有區域中的應用程式二進位檔和參考資料。 持續更新可確保區域能夠快速上線,而無須等候檔案上傳和部署。 例如,假設使用 Batch 應用程式封裝來儲存和參考要安裝在集區節點上的自訂應用程式。 當發佈應用程式的更新時,應該將其上傳至每個 Batch 帳戶,並由集區設定參考 (或將最新版本設為預設版本)。

  • 在呼叫 Batch、儲存體和任何其他服務的應用程式中,輕鬆地將用戶端或負載切換至不同的區域。

  • 請考慮將經常切換至替代區域,作為正常作業的一部分。 例如,若有兩個部署位於不同的區域中,則每個月應切換至替代區域一次。

從災害中復原的時間長度取決於所選設定。 無論您使用多個帳戶還是單一帳戶,與 Batch 本身無關。 在主動-主動設定中,會有兩個 Batch 執行個體同時接收流量,因此災害復原速度會比主動-被動設定更快。 您所選的設定應以商務需求 (不同區域、延遲需求) 和技術考量為基礎。

單一區域災害復原

無論您是在單一區域或多區域地理位置中執行作業,都是採用相同方式在 Batch 中實作災害復原。 唯一的差異在於您用於儲存體的 SKU,以及您打算在所有區域中使用相同或不同的儲存體帳戶。

災害復原測試

您應該針對已啟用 Batch 的解決方案,執行自己的災害復原測試。 最佳做法是在不同區域的用戶端和服務負載之間實現輕鬆切換。

測試 Batch 的災害復原計劃就像替換 Batch 帳戶一樣簡單。 例如,您可以在一個營運日內依賴特定區域中的單一 Batch 帳戶。 然後,您可以在第二天切換至不同區域中的第二個 Batch 帳戶。 災害復原主要在用戶端上管理。 採取這樣的多帳戶災害復原方法,可以滿足單一區域或多​​區域地理位置的 RTO 和 RPO 預期。

容量和主動式災害復原能力

Microsoft 及其客戶會在共同責任模型下運作。 Microsoft 負責平台和基礎結構復原能力。 針對您部署和控制的任何特定服務,您必須負責解決相關的災害復原問題。 若要確保採取主動式復原:

  • 您應該一律預先部署次要資源。 預先部署次要資源屬於必要行為,因為對於那些尚未預先配置此類資源的人而言,無法保證出現影響時的容量。

  • 在每個區域中預先建立所有必要的服務,例如 Batch 帳戶和相關聯的儲存體帳戶。 建立新帳戶不會收費,僅當使用帳戶或儲存資料時才會產生費用。

  • 確保事先設定所有訂用帳戶的適當配額,以便您使用 Batch 帳戶來配置所需的核心數目。 如同使用其他 Azure 服務,對於與 Batch 服務相關聯的特定資源有一些限制。 這其中有許多限制是 Azure 在訂用帳戶或帳戶層級上所套用的預設配額。 當您設計和擴大您的 Batch 工作負載時,請記住這些配額。

注意

如果您計劃在 Batch 中執行生產工作負載,您可能需要增加一或多個高於預設值的配額。 若要提高配額,可以免費要求增加配額。 如需詳細資訊,請參閱要求增加配額

儲存體

您必須設定 Batch 儲存體,確保已跨區域備份資料;客戶責任為預設值。 大部分 Batch 解決方案都使用 Azure 儲存體來儲存資源檔和輸出檔。 例如,您的 Batch 工作 (包括標準工作、啟動工作、作業準備工作和作業發行工作) 通常會指定位於儲存體帳戶中的資源檔案。 儲存體帳戶也會儲存已處理的資料,以及任何產生的輸出資料。 了解服務作業區域可能發生資料遺失是一項重要考量。 您也必須確認資料是可讀寫或唯讀。

Batch 支援下列類型的「Azure 儲存體」帳戶:

  • 一般用途 v2 (GPv2) 帳戶
  • 一般用途 v1 (GPv1) 帳戶
  • Blob 儲存體帳戶 (目前支援虛擬機器組態中的集區)

如需有關儲存體帳戶的詳細資訊,請參閱 Azure 儲存體帳戶概觀

您可以在建立帳戶時,建立儲存體帳戶與 Batch 帳戶的關聯,或稍後執行此步驟。

如果您要為提供服務的每個區域設定個別儲存體帳戶,則必須使用區域備援儲存體 (ZRS) 帳戶。 如果您在多個配對區域中使用相同儲存體帳戶,請使用異地區域備援儲存體 (GZRS) 帳戶。 針對包含單一區域的地理位置,您必須建立區域備援儲存體 (ZRS) 帳戶,因為 GZRS 無法使用。

容量規劃是儲存體的另一項重要考量,您應主動予以處理。 在選擇儲存體帳戶時,請考慮您的成本和效能需求。 例如,相較於 GPv1,GPv2 和 Blob 儲存體帳戶選項支援更大的容量和延展性限制。 (請連絡 Azure 支援以要求增加儲存體限制。)對於包含讀取自或寫入至儲存體帳戶之大量平行工作的 Batch 解決方案,這些帳戶選項可以改善其效能。

儲存體帳戶連結到 Batch 帳戶後,系統就會將其視為自動儲存體帳戶。 如果您打算使用應用程式封裝功能,就會需要自動儲存體帳戶,因為您可以用它來儲存應用程式封裝的 .zip 檔案。 自動儲存體帳戶也可用於工作資源檔;由於自動儲存體帳戶已連結至 Batch 帳戶,因此不需要共用存取簽章 (SAS) URL 就能存取資源檔。

下一步