次の方法で共有


Azure Local のソリューション更新プログラムのトラブルシューティング

適用対象: Azure Local の Hyperconverged デプロイ

この記事では、Azure Local に適用されるソリューションの更新をトラブルシューティングして最新の状態に保つ方法について説明します。

更新プログラムのトラブルシューティングについて

Azure Local の新しいデプロイを使用してシステムが作成された場合、デプロイ中にオーケストレーターがインストールされました。 オーケストレーターは、OS、ドライバー、ファームウェア、エージェント、サービスなど、プラットフォームのすべての更新プログラムを管理します。

新しい更新ソリューションには、再試行と修復ロジックが含まれています。 このロジックは、Cluster-Aware 更新プログラム (CAU) の実行の再試行など、中断しない方法で更新プログラムの問題を修正しようとします。 更新プログラムの実行を自動的に修復できない場合は、失敗します。 更新が失敗した場合は、エラー メッセージの詳細を調べて、適切な次のアクションを決定することをお勧めします。 必要に応じて、更新の再開を試みて、再試行によって問題が解決されるかどうかを判断できます。

準備チェックのトラブルシューティング

準備チェックは、更新プログラムをスムーズに適用し、システムを最新の状態に保ち、正しいシステム機能を維持するために不可欠です。 準備チェックは、次の 2 つのシナリオで個別に実行および報告されます。

  • 24 時間ごとに実行されるシステム正常性チェック。

  • 更新プログラムのコンテンツをダウンロードした後、インストールを始める前に実行される準備状況のチェックを更新します。

システム正常性チェックと更新準備チェックの結果が異なるのは一般的なことです。 更新準備チェックではインストールするソリューション更新プログラムの最新の検証ロジックが使用されるのに対して、システム正常性チェックでは常にインストールされているバージョンの検証ロジックが使用されるためにこれが発生します。

システム準備チェックと更新前準備チェックの両方で同様の検証が実行され、3 種類の準備チェック (重大、警告、情報) が分類されます。

  • 重大: 更新プログラムの適用を妨げる準備チェック。 更新を続行する前に解決する必要がある問題がある場合にこの状態になります。
  • 警告: 更新プログラムの適用を妨げる準備チェックを行いますが、これらをバイパスすることもできます。 更新を停止するほど重大ではない可能性がある潜在的な問題がある場合にこの状態になりますが、スムーズな更新プロセスを確保するために対処する必要があります。
  • 参考情報: 更新をブロックしない準備チェック。 このステータスでは、システムの状態と、更新プロセスに直接は影響しないであろう潜在的な問題に関する情報が提供されます。 これらのチェックはユーザーに注意を促すものであり、すぐに対処する必要がない場合もあります。

トラブルシューティングの手順は、準備チェックの対象となるシナリオによって異なります。

Azure Portal の使用

Azure portal の使用、シナリオ 1: システム正常性チェック

このシナリオは、Azure Update Manager でシステムの更新プログラムをインストールする準備をするときに発生します。

  1. システムの一覧で、更新の準備重大な状態を確認します。

    [Update Manager] ページのスクリーンショット。

  2. 一覧から 1 つ以上のシステムを選択し、[ 今すぐインストール] を選択します。

  3. [ 準備状況の確認 ] タブで、準備チェックとその結果の一覧を確認します。

    1. [詳細] の下にあるリンクを選択します。

    2. 詳細ボックスが開いたら、詳細、個々のシステム結果、および失敗した正常性チェックの 修復 を表示できます。

    [更新プログラムのインストール] ページのスクリーンショット。

    エラーを解決するには、提供されている修復手順に従います。

    メモ

    システム正常性チェックは 24 時間ごとに実行されるため、障害の修復後に新しい結果が Azure portal に同期されるまでに最大 24 時間かかる場合があります。 新しいシステム正常性チェックをすぐに開始するか、さらにトラブルシューティングを行うには、 PowerShell セクションを参照してください。

Azure portal を使用するシナリオ 2: 更新準備チェック

このシナリオは、Azure Update Manager でシステムの更新プログラムをインストールして追跡するときに発生します。

  1. [ 履歴] で、失敗した更新プログラムの実行を一覧から選択します。

  2. [ システムの準備完了の検証 ] タブで、準備チェックとその結果の一覧を確認します。

    1. 詳細の下にある詳細の表示リンクを選択します。

    2. 詳細ボックスが開いたら、詳細、個々のシステム結果、および失敗した正常性チェックの 修復 を表示できます。

    [更新の進行状況] ページのスクリーンショット。

    エラーを解決するには、修復手順に従い、[ 再試行 ] ボタンを選択して更新前の準備チェックを再試行し、 更新プログラムを再開します。

    トラブルシューティングの詳細については、 PowerShell のセクションを参照してください。

PowerShell の使用

PowerShell の使用、シナリオ 1: システム正常性チェック

