通过 PowerShell 更新 Azure 本地版本 23H2

适用于:Azure 本地版本 23H2

本文介绍如何通过 PowerShell 将解决方案更新应用到 Azure 本地。

本文中的过程适用于运行最新版本的 Azure Local 且安装了业务流程协调程序(生命周期管理器)的单节点系统和多节点系统。 如果系统是通过 Azure Local 版本 23H2 的新部署创建的,则业务流程协调程序会自动作为部署的一部分进行安装。

重要

此处介绍的过程仅适用于从一个 Azure 本地版本版本 23H2 更新到另一个更高版本时。 有关较旧版本的更新的信息,请参阅 Azure 本地版本 22H2 的更新群集。

关于解决方案更新

Azure 本地解决方案更新可以包括平台、服务和解决方案扩展更新。 有关上述每种更新类型的详细信息,请参阅 关于 Azure 本地版本 23H2 的更新。

应用解决方案更新时,需要执行以下高级步骤:

  1. 确保所有先决条件都已完成。
  2. 通过远程 PowerShell 连接到 Azure 本地实例。
  3. 确认当前安装的软件版本,并验证群集是否运行状况良好。
  4. 发现可用的更新,并筛选可应用于系统的更新。
  5. (推荐)预下载更新并评估系统的更新就绪情况。
  6. 安装更新并跟踪更新的进度。 根据需要监视详细进度。
  7. 验证安装的更新版本。

安装更新所需的时间因以下因素而异:

  • 更新的内容。
  • 在系统上加载。
  • 系统中的计算机数。
  • 使用的硬件类型。
  • 使用的解决方案扩展。

下表汇总了典型单节点或多节点系统的大致时间估计值:

系统/时间 运行状况检查时间
hh:mm:ss
安装更新的时间
hh:mm:ss
单节点 ~ 03:00 ~ 01:30
4 节点 ~ 05:00 ~ 04:00

重要

不支持使用第三方工具安装更新。

先决条件

在开始之前,请确保:

  • 有权访问运行 2311 或更高版本的 Azure 本地版本 23H2 系统。 应在 Azure 中注册系统。
  • 有权访问可连接到 Azure 本地的客户端。
  • 您可以通过网络访问方案更新。

连接到 Azure 本地

按照客户端上的这些步骤连接到 Azure 本地中的其中一台计算机。

  1. 在用于连接到系统的客户端上以管理员身份运行 PowerShell。

  2. 打开到 Azure 本地计算机上的远程 PowerShell 会话。 运行以下命令,并在出现提示时提供计算机的凭据:

    $cred = Get-Credential
    Enter-PSSession -ComputerName "<Computer IP>" -Credential $cred 
    

    注意

    使用部署用户帐户凭据登录。 这是您在准备 Active Directory 时创建并用于部署 Azure 本地服务的帐户。

    展开此部分以查看示例输出。

    下面是示例输出:

    PS C:\Users\Administrator> $cred = Get-Credential
     
    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    Credential
    PS C:\Users\Administrator> Enter-PSSession -ComputerName "100.100.100.10" -Credential $cred 
    [100.100.100.10]: PS C:\Users\Administrator\Documents>
    

步骤 1:确认软件和验证系统运行状况

