Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

对半虚拟化驱动程序进行故障排除

本主题介绍了您在 Amazon EC2 半虚拟化驱动程序方面可能遇到的常见问题的解决方案。

Windows Server 2012 R2 在实例重启后丢失网络和存储连接

在 2014 年 9 月 10 日之前提供的 Windows Server 2012 R2 Amazon 系统映像 (AMI) 可能在实例重启后丢失网络和存储连接。AWS 管理控制台系统日志中的错误指明:“Difficulty detecting PV driver details for Console Output”。连接丢失由 Windows Server 2012 R2 即插即用清理功能导致。此功能每 30 天扫描一次不活动的系统设备并禁用它们。此功能错误地将 EC2 网络设备识别为不活动状态并将其从系统中删除。出现这种情况时,实例在重启后会丢失网络连接。

对于您怀疑可能受此问题影响的系统,您可以下载并运行就地驱动程序升级。如果您无法执行就地驱动程序升级,则可以运行帮助程序脚本。该脚本将确定您的实例是否受影响。如果实例受影响,并且 Amazon EC2 网络设备尚未移除,该脚本将禁用即插即用清理扫描。如果 Amazon EC2 网络设备已移除,该脚本将修复设备,禁用即插即用清理扫描,并允许您的实例重新启动并启用网络连接。

本节内容

选择您想要的修复此问题的方式

有两种方法可以恢复与受此问题影响的实例的网络和存储连接。选择以下方法之一:

方法 先决条件 过程概述
方法 1 - 增强联网 增强联网仅在需要 C3 实例类型的 Virtual Private Cloud (VPC) 中可用。如果服务器当前不使用 C3 实例类型,则必须临时更改它。增强联网不可用于 ec2-classic。 您应将服务器实例类型更改为 C3 实例。增强联网随后可让您连接到受影响的实例并修复问题。修复问题后,您将实例更改回原始的实例类型。此方法通常比方法 2 更快,导致用户错误的可能性也小。只要 C3 实例运行,您就会产生额外费用。
方法 2 - 注册表配置 能够创建或访问辅助服务器。能够更改注册表设置。 您将根卷从受影响的实例分离,将其挂载到其他实例,连接该实例,然后在注册表中进行更改。只要额外的服务器运行,您就会产生额外费用。此方法比方法 1 慢一些,但此方法在方法 1 无法解决问题的情况下有效。

方法 1 - 增强联网

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 找到受影响的实例。打开实例的上下文 (右键单击) 菜单,选择 Instance State,然后选择 Stop

    警告

    当您停止某个实例时,任何实例存储卷上的数据都将被擦除。因此,如果实例存储卷上有任何您要保留的数据,请确保将其备份到持久性存储。

  4. 在实例停止后创建备份。打开实例的上下文 (右键单击) 菜单,选择 Image,然后选择 Create Image

  5. 将实例类型更改为任何 C3 实例类型。

  6. 启动实例。

  7. 使用远程桌面连接到实例,然后将 AWS 半虚拟化驱动程序升级包下载到实例。

  8. 提取文件夹的内容,然后运行 AWSPVDriverSetup.msi

    在运行 MSI 后,实例将自动重启,然后升级驱动程序。实例将有长达 15 分钟的时间不可用。

  9. 在升级已完成并且实例在 Amazon EC2 控制台中通过了两项健康检查后,请使用远程桌面连接到实例并验证新驱动程序是否已安装。在设备管理器中的存储控制器下,找到 AWS PV 存储主适配器。确认驱动程序版本与驱动程序版本历史记录表中列出的最新版本相同。有关更多信息,请参阅 AWS 半虚拟化驱动程序版本历史记录

  10. 停止实例并将实例更改回原始的实例类型。

  11. 启动实例并恢复正常使用。

