物件生命週期管理
使用 MinIO 物件生命週期管理來建立基於時間或日期的物件自動轉換或到期的規則。對於物件轉換,MinIO 會自動將物件移動到已設定的遠端儲存層。對於物件到期,MinIO 會自動刪除物件。
MinIO 從 S3 生命週期 中衍生出其行為和語法,以便在將工作負載和生命週期規則從 S3 遷移到 MinIO 時保持相容性。例如,您可以匯出 S3 生命週期管理規則並將其匯入 MinIO,反之亦然。MinIO 使用 JSON 來描述生命週期管理規則,並且在匯入 S3 生命週期規則時可能需要轉換為 XML 或從 XML 轉換。
物件轉換(「分層」)
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 無法在沒有遠端存取權的情況下檢索物件資料,也無法使用遠端來還原來源上遺失的中繼資料。
所有對轉換物件的存取*必須*僅透過 S3 API 操作通過 MinIO 進行。手動修改轉換後的物件(無論是「熱」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工作負載,以防止由規則計時觸發的效能高峰。因此,掃描器可能要到生命週期規則期間經過*之後*,才會偵測到物件符合已設定的轉換或過期生命週期規則的資格。