文档首页/ 云容器引擎 CCE/ 最佳实践/ 云原生AI/ 基于Pod Snapshot的大模型推理服务快速恢复
更新时间:2026-06-18 GMT+08:00

基于Pod Snapshot的大模型推理服务快速恢复

背景信息

随着大语言模型(LLM)推理在云原生环境的大规模部署,弹性伸缩与快速恢复成为保障服务等级协议(SLA)的关键。然而,面对百亿参数级模型(如DeepSeek-V3),传统Pod重启流程面临以下问题:

  • 模型加载延迟高:以DeepSeek-V3等MoE架构模型为例,完整加载流程包括从磁盘读取权重文件、反量化处理、权重格式转换(如NPU的NZ排布格式)、通信域初始化等多个串行步骤,冷启动耗时往往在分钟级。对于需要快速扩容应对流量洪峰或故障恢复的场景,这种延迟直接导致服务中断或降级。
  • NPU设备状态不可迁移:大模型推理深度依赖NPU加速卡的运行时状态,包括已下发的计算任务、HCCL通信通道、设备端内存中的KV Cache与模型权重等。原生的容器快照技术(如CRIU)仅能处理CPU侧的进程状态,无法感知和保存NPU侧的硬件上下文,导致恢复后设备状态丢失、推理无法继续。
  • 分布式通信拓扑断裂:大模型推理依赖TP/EP等跨节点并行策略,HCCL通信域与Pod IP强绑定。当Pod在故障恢复后被调度至新节点时,IP地址的变更将导致原有HCCL通信通道完全失效,必须通过重建通信域方可恢复分布式推理能力。
  • 量化权重处理状态丢失:在W8A8等量化场景下,模型权重在加载后需经过后处理流程,包括转置操作、NZ格式转换以及量化参数展平等处理步骤,从而生成派生状态。这些派生状态并未包含在原始checkpoint快照中,Pod恢复后若从原始权重重新加载,将不可避免地需要重新执行上述耗时的后处理流程。

Pod Snapshot机制

为了解决上述问题,vllm-ascend引擎适配了Pod Snapshot快速恢复机制,实现原理请参见下图。

该机制的核心思路是在推理Pod正常运行时,将模型完整运行时状态持久化到共享存储;当Pod需要恢复时,通过CANN底层的快照API恢复NPU设备状态,并从共享存储直接还原模型权重至NPU显存,同时重建分布式通信拓扑,从而跳过耗时的模型加载与初始化流程,实现秒级恢复。

  • 快照阶段全链路状态冻结
    在模型加载及权重后处理(如量化参数派生、格式转换)完成后,系统会将从应用层到硬件层的完整状态序列化至共享存储。
    • 计算缓存持久化: 将旋转位置编码(RoPE)的余弦/正弦等非持久化缓存,以及量化层生成的缩放因子(Scale)、偏移量(Offset)等关键参数缓存至CPU侧,规避恢复后的重复计算。
    • 设备状态冻结: 底层调用CANN运行时API,锁定NPU上执行中的计算任务(In-flight tasks),并将完整的设备上下文备份至快照存储,实现状态的全链路冻结。
  • 恢复阶段显存直通与按需后处理

    新节点启动后,系统将绕过传统的磁盘解析和加载流程。

    • 硬件状态恢复: 优先通过CANN API恢复设备侧上下文,并重新加载底层的HCCL通信任务。
    • 内存映射直读: 利用mmap技术从共享存储加载模型状态,将权重与缓冲区数据由CPU内存直传至NPU显存,减少反序列化开销。
    • 按需触发派生逻辑: 针对W8A8量化层、MLA注意力机制及Attention Mask,系统仅在首次前向推理时,基于恢复标识自动触发后处理逻辑(涵盖矩阵转置、NZ格式转换及投影矩阵重建)。同时,强制刷新匹配当前序列长度的Mask缓存,确保推理状态的一致性与安全性。
  • 通信域重建分布式环境无缝衔接
    • 拓扑清洗与更新: 彻底清空原有的Ascend 并行通信组(TP/EP/网络投影等),并利用新Pod的真实网络信息(IP与主节点地址)更新分布式环境。通过递增初始化端口策略,有效规避网络冲突。
    • MoE路由重绑: 针对专家并行(EP)场景,重新绑定并行通信组与调度配置,并刷新HCCL通信标识,确保大模型路由分发的精准性。
    • 复用计算图: 依托TorchAir编译图启用的GE(Graph Engine)缓存机制,恢复后的计算图可直接复用,避免了重新编译的巨大性能损耗,实现通信与计算的高效桥接。

核心组件

grus

grus是容器快照引擎,旨在实现容器快照与K8s生态的无感对接,并提供高性能、高可靠的容器快照能力。

  • 兼容CRI API规范的checkpoint接口。
  • 通过grus-agent对接OCI runtime,实现restore过程的无感化。
  • 支持容器RW层数据的高效导入导出能力。

CRIU

CRIU(Checkpoint/Restore In Userspace)是Linux容器领域领先的检查点与恢复(Checkpoint/Restore)开源项目。该项目能够在运行的应用程序或其部分组件执行冻结操作,将其检查点化(checkpoint)保存为文件集合存储在硬盘上,此后可根据这些文件快照从冻结点恢复应用执行,从而实现容器状态的无缝迁移与故障恢复。CRIU的核心特点在于其主要在用户空间实现,尽管存在其他实现Linux C/R功能的项目,但CRIU仍是功能最丰富且与内核同步性最佳的主流开源项目。目前,CRIU已被OpenVZ、LXC/LXD、Docker等软件集成采用,并获得开源社区的大力支持,其软件包已全面纳入各主要Linux发行版的软件仓库。

在开源CRIU基础上,我们进行了深度定制与能力增强,并封装为专用RPM分发包。该软件包由一个核心二进制文件与一个so文件组成,二者协同完成容器级NPU场景的检查点与恢复功能。

  • criu(核心二进制):提供容器级快照的dump/restore能力,对容器进程涉及的资源进行转储和恢复。
  • npu_plugin.so:基于CRIU的Plugin机制,对接NPU设备资源(文件句柄、vma、SHM等),实现NPU设备资源的导入导出功能。