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

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

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

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

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

透過 Storage 移轉服務,您可以建立 Google 代管的轉移作業,或設定自行託管的轉移作業,全權管理網路轉送和頻寬用量。

將資料從 Cloud Storage bucket 移轉至 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. 選用:gcloud 是 Google Cloud SDK 的主要元件,會安裝在每個 Compute Engine VM 上。如要從本機指令列執行下列任何步驟,請設定 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 移轉服務代理程式。

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

      1. 設定 VM,規格如下:

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

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

        3. 在「身分及 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 是您在上一個步驟中對應的目錄名稱。這是 Compute Engine VM 執行個體上的目錄,您要在其中掛接 Filestore 執行個體。

    9. 確認掛接點:

      mount -l | grep nfs
      

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

      10.66.55.194:/my_fs_instance on /home/usr/my_dir type nfs (rw,relatime,vers=3,rsize=524288,wsize=524288,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 執行個體掛接至每個執行個體。使用同一個服務帳戶管理所有四個 Compute Engine VM。將服務帳戶金鑰的本機副本暫時儲存至每個 VM。

設定 Storage 移轉服務

  1. 建立代理程式集區。

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

    1. 輸入下列指令:

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

      其中:

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

      記下傳回的服務代理人相關通知,並儲存相關聯的電子郵件地址,以供下一個步驟使用。

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

      • 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 bucket 移至 Filestore 執行個體。 參考您先前儲存的本機 POSIX 目錄,指定目的地路徑。例如:/home/usr/my_dir

監控轉移狀態

控制台

在 Google Cloud 控制台的「轉移工作」頁面中,監控轉移作業的狀態。

指令列

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

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

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

後續步驟