Azure Local のソリューション アップグレードの準備状態を検証する

適用対象: Azure Local 2311.2 以降

この記事では、オペレーティング システム (OS) のアップグレード後に Azure Local のアップグレード準備状況を評価する方法について説明します。

この記事では、OS バージョン 24H2 または 23H2 を 新しい バージョンとして、バージョン 22H2 を 古い バージョンとして参照します。

ソリューションアップグレードの準備状況を評価する

この 推奨 手順は、アップグレードに対する Azure Local の準備状況を評価するのに役立ちます。 次の手順は、アップグレードの準備状況を評価するのに役立ちます。

  • 環境チェッカーをインストールして使用して、ネットワーク ATC がコンピューターにインストールされ、有効になっていることを確認します。 システムで実行されている Azure Arc Resource Bridge のプレビュー バージョンがないことを確認します。
  • インフラストラクチャ ボリュームに十分なストレージ領域があることを確認します。
  • 必要な Windows 機能のインストール、アプリケーション制御ポリシーの有効化、BitLocker の中断、OS 言語などの他のチェックを実行します。
  • アップグレードをブロックする検証チェックを確認して修復します。

環境チェッカーを使用してアップグレードの準備状況を検証する

ソリューションをアップグレードする前に、環境チェッカーを使用してシステムの準備状況を検証することをお勧めします。 詳細については、「環境チェッカーで環境準備状態を評価する」を参照してください。 ソリューションの更新に対して修正アクションを準備する必要がある潜在的な結果を含むレポートが生成されます。

一部のアクションでは、マシンの再起動が必要です。 検証レポートの情報を使用すると、準備が整う前にメンテナンス期間を計画できます。 システムが要件を満たしていることを確認するために、ソリューションのアップグレード中に同じチェックが実行されます。

表: アップグレードの検証テストをブロックする

次の表に、アップグレードをブロックする重大度 Critical の検証テストを示します。 ソリューションのアップグレードを適用する前に、アップグレードをブロックする項目に対処する必要があります。

名前 重大度
Windows OS は 23H2 です クリティカル
AKS HCI のインストール状態 クリティカル
サポートされているクラウドの種類 クリティカル
BitLocker の一時停止 クリティカル
クラスターが存在する クリティカル
同じクラスター内のすべてのノード クリティカル
クラスター ノードが稼働中 クリティカル
ストレッチ クラスター クリティカル
言語は英語 クリティカル
Microsoft オンプレミス クラウド (MOC) のインストール状態 クリティカル
実行中の MOC サービス クリティカル
ネットワーク ATC 機能がインストールされている クリティカル
必要な Windows 機能 クリティカル
記憶域プール クリティカル
ストレージ ボリューム クリティカル
Windows Defender for Application Control (WDAC) の有効化 クリティカル

表: アップグレードの非ブロッキング検証テスト

次の表に、Azure Local 2311.2 で導入された新機能を利用するためにアップグレード後に対処する必要がある重大度 警告 を含む検証テストを示します。

名前 重大度
トラステッド プラットフォーム モジュール (TPM) プロパティ OwnerClearDisabled が False である 警告
TPM プロパティの TpmReady が True です 警告
TPM プロパティの TpmPresent が True です 警告
TPM プロパティの LockoutCount は 0 です 警告
TPM プロパティの TpmActivated が True です 警告
TPM プロパティの ManagedAuthLevel がいっぱいです 警告
TPM プロパティ AutoProvisioning が有効 警告
TPM プロパティの LockedOut が False です 警告
TPM プロパティの TpmEnabled が True です 警告
WinRM CredSSP 警告

CredSSP の設定が正しくないと、アップグレードが失敗する可能性があります。 管理者は、設定が正しく構成され、機能していることを確認する必要があります。

環境チェッカーを設定する

Azure ローカル システムのマシンで環境チェッカーを設定するには、次の手順に従います。

  1. システムのメンバーであるコンピューターを 1 つ選択します。

  2. ローカルの管理者資格情報を使用してマシンにサインインします。

  3. コンピューターに環境チェッカーをインストールします。 PSGallery から次の PowerShell コマンドを実行します。

    Install-Module -Name AzStackHci.EnvironmentChecker -AllowClobber
    

