What NTFS allocation unit size (also called cluster size, or block size) should be used when creating or formatting Logical Unit Number (LUNs) for Microsoft SQL Server and Microsoft Exchange? There are some different opinions which have caused confusion in customers.
The objective of this article is to clarify the matter, validate and reaffirm relevant NetApp best practice recommendations based on concrete data.
NetApp is and has been consistently recommending using SnapDrive to create, connect, expand, and manage LUNs (Ref. 1). When creating a LUN for a Windows host, SnapDrive also streamlines the process by automatically formatting the LUN using the default NTFS allocation unit size of 4KB (Ref. 2).
On the other hand, Microsoft recommends a 64KB allocation unit size for SQL Server (Ref. 3), Exchange 2007 (Ref. 4), and Exchange 2010 (Ref. 5).
So, 4K or 64K? How do we resolve this apparent discrepancy between NetApp and Microsoft recommendations regarding the NTFS allocation unit size?
Tests and Results
Several tests were performed on NetApp storage to compare the allocation unit sizes of 4K and 64K, and the impact on SQL Server, Exchange 2007 and Exchange 2010 performance. Iometer was used to simulate common data access patterns of SQL Server, Exchange 2007 and Exchange 2010. The results are summarized below.
- Random Read and Write Test (transfer size = 8KB) - the differences between the allocation unit sizes of 4K and 64K are 2% for random reads and less than 2% for random writes.
- Sequential Read and Write Test (transfer size = 64KB) - the differences between the allocation unit sizes of 4K and 64K are 4% for sequential reads and less than 1% for sequential writes.
Based on the test results, the differences in performance due to allocation unit sizes of 4K and 64K are negligible on NetApp storage. Note that individual results may vary and other storage platforms may see different results.
The above results validate and reaffirm the NetApp recommendation of using SnapDrive to create, expand, and manage LUNs for SQL Server and Exchange.
It does not disprove or contradict Microsoft recommendation of using 64KB allocation size, because the Microsoft recommendation may well be valid for non-NetApp storage. In fact, Microsoft has stated the following:
Always use the storage vendor's recommended setting, but if your storage vendor does not have a recommended setting, use 64KB.
- SnapManagerÂ® 5.0 for MicrosoftÂ® SQL ServerÂ® Installation and Administration Guide
- What cluster size does SnapDrive for Windows use when formatting a virtual disk with NTFS?