CentOS官方已计划停止维护CentOS 7、CentOS 8等Linux项目,如果您的操作系统后续想得到维护和技术支持,需要将CentOS操作系统迁移到其他Linux LTS发行版。本文介绍如何通过SMC将CentOS 7/8操作系统平滑迁移至Alibaba Cloud Linux和龙蜥操作系统(Anolis OS)。

前提条件

迁移方案对比

操作系统迁移方案的对比如下表所示。
迁移方案 易用性 可靠性 服务 迁移后结果
SMC操作系统迁移(推荐) ★★★★★
  • 白屏化操作,有迁移进度展示
  • 控制台日志展示
★★★★★

无需手动快照,自动快照保障

★★★★★

接入阿里云智能全球技术服务部GTS(Global Technology Services)服务体系,成熟流程帮助用户解决问题

★★★★★
  • 控制台和目标操作系统显示一致
  • 同版本应用直接继承、跨版本需做部分适配
  • 系统盘数据保留
ECS控制台更换操作系统 ★★★★

白屏化操作

★★★★

需手动创建快照

★★★★★

接入阿里云智能全球技术服务部GTS(Global Technology Services)服务体系,成熟流程帮助用户解决问题

★★★
  • 控制台和目标操作系统显示一致
  • 应用需要重新部署
  • 系统盘数据不保留
ECS内执行迁移脚本 ★★★
  • 脚本操作,纯脚本日志
  • ECS内操作,有操作风险
★★★

需手动创建快照

★★★

迁移方案社区支持

★★★
  • 控制台不感知ECS内部变化,控制台和目标操作系统显示不一致
  • 同版本应用直接继承、跨版本需做部分适配

迁移场景

操作系统迁移目前仅支持以下场景:
  • CentOS 7操作系统迁移为Alibaba Cloud Linux 2和Anolis OS 7操作系统。
  • CentOS 8操作系统迁移为Alibaba Cloud Linux 3和Anolis OS 8操作系统。
重要
  • 待迁移的操作系统必须为当前阿里云账号下云服务器ECS中的操作系统。
  • Alibaba Cloud Linux 2/3不支持图形化界面,您可以将带图形化桌面的CentOS迁移到Anolis OS。

迁移前须知

  • 迁移过程中系统会对云服务器ECS执行创建普通云盘快照、重新安装软件包、创建系统盘自定义镜像、 更换系统盘 、停止、启动等操作。其中更换系统盘操作会重建系统盘云盘,原来随云盘释放的自动快照也会被删除且无法恢复。建议您对重要数据做好备份并合理安排迁移时间,避免因上述操作对业务造成影响。
  • 迁移过程中请勿人工或通过运维脚本对ECS云服务器执行停止、重启、释放等操作。
  • 迁移过程中对全部云盘创建快照以备份数据,快照以按量付费方式收取一定费用。关于快照计费的更多信息,请参见快照计费
  • 操作系统的迁移操作不可逆,其中涉及到重新安装系统内的软件包。因此您需要在迁移前为ECS实例创建快照备份数据。关于快照的更多信息,请参见快照概述
  • 迁移过程依赖于yum或者dnf,需确保这两个组件能够正常运行。

