群集感知更新要求和最佳做法

适用于:Windows server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Azure Stack HCI 21H2 和 20H2

本部分描述使用群集感知更新 (CAU) 将更新应用到运行 Windows Server 的故障转移群集的要求和所需依赖项。

注意

如果使用 Microsoft.WindowsUpdatePlugin 以外的插件,你可能需要独立验证群集环境是否已准备好应用更新。 如果使用非 Microsoft 插件,请与发布者联系以了解详细信息。 有关插件的详细信息,请参阅插件的工作原理

安装故障转移群集功能和故障转移群集工具

CAU 需要安装故障转移群集功能和故障转移群集工具。 故障转移群集工具包括 CAU 工具 (clusterawareupdating.dll)、故障转移群集 cmdlet,以及 CAU 操作所需的其他组件。 有关安装故障转移群集功能的步骤,请参阅 安装故障转移群集功能和工具

故障转移群集工具的准确安装要求取决于 CAU 是作为群集角色在故障转移群集上(通过使用自我更新模式)还是在远程计算机上协调更新。 此外,CAU 的自我更新模式需要通过使用 CAU 工具在故障转移群集上安装 CAU 群集角色。

下表总结了针对两种 CAU 更新模式的 CAU 功能安装要求。

已安装的组件 自我更新模式 远程更新模式
故障转移群集功能 在所有群集节点上必需 在所有群集节点上必需
故障转移群集工具 在所有群集节点上必需 - 在远程更新计算机上,这是必需项
- 若要在所有群集节点上运行 Save-CauDebugTrace cmdlet,这是必需项
CAU 群集角色 必需 不是必需

获取管理员帐户

以下管理员要求是使用 CAU 功能所必需的。

  • 若要使用 CAU 用户界面 (UI) 或群集感知更新 cmdlet 预览或应用更新操作,你必须使用在所有群集节点上具有本地管理员权利和权限的域帐户。 如果该帐户在每个节点上没有足够的权限,则当你执行这些操作时,将在“群集感知更新”窗口中提示你提供所需的凭据。 若要使用群集感知更新 cmdlet,你可将所需凭据作为 cmdlet 参数提供。

  • 如果你在远程更新模式中使用 CAU,那么当你使用在群集节点上不具备本地管理员权利和权限的帐户登录时,你必须在更新协调器计算机上通过使用本地管理员帐户,或者通过使用具有“身份验证后模拟客户端”用户权限的帐户,以管理员身份运行 CAU 工具。

  • 若要运行 CAU 最佳做法分析器,你使用的帐户必须在群集节点上具有管理权限,并在用于运行 Test-CauSetup cmdlet 或使用“群集感知更新”窗口分析群集更新准备情况的计算机上具有本地管理权限。 有关详细信息,请参阅测试群集更新准备情况

验证群集配置

以下是针对故障转移群集使用 CAU 以支持更新的一般需求。 针对节点上远程管理的其他配置要求在本主题后面部分的配置用于远程管理的节点中列出。

  • 足够的群集节点必须处于联机状态,以便群集具有仲裁资格。

  • 所有群集节点都必须位于同一个 Active Directory 域中。

  • 必须使用 DNS 在网络上解析群集名称。

  • 如果在远程更新模式中使用 CAU,更新协调器计算机必须具有针对故障转移群集节点的网络连接,并且它必须位于与故障转移群集相同的 Active Directory 域中。

  • 群集服务应在所有群集节点上运行。 默认情况下,此服务将在所有群集节点上安装并配置为自动启动。

  • 若要在 CAU 更新运行期间使用 PowerShell 更新前或更新后脚本,请确保脚本安装在所有群集节点上或者所有节点均可访问它们,例如在高度可用的网络文件共享上。 如果将脚本保存到网络文件共享,请为 Everyone 组配置对该文件夹的读取权限。

为远程管理配置节点