方法 2 - 注册表配置

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 找到受影响的实例。打开实例的上下文 (右键单击) 菜单,选择 Instance State,然后选择 Stop

    警告

    当您停止某个实例时,任何实例存储卷上的数据都将被擦除。因此,如果实例存储卷上有任何您要保留的数据,请确保将其备份到持久性存储。

  4. 选择 Launch Instance 并在与受影响实例相同的可用区中创建临时的 Windows Server 2008 或 Windows Server 2012 实例。不要创建 Windows Server 2012 R2 实例。

    重要

    如果您未在与受影响实例相同的可用区中创建该实例,则无法将受影响的实例的根卷挂载到新实例。

  5. 在导航窗格中,选择 Volumes

  6. 找到受影响的实例的根卷。分离该卷并将其挂载到早先创建的临时实例。使用默认设备名称 (xvdf) 挂载该卷。

  7. 使用远程桌面连接临时实例,然后通过磁盘管理实用工具使该卷可供使用

  8. 在临时实例上,打开运行对话框,键入 regedit,然后按 Enter。

  9. 在注册表编辑器导航窗格中,选择 HKEY_Local_Machine,然后从文件菜单中选择加载配置单元

  10. 加载配置单元对话框中,导航到受影响的卷\Windows\System32\config\System 并在项名称对话框中键入临时名称。例如,输入 OldSys。

  11. 在注册表编辑器的导航窗格中,找到以下项:

    HKEY_LOCAL_MACHINE\临时项名称\ControlSet001\Control\Class\4d36e97d-e325-11ce-bfc1-08002be10318

    HKEY_LOCAL_MACHINE\临时项名称\ControlSet001\Control\Class\4d36e96a-e325-11ce-bfc1-08002be10318

  12. 对于每个项,双击 UpperFilters,输入值 XENFILT,然后单击确定

     受影响的卷的注册表项。
  13. 找到以下项:

    HKEY_LOCAL_MACHINE\临时项名称\ControlSet001\Services\XENBUS\Parameters

  14. 使用名称 ActiveDevice 和以下值创建新字符串 (REG_SZ):

    PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01

  15. 找到以下项:

    HKEY_LOCAL_MACHINE\临时项名称\ControlSet001\Services\XENBUS

  16. Count 从 0 更改为 1。

  17. 找到并删除以下项:

    HKEY_LOCAL_MACHINE\临时项名称\ControlSet001\Services\xenvbd\StartOverride

    HKEY_LOCAL_MACHINE \临时项名称\ControlSet001\Services\xenfilt\StartOverride

  18. 在注册表编辑器导航窗格中,选择您在首次打开注册表编辑器时创建的临时项。

  19. 文件菜单中,选择卸载配置单元

  20. 在磁盘管理实用工具中,选择您之前挂载的驱动器,打开上下文 (右键单击) 菜单,然后选择脱机

  21. 在 Amazon EC2 控制台中,将受影响的实例从临时实例分离,然后将其重新挂载到您的具有设备名称 /dev/sda1 的 Windows Server 2012 R2 实例。您必须指定此设备名称才能将卷指派为根卷。

  22. 启动实例。

  23. 使用远程桌面连接到实例,然后将 AWS 半虚拟化驱动程序升级包下载到实例。

  24. 提取文件夹的内容,然后运行 AWSPVDriverSetup.msi

    在运行 MSI 后,实例将自动重启,然后升级驱动程序。实例将有长达 15 分钟的时间不可用。

  25. 在升级已完成并且实例在 Amazon EC2 控制台中通过了两项健康检查后,请使用远程桌面连接到实例并验证新驱动程序是否已安装。在设备管理器中的存储控制器下,找到 AWS PV 存储主适配器。确认驱动程序版本与驱动程序版本历史记录表中列出的最新版本相同。有关更多信息,请参阅 AWS 半虚拟化驱动程序版本历史记录

  26. 删除或停止您在本过程中创建的临时实例。

运行修正脚本

如果您无法执行就地驱动程序升级或无法迁移到较新的实例,则可以运行修正脚本来修复即插即用清理任务导致的问题。

