Redhat是NVIDIA在vGPU解决方案的重要合作伙伴之一,越来越多的客户开始采用RHEL平台作为其底层的虚拟化平台。由于相关RHEL配合vGPU安装部署的资料比较少,也相对不是特别标准化和成体系,所以我们整理了此安装部署手册方便大家在RHEL平台上进行vGPU的部署。
本文主要内容和截图由Linux大神马林同学提供,为了提高易读性,本人对整体的文章组织架构和文字描述进行了调整和优化。希望可以帮助到各位合作伙伴同学。
软硬件建议配置
硬件最低要求:Intel x86_64双路服务器,内存建议64GB以上,TeslaM10/M60/6 或者Telsa P系列及其以后架构的GPU, 至少500GB 硬盘。
软件列表:RHEL7.6 – KVM虚拟化平台, NVIDIAvGPU 7.1软件
此安装部署手册的主要安装配置步骤如下:
1 安装配置虚拟化平台RHEL 7.6
2 安装NVIDIA vGPU 7.1 软件包
3 分配vGPU 并添加到虚拟机
4 为vGPU虚拟机配置License服务器地址
1. 安装配置虚拟化平台RHEL 7.6
使用 rhel-7.6iso 文件制作启动盘,光盘或者USB启动服务器进行安装。
语言选择
建议选择英文界面
按以下顺序逐步进行安装前配置:
配置系统时区
选择亚洲,上海
磁盘分区
划分磁盘空间
配置磁盘空间,由于虚拟机映像默认放置于/var/lib/libvirt/images/
因此划分var卷不小于300GB。
软件包选择
为了简化安装,软件包选择应预先安装如下虚拟化和图形组件(KDE可选项):
配置服务器网络
用户口令设置
root用户口令设定:
重启结束安装
接受RHEL License协议
添加普通用户:
至此RHEL7.6安装完毕。
安装后配置
使用root用户登录图形界面:
如果在Windows下可以使用ssh远程登录执行命令,推荐使用putty客户端。Putty 使用root用户登录linux主机。
2. 安装NVIDIA vGPU 7.1 软件包
推荐使用WinSCP工具复制vGPU安装组件到服务器,使用SCP工具将安装包复制到/root
其中NVIDIA-vGPU-rhel-7.6-410.91.x86_64.rpm文件为RHEL7.6环境下的vGPU Manager组件安装包。
使用root通过命令行的方式(putty)登录到服务器,进行以下安装前的准备工作:
1 关闭GPU的ECC功能,否则vGPU无法正常工作
执行命令:nvidia-smi -e 0 然后重启服务器生效
2执行命令sh prepare.sh(此脚本仅需要运行一次,运行完成后系统会自动重启。) 注意:此脚本仅在RHEL 7.6环境下进行过验证。
请从如下地址下载prepare.sh脚本,并在服务器上运行:
链接: https://pan.baidu.com/s/1p4wpdiUgey6ByQ54dzWzIg 提取码: 5xdx
此脚本有如下作用:禁用SELinux,关闭防火墙和以及禁用Linux系统自带的NVIDIA GPU驱动nouveau。请在安装vGPU Manager组件之前务必运行,否则会导致安装失败。
安装vGPU Manager组件
rpm -ivh NVIDIA-vGPU-rhel-7.6-410.91.x86_64.rpm
reboot – 重新启动服务器
注意:安装vGPU Manager组件后,必须重启操作系统。
重启后检查驱动和软件安装状态,应如下图所示,lsmod 显示加载了nvidia,mdev,vfio内核模块。运行nvidia-smi 列出服务器上安装的所有Tesla GPU卡及其状态.
3. 分配vGPU 并添加到虚拟机
首先使用nvidia-smi查找要作为vGPU切割的GPU卡的总线ID,和相对应的设备目录。
我们以Tesla P40为例,在下图我们可以看到其总线ID为00000000:81:00.0,所以我们需要在目录/sys/class/mdev_bus/0000000:81:0.0/mdev_supported_types中创建vGPU。
我们找到/sys/class/mdev_bus/0000:81:00.0/mdev_supported_types目录:
执行下列命令可以列出所有该GPU支持的分割类型,例如P40-2Q 是指P40 Tesla卡按2G显存进行vGPU划分,类型Q表明此vGPU支持专业图形和计算,如果要分割这个类型的vGPU要在nvidia-47目录中进行。
for i in nvidia-* ; do echo -n "$i "; cat $i/name ; done
A 应用虚拟化
B 办公图形
Q 专业图形+计算
如果我们需要为虚拟机创建一个Q类型2G显存vGPU 在P40上
方法如下:先生成一个uuid,然后将uuid 号写入对应vGPU类型的目录(例如nvidia-47/)的create虚拟文件中即可。
[root@kvm mdev_supported_types]# uuidgen
6f76e506-ccf1-45c5-a783-cedef255c13c
echo 6f76e506-ccf1-45c5-a783-cedef255c13c> nvidia-47/create
通过如上命令我们就完成了 P40-2Q vGPU的建立
然后通过如下命令进行检查vGPU的设备是否新建成功
在RHEL 7.6环境新建虚拟机,并分配之前建立的vGPU设备
首先使用root用户登录Linux图形界面。在命令行窗口中启动virt-manager。
virt-manager
通过以上截图我们可以看到,我们可以新建或者导入现有虚拟机镜像的方式,完成虚拟机的建立和操作系统的安装。详细的虚拟机建立和操作系统的安装的过程在本文就不进行说明。
虚拟机vGPU的分配
我们新建立好虚拟机以后,可以通过如下方法把之前建立的vGPU设备添加到此虚拟机中。
使用root用户登录命令行编辑虚拟机的xml配置并添加vGPU设备配置段:
例如需要分配vGPU的虚拟机名称为testvm,则:
virsh edit testvm
在devices区域中添加红框中的内容,uuid的值对应创建vGPU的uuid。
可复制粘贴下列代码:
保存退出后,启动该虚拟机,至此vGPU已经分配给此虚拟机。
在虚拟机中安装vGPU驱动并注册到License服务器
启动testvm虚拟机
virsh start testvm
使用命令行root账户登录testvm虚拟机:
vi /etc/modprobe.d/nouv-blacklist.conf 加入以下两行
blacklist nouveau
options nouveau modeset=0
命令行执行:
update-initramfs -u
reboot
重新root账户登录testvm虚拟机,远程复制软件包中的NVIDIA-Linux-x86_64-410.92-grid.run文件到/root,init 3关闭X图形界面. 然后进行安装。
init 3
chmod +x NVIDIA*
./NVIDIA-Linux-x86_64-410.92-grid.run--no-opengl-files
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver forLinux-x86_64 410.92..................................................................................................................................................................................................................................................................................................................................................................................................................
重启虚拟机,至此vGPU分配到虚拟机并安装vGPU 驱动完毕。
4. 为vGPU虚拟机配置License服务器地址
使用root账户登录testvm 虚拟机:
cd /etc/nvidia
cp gridd.conf.template gridd.conf
参考下图vi 编辑gridd.conf 修改 ServerAddress=,FeatureType=2
service nvidia-gridd restart
Web 浏览GRID LicenseServer控制台查看注册情况:
我们可以在License管理界面中看到此vGPU虚拟机已经正常注册到License服务器,所以虚拟机中的vGPU设备可以在正常的状态下工作。
原创文章转载请标明出处,欢迎关注公众号vGPU获取更多GPU虚拟化资讯。有任何关于GPU虚拟化的问题欢迎留言提出。