將大型資料集從 Cloud Storage 移轉至 Filestore

使用 Storage 移轉服務,將大型資料集從 Cloud Storage 移至 Filestore 檔案共用區。

工作流程:顯示使用 Storage 移轉服務,將資料從 Cloud Storage 移至 Filestore 執行個體。Filestore 執行個體已掛接至多個 Compute Engine 執行個體。

無論資料是託管在 Cloud Storage、第三方雲端供應商或地端部署,Storage 移轉服務都能協助您快速安全地在物件檔案儲存系統之間轉移大量資料集。

Storage 轉移服務可加速處理大型資料集的轉移作業,處理數百 TB 以上的資料。將大型資料集移至雲端,充分利用掛接 Filestore 執行個體的基礎 Compute Engine 執行個體提供的資料分析和機器學習作業。

您可以使用 Storage 移轉服務建立 Google 代管的轉移作業,或設定自行託管的轉移作業,以便完全掌控網路轉送和頻寬用量。

將資料從 Cloud Storage 值區轉移至 Filestore 檔案共用區

使用 Storage 移轉服務將資料從 Cloud Storage 移轉至 Filestore 檔案共用區時,需要執行下列工作:

  1. 設定環境。
  2. 設定 Filestore。
  3. 設定 Storage 移轉服務。
  4. 建立並啟動轉移工作。

以下各節將逐步說明每項任務。

設定環境

  1. 選取或建立專案

    為符合本指南的目的,請確認來源和目的地資源位於同一個專案。

    在 Google Cloud 控制台的專案選擇器頁面中,選取或建立Google Cloud 專案。

    如果您要測試 Filestore,且不打算保留所建立的資源,建議您建立專案,不要選取現有專案。測試完成後,您可以刪除專案,移除與專案相關聯的所有資源。

    前往專案選取器

  2. 啟用計費功能

    請確認您已為 Google Cloud 專案啟用計費功能。瞭解如何確認您已啟用專案的計費功能

  3. 啟用下列 API:

    • Filestore API

    • Resource Manager API

    • Pub/Sub API

    • Cloud Storage API

    • Storage Transfer API

    • Cloud Logging API

    • Compute Engine API

    • Service Usage API

    • Identity and Access Management API

  4. 選用:在每個 Compute Engine VM 上安裝 Google Cloud SDK 的主要元件 gcloud。如果您要從本機指令列執行下列任何步驟,請先設定 Google Cloud SDK。

    安裝並初始化 Google Cloud SDK

    如果您之前已安裝 Google Cloud SDK,請執行以下指令,確認您擁有最新版本:

    gcloud components update
    
  5. 建立服務帳戶。在「將專案存取權授予這個服務帳戶」部分,指派下列角色:

    • Owner

    • Project IAM Admin

    • Role Administrator

    • Pub/Sub Editor

    • Cloud Filestore Editor

    • Storage Object Admin

    • Storage Transfer Admin

    • Storage Transfer Agent

    1. 複製並儲存您建立的服務帳戶名稱,以利後續步驟使用。

    2. 為剛建立的帳戶建立服務帳戶金鑰。為了配合本指南的目的,請只建立一個鍵。下載金鑰檔案,並儲存以供後續步驟使用。

  6. 為使用者帳戶指派角色。在「IAM」頁面中找出使用者帳戶,然後指派下列角色:

    • Owner

    • Project IAM Admin

    • Role Administrator

    • Storage Transfer Admin

    • Storage Admin

    詳情請參閱「使用者權限」。