検証を実行する

  1. ローカルの管理者資格情報を使用して、環境チェッカーをインストールしたコンピューターにサインインします。

  2. コンピューターで検証をローカルで実行するには、次の PowerShell コマンドを実行します。

    Invoke-AzStackHciUpgradeValidation
    
  3. システム内の他のマシンをリモートで検証するには、リモート コンピューターごとに次の PowerShell コマンドを実行します。

    $PsSession=New-Pssession -ComputerName "MyRemoteMachine"
    Invoke-AzStackHciUpgradeValidation -PsSession $PsSession
    
    このセクションを展開して、出力例を確認します。

    アップグレード環境検証コントロールからのサンプル出力を示す図。

  4. (オプション) PassThru フラグを使用して、出力をフィルター処理できる未加工の出力を取得します。 次のコマンドを実行します。

    $result=Invoke-AzStackHciUpgradeValidation -PassThru
    $result | ? status -eq "failure" |ft displayname,status,severity
    
    このセクションを展開して、出力例を確認します。
    表示名 状態 重大度
    Windows OS が 23H2 であることをテストする 失敗 警告
    テスト ネットワーク ATC 機能がノードにインストールされている 失敗 警告
    必要な Windows 機能をテストする 失敗 警告
    記憶域プールをテストする 失敗 警告
    テスト TMP プロパティ OwnerCleareDisabled が False 22H2N1 です 失敗 警告
    TmpPReadyTMP プロパティのテストは True 22H2N1 です 失敗 警告
    TmpPresentTMP プロパティのテストは True 22H2N1 です 失敗 警告
    テスト TMP プロパティの LockOutCount は 0 です 失敗 警告
    TmpActivatedTMP プロパティのテストは True 22H2N1 です 失敗 警告
    AutoProvisioningが有効になっている TMP プロパティのテスト 22H2N1 失敗 警告
    TmpEnabledTMP プロパティのテストは True 22H2N1 です 失敗 警告

修復ガイダンス

環境チェッカーの各検証チェックには、潜在的な問題の解決に役立つリンクを含む修復ガイダンスが含まれています。 詳細については、 修復ガイダンスを参照してください。

修復 1: Windows の機能をインストールする

Azure Local では、特定の Windows の役割と機能をインストールし、必要な機能のセット (Windows Server では省略可能) を有効にする必要があります。 一部の機能では、インストール後に再起動が必要です。 そのため、役割と機能をインストールする前に、マシンをメンテナンス モードにすることが重要です。 すべてのアクティブな仮想マシン (VM) が他のマシンに移行されていることを確認します。

必要な Windows の役割と機能をインストールするには、コンピューターごとに次のコマンドを使用します。 機能が既に存在する場合は、インストールによって自動的にスキップされます。

#Install required Windows roles and features
$windowsRoleFeature =  @( 

                "Failover-Clustering",
                "FS-VSS-Agent", 
                "FS-Resource-Manager", 
                "GPMC", 
                "NetworkATC", 
                "NetworkController",
                "RSAT-AD-Powershell", 
                "RSAT-Hyper-V-Tools", 
                "Data-Center-Bridging", 
                "NetworkVirtualization", 
                "RSAT-AD-AdminCenter"
                )
foreach ($feature in $windowsRoleFeature) 
{ 
Install-WindowsFeature -Name $feature -IncludeAllSubFeature -IncludeManagementTools 
} 

