已关闭
[Feature-Request|需求反馈]: mooncake 池化后端适配 standalone 部署模式(NodeManager 管理独立 store 进程) #511
zhinengwu创建于  12 天前关闭于  8 天前
zhinengwu
zhinengwu
12 天前 创建

我已经搜索过现有和历史issues,确认这是一个新需求

已确认:搜索 Ascend/MindIE-Motor 历史 issue(关键词 mooncake / standalone / 部署模式 / 存池),无同主题 issue。

背景信息

Mooncake 池化后端当前只有 in-process(embedded)部署模式:池化内存由引擎进程自身贡献(global_segment_size)。该模式有两个生产痛点:

  1. 引擎进程挂掉,其贡献的池化内存随之失效,池内数据不可用;
  2. 大块池化内存与引擎权重 / KV cache 内存同进程申请,存在资源竞争。
    生产 standalone 部署场景需要把「内存贡献者」从引擎进程中剥离,由独立 store 进程管理池化内存,与引擎生命周期解耦。

需求来源

P/D 分离 standalone 部署场景(生产部署需求)。

价值/作用

  • store 进程独立申请大块池化内存,先于引擎启动,避免与引擎权重 / KV 内存竞争;
  • 引擎故障 / 重建不影响池内已有数据(引擎故障不清池);
  • store 进程故障由 NodeManager 原地重拉,自动重新注册回 master;
  • 引擎仅作为纯请求方(global_segment_size=0),引擎侧配置由部署脚本自动生成。

设计方案

  1. 新增 motor/node_manager/core/services/mooncake/ 服务模块(lifecycle.py + bootstrap/),通过 service registry 注册(backend="mooncake"),由 NodeManager 管理 mooncake_store_service
    子进程生命周期:
    • prepare:只生成 store 配置文件(mooncake_store_config.jsonlocal_hostname 取 POD_IP,master 地址取 KVS_MASTER_SERVICE),在此阶段启动进程,避免引擎启动等待 store;
    • pull(start 流程中引擎拉起之后):启动 mooncake_store_service 子进程;protocol=ascend 时经 bootstrap 模块在进程内创建 ACL device context(store 自身不调用 aclrtSetDevice),保持
      comm-free 不建 HCCL comm
      ——store 与引擎 worker 同节点同卡时,comm 会使 adxl P2P 握手合并 ranktable 出现重复 device IP,HCCL 校验报 EI0014;
    • store 通信环境自动配置:HIXL comm_resource_config.listen_port=26666(merge 进 ASCEND_GLOBAL_RESOURCE_CONFIG),使 store 在 ranktable 中携带独立 device_port 与同卡 worker 区分;HCCL
      socket 端口段避开引擎(A2:HCCL_NPU_SOCKET_PORT_RANGE=16700-16800;A5:host socket 段 +2000),防止 EI0020;
    • health_check:进程死亡时原地重拉并重新注册 master(受 MOTOR_RESTART_LOCAL_SERVICE 控制,默认开启)。
  2. 引擎侧要求(所有硬件,env.json 引擎角色必配):HCCL_INTRA_ROCE_ENABLE=1(HIXL 走 RoCE)、ASCEND_LOCAL_COMM_RES={"version":"1.3"}(v1.3 格式本地通信资源,走 client-server
    单边通信,ranktable 携带 device_port,是同卡多进程建链前提)。
  3. KVCacheStoreConfig 新增配置项:store_modeembedded/standalone)、global_segment_sizelocal_buffer_sizestore_http_port(默认 0,内核分配临时端口,避免 hostNetwork
    同机端口冲突)、metadata_serverprotocoldevice_name;新增环境变量 MOONCAKE_CONFIG_PATH
  4. 引擎侧配置 global_segment_size=0 作为纯请求方。
  5. 文档:mooncake.md 新增 standalone 模式章节与环境变量说明,kv_cache_store README 参数表同步更新。
  6. 测试:test_lifecycle.py + test_store_bootstrap.py 新增,config / registry 测试更新。
likedislike
zhinengwuzhinengwu
12 天前 关联了pull request:mooncake适配standalone部署模式
wangyang
wangyang成员
12 天前 评论:

👋 您好,感谢向 mindie-motor 提交 Issue!
🎉 我们已收到您的反馈,感谢你对开源社区的支持!

📅 处理时效 维护团队将在工作日 24 小时内查看并回复您的问题。
🔍 自助排查(推荐优先查看) 在等待回复期间,您可以先查阅仓库README以及历史 Issue 中相似问题的解决方案,多数问题可快速解决。
💡 为了更快定位问题,请您确保 Issue 包含:

清晰的问题描述
可复现的操作步骤
相关日志、截图或环境信息
我们会尽快跟进,感谢您的理解与配合!

likedislike
zhinengwuzhinengwu
9 天前 修改了issue 的描述
zhinengwuzhinengwu
9 天前 修改了issue 的描述
wangyangwangyang成员
8 天前 关闭了 issue
ascend-robotascend-robot成员
8 天前 添加了label:resolved