SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Azure Stack HCI 23H2 プレビュー (25398.584) を展開する際のメモ

leave a comment

Ignite 2023 で Azure Stack HCI 23H2 のプレビューの発表が行われました。

22H2 までは、Azure Stack HCI の展開には、Windows Admin Center (WAC) を使用していましたが、23H2 では展開方法が大きく変わり、Azure Portal (または ARM テンプレート) を使用して展開を行うようになりました。
(Azure Stack HCI の展開時に、にリソースブリッジも同時に展開されるようになり、従来とは展開されるリソースも大きく変わっています)

展開方法については、Azure Stack HCI バージョン 23H2 デプロイの概要 (プレビュー) のドキュメントツリーに記載されていますが、ドキュメントでは把握できないよう / SR で確認できた内容がいくつかありますので、展開時の内容をメモとして残しておきたいと思います。

試行錯誤をしたのですが、単一サーバーの検証環境を展開できるところまでは確認ができました。

image

私の環境では、展開が完了するまで 2 時間近くかかりました。
image

23H2 の展開の前提条件については Azure Stack HCI バージョン 23H2 (プレビュー) のデプロイの前提条件を確認する に記載されています。

今回、単一サーバーの 23H2 の検証環境を構築するに際しては、Intel NUC 9 Pro Kit NUC9VXQNX を 1 台用意し、物理ホストに対して シングルノードの Azure Stack HCI クラスターを展開することで検証環境の構築を実施しています。

 

展開時に気を付けておきたいポイント

使用するインストールメディアの言語

Azure Stack HCI のインストールメディアは Azure Portal からダウンロードすることができるようになりました。

image

現時点では、使用するインストールメディアについては「English」で英語版のインストールメディアを使用したほうが良いです。

インストール時の設定については、次の 2 種類の設定で展開を最後まで完了させることはできました。

imageimage

23H2 からは、展開時にリソースブリッジの Kubernetes が自動的に展開されるようになりました。

AKS on Azure Stack HCI のシステム要件として次の内容がありました。(22H2 までを対象としたドキュメントに記載されています)

推奨されるコンピューティング要件

各 OS では、EN-US リージョンと言語の選択を使用する必要があります。 インストール後にこれらの設定を変更することはできません。

検証としては、英語版のインストールメディアで日本語向けの設定でも最後まで展開を完了することはできましたが、AKS on HCI のシステム要件として、以前のバージョンでは上記の要件があります。

また、Arc VM 管理の 制限事項と既知の問題 には、次の記載があり、23H2 はリソースブリッジが自動で展開されますので、現時点ではこの制限の対象となるかと思います。

  • Arc リソース ブリッジと Arc VM 管理のサポートは現在、英語でのみ利用できます。

23 H2についても、現状は英語版のメディアでインストールをしておいたほうが良いかもしれません。

 

日本語版のインストールメディアでインストールした際の問題

前述のとおり、今回の検証では英語版のインストールメディアを使用しています。

日本語版のインストールメディアも提供されており、日本語版でインストールすることができますが、現時点では、日本語環境は挙動が微妙な気がしています…。

現時点でわかっていることとしては、日本語メディアを使用すると次のような問題がありました。
(これらの事象はフィードバック済みであり、必要に応じて修正や情報が公開されると思います)

  • NIC の名称に日本語が含まれていると Azure Arc の拡張機能のインストールに失敗する
    • 日本語版の環境では NIC の名称が「イーサネット」となっており、この状況だと Arc の拡張機能 (AzureEdgeDeviceManagement) のインストールが失敗します
    • 「Ethernet」等の英語名称に変更すると、日本語環境でも拡張機能をインストールすることが可能です。
      • 私が検証した際には NIC の名称を Ethernet に変更 -> AzureEdgeDeviceManagement をアンインストール -> Invoke-AzStackHciArcInitialization を再実行で拡張機能をインストールできました
  • Ethernet に変更し、Arc の拡張機能をインストールできるようにしても一部モジュールが不足しているように見える
    • ここは詳細には確認できていないのですが、Arc の拡張機能をインストールできる状態にしても、展開に必要となるモジュールが「C:\CloudDeployment\NuGetStore」に展開されていないようでした
    • 拡張機能のインストールでエラーが発生していたので、この影響を受けているのかもしれません

このような事象があったため、現状の検証については英語版のメディアを使用してインストールをしています。

 

インストール終了後メディアをイジェクトしておく

インストールが完了したらインストールメディアをイジェクトしておいたほうが良いです。

23H2 は展開プロセスの中で BitLocker が有効化されるのですが、インストールメディアを挿入したまま展開を行っていたところ、展開時の BitLocker を有効にするステップでエラーとなりました。

通常、BitLocker の有効化プロセスはさほど時間がかからず完了するのですが、インストールメディアを挿入した状態では 1 時間以上経過した後にエラーとなるので、エラーが発覚するのにも時間がかかります。

 

タイムゾーンを UTC に変更する

2023/12/25 追記

拡張機能の「AzureEdgeLifecycleManager」の「30.2311.0.27」で修正されており、このバージョン以降となっている場合、UTC に変更する必要はないとのことです。(2310 で発生していた問題のようです 「タイム ゾーンが UTC 時刻に設定されていない場合、デプロイ レポートに問題が発生する可能性があります」)

こちらは SR で教えていただいた内容となり、実際に異常動作時の内容の確認はできていないのですが、現状タイムゾーンが UTC でない場合にエラーが発生したという事象が報告されているとのことでした。

現時点で検証を行う場合は、インストール後に「Set-TimeZone -Id UTC」を実行し、タイムゾーンを UTC に変更する必要があるケースがあるのかもしれません。

私が試したタイミングでは UTC ではなく、US / JST の設定でも最後まで展開を完了することはできていました。
現時点でも UTC に設定する必要があるのかは不明ですが過去事例があるようなので UTC にしておくのが安全なのかもしれません。

 

NIC のドライバーは In-Box ではなくベンダー提供のドライバーを使用する

Azure Stack HCI のドライバーの要件については、ドライバーの要件 で記載されており、In-Box のドライバーがサポートされてないことが明記されています。

私が使用している環境では、22H2 については、In-Box のドライバーでも展開を完了することができたのですが、23H2 については展開することができなくなりました。

展開プロセスの途中では次のような WQL が実行されています。

Get-WmiObject -Query "SELECT * FROM MSFT_NetAdapterAdvancedPropertySettingData  WHERE ((Name LIKE '<指定した NIC>')) AND ((RegistryKeyword LIKE 'VlanID'))" -Namespace "ROOT/StandardCimv2"

 

私の環境では、In-Box のドライバーで NIC を認識させた場合、上記の「RegistryKeyword LIKE ‘VlanID’」を認識することができませんでした。

ベンダーのドライバー (今回は、Intel I219-LM) をインストールしたところ、上記の条件を認識することができるようになりました。

展開時にインテントを指定した NIC を対象として上記のコマンドで、結果が返ってくるかについては事前に確認しておくと良いかと思います。

結果が返ってこない場合は、 NIC のドライバーの最新化や、使用する NIC を変更し、上記の WQL で結果が返ってくる NIC を展開時に指定します。

 

Arc の拡張機能のインストールが完了してから展開を実施する

23H2 の展開は次のステップで実行します。

  1. 23H2 のインストールを行う
  2. Azure Arc のセットアップを実施し Azure に接続
  3. Azure Stack HCI クラスターの展開を行う

「2.」の Azure Arc のセットアップについてはコマンドで実施し、コマンドの実行が完了するとコンソールにメッセージが出力されます。

しかし、拡張機能のインストールはバックグラウンドで実行されているため、ポータル等で 3 種類の拡張機能のインストールが完了しているかを確認し、インストールが完了しているのを確認してから、クラスターの展開を行います。

(3 種類の拡張機能の中で AzureEdgeLifecycleManager のインストールに時間がかかります)

image

 

ワークグループの状態で Azure Portal からの展開を実施する

こちらも SR で確認した内容となります。

Azure Portal から展開を実施する際には、ワークグループの状態で展開を行い、展開プロセスの中で、ドメインに参加させるようにする必要があります。

事前にドメインに参加させた状態で、Azure Portal から展開を実施すると、事前検証後の展開の画面で、次の画面から変化がなく、10 分経過によるタイムアウトでエラーとなります。

image

 

クラスター名にハイフンを二つ含めない

展開時にはクラスター名を指定しますが、現時点では、クラスター名にハイフン (-) を二つ含めないようにしておく必要があります。

「HCI-23H2-WSFC」というようなハイフンを二つ含むクラスター名をしていすると、内部的に自動で作成されるストレージアカウント名でエラーとなります。

内部的に使用されるストレージアカウント名は、指定したクラスター名を基にして設定されるのですが、クラスター名にハイフンを二つ含んでいる場合、二つ目のハイフンをストレージアカウント名に含めようとしてエラーとなります。

(ストレージアカウントにはハイフンを指定することができないため)

この事象はフィードバック済みであり、修正予定となっていますので、現時点の制約になると思います。

現時点でもハイフンが一つであれば問題ありません。

 

展開時に指定する NIC の IP の割り当て状況について

展開時にはインテント (意図) に応じて使用する NIC を選択します。

管理用に使用する NIC については「vManagement(*)」の名称が設定されますが、この NIC には次のような要件があるようでした。

  • ポータルで指定する IP と同等のプレフィックスのアドレスを指定
    • 指定した NIC に事前に付与されている IP アドレスのプレフィックスが、指定した IP アドレス範囲と比較して妥当かのチェックが行われているようです
  • DNS の設定を実施しておく
    • vManagement(*) の名称の NIC に設定されている DNS を使用する処理があり、この際の DNS には、事前に NIC で設定していた DNS が引き継がれるようです

 

ネットワーク設定を指定する には次の記載があります。

トラフィックの種類 ( 意図と呼ばれます) のグループごとに、少なくとも 1 つの未使用のネットワーク アダプター (ただし、冗長性のために少なくとも 2 つの一致するアダプター) を選択します

この記載を見ていたため、IP の設定を何も実施していない NIC をすべての目的で使用する NIC として指定していたのですが、何も設定をしていない NIC では、展開時のクラスターの構築時にエラーとなりました。

 

インテントによって事前の IP 設定の必要有無が変わるのでしょうが、エラーが出た場合はエラー内容に応じて、実 NIC の IP 設定を見直すとよいかと。

今回の検証では、展開時に指定する NIC に以下のようなコマンドで IP を割り当てて作業を実施しています。

指定する IP は展開時に指定する IP 範囲とは重複しないアドレスを指定しています。これは展開時に指定した IP アドレス範囲が未使用化のチェックが行われるためです。

Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Disabled
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "<IP Address>" -PrefixLength <Subnet>
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses "<DNS IP>"

 

 

英語版の Azure Portal を使用する

現時点では、英語の言語設定にした Azure Portal を使用しておいたほうが良いかと思います。

日本語版の展開画面では、すべての用途を一つの NIC で対応しようとした場合の設定には、ストレージネットワーク用の VLAN の設定が表示されないのですが、英語版の展開画面では表示されるというように、言語によって表示内容が異なっていました。

image

他にも、日本語版の場合は、インテントの名称に日本語が含まれており、動作が正常に行われるかが微妙な気がしましたので、今回は英語版の Azure Portal で展開を行いました。

 

展開時に確認するログ

展開時には様々なログが出力されており、SR でトラブルシューティングを行ってもらう際には以下のログが必要となります。

  • C:\MASLogs
  • C:\CloudDeployment\Logs
  • C:\ProgramData\GuestConfig\extension_logs
  • C:\ProgramData\GuestConfig\ext_mgr_logs
  • C:\ProgramData\AzureConnectedMachineAgent\Log
  • C:\Users\Administrator\.AzStackHci
  • C:\CloudContent\MASLogs
  • C:\CloudContent\*.log
  • C:\Windows\System32\winevt\Logs
  • Send-DiagnosticData -BypassObsAgent によるログの送信

展開でエラーが発生した場合にはこれらのログを確認することになります。

私が展開していた際に確認していたのは次のようなログとなります。

# 検証フェーズのログの確認
# Deployment settings resource の処理状況の確認
Get-Content  -tail 10 -wait "c:\MASLogs\AzStackHciEnvironmentChecker.log"
Get-Item  "C:\MASLogs\LCMECELiteLogs\InitializeDeploymentService.*.log" | Sort LastWriteTime | Select -Last 1| Get-Content  -tail 10 -wait

# Validation progess の処理状況の確認
Get-Item  "C:\CloudDeployment\Logs\EnvironmentValidatorFull.*.log" | Sort LastWriteTime | Select -Last 1| Get-Content  -tail 10 -wait

# 展開フェーズのログの確認
# 展開の開始が行われるまでの処理状況の確認
Get-Item "C:\MASLogs\Lcm_Controller_Start_Deployment_Scheduled_job_*.log" | Sort LastWriteTime | Select -Last 1 | Get-Content  -tail 10 -wait 

