Today, Microsoft released a new white paper, available
, discussing best practices and guidance for sizing NTFS volumes and some details on CHKDSK execution times on Windows Server 2008 R2.
When planning Windows file server deployments, we are often asked questions such as “How large can I make my volumes?” or “How long will it take to repair a volume?”. This white paper helps answer these questions.
NTFS self-healing is a feature introduced in Windows Vista and in Windows Server 2008 to reduce the need to run CHKDSK. NTFS self-healing attempts to fix certain corruptions encountered during normal operation, which significantly reduces the frequency of NTFS marking the volume dirty. When NTFS can self-heal, it will not have to perform CHKDSK on the volume during system startup. Self-healing fixes corruptions while the volume is still online, which increases the overall availability of the systems.
CHKDSK was updated in Windows 7 and Windows Server 2008 R2 to improve how it caches metadata, also known as Block Cache. A significant portion of a CHKDSK run is the scan phase, where it seeks different locations on disk to verify information from file system metadata objects. By caching larger blocks of the disk in RAM, CHKDSK execution time is reduced by reducing disk seeks. The Block Cache feature also reduces the need to re-access data from the disk, reducing the total device I/O time, and therefore, the overall CHKDSK execution time. The Block Cache feature may cause CHKDSK to consume a significant amount of memory, which is not usually a concern in Windows file servers, but reduces the amount of disk I/O and therefore significantly improves performance. The net result is greatly reduced execution time in common scenarios.
15 TB NTFS file systems with 10 million files
A common misconception that I often run into is that NTFS file system does not support large volumes. I have heard customers quote volume sizes of 300-500GB as the perceived maximum volume size for NTFS file systems. In the first test, the team stood up a machine with 5, 10 and 15 TB volumes and placed 10 million files on each volume. This demonstrates that it is certainly possible to stand up relatively large file systems with NTFS, debunking the myth of NTFS only being able to scale to 300-500GB volumes.
How long does it take to run CHKDSK?
Another commonly raised question is “how long does it take to complete CHKDSK?”. The team performed multiple CHKDSK runs on the volumes described above and observed the following data:
Volume size (in TB's)
This demonstrates that CHKDSK execution time is not significantly affected by size of the volume. CHKDSK execution time is a function of the number of files in the NTFS file system, as demonstrated in another test performed by the team and described in the white paper. The other observation is that CHKDSK execution time for a NTFS file system with 10 million files is measured in minutes (~7 minutes) as opposed to hours or days, which was sometimes the case with older versions of Windows.
If you are planning a Windows file server deployment or is looking to upgrade an existing Windows file server deployment to Windows Server 2008 R2, you should consult this
. It demonstrates that with Windows Server 2008 R2:
1. Windows NTFS can support 15 TB file systems, each with 10 million files
2. CHKDSK execution time is a matter of minutes, not hours or days