將物件從 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 無法在沒有存取遠端的情況下檢索物件資料,遠端也無法用於還原來源上遺失的元資料。
所有對轉換物件的存取*必須*僅通過 S3 API 操作透過 MinIO 進行。手動修改轉換的物件(無論是「熱」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 將物件標記為符合轉換資格的日曆天數。將天數指定為整數,例如 |
|
MinIO 將非當前版本的物件標記為符合轉換資格的日曆天數。MinIO 具體計算的是物件變成非當前版本以來的時間,而不是物件的建立時間。將天數指定為整數,例如 省略此值以忽略非當前版本的物件。 此選項對非版本控制的儲存桶沒有影響。 |
4) 驗證轉換規則
使用 mc ilm rule ls
命令來檢視已設定的轉換規則。
mc ilm rule ls ALIAS/PATH --transition
將
別名 (ALIAS)
替換為 MinIO 部署的別名 (alias)
。將
路徑 (PATH)
替換為要檢索已設定生命週期管理規則的儲存桶名稱。