若要使用群集感知更新,必须配置群集的所有节点来进行远程管理。 默认情况下,要为远程管理配置节点,你只需要启用防火墙规则以允许自动重启

下表列出了完整的远程管理要求,以防你的环境偏离默认设置。

这些要求是对安装故障转移群集功能和故障转移群集工具安装要求和在本主题前面部分中所述的常规群集要求的补充。

要求 默认状态 自我更新模式 远程更新模式
启用防火墙规则以允许自动重新启动 已禁用 如果防火墙正在使用中,则在所有群集节点上都是必需的 如果防火墙正在使用中,则在所有群集节点上都是必需的
启用 Windows 管理规范 Enabled 在所有群集节点上必需 在所有群集节点上必需
启用 Windows PowerShell 3.0 或 4.0 和 Windows PowerShell 远程处理 Enabled 在所有群集节点上必需 若要运行以下组件,则在所有群集节点上必需:

- Save-CauDebugTrace cmdlet
- 更新运行期间的 PowerShell 更新前和更新后脚本
- 使用“群集感知更新”窗口或 Test-CauSetup Windows PowerShell cmdlet 对群集更新就绪情况进行的测试

安装 .NET Framework 4.6 或 4.5 Enabled 在所有群集节点上必需 若要运行以下组件,则在所有群集节点上必需:

- Save-CauDebugTrace cmdlet
- 更新运行期间的 PowerShell 更新前和更新后脚本
- 使用“群集感知更新”窗口或 Test-CauSetup Windows PowerShell cmdlet 对群集更新就绪情况进行的测试

启用防火墙规则以允许自动重新启动

为了在更新应用后允许重新启动(如果更新的安装需要重新启动),如果正在群集节点上使用 Windows 防火墙或非 Microsoft 防火墙,则必须在每个允许以下流量的节点上启用防火墙规则:

  • 协议:TCP

  • 方向:入站

  • 程序:wininit.exe

  • 端口:RPC 动态端口

  • 配置文件:域

如果在群集节点上使用 Windows 防火墙,则可以通过在每个群集节点上启用“远程关机” Windows 防火墙规则组来执行此操作。 当使用“群集感知更新”窗口来应用更新并配置自我更新选项时,会在每个群集节点上自动启用名为“远程关机”的 Windows 防火墙规则组。

注意

Remote Shutdown Windows 防火墙规则组在与为 Windows 防火墙配置的组策略设置发生冲突时无法启用。

在运行以下 CAU cmdlet 时,也可通过指定 –EnableFirewallRules 参数启用“远程关机”防火墙规则组:Add-CauClusterRoleInvoke-CauRunSetCauClusterRole

下面的 PowerShell 示例演示了用于在群集节点上启用自动重启的其他方法。

Set-NetFirewallRule -Group "@firewallapi.dll,-36751" -Profile Domain -Enabled true

启用 Windows Management Instrumentation (WMI)

必须使用 Windows 管理规范 (WMI) 为远程管理配置所有群集节点。 此项已默认启用。

若要手动启用远程管理,请执行以下操作:

  1. 在服务控制台中,启动“Windows 远程管理”服务并将启动类型设置为“自动”

  2. 运行 Set-WSManQuickConfig cmdlet,或者从提升的命令提示符运行以下命令:

    winrm quickconfig -q
    

为了支持 WMI 远程处理,如果正在群集节点上使用 Windows 防火墙,则必须在每个节点上启用针对“Windows 远程管理 (HTTP-In)”的入站防火墙规则。 默认情况下,启用此规则。

启用 Windows PowerShell 和 Windows PowerShell 远程处理

若要在远程更新模式中启用自我更新模式和某些 CAU 功能,必须安装并启用 PowerShell,才能在所有群集节点上运行远程命令。 默认情况下,会安装并启用 PowerShell 来进行远程处理。

若要启用 PowerShell 远程处理,请使用以下方法之一:

  • 运行 Enable-PSRemoting cmdlet。

  • 为 Windows 远程管理 (WinRM) 配置域级组策略设置。

