

# 将 EC2 Windows 实例升级到更高版本的 Windows Server
<a name="serverupgrade"></a>

如果需要将 EC2 Windows 实例上的 Windows Server 操作系统从早期版本升级，则可以使用以下方法之一。

**就地升级**  
在现有实例上执行就地升级。在此过程中，只有操作系统文件会受到影响，设置、服务器角色和数据会保持不变。

**迁移（也称为并行升级）**  
迁移涉及捕获设置、配置和数据，并将这些内容移植到全新 EC2 Windows 实例上的新版操作系统。您可以通过在 AWS Marketplace 中订阅的公有或私有 Windows AMI 启动实例，也可以通过与您共享的 AMI 启动实例。您还可以使用 EC2 Image Builder 创建自定义 AMI。有关更多信息，请参阅《[Image Builder User Guide](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html)》。  
AWS 为 EC2 实例上运行的 Windows Server 版本提供一组公开可用的亚马逊机器映像（AMI）。这些 AMI 按月更新。有关最新 Windows AMI 的信息，请参阅《[AWSWindows AMI Reference](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/windows-amis.html)》。

传统上，Microsoft 会建议迁移到新版本的 Windows Server，而不是就地升级。虽然迁移所产生的升级错误或问题更少，但所需的时间可能多于就地升级所需的时间，因为需要预置新实例、规划和移植应用程序以及调整新实例上的配置设置。就地升级的速度更快，但软件不兼容可能会产生错误。

**Topics**
+ [在 EC2 Windows 实例上执行就地升级](os-inplaceupgrade.md)
+ [使用自动化运行手册升级 EC2 Windows 实例](automated-upgrades.md)
+ [将 EC2 Windows 实例迁移到基于 Nitro 的实例类型](migrating-latest-types.md)
+ [对 EC2 Windows 实例上的操作系统升级进行问题排查](os-upgrade-trbl.md)

# 在 EC2 Windows 实例上执行就地升级
<a name="os-inplaceupgrade"></a>

在执行就地升级之前，您必须确定此实例正在运行的网络驱动程序。半虚拟化网络驱动程序使您能够使用远程桌面访问实例。实例使用 AWS PV、Intel Network Adapter 或增强联网驱动程序。有关更多信息，请参阅 [Windows 实例的半虚拟化驱动程序](xen-drivers-overview.md)。

## 就地升级开始前的准备工作
<a name="os-upgrade-before"></a>

