DeepSeek 一体机部署-满血版多机部署
本节介绍利用 musa-deploy/musa-deploy-ansible 工具在多台服务器快速部署满血版 DeepSeek 推理服务的步骤。满血版 DeepSeek 大模型推理服务是基于摩尔线程推出的 vLLM-MUSA 产品部署的。需注意,vLLM-MUSA 和前面章节单机部署提到的 vLLM-MTT 不是一个推理后端,不是同一个产品。
阅读本章节前,建议用户先仔细阅读前面 demo 章 节。
主要部署思路
- 利用 musa-deploy-ansible 工具,在多台服务器上部署基础 MUSA 开发环境,包括安装驱动,安装 Container_toolkit;如果每台服务器上基础 MUSA 环境已经搭建好,那么可以跳过此步骤。
- 利用 docke swarm 建立一个小的集群,确定 leader 节点(对应 ray 集群的 master 节点);
- 利用 musa-deploy-ansible 工具启动推理服务,在 leader 节点和 worker 节点分别自动拉起容器来部署服务。
下面会介绍部署的详细步骤。
1. 设置免密登陆(仅初次部署时需执行 1 次)
确定一台可以连接服务器的机器作为控制节点, 登录该控制节点机器执行如下步骤:
- 安装 musa-deploy 工具(安装方法);
- 新建 hostfile 文件,内容是服务器的 ip,用户名和密码,格式如下面示例所示;
192.168.x.x server0_username xxxxxxx192.168.x.x server1_username xxxxxxx192.168.x.x server2_username xxxxxxx192.168.x.x server3_username xxxxxxx192.168.x.x server4_username xxxxxxx
- 设置免密登录,命令如下:
sudo musa-deploy-ansible --hostfile hostfile --ssh-copy-id
建议以一台非部署推理服务的机器作为控制节点,因为在安装驱动的过程中会重启机器,可能导致执行命令中断。
执行结果示例图如下,如果已经配置过免密登陆,那么会自动 跳过:

2. 部署基础 MUSA 开发环境(仅初次部署时需执行 1 次)
2.1 调整 systemd 任务数限制
为防止因系统任务数限制导致 MUSA 相关服务异常,确保系统在高负载场景下的稳定性,需要检验每台机器 systemed 配置:
# 1. 编辑配置文件:
sudo vim /etc/systemd/system.conf
# 2. 找到或添加以下行(如果已存在则修改,否则新增):
DefaultTasksMax=70%
# 3. 保存并退出,然后重新加载 systemd 配置
sudo systemctl daemon-reload
sudo systemctl restart docker
70% 为推荐值,可根据实际负载调整
2.2 检查 Docker 守护进程配置
在部署多机推理服务前,需确保每台 机器未启用 live-restore,以避免 Docker 守护进程重启后容器继续运行造成状态不一致。
1. 检查当前 live-restore 状态
docker info | grep -i 'Live Restore Enabled'
如果结果为:
Live Restore Enabled: true
则需修改 Docker Daemon 配置,禁用该功能。
2. 修改 Daemon 配置
# 1. 修改配置文件
sudo vim /etc/docker/daemon.json
# 将 "live-restore": true 配置删除或者改为 "live-restore": false
# 2. 重启 docker 服务
sudo systemctl restart docker
💡
Live Restore Enabled是 Docker 守护进程(dockerd)的运行时状态配置。若启用(true),容器会在 dockerd 重启时继续运行;禁用(false)时,dockerd 重启将中断所有运行中的容器(默认行为)。
2.3 配置基础 MUSA 环境
在启动服务之前,需为每台服务器部署 MUSA 开发环境, 可使用以下命令进行一键部署:
sudo musa-deploy-ansible --hostfile hostfile --demo vllm_musa
首次部署注意事项:
- 需要从在线源下载 SDK 和 container_toolkit 等组件,过程可能耗时数分钟,请耐心等待;
- 安装驱动后会自动重启服务器以加载驱动。重启期间会出现含 unreachable 的日志,这是正常现象。几分钟后服务器将自动恢复连接。
3. 初始化 docker swarm 集群
3.1 初始化集群
拉起服务前,需要先建立一个 docker swarm 集群,命令如下:
sudo musa-deploy-ansible --hostfile hostfile --init-cluster
下图显示的是 5 台服务器集群创建过程。其中 1 台是 docker swarm 集群的 leader 节点,这个 leader 节点对应 hostfile 文件中的第一行 ip 服务器。

执行完成后,可以登陆 leader 节点,执行下述命令查看 docker swarm 集群状态:
docker node ls

3.2 清除集群配置
当以下情况发生时,可使用以下命令清除已有的 Docker Swarm 集群配置:
- 建立 Swarm 集群失败;
- 需要终止并清除已部署的服务。
sudo musa-deploy-ansible --hostfile hostfile --reset-cluster
清除集群后,在原 leader 节点再次执行 docker node ls 命令, 如下图所示,表明集群清除成功。此时如果需要重新创建集群或者部署服务,需要再次初始化集群。
