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

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

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

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

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

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


それでは、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を参照
Windows 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のバージョンを変更する事が可能


おまけ

WVDで複数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’