已知限制

此页面记录了 Cloud Storage 和 Storage Transfer Service 的已知限制。

常见限制

Cloud Storage 5TB 对象大小限制

Cloud Storage 支持的单个对象大小上限为 5TB。如果有大于 5TB 的对象,那么对于 Cloud Storage 或 Storage Transfer Service,这些对象的转移都会失败。

Cloud Storage 对象命名要求

Cloud Storage 施加有对象命名要求,该要求适用于所有 Storage Transfer Service 转移。

已更改的对象不会被转移

Storage Transfer Service 不会在转移期间锁定源文件。

如果对象的数据在转移过程中更新,则下面将介绍 Storage Transfer Service 如何响应:

  • 从非 Google Cloud 转移到 Google Cloud 的数据:如果对象的数据在转移过程中更新,则 Storage Transfer Service 会使该特殊对象转移失败,因此该对象不会被转移。

  • 从文件系统转移到 Google Cloud:如果对象的数据在转移过程中更新,则 Storage Transfer Service 会尝试重新上传。如果上传多次失败,Storage Transfer Service 便会记录 FILE_MODIFIED_FAILURE。如需了解详情,请参阅问题排查

  • 从 Google Cloud 转移到文件系统:如果对象的数据在转移过程中更新,则 Storage Transfer Service 会尝试重新下载。如果下载失败多次,Storage Transfer Service 便会记录 PRECONDITION_FAILURE。如需了解详情,请参阅问题排查

如需解决失败情况,请执行以下操作:

  1. 尝试再次转移。
  2. 如果对象的转移作业仍然失败,请确保其资料在转移期间不会更新:

  3. 转移作业完成后,您可以重新启用对象的更新。

Cloud Storage 中的文件夹

Cloud Storage 对象位于存储桶内的平面命名空间中。如需了解详情,请参阅对象命名空间。因此,Storage Transfer Service 不会在 Cloud Storage 中创建分层命名空间。例如,如果您要从 Azure 数据湖存储空间 (ADLS) 第 2 代进行传输,则 Storage Transfer Service 不会在 Cloud Storage 中重新创建 ADLS 第 2 代命名空间。

删除具有版本控制的暂停 Amazon S3 存储桶中的对象

在具有版本控制的暂停 Amazon S3 存储桶中转移特征后,使用 Storage Transfer Service 的删除对象时,Storage Transfer Service 会移除版本 ID 为 null(而非当前版本)的对象。

Storage Transfer Service 作业的位置

Storage Transfer Service 根据来源 Cloud Storage 存储桶所在的区域选择其位置。即日起,我们会在以下位置创建 Storage Transfer Service 作业。此列表可能会发生变化,因为 Storage Transfer Service 会添加对新区域的支持。

如果源 Cloud Storage 存储桶位于未列出的区域,我们将选择来源外部区域内的默认区域。

  • ASIA-EAST1
  • ASIA-EAST2
  • ASIA-NORTHEAST1
  • ASIA-NORTHEAST2
  • ASIA-NORTHEAST3
  • ASIA-SOUTH1
  • ASIA-SOUTH2
  • ASIA-SOUTHEAST1 区域
  • ASIA-SOUTHEAST2
  • AUSTRALIA-SOUTHEAST2
  • EUROPE-WEST1
  • EUROPE-WEST2
  • EUROPE-WEST3
  • EUROPE-WEST4
  • EUROPE-WEST9
  • EUROPE-NORTH1
  • EUROPE-SOUTHWEST1
  • NORTHAMERICA-NORTHEAST1
  • NORTHAMERICA-NORTHEAST2
  • US-CENTRAL1
  • US-CENTRAL2
  • US-EAST1
  • US-EAST4
  • US-WEST1
  • US-WEST2
  • US-WEST3
  • US-WEST4
  • NAM4

文件系统转移的已知限制

无实时支持

Storage Transfer Service 不支持以比一小时更短的间隔进行更改检测。Storage Transfer Service 是一项批量数据迁移服务,扫描源对象的频率不得高于每小时一次。

支持的操作系统配置

转移代理需要安装 Docker,并在 Linux 服务器或虚拟机 (VM) 上运行。如需复制 CIFS 或 SMB 文件系统上的数据,您可以在 Linux 服务器或虚拟机上装载卷,然后从 Linux 服务器或虚拟机运行该代理。

内存要求

以下是 Transfer Service for On Premises Data 代理的内存要求:
  • 最小内存:1 GiB
  • 支持高性能上传的最小内存:6 GiB

规模限制

Storage Transfer Service 支持符合以下条件的个别转移作业:

  • 数百 TB 大小
  • 最多 10 亿个文件
  • 数十 Gbps 的传输速度

超过这些大小的单个转移作业也是可靠的,但尚未经过性能测试。

如果您的数据集大于这些限制,我们建议您将数据拆分为多个转移作业。

目前我们支持大型目录,只要在最大的目录中,每个代理对于每 100 万个文件至少有 1GB 的可用内存,我们就可以迭代目录内容,而不会超出内存。

代理和代理池限制

对于单个代理池,最多支持 100 个代理。在典型环境中,不太可能需要超过该数目的代理来实现更好的性能。

每个项目最多支持 800 个代理池。

每个作业一个目录

我们仅支持转移文件系统目录的完整内容(以递归方式)。您可以创建多个作业来转移数据集的不同子目录,从而将转移作业分成几份,但目前我们不支持单个作业中的文件通配或过滤。

支持的文件名

以下规则适用于转移作业涉及的所有文件名:

  • 文件名必须采用 UTF8 编码。
  • 文件名必须与 Unicode 兼容。
  • 文件名不得包含换行符 (\n) 或回车符 (\r)。

如果源目录包含不受支持的文件名,则该目录的文件列表任务将会失败。

如果发生这种情况,请更新所有不受支持的文件名并重新运行作业。

支持的文件类型

Storage Transfer Service 支持转移常规文件以及类似 Unix 的隐藏文件。Unix 样式的隐藏文件是以 . 字符开头的文件。如果 Storage Transfer Service 遇到非常规文件(例如设备、已命名管道或套接字),则会引发 UNSUPPORTED_FILE_MODE 错误。

系统不会在 Cloud Storage 中创建空目录,因为对象不在存储桶的子目录中。如需了解详情,请参阅对象命名空间

路径长度上限

Storage Transfer Service 遵循 Cloud Storage 的 1024 字节路径长度上限。长度限制中包含目标对象的对象前缀,因为该前缀包含在 Cloud Storage 中的对象名称中。

支持的文件元数据

如需详细了解默认或可选择保留的元数据,请参阅元数据保留

延长了作业暂停时间

暂停时间超过 30 天的作业会被视为无效。当作业处于非活动状态时,暂停的作业将被中止,作业配置时间表会被停用。除非再次显式启用该作业,否则不会启动任何新作业。

文件系统来源安全

代理访问权限

能够创建转移作业的用户可以从代理可访问的任何文件系统目录中检索数据,也可以将数据下载到代理可访问的任何文件系统目录。如果代理以 root 身份运行且被授予整个文件系统的访问权限,恶意操作者可能会获得接管主机的权限。强烈建议您限制代理的访问权限,以仅允许其访问必要的目录。

Pub/Sub 用户访问权限

无论代理权限如何,有权访问包含 Storage Transfer Service 代理池的项目中的 Pub/Sub 的用户都可以与转移代理进行通信。因此,我们建议您在适当范围的项目中运行 Storage Transfer Service,并限制用户对转移项目中的 Pub/Sub 的访问权限。