NVIDIA Dynamo Snapshot 介绍

NVIDIA Dynamo Snapshot 介绍


1. 它到底做什么

GPU 推理 worker 真正贵的通常不是拉镜像,而是启动后的初始化:权重进显存、拉起 CUDA runtime、warmup。之后每次扩副本、重启、被调度,都要把同样代价再付一遍。

Snapshot 只做一件事,拆成两半:

  1. Capture :在源 Pod 所在节点,把一台已经初始化完 的 GPU worker 冻住,落到磁盘。CPU 侧 CRIU,GPU 侧 cuda-checkpoint,再加容器可写层差量。
  2. Restore:在新 Pod 所在节点,把这份状态灌进占位容器,进程从冻结点继续跑。省掉的是模型加载和 warmup,不是 Kubernetes 调度。

落盘整包叫 artifact。它不是容器镜像,也不是 VolumeSnapshot。概括包括:

  • CRIU 镜像(CPU 寄存器、内存页、部分资源描述)
  • CUDA 状态(先到进程的 host 内存,再进 CRIU;多卡另有 cuda-checkpoint-job)
  • overlay 差量 rootfs-diff.tar、deleted-files.json
  • manifest.yaml(以及 criu.conf、dump.log)

设计是 policy-neutral:何时拍、拍谁、失败怎么办,交给上层。Snapshot 执行请求,进度挂在 Kubernetes 对象上。调用方只跟 apiserver / CR 打交道。


2. 仓库结构

路径 职责
api/ CRD(v1alpha1)和 restore 用的 podcontract
operator/ 控制面:PodSnapshot / SnapshotJob、artifact 清理、snapshotctl
agent/ 节点 DaemonSet:CRIU / cuda-checkpoint、进 namespace、restore
charts/snapshot/ 一次装 operator + agent + PVC + RBAC + seccomp
e2e/ 对着真 GPU 集群或 vCluster 跑

镜像:ghcr.io/ai-dynamo/snapshot/{operator,agent}。agent 只做 linux/amd64。


3. 控制面怎么切

Operator (Deployment):把 namespaced 的 PodSnapshot 转成 cluster-scoped 的 PodSnapshotContent 工单,把 agent 写回的 Ready/Failed 镜像到 Snapshot,删对象时清盘。

Node Agent (特权 DaemonSet,hostPID / hostIPC / hostNetwork):看着本机 Content 和带 restore 注解的 Pod,真正调 CRIU 与 cuda-checkpoint。

一句话:operator 编排,agent 执行。agent 没有另开给业务调的 HTTP/gRPC。

容易忽略:restore 不经过 operator。 新 Pod 打上注解即可;checkpoint 必须 operator 在,否则没有 Content 工单。

操作 谁决定节点
Capture 钉死在源 Pod 所在节点
Restore kube-scheduler 把 restore Pod 落到哪,哪台机器上的 agent 干活

4. 三个 CR,先记名字

拆法类似 PVC / PV。细节(为何不能合成一个、SnapshotJob 为何底层 Job 常显示 Failed)见内部逻辑。

对象 范围 回答的问题
PodSnapshot namespaced 用户要拍谁、restore 时引用谁
PodSnapshotContent cluster 文件在哪套身份下、该哪个节点去拍
SnapshotJob namespaced 一句话「起 Pod → 拍成 Snapshot」

restore 注解 nvidia.com/restore-from 指向同 namespace 的 PodSnapshot 名,不是 Content。


5. 和 Dynamo 的关系(一句)

仓库在 ai-dynamo 下,但 Snapshot 不认识 Dynamo。何时拍、哪份 worker restore,在 Dynamo operator(DynamoGraphDeployment / DynamoCheckpoint)。机制在 Snapshot。产品路径细节见内部逻辑。


6. 现状

早期开发,不适合生产。已经能跑通绑定、SnapshotJob、节点 dump/restore、restore 合同、Helm 和 e2e。主要限制:一次一个容器、dump 会杀掉源进程、跨节点要共享 RWX 盘和匹配的 GPU/驱动、restore 失败不能在原 Pod 原地重试。


附录:常用术语

术语 含义
Capture 按请求把源容器状态落到 artifact 的整条流程
dump 把活进程序列化成文件的动作
Restore 在新容器里把状态灌回去
Artifact dump 落盘后的整包产物
CRIU 用户态 CPU checkpoint/restore
cuda-checkpoint NVIDIA 冻/恢复 CUDA 状态;agent 里常用 cuda-checkpoint-helper
Operator / Node Agent 控制面 vs 节点上真正 dump/restore
placeholder restore 前先跑着的占位进程(如 sleep infinity)
policy-neutral 只负责机制,不负责何时拍

参考

相关推荐
用户8314550980311 小时前
如一 Agent 架构解读(一):数字分身的执行模型——Run、Turn 与四个时间尺度
人工智能
Kyops1 小时前
GPT-6 把地图和交互组件带进 ChatGPT,答案终于可以直接操作了
人工智能
布吉岛的石头1 小时前
Java 程序员第 49 阶段11:Java 接 BERT:用 ONNX Runtime 做句向量推理
java·人工智能·python·深度学习·bert·transformer
OCR_133716212751 小时前
智能交通底层逻辑:国内车牌分类规范与AI识别适配技术解析
大数据·人工智能·分类
Vincy1231 小时前
腾讯开源 WeKnora 深度评估:3 万 Star 的 RAG 框架,你的 Milvus 能直接用吗?
人工智能
染指11101 小时前
140.Agent-多Agent框架-Agent执行Skills流程
数据库·人工智能·设计模式·langchain·agents
小慧姐姐呀1 小时前
把大模型塞进桌面端:一次本地离线 AI 推理的选型与工程实践
人工智能
Chengyunlai1 小时前
告诉模型输出 JSON,就一定能得到正确的 JSON 吗?
人工智能
万联WANFLOW1 小时前
从 ARTEX 事件看 AI Agent 安全:工具调用链为何成为新的风险入口?
人工智能·安全·测试