在发现更新之前,请确保系统正在运行 Azure 本地版本 23H2、软件版本 2311 或更高版本。

  1. 确保已使用部署用户帐户连接到计算机。 运行下面的命令:

    whoami
    
  2. 若要确保系统正在运行 Azure 本地版本 23H2,请在系统之一计算机上运行以下命令:

    Get-SolutionUpdateEnvironment
    
    展开此部分以查看示例输出。
    PS C:\Users\lcmuser> Get-SolutionUpdateEnvironment
    ResourceId : redmond 
    SbeFamily : GenA 
    HardwareModel : Contoso680 
    LastChecked : 10/2/2024 12:38:21 PM 
    PackageVersions : {Solution: 10.2408.0.29, Services: 10.2408.0.29, Platform: 1.0.0.0, SBE: 4.1.2409.1} 
    CurrentVersion : 10.2408.0.29 
    CurrentSbeVersion : 4.1.2409.1 
    LastUpdated : 
    State : UpdateAvailable 
    HealthState : Success 
    HealthCheckResult : {Storage Subsystem Summary, Storage Pool Summary, Storage Services Physical Disks Summary, Storage 
    Services Physical Disks Summary...} 
    HealthCheckDate : 10/2/2024 10:46:44 AM 
    AdditionalData : 
    
  3. 记下系统上的 CurrentVersion。 当前版本反映系统正在运行的解决方案版本。

  4. 请查看您系统上的 HealthState,并确认您的系统运行状况良好。 如果 HealthState 是 FailureErrorWarning,请查看排查准备情况检查问题,再进行下一步。

步骤 2:发现更新

按照以下步骤发现系统的可用更新:

  1. 使用部署用户帐户连接到 Azure 本地计算机上的计算机。

  2. 使用 Get-SolutionUpdate 查看处于 Ready 状态且可安装的更新的详细信息。

    Get-SolutionUpdate | Where-Object {$_.State -like "Ready*" -or $_.State -like "Additional*"} | FL DisplayName, Description, ResourceId, State, PackageType 
    
    展开此部分以查看示例输出。

    下面是示例输出:

    PS C:\Users\lcmuser> Get-SolutionUpdate | Where-Object {$_.State -like "Ready*" -or $_.State -like "Additional*"} | FL DisplayName, Description, ResourceId, State, PackageType
    
    DisplayName           : 2024.10 Cumulative Update
    ResourceId            : redmond/Solution10.2408.2.7
    Version               : 10.2408.2.7
    State                 : Ready
    PackageType           : Solution
    
    DisplayName           : SBE_Contoso_GenA_4.1.2410.5
    ResourceId            : redmond/SBE4.1.2410.5
    Version               : 4.1.2410.5
    State                 : AdditionalContentRequired
    PackageType           : SBE
    

    这可能会列出一个或多个选项,包括完整的 Solution 更新(可能还包括解决方案生成器扩展)和单独的 SBE 更新的条目。

    如果看不到列出的预期更新,请从命令中删除筛选器,以查看它是否以 non-ready 状态列出:

    Get-SolutionUpdate | FL DisplayName, Description, ResourceId, State, PackageType 
    

    更多信息请参阅关于更新阶段,以了解更新状态的详细信息。

  3. 选择要安装的更新并记下其 ResourceId。 查看更新的详细信息,确认已选择要安装的所需更新。

    $Update = Get-SolutionUpdate –Id <ResourceId>
    $Update
    
    展开此部分以查看示例输出。

    下面是示例输出:

    PS C:\Users\lcmuser> $Update = Get-SolutionUpdate –Id redmond/Solution10.2408.2.7
    PS C:\Users\lcmuser> $Update
    ResourceId            : redmond/Solution10.2408.2.7
    InstalledDate         : 
    Description           :
    State                 : Ready
    KbLink                : https://learn.microsoft.com/en-us/azure-stack/hci/
    MinVersionRequired    : 10.2408.0.0
    MinSbeVersionRequired : 2.0.0.0
    PackagePath           : C:\ClusterStorage\Infrastructure_1\Shares\SU1_Infrastructure_1\Updates\Packages\Solution10.2408
                            .2.2
    PackageSizeInMb       : 1278
    DisplayName           : 2024.10 Cumulative Update
    Version               : 10.2408.2.7
    SbeVersion            : 4.1.2410.5
    Publisher             : Microsoft
    ReleaseLink           : https://learn.microsoft.com/en-us/azure-stack/hci/
    AvailabilityType      : Online
    PackageType           : Solution
    Prerequisites         : {}
    UpdateStateProperties : The update requires additional content distributed by the OEM.
    AdditionalProperties  : {SBEReleaseLink, SBENotifyMessage, SBEFamily, SBEPublisher...}
    ComponentVersions     : {Services: 10.2408.2.7, Platform: 10.2408.2.7, SBE: 4.1.2410.5}
    RebootRequired        : Unknown
    HealthState           : Unknown
    HealthCheckResult     : 
    HealthCheckDate       : 1/1/0001 12:00:00 AM
    BillOfMaterials       : {PlatformUpdate, ServicesUpdate}
    

    注意

    对于尚未计划或准备的更新,HealthStateUnknown 状态是正常的。

  4. (可选)查看更新包组件的版本。

    $Update = Get-SolutionUpdate -Id <ResourceID>
    $Update.ComponentVersions
    
    展开此部分以查看示例输出。

    下面是示例输出:

    PS C:\Users\lcmuser> $Update = Get-SolutionUpdate -Id redmond/Solution10.2408.2.7
    
    PS C:\Users\lcmuser> $Update.ComponentVersions
    
    PackageType Version      LastUpdated
    ----------- -------      -----------
    Services    10.2408.2.7
    Platform    10.2408.2.7
    SBE         4.1.2410.5
    
    PS C:\Users\lcmuser>
    
    

