龙蜥白皮书精选:CentOS 迁移场景的平滑迁移方案

IoTExpert
• 阅读 899

文/周伟涛,Anolis 迁移 SIG Owner

01 概述

操作系统迁移是一个复杂的工程,而在云原生时代,IaaS 与 PaaS 的迁移复杂度更高,且相互影响。因而操作系统迁移不再是一个单机维度的 OS 切换,而是系统性的迁移工程。针对这一痛点,龙蜥社区在支持用户进行操作系统迁移的过程中,逐步沉淀了一套行之有效的迁移方法论,并为 CentOS 用户提供了迁移到 Anolis OS 的迁移系统 AOMS(Anolis OS Migration System)。

02 场景挑战

随着各种虚拟化技术,开发语言的繁荣发展,在进行操作系统迁移时会出现多种开发语言,中间件,数据库,虚拟化手段混杂在一起的情况,而平台,业务,产品等不同纬度的诉求也会产生叠加。在这些场景下,操作系统迁移不再是一个单机维度的 OS 切换,而是需要从集群迁移视角来看待,做好全局评估与实施方案,做好灾备,灰度,回滚方案,并结合上层业务调度来进行迁移的系统工程。

03 方案特色

迁移方法论:评估、决策、实施、优化四步迁移法。

龙蜥白皮书精选:CentOS 迁移场景的平滑迁移方案

迁移评估的 5 个维度及其关键的决策信息:

龙蜥白皮书精选:CentOS 迁移场景的平滑迁移方案

迁移实施也是业务迁移实现平稳交付的关键环节,其阶段详细的流程要经过实施方案制定、基础设施准备、业务适配改造、迁移试点、迁移批量实施、割接护航 6 大步骤,确保迁移的交付环节可靠和高效。

04 实践验证

AOMS 迁移方案包含如下三个场景:

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 主页:https://openanolis.cn/sig/migration

更多龙蜥技术特性解析可移步《龙蜥特性百科》:https://anolis.gitee.io/anolis_features/

2022 龙蜥社区全景白皮书(或公众号【OpenAnolis龙蜥】回复关键字“白皮书”获取)https://openanolis.cn/openanoliswhitepaper

—— 完 ——

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。$200美元A
国庆假期玩不停双重好礼放肆领
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天AW
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天$20
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天$20
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠。国庆双重礼,仅限7天$200美元AWS服务抵