將 TPU VM 連線至 Cloud Storage 值區

本頁介紹可用於儲存機器學習資料和訓練輸出內容的 Cloud Storage,並說明如何讓 TPU VM 存取 Cloud Storage 的資料物件。

事前準備

如要存取 Cloud Storage bucket,您需要將服務帳戶連結至 TPU VM。如果您在建立 TPU VM 時未指定服務帳戶,系統會使用 Compute Engine 預設服務帳戶

如要為 TPU 設定專案並建立 TPU VM 執行個體,請按照下列操作說明操作: Google Cloud

  1. 設定 TPU 專案。 Google Cloud
  2. 使用 Compute Engine 建立 TPU VM 執行個體

將資料寫入 Cloud Storage

控制台

  1. 前往 Google Cloud 控制台的 Cloud Storage 頁面。

    前往 Cloud Storage 頁面

  2. 採用以下選項建立新的值區:

    • 專屬名稱,可自由選擇,不重複即可。
    • 預設儲存空間級別:Standard
    • 位置:您建立 TPU VM 的區域。如要進一步瞭解地區和 TPU 可用性,請參閱「TPU 地區和區域」。

CLI

  1. 使用 gcloud storage buckets create 指令建立 Cloud Storage bucket:

    gcloud storage buckets create gs://BUCKET_NAME --location REGION
    

    替換下列預留位置:

    • BUCKET_NAME 是您想要建立的值區名稱。
    • REGION 是您建立 TPU VM 的區域。如要進一步瞭解地區和 TPU 可用性,請參閱「TPU 地區和區域」。
  2. 使用 gcloud storage cp 指令將檔案寫入 Cloud Storage 值區:

    gcloud storage cp -r LOCAL_DATA_DIR gs://BUCKET_NAME
    

    替換下列預留位置:

    • LOCAL_DATA_DIR 是資料的本機路徑。 例如:$HOME/your-data
    • BUCKET_NAME 是您要寫入資料的值區名稱。

授予 TPU VM 存取 Cloud Storage 的權限

您必須授予 TPU VM 讀取和寫入 Cloud Storage 物件的權限。為此,您必須授予附加至 TPU VM 的服務帳戶必要權限。以下各節說明如何找出附加的服務帳戶,並授予必要存取權。

授權給附加的服務帳戶

建議使用精細的存取控制清單 (ACL),授權連結的服務帳戶。您也可以使用 IAM 權限授予更廣泛的權限。

使用 TPU VM 適用的精細 ACL (建議)

如果您將訓練資料儲存在 Cloud Storage 上,那麼附加的服務帳戶就需要該值區的讀取和寫入權限。

控制台

  1. 請前往 Cloud Storage 瀏覽器頁面檢視您的值區。

    前往 Cloud Storage 瀏覽器

  2. 選取要修改 ACL 的 bucket。

  3. 選取 [權限] 分頁標籤。

  4. 選取「授予存取權」新增權限,然後在「新增主體」編輯方塊中輸入完整的服務帳戶名稱。

  5. 如果您要「讀取」這個值區,您必須授權讓附加的服務帳戶能夠讀取該資源,為此,可以授予服務帳戶 Storage Legacy > Storage Legacy Bucket Reader 角色。

  6. 如果您要「寫入」這個值區,您必須授權讓附加的服務帳戶能夠寫入該資源,為此,可以授予服務帳戶 Storage Legacy > Storage Legacy Bucket Writer 角色。

CLI

  1. 如果您要「讀取」這個值區,請將讀取權限授予給附加的服務帳戶:

     gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:SERVICE_ACCOUNT --role=roles/storage.objectViewer
    

    替換下列預留位置:

    • BUCKET_NAME 是您要從中讀取資料的值區名稱。
    • SERVICE_ACCOUNT 是附加至 TPU VM 的服務帳戶名稱。
  2. 如果您要「寫入」這個值區,請將寫入權限授予給附加的服務帳戶:

     gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:SERVICE_ACCOUNT --role=roles/storage.objectCreator
    

    替換下列預留位置:

    • BUCKET_NAME 是您要寫入資料的值區名稱。
    • SERVICE_ACCOUNT 是附加至 TPU VM 的服務帳戶名稱。

使用 TPU VM 適用的身分與存取權管理權限 (替代方案)

如果您要授予更廣泛的權限,而不是明確授予各個 bucket 的存取權,可以將身分與存取權管理 (IAM) 儲存空間管理員角色授予至 TPU VM 連結的服務帳戶。

  1. 前往「IAM」(身分與存取權管理) 頁面

  2. 按一下「授予存取權」按鈕,將主體新增至專案。

  3. 在「Principals」(主體) 欄位中輸入附加服務帳戶的名稱。

  4. 按一下「角色」下拉式清單。

  5. 請啟用下列角色:

    • [Project] (專案) > [Viewer] (檢視者)

    • [Storage] > [Storage Admin] (Storage 管理員)

Cloud Storage FUSE

Cloud Storage FUSE 可讓您掛接及存取 Cloud Storage bucket,做為本機檔案系統。應用程式可透過標準檔案系統語意,讀取及寫入 bucket 中的物件。

如要進一步瞭解 Cloud Storage FUSE 的運作方式,以及 Cloud Storage FUSE 作業如何對應至 Cloud Storage 作業,請參閱 Cloud Storage FUSE 說明文件。如要進一步瞭解如何使用 Cloud Storage FUSE,例如如何安裝 gcsfuse CLI 和在 GitHub 上掛接值區,請參閱相關說明。

清除所用資源

  1. 如果尚未中斷與 TPU VM 的連線,請中斷連線:

    exit
    
  2. 在 Cloud Shell 或終端機中,刪除 TPU VM:

    gcloud compute instances delete TPU_NAME --zone=ZONE
    

    替換下列預留位置:

    • TPU_NAME:您建立的 TPU VM 名稱。
    • ZONE:建立 TPU VM 的可用區。
  3. 執行 gcloud compute instances list,確認 VM 是否已刪除。刪除作業可能需要幾分鐘才能完成。

    gcloud compute instances list --zone=ZONE
    

    ZONE 替換為建立 TPU VM 的區域。

    如果回應未列出 TPU 執行個體,表示已成功刪除。

  4. 執行下列指令,刪除 Cloud Storage bucket 及其內容,並將 BUCKET_NAME 替換為您建立的 bucket 名稱:

    gcloud storage rm --recursive gs://BUCKET_NAME
    

    替換下列預留位置:

    • BUCKET_NAME:要刪除的 bucket 名稱。

後續步驟