全部产品
Search
文档中心

服务器迁移中心:操作系统迁移(Linux)

更新时间:Jun 06, 2024

操作系统因生命周期、第三方支持、开源计划演进等原因将会停止技术支持,例如CentOS官方将停止维护CentOS 7/CentOS 8等Linux项目,这些进入到停止维护周期(EOL)的操作系统版本将面临更大的安全漏洞威胁。如果您的ECS实例操作系统满足SMC操作系统迁移条件,可通过SMC平滑迁移到新的操作系统版本,以得到更长的维护周期和技术支持。本文介绍如何通过SMC迁移操作系统。

重要

通过SMC将CentOS 7/8迁移至RedHat 7/8目前仅对部分用户开放,如果您想体验此功能,可以提交工单进行申请。

前提条件

  • 已完成迁移前准备工作。具体操作,请参见准备工作(迁移前必读)

  • 待迁移ECS实例需为VPC网络实例。如果是经典网络实例,需先迁移到VPC网络环境。具体操作,请参见ECS实例从经典网络迁移到专有网络

  • 如果您需要迁移CentOS 7/8至RedHat 7/8,则需要确保源系统可访问以下公网:

    • https://www.redhat.com

    • https://ftp.redhat.com

    • https://cdn-public.redhat.com

    • https://developer.aliyun.com

    • http://developer.aliyun.com

迁移方案对比

操作系统迁移方案的对比如下表所示。

迁移方案

易用性

可靠性

服务

迁移后结果

SMC操作系统迁移(推荐)

★★★★★

  • 白屏化操作,有迁移进度展示

  • 控制台日志展示

★★★★★

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

★★★★★

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

★★★★★

  • 控制台和目标操作系统显示一致

  • 同版本应用直接继承、跨版本需做部分适配

  • 系统盘数据保留

ECS控制台更换操作系统(系统盘)

★★★★

白屏化操作

★★★★

需手动创建快照

★★★★★

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

★★★

  • 控制台和目标操作系统显示一致

  • 应用需要重新部署

  • 系统盘数据不保留

ECS内执行迁移脚本

★★★

  • 脚本操作,纯脚本日志

  • ECS内操作,有操作风险

★★★

需手动创建快照

★★★

迁移方案社区支持

★★★

  • 控制台不感知ECS内部变化,控制台和目标操作系统显示不一致

  • 同版本应用直接继承、跨版本需做部分适配

迁移场景

支持将以下X86和ARM64架构的源操作系统迁移到目标操作系统:

操作系统架构

源操作系统

目标操作系统

X86

CentOS 7

  • AnolisOS 7

  • AnolisOS 8

  • RedHat 7

    重要

    仅支持CentOS 7.9迁移至RedHat 7。

  • Alibaba Cloud Linux 2

  • Alibaba Cloud Linux 3

CentOS 8

  • AnolisOS 8

  • RedHat 8

    重要

    仅支持CentOS 8.5迁移至RedHat 8。

  • Alibaba Cloud Linux 3

  • RedHat 7

    重要

    目前仅支持RedHat 7.9。

  • RedHat 8

Alibaba Cloud Linux 3

Alibaba Cloud Linux 2

Alibaba Cloud Linux 3

ARM64

CentOS 7

  • AnolisOS 7

  • AnolisOS 8

  • Alibaba Cloud Linux 3

CentOS 8

  • AnolisOS 8

  • Alibaba Cloud Linux 3

重要

待迁移的操作系统必须为当前阿里云账号下云服务器ECS中的操作系统。

