使用 Azure 儲存體 Mover 將資料從 Google Cloud Storage 遷移至 Azure Blob 儲存體

Azure 儲存體 Mover 中的 S3(Simple Storage Service)來源遷移功能,能安全地將資料從相容於 S3 的 Google Cloud Storage(GCS)物件儲存轉移到 Azure Blob 儲存體。

與使用 Azure Arc 多雲連接器的 AWS S3(Amazon 簡易儲存服務)遷移不同,S3 相容的來源遷移採用簡化的方式。 當你安全地將來源端點網址和 HMAC(基於雜湊的訊息認證碼)憑證儲存在 Azure Key Vault 中時,就不需要多雲連接器或自動化的來源發現。

本文將引導你完整配置 Storage Mover 將資料從 GCS S3 相容來源遷移到 Azure Blob 儲存體 的過程。 此流程包括將原始憑證儲存在 Azure Key Vault、設定來源端點與目標端點,以及建立與執行遷移工作。

先決條件

開始之前,請確定您有︰

  • 一個主動的 Azure 訂閱,擁有建立和管理 Azure 儲存體 Mover 資源的權限。
  • 可存取您要從其中移轉資料之 GCS 貯體的 Google Cloud 帳戶。
  • 用作目的地的 Azure 儲存體帳戶。
  • 已部署於 Azure 訂用帳戶中的 Storage Mover 資源。
  • 一個 Azure Key Vault 用來安全儲存你的來源 HMAC 憑證。
  • 專為您的 GCS 貯體產生的 HMAC 金鑰。 請參閱生成 GCS 的 HMAC 金鑰。
  • 如果你的來源資料只能透過私有網路存取,則在 Azure 上設置私人連線。

Limits

Azure 儲存體 Mover 中支援 S3 的 GCS 來源遷移功能有以下限制:

  • 每個移轉工作都支援傳輸 500,000,000 個物件。
  • 每個訂閱最多支援 10 個並行工作。 如果您需要執行 10 項以上,請提交支援要求。
  • 僅支援對 S3 相容原始碼的 HTTPS 存取。
  • S3 相容的原始碼必須支援 AWS Signature Version 4(SigV4)風格的認證。

須知事項

在開始遷移前,請先檢視以下針對 GCS S3 相容來源遷移的特定考量事項:

驗證方法

GCS S3 相容的存取使用與 GCS 服務帳號或使用者帳號相關的 HMAC 金鑰(存取金鑰 ID 與秘密金鑰)。 這些金鑰使 GCS 能透過 AWS 簽章第 4 版認證流程回應標準 S3 API 請求。

產生 GCS 的 HMAC 金鑰

要透過 S3 相容介面存取你的 GCS 桶,你需要在 Google Cloud 控制台中產生 HMAC 金鑰。

  1. 進入 Google Cloud Console

  2. 前往 Cloud Storage>設定>互通性分頁。

  3. 如果你還沒這麼做,請選擇 設定預設專案以取得互通性存取

  4. 在「 服務帳號存取金鑰 」區塊中,選擇你想使用的服務帳號,然後選擇 建立金鑰

  5. 請注意 存取金鑰秘密金鑰 的值。 你下一步需要這些數值。

    Important

    請妥善保管這些鑰匙。 秘密鑰匙只出現過一次。 該金鑰只在初始創建時可見,之後無法取回。

  6. 確保 HMAC 證件的有效期至少為一週,以確保工作完成及最佳安全性。

將來源認證儲存在 Azure Key Vault 中

在為您的 GCS 桶產生 HMAC 金鑰後,將它們作為秘密存放在 Azure Key Vault,以便 Storage Mover 服務安全存取。

  1. 透過 Azure 入口網站,前往與 Storage Mover 資源同一個訂閱內的 Azure Key Vault。

  2. 在左側導覽中,展開 物件 選單並選擇 秘密。 接著,選擇 產生/匯入

    螢幕截圖顯示左側導覽中 金鑰保存庫 秘密選單項目的位置。

    螢幕截圖顯示 金鑰保存庫 的「產生秘密」選單項目的位置。

  3. 存取金鑰建立秘密:

    • 名稱:提供有意義的名稱(例如)。 gcs-access-key
    • 秘密值:將前一節的 HMAC 存取金鑰值貼上。
    • 選取 ,創建

    螢幕擷取顯示與 金鑰保存庫 相關的欄位,「建立秘密」視窗以儲存你的存取金鑰。

  4. 秘密金鑰建立第二個秘密:

    • 名稱:提供有意義的名稱(例如)。 gcs-secret-key
    • 秘密值:將前一節的 HMAC 秘密金鑰值貼上。
    • 選取 ,創建

    螢幕擷取顯示與 金鑰保存庫「建立秘密」視窗相關的欄位,以儲存您的秘密金鑰。

  5. 請注意每個秘密的完整 Secret Identifier URI。 建立來源端點時需要這些識別碼。

