Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
如何对 Linux 服务器上的 AWS Replication Agent 安装失败问题进行故障排除?
我想为 AWS Application Migration Service 或 AWS 弹性灾难恢复安装 AWS Replication Agent,但安装失败了。
解决方法
要自动识别在 Linux 源服务器中安装 Application Migration Service 或弹性灾难恢复复制代理时出现的问题,请使用 AWSSupport-TroubleshootLinuxMGNDRSAgentLogs 自动化运行手册。该运行手册使用 AWS Replication Agent 安装日志文件来提供检测到的错误列表以及相应的解决方法。
在启动 AWSSupport-TroubleshootLinuxMGNDRSAgentLogs 运行手册之前,请确保您的 AWS Identity and Access Management (IAM) 用户或角色拥有所需的权限。有关详细信息,请参阅 AWSSupport-TroubleshootLinuxMGNDRSAgentLogs 上的所需的 IAM 权限。此外,请将 installer-path/aws_replication_agent_installer.log 复制代理日志文件上传到 Amazon Simple Storage Service (Amazon S3) 存储桶。
要运行 AWSSupport-TroubleshootLinuxMGNDRSAgentLogs,请参阅 AWSSupport-TroubleshootLinuxMGNDRSAgentLogs 上的说明。
为 ServiceName (Required)(ServiceName(必填))配置以下输入参数:
- 要使用 Application Migration Service,请选择 AWS MGN。
- 要使用弹性灾难恢复,请选择 AWS DRS。
或者,运行以下命令以手动识别 AWS Replication Agent 安装错误:
less +G installer-path/aws_replication_agent_installer.log
**注意:**请将 installer-path 替换为用于安装复制代理的路径。
根据您识别的错误,使用以下故障排除步骤来解决问题。
"failed to map segment from shared object: Operation not permitted" 错误
安装脚本使用 /tmp 目录。如果您在 /tmp 上设置了 noexec,则 libz.so 将无法映射分段,且您会收到以下错误消息:
"error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted"
要解决此问题,请运行以下命令以使用执行权限挂载卷:
# sudo mount /tmp -o remount,exec
如果您不想从 /tmp 目录中删除 noexec,请在命令中添加以下环境变量:
TMPDIR='my_temp_dir' AGENT INSTALLATION COMMAND
**注意:**请将 my_temp_dir 替换为不包含 noexec 的目录,并将 AGENT INSTALLATION COMMAND 替换为您用于安装代理的命令。
命令示例:
TMPDIR='temp1' sudo chmod +x aws-replication-installer-init; sudo ./aws-replication-installer-init
"security token included in the request is expired" 错误
如果您的 IAM 角色过期,则对 Application Migration Service 或弹性灾难恢复端点的 API 调用将失败,且您会收到以下错误消息:
"botocore.exceptions.ClientError: An error occurred (ExpiredTokenException) when calling the GetAgentInstallationAssetsForDrs operation: The security token included in the request is expired [installation_id: 1a9af9d3-9485-4e02-965e-611929428c61, agent_version: 3.7.0, mac_addresses: 206915885515739,206915885515740, _origin_client_type: installer]"
要解决此问题,请请求临时安全凭证以生成新令牌。或者,安装拥有 Application Migration Service 或弹性灾难恢复的访问密钥或秘密访问密钥的角色。
"ssl.SSLCertVerificationError" 错误
如果您在 Python 3.10 或更高版本中使用较早的操作系统 (OS) 版本,则可能会收到以下错误消息:
"ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997) - urllib.error.URLError: urlopen error unknown url type: https"
较早的操作系统版本没有支持 Python 3.10 的最新 OpenSSL 库。有关详细信息,请参阅 Python Enhancement Proposals 网站上的 PEP 644 -- 要求使用 OpenSSL 1.1.1 或更新版本。在此情况下,AWS Replication Agent 安装无法验证 Application Migration Service 或弹性灾难恢复端点的 SSL 证书。
为避免此问题,请使用较早版本的 Python,例如 2.7 或 3.8 版本。
**注意:**要解决大多数 "urllib" 或 "SSL" 错误,请使用较早版本的 Python。
"botocore.exceptions.CredentialRetrievalError" 错误
当您修改 AWSElasticDisasterRecoveryAgentRole 或 AWSApplicationMigrationAgentRole IAM 服务角色时,您会收到以下错误消息:
"botocore.exceptions.CredentialRetrievalError: Error when retrieving credentials from cert: Oct 17, 2022 9:38:54 AM com.amazonaws.cloudendure.credentials_provider.SharedMain createAndSaveJks"
要解决此问题,请根据您使用的服务更新 IAM 服务角色的权限策略。
Application Migration Service 权限策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mgn.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "sts:SourceIdentity": "s-*", "aws:SourceAccount": "AWS-Account-Number" } } } ]
**注意:**请将 AWS-Account-Number 替换为您的 AWS 账户 ID。
弹性灾难恢复权限策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "drs.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "sts:SourceIdentity": "s-*", "aws:SourceAccount": "AWS-Account-Number" } } } ] }
**注意:**请将 AWS-Account-Number 替换为您的账户 ID 。
"A dependency job for aws-replication.target failed" 错误
如果 /var 目录的权限为 754,或者在为 aws-replication 用户创建 Linux 组时出现问题,则您会收到以下错误消息:
"stderr: A dependency job for aws-replication.target failed.See 'journalctl -xe' for details"
要解决 /var 问题,请运行以下命令:
sudo chmod 755 /var
要解决 Linux 组问题,请完成以下步骤:
-
卸载 Application Migration Service 或弹性灾难恢复的 AWS Replication Agent。
-
运行以下命令删除 aws-replication 用户和 aws-replication 组:
sudo userdel aws-replication sudo groupdel aws-replication -
为 Application Migration Service 或弹性灾难恢复重新安装 AWS Replication Agent。
有关 Application Migration Service 的安装先决条件,请参阅安装要求。有关弹性灾难恢复,请参阅 AWS Replication Agent 的安装要求。
"Exception in thread "main" com.amazonaws.services.drs.model.InternalServerException" 错误
如果您停用 AWS Security Token Service (AWS STS) 端点,则会收到以下错误消息:
"Exception in thread "main" com.amazonaws.services.drs.model.InternalServerException: An unexpected error has occurred (Service: Drs; Status Code: 500; Error Code: InternalServerException; Request ID: 4f4a76cb-aaec-44cc-a07a-c3579454ca55; Proxy: null"
发生此错误是因为 Application Migration Service 和弹性灾难恢复通过调用 AWS STS 来代入客户端账户中的角色。要解决此问题,请在客户端中激活 STS 端点。
"could not insert module ./aws-replication-driver.ko:" 错误
如果您在源服务器上激活了 SecureBoot,则会收到以下错误消息之一:
"insmod: ERROR: could not insert module ./aws-replication-driver.ko: Required key not available"
-or-
"insmod: ERROR: could not insert module ./aws-replication-driver.ko: Key was rejected by service"
您不能在启用了 Application Migration Service 或弹性灾难恢复的 Linux 操作系统中使用 SecureBoot。
要解决此问题,请为 Linux 操作系统停用 SecureBoot。
**注意:**通常情况下,您可以使用虚拟机监控程序来停用 SecureBoot。
要检查 SecureBoot 状态,请运行以下命令:
sudo mokutil --sb-state
"could not insert module ./aws-replication-driver.ko: Cannot allocate memory" 错误
如果您的 Linux 操作系统没有足够的内存来安装代理,则会收到以下错误消息:
"insmod: ERROR: could not insert module ./aws-replication-driver.ko: Cannot allocate memory"
要解决此问题,请确保在运行安装程序时操作系统至少有 300MB 的可用内存。此问题可能是由于内存碎片导致的。要解决内存碎片问题,请重启源服务器。此外,还要检查安全或防病毒软件(例如 Falcon、Trend Micro、SentinelOne 或 McAfee)是否会引发内存或内核保护,进而阻止代理安装。
"Unexpected error while making agent driver! ", "Kernel development package ...missing from repositories", or "Kernel development or header package...did not install" 错误
安装代理时,安装程序会下载与当前运行的内核包匹配的 kernel-devel 包。您可以在 Linux 操作系统中配置的包存储库中查找当前包。如果代理安装程序无法在 Linux 操作系统的运行内核中安装 kernel-devel 包,则您会收到以下错误消息之一:
"Unexpected error while making agent driver! Are kernel linux headers installed correctly?"
-or-
"Kernel development package for '************' are missing from repositories"
-or-
"Kernel development or header package for ************ did not install"
要解决此问题,请查看安装日志以检查是否存在存储库访问问题。
然后,根据您的发行版搜索并手动下载 kernel-devel 包:
- 对于 Red Hat Enterprise Linux (RHEL)、CentOS、Oracle 和 SUSE 包目录,请参阅 RPM 网站上的搜索。
- 对于 Debian,请参阅 Debian 网站上的软件包。
- 对于 Ubuntu,请参阅 Ubuntu 软件包网站上的 Ubuntu 软件包搜索。
下载包后,再次运行安装。AWS Replication Agent 还会安装安装所需的依赖项,例如 make gcc perl tar gawk rpm。有关详细信息,请参阅 Linux 安装要求。
相关信息
故障排除 (Application Migration Service)
