Azure 儲存體複寫

Azure 儲存體會一律儲存資料的多個複本,以保護該資料不受計劃性和非計劃性事件影響,包括暫時性硬體故障、網路或電力中斷和大規模天然災害。 備援可確保您的儲存體帳戶即使在發生失敗時也能滿足可用性和持久性目標。

在決定您的案例適合哪一個備援選項時,請考慮在較低成本與較高可用性之間取捨。 這些因素有助於您判斷應該要納入哪個備援:

  • 資料在主要區域內複寫的方式。
  • 資料是否會複寫到地理上距離主要區域相當遙遠的第二個區域,以保護其不受區域性災害影響 (異地複寫)。
  • 若主要區域因任何理由而無法使用,則應用程式是否需要讀取存取來複寫次要區域中的資料 (具有讀取權限的異地複寫)。

注意

本文所述的功能和區域可用性也可供具有階層命名空間 (Azure Blob 儲存體) 的帳戶使用。

組成Azure 儲存體的服務是透過稱為儲存體帳戶的通用 Azure 資源來管理。 儲存體帳戶代表可用來部署儲存體資源的共用集區,例如 Blob 容器 (Blob 儲存體) 、檔案共用 (Azure 檔案儲存體)、資料表 (表格儲存體) 或佇列 (佇列儲存體)。 如需有關 Azure 儲存體帳戶的詳細資訊,請參閱儲存體帳戶概觀

儲存體帳戶的備援設定會針對該帳戶公開的所有儲存體服務進行共用。 部署在相同儲存體帳戶中的所有儲存體資源都具有相同的備援設定。 如果不同的儲存體帳戶有不同的備援需求,您可能會想要隔離不同儲存體帳戶中的不同類型的資源。

在主要區域中的備援

Azure 儲存體帳戶中的資料一律會在主要區域內複寫三次。 針對資料在主要區域中的複寫方式,Azure 儲存體提供了兩個選項:

  • 本地備援儲存體 (LRS) 會在主要區域的單一實體位置同步複製資料三次。 LRS 是成本最低的複寫選項,但不建議用於需要高可用性或持久性的應用程式。
  • 區域備援儲存體 (ZRS) 會在主要區域中將資料同步複製到三個 Azure 可用區域。 針對需要高可用性的應用程式,Microsoft 建議在主要區域中使用 ZRS,並複寫至次要區域。

注意

Microsoft 建議在 Azure Data Lake Storage Gen2 工作負載的主要區域中使用 ZRS。

本地備援儲存體

本地備援儲存體 (LRS) 會在主要區域中將儲存體帳戶於單一資料中心內複寫三次。 LRS 提供在指定一年內至少 99.999999999% (11 個九) 的物件持久性。

相較於其他選項,LRS 是成本最低的備援選項,且提供的持久性最弱。 LRS 可保護您的資料,避免伺服器機架及磁碟機失敗的影響。 但是,若在資料中心內發生火災或洪水之類的災害,則所有使用 LRS 的儲存體帳戶複本可能都會遺失或無法復原。 若要降低此風險,Microsoft 建議使用區域備援儲存體 (ZRS)、異地備援儲存體 (GRS),或異地區域備援儲存體 (GZRS)。

對使用 LRS 儲存體帳戶發出的寫入要求會以同步方式進行。 只有在將資料寫入三個複本之後,寫入作業才會成功傳回。

下圖顯示使用 LRS 在單一資料中心內複寫資料的方式:

Diagram showing how data is replicated in a single data center with LRS

在下列情況中,選擇 LRS 是個明智的決定:

  • 如果您的應用程式儲存的資料,可在發生資料遺失時輕鬆重新建構,則您可以選擇使用 LRS。
  • 若應用程式由於資料控管需求而只能在國家或地區中複寫資料,則可選擇 LRS。 在某些情況下,資料進行異地複寫的配對區域可能會位於另一個國家或地區中。 如需配對區域的詳細資訊,請參閱 Azure 區域
  • 如果您的案例使用 Azure 非受控磁碟,則可能要選擇 LRS。 儘管您可為使用 GRS 的 Azure 非受控磁碟建立儲存體帳戶,並不建議這種做法,因為可能會有非同步異地複寫所引發的潛在一致性問題。

