Recently a customer asked me about the Windows Virtual Desktop (WVD) FSLogix file storage limitations. After some research and talks to the Product Group it turns out that there are not really limitations by FSLogix by itself. The limitations are defined by the underlying technologies.
First of all FSLogix mainly used the standard container format .VHD/.VHDX
and these disks are stored on underlaying files storage technologies. In the WVD world this is in general Azure Files.
In terms of different disk types in general you can use all of them:
These are the size limitations of the container formats:
Type | Size Limit Factor | Maximum Size Limit |
VHD Fixed Size (recommended) | Underlying Filesystem in general NTFS | 16 TB (4kb default cluster size) 256 TB (64kb cluster size) |
VHD Dynamic Size | VHD specification (Word Document) | 2040 GB (Theoretically) 127 GB (Practically e.g. ATA Hard drive disk protocol limit) |
VHDX Fixed Size | Underlying Filesystem (Azure Files) | 64 TB (by VHDX definition) 1 TB practically due to underlaying File System (e.g. Azure Files which is used in WVD) |
VHDX Dynamic Size (recommended) Used by default from WVD | Underlying Filesystem (Azure Files) | 64 TB (by VHDX definition) 1 TB practically due to underlaying File System (e.g. Azure Files which is used in WVD) |
Underlaying storage technology for FSLogix in Windows Virtual Desktop:
FSLogix Default for container disks is VHDX with Dynamic Size used on Azure Files. Maximum file size is up to 1 TB (as the file is set to dynamic it will start much smaller with the default profile size of your user profile and grow up the the specified limit. In this case the recommendation is to create dynamically VHDX files not greater than 1 TB).
Performance requirements per user:
This add another implication where you have to consider from the user side.
These are the performance and throughput requirements per User in FSLogix (thanks for Input from the PG)
The
limitations (quotas) are usually not in FSLogix but in the underlying storage
fabric that is being used to store FSLogix. Here are tables that show what
FSLogix needs per one user. If we want to handle 100 users we need 1000 IOPS
for steady used, 5000 IOPS for logon storm, etc.
Steady IOPS used per user | 10 |
Boot / Login IOPS used per user | 50 |
Steady throughput per user (MB per second) | 1.5 |
Boot / Login throughput per user (MB per second) | 7.5 |
Quota
Technically you can setup quota for the user profiles in Windows directly. Due to the used filterdriver the user profile directory behaves like a native folder where quota can be applied. So if the admin sets a quota for the user profile you get notified as usual. There is no dedicated quota management in FSLogix necessary or available. (Thanks to Stefan for clarification!)