AI算力纳管工具GPUStack Server+华为鲲鹏+麒麟操作系统 保姆级安装过程

AI算力纳管工具GPUStack Server+华为鲲鹏+麒麟操作系统 保姆级安装过程

华为鲲鹏服务器 + 麒麟操作系统 (Kylin OS) 环境下安装 GPUStack ,核心难点在于昇腾 (Ascend) 驱动与 Docker 环境的适配。GPUStack 本身是轻量级 Python 应用,但它依赖底层的 ascend-docker-runtime 来调度 NPU 资源。

以下是基于 银河麒麟高级服务器操作系统 V10 (ARM64/ 鲲鹏架构)保姆级安装教程


📋 前置准备清单

  1. 硬件环境:
    • 服务器:华为 TaiShan (鲲鹏 920 处理器)。
    • 加速卡:华为昇腾系列 (如 Ascend 310P, 910B 等)。
    • 网络:服务器需能访问外网 (下载源),或已配置好离线 yum 源。
  2. 软件版本要求 (建议):
    • 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 ( 请以实际下载文件名为准)

需要下载的两个关键包:

  1. 驱动固件包: Ascend-hdk-<version>-linux-aarch64.run (包含驱动和固件)
  2. Toolkit 包: Ascend-cann-toolkit_<version>_linux-aarch64.run
  3. 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:

如果需要指定 HuggingFace 镜像加速

启动命令 (作为 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

步骤五:验证与使用

  1. 访问 Web 界面:
    打开浏览器,访问 http://<服务器IP>:80 (如果在 docker-compose 中未修改端口)。
    默认账号密码通常在日志中或通过初始设置创建。
  2. 添加 Worker (如果分离部署):
    如果是单机部署,Server 默认也是 Worker。如果是集群,需要在其他节点安装 Worker 并指向 Server IP。
    在鲲鹏+ 昇腾环境下,Worker 节点必须重复 步骤三 安装驱动和 Docker Runtime
  3. 部署模型:
    • 在 Web 界面点击 "Models" -> "Deploy Model"。
    • 选择 HuggingFace 模型 (例如 Qwen/Qwen2.5-7B-Instruct)。
    • 关键配置:
      • Backend: 选择 llama-box (支持昇腾) 或 vox-box。
      • GPU Selector: 确保勾选了您的 Ascend NPU。
      • Env: 确保容器内能加载 CANN 环境变量 (GPUStack 新版通常会自动处理,若失败需自定义启动参数)。
  4. 查看监控:
    在 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 大模型服务平台。

相关推荐
逻辑君2 小时前
Research in Brain-inspired Computing [1]-弹球游戏
c++·人工智能·神经网络·机器学习
龙文浩_2 小时前
【无标题】AI深层神经网络(多层全连接)+ ReLU 激活 的完整处理流程
人工智能·python·深度学习·神经网络·机器学习
花先锋队长2 小时前
华为音乐世界睡眠日特别策划上线,在沉浸式空间音频摇篮曲中入梦
华为·智能手机·harmonyos
新缸中之脑2 小时前
AI智能体评估指南
数据库·人工智能·oracle
zzh940772 小时前
大模型压缩与蒸馏技术拆解:GPT-4o与Gemini官网如何实现模型瘦身?
人工智能·深度学习·计算机视觉
zyhomepage2 小时前
科技的成就(七十二)
开发语言·人工智能·科技·算法·内容运营
Daydream.V2 小时前
OpenCV高端操作——特征检测(附案例实战)
人工智能·opencv·计算机视觉
RuiBo_Qiu2 小时前
LLM的神经网络之谜: 神经网络是简单的线性计算加非线形激活的堆叠
人工智能·深度学习·神经网络
金融小师妹2 小时前
基于多因子定价模型解析:美元强势与利率预期重构驱动的金价8连跌机制
大数据·人工智能·svn·能源