CloudCone云主机 CentOS 8.X(AlmaLinux 8.X)更新并切换内核+开启BBR

292次阅读
2条评论

共计 5610 个字符,预计需要花费 15 分钟才能阅读完成。

“CentOS 8.X (AlmaLinux 8.X)  update and switch Linux kernel +enable BBR on CloudCone Scalable Cloud Server”

前言

最近为了将个站切换为 Cyberpanel + OpenLiteSpeed 架构,新装了 Debian 操作系统,想的是内核要更新一些,且稳定。结果 Cyberpanel 的安装脚本无法识别。

Unable to detect your OS...
CyberPanel is supported on Ubuntu 18.04, Ubuntu 20.04, Ubuntu 20.10, CentOS 7.x, CentOS 8.x,  CloudLinux 7.x, CloudLinux 8.x and AlmaLinux 8.x...
无奈只能换回一直使用的 CentOS 系列。CentOS 系列大家都懂的,内核比较老。所以就有了更新内核的需求。CloudCone 的官方帮助文档上面没有 8 系列相关的文档。所以在此记录一下。

更新内核

查看当前系统的内核版本

方法 1 

$ uname -sr
Linux 4.18.0-348.2.1.el8_5.x86_64

方法 2查看 /boot 目录中可用的初始化启动列表

$ ls -l /boot/vmlinuz-*

方法 3

awk -F\''$1=="menuentry "{print $2}' /etc/grub2.cfg

方法 4  

$ grubby --default-kernel
/boot/vmlinuz-4.18.0-348.2.1.el8_5.x86_64

因为 RHEL 中 GRUB2  配置参数再次更改,现在我们需要使用 grubby 设置默认内核或更改系统中内核的默认引导项。

Grubby 是一个命令行工具,用于更新和显示有关各种架构特定引导加载程序的配置文件的信息。它主要设计用于安装新内核并需要查找有关当前引导环境的信息的脚本。在新版本的 AlmaLinux8.X 中,Grubby是默认安装的。

关于 Grubby 管理的 GRUB 配置文件

默认引导加载程序目标主要由构建 grubby 的架构决定。每个架构都有一个首选的引导加载程序,每个引导加载程序都有自己的配置文件。如果在命令行上没有选择引导加载程序,grubby 将使用这些默认设置来搜索现有配置。如果没有找到引导加载程序配置文件,grubby 将使用该架构的默认值。这些默认值列在下表中。

Arch Bootloader Configuration File
x86_64 [BIOS] grub2 /boot/grub2/grub.cfg
x86_64 [UEFI] grub2 /boot/efi/EFI/redhat/grub.cfg
i386 grub2 /boot/grub2/grub.cfg
ia64 grub2 /boot/efi/EFI/redhat/elilo.conf

查看更详细的内容

$ grubby --info=/boot/vmlinuz-4.18.0-348.2.1.el8_5.x86_64
index=0
kernel="/boot/vmlinuz-4.18.0-348.2.1.el8_5.x86_64"
args="ro crashkernel=auto resume=/dev/mapper/almalinux-swap rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap rhgb quiet $tuned_params"
root="/dev/mapper/almalinux-root"
initrd="/boot/initramfs-4.18.0-348.2.1.el8_5.x86_64.img $tuned_initrd"
title="AlmaLinux (4.18.0-348.2.1.el8_5.x86_64) 8.5 (Arctic Sphynx)"
id="534ab36635e14f6eaf92f3995c8b32a0-4.18.0-348.2.1.el8_5.x86_64"

升级内核

Linux 内核最新稳定版可以从  https://www.kernel.org   和  https://elrepo.org/linux/kernel/el8/x86_64/  查看。

安装 ELRepo 源

ELRepo 是企业 Linux 软件包的 RPM 存储库。ELRepo 支持 Red Hat Enterprise Linux (RHEL) 及其衍生产品,如 Scientific Linux、CentOS Linux、Alma Linux 和 Rocky Linux。ELRepo 项目专注于与硬件相关的软件包,以增强您对 Enterprise Linux 的体验。这包括文件系统驱动程序、图形驱动程序、网络驱动程序、声音驱动程序、网络摄像头和视频驱动程序。

切换至 root 用户
安装源秘钥 

$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装 ELRepo 仓库源  

$ dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
Last metadata expiration check: 6:08:09 ago on Tue 14 Dec 2021 07:12:38 AM CST.
elrepo-release-8.el8.elrepo.noarch.rpm 15 kB/s | 13 kB 00:01

Dependencies resolved.

Package Arch Version Repository Size

$ dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
Last metadata expiration check: 6:08:09 ago on Tue 14 Dec 2021 07:12:38 AM CST.
elrepo-release-8.el8.elrepo.noarch.rpm 15 kB/s | 13 kB 00:01

Dependencies resolved.

Package Arch Version Repository Size

Installing:
elrepo-release noarch 8.2-1.el8.elrepo @commandline 13 k

Transaction Summary

Install 1 Package
… …
Verifying : elrepo-release-8.2-1.el8.elrepo.noarch 1/1
Installed:
elrepo-release-8.2-1.el8.elrepo.noarch
Complete!

查看可用的内核  

$ dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available

ELRepo.org Community Enterprise Linux Kernel Re  40 kB/s | 2.0 MB     00:51 

Available Packages

bpftool.x86_64                          5.15.7-1.el8.elrepo        elrepo-kernel

