diff --git a/SUMMARY.md b/SUMMARY.md index 4806c3b644815d5f24f5444f4ef26de498762959..c5115de1d4ddaa58cd8f35b2a6160b8a76ed9cce 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -4,6 +4,7 @@ * [CentOS迁移](./centos_migration/README.md) * [数据库/JAVA等高性能场景中的内存优化](./centos_migration/hugetext.md) * [跨处理器节点内存访问优化](./centos_migration/duptext.md) + * [CentOS 停服替代场景的平滑迁移方案](./centos_migration/migration_solution.md) * [云原生场景](./cloud_native/README.md) * [面向云原生生态的操作系统发行版 LifseaOS](./cloud_native/lifseaos.md) * [跨云-边-端的只读文件系统 EROFS](./cloud_native/erofs.md) diff --git a/centos_migration/migration_solution.md b/centos_migration/migration_solution.md new file mode 100644 index 0000000000000000000000000000000000000000..341f7a634213561845cf625d6bbbdc48aac66fec --- /dev/null +++ b/centos_migration/migration_solution.md @@ -0,0 +1,67 @@ +# CentOS停服替代场景的平滑迁移方案 + +tags: CentOS迁移, Anolis8 + +## 概述 + +操作系统迁移是一个复杂的工程,而在云原生时代,IaaS与PaaS的迁移复杂度更高,且相互影响。因而操作系统迁移不再是一个单机维度的OS切换,而是系统性的迁移工程。针对这一痛点,龙蜥社区在支持用户进行操作系统迁移的过程中,逐步狠点了一套行之有效的迁移方法论,并为CentOS用户提供了迁移到 Anolis OS 的迁移系统 AOMS(Anolis OS Migration System)。 + +## 场景挑战 + +随着各种虚拟化技术,开发语言的繁荣发展,在进行操作系统迁移时会出现多种开发语言,中间件,数据库,虚拟化手段混杂在一起的情况,而平台,业务,产品等不同纬度的诉求也会产生叠加。在这些场景下,操作系统迁移不再是一个单机维度的OS切换,而是需要从集群迁移视角来看待,做好全局评估与实施方案,做好灾备,灰度,回滚方案,并结合上层业务调度来进行迁移的系统工程。 + +## 方案特色 + +迁移方法论:评估,决策,实施,优化四步迁移法。 + +![迁移方法论(绿色标记)](../materials/imgs/centos_migration/migration_solution/theory.png) + +迁移评估的5个维度及其关键的决策信息: + +![5个纬度(绿色标记)](../materials/imgs/centos_migration/migration_solution/5_phases.png) + +迁移实施也是业务迁移实现平稳交付的关键环节,其阶段详细的流程要经过实施方案制定、基础设施准备、业务适配改造、迁移试点、迁移批量实施、割接护航6大步骤,确保迁移的交付环节可靠和高效。 + +## 实践验证 + +AOMS迁移方案包含如下三个场景: + + - CentOS 8迁移Anolis OS 8 + - CentOS 7迁移Anolis OS 7 + - CentOS 7迁移Anolis OS 8 + +### CentOS 8迁移Anolis OS 8及CentOS 7迁移Anolis OS 7场景 + +Anolis OS 8在做出差异性开发的同时,在生态上和依赖管理上保持与CentOS 8的兼容,AOMS充分利用了兼容的特性,提供了一键 式迁移工具 : `centos2anolis.py`。 + +CentOS 8迁移使用 Anolis release 相关的包替代 CentOS release ,通过 `yum distro-sync` 重装当前系统中所有的系统软件包。 软件重装的过程并不会修改当前系统基础配置,所以系统配置,业务配置,业务数据都不会被清除,迁移完成后这些数据无需重新设置。 + +使用迁移脚本前需要注意如下事项: + + - 迁移过程涉及到访问Anolis OS的官方repo ,需要确保待迁移环境网络能够正常访问Anolis OS repo。 + - 需要使用root用户执行,当前只支持CentOS 8系统的迁移,不支持CentOS stream系统迁移。 + - 迁移过程依赖于yum/dnf ,需要确保组件能够正常运行。 + - 迁移脚本提供了Anolis OS repo访问加速的功能,如果访问Anolis OS官方repo速度较慢,可以通过-s选项进行加速访问。 + - 迁移日志保存在/var/log/centos2anolis.log。 + +### CentOS 7迁移Anolis OS 8场景 + +CentOS 7到Anolis OS 8,无论是内核,基础软件包,工具链都发生了较大的变化。迁移工具需要考虑这些变化带来的兼容性问题。 AOMS提供的迁移工具leapp包含了迁移评估,迁移实施,配置还原等步骤,用于实现CentOS 7到Anolis OS 8的就地迁移 + +#### (一) 迁移评估 + +leapp扫描待迁移系统,搜集内核,软件包,系统配置基础信息,同时与目标系统( Anolis OS 8 )进行对比分析,对于不兼容项给 出影响分析和解决方案。 + + - 内核角度:给出Anolis OS 8中不再支持的内核特性,硬件驱动; + - 软件角度:给出系统命令的变更项,提示用户适配业务程序。 + + 迁移评估报告会给出当前系统中所有可能影响到迁移的影响项目,当这些影响项目都被解决后,用户才能够继续做迁移实施。同时 业务程序可根据评估报告中的兼容性提示来适配迁移业务程序。 + +#### (二) 迁移实施 + +leapp首先搜集当前的系统信息,记录需要在重启后恢复的配置(如selinux状态)。迁移实施过程中,工具首先按照当前系统安装 的软件包列表,并根据CentOS 7到Anolis OS 8的软件包映射关系,从Anolis OS repo上提前下载迁移所需要的软件包,并基于 Anolis OS 8的软件包制作upgrade-initramfs ,在下一次重启后,系统自动进入 `upgrade-initramfs`,并触发所有软件包的就地升级。在所有的软件包就地升级完成后,自动重启进入系统配置还原阶段,待所有信息完成配置,系统重启进入新的OS ,完成OS的 就地迁移。 + + +## 总结 + +基于龙蜥社区AOMS迁移工具,用户可以解决由于CentOS停服带来的软件供应链风险,同时大大降低由于操作系统迁移带来的高技 术要求、高复杂操作的工程难度,帮助用户快速完成操作系统迁移。 diff --git a/materials/imgs/centos_migration/migration_solution/5_phases.png b/materials/imgs/centos_migration/migration_solution/5_phases.png new file mode 100644 index 0000000000000000000000000000000000000000..4babe9ef8805022b171dbf38424448e2ef87d86f Binary files /dev/null and b/materials/imgs/centos_migration/migration_solution/5_phases.png differ diff --git a/materials/imgs/centos_migration/migration_solution/theory.png b/materials/imgs/centos_migration/migration_solution/theory.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad202661dca1c0ed58f682cbf32645223092bc5 Binary files /dev/null and b/materials/imgs/centos_migration/migration_solution/theory.png differ