blob 資料的存取層
儲存在雲端的資料迅速成長。 為了管理擴展儲存體需求的成本,根據資料的存取頻率和將保留的時間長度來組織資料,會很有幫助。 Azure 儲存體提供不同的存取層,讓您可以根據 Blob 資料的使用方式,以最符合成本效益的方式來儲存 Blob 資料。 Azure 儲存體存取層包括:
- 經常性存取層:已針對儲存經常存取或修改的資料最佳化的線上層。 經常性存取層的儲存體成本最高,但存取成本最低。
- 非經常性儲存層:已針對儲存不常存取或修改的資料最佳化的線上層。 非經常性存取層中的資料至少應儲存 30 天。 相較於經常性存取層,非經常性儲存層的儲存體成本較低且存取成本較高。
- 非經常性存取層:已最佳化的線上層,用於儲存極少存取或修改的資料,但仍需要快速擷取。 極非經常性存取層中的資料至少應儲存 90 天。 相較於非經常性存取層,極非經常性存取層的儲存體成本較低但存取成本較高。
- 封存層:已針對儲存極少存取且具有彈性延遲需求的資料最佳化 (以小時為單位) 的離線層。 封存層中的資料至少應儲存 180 天。
Azure 儲存體容量限制設定於帳戶層級,而不是根據存取層來設定。 您可以選擇在單一階層中將容量使用量最大化,或在兩個或更多階層之間散發容量。
注意
只有區塊 Blob 才能設定存取層。 附加和分頁 Blob 不支援這些設定。
線上存取層
當您的資料儲存於線上存取層 (經常性存取層、非經常性存取層或極非經常性存取層) 時,使用者就能立即存取該資料。 經常性存取層是活躍使用中資料的最佳選擇。 非經常性存取層或極非經常性存取層適用於較不常存取,但仍需可供讀取和寫入的資料。
經常性存取層的範例使用案例包括:
- 活躍使用中的資料或您預期的資料將需要頻繁的讀取和寫入。
- 為了進行處理並最終移轉至非經常性存取層而暫存的資料。
非經常性存取層和極非經常性存取層的使用案例包括:
- 短期資料備份和災害復原。
- 不常使用但預期可供立即存取的較舊資料集。
- 需要以符合成本效益的方式儲存的大型資料集,同時正在收集其他資料以進行處理。
若要了解如何將 Blob 移至經常性存取層、非經常性存取層或極非經常性存取層,請參閱設定 Blob 的存取層。
非經常性存取層和極非經常性存取層中資料的可用性略低,但提供與經常性存取層相同的高持久性、擷取延遲和輸送量特性。 對於非經常性存取層或極非經常性存取層中的資料,相較於經常性存取層,略低的可用性和較高的存取成本可能是用以換取降低整體儲存體成本的可接受取捨。 如需詳細資訊,請參閱儲存體 SLA。
如果 Blob 在階層所需的最少天數內遭到刪除、覆寫或移至不同層,則需承受提前刪除的損失。 例如,一般用途 v2 帳戶中非經常性存取層內的 Blob,如果在 30 天內遭到刪除或移至其他層,則需承受提前刪除的損失。 針對極非經常性存取層中的 Blob,如果在 90 天內遭到刪除或移至不同層,則會受到刪除懲罰。 此費用按比例計算。 例如,如果將 Blob 移至非經常性存取層,然後在 21 天後加以刪除,則您需支付相當於在非經常性存取層中儲存該 Blob 9 (30 減去 21) 天的提前刪除費用。 如果整個物件是在指定的時間範圍內透過任何作業重寫 (即,放置 Blob、放置區塊清單或複製 Blob),也會發生提前刪除費用。
注意
在已啟用虛刪除的帳戶中,Blob 會在其遭到刪除且保留期間到期後視為已刪除。 在該期間到期之前,Blob 只是遭到「虛刪除」,不需承受提前刪除的損失。
經常性存取層、非經常性存取層和極非經常性存取層均支援所有備援設定。 如需 Azure 儲存體中資料備援選項的詳細資訊,請參閱 Azure 儲存體備援。
封存存取層
封存層是一個離線層,可用來儲存極少存取的資料。 封存存取層具有最低的儲存體成本。 不過,相較於經常性存取層、非經常性存取層和極非經常性存取層,此層的資料擷取成本較高,且延遲也較高。 封存存取層的範例使用案例包括:
- 長期備份、次要備份和封存資料集
- 即使已處理為最終可用格式,但還是需要保存的原本 (原始) 資料
- 需要長時間儲存且幾乎不曾存取的合規性和封存資料
若要了解如何將 Blob 移至封存層,請參閱封存 Blob。
資料必須保留在封存層中至少 180 天,否則須支付提早刪除費用。 例如,如果將 Blob 移至封存層,然後在 45 天後加以刪除或移至經常性存取層,則您需支付相當於在封存層中儲存該 Blob 135 (180 減去 45) 天的提前刪除費用。
注意
在已啟用虛刪除的帳戶中,Blob 會在其遭到刪除且保留期間到期後視為已刪除。 在該期間到期之前,Blob 只是遭到「虛刪除」,不需承受提前刪除的損失。
當 Blob 位於封存層時,無法加以讀取或修改。 若要讀取或下載封存層中的 Blob,您必須先將其解除凍結至線上層 (經常性存取層、非經常性存取層或極非經常性存取層)。 視您針對解除凍結作業指定的優先順序而定,封存層中的資料最多可能需要 15 小時才能解除凍結。 如需 Blob 解除凍結的詳細資訊,請參閱從封存層將 Blob 解除凍結的概觀。
已封存 Blob 的中繼資料仍可供讀取存取,因此,您可以列出 Blob 及其屬性、中繼資料和索引標記。 封存層中 Blob 的中繼資料是唯讀,而 Blob 索引標籤是可讀取或寫入。 封存 Blob 的中繼資料儲存成本將會依非經常性層費率收費。 封存的 Blob 不支援快照集。
封存層中的 Blob 支援下列作業:
- 複製 Blob
- 刪除 Blob
- 取消刪除 Blob
- 依標籤尋找 Blob
- 取得 Blob 中繼資料
- Get Blob Properties
- 取得 Blob 標籤
- 列出 Blob
- 設定 Blob 標籤
- Set Blob Tier
只有針對 LRS、GRS 或 RA-GRS 設定的儲存體帳戶才支援將 Blob 移至封存層。 ZRS、GZRS 或 RA-GZRS 帳戶不支援封存層。 如需 Azure 儲存體備援設定的詳細資訊,請參閱 Azure 儲存體備援。
若要變更儲存體帳戶的備援設定,而儲存體帳戶在封存層中包含 Blob,您必須先將所有封存的 Blob 解除凍結至經常性存取層、非經常性存取層或極非經常性存取層。 因為解除凍結作業可能會耗費大量成本且耗時,Microsoft 建議您避免變更包含已封存 Blob 的儲存體帳戶備援設定。
只要在將帳戶設定為 LRS 時未將任何 Blob 移至封存層,就支援將儲存體帳戶從 LRS 移轉至 GRS。 如果更新從帳戶變成 LRS 不到 14 天起執行,而且帳戶設定為 LRS 時,不會將 Blob 移至封存層,則可以將帳戶移回 GRS。
預設帳戶存取層設定
儲存體帳戶有一個預設存取層設定,指出新 Blob 建立所在的線上層。 預設存取層設定可以設定為經常性存取層或非經常性存取層。 上傳 Blob 或變更其層級時,使用者可以覆寫個別 Blob 的預設設定。
預設會將新一般用途 v2 儲存體帳戶的預設存取層設定為經常性存取層。 當您建立儲存體帳戶時,或在建立儲存體帳戶之後,您可以變更預設存取層設定。 如果您未在儲存體帳戶上變更此設定,或在上傳 Blob 時未明確設定階層,則預設會將新的 Blob 上傳至經常性存取層。
若 Blob 未明確獲指派任何階層,系統就會從預設帳戶存取層設定推斷其階層。 如果 Blob 的存取層是從預設帳戶存取層設定推斷而來,則 Azure 入口網站會將存取層顯示為 [經常性存取層 (推斷)]、[非經常性存取層 (推斷)] 或 [極非經常性存取 (推斷)]。
變更儲存體帳戶的預設存取層設定,會套用至帳戶中未明確設定存取層的所有 Blob。 如果您在一般用途 v2 帳戶中將預設存取層設定切換至較少存取層,則您需針對已推斷存取層的所有 Blob 支付寫入作業 (每 10,000 個) 的費用。 如果您在一般用途 v2 帳戶中切換至較常存取層,即需支付讀取作業 (每 10,000 個) 和資料擷取 (每 GB) 的費用。
當您建立舊版 Blob 儲存體帳戶時,必須在建立期間,將預設存取層設定指定為經常性存取層或非經常性存取層。 在舊版 Blob 儲存體帳戶中將預設帳戶存取層設定變更為較少存取層,不需要任何費用。 如果您在 Blob 儲存體帳戶中切換至較常存取層,即需支付讀取作業 (每 10,000 個) 和資料擷取 (每 GB) 的費用。 Microsoft 建議盡可能使用一般用途 v2 儲存體帳戶,而非 Blob 儲存體帳戶。
注意
不支援使用封存層作為儲存體帳戶的預設存取層。
設定或變更 Blob 的層級
若要在建立 Blob 時明確設定其層級,請在上傳 Blob 時指定層級。
建立 Blob 之後,您可以使用下列其中一種方式來變更其層級:
直接或透過生命週期管理原則來呼叫設定 Blob 階層作業。 當您將 Blob 的階層從較常存取層變更為較少存取層時,呼叫設定 Blob 層通常是最佳選項。
注意
您無法使用生命週期管理原則,將封存的 Blob 解除凍結至在線上層。
透過呼叫複製 Blob 作業,將 Blob 從某個階層複製到另一個階層。 針對將 Blob 從封存層解除凍結至線上層,或將 Blob 從非經常性存取層或極非經常性存取層移至經常性存取層的多數案例,建議呼叫複製 Blob。 透過複製 Blob,如果尚未經過來源 Blob 的必要儲存間隔,您就可以免除提前刪除的損失。 不過,複製 Blob 會衍生兩個 Blob (來源 Blob 和目的地 Blob) 的容量費用。
將 Blob 的階層從較常存取層變更為較少存取層是即時的,如同從非經常性存取層變更為經常性存取層一樣。 將 Blob 從封存層解除凍結至線上層 (例如經常性存取層、非經常性存取層或極非經常性存取層),最多可能需要 15 小時。
變更 Blob 的階層時,請留意以下要點:
- 您無法在使用加密範圍的 Blob 上呼叫設定 Blob 層。 如需加密範圍的詳細資訊,請參閱 Blob 儲存體的加密範圍。
- 如果將 Blob 明確移至非經常性存取層或極非經常性存取層,然後移至封存層,就會產生提前刪除費用。
Blob 生命週期管理
Blob 儲存體生命週期管理會提供以規則為基礎的原則,可讓您在符合指定條件時,用來將資料轉換至所需的存取層。 您也可以使用生命週期管理,在資料壽命結束時使其過期。 若要深入了解,請參閱透過將 Azure Blob 儲存體存取層自動化來將成本最佳化。
您無法使用生命週期管理原則,將封存的 Blob 解除凍結至在線上層。 儲存於進階區塊 Blob 儲存體帳戶中的資料無法使用設定 Blob 層或使用 Azure Blob 儲存體生命週期管理,來分層至經常性存取層、非經常性存取層、極非經常性存取層或封存層。 若要移動資料,您必須使用 Put Block From URL API 或支援此 API 的 AzCopy 版本,將 Blob 從區塊 Blob 儲存體帳戶同步複製到不同帳戶中的經常性存取層。 Put Block From URL API 會同步複製伺服器上的資料,這表示只有將所有資料從原始伺服器位置移動到目標位置後,才會完成呼叫。
儲存體動作
雖然生命週期管理可協助您在單一帳戶中的各層之間移動資料,但您可以使用儲存體工作跨多個帳戶大規模完成這項工作。 儲存體工作是 [Azure 儲存體動作] 中可用的資源;可用於跨多個儲存體帳戶對數百萬個物件執行一般資料作業的無伺服器架構。 若要深入了解,請參閱什麼是 Azure 儲存體動作?。
存取層選項的摘要
下表摘要說明經常性存取層、非經常性存取層、極非經常性存取層和封存存取層的特徵。
經常性存取層 | 非經常性存取層 | 極非經常性存取層 | 封存層 | |
---|---|---|---|---|
可用性 | 99.9% | 99% | 99% | 99% |
可用性 (RA-GRS 讀取) |
99.99% | 99.9% | 99.9% | 99.9% |
使用費用 | 儲存體成本較高,但存取和交易成本較低 | 儲存體成本較低,但存取和交易成本較高 | 儲存體成本較低,但存取和交易成本較高 | 儲存體成本最低,但存取和交易成本最高 |
最短的建議資料保留期間 | N/A | 30 天1 | 90 天1 | 180 天 |
延遲 (距第一位元組時間) |
毫秒 | 毫秒 | 毫秒 | 小時2 |
支援的備援設定 | 全部 | 全部 | 全部 | 僅限 LRS、GRS 和 RA-GRS3 |
1 在一般用途 v2 帳戶的非經常性存取層中,物件的最短保留期間為 30 天。 在一般用途 v2 帳戶的非經常性存取層中,物件的最短保留期間為 90 天。 針對 Blob 儲存體帳戶,非經常性存取層或極非經常性存取層沒有最短的保留期間。
2 從封存層解除凍結 Blob 時,您可以選擇標準或高解除凍結優先順序選項。 每個選項均都提供不同的擷取延遲和成本。 如需詳細資訊,請參閱將 Blob 從封存層解除凍結的概觀。
3 如需 Azure 儲存體中解除凍結設定的詳細資訊,請參閱 Azure 儲存體備援。
定價和帳務
所有儲存體帳戶都會使用以 Blob 階層為基礎的區塊 Blob 儲存體的定價模型。 請記住下列各節所述的帳單考量。
如需區塊 Blob 定價的詳細資訊,請參閱區塊 Blob 定價。
儲存體容量成本
除了儲存的資料量以外,儲存資料的成本會因存取層而異。 每 GB 的容量成本會隨著該階層存取頻率降低而減少。
資料存取成本
存取層存取的次數越少,資料存取的費用就越高。 對於非經常性儲存層、極非經常性存取層和封存存取層中的資料,您需要針對讀取支付每 GB 資料存取費用。
交易成本
每個交易的費用會套用至所有層級,並隨著層級的存取頻率降低而增加。
異地複寫資料傳輸成本
此費用適用於已設定異地複寫的帳戶,包括 GRS、RA-GRS 和 GZRS。 異地複寫資料傳輸會產生依 GB 數計算的費用。
輸出資料傳輸成本
輸出資料傳輸 (從 Azure 區域傳出的資料) 會針對每 GB 的頻寬使用量產生帳單。 如需輸出資料傳輸費用的詳細資訊,請參閱頻寬定價詳細資料頁面。
變更預設帳戶存取層
變更帳戶存取層會針對尚未明確設定階層的所有 Blob,產生層級變更費用。 如需詳細資訊,請參閱下一節:變更 Blob 的存取層。
變更 Blob 的存取層
變更 Blob 的層級時,請記住下列計費影響:
- 當 Blob 在階層之間上傳或移動時,會根據上傳或階層變更立即依相對的費率來收費。
- 將 Blob 移至存取頻率較低的階層時,此作業會在寫入目的地階層時計費,且適用目的地階層的寫入作業 (每 10,000 個) 和資料寫入 (每 GB) 費用。
- 當 Blob 移至存取頻率較高的階層時,此作業會在從來源階層讀取時計費,且適用來源階層的讀取作業 (每 10,000 個) 和資料擷取 (每 GB) 費用。 針對任何已移出非經常性存取、極非經常性存取層或封存層的 Blob,提前刪除費用可能也適用。
- 從封存層解除凍結 Blob 時,該 Blob 的資料會以已封存資料的形式計費,直到資料還原且 Blob 的階層變更為經常性存取層、非經常性存取層或極非經常性存取層為止。
下表摘要說明層級變更的計費方式:
寫入費用 (作業 + 存取) | 讀取費用 (作業 + 存取) |
---|---|
經常性至非經常性 經常性存取層至極非經常性存取層 經常性至封存 非經常性儲存層至極非經常性存取層 非經常性至封存 極非經常性存取層至封存層 |
封存層至極非經常性存取層 封存層至非經常性存取層 封存層至經常性存取層 極非經常性存取層至非經常性存取層 極非經常性存取層至經常性存取層 非經常性存取層至經常性存取層 |
在啟用版本設定時變更 Blob 的存取層,或者如果 Blob 有快照集,可能會產生更多的費用。 如需啟用版本設定的 Blob 相關資訊,請參閱 Blob 版本設定文件中的價格和計費。 如需具有快照集的 Blob 相關資訊,請參閱 Blob 快照集文件中的價格和計費。
非經常性存取層
極非經常性存取層需要下列最低版本的 REST、SDK 和工具
Environment | 最小版本 |
---|---|
REST API | 2021-21-02 |
.NET | 12.15.0 |
Java | 12.21.0 |
Python | 12.15.0 |
JavaScript | 12.13.0 |
PowerShell (Az.Storage) | 5.8.0 |
Azure CLI | 2.50.0 |
AzCopy | 10.18.1 |
Azure 儲存體總管 | 1.29.0 |
功能支援
啟用 Data Lake Storage Gen2、網路檔案系統 (NFS) 3.0 通訊協定,或 SSH 檔案傳輸通訊協定 (SFTP),可能會影響到此功能的支援。 如果您已啟用上述任何功能,請參閱 Azure 儲存體帳戶中的 Blob 儲存體功能支援,以評估此功能的支援。