1、升级内核
配置内核仓库
# 查看 yum 中可升级的内核版本
yum list kernel --showduplicates
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* elrepo: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安装的软件包
kernel.x86_64 3.10.0-1160.el7 base
kernel.x86_64 3.10.0-1160.el7 updates
kernel.x86_64 3.10.0-1160.2.1.el7 updates
kernel.x86_64 3.10.0-1160.2.2.el7 updates
kernel.x86_64 3.10.0-1160.6.1.el7 updates
kernel.x86_64 3.10.0-1160.11.1.el7 updates
kernel.x86_64 3.10.0-1160.15.2.el7 updates
kernel.x86_64 3.10.0-1160.21.1.el7 updates
kernel.x86_64 3.10.0-1160.24.1.el7 updates
kernel.x86_64 3.10.0-1160.25.1.el7 updates
kernel.x86_64 3.10.0-1160.31.1.el7 updates
kernel.x86_64 3.10.0-1160.36.2.el7 updates
kernel.x86_64 3.10.0-1160.41.1.el7 updates
kernel.x86_64 3.10.0-1160.42.2.el7 updates
kernel.x86_64 3.10.0-1160.45.1.el7 updates
kernel.x86_64 3.10.0-1160.49.1.el7 updates
kernel.x86_64 3.10.0-1160.53.1.el7 updates
kernel.x86_64 3.10.0-1160.59.1.el7 updates
kernel.x86_64 3.10.0-1160.62.1.el7 updates
kernel.x86_64 3.10.0-1160.66.1.el7 updates
kernel.x86_64 3.10.0-1160.71.1.el7 updates
kernel.x86_64 3.10.0-1160.76.1.el7 updates
kernel.x86_64 3.10.0-1160.80.1.el7 updates
# 如果list中有需要的版本可以直接执行 update 升级,多数是没有的,所以要按以下步骤操作
# 导入ELRepo软件仓库的公共秘钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# Centos7系统安装ELRepo
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# 查看ELRepo提供的内核版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
* elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
可安装的软件包
kernel-lt.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.219-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 6.0.3-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 6.0.3-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 6.0.3-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 6.0.3-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 6.0.3-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 6.0.3-1.el7.elrepo elrepo-kernel
perf.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.4.219-1.el7.elrepo elrepo-kernel
版本性质:主分支ml(mainline),稳定版(stable),长期支持版lt(longterm)
kernel-lt:表示longterm,即长期支持的内核;当前为5.4.219.
kernel-ml:表示mainline,即当前主线的内核;当前为6.0.3.
安装内核
#安装主线内核
yum --enablerepo=elrepo-kernel install kernel-ml.x86_64
设置开机启动
awk -F' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (6.0.3-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-bc24d60b43ed4d73b1b6a304d9602946) 7 (Core)
# 指定开机启动内核版本
grub2-set-default 0 或者 grub2-set-default 'CentOS Linux (6.0.3-1.el7.elrepo.x86_64) 7 (Core)'
# 生成 grub 配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
# 解决centos系统升级内核后无法启动
sed -i 's/#add_drivers+=""/add_drivers+="mpt3sas"/g' /etc/dracut.conf
grub2-set-default 'CentOS Linux (6.0.3-1.el7.elrepo.x86_64) 7 (Core)'
grub2-mkconfig -o /boot/grub2/grub.cfg
# 重启系统,验证
uname -a
Linux registry 6.0.3-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 19 19:26:18 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux
2、升级内核遇到的问题
CentOS 7.6 从内核 3.10.0 升级到 5.x后,重启不了,原因是 Linux 内核 4.4.x 版本之后,dracut 命令生成的 initramfs 默认不会自动加载 mpt3sas 驱动模块。因为没有对应的驱动程序,所以识别不了系统盘,从而导致内核 vmlinuz 无法加载它的 rootfs
问题解决
查询initramfs的驱动
lsinitrd -k 3.10.0-1160.59.1.el7.x86_64 | grep mpt[23]sas
drwxr-xr-x 2 root root 0 Nov 2 20:22 usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/scsi/mpt3sas
-rw-r--r-- 1 root root 92972 Nov 9 2018 usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/scsi/mpt3sas/mpt2sas.ko.xz
ls /usr/lib/modules/6.0.3-1.el7.elrepo.x86_64/kernel/drivers/scsi/mpt3sas/mpt3sas.ko
/usr/lib/modules/6.0.3-1.el7.elrepo.x86_64/kernel/drivers/scsi/mpt3sas/mpt3sas.ko
可以看到在3.10内核的时候是mpt2sas驱动,可以在5.x内核中看到,新版的内核已经把mpt2sas升级为mpt3sas
解决方法一
修改/etc/dracut.conf文件
sed -i 's/#add_drivers+=""/add_drivers+="mpt3sas"/g' /etc/dracut.conf # 匹配原有的行直接替换
sed -i '/#add_drivers+=""/aadd_drivers+="mpt3sas"' /etc/dracut.conf # 在#add_drivers+="" 下面添加一行add_drivers+="mpt3sas
重新生成initramfs
dracut -f /boot/initramfs-6.0.3-1.el7.elrepo.x86_64.img 6.0.3-1.el7.elrepo.x86_64
检查
lsinitrd -k 6.0.3-1.el7.elrepo.x86_64 | grep mpt[23]sas
drwxr-xr-x 2 root root 0 Nov 9 10:27 usr/lib/modules/6.0.3-1.el7.elrepo.x86_64/kernel/drivers/scsi/mpt3sas
-rwxr--r-- 1 root root 481320 Nov 9 10:27 usr/lib/modules/6.0.3-1.el7.elrepo.x86_64/kernel/drivers/scsi/mpt3sas/mpt3sas.ko
重启
reboot
解决方法二
强制加载驱动
# dracut --force --add-drivers mpt3sas --kver=6.0.3
# reboot
3、安装docker
安装依赖
docker依赖于系统的一些必要的工具,可以提前安装
yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce
yum clean all
yum makecache fast
yum -y install docker-ce
启动服务
通过systemctl启动服务
systemctl start docker
设置开机启动
systemctl enable docker