Skip to content
共绩算力文档中心

对象存储加速使用说明

对象存储加速支持用户将 S3 兼容对象存储接入平台,例如阿里云 OSS、腾讯云 COS、火山引擎 TOS、华为云 OBS、自建 MinIO 等,并通过 JuiceFS 文件系统和缓存加速能力,将对象存储中的模型、数据集等内容挂载到任务容器中使用。

本功能适用于大模型推理、训练数据读取、模型冷启动优化等场景。用户可以按目录将对象存储中的数据预热到指定加速区域,减少任务运行时从远端对象存储读取数据的等待时间。对象存储加速是一项缓存加速能力,不是新的持久化存储服务。源数据仍保存在用户的对象存储中。

进入存储加速管理页面后,在左侧菜单点击「对象存储加速」,进入对象存储加速管理页面。

页面中会展示当前账号下已创建的对象存储加速配置,包括配置名称、云服务商、最后预热时间、加速用量、区域和操作入口。

必须具备以下权限:

  • ListObjectsV2:用于校验 S3 加速页面所提供的目录是否存在。

    • ListObjectsV2Input。
  • PutObject:用于校验对象存储是否具备写权限。此操作会创建临时文件进行校验,原因在于对象存储会生成 uuid 并放置到对象存储目录下。

    • PutObjectInput。
  • DeleteObject:用于清理由 PutObject 创建的临时文件。

    • DeleteObjectInput。
🔥

在使用过程中,请勿停用访问密钥(AK)、安全密钥(SK)或对其进行修改,以免功能不可用,对您的使用体验造成不良影响。

可参照 这篇文档 了解如何创建 Access Key 和 Secret Key。

进入对象存储的控制台,找到 Access Key 入口:

创建一个 Access Key 用于挂载:

Secret ID(AccessKey)和 Secret Key 需要在 API 密钥管理 中查看或创建。

理论上兼容 MinIO 和 RustFS

可参照 这篇文档 了解如何创建 Access Key 和 Secret Key。

火山引擎 TOS 为每个区域都提供了公网和内网 endpoint 链接,你可以根据实际的场景选用。

Endpoint 获取:需要选择 S3 Endpoint

在下面 2.3 章节中配置对象存储时,需要使用携带 s3 的 Endpoint

可参照这篇文档 了解如何创建 Access Key 和 Secret Key。

需在对应的 bucket 中设置桶策略,如下图

在对象存储加速页面点击「新增对象存储配置」,填写对象存储相关信息。

需要填写的主要信息包括配置名称、云服务商、地域、Endpoint、AccessKey、SecretKey、Bucket 名称和加速目录。

加速目录建议填写业务所需的子目录,例如模型目录、训练数据目录或推理数据目录。不建议直接选择 Bucket 根目录。

推荐示例:

oss://demo-bucket/models/qwen/
oss://demo-bucket/dataset/train/
oss://demo-bucket/checkpoints/v1/

不推荐示例:

oss://demo-bucket/

如果直接选择 Bucket 根目录,后续目录加载、缓存预热和缓存删除的范围都会变大,可能导致目录加载较慢、缓存空间占用过多,也不利于区分不同业务数据。

当前目录树仅展示目录和子目录,不展示具体文件。如果文件直接放在 Bucket 根目录下,用户需要选择整个根目录范围才能对这些文件进行预热。因此,建议将模型、数据集、日志等文件按业务目录进行组织。

当执行保存配置操作时,系统会自动对配置的可用性进行检测。只有在校验通过之后,配置才可成功保存。

对象存储配置保存成功后,需要为该配置选择加速区域。在列表中点击「配置区域」,选择需要启用的区域。

配置加速区域主要用于准备对象存储加速能力。配置完成后,该区域具备后续挂载和缓存能力,但数据不会自动全部缓存到本地。

也就是说,配置区域不等于缓存预热。首次配置完成后,区域通常显示为「缓存未同步」状态。此时区域已经可以挂载使用,但首次访问数据时可能仍需要从对象存储读取。建议在正式使用前,按需执行「预热缓存」。