运行修正脚本

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances

  3. 选择要为其运行修正脚本的实例。打开实例的上下文 (右键单击) 菜单,选择 Instance State,然后选择 Stop

    警告

    当您停止某个实例时,任何实例存储卷上的数据都将被擦除。因此,如果实例存储卷上有任何您要保留的数据,请确保将其备份到持久性存储。

  4. 在实例停止后创建备份。打开实例的上下文 (右键单击) 菜单,选择 Image,然后选择 Create Image

  5. 打开实例的上下文 (右键单击) 菜单,选择 Instance State,然后选择 Start

  6. 使用远程桌面连接到实例,然后将 RemediateDriverIssue.zip 文件夹下载到实例。

  7. 提取文件夹的内容。

  8. 根据 Readme.txt 文件中的指示运行修正脚本。该文件位于您提取 RemediateDriverIssue.zip 的文件夹中。

TCP 卸载

默认情况下,会为 Windows AMI 中的 Citrix 半虚拟化驱动程序启用 TCP 卸载。如果您遇到传输级错误或数据包传输错误 (在 Windows 性能监视器上可见,例如在运行特定 SQL 工作负载时),可能需要禁用此功能。

重要

禁用 TCP 卸载可能会降低实例的网络性能。

您不需要在运行 AWS 半虚拟化或 Intel 网络驱动程序的实例上执行此过程。

为 Windows Server 2012 和 2008 禁用 TCP 卸载

  1. 连接到您的实例并以本地管理员身份登录。

  2. 如果您使用 Windows Server 2012,请按 Ctrl+Esc 访问 Start (开始) 屏幕,然后单击 Control Panel (控制面板)。如果您使用 Windows Server 2008,请单击 Start (开始) 并选择 Control Panel (控制面板)

  3. 单击 Network and Internet (网络和 Internet),然后单击 Network and Sharing Center (网络和共享中心)

  4. 单击 Change adapter settings (更改适配器设置)

  5. 右键单击 Citrix PV Ethernet Adapter #0 (Citrix 半虚拟化以太网适配器 #0),然后选择 Properties (属性)

     本地连接属性
  6. Local Area Connection Properties (本地连接属性)对话框中,单击 Configure (配置) 打开 Citrix PV Ethernet Adapter #0 Properties (Citrix 半虚拟化以太网适配器 #0 属性) 对话框。

  7. Advanced (高级) 选项卡上,通过在 Property (属性) 列表中选择属性并从 Value (值) 列表中选择 Disabled (禁用),来禁用以下每个属性:

    • IPv4 Checksum Offload (IPv4 校验和卸载)

    • Large Receive Offload (IPv4) (大量接收卸载(IPv4))

    • Large Send Offload Version 2 (IPv4) (大量发送卸载版本 2 (IPv4))

    • TCP Checksum Offload (IPv4) (TCP 校验和卸载(IPv4))

    • UDP Checksum Offload (IPv4) (UDP 校验和卸载(IPv4))

     Citrix 半虚拟化以太网适配器属性
  8. 单击 OK (确定)

  9. 从命令提示符窗口运行以下命令。

    Copy
    netsh int ip set global taskoffload=disabled netsh int tcp set global chimney=disabled netsh int tcp set global rss=disabled netsh int tcp set global netdma=disabled
  10. 重启实例。

时间同步

在 2013.02.13 Windows AMI 版本前,Citrix Xen 代理客户无法正确设置系统时间。这可能导致您的 DHCP 租约过期。如果您在连接到您的实例时遇到问题,可能需要更新代理。

要确定您是否有更新的 Citrix Xen 客户代理,请检查 C:\Program Files\Citrix\XenGuestAgent.exe 文件的日期是否为 2013 年 3 月。如果此文件的日期早于这个时间,则请更新 Citrix Xen 代理客户服务。有关更多信息,请参阅 升级 Citrix Xen 来宾代理服务