將物件從 MinIO 轉換到 S3
此頁面上的程序會建立新的物件生命週期管理規則,將物件從 MinIO 儲存貯體轉換到 Amazon Web Services S3 儲存後端或相容於 S3 的服務上的遠端儲存層。此程序支援的用例包括在一段時間或日曆日期後將物件分層到低成本或封存儲存。
需求
安裝和設定 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"
}
]
}
所需的 S3 權限
物件轉換生命週期管理規則需要在遠端儲存層上具有額外的權限。具體而言,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
。
請參閱 Amazon S3 權限文件,以取得有關配置所需權限的更完整指南。
遠端儲存桶必須存在
在設定使用該儲存桶作為目標的生命週期管理層或規則之前,先建立遠端 S3 儲存桶。
考量事項
生命週期管理物件掃描器
MinIO 使用掃描器處理程序來針對所有已配置的生命週期管理規則檢查物件。由於高 IO 工作負載或有限的系統資源導致掃描緩慢可能會延遲生命週期管理規則的應用。有關更多資訊,請參閱生命週期管理物件掃描器。
對遠端資料的獨佔存取權
MinIO 必須對遠端儲存層上轉換的資料具有獨佔存取權。「熱」MinIO 來源上的物件中繼資料與「溫/冷」遠端層上的物件資料強烈連結。MinIO 無法在沒有遠端存取權的情況下擷取物件資料,遠端也不能用於還原來源上遺失的中繼資料。
所有對轉換物件的存取必須僅透過 S3 API 操作,經由 MinIO 進行。手動修改轉換的物件(無論是「熱」MinIO 層上的中繼資料或遠端「溫/冷」層上的物件資料)都可能導致該物件資料遺失。
MinIO 會忽略遠端儲存桶或儲存桶前置詞中未由 MinIO 部署明確管理的任何物件。自動轉換和透明的物件擷取取決於以下假設
不對遠端儲存上的物件進行外部變更、遷移或刪除。
遠端儲存桶上沒有生命週期管理規則(例如轉換或過期)。
MinIO 會將所有轉換的物件儲存在遠端儲存桶或資源下的每個部署唯一前置詞值。此值不旨在支援從後端識別來源部署。MinIO 在設定遠端目標時支援額外的選用人類可讀前置詞,這可能有助於與診斷、維護或災難復原相關的操作。
MinIO 建議為包含其他資料(包括來自其他 MinIO 部署的轉換物件)的遠端儲存層指定此選用前置詞。本教學課程包含設定此前置詞的必要語法。
遠端資料的可用性
MinIO 分層行為取決於遠端儲存立即 (毫秒到秒) 傳回請求的物件。因此,MinIO 無法支援需要重新水合、等待期或手動干預的遠端儲存。
MinIO 會為每個轉換的物件建立中繼資料,以識別其在遠端儲存上的位置。應用程式無法在不依賴 MinIO 的情況下輕易識別和存取轉換的物件。因此,轉換資料的可用性取決於 糾刪碼和分散式部署拓撲為 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
命令新增 Amazon S3 服務作為新的遠端儲存層
mc ilm tier add s3 TARGET TIER_NAME \
--endpoint https://HOSTNAME \
--access-key ACCESS_KEY \
--secret-key SECRET_KEY \
--bucket BUCKET \
--prefix PREFIX \
--storage-class STORAGE_CLASS \
--region REGION
上面的範例使用以下引數
引數 |
描述 |
---|---|
要設定 S3 遠端層的 MinIO 部署的 |
|
要與新的 S3 遠端儲存層建立關聯的名稱。以全部大寫字母指定名稱,例如 |
|
S3 儲存後端的 URL 端點。 |
|
MinIO 用於存取儲存桶的 S3 存取金鑰。存取金鑰必須對應於具有必要權限的 IAM 使用者。 |
|
指定 |
|
MinIO 將物件轉換到的 S3 儲存後端上的儲存桶名稱。 |
|
MinIO 在其中轉換物件的選用儲存桶前置詞。 MinIO 會將所有轉換的物件儲存在指定 MinIO 建議為包含其他資料(包括來自其他 MinIO 部署的轉換物件)的遠端儲存層指定此選用前置詞。此前置詞應提供對來源 MinIO 部署的明確參考,以便於與診斷、維護或災害復原相關的操作。 |
|
MinIO 將物件轉換到的 S3 儲存類別。 MinIO 分層行為取決於遠端儲存立即 (毫秒到秒) 傳回請求的物件。因此,MinIO 無法支援需要重新水合、等待期或手動干預的遠端儲存。 下列 S3 儲存類別符合 MinIO 作為遠端層的要求
省略此值以使用儲存桶的預設儲存類別。指定此值會覆寫儲存桶儲存類別。 如需更多資訊,請參閱使用 Amazon S3 儲存類別。 |
|
指定 |
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
上面的範例指定以下引數
引數 |
描述 |
---|---|
指定您要為其建立生命週期管理規則的 MinIO 部署的 |
|
指定您要為其建立生命週期管理規則的儲存桶完整路徑。 |
|
MinIO 將物件轉換至的遠端儲存層。指定在上一步驟中建立的遠端儲存層名稱。 如果您想要將非最新物件版本轉換至不同的遠端層,請為 |
|
MinIO 將物件標記為符合轉換資格的天數。請將天數指定為整數,例如 |
|
MinIO 將非最新物件版本標記為符合轉換資格的天數。MinIO 特別測量物件變成非最新版本之後的時間,而不是物件建立時間。請將天數指定為整數,例如 省略此值以忽略非最新物件版本。 此選項對未版本控制的儲存桶沒有影響。 |
4) 驗證轉換規則
使用 mc ilm rule ls
命令來檢視已設定的轉換規則
mc ilm rule ls ALIAS/PATH --transition