Azure Managed Service Column <Azure運用コラム>

Windows Virtual Desktop のユーザプロファイルを Azure Files に保存する

Category: 実践編

2021.04.21

はじめに

本コラムでは、Azure Virtual Desktop(以下、AVD) のユーザプロファイルを外部に保存する方法について紹介します。

ユーザプロファイルというのは、”C:\Users\{UserName}” フォルダのことで、デスクトップ、ドキュメント、ダウンロードなどの個人のデータや個人設定のことです。AVD にてプール型をご利用の場合、ユーザがログインする先の VM が毎回変わってしまいますから、これを外部に保存する必要があるのです。

AVD では、ユーザプロファイルを管理する場合のデファクトスタンダードである FSLogix の利用が推奨されています。この FSLogix を使い、ユーザプロファイルを Azure Files に保存する設定を実際にやってみることにします。

FSLogix とは

これまでの VDI (AVD に限らず) では、”移動ユーザプロファイル” という手法が主流でした。これは、ユーザプロファイルをファイルサーバに保存しておき、ユーザがログインする際にローカルにダウンロードして、ログアウトする際にファイルサーバにアップロードする、というものです。この方式の欠点は、毎回ファイルデータをコピーしないといけないという部分です。ユーザプロファイルのサイズが増えるほど、ログインに時間がかかるようになってしまいます。

それに対して、FSLogix ではユーザプロファイルを VHD 形式 (仮想ハードディスク) として扱います。ログイン時には VHDX ファイルをマウントするだけで済むので、データをコピーするより遥かに高速になりますし、ユーザプロファイルのサイズにも依存しません。

VHD ファイルの保存先は複数から選べます。Azure VM を利用したファイルサーバにしてもよいのですが、AVD を使うのであれば Azure のマネージドファイル共有サービス Azure Files をオススメします。

構築手順

以降の手順に進む前に、既に AVD が構築されているものとします。AVD 構築については、弊社コラム “Azure Virtual Desktop (旧:Windows Virtual Desktop) を構築してみる” あるいは “Hybrid ID 環境 + Azure Virtual Desktop (旧:Windows Virtual Desktop) を構築してみる” を参考にしてみてください。また、AVD にてオンプレ AD DS と Azure AD DS のどちらを使っているかによって、Azure Files の設定手順が少しだけ変わるのですが、今回はオンプレ AD DS を使っているものとします。

1. Azure Files を作成する

ストレージアカウントを作成して、そこに “ファイル共有” を作成します。注意点としては、ストレージアカウント名は 15 文字以内 にする必要があるので気をつけてください。これは、ストレージアカウントを AD DS に参加させるときに、Windows 側の制限に引っかかってしまうためです。今回は、以下の通り、ストレージアカウント “rworksazure” 内に “profiles” というファイル共有を作成しました。

2. Azure Files を AD DS に参加させる

次に、Active Directory ユーザが Azure Files にアクセスできるよう、Azure Files をオンプレ AD DS に参加させます。Azure Files をオンプレ AD DS に参加させるための手順については “Azure ストレージが提供する4つのサービスを紹介 (Azure Files)” 内の “ストレージアカウントを AD DS に登録する” にて説明していますので、こちらを参照してください。ドメインコントローラ上で、PowerShell コマンドの実行が必要になります。

以下の通り、適当な OU 内にストレージアカウントと同名のコンピュータアカウントが作成されていれば、成功です。

3. AVD のユーザに Azure Files へのアクセス権限 (Azure ロール) を与える

次に、ユーザが Azure Files にアクセスできるよう、Azure AD ユーザに Azure ロールを付与します。こちらの設定も具体的なやりかたは “Azure ストレージが提供する4つのサービスを紹介 (Azure Files)” 内の “Azure AD ユーザに Azure ロールを割り当てる” を参考にしてください。

割り当てる Azure ロールは以下となります。

  • 管理者ユーザ (共有フォルダのアクセス権を調整をする人) : “ストレージ ファイル データの SMB 共有の管理者特権共同作成者”
  • AVD を利用するユーザ、もしくは、グループ : “ストレージ ファイル データ SMB 共有共同作成者”

4. 共有フォルダの ACL (NTFS アクセス権) を調整する

今度は、Azure Files に対して Windows OS 側のアクセス権限を調整、つまり、共有フォルダの ACL 調整を行います。ACL 調整作業は、オンプレ AD DS ドメインに参加している適当なサーバにて行います。管理者ユーザ (先程、”管理者特権共同作成者” ロールを割り当てたユーザ) にてログインし、ストレージアカウントを アクセスキー を使ってマウントします。

