物件生命週期管理
使用 MinIO 物件生命週期管理來建立規則,以實現基於時間或日期的物件自動轉換或過期。對於物件轉換,MinIO 會自動將物件移動到配置的遠端儲存層。對於物件過期,MinIO 會自動刪除物件。
MinIO 的行為和語法源自 S3 生命週期,以便在將工作負載和生命週期規則從 S3 遷移到 MinIO 時具有相容性。例如,您可以匯出 S3 生命週期管理規則並將其匯入 MinIO,反之亦然。MinIO 使用 JSON 來描述生命週期管理規則,並且可能需要轉換為 XML 或從 XML 轉換,作為匯入 S3 生命週期規則的一部分。
物件轉換(「分層」)
MinIO 支援建立物件轉換生命週期管理規則,其中 MinIO 可以自動將物件移動到遠端儲存「層」。MinIO 支援以下任何遠端層目標
MinIO 物件轉換支援諸如將舊資料從私有雲或公有雲基礎架構中的 MinIO 叢集移動到低成本私有雲或公有雲儲存解決方案之類的用例。目錄物件(名稱以 /
結尾的 0 位元組物件)不會分層。MinIO 會動態管理檢索分層物件,而無需任何額外的應用程式端邏輯。
使用 mc ilm tier add
命令來建立用於將資料分層到該目標的遠端目標。然後,您可以使用 mc ilm rule add --transition-days
命令,以便在指定的日曆天數後將物件轉換到該層。
RELEASE.2022-11-10T18-20-21Z 版本的新功能。
您可以使用 mc ls
命令針對儲存桶或儲存桶前綴來驗證物件的階層狀態。輸出結果會包含每個物件的儲存層級。
$ mc ls play/mybucket
[2022-11-08 11:30:24 PST] 52MB STANDARD log-data.csv
[2022-11-09 12:20:18 PST] 120MB WARM event-2022-11-09.mp4
STANDARD
表示物件儲存在 MinIO 部署中。WARM
表示物件儲存在名稱相符的遠端層級中。
重要事項
MinIO 物件轉換支援將較舊或過時的資料移至成本優化的遠端儲存層級(例如雲端儲存或高密度 HDD 儲存)的節省成本策略。
MinIO 物件轉換不提供備份和復原功能。在 MinIO 中發生資料遺失時,您無法將遠端層級用作復原來源。
遠端資料的獨佔存取權
MinIO *需要* 對遠端儲存層級上已轉換的資料具有獨佔存取權。「熱」MinIO 來源上的物件中繼資料與「溫/冷」遠端層級上的物件資料密切相關。MinIO 無法在沒有遠端存取權的情況下擷取物件資料,遠端也不能用於還原來源上遺失的中繼資料。
所有對已轉換物件的存取*必須*僅透過 MinIO 經由 S3 API 操作來進行。手動修改已轉換的物件(無論是「熱」MinIO 層級上的中繼資料*或*遠端「溫/冷」層級上的物件資料),都可能會導致該物件資料遺失。
MinIO 會忽略遠端儲存桶或儲存桶前綴中任何非由 MinIO 部署明確管理的物件。自動轉換和透明的物件擷取取決於以下假設:
不對遠端儲存上的物件進行外部修改、遷移或刪除。
遠端儲存儲存桶上沒有生命週期管理規則(例如轉換或過期)。
MinIO 會將所有已轉換的物件儲存在遠端儲存儲存桶或資源中,並使用每個部署的唯一前綴值。此值不旨在支援從後端識別來源部署。MinIO 在設定遠端目標時支援額外的可選人類可讀前綴,這有助於進行與診斷、維護或災難復原相關的操作。
MinIO 建議為包含其他資料的遠端儲存層級指定此可選前綴,包括來自其他 MinIO 部署的已轉換物件。本教學包含設定此前綴所需的語法。
遠端資料的可用性
MinIO 的分層行為取決於遠端儲存在收到請求後立即(毫秒到秒)傳回物件。因此,MinIO *無法*支援需要重新整理、等待期或手動干預的遠端儲存。
MinIO 會為每個已轉換的物件建立中繼資料,以識別其在遠端儲存上的位置。應用程式無法在不依賴 MinIO 的情況下輕易地識別和存取已轉換的物件。因此,已轉換資料的可用性取決於與抹除碼 和分散式部署拓撲為 MinIO 部署上的所有物件提供的相同核心保護。使用物件轉換不會提供任何額外的業務持續性或災難復原好處。
需要 BC/DR 保護的工作負載應實作 MinIO 伺服器端複寫。複寫可確保物件保留在遠端複寫站點上,以便在發生部分或全部資料遺失時,您可以從遠端重新同步。如需有關使用複寫在部分或全部資料遺失後進行復原的更完整文件,請參閱 重新同步(災難復原)。
版本化儲存桶
MinIO 對於版本化儲存桶上的轉換規則採用 S3 行為。具體而言,MinIO 預設會將轉換操作套用至*目前*物件版本。
若要轉換非目前的物件版本,請在建立轉換規則時指定 --noncurrent-transition-days
和 --noncurrent-transition-tier
選項。
物件過期
MinIO 生命週期管理支援使儲存桶上的物件過期。「過期」物件涉及對該物件執行 DELETE
操作。例如,您可以建立生命週期管理規則,使任何超過 365 天的物件過期。
使用 mc ilm rule add --expire-days
可在經過指定的日曆天數後使物件過期。
對於已設定複寫的儲存桶,MinIO 不會複寫由生命週期管理過期規則刪除的物件。如需更多資訊,請參閱 刪除操作的複寫。
版本化儲存桶
MinIO 對於版本化儲存桶上的過期規則採用 S3 行為。MinIO 對於版本化儲存桶有幾個預設行為
MinIO 會藉由建立
DeleteMarker
,將過期選項僅套用至*目前*物件版本,就像版本化刪除的正常情況一樣。若要使非目前的物件版本過期,請在建立過期規則時指定
--noncurrent-expire-days
選項。即使該物件沒有其他版本,MinIO 也不會使
DeleteMarkers
過期。若要在該物件沒有剩餘版本時使刪除標記過期,請在建立過期規則時指定
--expire-delete-marker
選項。在版本 MinIO 中變更:RELEASE.2024-05-01T01-11-10Z
MinIO 支援使物件的所有版本過期(其中最新版本是刪除標記),*包括使刪除標記過期*,但僅適用於 JSON。使用
mc ilm rule import
新增 JSON 規則。例如,若要在物件刪除後 10 天使刪除物件的所有版本過期,請使用以下 JSON
<DelMarkerObjectExpiration> <Days> 10 </Days> </DelMarkerObjectExpiration>
若要在指定的期間天數後使*沒有*刪除標記的物件的*所有*版本過期,請將
--expire-all-object-versions
旗標與--expire-days
旗標搭配使用。這樣即可在指定的期間天數過後永久刪除物件。在版本 MinIO 中變更:RELEASE.2024-05-01T01-11-10Z
此旗標僅適用於*沒有*刪除標記的物件。
生命週期管理物件掃描器
MinIO 使用內建的掃描器來主動檢查物件是否符合所有已設定的生命週期管理規則。
掃描器是一個低優先順序的程序,它會讓步於高I/O 工作負載,以防止規則計時觸發效能峰值。因此,掃描器可能會在生命週期規則期間過後才偵測到物件符合設定的轉換或過期生命週期規則的資格。