将系统从 CentOS 8 迁移到 Alibaba Cloud Linux 2.1903 LTS 是一次较为重大的操作系统变更,虽然两者都基于 RHEL 源码,但 Alibaba Cloud Linux(简称 Anolis OS 的前身之一)是阿里云定制优化的发行版,与 CentOS 在软件包管理、内核特性、安全策略和工具链上存在差异。因此迁移时需要进行一系列适配工作。
以下是迁移所需的主要适配步骤和注意事项:
一、系统兼容性评估
1. 确认 Alibaba Cloud Linux 2.1903 LTS 的支持范围
- Alibaba Cloud Linux 2 基于 RHEL/CentOS 7 内核版本(如 3.10.x 或 4.19),而 CentOS 8 使用的是较新的 4.18+ 内核。
- 重要提示:Alibaba Cloud Linux 2.1903 LTS 并不等同于 CentOS 8,它更接近 CentOS 7 的生态,使用
yum而非dnf,且默认不支持systemd的某些新特性。 - 因此,从 CentOS 8 直接迁移到 Alibaba Cloud Linux 2 可能涉及重大架构降级,不推荐直接升级/迁移。
✅ 建议:
若必须使用阿里云定制系统,应优先考虑 Alibaba Cloud Linux 3(基于 RHEL 8 兼容,支持dnf、systemd,Cockpit等),它才是 CentOS 8 的替代方案。
二、确认是否应选择 Alibaba Cloud Linux 3
| 对比项 | Alibaba Cloud Linux 2 | Alibaba Cloud Linux 3 |
|---|---|---|
| 基础版本 | 类似 RHEL 7 / CentOS 7 | 类似 RHEL 8 / CentOS 8 |
| 包管理器 | yum + rpm |
dnf + rpm |
| 默认内核 | 4.19 LTS(定制) | 4.19 或更新(定制) |
| systemd 支持 | 基础支持 | 完整支持 |
| 是否兼容 CentOS 8 软件 | ❌ 不兼容 | ✅ 高度兼容 |
👉 结论:建议迁移到 Alibaba Cloud Linux 3,而不是 2.1903 LTS
三、如果坚持使用 Alibaba Cloud Linux 2.1903 LTS(不推荐)
1. 应用程序兼容性检查
- 检查是否依赖以下 CentOS 8 特有组件:
- Python 3.6+/3.8+
- GCC 8+
- Systemd v239+
- DNF 包管理器
- Firewalld 新特性
- 若使用了这些,在 ALinux 2 上可能无法运行或需手动编译安装。
2. 软件包替换与依赖重建
- ALinux 2 使用
yum和Aliyun官方源,不兼容 CentOS 8 的 EPEL 8 或其他第三方仓库。 - 需重新打包或寻找对应 ALinux 2 的 RPM 包。
- 常见问题:
python3版本较低(可能是 3.6)glibc版本低,导致二进制不兼容- 缺少某些开发库(如
openssl-devel,libffi-devel)
3. 内核与驱动适配
- ALinux 2 内核为阿里定制版,对云环境做了优化(如 I/O 调度、网络栈)。
- 若应用依赖特定内核模块(如 DPDK、eBPF 程序),需验证兼容性。
- 第三方内核模块(如 ZFS、VirtualBox)可能无法加载。
4. 安全与 SELinux 差异
- ALinux 2 默认启用 SELinux,策略可能与 CentOS 8 不完全一致。
- 需检查日志
/var/log/audit/audit.log是否有 AVC 拒绝。 - 建议先设为
permissive模式测试。
5. 系统服务与启动脚本
- CentOS 8 使用
systemd更现代的语法,ALinux 2 虽支持systemd,但版本较旧。 - 检查
.service文件中使用的指令是否被支持。 - 替代方案:部分服务仍使用 SysVinit 脚本。
6. 文件系统与挂载配置
/etc/fstab中的挂载选项(如x-systemd.mount-timeout)可能不被识别。- 推荐简化为标准 mount 选项。
7. 网络配置
- ALinux 2 默认使用
NetworkManager或传统network.service。 - CentOS 8 使用
nmcli和cloud-init更频繁。 - 检查网卡命名规则(是否启用
biosdevname=0 net.ifnames=0)。
8. 日志与监控工具
- ALinux 2 集成了阿里云的
cloudmonitor,logtail等 Agent。 - 建议安装阿里云官方监控插件以获得完整支持。
四、迁移建议路径(推荐)
CentOS 8 → Alibaba Cloud Linux 3
步骤:
- 备份当前系统数据与配置。
- 创建新实例,选择 Alibaba Cloud Linux 3 镜像。
- 将应用部署到新系统,逐步测试。
- 使用
rsync或配置管理工具(Ansible/Puppet)同步配置。 - 验证数据库、中间件、Web 服务等功能正常。
- 切换 DNS 或负载均衡指向新实例。
五、总结:关键适配点清单
| 类别 | 适配内容 |
|---|---|
| ✅ 推荐目标 | Alibaba Cloud Linux 3(而非 2) |
| 📦 包管理 | 从 dnf 回退到 yum(若用 ALinux 2) |
| 🔧 内核 | 检查驱动、模块、性能调优参数 |
| 🐍 运行时 | Python、Node.js、Java 版本兼容性 |
| 🔐 SELinux | 策略差异可能导致服务启动失败 |
| 🌐 网络 | NetworkManager vs network.service |
| 💾 存储 | fstab、LVM、mount 选项兼容性 |
| 🛠️ 工具链 | gcc, make, cmake 版本是否满足构建需求 |
| ☁️ 云集成 | 安装阿里云 cloud-init, aliyun-cli, yunqi 等工具 |
六、参考资料
- Alibaba Cloud Linux 官方文档
- Alibaba Cloud Linux 2 用户指南
- Alibaba Cloud Linux 3 发布说明
✅ 最终建议:放弃迁移到 Alibaba Cloud Linux 2.1903 LTS,改用 Alibaba Cloud Linux 3,可实现平滑替代 CentOS 8。
云小栈