當Linux ECS實例的操作系統內核版本遇到了穩定性或性能問題(如系統崩潰、卡頓、內存泄漏等),或需要使用新的內核功能時,可通過升級實例的操作系統內核解決。
升級須知
升級操作系統內核是一個比較復雜和風險較高的操作,可能會導致系統不穩定或出現兼容性問題。在進行升級前,建議備份重要數據,了解升級過程和可能出現的問題,并謹慎操作。
操作步驟
以Alibaba Cloud Linux&CentOS和Ubuntu&Debian系列操作系統為例,指導您如何升級操作系統內核。
Alibaba Cloud Linux&CentOS
(可選)基于云盤創建快照來備份數據。具體操作,請參見創建快照。
遠程連接ECS實例。連接方式,請參見通過Workbench登錄Linux實例。
查看當前操作系統內核版本。
uname -r
檢查是否有可用的內核版本。
sudo yum list kernel
重要CentOS 6和CentOS 8操作系統版本結束了生命周期(EOL),按照社區規則,CentOS 6/8的源地址內容已移除。如果您的業務過渡期仍需要使用CentOS 6/8操作系統中的一些安裝包,則需要切換CentOS 6/8的源地址。具體操作,請參見CentOS 6 EOL如何切換源?和CentOS 8 EOL如何切換源?。
若沒有可升級的版本:建議更換操作系統至Alibaba Cloud Linux 3。具體操作,請參見通過SMC將CentOS 7/8遷移至Alibaba Cloud Linux或更換操作系統(系統盤)。
若有符合需求的版本:請執行以下操作升級內核。
執行以下命令,確認當前系統
initrd
或initramfs
文件中已經包含了virtio-blk和xen-blkfront驅動。sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -E 'virtio|xen'
若回顯信息返回類似如下信息,表示包含virtio-blk和xen-blkfront驅動,否則不包含。
-rw-r--r-- 1 root root 83312 Jul 22 10:38 usr/lib/modules/4.19.91-27.5.al7.x86_64/kernel/drivers/block/xen-blkfront.ko -rw-r--r-- 1 root root 68016 Jul 22 10:38 usr/lib/modules/4.19.91-27.5.al7.x86_64/kernel/drivers/net/xen-netfront.ko
若不包含
virtio-blk
和xen-blkfront
驅動,參考如下步驟在系統中添加。否則請跳過該步驟。sudo sh -c 'echo 'add_drivers+="xen-blkfront virtio_blk"' >> /etc/dracut.conf.d/virt-drivers.conf'
升級操作系統內核。
sudo yum update -y
更新GRUB配置文件,以便實例在啟動時選擇新的內核版本。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
重啟實例。
sudo reboot
驗證新的內核版本是否已成功安裝。
uname -r
返回新安裝的內核版本,表示已成功升級內核。
Ubuntu&Debian
(可選)創建一個云盤快照來備份數據。具體操作,請參見創建快照。
遠程連接ECS實例。
具體操作,請參見通過Workbenc登錄Linux實例。
查看當前操作系統內核版本,確認是否需要升級。
uname -r
更新系統軟件包列表,并檢查是否有可用的內核版本。
sudo apt update apt-cache search linux-image
若沒有可升級的版本:建議更換操作系統至更高版本。具體操作,請參見:更換操作系統(系統盤)。
若有符合需求的版本:
升級操作系統內核。
sudo apt-get install linux-image-<目標內核包名>
(條件可選)當操作系統為Ubuntu時,還需升級操作系統內核額外模塊。
sudo apt-get install linux-modules-extra-<目標內核包名>
例如Ubuntu 20.04需要升級內核至5.15.0版本時,升級命令如下:
sudo apt update apt-cache search linux-image | grep '5.15' | grep generic sudo apt-get install linux-image-5.15.0-122-generic sudo apt-get install linux-modules-extra-5.15.0-122-generic
更新GRUB配置文件,以便實例在啟動時選擇新的內核版本。
sudo update-grub
重啟實例,并刷新Workbench頁面。
sudo reboot
驗證新的內核版本是否已成功安裝。
uname -r
返回新安裝的內核版本,表示已成功升級內核。