Blob 的虛刪除

Blob 虛刪除可保護個別 Blob、快照集或版本免於意外刪除或遭到覆寫,做法是維護系統中已刪除的資料一段指定的時間。 在保留期限內,您可以將虛刪除的物件還原至該物件遭到刪除時的狀態。 而在保留期間到期之後,就會將該物件永久刪除。

Blob 虛刪除是 Blob 資料的完整資料保護策略的一部分。 為了提供 Blob 資料最佳保護,Microsoft 建議啟用下列所有資料保護功能:

  • 容器虛刪除,以還原已遭到刪除的容器。 若要了解如何啟用容器虛刪除,請參閱啟用及管理容器虛刪除
  • Blob 版本設定,以自動維護舊版的 Blob。 啟用 Blob 版本設定時,您可以還原舊版的 Blob 來復原資料 (如果資料遭到不當修改或刪除)。 若要了解如何啟用 Blob 版本設定,請參閱啟用和管理 Blob 版本設定
  • Blob 虛刪除,以還原已刪除的 Blob、快照集或版本。 若要了解如何啟用 Blob 虛刪除,請參閱啟用及管理 Blob 虛刪除

若要深入了解 Microsoft 的資料保護建議,請參閱資料保護概觀

警告

啟用儲存體帳戶的 Blob 版本設定之後,該帳戶中 Blob 的每個寫入作業都會導致建立新版本。 基於這個原因,啟用 Blob 版本設定可能會導致額外成本。 若要將成本降到最低,請使用生命週期管理原則來自動刪除舊版本。 如需生命週期管理的詳細資訊,請參閱藉由自動化 Azure Blob 儲存體存取層將成本最佳化

Blob 虛刪除的運作方式

當您在儲存體帳戶中啟用 Blob 虛刪除時,請指定已刪除物件的保留期限,可用範圍為 1 到 365 天。 保留期限表示資料在遭到刪除或覆寫之後,仍可提供使用的時間長度。 只要物件遭到刪除或覆寫,保留期限即開始計時。

當保留期限為使用中狀態時,您可以藉由呼叫取消刪除 blob 作業來還原已刪除的 blob 及其快照集,或已刪除的版本。 下圖顯示啟用 blob 虛刪除時,如何還原已刪除的物件:

Diagram showing how a soft-deleted blob may be restored

您可以隨時變更虛刪除保留期限。 更新的保留期限僅適用於保留期限變更後所刪除的資料。 任何在保留期限變更之前刪除的資料,都會受限於該物件刪除時生效的保留期限。

嘗試刪除遭到虛刪除的物件,並不會影響其到期時間。

如果您停用 blob 虛刪除,您可以在儲存體帳戶中繼續存取和復原虛刪除的物件,直到虛刪除保留期限期滿為止。

Blob 版本設定適用於一般用途 v2、區塊 blob 和 Blob 儲存體帳戶。 目前不支援具有階層命名空間的儲存體帳戶。

版本 2017-07-29 和更高版本的 Azure 儲存體 REST API 支援 blob 虛刪除。

重要

您只能使用 blob 虛刪除來還原個別 blob、快照集、目錄 (位於階層命名空間) 或版本。 若要還原容器及其內容,您還必須在儲存體帳戶中啟用容器虛刪除。 Microsoft 建議啟用容器虛刪除和 blob 版本設定以及 blob 虛刪除,以確保提供完整的 blob 資料保護。 如需詳細資訊,請參閱資料保護概觀

Blob 虛刪除無法防止刪除儲存體帳戶。 若要防止刪除儲存體帳戶,請在儲存體帳戶資源上設定鎖定。 如需有關鎖定儲存體帳戶的詳細資訊,請參閱將 Azure Resource Manager 鎖定套用至儲存體帳戶

啟用虛刪除時如何處理刪除