若要详细了解如何启用 PowerShell 远程处理的详细信息,请参阅关于远程处理要求

安装 .NET Framework 4.6 或 4.5

若要在远程更新模式中启用自我更新模式和某些 CAU 功能,必须在所有群集节点上安装 .NET Framework 4.6 或 .NET Framework 4.5(在 Windows Server 2012 R2 上)。 默认已安装 NET Framework。

若要使用 PowerShell 安装 .NET Framework 4.6(或 4.5)(如果尚未安装),请使用以下命令:

Install-WindowsFeature -Name NET-Framework-45-Core

有关使用群集感知更新的最佳做法建议

有关应用 Microsoft 更新的建议

我们建议,当你开始使用 CAU 在群集上借助默认的 Microsoft.WindowsUpdatePlugin 插件来应用更新时,停止使用其他方法在群集节点上安装来自 Microsoft 的软件更新。

注意

将 CAU 与自动更新(按照固定的时间计划)各个节点的方法结合使用可能会产生无法预测的结果,包括服务中断和未计划的停机时间。

建议遵循以下原则:

  • 为了获得最佳结果,我们建议你针对自动更新禁用群集节点上的设置。例如,通过控制面板中的自动更新设置,或在使用组策略进行配置的设置中禁用。

    注意

    在群集节点上的自动更新安装可能会干扰通过 CAU 进行的更新安装,并且可能会导致 CAU 失败。

    如果需要,以下自动更新设置与 CAU 兼容,因为管理员可以控制更新安装的计时:

    • 在下载更新之前以及在安装之前用于通知的设置

    • 用于自动下载更新以及在安装之前用于通知的设置

    但是,如果自动更新下载更新的时间与 CAU 更新运行的时间相同,则更新运行可能需要更长时间才能完成。

  • 不要配置更新系统,如 Windows Server Update Services (WSUS) 以对群集节点自动应用更新(按照固定的时间计划)。

  • 所有群集节点应统一地配置为使用相同的更新源,例如,WSUS 服务器、Windows 更新或 Microsoft 更新。

  • 如果使用配置管理系统对网络上的计算机应用软件更新,请从所有必需的或自动的更新中排除群集节点。 配置管理系统的示例包括 Microsoft Endpoint Configuration Manager 和 Microsoft System Center Virtual Machine Manager 2008。

  • 如果使用内部软件分发服务器(例如 WSUS 服务器)来包含和部署更新,请确保这些服务器正确标识群集节点的已批准更新。

在分支机构方案中应用 Microsoft 更新

若要从 Microsoft 更新或 Windows 更新将 Microsoft 更新下载到某些分支机构方案中的群集节点,你可能需要配置每个节点上的本地系统帐户的代理设置。 例如,如果分支机构群集访问 Microsoft 更新或 Windows 更新以通过使用本地代理服务器下载更新,则可能需要执行此操作。

如有必要,在每个节点上配置 WinHTTP 代理设置以指定本地代理服务器并配置本地地址例外(即,对于本地地址的跳过列表)。 若要执行此操作,你可以在每个群集节点上从提升的命令提示符运行以下命令:

netsh winhttp set proxy <ProxyServerFQDN >:<port> "<local>"

其中,<ProxyServerFQDN> 是代理服务器的完全限定的域名,<port> 是用来通信的端口(通常是端口 443)。

例如,若要为指定代理服务器 MyProxy.CONTOSO.com 的本地系统帐户配置 WinHTTP 代理设置,并使用端口 443 和本地地址例外,请键入以下命令:

netsh winhttp set proxy MyProxy.CONTOSO.com:443 "<local>"

