本文主要介绍在Linux操作系统迁移时,迁移任务出错提示“failed to leapp preupgrade”信息时的问题描述、问题原因及其解决方案。
问题描述
在使用SMC操作系统时,迁移任务出错提示“failed to leapp preupgrade”信息。
问题原因
可能原因如下:
软件包依赖关系检查失败
YUM源无法访问
/etc/fstab挂载配置检查失败
/etc/vsftpd/vsftpd.conf FTP配置检查失败
/根目录检查失败
target_userspace_creator创建目标用户空间失败
解决方案
软件包依赖关系检查失败
远程连接源服务器。具体操作,请参见连接实例。
执行以下命令,在SMC客户端目录下的日志目录查看报错信息。
查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:
cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log
其中:2.7.6是SMC客户端的版本号,您需要根据实际替换。
执行以下命令,日志存在以下报错信息。
cat /var/log/leapp/leapp-preupgrade.log
上述报错信息表明,更新软件包时,dnf_transaction_check阶段检查依赖关系失败。可能是仓库中缺少依赖的软件包,也可能是依赖的软件包之间存在冲突。如上述lynx包更新时仓库中找不到依赖包
anolis-indexhtml
。分析报错信息中的依赖关系,卸载导致问题的软件包。例如出现上述报错后,执行以下命令,卸载lynx。
yum remove lynx-2.8.8-0.3.dev15.1.al7.x86_64
问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。
YUM源无法访问
远程连接源服务器。具体操作,请参见连接实例。
执行以下命令,在SMC客户端目录下的日志目录查看报错信息。
查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:
cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log
其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。
执行以下命令,日志存在以下报错信息。
cat /var/log/leapp/leapp-preupgrade.log
报错信息如下:
Errors during downloading metadata for repository 'docker-ce-stable-migrate': - Curl error (28): Timeout was reached for https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/repodata/repomd.xml [Connection timed out after 30000 milliseconds] Error: Failed to download metadata for repo 'docker-ce-stable-migrate': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried Errors during downloading metadata for repository 'zabbix-migrate': - Curl error (28): Timeout was reached for http://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/repodata/repomd.xml [Connection timed out after 30000 milliseconds] Error: Failed to download metadata for repo 'zabbix-migrate': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
上述报错信息表明,迁移过程中用到的YUM源配置文件为
/etc/leapp/files/leapp_upgrade_repositories.repo
,其中https://rpm.nodesource.com/pub_18.x/el/8/$basearch、http://repo.zabbix.com/zabbix/5.0/rhel/8/$basearch/、https://mirrors.aliyun.com/docker-ce/linux/centos/8/$basearch/stablenodejs、zabbix和docker-ce的repo仓库配置了公网地址,但是部分ECS实例无法访问公网。
根据需求,解决问题。
如果ECS实例无法访问公网
把配置文件 /etc/leapp/files/leapp_upgrade_repositories.repo 中使用的公网访问地址
http://mirrors.aliyun.com/
更换为VPC网络访问地址http://mirrors.cloud.aliyuncs.com/
或者将无法访问的公网repo仓库配置的enabled=1
修改为enabled=0
。如果ECS实例无法访问VPC网络
迁移过程中需要确保机器能够通过VPC网络访问yum源地址
http://mirrors.cloud.aliyuncs.com/
检查源服务器是否只有经典网络,检查DNS配置文件/etc/resolv.conf
是否正常。
问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。
/etc/fstab挂载配置检查失败
远程连接源服务器。具体操作,请参见连接实例。
执行以下命令,在SMC客户端目录下的日志目录查看报错信息。
查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:
cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log
其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。
根据报错信息,检查
/etc/fstab
挂载配置。每个文件系统挂载项写在一行之内,不要因为参数过多而换行。
每个文件系统挂载项确保是可挂载的,可通过
mount -a
命令测试挂载。配置文件中不要出现中文。
问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。
/etc/vsftpd/vsftpd.conf FTP配置检查失败
远程连接源服务器。具体操作,请参见连接实例。
执行以下命令,在SMC客户端目录下的日志目录查看报错信息。
查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:
cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log
其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。
vsftpd_config_read阶段报错退出,检查
/etc/vsftpd/vsftpd.conf
FTP配置文件内容如下:/etc/vsftpd/vsftpd.conf
FTP配置文件中不要出现中文,删除中文。问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。
/根目录检查失败
target_userspace_creator创建目标用户空间失败
远程连接源服务器。具体操作,请参见连接实例。
执行以下命令,在SMC客户端目录下的日志目录查看报错信息。
查看SMC客户端目录的具体操作,请参见查看SMC客户端。示例命令如下:
cat /smc/go2aliyun_client2.7.6_linux_x86_64/Logs/osm_prepare.log
其中:2.7.6是SMC客户端的版本号,您需要根据实际情况进行替换。
执行以下命令,日志中存在以下报错信息。
cat /var/log/leapp/leapp-preupgrade.log
上述报错信息表明,因为系统内核版本和软件包版本相对较低,而且没有加载相应的overlay驱动,导致mount报错。
执行以下命令,将系统小版本更新到CentOS 7.9,并更新内核和一些软件包版本。
yum update
重启源服务器后,执行以下命令,检查已加载overlay驱动。
lsmod |grep overlay
问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端。