- 物理机启用IOMMU设置。
- 设置ROM (可选)。
- 云主机加载物理GPU。
- 云主机安装GPU设备驱动。
- 云主机安装性能优化工具。
- 创建GPU设备报警器 (可选)。
- 查看GPU设备监控,并在异常时接收报警通知 (可选)。
使用GPU设备透传功能前,请务必确保所有准备工作已完成且准确无误。以下详细介绍GPU设备透传功能的操作步骤:
-
物理机启用IOMMU设置。
确保物理机BIOS已开启Intel VT-d / AMD IOMMU配置的前提下,在ZStack Cloud云平台开启物理机IOMMU设置。
- 新添加物理机:在资源中心 > 硬件设施 > 计算设施 > 物理机界面添加物理机过程,使用扫描物理机IOMMU设置配置,添加物理机的同时开启IOMMU设置。如图1所示:

图1 新添加物理机并启用IOMMU设置 - 已添加物理机:在物理机详情页,启用IOMMU启用状态配置,针对已添加物理机开启IOMMU设置,重启物理机生效。如图2所示:

图2 已添加物理机启用IOMMU设置
i说明: 物理机开启IOMMU设置后,还需在物理机详情页确保IOMMU就绪状态为可用,否则也无法正常使用GPU功能。若IOMMU启用状态为启用,但IOMMU就绪状态不可用,可能存在以下原因:- 开启IOMMU设置但未重启物理机,手动重启物理机即可。
- 物理机配置错误,请进入物理机BIOS并开启Intel VT-d / AMD IOMMU配置。
- 新添加物理机:在资源中心 > 硬件设施 > 计算设施 > 物理机界面添加物理机过程,使用扫描物理机IOMMU设置配置,添加物理机的同时开启IOMMU设置。
-
设置ROM (可选)。
ROM文件是用于物理GPU透传的配置文件。ROM文件上传后,将直接更新到已添加的规格对应的物理GPU中。
ZStack Cloud已内置基础ROM文件,满足绝大部分物理GPU透传。若用户需要使用其他ROM文件,请自行在显卡供应商官网获取所需的ROM文件并上传。
在ZStack Cloud主菜单,点击资源中心 > 云资源池 > 计算配置 > GPU规格,进入GPU规格界面,选中需要设置ROM的物理GPU规格并点击批量操作 > 设置ROM按钮,在弹出的设置ROM页面上传ROM文件。
如图3所示:
图3 设置ROM i说明: 上传ROM文件需要注意以下情况:- 请务必上传与物理GPU匹配且版本信息正确的ROM文件,否则可能导致透传后的物理GPU不能正常工作。
- 最新上传的ROM文件会覆盖之前上传的ROM文件。
-
云主机加载物理GPU。
云主机加载物理GPU即可将物理GPU直接透传给云主机使用,ZStack Cloud云平台支持以下几种方式为云主机加载物理GPU:
- 方式一:创建云主机并加载物理GPU在资源中心 > 云资源池 > 虚拟资源 > 云主机界面创建云主机过程,基础参数配置完成后在资源配置页面加载物理GPU,支持加载规格和加载设备两种加载方式。可参考以下示例输入相应内容:
- 加载规格:创建云主机时指定物理GPU规格,通过规格自动分配GPU设备。支持关机自动卸载设备功能
(默认不勾选),若勾选表示云主机关机后自动卸载GPU设备,下次重启后根据GPU规格重新分配新的GPU设备;若不勾选表示云主机关机后保留已加载的GPU设备,下次重启后继续使用原来的GPU设备。如图4所示:

图4 加载规格 - 加载设备:创建云主机时指定固定的物理GPU设备,为云主机加载所选GPU设备。如图5所示:

图5 加载设备
- 加载规格:创建云主机时指定物理GPU规格,通过规格自动分配GPU设备。支持关机自动卸载设备功能
(默认不勾选),若勾选表示云主机关机后自动卸载GPU设备,下次重启后根据GPU规格重新分配新的GPU设备;若不勾选表示云主机关机后保留已加载的GPU设备,下次重启后继续使用原来的GPU设备。
- 方式二:单个已有云主机加载物理GPU
在云主机管理界面点击云主机名称,进入云主机详情页的配置信息页面的物理GPU设备栏,执行加载操作,手动加载物理GPU。
如图6所示:
图6 加载物理GPU - 一台云主机支持同时加载多个物理GPU,暂不支持将物理GPU和vGPU同时加载到同一台云主机使用。
- 若需要释放GPU设备,选中GPU设备,点击操作 > 卸载按钮,释放GPU设备。i说明: 对运行中的云主机卸载物理GPU,可能导致蓝屏以及暂停,建议停止云主机再执行卸载操作。
- 方式三:批量为已有云主机加载物理GPU
在云主机管理界面选择一台或多台云主机,点击批量操作 > 系统配置 > 设置GPU策略按钮,批量为已有云主机设置GPU策略,选择加载物理GPU设备或物理GPU规格。
如图7所示:
图7 批量加载物理GPU
- 方式一:创建云主机并加载物理GPU
-
云主机安装GPU设备驱动。
云主机加载GPU设备后,需要安装对应的驱动程序才能正常使用。AMD或NVIDIA驱动程序参考下载路径如下:
- Linux支持AMD的计算卡、游戏卡、专业卡。Linux自带社区驱动,如需支持计算加速、显示加速功能,或查看GPU监控。请点击这里安装官方驱动。
- Linux支持NVIDIA的计算卡、游戏卡、专业卡。Linux自带社区驱动,如需支持计算加速、显示加速功能,或查看GPU监控。请点击这里安装官方驱动。
- Windows支持AMD的计算卡、游戏卡、专业卡和NVIDIA的计算卡。请点击这里根据显卡类型和Windows操作系统版本下载合适的显卡驱动。
- Windows仅支持NVIDIA的计算卡。请点击这里根据显卡类型和Windows操作系统版本下载合适的显卡驱动。
i说明: 如使用双芯片AMD卡 (AMD Firepro S7150 X2) ,并将其对应的两个物理GPU设备分别透传给不同云主机使用,请为云主机安装相同版本的驱动,以保证正常获取GPU监控数据。不同GPU设备的驱动以及安装方法可能不同,详情请联系GPU设备提供厂商获取帮助。本章节以Linux云主机安装NVIDIA GPU驱动为例介绍参考操作流程:- 获取驱动安装相关文件:
获取GPU设备匹配的显卡驱动和CUDA toolkit文件。
- 禁用nouveau驱动:NVIDIA显卡的官方驱动和系统自带的nouveau驱动存在冲突。执行
lsmod | grep nouveau命令,若有输出内容表示存在nouveau驱动,可参考以下方法禁用nouveau驱动;若不存在nouveau驱动,跳过此步骤即可。# touch /etc/modprobe.d/nvidia-installer-disable-nouveau.conf #创建文件,将以下两行内容保存至文件中 blacklist nouveau options nouveau modeset=0 - 安装gcc、kernel-devel、kernel-headers:依次执行以下命令,安装gcc、与内核版本一致的kernel-devel和kernel-headers。建议使用相同版本的ISO配置本地源安装。
# yum install gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) #重构 initramfs 镜像 # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak # dracut /boot/initramfs-$(uname -r).img $(uname -r) --force #只使用文本模式重启云主机 # systemctl set-default multi-user.target # init 3 # reboot # lsmod | grep nouveau #云主机重新启动后,检查nouveau驱动应该没有被使用 - 安装NVIDIA
驱动:将下载的驱动包拷贝至云主机系统内,依次执行以下命令运行驱动文件:
命令执行后将开始解压驱动包并进入安装步骤,安装过程可能出现一些警告,依次确认即可,不影响驱动安装。若出现error报错,请参考表1检查环境。# chmod +x NVIDIA-Linux-x86_64-346.47.run #配置可执行权限 # ./NVIDIA-Linux-x86_64-346.47.run #运行驱动文件表1 报错处理 报错 解决方案 ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured; on Red Hat Linux systems, for example, be sure you have the 'kernel-source' or 'kernel-devel' RPM installed. If you know the correct kernel source files are installed, you may specify the kernel source path with the '--kernel-source-path' command line option.
需要确保kernel、kernel-headers、kernel-devel是否均已安装,并且版本号完全一致 ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the ow to correctly disable the Nouveau kernel driver.
需要禁用nouveau驱动 ERROR: Failed to find dkms on the system!
ERROR: Failed to install the kernel module through DKMS. No kernel module was installed; please try installing again without DKMS, or check the DKMS logs for more information.
需要安装DKMS,它可以帮我们维护内核外的驱动程序,在内核版本变动之后可以自动重新生成新的模块 ERROR: Unable to load the kernel module 'nvidia.ko'. This happens most frequently when this kernel module was built against the wrong or improperly configured kernel sources, with a version of gcc that differs from the one used to build the target kernel, or if a driver such as rivafb, nvidiafb, or nouveau is present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA graphics device(s), or no NVIDIA GPU installed in this system is supported by this NVIDIA Linux graphics driver release.
执行命令 ./NVIDIA-Linux-x86_64-384.98.run --kernel-source-path=/usr/src/kernels/3.10.0-XXX.x86_64/ -k $(uname -r)即可 - 检查驱动安装情况:分别执行以下两条命令,检查驱动安装情况。若返回结果能够显示显卡的型号信息,说明驱动已经安装成功。
# lspci |grep NVIDIA # nvidia-smi - 安装CUDA
toolkit:将下载的驱动包拷贝至云主机系统内,依次执行以下命令执行驱动文件:
# chmod +x cuda_8.0.61_375.26_linux.run #配置可执行权限 # ./cuda_8.0.61_375.26_linux.run #运行驱动文件安装过程需要配置一些参数,请参考下图进行配置,如图8所示:
图8 安装CUDA toolkit - 配置环境变量:执行
vim /root/.bashrc命令,将以下内容保存至此文件,完成环境变量配置:#gpu driver export CUDA_HOME=/usr/local/cuda-8.0 export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib:${LD_LIBRARY_PATH}"环境变量添加完成后立即生效,可执行以下命令进行验证测试:# source ~/.bashrc # cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery # make # ./deviceQuery
-
云主机安装性能优化工具。
为获取GPU设备实时负载监控,需为云主机安装性能优化工具。不同操作系统云主机性能优化工具安装方法不同。
- Linux云主机
- 在云主机详情页,点击安装性能优化工具。
- 安装性能优化工具ISO。
- 进入云主机控制台,执行以下安装命令:
# 创建挂载点 mkdir /mnt/cdrom # 挂载CD-ROM镜像 mount /dev/cdrom /mnt/cdrom # 安装性能优化工具 cd /mnt/cdrom/ bash ./zs-tools-install.sh # 卸载CD-ROM镜像(可选) cd ~ umount /mnt/cdromi说明:- 以上命令可在云主机详情页一键复制到控制台执行。
- 安装性能优化工具前,请确保已安装相应的Linux命令工具,如:tar、wget、curl。
- OpenEuler云主机安装性能优化工具后需要禁用
selinux,否则将影响QGA配置功能。
如图9所示:

图9 安装性能优化工具 | Linux云主机
- Windows云主机
- 在云主机详情页点击安装性能优化工具。
- 安装性能优化工具ISO。
- 进入云主机控制台,按照提示步骤安装性能优化工具。如图10所示:

图10 安装性能优化工具 | Windows云主机
- Linux云主机
-
创建GPU设备报警器 (可选)。
为及时获取GPU设备异常信息,并采取措施预防、解决设备故障,建议创建GPU设备报警器,并绑定常用的报警通知对象。
- 创建资源报警器
在ZStack Cloud主菜单,点击平台运维 > 云平台监控 > 报警器 > 资源报警器,进入资源报警器界面,点击创建资源报警器,选择报警类型为云主机或物理机,报警条目为物理GPU相关条目 (目前包括:物理GPU利用率、物理GPU显存利用率、物理GPU温度),按需设置报警阈值并绑定通知对象即可。
- 创建事件报警器
在ZStack Cloud主菜单,点击平台运维 > 云平台监控 > 报警器 > 事件报警器,进入事件报警器界面,点击创建事件报警器,选择资源类型为物理机,报警条目为物理GPU相关条目 (目前包括:物理GPU拔出或失联、GPU状态异常),并绑定通知对象即可。
- 创建资源报警器
-
查看GPU设备监控,并在异常时接收报警通知 (可选)。
在ZStack Cloud,点击硬件设施 > 计算设施 > GPU设备,进入GPU设备界面,点击需要查看的物理GPU设备名称,即可在详情页查看详细的负载监控。监测到GPU设备发生异常时,ZStack Cloud将根据创建的报警器,主动推送报警消息到指定通知对象。