开始就地升级之前，请完成以下任务并注意以下重要详细信息。
+ 阅读 Microsoft 文档了解更新要求、已知问题和限制。还应参阅有关升级的正式说明。
  + [Windows Server 2012 的升级选项](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/jj574204(v=ws.11))
  + [Windows Server 2012 R2 的升级选项](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn303416(v=ws.11))
  + [Windows Server 2016 及更高版本的升级和转换选项](https://learn.microsoft.com/en-us/windows-server/get-started/install-upgrade-migrate)
  + [Windows Server 升级](https://learn.microsoft.com/en-us/windows-server/get-started/upgrade-overview)
+ 我们建议在具有至少 2 个 vCPU 和 4GB RAM 的实例上执行操作系统升级。如果需要，您可以将实例更改为相同类型的更大尺寸（例如，将 t2.small 更改为 t2.large），执行升级，然后将其调整为原始大小。如果您需要保留实例大小，则可以使用[实例控制台屏幕截图](troubleshoot-unreachable-instance.md#instance-console-screenshot)监控进度。有关更多信息，请参阅[Amazon EC2 实例类型更改](ec2-instance-resize.md)。
+ 确认 Windows 实例上的根卷有足够的可用磁盘空间。Windows 安装过程可能不会发出磁盘空间不足的警告。有关升级特定操作系统所需的磁盘空间的信息，请参阅 Microsoft 文档。如果卷没有足够空间，可将其扩展。有关更多信息，请参阅《Amazon EBS 用户指南》**中的 [Amazon EBS 弹性卷](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modify-volume.html)。
+ 确定升级方法。您必须将操作系统升级到相同架构。例如，必须将 32 位系统升级到 32 位系统。Windows Server 2008 R2 及更高版本是纯粹的 64 位系统。
+ 禁用反病毒和反间谍软件和防火墙。这些类型的软件可与升级程序发生冲突。在完成升级后，请重新启用反病毒和反间谍软件以及防火墙。
+ 更新到最新驱动程序，如[将 EC2 Windows 实例迁移到基于 Nitro 的实例类型](migrating-latest-types.md)中所述。
+ 升级帮助程序服务仅支持运行 Citrix PV 驱动程序的实例。如果实例运行的是 Red Hat 驱动程序，您必须先手动[升级这些驱动程序](Upgrading_PV_drivers.md)。

## 使用 AWS PV、Intel Network Adapter 或增强联网驱动程序就地升级实例
<a name="os-upgrade-pv"></a>

通过以下步骤，使用 AWS PV 、Intel Network Adapter 或增强联网驱动程序升级 Windows Server 实例。

**执行就地升级**

1. 出于备份或测试目的，创建计划升级的系统的 AMI。然后，您可以对副本执行升级以模拟测试环境。如果升级完成，就可以在停机时间很短的情况下将流量切换到此实例。如果升级失败，则可以转至备份。有关更多信息，请参阅 [创建 Amazon EBS-backed AMI](creating-an-ami-ebs.md)。

1. 确保您的 Windows Server 实例使用最新网络驱动程序。

   1. 要更新您的 AWS PV 驱动程序，请参阅 [在 EC2 Windows 实例上升级半虚拟化驱动程序](Upgrading_PV_drivers.md)。

   1. 要更新您的 ENA 驱动程序，请参阅 [在 EC2 Windows 实例上安装 ENA 驱动程序](ena-adapter-driver-install-upgrade-win.md)。

   1. 要更新您的 Intel 驱动程序，请参阅 [通过 Intel 82599 VF 接口实现增强联网](sriov-networking.md)

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**实例**。找到该实例。记下该实例的实例 ID 和可用区。您在此过程的稍后部分需要此信息。

1. 如果您要从 Windows Server 2012 或 2012 R2 升级到 Windows Server 2016 或更高版本，请在继续操作之前在您的实例上执行以下操作。

   1. 卸载 EC2Config 服务。有关更多信息，请参阅 [EC2Launch v2 和 EC2Config 代理的 Windows 服务管理](launch-agents-service-admin.md)。

   1. 安装 EC2Launch v1 或 EC2Launch v2 代理。有关更多信息，请参阅 [使用 EC2Launch v1 代理在 EC2 Windows 实例启动期间执行任务](ec2launch.md) 和 [使用 EC2Launch v2 代理在 EC2 Windows 实例启动期间执行任务](ec2launch-v2.md)。

   1. 安装 AWS Systems Manager SSM Agent 有关更多信息，请参阅《AWS Systems Manager 用户指南》中的[在适用于 Windows Server 的 Amazon EC2 实例上手动安装 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)**。

1. 从 Windows Server 安装介质快照创建新卷。

   1. 在左导航窗格中的 **Elastic Block Store (弹性数据块存储)** 下，选择 **Snapshots (快照)**。

   1. 从筛选条件栏中，选择**公有快照**。

   1. 在搜索栏中，指定以下筛选条件：
      + 依次选择**拥有者别名**、**=** 和 **amazon**。
      + 选择**描述**，然后开始键入 **Windows**。选择符合您要升级到的系统架构和语言首选项的 Windows 筛选条件。例如，选择 **Windows 2019 English Installation Media** 以升级到 Windows Server 2019。

   1. 选中符合要升级到的系统架构和语言首选项的快照旁的复选框，然后选择**操作**、**从快照创建卷**。

   1. 在**创建卷**页面中，选择与您的 Windows 实例匹配的可用区，然后选择**创建卷**。

1. 在页面顶部的**已成功创建卷 vol-*1234567890example*** 横幅中，选择刚刚创建的卷的 ID。

1. 选择 **Actions**（操作）、**Attach Volume**（附加卷）。

1. 在**挂载卷**页面上，对于**实例**，选择您的 Windows 实例的实例 ID，然后选择**挂载卷**。

1. 按照[使 Amazon EBS 卷可供使用](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html)中的步骤使新卷可供使用。
**重要**  
请勿对磁盘进行初始化，因为这样做将会删除现有的数据。

1. 在 Windows PowerShell 中，切换到新的卷驱动器。通过打开已附加到实例的安装介质卷，开始升级。

   1. 如果您升级到 Windows Server 2016 或更高版本，请执行以下操作：

      ```
      .\setup.exe /auto upgrade /dynamicupdate disable
      ```
**注意**  
运行 setup.exe 并将 `/dynamicupdate` 选项设置为禁用，将会阻止 Windows 在 Windows Server 升级过程中安装更新，因为在升级过程中安装更新可能会导致失败。升级完成后，您可以使用 Windows 更新安装更新。

      如果您升级到较早的 Windows Server 版本，请运行以下操作：

      ```
      Sources\setup.exe
      ```

   1. 对于**选择要安装的操作系统**，选择您的 Windows Server 实例的完整安装选项，然后选择**下一步**。

   1. 对于 **Which type of installation do you want? (您需要什么类型的安装?)**，选择 **Upgrade (升级)**。

   1. 完成向导。

Windows Server 安装程序将复制并处理文件。几分钟后，远程桌面会话关闭。升级所用的时间取决于在 Windows Server 实例上运行的应用程序和服务器角色的数量。升级过程少则 40 分钟，多则数小时。在升级过程中，实例可能无法通过一项或两项状态检查。升级完成后，可以通过所有状态检查。您可以检查系统日志中的控制台输出，或使用磁盘和 CPU 活动的 Amazon CloudWatch 指标以确定升级是否正在进行。

**注意**  
如果升级到 Windows Server 2019，在升级完成后，如果需要，您可以手动更改桌面背景以删除以前的操作系统名称。

如果实例在数小时后还未通过所有状态检查，请参阅[对 EC2 Windows 实例上的操作系统升级进行问题排查](os-upgrade-trbl.md)。

## 升级后的任务
<a name="os-post"></a>

1. 登录实例以启动 .NET Framework 的升级并在提示时重启系统。

1. 如果您尚未在之前的步骤中执行此操作，请安装 EC2Launch v1 或 EC2Launch v2 代理。有关更多信息，请参阅[使用 EC2Launch v1 代理在 EC2 Windows 实例启动期间执行任务](ec2launch.md)和[使用 EC2Launch v2 代理在 EC2 Windows 实例启动期间执行任务](ec2launch-v2.md)。

1. 如果您已升级到 Windows Server 2012 R2，我们建议您将 PV 驱动程序升级到 AWS PV 驱动程序。如果您在基于 Nitro 的实例上进行升级，我们建议您安装或升级 NVME 和 ENA 驱动程序。有关更多信息，请参阅 [AWS NVMe 驱动程序](aws-nvme-drivers.md) 或 [在 Windows 上启用增强联网](enabling_enhanced_networking.md#enable-enhanced-networking-ena-windows)。

1. 重新启用反病毒和反间谍软件以及防火墙。

# 使用自动化运行手册升级 EC2 Windows 实例
<a name="automated-upgrades"></a>

您可以使用 AWS Systems Manager Automation 运行手册在 AWS 上执行 Windows 和 SQL Server 实例的自动升级。

**Topics**
+ [相关服务](#automated-related)
+ [执行选项](#automated-execution-option)
+ [升级 Windows Server](#automated-upgrades-windows)
+ [升级 SQL Server](#automated-upgrades-sql)

## 相关服务
<a name="automated-related"></a>

将在自动升级过程中使用以下 AWS 服务：
+ **AWS Systems Manager**。AWS Systems Manager 是一个功能强大的统一界面，可以集中管理您的 AWS 资源。有关更多信息，请参阅 *[AWS Systems Manager 用户指南](https://docs.aws.amazon.com/systems-manager/latest/userguide/)*。
+ AWS Systems Manager 代理（SSM Agent）是一个 Amazon 软件，可以在 Amazon EC2 实例、本地服务器或虚拟机 (VM) 上安装和配置。SSM Agent 让 Systems Manager 可以更新、管理和配置这些资源。代理在AWS云中处理 Systems Manager 服务的请求，然后按照请求中的指定运行它们。有关更多信息，请参阅 *AWS Systems Manager 用户指南*中的[使用 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)。
+ **AWS Systems Manager SSM 运行手册**。SSM 运行手册定义 Systems Manager 对您的托管实例执行的操作。SSM 运行手册使用 JavaScript Object Notation (JSON) 或 YAML，并包括您指定的步骤和参数。本主题使用两个 Systems Manager SSM 自动化运行手册。有关更多信息，请参阅 *AWS Systems Manager 用户指南*中的 [AWS Systems Manager Automation 运行手册参考](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html)。

## 执行选项
<a name="automated-execution-option"></a>

在 Systems Manager 控制台上选择**自动化**时，请选择**执行**。在选择 Automation 文档后，将提示您选择自动化执行选项。您可以从以下选项中进行选择。在本主题后面提供的途径步骤中，我们使用**简单执行**选项。

**简单执行**  
如果要更新单个实例，但不希望执行每个自动化步骤以审核结果，请选择该选项。在下面的升级步骤中更详细地介绍了该选项。

**速率控制**

如果要将升级应用于多个实例，请选择该选项。您可以定义以下设置。
+ **参数**

  该设置（也会在“多账户和区域”设置中设置）定义了如何完成自动化。
+ **目标**

  选择要将自动化应用到的目标。也会在“多账户和区域”设置中设置该设置。
+ **参数值**

  使用自动化文档参数中定义的值。
+ **资源组**

  在AWS中，资源是您可以使用的实体。示例包括 Amazon EC2 实例、AWS CloudFormation 堆栈或 Amazon S3 存储桶。如果您使用多个资源，这样做可能会很有帮助：将它们作为一个组进行管理，而不是在每个任务中将资源从一个AWS服务移动到另一个服务。在某些情况下，您可能希望管理大量相关的资源，例如，构成应用程序层的 EC2 实例。在这种情况下，您可能需要同时对这些资源执行批量操作。
+ **标签**

  标签帮助您按不同的方式对 AWS 资源进行分类，例如，按用途、所有者或环境进行分类。如果您具有很多相同类型的资源，这种分类是非常有用的。您可以使用分配的标签快速识别特定的资源。
+ **速率控制**

  也会在“多账户和区域”设置中设置速率控制。在设置速率控制参数时，您可以按目标数或队列百分比定义要将自动化应用到的队列数量。

 **多账户和区域**

除了在“速率控制”中指定的参数（也会在“多账户和区域”设置中使用）以外，还具有两个其他设置：
+ **账户和组织单位 (OU)**

  指定要在其中运行自动化的多个账户。
+ **AWS 区域**

  指定要在其中运行自动化的多个 AWS 区域。

**手动执行**  
该选项类似于**简单执行**，但允许您逐个执行每个自动化步骤并审核结果。

## 升级 Windows Server
<a name="automated-upgrades-windows"></a>

`[AWSEC2-CloneInstanceAndUpgradeWindows](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeWindows.html)` 运行手册从您的账户中的 Windows Server 实例中创建亚马逊机器映像（AMI），并将该 AMI 升级到所选的支持版本。该多步骤过程最多可能需要两小时才能完成。

在自动升级过程中包含两个 AMI：
+ **当前运行的实例**。第一个 AMI 是当前运行的实例，不会升级该实例。该 AMI 用于启动另一个实例以运行就地升级。在该过程完成后，将从您的账户中删除该 AMI，除非您明确要求保留原始实例。该设置是由 `KeepPreUpgradeImageBackUp` 参数处理的（默认值为 `false`，这表示默认删除该 AMI）。
+ **升级的 AMI**。该 AMI 是自动化过程的结果。

最终结果是一个 AMI，它是升级的 AMI 实例。

在升级完成后，您可以在 Amazon VPC 中启动新的 AMI 以测试应用程序功能。在测试后，在执行另一个升级之前，请计划应用程序停机，然后再完全切换到升级的实例。

### 先决条件
<a name="automated-prereq-windows"></a>

要使用 AWS Systems Manager Automation 文档自动进行 Windows Server 升级，您必须执行以下任务：
+ 使用指定的 IAM policy 创建 IAM 角色，以允许 Systems Manager 在 Amazon EC2 实例上执行自动化任务，并验证您是否满足使用 Systems Manager 的先决条件。有关更多信息，请参阅 *AWS Identity and Access Management 用户指南*中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ [选择您希望如何运行自动化的选项](#automated-execution-option)。执行选项包括**简单执行**、**速率控制**、**多账户和区域**以及**手动执行**。有关这些选项的详细信息，请参阅[执行选项](#automated-execution-option)。
+ 验证实例上是否安装了 SSM Agent。有关更多信息，请参阅[在 Amazon EC2 实例中为 Windows Server 安装和配置 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-windows.html)。
+ 必须在您的实例上安装 Windows PowerShell 3.0 或更高版本。
+ 对于加入到某个 Microsoft Active Directory 域的实例，建议指定一个没有连接到您的域控制器的 `SubnetId`，以帮助避免主机名冲突。
+ 实例子网必须具有通向互联网的出站连接，这样可以访问 Amazon S3 等 AWS 服务 以及从 Microsoft 下载补丁。如果子网是公有子网且实例具有公有 IP 地址，或者子网是私有子网并使用路由将互联网流量发送到公有 NAT 设备，即满足此要求。
+ 此自动化适用于运行 Windows Server 2008 R2、Windows Server 2012 R2、Windows Server 2016 和 Windows Server 2019 的实例。
+ 验证实例的启动盘具有 20 GB 的可用磁盘空间。
+ 如果实例未使用 AWS 提供的 Windows 许可证，请指定包含 Windows Server 2012 R2 安装介质的 Amazon EBS 快照 ID。要实现此目的，应按照以下步骤进行：

  1. 验证 Amazon EC2 实例运行的是否是 Windows Server 2012 或更高版本。

  1. 在运行实例的同一可用区中创建一个 6GB 的 Amazon EBS 卷。将卷附加到实例。例如，将其附加为驱动器 D。

  1. 例如，右键单击 ISO 并将其挂载为实例的驱动器 E。

  1. 将 ISO 的内容从驱动器 E:\$1 复制到驱动器 D:\$1

  1. 为上面步骤 2 中创建的 6GB 卷创建 Amazon EBS 快照。

### Windows Server 升级限制
<a name="automated-windows-limits"></a>

此自动化程序不支持升级 Windows 域控制器、集群或 Windows 桌面操作系统。此外，该自动化程序不支持安装了以下角色的 Windows Server 的 Amazon EC2 实例：
+ 远程桌面会话主机 (RDSH)
+ 远程桌面连接代理 (RDCB) 
+ 远程桌面虚拟化主机 (RDVH) 
+ 远程桌面 Web 访问 (RDWA)

### 执行 Windows Server 自动升级的步骤
<a name="2008R2-2012R2"></a>

请按照以下步骤使用 [Amazon Web Services EC2-CloneInstanceAndUpgradeWindows](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeWindows.html) 自动化运行手册升级您的 Windows Server 实例。

1. 从**AWS管理控制台**打开 Systems Manager。

1. 从左侧导航窗格中，在 **Change Management**（变更管理）下，选择 **Automation**。

1. 选择**执行自动化**。

1. 搜索名为 `AWSEC2-CloneInstanceAndUpgradeWindows` 的自动化文档。

1. 在显示该文档名称时，选择该文档。在选择该文档时，将显示文档详细信息。

1. 选择 **Execute automation**（执行自动化）以输入此文档的参数。在页面顶部选择**简单执行**。

1. 根据以下准则输入请求的参数。
   + `InstanceID`

     **类型：**字符串

     （必需）运行 Windows Server 2008 R2、2012 R2、2016 或 2019 且安装有 SSM Agent 的实例。
   + `InstanceProfile`. 

     **类型：**字符串

     （必需）IAM 实例配置文件。这是用于针对 Amazon EC2 实例和 AWS AMI 执行 Systems Manager 自动化的 IAM 角色。有关更多信息，请参阅《AWS Systems Manager 用户指南》**中的[配置 EC2 实例权限](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-permissions.html#instance-profile-add-permissions)。
   + `TargetWindowsVersion`

     **类型：**字符串

     （必需）选择目标 Windows 版本。
   + `SubnetId`

     **类型：**字符串

     （必需）这是执行升级过程的子网以及源 EC2 实例所在的位置。验证子网是否具有到 AWS 服务（包括 Amazon S3）和 Microsoft 的出站连接（以下载补丁）。
   + `KeepPreUpgradedBackUp`

     **类型：**字符串

     （可选）如果该参数设置为 `true`，自动化将保留从实例中创建的映像。默认设置为 `false`。
   + `RebootInstanceBeforeTakingImage`

     **类型：**字符串

     （可选）默认值为 `false`（无重新引导）。如果该参数设置为 `true`，Systems Manager 将在创建升级 AMI 之前重新引导实例。

1. 在输入这些参数后，选择**执行**。在自动化开始时，您可以监控执行进度。

1. 在自动化完成时，您将看到 AMI ID。您可以启动 AMI 以验证是否升级了 Windows 操作系统。
**注意**  
自动化不需要运行所有步骤。根据自动化和实例行为，可以有条件地执行这些步骤。Systems Manager 可能会跳过一些不需要的步骤。  
此外，一些步骤可能会超时。Systems Manager 尝试升级并安装所有最新的补丁。不过，根据给定步骤的可定义超时设置，补丁有时会超时。在发生这种情况时，Systems Manager Automation 继续执行下一步，以确保将内部操作系统升级到目标 Windows Server 版本。

1. 在自动化完成后，您可以使用 AMI ID 启动 Amazon EC2 实例以检查升级。有关如何从 AWS AMI 中创建 Amazon EC2 实例的更多信息，请参阅[如何从自定义 AMI 启动 EC2 实例？](https://repost.aws/knowledge-center/launch-instance-custom-ami)

## 升级 SQL Server
<a name="automated-upgrades-sql"></a>

[AWSEC2-CloneInstanceAndUpgradeSQLServer](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeSQLServer.html) 脚本从您账户中运行 SQL Server 的 Amazon EC2 实例中创建一个 AMI，然后将该 AMI 升级到较新版本的 SQL Server。该多步骤过程最多可能需要两小时才能完成。

在该工作流程中，自动化从实例中创建一个 AMI，然后在您提供的子网中启动新的 AMI。接下来，自动化执行 SQL Server 的就地升级。在升级完成后，自动化创建新的 AMI，然后再终止升级的实例。

在自动升级过程中包含两个 AMI：
+ **当前运行的实例**。第一个 AMI 是当前运行的实例，不会升级该实例。该 AMI 用于启动另一个实例以运行就地升级。在该过程完成后，将从您的账户中删除该 AMI，除非您明确要求保留原始实例。该设置是由 `KeepPreUpgradeImageBackUp` 参数处理的（默认值为 `false`，这表示默认删除该 AMI）。
+ **升级的 AMI**。该 AMI 是自动化过程的结果。

最终结果是一个 AMI，它是升级的 AMI 实例。

在升级完成后，您可以在 Amazon VPC 中启动新的 AMI 以测试应用程序功能。在测试后，在执行另一个升级之前，请计划应用程序停机，然后再完全切换到升级的实例。

### 先决条件
<a name="automated-prereq-sql"></a>

要使用 AWS Systems Manager Automation 文档自动进行 SQL Server 升级，您必须执行以下任务：
+ 使用指定的 IAM policy 创建 IAM 角色，以允许 Systems Manager 在 Amazon EC2 实例上执行自动化任务，并验证您是否满足使用 Systems Manager 的先决条件。有关更多信息，请参阅《AWS Identity and Access Management 用户指南》**中的[创建向 AWS 服务 委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ [选择您希望如何运行自动化的选项](#automated-execution-option)。执行选项包括**简单执行**、**速率控制**、**多账户和区域**以及**手动执行**。有关这些选项的详细信息，请参阅[执行选项](#automated-execution-option)。
+ Amazon EC2 实例必须使用 Windows Server 2008 R2 或更高版本和 SQL Server 2008 或更高版本。
+ 验证实例上是否安装了 SSM Agent。有关更多信息，请参阅[在适用于 Windows Server 的 Amazon EC2 实例上使用 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-windows.html)。
+ 确认实例有足够的可用磁盘空间：
  + 如果要从 Windows Server 2008 R2 升级到 2012 R2，或者从 Windows Server 2012 R2 升级到更高版本的操作系统，请确认实例启动磁盘中有 20GB 的可用磁盘空间。
  + 如果要从 Windows Server 2008 R2 升级到 2016 或更高版本，请确认实例启动磁盘中有 40GB 的可用磁盘空间。
+ 对于使用自带许可 (BYOL) SQL Server 版本的实例，以下额外的先决条件适用：
  + 提供包含目标 SQL Server 安装介质的 Amazon EBS 快照 ID。要实现此目的，应按照以下步骤进行：

    1. 验证 Amazon EC2 实例运行的是否是 Windows Server 2008 R2 或更高版本。

    1. 在运行实例的同一可用区中创建一个 6GB 的 Amazon EBS 卷。将卷附加到实例。例如，将其附加为驱动器 D。

    1. 例如，右键单击 ISO 并将其挂载为实例的驱动器 E。

    1. 将 ISO 的内容从驱动器 E:\$1 复制到驱动器 D:\$1 

    1. 为步骤 2 中创建的 6GB 卷创建 Amazon EBS 快照。

### SQL Server 自动升级限制
<a name="automated-sql-limits"></a>

使用 [Amazon Web Services EC2-CloneInstanceAndUpgradeSQLServer](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeSQLServer.html) 运行手册执行自动升级时适用以下限制：
+ 只能在使用 Windows 身份验证的 SQL Server 上执行升级。
+ 验证实例上没有待处理的安全补丁更新。打开**控制面板**，然后选择**检查更新**。
+ 不支持 HA 和镜像模式下的 SQL Server 部署。

### 执行 SQL Server 自动升级的步骤
<a name="SQL2008R2-SQL2016"></a>

请按照以下步骤使用 [Amazon Web Services EC2-CloneInstanceAndUpgradeSQLServer](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeSQLServer.html) 自动化运行手册升级您的 SQL Server。

1. 如果尚未挂载，请下载 SQL Server 2016 .iso 文件并将其挂载到源服务器中。

1. 在挂载该 .iso 文件后，复制所有组件文件，并将其放在所选的任何卷上。

1. 拍摄该卷的 Amazon EBS 快照，并将快照 ID 复制到剪贴板以供以后使用。有关更多信息，请参阅《Amazon EBS User Guide》****中的 [Create Amazon EBS snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-snapshot.html)。

1. 将实例配置文件附加到 Amazon EC2 源实例。这允许 Systems Manager 与 EC2 实例通信，并在将其添加到 AWS Systems Manager 服务后在其中运行命令。对于该示例，我们将角色命名为 `SSM-EC2-Profile-Role` 并将 `AmazonSSMManagedInstanceCore ` 策略附加到该角色。

1. 在 AWS Systems Manager 控制台的左侧导航窗格中，选择**托管实例**。验证您的 EC2 实例是否位于托管实例列表中。如果在几分钟后没有看到您的实例，请参阅 *AWS Systems Manager 用户指南*中的[我的实例在哪里？](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-remote-commands.html#where-are-instances)。

1. 在左侧导航窗格中，在 **Change Management**（变更管理）下，选择 **Automation**。

1. 选择**执行自动化**。

1. 搜索名为 `AWSEC2-CloneInstanceAndUpgradeSQLServer` 的自动化文档。

1. 选择 `AWSEC2-CloneInstanceAndUpgradeSQLServer` SSM 文档，然后选择 **Next**（下一步）。

1. 确保选择了**简单执行**选项。

1. 根据以下准则输入请求的参数。
   + `InstanceId` 

     **类型：**字符串

     （必需）运行 SQL Server 2008 R2（或更高版本）的实例。
   + `IamInstanceProfile`

     **类型：**字符串

     （必需）IAM 实例配置文件。
   + `SQLServerSnapshotId`

     **类型：**字符串

     （必需）目标 SQL Server 安装介质的快照 ID。对于包含 SQL Server 许可证的实例，此参数不是必需的。
   + `SubnetId`

     **类型：**字符串

     （必需）这是执行升级过程的子网以及源 EC2 实例所在的位置。验证子网是否具有到 AWS 服务（包括 Amazon S3）和 Microsoft 的出站连接（以下载补丁）。
   + `KeepPreUpgradedBackUp`

     **类型：**字符串

     （可选）如果该参数设置为 `true`，自动化将保留从实例中创建的映像。默认设置为 `false`。
   + `RebootInstanceBeforeTakingImage`

     **类型：**字符串

     （可选）默认值为 `false`（无重新引导）。如果该参数设置为 `true`，Systems Manager 将在创建升级 AMI 之前重新引导实例。
   + `TargetSQLVersion`

     **类型**：字符串

     （可选）目标 SQL Server 版本。默认为 `2016`。

1. 在输入这些参数后，选择**执行**。在自动化开始时，您可以监控执行进度。

1. 在 **Execution status**（执行状态）显示为 **Success**（成功）时，展开 **Outputs**（输出）以查看 AMI 信息。您可以使用 AMI ID 为所选的 VPC 启动 SQL Server 实例。

1. 打开 Amazon EC2 控制台。在左侧导航窗格中，选择 **AMI**。将会看到新的 AMI。

1. 要验证是否成功安装了新的 SQL Server 版本，请选择新的 AMI，然后选择 **Launch**（启动）。

1. 为该 AMI 选择所需的实例类型、要部署到的 VPC 和子网以及要使用的存储。由于您从 AMI 中启动新的实例，因此，将以选项形式向您提供这些卷以包含在启动的新 EC2 实例中。您可以删除其中的任何卷，也可以添加卷。

1. 添加标签以帮助您识别实例。

1. 将一个或多个安全组添加到实例中。

1. 选择 **Launch Instance**。

1. 选择实例的标签名称，然后在**操作**下拉列表中选择**连接**。

1. 验证 SQL Server 新版本是否为新实例上的数据库引擎。

# 将 EC2 Windows 实例迁移到基于 Nitro 的实例类型
<a name="migrating-latest-types"></a>

AWS Windows AMI 配置了 Microsoft 安装介质使用的默认设置，并进行一些自定义。自定义内容包括支持[基于 Nitro的实例](instance-types.md#instance-hypervisor-type)（例如 M5 和 C5）的驱动程序和配置。

在从基于 Xen 的实例迁移到基于 Nitro 的实例（包括裸机实例）时，对于下列情况，建议您按照本主题中的步骤操作：
+ 从自定义 Windows AMI 启动实例
+ 从 Amazon 提供的 Windows AMI（2018 年 8 月之前创建）启动实例

或者，您可以使用 `AWSSupport-UpgradeWindowsAWSDrivers` 自动化文档自动完成第 1 部分、第 2 部分和第 3 部分中所述的过程。如果您选择使用自动过程，请先阅读[（替代方法）使用 AWS 升级 AWS Systems Manager PV、ENA 和 NVMe 驱动程序](#auto-upgrade)，然后再继续执行第 4 部分和第 5 部分。

有关更多信息，请参阅 [Amazon EC2 更新 - 更多实例类型、Nitro 系统和 CPU 选项](https://aws.amazon.com/blogs/aws/amazon-ec2-update-additional-instance-types-nitro-system-and-cpu-options/)。

**注意**  
可以在 Windows Server 2016 及更高版本上执行以下迁移过程。已终止使用的早期操作系统版本未经测试，可能与最新的实例类型不兼容。  
要迁移 Linux 实例，请参阅 [Amazon EC2 实例类型更改](ec2-instance-resize.md)。

**Contents**
+ [第 1 部分：安装和升级 AWS PV 驱动程序](#upgrade-pv)
+ [第 2 部分：安装和升级 ENA](#upgrade-ena)
+ [第 3 部分：升级 AWS NVMe 驱动程序](#upgrade-nvme)
+ [第 4 部分：更新 EC2Config 和 EC2Launch](#upgdate-ec2config-ec2launch)
+ [第 5 部分：为裸机实例安装串行端口驱动程序](#install-serial-port-bare-metal)
+ [第 6 部分：更新电源管理设置](#power-management)
+ [第 7 部分：为新实例类型更新 Intel 芯片组驱动程序](#power-management-intel-drivers)
+ [（替代方法）使用 AWS 升级 AWS Systems Manager PV、ENA 和 NVMe 驱动程序](#auto-upgrade)

**开始之前** 

此过程假定您拥有[基于 Xen 的实例](instance-types.md#instance-hypervisor-type)（例如 M4 或 C4），并且要迁移到[基于 Nitro 的实例](instance-types.md#instance-hypervisor-type)。

您必须使用 PowerShell 3.0 或更高版本才能成功执行升级。

**注意**  
迁移时，现有网络接口卡上的静态 IP 或自定义 DNS 网络设置可能会丢失，因为实例会默认使用新的增强联网适配器设备。

在按照本过程中的步骤操作之前，建议您先创建实例的备份。从 [EC2 控制台](https://console.aws.amazon.com/ec2/)中，选择需要迁移的实例，打开上下文（右键单击）菜单，然后依次选择 **Instance State (实例状态)** 和 **Stop (停止)**。

**警告**  
当您停止某个实例时，任何实例存储卷上的数据都将被擦除。要保留实例存储卷上的数据，请确保将这些数据备份到持久性存储中。

在 [EC2 控制台](https://console.aws.amazon.com/ec2/)中打开实例的上下文（右键单击）菜单，选择 **Image (映像)**，然后选择 **Create Image (创建映像)**。

**注意**  
本说明的第 4 部分和第 5 部分可以在您迁移或更改实例类型后完成。但是，如果要迁移到裸机实例类型，则建议您在迁移前完成这些步骤。

## 第 1 部分：安装和升级 AWS PV 驱动程序
<a name="upgrade-pv"></a>

尽管 AWS PV 驱动程序在 Nitro 系统中未使用，但如果您使用的是早期版本的 Citrix PV 或 AWS PV，应当仍升级它们。最新的 AWS PV 驱动程序解决了在以下情况下可能在早期版本的驱动程序中出现的错误：您使用的是 Nitro 系统或者需要迁移回基于 Xen 的实例。作为最佳实践，我们建议始终针对 AWS 上的 Windows 实例升级到最新驱动程序。

使用以下过程对 AWS PV 驱动程序执行就地升级，或在 Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016 或 Windows Server 2019 上从 Citrix PV 驱动程序升级到 AWS PV 驱动程序。有关更多信息，请参阅[在 EC2 Windows 实例上升级半虚拟化驱动程序](Upgrading_PV_drivers.md)。

要升级域控制器，请参阅 [升级域控制器 (AWS PV 升级)](Upgrading_PV_drivers.md#aws-pv-upgrade-dc)。

**执行升级或升级到 AWS PV 驱动程序**

1. 使用远程桌面连接到实例并进行实例升级准备。在执行该升级前使所有非系统磁盘脱机。如果您要对 AWS PV 驱动程序执行就地升级，则不需要此步骤。在 Services 控制台中将不必要的服务设置为**手动** 启动。

1. 将最新驱动程序包[下载](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip)到实例。

1. 提取文件夹的内容，然后运行 `AWSPVDriverSetup.msi`。

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

在升级完成并且实例在 Amazon EC2 控制台中通过了两项运行状况检查后，请使用远程桌面连接到实例并验证新驱动程序是否已安装。在设备管理器中的**存储控制器**下，找到 **AWS PV 存储主适配器**。确认驱动程序版本与驱动程序版本历史记录表中列出的最新版本相同。有关更多信息，请参阅[AWS PV 驱动程序包历史记录](xen-drivers-overview.md#pv-driver-history)。

## 第 2 部分：安装和升级 ENA
<a name="upgrade-ena"></a>

升级到最新的 Elastic Network Adapter 驱动程序以确保所有网络功能均受支持。如果您启动了实例，而该实例尚未启用增强联网，则必须在该实例上下载并安装所需的网络适配器驱动程序。然后，设置 enaSupport 实例属性以**激活增强联网**。仅当安装了 ENA 驱动程序时，才能在受支持的实例类型上启用此属性。有关更多信息，请参阅[在 EC2 实例上使用 ENA 启用增强联网功能](enhanced-networking-ena.md)。

1. 将最新驱动程序[下载](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/Latest/AwsEnaNetworkDriver.zip)到实例。如果您需要先前版本的驱动程序，请参阅 [ENA Windows 驱动程序版本历史记录](ena-driver-releases-windows.md#ena-win-driver-release-history)。

1. 提取 zip 存档。

1. 通过运行提取的文件夹中的 `install.ps1` PowerShell 脚本安装驱动程序。
**注意**  
要避免安装错误，请以管理员身份运行 `install.ps1` 脚本。

1.  检查 AMI 是否已激活 enaSupport。如果未启用，请按照 [在 EC2 实例上使用 ENA 启用增强联网功能](enhanced-networking-ena.md) 上的文档继续操作。

## 第 3 部分：升级 AWS NVMe 驱动程序
<a name="upgrade-nvme"></a>

AWS NVMe 驱动程序用于与显示为 Nitro 系统中的 NVMe 块储存设备的 Amazon EBS 和 SSD 实例存储卷交互以提高性能。

**重要**  
以下说明专门针对以下情况进行了修改：您在基于 Xen 的实例上安装或升级 AWS NVMe，以将实例迁移到基于 Nitro 的实例。

1. 将最新驱动程序包[下载](https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip)到实例。

   如果您需要先前版本的驱动程序，请参阅 [NVMe Windows 驱动程序版本](nvme-driver-version-history.md)了解支持的版本。

1. 提取 zip 存档。

1. 如 `Readme.txt` 中所述安装驱动程序。

1. 打开 **PowerShell** 会话并运行以下命令：

   ```
   PS C:\> start rundll32.exe sppnp.dll,Sysprep_Generalize_Pnp -wait
   ```
**注意**  
要应用该命令，您必须以管理员身份运行 PowerShell 会话。PowerShell (x86) 版本将会导致错误。  
此命令仅在设备驱动程序上运行 sysprep。它不会运行完整的 sysprep 准备。

1. 对于 Windows Server 2008 R2 和 Windows Server 2012，请关闭实例，更改实例类型并启动实例，然后继续完成第 4 部分。如果在迁移到基于 Nitro 的实例类型之前，您在基于 Xen 的实例类型上再次启动了实例，则将无法启动。对于其他支持的 Windows AMI，您可以在运行设备 sysprep 后的任何时间更改实例类型。

## 第 4 部分：更新 EC2Config 和 EC2Launch
<a name="upgdate-ec2config-ec2launch"></a>

对于 Windows 实例，当在 Nitro 系统上（包括在 EC2 裸机上）运行时，最新的 EC2Config 和 EC2Launch 实用工具将提供额外的功能和信息。默认情况下，EC2Config 服务包含在早于 Windows Server 2016 的 AMI 中。EC2Launch 将取代 Windows Server 2016 及更高版本 AMI 上的 EC2Config。

EC2Config 和 EC2Launch 服务更新后，AWS 提供的新 Windows AMI 将包含最新版本的该服务。不过，您必须将自己的 Windows AMI 和实例更新为最新版本的 EC2Config 和 EC2Launch。

**安装或更新 EC2Config**

1. 下载并解压缩 [EC2Config 安装程序](https://s3.amazonaws.com/ec2-downloads-windows/EC2Config/EC2Install.zip)。

1. 运行 `EC2Install.exe`。有关选项的完整列表，请使用 `EC2Install` 选项运行 `/?`。默认情况下，安装程序会显示提示。要运行该命令而不显示提示，请使用 `/quiet` 选项。

有关更多信息，请参阅[安装最新版的 EC2Config](UsingConfig_Install.md)。

**安装或更新 EC2Launch**

1. 如果已在实例上安装和配置 EC2Launch，请备份 EC2Launch 配置文件。安装过程不保留此文件中的更改。默认情况下，该文件位于以下 `C:\ProgramData\Amazon\EC2-Windows\Launch\Config` 目录中。

1. 将 [EC2-Windows-Launch.zip](https://s3.amazonaws.com/ec2-downloads-windows/EC2Launch/latest/EC2-Windows-Launch.zip) 下载到实例上的一个目录中。

1. 将 [install.ps1](https://s3.amazonaws.com/ec2-downloads-windows/EC2Launch/latest/install.ps1) 下载到 `EC2-Windows-Launch.zip` 的下载目录中。

1. 运行 `install.ps1`。
**注意**  
要避免安装错误，请以管理员身份运行 `install.ps1` 脚本。

1. 如果您对 EC2Launch 配置文件进行了备份，则将其复制到 `C:\ProgramData\Amazon\EC2-Windows\Launch\Config` 目录。

有关更多信息，请参阅[使用 EC2Launch v1 代理在 EC2 Windows 实例启动期间执行任务](ec2launch.md)。

## 第 5 部分：为裸机实例安装串行端口驱动程序
<a name="install-serial-port-bare-metal"></a>

`i3.metal` 实例类型使用基于 PCI 的串行设备而不是基于 I/O 端口的串行设备。最新 Windows AMI 将自动使用基于 PCI 的串行设备并安装串行端口驱动程序。如果您没有使用从 Amazon 提供的 Windows AMI（日期为 2018 年 4 月 11 日或更晚）启动的实例，则必须安装串行端口驱动程序来启用串行设备的 EC2 功能（如密码生成和控制台输出）。最新的 EC2Config 和 EC2Launch 实用工具还支持 i3.metal 并提供额外的功能。按照第 4 部分中的步骤操作（如果尚未执行）。

**安装串行端口驱动程序**

1. 将串行驱动程序包[下载](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPCISerialDriver/Latest/AWSPCISerialDriver.zip)到实例。

1. 提取文件夹的内容，打开 `aws_ser.INF` 的上下文（右键单击）菜单，然后选择 **install (安装)**。

1. 选择 **Okay (确定)**。

## 第 6 部分：更新电源管理设置
<a name="power-management"></a>

以下电源管理设置更新将显示器设置为从不关闭，从而允许在 Nitro 系统上正常关闭操作系统。Amazon 截至 2018 年 11 月 28 日提供的所有 Windows AMI 都已具有此默认配置。

1. 打开命令提示符或 PowerShell 会话。

1. 运行以下命令：

   ```
   powercfg /setacvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0
   powercfg /setacvalueindex 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0
   powercfg /setacvalueindex a1841308-3541-4fab-bc81-f71556f20b4a 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 0
   ```

## 第 7 部分：为新实例类型更新 Intel 芯片组驱动程序
<a name="power-management-intel-drivers"></a>

`u-6tb1.metal`、`u-9tb1.metal` 和 `u-12tb1.metal` 实例类型使用的硬件需要先前未安装在 Windows AMI 上的芯片组驱动程序。如果不使用从 Amazon 提供的 Windows AMI（日期为 2018 年 11 月 19 日或更晚）启动的实例，则必须使用 Intel Chipset INF Utility 安装驱动程序。

**安装芯片组驱动程序**

1. 将[芯片组 INF 实用程序](https://www.intel.com/content/www/us/en/download/19347/chipset-inf-utility.html)下载到实例。

1. 提取文件。

1. 运行 `SetupChipset.exe`。

1. 接受 Intel 软件许可协议并安装芯片组驱动程序。

1. 重启实例。

## （替代方法）使用 AWS 升级 AWS Systems Manager PV、ENA 和 NVMe 驱动程序
<a name="auto-upgrade"></a>

`AWSSupport-UpgradeWindowsAWSDrivers` 自动化文档自动完成第 1 部分、第 2 部分和第 3 部分中所述的步骤。此方法还可在驱动程序升级失败时修复实例。

`AWSSupport-UpgradeWindowsAWSDrivers` 自动化文档在指定的 EC2 实例上升级或修复存储及网络 AWS 驱动程序。该文档尝试通过调用 AWS 代理（SSM Agent），在线安装最新版本的 AWS Systems Manager 驱动程序。如果无法与 SSM Agent 通信，则在明确要求时，该文档可以执行 AWS 驱动程序的离线安装。

**注意**  
此过程将在域控制器上失败。要在域控制器上更新驱动程序，请参阅[升级域控制器 (AWS PV 升级)](Upgrading_PV_drivers.md#aws-pv-upgrade-dc)。

**使用 AWS 自动升级 AWS Systems Manager PV、ENA 和 NVMe 驱动程序**

1. 在 [https://console.aws.amazon.com/systems-manager](https://console.aws.amazon.com/systems-manager) 处打开 Systems Manager 控制台。

1. 选择 **Automation (自动化)**、**Execute Automation (执行自动化)**。

1. 搜索并选择 **AWSSupport-UpgradeWindowsAWSDrivers** 自动化文档，然后选择**执行自动化**。

1. 在**输入参数**部分，配置以下选项：  
实例 ID  
输入要升级实例的唯一 ID。  
AllowOffline  
（可选）选择下列选项之一：  
   + `True` — 选择此选项可执行离线安装。在升级过程中，实例将停止并重新启动。
**警告**  
当您停止某个实例时，任何实例存储卷上的数据都将被擦除。要保留实例存储卷上的数据，请确保将这些数据备份到持久性存储中。
   + `False` —（默认值）要执行在线安装，请保持选中此选项。在升级过程中，实例将重新启动。
在尝试升级操作之前，在线和离线升级会创建一个 AMI。该 AMI 在自动化完成后仍将存在。请确保您可以访问该 AMI，或者在不再需要时将其删除。  
SubnetId  
（可选）输入以下值之一：  
   + `SelectedInstanceSubnet` —（默认值）升级过程会在要升级实例所在的同一子网中启动*帮助程序* 实例。该子网必须允许与 Systems Manager 终端节点 (`ssm.*`) 进行通信。
   + `CreateNewVPC` — 升级过程会在新 VPC 中启动*帮助程序* 实例。如果您不确定目标实例的子网是否允许与 `ssm.*` 终端节点进行通信，请使用此选项。您的用户必须具有创建 VPC 的权限。
   + 特定子网 ID — 指定要在其中启动*帮助程序* 实例的特定子网的 ID。该子网必须与要升级的实例位于同一可用区中，并且必须允许与 `ssm.*` 终端节点进行通信。

1. 选择**执行**。

1. 留出完成升级的时间。完成在线升级可能需要长达 10 分钟的时间，而完成离线升级可能需要长达 25 分钟的时间。

# 对 EC2 Windows 实例上的操作系统升级进行问题排查
<a name="os-upgrade-trbl"></a>

AWS 利用升级帮助程序服务 (一种可帮助您执行涉及 Citrix PV 驱动程序的就地升级的 AWS 实用程序) 提供对升级问题的支持。

升级后，实例可能临时 遇到高于平均 CPU 使用率的情况，而 .NET 运行时优化服务将优化 .NET 框架。这是预期行为。

如果实例在数小时后未通过所有状态检查，请执行以下检查。
+ 如果已升级到 Windows Server 2008，但在数小时后所有状态检查均失败，则升级可能已失败，这时会显示 **Click OK** 提示以确认回滚。因为在这种状态下无法访问控制台，所以无法单击该按钮。要解决此问题，请通过 Amazon EC2 控制台或 API 执行重启。重启需要 10 分钟或更长时间才能开始。实例可能在 25 分钟后变为可用。
+ 从服务器删除应用程序或服务器角色，然后重试。

如果从服务器删除应用程序或服务器角色后实例未通过所有状态检查，请执行以下操作。
+ 停止实例，将根卷附加到其他实例。有关更多信息，请参阅["等待元数据服务"](common-messages.md#metadata-unavailable)中有关如何停止根卷并将其附加到其他实例的描述。
+ 分析 [Windows 安装程序日志文件和事件日志](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-log-files-and-event-logs?view=windows-11)中有无失败。

如对操作系统升级或迁移有其他问题或疑问，我们建议您查看[就地升级开始前的准备工作](os-inplaceupgrade.md#os-upgrade-before)中所列的文章。