# 展開時の処理状況の確認
Get-Item "C:\CloudDeployment\Logs\CloudDeployment.*.log" | Sort LastWriteTime | Select -Last 1 | Get-Content  -tail 10 -wait 

 

ログについてはトラブルシューティングの記事が公開され、この情報も参考となります。

 

プロキシを使用した通信の確認

Azure Stack HCI と Azure の通信を確認したいというケースがあったのですが、このようなケースではプロキシを使用して通信の確認ができます。

プロキシについては、構築するのが面倒だったので、Fiddler クラシックを起動している端末を別途用意し、その環境をプロキシサーバーとして使用しました。

 

Arc VM に対しての拡張機能のインストール / AVD のセッションホストの展開

Azure Stack HCI 2311 リリースの既知の問題を表示する (プレビュー) で情報が公開されましたが、現状の 23H2 では、既知の問題により HCI 上に展開した Arc VM の管理で展開した VM に Arc の拡張機能をインストールすることができません。

HCI 23H2 2311 では、拡張機能に対して次の問題があります。

Arc VM 上の Arc 拡張機能は、無期限に "作成中" 状態のままです。

VM にログインし、コマンド プロンプトを開き、次のように入力します。

Windows:

notepad C:\ProgramData\AzureConnectedMachineAgent\Config\agentconfig.json

Linux:

sudo vi /var/opt/azcmagent/agentconfig.json

次に、 プロパティを resourcename 見つけます。 リソース名の末尾に追加された GUID を削除して、このプロパティが VM の名前と一致するようにします。 次に、VM を再起動します。

現状は拡張機能をインストールするためには、コンフィグの resourcename を修正して、VM を再起動する必要があります。

この対応を実施することで、Arc VM 管理の VM に対して拡張機能をインストールすることができます。

「ドメインの参加」「カスタムスクリプト拡張による初期設定の投入」というような処理についてもこの問題の影響を受けており、この影響が AVD のセッションホストの展開にも影響を与え、セッションホストの展開がエラーとなっています。

現状、AVD のセッションホストを HCI 上に展開するためには次の対応を実施する必要があります。

  • ポータルから HCI を使用したセッションホストの展開を実行する
  • HCI 上に VM が展開されたら上述の拡張機能の問題に対しての対応を実施し再起動する
    • 拡張機能の問題を解消しないと、セッションホストに拡張機能をインストールすることができず、2 時間ぐらい経過後にタイムアウトでエラーが発生します

config を書き換えた後の再起動については、次のサービスの再起動でも問題ないようです。

  • gcarcservice: Guest Configuration Arc Service
  • extensionservice: Guest Configuration Extension Service
  • himds: Azure Hybrid Instance Metadata Service

この対応を実施することで AVD のセッションホストを HCI 上に展開することができます。

 

HCI23H2 の更新情報

Azure Stack HCI23H2 の情報については次のドキュメントから確認することができます。

22H2 から検証をしていた機能の中で一番インパクトが大きいのは「Azure Arc VM 管理」「AVD for Azure Stack HCI」になるかと思います。

Azure Arc VM 管理に関する FAQ (プレビュー) に記載されていますが、Arc VM 管理については 23H2 でのみサポートされることとなり、22H2 でのサポートは 2024/2/15 で終了となります。

2024 年 2 月 15 日に、Azure Stack HCI バージョン 22H2 での Arc VM 管理のプレビューで重大な変更が発生します。 Azure Stack HCI バージョン 23H2 の今後のリリースでは、23H2 でのみ Arc VM 管理をサポートしています。 バージョン 22H2 の Azure Stack HCI での Arc VM 管理プレビューのサポートは、2024 年 2 月 15 日に終了します。

 

全体的アナウンス

23H2 のリモートデスクトップ接続

23H2 は展開後にリモートデスクトップの無効化 / ビルトインユーザーアカウントのリネームが行われています。

AKS on Azure Stack HCI

Azure Arc VM 管理

AVD for Azure StackHCI

Arc Jumpstart

    • 現状は 22H2 ベースですが、今後 23H2 への更新が計画されています
Share

Written by Masayuki.Ozawa

12月 14th, 2023 at 9:52 pm

Posted in Azure Stack HCI

Tagged with

Leave a Reply