CentOS 7.9相比7.8在内核方面有哪些更新和改进?

CentOS 7.9(发布于2021年4月20日)是 CentOS 7 系列的最后一个次要版本(EOL 已于2024年6月30日),其内核更新延续了 RHEL 7.9 的上游变更。相比 CentOS 7.8(对应 RHEL 7.8,内核为 3.10.0-1127.*),CentOS 7.9 升级至 *RHEL 7.9 内核 `3.10.0-1160.** 系列(具体为3.10.0-1160.el7及后续修订版,如-1160.2.2,-1160.31.1` 等)。

以下是 CentOS 7.9 相比 7.8 在内核层面的主要更新与改进(基于 RHEL 7.9 内核变更日志及 Red Hat 官方文档):


✅ 一、核心内核版本升级

版本 内核包名 主要内核版本
CentOS 7.8 kernel-3.10.0-1127.* 3.10.0-1127.el7(2020年4月)
CentOS 7.9 kernel-3.10.0-1160.* 3.10.0-1160.el7(2021年4月)

🔹 共新增约 300+ 内核补丁(cherry-picked from upstream stable kernels and RHEL-specific fixes),涵盖稳定性、安全、硬件支持与性能优化。


✅ 二、关键改进与新增特性

1. 安全性增强

  • 新增/更新多个 CVE 修复(截至2021年初):
    • CVE-2020-14386:net: sock_diag —— 本地提权漏洞修复(严重)
    • CVE-2020-27194:ext4 —— 释放后重用导致的拒绝服务/潜在提权
    • CVE-2021-20225:btrfs —— 空指针解引用(DoS)
    • 强化 CONFIG_HARDENED_USERCOPYCONFIG_FORTIFY_SOURCE=y 编译选项,提升内存安全防护。
  • 支持 Kernel Page Table Isolation (KPTI) 默认启用(缓解 Meltdown),并持续优化性能开销。

2. 硬件支持扩展

  • 新增对新一代服务器硬件的支持:
    • 更完善的 Intel Ice Lake-SP / Cooper Lake CPU 微码与调度器适配(如 intel_idle, cpupower
    • AMD EPYC Rome/Milan 平台增强(ACPI P-state, PCIe AER, IOMMU)
    • 新增/更新多款网卡驱动:
      • ice(Intel E810)、iavf(Intel Adaptive Virtual Function)
      • qed(QLogic QL4xxx)、bnxt_en(Broadcom BCM574xx/588xx)驱动升级至更稳定版本
    • 支持更多 NVMe 设备(PCIe 4.0 初步兼容性增强,如 nvme_core 性能调优)

3. 存储与文件系统

  • XFS
    • 支持 xfs_info -m 显示元数据校验和状态(配合 mkfs.xfs -m crc=1
    • 修复 xfs_repair 在特定损坏场景下的崩溃问题(RHBZ#189XXXX)
  • Btrfs
    • 稳定性大幅提升(修复 btrfs scrub 挂起、balance 中断恢复异常等问题)
    • 增强 RAID5/6 重建可靠性(但仍标记为“技术预览”,不推荐生产环境 RAID5/6)
  • DM-Multipath / LVM
    • device-mapper-multipath 与内核 dm-multipath 模块协同优化,提升路径故障切换速度(尤其在 NVMe-oF 场景)
    • LVM cache(cache pool)稳定性增强,减少 lvconvert --cachesettings 配置失败率

4. 网络栈优化

  • TCP / UDP
    • tcp_fastopen 默认启用(需应用层支持),降低 TLS 握手延迟
    • net.ipv4.tcp_slow_start_after_idle=0 成为默认(避免空闲后慢启动,提升长连接吞吐)
  • eBPF
    • 内核 BPF 子系统升级(bpf_prog_load() 安全检查强化,JIT 编译器加固)
    • 新增 bpf_get_current_cgroup_id() 辅助函数,便于容器网络策略实现
  • RDMA / RoCEv2
    • mlx5_core 驱动升级,支持 ConnectX-6 Dx 更好 QoS 与拥塞控制(DCQCN)

5. 虚拟化与容器支持

  • KVM/QEMU
    • kvm_intel 模块增强嵌套虚拟化(Nested VMX)稳定性(尤其在 vCPU > 64 场景)
    • 支持 virtio-fs(实验性)—— 用户态文件系统共享(需额外安装 qemu-kvm 2.12+)
  • cgroups v1 增强(因 RHEL 7 仍默认使用 cgroups v1):
    • memory controller 改进 OOM killer 精确性(避免误杀父进程)
    • cpuacct 统计精度提升(尤其在 SMT/hyperthreading 场景)

6. 调试与可观测性

  • perf 工具链升级(perf-3.10.0-1160):
    • 支持 Intel PT(Processor Trace)采样解码(需硬件支持)
    • 新增 perf script --call-graph dwarf 支持更准确的用户态调用图
  • /proc/sys/kernel/kptr_restrict 默认值调整(兼顾调试与安全)

⚠️ 注意事项

  • 无 cgroups v2 默认支持:CentOS 7.9 仍以 cgroups v1 为主,cgroups v2 仅作为技术预览(需手动启用 systemd.unified_cgroup_hierarchy=1,且部分功能受限)。
  • 无 eBPF 程序加载到 tc/bpf 的完整生产就绪支持:虽已合入基础框架,但高级功能(如 tc bpf 多程序链、map 自动回收)在 7.9 中尚未完全成熟(RHEL 8+ 才全面落地)。
  • 内核 ABI 保持向后兼容:所有 3.10.0-1160.* 内核可直接替换 3.10.0-1127.*,第三方 DKMS 模块(如 NVIDIA、ELRepo 驱动)通常需重新编译(检查 dkms status 并执行 dkms autoinstall)。

✅ 验证方法(升级后确认)

# 查看当前内核版本
uname -r
# 输出示例:3.10.0-1160.88.1.el7.x86_64

# 查看内核变更日志(含补丁摘要)
rpm -q --changelog kernel | head -n 50

# 检查关键配置是否启用
zcat /proc/config.gz | grep -E "(HARDENED_USERCOPY|KPTI|TCP_FASTOPEN)"
# 或(若无 config.gz):
grep -r "CONFIG_TCP_FASTOPEN=" /boot/config-$(uname -r)

📌 总结

CentOS 7.9 的内核更新并非革命性升级,而是 RHEL 7 生命周期末期的一次关键加固与硬件现代化收尾
✅ 显著提升安全性(批量 CVE 修复 + KPTI/USERCOPY 加固)
✅ 扩展对新一代 x86 服务器(Ice Lake/EPYC)、高速网卡(E810)、NVMe 的支持
✅ 增强 XFS/Btrfs/LVM/网络栈等核心子系统的稳定性与性能
✅ 为容器与虚拟化提供更可靠的底层支撑

💡 建议:若仍在使用 CentOS 7.9,请尽快规划迁移至 Rocky Linux / AlmaLinux 8/9 或 RHEL 8/9(CentOS Stream),因 CentOS 7 已于 2024-06-30 正式 EOL,不再接收任何更新(包括安全补丁)。

如需具体 CVE 列表、补丁编号或某子系统(如 btrfsice 驱动)的详细变更,我可进一步提供 Red Hat Bugzilla 链接或补丁摘要。