将大型数据集从 Cloud Storage 转移到 Filestore

使用 Storage Transfer Service 将大型数据集从 Cloud Storage 迁移到 Filestore 文件共享。

显示将数据从 Cloud Storage 移动到 Filestore 的工作流
Storage Transfer Service 存储实例。Filestore 实例已装载
多个 Compute Engine 实例

Storage Transfer Service 可帮助您快速安全地在 Google 和 Google Cloud 之间 object文件存储系统, 数据托管在 Cloud Storage、第三方云服务提供商或本地。

Storage Transfer Service 支持加速大型数据集的传输, 处理数百 TB 或更多数据。将大型数据集移至云端 以充分利用 Google Cloud 提供的分析和机器学习运维 底层 Compute Engine 实例 Filestore 实例的装载位置。

借助 Storage Transfer Service,您可以创建由 Google 管理的传输, 配置自行托管的传输,以完全控制网络路由和 带宽用量。

将数据从 Cloud Storage 存储桶转移到 Filestore 文件共享

使用以下方法将数据从 Cloud Storage 转移到 Filestore 文件共享: Storage Transfer Service 需要以下任务:

  1. 设置环境。
  2. 配置 Filestore。
  3. 配置 Storage Transfer Service。
  4. 创建并启动转移作业。

以下部分将引导您完成各项任务。

设置环境

  1. 选择或创建项目。

    在本指南中,请确保您的源资源和目标资源 位于同一项目中。

    在 Google Cloud Console 的“项目选择器”页面上,选择或创建一个 Google Cloud 项目。

    如果您正在测试 Filestore 但不打算保留资源 我们建议您直接创建项目 现有项目完成测试后,您可以删除项目 移除与项目关联的所有资源。

    转到“项目选择器”

  2. 启用结算功能

    确保您的 Google Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  3. 启用以下 API

    • Filestore API

    • Resource Manager API

    • Pub/Sub API

    • Cloud Storage API

    • Storage Transfer API

    • Cloud Logging API

    • Compute Engine API

    • Service Usage API

    • Identity and Access Management API

  4. 可选:已安装 gcloud,这是 Google Cloud SDK 的主要组件 运行 24 万个 Pod如果执行以下任何步骤 设置 Google Cloud SDK。

    安装并初始化 Google Cloud SDK

    如果您之前安装了 Google Cloud SDK,请确保您使用的是最新版本的 可用的版本:

    gcloud components update
    
  5. 创建服务账号。向此服务账号授予对项目的访问权限部分中, 分配以下角色:

    • Owner

    • Project IAM Admin

    • Role Administrator

    • Pub/Sub Editor

    • Cloud Filestore Editor

    • Storage Object Admin

    • Storage Transfer Admin

    • Storage Transfer Agent

    1. 复制并保存您创建的服务账号的名称,以备后续步骤使用。

    2. 创建服务账号密钥 为您刚刚创建的账号创建服务账号在本指南中, 请仅创建一个密钥。下载密钥文件并保存,以供后续步骤使用。

  6. 为用户账号分配角色。在 IAM 中 页面上,找到您的用户账号,并为其分配以下角色:

    • Owner

    • Project IAM Admin

    • Role Administrator

    • Storage Transfer Admin

    • Storage Admin

    如需了解详情,请参阅用户权限