備註

為確保最佳安全性,我們建議關閉包含 HMAC 秘密的 金鑰保存庫 的公開存取,並將 Storage Mover 加入可信服務。

更多資訊請參閱「使用 Azure 入口網站設定並從金鑰保存庫取得秘密」。


設定來源端點與目標端點

在你將 HMAC 憑證儲存在 Azure Key Vault 後,下一步是建立遷移的來源端點和目標端點。

在 Azure 儲存體 Mover 服務的情境中,端點是一種資源,包含通往來源或目標位置的路徑及其他相關資訊。 儲存移動器工作定義利用端點來定義複製操作的來源與目標位置。

配置一個與 GCS S3 相容的來源端點

來源端點用於識別數據從何處被遷移。 來源端點可用來定義移轉專案內指定的數據來源。

下列步驟說明建立來源端點的程式。

  1. 在 Azure portal 中導覽到你的 Storage Mover 實例。

  2. 從左側導覽內的 [資源管理 ] 群組中,選取 [ 記憶體端點]。 選擇 「來源端點」 標籤,然後選擇 「建立端點 」以開啟 「建立原始端點 」窗格。

  3. 在 [ 建立來源端點 ] 窗格中:

    • 選擇多 雲遷移 作為 遷移類型
    • 選擇 GCS 物件儲存 - S3 作為 來源類型
    • 來源網址:輸入採用 S3 相容格式的 GCS 儲存桶完整 HTTPS URL。 使用格式: https://storage.googleapis.com/<bucket-name>/https://storage.googleapis.com/<bucket-name>/<prefix>/ 僅遷移部分物件。
    • Access 金鑰保存庫 秘密 URI:輸入包含您 HMAC 存取金鑰的完整秘密 URI
    • Secret 金鑰保存庫 秘密 URI:輸入包含你 HMAC 秘密金鑰的完整 URI
    • 可選擇性地提供端點 的描述
  4. 確認所選內容正確,然後選取 建立 以建立端點。

    螢幕截圖顯示與 Storage Mover 「建立來源端點」視窗相關的欄位。

    備註

    當建立來源端點時,系統會自動配置一個由系統指派的管理身份。 此身份需要在您的Azure Key Vault上取得金鑰保存庫秘密使用者 Role-Based 存取控制(RBAC)角色權限,才能在遷移過程中取得 HMAC 憑證。 入口網站會嘗試自動分配此角色。 如果因權限不足而指派失敗,請手動指派或聯絡你的 Azure 管理員手動授權該角色。

設定 Azure Blob 儲存體 目標端點

  1. 從左側導覽內的 [資源管理 ] 群組中,選取 [ 記憶體端點]。 選擇 目標端點標籤 ,然後選擇 新增端點 以開啟 建立目標端點 的窗格。

  2. 在 [ 建立目標端點 ] 窗格中:

    • 從相應的下拉選單中選擇您的訂閱帳號和儲存帳號
    • 目標類型欄位選擇 Blob 容器
    • 從下拉選單選擇你想遷移的 Blob 容器
    • 可選擇性地提供端點 的描述
  3. 確認所選內容正確,然後選取 建立 以建立端點。

指派RBAC角色

當你透過 Azure 入口網站建立端點時,所需的 RBAC 角色會自動分配給系統指定的管理身份:

終點 角色 目標資源
來源端點 金鑰保存庫 Secrets 使用者 您的 Azure Key Vault
目標終點 Storage Blob 資料貢獻者 您的 Azure Blob 容器

如果自動指派失敗(例如因權限不足),你必須手動指派這些角色,或聯絡你的 Azure 管理員。

建立移轉專案和作業定義

定義移轉的來源和目標端點之後,後續步驟是建立記憶體Mover移轉專案和作業定義。

遷移專案讓你能將大型遷移組織成更小、更易管理的單元。 工作定義描述特定複製操作的資源與遷移選項。 這些資源包括來源和目標端點,以及您想要套用的任何移轉設定。

