文件

將物件轉換至遠端 MinIO 部署

此頁面上的程序會建立新的物件生命週期管理規則,將物件從主要 MinIO 部署中的儲存貯體轉換到遠端 MinIO 部署中的儲存貯體。此程序支援成本管理策略,例如將物件從使用 NVMe 儲存的「熱」MinIO 部署分層到使用 SSD 的「暖」MinIO 部署。

需求

安裝和設定 mc

此程序使用 mc 對 MinIO 叢集執行操作。在具有網路存取來源和目的地叢集的機器上安裝 mc。請參閱 mc 安裝快速入門,以取得下載和安裝 mc 的指示。

使用 mc alias set 命令來建立來源 MinIO 叢集的別名。建立別名需要指定來源和目的地叢集上使用者的存取金鑰。指定的用戶必須具有設定和應用轉換操作的權限

必要的來源 MinIO 權限

MinIO 需要以下針對您正在建立生命週期管理規則的儲存貯體或多個儲存貯體設定範圍的權限。

MinIO 還需要在您正在為物件轉換生命週期管理規則建立遠端層的叢集上具有以下管理權限

例如,以下政策提供在叢集中任何儲存貯體上設定物件轉換生命週期管理規則的權限

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

必要的遠端 MinIO 權限

物件轉換生命週期管理規則需要在遠端儲存層上具有額外的權限。具體而言,MinIO 要求遠端層認證為遠端儲存貯體提供讀取、寫入、清單和刪除權限。

