About Hyperdisk Storage Pools


Hyperdisk Storage Pools can be used with Compute Engine for large-scale storage. A Hyperdisk Storage Pool is a pre-purchased collection of capacity, throughput, and IOPS which you can then provision to your applications as needed. You can use Hyperdisk Storage Pools to create and manage disks in pools and use the disks across multiple workloads. By managing disks in aggregate, you can save costs while achieving expected capacity and performance growth. By using only the storage you need in Hyperdisk Storage Pools, you reduce the complexity of forecasting capacity and reduce management toil by going from managing hundreds of disks to managing a single storage pool.

Storage pools include the following benefits:

  • Lower Total Cost of Ownership (TCO)—Hyperdisk Storage Pools use thin provisioning and data reduction to help you store your data efficiently and achieve best in-class TCO.
  • Higher Efficiency—Hyperdisk Storage Pools can take advantage of thin provisioning and data reduction to help you achieve higher resource utilization and lower TCO.
  • Less management overhead via Higher Flexibility—Disks in Hyperdisk Storage Pools can be provisioned to larger sizes and only use what they need, freeing workload owners from tedious capacity and performance forecasting, and from downtime related to rescaling.
  • Transparent to workloads—There is no change to how individual workloads use Hyperdisk volumes when using storage pools. There is no need for downtime or any other impact to workloads.

Data on individual disks in a storage pool maintain the same isolation they would have if the disks were not created in a storage pool.

When to use storage pools

You can use storage pools to solve these problems:

  • Difficulty planning the resource requirements when migrating workloads from on-premise workloads that use a SAN to Google Cloud

    Estimating the performance and capacity needs of each application is time consuming and error-prone, and can add weeks to a cloud migration or application rollout.

    With Hyperdisk Storage Pools, you can create disks in the storage pool using an overestimation of the capacity needed, and then consume from the storage pool only the amount of disk space that you write data to.

  • Underutilization of resources

    Ensuring that your volumes are well utilized can be complex and painful. Block storage is frequently underutilized because you provision for peak capacity and performance needs to avoid outages or performance slowdowns. However, many applications rarely achieve those peaks.

    When using Hyperdisk Storage Pools, you create the storage pool to handle the likely capacity requirements of your workloads. If the storage pool reaches 80% of the capacity used, the Hyperdisk Storage Pool attempts to automatically add more capacity to keep the utilization rate below 80%.

  • Complex management of the block storage used by your workloads

    Managing hundreds or even thousands of disk volumes is time consuming and takes resources away from delivering new innovation.

    When you create disks for your VMs in a storage pool, you can specify a size much larger than you expect the workload to use. As your workloads write to the disks, space is taken from the storage pool capacity. Only the amount of block storage that you use is subtracted from the storage pool capacity, not the amount provisioned when creating the disks. The disk size you specify acts as an upper limit on capacity. You only need to modify the disk size if this limit is reached.

    If you create disks in the storage pool, and your workload exceeds your capacity planning across several disks, you can add more capacity to the storage pool. The additional capacity can be used by all the disks created in the storage pool.

Hyperdisk Storage Pool features

Storage pools have the following features:

  • Capacity thin provisioning: Blocks are allocated as needed instead of allocating all the blocks in advance. This helps to avoid low utilization rates of storage, where large amounts of disk space are allocated, but not used.
  • Data reduction: Storage pools use a variety of data reduction technologies to increase storage efficiency. Data reduction depends greatly on the type of data stored. Data that is already compressed or encrypted before it is stored in a disk in a Hyperdisk Storage Pool won't yield additional reduction.
  • Auto-grow capacity: If the storage pool utilization reaches 80% of the provisioned capacity, Hyperdisk Storage Pools attempts to automatically add capacity to the storage pool to prevent errors related to insufficient capacity.

How Hyperdisk Storage Pools work

You create a storage pool with the aggregate capacity and performance that your workloads will need, and then create disks in the storage pool. You can then attach the disks to your VMs. When you create the disks, you can create them with a much larger size than is needed. This provides room for growth later, without necessitating a disk resize operation.

If the disk was created in an Advanced capacity storage pool, then only the amount of disk space that your workloads use, after data reduction, is deducted from the available storage pool capacity.

If your disks need more capacity, you can increase the provisioned capacity of the storage pool. The amount of disk space used by the individual disks can then increase up to the size you specified when you created the disk. By creating the disks in an Advanced capacity storage pool with a much larger size initially, and allocating additional space through the storage pool, you consolidate disk storage management and reduce costs.

