温馨提示×

centos虚拟机更新升级流程

小樊
37
2025-11-25 18:09:01
栏目: 云计算

CentOS 虚拟机更新与升级流程

一 前置准备

  • 备份与快照:对虚拟机执行快照或整机备份,重点目录建议包含 /etc、/var、/opt 及业务数据目录,以便在出现问题时快速回滚。
  • 检查版本与内核:执行 cat /etc/redhat-releaseuname -r,记录当前系统版本与内核,便于升级后核对。
  • 网络与空间:确保网络连通,使用 df -h 检查根分区与 /var 空间是否充足。
  • 维护窗口与变更记录:选择业务低峰期,记录将要执行的更新与回滚方案。

二 小版本与安全更新(同版本内)

  • 适用于 CentOS 7/8 等小版本内的补丁与安全更新,保持当前大版本不变。
  • 操作步骤:
    1. 清理元数据缓存:sudo yum clean all
    2. 检查可用更新:sudo yum check-update
    3. 执行更新:sudo yum update(如需逐条确认可去掉 -y
    4. 重启:sudo reboot
    5. 验证:cat /etc/redhat-releaseuname -ryum history
  • 说明:yum update 会更新到当前小版本的最新内核与软件包;如需更细粒度控制,可仅更新指定包(如 sudo yum update httpd php mysql-server)。

三 跨小版本升级(仍在同个大版本内)

  • 适用于在同一大版本内从较低小版本升级到较高小版本(例如 7.1 → 7.9),不建议跨大版本直接升级。
  • 操作步骤:
    1. 备份与快照(见前置准备)
    2. 同步小版本仓库元数据:sudo yum clean all
    3. 执行升级:sudo yum upgrade(如需逐条确认可去掉 -y
    4. 重启:sudo reboot
    5. 验证:cat /etc/redhat-releaseuname -ryum history
  • 说明:yum upgradeyum update 在 CentOS 7 场景下均用于小版本内的升级;升级完成后应再次检查关键服务与业务状态。

四 升级到指定小版本(可选)

  • 场景:出于兼容性/合规要求,需要将系统停留在某个特定小版本。
  • 思路:修改 /etc/yum.repos.d/ 下仓库配置,将 baseurl 指向目标小版本的仓库目录,再执行 yum update
  • 简要步骤:
    1. 备份原仓库:sudo cp -a /etc/yum.repos.d /etc/yum.repos.d.bak_$(date +%F)
    2. 编辑对应 repo 文件,将 baseurl 调整为目标小版本的 os/updates 路径(示例:baseurl=http://mirror.centos.org/centos/$releasever/updates/7.9.2009/x86_64/
    3. 清理缓存:sudo yum clean all
    4. 执行更新:sudo yum update
    5. 验证版本与内核,并保留变更记录以便回滚

五 升级后验证与常见问题

  • 验证要点:
    • 版本与内核:cat /etc/redhat-releaseuname -r
    • 更新历史:yum history
    • 关键服务:如 httpd、mysqld、sshd 等是否正常运行(systemctl status <service>
    • 业务自检:登录应用、检查日志与监控告警
  • 常见问题与处理:
    • 空间不足:清理 /var/cache/yum 与日志,或扩容虚拟磁盘后再更新
    • 依赖冲突:优先使用官方仓库,必要时分步更新冲突组件
    • 虚拟机增强功能:内核更新后建议重装 VirtualBox/VMware Tools 以适配新内核(安装前准备 kernel-devel、kernel-headers、gcc、make、perl 等编译依赖)
    • 回滚:优先使用虚拟机快照回滚;若为包级变更,可用 yum history undo <transaction-id> 回退

0