區域備援儲存體

區域備援儲存體 (ZRS) 會在主要區域中將儲存體帳戶同步複寫至三個 Azure 可用區域。 每個可用性區域都是具有獨立電源、冷卻和網路的個別實體位置。 ZRS 提供儲存體資源在指定一年中至少 99.9999999999% (12 個 9) 的持久性。

使用 ZRS,即使區域變得無法使用,您的資料仍可用於讀取和寫入作業存取。 若區域無法使用,則 Azure 會執行網路更新,例如 DNS 重新指向。 若在更新完成之前存取資料,這些更新便可能會影響應用程式。 在為 ZRS 設計應用程式時,請遵循暫時性錯誤處理實務,包括以指數後退法實作重試原則。

對使用 ZRS 儲存體帳戶發出的寫入要求會以同步方式進行。 只有在將資料寫入三個可用區域的所有複本之後,寫入作業才會成功傳回。 如果可用性區域暫時無法使用,作業會在資料寫入至所有可用區域之後成功傳回。

針對需要高可用性的案例,Microsoft 建議在主要區域中使用 ZRS。 也建議使用 ZRS 來限制特定國家/地區或區域的資料複寫,以符合資料治理需求。

Microsoft 建議針對Azure 檔案儲存體工作負載使用 ZRS。 若區域變得無法使用,則不需要從已連線的用戶端重新掛接 Azure 檔案共用。

下圖顯示使用 ZRS 在主要區域中可用性區域之間複寫資料的方式:

Diagram showing how data is replicated in the primary region with ZRS

ZRS 可提供優異的效能、低延遲,以及讓您能夠在資料暫時無法使用時復原資料。 不過,對於永久影響多個區域的區域性災害,ZRS 本身可能無法在這種情況下保護您的資料。 針對區域性災害的保護,Microsoft 建議使用異地區域備援儲存體 (GZRS),這種儲存體會在主要區域內使用 ZRS,但也會將資料異地複寫至次要區域。

ZRS、GZRS 或 RA-GZRS 帳戶目前不支援 Blob 儲存體的封存層。 非受控磁碟不支援 ZRS 或 GZRS。

如需哪些區域支援 ZRS 的詳細資訊,請參閱具有可用性區域的 Azure 區域

標準儲存體帳戶

透過標準常規用途 v2 儲存體帳戶的所有 Azure 儲存體服務都支援 ZRS,包括:

  • Azure Blob 儲存體 (經常性存取和非經常性存取區塊 Blob 和附加 Blob、非磁碟分頁 Blob)
  • Azure 檔案儲存體 (所有標準層:交易最佳化、經常性存取和非經常性存取)
  • Azure 表格儲存體
  • Azure 佇列儲存體

如需對標準帳戶支援區域備援儲存體 (ZRS) 的區域清單,請參閱對標準儲存體帳戶支援區域備援儲存體 (ZRS) 的 Azure 區域

進階區塊 Blob 帳戶

進階區塊 Blob 帳戶支援 ZRS。 如需進階區塊 Blob 的詳細資訊,請參閱進階區塊 Blob 儲存體帳戶

如需對進階區塊 Blob 帳戶支援區域備援儲存體 (ZRS) 的區域清單,請參閱對進階區塊 Blob 帳戶支援區域備援儲存體 (ZRS) 的 Azure 區域

進階檔案共用帳戶

ZRS 透過 FileStorage 儲存體帳戶種類支援進階檔案共用 (Azure 檔案儲存體)。

如需對進階檔案共用帳戶支援區域備援儲存體 (ZRS) 的區域清單,請參閱進階檔案共用的 Azure 檔案儲存體區域備援儲存體

受控磁碟

具有下列限制的受控磁碟支援 ZRS。

如需對受控磁碟支援區域備援儲存體 (ZRS) 的區域清單,請參閱區域可用性

次要區域中的備援

針對需要高持久性的應用程式,可選擇另外將儲存體帳戶中資料複製到位於主要區域數百英哩外的次要區域。 若儲存體帳戶已複製到次要區域,則即使主要區域發生全區中斷或災害而無法復原的狀況,資料仍然會是耐久的。

