Azure 儲存體複寫
Azure 儲存體一律會儲存多個資料複本,以保護該資料不受計劃性和非計劃性事件影響。 這些事件的範例包括暫時性的硬體失敗、網路或電力中斷,以及重大自然災害。 備援可確保您的儲存體帳戶即使在發生失敗時也能滿足可用性和持久性目標。
在決定您的案例適合哪一個備援選項時,請考慮在較低成本與較高可用性之間取捨。 這些因素有助於您判斷應該要納入哪個備援:
- 資料在主要區域內複寫的方式。
- 資料是否會從主要區域複寫到地理上距離第二近的地理區域,以保護其不受區域性災害影響 (異地複寫)。
- 在主要區務出現中斷情形時,應用程式是否需要讀取存取來複寫次要區域中的資料 (具有讀取存取的異地複寫)。
注意
本文所述的功能和區域可用性也可供具有階層命名空間 (Azure Blob 儲存體) 的帳戶使用。
組成Azure 儲存體的服務是透過稱為儲存體帳戶的通用 Azure 資源來管理。 儲存體帳戶代表可用來部署儲存體資源的共用集區,例如 Blob 容器 (Blob 儲存體) 、檔案共用 (Azure 檔案儲存體)、資料表 (表格儲存體) 或佇列 (佇列儲存體)。 如需有關 Azure 儲存體帳戶的詳細資訊,請參閱儲存體帳戶概觀。
儲存體帳戶的備援設定會針對該帳戶公開的所有儲存體服務進行共用。 部署在相同儲存體帳戶中的所有儲存體資源都具有相同的備援設定。 如果不同的儲存體帳戶有不同的備援需求,請考慮隔離不同儲存體帳戶中的不同類型的資源。
在主要區域中的備援
Azure 儲存體帳戶中的資料一律會在主要區域內複寫三次。 針對資料在主要區域中的複寫方式,Azure 儲存體提供了兩個選項:
- 本地備援儲存體 (LRS) 會在主要區域的單一實體位置同步複製資料三次。 LRS 是成本最低的複寫選項,但不建議用於需要高可用性或持久性的應用程式。
- 區域備援儲存體 (ZRS) 會在主要區域中將資料同步複製到三個 Azure 可用區域。 針對需要高可用性的應用程式,Microsoft 建議在主要區域中使用 ZRS,並複寫至次要區域。
注意
Microsoft建議在主要區域中針對 Azure Data Lake Storage 工作負載使用 ZRS。
本地備援儲存體
本地備援儲存體 (LRS) 會在主要區域中將儲存體帳戶於單一資料中心內複寫三次。 LRS 提供在指定一年內至少 99.999999999% (11 個九) 的物件持久性。
相較於其他選項,LRS 是成本最低的備援選項,且提供的持久性最弱。 LRS 可保護您的資料,避免伺服器機架及磁碟機失敗的影響。 不過,如果在資料中心內發生火災或洪水之類的災害,則所有使用 LRS 的儲存體帳戶複本可能都會失去或無法復原。 若要降低此風險,Microsoft 建議使用區域備援儲存體 (ZRS)、異地備援儲存體 (GRS),或異地區域備援儲存體 (GZRS)。
對使用 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 本身可能無法完全保護資料不受永久影響多個區域的區域性災害影響。 異地區域備援儲存體 (GZRS) 會在主要區域內使用 ZRS,並同時將您的資料異地複寫至次要區域。 您可在許多區域中使用 GZRS,並建議用於防範區域性災害。
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 複寫資料的方式:
異地區域備援儲存體
異地區域備援儲存體 (GZRS) 合併跨可用區域備援所提供的高可用性,以及異地複寫針對區域中斷所提供的保護。 GZRS 帳戶中的數據會跨主要區域中的三 個 Azure 可用性區域 複製。 除此之外,資料也會複寫到次要地理區域,以防備區域性災害的發生。 Microsoft 建議針對需要最大一致性、持久性、可用性、絕佳效能,以及針對災害復原恢復的應用程式使用 GZRS。
使用 GZRS 帳戶,如果可用性區域變成無法使用或無法復原,您可以繼續讀取和寫入數據。 此外,資料也會在發生全區中斷或災害,而導致主要區域無法復原時維持耐久可用。 GZRS 旨在於給定的一年內提供至少 99.99999999999999% (16 個 9) 的物件持久性。
下圖顯示使用 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 儲存體使用的備援選項。
持久性和可用性參數
下表描述每個備援選項的關鍵參數:
參數 | 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 儲存體也會計算所有網路流量的總和檢查碼,以在儲存或擷取資料時偵測資料封包的損毀。
另請參閱
- 變更儲存體帳戶的備援選項
- 異地複寫 (GRS/GZRS/RA-GRS/RA-GZRS)
- 定價