排查 Azure 本地版本 23H2 的解决方案更新问题
适用于:Azure 本地版本 23H2
本文介绍如何排查应用于 Azure 本地的解决方案更新以使其保持最新状态。
关于故障排除更新
如果系统是通过 Azure 本地版本 23H2 的新部署创建的,则在部署期间安装了业务流程协调程序。 协调器管理平台的所有更新,包括操作系统、驱动程序和固件、代理和服务。
新的更新解决方案包括重试和修正逻辑。 此逻辑尝试以非中断方式修复更新问题,例如重试群集感知更新 (CAU) 运行。 如果无法自动修正更新运行,更新将失败。 更新失败时,Microsoft建议检查失败消息的详细信息,以确定相应的下一步操作。 如果适用,可以尝试恢复更新,以确定重试是否会解决问题。
排查准备情况检查问题
准备情况检查对于确保顺利应用更新、保持系统最新状态以及维护正确的系统功能至关重要。 准备情况检查在两种情况下分别进行和报告:
每 24 小时运行一次的系统运行状况检查。
在下载更新内容之后和开始安装之前运行的更新就绪情况检查。
系统运行状况检查和更新就绪情况检查的结果通常有所不同。 发生这种情况是因为更新就绪情况检查使用要安装的解决方案更新中的最新验证逻辑,而系统运行状况检查始终使用已安装版本的验证逻辑。
系统和更新前准备情况检查都执行类似的验证,并对三种类型的就绪情况检查进行分类:严重、警告和信息。
- 关键:防止应用更新的准备情况检查。 此状态指示在继续更新之前必须解决的问题。
- 警告:就绪情况检查也会阻止您应用更新,但您可以使用 PowerShell绕过这些检查。 此状态表明存在一些可能不够严重以至无法阻止更新的问题,但为了确保更新过程顺利进行,这些问题仍需重视和解决。
- 信息性:不会阻止更新的准备情况检查。 此状态提供有关系统状态的信息,以及任何不应直接影响更新过程的潜在问题。 这些检查是为了通知你,可能不需要立即采取行动。
故障排除步骤会根据具体的准备情况检查场景而有所不同。
使用 Azure 门户
方案 1:系统运行状况检查
在 Azure 更新管理器中准备安装系统更新时,会出现这种情况:
在系统列表中,查看更新准备的关键状态。
从列表中选择一个或多个系统,然后选择一次性更新。
在检查准备情况页上,查看准备情况检查列表及其结果。
在受影响的系统下,选择查看详细信息链接。
当详细信息框打开时,可以查看更多详细信息、单个系统结果和针对失败运行状况检查的补救措施。
按照修正说明解决故障。
注意
系统运行状况检查每 24 小时运行一次,因此在修正故障后,新结果可能需要长达 24 小时才能同步到 Azure 门户。 若要立即启动新的系统运行状况检查或进一步故障排除,请参阅 PowerShell 部分。
方案 2:更新准备情况检查
在 Azure 更新管理器中安装和跟踪系统更新时,会出现这种情况:
在历史记录中,从列表中选择失败的更新操作。
在检查准备情况页上,查看准备情况检查列表及其结果。
在受影响的系统下,选择查看详细信息链接。
当详细信息框打开时,可以查看更多详细信息、单个系统结果和针对失败运行状况检查的补救措施。
按照修正说明解决故障,然后选择“重试”按钮重试预更新准备情况检查,恢复更新。
若要进一步进行故障排除,请参阅 PowerShell 部分。
使用 PowerShell
方案 1:系统运行状况检查
若要通过 PowerShell 排查系统运行状况检查问题,请执行以下操作:
若要验证系统运行状况检查是否失败,请在系统中的某个计算机上运行以下命令:
Get-SolutionUpdateEnvironment
下面是示例输出:
PS C:\Users\lcmuser> Get-SolutionUpdateEnvironment ResourceId : redmond SbeFamily : VirtualForTesting HardwareModel : Virtual Machine LastChecked : 9/12/2023 10:34:42 PM PackageVersions : {Solution: 10.2309.0.20, Services: 10.2309.0.20, Platform: 1.0.0.0, SBE: 4.0.0.0} CurrentVersion : 10.2309.0.20 CurrentSbeVersion : 4.0.0.0 LastUpdated : State : AppliedSuccessfully HealthState : Failure HealthCheckResult : {Storage Pool Summary, Storage Services Physical Disks Summary, Storage Services Physical Disks Summary, Storage Services Physical Disks Summary...} HealthCheckDate : 9/12/2023 7:03:32 AM AdditionalData : {[SBEAdditionalData, Solution Builder extension is partially installed. Please install the latest Solution Builder Extension provided by your hardware vendor. For more information, see https://aka.ms/SBE.]} HealthState : Success HealthCheckResult : {} HealthCheckDate : 8/4/2022 9:10:36 PM PS C:\Users\lcmuser>
查看系统上的
HealthState
,并查看Failure
或Warning
值。若要筛选
HealthCheckResult
属性以识别失败的测试,请运行以下命令:$result = Get-SolutionUpdateEnvironment $result.HealthCheckResult | Where-Object {$_.Status -ne "SUCCESS"} | FL Title,Status,Severity,Description,Remediation
下面是示例输出:
Title : The machine proxy on each failover cluster node should be set to a local proxy server Status : FAILURE Severity : INFORMATIONAL Description : Validating cluster setup for update. Remediation : `https://learn.microsoft.com/en-us/windows-server/failover-clustering/cluster-aware-updating-requirements# tests-for-cluster-updating-readiness` Title : The CAU clustered role should be installed on the failover cluster to enable self-updating mode Status : FAILURE Severity : INFORMATIONAL Description : Validating cluster setup for update. Remediation : `https://learn.microsoft.com/en-us/windows-server/failover-clustering/cluster-aware-updating-requirements# tests-for-cluster-updating-readiness`
查看失败测试的
Remediation
字段,并采取适当措施来解决故障。解决失败后,运行以下命令再次调用系统运行状况检查:
Invoke-SolutionUpdatePrecheck -SystemHealth
使用
Get-SolutionUpdateEnvironment
以确认失败的运行状况检查已得到解决。 运行系统运行状况检查可能需要几分钟。下面是示例输出:
PS C:\Users\lcmuser> Get-SolutionUpdateEnvironment | FL HealthState, HealthCheckResult, HealthCheckDate HealthState : InProgress HealthCheckResult : HealthCheckDate : 1/1/0001 12:00:00 AM PS C:\Users\lcmuser> Get-SolutionUpdateEnvironment | FL HealthState, HealthCheckResult, HealthCheckDate HealthState : Success HealthCheckResult : {Storage Pool Summary, Storage Subsystem Summary, Storage Services Summary, Storage Services Summary...} HealthCheckDate : 10/18/2024 11:56:49 PM
方案 2:更新准备情况检查
更新就绪情况检查失败时,这会导致更新在系统上失败。 若要通过 PowerShell 解决更新准备检查的问题:
若要验证更新就绪情况检查是否失败,请在系统中的一台计算机上运行以下命令:
Get-SolutionUpdate | FT Version,State,HealthCheckResult
下面是示例输出:
PS C:\Users\lcmuser> Get-SolutionUpdate | FT Version,State,HealthCheckResult Version State HealthCheckResult ------- ----- ----------------- 10.2405.2.7 HealthCheckFailed {Storage Subsystem Summary, Storage Pool Summary, Storage Services Physical Disks Summary, Stora... PS C:\Users\lcmuser>
查看
State
了解更新,并查看HealthCheckFailed
值。若要筛选
HealthCheckResult
属性以识别失败的测试,请运行以下命令:$result = Get-SolutionUpdate $result.HealthCheckResult | Where-Object {$_.Status -ne "SUCCESS"} | FL Title,Status,Severity,Description,Remediation
下面是示例输出:
Title : The machine proxy on each failover cluster node should be set to a local proxy server Status : FAILURE Severity : INFORMATIONAL Description : Validating cluster setup for update. Remediation : https://learn.microsoft.com/en-us/windows-server/failover-clustering/cluster-aware-updating-requirements# tests-for-cluster-updating-readiness Title : The CAU clustered role should be installed on the failover cluster to enable self-updating mode Status : FAILURE Severity : INFORMATIONAL Description : Validating cluster setup for update. Remediation : https://learn.microsoft.com/en-us/windows-server/failover-clustering/cluster-aware-updating-requirements# tests-for-cluster-updating-readiness
查看失败测试中的
Remediation
字段,并酌情采取措施解决问题。解决失败后,运行以下命令再次调用更新准备情况检查:
Get-SolutionUpdate -Id <some ID> | Start-SolutionUpdate -PrepareOnly
排查更新失败的原因
如果存在导致更新失败的问题,检查详细的步骤进度以确定失败的地方通常是确定问题是可以通过简单的修复(和恢复)即可修复还是需要支持人员参与来解决问题的最佳方法。 失败步骤需要注意的关键事项包括:
失败步骤的名称和描述。
导致步骤失败的计算机或服务器(如果是计算机特定的问题)。
失败消息字符串(可能会将问题识别为具有记录在案的解决措施的特定已知问题)。
Microsoft 建议使用 Azure 门户来识别失败步骤的信息,如恢复更新所示。 或者,请参阅下一部分,了解如何使用 Start-MonitoringActionplanInstanceToComplete
在 PowerShell 中查看类似的详细信息。
有关更新失败情形和修正指南,请参阅下表。
步骤名称 | 问题类型 | 整改 |
---|---|---|
任意 | 更新期间系统断电或其他类似的中断。 | 1. 还原电源。 2.运行系统运行状况检查。 3.恢复更新。 |
CAU 更新 | 群集感知更新 (CAU) 更新运行失败,出现 max retries exceeded 故障。 |
如果有迹象表明已进行多次 CAU 尝试并且全部失败,通常最好先调查第一次失败。 使用第一次失败的开始时间和结束时间与正确的 Get-CauReport 输出相匹配,以便进一步调查失败。 |
任意 | 一个或多个节点上的内存、电源、启动驱动程序或类似严重故障。 | 请参阅 修复 Azure 本地版本 23H2 上的节点,了解如何修复失败的节点。 修复节点后,可以恢复更新。 |
收集更新日志
还可以收集诊断日志来帮助Microsoft识别和解决问题。
若要使用 Azure 门户收集更新的日志,请参阅恢复更新。
若要收集更新失败的日志,请参阅 收集 Azure 本地版本 23H2的诊断日志。
查看更新摘要报告
若要使用 PowerShell 查看详细的更新摘要报告,请在用于访问系统的客户端上执行以下步骤:
与计算机建立远程 PowerShell 会话。 以管理员身份运行 PowerShell 并运行以下命令:
Enter-PSSession -ComputerName <machine_IP_address> -Credential <username\password for the machine>
获取所有解决方案更新,然后筛选与特定版本对应的解决方案更新。 使用的版本对应于无法安装的解决方案更新的版本。
$Update = Get-SolutionUpdate | ? Version -eq "<Version string>" -verbose
为失败的解决方案更新运行确定操作计划。
$Failure = $update | Get-SolutionUpdateRun
为更新确定
ResourceID
。$Failure
下面是示例输出:
PS C:\Users\lcmuser> $Update = Get-SolutionUpdate| ? Version -eq "10.2303.1.7" -verbose PS C:\Users\lcmuser> $Failure = $Update|Get-SolutionUpdateRun PS C:\Users\lcmuser> $Failure ResourceId : redmond/Solution10.2303.1.7/6bcc63af-b1df-4926-b2bc-26e06f460ab0 Progress : Microsoft.AzureStack.Services.Update.ResourceProvider.UpdateService.Models.Step TimeStarted : 4/21/2023 10:02:54 PM LastUpdatedTime : 4/21/2023 3:19:05 PM Duration : 00:16:37.9688878 State : Failed
记下
ResourceID
GUID。 此 GUID 对应于ActionPlanInstanceID
.查看之前记录的
ActionPlanInstanceID
摘要。Start-MonitoringActionplanInstanceToComplete -actionPlanInstanceID <Action Plan Instance ID>
下面是示例输出:
PS C:\Users\lcmuser> Start-MonitoringActionplanInstanceToComplete -actionPlanInstanceID 6bcc63af-b1df-4926-b2bc-26e06f460ab0
恢复更新
若要恢复以前失败的更新运行,可以通过 Azure 门户 或 PowerShell 重试更新运行。
Azure 门户
强烈建议使用Azure 门户浏览到失败的更新,然后选择“重试”按钮。 此功能在更新下载、检查就绪情况和更新运行的安装阶段可用。
如果无法成功重新运行失败的更新或需要进一步排查错误,请执行以下步骤:
选择错误的查看详细信息。
打开详细信息框后,可以查看错误详细信息。 有关收集诊断日志的详细信息,可以单击“开具支持票证”按钮附近的如何收集日志链接。
有关检索日志的详细信息,请参阅 收集 Azure 本地的诊断日志。
此外,还可以选择开具支持票证按钮,填写相应的信息,并附加日志,以便 Microsoft 支持部门可以使用。
有关创建支持票证的详细信息,请参阅 创建支持请求。
PowerShell
如果使用 PowerShell 并且需要恢复以前失败的更新运行,请使用以下命令:
Get-SolutionUpdate | ? Version -eq "10.2302.0.31" | Start-SolutionUpdate
若要恢复以前因处于警告状态的更新运行状况检查而失败的更新,请使用以下命令:
Get-SolutionUpdate | ? Version -eq "10.2302.0.31" | Start-SolutionUpdate -IgnoreWarnings
后续步骤
详细了解如何 通过 PowerShell 运行更新。
详细了解如何通过Azure 门户运行更新。