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:

      - 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

步骤五:验证与使用

  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 大模型服务平台。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