Azure Local 22H2から23H2へのアップグレード情報まとめ（前編）

# 本記事について
本記事ではAzure Local（旧Azure Stack HCI）の22H2バージョンから23H2バージョンへのアップグレードについて、
公開情報等の全容をまとめつつ、アップグレードの前半作業（OSアップグレード）について説明します。
- OSアップグレード ← 本記事ではここまで
- ソリューションアップグレード

Azure Localを知っている方はご存じの通り2024年2月に一般提供された23H2ではAzureからの管理機能が非常に強化され、それを支える仕組みが追加されました。
そうした大きな変化があったためか22H2から23H2へのアップグレードは2024年11月頃まで提供されておらず、22H2も継続してサポートされてきましたが、
2024年11月のIgniteで発表されたアップグレード手段の提供にて、これまでのサポートポリシーの規定通り6か月以内のアップグレード（6か月後の22H2のサポート終了）も宣言されました。

本記事では2025年5月31日に迫るAzure Local 22H2のサポート終了に備えてアップグレードについて確認した内容を紹介します。
なお、当方の検証環境は仮想環境であり、また記事執筆時点ではすべてのアップグレードを完了できていません。
アップグレード作業の後半のソリューションアップグレードは順次展開されているようで、まだ私の環境では適用可能ではありませんでした。
すべてのアップグレードが完了しましたら後半も紹介したいと思います。

