Cloud TPU 数据的存储方案

本文档介绍了在 Cloud TPU 上训练模型时可以使用的数据存储方案。

简介

Cloud TPU 需要使用数据存储来执行以下操作:

  • 数据集下载和预处理
  • 主机输入流水线处理
  • 模型训练输入
  • 模型训练输出

TPU 应用数据和训练数据集的存储方案包括:

如需详细了解如何管理存储,请参阅以下页面:

持久性块存储

持久性块存储(也称为磁盘或卷)适用于您希望在停止、暂停或删除 TPU 虚拟机后保留的数据。即使 TPU 虚拟机崩溃或发生故障,持久性块存储仍然可用。您可以使用 TPU 虚拟机启动磁盘,也可以将其他块存储挂接到 TPU。

在以下情况下,您可能需要挂接额外的磁盘:

  • 训练数据集的大小超过了 TPU 启动磁盘的大小。
  • 您有只读数据,并且希望使用 Hyperdisk ML 卷更快地读取数据。

TPU 世代和支持的磁盘类型

下表展示了每个 TPU 世代支持的磁盘类型:

TPU 世代 支持的磁盘类型
TPU7x Hyperdisk Balanced、Hyperdisk ML
TPU v6e Hyperdisk Balanced、Hyperdisk ML
TPU v5p 平衡永久性磁盘、Hyperdisk ML
TPU v5e 平衡永久性磁盘、Hyperdisk ML

TPU 虚拟机启动磁盘

默认情况下,每个 TPU 虚拟机都有一个 10 GB 的启动磁盘。创建虚拟机时,您可以配置更大的启动磁盘。如需了解详情,请参阅 创建自定义启动磁盘。 启动磁盘包含操作系统、TPU 驱动程序和库。 启动磁盘还可以临时存储下载的数据集,以用于预处理和模型输入和输出数据(前提是数据总大小不超过启动磁盘上的可用空间)。

如果您的应用需要超出启动磁盘默认值的额外存储空间,您可以向 TPU 虚拟机实例添加一个或多个持久性磁盘。如需了解详情,请参阅:

附加存储空间

Hyperdisk 和 Persistent Disk 都是持久性网络存储设备,虚拟机实例可以像访问桌面设备或服务器中的物理磁盘一样访问它们。您可以独立于虚拟机实例创建这两种类型的磁盘,因此即使在删除虚拟机后,您也可以保留数据。

与使用 Persistent Disk 相比,使用 Hyperdisk 的优势包括可自定义的性能、更高的 IOPS 和吞吐量限制。如需详细了解 Hyperdisk 和 Persistent Disk,请参阅选择磁盘类型

将磁盘挂接到具有多主机 TPU 虚拟机切片的 MIG 时,系统会将该磁盘挂接到该 TPU 切片中的每个虚拟机。为了防止两个或多个 TPU 虚拟机同时写入磁盘,您必须将挂接到多主机 TPU 切片的所有磁盘都配置为只读。只读磁盘可用于存储在 TPU 切片上处理的数据集。由于 Hyperdisk Balanced 不支持只读模式,因此您只能将 Hyperdisk Balanced 卷挂接到单个 TPU 虚拟机实例。

如需详细了解如何使用持久性块存储,请参阅 向虚拟机添加永久性磁盘添加 Hyperdisk

磁盘备份

如果 TPU 虚拟机卡在“未知”状态,或者您删除了数据,则可能难以从启动磁盘检索数据或恢复数据。请使用其他存储方案(例如 Cloud Storage 分区)备份数据。

如果您将数据存储在挂接的磁盘上,则可以使用磁盘快照,以增量备份磁盘上的数据。TPU 虚拟机启动磁盘不支持磁盘快照。如需了解详情,请参阅磁盘快照简介

Cloud Storage 存储分区

Cloud Storage 存储分区是适用于虚拟机实例的一种存储方案,该方案的灵活性、可伸缩性和持久性最强。如果训练作业不需要持久性块存储带来的较短延迟时间优势,则可以将数据集存储在 Cloud Storage 存储桶中。

Cloud Storage 存储桶的性能取决于您选择的 存储类别 以及存储桶相对于实例的位置。

在 TPU 虚拟机所在的可用区中创建 Cloud Storage 存储桶可提供与持久性块存储相当的性能,但延迟时间较长且吞吐量一致性较低。

所有 Cloud Storage 存储分区都具有内置冗余,可保护您的数据免受设备故障的影响,并通过数据中心维护事件确保数据可用性。Cloud Storage 会针对所有操作计算校验和,以帮助确保您所读取的内容就是您所写入的内容。

不同于持久性块存储,Cloud Storage 存储分区不限于实例所在的可用区。此外,您可以同时在多个实例的存储桶中读取和写入数据。例如,您可以将多个可用区中的实例配置为在同一个存储桶中读取和写入数据,而不是将数据复制到多个可用区的持久性块存储中。

如需了解详情,请参阅连接到 Cloud Storage 存储分区

Cloud Storage FUSE

借助 Cloud Storage FUSE,您可以将 Cloud Storage 存储桶作为本地文件系统进行装载和访问。这样,应用就可以使用标准文件系统语义读取和写入存储桶中的对象。

如需详细了解 Cloud Storage FUSE 的工作原理以及查看 Cloud Storage FUSE 操作如何映射到 Cloud Storage 操作的说明,请参阅 Cloud Storage FUSE 文档。如需详细了解如何使用 Cloud Storage FUSE(例如,如何安装 Cloud Storage FUSE CLI 和装载存储桶),请参阅 GitHub

Filestore 文件共享

Filestore 文件共享是 Compute Engine 的全代管式网络附加存储 (NAS)。Filestore 兼容现有企业应用,并支持与 NFSv3 兼容的任何客户端。

Cloud Filestore 实现了 低延迟 的文件 操作。对于那些对延迟敏感的工作负载,Filestore 最高支持 100 TiB 的容量、25 GiB/秒的吞吐量和 720K IOPS,同时将性能波动控制在最低限度内。

借助 Filestore,您可以装载文件共享 在 TPU 虚拟机上。

Managed Lustre 文件共享

Managed Lustre 是一种全 代管式并行文件系统,适用于数据密集型 AI 和 HPC 工作负载。它具有高性能、多 PB 级容量和 POSIX 合规性。

借助 Managed Lustre,您可以在 TPU 虚拟机上装载文件共享。它尤其适用于处理机器学习工作负载的大型数据集和高吞吐量要求,从而实现高效的训练和推理。

如需了解详情,请参阅 Managed Lustre 文档

后续步骤