操作系统迁移(Linux)

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

若您的操作系统因生命周期结束等原因进入EOL阶段或需要将操作系统迁移至其他版本以满足业务需求,您可以通过服务器迁移中心在保留ECS实例系统盘数据的同时完成操作系统迁移。本文主要介绍如何通过SMC迁移CentOS 7/8、RedHat 7/8Alibaba Cloud Linux 2。

说明

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

背景信息

当您的ECS实例的操作系统进入操作系统生命周期概述的生命周期结束阶段(End of Life,EOL)时,您可能会面临更高的安全与使用风险,此时建议尽快更换已经处于EOL阶段的操作系统。服务器迁移中心(Server Migration Center,简称SMC)的操作系统迁移功能提供了部分迁移方案,迁移后操作系统内核版本及主要系统软件包会进行原地转换升级,同时保留系统盘数据。

说明

如果您不需要保留系统盘数据,或有更多的操作系统转换选项需求时,您可以通过更换系统盘方式更换操作系统

迁移方案

CentOS 7/8

操作系统架构

源操作系统

目标操作系统

X86

CentOS 7.x

  • AnolisOS 7

  • AnolisOS 8

  • Alibaba Cloud Linux 2

  • Alibaba Cloud Linux 3

    说明

    更多有关Alibaba Cloud Linux信息,请参见什么是Alibaba Cloud Linux

  • RedHat 7

    说明

    目前仅支持部分用户由Centos 7.9升级至RedHat 7,如果您想体验此功能,可以提交工单申请开通白名单。

CentOS 8.x

  • AnolisOS 8

  • Alibaba Cloud Linux 3

  • RedHat 8

    说明

    目前仅支持部分用户由Centos 8.5升级至RedHat 8,如果您想体验此功能,可以提交工单申请开通白名单。

ARM64

CentOS 7.x

  • AnolisOS 7

  • AnolisOS 8

  • Alibaba Cloud Linux 3

CentOS 8.x

  • AnolisOS 8

  • Alibaba Cloud Linux 3

RedHat 7/8

操作系统架构

源操作系统

目标操作系统

x86

RedHat 7.9

  • Alibaba Cloud Linux 3

  • RedHat 8

    说明

    在迁移时不支持指定迁移至特定的RedHat小版本。

RedHat 8.x

  • RedHat 9

    说明

    在迁移时不支持指定迁移至特定的RedHat小版本。

  • Alibaba Cloud Linux 3

Alibaba Cloud Linux 2

操作系统架构

源操作系统

目标操作系统

x86

Alibaba Cloud Linux 2

Alibaba Cloud Linux 3

迁移限制

限制类别

限制说明

通用限制

  • Anolis OSAlibaba Cloud Linux系统不提供i686架构的软件包,如您的系统上安装了CentOSi386(包括i686)架构的软件包,则无法正常迁移。详细特性或软件的迁移限制,请参看特性或软件的迁移限制

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

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

同时,您还需要注意以下操作系统相关特性或软件的迁移限制:

特性或软件

支持情况

是否影响操作系统迁移流程

说明

i386架构的软件包

不支持

Alibaba Cloud Linux不提供i386架构的软件包。如果您当前使用的CentOS 7/8系统内带有i386架构的软件包,则不支持使用迁移工具迁移操作系统。您需要先删除这些软件包,然后再进行迁移操作,以免迁移时系统发生异常。

epel-modular

不支持

CentOS 7/8EPEL源所依赖的platformAlibaba 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 73.10内核和CentOS 84.18内核。因此,依赖于内核接口编程的业务(例如内核OOT模块开发、硬件使能等业务场景),您需要在迁移前自行做好迁移评估,避免迁移后业务无法正常运行。

MySQL数据库

仅支持向同版本或更高版本的MySQL迁移

  • 如果向同版本或更高版本的MySQL迁移则不影响

  • 如果向低版本的MySQL迁移则影响

Alibaba Cloud Linux 3支持MySQL数据库,但您需要注意,由于MySQL不支持降低版本,当Alibaba Cloud Linux 3提供的MySQL版本低于待迁移的CentOS 7/8内的MySQL版本时,不支持使用迁移工具完成操作系统迁移。

