文件系统转移要求

在创建文件系统转移作业之前,您需要启用所需的 API 并安装 Docker。

如果您在执行首次设置时遇到错误,请确认您登录的用户具有执行设置步骤所需的权限。在许多情况下,并非所有用户都具备这些权限,因此您可能需要与项目管理员联系以获取帮助。

系统要求

如需使用 Storage Transfer Service 进行文件系统转移,您需要满足以下条件:

转移代理机器要求如下所示:

  • 支持 Docker 且可以访问您计划转移的数据的 64 位 Linux 服务器或虚拟机。 Docker Community Edition,支持 CentOs、Debian、Fedora 和 Ubuntu 操作系统。

    如需使用其他 Linux 操作系统,请参阅 Docker Enterprise

  • 每个容器至少需要 8 GB 内存,并且至少具有 4 个 CPU 才能实现最佳效果。

  • 针对允许的进程 ID 数量的任何系统级或用户级限制条件(例如使用 ulimit -u 配置)必须考虑您计划运行的代理数量。每个代理进程最多可以创建数百个线程。我们建议您在运行转移代理时移除进程 ID 限制。

    使用 Podman 创建代理容器的客户应指定足够高的 --pids-limit 值,以容纳 Storage Transfer Service 代理线程。默认 --pids-limit 值为 2048,如果运行多个代理,可能会导致问题。我们建议设置 --pids-limit=-1,以允许每个容器的进程 ID 数量不受限制。

必需的端点

转移代理必须能够访问以下 DNS 端点。虽然代理可能仅使用这些端点的一部分(具体取决于其配置),但应允许所有端点,以确保完整的功能。

Google 端点

此必需端点列表可能会发生变化。为防止转移中断,我们建议您允许基本 googleapis.com 网域和 gcr.io,前提是您组织的安全政策允许这样做。

端点 服务 用途
storagetransfer.googleapis.com Storage Transfer Service 供代理用于连接到 Storage Transfer Service、接收转移任务和报告其健康状况。
storage.googleapis.com Cloud Storage 用于执行核心数据转移操作,包括列出、读取和写入 Cloud Storage 存储分区中的对象。
www.googleapis.com Google API 用于下载转移代理的版本更新。
monitoring.googleapis.com Cloud Monitoring 用于导出转移性能和代理健康状况指标。
logging.googleapis.com Cloud Logging 用于发布代理系统和活动日志。
oauth2.googleapis.com Google OAuth 2.0 用于安全地交换凭据并检索短期有效的访问令牌以进行 API 授权。
iamcredentials.googleapis.com IAM 服务账号凭据 用于在代理配置为模拟特定服务帐号时生成临时凭证。
cloudresourcemanager.googleapis.com Resource Manager 在代理安装和设置期间用于验证项目配置和权限。
gcr.io Container Registry 用于在安装期间下载 Storage Transfer Service 服务代理容器映像。

为优化转移性能,代理在与各种端点通信时可能会使用不同的 HTTP 协议,包括 HTTP/1.1 和 HTTP/2(至少)。确保您配置的代理或防火墙正确支持所有这些协议类型,并且在所有这些协议类型中都具有良好的性能。

区域端点

如果您已将代理配置为使用 区域端点 (例如 storage.REGION.rep.googleapis.com), 则必须允许这些特定域名,而不是标准 storage.googleapis.com 端点。

来源和目标存储端点

代理还需要对特定来源和目标存储系统(例如与 S3 兼容的 API、HDFS 集群或 POSIX 的 NFS)的网络访问权限。

作业和代理的扩容限制

Storage Transfer Service 对转移作业和代理有以下规模限制:

  • 每个作业的文件少于 10 亿个
  • 带宽上限必须大于 1MBps
  • 每个代理池最多有 100 个代理
  • 每个项目最多有 800 个代理池

启用 API

  1. 启用 Google Storage Transfer API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

    启用 API

安装 Docker

如果您使用 Google Cloud CLI 或 Docker 来 安装和运行转移代理,请在物理或虚拟 Linux 机器上安装 Docker Engine。

如果您使用 Podman 安装和运行转移代理,请直接跳到 特定于 Podman 的安装说明

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker --now

如果您遇到安装错误,请参阅 问题排查

允许 Docker 进行身份验证

如需允许 Docker 容器使用您的 gcloud 默认凭据进行身份验证,请运行以下命令,创建一个包含带有应用默认凭据的文件的 Docker 卷:

sudo docker run -ti --name gcloud-config google/cloud-sdk gcloud auth application-default login

后续步骤