#Enable a set of Windows features that are required for Azure Local, but optional for Windows Server
$windowsFeature = @( 

                "Server-Core", 
                "ServerManager-Core-RSAT", 
                "ServerManager-Core-RSAT-Role-Tools", 
                "ServerManager-Core-RSAT-Feature-Tools", 
                "DataCenterBridging-LLDP-Tools", 
                "Microsoft-Hyper-V", 
                "Microsoft-Hyper-V-Offline", 
                "Microsoft-Hyper-V-Online", 
                "RSAT-Hyper-V-Tools-Feature", 
                "Microsoft-Hyper-V-Management-PowerShell", 
                "NetworkVirtualization", 
                "RSAT-AD-Tools-Feature", 
                "RSAT-ADDS-Tools-Feature", 
                "DirectoryServices-DomainController-Tools", 
                "ActiveDirectory-PowerShell", 
                "DirectoryServices-AdministrativeCenter", 
                "DNS-Server-Tools", 
                "EnhancedStorage", 
                "WCF-Services45", 
                "WCF-TCP-PortSharing45", 
                "NetFx4ServerFeatures", 
                "NetFx4", 
                "MicrosoftWindowsPowerShellRoot", 
                "MicrosoftWindowsPowerShell", 
                "Server-Psh-Cmdlets", 
                "KeyDistributionService-PSH-Cmdlets", 
                "TlsSessionTicketKey-PSH-Cmdlets", 
                "Tpm-PSH-Cmdlets", 
                "ServerCore-WOW64", 
                "SmbDirect", 
                "FailoverCluster-AdminPak", 
                "Windows-Defender", 
                "SMBBW", 
                "FailoverCluster-FullServer", 
                "FailoverCluster-PowerShell", 
                "DataCenterBridging", 
                "BitLocker", 
                "Dedup-Core", 
                "FileAndStorage-Services", 
                "Storage-Services", 
                "File-Services", 
                "CoreFileServer", 
                "SystemDataArchiver", 
                "ServerCoreFonts-NonCritical-Fonts-MinConsoleFonts", 
                "ServerCoreFonts-NonCritical-Fonts-BitmapFonts", 
                "ServerCoreFonts-NonCritical-Fonts-TrueType", 
                "ServerCoreFonts-NonCritical-Fonts-UAPFonts", 
                "ServerCoreFonts-NonCritical-Fonts-Support", 
                "ServerCore-Drivers-General", 
                "ServerCore-Drivers-General-WOW64", 
                "NetworkATC" 
            )
foreach ($featureName in $windowsFeature) 
{ 
Enable-WindowsOptionalFeature -FeatureName $featurename -All -Online 
} 

修復 2: マシンが稼働していることを確認する

すべてのマシンが稼働していること、およびシステムが Online であることを確認します。 フェールオーバー クラスター マネージャー UI または PowerShell コマンドレットを使用して、すべてのマシンがオンラインであることを確認します。

システムのすべてのマシンがオンラインであることを確認するには、次の PowerShell コマンドを実行します。

Get-ClusterNode -Cluster "mysystem" 

修復 3: BitLocker を中断する

ソリューションのアップグレードを適用するときに再起動が発生した場合は、BitLocker を無効にします。 再起動が発生した場合は、BitLocker 回復を入力する必要があり、アップグレード プロセスが中断されます。

BitLocker を中断する

BitLocker を中断するには、次の PowerShell コマンドを実行します。

Suspend-Bitlocker -MountPoint "C:" -RebootCount 0 

BitLocker を再開します

BitLocker を再開するには、アップグレードが完了したら、次の PowerShell コマンドを実行します。

Resume-Bitlocker -MountPoint "C:" 

修復 4: アプリケーション制御 (WDAC) ポリシーを有効にする

システムが WDAC ポリシーを実行している場合、ソリューションの Arc 有効化と競合する可能性があります。 Arc でシステムを有効にする前に、ポリシーを無効にします。 システムが Arc 対応になった後、 新しい バージョンの WDAC ポリシーを使用して WDAC を有効にすることができます。

WDAC ポリシーを無効にする方法の詳細については、「Windows Defender アプリケーション制御ポリシーの削除を参照してください。

修復 5: 言語が英語であることを確認する

英語を使用してインストールされたシステムのみが、ソリューションのアップグレードを適用できます。 システムが英語を使用してインストールされていることを確認します。

英語 ISO を使用したものの、セットアップ中に別の言語を構成した場合は、LCM アップグレード ユーザー アカウントの言語設定を次のように変更する必要があります。

  1. アップグレードに使用する予定のドメイン アカウントを使用して、各マシンにサインインします。

  2. 次の PowerShell コマンドを実行します。

    $UserLanguageList = New-WinUserLanguageList -Language en-US
    Set-WinUserLanguageList -LanguageList $UserLanguageList
    

修復 6: 記憶域プールの領域を確認する

Azure Local 2311.2 では、専用ボリュームが作成されます。 このボリュームは、新しいインフラストラクチャ機能 (たとえば、Azure Arc リソース ブリッジの実行) にのみ使用されます。

インフラストラクチャ ボリュームには 250 GB が必要です。 記憶域プールに、新しいボリュームに対応できる十分な領域があることを確認します。

ストレージ プールの領域を解放する