操作系统热迁移

不支持

使用操作系统工具迁移操作系统时涉及软件包的重新安装,会引起系统内服务重启,进而造成业务中断。因此,您需要在迁移前创建快照做好数据备份并隔离待迁移的操作系统环境,避免影响正常业务。

迁移注意事项

重要

请您在操作系统迁移前务必了解以下事项。

迁移过程

注意事项

迁移前

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

  • 在正式迁移前,强烈建议您了解迁移限制,并预先在目标操作系统环境下完成所有业务应用程序的全面测试验证,以确保应用程序与目标操作系统之间的兼容性及性能表现,从而有效避免迁移后可能出现的业务运行不畅或功能失效等问题。

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

迁移中

  • 迁移过程中请勿人工或通过运维脚本对ECS云服务器执行停止、重启、释放等操作,否则可能会导致迁移失败。

  • 迁移演练或取消迁移可能会触发自动回滚迁移前快照的操作,迁移期间产生的数据将丢失。

  • 迁移过程会对 ECS 云服务器进行创建快照、操作系统内核版本转换、软件包重新安装升级、停止、启动等操作。建议提前做好重要数据备份,合理安排迁移窗口期,避免因上述操作对业务造成影响。

  • 迁移中系统会对源实例进行迁移条件检测及迁移预评估。如果源系统不满足迁移条件或迁移预评估失败,迁移会出错中断,并不能保证一定能迁移成功,建议您提前熟悉迁移条件及出错排查文档并进行测试。迁移问题,请参见操作系统迁移中问题(Linux)RedHat迁移出错排查官方文档

迁移后

  • 迁移后,实例会自动启动,实例ID、镜像ID、实例VPC、实例公/私网IP、实例主机名等保持不变,实例操作系统会变更为迁移后目标操作系统。

  • 原有系统盘数据不变,但应用软件可能由于环境或依赖关系改变而无法正常运行,导致业务无法正常运行,因此请您做好测试验证。

计费说明

迁移过程中系统会对ECS实例的全部云盘创建快照以备份数据,快照以按量付费方式收取一定费用。更多信息,请参见产品计费

迁移操作

重要

