The technique of allocating storage space to applications is not immediately when creating a disk, but as the application needs it, it is called Thin provisioning, or “thin” volumes.
This technology is one of the storage virtualization options, with which you can increase the return on information storage resources and increase profitability. Thin provisioning is often used to reduce the amount of unused space on devices that are not used at a particular time by applications.
Usually, the storage is not 100% full and does not use all the resources of the system. But it is always necessary to organize work in such a way that there is a reserve of free disk space — for the stability of the system and maximum readiness for a rapid increase in data volume.
This, in fact, unused disk space was traditionally allocated for absolutely all volumes connected to the storage. Those logical volumes that have exclusive disk space in full at the current moment of storage operation are called “thick” volumes in the circle of system administrators.
The above-described volume disk space usage model first appeared back in the days of the creation of the first data storage systems. It has not lost its relevance so far.
NetApp hardware
How Thin provisioning works
If we sort Thin provisioning “on the shelves”, then the concept of this solution looks like this:
- At the moment when a logical volume (LUN) is created, the full amount of data is not allocated on the disk array.
- The LUN LBA (Backend physical address) matching table is initiated.
- The storage administrator prescribes the maximum allowable volume size and the limit of its fullness with data, upon reaching which the corresponding message will be displayed.
- At the same time, new blocks of the logical volume for storing information are allocated as it is filled.
As soon as the server releases the data blocks, a directive will be sent to the storage about the available blocks and the need to return them to the shared pool.
Implementation of Thin provisioning in practice:
- The server (host) sends a request to the storage about the current volume size (SCSI Read Capacity) and allocates the maximum volume from the total disk volume that was previously set by the administrator.
- On a storage system, the sum of the volume limits on all volumes can be much larger than the physically available space on the storage system.
After the storage system receives the SCSI Read Capacity command (it can be encapsulated in the FC stack, SAS, iSCSI, etc.), it allocates another “portion” from the free disk space and writes information from SCSI Write there.
Thin provisioning technology should have support not only on the storage side, but also on the side of the operating system and the drivers of the host block devices. In modern operating systems (Windows, Linux, etc.), such support has been around for a long time.