Thin provisioning
From Wikibon
[edit] Thin provisioning Introduction
Originating Author: User:Dfloyer
One of the more important emerging storage technologies is thin provisioning; sometimes called over-subscription. This article defines thin provisioning, describes how it works, identifies some challenges for the technology, and suggests where it will be most useful.
Figure one shows how storage administrators typically allocated more storage than is needed for applications -- planning ahead for growth. In figure one volume A may only have 100 GB of actual data, but have been allocated much more than that based on growth projections (500GB, in this example). The unused storage allocated to the volume cannot be used by any other application. In many cases the full 500 GB is never used and is essentially wasted. Sometimes referred to as "stranded storage," this has become a major problem with managing storage capacity.
Thin provisioning provides storage to applications from a pool of storage on an as required basis. It requires the storage arrays to be virtualized. The storage administrator allocates storage to the application as usual but it is released only when the capacity is required. When utilization of that storage approaches a predetermined threshold, the array automatically expands the volume without involving the storage administrator. The volume can be over allocated as usual, but now there is no stranded storage. Thin provisioning is on-demand storage that essentially eliminates allocated but unused capacity.
There are some challenges with thin provisioning technology, and some areas where it is not currently recommended:
- The data that is deleted from a volume needs to be reclaimed, which can add to the storage controller overhead and increased cost
- File systems (e.g. Microsoft NTFS files) that use unused blocks instead of reusing released blocks cause volumes to expand to their maximum allocated size before reusing storage. This negates the benefits of thin provisioning.
- Applications that spread metadata across the entire volume will obviate the advantages of thin provisioning
- Applications that expect the data to be contiguous, and/or optimize I/O performance around that assumption are not good candidates for thin provisioning
- If a host determine that there is sufficient available space, it may allocate it to an application, and the application may deploy it. This space is virtual, however, and If the array can't provision real new storage fast enough, the application will fail. High performance controllers and and good monitoring of over-provisioning of storage will be required to avoid reduced availability.
As the thin provisioning technology matures, applications and file systems will be built and modified to avoid these kinds of problems. The economic justification for thin provisioning is simple: it makes storage allocation automatic which significantly reduces storage administrators work, and can reduce the amount of storage required to service applications.