使用 Microsoft.HotfixPlugin 的建议

  • 我们建议你将修补程序根文件夹和修补程序配置文件的权限配置为只限制用于存储这些文件的计算机上本地管理员的写入访问权限。 当应用修补程序时,这有助于防止未经授权的用户篡改这些文件,这些用户可能损害故障转移群集的功能。

  • 若要帮助确保用于访问修补程序根文件夹的服务器消息块 (SMB) 连接的数据完整性,如果有可能,你应在 SMB 共享文件夹中对 SMB 加密进行配置。 Microsoft.HotfixPlugin 要求 SMB 签名或 SMB 加密配置为帮助确保 SMB 连接的数据完整性。

    有关详细信息,请参阅限制对修补程序根文件夹和修补程序配置文件进行访问

其他建议

  • 为了避免干扰可能在同一时间计划的 CAU 更新运行,不要在计划的维护时段安排群集名称对象和虚拟计算机对象的密码更改。

  • 你应该在保存于网络共享文件夹上的更新前和更新后脚本上设置适当的权限,以防止未经授权的用户可能篡改这些文件。

  • 若要在自我更新模式中配置 CAU,则必须在 Active Directory 中为 CAU 群集角色创建一个虚拟计算机对象 (VCO)。 如果故障转移群集具有足够的权限,则 CAU 可以在添加 CAU 群集角色时自动创建此对象。 但是,由于某些组织中的安全策略,可能需要在 Active Directory 中预留对象。 有关执行此操作的过程,请参阅 预安排群集角色的帐户的步骤

  • 若要在 IT 组织中根据相似更新需求跨故障转移群集保存和重复使用更新运行设置,你可以创建更新运行配置文件。 此外,根据更新模式,你可以在所有远程更新协调器计算机或故障转移群集均可访问的文件共享上保存和管理更新运行配置文件。 有关详细信息,请参阅适用于 CAU 的高级选项和更新运行配置文件

测试群集更新准备情况

可运行 CAU 最佳做法分析器 (BPA) 模型来测试某故障转移群集和网络环境是否满足许多关于由 CAU 应用软件更新的要求。 很多测试使用默认的插件 Microsoft.WindowsUpdatePlugin 检查环境应用 Microsoft 更新的准备情况。

注意

如果使用 Microsoft.WindowsUpdatePlugin 以外的插件,你可能需要独立验证群集环境是否已准备好应用软件更新。 如果使用的是非 Microsoft 插件(例如硬件制造商提供的插件),请联系发布者了解详细信息。

你可以采用以下两种方式运行 BPA:

  1. 在 CAU 控制台中选择“分析群集更新准备情况”。 BPA 完成准备情况测试后,会显示测试报告。 如果在群集节点上检测到问题,在问题出现的位置标识其中特定的问题和节点,以便可以采取纠正措施。 测试可能需要几分钟才能完成。

  2. 运行 Test-CauSetup cmdlet。 可在安装了适用于 Windows PowerShell 的故障转移群集模块(故障转移群集工具的一部分)的本地或远程计算机上运行 cmdlet。 你还可以在故障转移群集的节点上运行该 cmdlet。

注意

  • 你使用的帐户必须在群集节点上具有管理权限,并在用于运行 Test-CauSetup cmdlet 或使用“群集感知更新”窗口分析群集更新就绪情况的计算机上具有本地管理权限。 若要使用“群集感知更新”窗口运行测试,你必须使用必要的凭据登录到计算机。
  • 测试假设用于预览和应用软件更新的 CAU 工具在同一台计算机上运行,并且使用与用于测试群集更新准备情况的凭据相同的用户凭据。

重要

我们强烈建议你在以下情况中测试群集更新准备情况:

  • 在你第一次使用 CAU 应用软件更新前。
  • 在你将节点添加到群集后,或者在需要运行“验证群集”向导的群集中执行其他硬件更改后。
  • 在你更改更新源后,或者更改可能影响节点上更新的应用程序的更新设置或配置(除 CAU 以外)后。

群集更新准备情况的测试

下表列出了群集更新准备情况测试、一些常见问题和解决步骤。

