已合并
支持引擎原生拉起:删除Engine Server冗余代码 #717
tobking创建于 23 天前
支持引擎原生拉起:删除Engine Server冗余代码 #717
已合并
Pull Request已成功合入, 合并人@wangyang
(感谢 tobking 的贡献)atomgit-bot
23 天前 评论:
23 天前 评论:
🤖 正在生成合并请求摘要,请稍候…


atomgit-bot
23 天前 评论:
23 天前 评论:
🤖 AI 代码检视正在进行中,请稍候…


23 天前 添加了label:pr-audit-failed
xiangjie10
23 天前 评论:
23 天前 评论:
🔍 PR 规范审计未通过,以下项目需要修正:
- ❌ PR 未关联里程碑或 Issue
- ❌ PR 新增代码 9163 行超过 1000 行,且标题未标注"反合"
请修正后重新提交,或联系仓库管理员。


23 天前 添加了label:stat/needs-squash
此处折叠了156条消息 查看更多
18 天前 添加了label:approved
liu
18 天前 评论:
18 天前 评论:
/lgtm


18 天前 添加了label:lgtm
18 天前 合入了pull request
1. 合入背景
在 NodeManager 原生拉起 vLLM/SGLang、Coordinator 直连原生推理端口(前序原生引擎 / PD 路由能力)落地后,
motor/engine_server已不再承担启动、推理转发与管理面职责,继续保留会带来:本 PR 是「删除 EngineServer、收敛到 Native Runtime」系列的收尾重构:删除
motor/engine_server及其测试/入口,清理仅服务于 EngineServer 的 dispatch/配置/文档。容器快照中,显存保存/恢复由具备快照能力的引擎镜像自闭环完成;NodeManager 不再触发/suspend、/device_unlock、/resume,只保留框架侧状态刷新、元数据准备和完成态感知。2. 修改内容
删除 EngineServer 组件
移除
motor/engine_server/(CLI、推理/管理 Endpoint、dispatch adapter、vLLM/SGLang 封装、sim_inference、snapshot_sentinel 等)、setup.py入口及相关 UT;进程模型收敛为 NodeManager 直接拉起vllm serve/sglang.launch_server。容器快照职责切分(vLLM 快照镜像)
显存快照保存/恢复是引擎原子能力,由支持快照的独立引擎镜像自闭环完成。NodeManager 在整个快照生命周期只做框架侧编排:
job_name、pod_ip),保证恢复后能向 Controller 注册;model_save_path/model_load_path、data_parallel_master_ip等);checkpoint标记感知保存/恢复是否完成(心跳屏障、readiness)。因此删除
native_engine/snapshot.py(SnapshotOrchestrator/NativeSnapshotControl)及其在EngineManager、Daemon、NativeEngineService上的触发接线。原先 EngineServer 的snapshot_sentinel下沉到引擎原生 server(如api_server),不在 NodeManager 中重建。总开关
motor_container_snapshot_config.enable_snapshot默认false;SGLang 开启该开关时配置校验失败。配置与公共协议精简
EndpointConfig的 EngineServer CLI /init_endpoint_config/snapshot_metadata等入口;TLS 更新改为_update_native_engine_tls_config;engine_constants中仅 EngineServer 使用的常量;dispatch.py:移除 EngineServer 侧 dispatch 信封模型与相关 helper,保留原生路由所需的DispatchProfile/ capability 分类。资料与开发指南同步
删除 EngineServer 架构/接口/虚推文档与插图;更新 architecture、NodeManager/Coordinator 开发指南、
container_snapshot、部署与配置参考;管理面文档补充原生场景下mgmt_port/bootstrap_port语义说明,并修正失效链接。快照文档改为:引擎负责 Device 侧 suspend/resume/unlock,NodeManager 负责元数据、注册与状态感知。测试
删除
tests/engine_server/**以及 NodeManager 侧 snapshot orchestrator UT(test_snapshot.py及snapshot_targets相关用例);保留 metadata 准备、restore 注册刷新、checkpoint 屏障等框架侧 UT。上下游关系(简要)
设计文档位置
.agent/skills/motor-dev/references/nodeman.md(Native Runtime + Snapshot Boundary)docs/zh/user_guide/features/container_snapshot.mddocs/zh/developer_guide/components/node_manager.mddocs/zh/architecture.md/docs/zh/design/pd_disaggregation.mdDFX
[snapshot];恢复后刷新注册信息并重试向 Controller 注册;/health;pause 返回原生 metrics URL;3. 资料变更
涉及。删除 EngineServer 文档与插图;更新 NodeManager / 容器快照 / 架构与配置说明,明确显存快照由引擎自闭环、NodeManager 只做框架侧编排。
4. 接口变更
不涉及对外客户面接口变更。删除的是 Motor 内部 EngineServer 进程及 NodeManager 对引擎
/suspend、/device_unlock、/resume的主动调用;容器快照仍通过motor_container_snapshot_config.enable_snapshot显式打开,默认关闭。5. 测试结果
tests/node_manager/core/test_engine_manager.py、test_daemon.py、native_engine/test_service.py等框架侧用例通过(含 snapshot metadata / restore 准备、原生拉起与恢复门闩)。/suspend/resume的 UT。enable_snapshot后验证:冷启动稳态点、Host checkpoint、恢复后重新注册与推理恢复。6. CheckList
[x] 代码注释完备
[x] 正确记录维测日志
[x] 是否有UT用例
[x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题