我执行了 AWS Application Migration Service 割接或测试启动。现在,我在运行 Microsoft Windows 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例上遇到了状态检查失败问题。
简短描述
当系统或实例状态检查失败时,EC2 实例将变得无法访问。使用 Application Migration Service 进行割接或测试启动后,实例状态检查可能会因以下问题而失败:
- 未能启动操作系统 (OS)
- 网络故障
- CPU 和内存耗尽
- 转换过程中的问题
- 实例类型与操作系统不兼容
**注意:**由于 Windows 会进行调整以适应 AWS 虚拟硬件,因此 Windows 计算机的首次启动可能需要长达 45 分钟。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
验证源计算机是否与您在启动模板中选择的实例类型兼容
连接到您的源计算机,然后使用以下方法之一来验证您的操作系统版本:
选择 Control Panel(控制面板),然后选择 Systems Settings(系统设置)。检查 Windows Edition(Windows 版本)和 System Type(系统类型),以确认操作系统是 32 位还是 64 位。
或者,以管理员身份在命令提示符窗口中运行以下命令:
systeminfo
命令输出会列出 OS Name(操作系统名称)和 System Type(系统类型)。
如果您的源计算机是 32 位,则必须使用以下实例类型之一:
- t2.nano
- t2.micro
- t2.small
- t2.medium
- c3.large
- t1.micro
- m1.small
- m1.medium
- c1.medium
如果您的源计算机是 64 位且运行 Windows Server 2008 R2 或更高版本,则您可以使用任意实例类型。
如果您的源计算机是 64 位且运行以下 Windows 版本之一,请迁移到 XEN 实例类型:
- Windows Server 2003
- Windows Server 2003 R2
- Windows Server 2008
要获取 XEN 实例类型的完整列表,请运行以下 describe-instance-types AWS CLI 命令:
aws ec2 describe-instance-types --filters Name=hypervisor,Values=xen --query InstanceTypes[].InstanceType
停用或删除源计算机上的第三方防病毒软件
第三方防病毒软件或许会干扰转换过程。停用或删除防病毒软件,然后重新启动实例。
附加辅助弹性网络接口
第三方防火墙可能会阻止实例的主网络适配器上的连接。这会导致目标实例无法通过状态检查。为避免此问题,请向目标实例附加一个辅助网络接口,然后连接到该实例。
使用不同的实例类型
XEN 实例使用半虚拟化驱动程序 (PV),而 Nitro 实例使用弹性网络适配器 (ENA) 和 AWS NVMe 驱动程序。有关每种实例类型所使用的驱动程序的列表,请参阅更改实例类型的兼容性。
如果您的源计算机同时兼容 XEN 和 Nitro,请启动 XEN 实例和 Nitro 实例。如果目标实例作为一种实例类型能通过状态检查,但作为另一种实例类型不能,请调整该实例的大小。检查调整后的实例是否能通过状态检查。
如果问题与驱动程序有关,请运行 AWSSupport-UpgradeWindowsAWSDrivers 自动化运行手册,以强制安装驱动程序。
检查实例日志
**重要事项:**在停止和启动实例之前,请执行以下操作:
**注意:**当停止或启动某个实例时,该实例的公共 IP 地址将发生变化。最佳做法是使用弹性 IP 地址而不是公共 IP 地址将外部流量路由到您的实例。
如果您的新实例始终无法通过状态检查,请查看以下实例日志以确定原因:
- C:\Program Files (x86)\AWS Replication Agent\migrate_script.log
- C:\Program Files (x86)\AWS Replication Agent\migrate_script.log.sent
- C:\Program Files (x86)\AWS Replication Agent\aws_nvme\awsnvme_dism.log
- C:\Program Files (x86)\AWS Replication Agent\ena_2012R2_2016\ena_dism.log
- C:\Program Files (x86)\AWS Replication Agent\PVinstall.log
- C:\Windows\inf\setupapi.dev.log
- C:\Windows\inf\setupapi.offline.log
- C:\Program Files (x86)\AWS Replication Agent\SSMInstall.log
要访问日志,请完成以下步骤:
- 停止目标实例。
- 从已停止的实例中分离 EBS 根卷。
- 将 EBS 根卷附加到可以作为辅助驱动器访问的实例。
- 使 EBS 卷可供使用。
- 从上述位置收集日志,然后查看这些日志,以了解实例状态检查失败的可能原因。
**注意:**目标实例上可能不存在上述所有日志。使用此方法时,驱动器号映射可能与列出的日志位置不同,因为您使用的是辅助驱动器而非 C:\。
如果上述故障排除步骤未能解决问题,请创建支持案例。
相关信息
Microsoft 网站上的 systeminfo
排查 Amazon EC2 实例的问题