請遵循本節中的步驟來建立移轉專案並執行移轉作業。

建立專案

  1. 在你的 Storage Mover 實例中,前往「計畫+執行遷移」專案區塊,並在專案標籤中選擇「建立專案」。

  2. 提供下列欄位的值︰

    • 名稱:移轉專案有意義的名稱。
    • 專案描述:項目的實用描述。
  3. 選取 [建立] 以建立專案。

    螢幕擷取顯示與 Storage Mover 「建立專案」視窗相關的欄位。

建立工作定義

專案出現後選擇,然後選擇 建立工作。 職缺創建精靈有四個分頁: 基礎排程設定檢視

「基本資料」分頁

  1. 提供下列欄位的值︰

    Field 價值
    移轉類型 選擇 多雲遷移
    來源類型 選擇 GCS 物件儲存 - S3(預覽版)
    S3 儲存貯體類型 選擇 公開私人(預覽)
    Name 為工作取一個有意義的名稱
    Description (可選)工作描述(最多 1,024 字元)

    螢幕截圖顯示與 Storage Mover 「建立專案」視窗 Basics 分頁相關的欄位。

  2. 來源區段中:

    • 來源端點:選擇 新增來源端點 以建立新端點,或選擇已存在的 GCS S3 相容端點。
    • 來源子路徑:(可選)指定子資料夾路徑,只遷移 bucket 的部分內容。 若留空,作業將從 bucket 的根目錄開始。
    • 請確認顯示的 Full 路徑 是否正確。
  3. 目標 區:

    • 目標端點:選擇新增目標端點以建立新端點,或選擇現有的 Azure Blob 儲存體 目標端點。
    • 目標子路徑:(可選)指定目標子資料夾。 若留空,所有內容會遷移到容器根節點。 唯一的子路徑會建立一個新的子資料夾。

    螢幕擷取顯示與 Storage Mover 「建立專案」視窗中基礎標籤相關的欄位。

  4. 如果你為 S3 儲存貯體類型選取 私人,則會顯示 私人連線 區段:

    • 選擇 新增 以將核准的私人連結與此工作關聯。
    • 只有處於 已核准 狀態的連線才能新增。
    • 你可以關聯多個私有連線來做負載平衡。

    備註

    私人貯體需要私人連線。 您必須先至少具備一個核准的私人連線,才能啟動使用私人貯體類型的工作。 請參閱 GCS 的私有網路連線 設定步驟。

  5. 選取 下一步 以繼續。

排程頁籤

選擇你希望遷移進行的時間:

Option Description
沒有排班表 手動開始遷移
單次排程 在特定時間執行一次遷移
固定節目表 遷移可依每日、每週或每月的時間表執行

Important

GCS 物件儲存體 - S3 來源類型目前不支援排程。 工作只能手動執行。 選擇「無排程」,再選擇「下一頁」繼續。

[設定] 索引標籤

  1. 從下拉選單中選擇所需的 複製模式

    複製模式 行為
    將內容合併到目標 即使檔案在原始碼中不存在,也會保留在目標中。 具有相符名稱和路徑的檔案會更新以符合來源。 不同副本間資料夾名稱的重命名可能導致目標內容重複。
    設定來源鏡像到目標 讓目標成為來源的完全相同複本。 從來源刪除的物件也會從目標中被刪除。
  2. 請參閱 遷移結果 章節,了解您的資料如何被映射:

    結果 Description
    目錄結構 目標支援「虛擬」資料夾。 檔案的來源路徑會被加在名稱前面,並被放在一個平面清單中。 空資料夾會以空的 blob 表示,資料夾的元資料則保留在自訂元資料中。
    建立時間戳記 保留為自訂的 blob 元資料。 blob-native 的時間戳記反映了檔案遷移的時間。
    更改時間戳記 保留為自訂的 blob 元資料。 不存在此類型的 Blob 原生時間戳記。
    修改後的時間戳記 保留為自訂的 blob 元資料。 blob-native 的時間戳記反映了檔案遷移的時間。
    最後存取時間戳 如果來源上已有 Blob 中繼資料,則保留為自訂的 Blob 中繼資料。 無此類型的 Blob 原生時間戳記。
    其他元資料 持續做為目標 Blob 的自訂中繼資料。 只能儲存 4 KiB 的元數據。 超過4 KiB的元資料不會被遷移。
    雲端遷移協定 Blob 的 REST API
  3. 選取 下一步 以繼續。