现在可以继续 下载并安装更新

步骤 3:导入和重新发现更新

这是可选步骤。 在以下方案之一中,可能需要导入更新:

  • 要安装的更新报告的状态为 AdditionalContentRequired。 在你可以将更新计划为 AdditionalContentRequired 状态之前,可能需要一些额外的内容。 有关此状态和解决方案扩展更新的详细信息,请参阅 Azure 本地版本 23H2上的 解决方案扩展更新。

  • 你希望安装的更新未列出,因为支持会为你提供专用版本来解决你遇到的问题。

  • 更新将列为 Ready,但由于系统网络连接有限,你希望避免解决方案扩展更新的联机下载阶段。

按照以下步骤导入并发现您的解决方案更新。

  1. 使用部署用户帐户连接到 Azure 本地计算机上的计算机。

  2. 转到网络共享并获取使用的更新包。 验证导入的更新包是否包含以下文件:

    • SolutionUpdate.xml
    • SolutionUpdate.zip
    • AS_Update_10.2408.2.7.zip

    如果解决方案生成器扩展是更新包的一部分,则还应看到以下文件:

    • SBE_Contoso_GenA_4.1.2410.5.xml
    • SBE_Contoso_GenA_4.1.2410.5.zip
    • SBE_Discovery_Contoso.xml
  3. 下载您要导入的文件到 Azure 本地实例可访问的位置。 如果要导入解决方案扩展,始终下载三个与以下命名模式匹配的文件:

    文件名模式 描述
    SBE_Discovery_<Manufacturer>.xml SBE_Discovery_Contoso.xml 启用更新发现的解决方案扩展发现清单。
    SBE_<Manufacturer>_<Family>_<Version>.xml SBE_Contoso_GenA_4.1.2410.5.xml 包含解决方案扩展清单和已签名软件材料清单的文件
    SBE_<Manufacturer>_<Family>_<Version>.zip SBE_Contoso_GenA_4.1.2410.5.zip 具有解决方案扩展名有效负载的文件
  4. 在系统的基础结构卷中的以下位置创建更新服务用于发现的文件夹。

    New-Item C:\ClusterStorage\Infrastructure_1\Shares\SU1_Infrastructure_1\import -ItemType Directory 
    
  5. 将更新文件复制到上一步中创建的文件夹。

  6. 使用更新服务手动发现更新包。 运行下面的命令:

    Add-SolutionUpdate -SourceFolder C:\ClusterStorage\Infrastructure_1\Shares\SU1_Infrastructure_1\import
    
  7. 验证更新服务是否发现更新包,以及它是否可用于开始准备和安装。 重复 Get-SolutionUpdate 命令以重新发现更新。

