An administrator can create a thinly provisioned virtual logical unit (LUN) where the configured target partially backs it up with physical storage when it is created. Additional physical storage is added as needed. In such a configuration, the capacity of the LUN as reported by the storage controller is its virtual capacity. This reported virtual capacity differs from the actual physical storage capacity that is associated with this LUN.
Although thin provisioning can contribute to increasing storage utilization efficiency, NTFS has not been specifically adapted for use with LUNs that have different physical and virtual capacities. Specifically, the over-commit error condition, where the physical capacity is not available and the virtual capacity indicates otherwise, can be problematic to NTFS. By following the guidance that is outlined in this article, you can improve the reliability of thinly provisioned LUNs in the following operating systems:
Windows Server 2008 R2
Windows Server 2008
Windows Server 2003
To improve the reliability and performance of current file systems when they are used with thin provisioning, please follow these guidelines.
Guidelines for server and storage administrators
Make sure that the over-committed LUN is dismounted.
The volume should be remounted after additional disk space is configured to the LUN. The unmount process is important to make sure that the file system remains in a consistent state.
Do not create multiple volumes on a single thinly provisioned LUN.
If a thinly provisioned LUN is configured for multiple volumes, an over-commit condition on that LUN causes all volumes on that LUN to become unavailable.
Do not store a system volume on a thinly provisioned LUN.
If the system volume is unexpectedly removed by the storage device because of an over-commit state, it will trigger a system stop.
Do not store paging files on a thinly provisioned LUN.
If the volume that contains the paging file is unexpectedly removed by the storage device because of an over-commit state, it will trigger a system stop.
When formatting a thinly provisioned LUN, use the "quick" option (/q switch).
If the /q option is not used, the format operation will trigger allocation, causing needless physical storage consumption.
Avoid defragmenting thinly provisioned LUNs.
The defragmentation of thinly provisioned LUNs will cause needless physical storage consumption. Defragmentation is not supported for thinly provisioned LUNs.
Avoid defragging Storage Area Network (SAN) LUNs.
Generally, defragmentation is not recommended for SAN LUNs. If defragmentation is required, administrators should contact their SAN vendors to obtain appropriate procedures and support statements about defrag utilities.
Guidelines for Storage Vendors
After a LUN has reached the over-committed condition and cannot map more blocks, the controller should immediately mask the LUN (or take it offline) and fail existing and future READ or WRITE commands.
For the initial command failure, the controller should return status CHECK CONDITION with a sense key of UNIT ATTENTION and an ASC/Q pair of OPERATING CONDITIONS CHANGED / REPORTED LUNS DATA CHANGED (0x3F/0x0E). This will cause the operating system to trigger a bus re-scan and, ultimately, the PnP removal of the LUN.
For subsequent command failures, READ/WRITE commands should be failed with a status CHECK CONDITION and a sense code of HARDWARE ERROR (0x04).
After masking the LUN or taking it offline, the controller should stop reporting the LUN in response to REPORT LUNS commands and make sure to fail all other commands appropriately. The goal is to make sure that the operating system believes that the LUN is no longer accessible. This prevents any I/O activity that could leave the file system in an inconsistent state.
For Windows Server 2003, this recommendation applies after KB912944 is installed. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
912944 An updated Storport storage driver (version 5.2.3790.2630) is available for Windows Server 2003
A thinly provisioned LUN must handle all SCSI commands appropriately - with a special mention made to the SCSI VERIFY command. For the SCSI VERIFY command, the device should indicate a "success" status without mapping or attempting any I/O for blocks that are unmapped. Without this behavior, the operation will trigger allocation causing needless physical storage consumption.
Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows Server 2008 Datacenter without Hyper-V, Windows Server 2008 Enterprise without Hyper-V, Windows Server 2008 for Itanium-Based Systems, Windows Server 2008 Standard without Hyper-V, Windows Server 2008 Datacenter, Windows Server 2008 Enterprise, Windows Server 2008 Standard, Windows Vista Enterprise 64-bit Edition, Windows Vista Home Basic 64-bit Edition, Windows Vista Home Premium 64-bit Edition, Windows Vista Ultimate 64-bit Edition, Windows Vista Business, Windows Vista Business 64-bit Edition, Windows Vista Enterprise, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter, Windows Vista Ultimate, Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems, Microsoft Windows Server 2003, Datacenter x64 Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems, Microsoft Windows Server 2003, Standard x64 Edition, Microsoft Windows Server 2003, Standard Edition (32-bit x86), Windows 7 Enterprise, Windows 7 Home Basic, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Starter, Windows 7 Ultimate