檢閱索引標籤

檢視你的配置摘要:

  • 基本說明:工作名稱、遷移類型
  • 來源:來源類型、帶桶名的來源 URL、雲端名稱(GCS)、來源子路徑
  • Target:儲存體帳戶、Azure Blob 容器、目標子路徑
  • 時間表:遷徙頻率
  • 設定:複製模式

如果所有設定都正確,請選擇 建立 來部署該工作。 選擇 「上一頁 」以進行更改。

執行移轉作業

開始工作

  1. 請前往 專案 分頁。你新建立的工作會出現在專案下的清單中。
  2. 選擇您的工作定義,即可在 屬性 標籤中查看其詳細資訊。
  3. 選擇 「開始工作 」按鈕。
  4. 開始工作 窗格中,確認工作細節並選擇 開始 以開始遷移。

工作會在背景中執行。 你可以在 遷移總覽 標籤中監控其進度。

監視移轉進度

當你使用 Storage Mover 遷移資料時,應該監控複製操作是否有潛在問題。 移轉期間所執行作業的相關數據會顯示在 [移轉概 ] 索引標籤內。此數據可讓您藉由提供目前狀態和重要資訊,例如進度、速度和預估完成時間,來追蹤移轉的進度。

設定完成後,Azure 儲存體 Mover 也會提供複製日誌工作執行日誌。 這些日誌能讓你追蹤工作執行及個別檔案的遷移結果。

  1. 瀏覽至 移轉作業 索引標籤。
  2. 選擇您的工作以查看進度、速度及預計完成時間。
  3. 選取 [記錄 ] 以檢查是否有任何錯誤或警告。
  4. 遷移完成後,請在 Azure Blob 儲存體 中驗證資料。

若要深入瞭解記憶體行動器複製和作業記錄,請參閱 如何啟用 Azure 記憶體行動器複製和作業記錄 一文。


遷移後驗證

遷移後的資料驗證確保資料正確,且從 GCS 轉移到 Azure Blob 儲存體 的過程已完成。 此驗證過程透過將遷移資料與來源相同資料進行比較,驗證資料完整性。

請依照以下步驟完成手動驗證並清理未使用的 GCS 資源:

  1. 比較來源與目標:透過比較 GCS 桶與 Azure Blob 容器間的物件數量與總資料大小,確認所有預期物件都已傳輸。
  2. 抽查資料完整性:從來源端和目標端下載具代表性的物件樣本,並比較檢查碼。
  3. 啟用增量同步(如有需要):如果你需要讓 GCS 桶和 Azure Blob 容器持續同步,請排程定期執行工作。
  4. 解除來源:移轉全部完成並驗證後,刪除 GCS 貯體和 HMAC 金鑰。 當不再需要時,請移除 Azure Key Vault 中相應的秘密。

疑難排解及支援

如果您在遷移過程中遇到問題,請開始從以下步驟開始排查。

問題 Resolution
移民任務失敗 請檢查複製和作業記錄中的詳細錯誤訊息。 常見原因包括憑證無效或網路連線問題。
驗證錯誤 請確認存放在 Azure Key Vault 中的 HMAC 存取金鑰和秘密金鑰是否正確且未過期。 確保來源端點的受控識別在您的 金鑰保存庫 上具有 金鑰保存庫 Secrets User 存取權限。
目標權限錯誤 確認目標端點的受管識別在目標 Blob 容器上擁有 Storage Blob Data Contributor 角色。
資料傳輸速度很慢 確保你的網路頻寬足夠。 GCS 可能會對相容 S3 的 API 請求實施速率限制。 如果發生節流,請考慮減少並行作業的數量。
同步後遺失的物件 由於 GCS 時間戳記的二級細度,與上次同步同一秒內被修改的物件可能要等到下一次工作執行才會被偵測到。 等待並執行補充同步。
目標區域中的未預期物體 GCS 目錄中的佔位物件(零位元組物件,結尾為 /)會自動跳過,且不應該出現在目標中。 若存在意外物件,請查看複製日誌以獲取詳細資訊。
來源網址被拒絕 確保來源網址使用 HTTPS,不包含查詢參數、片段或 IP 位址,且指向一個有效且完全限定的網域名稱。

如果你無法解決問題,請建立 Azure 支援 請求


以下文章能幫助您更熟悉Storage Mover服務: