昨年、Azure Local 22H2 から 23H2 へのアップグレードの Tips ? その 1 ? という投稿を書きました。
その後、時間が取れずアップグレードの検証が継続できていなかったのですが、今日、時間をとることができアップグレードを最後まで実行することができました。
追加の Tips を残しておきたいと思います。
Contents
前回発生したエラーの解消方法
前回発生していた 現状発生している問題 のエラーですが、再度事象を発生させたところ、解決方法のページのリンクが表示されるようになっており、How-to-remediate-an-obsolete-LCM-Upgrade-package.md の方法で解決することができました。
新しく構築した環境では、この事象は発生しなくなっていましたので、以前の検証環境の固有の問題のように見えますが、アップグレードパッケージのバージョンチェックの検証でエラーとなった場合は、この情報が参考になります。
Upgrade には、アップグレードをする際に参考となる情報がいくつもありそうですので、アップグレード時にはこの情報を確認しておくと良さそうです。
仮想マシンの基本設定
今回は Nested VM 上の仮想マシンを使用して検証をしていますが、仮想マシンの設定として後述のネットワーク設定以外に、次の設定を行っています。
- TPM の有効化
- Azure Local クラスターの各ノードのメモリを 24GB に設定
TPM / メモリサイズは Azure Local のソリューション アップグレードの準備状態を検証する でも検証されていますが、メモリサイズについては、この検証でエラーにならないサイズを設定してもソリューションアップグレードの展開時にエラーとなるケースがあります。
検証時には、12 GB 程度メモリを割り当てておけばメモリの要件をクリアすることができました。
しかし、Arc リソースブリッジ用の VM は8GB で作成されるため、検証の要件をスキップできる最小程度のメモリサイズでは、リソースブリッジを展開しようとした際にメモリが不足する可能性があります。
Azure Local の各ノードでは、検証でエラーにならないぎりぎりのサイズではなく、リソースブリッジの VM を展開しても余裕のあるサイズを設定しておく必要があります。
仮想マシン上に展開する場合の情報については、以下のドキュメントとしてまとめられていますので、この情報も参考となります。
Nested VM 上に構築する場合のネットワーク設定
前回の投稿も Hyper-V の Nested VM 上に構築をしていたのですが、前回はメモを残していなかったので今回残しておこうと思います。
Azure Local のネットワーク設定については公式のドキュメントの他、次の記事も参考となります。
- Use CreateVmsUsingScript To Deploy A Nested Virtualization Environment To Test Azure Stack HCI 23H2
- Network ATC
ストレージ用ネットワークの設定
現在の Azure Local はネットワーク構成をネットワークインテントを使用して使用することが前提となっています。
ネットワークインテントでストレージ用のネットワークを構成する場合、22H2 の場合は VLAN 711~718、23H2 の場合は 711,712 が使用されることになるかと思います。これらの設定については次のドキュメントから確認できます。
Nested Hyper-V に HCI を実行する場合、ストレージ用のインテントの NIC で何もせずに構築するとストレージネットワークの構成でエラーとなってしまうため、5. [On the physical Host] When the VMs are created enable vlans on the smb adapters. に記載されている方法で、仮想マシンに対してトランクの設定を行っておきます。
管理用ネットワークの設定
Azure Local 23H2 を新規インストールする際には、ネットワークインテントの設定は Azure Portal の UI で設定を行うことができ、RDMA の設定もセットアップの UI から設定することができます。
22H2 から 23H2 へのアップグレード時のネットワークインテントの設定については、Azure Portal の UI は使用することができず、Windows Admin Center (WAC) か PowerShell で設定をする必要がありそうでした。
WAC から管理ネットワークのネットワークインテントの設定を実施した場合、RDMA が有効化された状態で作成され、RDMA を無効にするオプションが見当たりませんでした。私が使用している仮想マシンでは RDMA がサポートされていなかったため、WAC からのネットワークインテントの設定で、管理用ネットワークを展開時するとエラーとなってしまいました。
そのため、次のような PowerShell のスクリプトで RDMA を無効にした管理用ネットワークを設定しています。
$adapteroverrides = New-NetIntentAdapterPropertyOverrides $adapteroverrides.NetworkDirect = $false Add-NetIntent -Name management -Management -ClusterName "HCI22H2-01" -AdapterName "Management" -AdapterPropertyOverrides $adapteroverrides Get-NetIntentStatus | ft IntentName, Host,ConfigurationStatus ,Error, ProvisioningStatus
ネットワークインテントについてのログ
ネットワークインテントのトラブルシューティング時のログについては、コマンドレットによる情報の取得の他に、OS のイベントログ (イベントビューア) の情報も参考になります。
イベントログの「アプリケーションとサービス ログ」の「Microsoft – Windows – Networking-NetworkAtc」の情報を確認することで、ネットワークインテントについての情報を確認することができます。
ネットワークインテントの設定でエラーになっている場合などはこの情報を確認するとよいかと思います。(管理ネットワークの RDMA
AzureEdgeLifecycleManager の再インストール
アップブレードの検証を実施していた際に AzureEdgeLifecycleManager (LCM) 拡張機能が正常にインストールされていないというケースが何回かありました。
LCM 拡張機能はアップグレードプロセスの中でも、ソリューションアップグレードを実施する際に重要な拡張機能となります。
正常にインストールが行われていない場合、Azure Portal から拡張機能を削除し、修復 9: Azure Arc ライフサイクル拡張機能を確認する の方法で再インストールすることができます。(現在のコマンドレットのオプションは変わっているようなので、私の環境ではエラーとなってしまいましたが Azure HCI 23H2 LCM Controller Extension Failing も参考になります)
デプロイメントユーザーを事前に Administrators グループのメンバーにする
23H2 を新規インストールする際にも、ドメインユーザーをデプロイメントユーザーに指定しますが、これは 22H2 からのアップグレード時のソリューションアップグレードの導入でも同様となり、アップグレードプロセスの [基本] タブ で指定を行う必要があります。
23H2 を新規インストールする際には、明示的に Administrators グループのメンバーに設定しておく必要はなかったはずですが、22H2 からアップグレードし、ソリューションアップグレードをインストールする際には、デプロイメントユーザーを Azure Local の各ノードの Administrators のメンバーに手動で追加しておく必要があるようでした。
Administrators グループに登録していない場合「InvokeCloudUpgradeEnvironmentChecker」の検証でエラーとなります。
ソリューションアップグレードの検証時には、OS のタスクスケジューラーを使用してジョブの登録が行われ実行されます。
この際、ジョブの実行ユーザーはデプロイメントユーザーが指定されるのですが、適切な権限が Azure Local ノードに対して設定されていないと検証でエラーとなり、ソリューションアップグレードのインストールを行うことができませんので、デプロイメントユーザーの権限は注意しておく必要があります。