文件

物件生命週期管理

使用 MinIO 物件生命週期管理來建立規則,以根據時間或日期自動轉換或使物件過期。對於物件轉換,MinIO 會自動將物件移動到已設定的遠端儲存層。對於物件過期,MinIO 會自動刪除物件。

MinIO 的行為和語法取自 S3 生命周期,以確保從 S3 移轉工作負載和生命週期規則時的相容性。例如,您可以匯出 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 中發生資料遺失,您無法將遠端層作為復原來源。

請使用站點複寫儲存桶複寫來支援備份/復原或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-days 旗標使用 --expire-all-object-versions 旗標。這可允許在指定天數過後永久刪除物件。

    已變更於版本 MinIO:RELEASE.2024-05-01T01-11-10Z

    此旗標僅適用於沒有刪除標記的物件。

生命週期管理物件掃描器

MinIO 使用內建的掃描器來主動檢查物件是否符合所有已設定的生命週期管理規則。

掃描器是一個低優先順序的程序,會讓步於高I/O工作負載,以防止規則時序觸發效能峰值。因此,掃描器可能要等到生命週期規則週期過後,才會偵測到物件符合已設定的轉移或過期生命週期規則的條件。