AI算力纳管工具GPUStack Server+华为鲲鹏+麒麟操作系统 保姆级安装过程
本文详细介绍了在华为鲲鹏服务器+麒麟操作系统环境下安装GPUStack的完整流程。重点包括:1)系统基础环境初始化;2)Docker及Containerd安装;3)华为昇腾驱动与Docker Runtime的关键安装步骤;4)GPUStack的两种部署方式(Docker Compose推荐/Pip直接安装)。文章特别强调了昇腾驱动适配和Docker容器识别NPU的配置要点,并提供了常见问题的解决方
AI算力纳管工具GPUStack Server+华为鲲鹏+麒麟操作系统 保姆级安装过程
在 华为鲲鹏服务器 + 麒麟操作系统 (Kylin OS) 环境下安装 GPUStack,核心难点在于昇腾 (Ascend) 驱动与 Docker 环境的适配。GPUStack 本身是轻量级 Python 应用,但它依赖底层的 ascend-docker-runtime 来调度 NPU 资源。
以下是基于 银河麒麟高级服务器操作系统 V10 (ARM64/鲲鹏架构) 的保姆级安装教程。
📋 前置准备清单
- 硬件环境:
- 服务器:华为 TaiShan (鲲鹏 920 处理器)。
- 加速卡:华为昇腾系列 (如 Ascend 310P, 910B 等)。
- 网络:服务器需能访问外网 (下载源),或已配置好离线 yum 源。
- 软件版本要求 (建议):
- OS: 银河麒麟 V10 SP2/SP3 (ARM64)。
- 驱动固件:CANN (Compute Architecture for Neural Networks) 版本建议 7.0.RC2 或更高 (GPUStack 对新版 CANN 支持更好)。
- Docker: 20.10+。
- GPUStack: 最新版 (通过 pip 或 docker 安装)。
⚠️ 重要提示:本教程假设您尚未安装昇腾驱动。如果已安装,请跳过“步骤二”,直接检查 npu-smi info 是否正常。
步骤一:系统基础环境初始化
登录服务器(使用 root 用户或 sudo 权限),执行以下命令更新系统并安装基础依赖。
bash
# 1. 备份源配置(以防万一)
cp /etc/yum.repos.d/kylin.repo /etc/yum.repos.d/kylin.repo.bak
# 2. 清理并重建缓存
yum clean all
yum makecache
# 3. 安装基础工具 (git, wget, vim, net-tools, gcc, make, openssl-devel 等)
yum install -y git wget vim net-tools gcc gcc-c++ make openssl-devel libffi-devel python3-pip python3-devel
# 4. 关闭防火墙和 SELinux (生产环境建议按需配置端口,测试环境可暂时关闭)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 5. 检查时间同步 (集群部署时间必须一致)
date
# 如果时间不对,使用 ntpdate 或 chrony 同步
步骤二:安装 Docker 及 Containerd
GPUStack 强依赖 Docker 容器环境。麒麟系统自带 Docker 可能版本较老,建议安装最新版。
bash
# 1. 卸载旧版本 (如果有)
yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 2. 安装 yum-config-manager
yum install -y yum-utils
# 3. 添加 Docker 官方源 (国内建议使用阿里云或清华镜像加速,此处以官方源为例,若慢请替换为 mirror.aliyun.com/docker-ce)
# 注意:鲲鹏是 aarch64 架构,Docker 官方源自动适配
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4. 安装 Docker CE, CLI, Containerd
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 5. 启动 Docker 并设置开机自启
systemctl start docker
systemctl enable docker
# 6. 配置 Docker 镜像加速 (可选,强烈推荐,防止拉取镜像超时)
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub.rat.dev"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker
# 7. 验证 Docker
docker --version
docker run hello-world
步骤三:安装华为昇腾驱动与 Docker Runtime (最关键步骤)
这是最容易出错的环节。您需要从华为官网下载对应版本的 CANN toolkit 和 驱动固件。
1. 下载驱动与 CANN
请访问 华为昇腾社区 下载对应您卡片型号和操作系统版本的安装包。
假设您下载的是 CANN 7.0.RC2 (请以实际下载文件名为准)
需要下载的两个关键包:
- 驱动固件包: Ascend-hdk-<version>-linux-aarch64.run (包含驱动和固件)
- Toolkit 包: Ascend-cann-toolkit_<version>_linux-aarch64.run
- Docker Runtime 包: Ascend-docker-runtime_<version>_linux-aarch64.run
将下载好的 .run 文件上传到服务器的 /opt 目录下。
2. 安装驱动和固件
bash
cd /opt
# 赋予执行权限
chmod +x Ascend-hdk-*.run
# 安装驱动 (默认路径 /usr/local/Ascend)
# --full 表示全量安装,--no-kmod 表示不编译内核模块(如果内核已匹配)
./Ascend-hdk-*.run --full --install-for-all
# 安装完成后,重启服务器 (必须重启以加载驱动)
reboot
3. 验证驱动安装
重启后登录,执行:
bash
# 查看 NPU 状态,应能看到卡片信息且状态正常
npu-smi info
如果报错 command not found,说明环境变量未生效,执行:
bash
source /usr/local/Ascend/ascend-toolkit/set_env.sh
echo "source /usr/local/Ascend/ascend-toolkit/set_env.sh" >> ~/.bashrc
4. 安装 Toolkit (如果驱动包未包含)
bash
cd /opt
chmod +x Ascend-cann-toolkit_*.run
./Ascend-cann-toolkit_*.run --install --install-for-all
source /usr/local/Ascend/ascend-toolkit/set_env.sh
5. 安装 Ascend Docker Runtime (核心)
为了让 Docker 容器能识别 NPU,必须安装这个运行时。
bash
cd /opt
chmod +x Ascend-docker-runtime_*.run
# 执行安装
./Ascend-docker-runtime_*.run --install
# 重启 Docker 服务以加载 runtime
systemctl restart docker
# 验证 Docker 是否识别了 runtime
docker info | grep -i ascend
# 输出中应包含 "Runtimes: ascend" 或类似信息
🧪 终极测试:运行一个 NPU 容器
bash
# 运行一个测试容器,挂载 NPU 设备
docker run -it --rm --device /dev/davinci_manager --device /dev/devmm_svm --device /dev/hisi_hdc \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons \
ascendai/ascend-toolkit:latest bash
# 进入容器后执行
npu-smi info
# 如果能显示卡片信息,说明底层环境完全打通!输入 exit 退出容器。
步骤四:安装 GPUStack
GPUStack 可以通过 pip 直接安装,也可以通过 docker 部署。推荐使用 Docker Compose 部署,便于管理。
方案 A:使用 Docker Compose 部署 (推荐)
创建一个工作目录:
bash
mkdir -p /opt/gpustack && cd /opt/gpustack
创建 docker-compose.yml 文件:
yaml
version: '3.8'
services:
gpustack:
image: gpustack/gpustack:latest
container_name: gpustack-server
restart: always
network_mode: host # 使用宿主机网络,简化配置
# 挂载数据目录
volumes:
- ./data:/var/lib/gpustack
- /var/run/docker.sock:/var/run/docker.sock # 允许 GPUStack 管理 Docker
# 关键:传递 NPU 设备给容器 (如果是多卡,需添加更多 /dev/davinci*)
devices:
- /dev/davinci_manager
- /dev/devmm_svm
- /dev/hisi_hdc
# 如果有具体卡号设备,如 /dev/davinci0, 也建议挂载
# - /dev/davinci0
# 环境变量
environment:
- GPUSTACK_WORKER_IP=0.0.0.0
- GPUSTACK_SERVER_URL=http://127.0.0.1:80
# 如果需要指定 HuggingFace 镜像加速
- HF_ENDPOINT=https://hf-mirror.com
# 启动命令 (作为 Server 启动)
command: server --data-dir /var/lib/gpustack
启动服务:
bash
docker compose up -d
方案 B:使用 Pip 直接安装 (适合开发调试)
如果您希望直接在麒麟系统上运行 Python 进程:
bash
# 1. 确保 python3 版本 >= 3.10
python3 --version
# 2. 安装 GPUStack
pip3 install gpustack
# 3. 启动 Server
# 注意:直接运行可能需要手动配置环境变量让 subprocess 调用的 docker 能识别 NPU
export ASCEND_VISIBLE_DEVICES=0
gpustack server --data-dir /opt/gpustack-data
步骤五:验证与使用
- 访问 Web 界面:
打开浏览器,访问 http://<服务器IP>:80 (如果在 docker-compose 中未修改端口)。
默认账号密码通常在日志中或通过初始设置创建。 - 添加 Worker (如果分离部署):
如果是单机部署,Server 默认也是 Worker。如果是集群,需要在其他节点安装 Worker 并指向 Server IP。
在鲲鹏+昇腾环境下,Worker 节点必须重复 步骤三 安装驱动和 Docker Runtime。 - 部署模型:
- 在 Web 界面点击 "Models" -> "Deploy Model"。
- 选择 HuggingFace 模型 (例如 Qwen/Qwen2.5-7B-Instruct)。
- 关键配置:
- Backend: 选择 llama-box (支持昇腾) 或 vox-box。
- GPU Selector: 确保勾选了您的 Ascend NPU。
- Env: 确保容器内能加载 CANN 环境变量 (GPUStack 新版通常会自动处理,若失败需自定义启动参数)。
- 查看监控:
在 Dashboard 中应能看到 NPU 的显存占用、利用率和温度。
🛠️ 常见踩坑与解决方案
|
问题现象 |
可能原因 |
解决方案 |
|
npu-smi info 命令不存在 |
环境变量未加载 |
执行 source /usr/local/Ascend/ascend-toolkit/set_env.sh 并写入 .bashrc |
|
Docker 容器内无法识别 NPU |
未安装 ascend-docker-runtime 或未重启 Docker |
重新安装 runtime 包,执行 systemctl restart docker,检查 docker info |
|
GPUStack 启动报错 No device found |
容器未挂载 NPU 设备 |
检查 docker-compose.yml 中的 devices 部分,确保 /dev/davinci* 已挂载 |
|
模型加载失败,报 CANN 错误 |
CANN 版本与驱动不匹配 |
严格对照华为兼容性矩阵,确保驱动、固件、Toolkit 版本一致 |
|
下载模型超时 |
网络问题 |
在环境变量中设置 HF_ENDPOINT=https://hf-mirror.com |
💡 进阶提示
- 多卡支持:如果是多卡服务器,确保 docker-compose.yml 中挂载了所有必要的 /dev/davinciX 设备,或者使用 --device /dev/davinci_manager 配合环境变量 ASCEND_VISIBLE_DEVICES=0,1,2,3。
- 性能优化:在麒麟系统上,建议将 CPU 频率模式调整为性能模式 (cpupower frequency-set -g performance) 以获得更稳定的推理延迟。
按照以上步骤,您应该能在华为鲲鹏 + 麒麟系统上成功搭建起基于昇腾算力的 GPUStack 大模型服务平台。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)