こんにちは! セキュリティチームのta2ya(たつや)です。
はじめに
この記事では、AVDのWindows 11 Multi-Session仮想マシンを
- Azure Backupでバックアップ
- ファイル単位でのリストア
- 仮想マシン単位で、「既存を置換」の形式でのリストア
するまでを扱います。
バックアップ対象となるAVDの構築手順については、この記事では扱いません。
(そちらについては、別途記事化する予定です)
多くのつまずきがあったのでその振り返りと、未来の自分&まだ見ぬどこかの誰かに向けて記事といたします。
3行まとめ
- AVDのWindows 11 Multi-Session仮想マシンは、Azure Backupでバックアップし、ファイル単位・仮想マシン単位でリストアできます。
- ファイル単位のリストアは、BitLocker無効化・管理者実行・英語ロケール・ポート3260許可が必要となるケースがあります(弊社環境での事例となります)。
- 仮想マシン単位のリストアは「既存を置換」で。「新しい仮想マシンの作成」だとAVDホストプールが同名の復元VMにセッションホストの紐付けを奪われてしまいます。
今回検証に至ったきっかけ
- それまで利用していたAVDのOSがWindows 11 23H2であり、近くOSのサポート期限を迎える状況となっていたので、AVD自体を再構築する必要が生じた
- AVD仮想マシンをバックアップする手段として、弊社のクライアントOSのバックアップに使用しているDruva inSyncを想定していたが、Windows 11 Enterprise Multi-Sessionはサポート対象外OS(サポートに確認したところ、DruvaはAVDをサーバーOSとして認識してしまうため、対象外OSとなる)であり、別のバックアップ手段を構築する必要が生じた
参考情報:Supported system settings
inSync does not back up system settings from:
- Any of the Windows Server Operating Systems
想定読者
- Azure Backupを「有効化、バックアップはしたがリストア(復元)は未経験」という方
- 小規模で、スケーリングの必要がない用途(検証用途や、運用作業用端末の用途)でAVD仮想マシンを利用している方
今回バックアップ対象としたAVD環境
- 場所:Japan East
- ホストプールの種類:プールされたホストプール
- セッションホストのOS:Windows 11 Enterprise Multi-Session 25H2
- セキュリティタイプ:トラステッド起動(セキュアブート、vTPM有効。Windows 11の要件)
- ドメイン参加方式:Microsoft Entra Join
- VMサイズ:4Core・Memory 16GB (Standard_B4ms)
- OSディスク種別とサイズ:Standard HDD 128GB
- BitLockerによるディスク暗号化:無し
今回のAzure Backup構成
- リージョン:Japan East
- ストレージアカウントの冗長性:ローカル冗長ストレージ (LRS)
- バックアップポリシー:Enhanced
それぞれ、以下の理由で選択しています。
- リージョン:バックアップ対象の仮想マシンが存在するリージョンと同じ値にしています。
- 冗長性:常時起動している端末ではなく、作業時のみ起動して利用する端末であることから、コストとの兼ね合いを考えて選択しています。
- バックアップポリシー:今回のバックアップ対象仮想マシンは、Windows 11のトラステッド起動の仮想マシンであるため、Enhancedのポリシーが必要となります。
Azure Backup構築手順
1. バックアップポリシーと、Recovery Servicesコンテナーの作成
Azure Backupによるバックアップに際して、「バックアップポリシー」と「Recovery Servicesコンテナー」というものを作成します。
「バックアップポリシー」では、
- バックアップの実行頻度
- バックアップの実行時刻
- タイムゾーン
- バックアップの保持期間
といったパラメータを設定します。
「Recovery Servicesコンテナー」は、バックアップ データを格納・保持するAzureのストレージエンティティです。
前述した「バックアップポリシー」で設定した内容に従い、データを格納・保持する場所として作成します。
2. バックアップの有効化
「バックアップポリシー」と「Recovery Servicesコンテナー」の作成、設定をした後、「バックアップの有効化」をクリックして有効化します。
初回のスケジュールバックアップが完了するまでは、Azure Portalにて対象の仮想マシンの「バックアップとディザスターリカバリー」>「バックアップ」項目で、「前回のバックアップの状態」が「警告(初回のバックアップが保留中)」になります。
3. (初回スケジュールバックアップ実行完了後)バックアップ結果の確認
Azure Backupによるバックアップの実行結果は、Azure Portalにて対象の仮想マシンの「バックアップとディザスターリカバリー」>「バックアップ」項目で、「前回のバックアップの状態」を見ることで確認が可能です。
Azure Backupによるリストア手順(ファイル単位)
1. リストア対象とする復元ポイントの指定と、スクリプトファイル(IaaSVMILRExeForWindows.exe)のダウンロード
Azure Portalにて対象の仮想マシンの「バックアップとディザスターリカバリー」>「バックアップ」の「ファイルの回復」をクリックして開始します。
まず最初に、バックアップ履歴の中からリストア対象とする復元ポイントを選択します。
続けて、以下操作を行います。
- 「実行可能ファイルのダウンロード」ボタンからスクリプトファイルをダウンロード
- 「実行するにはパスワードが必要」欄にパスワードが表示されるので、控えておく
スクリプトファイルとパスワードが揃ったら、ファイル単位のリストアを行いたい仮想マシン上へと、スクリプトファイルを配置します。
2. ファイル復元対象の仮想マシン上での、スクリプトファイルの実行
仮想マシン上にコピーしたスクリプトファイルを「管理者として実行」します。
パスワード入力が求められるため、控えておいたパスワードを入力して、Enterキーを押下します。
なお、スクリプトを実行する際、OSのシステムロケールが「英語」でないと正常に動作しない場合があります。
弊社環境では最終的に表示言語は「日本語」、システムロケールは「英語」の状態で実行しました。
「管理者として実行」しており、パスワードを正しく入力している場合、以下のようにCUI画面に「復元ポイントへと、iSCSI経由で接続が成功した」旨のメッセージが表示されます。
スクリプトファイルが正常に実行されると、マウントされたディスクが以下のようにWindowsエクスプローラー上でも見え、操作できます。
マウントされたディスクから復元対象のファイルをコピー&ペーストすることで、ファイルを復元できます。
ファイルの復元作業が完了したら、Azure Portalにて「ディスクのマウント解除」を忘れずに行います。
なお、ディスクのマウント解除を実行し忘れると、同じ仮想マシンでの後続バックアップがUserErrorUnableToOpenMount のエラーで失敗することがあります。
参考情報:
必要なファイルを復元した後は、接続が閉じられていることを確認します。 これは、スクリプトが実行されているマシンがバックアップ用に構成されている場合に特に重要です。 接続がまだ開いている場合、後続のバックアップが失敗し、"UserErrorUnableToOpenMount" というエラーが表示されることがあります。 これは、マウントされたドライブまたはボリュームが利用可能であると見なされているため発生します。
Azure Backupによるリストア手順(仮想マシン単位)
1. ストレージアカウントの作成
まず最初に、ストレージアカウントを作成します。
ストレージアカウントは、仮想マシンの復元を行う際に一時的な作業領域として利用されます。
このため、ストレージアカウントが無いと、後述する仮想マシン単位でのリストアが行えません。
2. リストア対象とする復元ポイントの指定と、「既存を置換」方式を指定してのリストア開始
事前準備として、復元対象の仮想マシンをシャットダウンした状態にします。
シャットダウンしていない状態だと、エラーコード「UserErrorVmNotShutDown」が発生してリストアが失敗します。
参考情報:電源オフ状態の Azure VM を復元できますか?
復元中は、Azure VM の電源がオフ状態である必要があります。 そうしないと、エラー コード UserErrorVmNotShutDown を使用して、事前チェック ステージで復元操作が失敗します。
Azure Portalにて対象の仮想マシンの「バックアップとディザスターリカバリー」>「バックアップ」の「VMの復元」をクリックして開始します。
復元ポイントを選択します。
「復元対象」は「既存を置換」、「復元の種類」は「ディスクの復元」を選択して、「復元」をクリックして実行します。
今回バックアップ対象としたAVD仮想マシンの場合、約14分でリストアが完了しました。
おわりに
「バックアップ」と「リストア」、単語にすればわずか2つですが、その中に多くの学びを含む作業でした。
今回の対応を完結するにあたり、同じセキュリティチームのHitomi Satoさんと、
デバイスチームのToshiki Tsujiさんには多大な協力をいただきました。
改めてありがとうございました!!
この記事がAzure Backupでのバックアップ・リストアに取り組む方の助けとなれば幸いです。
参考文献
- Azure VM バックアップの概要
- Azure Backupアーキテクチャとコンポーネント
- Recovery Services コンテナーの概要
- VM の設定から Azure VM をバックアップする
- Azure 仮想マシンのバックアップからファイルを回復する
- Azure VM バックアップのファイル回復に関する問題のトラブルシューティング
- Azure ポータルでAzure VM データを復元する方法
- 暗号化された Azure 仮想マシンを復元する
- マネージド ディスク暗号化オプションの概要
- Azure VM Backup の通信要件や処理の流れについて
- Azure VM Backup でリストアする際にステージングの場所として利用するストレージ アカウントについて
- Azure Virtual Desktop エージェントに関する一般的な問題をトラブルシューティングする
- Azure Backup の障害調査に必要な情報