如何刪除物件
由於S3儲存區生命週期到期或ILM原則要求到期、因此可直接回應用戶端要求或自動刪除物件。StorageGRID瞭解可刪除物件的不同方式、StorageGRID 以及如何處理刪除要求、有助於您更有效地管理物件。
使用下列兩種方法之一刪除物件:StorageGRID
-
同步刪除:StorageGRID 當物件接收到用戶端刪除要求時、會立即移除所有物件複本。用戶端會被告知刪除作業在複本移除之後成功。
-
物件會排入刪除佇列:StorageGRID 當收到刪除要求時、物件會排入刪除佇列、並立即通知用戶端刪除作業已成功。物件複本稍後會透過背景ILM處理移除。
刪除物件時StorageGRID 、利用最佳化刪除效能、最小化可能刪除的待處理項目、以及最快釋出空間的方法、來刪除物件。
下表摘要說明StorageGRID 各個方法的使用時機。
執行刪除的方法 | 使用時 |
---|---|
物件會排入佇列以供刪除 |
當下列*任一*條件為真時:
|
立即移除物件(同步刪除) |
當S3或Swift用戶端提出刪除要求、並符合*全部*下列條件時:
|
當 S3 或 Swift 用戶端提出刪除要求時、 StorageGRID 會先將物件新增至刪除佇列。然後切換至執行同步刪除。確保後臺刪除佇列有要處理的物件、StorageGRID 讓處理器能夠更有效率地處理刪除作業、特別是對於低並行用戶端、同時防止用戶端刪除待處理記錄。
刪除物件所需的時間
物件的刪除方式StorageGRID 可能會影響系統的執行方式:
-
執行同步刪除時、最多需要30秒才能將結果傳回給用戶端。StorageGRID StorageGRID這表示刪除的速度似乎較慢、即使複本實際移除速度比StorageGRID 將物件排入佇列以供刪除時更快。
-
如果您在大量刪除期間密切監控刪除效能、可能會注意到刪除某些物件之後、刪除率似乎會變慢。當從佇列物件移至執行同步刪除時、就會發生此變更StorageGRID 。刪除率明顯降低、並不代表物件複本移除速度較慢。相反地、這表示平均而言、空間現在可以更快釋出。
如果您要刪除大量物件、而且優先要快速釋放空間、請考慮使用用戶端要求來刪除物件、而非使用ILM或其他方法來刪除物件。一般而言、當用戶端執行刪除作業時、空間會更快釋出、因為StorageGRID 使用同步刪除功能時、會有更多空間。
刪除物件之後、可用空間所需的時間取決於下列幾個因素:
-
物件複本是同步移除、還是排入佇列稍後移除(適用於用戶端刪除要求)。
-
其他因素、例如當物件複本排入移除佇列時、網格中的物件數目或網格資源的可用度(適用於用戶端刪除和其他方法)。
如何刪除S3版本控制物件
啟用S3儲存區的版本管理時、StorageGRID 無論是來自S3用戶端、S3儲存區生命週期到期、或ILM原則需求、均會遵循Amazon S3回應刪除要求的行為。
物件版本化時、物件刪除要求不會刪除物件的目前版本、也不會釋放空間。相反地、物件刪除要求會建立零位元組刪除標記、做為物件的目前版本、使物件的舊版「非目前」。 當物件刪除標記是目前版本且沒有非目前版本時、它會變成過期的物件刪除標記。
即使物件尚未移除、StorageGRID 但功能上的功能仍然如同物件的目前版本已無法使用。對該物件的要求會傳回404 NotFound.但是、由於非目前物件資料尚未移除、因此指定物件非目前版本的要求可能會成功。
若要在刪除版本化物件時釋放空間、或移除刪除標記、請使用下列其中一項:
-
*S3 用戶端要求 * :在 S3 刪除物件要求中指定物件版本 ID (
DELETE /object?versionId=ID
)。請記住、此要求只會移除指定版本的物件複本(其他版本仍佔用空間)。 -
生命週期:使用
NoncurrentVersionExpiration
在儲存庫生命週期組態中採取行動。當符合指定的NoncurrentDays數量時、StorageGRID 不同時更新的物件版本會永久移除所有複本。這些物件版本無法還原。。
NewerNoncurrentVersions
貯體生命週期組態中的動作會指定保留在版本化 S3 儲存區中的非目前版本數。如果非最新版本多於NewerNoncurrentVersions
指定 StorageGRID 會在非目前日期天數值結束時移除舊版。。NewerNoncurrentVersions
臨界值會覆寫 ILM 所提供的生命週期規則、這表示非目前物件的版本在中NewerNoncurrentVersions
如果 ILM 要求刪除臨界值、則會保留臨界值。若要移除過期的物件刪除標記、請使用
Expiration
使用下列其中一個標記執行動作:ExpiredObjectDeleteMarker
、Days`或 `Date
。 -
* ILM *: "複製作用中原則" 並在新原則中新增兩個 ILM 規則:
-
第一條規則:使用「非目前時間」做為參考時間、以符合物件的非目前版本。在中 "建立 ILM 規則精靈的步驟 1 (輸入詳細資料)"、請針對「僅將此規則套用至舊版物件版本(在啟用版本設定的 S3 儲存區中)?」問題選取 * 是 * 。
-
第二條規則:使用 * 擷取時間 * 來符合目前版本。「非目前時間」規則必須出現在 * 擷取時間 * 規則上方的原則中。
ILM 無法用於移除目前的物件刪除標記。使用 S3 用戶端要求或 S3 Bucket 生命週期來移除目前的物件刪除標記。
-
-
* 刪除貯體中的物件 * :請使用租戶管理員 "刪除所有物件版本"包括刪除貯體中的標記。
刪除版本化物件時、 StorageGRID 會建立零位元組刪除標記、做為物件的目前版本。必須先移除所有物件和刪除標記、才能刪除版本化的儲存庫。
-
刪除在 StorageGRID 11.7 或更早版本中建立的標記只能透過 S3 用戶端要求移除、但不能由 ILM 、貯體生命週期規則或刪除貯體作業中的物件移除。
-
從在 StorageGRID 11.8 或更新版本中建立的貯體中刪除標記、可由 ILM 、貯體生命週期規則、貯體作業中的刪除物件、或明確刪除 S3 用戶端。StorageGRID 11.8 或更新版本中過期的刪除標記必須由儲存庫生命週期規則或明確的 S3 用戶端要求移除、並指定版本 ID 。
-