测试 可能的问题和影响 解决步骤
故障转移群集必须可用 无法解析该故障转移群集名称,或者无法访问一个或多个群集节点。 BPA 无法运行群集准备情况测试。 - 在 BPA 运行期间检查所指定的群集的名称拼写。
- 确保群集的所有节点都处于联机状态并且正在运行。
- 检查“验证配置”向导是否可以在故障转移群集上成功运行。
通过 WMI 的远程管理,必须启用故障转移群集节点 对于通过使用 Windows 管理规范 (WMI) 进行的远程管理,不启用一个或多个故障转移群集节点。 如果未对远程管理配置节点,则 CAU 无法更新群集节点。 确保通过 WMI 的远程管理启用所有故障转移群集节点。 有关详细信息,请参阅本主题中的配置用于远程管理的节点
应在每个故障转移群集节点上启用 PowerShell 远程处理 未在一个或多个故障转移群集节点上安装或启用 PowerShell 来进行远程处理。 无法配置 CAU 来用于自我更新模式,或在远程更新模式中使用某些功能。 确保在所有群集节点上安装了 PowerShell 并已启用它进行远程处理。

有关详细信息,请参阅本主题中的配置用于远程管理的节点

故障转移群集版本 故障转移群集中的一个或多个节点没有运行 Windows Server 2016、Windows Server 2012 R2 或Windows Server 2012。 CAU 无法更新故障转移群集。 验证在 BPA 运行期间指定的故障转移群集是否正在运行 Windows Server 2016、Windows Server 2012 R2 或 Windows Server 2012。

有关详细信息,请参阅本主题中的验证群集配置

必须在所有故障转移群集节点上安装 .NET Framework 和 Windows PowerShell 的所需版本 未在一个或多个群集节点上安装 .NET Framework 4.6、.NET Framework 4.5 或 Windows PowerShell。 某些 CAU 功能可能无法工作。 如有必要,请确保在所有群集节点上安装 .NET Framework 4.6/4.5 和 Windows PowerShell。

有关详细信息,请参阅本主题中的配置用于远程管理的节点

群集服务应在所有群集节点上运行 群集服务未在一个或多个节点上运行。 CAU 无法更新故障转移群集。 - 确保群集服务 (clussvc) 在群集中的所有节点上启动,并且将它配置为自动启动。
- 检查“验证配置”向导是否可以在故障转移群集上成功运行。

有关详细信息,请参阅本主题中的验证群集配置

自动更新不能配置为在任何故障转移群集节点上自动安装更新 至少在一个故障转移群集节点上,自动更新配置为在该节点上自动安装 Microsoft 更新。 将 CAU 与其他更新方法结合起来使用可能会导致非计划停机时间或无法预料的结果。 如果 Windows 更新功能在一个或多个群集节点上配置为自动更新,请确保自动更新未配置为自动安装更新。

有关详细信息,请参阅对应用 Microsoft 更新的建议

故障转移群集节点应使用相同的更新源 一个或多个故障转移群集节点配置为针对 Microsoft 更新使用与其余节点不同的更新源。 可能不会通过 CAU 在群集节点上统一应用更新。 请确保将每个群集节点配置为使用相同的更新源,例如,WSUS 服务器、Windows 更新或 Microsoft 更新。

有关详细信息,请参阅对应用 Microsoft 更新的建议

允许应在故障转移群集中的每个节点上启用远程关机的防火墙规则 一个或多个故障转移群集节点不启用允许远程关机的防火墙规则,或者组策略设置阻止启用此规则。 应用需要自动重新启动节点的更新的更新运行可能未正确完成。 如果正在群集节点上使用 Windows 防火墙或非 Microsoft 防火墙,则配置允许远程关机的防火墙规则。

有关详细信息,请参阅本主题中的启用防火墙规则以允许自动重新启动

在每个故障转移群集节点上的代理服务器设置应设置为本地代理服务器 一个或多个故障转移群集节点具有不正确的代理服务器配置。