啟用 blob 虛刪除時,刪除 blob 會將該 blob 標示為虛刪除。 未建立任何快照集。 當保留期限到期時,即會永久刪除遭到虛刪除的 blob。 在具有階層命名空間的帳戶中,Blob 的存取控制清單不會受到影響,如果 Blob 已還原,則會保持不變。

如果 blob 有快照集,則除非同時刪除快照集,否則無法刪除 blob。 當您刪除 blob 及其快照集時,blob 和快照集都會標示為虛刪除。 不會建立任何新的快照集。

您也可以刪除一或多個使用中的快照集,而不刪除基底 blob。 在此情況下,快照集會遭到虛刪除。

如果在已啟用階層命名空間功能的帳戶中刪除目錄,該目錄及其所有內容都會標示為虛刪除。 只能存取虛刪除的目錄。 為了存取虛刪除的目錄內容,必須先取消刪除已遭到虛刪除的目錄。

除非明確顯示或列出虛刪除的物件,否則不會顯示這些物件。 如需如何列出虛刪除的物件相關詳細資訊,請參閱管理和還原虛刪除的 blob

啟用虛刪除時如何處理覆寫

重要

本節不適用於具有階層命名空間的帳戶。

呼叫運算 (例如放置 Blob放置 Block 清單複製 Blob) 會覆寫 blob 中的資料。 啟用 blob 虛刪除時,覆寫 blob 即會自動在寫入作業之前建立 blob 狀態的虛刪除快照集。 當保留期限到期時,即會永久刪除遭到虛刪除的快照集。 系統執行以建立快照集的作業不會出現在 Azure 監視器資源記錄或儲存體分析記錄中。

除非已明確顯示或列出虛刪除的快照集,否則不會顯示這些快照集。 如需如何列出虛刪除的物件相關詳細資訊,請參閱管理和還原虛刪除的 blob

若要保護複製作業,必須啟用目的地儲存體帳戶的 blob 虛刪除。

Blob 虛刪除無法防止作業寫入 blob 中繼資料或屬性。 當 blob 的中繼資料或屬性更新時,不會建立虛刪除的快照集。

Blob 虛刪除不會為封存層中的 Blob 提供覆寫保護。 如果以任何層中的新 blob 覆寫封存層中的 Blob,即會永久刪除遭到覆寫的 Blob。

針對進階儲存體帳戶,虛刪除的快照集不會計入每個 blob 100 個快照集的限制。

還原虛刪除的物件

您可以在保留期限內呼叫取消刪除 Blob 作業,還原遭到虛刪除的 blob 或目錄 (在階層命名空間中)。 取消刪除 Blob 作業會還原 blob 及任何遭到虛刪除的相關聯快照集。 系統會還原在保留期間內刪除的任何快照集。 在具有階層命名空間的帳戶中,Blob 的存取控制清單會連同 Blob 一起還原。

在具有階層命名空間的帳戶中,取消刪除 Blob 作業也可以用來還原虛刪除的目錄及其所有內容。 如果您重新命名含有虛刪除 Blob 的目錄,則這些虛刪除的 Blob 將會與目錄中斷連線。 如果您想要還原這些 blob,您必須將目錄的名稱還原回其原始名稱,或建立使用原始目錄名稱的不同目錄。 否則,當您嘗試還原這些虛刪除的 Blob 時,將會收到錯誤。 您也無法將目錄或 blob 還原至含有同名目錄或 blob 的檔案路徑。 例如,如果您刪除 a.txt (1) 並上傳名稱也是 a.txt (2) 的新檔案,您就無法還原虛刪除的 a.txt (1),直到您刪除或重新命名使用中的 a.txt (2) 為止。 在取消刪除目錄之前,您無法存取虛刪除的目錄內容。

在沒有遭到虛刪除的 blob 上呼叫取消刪除 Blob,將會還原與該 blob 相關聯的任何虛刪除快照集。 如果 blob 沒有任何快照集且未遭到虛刪除,則呼叫取消刪除 blob 不會有任何作用。

