将 Filestore 实例装载到 Cloud TPU 虚拟机

Filestore 是一种适用于 Compute Engine 的全代管式网络附加存储 (NAS)。Filestore 与现有企业应用无缝兼容,并支持与 NFSv3 兼容的任何客户端。

准备工作

如需在 Cloud TPU 虚拟机上装载 Filestore 实例,请向与 Cloud TPU 虚拟机关联的服务帐号添加 Filestore 角色(Cloud Filestore Editor 或 Cloud Filestore Viewer)。如果您在创建 Cloud TPU 虚拟机时未指定自定义服务帐号,则 Cloud TPU 虚拟机会使用默认 Compute Engine 服务帐号。如需详细了解如何在创建 Cloud TPU 虚拟机时指定 服务帐号,请参阅 设置 Cloud TPU 环境。 如需详细了解如何创建服务帐号,请参阅 创建服务账号

向服务帐号添加 Filestore Editor 角色

本部分介绍了如何向默认 Compute Engine 服务帐号添加 Cloud Filestore Editor 角色。请按照以下说明向任何服务账号添加 Cloud Filestore Editor 角色。在第 2 步中,搜索并使用自定义服务帐号,而不是默认 Compute Engine 服务帐号。

  1. 转到 IAM 控制台

  2. 选择按主账号查看 标签页,然后在过滤条件 字段中输入Name:Compute Engine default service account

  3. 点击服务帐号旁边的修改 。 IAM 控制台会显示一个对话框,其中列出了分配给默认 Compute Engine 服务帐号的角色。

  4. 点击添加 以添加其他角色。

  5. 展开选择角色 菜单,在过滤条件中输入 Filestore,然后选择 Cloud Filestore Editor

  6. 点击保存 以关闭对话框。您已向默认 Compute Engine 服务帐号添加了 Filestore Editor 角色。

如需详细了解服务账号,请参阅服务账号概览。 如需详细了解 IAM 角色,请参阅角色和权限

创建 Filestore 实例

按照 创建 Filestore 实例中的说明创建一个 Filestore 实例。

在 Cloud TPU 虚拟机上装载 Filestore 实例

在 Cloud TPU 虚拟机上装载 Filestore 实例的命令取决于您使用的是单个 Cloud TPU 虚拟机还是 Cloud TPU 切片。

在单个 Cloud TPU 虚拟机上装载 Filestore 实例

  1. 使用 SSH 连接到 Cloud TPU 虚拟机。

    gcloud compute ssh TPU_NAME \
      --zone=ZONE
    

    替换以下占位符:

    • TPU_NAME:TPU 虚拟机的名称。
    • ZONE:TPU 虚拟机的可用区。
  2. 安装 nfs-common 软件包。

    sudo apt-get update --allow-releaseinfo-change \
      && sudo apt-get -y update \
      && sudo apt-get -y install nfs-common
    
  3. 创建一个用于装载 NFS 的目录。

    sudo mkdir -p MOUNT_DIR \
      && sudo chmod ugo+rw MOUNT_DIR
    

    替换以下占位符:

    • MOUNT_DIR:您要在其中装载 Filestore 实例的目录。
  4. 查找 Filestore 的 IP 地址。

    gcloud filestore instances describe FILESTORE_INSTANCE_NAME \
      --location FILESTORE_REGION
    

    替换以下占位符:

    • FILESTORE_INSTANCE_NAME:Filestore 实例的名称。
    • FILESTORE_REGION:Filestore 实例的区域。
  5. 将 Filestore 实例装载到 Cloud TPU 虚拟机上的装载目录。

    sudo mount FILESTORE_IP:FILE_SHARE_NAME MOUNT_DIR
    

    替换以下占位符:

    • FILESTORE_IP:Filestore 实例的 IP 地址。
    • FILE_SHARE_NAME:Filestore 实例上的文件共享的名称。
    • MOUNT_DIR:您要在其中装载 Filestore 实例的目录。

在 Cloud TPU 切片上装载 Filestore 实例

Cloud TPU 切片以 Compute Engine 托管实例组 (MIG) 的形式预配。由于 MIG 会在计算容量中分配虚拟机,因此请使用附加到实例模板的启动脚本,将 Filestore 实例装载到切片中的所有机器。这样可确保在创建实例或自动修复实例时,装载会自动变为可用状态。

  1. 查找 Filestore 实例的 IP 地址。

    gcloud filestore instances describe FILESTORE_INSTANCE_NAME \
      --location FILESTORE_REGION
    

    替换以下占位符:

    • FILESTORE_INSTANCE_NAME:Filestore 实例的名称。
    • FILESTORE_REGION:Filestore 实例的区域。
  2. 创建启动脚本。该脚本会安装 nfs-common 软件包、创建装载目录并附加 Filestore 实例。将以下代码另存为名为 mount-filestore.sh 的本地文件。

    #!/bin/bash
    sudo apt-get update --allow-releaseinfo-change && sudo apt-get -y update && sudo apt-get -y install nfs-common
    sudo mkdir -p MOUNT_DIR
    sudo chmod ugo+rw MOUNT_DIR
    sudo mount FILESTORE_IP:FILE_SHARE_NAME MOUNT_DIR
    

    替换以下占位符:

    • FILESTORE_IP:Filestore 实例的 IP 地址。
    • FILE_SHARE_NAME:Filestore 实例上的文件共享的名称。
    • MOUNT_DIR:您要在其中装载 Filestore 实例的目录。
  3. 将启动脚本应用于实例模板。 为 MIG 创建实例模板时,请使用 --metadata-from-file 标志来提供脚本。

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
      --metadata-from-file=startup-script=mount-filestore.sh \
      ...
    

    替换以下占位符:

    • INSTANCE_TEMPLATE_NAME:实例模板的名称。

将数据写入 Filestore 实例

授予用于装载 Filestore 实例的目录的 Linux 读写权限。然后,您就可以像使用本地文件系统一样使用该目录。