本文介绍如何在操作系统为Linux的GPU计算型实例中安装GRID驱动,并搭建桌面显示环境。

前提条件

在安装GRID驱动之前,您需要确认以下信息: 建议您选择公共镜像中的镜像。如果您选择了镜像市场中预装NVIDIA驱动的镜像,创建实例后您必须按照此方法禁用Nouveau驱动:在/etc/modprobe.d目录下创建一个nouveau.conf文件,添加blacklist nouveau
  • 您需要创建一台GPU计算型实例,确保实例能访问公网。具体操作,请参见创建GPU计算型实例
    说明 建议您选择公共镜像中的镜像。如果您选择了镜像市场中预装NVIDIA驱动的镜像,创建实例后您必须按照此方法禁用Nouveau驱动:在/etc/modprobe.d目录下创建一个nouveau.conf文件,添加blacklist nouveau
  • 在本地机器上已经安装了VNC连接软件,例如本示例中使用的VNC Viewer。
  • 选择任意一种方式获取GRID License:
    • 提交工单获取用于临时测试的License。该方式不需要自建License服务器。
    • NVIDIA官网购买License。该方式需要自建License服务器,您可以购买ECS实例并参考NVIDIA官网教程搭建。

背景信息

如果您的GPU计算型实例(gn5、gn5i、gn6v、vgn5i或gn6i实例)需要OpenGL图形支持,必须在实例上安装GRID驱动。GPU计算型实例自带的Nvidia GPU计算卡,如P100、P4、V100等,因为NVIDIA GRID License而限制了GPU图形功能,您可以使用NVIDIA官方发布的GRID驱动满足使用OpenGL图形功能的需求。

gn5优惠活动详情请参见异构计算GPU实例活动页

操作步骤

在Ubuntu 16.04 64-bit中安装GRID驱动

  1. 远程连接Linux实例
  2. 依次运行以下命令升级系统并安装KDE桌面。
    apt-get update
    apt-get upgrade
    apt-get install kubuntu-desktop                    
  3. 运行reboot命令重启系统。
  4. 再次远程连接Linux实例,并运行以下命令下载NVIDIA GRID驱动包。
    NVIDIA GRID驱动包中有多个系统的GRID驱动。Linux GRID驱动是NVIDIA-Linux-x86_64-390.57-grid.run
    wget http://nvdia-driver-410.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-410.39-grid.run                    
  5. 依次运行以下命令,并按界面提示安装NVIDIA GRID驱动。
    chmod 777 NVIDIA-Linux-x86_64-410.39-grid.run
    ./NVIDIA-Linux-x86_64-410.39-grid.run
  6. 运行命令nvidia-smi测试驱动安装结果。
    如果返回以下类似结果,说明驱动已经成功安装。

  7. 按以下步骤添加License服务器并激活License。
    1. 切换到/etc/nvidia目录:cd /etc/nvidia
    2. 创建gridd.conf文件:cp gridd.conf.template gridd.conf
    3. gridd.conf文件中添加License服务器的信息。
      ServerAddress=License服务器的IP
      ServerPort=License服务器的端口(默认为7070)
      FeatureType=2
      EnableUI=TRUE
  8. 运行命令安装x11vnc。
    apt-get install x11vnc                    
  9. 运行命令lspci | grep NVIDIA查询GPU BusID。

    本示例中,查询到的GPU BusID为00:07.0

  10. 配置X Server环境并重启。
    1. 运行命令nvidia-xconfig --enable-all-gpus --separate-x-screens
    2. 编辑/etc/X11/xorg.conf,在Section "Device"段添加GPU BusID,如本示例中为BusID "PCI:0:7:0"


    3. 运行reboot命令重启系统。

在Ubuntu 16.04 64-bit中测试GRID驱动

  1. 运行命令安装GLX测试程序。
    apt-get install mesa-utils                    
  2. 运行命令startx启动X Server。
    说明
    • 如果没有startx命令,执行apt-get install xinit命令安装。
    • startx启动时可能会提示hostname: Name or service not known。这个提示不会影响X Server启动。您可以运行命令hostname查得主机名后,再修改/etc/hosts文件,将127.0.0.1后的hostname改为本机的hostname。

  3. 开启一个新的SSH客户端终端,运行命令启动x11vnc。
    x11vnc -display :1                    
    如果看到如下图所示的信息,表示x11vnc已经成功启动。此时,您能通过VNC Viewer等VNC远程连接软件连接实例。

  4. 登录ECS控制台,在实例所在安全组中添加安全组规则,允许TCP 5900端口的入方向访问。具体操作,请参见添加安全组规则
  5. 在本地机器上,使用VNC Viewer等VNC远程连接软件,通过实例公网IP地址:5900连接实例,进入KDE桌面。
  6. 按以下步骤使用glxinfo命令查看当前GRID驱动支持的配置。
    1. 开启一个新的SSH客户端终端。
    2. 运行命令export DISPLAY=:1
    3. 运行命令glxinfo –t列出当前GRID驱动支持的配置。
  7. 按以下步骤使用glxgears命令测试GRID驱动。
    1. 在KDE桌面上,右键单击桌面,并选择Run Command
    2. 运行glxgears启动齿轮图形测试程序。
      如果出现如下图所示的窗口,表明GRID驱动正常工作。

