环境信息
服务器型号 |
系统版本 |
驱动版本 |
Dell R740xd |
ESXi6.5u3 15177306 |
NVIDIA-VMware-440.87-1OEM.650.0.0.4598673.x86 |
Dell R940xa |
ESXi6.5u3 15177306 |
NVIDIA-VMware-440.87-1OEM.650.0.0.4598673.x86 |
GPU型号 |
Nvidia Tesla V100 |
|
备注:驱动版本和系统版本一定要对应,系统版本必须是ESXi6.5u3或以上,建议使用6.7版本 |
一、ESXi主机配置
1、ESXi主机安装GPU驱动
ESXi主机开启ssh,用winscp软件将驱动传到主机下,迁移或者关闭主机上所有虚拟机,然后将主机置入维护模式,并安装驱动
安装驱动,返回值successfully则表示安装成
卸载驱动用如下命令
查看驱动是否安装成功
2、修改BIOS设置
将 Memory Mapped I/O Base 设置为 512 GB(默认为 56 TB)或 12 TB(如果服务器的 RAM 大于 512 GB):重新引导系统后生效
此问题在 R740 用户硬件手册中介绍如下:
Memory Mapped I/O above 4 GB – 启用或禁用要求大量内存的 PCIe 设备支持。仅 64 位操作系统可启用此选项。此选项默认为已启用。
Memory Mapped I/O above Base – 当设置为 12 TB 时,系统将 MMIO 库映射到 12 TB。需要 44 位 PCIe 寻址的操作系统可启用此选项。
当设置为 512 GB 时,系统将 MMIO 库映射到 512 GB,并将最大内存支持减少到低于 512 GB。仅针对 4 GPU DGMA 问题启用此选项。此选项默认设置为 56 TB
注意:设置此选项会将内存限制为512GB(如果已设置为512GB)
3、查看GPU信息
使用命令nvidia-smi查看是否显示GPU信息,如下:
4、vCenter设置图形共享模式
在确认驱动状态没问题以后,我们登陆vCenter,定位到主机–配置–图形,编辑主机图形设置,可以看到默认是共享模式,也就是vsga,我们需要切换到“直接共享“才能使用vGPU。
2种GPU分配策略,在有多个GPU的时候生效。
默认最佳性能模式,会在所有可能的GPU上去运行虚拟机,即VM1运行在GPU1、VM2运行在GPU2,以此类推,尽可能平均的分布虚拟机,不会让GPU闲着。
GPU整合模式,会在一个GPU核心上运行先启动的虚拟机,直到当前GPU没有资源才会去使用下一个GPU核心,这个模式多用在同一台服务器上运行多个vGPU profile的情况下。
除了主机的图形选项,针对每个GPU也都可以单独设置共享模式,第一次使用需要在这里再切换一下,主要是需要重启xorg服务来改变配置,不同vSphere版本界面可能不能,部分vSphere 6.5早期版本需要手动重启xorg服务
二、虚拟机配置vGPU
版本兼容性列表
1、windows配置vGPU
系统版本:win2008R2、win2012R2、win2016R2(win2012R2官网没有企业版,所以只能安装标准版)
系统安装完成后关闭防火墙,打开远程桌面。
注:虚拟机添加vGPU安装驱动后,虚拟桌面连接失效,必须开启远程桌面连接或删除共享pci直通
安装驱动后Nvidia控制面板打不开或者报错,解决办法:安装驱动精灵,升级显卡驱动后重启。
授权vGPU,打开Nvidia控制面板,输入License Server 的IP以及固定的端口号7070 ,重启后查看授权服务器是否生效
2、Centos7.8配置vGPU
2.1、关闭防火墙和selinux
修改/etc/selinux/config文件
SELINUX=disabled
2.2、查看最新内核版本并更新
当前版本为3.10.0-1127.el7,最新版为以下3.10.0-1127.13.1.el7
安装以下更新包,重启后查看是否生效
检测NVIDIA驱动是否存在
2.3、禁用Nouveau驱动
查看nouveau是否运行,如有输出结果即为运行
修改/lib/modprobe.d/dist-blacklist.conf 文件
将blacklist nvidiafb注释,并添加以下两行内容
blacklist nouveau
options nouveau modeset=0
2.4、重建 initramfs image
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# dracut /boot/initramfs-$(uname -r).img $(uname -r)
安装gcc、gcc-c++包
2.5、安装NVIDIA驱动
添加可执行权限
# chmod +x NVIDIA-Linux-x86_64-440.87-grid.run
退出X-server图形,进入文本模式
# init 3
进入驱动目录安装驱动程序
默认Yes
选Install and overwrite exis
结束安装后重启虚拟机
2.6、修改授权配置文件
进入/etc/nvidia目录,查看是否有gridd.conf文件
如果没有,复制gridd.conf.template此文件,然后命名gridd.conf,在修改此文件内容
添加vGPU授权服务器IP和端口号
2.7、vGPU授权
重启nvidia服务,登录授权服务器查看是否已有授权
# systemctl restart nvidia-gridd.service
登陆license服务器查看是否有授权
http://10.86.192.8:8080/licserver
关于单个VM使用多个vGPU,ESXi版本必须是6.7u3及以上,首先ESXi需要升级到6.7U3的版本才支持,其次虚拟机兼容性也需要修改为vSphere 6.7 Update 2或之后的版本,第三只有多个Q或者C系列的vGPU能添加到单个虚拟机上,而且也会有最低显存设置。