連線至 Cloud Storage 值區
本頁介紹可用於儲存機器學習資料和訓練輸出的 Cloud Storage,並說明如何讓 Cloud TPU 存取 Cloud Storage 的資料物件。
事前準備
您需要 Cloud TPU 服務帳戶,才能存取 Cloud Storage 值區。
為專案建立 Cloud TPU 服務帳戶。
gcloud beta services identity create --service tpu.googleapis.com --project project-id
指令會傳回 Cloud TPU 服務帳戶,格式如下:
service-project-number@cloud-tpu.iam.gserviceaccount.com
請按照 Cloud TPU 快速入門指南或管理 TPU 中的操作說明,設定 Google Cloud 專案並建立 Cloud TPU VM 和 TPU 資源。
將資料寫入 Cloud Storage
控制台
前往 Google Cloud 控制台的 Cloud Storage 頁面。
建立新的值區時,請指定以下選項:
- 專屬名稱,可自由選擇,不重複即可。
- 預設儲存空間級別:
Standard - 位置:您建立 Cloud TPU 的地區。如要進一步瞭解地區和 TPU 可用性,請參閱 TPU 地區和區域。
CLI
使用
gcloud storage buckets create指令來建立 Cloud Storage 值區:gcloud storage buckets create gs://bucket-name --location region
其中:
region 是您建立 Cloud TPU 時所選擇的地區。如要進一步瞭解地區和 TPU 可用性,請參閱 TPU 地區和區域。
bucket-name 是您想要建立的值區名稱。
使用
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 服務帳戶就需要該值區的讀取和寫入權限。
控制台
請前往 Cloud Storage 瀏覽器頁面檢視您的值區。
選取要修改 ACL 的 bucket。
選取 [權限] 分頁標籤。
選取「授予存取權」新增權限,然後在「新增主體」編輯方塊中輸入完整的服務帳戶名稱。
如果您要「讀取」這個值區,您必須授權讓 TPU 服務帳戶能夠讀取該資源,為此,可以授予服務帳戶
Storage Legacy > Storage Legacy Bucket Reader角色。如果您要「寫入」這個值區,您必須授權讓 TPU 服務帳戶能夠寫入該資源,為此,可以授予服務帳戶
Storage Legacy > Storage Legacy Bucket Writer角色。
CLI
如果您要「讀取」這個值區,請將讀取權限授予給 Cloud TPU 服務帳戶:
gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectViewer
如果您要「寫入」這個值區,請將寫入權限授予給 Cloud TPU 服務帳戶:
gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectCreator
使用 Cloud TPU 適用的身分與存取權管理權限 (替代方案)
如果您要授予更廣泛的權限,而不是明確授予各個 bucket 的存取權,可以將身分與存取權管理 (IAM) 儲存管理員角色授予 Cloud TPU 服務帳戶。
按一下「授予存取權」按鈕,將主體新增至專案。
在「Principals」(主體) 文字方塊輸入 Cloud TPU 服務帳戶的名稱。
按一下 [Roles] (角色) 下拉式清單。
請啟用下列角色:
[Project] (專案) > [Viewer] (檢視者)
[Storage] > [Storage Admin] (Storage 管理員)
Cloud Storage FUSE
透過 Cloud Storage FUSE,您可以掛接 Cloud Storage 值區,並將其做為本機檔案系統存取。應用程式就能使用標準檔案系統語意,讀取及寫入 bucket 中的物件。
如要進一步瞭解 Cloud Storage FUSE 的運作方式,以及 Cloud Storage FUSE 作業如何對應至 Cloud Storage 作業,請參閱 Cloud Storage FUSE 說明文件。如要進一步瞭解如何使用 Cloud Storage FUSE,例如如何安裝 gcsfuse CLI 和掛接值區,請前往 GitHub。
清除所用資源
如果尚未中斷與 Cloud TPU 的連線,請中斷連線:
(vm)$ exit
在 Cloud Shell 中刪除 Cloud TPU:
gcloud compute tpus tpu-vm delete tpu-name --zone=zone
執行
gcloud compute tpus tpu-vm list,確認 VM 是否已刪除。刪除作業可能需要幾分鐘才能完成。gcloud compute tpus tpu-vm list --zone=zone
如果畫面中顯示如下回應,則代表已成功刪除執行個體。
Listed 0 items執行下列指令,刪除 Cloud Storage bucket 及其內容,並將 bucket-name 替換為您建立的 bucket 名稱:
gcloud storage rm --recursive gs://bucket-name
後續步驟
- 如要進一步瞭解如何建立 Cloud Storage bucket,以及將資料寫入這些 bucket,請參閱 Cloud Storage 建立 bucket 說明文件。
- 如要進一步瞭解服務帳戶,請參閱驗證總覽。