1. 项目概述与背景
在虚拟化技术领域,GPU等硬件设备的共享一直是个棘手问题。传统PCI直通方案虽然性能无损,但一块物理GPU只能分配给单个虚拟机使用。而mdev(Mediated Device)技术的出现,让我们能够将一块物理GPU虚拟化为多个逻辑设备,实现硬件资源的灵活切分与共享。
mdevctl作为管理这套机制的命令行工具,其重要性不言而喻。最近我在KeyarchOS 5.8(aarch64架构)上成功适配了mdevctl-0.61-3版本,整个过程踩了不少坑,也积累了一些实战经验。本文将详细记录从环境准备到功能验证的全流程,特别会重点说明在ARM架构下的特殊注意事项。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖分析
2.1 硬件与操作系统要求
适配工作基于以下环境:
- 服务器型号:浪潮信息某款ARM架构服务器
- CPU:64核ARMv8处理器
- 操作系统:KeyarchOS 5.8(基于CentOS的国产发行版)
- 目标设备:NVIDIA Tesla T4 GPU(需提前确认支持SR-IOV和Mdev功能)
注意:不同GPU型号对Mdev的支持程度差异很大,建议在采购硬件前查阅厂商文档确认虚拟化功能支持情况。
2.2 软件依赖检查
在安装mdevctl前,必须确保以下依赖包已安装:
bash复制yum install -y libuuid-devel json-c-devel systemd-devel
特别提醒ARM架构用户:
- 某些x86平台的依赖包在ARM上名称可能不同
- 如果使用企业内网,需要提前配置好yum源
- 建议先执行
yum makecache更新软件包缓存
3. 源码编译与安装
3.1 获取安装包
官方推荐通过Oracle Linux仓库获取RPM包:
bash复制wget https://yum.oracle.com/repo/OracleLinux/OL8/appstream/aarch64/getPackage/mdevctl-0.61-3.el8.noarch.rpm
如果网络环境特殊,也可以考虑:
- 通过源码编译安装
- 联系厂商获取适配好的二进制包
3.2 安装过程实录
执行标准安装命令:
bash复制rpm -iv