設定 Filestore

  1. 建立 Filestore 執行個體。建立執行個體時,請套用下列規格:

    1. 確認 Cloud Storage 值區、用戶端 VM 和 Filestore 執行個體都位於同一個地區

    2. 選取區域企業執行個體類型。

    3. 選用:如果是較大的資料集,請要求增加配額

    4. 複製執行個體名稱和 IP 位址,並儲存供後續步驟使用。

  2. 在用戶端機器上掛接 Filestore 執行個體

    本指南說明如何使用四個 Compute Engine VM 做為 NFS 用戶端機器來進行轉移作業。您將建立一個服務帳戶,代表四部用戶端電腦運作。每台用戶端電腦都會安裝三個 Storage Transfer Service 代理程式。

    1. 建立可存取其他Google Cloud 服務的 Compute Engine VM 執行個體。

      1. 設定 VM,並採用下列規格:

        1. 指定位置時,請確保 Google Cloud 值區、用戶端 VM 和 Filestore 執行個體都位於相同地區

        2. 每個 Storage Transfer Service 代理程式需要 4 個 vCPU 和 8 GB RAM。為獲得最佳效能,請在每個 VM 中執行多個代理程式。為了配合本指南的目的,請佈建 e2-standard-32 Compute Engine 虛擬機器執行個體。

        3. 在「Identity and API Access」(身分及 API 存取權) 區段中,指定下列項目:

          1. 在「Service accounts」下拉式選單中,選取您剛剛建立的服務帳戶。
    2. 建立 Compute Engine VM 執行個體後,請使用 SSH 登入機器。在「Compute Engine VM 執行個體」頁面中找出您建立的執行個體,然後按一下「SSH」SSH

    3. 使用 Vim 等文字編輯器建立服務帳戶金鑰檔案的副本,並暫時將其儲存至 VM 的本機。例如 service-account-key.json

    4. 在 VM 上安裝 Docker

    5. gcloud 已在 Compute Engine VM 執行個體上安裝。在 SSH 指令列中輸入下列指令,授權服務帳戶使用 gcloud

      gcloud auth activate-service-account ACCOUNT --key-file=KEY_FILE
      

      其中:

      • ACCOUNT 是您建立的服務帳戶電子郵件地址。例如:my-service-account@my-project.iam.gserviceaccount.com

      • KEY_FILE 是先前複製的金鑰檔案相對本機路徑。例如:sa-key.json

    6. 請透過 SSH 指令列安裝 NFS:

      sudo apt-get -y update && sudo apt-get install nfs-common
      
    7. 建立對應至 Filestore 檔案共用區的本機目錄。針對後續的 Compute Engine VM 執行個體重複執行這些步驟時,請使用相同的名稱和路徑:

      sudo mkdir -p MY_DIRECTORY
      

      其中:

      • MY_DIRECTORY 是 Compute Engine VM 執行個體的本機 POSIX 目錄名稱。例如:/usr/local/my_dir
    8. 執行 mount 指令,掛接與 Filestore 執行個體相關聯的檔案共用區。您可以使用任何 NFS 掛接選項。為獲得最佳效能,請參閱「在 Compute Engine VM 執行個體上掛接檔案共用區」一文中的 NFS 掛接建議:

      sudo mount -o rw IP_ADDRESS:/FILE_SHARE MY_DIRECTORY
      

      其中:

      • IP_ADDRESS 是 Filestore 執行個體的 IP 位址。您可以在「Filestore 執行個體」頁面中找到這項資訊。

      • FILE_SHARE 是執行個體上的檔案共用區名稱。例如:my_fs_instance

      • MY_DIRECTORY 是您在上一個步驟中對應到的目錄名稱。這是您要掛接 Filestore 執行個體的 Compute Engine VM 執行個體目錄。

    9. 確認掛接點:

      mount -l | grep nfs
      

      這會傳回類似以下的內容:

      10.66.55.194:/my_fs_instance on /home/usr/my_dir type nfs (rw,relatime,vers=3,rsize=262144,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.66.55.194,mountvers=3,mountport=2050,mountproto=udp,local_lock=none,addr=10.66.55.194)
      

      或者,您也可以使用下列指令:

      df -h --type=nfs
      

      這會傳回類似以下的內容:

      Filesystem                       Size  Used Avail Use% Mounted on
      10.66.55.194:/my_fs_instance  1.0T     0  1.0T   0% /home/usr/my_dir
      
    10. 請記下本機 POSIX 目錄路徑,並在後續步驟中使用。

    11. 重複執行上述步驟,建立另外三個 Compute Engine VM 執行個體,並將相同的 Filestore 例項掛接至每個 VM。使用相同的服務帳戶管理所有四個 Compute Engine VM。將服務帳戶金鑰的本機副本暫時儲存至每個 VM。

設定 Storage 移轉服務

  1. 建立代理程式集區。

  2. 授權服務代理使用所有 Storage 移轉服務功能。

    1. 輸入下列指令:

      gcloud transfer authorize --add-missing --creds-file=KEY_FILE
      

      其中:

      • KEY_FILE 是先前複製的金鑰檔案相對本機路徑。例如:sa-key.json

      請注意服務專員的傳回通知,並儲存相關聯的電子郵件地址,以利下一個步驟。

    2. 幾分鐘後,您應該會在 IAM 頁面中看到服務代理。完成傳播後,請確認已指派下列角色:

      • Pub/Sub Editor

      • Storage Admin

  3. 安裝轉移代理程式

    每個 Storage Transfer Service 代理程式都需要 4 個 vCPU 和 8 GB RAM。

    1. 建議您安裝多個代理程式,以便盡量提高容錯能力,並充分利用 Storage Transfer Service 提供的動態調整功能。以下範例說明如何在用戶端電腦上安裝三個代理程式。在 SSH 指令列執行下列指令:

      gcloud transfer agents install --pool=MY_AGENT_POOL --count=3 \
      --creds-file=MY_SERVICE_ACCOUNT_KEY_FILE
      

      其中:

      • MY_AGENT_POOL 是您先前建立的服務專員集區名稱。例如:my-agent-pool

      • MY_SERVICE_ACCOUNT_KEY_FILE 是服務帳戶金鑰的相對路徑。例如:/relative/path/to/service-account-key.json

    2. 針對每部用戶端電腦重複執行這些步驟。

建立並啟動轉移工作

  1. 建立移轉工作,將資料從 Cloud Storage 值區移至 Filestore 執行個體。參照先前儲存的本機 POSIX 目錄,指定目的地路徑。例如:/home/usr/my_dir

監控轉移狀態

控制台

您可以透過 Google Cloud 控制台的「Transfer jobs」頁面,監控轉移作業的狀態。

指令列

您可以使用指令列監控狀態:

gcloud transfer jobs monitor JOB_NAME

其中:

  • JOB_NAME 是轉移工作的名稱。例如:transferJobs/OPI6300379522015192941

回應會顯示下列內容或類似內容:

Polling for latest operation name...done.
Operation name: my-sts-project_transferJobs/OPI6300379522015192941_0000000001660692377
Parent job: OPI6300379522015192941
Start time: 2022-08-16T23:26:17.600981Z
SUCCESS | 100% (731.9MiB of 731.9MiB) | Skipped: 129.8kiB | Errors: 0
End time: 2022-08-16T23:27:23.429472Z

詳情請參閱「監控代理程式活動」或「檔案系統轉移詳細資料」。

後續步驟