ユーザープロファイル問題を解決する「FSLogix」とは?

突如、マイクロソフトによる買収が発表された「FSLogix」ですが、実は、Azure Virtual Desktop(AVD)にとって非常に重要な機能を担っています! それは、Windows 10 Multi-session に欠かせない、ユーザープロファイルを管理する機能を提供しています。

VDI環境では、ログインする度に違うデスクトップが割り当てられるので、ユーザープロファイルをファイルサーバーに保存し、ユーザーがログインした際に、自身のプロファイルをファイルサーバーから読み込む必要があります。

よくあるユーザープロファイルの問題点

・ログイン時にユーザープロファイルを読み込むため、デスクトップ表示が遅い
・ファイルサーバーやネットワークに負荷を与える
・ファイルサーバー障害時には、回避する方法が無い

FSLogixの設定方法は、こちらをご覧下さい。
FSLogix Profile Container と Office Container を設定してみる!

OneDriveの利用について

ユーザーデータを同期できるアプリとしてOneDriveがありますが、プロファイル問題を解決するものではありません。同期対象となる場所は[デスクトップ][ドキュメント][写真]のみとなります。また、AVD Pooled環境で利用すると、一度サインインしたセッションホスト内にプロファイルが残り容量を圧迫します。


それでは、FSLogix を見ていきましょう!

【FSLogix 5つの機能】

①Office Containers
②Profile Containers
③Cloud Cache
④Application Masking
⑤Java Version Control

※FSLogixアプリケーションは、マスターイメージにインストールして利用します。
※Active Directoryが無い環境でも利用できます。

【サポートOS】
・Windows 7 以降 (32/64bit)
・Windows Server 2008 R2 以降 (32/64bit)
※Windows 8 / Server 2012 から、VHDX をサポート

【必要なライセンス】 ※どれか1つ
・Microsoft 365 E3 / E5 / A3 / A5 / Business / F1 /F3
・Windows E3 / E5 / A3 / A5
・Windows VDA PerUser
・RDS CAL
・Remote App Streaming

設定についてはコチラをご覧ください。 ※Step2を参照
Azure Virtual Desktop 用のマスターイメージを作成してみる!


①Office Containers

【 特徴 】
ユーザープロファイル内の[Outlook/OneNote/OneDrive]をVHD(X)として、
1箇所のファイルサーバーに保存する。
ログイン時には、VHD(X)をマウントしてユーザープロファイルを利用する。
設定情報[HKLM\Software\Policies\FSLogix\ODFC]
※動作はProfile Containerと同じ


②Profile Containers ※推奨

【 特徴 】
ユーザープロファイル全体をVHD(X)として、1箇所のファイルサーバーに保存が可能。
ログイン時には、VHD(X)をマウントしてユーザープロファイルを利用する。
設定情報[HKLM\Software\FSLogix\Profiles\]
※Office Containersの機能を包括しているが、設定情報は別々で保持する。

複数のストレージを指定可能。
例: \\10.0.0.4\Primary;\\10.0.0.4\Secondary;
最初に指定された場所[Primary]が”Active”となり、ここにプロファイルが作成される。
デスクトップ上からの読み書きは、そのまま[Primary]ストレージに対して行われる。
[Secondary]にはプロファイルは保存されず、[Primary]障害時に[Secondary]に保存される。両ストレージ間での同期の機能は無い。よって、[Primary]から[Secondary]への複製方法を用意する必要がある。
“Active”から”Passive”ストレージへの切り替えには、ユーザーの再ログインが必要となり、
このタイミングで”Passive”と”Active”が入れ替わります。

ログイン中に”Active”ストレージが停止すると、ローカルディスクへのファイル保存やアプリケーションの起動が不可となる。ファイルサーバーへの保存は可能。


③Cloud Cache

【 特徴 】
ユーザープロファイル全体をVHD(X)として、ファイルサーバーとPage Blobに保存が可能。
ログイン時には、VHD(X)をマウントしてユーザープロファイルを利用する。
※Office 365 Containersの機能を包括している。