當您建立儲存體帳戶時,請為該帳戶選取主要區域。 配對的次要區域會視主要區域而定,且無法變更。 如需 Azure 支援區域的詳細資訊,請參閱 Azure 區域

Azure 儲存體提供兩種將資料複製到次要區域的選項:

  • 異地備援儲存體 (GRS) 會使用 LRS 在主要區域中將資料於單一實體位置內同步複製三次。 接著其會將資料以非同步方式複製到次要區域中的單一實體位置。 在次要區域內,您的資料會使用 LRS 同步複製三次。
  • 異地區域備援儲存體 (GZRS) 會使用 ZRS 在主要區域中將資料同步複製到三個 Azure 可用區域。 接著其會將資料以非同步方式複製到次要區域中的單一實體位置。 在次要區域內,您的資料會使用 LRS 同步複製三次。

注意

GRS 和 GZRS 之間主要差異是資料在主要區域中複寫的方式。 在次要區域內,資料一律會使用 LRS 以同步方式複寫三次。 次要區域中的 LRS 可保護您的資料避免硬體失敗。

使用 GRS 或 GZRS,除非發生容錯移轉至次要區域,否則主要區域中的資料不會提供讀取或寫入存取。 如需次要區域的讀取存取權限,請將儲存體帳戶設定為使用讀取權限異地備援儲存體 (RA-GRS) 或讀取權限異地區域備援儲存體 (RA-GZRS)。 如需詳細資訊,請參閱次要區域中的資料讀取存取

若主要區域無法使用,則可選擇容錯移轉至次要區域。 容錯移轉完成後,次要區域就會變為主要區域,接著您可再次讀取和寫入資料。 如需災害復原及了解如何容錯移轉至次要區域的詳細資訊,請參閱災害復原與儲存體帳戶容錯移轉

重要

因為資料會以非同步方式複寫至次要區域,若主要區域無法復原,則影響主要區域的失敗可能會導致資料遺失。 最近寫入至主要區域及最後寫入次要區域之間的間隔稱為復原點目標 (RPO)。 RPO 表示可復原資料的時間點。 Azure 儲存體平台的 RPO 通常低於 15 分鐘,但目前並沒有關於將資料複寫至次要區域所花費時間的 SLA。

異地備援儲存體

異地備援儲存體 (GRS) 會使用 LRS 在主要區域中將資料於單一實體位置內同步複製三次, 接著,會將您的資料非同步複製到與主要區域相隔數百英哩的次要區域中單一實體位置。 GRS 提供儲存體資源在指定一年中至少 99.99999999999999% (16 個 9) 的持久性。

寫入作業會先認可到主要位置,並使用 LRS 進行複寫。 更新接著會以非同步方式複寫到次要區域。 當資料寫入次要位置時,也會使用 LRS 在該位置中複寫。

下圖顯示使用 GRS 或 GRS 複寫資料的方式:

Diagram showing how data is replicated with GRS or RA-GRS

異地區域備援儲存體

異地區域備援儲存體 (GZRS) 合併跨可用區域備援所提供的高可用性,以及異地複寫針對區域中斷所提供的保護。 GZRS 儲存體帳戶中資料會複製到主要區域中的三個 Azure 可用區域,此外也會複寫到次要地理區域以保護其不受區域災害影響。 Microsoft 建議針對需要最大一致性、持久性、可用性、絕佳效能,以及針對災害復原恢復的應用程式使用 GZRS。

透過 GZRS 儲存體帳戶,若可用區域無法使用或無法復原,則仍可繼續讀取和寫入資料。 此外,資料也會在發生全區中斷或災害,而導致主要區域無法復原時維持耐久。 GZRS 旨在於指定的一年中,為物件提供至少 99.99999999999999% (16 個 9) 的持久性。

下圖顯示使用 GZRS 或 RA-GZRS 複寫資料的方式:

Diagram showing how data is replicated with GZRS or RA-GZRS

只有標準常規用途 V2 儲存體帳戶支援 GZRS。 所有 Azure 儲存體服務都支援 GZRS,包括:

  • Azure Blob 儲存體 (經常性存取和非經常性存取區塊 Blob、非磁碟分頁 Blob)
  • Azure 檔案儲存體 (所有標準層:交易最佳化、經常性存取和非經常性存取)
  • Azure 表格儲存體
  • Azure 佇列儲存體

