文/周伟涛,Anolis 迁移 SIG Owner
01 概述
操作系统迁移是一个复杂的工程,而在云原生时代,IaaS 与 PaaS 的迁移复杂度更高,且相互影响。因而操作系统迁移不再是一个单机维度的 OS 切换,而是系统性的迁移工程。针对这一痛点,龙蜥社区在支持用户进行操作系统迁移的过程中,逐步沉淀了一套行之有效的迁移方法论,并为 CentOS 用户提供了迁移到 Anolis OS 的迁移系统 AOMS(Anolis OS Migration System)。
02 场景挑战
随着各种虚拟化技术,开发语言的繁荣发展,在进行操作系统迁移时会出现多种开发语言,中间件,数据库,虚拟化手段混杂在一起的情况,而平台,业务,产品等不同纬度的诉求也会产生叠加。在这些场景下,操作系统迁移不再是一个单机维度的 OS 切换,而是需要从集群迁移视角来看待,做好全局评估与实施方案,做好灾备,灰度,回滚方案,并结合上层业务调度来进行迁移的系统工程。
03 方案特色
迁移方法论:评估、决策、实施、优化四步迁移法。
迁移评估的 5 个维度及其关键的决策信息:
迁移实施也是业务迁移实现平稳交付的关键环节,其阶段详细的流程要经过实施方案制定、基础设施准备、业务适配改造、迁移试点、迁移批量实施、割接护航 6 大步骤,确保迁移的交付环节可靠和高效。
04 实践验证
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 的就地迁移。
1、 迁移评估
leapp 扫描待迁移系统,搜集内核,软件包,系统配置基础信息,同时与目标系统( Anolis OS 8 )进行对比分析,对于不兼容项给 出影响分析和解决方案。
-
内核角度:给出 Anolis OS 8 中不再支持的内核特性,硬件驱动。
-
软件角度:给出系统命令的变更项,提示用户适配业务程序。
迁移评估报告会给出当前系统中所有可能影响到迁移的影响项目,当这些影响项目都被解决后,用户才能够继续做迁移实施。同时 业务程序可根据评估报告中的兼容性提示来适配迁移业务程序。
2、迁移实施
leapp首先搜集当前的系统信息,记录需要在重启后恢复的配置(如 selinux 状态)。迁移实施过程中,工具首先按照当前系统安装 的软件包列表,并根据 CentOS 7 到 Anolis OS 8 的软件包映射关系,从 Anolis OS repo上提前下载迁移所需要的软件包,并基于 Anolis OS 8 的软件包制作 upgrade-initramfs ,在下一次重启后,系统自动进入 upgrade-initramfs,并触发所有软件包的就地升级。在所有的软件包就地升级完成后,自动重启进入系统配置还原阶段,待所有信息完成配置,系统重启进入新的 OS ,完成 OS 的就地迁移。
05 总结
基于龙蜥社区 AOMS 迁移工具,用户可以解决由于 CentOS 停服带来的软件供应链风险,同时大大降低由于操作系统迁移带来的高技术要求、高复杂操作的工程难度,帮助用户快速完成操作系统迁移。
更多龙蜥白皮书精选内容:
【1】面向 DPU 场景的软硬协同协议栈
【2】敏捷开发场景下的调度器热升级 SDK
【3】跨云-边-端的只读文件系统 EROFS
【4】龙蜥全面支持 Intel 第四代可扩展处理器 SPR 平台
【5】面向异构计算的加速器 SDK
【6】基于 SM4 算法的文件加密(fscrypt)实践
相关链接:
Anolis 迁移 SIG 主页:
更多龙蜥技术特性解析可移步《龙蜥特性百科》:
2022 龙蜥社区全景白皮书(或公众号【OpenAnolis龙蜥】回复关键字“白皮书”获取)
—— 完 ——