若要將虛刪除的快照集升階到基底 blob,請先在基底 blob 上呼叫取消刪除 blob,以還原 blob 及其快照集。 接下來,將所需的快照集複製到基底 blob 上。 您也可以將快照集複製到新的 Blob。

在還原物件之前,無法讀取虛刪除的 blob 或快照集中的資料。

如需如何還原虛刪除的物件相關詳細資訊,請參閱管理和還原虛刪除的 blob

Blob 虛刪除和版本設定

重要

具有階層命名空間的帳戶不支援版本設定。

如果儲存體帳戶同時啟用 Blob 版本設定和 Blob 虛刪除,則覆寫 Blob 會自動建立新的版本,以反映寫入作業前的 Blob 狀態。 新版本不會遭到虛刪除,且不會在虛刪除保留期限到期時移除。 不會建立任何虛刪除的快照集。

如果同時為儲存體帳戶啟用了 Blob 版本設定和 Blob 虛刪除,則當您刪除 Blob 時,該 Blob 目前的版本就會成為舊版,而不再有目前版本。 不會建立新的版本,而且不會建立虛刪除的快照集。 所有先前的版本都會保留,直到使用直接刪除作業或透過生命週期管理原則明確刪除為止。

同時啟用虛刪除和版本控制,可保護先前的 Blob 版本以及目前的版本免於刪除。 啟用虛刪除時,明確刪除舊版會建立虛刪除的版本,該版本會保留到虛刪除保留期間期滿為止。 虛刪除保留期間期滿之後,即會永久刪除虛刪除的 Blob 版本。

您可以在虛刪除保留期間,使用 [取消刪除 Blob] 作業來還原虛刪除的版本。 取消刪除 Blob 作業一律會還原所有遭到虛刪除的 Blob 版本。 您無法只還原單一虛刪除版本。

注意

啟用版本設定時,對已刪除的 blob 呼叫取消刪除 blob 作業會還原任何虛刪除的版本或快照集,但不會還原目前的版本。 若要還原目前的版本,請將先前的版本複製到目前的版本,藉此升階。

Microsoft 建議您在儲存體帳戶中啟用版本設定和 blob 虛刪除,以獲得最佳資料保護。 如需同時使用 blob 版本設定和虛刪除的詳細資訊,請參閱 Blob 版本設定和虛刪除

Blob 虛刪除提供的作業保護

下表說明啟用 blob 虛刪除時 (不論是否啟用 blob 版本設定) 刪除和寫入作業的預期行為。

儲存體帳戶 (無階層命名空間)

REST API 操作 已啟用虛刪除 已啟用虛刪除和版本設定
刪除儲存體帳戶 沒有變更。 已刪除帳戶中的容器和 Blob 無法復原。 沒有變更。 已刪除帳戶中的容器和 Blob 無法復原。
刪除容器 沒有變更。 已刪除容器中的 Blob 無法復原。 沒有變更。 已刪除容器中的 Blob 無法復原。
刪除 Blob 如果用來刪除 Blob,該 Blob 將會標示為已虛刪除。

如果用來刪除 blob 快照集,該快照集會標示為已虛刪除。
如果用來刪除 blob,則目前的版本會變成舊版本,並刪除目前的版本。 不會建立新的版本,而且不會建立虛刪除的快照集。

如果用來刪除 blob 版本,此版本會標示為已虛刪除。
取消刪除 Blob 還原在保留期限內刪除的 blob 和任何快照集。 還原在保留期限內刪除的 blob 和任何版本。
Put Blob \(英文\)
放置區塊清單
複製 Blob
從 URL 複製 Blob
如果在使用中的 blob 上發出呼叫,則會還原至自動產生該作業之前的 blob 狀態快照集。

如果在虛刪除的 blob 上發出呼叫,則只有在由相同類型的 blob 所取代的情況下,才會產生 blob 先前狀態的快照集。 如果 Blob 的類型不同,則會永久刪除所有現有虛刪除的資料。
自動產生該作業之前擷取 Blob 狀態的新版本。
放置區塊 如果用來向使用中的 Blob 認可區塊,則不會有任何變更。

如果用來向虛刪除的 Blob 認可區塊,則會建立新的 Blob 並自動產生快照集,以擷取虛刪除的 Blob 狀態。
沒有變更。
放置頁面
從 URL 放置頁面 (機器翻譯)
沒有變更。 使用此作業覆寫或清除的分頁 Blob 資料並不會儲存,且無法復原。 沒有變更。 使用此作業覆寫或清除的分頁 Blob 資料並不會儲存,且無法復原。
附加區塊
從 URL 附加區塊 (機器翻譯)
沒有變更。 沒有變更。
Set Blob Properties \(英文\) 沒有變更。 覆寫的 Blob 屬性無法復原。 沒有變更。 覆寫的 Blob 屬性無法復原。
設定 Blob 中繼資料 沒有變更。 覆寫的 Blob 中繼資料無法復原。 自動產生該作業之前擷取 Blob 狀態的新版本。
Set Blob Tier 基底 Blob 會移至新的層。 任何使用中或虛刪除的快照集都會保留在原始層中。 未建立虛刪除的快照集。 基底 Blob 會移至新的層。 任何使用中或虛刪除的版本都會保留在原始層中。 不會建立新的版本。

儲存體帳戶 (階層命名空間)

REST API 作業 已啟用虛刪除
路徑 - 刪除 會建立虛刪除的 Blob 或目錄。 虛刪除的物件會在保留期間之後遭到刪除。
刪除 Blob 會建立虛刪除的物件。 虛刪除的物件會在保留期間之後遭到刪除。 具有快照集的 Blob 和快照集不支援虛刪除。
路徑 - 建立可重新命名 Blob 或目錄 現有的目的地 Blob 或空目錄將會遭到虛刪除,並由來源取代。 虛刪除的物件會在保留期間之後遭到刪除。
設定 Blob 到期,為現有 Blob 設定到期日 不會建立虛刪除的 Blob。 過期的 Blob 在到期時不會變成虛刪除的 Blob。

功能支援

啟用 Data Lake Storage Gen2、網路檔案系統 (NFS) 3.0 通訊協定,或 SSH 檔案傳輸通訊協定 (SFTP),可能會影響到此功能的支援。 如果您已啟用上述任何功能,請參閱 Azure 儲存體帳戶中的 Blob 儲存體功能支援,以評估此功能的支援。

在沒有階層命名空間的儲存體帳戶上使用 Data Lake Storage Gen2 API 上傳的 Blob 不支援虛刪除。

定價和帳務

所有虛刪除的資料都會比照作用中資料的相同費率計費。 對於在保留期間期滿後永久刪除的資料,您不需要付費。

當您啟用虛刪除時,Microsoft 建議使用短保留期限,以便進一步瞭解此功能將對您帳單的影響。 建議的最小保留期限為七天。

針對經常覆寫的資料啟用虛刪除,可能會導致儲存體容量費用增加,並在列出 Blob 時增加延遲。 您可以將經常覆寫的資料儲存在停用虛刪除的個別儲存體帳戶,藉此減輕這項額外的成本和延遲。

覆寫或刪除 Blob 時,不會向您收取自動產生快照集或版本的相關交易費用。 您需按照寫入作業的交易率,支付呼叫取消刪除 Blob 作業的費用。

如需有關 Blob 儲存體價格的詳細資訊,請參閱 Blob 儲存體定價頁面。

Blob 虛刪除和虛擬機器磁碟

Blob 虛刪除適用於進階和標準非受控磁碟,也就是分頁 Blob。 虛刪除可協助您只復原刪除 Blob放置 Blob放置區塊清單複製 Blob 作業所刪除或覆寫的資料。

呼叫放置頁面所覆寫的資料無法復原。 Azure 虛擬機器使用放置頁面呼叫來寫入非受控磁碟,因此不支援使用虛刪除來復原從 Azure VM 到非受控磁碟的寫入。

下一步