将 CentOS 迁移到华为欧拉操作系统(openEuler 或 EulerOS)是一个系统级迁移任务,通常用于企业服务器环境的国产化替代。以下是一个完整的迁移指南,涵盖评估、准备、迁移和验证等关键步骤。
一、背景说明
- CentOS:基于 Red Hat Enterprise Linux(RHEL)的社区发行版,已于 2021 年底停止维护 CentOS 8,CentOS Stream 成为滚动发布版本。
- 华为欧拉操作系统:
- openEuler:开源社区版,由华为发起,社区共建,支持多种架构(x86、ARM 等),适合国产化替代。
- EulerOS:华为企业商用版本,提供商业支持和服务,常用于华为云和政企场景。
二、迁移目标
- 将现有 CentOS 系统上的应用、配置、数据迁移到 openEuler 或 EulerOS。
- 保证业务连续性,最小化停机时间。
- 兼容性验证,确保软件栈正常运行。
三、迁移方式选择
迁移方式主要有两种:
| 方式 | 说明 | 适用场景 |
|---|---|---|
| 原地升级(In-place Upgrade) | 直接在原系统上替换为欧拉系统 | 不推荐,风险高,缺乏官方支持工具 |
| 全新安装 + 数据迁移 | 重新安装欧拉系统,迁移数据和配置 | 推荐,安全可控 |
✅ 推荐使用“全新安装 + 数据迁移”方式
四、迁移步骤
第一步:评估与准备
-
系统现状评估
- 操作系统版本(CentOS 7/8)
- 安装的软件包(
rpm -qa) - 使用的服务(Nginx、MySQL、Java、Docker 等)
- 内核模块、驱动(特别是硬件相关)
- 自定义配置文件位置
- 数据目录(数据库、日志、用户数据等)
-
兼容性检查
- openEuler 基于 Fedora/RHEL 生态,与 CentOS 兼容性较高。
- 查看 openEuler 兼容性列表
- 检查关键软件是否支持:
- Java 应用一般无问题
- Docker 可使用 CRI-O 或兼容版
- 数据库(MySQL、PostgreSQL)通常可用
- 中间件(如 Nginx、Redis)可通过源码或 RPM 安装
-
备份
- 全量备份系统(使用
rsync、tar、dd或备份工具) - 备份数据库(
mysqldump、pg_dump) - 记录网络配置、用户账户、权限等
- 全量备份系统(使用
第二步:部署欧拉系统
-
获取镜像
- openEuler:https://www.openeuler.org/zh/download/
- EulerOS:需联系华为获取商业版本
-
安装系统
- 使用 ISO 镜像安装到新机器或虚拟机
- 保持与原 CentOS 相同的分区结构(便于迁移)
- 设置相同的主机名、IP、时区等
-
配置基础环境
- 配置网络、YUM 源(或 DNF)
- 安装常用工具(vim、wget、net-tools、rsync)
- 启用 SSH、防火墙等
# 配置华为源(示例)
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g'
-e 's|^#baseurl=http://repo.openeuler.org|baseurl=https://mirrors.huaweicloud.com/openeuler|g'
-i.bak /etc/yum.repos.d/openEuler.repo
第三步:迁移数据与配置
-
迁移用户和组
# 在原 CentOS 导出 grep -E ":[0-9]{4}" /etc/passwd > users.txt grep -E ":[0-9]{4}" /etc/group >> groups.txt # 在欧拉系统导入 sudo useradd -m username # 或使用脚本批量创建 -
迁移配置文件
- 复制
/etc下的关键配置(如nginx.conf、my.cnf、sshd_config) - 注意路径和权限一致性
- 复制
-
迁移应用数据
rsync -avz user@centos:/data/ /data/ rsync -avz user@centos:/var/lib/mysql/ /var/lib/mysql/ -
重装应用软件
sudo dnf install nginx mysql-server java-17-openjdk- 若无 RPM 包,可编译安装或使用容器(Docker/Podman)
第四步:服务配置与启动
-
配置服务开机启动
sudo systemctl enable nginx mysqld sudo systemctl start nginx mysqld -
检查端口和日志
ss -tuln journalctl -u nginx --no-pager -n 50 -
调整 SELinux / 防火墙
- openEuler 默认启用 SELinux,可能影响服务启动
- 可先设置为
permissive模式测试sudo setenforce 0
第五步:测试与验证
-
功能测试
- Web 服务是否正常访问
- 数据库连接是否正常
- 脚本、定时任务是否运行
-
性能测试
- 对比迁移前后响应时间、资源占用
-
安全加固
- 更新系统补丁
- 配置审计日志
- 使用欧拉提供的安全工具(如 SecUnity)
五、注意事项
| 项目 | 说明 |
|---|---|
| 内核差异 | openEuler 使用较新内核(如 5.10+),某些旧驱动可能不兼容 |
| 包管理器 | 使用 dnf 替代 yum,命令兼容但略有差异 |
| SELinux | 默认启用,需注意策略 |
| 容器支持 | 推荐使用 CRI-O + Kubernetes,Docker 需手动安装 |
| 中文支持 | 安装 fonts-chinese 等包 |
六、自动化工具(可选)
华为提供了一些迁移辅助工具(需联系支持):
- 系统迁移工具(System Migration Tool):支持 P2V/V2V 迁移
- 兼容性扫描工具:分析应用兼容性
- 镜像转换工具:将 CentOS 镜像转为欧拉镜像(实验性)
七、后续维护
- 加入 openEuler 社区获取支持
- 使用华为云镜像源更新
- 定期安全更新
八、参考资料
- openEuler 官网:https://www.openeuler.org
- 文档中心:https://docs.openeuler.org
- GitHub:https://github.com/openeuler
- 华为技术支持:联系华为企业服务
总结
✅ 推荐流程:
- 备份 CentOS 系统
- 新机器安装 openEuler
- 迁移用户、数据、配置
- 重装软件并配置服务
- 全面测试后切换流量
⚠️ 不建议直接升级内核或替换 rootfs,风险极高。
如需大规模迁移,建议采用“逐步替换”策略,先迁移非核心系统,积累经验后再推进。
如你提供具体的 CentOS 版本和应用环境(如是否运行 Java、MySQL、Docker 等),我可以给出更详细的迁移脚本和配置建议。
云计算HECS