記憶域スペース ダイレクトでは、既存のボリュームの縮小はサポートされていません。 記憶域プールの領域を解放するには、次の 3 つの代替手段を検討してください。

  • オプション 1: ボリュームを固定プロビジョニングから仮想プロビジョニングに変換します。 既定の設定で新しいシステムをデプロイすると、既定でシン プロビジョニング ボリュームが使用されます。

  • オプション 2: すべてのデータをバックアップし、サイズを小さくしてボリュームを再作成し、コンテンツを復元します。

  • オプション 3: プール容量を拡張するために物理ドライブを追加します。

    ボリュームをシン プロビジョニングに変換する前に、その特定のボリュームに格納されているすべての VM をシャットダウンします。

使用可能な領域を確認する

記憶域プールの構成を確認するには、次の手順に従います。

  1. 記憶域プールのサイズと割り当てられたサイズを確認するには、次の PowerShell コマンドを実行します。

    Get-StoragePool -IsPrimordial $false
    
    このセクションを展開して、出力例を確認します。
    フレンドリーネーム OperationalStatus 健康状態 IsPrimordial IsReadOnly サイズ 割り当てサイズ
    毒液についてのS2D [OK] 正常 いいえ いいえ 2 TB(テラバイト) 1.53 テラバイト
  2. 記憶域プール内のすべてのボリュームを一覧表示するには、次の PowerShell コマンドを実行します。

    Get-StoragePool -IsPrimordial $false | Get-VirtualDisk
    
    このセクションを展開して、出力例を確認します。
    フレンドリーネーム レジリエンシー設定名 フォールトドメイン冗長性 OperationalStatus 健康状態 サイズ プールの足跡 ストレージ効率
    クラスター性能履歴 ミラー 1 [OK] 正常 21 GB 43ギガバイト 48.84%
    テストボリューム ミラー 0 [OK] 正常 1 TB (テラバイト) 1 TB (テラバイト) 99.95%
    TestVolume2 ミラー 0 [OK] 正常 500 GB 55.5 GB 99.90%
  3. 固定ボリュームがプロビジョニングされていることを確認するには、次の PowerShell コマンドを実行します。

    $volume = Get-VirtualDisk -FriendlyName TestVolume
    $volume.ProvisioningType
    
    このセクションを展開して、出力例を確認します。

    Fixed

  4. ボリュームをシン プロビジョニングに変換するには、次の PowerShell コマンドを実行します。

    Set-VirtualDisk -FriendlyName TestVolume -ProvisioningType Thin
    
  5. 変換を完了するには、ボリュームを再起動する必要があります。 これを行うには、次の PowerShell コマンドを実行します。 システムに合わせて CSV 名を調整してください。

    Get-ClusterSharedVolume -Name "System Disk 1" | Stop-ClusterResource
    Get-ClusterSharedVolume -Name "System Disk 1" | Start-ClusterResource
    
  6. 記憶域プールの実際のフットプリントが変更されたことを確認するには、次の PowerShell コマンドを実行します。

    Get-StoragePool -IsPrimordial $false| Get-VirtualDisk
    
    このセクションを展開して、出力例を確認します。
    フレンドリーネーム レジリエンシー設定名 フォールトドメイン冗長性 OperationalStatus 健康状態 サイズ プールの足跡 ストレージ効率
    クラスター性能履歴 ミラー 1 [OK] 正常 21 GB 43ギガバイト 48.84%
    テストボリューム ミラー 0 [OK] 正常 1 TB (テラバイト) 36.5 GB 98.63%
    TestVolume2 ミラー 0 [OK] 正常 750 GB 28.5 GB 98.25%

修復 7: ストレージ ボリューム名を確認する

Azure Local 2311.2 デプロイでは、既存の記憶域プール 専用のボリューム Infrastructure_1が作成されます。 このボリュームは、新しいインフラストラクチャ機能専用です。

Infrastructure_1という名前のボリュームが存在しないことを確認します。 同じ名前のボリュームが存在する場合、このテストは失敗します。

既存のボリュームの名前を変更すると、クラスター共有ボリュームのマウント ポイントが変更されると VM に影響します。 すべての VM に対して追加の構成変更が必要です。

  • 既存のボリュームの名前を変更するには、次の PowerShell コマンドを実行します。

    Set-VirtualDisk -FriendlyName Infrastructure_1 -NewFriendlyName NewName
    

修復 8: クラスターの機能レベルと記憶域プールのバージョンを確認する

クラスターの機能レベルと記憶域プールのバージョンが最新であることを確認します。 詳細については、「 クラスターの機能レベルと記憶域プールのバージョンを更新するを参照してください。

修復 9: MOC のインストール状態を確認する

