前言

在虚拟化环境中,虚拟机要使用vGPU,需要搭建显卡许可服务器License Server,虚拟机客户端通过连接许可服务器获得许可。当物理机上的显卡被拆分后,分配到虚拟机上,虚拟机需要安装相应的显卡驱动。本篇博文介绍在虚拟机Linux最小化界面中如何安装显卡驱动并获取许可。

环境

虚拟化平台:华三 CAS 7.0

虚拟机操作系统:CentOS 7.6

物理机显卡型号:NVIDIA Tesla T4

Linux虚拟机显卡驱动版本:440.118.02

一、下载驱动

建议在下载驱动之前联系服务器厂家,确认虚拟机显卡驱动的适配版本,如果驱动版本不适配,会造成各种麻烦,另外,虚拟机的显卡驱动下载方式和物理机的有所不同,需要在NVIDIA许可界面中推荐的驱动列表中下载,如下图,CAS虚拟化选择Linux KVM:

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

下载后,此软件包附带有驱动安装和注册许可指导书,如下:

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

将驱动包上传到Linux虚拟机中,开始安装配置:

二、禁用nouveau

Nouveau是linux默认的NVIDIA驱动,是Linux KMS驱动的一部份,这个驱动启动时,NVIDIA自己的驱动无法调用,所以需要禁用:

1、查看nouveau是否存在:

lsmod | grep nouveau

  若无结果显示则表明成功禁用 

2、如果有输出,则执行以下命令:

vim /usr/lib/modprobe.d/dist-blacklist.conf

进入编辑模式,在最后面添加如下2行:

blacklist nouveau
options nouveau modeset=0

保存退出。

3、重新生成kernel initramfs。

dracut --force

4、重启系统

reboot

此步必须执行,否则不生效。

5、重启之后查看是否禁用成功:

lsmod | grep nouveau

如果没有输出,就证明禁用成功。

三、安装NVIDIA驱动

sh NVIDIA-Linux-x86_64-440.118.02-grid.run

安装过程如下:

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

安装成功!

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

重启 reboot

重启后输入命令查看驱动是否安装成功:

nvidia-smi

显示结果如下,表明驱动安装成功,若无显示,表明驱动版本不对:

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

四、获取许可

1、修改配置文件gridd.conf

进入以下目录查看:

cd /etc/nvidia/
ls

复制配置文件模板:gridd.conf.example,命令如下:

cp gridd.conf.example gridd.conf

修改配置文件权限:

chmod 664 gridd.conf

修改配置文件:

vi /etc/nvidia/gridd.conf

修改如下图:

ServerAddress填上许可服务器的地址

ServerPort填上许可服务器的端口,一般默认为7070

FeatureType填上显卡的功能类型

CAS虚拟化平台Linux虚拟机安装vGPU显卡驱动并获取许可-编程知识网

修改后保存退出。

若没有配置文件模板gridd.conf.example,可参照以下模板直接创建gridd.conf文件:

# /etc/nvidia/gridd.conf.template – Configuration file for NVIDIA Grid Daemon

# This is a template for the configuration file for NVIDIA Grid Daemon.

# For details on the file format, please refer to the nvidia-gridd(1)

# man page.

# Description: Set License Server Address

# Data type: string

# Format: "<address>"

ServerAddress=

# Description: Set License Server port number

# Data type: integer

# Format: <port>, default is 7070

ServerPort=

# Description: Set Backup License Server Address

# Data type: string

# Format: "<address>"

BackupServerAddress= gridlicense2.example.com

# Description: Set Backup License Server port number

# Data type: integer

# Format: <port>, default is 7070

BackupServerPort=7070

# Description: Set Feature to be enabled

# Data type: integer

# Possible values:

# 0 => for unlicensed state

# 1 => for GRID vGPU

# 2 => for Quadro Virtual Datacenter Workstation

# 4 => for NVIDIA Virtual Compute Server

FeatureType=1

# Description: Parameter to enable or disable Grid Licensing tab in nvidia-settings

# Data type: boolean

# Possible values: TRUE or FALSE, default is FALSE

#EnableUI=TRUE

# Description: Set license borrow period in minutes

# Data type: integer

# Possible values: 10 to 10080 mins(7 days), default is 1440 mins(1 day)

#LicenseInterval=1440

# Description: Set license linger period in minutes

# Data type: integer

# Possible values: 0 to 10080 mins(7 days), default is 0 mins

#LingerInterval=10

2、重启服务并验证

重启服务:

systemctl restart nvidia-gridd

在日志中验证是否成功获取许可:

grep gridd /var/log/messages

显示如下信息表示获取许可成功:

[nvidia@localhost ~]$ sudo grep gridd /var/log/messages … Aug 5 17:12:15 localhost nvidia-gridd: Started (10430) Aug 5 17:12:34 localhost nvidia-gridd: License acquired successfully.