在当前大模型推理逐步走向生产化的背景下,如何在多样化硬件环境上高效、稳定地管理推理服务,在工程落地中尤其关键。尤其是在国产 GPU 场景中,不同推理引擎、驱动栈与部署方式之间的组合复杂度明显提升,单纯依赖手工部署或脚本维护,往往难以兼顾效率与可运维性。
GPUStack 是面向生产环境的开源 AI 模型服务平台。它提供从 GPU 集群管理、模型部署到服务化运行、访问控制、运维监控和计量计费的一体化能力。平台支持 vLLM、SGLang、MindIE 等主流推理引擎,原生兼容多厂商异构 GPU,并允许自定义推理镜像接入。
在异构 GPU 环境下,GPUStack 可以将原本分散的推理服务进行统一纳管,使模型部署、服务运行以及监控观测都集中在同一平台中完成,从而降低多环境运维复杂度。
本文将以沐曦 C500 为实践环境,重点关注一个更贴近真实工程的问题:
如何在异构 GPU 上,管理 vLLM、SGLang 等推理服务,并实现统一部署与可观测运维。
- GPUStack 安装与集群初始化
在开始部署推理服务之前,首先需要完成 GPUStack 控制面的安装,并将沐曦 GPU 节点纳入统一管理。
整个过程可以拆分为两个部分:Server 部署 + Worker 节点接入。
1.1 准备容器环境
GPUStack 以容器方式运行,因此需要提前准备好容器运行环境(如 Docker、Podman 或 Kubernetes)。本文以 Docker 为例进行说明。
在各节点上安装 Docker,确保服务已正常启动:docker info
1.2 启动 GPUStack Server
GPUStack Server 无需依赖 GPU,可运行在普通 CPU 节点上。本文以一台虚拟机作为控制节点,在该节点上启动 GPUStack Server 容器:
sudo docker run -d --name gpustack \
--restart unless-stopped \
-p 80:80 \
--volume gpustack-data:/var/lib/gpustack \
swr.cn-south-1.myhuaweicloud.com/gpustack/gpustack:v2.1.1 \
--debug --bootstrap-password GPUStack@123
这里几个关键参数说明:
-p 80:80:用于对外暴露 Web 控制台端口;如需修改为其他端口(例如 9999),可调整为 -p 9999:80。
--volume:持久化平台数据(包括模型服务、计量数据、API Key 等)
--bootstrap-password:初始化 admin 用户密码
--debug:开启调试日志,便于排查问题
容器启动后,可以通过日志确认服务是否正常运行:docker logs -f gpustack
1.3 访问控制台并初始化
打开浏览器访问:http://<Server 主机 IP>:80
使用默认账号登录:
用户名:admin
密码:GPUStack@123
登录后,首先创建一个集群(Cluster),用于统一管理后续接入的 GPU 节点。
1.4 添加沐曦 GPU Worker 节点
在集群创建完成后,可以开始接入沐曦 GPU 节点。
在添加节点之前,建议先完成基础环境检查。
(1)驱动状态检查
在目标节点执行:mx-smi >/dev/null 2>&1 && echo "Metax driver OK" || (echo "Metax driver issue"; exit 1)
如果输出为:Metax driver OK说明驱动已正确安装。
(2)运行时目录检查
确认以下目录存在:ll /opt/mxdriver ll /opt/maca
这两个目录分别对应沐曦驱动与运行时环境,是推理服务正常运行的基础依赖。
(3)接入 Worker 节点
在 GPUStack 控制台中,选择添加节点(Worker),并复制系统生成的接入命令,在目标节点执行。
编辑
该命令本质上会启动一个 Worker 容器,并自动注册到 Server。
(4)验证 Worker 状态
节点接入后,可以在节点上查看容器日志:docker logs -f gpustack
同时,在 GPUStack 控制台中也可以看到节点状态是否为 Ready。
至此,GPUStack 的控制面已成功部署,沐曦 GPU 节点也顺利接入集群,并能够正常采集 GPU 名称、索引、厂商信息、温度、利用率及显存使用等指标。接下来即可在该环境中部署具体的推理服务。
编辑