Thin provisioning

Thin provisioning is the act of using virtualization technology to give the appearance of more physical resource than is actually available. If you always have enough resource to simultaneously support all of the virtualized resources then you are not thin provisioned. The term thin provisioning is applied to disk later in this article, but could refer to an allocation scheme for any resource. For example, real memory in a computer is typically thin provisioned to running tasks with some form of address translation technology doing the virtualization. Each task believes that it has real memory allocated. The sum of the allocated virtual memory assigned to tasks is typically greater than the total of real memory.

The efficiency of thin or thick/fat provisioning is a function of the use case, not the technology. Thick provisioning is typically more efficient when the amount of resource used is very close to the amount of resource allocated. Thin provisioning is more efficient where the amount of resource used is much smaller than allocated so that the benefit of providing only the resource needed exceeds the cost of the virtualization technology used.

Just in time allocation is not the same as thin provisioning. Most file systems back files just in time but are not thin provisioned. Over allocation is not the same as thin provisioning, you can over-allocate / oversubscribe resources like selling seats on an airplane without using virtualization technology that makes each consumer think that their seat number exists.

Thin provisioning[1] is a mechanism that applies to large-scale centralized computer disk storage systems, SANs, and storage virtualization systems. Thin provisioning allows space to be easily allocated to servers, on a just-enough and just-in-time basis.

Contents

Overview

Thin Provisioning, in a shared storage environment, is 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 up front. This methodology eliminates almost all whitespace which helps avoid the poor utilization rates, often as low as 10%, that occur in the traditional storage allocation method where large pools of storage capacity are allocated to individual servers but remain unused (not written to). This traditional model is often called "fat" or "thick" provisioning.

With thin provisioning, storage capacity utilization efficiency can be automatically driven up towards 100% with very little administrative overhead. Organizations can purchase less storage capacity up front, defer storage capacity upgrades in line with actual business usage, and save the operating costs (electricity and floorspace) associated with keeping unused disk capacity spinning.

Previous systems generally required large amounts of storage to be physically preallocated because of the complexity and impact of growing volume (LUN) space. Thin provisioning enables over-allocation or over-subscription.

Over-allocation

Over-allocation or over-subscription is a mechanism that allows a server to view more storage capacity than has been physically reserved on the storage array itself. This allows flexibility in growth of storage volumes, without having to predict accurately how much a volume will grow. Instead, block growth becomes sequential. Physical storage capacity on the array is only dedicated when data is actually written by the application, not when the storage volume is initially allocated. 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 (SSD), etc. as necessary to satisfy the write requests of the server and residing application(s).

The Over-allocation concept was first introduced when Storagetek (STK) announced their Iceberg product in 1992.

Notes

  1. ^ Thin provisioning is called sparse volumes in some contexts.

See also