StorageGRID 中的儲存桶生命週期
您可以建立S3生命週期組態、以控制何時從StorageGRID 作業系統刪除特定物件。
什麼是生命週期配置
生命週期組態是套用至特定S3儲存區中物件的一組規則。每個規則都會指定受影響的物件、以及這些物件何時到期(在特定日期或幾天之後)。
每個物件都遵循 S3 儲存區生命週期或 ILM 原則的保留設定。當 S3 貯體生命週期設定完成時、生命週期到期動作會覆寫符合貯體生命週期篩選器之物件的 ILM 原則。不符合貯體生命週期篩選器的物件、會使用 ILM 原則的保留設定。如果物件符合貯體生命週期篩選器、且未明確指定到期動作、則不會使用 ILM 原則的保留設定、而且會暗示物件版本會永遠保留。
因此、即使ILM規則中的放置指示仍套用至物件、也可能從網格中移除物件。或者,即使物件的任何 ILM 放置指令已經失效,物件仍可能保留在網格上
在生命週期組態中、支援多達1、000個生命週期規則。StorageGRID每個規則可包含下列XML元素:
-
過期:在達到指定日期或達到指定天數時刪除物件、從擷取物件開始算起。
-
非目前版本過期:在達到指定天數時刪除物件、從物件變成非目前的開始算起。
-
篩選器(前置、標記)
-
狀態 *ID
支援使用下列庫位作業來管理生命週期組態:StorageGRID
-
刪除 BucketLifecycle
-
GetBucketLifecycleConfiguration
-
PuttBucketLifecycleConfiguration
生命週期策略的結構
建立生命週期組態的第一步、就是建立一個包含一或多個規則的Json檔案。例如、此Json檔案包含三個規則、如下所示:
-
規則 1 僅適用於與前綴 category1/ 相符且 key2 值為 tag2 的物件。 Expiration參數指定與該篩選條件相符的物件將於 2020 年 8 月 22 日午夜到期。
-
規則 2 僅適用於與前綴 category2/ 相符的物件。 Expiration參數指定與篩選器相符的物件將在提取後 100 天過期。
指定天數的規則是相對於擷取物件的時間。如果目前日期超過擷取日期加上天數、則在套用生命週期組態後、部分物件可能會立即從儲存庫中移除。 -
規則 3 僅適用於與前綴 category3/ 相符的物件。 Expiration參數指定符合物件的任何非目前版本將在變為非目前版本後 50 天過期。
{
"Rules": [
{
"ID": "rule1",
"Filter": {
"And": {
"Prefix": "category1/",
"Tags": [
{
"Key": "key2",
"Value": "tag2"
}
]
}
},
"Expiration": {
"Date": "2020-08-22T00:00:00Z"
},
"Status": "Enabled"
},
{
"ID": "rule2",
"Filter": {
"Prefix": "category2/"
},
"Expiration": {
"Days": 100
},
"Status": "Enabled"
},
{
"ID": "rule3",
"Filter": {
"Prefix": "category3/"
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 50
},
"Status": "Enabled"
}
]
}
將生命週期組態套用至貯體
建立生命週期組態檔案之後、您可以發出 PuttBucketLifecycleConfiguration 要求、將其套用至儲存庫。
此要求會將範例檔案中的生命週期組態套用至名為的貯體中的物件 testbucket
。
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
若要驗證已成功將生命週期組態套用至貯體、請發出 GetBucketLifecycleConfiguration 要求。例如:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
標準(非版本化)儲存桶的生命週期策略範例
90 天後刪除對象
用例:此策略非常適合管理僅在有限時間內相關的數據,例如臨時文件、日誌或中間處理數據。優點:降低儲存成本並確保儲存桶整潔有序。
{
"Rules": [
{
"ID": "Delete after 90 day rule",
"Filter": {},
"Status": "Enabled",
"Expiration": {
"Days": 90
}
}
]
}
版本控制儲存桶的生命週期策略範例
10 天後刪除非目前版本
使用案例:此策略有助於管理非當前版本物件的存儲,這些物件會隨著時間的推移而累積並佔用大量空間。優勢:透過僅保留最新版本來優化儲存空間利用率。
{
"Rules": [
{
"ID": "NoncurrentVersionExpiration 10 day rule",
"Filter": {},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 10
}
}
]
}
保留 5 個非目前版本
使用案例:當您想要保留有限數量的先前版本以用於恢復或審計目的時很有用。好處:保留足夠的非當前版本以確保足夠的歷史記錄和復原點。
{
"Rules": [
{
"ID": "NewerNoncurrentVersions 5 version rule",
"Filter": {},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NewerNoncurrentVersions": 5
}
}
]
}
當不存在其他版本時移除刪除標記
使用案例:此策略有助於管理所有非目前版本刪除後留下的刪除標記,這些標記會隨著時間的推移而累積。好處:減少不必要的混亂。
{
"Rules": [
{
"ID": "Delete marker cleanup rule",
"Filter": {},
"Status": "Enabled",
"Expiration": {
"ExpiredObjectDeleteMarker": true
}
}
]
}
30 天後刪除目前版本,60 天後刪除非目前版本,一旦不存在其他版本,則刪除目前版本所建立的刪除標記。
使用案例:為目前版本和非目前版本提供完整的生命週期,包括刪除標記。優點:降低儲存成本,確保儲存桶整潔有序,同時保留足夠的恢復點和歷史記錄。
{
"Rules": [
{
"ID": "Delete current version",
"Status": "Enabled",
"Expiration": {
"Days": 30
},
},
{
"ID": "noncurrent version retention",
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 60
}
},
{
"ID": "Markers",
"Status": "Enabled",
"Expiration": {
"ExpiredObjectDeleteMarker": true
}
}
]
}
刪除沒有其他版本並且已經存在 5 天的標記,為帶有「accounts_ 前綴」的物件保留 4 個非當前版本和至少 30 天的歷史記錄,為所有其他物件版本保留 2 個版本和至少 10 天的歷史記錄。
使用案例:為特定物件以及其他物件提供獨特的規則,以管理目前版本和非目前版本(包括刪除標記)的完整生命週期。優點:降低儲存成本,確保儲存桶整潔有序,同時保留足夠的恢復點和歷史記錄,以滿足各種客戶需求。
{
"Rules": [
{
"ID": "Markers",
"Status": "Enabled",
"Expiration": {
"Days": 5,
"ExpiredObjectDeleteMarker": true
},
},
{
"ID": "accounts version retention",
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NewerNoncurrentVersions": 4,
"NoncurrentDays": 30
},
"Filter": {
"Prefix":"account_"
}
},
{
"ID": "noncurrent version retention",
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NewerNoncurrentVersions": 2,
"NoncurrentDays": 10
}
}
]
}
結論
-
定期檢視和更新生命週期政策,並使其與 ILM 和資料管理目標保持一致。
-
在廣泛應用策略之前,先在非生產環境或儲存桶中測試策略,以確保其按預期工作
-
使用描述性 ID 作為規則使其更直觀,因為邏輯結構可能變得複雜
-
監控這些儲存桶生命週期策略對儲存使用情況和效能的影響,以做出必要的調整。