对于腾讯云 CVM 上的 CentOS 8 实例,所谓的“平滑升级”在云环境下最稳妥的方案是通过控制台更换系统镜像或迁移至兼容发行版,而不是尝试原地升级内核版本。
先说结论:CentOS 8 已停止官方维护,生产环境建议利用腾讯云控制台“更换操作系统”功能迁移至 TencentOS Server、AlmaLinux 或 Rocky Linux,避免原地升级带来的依赖冲突风险。
- 适合:业务可接受短暂停机、有完整快照备份的实例
- 先准备:创建云盘快照、记录当前网络与安全组配置、导出关键配置文件
- 验收:验证业务端口连通性、检查数据盘挂载状态、确认定时任务是否恢复
命令速用版
在执行任何操作前,先在现有系统内执行以下命令记录关键信息,以便迁移后比对:
# 查看当前系统版本
cat /etc/os-release
# 查看磁盘挂载情况
df -h
mount | grep -v tmpfs
# 查看正在运行的关键服务
systemctl list-units `--type`=service `--state`=running为什么会这样
CentOS 8 已于 2021 年 12 月 31 日结束生命周期(EOL),官方源已停止更新,继续使用存在安全漏洞无法修复的风险。此外,Linux 大版本升级(如 8 到 9)涉及 glibc、内核及系统库的重大变更,官方并不支持直接原地升级,强行使用第三方脚本容易导致系统无法启动或业务环境异常。
腾讯云 CVM 提供了“更换操作系统”功能,可以在保留数据盘的前提下重置系统盘,这是云环境下比传统物理机更安全的升级路径。
分步处理
1. 创建快照备份
登录腾讯云控制台,找到目标 CVM 实例,在云硬盘列表中对系统盘和数据盘分别创建快照。这是回滚的唯一保障,不要跳过。
2. 选择目标镜像
在实例操作菜单中选择“重装系统”或“更换操作系统”。推荐选择以下镜像之一:
- TencentOS Server:腾讯云自研,兼容 CentOS 生态,针对云场景优化。
- AlmaLinux / Rocky Linux:社区驱动的 CentOS 替代版,二进制兼容度高。
- Ubuntu / Debian:如果业务不依赖特定 RPM 包,可考虑切换生态。
3. 执行更换操作
确认实例已关机(部分场景支持开机更换,但关机更安全),选择镜像后确认执行。注意勾选“保留数据盘”,避免数据盘被格式化。
4. 恢复配置
系统启动后,登录新系统。检查 /etc/fstab 确保数据盘自动挂载,因为新系统 UUID 可能变化。恢复之前备份的 /etc 目录下关键配置文件(如 nginx、mysql 配置),但不要直接覆盖系统核心配置。
5. 数据迁移注意事项
对于数据库业务,建议优先使用逻辑备份(如 mysqldump)而非直接拷贝数据文件。不同 OS 版本间的数据库二进制文件可能存在兼容性差异,直接拷贝可能导致启动失败。
怎么验证是否生效
登录实例执行以下检查:
# 确认新系统版本
cat /etc/os-release
# 确认数据盘挂载
df -h
# 检查业务进程
ps -ef | grep <你的业务进程名>
# 检查端口监听(新系统默认可能未安装 net-tools,推荐使用 ss)
ss -tlnp同时在本地浏览器访问业务域名,确认页面加载正常,无 502 或数据库连接错误。
常见坑
- 数据盘未自动挂载:更换系统后,
/etc/fstab可能失效,需手动检查 UUID 并修正。使用blkid命令查看实际 UUID,例如:blkid /dev/vdb1。 - 安全组规则丢失:虽然实例安全组通常保留,但系统内部防火墙(如 firewalld/iptables)规则会被重置,需重新放行端口。
- 软件源配置错误:新系统默认的 yum 源可能不同,需确认是否能正常连接腾讯云内网源或公共源。
- 应用兼容性:部分老旧业务依赖特定版本的 glibc 或 Python,升级后可能报错,建议在测试机先验证镜像兼容性。
参考来源
- CentOS Project - CentOS 8 End of Life: https://wiki.centos.org/About/Product
- 腾讯云官方文档 - 更换操作系统:https://cloud.tencent.com/document/product/213/40608
- 腾讯云官方文档 - CentOS 停服后如何给实例更换操作系统:https://cloud.tencent.com/document/product/213/49328