文件

物件生命週期管理

使用 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 中發生資料遺失,您無法使用遠端層作為復原來源。

請使用 站點複寫儲存桶複寫 來支援備份/復原或 BC/DR 需求。

遠端資料的獨佔存取權

MinIO要求對遠端儲存層上的已轉換資料具有獨佔存取權。「熱」MinIO來源上的物件中繼資料與「溫/冷」遠端層上的物件資料密切相關。MinIO無法在沒有遠端存取權的情況下檢索物件資料,也無法使用遠端來還原來源上遺失的中繼資料。

所有對已轉換物件的存取必須僅透過 MinIO 使用 S3 API 操作進行。手動修改已轉換的物件(無論是「熱」MinIO 層上的中繼資料遠端「溫/冷」層上的物件資料)都可能導致該物件資料遺失。

MinIO 會忽略遠端儲存桶或儲存桶前綴中未由 MinIO 部署明確管理的任何物件。自動轉換和透明的物件檢索取決於以下假設:

  • 不得對遠端儲存上的物件進行外部變更、遷移或刪除。

  • 不得在遠端儲存桶上設定生命週期管理規則(例如轉換或到期)。

MinIO 將所有轉換的物件儲存在遠端儲存桶或資源下,並使用每個部署唯一的字首值。此值並非旨在從後端識別來源部署。MinIO 在設定遠端目標時支援額外的可選人為可讀取字首,這可能有利於診斷、維護或災難復原相關的操作。

MinIO 建議為包含其他資料的遠端儲存層指定此可選字首,包括來自其他 MinIO 部署的已轉換物件。本教學課程包含設定此字首的必要語法。

遠端資料的可用性

MinIO 分層行為取決於遠端儲存在請求時立即(毫秒到秒)傳回物件。因此,MinIO無法支援需要重新整理、等待時間或手動介入的遠端儲存。

MinIO 會為每個轉換的物件建立中繼資料,以識別其在遠端儲存上的位置。應用程式無法獨立於 MinIO 輕鬆識別和存取轉換的物件。因此,轉換資料的可用性取決於與 Erasure Coding 和分散式部署拓撲為 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 工作負載,以防止由規則計時觸發的效能峰值。因此,掃描器可能無法在生命週期規則期間過後偵測到物件是否符合已設定的轉換或到期生命週期規則的條件。