將物件從 MinIO 轉換至 GCS
此頁面的程序會建立一個新的物件生命週期管理規則,將物件從 MinIO 儲存桶轉換到 Google Cloud Storage 後端的遠端儲存層。此程序支援在特定時間段或日曆日期後將舊資料移動到低成本公有雲儲存解決方案等用例。
需求
安裝和設定 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"
}
]
}
必要的 GCS 權限
物件轉換生命週期管理規則需要遠端儲存層上的額外權限。具體而言,MinIO 需要 GCS 憑證,為遠端儲存桶提供讀取、寫入、列表和刪除權限。
請參閱GCS IAM 權限文件,以取得關於設定所需權限的更完整指南。
遠端儲存桶必須存在
在使用該儲存桶作為目標設定生命週期管理層或規則之前,請建立遠端 GCS 儲存桶。
如果您設定預設的 GCS 儲存類別,如果當您定義遠端層時,沒有指定 storage class
,則 MinIO 會使用該預設值。請務必記錄您的 GCS 儲存桶和 MinIO 分層設定,以避免任何潛在的混淆、錯誤設定或其他意外結果。
注意事項
生命週期管理物件掃描器
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
命令,新增一個新的 Google Cloud Storage 服務作為遠端儲存層
mc ilm tier add gcs TARGET TIER_NAME \
--bucket BUCKET \
--prefix PREFIX \
--credentials-file CREDENTIALS \
--storage-class STORAGE_CLASS
以上範例使用以下引數
引數 |
說明 |
---|---|
要在其上設定 GCS 遠端層的 MinIO 部署的 |
|
要與新的 GCS 遠端儲存層關聯的名稱。以全部大寫指定名稱,例如 |
|
MinIO 將物件轉換至的 GCS 儲存後端上的儲存桶名稱。 |
|
MinIO 在其中轉換物件的可選儲存桶字首。 MinIO 將所有已轉換的物件儲存在指定的 MinIO 建議為包含其他資料(包括來自其他 MinIO 部署的已轉換物件)的遠端儲存層指定此可選字首。此字首應提供明確的參考回到來源 MinIO 部署,以方便進行與診斷、維護或災害復原相關的操作。 |
|
MinIO 套用於轉換至 GCS 儲存桶的物件的 GCS 儲存類別。 MinIO 分層行為取決於遠端儲存在收到請求後立即(毫秒到秒)傳回物件。因此,MinIO 無法支援需要補水、等待期或人工干預的遠端儲存。 以下 GCS 儲存類別符合 MinIO 作為遠端層的需求
有關詳細資訊,請參閱GCS 儲存類別。 |
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