PowerShell を使用してシステムの正常性チェックのトラブルシューティングを行うには:

  1. システムの正常性チェックが失敗したことを検証するには、システム内のいずれかのマシンで次のコマンドを実行します。

    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>
    
  2. システムの HealthState を確認し、Failure または Warning 値を表示します。

  3. HealthCheckResultプロパティをフィルター処理して、失敗したテストを特定するには、次のコマンドを実行します。

    $result = Get-SolutionUpdateEnvironment
    
    $result.HealthCheckResult | Where-Object {$_.Status -ne "SUCCESS"} | Format-List 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`
    
  4. 失敗したテストの Remediation プロパティを確認し、必要に応じてアクションを実行してエラーを解決します。

  5. 失敗したテストの原因を特定するためにさらに診断情報が必要な場合は、AdditionalData パラメーターを使用して -FullHealthCheckDetails プロパティを調べます。

    $FullResults = Get-SolutionUpdateEnvironment -FullHealthCheckDetails
    
    $Failures = $FullResults.HealthCheckResult | Where-Object { $_.Status -ne "SUCCESS" -and $_.Severity -ne "INFORMATIONAL" }
    
    $Failures | Format-List *
    
  6. 存在する場合は、 AdditionalData プロパティに表示される診断情報 ("FailedMachines"、"Source"、"ExceptionMessage" など) を使用して、テストエラーの原因となっている物理マシンを特定し、 Remediation プロパティから提供された情報と共にエラーを解決します。

  7. エラーを解決した後、次のコマンドを実行して、システムの正常性チェックを再度呼び出します。

    Invoke-SolutionUpdatePrecheck -SystemHealth
    
  8. Get-SolutionUpdateEnvironmentを使用して、失敗した正常性チェックエラーが解決されたことを確認します。 システムの正常性チェックが実行されるまでに数分かかる場合があります。

    出力例を次に示します。

    PS C:\Users\lcmuser>  Get-SolutionUpdateEnvironment | Format-List HealthState, HealthCheckResult, HealthCheckDate 
    
    HealthState       : InProgress 
    HealthCheckResult : 
    HealthCheckDate   : 1/1/0001 12:00:00 AM 
    
    PS C:\Users\lcmuser>  Get-SolutionUpdateEnvironment | Format-List 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 
    

PowerShell の使用、シナリオ 2: 更新準備チェック

更新準備チェックが失敗すると、システムで更新が失敗します。 PowerShell を使用して更新準備チェックのトラブルシューティングを行うには:

  1. 更新準備チェックが失敗したことを検証するには、システム内のいずれかのマシンで次のコマンドを実行して、更新プログラムの ResourceId を特定します。

    Get-SolutionUpdate | Format-Table ResourceId, State, Version
    

    出力例を次に示します。

    PS C:\Users\lcmuser> Get-SolutionUpdate | Format-Table ResourceId, State, Version
    
    ResourceId                     State                  Version 
    ----------                     -----                  -------
    redmond/Solution10.2405.2.7    HealthCheckFailed      10.2405.2.7
    
    
  2. インストールしようとしている更新プログラムの ResourceId を使用して、前のコマンドの出力から、 Id パラメーターを更新プログラムの ResourceId に置き換えて、次のコマンドを実行します。

    Get-SolutionUpdate -Id <Resource ID> | Format-Table Version, State, HealthCheckResult
    

    出力例を次に示します。

    PS C:\Users\lcmuser> Get-SolutionUpdate -Id redmond/Solution10.2405.2.7 | Format-Table 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>
    
  3. 更新プログラムの State を確認し、HealthCheckResult 値を表示します。

  4. HealthCheckResult プロパティをフィルター処理して失敗したテストを特定するには、次のコマンドを実行し、Idの値を、前のコマンドで識別した更新プログラムのResourceIdに置き換えます。

    $result = Get-SolutionUpdate -Id <Resource ID>
    $result.HealthCheckResult | Where-Object {$_.Status -ne "SUCCESS"} | Format-List 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
    
  5. 失敗したテストの Remediation プロパティに示されているリンクを使用します。 Webブラウザーを搭載したデバイスで記事を見直し、問題を解決するための適切な対策を決定します。

  6. 失敗したテストの原因を特定するためにさらに診断情報が必要な場合は、AdditionalData パラメーターを使用して -FullHealthCheckDetails プロパティを調べます。

    $FullResults = Get-SolutionUpdate -Id <Resource ID> -FullHealthCheckDetails
    
    $Failures = $FullResults.HealthCheckResult | Where-Object { $_.Status -ne "SUCCESS" -and $_.Severity -ne "INFORMATIONAL" }
    
    $Failures | Format-List *
    
  7. 存在する場合は、 AdditionalData プロパティに表示される診断情報 ("FailedMachines"、"Source"、"ExceptionMessage" など) を使用して、テストエラーの原因となっている物理マシンを特定し、 Remediation プロパティから提供された情報と共にエラーを解決します。

  8. エラーを解決した後、次のコマンドを実行して、更新準備チェックを再度呼び出します。

    Get-SolutionUpdate -Id <Resource ID> | Start-SolutionUpdate -PrepareOnly
    

更新プログラムのエラーに関するトラブルシューティング

更新が失敗した場合は、詳細な手順の進行状況を確認して、失敗した場所を特定します。 これは、簡単な修復と再開で問題を修正できるか、問題を解決するためにサポート 契約が必要かを判断するのに役立ちます。 失敗した手順で注意すべき重要な項目は次のとおりです。

  • 失敗したステップの名前と説明。

  • ステップが失敗したコンピューターまたはサーバー (コンピューター固有の問題がある場合)。

  • エラー メッセージ文字列 (文書化された修復に関する特定の既知の問題の問題を特定できる可能性があります)。

Microsoft では、「 更新の再開」に示すように、Azure portal を使用して失敗したステップ情報を特定することをお勧めします。 または、Start-MonitoringActionplanInstanceToComplete を使用して PowerShell で同様の詳細を表示する方法については、次のセクションを参照してください。

次の表に、更新プログラムの失敗シナリオと修復ガイドラインを示します。

ステップ名 問題の種類 是正措置
[任意] 更新中のシステムの停電またはその他の同様の中断。 1. 電源を回復します。
2. システムの正常性チェックを実行します。
3. 更新プログラムを再開します。
CAU の更新 クラスター対応更新プログラム (CAU) 更新プログラムの実行は、max retries exceeded エラーで失敗します。 複数の CAU 試行が失敗した場合は、最初のエラーを調査します。

最初の障害の開始時刻と終了時刻を使用して、正しい Get-CauReport 出力と一致させ、障害をさらに調査します。
[任意] 1 つ以上のノードのメモリ、電源、ブート ドライバー、または同様の重大な障害。 障害 が発生したノードを修復する方法については、「Azure Local のノード を修復する」を参照してください。
ノードが修復された後、更新を再開できます。

更新ログを収集する

また、Microsoft が問題を特定して修正するのに役立つ診断ログを収集することもできます。

Azure portal を使用して更新プログラムのログを収集するには、「 更新プログラムの再開」を参照してください。

更新エラーのログを収集するには、「 Azure Local の診断ログを収集する」を参照してください。

更新の概要レポートを表示する

PowerShell を使用して詳細な更新の概要レポートを表示するには、システムへのアクセスに使用しているクライアントで次の手順に従います。

  1. コンピューターとのリモート PowerShell セッションを確立します。 管理者として PowerShell を実行し、次のコマンドを実行します。

    Enter-PSSession -ComputerName <machine_IP_address> -Credential <username\password for the machine>
    
  2. すべてのソリューションの更新プログラムを取得し、特定のバージョンに対応するソリューションの更新プログラムをフィルター処理します。 使用されているバージョンは、インストールに失敗したソリューション更新プログラムのバージョンに対応しています。

    $Update = Get-SolutionUpdate | ? Version -eq "<Version string>" -verbose
    
  3. 失敗したソリューション更新プログラムの実行のアクション プランを特定します。

    $Failure = $update | Get-SolutionUpdateRun
    
  4. 更新プログラムの 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/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
    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に対応します。

  5. 以前にメモした ActionPlanInstanceID の概要を表示してください。

    Start-MonitoringActionplanInstanceToComplete -actionPlanInstanceID <Action Plan Instance ID>
    

    サンプル出力は次のとおりです。

    PS C:\Users\lcmuser> Start-MonitoringActionplanInstanceToComplete -actionPlanInstanceID a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
    

    PowerShell のログ収集の出力のスクリーンショット。

更新プログラムを再開する

以前に失敗した更新プログラムの実行を再開するには、Azure portal または PowerShell を使用して更新プログラムの実行を再試行します。

Azure ポータル

Azure portal を使用して、失敗した更新プログラムを参照し、[ 再試行 ] ボタンを選択することを強くお勧めします。 この機能は、更新プログラムのダウンロード、システムの準備ができていることを検証する、更新プログラムの実行の更新プログラムをインストールする段階で使用できます。

[再試行に失敗した更新] ボタンのスクリーンショット。

失敗した更新プログラムを正常に再実行できない場合、またはエラーをさらにトラブルシューティングする必要がある場合は、次の手順に従います。

  1. エラーの 詳細の表示 を選択します。

  2. 詳細ボックスが開いたら、エラーの詳細を確認できます。 診断ログの収集の詳細については、[サポート チケットを開く] ボタンの近くにある [ログの収集方法 ] リンクを選択できます。

    エラー ログをダウンロードするスクリーンショット。

    ログの取得の詳細については、「 Azure Local の診断ログを収集する」を参照してください。

  3. さらに、[ サポート チケットを開く ] ボタンを選択し、適切な情報を入力し、ログを添付して、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 portal を使用して更新プログラムを実行する方法の詳細について説明します。