in-place upgarde含义
1. In-Place Upgrade 的准确含义
1.1 字面拆解
- In-Place:在原地、不挪窝
- Upgrade:升级系统版本
合在一起只有一个意思:
在同一台机器、同一套系统盘、同一套配置上,直接把操作系统从旧版本升级到新版本
不新装、不迁移、不重建。
2. In-Place Upgrade 实际在干什么
2.1 它不是“yum update”
很多人误以为是“大号升级版 yum”,这是危险误解。
In-Place Upgrade 实际过程是:
保留:
/etc(系统配置)/var(数据、日志、数据库)- 用户、UID、服务状态
整体替换:
- glibc
- systemd
- kernel
- openssl
- Python / Perl / Ruby 运行时
在 同一个 root filesystem 上完成
本质是一场 活体换骨手术。
3. 用一句工程化比喻理解
In-Place Upgrade ≈
高速运行中的服务器,边跑业务,边把心脏、神经系统、血液类型全换掉
能成功,但前提极其苛刻。
4. In-Place Upgrade 的必要前提(缺一不可)
4.1 发行版必须官方支持
- 内核 ABI
- RPM 包迁移规则
- GPG 签名信任链
- 系统服务兼容性矩阵
这就是 Leapp 为什么“只认 RHEL”。
4.2 版本跨度必须受控
| 升级跨度 | 风险 |
|---|---|
| 7 → 8 | 高 |
| 8 → 9 | 中 |
| 9 → 10 | 极高【不怎么支持】 |
| 跨发行版 | 不可控 |
4.3 机器角色必须简单
适合:
- 纯计算节点
- 单一服务节点
- 无复杂第三方 RPM
不适合:
- DB 节点
- 容器宿主机
- 安全合规环境
- 长期演进过的“老祖宗系统”
5. In-Place Upgrade 不等于“省事”
5.1 成功 ≠ 安全
成功只说明:
- 系统能 boot
- rpm 没炸
不代表:
- 应用没隐患
- 性能没回退
- 行为没变化
5.2 失败的代价
| 项目 | 结果 |
|---|---|
| 回滚 | 极难 |
| 定位问题 | 极慢 |
| 数据恢复 | 高风险 |
| 审计 | 不可解释 |
这也是为什么 SRE 圈有一句老话:
In-Place Upgrade 是在赌历史不会反噬你