适用于:Azure Local 2311.2 及更高版本
本文介绍如何排查应用于 Azure 本地的解决方案更新以使其保持最新状态。
关于如何排查更新问题
如果系统是通过 Azure Local 的新部署创建的,则在部署过程中安装了业务流程协调程序。 编排器管理平台的所有更新——操作系统、驱动程序和固件、代理和服务。
新的更新解决方案包括重试和修正逻辑。 此逻辑尝试以非中断方式修复更新问题,例如重试群集感知更新 (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://free.blessedness.top/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://free.blessedness.top/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://free.blessedness.top/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://free.blessedness.top/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 本地上的 节点修复。 修复节点后,可以恢复更新。 |
收集更新日志
还可以收集诊断日志来帮助Microsoft识别和解决问题。
若要使用 Azure 门户收集更新的日志,请参阅 “恢复更新”。
若要收集更新失败的日志,请参阅 收集 Azure 本地的诊断日志。
查看更新摘要报告
若要使用 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记下
ResourceIDGUID。 此 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 门户运行更新。