迁移限制

  • Anolis OS和Alibaba Cloud Linux系统不提供i686架构的软件包,如您系统上安装了CentOS的i686架构的软件包,则无法正常迁移。
  • CentOS 7迁移至Alibaba Cloud Linux 2限制说明
    • Alibaba Cloud Linux 2使用4.19内核,CentOS 7使用3.10内核,两个版本的内核无法相互兼容,依赖于内核接口编程的业务,例如涉及内核OOT模块开发、硬件使能等,需提前做好评估,明确是否适合直接迁移,以免OS迁移后业务无法运行。
    • Alibaba Cloud Linux 2不支持图形化界面,因此迁移工具不支持迁移已配置图形化界面的CentOS 7操作系统。
  • CentOS 8迁移至Alibaba Cloud Linux 3限制说明
    Alibaba Cloud Linux 3选用Linux kernel 5.10 LTS作为Alibaba Cloud Linux 3的内核,并选用GCC 10.2、binutils 2.35、glibc 2.32作为基础工具链。在软件包生态上与CentOS 8兼容。当您在使用本文介绍的操作系统迁移工具将CentOS 8迁移为Alibaba Cloud Linux 3时,工具会对待迁移的操作系统进行基础判断。因此您需要注意以下操作系统相关特性或软件的迁移限制:
    特性或软件 支持情况 是否影响操作系统迁移流程 说明
    图形化界面 不支持 Alibaba Cloud Linux 3不支持图形化界面,因此迁移工具不支持迁移已配置图形化界面的CentOS 8操作系统。
    i686架构的软件包 不支持 Alibaba Cloud Linux 3不提供i686架构的软件包。如果您当前使用的CentOS 8系统内带有i686架构的软件包,则不支持使用迁移工具迁移操作系统。您需要先删除这些软件包,然后再进行迁移操作,以免迁移时系统发生异常。
    epel-modular 不支持 CentOS 8中EPEL源所依赖的platform与Alibaba Cloud Linux 3不同。因此,您可以迁移操作系统,但需要注意迁移后无法安装基于epel-modular的软件包。
    C/C++语言程序兼容性 不保证 Alibaba Cloud Linux 3选用GCC 10.2、binutils 2.35、glibc 2.32作为基础工具链,且系统自身的软件包已经做了兼容性处理。操作系统迁移后,建议您基于新的基础工具链重新对您的C/C++语言程序进行编译验证,避免出现兼容性问题。
    内核模块兼容性 不支持 Alibaba Cloud Linux 3选用Linux kernel 5.10 LTS作为内核,在软件包生态上与CentOS 8兼容,但您需要注意,Alibaba Cloud Linux 3无法完全兼容CentOS 8的4.18内核。因此,依赖于内核接口编程的业务(例如内核OOT模块开发、硬件使能等业务场景),您需要在迁移前自行做好迁移评估,避免迁移后业务无法正常运行。
    MySQL数据库 仅支持向同版本或更高版本的MySQL迁移
    • 如果向同版本或更高版本的MySQL迁移则不影响
    • 如果向低版本的MySQL迁移则影响
    Alibaba Cloud Linux 3支持MySQL数据库,但您需要注意,由于MySQL不支持降低版本,当Alibaba Cloud Linux 3提供的MySQL版本低于待迁移的CentOS 8内的MySQL版本时,不支持使用迁移工具完成操作系统迁移。
    操作系统热迁移 不支持 使用操作系统工具迁移操作系统时涉及软件包的重新安装,会引起系统内服务重启,进而造成业务中断。因此,您在迁移前需要做好数据备份(具体操作请参见快照概述)并隔离待迁移的操作系统环境,避免影响正常业务。
    操作系统迁移工具在迁移过程中涉及软件包的下载与安装,会产生一定的资源消耗。因此,迁移前您需要确保实例内保留了以下可用的资源容量:
    • 内存大小:300 MiB
    • 云盘容量:
      • /usr目录需要250 MiB
      • /var目录需要1.5 GiB
      • /boot目录需要50 MiB
    说明 如果您的实例对应的计算资源(vCPU与内存)、存储资源(系统盘与数据盘)较小,建议您停止实例内的业务再进行操作系统迁移,避免因资源不足而迁移失败。

操作步骤

  1. 登录SMC控制台
  2. 在左侧导航栏,单击迁移源
  3. 找到目标迁移源,单击对应操作列下的创建迁移任务
    您可以从客户端界面获取迁移源ID,如下图所示,并根据迁移源ID找到目标迁移源。具体操作,请参见如何查找迁移源获取迁移源ID
  4. 创建迁移任务对话框中,配置相关参数。
    操作系统迁移参数配置说明如下所示:
    • 迁移任务类型:选择操作系统迁移
    • 当前操作系统:默认显示当前操作系统,不可修改。例如:CentOS8。
    • 目标操作系统:在下拉列表中选择目标操作系统。例如:Alibaba Cloud Linux 3。
    dadad
  5. 配置相关参数后,单击创建
  6. 迁移任务页面,等待迁移任务完成。
    • 当迁移状态为已完成时,表示操作系统迁移成功。daasda5862您可以在目标迁移任务的操作列下,单击查看目标实例,在实例详情页签下,查看操作系统已经迁移为目标系统。addad56
    • 当任务状态为出错(InError),表示操作系统迁移失败。您需要查看日志修复问题后,再次重启迁移任务。常见错误及修复方案的更多信息,请参见SMC FAQ。如果您需要回滚源系统云盘数据,可以在快照列表使用自动备份的快照进行恢复。具体操作步骤如下:
      1. 登录ECS管理控制台
      2. 在左侧导航栏,选择存储与快照 > 快照
      3. 云盘快照页签下,在自动备份的快照操作列,单击回滚磁盘adada56
      4. 在弹出的回滚云盘对话框中,单击确定