Azure 儲存體災害復原規劃與容錯移轉

Microsoft 致力於確保 Azure 服務皆能持續可用。 不過仍然可能會發生計畫外的服務中斷。 良好災害復原方案的主要部分包括下列策略:

本文著重於全域備援儲存體帳戶的容錯移轉 (GRS、GZRS 和 RA-GZRS),以及如何將應用程式設計為發生中斷和後續容錯移轉時具有高可用性。

選擇正確的備援選項

Azure 儲存體會維護儲存體帳戶的多個複本,以確保持久性和高可用性。 您針對帳戶所選擇的備援選項,取決於您應用程式所需的復原程度。

使用本地備援儲存體 (LRS),儲存體帳戶的三個複本會自動儲存並複寫在單一資料中心內。 使用區域備援儲存體 (ZRS),複本會儲存並複寫在相同區域內三個不同的可用性區域中。 如需可用性區域的詳細資訊,請參閱 Azure 可用性區域

使用 LRS 和 ZRS 可自動復原儲存體帳戶的單一複本。

全域備援儲存體和容錯移轉

使用全域備援儲存體 (GRS、GZRS 和 RA-GZRS),Azure 會以非同步方式將資料複製到至少數百英里外的次要地理區域。 這可讓您在主要區域中發生中斷時復原資料。 區分全域備援儲存體與 LRS 和 ZRS 的功能,是主要區域發生中斷時容錯移轉至次要區域的能力。 容錯移轉程序會更新儲存體帳戶服務端點的 DNS 項目,讓次要區域的端點成為儲存體帳戶的新主要端點。 容錯移轉完成後,用戶端便可以開始寫入到新的主要端點。

RA-GRS 和 RA-GZRS 備援設定提供異地備援儲存體,如果主要區域發生中斷,則會為次要端點提供讀取存取的額外優點。 如果主要端點發生服務中斷,已設定次要區域讀取權限且符合高可用性設計宗旨的應用用程式,可以繼續從次要端點讀取。 Microsoft 建議使用 RA-GZRS,以達到儲存體帳戶的最大可用性和持久性。

如需 Azure 儲存體中備援功能的詳細資訊,請參閱 Azure 儲存體備援

規劃儲存體帳戶容錯移轉

Azure 儲存體帳戶支援兩種類型的容錯移轉:

1無法針對個別儲存體帳戶、訂用帳戶或租用戶起始 Microsoft 管理的容錯移轉。 如需更多詳細資料,請參閱 Microsoft 管理的容錯移轉
2 您的災害復原方案應以客戶管理的容錯移轉為基礎。 請勿依賴 Microsoft 管理的容錯移轉,這只會在極端情況下使用。

每種容錯移轉類型都有一組唯一的使用案例、對資料遺失的對應期望,以及啟用階層命名空間的帳戶支援 (Azure Data Lake Storage Gen2)。 下表摘要說明每種容錯移轉類型的層面:

類型 容錯移轉範圍 使用案例 預期的資料遺失 支援 HNS
由客戶管理 儲存體帳戶 主要區域的儲存體服務端點變得無法使用,但次要區域可供使用。

您收到 Azure Advisory,Microsoft 建議您針對可能受中斷影響的儲存體帳戶執行容錯移轉作業。
(預覽版)
Microsoft 管理的 整個區域或縮放單位 主要區域因為發生重大災害而完全無法使用,但次要區域可供使用。

客戶管理的容錯移轉

如果儲存體帳戶中儲存體服務的資料端點在主要區域中無法使用,您可以容錯移轉至次要區域。 容錯移轉完成後,次要區域會變成新的主要區域,使用者可以繼續存取新主要區域中的資料。

若要充分了解客戶管理的帳戶容錯移轉對您的使用者和應用程式的影響,了解容錯移轉和容錯回復程序的每個步驟中會發生什麼事會很有幫助。 如需程序運作方式的詳細資料,請參閱客戶管理的儲存體帳戶容錯移轉如何運作

