將物件轉換至遠端 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 的情況下輕易識別和存取已轉換的物件。因此,已轉換資料的可用性取決於抹除編碼和分散式部署拓撲為 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
上面的範例使用以下引數
引數 |
說明 |
---|---|
要在其上設定 MinIO 遠端層的 MinIO 部署的 |
|
與新的 MinIO 遠端儲存層關聯的名稱。以全部大寫字母指定名稱,例如 |
|
MinIO 儲存後端的 URL 端點。 |
|
MinIO 用於存取儲存貯體的存取金鑰。存取金鑰必須對應於具有必要權限的 IAM 使用者。 |
|
指定 |
|
遠端 MinIO 部署上 |
|
MinIO 在其中轉換物件的選用儲存貯體前置詞。 MinIO 會將所有轉換的物件儲存在指定的 MinIO 建議為包含其他資料(包括來自其他 MinIO 部署的已轉換物件)的遠端儲存層指定此選用前置詞。此前置詞應提供回溯至來源 MinIO 部署的明確參考,以方便進行與診斷、維護或災難復原相關的操作。 |
|
MinIO 套用於轉換到遠端 MinIO 儲存貯體的物件的 抹除編碼儲存類別。指定以下其中一種支援的儲存類別
|
|
指定 MinIO 部署通常不需要在設定時指定區域。只有在您明確為部署設定 |
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