迁移过程中系统会对ECS实例的全部云盘创建快照备份数据,创建的快照将以按量付费方式收取一定费用。更多信息,请参见产品计费

  1. (条件必选)如果您需要迁移CentOS 7/8RedHat 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. 操作系统迁移。

    快速迁移(推荐)

    说明

    如果您的实例是在20171201日之前购买,或通过自行上传的自定义镜像创建,或是第三方云服务器,若需使用此方式,则需为该ECS实例安装云助手Agent。20171201日之后使用公共镜像创建的ECS实例,已默认预装了使用此方式所需的云助手Agent,无需关注此条说明。

    1. 访问SMC控制台-操作系统迁移

    2. 操作系统迁移页面,单击开始迁移

    3. 在弹出的操作系统迁移对话框中,通过实例ID、地域确定并选择待迁移的ECS实例后,单击前置检测

      image

    4. 在弹出的操作系统迁移对话框中,系统自动进行操作系统迁移前置检查,大约需要10s,请您耐心等待。

      • 当前置检测状态由image变为image,表示前置检查通过。

      • 当前置检测状态由image变为image,表示前置检查不通过,您可以根据界面提示修复问题后重新迁移。

    5. 仔细阅读操作系统迁移注意事项后,选中我已知晓以上风险,同意并授权阿里云为该实例的全部云盘创建快照,并单击下一步

      image

    6. 在弹出的操作系统迁移对话框中,按需选择目标操作系统。

      • 统一迁移至同一目标操作系统:如果执行批量迁移,您可以将不同实例统一迁移至同一个操作系统。

      • 按实例选择目标操作系统:如果执行批量迁移,您可以按需将不同实例迁移至不同的操作系统。

    7. 单击检测是否可迁移,查看迁移检测结果。

      检测大约需要30s,请您耐心等待。

      • image:表示操作系统可以迁移。

      • image:表示不支持迁移。您可以根据界面提示,查看不支持迁移的原因。

    8. 单击确定迁移

      您可以在操作系统迁移页面,查看操作系统迁移的进度。

      警告

      在操作系统迁移的过程中,请勿人工或通过运维脚本对ECS实例执行停止、重启、释放等操作,否则会导致操作系统迁移失败。

    分步迁移

    步骤一:导入迁移源

    迁移源指您准备迁移的IDC服务器、虚拟机、其他云平台的云主机或阿里云ECS云服务器。SMC支持多种导入迁移源方式,您可以按需选择对应的迁移源方式

    命令行一键导入迁移源(推荐)

    重要
    • 源服务器需要具备公网访问能力。如果源服务器存在防火墙限制,请参见SMC服务域名有哪些,获取SMC域名和端口,并添加至防火墙白名单。

    • 如果您的源服务器无法访问公网或想通过私网传输提升迁移效率,请参考私网传输迁移方案。

    1. 访问SMC控制台-操作系统迁移

    2. 操作系统迁移页面,单击导入迁移源

    3. 根据界面提示配置参数并复制激活码命令,关于参数的说明,具体如下表所示。

      参数

      说明

      迁移源类型

      选择阿里云ECS云服务器

      导入方式

      选中命令行导入

      激活数额度

      激活码可激活的迁移源数量。取值范围为1~1000 ,默认为200。

      有效期

      激活码的有效期。取值范围为1~90天,默认为90天。

      激活码

      生成激活码后,复制命令。操作步骤如下:

      1. 单击生成激活码

      2. 单击Linux Shell页签。

      3. 单击复制,复制激活码命令。

    4. 登录源服务器,使用管理员权限粘贴并运行复制的命令,执行导入迁移源的操作。

      1. 登录Linux源服务器。

      2. 使用管理员权限粘贴并运行复制的命令,执行导入迁移源的操作。

        image.png

        执行命令后,出现类似Import Source Server [s-bp18x8751kgz2oyh****] Successfully!回显信息,表示导入迁移源成功。

    5. SMC控制台的操作系统迁移页面的迁移实时状态列,查看迁移源的状态。

      • 如果迁移源为迁移源在线状态,表示导入迁移源成功。

      • 如果迁移源为其他状态,表示导入迁移源失败。请参见以下方案解决问题后,重新导入迁移源。

        • 请根据控制台出错提示或者通过查看SMC客户端目录下日志文件解决问题。SMC客户端默认安装目录为/smc

        • 常见问题及修复方案,请参见SMC FAQ排除报错

    通过SMC客户端导入迁移源

    关于SMC客户端的更多信息,请参见SMC客户端使用指南

    1. 访问SMC控制台-操作系统迁移

    2. 操作系统迁移页面,单击导入迁移源

    3. 导入迁移源页面,配置相关参数,参数说明如下表所示。

      参数

      说明

      迁移源类型

      阿里云ECS云服务器

      导入方式

      选中客户端导入

      导入说明

      导入说明后,请根据源服务器操作系统(LinuxWindows)和位数(32位和64位),下载对应的SMC客户端。

    4. 导入迁移源。

      重要

      迁移过程中请勿关闭SMC客户端。否则迁移源将与SMC控制台失联,导致迁移失败。

      1. 使用支持文件传输的远程连接工具(如WinSCP)将获取的SMC客户端上传至Linux源服务器。

      2. 远程连接Linux源服务器并解压SMC客户端压缩包。

        本示例以Linux 64位通用版为例,如果使用其他版本SMC客户端,请将命令中的压缩包名称需要替换为实际下载的文件名。

        tar -zxvf go2aliyun_client.tar.gz
        说明

        Linux 64ARM支持的实例规格族为通用型实例规格族g6r和计算型实例规格族c6r。更多实例规格信息,请参见企业级ARM计算规格族群

      3. (可选)您可按需过滤、排除不需要迁移的文件或目录

        重要

        如果开启块复制功能迁移,则不支持排除不迁移的文件或目录。

      4. 获取激活码或者访问密钥(AccessKey)。

        • (推荐)获取激活码:在SMC控制台的导入说明中,单击生成激活码并复制激活码信息。

        • 获取访问密钥(AccessKey):阿里云账号的访问密钥AccessKey包括AccessKey IDAccessKey Secret,如果您未创建,请先创建。具体操作,请参见创建AccessKey

      5. SMC客户端文件夹下,执行以下命令,运行SMC客户端。

        cd go2aliyun_client_linux_x86_64
        sudo chmod +x go2aliyun_client
        sudo ./go2aliyun_client
      6. 根据提示信息,输入激活码或者访问密钥(AccessKey)。本示例以输入激活码为例:adad

        输入激活码或者访问密钥后,可能会出现以下提示信息:

        • 若迁移源系统没有安装快照驱动,则SMC客户端会提示,具体如下图所示,您可根据需求选择是否安装快照驱动。

          • 如果在创建迁移任务时启用块复制,则输入yes,自动安装快照驱动。

          • 如果在创建迁移任务时不启用块复制,则输入no即可。

          重要

          如果安装快照驱动失败,请勿在创建迁移任务时启用块复制,否则会导致迁移失败。

          123

        • 多数主流迁移源系统已默认安装rsync。若没有安装,则SMC客户端会提示,请输入yes自动安装rsync,如下图所示。安装rsync

        • 若迁移源系统的SELinux处于开启状态,则SMC客户端会提示您关闭。请输入yes自动关闭SELinux,如下图所示。关闭SELinux

        当回显出现类似Import Source Server [s-bp11npxndknsycqj****] Successfully!的信息时,表示导入迁移源成功。

        说明

        如果导入迁移源失败,您可以根据回显信息,解决问题后,依次运行以下命令,退出后台程序并重新导入迁移源。常见问题及修复方案的更多信息,请参见SMC FAQ排除报错

        sudo ./go2aliyun_client --abort
        sudo ./go2aliyun_client
    5. SMC控制台的操作系统迁移页面的迁移实时状态列,查看迁移源的状态。

      • 如果为迁移源在线状态,表示导入成功。

      • 如果为其他状态,表示导入失败。请参见以下方案解决问题后,重新导入。

        • 请根据控制台出错提示或者通过查看SMC客户端目录下日志文件解决问题。SMC客户端默认安装目录为 /smc

        • 常见问题及修复方案,请参见SMC FAQ排除报错

    步骤二:迁移配置

    1. 在目标迁移源的操作列,单击开始迁移

    2. 在弹出的迁移配置对话框中,配置参数信息。

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

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

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

      • 迁移演练(可选项):

        根据需要来决定是否开启迁移演练,默认开启。目前仅支持Linux操作系统迁移。更多信息,请参见配置迁移演练

        说明

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

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

      • 执行方式(条件必选):

        迁移演练开启时,可在执行方式选项中,更换所需的迁移演练执行方式。默认选项是演练并迁移

        两种方式的区别如下:

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

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

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

    4. 操作系统迁移页面,查看迁移实时状态。

      警告

      在操作系统迁移的过程中,请勿人工或通过运维脚本对该Linux实例执行停止、重启、释放等操作,否则会导致操作系统迁移失败。