Microsoft 管理的容錯移轉

在由於重大災害而導致原始主要區域在合理時間內無法復原的極端情況下,Microsoft 可能會起始區域容錯移轉。 在此情況下,您不需要採取任何動作。 在 Microsoft 管理的容錯移轉完成之前,您將無法取得儲存體帳戶的寫入權限。 如果您的儲存體帳戶已設定 RA-GRS 或 RA-GZRS,則應用程式可以讀取次要區域。

重要

您的災害復原方案應以客戶管理的容錯移轉為基礎。 請勿依賴 Microsoft 管理的容錯移轉,這可能只會在極端情況下使用。 Microsoft 管理的容錯移轉會針對整個實體單位起始,例如區域或縮放單位。 無法針對個別儲存體帳戶、訂用帳戶或租用戶起始。 若要選擇性地容錯移轉個別儲存體帳戶,請使用客戶管理的帳戶容錯移轉

預期資料遺失和不一致

警告

儲存體帳戶容錯移轉通常涉及某些資料遺失,並可能使檔案和資料不一致。 在災害復原方案中,請務必考慮帳戶容錯移轉對資料產生的影響,然後再起始容錯移轉。

由於資料會以非同步方式從主要區域寫入次要區域,因此在主要區域的寫入資料複製到次要之前一定會有延遲。 如果主要區域變得無法使用,則最新的寫入資料可能尚未複製到次要。

發生容錯移轉時,主要區域中的所有資料都會遺失,因為次要區域會成為新的主要。 發生容錯移轉時,已複製到次要區域的所有資料都會保持不變。 不過,任何已寫入主要區域但尚未複製到次要區域的資料都會永久遺失。

新的主要區域已在容錯移轉之後設定為本地備援 (LRS)。

如果您的儲存體帳戶已啟用下列一或多個項目,您也可能遇到檔案或資料不一致的情況:

上次同步處理時間

[上次同步時間] 屬性能指出來自主要區域的資料保證已寫入次要區域的最近時間。 對於具有階層命名空間的帳戶,相同的 [上次同步時間] 屬性也適用於階層命名空間所管理的中繼資料,包括 ACL。 在 [上次同步時間] 之前所寫入的所有資料和中繼資料都會存在於次要區域上,但在 [上次同步時間] 之後所寫入的資料和中繼資料則有可能尚未寫入次要區域,並可能會遺失。 在發生中斷時,請使用此屬性來估計起始帳戶容錯移轉可能會導致的資料遺失程度。

作為最佳做法,請將應用程式設計成可以使用 [上次同步時間] 來評估預期的資料遺失。 例如,如果您記錄所有寫入作業,則您可以比較最後一次的寫入作業與 [上次同步時間],來判斷哪些寫入尚未被同步到次要區域。

如需檢查上次同步時間屬性的詳細資訊,請參閱檢查儲存體帳戶的上次同步時間屬性

Azure Data Lake Storage Gen2 的檔案一致性

已啟用階層命名空間 (Azure Data Lake Storage Gen2) 的儲存體帳戶複寫會在檔案層級進行。 這表示如果主要區域發生中斷,則只有容器或目錄中的某些檔案可能已成功複寫到次要區域。 不保證儲存體帳戶容錯移轉之後容器或目錄中所有檔案的一致性。

變更摘要和 Blob 資料不一致

已啟用變更摘要的異地備援儲存體帳戶的儲存體帳戶的儲存體帳戶容錯移轉可能會導致變更摘要記錄與 Blob 資料和/或中繼資料之間不一致。 這類不一致可能是因為變更記錄更新的非同步本質,以及從主要區域到次要區域的 Blob 資料複寫。 唯一不會預期不一致的情況是,所有目前記錄檔都已成功排清到記錄檔,且所有儲存體資料都已成功從主要複寫到次要區域。

如需變更摘要運作方式的相關資訊,請參閱變更摘要的運作方式