Capacity is managed at the storage pool level. You can adjust the amount of capacity available to disks in a storage pool by increasing or reducing the provisioned capacity of the storage pool. An Advanced capacity storage pool attempts to automatically add more capacity to the storage pool if the used capacity of the storage pool, or the aggregate capacity of all the disks in storage pool, exceeds 80% of storage pool provisioned capacity. If the auto-grow operation fails, you can add additional capacity to a storage pool manually, up to the limit of 1 PiB.

If a storage pool reaches 100% utilization and there is no free space left in the storage pool, writes to all disks in the storage pool fail until you reduce the used space in the storage pool by deleting data or disks. Most commercial software interprets the errors returned on writes to full disks similar to hardware failures.

It's important that you actively manage and monitor your storage pool to avoid out of space errors. You should also understand how your workload will respond if it encounters an out of space error for a disk in a storage pool.

Provisioning types for Hyperdisk Storage Pools

When creating a Hyperdisk Storage Pool, you can configure it with either Standard capacity or Advanced capacity provisioning.

Standard capacity storage pools

With Standard capacity provisioning, you create disks in the storage pool until the total provisioned capacity of all disks in the storage pool reaches the storage pool's provisioned capacity. Disks in a Standard capacity storage pool consume capacity similarly to non-storage pool disks.

Advanced capacity storage pools

Advanced capacity storage pools offer thin-provisioning and data reduction for capacity, enabling you to provision disks with more capacity than you have purchased. Because Advanced capacity storage pools consume capacity based only on the number of bytes written to your disks after data reduction, you can provision more capacity to your end users and applications than you have purchased in your storage pool.

With Advanced capacity, you create disks in the storage pool where the cumulative size of all the disks can exceed the provisioned capacity of the storage pool by up to 500%. The used capacity of the storage pool is defined by the amount of data written and not by the amount of provisioned disk capacity. Disks in an Advanced capacity storage pool consume capacity differently than disks in a Standard capacity storage pool and non-storage pool disks.

You can fill disks in an Advanced capacity storage pool up to their provisioned size as long as the data written to all disks in the storage pool doesn't exceed the storage pool capacity. If the storage pool utilization reaches 80% of the pool provisioned capacity, the auto-grow feature attempts to automatically add capacity to the storage pool. If the storage pool's capacity is fully used, then writes to all storage pool disks will fail until you delete data or delete disks to lower the used capacity of the storage pool. Most software applications interpret the errors returned on writes to full disks as similar to a hardware failure, so it's important to both:

  • Monitor your storage pool to avoid running out of disk space
  • Understand how your workload responds if it does happen

Be aware that storage pools don't have visibility into your file system. Deleted data is considered to still be in use until your operating system (OS) marks it unused with a DISCARD or TRIM command. All Google-provided OS images are configured to do this by default, as are most common third-party OS images, but you should confirm this if you are not using a Google-provided OS image. More information on verifying or configuring this feature is available at Disable lazy initialization and enable DISCARD commands.

Types of Hyperdisk Storage Pools

The type of Hyperdisk Storage Pool you create determines the type of disks that you can create in the storage pool.

  • Hyperdisk Throughput Storage Pool: When creating the storage pool, you specify the capacity and throughput to provision for the storage pool. Each Hyperdisk Throughput disk you create in the storage pool uses some of the provisioned capacity and throughput.
  • Hyperdisk Balanced Storage Pool: When creating the storage pool, you specify the capacity, throughput, and IOPS to provision for the storage pool. Each Hyperdisk Balanced disk that you create in the storage pool with provisioned capacity and performance above the baseline values uses some of the storage pool provisioned capacity and performance.

Hyperdisk Throughput Storage Pools

You can use Hyperdisk Throughput Storage Pools to manage your Hyperdisk Throughput disk usage.

Limits for Hyperdisk Throughput Storage Pools

The following limits apply for Hyperdisk Throughput Storage Pools.

Limit Value
Maximum storage pool provisioned capacity 1 PiB
Minimum storage pool provisioned capacity 10 TiB
Storage capacity increments: Minimum 1 TiB
(only whole TiB increments)
Maximum number of Hyperdisk Storage Pools per project 10
Maximum throughput 18 GBps
Maximum throughput per TiB 18 MBps per TiB of capacity
Minimum throughput per TiB 10 MBps per TiB of capacity
Throughput increments 10 MBps
Maximum number of disks in a storage pool 1,000

Machine type support

