目录
1. Nvidia许可服务器安装 3
1.1. 许可证服务器的安装求 3
1.1.1. 支持的Windows操作系统 3
1.1.2. JAVA JRE环境要求 3
1.1.3. .NET Framework要求 3
1.2. 安装并配置JAVA JRE环境 3
1.2.1. 安装JAVA JRE 3
1.2.2. 设置JAVA环境变量 6
1.3. 安装和配置许可证服务器 15
1.3.1. 安装许可证服务器软件 15
1.3.2. 配置许可服务器 20
2. 软件版本兼容性 26
3. 安装和配置NVIDIA Virtual GPU Manager 27
3.1. 安装适用于vSphere的NVIDIA Virtual GPU Manager 27
3.2. 在vCenter配置允许vGPU vMotion 29
3.3. 在vSphere更改默认图形类型 31
3.4. 禁用ECC内存 34
4. 创建符合使用NVIDIA vGPU的虚拟机 39
4.1. 前提条件 39
4.2. 按官方要求创建虚拟机 40
5. 在Ubuntu VM安装Nvidia驱动 55
5.1. 安装前的操作系统准备工作 55
5.2. 虚拟机添加显卡 58
5.3. 安装Nvidia vGPU显卡驱动 59
5.4. 配置客户端从许可服务器获取许可 64
6. 在suse VM安装Nvidia驱动 68
6.1. 虚拟机添加显卡 68
6.2. 安装Nvidia vGPU驱动 70
6.3. 配置客户端从许可服务器获取许可 74
7. 在Redhat VM安装Nvidia驱动和授权许可 76
7.1. 虚拟机添加显卡 76
7.2. 安装Nvidia vGPU驱动 79
7.3. 配置客户端从许可服务器获取许可 82
Nvidia许可服务器安装
许可证服务器的安装求
支持的Windows操作系统
许可证服务器支持的Windows操作系统如下所示:
需要注意的是Windows平台下只支持英文版操作系统
JAVA JRE环境要求
.NET Framework要求
本次许可证服务器选用英文版的Windows Server 2016操作系统,系统已经默认安装了.NET Framework 4.6版本,且本次准备安装Oracle Java SE JRE 1.8运行时环境。
安装并配置JAVA JRE环境
安装JAVA JRE
- 下载好对应的JAVA JRE版本并上传至许可证服务器,双击JAVA JRE安装程序
- 勾选选中“Change destination folder ”,点击“Install”
- 记住JAVA JRE的安装路径,点击“Next”
- JAVA JRE正在安装
- 成功安装JAVA JRE,点击“Close”完成安装
设置JAVA环境变量
- 在桌面选中我的电脑,并右键选择“属性”,进入属性界面,点击“Advance system setting”进入高级系统设置
- 点击“Environment Variables”进入环境变量配置界面
- 在系统变量下方选中path系统环境变量,点击“Edit”
- 可以看到Path系统变量已经由JAVA的Path变量,所以JAVA的Path变量不需要创建
- 由于安装完JAVA后没有自动配置JAVA_HOME变量,因此需要创建JAVA_HOME变量,在系统变量下方点击“New”创建系统变量
- 在 “Variable name”填入变量的名称,然后点击“Browse Directory”按钮选择JAVA_HOME变量的目录
- 确认填入的信息无误后,点击“OK”完成JAVA_HOME变量的创建
- 在系统变量下我们可以看到刚才创建的JAVA_HOME变量
安装和配置许可证服务器
安装许可证服务器软件
- 下载好对应版本的许可证服务器软件并上传至许可证服务器,解压安装包,点击setup软件安装包
- 安装程序在加载
- 点击“Next”进入下一步安装
- 在“License Agreement”菜单勾选“I accept the terms of the License Agreement”,并点击“Next”进入下一步
- 在“Apache License”菜单勾选“I accept the terms of the License Agreement”,并点击“Next”进入下一步
- 保持默认,点击“Next”进入下一步
- 许可服务器提供7070端口给客户端从许可服务器获取许可,保持默认,点击“Next”进入下一步
- 点击“Install”开始安装软件
- 软件正处于安装
- 软件安装完毕,点击“Done”完成安装
配置许可服务器
安装好许可证服务器后,需要在许可门户网站创建对应的许可服务器,然后把对应的许可文件导入到实际的许可服务器之后,客户端才能从实际的许可服务器获取到许可。
在安装许可服务器之前,先登录NVIDIA许可门户网站,用购买vGPU显卡的订单对应的邮箱先注册一个账号,注册好账号后,对应的许可会自动绑定到这个账号。
- 找一台能够联网的计算机,通过浏览器打开许可服务器后台管理控制台,在浏览器输入http://localhost:8080/licserver
- 点击左侧菜单栏的“Configuration”选项,在Properties选项下,记录好Server host ID的值,也就是许可服务器的MAC地址
- 登录到许可门户网站nvid.nvidia.com
- 点击“NVIDIA许可门户网站”
- 在“Entitlements”下可以看到绑定的许可证,点击左侧“DASHBOARD”菜单栏,并在右侧点击“CREATE LICENSE SERVER”以创建许可服务器
- 在 “Server Name”选项填入许可服务器的计算机名,“Description”填入此许可服务器的描述,然后在“MAC Address”下填入之前在许可服务器上获取到的MAC地址,在“Feature”项下拉选择对应的许可,然后点击“ADD”
- 确认填入信息无误后,点击“CREATE LICENSE SERVER”
- 可以在“License Server”下方看到创建好的许可服务器
- 点击创建好的许可服务器,然后点击下载按钮下载许可文件
- 把下载好后许可文件导入到许可证服务器,登录到后台管理,并点击“License Management”选项,在右侧点击“Browse”
- 选择之前从许可门户网站上下载下来的许可文件,点击“open”,并点击“upload”
- 许可文件导入成功
- 在“License Feature Usage”菜单栏可以看到许可的类型、版本、许可数量以及有效期,现在许可服务器已经能够正常对客户端提供许可服务了
软件版本兼容性
本次安装的NVIDIA软件版本为NVIDIA Software10.2,ESXi主机系统版本为6.7u3,经官网查询是兼容本次实施的ESXi主机系统版本的,参考下面官网截图:
支持的Linux客户端操作系统版本可参考官网,官网截图如下:
安装和配置NVIDIA Virtual GPU Manager
安装适用于vSphere的NVIDIA Virtual GPU Manager
- 首先把ESXi主机上正在运行的虚拟机迁移到群集的其他主机上,并把主机进入维护模式。
- 然后下载对应vSphere6.7的驱动安装包,安装包为vib文件,下载之后把安装包上传至ESXi主机的系统目录下,然后通过SSH登录ESXi主机系统,切换至安装所在的目录,使用esxcli software vib install –v /vmfs/volumes/DL580_local_141/NVIDIA-VMware-440.87-1OEM.670.0.0.8169922.x86_64.vib命令执行安装(路径必须是绝对路径),在安装结果下提示“Operation finished successfully.”则安装成功。
- 重新引导主机,并将ESXi主机退出维护模式,通过运行nvidia-smi命令,验证NVIDIA内核驱动程序可以成功与系统中的NVIDIA物理GPU通信。
在vCenter配置允许vGPU vMotion
- 使用vSphere Web Client登录到vCenter Server。在“主机和群集”视图中,选择 vCenter Server实例,单击配置选项卡,在“设置”部分中,选择“高级设置”,然后单击“编辑设置”。
- 在打开的“编辑高级vCenter Server设置”窗口中,输入vGPU搜索字段,当出现vgpu.hotmigrate.enabled设置时,设置“已启用”选项并单击“保存”。
- 在“高级设置”菜单,下拉找到“vgpu.hotmigrate.enabled”选项,可以看到已启用vGP热迁移功能
在vSphere更改默认图形类型
- 使用vSphere Web Client登录到vCenter Server,在导航树中,选择您的ESXi主机,然后单击“配置”选项卡,从菜单中选择“图形”,然后单击“主机图形”选项卡,在主机图形选项卡上,单击“编辑”。
- 在打开的“编辑主机图形设置”对话框中,选择“直接共享”模式和“将虚拟机分散在多个GPU中(最佳实践)”策略,然后点击“确定”
- 单击图形设备选项卡,以验证要在其上配置vGPU的每个物理GPU的配置类型。在“ 图形设备”选项卡上,选择物理GPU,然后单击“编辑”图标。
- 在打开的“编辑图形设备设置”对话框中,选择“共享直接”,然后单击“确定”。
- 重新启动ESXi主机,或停止并重新启动ESXi主机上的Xorg服务和 nv-hostengine。要停止并重新启动Xorg服务和nv-hostengine,请执行以下步骤:
- 停止Xorg服务。
[root @ esxi:〜] /etc/init.d/xorg stop
- 停止nv-hostengine。
[root @ esxi:〜] nv-hostengine -t
- 等待1秒钟,以使nv-hostengine停止。启动nv-hostengine。
[root @ esxi:〜] nv-hostengine -d
- 启动Xorg服务。
[root @ esxi:〜] /etc/init.d/xorg start
禁用ECC内存
- 使用nvidia-smi -q列出所有物理GPU或vGPU的状态,并检查记录为已启用的ECC。可以看到对应的GPU显卡的ECC模式均为Enabled。
- 使用nvidia-smi –e 0命令将每个启用了ECC的GPU的ECC状态更改为关闭。
- 重启机器,使用nvidia-smi -q列出所有物理GPU或vGPU的状态,可以看到对应的GPU显卡的ECC模式均为Disabled。
创建符合使用NVIDIA vGPU的虚拟机
前提条件
本次是使用于计算的C系列vComputeServer vGPU,由于C系列vComputeServer vGPU具有较大的BAR内存设置,因此使用这些vGPU在VMware ESXi上有一些限制,在创建使用vGPU的虚拟机之前,虚拟机需要满足特定条件才能使用C系列vGPU,具体可参考下面的官网截图:
对于使用C系列vGPU的Vsphere虚机的部份参数调整可参考NVIDIA官网所附的截图;
按官方要求创建虚拟机
- 选中对应群集或者主机,右键选择“新建虚拟机”
- 选择“创建新虚拟机”,点击“Next”
- 选择存放虚拟机的位置,然后点击“Next”
- 选择计算资源,然后点击“Next”
- 选择虚拟机存放的存储,然后点击“Next”
- 选择虚拟机的兼容性版本,然后点击“Next”
- 选择操作系统的类型和操作系统的版本
- 配置好相应的计算资源和存储资源后,在内存选项下,把“预留所有客户机内存(全部锁定)”都选上
- 导航至“虚拟机选项”,在“引导选项”下,把固件调整为“EFI”(默认为BIOS)
- 然后在高级选项下,找到“配置参数”选项,然后点击编辑配置
- 点击添加配置参数,把下列两个参数添加进去,添加完后点击“确定”
pciPassthru.use64bitMMIO =“TRUE”
pciPassthru.64bitMMIOSizeGB =“64”
- 点击“Next”
- 确认信息无误后,点击“FINISH”
- 回到虚拟机编辑菜单,再次确认有没修改成功
在Ubuntu VM安装Nvidia驱动
安装前的操作系统准备工作
- 虚拟机联网,使用在线源更新操作系统和安装工具
安装虚拟机系统更新:
安装SSH服务:
- 关闭系统自带的nouveau,覆盖nouveau.ko步骤如下(红色字体根据系统不同而不同):
mv /lib/modules/4.18.0-15-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/4.18.0-15-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org
- 在/boot/grub/grub.cfg文件最后添加“rdblacklist=nouveau”
- 在/etc/modprobe.d/blacklist.conf文件添加“blacklist nouveau”
修改完需要重启虚拟机使设置生效
虚拟机添加显卡
- 添加“共享PCi设备”,虚机将自动识别到显卡“NVIDIA GRID vGPU”
- 在“GPU配置文件”选项选择对应的GPU显卡,注意我们使用的是计算类型的显卡,对应应为C类
“GPU配置文件”需要我们按照要求选择:
“grid_v100d_4c”:占用4G显存
“grid_v100d_8c”:占用8G显存
“grid_v100d_16c”:占用16G显存
安装Nvidia vGPU显卡驱动
- 在尝试运行驱动程序安装程序之前,请退出X服务器并终止所有OpenGL应用程序。在Ubuntu平台上使用 CTRL - ALT - F1 切换到控制台登录提示,登录并通过命令sudo service lightdm stop关闭显示管理器:
- 执行驱动安装程序(红色字体部分因驱动版本不同而变化):
./NVIDIA-Linux-x86_64-440.87-grid.run
- 下图选择“continue installation”
- 下图选择“ignore CC version check”
- 点击“OK”确认
- 安装程序在创建内核,等待一会
- 点击“OK”
- 下图选择“install and overwrite exist installation”
- 点击“OK”开始安装驱动程序,等待大概2-3分钟,驱动安装完成
- 通过运行nvidia-smi命令,验证NVIDIA内核驱动程序可以成功与系统中的NVIDIA GPU通信
配置客户端从许可服务器获取许可
- 驱动完成后会在/etc/nvid ia目录下生成一个gridd.conf.template的模版配置文件,复制配置文件:
cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
编辑配置gridd.conf文件:
vim /etc/nvidia/gridd.conf
- 添加License服务器的地址和通讯端口号(红色部分因License服务器IP不同而不同)
ServerAddress=1XX.XX.XXX.200
ServerPort=7070
- 修改参数,本次显卡用作AI计算(红色部分因显卡用途的改变而改变):
FeatureType=4
- 重新启动GRID服务,如下:
service nvidia-gridd restart
- 查看日志,已经从许可证服务器获取到License,如下:
grep gridd /var/log/syslog
- 查看主机MAC地址
- 根据虚拟机的MAC地址,在License服务器上看到了虚拟机获取到了License
至此驱动安装完成
在suse VM安装Nvidia驱动
虚拟机添加显卡
- 右键符合使用vGPU的条件的虚拟机,选择“编辑设置”
- 在“编辑设置”这里点击“添加设备”,并选择“共享PCI设备”
- 点击“新PCI设备”,在“GPU配置文件”选项选择对应的GPU显卡,注意我们使用的是AI计算类型的显卡,对应应为C类,例如grid_v100d-8c,看最后一列,数字8为显存大小,c表示显卡的类型
安装Nvidia vGPU驱动
- 在Nvidia官网下载好对应的驱动,然后上传至虚拟机系统的目录
- 使用SSH远程到虚拟机操作系统,使用chmod –R 777 NVIDIA-Linux-x86_64-440.87-grid.run命令对驱动文件赋权
- 使用命令./ NVIDIA-Linux-x86_64-440.87-grid.run执行驱动安装
- 点击“Continue installation”
- 安装程序在创建内核,等待一会
- 点击“Yes”安装NVIDIA兼容库文件
- 系统正在安装驱动程序
- 驱动安装完毕,点击“OK”完成安装
- 通过运行nvidia-smi命令,验证NVIDIA内核驱动程序可以成功与系统中的NVIDIA GPU通信
配置客户端从许可服务器获取许可
- 驱动完成后会在/etc/nvid ia目录下生成一个gridd.conf.template的模版配置文件,在目录下复制一份模版文件并命名为gridd.conf,使用命令chmod –R 777 gridd.conf对配置文件进行赋权,然后使用vi编辑配置文件
- 配置文件有3个地方需要修改,首先是“ServerAddress=”此处填入许可证服务器的IP;然后是“ServerPort=”选项,此处填入许可证服务器跟客户端通信的端口7070,不填的话则默认为7070;最后是“FeatureType”选项,由于我们的许可是vcomputerserver类型的,因此此处填入4
- 通过命令service nvidia-gridd restart重启服务,然后使用grep gridd /var/log/messages查看是否有成功从许可服务器获取许可
- 可以看到,客户端能够成功从许可服务器获取到许可
在Redhat VM安装Nvidia驱动和授权许可
由于驱动安装需要调用开发工具,因此建议在安装Redhat Linux Enterprise操作系统时在软件选项中选择图形模式并勾选KDE、兼容库和开发工具,方便后续的vGPU驱动安装。
虚拟机添加显卡
- 右键符合使用vGPU的条件的虚拟机,选择“编辑设置”
- 在“编辑设置”假面点击“添加设备”,并选择“共享PCI设备”
- 点击“新PCI设备”,在“GPU配置文件”选项选择对应的GPU显卡,注意我们使用的是AI计算类型的显卡,对应应为C类,例如grid_v100d-8c,看最后一列,数字8为显存大小,c表示显卡的类型
安装Nvidia vGPU驱动
- 在Nvidia官网下载好对应的驱动,然后上传至虚拟机系统的目录
- 使用SSH远程到虚拟机操作系统,使用chmod –R 777 NVIDIA-Linux-x86_64-440.87-grid.run命令对驱动文件赋权,并使用命令./ NVIDIA-Linux-x86_64-440.87-grid.run执行驱动安装
- 安装程序在创建内核,等待一会
- 点击“Yes”安装NVIDIA兼容库文件
- 点击“Install and overwrite existing files”
- 系统在执行驱动安装
- 驱动安装完毕,点击“OK”完成安装
- 通过运行nvidia-smi命令,验证NVIDIA内核驱动程序可以成功与系统中的NVIDIA GPU通信。
配置客户端从许可服务器获取许可
- 驱动完成后会在/etc/nvid ia目录下生成一个gridd.conf.template的模版配置文件,在目录下复制一份模版文件并命名为gridd.conf,使用命令chmod –R 777 gridd.conf对配置文件进行赋权,然后使用vi编辑配置文件
- 配置文件有3个地方需要修改,首先是“ServerAddress=”此处填入许可证服务器的IP;然后是“ServerPort=”选项,此处填入许可证服务器跟客户端通信的端口7070,不填的话则默认为7070;最后是“FeatureType”选项,由于我们的许可是vcomputerserver类型的,因此此处填入4
- 通过命令service nvidia-gridd restart重启服务,然后使用grep gridd /var/log/messages查看是否有成功从许可服务器获取许可,可以看到,客户端能够成功从许可服务器获取到许可