文件

物件生命週期管理

使用 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 的情況下輕易識別和存取轉換的物件。因此,轉換資料的可用性取決於與 糾刪碼 和分散式部署拓撲為 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 工作負載,以防止規則計時觸發效能高峰。因此,掃描器可能會在生命週期規則期間結束*之後*才偵測到某個物件符合已設定的轉換或到期生命週期規則的條件。