Hyperdisk Throughput Storage Pools are supported with the same machine series that support Hyperdisk Throughput. For a list of the supported machine series, see Hyperdisk machine type support.

Hyperdisk Throughput Storage Pool regional availability

Hyperdisk Throughput Storage Pools can be used in the following zones:

  • asia-southeast1-c
  • europe-west4-b
  • us-central1-a
  • us-east1-a
  • us-east4-a, us-east4-b, us-east4-c

To check for the latest updates to the available regions and zones, you can use the following command:

gcloud compute storage-pool-types list --filter="name=hyperdisk-throughput"

Hyperdisk Balanced Storage Pools

You can use Hyperdisk Balanced Storage Pools to manage your Hyperdisk Balanced disk usage.

In Hyperdisk Balanced Storage Pools, Hyperdisk Balanced disks only consume IOPS and throughput in excess of the baseline values of 3,000 IOPS and 140 MBps throughput per disk. For example:

  • If you provision a Hyperdisk Balanced disk with 3,000 IOPS and 140 MBps of throughput in a storage pool, the disk doesn't consume any IOPS or throughput from the storage pool.
  • If you provision a Hyperdisk Balanced disk with 4,000 IOPS and 180 MBps of throughput in a storage pool, the disk consumes 1,000 IOPS and 40 MBps of throughput from the storage pool.

Limits for Hyperdisk Balanced Storage Pools

The following limits apply for Hyperdisk Balanced Storage Pools.

Limit Value
Maximum storage pool provisioned capacity 1 PiB
Minimum storage pool provisioned capacity 10 TiB
Storage capacity increments: Minimum 1 TiB
(only whole TiB increments)
Maximum number of Hyperdisk Storage Pools per project 10
Maximum IOPS 4,194,304 (4 * 2^20)
Maximum IOPS per GiB 4 per GiB
Minimum IOPS per GiB 0
IOPS increments 10,000
(and only multiples of 10K IOPS)
Maximum Throughput 1 TBps
Maximum Throughput per GiB 1 MBps per GiB of capacity
Minimum Throughput per GiB 0 MBps
Throughput increments 1 GBps
Maximum number of disks in a Hyperdisk Storage Pool 1,000

Machine type support

Hyperdisk Balanced Storage Pools are supported with the same machine series that support Hyperdisk Balanced. For a list of the supported machine series, see Hyperdisk machine type support.

Hyperdisk Balanced Storage Pool regional availability

Hyperdisk Balanced Storage Pools can be used in the following zones:

  • asia-south1-b
  • asia-southeast1-c
  • europe-west1-b
  • europe-west4-b
  • us-central1-a
  • us-east4-a, us-east4-b, us-east4-c

To check for the latest updates to the available regions and zones, you can use the following command:

gcloud compute storage-pool-types list  --filter="name=hyperdisk-balanced"

Performance

Performance for disks in a storage pool is the same as for disks that were not created in a storage pool.

Limitations of storage pools

Hyperdisk Storage Pools have the following limitations:

Resource limits:

  • You can create a Hyperdisk Storage Pool with up to 1 PiB of provisioned capacity.
  • You can create a maximum of 5 storage pools per hour.
  • You can create a maximum of 10 storage pools per day.
  • You can create at most 10 storage pools per project.
  • You can't change the provisioning model for a pool; you can't change a Standard capacity storage pool to an Advanced capacity storage pool.
  • Storage pools are a zonal resource.
  • You can create up to 1,000 disks in a storage pool.
  • You can use Hyperdisk Storage Pools with only Compute Engine. Cloud SQL instances cannot use Hyperdisk Storage Pools.
  • You can change the provisioned capacity of a storage pool at most two times in a 24 hour period.

Limits for disks in a storage pool:

Pricing

Hyperdisk Storage Pools are billed on provisioned storage pool capacity, throughput and IOPS.

With a Standard capacity storage pool, capacity is priced at the same rate as the underlying disk. For example, the price for Standard capacity for a Hyperdisk Balanced Storage Pool is the same price as standalone Hyperdisk Balanced capacity.

Advanced capacity is priced higher to reflect the extra cost to provide thin-provisioning and data reduction. Even with this premium, the savings from thin-provisioning and data reduction can still reduce your total block storage costs through increased efficiency and utilization.

For more pricing information, see Disk pricing.

Committed use discounts with Hyperdisk Storage Pools

Hyperdisk Storage Pools are not eligible for:

  • Resource-based committed use discounts (CUDs)
  • Sustained use discounts (SUDs)

What's next?