[Microsoft Azure Arc Blog | Upgrade from Azure Stack HCI, version 22H2 to Azure Local](https://techcommunity.microsoft.com/blog/azurearcblog/upgrade-from-azure-stack-hci-version-22h2-to-azure-local/4354798)

## Azure Localのサポートポリシーおさらい
Azure Local (旧Azure Stack HCI)は常に最新機能が利用可能なMicrosoftの仮想化基盤製品です。
CPUコア数に応じた月額費用をAzureサブスクリプションで払い続けることで常に最新のセキュリティパッチ、機能更新が利用できます。

そして、Azure Localは原則としてAzureと同様にモダンライフサイクルポリシーに従ってサポートされます。
モダンライフサイクルポリシーを読むとサポート終了については12か月前に通知する旨があり『オンプレの仮想化基盤製品なのに1年先どうなっているかわからない？！』と不安になるかもしれませんが、
Azure Localはハードウェアメーカーにより最大5年間のサポートが保証されることが別途Azure Localのドキュメントに記載されています。

[Microsoft Learn | Modern Lifecycleポリシー](https://learn.microsoft.com/ja-jp/lifecycle/policies/modern)
[Microsoft Learn | Azure Localのサポート受ける (5年間サポートの記載)](https://learn.microsoft.com/ja-jp/azure/azure-local/manage/get-support?view=azloc-24113)

少し脱線しましたがAzure Localで常に最新の機能を追加費用無く利用しMicrosoftのサポートを受け続けるには条件があります。
それは、提供される更新プログラムを適用し続けてMicrosoftやハードウェアメーカーのサポートポリシーに即したバージョンを利用することです。
細かいサポートバージョンは23H2のリリースノートに詳細が解説されています。
簡単に言うと3か月ごとに提供されるアップデート（リリーストレイン）に6か月以内に追いつくこと、
リリーストレイン間のアップデートはアップデート可能なバージョンが決まっているので最低2回のアップデートで追いつく必要があるというものです。
[Microsoft Learn | Azure Localリリース情報](https://learn.microsoft.com/ja-jp/azure/azure-local/release-information-23h2?view=azloc-24113)

## 本記事で説明する内容
今回紹介するAzure Local 22H2から23H2からのアップグレードはMicrosoftのサポートポリシーを維持するためにおこなうOSバージョンの更新のみです。
ハードウェアメーカーは利用するハードウェアの機種ごとに別途サポートポリシーを定めてファームウェアやドライバの規定を設けていることがありますので、
Azure Localの製品としてサポートを維持するにはそちらも考慮してハードウェアメーカーのドキュメントやサポートへの確認もおこないましょう。

# Azure Local 23H2へのアップグレード概要
## アップグレードの概要と流れ
アップグレードの概要や細かな手順は基本的にはMicrosoftの以下のドキュメントで説明されています。
[Microsoft Learn | Azure Localアップグレードについて](https://learn.microsoft.com/ja-jp/azure/azure-local/upgrade/about-upgrades-23h2?view=azloc-24113)

また、上記のAzure Localのアップグレードについてまとめられた一連のドキュメント以外に、以下も確認しておくとよいでしょう。
- 23H2アップグレード後にAzure Locas等のクラウド管理機能を使うために必要な内容
[Microsoft Learn | AzureからAzure Localの管理の強化](https://learn.microsoft.com/ja-jp/azure/azure-local/manage/azure-enhanced-management-managed-identity?view=azloc-24113)
- 23H2アップグレード後に推奨されるセキュリティ管理設定の有効化
[Microsoft Learn | アップグレード後のセキュリティの管理](https://learn.microsoft.com/ja-jp/azure/azure-local/manage/manage-security-post-upgrade?view=azloc-24113)
- Azure Local Supportability ForumのUpgradeのページにまとめられたよくあるトラブル事例
[Azure Local Supportability Forum](https://github.com/Azure/AzureLocal-Supportability?tab=readme-ov-file)

以上の内容を踏まえて最大限Azure Local 23H2の機能を利用できる状態まで持っていくことを考えるとこのような流れになるかと思います。
1. [事前準備]Azure Local 22H2のビルドを最新化
2. [事前準備]利用しているハードウェアについてファームウェア・ドライバをメーカーサポートに即したものに最新化
3. OSアップグレードの適用
4. ソリューションアップグレード前の前提条件を満たす
5. ソリューションアップグレードの適用
6. [オプション]クラウド管理機能やセキュリティ管理設定の有効化

# アップグレードの戦略
## Microsoftのサポートを受けられるようにする
Microsoftのサポートを受けるには先の作業手順の3. OSアップグレードの適用までを完了させることが最低条件です。
これを2025年5月31日までに完了させないとサポートが受けられなくなってしまいます。

## Azure Local 23H2へのアップグレードをOSアップグレードまでに留めることについて
"4. ソリューションアップグレード前の前提条件を満たす"の作業では22H2の環境ではサポートされた構成を23H2でサポートされる構成に変更することが必要になる場合があります。
この中には以下のような大きな変更が含まれ、作業時間はもちろん仮想マシンのネットワーク断、ハードウェアの追加（ディスク増強）などが必要になることも考えられます。
- ネットワークATCが利用されていない環境ではネットワークATCを有効化してインテントを構成すること
  ⇒仮想マシンのNICを一時的に切断して新しい仮想スイッチに再接続する処理があります。
- ストレージプールからArc Resource Bridge等に必要な250GBの空きボリュームが作成できる領域を確保すること
  ⇒容量に空きがなければディスク追加が必要な可能性があります。
- Azure Localのインストール言語が英語であること
  ⇒日本語で構築済みの22H2の場合にどうしたらよいのかは公開情報からは不明です。

ということで作業期間や業務影響、コストの問題などからすぐにソリューションアップグレードの適用ができないケースもありそうです。
そのため、場合によっては"3. OSアップグレードの適用"までを2025年5月31日までに完了させて、その後の対応は時間をかけてということも考えられると思います。

# OSアップグレード前の準備
まずは上にも記載したように22H2の状態で最新のビルドまで更新をおこない、ファームウェア・ドライバもハードウェアメーカーのサポートバージョンにアップデートしましょう。
次に、OSアップグレードの適用をおこなうためにアップグレードの適用方法を検討します。
現状はPowerShellとWindows Admin Center (WAC)、SConfigを利用した3パターンが提供されているものの、MicrosoftはPowreShellの更新を推奨しています。
PowerShellによる更新ではAzure Local外部にWindows Server 2022の管理用サーバが必要になりますので用意しましょう。

ちなみに私はPowerSellによる更新を試したもののうまく進めることができなかったためWACによる更新を最終的に利用しました。
22H2を利用している場合はWACは利用しているので、この場合の準備は問題ないかと思います。

# OSアップグレードの手順
本題のOSアップグレードですが、PowerShellとWACによる更新を紹介します。
手順はMicrosoftのドキュメントが詳しいためそちらも参照ください。

## PowerShellによる更新
1. クラスター対応更新の更新プログラムのスキャン実行
`Invoke-CauScan`コマンドで更新プログラムをスキャンします。
"Feature update to Azure Stack HCI, version 23H2"が適用可能であることが確認できます。
![invoke-causcan.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/d943e45a-d6ee-40f6-9889-434200cc7339.jpeg)

2. クラスター対応更新の実行
`Invoke-CauRun`コマンドで更新プログラムを適用します。
ですが、私の環境ではクラスター対応更新を開始する前のチェックでストレージジョブが実行されていると認識されてしまい開始することができませんでした。
メッセージではストレージジョブが0件実行されていると表示されており、実際にホストノードで`Get-StorageJob`コマンドを実行してもストレージジョブは表示されず存在しないように見えました。
![invoke-caurun.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/36a58a23-bde1-49f1-941c-f15df87dd57b.jpeg)

    何度かリトライしたりクラスターを停止して起動したりしたものの改善しなかったためここで諦めてWACによる更新としました。
    これが成功していた場合は手順書に則って従来の22H2の更新通りクラスターの機能レベルの更新やストレージプールの更新などもおこなっていくことで完了すると思われます。

## WACによる更新
1. Windows Admin Centerで[更新プログラム]ブレードから更新を実施
こちらも従来の22H2での更新プログラムの適用と同様に実施します。
[機能の更新]に"Feature update to Azure Stack HCI, version 23H2"が見えていますので、これを適用します。
![wac-cau-01.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/4948aa5d-8530-4cfd-ad54-a6ca230b5d69.jpeg)

    今回は更新途中に2台目の更新に移るタイミングで1回認証情報の再入力が求められました。
これが必須で発生するかはわかりませんが念のため定期的にチェックしておくとよさそうです。
![wac-cau-02.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/fb8ec8d2-2fa4-405c-8348-7dcecf67bbfd.jpeg)

    更新の適用は2ノードの環境でだいたい30-40分程度で完了しました。

2. Azure LocalのホストノードからPowerShellでストレージプールの更新を実施
こちらも従来の更新と同様にストレージプールの更新を実施します。
`Update-StoragePool -FriendlyName "S2d on <クラスター名>"`

    更新後のバージョンは"Windows Server vNext"になっていました。
![storagepool-version.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/7a268c4b-578f-45e0-a93b-b7667cf8b3da.jpeg)

# OSアップグレードまででできること
最後にOSアップグレードまでをおこなった段階で可能なAzure Local 23H2の機能をチェックしてみます。
あくまでソリューションアップグレードの適用まで完了することが推奨されますが、この状態でどこまで利用できるかを確認してみました。

## PowerShellモジュール
OSアップグレードを適用した後にインストールされているモジュールは以下の通りでした。
![get-installedmodule.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/09ce4163-e8b2-4e32-8c1d-25a3878e2742.jpeg)

23H2を新規構築した環境に比べると以下のモジュールなどが入っていません。
- ArcHci
- Az.AksArc
- Az.Attestation
- AzSHCI.ARCInstaller
- Moc

## 監視機能
Azure Local 23H2の監視機能には正常性アラート、Azure Local Insights、メトリックの3つがありますが、以下の通りでした。
- 正常性アラート機能
機能を有効化するための設定が表示されず有効化できませんでした。
![health-alert.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/c2adcf86-3c8a-4324-b30e-91adc60e868c.jpeg)

- Azure Local Ingiths機能
こちらのドキュメント記載の方法でAzure LocalをAzureに再登録することでマネージドIDが設定されて有効化できました。
[Microsoft Learn | AzureからAzure Localの管理の強化](https://learn.microsoft.com/ja-jp/azure/azure-local/manage/azure-enhanced-management-managed-identity?view=azloc-24113)

    有効化後は通常の23H2と同様の手順で機能を有効化してInsightのワークブックに情報が表示されました。
![insight.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/44fd9693-65d4-4f11-a6ad-db6b5f59dda5.jpeg)

- メトリック機能
Azureポータルのメトリック画面は表示できるものの、データは収集されていませんでした。
メトリック機能のドキュメントにAzureEdgeTelemetryAndDiagnostics拡張機能が前提になっていたため、拡張機能の設定を"Enhanced"に変更してみましたが変化なしでした。
[Microsoft Learn | Azure Monitorメトリックを使用してAzure Localを監視する](https://learn.microsoft.com/ja-jp/azure/azure-local/manage/monitor-cluster-with-metrics?view=azloc-24113)
![metric.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/78b291e7-4790-4a7b-96fa-60affaeb7b43.jpeg)

## セキュリティ機能
こちらはセキュリティ機能の有効化が別途必要です。
ですが有効化のためのコマンドレットがインストールされていないためOSアップグレードのみおこなった状態では有効化できないようです。

## Azure Arc VM管理機能
こちらはソリューションアップグレードの適用が必須ですので利用できません。
Azureポータルで関連する画面を開くとこのような表示になります。
ちなみにエラーメッセージのリンクをクリックするとクラスターのデプロイ画面が開きますが、何も表示されません。
![after-os-upgrade-arc-vm-management.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/d99470bc-6aec-4066-adc3-e4356d013ce2.jpeg)

# まとめ
22H2のサポート期間が残り3か月を切り23H2へのアップグレードを検討されている方はぜひアップグレードの準備を進めましょう。
サポートを受け続けるにはOSアップグレードまででも現時点では問題ありません。まずは2025年5月31日までにOSアップグレードの完了を目指すことをおすすめします。
ただし、Azure Localの動向は今後も要チェックし、なるべく早いタイミングでソリューションアップグレードの適用も計画することを強く推奨します。