升级 Storage Spaces Direct 群集

将存储空间直通群集升级到较新版本的 Windows Server 有助于利用最新功能、安全更新和性能改进。 本文介绍运行 Windows Server 2016 的存储空间直通群集支持的升级选项,包括最小化或消除虚拟机(VM)停机时间的方法。 了解每个升级方法的先决条件、限制和分步说明,以便为组织的需求选择最佳方法。

小窍门

如果要从 Windows Server 2019 或更高版本升级群集,则不需要本文中所述的步骤。 如果要从 Windows Server 2019 或更高版本升级群集,请使用 群集 OS 滚动升级过程 升级群集,而无需停止 VM。 本文中的步骤仅适用于将群集从 Windows Server 2016 升级到 Windows Server 2019。

若要将存储空间直通群集升级到较新版本的 Windows Server,可以使用 群集 OS 滚动升级过程四个选项。 两个选项涉及使虚拟机(VM)保持运行,两个选项涉及停止所有 VM。 每个选项都有优缺点,因此选择最适合组织需求的选项。

若要详细了解升级选项,请选择一个链接:

  • 在群集中的每个服务器上就地升级同时保持 VM 运行。 此选项不会造成 VM 停机,但必须在升级每个服务器后等待存储作业(镜像修复)完成。

  • 在群集中的每台服务器上清理 OS 安装同时保持 VM 运行。 此选项不会导致 VM 停机。 但是,在升级每个服务器后,必须等待存储作业(镜像修复)完成。 还需要再次设置每个服务器,包括其所有应用和角色。 我们推荐使用此选项,而不是进行就地升级。

  • 在群集中的每个服务器上就地升级同时 VM 停止。 此选项会导致 VM 停机,但无需等待存储作业(镜像修复),因此速度更快。

  • 在群集中的每台服务器上清理 OS 安装同时 VM 停止。 此选项会导致 VM 停机,但无需等待存储作业(镜像修复),因此速度更快。 我们推荐使用此选项,而不是进行就地升级。

先决条件和限制

在继续升级之前:

  • 已启用Storage Spaces Direct。

  • 检查是否有可用备份,以防升级过程中出现任何问题。

  • 检查硬件供应商是否具有受支持的 BIOS、固件和驱动程序。

请务必了解升级过程的一些限制:

  • 在弹性文件系统(ReFS)卷上完全支持升级,但在 Windows Server 2019 中,升级的卷不会受益于 ReFS 增强功能。 要利用 ReFS 带来的好处(例如镜像加速奇偶校验的性能提高),需要使用新创建的 Windows Server 2019 或更高版本的 ReFS 卷。 若要创建新的 Windows Server ReFS 卷,必须使用 New-Volume cmdlet 或服务器管理器创建新卷。 下面是新卷中的一些 ReFS 增强功能:

    • MAP 日志绕过:ReFS 中的性能改进,仅适用于群集(存储空间直通)系统,不适用于独立存储池。

    • 压缩:特定于多重复原卷的效率提升。

  • 在升级存储空间直通群集服务器之前,建议将服务器置于存储维护模式。

  • 使用交换机嵌入式组合(SET)交换机的软件定义的网络环境出现了一个已知问题。 此问题涉及将 Hyper-V 的 VM 实时迁移到较早版本的操作系统。 为确保实时迁移成功,建议在实时迁移的 VM 上更改 VM 网络设置。

由于此处所述的已知问题,某些客户可能会选择生成新群集并从旧群集复制数据,而不是使用下面所述的四种方法之一升级其 Windows Server 群集。

升级

以下部分详细介绍了四个升级选项。 每个部分都包含执行升级的分步说明。 选择首选升级选项。

此选项不会造成 VM 停机,但必须在升级每个服务器后等待存储作业(镜像修复)完成。 尽管各个服务器在升级过程中按顺序重启,但群集中的剩余服务器和所有 VM 仍保持运行状态。

  1. 检查群集中的所有服务器是否已安装最新的 Windows 更新。

  2. 如果您在 SET 交换机上使用软件定义网络,请打开管理员权限的 PowerShell 会话,并运行以下命令,以在群集中禁用所有 VM 的实时迁移验证检查:

    Get-ClusterResourceType -Cluster {clusterName} -Name "Virtual Machine" | `
    Set-ClusterParameter -Create SkipMigrationDestinationCheck -Value 1
    
  3. 在每次处理一台群集服务器时,完成以下步骤:

    1. 使用 Hyper-V VM 实时迁移,将正在运行的 VM 移出要升级的服务器。

    2. 通过运行以下 PowerShell 命令暂停群集服务器。 某些内部组处于隐藏状态。 建议谨慎执行此步骤。 如果尚未从服务器实时迁移 VM,此 cmdlet 会为你执行该步骤。 在这种情况下,可以跳过上一步(如果需要)。

      Suspend-ClusterNode -Drain
      
    3. 将服务器置于存储维护模式:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Enable-StorageMaintenanceMode
      
    4. 运行以下 cmdlet,检查 OperationalStatus 的值是否为 In Maintenance Mode

      Get-PhysicalDisk
      
    5. 通过运行 setup.exe 并使用 保留个人文件和应用 选项,在服务器上执行 Windows Server 的升级安装。 安装完成后,服务器将保留在群集中,群集服务会自动启动。

    6. 检查新升级的服务器是否具有最新的 Windows Server 更新。

    7. 从存储维护模式中删除服务器:

      Get-StorageFaultDomain -type StorageScaleUnit | `
      Where FriendlyName -Eq <ServerName> | `
      Disable-StorageMaintenanceMode
      
    8. 恢复服务器:

      Resume-ClusterNode
      
    9. 等待存储修复作业完成,并等待所有磁盘返回到正常状态。 此过程可能需要相当长的时间,具体取决于服务器升级期间运行的 VM 数。 若要检查正常状态,请运行以下命令:

      Get-StorageJob
      Get-VirtualDisk
      
  4. 升级群集中的下一台服务器。

  5. 将所有服务器升级到最新版本的 Windows Server 后,使用以下 PowerShell cmdlet 更新群集功能级别。 更新群集功能级别后,无法返回到以前的群集功能级别。 也就是说,更新群集功能级别后,无法将较旧版本的 Windows Server 节点添加到群集。 有关详细信息,请参阅 群集操作系统滚动升级

    Update-ClusterFunctionalLevel
    

    Note

    尽管最多需要四周才能更新群集功能级别,但建议尽快更新群集功能级别。

  6. 更新群集功能级别后,使用以下 cmdlet 更新存储池。 此时,Get-ClusterPerf 等新 cmdlet 在群集中的任何服务器上都完全正常运行。

    Update-StoragePool
    
  7. (可选)使用 Update-VMVersion cmdlet 停止每个 VM,然后再次启动 VM 来升级 VM 配置级别。

  8. 如果您将软件定义网络与 SET 交换机结合使用,并且按照之前的指导禁用了 VM 实时迁移检查,请使用以下 cmdlet 重新启用 VM 实时验证检查:

    Get-ClusterResourceType -Cluster {clusterName} -Name "Virtual Machine" | `
    Set-ClusterParameter  SkipMigrationDestinationCheck -Value 0
    
  9. 验证升级后的群集是否按预期工作。 角色应正确故障转移。 如果在群集上使用 VM 实时迁移,VM 应成功实时迁移。

  10. 通过运行群集验证并检查群集验证报告来验证群集。 在提升权限的 PowerShell 会话中,运行以下命令:

    Test-Cluster