文件

將物件從 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 儲存帳戶時,請確保儲存帳戶符合標準或進階 Blob 儲存空間,並具有本地備援儲存 (LRS) 備援選項。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

以上範例使用以下引數

引數

說明

TARGET

要設定遠端層的 MinIO 部署的別名

TIER_NAME

要與新的 Azure Blob 遠端儲存層相關聯的名稱。請以全大寫指定名稱,例如 AZURE_TIER。此值在下一步中是必要的。

ACCOUNT

要用作遠端儲存資源的儲存帳戶

在建立層之後,您無法變更此帳戶名稱。

KEY

指定 ACCOUNT 的對應共用帳戶金鑰。

帳戶金鑰必須具有分配的 Azure 原則,其中包含必要的權限

如需詳細資訊,請參閱管理儲存帳戶存取金鑰

CONTAINER

MinIO 將物件轉換到的 Azure 儲存後端上的容器名稱。

ENDPOINT

(選用) MinIO 將物件轉換到的 Azure Blob 儲存後端的完整 URL。如果未指定,則預設為 https://ACCOUNT.blob.core.windows.net

PREFIX

MinIO 在其中轉換物件的可選容器前綴。

MinIO 會將所有已轉換的物件儲存在指定的 BUCKET 下,每個部署都有一個唯一的前綴值。省略此引數,僅使用該值來隔離和組織遠端儲存空間中的資料。

MinIO 建議為包含其他資料的遠端儲存層指定此可選前綴,包括來自其他 MinIO 部署的已轉換物件。此前綴應提供對來源 MinIO 部署的明確參考,以方便進行與診斷、維護或災難復原相關的操作。

STORAGE_CLASS

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

以上範例指定以下引數

引數

說明

ALIAS

指定您要為其建立生命週期管理規則的 MinIO 部署的別名

BUCKET

指定您要為其建立生命週期管理規則的儲存桶完整路徑。

TIERNAME

MinIO 將物件轉換到的遠端儲存層。指定在上一步中建立的遠端儲存層名稱。

如果您想要將非目前物件版本轉換到不同的遠端層,請為 --noncurrent-transition-tier 指定不同的層名稱。

DAYS

MinIO 將物件標示為有資格進行轉換的日曆天數。請以整數指定天數,例如 30 代表 30 天。

NONCURRENT_DAYS

非當前物件版本在經過多少個日曆天後,MinIO 會將其標記為符合轉換資格。MinIO 特別衡量的是物件變成非當前版本後的時間,而非物件的建立時間。請將天數指定為整數,例如 90 代表 90 天。

省略此值以忽略非當前物件版本。

此選項對非版本化儲存桶沒有影響。

4) 驗證轉換規則

使用 mc ilm rule ls 命令來檢閱已設定的轉換規則。

mc ilm rule ls ALIAS/PATH --transition
  • ALIAS 替換為 MinIO 部署的 alias

  • PATH 替換為要檢索已設定生命週期管理規則的儲存桶名稱。