Storage Provisioning Tiers provide a way of grouping Storage Pools together for simplified provisioning from automated systems and frameworks like OpenStack Cinder. A common problem in cloud environments is that you may have many storage systems in a grid each with one or more storage pools. This creates a conundrum when you go to provision a Storage Volume or Network Share as several questions must be answered to find the ideal placement for your new volume or share including:
- Which Storage Pool has the most free space?
- Which Storage Pool has the least number of storage volumes in it?
- Which Storage Pool has the least amount of over-provisioning?
- Does the Storage Pool meet the IOPS and throughput requirements of my workload?
When you create a Storage Tier you select one or more Storage Pools to associate it with and then set various attributes on the Storage Tier so that you provisioning system can make intelligent decisions about which Storage Tier to provision from based on the needs of the workload. Placement is automatic so you don't have to think about which storage pool within the storage tier the storage volume should be provisioned from.
All REST APIs and CLI commands which take a Storage Pool name or ID as an argument can have the pool identifier substituted with the name or ideally the UUID of a Storage Tier instead.
Over-provisioning with Storage Tiers
Note that Storage Tiers provide a convenient grouping mechanism and intelligent placement but you cannot create a storage volume which is larger than the pool with the largest available free space in the Storage Tier. As an example, if you have three storage pools in your storage tier, Pool1 (10TB free), Pool2 (20TB free), Pool3 (4TB free) and you request allocation of a new Storage Volume which is 22TB the provisioning will fail because there are no pools available with that much free space. Note however that you could allocate 10x thin-provisioned storage volumes which are 6TB in size because newly thin-provisioned volumes use a negligible amount of space until data has been written to them. So Storage Tiers do provide support for over-provisioning storage pools with some limits.