本页面介绍了 Rapid Bucket,借助此功能,您可以通过将可用区设置为 存储桶的位置,在 Rapid 存储类别中存储对象。这种方法可让您将数据存储与计算资源协同部署,与其他 Cloud Storage 存储类别相比,可显著降低延迟时间并提高吞吐量。其他可用区和区域中的工作负载也可以访问该存储桶,性能与网络距离有关。
如需使用 Rapid Bucket 创建可用区级存储桶,请参阅 创建可用区级存储桶。 您可以在可用区中查看受支持位置的列表。如需读取可用区级存储分区中的对象并向其追加内容 ,请参阅在可用区级存储分区中使用对象。
如需在存储桶中启用 Rapid Bucket,该存储桶还必须启用 分层命名空间和统一存储桶级访问权限。
功能和优势
Rapid Bucket 旨在消除存储瓶颈,非常适合用于数据密集型应用(例如 AI/机器学习和数据分析)。 Rapid Bucket 支持亚毫秒级延迟时间、高达 15 TB/秒的总吞吐量和每秒 2000 万次查询 (QPS)。超低延迟时间可实现即时数据检索,并支持实时推理应用大规模运行。巨大的吞吐量和高 QPS 有助于让昂贵的 GPU 集群保持完全饱和状态,从而显著缩短模型训练时间。
除了提供低延迟时间和高吞吐量之外,可用区级存储分区还支持您执行以下操作:
向可用区级存储桶中的对象追加内容,而无需执行完整的对象重写
打开对象并在执行操作时保持流,从而加快后续的读取和写入速度
使用场景
Rapid Bucket 最适合 AI/机器学习工作负载或其他数据密集型工作负载。此类工作负载的一些示例包括模型检查点、评估和提供服务,以及日志记录和消息队列。它还可用于流式传输数据或为数据库提供存储。
如需充分利用 Rapid Bucket 提供的低延迟时间和高吞吐量,请务必启用 gRPC 直接连接。
Rapid Bucket 术语
Cloud Storage 文档使用以下术语:
Rapid Bucket:该产品支持创建具有可用区级位置和 Rapid Storage 存储类别的存储分区。
Rapid 存储:该存储类别在 Cloud Storage 中提供最高的数据访问 和 I/O 操作性能。使用 Rapid Bucket 时,您创建的存储桶会使用 Rapid Storage。如需详细了解 Rapid Storage,请参阅 存储类别。
可用区级存储桶:位于可用区中的存储桶。可用区级存储分区中的对象始终存储在 Rapid Storage 中,并且可以追加内容。
访问可用区级存储分区中的对象
如需获得可用区级存储桶的性能优势,请务必打开对象以进行流式传输,并在对对象执行操作时保持流。 建立并保持流后,您可以以极低的延迟时间对对象执行后续的读取或写入操作。例如,在读取 Parquet 文件时,您可以在单个请求中同时执行文件的元数据(页脚)的初始读取和特定行的后续读取。 与为每个步骤使用单独的请求相比,这种方法更高效。
建立后,当您使用 Cloud Storage FUSE或 Cloud Storage 客户端 库访问可用区级存储桶对象时,对象流默认保持打开状态。
您可以从任意数量的主机打开到对象的多个读取流。 您可以为对象建立的读取流数量没有限制。
追加对象
您可以向可用区级存储分区中的对象追加数据。向对象追加内容时,需遵循以下语义:
可追加的对象会在您开始向其写入内容后立即显示在存储桶命名空间中,并且可以在写入时读取。
您可以向对象追加的内容数量或一次追加的字节数没有限制。您可以追加内容,直到对象达到 5 TiB 的最大大小。
随着新追加的内容被永久写入或刷新,对象的大小将实时增长。建立读取流时,您应该预计对象的大小更新会有最小延迟。
可追加的对象一次只能有一个写入器。如果为已具有现有写入流的对象建立新的写入流,Cloud Storage 会向原始流返回错误,并且原始流将不再被允许写入。新写入器可以从上次持久保留的偏移量恢复追加,而无需其他交错追加到对象。
最终确定对象
对象最终确定后,您将无法再向其追加内容,但仍可以使用新版本覆盖该对象。最终确定对象的元数据仍然可变;例如,可以添加新标签,并且可以重命名对象。
装载可用区级存储分区
您可以使用 Cloud Storage FUSE 或 Cloud Storage FUSE CSI 驱动程序装载和访问可用区级存储分区。请务必使用 Cloud Storage FUSE 3.7.2 版或更高版本。如需使用 Cloud Storage FUSE CSI 驱动程序,请确保您的 Google Kubernetes Engine 版本为 1.35.0-gke.3047001 或更高版本。
支持的工具
您可以使用大多数 Cloud Storage 工具来处理可用区级存储分区。但是,需遵守以下限制:
您无法使用专为非可用区级存储分区设计的标准客户端库 API 写入可用区级存储分区。如需写入可用区级存储分区,您必须修改代码以使用受支持的可用区级存储分区 API。如需了解应使用哪些 API,请参阅 在可用区级存储分区中使用对象中的客户端库代码示例。
使用 gRPC 时,您只能使用
BidiWriteObjectAPI 写入可用区级存储分区。可追加的对象仅在可追加模式下受BidiWriteObjectRPC 调用支持。其他 gRPC 写入方法(例如一次性写入或可续传写入)和其他 RPC 调用(例如WriteObject)不支持可追加的对象。您无法使用 JSON API 写入可用区级存储分区。
GCSFS Python 库 2026.3.0 版及更高版本支持 Rapid Bucket。
Google Cloud CLI 限制:
支持的最低 Google Cloud CLI 版本:支持可用区级存储分区的最低 gcloud CLI 版本为 553.0.0。早期版本与可用区级存储分区不兼容。我们建议您使用 最新版本的 gcloud CLI,以获取最新 功能和 bug 修复。
不完整上传的可见性:与其他存储 类别中的存储分区不同,在其他存储类别中,对象仅在上传 完成后才会显示在命名空间中,而在可用区级存储分区中,部分上传的对象会 立即显示。如果 Google Cloud CLI 上传命令失败或中断,您可能会在存储桶中看到不完整的对象。您仍然可以通过重新运行该命令来恢复这些上传。
对象覆盖:标准 Google Cloud CLI 行为适用于 可用区级存储分区:当您覆盖对象时,如果目标位置存在具有 相同名称的文件或对象,Google Cloud CLI
cp、mv、 和rsync命令将默认覆盖该文件或对象。如需防止覆盖,请使用--no-clobber标志。使用 Google Cloud CLI 时,不支持向现有对象追加数据;必须重新上传整个来源。对象最终确定:使用 Google Cloud CLI 上传到可用区级存储桶的对象有时可能会出现短暂延迟,然后 对象的元数据才会完全同步。由于 Cloud Storage 使用最终一致性模型,因此如果在上传后立即尝试下载对象,如果元数据尚未更新,可能会导致哈希值不匹配错误。
如果在上传后不久下载失败并出现哈希值不匹配错误,请重试该命令。系统会确保下载要么完全成功,要么明确失败;不会静默发生部分下载或损坏的下载。
校验和验证性能:可用区级存储分区完全依赖 CRC32C 进行数据验证,从而允许系统对每个 块以及整个上传或下载执行校验和计算。默认情况下,Google Cloud CLI 使用
google-crc32cPython 库,该库随 Google Cloud CLI 预安装。但是,如果您使用的是非捆绑式 Python 安装,则必须从 PyPI显式安装google-crc32c库。否则,Google Cloud CLI 会回退到gcloud-crc32c二进制文件,这可能会导致每个块的 CRC 计算性能降低。
不兼容性
可用区级存储分区与以下产品和服务不兼容:
数据上传和管理
Rapid Cache
Autoclass
存储分区锁定
复合对象
XML 分段上传
对象保全
对象生命周期管理
SetStorageClass操作对象保留锁定
存储分区重定位
可续传上传
对象重写
请求者付款
元数据
可用区级存储分区中的对象没有 MD5 哈希值。
与不受支持的功能和产品关联的元数据属性不会显示在可用区级存储桶或可追加对象的资源表示中,或者无法写入。例如:
softDeleteTime和hardDeleteTime元数据属性不会显示在Objects资源的资源表示中,因为可用区级存储分区中的对象不支持软删除。可用区级存储分区中对象的
storageClass元数据始终具有RAPID值,并且无法重写,因为可用区级存储分区必须始终使用 Rapid Storage 存储类别。
访问权限控制
对象级访问权限控制列表 (ACL)
CORS 配置
客户提供的加密密钥 (CSEK)
HMAC 密钥
数据保护和灾难恢复
对象版本控制
软删除
跨存储桶复制
其他 Google Cloud 服务
- BigQuery
配额
每个项目中的每个可用区都有默认的存储容量配额。每个项目中的每个可用区 还具有从 Cloud Storage 到 Google 服务的默认出站流量配额。如需查看这些配额,请参阅配额和限制。
如需了解如何监控数据出站流量用量并申请更多带宽, 请参阅带宽用量监控。
价格
使用 Rapid Bucket 会产生数据存储、操作和网络费用。如需了解详情,请参阅价格。
最佳做法
为了帮助在使用 Cloud Storage FUSE 的可用区级存储分区时优化性能,请保持装载对象的打开文件句柄,并将其用于多个操作。这样可以提高性能,因为它可以让 Cloud Storage FUSE 避免为每次重复读取执行不必要的网络往返。
后续步骤
- 了解如何创建可用区级存储分区。
- 了解如何在可用区级存储分区中使用对象。