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 在單一資料中心內複寫資料的方式:

顯示如何使用 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 在主要區域中可用性區域之間複寫資料的方式:

顯示如何使用 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 檔案儲存體進階檔案共用的區域備援儲存體

次要區域中的備援

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

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

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

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

注意

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

使用 GRS 或 GZRS 時,除非容錯移轉至主要區域,否則次要區域中的資料無法進行讀取或寫入存取。 如需次要區域的讀取存取,請設定儲存體帳戶使用讀取權限異地備援儲存體 (RA-GRS) 或讀取權限異地區域備援儲存體 (RS-GZRS)。 如需詳細資訊,請參閱次要區域中的資料讀取存取

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

重要

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

異地備援儲存體

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

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

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

顯示如何使用 GRS 或 RA-GRS 複寫資料的圖表

異地區域備援儲存體

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

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

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

顯示如何使用 GZRS 或 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 PowerShell、Azure CLI 或其中一個 Azure 儲存體用戶端程式庫來查詢上次同步時間的值。 上次同步時間屬性是 GMT 日期/時間值。 如需詳細資訊,請參閱檢查儲存體帳戶的上次同步時間屬性

備援選項摘要

下列各節中的表格會摘要說明可供 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.9% (非經常性存取層或封存存取層為 99%) 針對 GRS 至少 99.9% (非經常性存取層或封存存取層為 99%)

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

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

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

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

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

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

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

支援的 Azure 儲存體服務

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

LRS ZRS GRS RA-GRS GZRS RA-GZRS
Blob 儲存體 (包括 Data Lake Storage)
佇列儲存體
資料表儲存體
Azure 檔案儲存體1、2
Azure 受控磁碟
分頁 Blob
Blob 儲存體 (包括 Data Lake Storage)
佇列儲存體
資料表儲存體
Azure 檔案儲存體1、2
Azure 受控磁碟3
Blob 儲存體 (包括 Data Lake Storage)
佇列儲存體
資料表儲存體
Azure 檔案儲存體1
Blob 儲存體 (包括 Data Lake Storage)
佇列儲存體
表格儲存體
Blob 儲存體 (包括 Data Lake Storage)
佇列儲存體
資料表儲存體
Azure 檔案儲存體1
Blob 儲存體 (包括 Data Lake Storage)
佇列儲存體
資料表儲存體

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 儲存體定價

注意

Azure Premium 磁碟儲存體目前僅支援本地備援儲存體 (LRS)。 區塊 blob 儲存體帳戶在某些區域支援本地備援儲存體 (LRS) 和區域備援儲存體 (ZRS)。

支援客戶自控帳戶容錯移轉

在主要區域中發生災害時,所有異地備援供應項目都支援 Microsoft 管理的容錯移轉。 此外,某些帳戶類型支援客戶自控帳戶容錯移轉,如下表所示。 支援的帳戶類型必須使用 Azure Resource Manager 部署。 如需災害復原和客戶自控容錯移轉的詳細資訊,請參閱災害復原和儲存體帳戶容錯移轉

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

注意

啟用階層命名空間 (Azure Data Lake Storage Gen2) 的帳戶目前不支援客戶自控帳戶容錯移轉。 若要深入了解,請參閱 Azure Data Lake Storage Gen2 中可用的 Blob 儲存體功能

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

資料完整性

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

另請參閱