最大4ヵ所のストレージを指定可能。
指定されたストレージは全て”Active”となり、プロファイルが保存される。
Active/Active 構成なので、自動的にフェイルオーバーが実施される。
ファイルサーバーの移行にも利用可能。
メタデータファイルにより、最新のプロファイルを識別している。
VHD(X)をマウントする際にキャッシュデータを読み込むため、Profile Containersに比べ、ログオン/ログオフに時間がかかる。

【動作のしくみ】


①[C:\Users\username]としてマウントされているのは[C:\~\Proxy\xxx.vhd]

②[C:\~\Proxy\xxx.vhd]の実体は[C:\~\Cache\xxx.vhd]
ファイルサーバーのキャッシュ領域であり、書き込みデータは、ここでコミットされる。

③[C:\~\Cache\xxx.vhd]から、非同期にて各ファイルサーバーに書き込まれる。

【Windows10 Multi-Sesion で”Cloud Cache”を利用する場合の注意点】

・ユーザーが作成したデータは、サインアウトするまで[C:\~\Cache\xxx.vhd]に保持
されるので、Cドライブの容量には注意が必要

・多くのユーザーを集約すると、Cドライブにアクセスが集中するのでIOPSに注意が必要

・下記プロファイル領域は除外されます。
C:\Users\<username>\AppData\Local\Temp\
C:\Users\<username>\AppData\Local\Microsoft\Windows\INetCache

【プロファイルを二箇所に保存した場合】
デスクトップ上にファイルが作成されると、二箇所同時に作成したファイルと同容量の”Write”が発生する。当然、キャッシュデータ(ストリーミング)でも”Write”が発生する。
ファイルコピーは、ストレージ内で複製するため、VMからの”Write”が発生しない。
同期が外れ、ストレージ間で不整合が発生した場合、優先されるプロファイル側ストレージに”Read”が発生し、他のストレージに対して”Write”が発生する。差分データをコピーするのではなく、VHD丸ごととなる。これらの処理は、バックグラウンドにて行われる。
この動作から、xxx.metaには、差分情報が保持されているわけでは無い事がわかる。

【同時サインイン時に少しでも早くデスクトップを表示させる方法】
効果大:CPUコア数やクロックが高いVMを選択する。(2core/userがベスト)
効果中:”Cloud Cache”よりも”Profile Container”を使う。
効果小:”Blob”よりも”Azure NetApp Files”を使う。
※CドライブにPremiumSSDを使っても、Profile Containerの場合効果無し

コストをかけない対策
・サインインのタイミングをずらす。
・集約数を減らし、台数を増やす。※ラウンドロビンでの分散効果
・セッションを切らない。
・最適化ツールの導入


④Application Masking

VDIにインストールした各種アプリケーションを、管理者が指定したユーザーにのみ利用を許可する機能。リアルタイムに変更が可能。


⑤Java Version Control

ブラウザなど各種アプリケーションにて使用される、Javaのバージョンを変更する事が可能
※IE11のリタイアに伴い、サポートが終了しました。


おまけ

AVDで複数OSを利用する場合、プロファイルバージョンごとにFSLogixを設定して下さい。
※FSLogixには、プロファイルバージョンの壁を超える機能はありません。
※プロファイルバージョンが違うOS間でのプロファイル共有はサポートされません。

【Windows OS と対応する プロファイルバージョン】

・Windows XP and Windows Server 2003 [Profile v1]
・Windows Vista and Windows Server 2008 [Profile v2]
・Windows 7 and Windows Server 2008 R2 [Profile v2]
・Windows 8 and Windows Server 2012 [Profile v2]
・Windows 8 and Windows Server 2012 with patch (2887239) applied and registry setting present [Profile v3]
・Windows 8.1 and Windows Server 2012 R2 [Profile v2]
・Windows 8.1 and Windows Server 2012 R2 with patch (2887595) applied and registry setting present [Profile v4]
・Windows 10 [Profile v5]
・Windows 10 Anniversary Edition (1607) and Server 2016/2019 [Profile v6]

[Registry Setting]
(DWORD) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ProfSvc\Parameters\
UseProfilePathExtensionVersion = ‘1’