Storage pools

Last reviewed 2024-04-25 UTC

Storage pools improve performance for volumes of the CVS service type. A storage pool acts as a container for up to 50 volumes; all volumes in the pool share the capacity and performance of that pool.

Each volume of the CVS-Performance service type exists individually. The performance of a volume of the CVS-Performance service type is determined by its size and its service level, which can impose a performance limitation for very small volumes. To improve performance for small volume performance, the CVS service type manages volumes with storage pools.

A storage pool aggregates capacity and performance. Volumes are created within the storage pool and can use the capacity and performance of that pool. All volumes in the same storage pool share the performance capability of the pool. A volume can use the full performance capacity of its pool. If volumes need performance isolation from each other, they must be created in different pools.

Storage pools support two levels of availability: zonal and zone-redundant. Redundancy is set when you create a storage pool and can either be zonal (high availability within a single zone) or zone-redundant (high availability across two zones). For zone-redundant volumes, all volumes are run in a primary zone and fail over to the secondary zone in the case of zone failure or because of a user-initiated cross-zone move. Primary and secondary zones are chosen at the time of pool creation.

For more information, see Manage storage pools.


Charges for storage pools are for the capacity allocated to the pool instead of the capacity allocated by the volumes within the pool. For the CVS service type, billing is not for individual volumes; for the CVS-Performance service type, billing is for individual volumes.

Billing example

You create a 2,000 GiB storage pool. Its performance capacity is 2 x 128 MiB/s = 256 MiB/s. You then create two volumes within the pool: volume A with 1,000 GiB capacity and volume B with 10 GiB capacity. The remaining 990 GiB are not provisioned into any volume. You are charged for 2,000 GiB, independent of volume allocation within the pool.

Each volume enforces its capacity size (volume A = 1,000 GiB, volume B = 10 GiB), but both volumes can draw upon the 256 MiB/s performance capability of the pool. For example, the smaller volume B can use 200 MiB/s, which leaves 56 MiB/s to the remaining volume in that pool.

Capacity considerations

A storage pool can host up to 50 volumes. Storage pools have a minimum size of 1 TiB (1024 GiB) and a maximum size of 200 TiB. The size doesn't increase automatically, but allocation can be increased by increments of 1 GiB.

Volumes can't be moved from one storage pool to a different storage pool.

Volumes within a storage pool can be allocated from a capacity of 1 GiB up to 100 TiB, with increments of 1 GiB. Because billing for pools is by capacity, NetApp recommends that you manage volume count and size to use the pool capacity effectively. For example, if you create a 1 TiB storage pool with 50 volumes of 1 GiB each, then 950 GiB is not utilized.

Managed pools

All volumes of the CVS service type are part of a storage pool.

Pre-existing volumes that were created before storage pools were introduced are automatically converted into storage pools. Each pre-existing volume becomes a volume inside its own storage pool. The size of the pool corresponds to the size of the pre-existing volume.

Such pools are marked as managed pools because Cloud Volumes Service manages the pools. If you modify any of the pool attributes—for example, by increasing the pool size to a minimum size of 1 TiB—the managed pool is converted to a self-managed pool. All storage pools created by a user are self-managed.

You can't convert a self-managed pool into a managed pool.

You can only create new volumes in self-managed pools.

You can create a volume in two ways. NetApp recommends that you pass the poolId property to place a new volume into an existing pool. You can also create a volume with old API clients that don't pass the poolId property, which creates a managed pool, but NetApp recommends that you change these API clients. For more API details, see View the NetApp Cloud Volumes API Swagger specification.