可以下载更新并执行一组检查,以验证群集的更新就绪情况,而无需启动安装。

  1. 若要在不启动安装的情况下下载更新,请运行以下命令:

    Get-SolutionUpdate -Id <ResourceId> | Start-SolutionUpdate –PrepareOnly
    
    展开此部分以查看示例输出。

    下面是一个示例输出:

    PS C:\Users\lcmuser> Get-SolutionUpdate -Id redmond/Solution10.2408.2.7 | Start-SolutionUpdate –PrepareOnly
    redmond/SBE4.1.2410.9/<GUID>
    
  2. 若要跟踪更新进度,请监视更新状态。 运行下面的命令:

    Get-SolutionUpdate -Id <ResourceId> | ft Version,State,UpdateStateProperties,HealthState
    

    更新启动时,将执行以下操作:

    • 更新的下载开始。 根据下载包的大小和网络带宽,下载可能需要几分钟时间。
    展开此部分以查看示例输出。

    下面是下载更新时的示例输出:

    PS C:\Users\lcmuser> Get-SolutionUpdate -Id redmond/Solution10.2408.2.7 | ft Version,State,HealthState
    
    Version              State          HealthState
    -------              -----          ---------------------
    10.2408.2.7          Downloading    InProgress
    
  3. 下载包后,执行就绪情况检查以评估系统的更新就绪情况。 有关准备情况检查的详细信息,请参阅 更新阶段。 在此阶段, 更新的状态 显示为 HealthChecking

    展开此部分以查看示例输出。
    PS C:\Users\lcmuser> Get-SolutionUpdate|ft Version,State,UpdateStateProperties,HealthState
    
    Version         State             HealthState
    -------         -----             --------------------- 
    10.2408.2.7     HealthChecking    InProgress
    
  4. 完成就绪情况检查后,系统会准备好安装更新。 更新的 State 显示为 ReadyToInstall。 如果更新的 State 显示为 HealthCheckFailed,请参阅排查准备情况检查问题,然后再继续操作。

步骤 5:启动更新

在安装过程中,系统计算机可能会重新启动,可能需要再次建立远程 PowerShell 会话来监视更新。 如果更新单个计算机,Azure 本地会经历停机。

通过选择单个更新并将其传递给 Start-SolutionUpdate 来启动更新。

$InstanceId = Get-SolutionUpdate -Id <ResourceId>  | Start-SolutionUpdate

注意

如果跳过了步骤 4(并且未调用 Start-SolutionUpdate -PrepareOnly),则调用 Start-SolutionUpdate 首先下载更新并执行一组检查,以在开始更新安装之前验证群集的更新准备情况。

展开此部分以查看示例输出。
PS C:\Users\lcmuser> $InstanceId = Get-SolutionUpdate -Id redmond/Solution10.2408.2.7 | Start-SolutionUpdate

这会启动安装更新的过程。

提示

保存 $InstanceId,因为稍后可以使用它来排查 Azure Local 解决方案更新问题

步骤 6:跟踪更新进度

Microsoft建议在启动更新后跟踪 Azure 门户中的群集更新进度。 即使通过 PowerShell 启动更新,门户也是跟踪更新进度的好选择,因为它不会受到状态报告中断的影响。

提示

  • 如果通过 PowerShell 进行监视,建议将 PowerShell 会话连接到群集中的最后一台服务器,以避免会话提前断开连接。 当系统重新启动时,会话会断开连接,因此通过从已更新的服务器进行监控可以最大程度地减少断开连接的频率。
  • 建议在 Azure 门户中跟踪群集更新进度,以避免在计算机重新启动后重新连接到 PowerShell 会话。