請記住,其他儲存體帳戶功能需要啟用變更摘要,例如 Azure Blob 儲存體的作業備份物件複寫區塊 Blob 的時間點還原

時間點還原不一致

針對包含區塊 Blob 的一般用途 v2 標準層儲存體帳戶,支援客戶管理的容錯移轉。 不過,若在儲存體帳戶上執行客戶管理的容錯移轉,將會重設帳戶最早的可能還原點。 區塊 Blob 的時間點還原資料只會與容錯移轉完成時間一致。 因此,您只能將區塊 Blob 還原到不早於容錯移轉完成時間的時間點。 您可以在 Azure 入口網站中儲存體帳戶的備援索引標籤中檢查容錯移轉完成時間。

例如,假設您已將保留期限設為 30 天。 如果在容錯移轉後已經過 30 天的時間,則您可以還原至 30 天內的任何時間點。 但是,如果容錯移轉後經過的時間少於 30 天,則您無法還原至容錯移轉之前的某個點,無論保留期間為何。 例如,如果容錯移轉後已經過 10 天,則最早的可能還原點是過去 10 天,而非過去 30 天。

容錯移轉的時間和成本

容錯移轉起始後到完成所需的時間可能不同,但通常不到一小時。

客戶管理的容錯移轉在容錯移轉 (和容錯回復) 之後失去其異地備援。 在容錯移轉期間,您的儲存體帳戶會自動轉換成新主要區域中的本地備援儲存體 (LRS),且會刪除原始主要區域中的儲存體帳戶。

您可以為帳戶重新啟用異地備援儲存體 (GRS) 或讀取權限異地備援儲存體 (RA-GRS),但請注意,從 LRS 轉換為 GRS 或 RA-GRS 會產生額外費用。 成本是因為將資料重新複寫到新的次要區域而產生的網路輸出費用。 此外,必須先將所有封存的 blob 解除凍結至連線層,才能設定帳戶的異地備援,而這將會產生費用。 如需定價的詳細資訊,請參閱:

為您的儲存體帳戶重新啟用 GRS 之後,Microsoft 會開始將您帳戶中的資料複寫到新的次要區域。 複寫時間取決於許多因素,包括:

  • 儲存體帳戶中的物件數目和大小。 複寫許多小型物件所需的時間比複寫較少且較大的對象還要長。
  • 背景複寫的可用資源,例如 CPU、記憶體、磁碟和 WAN 容量。 即時流量的優先權高於異地複寫。
  • 如果您的儲存體帳戶包含 Blob,則為每個 Blob 的快照集數目。
  • 如果您的儲存體帳戶包含資料表,則為資料分割策略。 複寫程序在擴充時不能超過您所使用的分割區索引鍵數目。

支援的儲存體帳戶類型

所有異地備援供應項目都支援 Microsoft 管理的容錯移轉。 此外,某些帳戶類型支援客戶管理的帳戶容錯移轉,如下表所示:

容錯移轉的類型 GRS/RA-GRS GZRS/RA-GZRS
客戶自控容錯移轉 一般用途 v2 帳戶
一般用途 v1 帳戶
舊版 Blob 儲存體帳戶
一般用途 v2 帳戶
Microsoft 管理的容錯移轉 所有帳戶類型 一般用途 v2 帳戶

傳統儲存體帳戶

重要

只有使用 Azure Resource Manager (ARM) 部署模型部署的儲存體帳戶才支援客戶管理的帳戶容錯移轉。 不支援 Azure Service Manager (ASM) 部署模型,也稱為傳統模型。 若要讓傳統儲存體帳戶符合客戶管理的帳戶容錯移轉資格,則必須先移轉至 ARM 模型。 您必須能夠存取儲存體帳戶才能執行升級,因此主要區域目前無法處於失敗狀態。

如果發生會影響主要區域的災害,Microsoft 將會管理傳統儲存體帳戶的容錯移轉。 如需詳細資訊,請參閱 Microsoft 管理的容錯移轉

