跳至内容

在 Application Migration Service 割接或测试启动后,如何解决 Amazon EC2 Windows 实例上的实例状态检查失败问题?

2 分钟阅读
0

我执行了 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

要访问日志,请完成以下步骤:

  1. 停止目标实例
  2. 从已停止的实例中分离 EBS 根卷
  3. 将 EBS 根卷附加到可以作为辅助驱动器访问的实例
  4. 使 EBS 卷可供使用
  5. 从上述位置收集日志,然后查看这些日志,以了解实例状态检查失败的可能原因。
    **注意:**目标实例上可能不存在上述所有日志。使用此方法时,驱动器号映射可能与列出的日志位置不同,因为您使用的是辅助驱动器而非 C:\

如果上述故障排除步骤未能解决问题,请创建支持案例

相关信息

Microsoft 网站上的 systeminfo

排查 Amazon EC2 实例的问题