Thin provisioning
In computing, thin provisioning involves using virtualization technology to portray the illusion of having more physical resources than are actually available. If a system always has enough resources to simultaneously support all virtualized resources, then it is not thin-provisioned. In this article, the term "thin provisioning" is applied to the disk layer, but in practice, it can refer to an allocation scheme for any resource. For example, real memory in a computer is typically thin-provisioned to run tasks with some form of address translation technology doing the virtualization. Each program acts as if it has real memory allocated; the total allocated virtual memory typically exceeds the total real memory.
The efficiency of thin or thick/fat provisioning depends on the use case, not the technology. Thick provisioning is typically more efficient when resource use closely matches resource allocation; thin provisioning is beneficial when only a fraction of an allocation is actually used, so that the benefit of providing just the required resources surpasses the overhead of virtualization.
Just-in-time allocation differs from thin provisioning; most filesystems allocate files just-in-time but aren't thin-provisioned. Overallocation also differs from thin provisioning; resources can be overallocated/oversubscribed without virtualization, for example, overselling seats on a flight without allocating actual seats at the time of sale, avoiding a claim on a specific seat number for each customer.
Thin provisioning is a mechanism that applies to large-scale centralized computer disk-storage systems, SANs, and storage virtualization systems. It permits easy allocation of space to servers on a just-enough and just-in-time basis; thin provisioning is also known as "sparse volumes" in some contexts.
Overview
Thin provisioning in a shared storage environment provides a method for optimizing utilization of available storage; it relies on on-demand allocation of blocks of data versus the traditional method of allocating all the blocks in advance. This methodology eliminates almost all whitespace, which helps avoid the poor utilization rates, often as low as 10%, that occur with the traditional allocation method, where large pools of storage capacity are allocated to individual servers but remain unused. This traditional model is often referred to as "fat" or "thick" provisioning.Using thin provisioning, storage utilization can increase dramatically with minimal administrative overhead. Organizations may purchase less storage upfront and defer capacity upgrades according to actual business usage, saving the costs associated with keeping unused disk capacity spinning.
Thin technology on a storage virtualization frame was first introduced by VMware as part of their VMware Workstation and VMware ESX products in early 2001. Previous systems generally required large amounts of storage to be physically pre-allocated because of the complexity and impact of growing volume space. Thin provisioning enables over-allocation or over-subscription.
Over-allocation
Over-allocation or over-subscription is a mechanism that lets a server view more storage capacity than has been physically reserved on the storage array itself; this enables flexibility in the growth of storage volumes without requiring an accurate prediction of how much any particular volume will grow. Instead, block growth becomes sequential: physical storage capacity on the array is dedicated only when data is actually written by an application, not during initial allocation of the storage volume. The servers, and by extension the applications that reside on them, view a full-size volume from the storage, but the storage itself only allocates the blocks of data when they are written.As a practical consideration, a storage manager needs to monitor actual storage used, adding additional storage capacity such as disks, tapes, solid-state drives, etc. as necessary to satisfy the write requests of the server and residing application.
The over-allocation concept was first introduced when StorageTek announced their Iceberg product in 1991.