Azure ローカルで Azure Kubernetes Service (AKS) ワークロードを実行している場合は、次の手順に従ってソリューションのアップグレードを適用します。

  1. ソリューションのアップグレード バナーが Azure ローカル リソース ページに表示されるまで待ちます。

  2. ソリューションのアップグレードを適用する前に、AKS ハイブリッドから AKS とすべての設定を削除します。 Kubernetes のバージョンは、Azure Local の 古い バージョンと 新しい バージョンの間で互換性がありません。 さらに、Azure Arc によって有効になっている Azure ローカル VM のプレビュー バージョンは更新できません。

    詳細については、「Uninstall-Aks-Hci for AKS enabled by Azure Arc」をご覧ください。

    AKS Arc をアンインストールしたら、次のコマンドを実行して AksHci PowerShell モジュールをアンインストールする必要があります。このモジュールは 23H2 以降では機能しないためです。

    Uninstall-Module -Name AksHci -Force
    

    AKS デプロイで PowerShell のバージョン関連の問題を回避するには、この ヘルパー スクリプトを使用して、古い AKS-HCI PowerShell モジュールを削除できます

  3. 22H2 の AKS Arc のプレビュー バージョンまたは 22H2 の Arc VM のプレビュー バージョンを使用した場合は、Azure ローカル ノードでコマンド Uninstall-Moc を実行して MOC をアンインストールし、プレビュー バージョンを使用して作成された VM インスタンスを削除します。

修復 10: AKS のインストール状態を確認する

Azure Local で AKS ワークロードを実行している場合は、次の手順に従ってソリューションのアップグレードを適用します。

  1. ソリューションのアップグレード バナーが Azure ローカル リソース ページに表示されるまで待ちます。

  2. ソリューションのアップグレードを適用する前に、AKS ハイブリッドから AKS とすべての設定を削除します。 Kubernetes のバージョンは、Azure Local の 古い バージョンと 新しい バージョンの間で互換性がありません。

    詳細については、「Uninstall-Aks-Hci for AKS enabled by Azure Arc」をご覧ください。

    AKS Arc をアンインストールしたら、次のコマンドを実行して AksHci PowerShell モジュールをアンインストールする必要があります。このモジュールは 23H2 以降では機能しないためです。

    Uninstall-Module -Name AksHci -Force
    

    AKS デプロイで PowerShell のバージョン関連の問題を回避するには、この ヘルパー スクリプトを使用して、古い AKS-HCI PowerShell モジュールを削除できます

修復 12: サブスクリプション状態の検証エラーを解決する

Azure Stack HCI サブスクリプションの状態テストが失敗した場合は、次の手順に従います。

  1. クラスター内の任意のノードで Sync-AzureStackHCI コマンドレットを実行します。 コマンドが処理されるまで数分待ちます。

    Sync-AzureStackHCI
    

    次に例を示します。

     [<IP address>]: PS C:\Users\Administrator.v\Documents> Sync-AzureStackHCI -verbose
     VERBOSE: Attempting version check on localhost
     VERBOSE: Checking version on localhost
     VERBOSE: Negotiated version : Version4_0
     VERBOSE: LocalHost, Negotiated version set to: Version3_0
     VERBOSE: Successfully scheduled a sync with Azure.
     [<IP address>]: PS C:\Users\Administrator.v\Documents> 
    
  2. Get-AzureStackHCISubscriptionStatus コマンドレットを実行して、各ノードのサブスクリプションを確認します。 Azure Stack HCI サブスクリプションは、クラスター内のすべてのノードで アクティブ である必要があります。

    Get-ClusterNode | % { Get-AzureStackHCISubscriptionStatus -ComputerName $_ }
    

    次に例を示します。

    Get-ClusterNode | % { Get-AzureStackHCISubscriptionStatus -ComputerName $_ }
    
    Computer Name Subscription Name           Status   Valid To
    ------------- -----------------           ------   --------
    v-Host1       Azure Stack HCI             Active   1/1/2026 6:52:55 PM
    v-Host1       Windows Server Subscription Inactive
    v-Host2       Azure Stack HCI             Active   1/1/2026 6:25:34 PM
    v-Host2       Windows Server Subscription Inactive
    v-Host3       Azure Stack HCI             Active   1/1/2026 6:28:47 PM
    v-Host3       Windows Server Subscription Inactive
    

    Azure Stack HCI サブスクリプションが アクティブとして表示されない場合は、Microsoft サポートにお問い合わせください。

次のステップ