跳至内容

如何排查在 Nitro 上构建的 Amazon EC2 Windows 实例上的实例状态检查失败问题?

2 分钟阅读
0

我想排查在 AWS Nitro 上构建的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例上的实例状态检查失败问题。

简短描述

如果 EC2 实例未通过状态检查,则该实例在网络上不可用。通常,不兼容或过时的驱动程序会导致在 Nitro 上构建的 Windows 实例的实例状态检查失败。

解决方法

**重要事项:**在停止和启动实例之前,请执行以下操作:

**注意:**当停止或启动某个实例时,该实例的公共 IP 地址将发生变化。最佳做法是使用弹性 IP 地址而不是公共 IP 地址将外部流量路由到您的实例。

要排查在 Nitro 上构建的 Windows 实例的实例状态检查失败问题,请完成以下步骤:

  1. 验证您的实例类型是否使用 Nitro 虚拟机监控程序。要确定底层虚拟机监控程序,请查看您的通用型计算优化型内存优化型存储优化型加速计算型高性能计算型上一代实例的实例系列摘要。
  2. 排查实例状态检查失败的其他原因
  3. 如果您的实例仍未通过状态检查,请检查是否存在不兼容或过时的驱动程序。要自动升级或修复实例的驱动程序,请运行 AWSSupport-UpgradeWindowsAWSDrivers 运行手册。
  4. 如果运行手册未能解决您的问题,请完成以下步骤以手动升级实例驱动程序。
  5. 停止您的 EC2 实例
    **注意:**您必须停止实例才能更改实例类型。
  6. 打开 Amazon EC2 控制台
  7. 选择 Instances(实例),然后选择已停止的实例。
  8. 选择 Actions(操作),然后选择 Instance settings(实例设置)。
  9. 选择 Change instance type(更改实例类型)。
  10. Change instance type(更改实例类型)对话框中,为 Instance type(实例类型)选择 t2.medium
    **注意:**此步骤会将您的实例类型从 Nitro 更改为 XEN。同时还会将底层驱动程序从 AWS NVMe 或弹性网络适配器 (ENA) 更改为半虚拟化 (PV) 驱动程序。然后,您可以确定底层驱动程序是否导致了启动问题。
  11. 启动实例
    **注意:**如果 t2 实例类型也未能通过其状态检查,请重复步骤 5-10,然后选择 m4.large 实例类型。如果 PV 驱动程序存在问题,则可能会导致 t2 实例类型出现启动问题。m4.large 实例类型不使用 PV 驱动程序。
  12. 使用远程桌面协议 (RDP) 连接到您的实例
  13. 要查看所有驱动程序版本,请在提升的 PowerShell 会话中运行以下命令之一:
Get-WmiObject Win32_PnPSignedDriver|?{$_.manufacturer -like "*Amazon*"}| select DeviceName, DriverVersion, Manufacturer

-or-

dism /online /Get-Drivers /Format:table | findstr "Amazon*"

在输出中,确认您已安装最新版本的 ENA Windows 驱动程序AWS NVMe Windows 驱动程序。 如果您的驱动程序已过时,请安装最新版本的 ENA 驱动程序AWS NVMe 驱动程序
**注意:**最佳做法是在服务器停机期间在生产服务器上手动安装 AWS 驱动程序,因为安装 AWS 驱动程序需要重启。您无法为 Nitro 实例使用 PV 驱动程序。 重复步骤 13 以验证您是否已成功安装驱动程序。 停止您的 EC2 实例。 打开 Amazon EC2 控制台。 选择 Instances(实例),然后选择已停止的实例。 选择 Actions(操作),然后选择 Instance settings(实例设置)。 选择 Change instance type(更改实例类型)。 在 Change instance type(更改实例类型)对话框中,对于 Instance type(实例类型),选择基于 Nitro 的原始实例类型。 选择 Apply(应用)。

相关信息

如何在 EC2 Windows 实例上升级或修复存储和网络 AWS 驱动程序?

将 EC2 Windows 实例迁移到基于 Nitro 的实例类型