此时系统正在为该区域启用对象存储加速能力,请等待加载完成再进行或许操作。

此时该区域的对象存储创建完成,因为还没有进行数据预热,所以显示加速用量为 0B。

区域配置完成后,可以点击「预热缓存」选择需要提前缓存的数据目录。

预热缓存需要同时选择预热区域和预热目录。用户可以选择一个或多个可用区域,也可以选择一个或多个目录进行预热。系统会将所选目录中的数据提前加载到对应加速区域,后续任务访问这些数据时可以减少从对象存储读取的等待时间。

预热缓存弹窗中的目录树采用按需加载方式。打开弹窗时,仅展示当前目录下的第一层目录;点击目录左侧箭头后,再加载下一层子目录。当前仅展示目录和子目录,不展示具体文件。

点击「开始预热」后,系统会先同步目录信息,使平台能够识别所选目录;随后在后台执行缓存预热,将所选目录下的数据加载到指定加速区域。

目录信息同步期间,「预热缓存」和「删除缓存」入口会短暂置灰并显示「元数据更新中」。同步完成后,按钮恢复可点击。后续缓存预热会继续在后台执行,不影响已可用区域的挂载使用。

如果某些目录的数据不再需要加速,可以点击「删除缓存」释放缓存空间。

删除缓存用于释放所选目录对应的加速用量。删除后,平台会移除 JuiceFS 文件系统中对应目录的数据记录,并更新加速用量。该操作不会删除对象存储中的源文件,也不会删除对象存储配置。后续任务再次访问这些数据时,可能需要重新从对象存储读取,或重新执行缓存预热。

删除缓存弹窗中展示的是当前配置下已缓存目录的集合。目录树仅展示目录名称和缓存用量,不展示具体文件。

如果删除了全部可选缓存目录,加速用量会明显降低。但由于系统会保留外层父目录等基础目录信息,加速用量通常不会回到 0B,可能显示为 4KB 左右,请以页面实际展示为准。

删除缓存过程中,平台会更新缓存状态,因此该操作为异步执行。在更新完成前,「预热缓存」和「删除缓存」入口会显示为「元数据更新中」,暂时不可重复点击。

在任务发布页面,用户可以选择已配置并启用区域的对象存储加速配置进行挂载。

发布任务时,需要选择任务运行区域。任务运行区域应与对象存储加速区域保持一致。例如,对象存储加速配置已启用「福建五区」「浙江六区」,任务也应选择「福建五区」或「浙江六区」的计算资源。

在「存储配置」区域选择对应的对象存储加速配置,并填写容器内挂载路径。挂载路径需以 / 开头,例如:

/mnt/data
/root/.cache/huggingface

这里将对象存储 Bucket 中的 /qwen1-5/hub/挂载到了容器中的 /root/.cache/huggingface 目录中。

任务启动后,平台会将对象存储加速配置挂载到容器内指定路径。如果该区域缓存已同步,任务可以更快读取数据;如果缓存未同步或缓存已被删除,任务首次访问时可能需要从对象存储重新读取。

提交任务后,容器启动时会自动挂载所选对象存储加速配置。待容器启动完成后,可进入容器并验证挂载结果。

用户可以查看容器内挂载路径下的目录和文件是否存在,例如:

ls /root/.cache/huggingface

如果能够看到对象存储中对应目录下的数据,说明挂载成功。

  1. 找到对象存储。
  1. 点击存储桶列表。
  1. 找到对象存储。
  1. 找到要设置权限的桶,然后点进去。
  1. 设置权限。
  1. 找到对象存储。
  1. 找到要设置的桶
  1. 设置权限

为了更具体地理解,我们来看看两者的对比:

场景一:简单权限控制(within one account)