如需支援異地區域備援儲存體 (GZRS) 的區域清單,請參閱支援異地區域備援儲存體 (GZRS) 的 Azure 區域

次要區域中的資料讀取存取

異地備援儲存體 (使用 GRS 或 GZRS) 會將資料複寫到次要區域中的另一個實體位置,以保護其不受區域性中斷影響。 使用已設定 GRS 或 GZRS 的帳戶,除非發生容錯移轉,否則次要區域中的資料無法直接存取使用者或應用程式。 容錯移轉程序會更新由 Azure 儲存體提供的 DNS 項目,使次要端點變成您儲存體帳戶的新主要端點。 在容錯移轉期間,您無法存取資料。 在容錯移轉完成後,您可以將資料讀取和寫入至新的主要區域。 如需詳細資訊,請參閱客戶管理的儲存體帳戶容錯移轉運作方式

如果您的應用程式需要高可用性,則可以設定儲存體帳戶,以取得次要區域的讀取存取。 當您啟用對次要區域的讀取存取時,資料可以隨時從次要區域讀取,包括在主要區域無法使用時。 讀取存取異地備援儲存體 (RA-GRS) 或讀取存取異地區域備援儲存體 (RA-GZRS) 設定允許次要區域的讀取存取。

注意

Azure 檔案儲存體不支援讀取權限異地備援儲存體 (RA-GRS) 或讀取權限異地區域備援儲存體 (RA-GZRS)。

針對次要區域的讀取存取設計應用程式

如果您的儲存體帳戶設定為讀取存取至次要區域,則當主要區域因為某些原因無法使用時,您可將應用程式設計為順暢切換至從次要區域讀取資料。

當您啟用 RA-GRS 或 RA-GZRS 之後,次要區域可供讀取存取,因此您可以事先測試您的應用程式,以確保在發生中斷時能夠正確地從次要區域讀取。 如需如何設計應用程式來利用異地備援的詳細資訊,請參閱使用異地備援來設計高可用性應用程式

啟用對次要區域的讀取存取時,即可從次要端點以及主要端點讀取資料。 次要端點會將 -secondary 尾碼附加到帳戶名稱。 例如,若 Blob 儲存體主要端點是 myaccount.blob.core.windows.net,則次要端點便會是 myaccount-secondary.blob.core.windows.net。 主要和次要端點的儲存體帳戶帳戶存取金鑰為相同。

針對資料遺失進行規劃

由於資料會以非同步方式從主要區域複寫到次要區域,因此就寫入作業而言,次要區域通常會位於主要區域之後。 如果主要區域發生災害,可能會遺失一些資料,而且目錄或容器內的檔案不會一致。 如需如何針對潛在資料遺失進行規劃的詳細資訊,請參閱資料遺失和不一致情形

備援選項摘要

下列各節中的表格會摘要說明可供 Azure 儲存體使用的備援選項。

持久性和可用性參數

下表描述每個備援選項的關鍵參數:

參數 LRS ZRS GRS/RA-GRS GZRS/RA-GZRS
指定一年中物件的持久性百分比 至少 99.999999999% (11 個 9) 至少 99.9999999999% (12 個 9) 至少 99.99999999999999% (16 個 9) 至少 99.99999999999999% (16 個 9)
讀取要求的可用性 至少 99.9% (非經常性存取層/極非經常性存取層/封存存取層為 99%) 至少 99.99% (非經常性存取層/極非經常性存取層為 99.9%) GRS 至少 99.9% (非經常性存取層/極非經常性存取層/封存存取層為 99%)

RA-GRS 至少 99.99% (非經常性存取層/極非經常性存取層/封存存取層為 99.9%)
GZRS 至少 99.9% (非經常性存取層/極非經常性存取層為 99%)

