如何刪除對象
StorageGRID可以直接回應用戶端要求刪除對象,也可以因為 S3 儲存桶生命週期到期或 ILM 政策的要求而自動刪除對象。了解刪除物件的不同方式以及StorageGRID如何處理刪除請求可以幫助您更有效地管理物件。
StorageGRID可以使用以下兩種方法之一來刪除物件:
-
同步刪除:當StorageGRID收到客戶端刪除請求時,所有物件副本都會立即被刪除。刪除副本後,客戶端會收到刪除成功通知。
-
物件排隊等待刪除:當StorageGRID收到刪除請求時,物件將排隊等待刪除,並立即通知客戶端刪除已成功。物件副本稍後會被後台 ILM 處理刪除。
刪除物件時, StorageGRID使用最佳化刪除效能、最大限度地減少潛在刪除積壓並最快釋放空間的方法。
表總結了StorageGRID使用每種方法的時間。
| 執行刪除的方法 | 使用時 |
|---|---|
物件正在排隊等待刪除 |
當下列任何條件成立時:
|
物件立即刪除(同步刪除) |
當 S3 用戶端發出刪除請求並且滿足以下所有條件時:
|
當 S3 用戶端發出刪除請求時, StorageGRID首先將物件新增至刪除佇列。然後它切換到執行同步刪除。確保後台刪除佇列有要處理的對象,可以讓StorageGRID更有效地處理刪除,特別是對於低並發客戶端,同時有助於防止客戶端刪除積壓。
刪除物件所需的時間
StorageGRID刪除物件的方式可能會影響系統的執行方式:
-
當StorageGRID執行同步刪除時, StorageGRID可能需要長達 30 秒才能將結果傳回給客戶端。這意味著刪除過程似乎進行得更慢,儘管實際上刪除副本的速度比StorageGRID將物件排隊等待刪除時的速度更快。
-
如果您在批量刪除期間密切監視刪除效能,您可能會注意到在刪除一定數量的物件後刪除速度似乎很慢。當StorageGRID從排隊物件刪除轉變為執行同步刪除時,就會發生這種變化。刪除率的明顯降低並不意味著物件副本的刪除速度變慢。相反,這表明平均而言,空間現在正在更快地釋放。
如果您要刪除大量物件並且您的首要任務是快速釋放空間,請考慮使用用戶端請求來刪除對象,而不是使用 ILM 或其他方法刪除它們。一般來說,當客戶端執行刪除時,空間會更快釋放,因為StorageGRID可以使用同步刪除。
刪除物件後釋放空間所需的時間取決於以下幾個因素:
-
物件副本是否同步刪除或排隊等待稍後刪除(對於客戶端刪除請求)。
-
其他因素,例如網格中的物件數量或物件副本排隊等待刪除時網格資源的可用性(對於客戶端刪除和其他方法)。
如何刪除 S3 版本控制對象
當為 S3 儲存桶啟用版本控制時, StorageGRID在回應刪除要求時會遵循 Amazon S3 行為,無論這些要求來自 S3 用戶端、S3 儲存桶生命週期的到期還是 ILM 原則的要求。
當物件被版本化時,物件刪除請求不會刪除物件的目前版本,也不會釋放空間。相反,物件刪除請求會建立一個零位元組刪除標記作為物件的當前版本,這使得物件的先前版本成為「非當前」版本。當物件刪除標記是目前版本且沒有非目前版本時,該物件刪除標記將成為過期物件刪除標記。
即使該物件尚未被刪除, StorageGRID 的行為也會像該物件的目前版本不再可用一樣。對該物件的請求傳回 404 NotFound。但是,由於非目前物件資料尚未被刪除,因此指定物件的非目前版本的請求可以成功。
若要在刪除版本控制物件時釋放空間,或移除刪除標記,請使用下列方法之一:
-
S3 用戶端請求:在 S3 DELETE 物件請求中指定物件版本 ID(
DELETE /object?versionId=ID)。請記住,此請求僅刪除指定版本的物件副本(其他版本仍佔用空間)。 -
Bucket 生命週期:使用 `NoncurrentVersionExpiration`儲存桶生命週期配置中的操作。當達到指定的 NoncurrentDays 數時, StorageGRID將永久刪除所有非目前物件版本的副本。這些物件版本無法復原。
這 `NewerNoncurrentVersions`儲存桶生命週期配置中的操作指定了版本化 S3 儲存桶中保留的非目前版本的數量。如果非目前版本的數量超過 `NewerNoncurrentVersions`指定,當 NoncurrentDays 值過去後, StorageGRID會刪除舊版。這 `NewerNoncurrentVersions`閾值覆蓋了 ILM 提供的生命週期規則,這意味著版本在 `NewerNoncurrentVersions`如果 ILM 請求刪除,則閾值會被保留。
若要刪除過期的物件刪除標記,請使用
Expiration`帶有以下標籤之一的操作: `ExpiredObjectDeleteMarker,Days, 或者Date。 -
工業光魔(ILM):"克隆活動策略"並為新策略新增兩個 ILM 規則:
-
第一條規則:使用「非當前時間」作為參考時間來匹配物件的非當前版本。在"建立 ILM 規則精靈的第 1 步(輸入詳細資訊)",針對問題「僅將此規則套用至較舊的物件版本(在啟用了版本控制的 S3 儲存桶中)?」選擇*是*
-
第二條規則:使用*攝取時間*來符合目前版本。 「非目前時間」規則必須出現在*攝取時間*規則上方的策略中。
若要刪除過期的物件刪除標記,請使用*攝取時間*規則來符合目前刪除標記。只有在經過*天*的*時間段*且目前刪除標記已過期(沒有非目前版本)時,才會刪除刪除標記。
-
-
刪除儲存桶中的物件:使用租用戶管理器"刪除所有物件版本",包括刪除標記,來自儲存桶。
當一個版本化物件被刪除時, StorageGRID會建立一個零位元組刪除標記作為該物件的目前版本。必須先刪除所有物件和刪除標記,然後才能刪除版本化儲存桶。
-
在StorageGRID 11.7 或更早版本中建立的刪除標記只能透過 S3 用戶端要求刪除,而無法透過 ILM、儲存桶生命週期規則或儲存桶操作中的刪除物件刪除。
-
可以透過 ILM、儲存桶生命週期規則、儲存桶操作中的刪除物件或明確 S3 用戶端刪除來刪除在StorageGRID 11.8 或更高版本中建立的儲存桶中的刪除標記。