
先把可恢复性作为规划目标
跨集群检查点复制应先围绕一致性窗口规划,再计算带宽。只有当一个检查点的全部必需对象、元数据和完成标记都已在目标端落盘并通过校验,它才是可恢复副本。复制进行中、索引尚未提交或对象尚未闭合时,副本只能标记为“传输中”,不能标为可恢复。异步复制只表示源端不等待目标端完成,并不等于数据已经安全,也不应被直接计入恢复点目标。
用一致性窗口定义恢复点
先识别一次训练或业务保存所涉及的状态:模型分片、优化器状态、随机数状态、数据消费位置、清单及版本元数据。将这些对象归入同一个检查点世代,并为世代分配不可复用的标识。源端完成写入后冻结清单,目标端按清单复制;全部对象的长度、摘要或对象版本核对无误后,再原子发布完成标记。恢复程序只能枚举带有完成标记的世代。
一致性窗口是从源端冻结清单到目标端发布完成标记的时间。它决定故障时最多可能损失的已生成状态,也决定恢复时是否会读到跨世代混合的数据。不要用“最近修改时间”推断世代完成,因为并发写入、缓存延迟和时钟偏差都会破坏该假设。
把故障域纳入恢复点定义
恢复点不仅是时间点,也是位置选择。源集群与目标集群应在供电、网络汇聚、控制面、身份服务、存储账号和运维权限上尽量减少共同依赖;否则链路正常时看似完成的复制,可能在同一故障中同时不可用。对于共享管理域或共享对象存储的部署,应明确它只能改善误删、单节点或局部存储故障,不能自然等同于跨故障域恢复。
恢复目标还应区分数据可读、作业可启动和服务可用。前者依赖检查点完整性,后两者还依赖目标环境的镜像、配置、凭据、配额与调度条件。版本、地区和硬件相关限制必须按现场环境及官方文档复核,不能由复制工具的成功日志替代。
按窗口反推带宽并进行整形
带宽预算应覆盖检查点增量、重传、协议开销和与生产流量的竞争,而不是只比较链路标称速率。以观察到的高分位检查点大小和目标一致性窗口估算所需持续吞吐,再保留突发余量。复制任务应设置可调上限、并发数和优先级:正常时平滑传输,业务高峰时收缩,窗口临近超时才在预设上限内提升优先级。
整形策略不能把网络打满后再依赖训练通信“自行恢复”。NCCL 的用户指南说明其面向多 GPU、多节点通信的能力与使用环境;检查点复制与集合通信共享网络时,应在实际拓扑、作业并发和版本组合下测量干扰,分别配置流量类别和告警阈值,而不从通信库能力推导出复制一致性保证。
落实复制协议与保留策略
- 在源端完成本地写入后生成不可变清单,记录世代、对象列表、摘要、大小和依赖的运行元数据。
- 按可续传方式传输对象,并将目标端临时对象与已发布命名空间隔离。
- 目标端对照清单执行完整性校验;任何缺失、摘要不符或权限错误都保持未完成状态。
- 仅在校验成功后发布完成标记,并记录源世代、目标位置、校验时间和复制延迟。
- 保留多个已验证世代,清理操作只能作用于未被恢复策略锁定的完成世代。
删除和覆盖也要通过同一控制面传播。反例是源端清理策略立即镜像删除到目标端:遇到误删或逻辑损坏时,它会把唯一可用恢复点一并移除。应为删除设置延迟、保留窗口或独立审批,并定期确认最早和最新可恢复世代仍可读取。
验证应覆盖成功路径和中断路径
运行指标至少包括:源端完成到目标端完成的延迟、窗口超时次数、待传输字节、重传或校验失败次数、完成标记发布失败次数、最近可恢复世代年龄,以及恢复演练的读取与启动结果。只监控网络吞吐会遗漏最关键的“已完成但不可用”风险。
验证时主动注入链路中断、目标端空间不足、单对象损坏、复制进程重启和源端写入重叠等情形,确认未完成世代不会被恢复程序选中,续传不会跨世代拼接。NVIDIA 的DGX SuperPOD 参考架构提供可扩展基础设施的设计参考;涉及其组件、网络布局或软件版本时,应据该文档和现场拓扑复核,不把参考架构视为检查点复制协议的替代品。
预先写清故障后的回退路径
当目标端校验失败、窗口持续超时或目标故障域不可用时,控制面应停止发布新恢复点,保留最后一个已验证世代,并明确切换到本地已完成检查点、另一独立副本或暂停恢复的条件。恢复演练必须从完成标记开始选择世代,校验清单后再启动作业;不得为了缩短恢复时间而使用传输中的目录。故障结束后重新建立复制时,应以世代和摘要比较差异,避免盲目覆盖已经验证的目标副本。
WeChat
Profile