按照以下步骤使用 PowerShell 跟踪更新进度。

  1. 若要跟踪更新进度,请监视更新状态。 运行下面的命令:

    Get-SolutionUpdate -Id <ResourceId> | ft Version,State,UpdateStateProperties,HealthState
    

    更新会按照审查更新阶段中的描述经历多个状态。

    使用上述命令,以下示例展示了如何使用 StateUpdateStateProperties 属性在更新过程的各个阶段进行监控。

    • 正在下载状态

      调用 Start-SolutionUpdate 后不久,将开始下载更新。 根据下载包的大小和网络带宽,下载可能需要几分钟时间。

      展开此部分以查看示例输出。

      下面是下载更新时的示例输出:

      PS C:\Users\lcmuser> Get-SolutionUpdate -Id redmond/Solution10.2408.2.7 |ft Version,State,UpdateStateProperties,HealthState
      
      Version              State         HealthState
      -------              -----         ------------
      10.2408.2.7          Downloading   Unknown
      
    • 正在准备状态

      更新下载完成后,需要对更新进行准备。 在准备状态下,会确认更新文件哈希,并提取文件以准备和暂存更新文件。

      展开此部分以查看示例输出。

      下面是下载更新时的示例输出:

      PS C:\Users\lcmuser> Get-SolutionUpdate -Id redmond/Solution10.2408.2.7 |ft Version,State,HealthState
      
      Version              State       HealthState
      -------              -----       -----------
      10.2408.2.7          Preparing   Unknown
      
    • 运行状况检查状态

      准备好更新后,将执行准备情况检查来评估群集的更新就绪情况。 有关准备情况检查的详细信息,请参阅 更新阶段

      在此阶段,更新的 State 显示为 HealthChecking。 如果更新的 State 显示为 HealthCheckFailed,请参阅排查准备情况检查问题,然后再继续操作。

      展开此部分以查看示例输出。

      下面是更新进行 HealthChecking 时的示例输出:

      PS C:\Users\lcmuser> Get-SolutionUpdate -Id redmond/Solution10.2408.2.7 |ft Version,State,HealthState
      
      Version              State           HealthState
      -------              -----           -----------
      10.2408.2.7          HealthChecking  Unknown
      
    • 安装状态 系统准备就绪时,更新将转换为 Installing。 在此阶段,更新的 State 显示为 Installing,已完成的安装百分比显示为 UpdateStateProperties

      展开此部分以查看示例输出。

      下面是更新进行 Installing 时的示例输出:

      PS C:\Users\lcmuser> Get-SolutionUpdate -Id redmond/Solution10.2408.2.7 |ft Version,State,HealthState
      
      Version              State       HealthState
      -------              -----       -----------
      10.2408.2.7          Installing   Unknown
      

安装完成后, 状态 将更改为 Installed。 有关更新的各种状态的详细信息,请参阅 安装进度和监视

步骤 7:恢复更新(如果需要)

若要通过 PowerShell 恢复以前失败的更新运行,请使用以下命令:

Get-SolutionUpdate -Id <ResourceId>  | Start-SolutionUpdate

若要恢复以前因更新就绪情况检查处于 Warning 状态而失败的更新,请使用以下命令:

Get-SolutionUpdate -Id <ResourceId>  | Start-SolutionUpdate -IgnoreWarnings    

若要排查其他更新运行问题,请参阅 更新疑难解答

步骤 8:验证安装

安装更新后,验证环境的解决方案版本和操作系统版本。

  1. 更新处于 Installed 状态后,请检查环境解决方案版本。 运行下面的命令:

    Get-SolutionUpdateEnvironment | ft State, CurrentVersion
    
    展开此部分以查看示例输出。
    PS C:\Users\lcmuser> Get-SolutionUpdateEnvironment | ft State, CurrentVersion
    
    State               CurrentVersion
    -----               --------------
    AppliedSuccessfully 10.2408.2.7
    
    
  2. 检查操作系统版本,确认它是否与安装的食谱匹配。 运行下面的命令:

    cmd /c ver
    
    展开此部分以查看示例输出。

    下面是示例输出:

    PS C:\Users\lcmuser> cmd /c ver
    
    Microsoft Windows [Version 10.0.25398.1189]
    PS C:\Users\lcmuser>
    

下一步