Asked by:
Storage Recommendations for FSLogix

General discussion
-
- One option is to use Scale out File Server (SOFS ) by Microsoft: https://docs.microsoft.com/en-us/windows-server/failover-clustering/sofs-overview
- O365 container requires about 1.5 IOPS per user
- Search index require approximately .5 IOPS per user
- Servers: 3 file servers located on 3 different hypervisor hosts
- 8-16 vCPUs, 32-64GB RAM, 4 vNics each
- Storage: EMC Flash disk array with sufficient IO
- On average, their users created about 1GB of cache per week of Cache stored. The amount of storage will need to be equivalent to 3 months of Exchange cache plus 10% for Search Index, plus growth of another about 1,000 users. Container size is initially capped at 30GB when provisioned, but can be adjusted as needed. If the average user Outlook cache is 5GB then the space needed at a minimum as specified would be 5x5,000=25,000 + 2,500 or a total of 27,500 GB (minimum).
- Network: Check with your service provider for best practices for SOFS designs and other HA solutions to provide high availability.
- Estimated IOPS per User for User Type × Number of Users
- 1 IOPS = 1,750 Concurrent Users
- .5 IOPS = 3,500 Concurrent Users
- .25 IOPS = 7,000 Concurrent Users
- https://technet.microsoft.com/en-us/library/bb125019(v=exchg.65).aspx
- https://technet.microsoft.com/en-us/library/ee832791.aspx
- https://blogs.technet.microsoft.com/exchange/2015/10/15/ask-the-perf-guy-sizing-exchange-2016-deployments/
- https://blogs.technet.microsoft.com/exchange/2013/05/06/ask-the-perf-guy-sizing-exchange-2013-deployments/
Storage Recommendations for FSLogix
The following recommendations provide a baseline estimate for the storage IOPS you will need to run FSLogix for O365 Containers and Outlook search.
Networking Note: It's not a good idea to us WIFI with FSLogix, since your computer needs to be connected to the network through the whole logoff process or else FSLogix will not be able to copy your profile to the server.
You will need high availability to protect the Fileserver where your containers are stored.
You will need about 2 IOPS per user total to use FSLogix with O365 containers with Windows Search Index:
An example customer with 5,000 users used the following SOFS design to deliver the throughput needed of 10k IOPS total:
Calculating actual storage IOPS Required for FSLogix:
You can use the following table to calculate your IOPS requirements for FSLogix:
NUMBER OF USERS X REQUIRED SPACE
RAW SPACE
RAW SPACE / SIZE OF HARD DISK
REQUIRED HARD DISKS
‘X160X’ IOPS PER HDD X REQUIRED HARD DISKS
TOTAL IOPS AVAIL
NUMBER OF USERS X IOPS
REQUIRED IOPS
TOTAL IOPS AVAIL / REQURED IOPS
IOPS PER USER
IOPS PER USER
=>1.5 IOPS
Example: Showing you don't have enough disks. (To get to 1.5 IOPS per user we would need about 70 Disks.)
Number of Users
7000
Required Space per user in GB
5
HDD Size
1024
Required HDD's
34.1796875
Adjuster
0
Total HDD's
34
IOPS Per HDD
150
Total IOPS Avil
5126.953125
IOPS PER USRER AVAIL
0.732421875
Example: Showing you have enough disks. (To get to 1.5 IOPS per user we would need about 70 Disks.)
Number of Users
7000
Required Space per user in GB
5
HDD Size
1024
Required HDD's
34.1796875
Adjuster
35
Total HDD's
70
IOPS Per HDD
150
Total IOPS Avil
10500
IOPS PER USRER AVAIL
1.50
Calculating Theoretical storage IOPS Required for FSLogix
If you do not have Exchange installed but want to plan for impending storage needs that result from an Exchange deployment, you can use data that has already been collected. This data is in the form of mailbox profiles, which describe general usage patterns for Exchange mailboxes. The following table lists mailbox profiles that can be used as a guideline for capacity planning of Exchange mailbox servers. These profiles represent mailbox access for the “average user” Outlook (or MAPI-based) client within the organization. User profiles and corresponding usage patterns
User Type
Database Volume IOPS
Send/Receive per day
Mailbox Size
Light
.5
20 sent/50 received
50 MB
Average
.75
30 sent/75 received
100 MB
Heavy
1.0
40 sent/100 received
200 MB
Large
1.5
60 sent/150 received
500 MB
Each profile represents total I/O to the Jet database and does not include I/O related to transaction log file activity. In order to accurately calculate your disk subsystem load, you must split this database I/O into read and write I/O because write operations are more I/O intensive than reads. To help estimate your own read/write ratio, consider the usage patterns of a company that has a heavy mailbox profile. In a production environment, the company can expect to incur read/write ratios between 75/25 percent and 66/33 percent, depending on the group of users being evaluated. For a mail system consisting of 2,000 heavily used mailboxes, a total of 1,500 IOPS is generated on the database volume.
The formula to calculate this is:
In this example, .75 IOPS × 2,000 mailboxes=1,500 IOPS.
Using a conservative ratio of two reads for every write (66 percent reads to 33 percent writes), you would plan for 1,000 read I/O and 500 write I/O requests per second for your database volume. Every write request is first written to the transaction log file and then written to the database. Approximately 10 percent of the total 1,500 IOPS seen on the database volume will be seen on the transaction log volume (10 percent of 1,500 is 150 IOPS); 500 write I/O requests will be written to the database. These estimated profiles are for an Exchange server that has no other components installed beyond the base operating system. If other variables, such as third-party Personal Information Management (PIM) software, MAPI-based virus scanning (server and client side), management and monitoring software, or backup software are used during peak usage periods, these profiles will not adequately describe the I/O profile in your organization. In these cases, you must also factor in the additional reads and writes that are requested by these applications.
Additional information about performance metrics:
Mechanical hard drives: https://en.wikipedia.org/wiki/IOPS
Some commonly accepted averages for random IO operations, calculated as 1/(seek + latency) = IOPS:
Device
Type
IOPS
Interface
~75-100 IOPS[2]
SATA 3 Gbit/s
10,000 rpm SATA drives
HDD
~125-150 IOPS[2]
SATA 3 Gbit/s
10,000 rpm SAS drives
HDD
~140 IOPS[2]
SAS
15,000 rpm SAS drives
HDD
~175-210 IOPS[2]
SAS
We can then make some assumptions.
Based on round robin, these concurrent User numbers would double.
Additional information about calculation IO:
Calculating IOPS requirements
To determine the IOPS requirements for a database, look at the number of users hosted on the database and consider the guidance provided in the following table to compute total required IOPS when the database is active or passive.
Messages sent or received per mailbox per day
Estimated IOPS per mailbox (Active or Passive)
50
0.034
100
0.067
150
0.101
200
0.134
250
0.168
300
0.201
350
0.235
400
0.268
450
0.302
500
0.335
- Edited by Micah AdamsonMicrosoft contingent staff Wednesday, August 28, 2019 7:36 PM
Friday, June 28, 2019 7:22 PM
All replies
-
Access-Based Enumeration issues with VHDs
Using Access-Based Enumeration (also known as 'enumerate on connect') with Scale-Out File Server can cause VHDs to not connect.
Access-Based Enumeration (ABE) is often used with MS file systems like Scale-out file server (SOFS). It is also an option on other storage, both Microsoft and other vendors as well.
If you are using FSLogix, don't turn on Access-Based Enumeration with Scale-Out File Server as it can cause VHDs to not connect, but to create new VHDs at login instead.
Running Process Monitor (ProcMon) during startup, can help diagnose why VHDs do not connect correctly
Please see the following article for more information about Using Process Monitor (ProcMon.exe) to troubleshoot FSLogix issues
You may also need to create a setting for both VHDNamePattern and for VHDNameMatch:
https://docs.fslogix.com/display/20170529/Office+365+Configuration+Settings
Helpful links
- https://docs.microsoft.com/en-us/windows-server/storage/dfs-namespaces/enable-access-based-enumeration-on-a-namespace (ABE in Windows Server 2019)
- https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd772681(v=ws.10) (ABE in Windows Server 2008)
- https://docs.microsoft.com/en-us/windows-server/failover-clustering/sofs-overview (SOFS in Windows Server 2012)
Wednesday, August 21, 2019 4:30 PM -
This article is very helpful, although it focuses on the FSLogix Office 365 Container. Is there guidance on the required IOPS for the FSLogix Profile Container without Outlook running in it? Thank you.Wednesday, September 25, 2019 8:07 PM
-
Are these recommendations inclusive of Exchange, Teams, Sharepoint, and OneDrive? The details discuss the Office 365 container, but the later information only discusses the email components.Friday, February 7, 2020 7:39 PM
-
Hi Micah, Great Article .
We have dependencies on Local File and Printing with NTFS permission and Other AD integrated Apps . We Really cant use Azure AD DS . We need to use Active Directory . While we are extending the S2S tunnel with Azure .I have Following Queries
1. What is Recommendation on Having AD Domain Servers on Azure .WVD Machines needs to join domain ( On premise /AD ) other options are still in preview .
2. In Our Scenario File Server ( for FSlogix ) is only option or we can leverage other Options like Azure Files , Blob etc ( Not sure if they integrated with AD for Permissions ), Our users store common data on File Servers .
3. Any other Guidance
Regards
MSB
Saturday, February 22, 2020 5:01 PM