连接到 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 虚拟机和 TPU 资源。

将数据写入 Cloud Storage

控制台

  1. 转到 Google Cloud 控制台中的 Cloud Storage 页面。

    转到 Cloud Storage 页面

  2. 创建一个新的存储桶,并指定以下选项:

    • 您选择的唯一名称。
    • 默认存储类别:Standard
    • 位置:us-central1

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 服务账号授权

为 Cloud TPU 使用细粒度 ACL(推荐)

如果您将训练数据存储在 Cloud Storage 上,则 Cloud TPU 服务账号需要存储桶的读写权限。

控制台

  1. 转到 Cloud Storage 浏览页面,查看您拥有的存储分区。

    转到 Cloud Storage 浏览器

  2. 选择您要修改其 ACL 的存储桶。

  3. 选择 Permissions 标签。

  4. 选择 Add 添加新权限,并在 New Principals 编辑框中输入完整的服务账号名称。

  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 服务帐号授予 Identity Access Management (IAM) Storage Admin 角色。

  1. 转到 IAM

  2. 点击 + 添加按钮将主账号添加到项目中。

  3. 主账号文本框中输入 Cloud TPU 服务账号的名称。

  4. 点击角色下拉列表。

  5. 启用以下角色:

    • Project > Viewer

    • Storage > Storage Admin

Cloud Storage FUSE

Cloud Storage FUSE 允许您将 Cloud Storage 存储分区作为本地文件系统装载和访问。这样,应用就能使用标准文件系统语义读取和写入存储桶中的对象。

如需详细了解 Cloud Storage FUSE 的工作原理以及 Cloud Storage FUSE 操作如何映射到 Cloud Storage 操作,请参阅 Cloud Storage FUSE 文档。您可以在 GitHub 上找到有关如何使用 Cloud Storage FUSE 的更多信息,例如如何安装 gcsfuse CLI 和装载存储分区。

后续步骤