如果本地代理服务器正在使用中,则每个节点上的代理服务器设置必须正确配置以便群集能够访问 Microsoft 更新或 Windows 更新。

如果需要,请确保将每个群集节点上的 WinHTTP 代理设置配置为本地代理服务器。 如果你的环境中没有使用代理服务器,则可以忽略此警告。

有关详细信息,请参阅本主题中的在分支机构方案中应用更新

应将 CAU 群集角色安装在故障转移群集上以启用自我更新模式 在此故障转移群集上未安装 CAU 群集角色。 群集自我更新需要此角色。 若要在自我更新模式中使用 CAU,请通过以下方法之一在故障转移群集上添加 CAU 群集角色:

- 运行 Add-CauClusterRole PowerShell cmdlet。
- 在“群集感知更新”窗口中选择“配置群集自我更新选项”操作。

应在故障转移群集上支持 CAU 群集角色以启用自我更新模式 CAU 群集角色处于禁用状态。 例如,未安装 CAU 群集角色,或者已通过使用 Disable-CauClusterRole PowerShell cmdlet 将其禁用。 群集自我更新需要此角色。 若要在自我更新模式中使用 CAU,请通过以下方法之一在此故障转移群集上启用 CAU 群集角色:

- 运行 Enable-CauClusterRole PowerShell cmdlet。
- 在“群集感知更新”窗口中选择“配置群集自我更新选项”操作。

必须在所有故障转移群集节点上为自我更新模式注册已配置的 CAU 插件 此故障转移群集的一个或多个节点上的 CAU 群集角色不能访问在自我更新选项中配置的 CAU 插件模块。 自我更新运行可能会失败。 - 按照提供 CAU 插件的产品的安装过程,确保在所有群集节点上安装已配置的 CAU 插件。
- 运行 Register-CauPlugin PowerShell cmdlet 以在所需群集节点上注册插件。
所有故障转移群集节点应具有相同的已注册 CAU 插件的集合 如果将配置为在更新运行中使用的插件更改为另一个不在所有群集节点上可用的插件,则自我更新运行可能会失败。 - 按照提供 CAU 插件的产品的安装过程,确保在所有群集节点上安装已配置的 CAU 插件。
- 运行 Register-CauPlugin PowerShell cmdlet 以在所需群集节点上注册插件。
配置的更新运行选项必须是有效的 为此故障转移群集配置的自我更新计划和更新运行选项是不完整或无效的。 自我更新运行可能会失败。 配置有效的自我更新计划和更新运行选项集。 例如,你可以使用 Set-CauClusterRole PowerShell cmdlet 配置 CAU 群集角色。
至少两个故障转移群集节点都必须是 CAU 群集角色的所有者 在自我更新模式中启动的更新运行将失败,因为 CAU 群集角色并没有要移动到的可能的所有者节点。 使用故障转移群集工具来确保所有群集节点都配置为 CAU 群集角色的可能所有者。 这是默认配置。
所有故障转移群集节点都必须能够访问 Windows PowerShell 脚本 并非所有 CAU 群集角色的可能所有者节点都可以访问已配置的 Windows PowerShell 更新前和更新后脚本。 自我更新运行将失败。 确保 CAU 群集角色所有可能的所有者节点都有权访问已配置的 PowerShell 更新前和更新后脚本。
所有故障转移群集节点应使用相同的 Windows PowerShell 脚本 并非所有 CAU 群集角色的可能所有者节点都使用已指定 Windows PowerShell 更新前和更新后脚本的相同副本。 自我更新运行可能会失败或显示意外的行为。 确保 CAU 群集角色所有可能的所有者节点都使用相同的 PowerShell 更新前和更新后脚本。
为更新运行指定的 WarnAfter 设置应小于 StopAfter 设置 指定的 CAU 更新运行超时值可以使警告超时无效。 在警告事件日志生成之前,可能会取消更新运行。 在更新运行选项中,配置小于“StopAfter”选项值的“WarnAfter”选项值。

其他参考