物件生命週期管理
使用 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 若無法存取遠端,則無法檢索物件資料,遠端也無法用於復原來源上遺失的元數據。
所有對已轉換物件的存取*必須*僅透過 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
選項。變更版本: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
旗標搭配使用。這允許在經過指定天數後永久刪除物件。變更版本:RELEASE.2024-05-01T01-11-10Z
此旗標僅適用於*沒有*刪除標記的物件。
生命週期管理物件掃描器
MinIO 使用內建的掃描器,主動檢查物件是否符合所有已設定的生命週期管理規則。
掃描器是一個低優先級程序,會讓步給高 I/O 工作負載,以防止因規則計時觸發效能高峰。因此,掃描器可能要等到生命週期規則期間過後,才偵測到某個物件符合已設定的轉換或到期生命週期規則的資格。