物件生命週期管理
使用 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
選項。在版本 MinIO 中變更:RELEASE.2024-05-01T01-11-10Z
MinIO 支援使最新版本為刪除標記的物件的所有版本過期,包括使刪除標記過期,但僅限使用 JSON。 使用
mc ilm rule import
新增 JSON 規則。例如,若要使已刪除物件在物件刪除後 10 天過期,請使用以下 JSON:
<DelMarkerObjectExpiration> <Days> 10 </Days> </DelMarkerObjectExpiration>
若要使在指定天數後沒有刪除標記的物件的所有版本過期,請搭配
--expire-days
旗標使用--expire-all-object-versions
旗標。 這允許在指定天數經過後永久刪除物件。在版本 MinIO 中變更:RELEASE.2024-05-01T01-11-10Z
此旗標僅適用於沒有刪除標記的物件。
生命週期管理物件掃描器
MinIO 使用內建的 掃描器,主動檢查物件是否符合所有已配置的生命週期管理規則。
掃描器是一個低優先順序程序,它會讓步於高 I/O 工作負載,以防止規則計時觸發效能峰值。 因此,掃描器可能在生命週期規則期間經過之後才偵測到物件符合已配置的轉換或過期生命週期規則的條件。