Azure Data Lake Storage Gen2

重要

具有階層命名空間 (Azure Data Lake Storage Gen2) 的帳戶客戶管理的容錯移轉目前為「預覽版」,並僅支援下列區域:

  • (亞太地區) 印度中部
  • (亞太地區) 東南亞
  • (歐洲) 歐洲北部
  • (歐洲) 瑞士北部
  • (歐洲) 瑞士西部
  • (歐洲) 西歐
  • (北美洲) 加拿大中部
  • (北美洲) 美國東部 2
  • (北美洲) 美國中南部

若要選擇加入預覽版,請參閱在 Azure 訂用帳戶中設定預覽版功能,並將 AllowHNSAccountFailover 指定為功能名稱。

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

若發生影響主要區域的重大災害,Microsoft 會針對具有階層命名空間的帳戶管理容錯移轉。 如需詳細資訊,請參閱 Microsoft 管理的容錯移轉

不支援的功能和服務

帳戶容錯移轉不支援下列功能和服務:

  • Azure 檔案同步 不支援客戶起始的記憶體帳戶故障轉移。 不應該容錯移轉包含在 Azure 檔案同步中作為雲端端點使用之 Azure 檔案共用的儲存體帳戶。 這麼做將導致同步停止運作,且可能會在新分層的檔案中產生未預期的資料遺失。 如需詳細資訊,請參閱使用 Azure 檔案同步 進行災害復原的最佳做法,以取得詳細數據。
  • 無法容錯移轉包含進階區塊 Blob 的儲存體帳戶。 支援進階區塊 Blob 的儲存體帳戶目前不支援異地備援。
  • 物件複寫原則中的來源或目的地帳戶皆不支援客戶管理的容錯移轉。
  • 若要容錯移轉已啟用 SSH 檔案傳輸通訊協定 (SFTP) 的帳戶,您必須先停用帳戶的 SFTP。 如果您想要在容錯移轉完成後繼續使用 SFTP,只要重新啟用它即可。
  • 儲存體帳戶容錯移轉不支援網路檔案系統 (NFS) 3.0 (NFSv3)。 您無法建立針對已啟用 NFSv3 的全域備援所設定的儲存體帳戶。

容錯移轉不適用於帳戶移轉

儲存體帳戶容錯移轉不應用作資料移轉策略的一部分。 容錯移轉是服務中斷的暫時解決方案。 如需如何移轉儲存體帳戶的資訊,請參閱 Azure 儲存體移轉概觀

包含封存 Blob 的儲存體帳戶

包含封存 blob 的儲存體帳戶支援帳戶容錯移轉。 不過,完成客戶管理的容錯移轉之後,必須先將所有封存的 blob 解除凍結至連線層,才能設定帳戶的異地備援。

儲存體資源提供者

Microsoft 提供兩個 REST API 來處理 Azure 儲存體資源。 這些 API 構成您可以對 Azure 儲存體執行的所有動作基礎。 Azure 儲存體 REST API 可讓您使用儲存體帳戶中的資料,包括 Blob、佇列、檔案和資料表資料。 Azure 儲存體資源提供者 REST API 可讓您管理儲存體帳戶和相關資源。

完成容錯移轉之後,用戶端可以在新的主要區域中再次讀取和寫入 Azure 儲存體資料。 但 Azure 儲存體資源提供者不會進行容錯移轉,因此資源管理作業仍然必須在主要區域中進行。 如果主要區域無法使用,您將無法在儲存體帳戶上執行管理作業。

由於 Azure 儲存體資源提供者不會進行容錯移轉,因此在容錯移轉完成之後,Location 屬性會傳回原來的主要位置。

Azure 虛擬機器