例如,遠端 MinIO 部署上的以下政策為將物件轉換進出遠端層提供必要的權限

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket"
            ],
            "Sid": ""
      },
      {
            "Action": [
               "s3:GetObject",
               "s3:PutObject",
               "s3:DeleteObject"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket/*"
            ],
            "Sid": ""
      }
   ]
}

修改 MinIO 分層物件的儲存貯體的 Resource

請參閱存取管理文件,以取得關於設定所需權限的更完整指南。

遠端儲存桶必須存在

在使用該儲存桶作為目標來設定生命週期管理層或規則之前,請先建立遠端儲存桶。

如果遠端儲存桶包含現有資料,請使用 prefix 功能,將轉換的物件與該儲存桶上的任何其他物件隔離。

考量事項

生命週期管理物件掃描器

MinIO 使用掃描器處理程序來檢查物件是否符合所有已設定的生命週期管理規則。由於高 I/O 工作負載或有限的系統資源導致掃描速度緩慢,可能會延遲生命週期管理規則的應用。

遠端資料的獨佔存取權

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

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

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

  • 遠端儲存上物件沒有外部的變更、移轉或刪除。

  • 遠端儲存桶上沒有生命週期管理規則 (例如轉換或到期)。

MinIO 將所有轉換的物件儲存在遠端儲存桶或資源中,並在每個部署下使用唯一的前綴值。此值不適用於從後端識別來源部署。MinIO 在設定遠端目標時支援一個額外可選的人工可讀前綴,這有助於診斷、維護或災害復原的相關操作。

MinIO 建議為包含其他資料的遠端儲存層指定此可選前綴,包括來自其他 MinIO 部署的轉換物件。本教學包含設定此前綴所需的語法。

遠端資料的可用性

MinIO 分層行為取決於遠端儲存是否在收到請求後立即 (毫秒到秒) 返回物件。因此,MinIO 無法支援需要重新補水、等待期或手動介入的遠端儲存。

MinIO 會為每個轉換的物件建立中繼資料,以識別其在遠端儲存上的位置。應用程式無法輕易地獨立於 MinIO 識別和存取轉換的物件。因此,轉換資料的可用性取決於與 Erasure Coding 和分散式部署拓樸為 MinIO 部署上的所有物件提供的核心保護相同的保護。使用物件轉換並不會提供任何額外的業務持續性或災害復原好處。

需要BC/DR保護的工作負載應實作 MinIO 伺服器端複寫。複寫可確保物件保留在遠端複寫站點上,以便在發生部分或全部資料遺失時可以從遠端重新同步。請參閱 重新同步 (災害復原),以取得關於使用複寫在部分或全部資料遺失後進行復原的更完整文件。

程序

1) 設定生命週期管理的使用者帳戶和原則

此步驟會在 MinIO 部署上建立使用者和原則,以支援生命週期管理作業。如果部署已經有具有必要權限的使用者,則可以跳過此步驟。

以下範例使用 Alpha 作為 MinIO 部署的佔位符 別名。請將此值替換為您正在設定生命週期管理規則的 MinIO 部署的適當別名。請將密碼 LongRandomSecretKey 替換為長、隨機且安全的密鑰,按照貴組織密碼產生的最佳實務。

wget -O - https://minio.dev.org.tw/docs/minio/linux/examples/LifecycleManagementAdmin.json | \
mc admin policy create Alpha LifecycleAdminPolicy /dev/stdin
mc admin user add Alpha alphaLifecycleAdmin LongRandomSecretKey
mc admin policy attach Alpha LifecycleAdminPolicy --user=alphaLifecycleAdmin

此範例假設指定的別名具有在部署上建立原則和使用者的必要權限。請參閱 使用者管理MinIO 基於原則的存取控制,以取得關於 MinIO 使用者和原則的更完整文件。

2) 設定遠端儲存層

使用 mc ilm tier add 命令,將遠端 MinIO 部署新增為新的遠端儲存層

mc ilm tier add minio TARGET TIER_NAME  \
   --endpoint https://HOSTNAME       \
   --access-key ACCESS_KEY           \
   --secret-key SECRET_KEY           \
   --bucket BUCKET                   \
   --prefix PREFIX                   \
   --storage-class STORAGE_CLASS     \
   --region REGION

以上範例使用以下引數

引數

描述

ALIAS

要在其上設定 MinIO 遠端層的 MinIO 部署的 別名

TIER_NAME

與新的 MinIO 遠端儲存層關聯的名稱。以全大寫指定名稱,例如 MINIO_WARM_TIER。下一步需要此值。

HOSTNAME

MinIO 儲存後端的 URL 端點。

ACCESS_KEY

MinIO 用於存取儲存桶的存取金鑰。存取金鑰必須對應於具有所需權限的 IAM 使用者。

SECRET_KEY

指定 ACCESS_KEY 對應的密鑰。

BUCKET

遠端 MinIO 部署上 SOURCE 轉換物件的儲存桶名稱。

PREFIX

MinIO 在其中轉換物件的可選儲存桶前綴。

MinIO 會在指定的 BUCKET 中儲存所有轉換的物件,並在每個部署下使用唯一的前綴值。省略此引數以僅使用該值來隔離和整理遠端儲存中的資料。

MinIO 建議為包含其他資料的遠端儲存層指定此可選前綴,包括來自其他 MinIO 部署的轉換物件。此前綴應提供對來源 MinIO 部署的明確參考,以便於進行與診斷、維護或災害復原相關的操作。

STORAGE_CLASS

MinIO 應用於轉換到遠端 MinIO 儲存桶的物件的Erasure Coding 儲存類別。請指定以下支援的儲存類別之一

  • STANDARD建議

  • REDUCED

REGION

指定 BUCKET 的 MinIO 區域。

MinIO 部署通常不需要在設定時設定區域。僅當您明確為部署設定 MINIO_SITE_REGION 設定時才包含此選項。

3) 建立並套用轉換規則

使用 mc ilm rule add 命令,為儲存桶建立新的轉換規則。以下範例設定在指定天數後轉換

mc ilm rule add ALIAS/BUCKET \
--transition-tier TIERNAME \
--transition-days DAYS \
--noncurrent-transition-days NONCURRENT_DAYS
--noncurrent-transition-tier TIERNAME

以上範例指定以下引數

引數

描述

ALIAS

請指定您要為其建立生命週期管理規則的 MinIO 部署的 別名

BUCKET

指定您要為其建立生命週期管理規則的儲存桶完整路徑。

TIERNAME

MinIO 將物件轉換到的遠端儲存層。請指定在上一步驟中建立的遠端儲存層名稱。

如果您想將非當前物件版本轉換到不同的遠端層,請為 --noncurrent-transition-tier 指定不同的層名稱。

DAYS

MinIO 將物件標記為符合轉換資格的天數。請以整數指定天數,例如 30 代表 30 天。

NONCURRENT_DAYS

MinIO 將非當前物件版本標記為符合轉換資格的天數。MinIO 特別測量物件成為非當前版本以來經過的時間,而不是物件的建立時間。請以整數指定天數,例如 90 代表 90 天。

省略此值以忽略非當前物件版本。

此選項對未版本化的儲存桶無效。

4) 驗證轉換規則

使用 mc ilm rule ls 命令來檢閱已設定的轉換規則

mc ilm rule ls ALIAS/PATH --transition
  • ALIAS 替換為 MinIO 部署的 alias

  • PATH 替換為要檢索已設定生命週期管理規則的儲存桶名稱。