CloudCone云主机 Centos8.X(AlmaLinux8.X)更新并切换内核+开启BBR

“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

$ 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  和 Index of /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
================================================================================
Installing:
 elrepo-release      noarch      8.2-1.el8.elrepo       @commandline       13 k
Transaction Summary
================================================================================
Install  1 Package
T... ... 
  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
... ...
kernel-lt-modules-5.4.164-1.el8.elrepo.x86_64                                 

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

重启生效

$ 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

开启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 已经成功在运行了。

你可能感兴趣的:(Linux,centos,linux,运维)