......

python3-perf.x86_64                     5.15.7-1.el8.elrepo        elrepo-kernel 

安装新的内核  

$ dnf -y install --enablerepo=elrepo-kernel kernel-lt kernel-lt-devel

ELRepo.org Community Enterprise Linux Repositor  350 kB/s | 336 kB     00:01

... ...

Downloading Packages:

(1/4): kernel-lt-5.4.164-1.el8.elrepo.x86_64.rp  60 kB/s |  66 kB     00:01    

(2/4): kernel-lt-devel-5.4.164-1.el8.elrepo.x86  13 mB/s |  13 MB     00:01     

(3/4): kernel-lt-modules-5.4.164-1.el8.elrepo.x  25 mB/s |  25 MB     00:01

(4/4): kernel-lt-core-5.4.164-1.el8.elrepo.x86_  28 mB/s |  28 MB     00:01      

--------------------------------------------------------------------------------
       
Total                                            21 mB/s |  66 MB     00:04 

Running transaction check

... ...

Complete!                       

安装完成后查看新的内核  

$ grubby --default-kernel

/boot/vmlinuz-5.4.164-1.el8.elrepo.x86_64

查看所有内核  

$ grubby --info=ALL

安装后不出意外一般都已经设置好默认启动了,但是不知道 CloudCone 是怎么回事,默认没有生效。所以我们手动指定一下。 

$ grubby --set-default=/boot/vmlinuz-5.4.164-1.el8.elrepo.x86_64

因为日志丢失,找不到详细的记录,后来再试了一次,研究了一下,真正能够使生效的是用配置工具。是因为 CentOS 8.X 系列的启动配置文件是由工具生成的,手动配置都不好。
设置以新的内核启动,0 表示最新安装的内核,设置为 0 表示以新版本内核启动: 

grub2-set-default 0

使用 grub2-mkconfig 自动生成启动项文件。(这条命令是关键,是灵魂啊)

grub2-mkconfig -o /boot/grub2/grub.cfg

重启生效  

$ reboot

再次查看  

$ grubby --default-kernel

/boot/vmlinuz-5.4.164-1.el8.elrepo.x86_64

更新成功

删除旧的内核(可选操作步骤)

删除旧的内核请谨慎操作,不建议在生产环境操作。查看旧的内核列表, 用这个命令看可阅读性比较高。 

$ rpm -qa | grep kernel | sort -V

kernel-lt-devel-5.4.164-1.el8.elrepo.x86_64

... ...

kernel-modules-4.18.0-348.2.1.el8_5.x86_64

删除旧的内核

$ dnf remove kernel-core-4.18.0 kernel-devel-4.18.0 kernel-tools-libs-4.18.0 kernel-headers-4.18.0

No match for argument: kernel-devel-4.18.0

No match for argument: kernel-headers-4.18.0

Dependencies resolved.

... ...

  kmod-kvdo-6.2.5.72-81.el8.x86_64 

  vdo-6.2.5.74-14.el8.x86_64 

Complete!

查看是否删除完成  

$ rpm -qa | grep kernel | sort -V

kernel-lt-5.4.164-1.el8.elrepo.x86_64

kernel-lt-core-5.4.164-1.el8.elrepo.x86_64

kernel-lt-devel-5.4.164-1.el8.elrepo.x86_64

kernel-lt-modules-5.4.164-1.el8.elrepo.x86_64

方法 2 安装 yum-utils 工具,当系统安装的内核大于 3 个时,会自动删除旧的内核版本。 

yum install yum-utils

保留两个内核,其它自动清除  

$ package-cleanup --oldkernels --count=2

package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

开启 BBR

什么是 BBR,为什么要开启 BBR

TCP BBR 是由来自 Google 的 Neal Cardwell 和 Yuchung Cheng 发表的新的 TCP 拥塞控制算法,其目的就是要尽量跑满带宽,并且尽量不要有排队的情况。目前已经在 Google 内部大范围使用并且随着 linux 4.9 版本正式发布。检查是否安装 BBR 

$ sysctl net.ipv4.tcp_available_congestion_control

net.ipv4.tcp_available_congestion_control = reno cubic

$ sysctl net.core.default_qdisc

net.core.default_qdisc = fq_codel

返回结果中没有 BBR 安装 BBR,Linux 内核 4.9 版本以后自带 BBR,之前我们已经更新了内核,所以,现在只需要开去 BBR 功能即可。

echo "net.ipv4.tcp_congestion_control= bbr" >> /etc/sysctl.conf

echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf

sysctl -p

reboot

重启后执行检查命令,看是否有输出 BBR。 

$ sysctl net.ipv4.tcp_available_congestion_control

net.ipv4.tcp_available_congestion_control = reno cubic bbr

现在内核中已经 BBR 功能。下面检测是否正在运行。 

$ lsmod | grep bbr

tcp_bbr     20480  8

看到 tcp_bbr 说明 BBR 已经成功在运行了。

正文完
 1
root
版权声明:本站原创文章,由 root 2021-12-23发表,共计5610字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(2条评论)
验证码
宝可梦 评论达人 LV.1
2021-12-25 02:36:35 回复

大佬,你的排版有点问题

 Windows  Firefox  美国加利福尼亚
要昵称啊 评论达人 LV.1
2021-12-23 15:33:24 回复

找了半天教程,终于看到有用的了

 Android  Firefox  美国加利福尼亚旧金山