​​“我希望我创建的某个 IAM 用户只能读取 A 桶。”​​

  • 方案 A (使用 IAM):在 IAM 中,给该用户附加一个策略,策略内容为对 arn:aws:s3:::bucket-A资源拥有 s3:GetObjects3:ListBucket权限。
  • 方案 B (使用 Bucket Policy):在 A 桶的策略中,添加一条语句,允许该用户的 ARN 执行 s3:GetObjects3:ListBucket
  • 结论:两种方案效果几乎一样,任选其一即可。通常更推荐使用 IAM 方案,因为权限集中在 IAM 控制台,更易于统一管理身份及其权限。

对象存储加速列表中会展示每个加速区域的状态。用户可根据区域状态判断当前区域是否可用、缓存是否完成,以及是否需要处理异常。

状态

含义

用户处理建议

区域加载中

系统正在为该区域启用对象存储加速能力

请等待加载完成

缓存未同步

区域已可用,但数据尚未完成缓存预热,首次访问可能较慢

建议点击「预热缓存」后使用

缓存同步中

区域正在进行缓存预热

可继续使用,未缓存完成的数据首次访问可能较慢

缓存同步完成

缓存预热已完成

可正常使用

预热失败

本次缓存预热失败,缓存可能不是最新状态

检查配置、权限或目录后重新预热

区域下线

该加速区域当前不可用

请更换其他可用区域

存储异常

对象存储服务返回权限或服务错误,平台暂时无法正常访问对象存储

检查 AK/SK 权限、Bucket 状态和对象存储服务可用性

区域异常

PVC 创建失败

平台异常,需要让用户稍后重新尝试

当区域显示为「区域加载中」「区域下线」「存储异常」或「区域异常」时,暂不支持对该区域发起缓存预热,请等待区域恢复或更换其他可用区域。

当区域显示为「缓存未同步」「缓存同步中」「缓存同步完成」或「预热失败」时,仍可以选择该区域进行缓存预热。缓存同步中的区域可以继续挂载使用,也可以继续对其他目录发起预热;预热失败时,建议检查对象存储配置、权限或目录后重新预热。

冷启动定义:模型服务从零实例状态(缩放到 0)接收请求到准备处理第一个请求的时间间隔,是影响部署响应能力、服务等级协议(SLA)和成本控制的关键因素。为了优化冷启动,我们将介绍以下策略:对象存储加速,它通过提前将 S3 数据缓存到本地,从而提高性能。

性能提升显著

冷启动带来的挑战:

  • 用户体验:首次请求响应时间长,影响用户满意度
  • 成本控制:频繁冷启动导致资源浪费和成本增加
  • 服务可用性:冷启动时间过长可能导致服务超时

S3 存储加速的优化策略:

  1. 预取机制:利用 JuiceFS 预取功能,后台线程提前下载模型权重和数据
  2. 分布式缓存:将模型权重缓存在分布式文件系统中,避免重复下载
  3. 智能预热:对高频访问的模型进行预热处理

部署方式

冷启动时间

性能提升

传统方式

数分钟(如 Stable Diffusion XL)

S3 加速

10 秒以内

提升 90% 以上

资源利用优化

  • 读取加速:本地缓存机制提供接近本地磁盘的读取速度
  • 并行下载:多线程并行下载,充分利用网络带宽
  • 智能缓存:自动管理缓存空间,优先缓存高频访问数据
  • 按需加载:仅在首次访问时从云端拉取数据,避免重复下载
  • 空间复用:多个任务可共享同一份缓存数据,节省存储空间

在生产环境中,AI 模型需要频繁更新迭代,传统方式需要重新构建和发布 Docker 镜像,过程繁琐且耗时。

S3 存储加速解决方案:

  • 解耦模型与镜像:将模型文件存储在 S3 中,Docker 镜像只包含运行环境,实现模型与代码的分离
  • 快速模型切换:通过更新 S3 中的模型文件,无需重建镜像即可完成模型更新
  • A/B 测试:可同时挂载多个模型版本,方便进行对比测试

实际效果:

  • 模型更新时间:从数小时缩短至几分钟
  • 运维效率:提升 80% 以上

