保姆级教程:手把手在Dell R720xd服务器上为Ubuntu 18.04 LTS配置Tesla P100 PCIe直通
Dell R720xd服务器实战:Ubuntu 18.04 LTS与Tesla P100 PCIe直通全解析
当你面对一台老当益壮的Dell PowerEdge R720xd服务器和Tesla P100计算卡时,如何在虚拟化环境中榨干这块专业GPU的每一分性能?本文将带你穿越从BIOS微调到驱动安装的完整技术迷宫,避开那些教科书不会告诉你的"坑位"。
1. 硬件准备与BIOS调校
R720xd作为Dell第12代PowerEdge系列的代表作,其BIOS选项布局与当代服务器存在显著差异。首先按下F2进入System Setup,重点检查以下三个关键区域:
- Processor Settings:确保"Virtualization Technology"和"VT for Directed I/O"已启用
- Memory Settings:将"Node Interleaving"设为Disabled(NUMA架构对GPU性能影响显著)
- PCI Settings:老款BIOS可能没有明确的"Above 4G Decoding"选项,但需确认"PCI 64-bit Resource Handling"处于开启状态
提示:R720xd的BIOS版本需升级至2.9.0以上才能完整支持PCIe 3.0设备,使用
racadm get BIOS. BiosCurrentVersion命令验证版本号。
针对Tesla P100的特殊需求,建议进行以下硬件调整:
- 优先使用PCIe Gen3 x16插槽(通常为Slot 4和Slot 7)
- 检查服务器背板的供电能力,P100 PCIe版本需要75W+75W供电
- 使用
nvidia-smi -q确认卡片的PCIe链路宽度和速率
2. ESXi主机层关键配置
在vSphere Client中完成基础安装后,这些隐藏设置决定了直通成败:
# 查看PCI设备地址(记下P100的0000:XX:00.0格式地址) esxcli hardware pci list | grep -i nvidia # 启用设备直通 esxcli hardware pci passthru set -d 0000:XX:00.0 -e true内存映射配置对照表:
| 直通GPU数量 | 单卡显存(GB) | 计算值 | MMIO SizeGB |
|---|---|---|---|
| 1 | 16 | 16 | 32 |
| 2 | 16 | 32 | 64 |
| 4 | 16 | 64 | 128 |
在虚拟机高级参数中添加:
pciPassthru.use64bitMMIO = "TRUE" pciPassthru.64bitMMIOSizeGB = "64" # 按上表计算3. Ubuntu 18.04虚拟机精调
创建虚拟机时这些细节至关重要:
- 固件类型:必须选择EFI(传统BIOS会导致PCIe设备枚举失败)
- 虚拟硬件版本:至少v13以获得完整PCIe 3.0支持
- CPU分配:建议为每个vGPU分配完整NUMA节点
- 内存配置:
- 勾选"预留所有客户机内存"
- 禁用内存膨胀和交换
安装系统后立即执行:
# 禁用nouveau驱动 echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nvidia-nouveau.conf echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nvidia-nouveau.conf sudo update-initramfs -u4. NVIDIA驱动安装与验证
针对Ubuntu 18.04 LTS的特定版本需求:
# 添加官方驱动仓库 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update # 安装470系列长期支持版驱动 sudo apt install nvidia-driver-470-server nvidia-cuda-toolkit # 验证安装 nvidia-smi -q | grep -A 5 "Attached GPUs"常见故障排查指南:
No devices found:
- 确认ESXi主机已重启应用直通设置
- 检查虚拟机是否配置了正确的EFI启动
- 验证PCI设备地址是否匹配
性能低下:
# 检查PCIe链路状态 nvidia-smi -q | grep -i "link width" # 验证GPU时钟状态 watch -n 1 nvidia-smi -q -d PERFORMANCEXorg冲突:
# 为计算专用服务器禁用X服务 sudo systemctl set-default multi-user.target sudo systemctl isolate multi-user.target
在R720xd这种经典平台上,我遇到最棘手的问题是PCIe ASPM电源管理导致的设备丢失。最终通过在ESXi主机添加以下参数解决:
/etc/vmware/config 中添加: pciPassthru0.msiEnabled = "FALSE" pciPassthru0.allowP2P = "TRUE"