由于操作系统停止维护(EOL)、开源计划演进等原因,您在操作系统迁移及升级的同时需要保留ECS实例系统盘的数据时,可以通过SMC实现。本文主要介绍如何通过SMC进行操作系统迁移或者升级。
说明 通过SMC将CentOS 7/8迁移至RedHat 7/8目前仅对部分用户开放,如果您想体验此功能,可以提交工单进行申请。
背景信息
操作系统因生命周期、第三方支持等原因将会停止技术支持,例如CentOS官方将停止维护CentOS 7/CentOS 8等Linux项目,这些进入到停止维护周期(EOL)的操作系统版本将面临更大的安全漏洞威胁。如果您的ECS实例操作系统满足SMC操作系统迁移条件,可通过SMC平滑迁移或升级到新的操作系统版本,以得到更长的维护周期和技术支持。更多信息,请参见镜像维护周期和EOL应对方案。
迁移及升级场景
迁移CentOS 7/8
操作系统架构 | 源操作系统 | 目标操作系统 |
X86 | CentOS 7.x | AnolisOS 7 AnolisOS 8 Alibaba Cloud Linux 2 Alibaba Cloud Linux 3
|
CentOS 7.9 | RedHat 7 |
CentOS 8.x | AnolisOS 8 Alibaba Cloud Linux 3
|
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.x |
升级Alibaba Cloud Linux 2
操作系统架构 | 源操作系统 | 目标操作系统 |
x86 | Alibaba Cloud Linux 2 | Alibaba Cloud Linux 3 |
迁移前须知
须知项 | 说明 |
评估迁移对业务的影响 | 迁移过程中请勿人工或通过运维脚本对ECS云服务器执行停止、重启、释放等操作,否则可能会导致迁移失败。 迁移演练或取消迁移可能会触发自动回滚迁移前快照的操作,迁移期间产生的数据将丢失。 迁移升级过程中,源实例系统会被安装或更新系统内核及软件包,并自动重启多次,期间业务无法正常运行,建议评估影响暂停业务后再进行操作。
|
数据备份 | 迁移过程会对ECS云服务器进行创建普通云盘快照、操作系统内核版本转换、软件包重新安装升级、停止、启动等操作。建议提前做好重要数据备份,合理安排迁移窗口期,避免因上述操作对业务造成影响。 |
确保没有正在创建中的快照 | 如果有正在创建中的快照会导致迁移失败,请您等待快照创建完成后,再开始迁移。 |
全面测试验证 | |
操作系统属性 | ECS云服务器操作系统迁移后,实例镜像ID会保持不变,操作系统会变更为迁移后的操作系统。 |
计费说明
迁移过程中系统会对ECS实例的全部云盘创建快照以备份数据,快照以按量付费方式收取一定费用。更多信息,请参见产品计费。
迁移限制
限制类别 | 限制说明 |
通用限制 | 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时,工具会对待迁移的操作系统进行基础判断。 |
前提条件
已完成迁移前准备工作。具体操作,请参见迁移前准备。
待迁移ECS实例需为VPC网络实例。如果是经典网络实例,需先迁移到VPC网络环境。具体操作,请参见ECS实例从经典网络迁移到专有网络。
已对源系统和数据做快照进行备份,必要时可恢复。具体操作,请参见创建快照。
重要 迁移会对操作系统内核、软件包、配置等进行修改,修改不可逆。
迁移过程依赖于yum或者dnf,需确保这两个组件能够正常运行。
迁移后原系统盘会被释放,如果原系统盘设置了自动快照随云盘释放,关联的自动快照默认也会被释放。如果您需要保留此快照,您可以手动取消自动快照随云盘释放。具体操作,请参见设置自动快照随云盘释放。
如果您需要迁移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
迁移操作
(条件必选)如果您需要迁移CentOS 7/8至RedHat 7/8,则必须完成以下操作,否则请跳过此步骤。
如果源系统已安装云安全中心客户端,则需要先卸载。
说明 迁移升级完成后可再安装。具体操作,请参见手动安装。
客户端卸载后会有一段保护期。如果您需要再次为服务器安装客户端,您必须在客户端卸载超过24小时后,重新安装客户端。如果您不想等待,可在服务器上重复执行3次以上安装命令才能重新安装成功(忽略其间的报错),否则重新安装的客户端会被自动卸载。
去阿里云云安全客户端卸载界面,选择实例进行卸载。具体操作,请参见卸载客户端。
使用远程连接工具连接服务器,执行以下命令。
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
,表示云安全中心客户端已成功卸载。
执行以下命令,将源系统升级至最新内核版本。
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
操作系统迁移。
快速迁移(推荐)
登录SMC控制台。
在左侧导航栏,选择。
在页面左上角,单击开始迁移。
在弹出的操作系统迁移对话框中,选择待迁移的ECS实例后,单击前置检测。
可以通过实例ID、地域筛选ECS实例。
在弹出的操作系统迁移对话框中,系统自动进行操作系统迁移前置检查,大约需要10s,请您耐心等待。
仔细阅读操作系统迁移注意事项后,选中我已知晓以上风险,同意并授权阿里云为该实例的全部云盘创建快照,并单击下一步。
在弹出的操作系统迁移对话框中,按需选择目标操作系统。
单击检测是否可迁移,查看迁移检测结果。
检测大约需要30s,请您耐心等待。
单击确定迁移。
您可以在操作系统迁移页面,查看操作系统迁移的进度。
警告 在操作系统迁移的过程中,请勿人工或通过运维脚本对ECS实例执行停止、重启、释放等操作,否则会导致操作系统迁移失败。
分步迁移
步骤一:导入迁移源
迁移源概指您的待迁移IDC服务器、虚拟机、其他云平台的云主机或其他类型的服务器。SMC支持多种导入迁移源方式,您可以根据实际需要选择对应的导入迁移源方式。更多信息,请参见如何选择导入迁移源方式?。
命令行一键导入迁移源(推荐)
登录SMC控制台。
在左侧导航栏,选择。
在操作系统迁移页面,单击导入迁移源。
根据界面提示配置参数并复制激活码命令,关于参数的说明,具体如下表所示。
参数 | 说明 |
迁移源类型 | 选择阿里云ECS云服务器。 |
导入方式 | 选中命令行导入。 |
激活数额度 | 请输入激活码可激活的迁移源数量。取值范围为1~1000 ,默认为10。 |
有效期 | 请输入激活码的有效期。取值范围为1~90天,默认为30天。 |
激活码 | 生成激活码后,复制命令。操作步骤如下: 单击生成激活码。 单击Linux Shell页签。 单击复制,复制激活码命令。
|
登录源服务器,使用管理员权限粘贴并运行复制的命令,执行导入迁移源的操作。
登录Linux源服务器。
使用管理员权限粘贴并运行复制的命令,执行导入迁移源的操作。
执行命令后,出现类似Import Source Server [s-bp18x8751kgz2oyh****] Successfully!
回显信息,表示导入迁移源成功。
在SMC控制台的服务器迁移页面的迁移实时状态列,查看迁移源的状态。
通过SMC客户端导入迁移源
关于SMC客户端的更多信息,请参见SMC客户端使用指南。
登录SMC控制台。
在左侧导航栏,选择。
在操作系统迁移页面,单击导入迁移源。
在导入迁移源页面,配置相关参数,参数说明如下表所示。
参数 | 说明 |
迁移源类型 | 选择阿里云ECS云服务器。 |
导入方式 | 选中客户端导入。 |
导入说明 | 在导入说明后,请根据源服务器操作系统的架构(Arm和x86)和位数(32位和64位),下载对应的SMC客户端。 |
导入迁移源。
重要 迁移的过程中请勿关闭SMC客户端直至迁移完成。否则,迁移源将与SMC控制台失去联系,无法完成迁移。
使用支持文件传输的第三方远程连接工具将SMC客户端压缩包上传至Linux源服务器。例如:WinSCP。
远程连接Linux源服务器并解压SMC客户端压缩包。
本示例中以解压Linux 64位通用版
为例,如果您使用其他版本的SMC客户端,命令中的压缩包名称需要替换为实际下载的SMC客户端名称。
tar xf go2aliyun_client_linux_x86_64.tar.gz
说明 Linux 64位ARM版支持的实例规格族为通用型实例规格族g6r和计算型实例规格族c6r。更多实例规格信息,请参见企业级ARM计算规格族群。
(可选)如果您不需要迁移部分文件或目录,可排除不迁移的文件或目录。具体操作,请参见如何过滤、排除不需要迁移的文件或目录?。
重要 如果开启块复制功能迁移,则不支持排除不迁移的文件或目录。
获取激活码或者访问密钥(AccessKey)。
在SMC客户端文件夹下,执行以下命令,运行SMC客户端。
根据迁移源操作系统对root权限和sudo权限的支持情况,选择运行方式。
使用root权限运行
cd go2aliyun_client_linux_x86_64
chmod +x go2aliyun_client
./go2aliyun_client
使用sudo权限运行
cd go2aliyun_client_linux_x86_64
sudo chmod +x go2aliyun_client
sudo ./go2aliyun_client
根据提示信息,输入激活码或者访问密钥(AccessKey)。本示例以输入激活码为例:
输入激活码或者访问密钥后,可能会出现以下提示信息:
若迁移源系统没有安装快照驱动,则SMC客户端会提示,具体如下图所示,您可根据需求选择是否安装快照驱动。
重要 如果安装快照驱动失败,请勿在创建迁移任务时启用块复制,否则会导致迁移失败。
多数主流迁移源系统已默认安装rsync。若没有安装,则SMC客户端会提示,请输入yes
自动安装rsync,如下图所示。
若迁移源系统的SELinux处于开启状态,则SMC客户端会提示您关闭。请输入yes
自动关闭SELinux,如下图所示。
当回显出现类似Import Source Server [s-bp11npxndknsycqj****] Successfully!
的信息时,表示导入迁移源成功。
说明 如果导入迁移源失败,您可以根据回显信息,解决问题后,根据迁移源操作系统对root权限和sudo权限的支持情况,依次运行以下命令,退出后台程序并重新导入迁移源。常见问题及修复方案的更多信息,请参见SMC FAQ和故障排除。
使用sudo权限
sudo ./go2aliyun_client --abort
sudo ./go2aliyun_client
使用root权限
./go2aliyun_client --abort
./go2aliyun_client
在SMC控制台的操作系统迁移页面的迁移实时状态列,查看迁移源的状态。
步骤二:创建迁移任务
在目标迁移源的操作列,单击开始迁移。
在弹出的迁移配置对话框中,配置参数信息。
操作系统迁移参数配置说明如下所示:
当前操作系统:默认显示当前操作系统,不可修改。例如:CentOS 7。
目标操作系统:在下拉列表中选择目标操作系统。例如:Alibaba Cloud Linux 3。
迁移演练(可选项):
根据需要来决定是否开启迁移演练,默认开启。目前仅支持Linux操作系统迁移。更多信息,请参见配置迁移演练。
说明 迁移演练是在实际迁移前对迁移方案进行模拟和验证的过程。它可以帮助用户在实际迁移前充分了解迁移方案的可行性和风险,从而减少实际迁移中可能出现的问题和损失。
迁移演练可以帮助您快速发现迁移中存在的潜在问题,并提供修复方案,提升迁移成功率。
执行方式(条件必选):
若迁移演练开启时,可在执行方式选项中,更换所需的迁移演练执行方式。默认选项是演练并迁移。
两种方式的区别如下:
在弹出的操作系统迁移请确认对话框中,仔细阅读注意事项后,单击我确认我已知晓。
在创建迁移任务对话框中,单击立即查看,等待迁移任务完成。
警告 在操作系统迁移的过程中,请勿人工或通过运维脚本对Linux实例执行停止、重启、释放等操作,否则会导致操作系统迁移失败。
验证迁移结果
当迁移实时状态为已完成时,表示操作系统迁移成功。
说明 迁移任务完成后,ECS实例会自动重启,在系统初始化阶段进行更新软件包等操作,请勿对ECS实例进行操作,等待系统启动成功即可。系统初始化阶段大约需要15~30分钟,具体时间与系统软件包数量有关。
在目标迁移源的操作列下单击查看目标实例,然后在ECS实例的实例详情页签下的配置信息区域,查看操作系统已经迁移为目标系统。
重要 迁移升级后,源实例系统会被升级为新的系统内核及软件包,原有应用数据不变,但应用软件可能由于环境或依赖关系改变而无法正常运行,导致业务无法正常运行,请您做好测试验证。
当迁移实时状态为出错时,表示迁移任务出错。
此时,您需要排查问题后重试:
在操作列,单击排查错误,根据错误码和错误信息提示修复问题。更多信息,请参见SMC FAQ和故障排除。
在迁移任务页面,单击重试任务。
迁移任务会从上一次结束的进度处继续迁移。
如果需要回滚源系统云盘数据,您可以在快照列表使用自动备份的快照进行数据恢复。操作步骤如下:
登录ECS管理控制台。
在左侧导航栏,选择。
在云盘快照页签下,在自动备份的快照操作列,单击回滚磁盘。
在弹出的回滚云盘对话框中,单击确定。
资源清理
迁移时,SMC会对ECS实例的云盘创建2块名称为SMC_Backup_Snapshot_XXX
和SMC_Transition_Snapshot_XXX
的按量付费快照,用于备份和中转数据。您需要根据迁移是否成功选择是否需要手动清理该快照: