在创建文件系统转移作业之前,您需要启用所需的 API 并安装 Docker。
如果您在执行首次设置时遇到错误,请确认您登录的用户具有执行设置步骤所需的权限。在许多情况下,并非所有用户都具备这些权限,因此您可能需要与项目管理员联系以获取帮助。
系统要求
如需使用 Storage Transfer Service 进行文件系统转移,您需要满足以下条件:
来源和/或目标符合 POSIX 标准。
没有保留政策的 Cloud Storage 存储分区。 如需转移到具有 保留政策的存储桶,请参阅 转移到具有保留政策的存储桶。
TCP 端口 443 (HTTPS) 对于出站连接是开放的。
转移代理机器要求如下所示:
支持 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
-
启用 Google Storage Transfer API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。
安装 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