連線至 Cloud Storage 值區

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

事前準備

您需要 Cloud TPU 服務帳戶才能存取 Cloud Storage 值區。

  1. 為專案建立 Cloud TPU 服務帳戶。

    gcloud beta services identity create --service tpu.googleapis.com --project project-id

    指令會傳回 Cloud TPU 服務帳戶,格式如下:

    service-project-number@cloud-tpu.iam.gserviceaccount.com
    
  2. 請依照 Cloud TPU 快速入門指南管理 TPU 中的操作說明,設定 Google Cloud 專案,並建立 Cloud TPU VM 和 TPU 資源。

將資料寫入 Cloud Storage

主控台

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

    前往 Cloud Storage 頁面

  2. 建立新的值區時,請指定以下選項:

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

CLI

  1. 使用 gcloud storage buckets create 指令來建立 Cloud Storage 值區:

    gcloud storage buckets create gs://bucket-name --location region

    其中:

    • region 是您建立 Cloud TPU 時所選擇的地區。如要進一步瞭解地區和 TPU 供應情形,請參閱「TPU 地區和區域」。

    • bucket-name 是您想要建立的值區名稱。

  2. 使用 gcloud storage cp 指令將檔案寫入 Cloud Storage 值區:

    gcloud storage cp -r local-data-dir gs://bucket-name

    其中 local-data-dir 是資料的本機路徑。例如:$HOME/your-data

讓 Cloud TPU 存取 Cloud Storage

您必須授予 Cloud TPU 讀取和寫入 Cloud Storage 物件的權限。為此,您必須先讓 Cloud TPU 使用的 Cloud TPU 服務帳戶擁有必要的權限。以下各節將說明如何尋找 Cloud TPU 服務帳戶,並授予必要的存取權。

授權 Cloud TPU 服務帳戶

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

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

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

主控台

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

    前往 Cloud Storage 瀏覽器

  2. 選取要修改 ACL 的值區。

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

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

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

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

CLI

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

     gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectViewer
     

  2. 如果您要「寫入」這個值區,請將寫入權限授予給 Cloud TPU 服務帳戶:

     gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectCreator

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

若您要授予更廣泛的權限,而不是明確授予各個值區的存取權,可以將身分與存取權管理 (IAM) 儲存管理員角色授予至 Cloud TPU 服務帳戶。

  1. 前往身分與存取權管理頁面

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

  3. 在「Principals」文字方塊中輸入 Cloud TPU 服務帳戶的名稱。

  4. 按一下 [Roles] (角色) 下拉式清單。

  5. 請啟用下列角色:

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

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

Cloud Storage FUSE

Cloud Storage FUSE 可讓您將 Cloud Storage 值區掛接為本機檔案系統,並加以存取。這可讓應用程式使用標準檔案系統語意讀取及寫入值區中的物件。

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

清除所用資源

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

    (vm)$ exit
  2. 在 Cloud Shell 中刪除 Cloud TPU:

    gcloud compute tpus tpu-vm delete tpu-name --zone=zone
  3. 執行 gcloud compute tpus tpu-vm list 來驗證是否已刪除 VM。刪除作業可能需要幾分鐘才能完成。

    gcloud compute tpus tpu-vm list --zone=zone

    如果畫面顯示類似下方的回應,即代表已成功刪除執行個體。

    Listed 0 items
    
  4. 執行下列指令,刪除 Cloud Storage 值區及其內容,並將 bucket-name 替換為您建立的值區名稱:

    gcloud storage rm --recursive gs://bucket-name

後續步驟