文件

物件生命週期管理

使用 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 中發生數據遺失時,您無法將遠端層作為還原來源。

請使用站點複寫儲存桶複寫 來支援備份/還原或 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 工作負載,以防止因規則計時而觸發效能尖峰。因此,掃描器可能 *在* 生命週期規則期間經過 *之後* 才會偵測到物件符合已設定轉換或到期生命週期規則的條件。