RA-GZRS 至少 99.99% (非經常性存取層/極非經常性存取層為 99.9%)
寫入要求的可用性 至少 99.9% (非經常性存取層/極非經常性存取層/封存存取層為 99%) 至少 99.99% (非經常性存取層/極非經常性存取層為 99.9%) 至少 99.9% (非經常性存取層/極非經常性存取層/封存存取層為 99%) 至少 99.99% (非經常性存取層/極非經常性存取層為 99.9%)
可在不同的節點上維護的資料副本數量 單一區域內的三個複本 單一區域內不同可用性區域之間的三個複本 總共六個複本,包括主要區域中的三個複本和次要區域中的三個複本 總共六個複本,包括主要區域中不同可用性區域的三個複本,以及次要區域中的三個本地備援複本

如需詳細資訊,請參閱儲存體帳戶的 SLA

持久性和可用性 (依中斷案例)

下表會指出資料在指定案例中是否為耐久及可用,其取決於儲存體帳戶中生效的備援類型:

中斷案例 LRS ZRS GRS/RA-GRS GZRS/RA-GZRS
資料中心內的節點無法使用 Yes .是 .是 Yes
整個資料中心 (區域或非區域) 變成無法使用 No Yes 1 Yes
主要區域中發生全區域中斷 No No 1 1
若主要區域無法使用,則次要區域的讀取存取即可提供使用 No No 是 (透過 RA-GRS) 是 (透過 RA-GZRS)

1 若主要區域無法使用,則需要帳戶容錯移轉,才能還原寫入可用性。 如需詳細資訊,請參閱災害復原與儲存體帳戶容錯移轉

支援的 Azure 儲存體服務

下表顯示每個 Azure 儲存體服務支援的備援選項。

服務 LRS ZRS GRS RA-GRS GZRS RA-GZRS
Blob 儲存體
(包括 Data Lake Storage)
佇列儲存體
表格儲存體
Azure 檔案 1,2 1,2 1 1
Azure 受控磁碟 3
Azure 彈性 SAN

1 LRS 和 ZRS 上都支援標準檔案共用。 只要標準檔案共用大小小於或等於 5 TiB,GRS 和 GZRS 就可以支援。
2 LRS 和 ZRS 上都支援進階檔案共用。
3 ZRS 受控磁碟有特定限制。 請參閱受控磁碟的備援選項文章中限制一節以取得詳細資料。

支援的儲存體帳戶類型

下表顯示每個儲存體帳戶類型支援的備援選項。 如需儲存體帳戶類型的資訊,請參閱儲存體帳戶概觀

儲存體帳戶類型 LRS ZRS GRS/RA-GRS GZRS/RA-GZRS
建議需求 標準常規用途 v2 (StorageV2)1

進階區塊 Blob (BlockBlobStorage)1

進階檔案共用 (FileStorage)

進階分頁 Blob (StorageV2)
標準常規用途 v2 (StorageV2)1

進階區塊 Blob (BlockBlobStorage)1

進階檔案共用 (FileStorage)
標準常規用途 v2 (StorageV2)1 標準常規用途 v2 (StorageV2)1
舊版 標準常規用途 v1 (Storage)

舊版 Blob (BlobStorage)
N/A 標準常規用途 v1 (Storage)

舊版 Blob (BlobStorage)
N/A

1 已啟用階層命名空間的此類行帳戶,也支援指定備援選項。

所有儲存體帳戶的全部資料都會根據儲存體帳戶的備援選項,從主要區域複製到次要區域。 區塊 blob、附加 blob、分頁 blob、佇列、資料表和檔案等物件都會進行複製。

所有階層中的資料 (包括封存層) 一律會在異地複寫期間從主要區域複製到次要區域。 Blob 儲存體的封存層目前支援 LRS、GRS 和 RA-GRS 帳戶,但是不適用於 ZRS、GZRS 或 RA-GZRS 帳戶。 如需 Blob 階層的詳細資訊,請參閱 Blob 資料的存取層

非受控磁碟不支援 ZRS 或 GZRS。

如需每個備援選項的定價資訊,請參閱 Azure 儲存體定價

注意

區塊 blob 儲存體帳戶在某些區域支援本地備援儲存體 (LRS) 和區域備援儲存體 (ZRS)。

資料完整性

Azure 儲存體會使用循環冗餘檢查 (CRC) 定期驗證所儲存資料的完整性。 若偵測到資料損毀,即會使用備援資料進行修復。 Azure 儲存體也會計算所有網路流量的總和檢查碼,以在儲存或擷取資料時偵測資料封包的損毀。

另請參閱