JavaScriptを有効にしてください

Windows Hotpatch を Azure Monitor でチェックし隊

 ·   4 分で読めます  ·   Kento

Windows Server Datacenter: Azure Edition で提供されている Hotpatch を試してみました
検証には 可用性メトリック というプレビュー中のメトリックを使ってみます

Hotpatch とは

Windows Server Datacenter: Azure Edition のみで提供されている更新プログラムのインストール方法です
通常更新プログラムはインストール後に再起動を必要とします
Hotpatch は再起動の頻度を 3 回に 1 回に減らせます(緊急時を除き
その結果、ダウンタイムを極力減らして OS を最新の状態に保つことができます
Windows Server Azure Edition のHotpatch | Microsoft Learn

3回に1回がいつなのかは Azure Automanage for Windows Server 2022 のHotpatchのリリース ノート - Microsoft サポート に記載があります

例えば 2024 年の場合、1月、4月、7月、10月 が再起動が必要なタイミングになります
再起動が必要な更新プログラムはベースラインと呼ばれます

hotpatch01
Hotpatchの仕組み:

Windows Server Azure Edition のHotpatch | Microsoft Learn より引用

Azure VM の可用性メトリック (プレビュー)

Azure Monitor は監視サービス群です
Azure 内外のサービスの監視ソリューションを提供しています

Azure VM に関するメトリックのうち、可用性メトリック がプレビューで提供されています
このメトリックを確認すると VM が実行中 [1] か 停止中または再起動中 [0] かがわかります

Hotpatch で本当に再起動なしで実行できるのかをこのメトリックで監視してみたいと思います

ざっくり手順

  1. 環境作成
  2. Hotpatch の実行

1. 環境作成

比較するために Hotpatch に対応している Windows Server Datacenter: Azure Edition と対応していない Windows Server を用意します

Azure Edition (Hotpatch) 非 Azure Edition (非 Hotpatch)
2024/5 時点の Win Ser 2022 Azure Edition 2024/5 時点の Win Ser 2019

特定のバージョンを指定した Azure VM の作成は GitHub Actions を使って Bicep を最新化し隊 – クラウドを勉強し隊 の成果物を利用します

portal01
バージョン指定した Winodws VM のデプロイ:

2. Hotpatch の実行

2024/5 時点の Win Ser 2022 Azure Edition (Hotpatch)

VM のメニューから [更新プログラム] を選択し、[更新プログラムの確認] を実行します
これにより足りていない更新プログラムをスキャンします

portal02
更新プログラムのスキャン:

Hotpatch が有効になっていることを確認して、[1回限りの更新] を選択して更新プログラムのインストールを実行します

portal03
更新プログラムのインストール:

更新プログラムを選択するメニューで Hotpatch だけが選択されるよう [セキュリティ更新プログラム] を選択します
再起動の状態 を見ると “NeverReboots” になっていて、再起動が不要なことがわかります
念のため [必要に応じて再起動] を選択しておきます

portal04
更新プログラムの選択: Hotpatch

更新プログラムのインストールが 2024/7/4 23:18 ~ 23:22 に実施されていることがわかります

portal07
更新プログラムの履歴: Hotpatch

その間の VM の可用性メトリックを見てみると、Hotpatch でのインストールの実行中は VM は実行中だったことがわかります

portal08
可用性メトリック: Hotpatch

2024/5 時点の Win Ser 2019 (非 Hotpatch)

Hotpatch が利用できない Windows Server 2019 でも同じように実行してみます
更新プログラム名に Hotpatch の文字がなく、再起動の状態が “CanRequestReboot” になっています

portal05
更新プログラムの選択: 非Hotpatch

更新プログラムのインストールが 2024/7/4 23:20 ~ 23:30 に実施されていることがわかります

portal09
更新プログラムの履歴: 非Hotpatch

その間の VM の可用性メトリックを見てみると、Hotpatch でのインストールの実行中は VM は実行中だったことがわかります

portal10
可用性メトリック: 非Hotpatch

。。。おかしいですね
VM にアクセスして更新プログラムの状態を見てみると、インストールが保留 (Pending install) されていることがわかりました
Update Manager の設定を何か間違えたのかもしれません
[Install now] をクリックしてインストールを実行します

portal11
インストールの保留: 非Hotpatch

再起動の保留 (Pending restart) になったので再起動を実行します

portal12
再起動の保留: 非Hotpatch

1 分もしないうちに再起動が完了しました

再度、可用性メトリックを見てみます
。。。元気に動いていたことがわかります。
Azure のメトリックの最小粒度は 1 分です
そのため再起動で OS がダウンしていた時間が短すぎた結果、メトリックでは拾いきれなかったのかもしれません

portal13
再起動後の可用性メトリック: 非Hotpatch

おまけ

更新プログラムのインストール、再起動に時間がかかりそうな VM で可用性メトリック検証してみます
用意したのは Windows Server 2019 の 2024/3 時点のバージョンです
同じ手順で更新プログラムをインストールしてみます

portal14
更新プログラムの履歴: 非Hotpatch

更新プログラムのインストールが 2024/7/4 23:22 ~ 23:35 に実施されていることがわかります
その間の可用性メトリックを確認してみます

portal15
更新プログラムの履歴: 非Hotpatch

想定通り、可用性メトリックが 0 になっている瞬間がありました

まとめ

Hotpatch を実行し、可用性メトリックで確認してみました
可用性メトリックは 1 分間隔で取得されるため、再起動の時間が短い場合は拾いきれない可能性がありそうです
まだプレビュー中のメトリックのため、今後の改善が期待されます

参考

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中