文件

將物件轉換至遠端 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 使用掃描器程序來檢查物件是否符合所有已配置的生命週期管理規則。由於高 IO 工作負載或有限的系統資源導致掃描緩慢,可能會延遲生命週期管理規則的應用。

對遠端資料的獨佔存取權

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 替換為要檢索已設定生命週期管理規則的儲存桶名稱。