在CentOS 7.3 64-bit中安装GRID驱动

  1. 远程连接Linux实例
  2. 依次运行以下命令升级系统并安装KDE桌面。
    yum update
    yum install kernel-devel
    yum groupinstall "KDE Plasma Workspaces"                    
  3. 运行reboot重启系统。
  4. 再次远程连接Linux实例,并运行以下命令下载并解压NVIDIA GRID驱动包。

    NVIDIA GRID驱动包中包含多个系统的GRID驱动,其中,LINUX GRID驱动是NVIDIA-Linux-x86_64-390.57-grid.run

    wget http://nvdia-driver-410.oss-cn-shenzhen.aliyuncs.com/NVIDIA-Linux-x86_64-410.39-grid.run                    
  5. 按以下步骤关闭nouveau驱动。
    1. 运行vim /etc/modprobe.d/blacklist.conf,添加blacklist nouveau
    2. 运行vim /lib/modprobe.d/dist-blacklist.conf,添加以下内容。
      blacklist nouveau
      options nouveau modeset=0                            
    3. 运行mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
    4. 运行dracut /boot/initramfs-$(uname -r).img $(uname -r)
  6. 运行reboot重启系统。
  7. 依次运行以下命令,并按界面提示安装NVIDIA GRID驱动。
    chmod 777 NVIDIA-Linux-x86_64-410.39-grid.run
    ./NVIDIA-Linux-x86_64-410.39-grid.run
  8. 运行命令nvidia-smi测试驱动是否安装成功。
    如果返回以下类似结果,说明驱动已经成功安装。

  9. 按以下步骤添加License服务器并激活License。
    1. 切换到/etc/nvidia目录:cd /etc/nvidia
    2. 创建gridd.conf文件:cp gridd.conf.template gridd.conf
    3. gridd.conf文件中添加License服务器的信息。
      ServerAddress=License服务器的IP
      ServerPort=License服务器的端口(默认为7070)
      FeatureType=2
      EnableUI=TRUE
  10. 安装x11vnc。
    yum install x11vnc                    
  11. 运行命令lspci | grep NVIDIA查询GPU BusID。
    本示例中,查询到的GPU BusID为00:07.0
  12. 配置X Server环境。
    1. 运行命令nvidia-xconfig --enable-all-gpus --separate-x-screens
    2. 编辑/etc/X11/xorg.conf,在Section "Device"段添加GPU BusID,如本示例中为BusID "PCI:0:7:0"


  13. 运行reboot重启系统。

在CentOS 7.3 64-bit中测试GRID驱动

  1. 运行命令startx启动X Server。
  2. 开启一个新的SSH客户端终端,运行命令启动x11vnc。
    x11vnc -display :0                    
    如果看到如下图所示的信息,表示x11vnc已经成功启动。此时,您能通过VNC Viewer等VNC远程连接软件连接实例。

  3. 登录ECS管理控制台,在实例所在安全组中添加安全组规则,允许TCP 5900端口的入方向访问。具体操作,请参见添加安全组规则
  4. 在本地机器上,使用VNC Viewer等VNC远程连接软件,通过实例公网IP地址:5900连接实例,进入KDE桌面。
  5. 按以下步骤使用glxinfo命令查看当前GRID驱动支持的配置。
    1. 开启一个新的SSH客户端终端。
    2. 运行命令export DISPLAY=:0
    3. 运行命令glxinfo –t列出当前GRID驱动支持的配置。
  6. 按以下步骤使用glxgears命令测试GRID驱动。
    1. 在KDE桌面上,右键单击桌面,并选择Run Command
    2. 运行glxgears启动齿轮图形测试程序。
      如果出现如下图所示的窗口,表明GRID驱动正常工作。