迁移前须知

  • 迁移过程中系统会对云服务器ECS执行创建普通云盘快照、重新安装软件包、创建系统盘自定义镜像、 更换系统盘 、停止、启动等操作。其中更换系统盘操作会重建系统盘云盘,原来随云盘释放的自动快照也会被删除且无法恢复。建议您对重要数据做好备份并合理安排迁移时间,避免因上述操作对业务造成影响。

  • 迁移过程中请勿人工或通过运维脚本对ECS云服务器执行停止、重启、释放等操作。

  • 迁移过程中对全部云盘创建快照以备份数据,快照以按量付费方式收取一定费用。关于快照计费的更多信息,请参见快照计费

  • 操作系统的迁移操作不可逆,其中涉及到重新安装系统内的软件包。因此您需要在迁移前为ECS实例创建快照备份数据。关于快照的更多信息,请参见快照概述

  • 迁移过程依赖于yum或者dnf,需确保这两个组件能够正常运行。

  • 使用操作系统原地升级、转换会对操作系统内核、软件包、配置等进行修改,修改不可逆,首先需要您对源系统和数据做快照进行备份,必要时可恢复。

  • 迁移升级前和迁移过程中,会对源实例进行迁移条件检测及迁移预评估,如果源系统不满足迁移条件或迁移预评估失败,迁移会出错中断,并不能保证一定能迁移升级成功,建议提前熟悉迁移条件限制及出错排查文档并进行测试。

  • 迁移升级过程中,源实例系统会被安装或更新系统内核及软件包,并自动重启多次,期间业务无法正常运行,建议评估影响暂停业务后再进行操作,同时在正常迁移过程中不要操作使用源实例系统。

  • 迁移升级后,源实例系统会被升级为新的系统内核及软件包,原有应用数据不变,但应用软件可能由于环境或依赖关系改变而无法正常运行,导致业务无法正常运行,用户需要做好测试验证。

迁移限制

限制类别

限制说明

通用限制

  • Anolis OS和Alibaba Cloud Linux系统不提供i686架构的软件包,如您的系统上安装了CentOS的i386(包括i686)架构的软件包,则无法正常迁移。

  • 如果云服务器ECS通过自定义镜像创建,则不支持操作系统迁移。

  • 操作系统迁移工具在迁移过程中涉及软件包的下载与安装,会产生一定的资源消耗。因此,迁移前您需要确保实例内保留了以下可用的资源容量:

    • 内存大小:600 MiB

    • 云盘容量:

      • /usr目录需要250 MiB

      • /var目录需要4 GiB

      • /boot目录需要100 MiB

    说明

    如果您的实例对应的计算资源(vCPU与内存)、存储资源(系统盘与数据盘)较小,建议您停止实例内的业务再进行操作系统迁移,避免因资源不足而导致迁移失败。

CentOS 7迁移至Alibaba Cloud Linux 2

Alibaba Cloud Linux 2使用4.19内核,CentOS 7使用3.10内核,两个版本的内核无法相互兼容。对于依赖于内核接口编程的业务,例如涉及内核OOT模块开发、硬件使能等,需要提前做好评估,明确是否适合直接迁移,以免操作系统迁移后业务无法运行。

CentOS 7迁移至Alibaba Cloud Linux 3

CentOS 7使用3.10内核,Alibaba Cloud Linux 3选用Linux kernel 5.10 LTS作为Alibaba Cloud Linux 3的内核,并选用GCC 10.2、binutils 2.35、glibc 2.32作为基础工具链。两个版本的内核无法相互兼容,依赖于内核接口编程的业务,例如涉及内核OOT模块开发、硬件使能等,需提前做好评估,明确是否适合直接迁移,以免操作系统迁移后业务无法正常运行。

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时,工具会对待迁移的操作系统进行基础判断。