验证迁移结果

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

    image

    说明

    迁移任务完成后,ECS实例会自动重启,在系统初始化阶段进行更新软件包等操作,请勿对ECS实例进行操作,等待系统启动成功即可。系统初始化阶段大约需要15~30分钟,具体时间与系统软件包数量有关。

    在目标迁移源的操作列下单击查看目标实例,然后在ECS实例的实例详情页中查看操作系统已经迁移为目标操作系统。

    重要

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

  • 迁移实时状态出错时,表示迁移任务出错。

    此时,您需要排查问题后重试:

    1. 操作列,单击排查错误,根据错误码和错误信息提示修复问题。更多信息,请参见SMC FAQ排除报错

    2. 修复问题后,在操作列,单击重试迁移。系统会从上一次结束的进度处继续迁移。

      重要

      如果中转实例已被释放,需要重新迁移。具体操作,请参见误释放了中转实例怎么办

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

    1. 访问ECS管理控制台-快照

    2. 在自动备份的快照操作列中单击回滚云盘image

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

资源清理

迁移时,SMC会对ECS实例的云盘创建名称为SMC_Backup_Snapshot_XXX的按量付费快照,用于备份数据。如果您不再需要此快照,请及时删除快照,避免不必要的扣费。具体操作,请参见删除快照