升级 Windows Server 虚拟机

您可以将某些 Windows Server 2008 R2 虚拟机升级为 Windows Server 2012,同时将其迁移到 Compute Engine。

或者,您也可以迁移虚拟机,然后通过 Compute Engine 上提供的现有流程单独升级。

准备工作

在启动迁移过程(包括升级)之前,请确保您已做好以下准备工作:

  • 请确保您有足够的启动磁盘空间来支持升级。每个虚拟机升级可能需要 15-20 GB 的空间。

  • 默认情况下,Windows 随用随附 (PAYG) 许可会在升级时应用。或者,如果您已有 Microsoft 许可并且想要继续使用它,则可以使用自备许可 (BYOL) 进程。

  • 确保充足的停机时间。在升级 Windows Server 虚拟机的迁移过程中,只要这些虚拟机在迁移和升级,它们将无法使用。包含升级的迁移过程可能需要 1-2 个小时才能完成每次虚拟机升级。

  • 确保您要升级的虚拟机使用的是 Windows Server 2008 R2。

验证已升级的虚拟机

您可以使用您编写的 PowerShell 脚本在迁移和升级过程中验证虚拟机。您可以在升级开始之前和完成之后执行脚本。例如,您可能想要确认虚拟机上的应用在升级过程前后是否正常运行。

编写脚本时,请注意避免编写长时间运行的操作的脚本。脚本执行所需的时间包含在升级的总超时限制中(默认为 2.5 小时)。

添加验证脚本

您可以提供一个 PowerShell 脚本,让系统在升级前执行,提供另一个脚本在升级后执行。提供多个名称与命名限制条件相符的脚本会产生错误。

要让系统执行您的脚本,请为它们指定特定的名称,并将其放置在特定位置:

目的 名称表单 位置
升级前执行

pre*.ps1

例如 pre_upgrade_script.ps1

${env:systemdrive}\upgrade_os_scripts

例如 c:\upgrade_os_scripts\pre_upgrade_script.ps1

升级后执行

post*.ps1

例如 post_upgrade_script.ps1

${env:systemdrive}\upgrade_os_scripts

例如 c:\upgrade_os_scripts\post_upgrade_script.ps1

脚本执行的输出和错误

来自升级过程的消息会输出到串行端口 3。如果您的脚本生成以下错误,升级将失败并还原为基本快照。

  • 找到多个升级前/升级后脚本:

    timestamp Replatform Error: Found 2 pre-upgrade user supplied scripts only 1 allowed.
    
  • 非零退出代码:

    timestamp Replatform Error: C:\upgrade_os_scripts\pre_upgrade_script.ps1 exited with the following error code: 1
    
  • 执行脚本时抛出的异常:

    timestamp Replatform Error: The following exception thrown while running user supplied post-upgrade script: "script-name": exception description.
    

更多详情,请参阅升级虚拟机的过程

问题排查

您可以在 Migrate for Compute Engine Manager 中或登录 Cloud Logging 找到与升级相关的错误。

有关升级过程中可能会遇到的错误,请参阅问题排查主题。

在迁移时升级 Windows Server 虚拟机

使用波次迁移虚拟机的同时执行升级。

在分离阶段之后和清理阶段之前升级虚拟机操作系统。一旦执行了清理阶段,将无法回滚或还原升级。

在升级虚拟机之前,Migrate for Compute Engine 会拍摄虚拟机的快照。 如果升级失败,Migrate for Compute Engine 将还原至快照。

升级波次中的虚拟机操作系统

创建用于迁移虚拟机的 Runbook 时,您可以通过为 Runbook 的 UpgradeOS 字段输入 TRUE 来指定对其进行升级。在迁移期间,分离阶段之后和清理阶段之前,您可以升级合格虚拟机的操作系统。

下文介绍了如何在执行虚拟机的完全迁移的同时进行升级。

  1. 使用 Migrate for Compute Engine Manager 来下载 Runbook CSV 文件
  2. 在 Runbook CSV 文件中,找到要升级的虚拟机所在的行。
  3. 对于支持升级过程的虚拟机,请执行以下操作:

    1. 找到 UpgradeOS 列并将其值更改为 TRUE

    2. 默认情况下,Windows 随用随附 (PAYG) 许可会在升级时应用。如果您已经拥有 Microsoft 许可,请通过将 license:os 列设置为 https://www.googleapis.com/compute/v1/projects/windows-cloud/global/licenses/windows-server-2012-r2-byol 来应用 Windows 自带许可 (BYOL) 许可。

  4. 根据需要修改或填写其他列,以生成有效的 Runbook。

    有关 Runbook 字段的列表,请参见 Runbook 参考

  5. 在 Migrate for Compute Engine Manager 中,从 Runbook 创建并验证一个波次

  6. 波次通过验证后,创建一个新作业。 对于作业的操作,选择完全迁移

    迁移可能需要一个小时到几个小时不等,具体取决于您波次中虚拟机的数量。

    开始全面迁移的新作业对话框的屏幕截图(点击可放大)
    新作业对话框的屏幕截图(点击可放大)

  7. 监控迁移的进度,查找每个虚拟机的准备分离状态。

    虚拟机已准备好开始分离时的迁移状态的屏幕截图(点击可放大)
    虚拟机标签页的屏幕截图,显示了已为分离做好准备的迁移状态(点击可放大)

  8. 当每个虚拟机已准备好开始分离时,创建一个操作为分离的新作业

    要分离的新作业对话框的屏幕截图(点击可放大)
    新作业对话框的屏幕截图,其中选择了“分离”操作(点击可放大)

  9. 当所有虚拟机均处于“已分离”状态时,选择波次,然后创建操作为升级操作系统的新作业,然后点击开始即可开始升级。

    最后作业(状态)(Last Job (Status))更改为升级操作系统(正在运行)(Upgrade OS (Running))。

    开始升级之后,您可以为波次中的任意虚拟机取消升级。如需取消升级,请在虚拟机列表中选择虚拟机,然后点击取消操作系统升级

    虚拟机列表的屏幕截图,其中突出显示了“取消操作系统升级”按钮(点击可放大)
    虚拟机标签页的屏幕截图,其中突出显示了“取消操作系统升级”按钮(点击可放大)

  10. 虚拟机列表中的各个虚拟机的迁移状态显示为升级操作系统时,运行测试,以便在完成迁移过程之前验证各个虚拟机能否正常运行。

    如果虚拟机无法正确验证,您可以取消升级。

  11. 验证具有升级操作系统的虚拟机后,请运行清理操作完成迁移。为此,请创建一个将“清理”指定为操作的新作业。

取消正在进行的操作系统升级

您可以使用 Migrate for Compute Engine Manager 取消正在进行的虚拟机操作系统升级。

  1. 在 Migrate for Compute Engine Manager 中,前往迁移波次网页。
  2. 波次标签页,找到要取消的升级作业所在的波次,然后在监控列点击其图标。
  3. 在出现的虚拟机标签页上,选择您要取消升级的虚拟机所在的行。
  4. 选中该行后,点击取消操作系统升级按钮。
    虚拟机列表的屏幕截图,其中突出显示了“取消操作系统升级”按钮(点击可放大)
    虚拟机标签页的屏幕截图,其中突出显示了“取消操作系统升级”按钮(点击可放大)