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 就能存取資源檔。

下一步