配置 Filestore

  1. 创建 Filestore 实例。 创建实例时,请应用以下规范:

    1. 确保 Cloud Storage 存储桶、客户端虚拟机和 Filestore 它们都位于同一区域

    2. 选择区域级enterprise 实例类型。

    3. 可选:对于更大的数据集,请申请增加配额

    4. 复制实例名称和 IP 地址并保存,供后续步骤使用。

  2. 在客户端机器上装载 Filestore 实例

    本指南介绍了一个使用 4 个 Compute Engine 虚拟机作为 NFS 客户端机器。您将创建一个服务账号 代表四台客户端机器每台客户端机器 已安装 Storage Transfer Service 代理。

    1. 创建可访问其他 Google Cloud 服务。

      1. 配置虚拟机 并采用以下规范:

        1. 在指定位置时,请确保 Google Cloud 存储桶。 客户端虚拟机和 Filestore 实例都位于 同一区域

        2. 每个 Storage Transfer Service 代理都需要 4 个 vCPU 和 8 GB RAM。为获得最佳性能,请在每个虚拟机上运行多个代理。 根据本指南,请预配 e2-standard-32 Compute Engine 虚拟机实例

        3. 身份和 API 访问权限部分,指定以下内容:

          1. 服务账号下拉菜单中,选择相应服务 账号。
    2. 创建 Compute Engine 虚拟机实例后,登录 使用 SSH通过 Compute Engine 虚拟机实例 页面上,找到您创建的实例,然后点击 SSH

    3. 使用文本编辑器(如 Vim)创建服务账号密钥的副本 并将其临时保存到虚拟机本地例如 service-account-key.json

    4. 在虚拟机上安装 Docker

    5. gcloud”已存在 安装在 Compute Engine 虚拟机实例上。通过 SSH 命令 中,输入以下命令以授权 服务账号以使用 gcloud

      gcloud auth activate-service-account ACCOUNT --key-file=KEY_FILE
      

      其中:

      • ACCOUNT 是您用于登录的服务账号的电子邮件地址 创建。例如 my-service-account@my-project.iam.gserviceaccount.com

      • KEY_FILE 是您刚才创建的密钥文件的相对本地路径 已复制。例如 sa-key.json

    6. 仍然使用 SSH 命令行安装 NFS:

      sudo apt-get -y update && sudo apt-get install nfs-common
      
    7. 创建一个本地目录以映射到 Filestore 文件共享。 在对后续 Compute Engine 虚拟机重复这些步骤时 使用相同的名称和路径:

      sudo mkdir -p MY_DIRECTORY
      

      其中:

      • MY_DIRECTORY 是 Compute Engine 虚拟机实例例如 /usr/local/my_dir
    8. 装载与 Filestore 实例关联的文件共享 方法是运行 mount 命令。您可以使用任何 NFS 装载选项。 如需获得最佳性能,请参阅 在 Compute Engine 虚拟机实例上装载文件共享

      sudo mount -o rw,intr IP_ADDRESS:/FILE_SHARE MY_DIRECTORY
      

      其中:

      • IP_ADDRESS 是 Filestore 实例的 IP 地址。您可以在 Filestore 实例 页面。

      • FILE_SHARE 是实例上的文件共享的名称。 例如 my_fs_instance

      • MY_DIRECTORY 是您映射的目录的名称 创建 Deployment 清单这是 Compute Engine 虚拟机上的目录 您要在其中装载 Filestore 实例的实例。

    9. 确认装载点:

      mount -l | grep nfs
      

      这将返回以下内容或类似结果:

      10.66.55.194:/my_fs_instance on /home/usr/my_dir type nfs (rw,relatime,vers=3,rsize=262144,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.66.55.194,mountvers=3,mountport=2050,mountproto=udp,local_lock=none,addr=10.66.55.194)
      

      或者,您也可以使用以下命令:

      df -h --type=nfs
      

      这将返回以下内容或类似结果:

      Filesystem                       Size  Used Avail Use% Mounted on
      10.66.55.194:/my_fs_instance  1.0T     0  1.0T   0% /home/usr/my_dir
      
    10. 记下本地 POSIX 目录路径并保存,供后续步骤使用。

    11. 重复前面的步骤,再创建三个 Compute Engine 虚拟机 并在每个实例上装载相同的 Filestore 实例。使用 使用同一个服务账号来管理所有四个 Compute Engine 虚拟机。 将服务账号密钥的本地副本暂时保存到每个虚拟机。

配置 Storage Transfer Service

  1. 创建代理池。

  2. 为所有 Storage Transfer Service 授权服务代理 功能。

    1. 输入以下命令:

      gcloud transfer authorize --add-missing --creds-file=KEY_FILE
      

      其中:

      • KEY_FILE 是您刚才创建的密钥文件的相对本地路径 已复制。例如 sa-key.json

      记下系统返回的有关服务代理的通知,然后保存 关联的电子邮件地址。

    2. 几分钟后,您应该会在 IAM 页面。传播后,验证 分配的角色:

      • Pub/Sub Editor

      • Storage Admin

  3. 安装转移代理

    每个 Storage Transfer Service 代理都需要 4 个 vCPU 和 8 GB RAM。

    1. 我们建议安装多个代理,以最大限度地提高容错能力并 充分利用 Storage Transfer Service 提供的动态伸缩。通过 以下示例展示了如何在客户端机器上安装三个代理。 在 SSH 命令行中,运行以下命令:

      gcloud transfer agents install --pool=MY_AGENT_POOL --count=3 \
      --creds-file=MY_SERVICE_ACCOUNT_KEY_FILE
      

      其中:

      • MY_AGENT_POOL 是您之前使用的代理池的名称 创建。例如 my-agent-pool

      • MY_SERVICE_ACCOUNT_KEY_FILE 是 服务账号密钥。例如 /relative/path/to/service-account-key.json

    2. 对每台客户端计算机重复上述步骤。

创建并启动转移作业

  1. 创建转移作业,将数据从 Cloud Storage 存储桶迁移至 Filestore 实例。 引用您之前保存的本地 POSIX 目录以指定 目标路径。例如 /home/usr/my_dir

监控转移状态

控制台

通过转移作业监控转移作业的状态 页面

命令行

您可以使用命令行监控状态:

gcloud transfer jobs monitor JOB_NAME

其中:

  • JOB_NAME 是转移作业的名称。例如 transferJobs/OPI6300379522015192941

响应会显示以下内容或类似内容:

Polling for latest operation name...done.
Operation name: my-sts-project_transferJobs/OPI6300379522015192941_0000000001660692377
Parent job: OPI6300379522015192941
Start time: 2022-08-16T23:26:17.600981Z
SUCCESS | 100% (731.9MiB of 731.9MiB) | Skipped: 129.8kiB | Errors: 0
End time: 2022-08-16T23:27:23.429472Z

如需了解详情,请参阅监控代理活动文件系统转移详情

后续步骤