Thin provisioning is a feature of disk arrays and storage virtualization products that lets you create logical disks, but only allocates physical disk space as the server connected to that logical disk actually writes data to the array. So if there's a database that the customer thinks may grow to 2TB but only contains 500MB of data today, it will only take up 500MB of disk space. When more data is written to the database, the array will expand the volume. The server will always see the volume as 2TB in size.
Since most server administrators ask for 50-100% more space than they need just to be safe, thin provisioning lets you give them the space without actually buying an extra disk that may never be used.
For thin provisioning to result in cost savings, you have to overprovision your storage – for example, you have to create volumes that can grow to 6TB when you only have 4TB of disk. If all your servers tried to fill up all that space, they would fill up your array and the next time a server tried to write new data, the array would have to return a disk error. That would probably crash the server.
To prevent this state of affairs, applications like ERP, data warehouses and email servers -- whose data grows on a more or less predictable basis -- are better candidates for thin provisioning than a file server holding user's home directories. This is because a single user backing up his notebook computer could eat up 100GB in an hour or so.
Some file systems, including Windows NTFS, use all the available space on a volume before overwriting deleted files. While this can reduce file fragmentation and makes deleted files recoverable, it also means that a file server using a thinly provisioned disk will keep allocating more space, even though there's free space on the volume. Using an automated defragmenter like Diskeeper can minimize this effect.
This was first published in November 2007