How to Configure CoreWeave AI Object Storage for Faster Reads and Writes at Lower Cost

TL;DR · AI 摘要
CoreWeave AI Object Storage Setup: LOTA, Writes, Archive Published on September 16, 2026 7 min read How to Configure Cor...
核心要点
- 主题聚焦:How to Configure CoreWeave AI Object Storage for
- 来源:CoreWeave,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
CoreWeave AI 对象存储设置:LOTA、写入、归档
发布于
2026年9月16日
7
分钟阅读
如何配置 CoreWeave AI 对象存储以实现更快速的读取和写入并降低成本
设置 LOTA 缓存、预加载、跨区域写入和归档层级,附带 Python 示例。(共2部分的第2部分)
作者
Jeff Braunstein
Sean Derrington
已复制
CoreWeave AI 对象存储(CAIOS)中有三个要素决定了 GPU 读取速度、写入耗时以及存储非活跃数据的费用:本地对象传输加速器(LOTA)、跨区域写入加速和归档层级。这三个都是配置项而非架构设计,且无需重写应用程序。
第1部分介绍了每个功能的作用及重要性。在第2部分中,我们将演示如何配置这些功能:将客户端指向 LOTA 端点、在首个训练周期前预加载缓存、在存储桶上启用跨区域写入,以及设置自动老化检查点的归档策略。每个示例都包含可复制和调整的代码:Python、boto3 或用于存储桶设置的 CLI 命令。
选择存储类别和计费层级
首先决定存储桶所在的区域,然后选择数据的存储方式和计费方式。
我们提供一个简单的决策:是否启用新的归档计费层级。这取决于两个 S3 API 参数值:
每个存储桶可以有四种存储计费层级,它们的关系如下:
存储类别
存储计费层级
数据到达方式
STANDARD
Hot
最近访问
Warm
7天内无访问
Cold
30天以上无访问
STANDARD_IA
Archive
可选并自定义
使用 LOTA 加速读取
LOTA 为计算节点提供本地 NVMe 端点以降低读取延迟。S3 客户端的其他所有设置保持不变,当对象存在时,读取操作将从节点本地的 NVMe 缓存中获取。
影响读取延迟改善程度的三个因素:
- 对象大小,
- 使用分段上传,以及
- 在作业开始前预加载缓存。
LOTA 缓存大于 4 MB 的对象;小于该尺寸的对象将直接从持久化存储读取。对于大对象,最佳实践是使用分段上传。对象被分割为并行上传的多个部分以充分利用可用带宽,较小的分段可减少网络错误的影响。LOTA 还会将这些分段分布到多个 GPU 节点上,使读取操作能同时从多个节点获取数据,而通过单次 PutObject 上传的对象则仅存储在单一节点上。
预加载 LOTA 缓存
在首个训练周期中,对象会从存储桶读取并在首次请求时存入缓存。首次读取需支付完整的存储桶延迟成本,之后每次缓存未命中都会增加不必要的延迟。
预加载方案则在作业开始前就将预定义数据集填充到缓存中。这能显著提升首次训练周期的缓存命中率,而非让命中率随着作业运行逐渐提升。
要预加载作业所需的数据集,请对数据集中的每个对象发起带有零长度范围头的 HeadObject 请求:
1
from
botocore.client
import
Config
2
from
concurrent.futures
import
ThreadPoolExecutor
3
4
s3 = boto3.client(
5
"s3"
,
6
endpoint_url=
"http://cwlota.com"
,
7
config=Config(
8
max_pool_connections=
32
,
9
s3={
"addressing_style"
:
"virtual"
},
10
),
11
)
12
13
def
prestage
(
key
):
14
s3.head_object(
15
Bucket=
"training-data"
,
16
Key=key,
17
Range=
"bytes=0-0"
,
18
)
19
20
with
ThreadPoolExecutor(max_workers=
32
)
as
pool:
21
list
(pool.
map
(prestage, shard_keys))
22
23
24
25LOTA 会识别每个范围的 HEAD 请求,从存储桶中获取完整的对象并放入缓存。不会有任何响应体返回给客户端。将作业需要读取的对象填充到 shard_keys 中,第一个训练周期会从本地读取。
需要了解的三个要点:
- 仅通过 LOTA 端点有效:对主端点发起相同请求只会返回元数据且不会填充任何内容
- 该操作会计入访问次数:预加载会将对象移动到热存储层级,这对预加载已降级的数据尤为重要
- 当首次读取延迟是瓶颈时值得使用:第一个训练周期的读取、加载推理模型权重、检查点恢复等场景
启用跨区域写入加速
跨区域写入功能在 CoreWeave 任意区域对之间的存储桶级别启用。
与 LOTA 类似,启用跨区域写入后,应用程序无需任何修改。应用继续向 LOTA 端点写入数据,对象字节会持久化存储在本地区域并以本地延迟获得确认。元数据会同步写入存储桶的远程区域,因此存储桶呈现统一的命名空间。无论从哪个区域读取,所有读取者看到的都是相同对象。对象数据会在后台迁移到远程区域。
1
s3.upload_file(
2
"/tmp/checkpoint-4200.pt"
,
3
"checkpoints"
,
4
"run-17/checkpoint-4200.pt"
,
5
)
6数据迁移时间:迁移将在24小时内入队,通常在72小时内完成,具体时间取决于对象大小和网络状况。这对于检查点来说通常是可接受的,因为重启时会从本地区域读取。如果对象必须在截止时间前到达远程区域,请预留72小时。
检查点频率:检查点写入期间训练会暂停,因此频率始终是恢复粒度和训练时间的权衡。消除每次提交的跨区域往返延迟消除了这种权衡。如果因提交延迟高而限制了检查点频率,现在值得重新测试可维持的频率。
启用归档存储层级
与跨区域写入加速类似,归档存储层级在存储桶级别启用。有两种方式可以使用新的归档存储层级:直接写入归档存储,或在存储桶上启用自动归档。
选项1:直接写入归档存储。如果已知对象是长期记录而非近期需要读取的数据,此方法效果最佳。与热存储、温存储和冷存储计费层级相比,写入归档存储会带来额外延迟,因此需要考虑应用程序的延迟容忍度。
1
s3.upload_file(
2
"/tmp/final-weights.pt"
,
3
"checkpoints"
,
4
"run-17/final-weights.pt"
,
5
ExtraArgs={
"StorageClass"
:
"STANDARD_IA"
},
6
)
7
8
选项 2:在存储桶中启用自动归档功能。当您希望通过基于最后访问时间的规则将对象迁移至归档层级时,使用此方法。两个字段控制此选项:
1 # 启用 60 天无访问自动归档 2 cwic cwobject bucket update my-bucket \ 3 --archive-enabled=true \ 4 --archive-after-last-access-days=60 5
字段
作用说明
--archive-enabled
为存储桶启用自动归档功能
--archive-after-last-access-days
自最后访问时间(或对象从未被读取时自创建时间)起的天数;当 --archive-enabled 为 true 时必填
该阈值基于最后访问时间,可自定义且最低为 60 天。该规则适用于 STANDARD 对象版本,不会重新处理已处于 STANDARD_IA 的对象。
### 从归档存储层级读取数据
由于无需恢复步骤,归档对象可通过标准 GET 操作读取,始终使用其原有的存储桶和密钥:
1 s3.download_file( 2 "checkpoints" , 3 "run-17/final-weights.pt" , 4 "/tmp/final-weights.pt" , 5 ) 6
差异在于首次字节时间(time-to-first-byte),其比其他计费层级更长,整体吞吐量也更低。这是需要考虑的应用场景。如果延迟敏感,可在批量读取前将对象复制到 STANDARD 存储类别。复制自身并指定新存储类是标准 S3 模式。在启用版本控制的存储桶中,此操作会创建新版本而非替换现有版本,这在处理版本历史的工具中需要特别注意。
1 s3.copy_object( 2 Bucket= "checkpoints" , 3 Key= "run-17/final-weights.pt" , 4 CopySource={ "Bucket" : "checkpoints" , "Key" : "run-17/final-weights.pt" }, 5 StorageClass= "STANDARD" , 6 MetadataDirective= "COPY" , 7 ) 8
## 构建检查点保留策略
假设某个训练运行在拥有 GPU 的区域,但将检查点写入其他地区的存储桶。以下是您需要依次做出的五个决策:
- 检查点通过 LOTA 端点提交。作业在运行的区域写入数据。启用跨区域写入后,每次提交会本地确认并在后台迁移至远程区域。训练脚本中没有任何代码会感知到这些操作。
- 考虑近期检查点的读取延迟。由于它们正在被读取或至少最近被写入,因此保留在 STANDARD 层级。从先前检查点恢复的延迟低于归档层级。
- 自动归档处理尾部。设置阈值,最低为 60 天。需要足够长以确保仍在运行中的对象已被访问,同时足够短以避免已完成运行的检查点过长时间产生冷存储费用。
- 最终权重可跳过阶梯。如果运行已完成且最终产物是记录而非重启候选,可直接写入 STANDARD_IA。
- 在计划批量读取前进行复制。如果提前知道应用需要一组对象,提前复制可消除首次字节时间的延迟。此操作不会产生检索、访问或操作费用。
CoreWeave Mission Control ® 让您无需任何设置即可全面掌握存储资源。开箱即用的 Grafana 仪表板和存储指标,以及成本与 CAIOS 使用监控指南中包含按存储桶分组的 AI 对象存储消耗完整查询示例。
启用自动化归档后,可在 AI 对象存储使用面板中查看 Auto Archive 面板组,并基于相同指标构建自定义视图。观察随着闲置对象迁移,层级分布的变化情况。
您也可以使用 Mission Control MCP,它以只读工具的形式向兼容 MCP 的客户端暴露指标、日志和 AI 对象存储存储桶。该功能目前处于公开预览阶段。
## 下一步
至此已完成完整的 CAIOS 配置:端点变更、预分阶段传输、按存储桶启用以及归档策略。其中两项可立即操作,另外两项需要先为您的账户开启。
立即开始使用 LOTA 和预分阶段传输。跨区域写入加速和归档功能均已可用。联系您的客户经理,了解这些功能如何提升您的 AI 工作负载效率。
#### 了解更多关于 AI 对象存储的内容:
- 博客第一部分:CoreWeave AI 对象存储新功能:跨区域写入与归档存储
[Blog Part 1 : New in CoreWeave AI Object Storage: Cross-Region Writes and Archive Storage](链接)
- CoreWeave AI 对象存储(CAIOS)文档:LOTA 最佳实践、预分阶段传输和分段上传指南
[CoreWeave AI Object Storage (CAIOS) documentation : LOTA best practices, pre-staging, and multipart upload guidance](链接)
- 按需网络研讨会:如何突破存储层级限制、权衡取舍并避免 AI 存储成本失控
[On-demand webinar : How to Move Beyond Tiers, Tradeoffs, and Runaway Costs in AI Storage](链接)
在 AI 对象存储系列第二部分中,您将学习如何通过 Python 示例配置 LOTA、预分阶段传输、跨区域写入加速以及归档层级。
分享本文:
[Share this article](链接)