在业务高峰期或突发流量场景下,需要快速扩容计算节点以应对负载增长。

S3 存储加速解决方案:

  • 快速节点启动:新扩容的节点可直接使用缓存的模型数据,避免重复下载
  • 智能缓存预热:新节点启动时自动预热常用模型,减少首次访问延迟
  • 跨区域部署:支持在不同区域快速部署节点,提升服务覆盖范围

实际效果:

  • 扩容时间:从传统的 10-30 分钟缩短至 1-3 分钟
  • 资源利用率:提升 60% 以上
  • 服务稳定性:显著提升,支持平滑扩缩容
  • 对象存储加速是缓存能力,不是新的持久化存储。请继续以对象存储作为源数据保存位置。
  • 删除缓存不会删除对象存储源数据,而是删除 JuiceFS 文件系统中对应目录的数据记录/元数据,使平台不再将该目录作为已缓存数据展示。对象存储源数据更新后,缓存不会自动同步,建议重新执行缓存预热。
  • 不建议直接选择 Bucket 根目录作为加速目录。请勿停用或修改 AccessKey / SecretKey。
  • 任务运行区域应与对象存储加速区域保持一致。元数据更新中时不可重复发起预热或删除操作。缓存同步中仍可挂载使用,但未缓存数据首次访问可能较慢。
  • 区域下线、区域异常或配置失效时,请更换可用区域、检查对象存储配置,或联系平台管理员处理。

8.1. 配置区域后,数据是否已经缓存完成?

Section titled “8.1. 配置区域后,数据是否已经缓存完成?”

不是。配置区域只表示该对象存储配置已经具备挂载和缓存能力。数据是否被缓存,需要用户点击「预热缓存」并选择目录执行预热。

8.2. 预热缓存会删除对象存储数据吗?

Section titled “8.2. 预热缓存会删除对象存储数据吗?”

不会。预热缓存只会将对象存储中的数据加载到加速区域缓存中,不会修改或删除对象存储源数据。

8.3. 删除缓存会删除对象存储源文件吗?

Section titled “8.3. 删除缓存会删除对象存储源文件吗?”

不会。删除缓存只会移除平台侧 JuiceFS 文件系统中对应目录的数据记录,并更新加速用量,不会删除对象存储中的源文件,也不会删除对象存储配置。

8.4. 为什么按钮显示“元数据更新中”?

Section titled “8.4. 为什么按钮显示“元数据更新中”?”

因为系统正在同步或更新目录相关信息。在该操作完成前,目录树可能不是最新状态,因此暂时不允许重复预热或删除。更新完成后,按钮会恢复可点击。

可以。只要区域可用,任务就可以挂载使用。缓存同步中表示部分数据仍在后台预热,首次访问未缓存完成的数据时,可能仍需从对象存储读取。

后端会持续巡检缓存同步情况,进度仅作为参考,可能不是严格线性增长。用户主要关注区域是否可用,以及是否存在异常状态。

8.7. 为什么删除缓存后,加速用量变少了?

Section titled “8.7. 为什么删除缓存后,加速用量变少了?”

删除缓存后,平台会移除所选目录对应的数据记录,因此加速用量会减少。首次配置区域完成且尚未预热任何数据时,加速用量可能显示为 0B。后续执行过预热或删除缓存后,即使删除了全部可选缓存目录,系统仍会保留外层父目录等基础目录信息,因此加速用量通常不会回到 0B,可能显示为 4KB 左右。

8.8. 多个任务共享同一份缓存是什么意思?

Section titled “8.8. 多个任务共享同一份缓存是什么意思?”

同一加速区域内,多个任务访问相同对象存储目录时,可以复用该区域已有的缓存数据,不需要每个任务都重新从对象存储下载一遍。

例如,某个模型目录已经预热到「上海一区」。后续多个任务如果都运行在「上海一区」,并挂载同一个对象存储目录,就可以复用这份缓存,从而减少模型加载时间。