將物件從 MinIO 轉換到 Azure
此頁面上的程序會建立新的物件生命週期管理規則,將物件從 MinIO 儲存貯體轉換到 Azure 儲存後端的遠端儲存層。此程序支援諸如在特定時間段或日曆日期之後將老舊資料移動到低成本公有雲儲存解決方案之類的使用案例。
需求
安裝和設定 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"
}
]
}
必要的 Azure 權限
物件轉換生命週期管理規則需要在遠端儲存層上具有其他權限。具體而言,MinIO 需要 Azure 認證提供遠端儲存帳戶和容器的讀取、寫入、列出和刪除權限。
請參閱 Azure RBAC 文件,以取得有關設定必要權限的更完整指南。
遠端儲存帳戶和容器必須存在
在設定生命週期管理層或規則之前,必須先建立遠端的 Azure 儲存體帳戶和容器,並將該資源作為目標。在建立 Azure 儲存體帳戶時,請確保儲存體帳戶對應於使用本地冗餘儲存體 (LRS) 冗餘選項的標準或進階 Blob 儲存體。MinIO 使用的 Azure Go SDK API 不支援任何其他冗餘選項。
如果您設定儲存體帳戶的預設存取層,則當您在定義遠端層時未指定storage class
,MinIO 將會使用該預設值。請務必記錄 Azure 儲存體帳戶和 MinIO 分層設定的設定,以避免任何潛在的混淆、錯誤設定或其他意外結果。
有關 Azure 儲存體帳戶的詳細資訊,請參閱儲存體帳戶。
考量事項
遠端資料的獨佔存取權
MinIO 需要對遠端儲存層上的已轉換資料具有獨佔存取權。「熱」MinIO 來源上的物件中繼資料與「溫/冷」遠端層上的物件資料緊密連結。MinIO 無法在沒有遠端存取權的情況下擷取物件資料,遠端也無法用於還原來源上遺失的中繼資料。
所有對已轉換物件的存取都必須僅透過 MinIO 使用 S3 API 操作進行。手動修改已轉換的物件(無論是「熱」MinIO 層上的中繼資料或遠端「溫/冷」層上的物件資料),都可能導致該物件資料遺失。
MinIO 會忽略遠端儲存貯體或儲存貯體前綴中未明確由 MinIO 部署管理的任何物件。自動轉換和透明物件擷取取決於以下假設
不得對遠端儲存上的物件進行外部變更、遷移或刪除。
遠端儲存貯體上不得有任何生命週期管理規則(例如轉換或到期)。
MinIO 會將所有已轉換的物件儲存在遠端儲存貯體或資源中的每個部署唯一前綴值下。此值不適用於從後端識別來源部署。MinIO 在設定遠端目標時支援額外的選用人類可讀前綴,這有助於進行診斷、維護或災害復原相關的操作。
MinIO 建議為包含其他資料的遠端儲存層指定此選用前綴,包括來自其他 MinIO 部署的已轉換物件。本教學課程包含設定此前綴所需的語法。
重要
MinIO 不支援變更與 Azure 遠端層相關聯的帳戶名稱。Azure 儲存體後端與帳戶相關聯,因此變更帳戶會變更儲存體後端,並阻止存取已轉換至原始帳戶/後端的任何物件。
如果您需要關於設定 Azure 遠端層的特定情況指導,請聯絡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
命令來新增遠端儲存層
mc ilm tier add azure TARGET TIER_NAME \
--account-name ACCOUNT \
--account-key KEY \
--bucket CONTAINER \
--endpoint ENDPOINT \
--prefix PREFIX \
--storage-class STORAGE_CLASS
以上範例使用以下引數
引數 |
描述 |
---|---|
要在其上設定遠端層的 MinIO 部署的 |
|
要與新的 Azure Blob 遠端儲存層關聯的名稱。以全部大寫字母指定名稱,例如 |
|
用作遠端儲存資源的儲存體帳戶。 建立層之後,您無法變更此帳戶名稱。 |
|
指定 帳戶金鑰必須具有分配了必要權限的 Azure 原則。 如需詳細資訊,請參閱管理儲存體帳戶存取金鑰。 |
|
MinIO 將物件轉換至其中的 Azure 儲存體後端上的容器名稱。 |
|
(選用)MinIO 將物件轉換至其中的 Azure Blob 儲存體後端的完整 URL。如果未指定,則預設為 |
|
MinIO 在其中轉換物件的可選容器前綴。 MinIO 會將所有已轉換的物件儲存在指定的 MinIO 建議為包含其他資料的遠端儲存層指定此選用前綴,包括來自其他 MinIO 部署的已轉換物件。此前綴應提供回溯到來源 MinIO 部署的明確參考,以方便進行與診斷、維護或災害復原相關的操作。 |
|
MinIO 套用至轉換到 Azure 容器的物件的 Azure 存取層。 MinIO 分層行為取決於遠端儲存是否在收到請求後立即(毫秒到秒)傳回物件。因此,MinIO 無法支援需要重新補水、等待時間或手動介入的遠端儲存。 以下 Azure 存取層符合 MinIO 作為遠端層的需求
如需詳細資訊,請參閱Blob 資料的熱、冷和封存存取層。 |
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 將物件標記為符合轉換資格的日曆天數。以整數指定天數,例如 30 天為 |
|
非當前物件版本被 MinIO 標記為符合轉換資格的天數。MinIO 特別計算物件變成非當前版本之後的時間,而不是物件建立的時間。請以整數指定天數,例如 省略此值將忽略非當前物件版本。 此選項對未啟用版本的儲存桶無效。 |
4) 驗證轉換規則
使用 mc ilm rule ls
命令來檢視已設定的轉換規則。
mc ilm rule ls ALIAS/PATH --transition