Azure 虛擬機器 (VM) 不會隨著帳戶容錯移轉一起容錯移轉。 如果主要區域變得無法使用,且您容錯移轉到次要區域,您必須在容錯移轉後重新建立所有 VM。 此外,可能會遺失與帳戶容錯移轉相關聯的資料。 Microsoft 建議您遵循 Azure 中虛擬機器專用的下列高可用性災害復原指導。

請記住,在 VM 關閉時,儲存在暫時磁碟中的所有資料都會遺失。

Azure 非受控磁碟

作為最佳做法,Microsoft 建議將非受控磁碟轉換成受控磁碟。 不過,如果您需要容錯移轉包含附加至 Azure VM 之非受控磁碟的帳戶,您必須在起始容錯移轉之前關閉該 VM。

非受控磁碟會以分頁 Blob 的形式儲存在 Azure 儲存體中。 當 VM 在 Azure 中執行時,附加至該 VM 的所有非受控磁碟都會被租用。 帳戶容錯移轉無法在 Blob 上存在租用的情況下繼續進行。 若要執行容錯移轉,請按照下列步驟進行:

  1. 在開始前,請記下所有非受控磁碟的名稱、其邏輯單元編號 (LUN),以及其所附加至的 VM。 這麼做將會使於容錯移轉後重新附加磁碟的工作變得較為輕鬆。
  2. 關閉 VM。
  3. 刪除 VM,但保留非受控磁碟的 VHD 檔案。 請記下您刪除 VM 的時間。
  4. 等候 [上次同步時間] 更新,並且是比您刪除 VM 更晚的時間。 此步驟很重要,因為在發生容錯移轉時,如果次要端點尚未搭配 VHD 檔案完全更新,則 VM 在新的主要區域中可能無法正確執行。
  5. 起始帳戶容錯移轉。
  6. 等候帳戶容錯移轉完成,且次要區域已成為新的主要區域。
  7. 在新的主要區域中建立 VM,並重新附加 VHD。
  8. 啟動新的 VM。

請記住,在 VM 關閉時,儲存在暫時磁碟中的所有資料都會遺失。

將複製資料作為容錯移轉的替代項目

如果您的儲存體帳戶已設定次要區域的讀取權限,則可以設計應用程式從次要端點讀取。 如果您不想在主要區域發生中斷的情況下進行容錯移轉,您可以使用 AzCopyAzure PowerShell 等工具,將次要區域中的資料從儲存體帳戶複製到位於未受影響區域中的另一個儲存體帳戶。 您接著可以將應用程式指向該儲存體帳戶,以取得讀取和寫入上的可用性。

高可用性設計

您應該從一開始便針對高可用性來設計您的應用程式。 請參考這些 Azure 資源來取得設計應用程式並針對災害復原進行規劃的指引:

請記住,這些適用於維護 Azure 儲存體資料之高可用性的最佳做法:

  • 磁碟:使用 Azure 備份來備份 Azure 虛擬機器所使用的 VM 磁碟。 也請考慮使用 Azure Site Recovery 來保護 VM 不受區域災害的影響。
  • 區塊 Blob:開啟虛刪除以防止物件層級刪除和覆寫,或使用 AzCopyAzure PowerShellAzure Data Movement 程式庫將區塊 blob 複製到不同區域的其他儲存體帳戶。
  • 檔案:使用 Azure 備份來備份您的檔案共用。 也可啟用虛刪除,以防止意外刪除檔案共用。 若啟用異地備援時無法使用 GRS,請使用 AzCopyAzure PowerShell,將檔案複製到不同區域的其他儲存體帳戶。
  • 資料表:使用 AzCopy 將資料表資料匯出到位於不同區域的其他儲存體帳戶。

追蹤中斷

客戶可以訂閱 Azure 服務健康狀態儀表板來追蹤 Azure 儲存體和其他 Azure 服務的健康情況和狀態。

Microsoft 也建議您將應用程式設計成可以因應可能的寫入失敗。 您的應用程式應該以能警告您主要區域可能會發生中斷的方式公開寫入失敗。

另請參閱