適当なドライブ (ここでは Z ドライブ) にマウントしたら、コマンドプロンプトにて icacls コマンドを実行して ACL を調整します。”ユーザーが自分のプロファイルを作成できるようにしつつ、作成者以外はそのプロファイル にアクセスできない” という権限になります。”testuser01@rworks-azure.tk” の部分は、AVD ユーザの UPN を指定してください。実際の運用では、ユーザではなくグループ (注釈1. AVD ユーザのグループ管理) で管理すると良いです。

icacls Z: /grant testuser01@rworks-azure.tk:(M)
icacls Z: /grant "Creator Owner":(OI)(CI)(IO)(M)
icacls Z: /remove "Authenticated Users"
icacls Z: /remove "Builtin\Users"

結果として、以下のような ACL になるはずです。

5. セッションホストに FSLogix をインストールする

それでは、本題の FSLogix のインストールと設定を行っていきます。この作業はホストプール内の全てのセッションホストに対して行う必要があります。が、それだと大変ですので、マスターとなるイメージを作成して、そこからセッションホストを作ることにしましょう。

まずは、マスターとなるイメージを作成するために、windows10 マルチセッションの Azure VM を一台、用意します。(※ セッションホストからイメージを作成するとインストール済み AVD 関連ツールのせいで、ホストプール展開時に失敗します。ですので、単独の Azure VM にインストールします。)

FSLogix をインストールしていきます。ここから インストーラをダウンロードしてください。クリックして実行するだけでインストールが完了します。

FSLogix の設定は、レジストリ、もしくは、グループポリシーで行います。今回は、レジストリを設定することにします。regedit を開いて、[コンピューター] > [HKEY_LOCAL_MACHINE] > [SOFTWARE] > [FSLogix] と辿ってください。そして、[Profiles] キーを作成して、以下の通り設定値を入力します。[VHDLocations] には Azure Files の UNC パスを指定してください。(詳しくは、こちら)

設定が完了したら、再起動を行います。

6. VM のイメージ化とホストプールへの展開

最後に、FSLogix の設定を済ませた VM をイメージ化して、ホストプール上に展開できるようにします。

FSLogix の設定を済ませた Azure VM にログインして、一般化を行うためのツール “sysprep” を実行しましょう。以下の通り、”Generalize” にチェックを入れて実行します。これにより、マシン固有の情報が削除されて一般的なイメージとして利用できるようになります。

sysprep による一般化が完了すると VM がシャットダウンしますから、今度は Azure ポータル上から VM を開いて、[キャプチャ] をクリックしてイメージを作成します。[Shared Image Gallery にイメージの共有する] を “いいえ” にすると単純にイメージを作成します。”はい” にすると、 共有イメージギャラリーにイメージが登録され、バージョン管理できるようになります。定期的にイメージ更新の予定があるのであれば、共有イメージギャラリーの利用をオススメします。

イメージの作成が完了したら、このイメージから新しいセッションホストたちを作成します。既にホストプールがあるのであれば、[セッションホスト] メニューの [追加] から VM を追加することができます。ただし、古いイメージから作成されたセッションホストは全て削除しておきましょう。以下は、セッションホスト追加の画面です。イメージは、”すべてのイメージを表示” からギャラリーに共有したイメージを探して、指定します。

FSLogix 入りのセッションホストが展開できたら、実際にログインをして、ユーザプロファイルが Azure Files に保存されるかテストしてみましょう。AVD にログインしてみると、以下のメッセージが現れるはずです。

ログインが完了したら、Azure Files の画面を確認してみてください。vhd ファイルが作成されていれば、成功です。

まとめ

FSLogix を利用したユーザプロファイル管理の仕組みを紹介しました。これで、プール型でも通常の Windows10 と同じように利用することができます。また、配置先が Azure Files ですので、可用性と耐久性の面からも非常に安心です。Azure サービスを駆使して、快適にお仕事をしていきましょう。

注釈1. AVD ユーザのグループ管理

AVD ユーザに対しての調整事項がたくさん出てきてしまいましたが、グループを使うことで効率よく管理ができます。Azure AD Connect では、ユーザだけではなくグループも同期対象ですので、オンプレ AD DS 上に AVD ユーザ用のグループを作成するのが良いでしょう。そして、グループに対して以下の調整を行ってください。

  • AVD のアプリケーショングループに割り当てる (Azure 側)
  • Azure ロール “ストレージ ファイル データ SMB 共有共同作成者” を割り当てる (Azure 側)
  • 共有フォルダへのアクセス権限を与える (Windows 側)

新しい AVD ユーザが増えたら、オンプレ AD DS 上で当該グループに追加するだけで済みます。

本文へ戻る

Tag: AVD Azure Files Azure Virtual Desktop Windows Virtual Desktop WVD

関連記事

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php