最近在协助客户进行ESXi GPU 直通配置,因为没有相关文档指导,跳了不少坑,今天把配置过程整理下,留作纪念。
物理机及虚拟机配置
参考vmware及NVIDIA官网介绍,进行ESXi GPU直通配置时,为了避免一系列的报错,请按照以下要求完成配置。
简单点来说就是:
物理机与虚拟机建议全部使用EFI引导。
ESXi软件建议使用6.7及以上版本,操作系统安装64-bit的。
物理机配置
物理机使用
EFI
引导模式;若GPU 需要 16 GB 或更多的内存映射(BAR1 Memory),需要在物理机bios中启用GPU直通,设置项名称通常为Above 4G decoding、Memory mapped I/O above 4GB 或 PCI 64-bit resource handing above 4G;
BIOS 中启用虚拟化功能: Intel Virtualization Technology for Directed I/O (VT-d) 或 AMD I/O Virtualization Technology (IOMMU);
ESXi虚拟机设置
建议虚拟机系统为64-bit操作系统;
If the total BAR1 memory exceeds 256 Mbytes, EFI boot must be enabled for the VM.
Note: To determine the total BAR1 memory, run
nvidia-smi -q
on the host.To enable 64-bit Memory Mapped I/O (MMIO) add this line to the virtual machine vmx file:
pciPassthru.use64bitMMIO="TRUE"
Memory Mapped I/O (MMIO)大小调整:建议调整为(n*GPU显存)向上舍入到下一个2次幂。
示例:
pciPassthru.64bitMMIOSizeGB ="64"
两个16G显存GPU,2 x 16 GB = 32,将 32 GB 向上舍入到下一个 2 次幂,所需的内存量为 64 GB。
三个16G显存GPU,3 x 16 GB = 48,将 48 GB 向上舍入到下一个 2 次幂,所需的内存量为 64 GB。
或者直接设置为虚拟机分配的所有GPU显存大小的两倍,2*n*GPU显存(单位为GB)
虚拟机内存最小值建议为分配的所有GPU显存总大小的1.5倍。
ESXI 6.5以下版本注意事项:
Set the ESXi hosts BIOS to allow PCI mapping above 4GB and below 16TB(比如物理机bios中MMIO High Base 设置为4T).
In UEFI BIOS mode, a virtual machines’s total BAR allocation is limited to 32GB.
ESXi GPU直通兼容性列表
ESXi与GPU直通的兼容性列表一定提前查询下,比如NVIDIA Tesla V100S与ESXi 6.0是不兼容的,这个也是我本次安装踩坑之一,这个坑希望你不要掉进去。
兼容性列表可以在 GPU直通兼容性查询网站,选择Shared Pass-Through Graphics
项目后进行查询,该网站打开后经常没反应,不要一直纠结这个,看我下面附的图片吧。
NVIDIA GPU兼容性列表
AMD GPU兼容性列表
实际配置演示
软硬件环境介绍
这里介绍下我本次配置所用的软硬件环境:
GPU:NVIDIA Tesla V100与Tesla V100S各一块,均为32G显存GPU。
虚拟化软件:ESXi 6.7 U3
虚拟机操作系统:CentOS 7.5-64-bit
物理机配置
首先开机进入bios,提前修改物理机bios设置:
Above 4G decoding - Enable
Intel Virtualization Technology for Directed I/O (VT-d) - Enable
MMIO High Base - 默认56T(若为ESXi 6.5以下版本注意修改为4G-16T之间的值,如4T)
ESXi 6.7安装
可以使用服务器自带的虚拟光驱或刻录U盘进行ESXi安装,本次以U盘安装进行示例,建议使用Rufu工具进行U盘刻录。
服务器开机从U盘启动并完成ESXi安装,如图为本次完成安装的ESXi软件版本。
GPU 切换直通模式
安装完ESXi软件后,首先需要将GPU切换为直通模式,切换方法为:导航界面选择管理
—>硬件
—>PCI设备
,搜索框输入nvidia
筛选出GPU设备,勾选后,点击切换直通
。
GPU切换直通后,需要重新引导主机
使配置生效:
重新引导主机后,GPU直通变为活动
状态,表示GPU切换直通成功。
虚拟机创建及配置
创建虚拟机
导航栏选择虚拟机
—>创建/注册虚拟机
并修改虚拟机配置。
选择系统安装介质
本次通过上传iso镜像的方式进行虚拟机系统安装,虚拟硬件
—>CD/DVD驱动器1
中选择数据存储ISO文件
,上载ISO镜像并选择。
添加直通GPU并预留所有内存
添加其他设置
—>PCI设备
如图,添加两块GPU,分别为Tesla V100和Tesla V100S,并在新PCI设备
选项下点击预留所有内存
。
修改虚拟机内存
虚拟硬件
—>内存
,建议设置最小内存为虚拟机所分配GPU显存总大小的1.5倍。确保已勾选预留所有客户机内存(全部锁定)
修改MMIO相关参数
虚拟机选项
—>高级
—>编辑配置
,添加以下参数:
本次添加两块显存为32G的GPU,所以设置pciPassthru.64bitMMIOSizeGB
的值为2*32
并向上舍入到下一个2的次幂,即128
.
修改虚拟机引导选项
编辑虚拟机,修改虚拟机选项
—>引导选项
为EFI
。
开始安装虚拟机
自定义设置中完成CPU、内存、GPU、引导选项等各种设置后,点击完成开始安装虚拟机即可。
GPU识别检查
系统安装完成后,登陆虚拟机系统使用lspci命令检查GPU识别情况,如下表示添加的两块GPU识别正常。
最后从NVIDIA官网下载对应的GPU驱动并安装,安装后建议打开GPU驱动persistence mode
并配置开机自启动:
可能会遇到的问题
ESXi 安装时卡在bnxtroce.v00
出现该问题多为刻录U盘时选择的U盘格式有问题,建议使用本文介绍的rufus工具进行刻录,同时物理机引导模式选择EFI引导。若使用软碟通进行U盘刻录,可以将写入方式修改为 USB-ZIP+ v2 或者 USB-HDD+ v2。
系统安装时找不到引导介质
如下,系统安装时显示找不到引导介质,可以将CD/DVD驱动器1
删除后重新添加,重新配置引导介质。
<img src=“file:///E:\软件资料存储\qq\1037509307\Image\C2C]T0_J}$NN1C]Q60Y_]1G{}E.png” alt=“img” style=“zoom:200%;” />
<img src=“ https://gitee.com/Gavin_zj/blog/raw/master/blog_img/无引导介质-20210118182049.png” style=“zoom:150%;” />
ESXi 6.0安装后无法通过浏览器进行管理
添加网页管理web client的方式是:
ESXi控制台界面,按F2进入系统配置,输入用户名/密码后,进入 troubleshooting options中,按回车键打开SSH。
使用xshell等终端 ssh IP,进入命令行窗口,然后通过ssh运行安装web client的命令:
安装完成后,可以使用浏览器打开 http://IP/ui 来进行网页管理。
浏览器管理界面密码输入正确但无法登录
连接物理服务器按F2
键进入ESXi控制台界面,进入Troubleshooting Options
,选择Restart Managent Agents
。若仍然无效,可以先在控制界面修改登录密码后再执行此操作。
虚拟机无法开机,提示电源报错
具体报错内容如下:无法打开虚拟机的电源,失败 - 模块“DevicePowerOn”打开电源失败。
可能原因为:
ESXi 软件与GPU不兼容
ESXi软件中未设置MMIO相关参数
pciPassthru.use64bitMMIO=“TRUE”
pciPassthru.64bitMMIOSizeGB =“<n>”
GPU驱动安装报错
虚拟机内GPU驱动安装失败,提示以下报错:
可能原因:
虚拟机操作系统引导方式为BIOS,需要修改为EFI;
ESXi软件中未设置MMIO相关参数
pciPassthru.use64bitMMIO=“TRUE”
pciPassthru.64bitMMIOSizeGB =“<n>”
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5253.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~