操作步骤

  1. (条件必选)如果您需要迁移CentOS 7/8至RedHat 7/8,则需要完成以下操作,否则请跳过此步骤。

    1. 如果源系统已安装云安全中心客户端,则需要先卸载。

      说明

      迁移升级完成后可再安装。具体操作,请参见手动安装

      客户端卸载后会有一段保护期。如果您需要再次为服务器安装客户端,您必须在客户端卸载超过24小时后,重新安装客户端。如果您不想等待,可在服务器上重复执行3次以上安装命令才能重新安装成功(忽略其间的报错),否则重新安装的客户端会被自动卸载。

      1. 阿里云云安全客户端卸载界面,选择实例进行卸载。具体操作,请参见卸载客户端

      2. 使用远程连接工具连接服务器,执行以下命令。

        wget "http://update2.aegis.aliyun.com/download/uninstall.sh" && chmod +x uninstall.sh && ./uninstall.sh
        if ! lsmod | grep AliSecGuard; then echo 'Uninstall Success'; else echo "Uninstall Failed"; fi

        如果返回Uninstall Success,表示云安全中心客户端已成功卸载。

    2. 执行以下命令,将源系统升级至最新内核版本。

      CentOS 7

      #备份原yum软件源并更新为阿里云CentOS 7源
      mv /etc/yum.repos.d/ /etc/yum.repos.d.backup/
      mkdir -p /etc/yum.repos.d/
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
      yum clean all
      yum makecache
      #更新系统并重启
      yum -y update
      reboot

      CentOS 8

      #备份原yum软件源并更新为阿里云CentOS 8源
      mv /etc/yum.repos.d/ /etc/yum.repos.d.backup/
      mkdir -p /etc/yum.repos.d/
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-8.repo
      wget -O /etc/yum.repos.d/epel-archive-8.repo http://mirrors.cloud.aliyuncs.com/repo/epel-archive-8.repo
      yum clean all
      yum makecache
      #更新系统并重启
      yum -y update
      reboot
  2. 导入迁移源。

    您可以根据需求选择导入迁移源的方式:

  3. 创建并启动迁移任务。

    1. 找到目标迁移源,单击对应操作列下的创建迁移任务

    2. 创建迁移任务对话框中,配置相关参数。

      操作系统迁移参数配置说明如下表所示。

      参数

      说明

      迁移任务类型

      选中操作系统迁移

      当前操作系统

      默认显示当前操作系统,不可修改。例如:CentOS 7。

      目标操作系统

      在下拉列表中选择目标操作系统。例如:Alibaba Cloud Linux 3。

      迁移演练

      迁移演练是在实际迁移前对迁移方案进行模拟和验证的过程。它可以帮助用户在实际迁移前充分了解迁移方案的可行性和风险,从而减少实际迁移中可能出现的问题和损失。

      迁移演练可以帮助您快速发现迁移中存在的潜在问题,并提供修复方案,提升迁移成功率。

      默认开启迁移演练,目前仅支持Linux操作系统迁移。更多信息,请参见配置迁移演练

      执行方式

      选择迁移演练的执行方式,默认选择演练并迁移

      • 仅演练:仅创建迁移演练任务,迁移演练完成后,如果需要操作系统迁移,需要手动启动操作系统迁移任务。

      • 演练并迁移:迁移演练完成后,如果不存在状态为严重的演练项,系统自动启动操作系统迁移任务。

      image

    3. 配置相关参数后,单击创建

    4. 在弹出的操作系统迁移请确认对话框中,仔细阅读注意信息后,单击我确认我已知晓

  4. 迁移任务页面的操作系统迁移页签下,等待迁移任务完成。

    • 当迁移状态为已完成时,表示操作系统迁移成功。

      image

      您可以在目标迁移任务的实例ID/名称列,单击实例ID,在ECS实例的实例详情页签下的配置信息区域,查看操作系统已经迁移为目标系统。

      image

    • 当任务状态为出错(InError),表示操作系统迁移失败。您需要查看日志修复问题后,再次重启迁移任务。常见错误及修复方案的更多信息,请参见SMC FAQ操作系统迁移中问题(Linux)

      如果需要回滚源系统云盘数据,您可以在快照列表使用自动备份的快照进行恢复数据。操作步骤如下:

      1. 登录ECS管理控制台

      2. 在左侧导航栏,选择存储与快照 > 快照

      3. 云盘快照页签下,在自动备份的快照操作列,单击回滚磁盘adada56

      4. 在弹出的回滚云盘对话框中,单击确定

  5. 等待操作系统启动。

    迁移任务完成后,ECS实例会自动重启,此时会在系统初始化阶段进行更新软件包等操作,请勿对ECS实例和系统内部进行操作,等待系统启动成功即可。

    说明

    系统初始化阶段大约需要10分钟,具体时间与系统软件包数量有关。