华为云AI开发平台ModelArtsGPU裸金属服务器使用EulerOS 内核误升级解决方案_云淘科技

问题现象

GPU V100裸金属服务器,操作系统为 EulerOS 2.9(基于CentOS制作的Linux发行版),经常遇到服务器重启后,操作系统内核无故升级,导致系统上原安装的nvidia-driver等软件无法使用,只能卸载重新安装。

原因分析

分析EulerOS内核是如何在不知情的情况下升级的:

首先查看当前操作系统内核。

[root@devserver-ddff ~]# uname -r
4.18.0-147.5.1.6.h934.eulerosv2r9.x86_64

一般执行如下升级命令,就会导致自动下载和安装高级内核版本。

yum update -y

执行后查看当前可用内核,发现已经新增了内核h998:

[root@devserver-ddff ~]#
[root@devserver-ddff ~]# cat /boot/grub2/grub.cfg |grep "menuentry "
menuentry 'EulerOS (4.18.0-147.5.1.6.h998.eulerosv2r9.x86_64) 2.0 (SP9x86_64)' --class euleros --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.18.0-147.5.
1.6.h934.eulerosv2r9.x86_64-advanced-f6aefacb-f2d3-4809-b708-6ad0357037f5' {
menuentry 'EulerOS (4.18.0-147.5.1.6.h934.eulerosv2r9.x86_64) 2.0 (SP9x86_64)' --class euleros --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.18.0-147.5.
1.6.h934.eulerosv2r9.x86_64-advanced-f6aefacb-f2d3-4809-b708-6ad0357037f5' {
menuentry 'EulerOS (0-rescue) 2.0 (SP9x86_64)' --class euleros --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-advanced-f6aefacb-f2d3-4809-b708-6ad
0357037f5' {
[root@devserver-ddff ~]#

查看假如reboot(尚未reboot)后默认选择的内核版本:

[root@devserver-ddff ~]# grub2-editenv list 
saved_entry=EulerOS (4.18.0-147.5.1.6.h998.eulerosv2r9.x86_64) 2.0 (SP9x86_64)
boot_success=0
[root@devserver-ddff ~]# 

发现默认系统内核已经变为h998,reboot后就会生效。 此时若重启那么内核版本就被升级了。

处理方法

下文中假设当前服务器的内核版本是为4.18.0-147.5.1.6.h934.eulerosv2r9.x86_64,介绍如何避免操作系统内核自动升级。

操作系统内核升级生效,必然需要服务器重启, 因此重启reboot前需要查看当前默认选择的内核版本:

[root@devserver-ddff ~]# grub2-editenv list 
saved_entry=EulerOS (4.18.0-147.5.1.6.h998.eulerosv2r9.x86_64) 2.0 (SP9x86_64)
boot_success=0
[root@devserver-ddff ~]# 

如上发现reboot后内核为4.18.0-147.5.1.6.h998.eulerosv2r9.x86_64,和当前内核版本h934不一致,则需要重新设置内核版本与当前版本一致。

查看当前内核版本,并且锁定reboot后默认启动的内核版本,执行如下命令:

grub2-set-default 'EulerOS (4.18.0-147.5.1.6.h934.eulerosv2r9.x86_64) 2.0 (SP9x86_64)'

执行后查看默认启动的内核版本是否和上述设置的相同:

[root@devserver-ddff ~]# grub2-editenv list 
saved_entry=EulerOS (4.18.0-147.5.1.6.h934.eulerosv2r9.x86_64) 2.0 (SP9x86_64)
boot_success=0
[root@devserver-ddff ~]# 

发现和当前内核一致,因此即使reboot也不会更改服务器的内核版本。

若希望升级指定的操作系统内核,也可以执行grub2-set-default进行设置默认启动内核版本。但操作系统内核升级可能带来的问题。例如在操作系统内核4.18.0-147.5.1.6.h934.eulerosv2r9.x86_64 下安装的nvidia-driver-515, 由于执行了yum update并reboot服务器, 发现再次执行nvidia命令时报错:

[root@devserver-ddff ~]# nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
[root@devserver-ddff ~]#

此时只能安裝nvidia-driver-515以及配套的cuda版本,安装方法可以参考GPU V100裸金属服务器EulerOS 2.9安装NVIDIA 515+CUDA 11.7。

父主题: FAQ

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家