Modify the settings for a Google Cloud Hyperdisk volume


You can modify the properties of your Google Cloud Hyperdisk volumes to meet yourworkload's needs. For example, you can reduce or increase the provisioned IOPSor throughput to reduce costs or increase performance, respectively. You can specifyhow VMs access the data on Hyperdisk ML, Hyperdisk Balanced, and Hyperdisk Balanced High Availability volumes by settingthe volume's access mode.

This page discusses how to modify the capacity, performance, and other settings ofHyperdisk volumes.

Before you begin

Required roles and permissions

To get the permission that you need to modify a Hyperdisk, ask your administrator to grant you the following IAM roles on the project:

For more information about granting roles, seeManage access to projects, folders, and organizations.

This predefined role contains the compute.disks.update permission, which is required to modify a Hyperdisk.

You might also be able to get this permission withcustom roles or otherpredefined roles.

Overview of modifying Hyperdisk

You can change the access mode, size, and performance characteristicsof Hyperdisk volumes.

The following table summarizes the supported changes foreach Hyperdisk type. If a Hyperdisktype is shareable between VMs, then you can set its access mode.

Supported size and performance changes for Hyperdisk volumes

The following table summarizes the supported capacity and performance changes foreach Hyperdisk type.

Hyperdisk typeCustomizable throughputCustomizable IOPSShareable between VMs
Hyperdisk BalancedYesYesYes
Hyperdisk Balanced High Availability
YesYesYes
Hyperdisk ExtremeNoYesNo
Hyperdisk MLYesNoYes, in
read-only mode
Hyperdisk ThroughputYesNoNo

Capacity changes

You can resize a Hyperdisk volume only to increase its size. Youcan't reduce the capacity of a Hyperdisk volume. If you want todecrease the size of a Hyperdisk volume, you must create asmaller volume, migrate data from the original volume to the smaller volume,and delete the original volume.

You can resize a Hyperdisk volume even if it is attached to arunning VM. However, if a Hyperdisk volume is in multi-writer mode,you must detach the volume from all VMs before you can resize it.

You can resize a Hyperdisk Throughput volume once every 6hours. For all other Hyperdisk types, you can change the provisionedcapacity once every 4 hours.

For the best results, complete the following steps when changing the capacity ofa Hyperdisk volume:

  1. Increase the size of the volume
  2. Backup the disk
  3. Resize the disk partitions

Size limits for Hyperdisk volumes

The size you specify for a Hyperdisk volume must be within thefollowing ranges:

Hyperdisk typeMinimum sizeMaximum sizeDefault size
Hyperdisk Balanced4 GiB64 TiB100 GiB
Hyperdisk Balanced High Availability4 GiB64 TiB100 GiB
Hyperdisk Extreme64 GiB64 TiB1 TiB
Hyperdisk ML4 GiB64 TiB100 GiB
Hyperdisk Throughput2 TiB32 TiB2 TiB

However, the size of a Hyperdisk volume that's attached to a VMcan't exceed theHyperdisk limits for the VM.

Performance changes

You can change a volume's provisioned performance even if it is attached toa running VM.

After you change the provisioned IOPS or throughput, it can take up to 15minutes for the changes to take effect. However, the following exceptions apply:

  • For Hyperdisk ML volumes, it can take up to 20 minutes for the changes to takeeffect.
  • For disks in multi-writer mode, performance changes can take up to6 hours to become effective if the disk was attachedto multiple VMs when you made the change.

You can change the provisioned IOPS or throughput once every4 hours for all Hyperdisk types exceptHyperdisk ML. You can change the provisioned throughput of a Hyperdisk ML volume once every6 hours.

Changing the provisioned IOPS or throughput for a Hyperdisk volumedoes not delete or modify disk data.

If you attempt to modify a Hyperdisk volume more than once withinthe specified limits, you will receive an error message likeCannot update provisioned throughput due to being rate limited.

Performance limits for Hyperdisk volumes

The following table lists the limits for the performance you can specify foreach Hyperdisk type. However, the IOPS and throughput levels youcan specify also depend on the volume's size. For a detailed summary of each limit,see theSize and performance limits section forHyperdisk Balanced,Hyperdisk Balanced High Availability,Hyperdisk Extreme,Hyperdisk ML, andHyperdisk Throughput.

Hyperdisk typeIOPS limitThroughput limit (MiB/s)
Hyperdisk Balanced160,0002,400
Hyperdisk Balanced High Availability100,0001,200
Hyperdisk Extreme350,000 You can't provision a throughput level forHyperdisk Extreme volumes. Each volume gets 250 MiB/s of throughputwith every 1,000 IOPS, up to 5,000 MiB/s.
Hyperdisk MLYou can't provision an IOPS level,but each MiB/s of provisioned throughput comes with 16 IOPS,up to 19,200,000 IOPS.1,200,000
Hyperdisk ThroughputYou can't provision an IOPSlevel, but each MiB/s of provisioned throughput comes with 4IOPS, up to 2,400 IOPS.600

Access mode changes

To attach a single Hyperdisk volume to multiple VMs, you must setthe volume'saccess modeto read-only or multi-writer mode, depending on your use case.

Disable multi-read or multi-write access for a disk

To perform certain actions on a Hyperdisk volume, itmust be in single-writer mode. For example, you can't create an image from aHyperdisk volume in multi-writer mode. You must set itsaccess mode to single-writer.

To disable multi-read or multi-write access, you must detach it from all VMs, thenfollow the instructions inSet the access mode.

Restrictions

  • To set a disk's access mode, it must be detached from all VMs.
  • For Hyperdisk ML volumes, you can't set the access mode back to read-write if you set it to read-only.
  • You can't set the access mode for Hyperdisk Throughput and Hyperdisk Extreme volumes.

Best practices

Since you must wait at least 4 hours between disk property changes,follow these best practices:

  • Avoid delays in modifying a disk by changing multiple properties at thesame time. For example, if you plan to change both disk's size and provisionedIOPS within a short period, make both changes in a single request.

  • When choosing a new value for a disk's provisioned performance or size, rememberthat you can't make any further changes for 4 to6 hours. For example, suppose you want to increase the sizeof a 500 GiB Hyperdisk Balanced volume to 1 TiB. Ensure that your workload won't require more than1 TiB of disk space within the next 4 hours, sinceyou can't increase the size again until 4 hours have passed.

Set the access mode of a Hyperdisk volume

To set a disk's access mode, it must be detached from all VMs.

You can make the following changes to a Hyperdisk volume's accessmode:

  • For Hyperdisk Balanced and Hyperdisk Balanced High Availability volumes, you can enable or disable multi-writermode.
  • For Hyperdisk ML volumes, you can enable read-only mode.

You can't modify a Hyperdisk ML volume's access mode after you set it to read-only.

You can set the access mode with the Google Cloud console, the Google Cloud CLI, orREST.

Console

  1. In the Google Cloud console, go to theDisks page.

    Go to Disks

  2. In the list of disks in your project, click the name of theHyperdisk volume you want to modify.

  3. On the disk details page, clickEdit.

  4. In theAccess mode field, select the access mode that you want:

    • To enable read-only mode, selectMultiple VMs read only.
    • To enable multi-writer mode, selectMultiple VMs read-write
    • (Default) To enable single-writer mode, selectSingle VM read-write.
  5. To apply your changes, clickSave.

gcloud

Run thedisks update commandand specify the access mode with the--access-mode flag.

gcloud compute disks updateDISK_NAME  \   --access-mode=DISK_ACCESS_MODE

Replace the following:

  • DISK_NAME: the name of theHyperdisk volume that you are modifying.
  • DISK_ACCESS_MODE: how VMs can access the data on the disk.Supported values are:
    • READ_ONLY_MANY, for read-only access from multiple VMs.
    • READ_WRITE_MANY, for read-write access from multiple VMs.
    • (Default)READ_WRITE_SINGLE, for read-write access from one VM.

REST

Construct aPATCH request to thecompute.disks.update method.In the request body, set the access mode with the"accessMode" parameter.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update{   "accessMode": "DISK_ACCESS_MODE"}

Replace the following:

  • PROJECT_ID: your project ID.
  • ZONE: the zone where yourHyperdisk volume is located.
  • DISK_NAME: the name of theHyperdisk volume to modify.
  • DISK_ACCESS_MODE: how VMs can access the data on the disk.Supported values are:
    • READ_ONLY_MANY, for read-only access from multiple VMs.
    • READ_WRITE_MANY, for read-write access from multiple VMs.
    • READ_WRITE_SINGLE, for read-write access from one VM.

Change the size or provisioned performance of a Hyperdisk volume

You can increase the volume size and change the provisioned IOPS or throughputfor a Hyperdisk volume with the following time limits:

  • Increase the disk size:

    • For Hyperdisk Throughput: Once every 6 hours
    • For all other Hyperdisk types: once every 4hours
  • Modify the provisioned IOPS or throughput:

    • For Hyperdisk ML: Once every 6 hours
    • For all other Hyperdisk types: once every 4 hours

You can change the provisioned size and performance for a Hyperdiskvolume with the Google Cloud console, gcloud CLI, or REST.

Console

  1. In the Google Cloud console, go to theDisks page.

    Go to Disks

  2. In the list of disks in your project, click the name of theHyperdisk volume for which you want to change the capacityor provisioned performance.

  3. On the disk details page, clickEdit.

    1. In theSize field, enter the new size for your disk. The disk sizemust be in the range ofsupported values.
    2. For Hyperdisk Extreme, Hyperdisk Balanced, and Hyperdisk Balanced High Availability:In theProvisioned IOPS field, enter the new IOPS value for yourvolume.
    3. For Hyperdisk Throughput, Hyperdisk ML, Hyperdisk Balanced, and Hyperdisk Balanced High Availability: In theProvisioned throughput field, enter the new throughput valuefor your volume.
  4. ClickSave to apply your changes to the disk.

gcloud

Use thedisks update commandand specify the--size,--provisioned-iops, or--provisioned-throughput flags.

To change the size of a Hyperdisk Balanced High Availability volume, include the--region flag.

gcloud compute disks updateDISK_NAME  \    --size=DISK_SIZE  \    [--region=REGION]  \    --provisioned-iops=IOPS_LIMIT  \    --provisioned-throughput=THROUGHPUT_LIMIT

Replace the following:

  • DISK_NAME: the name of theHyperdisk volume that you are modifying.
  • DISK_SIZE: Optional: The new size of thedisk. The value must be a whole number followed by a size unit of GB forgibibyte, or TB for tebibyte. The disksize must be in the range ofsupported values.
  • REGION: Optional. The region where the Hyperdisk Balanced High Availabilitydisk is located
  • IOPS_LIMIT: Optional: The IOPSconfiguration for Hyperdisk Extreme, Hyperdisk Balanced, and Hyperdisk Balanced High Availabilityvolumes. The value must be in the range of supported values.
  • THROUGHPUT_LIMIT: Optional: The throughputconfiguration for the Hyperdisk Throughput, Hyperdisk ML, Hyperdisk Balanced, or Hyperdisk Balanced High Availability volume,specified as an integer that represents the throughput measured in MiBper second. The value must be in the range of supported values.

REST

Construct aPATCH request to thecompute.disks.update method.In the request body, specify thesizeGb,provisionedIops orprovisionedThroughput parameters.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME{   "sizeGb": "DISK_SIZE,   "provisionedIops": "IOPS_LIMIT",   "provisionedThroughput": "THROUGHPUT_LIMIT"}

To modify a Hyperdisk Balanced High Availability volume, construct aPATCH request to thecompute.regionDisks.update method.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME{   "sizeGb": "DISK_SIZE,   "provisionedIops": "IOPS_LIMIT",   "provisionedThroughput": "THROUGHPUT_LIMIT"}

Replace the following:

  • PROJECT_ID: your project ID.
  • ZONE: the zone where yourHyperdisk volume is located.
  • REGION: For Hyperdisk Balanced High Availability disks, this is theregion where the disk is located.
  • DISK_NAME: the name of theHyperdisk volume to modify.
  • DISK_SIZE: Optional: The new size of thedisk. The value must be a whole number followed by a size unit of GB forgibibyte, or TB for tebibyte. The disksize must be in the range ofsupported values.
  • IOPS_LIMIT: Optional: The IOPS configurationfor the Hyperdisk Extreme, Hyperdisk Balanced, or Hyperdisk Balanced High Availability volume. The value must be in therange of supported values.
  • THROUGHPUT_LIMIT: Optional: The throughputconfiguration for the Hyperdisk Balanced, Hyperdisk ML, Hyperdisk Balanced, or Hyperdisk Balanced High Availability volume,specified as an integer that represents the throughput measured in MiBper second. The value must be in the range of supported values.

If you attempt to modify a Hyperdisk volume's size or performancemore than once within the specified limits, you will receive an error message likeCannot update provisioned throughput due to being rate limited orDisk cannot be resized due to being rate limited.

Back up the Hyperdisk volume

Resizing a disk doesn't delete or modify disk data, but as a best practice,always backup your disk bycreating a snapshot before you makeany changes to the file system or partitions.

Resize the file system and partitions

After increasing the size of your Hyperdisk volume, you mightneed to resize its file system and partitions:

  • Boot disk: If you are usinga custom Linux imageor acustom Windows image,you must manually resize the root partition and file system. For VMs withpublic images, Compute Engine automaticallyresizes the root partition and file system after you increase the size of theboot disk and restart the VM.

  • Non-boot disk: After increasing the size of the disk, you must extend thefile system on the disk to use the added space.

The following examples shows how to manually resize the root partition and filesystem of a boot disk, and how to manually resize the file system of a non-bootdata disk with no partition table. This example assumes that the attached diskswere previously formatted and mounted.

Linux VMs

  1. In the Google Cloud console, go to theVM instances page.

    Go to VM instances

  2. Click theSSH button next to the instance that has the new diskattached. The browser opens a terminal connection to the instance.

  3. Use thedf and thelsblk commands to list the size of the file systemand to find the device names for your disks.

    $sudo df -ThFilesystem      Type      Size  Used Avail Use% Mounted onudev            devtmpfs  3.9G     0  3.9G   0% /dev/dev/nvme0n1p1  ext4      9.7G  2.0G  7.2G  22% //dev/nvme0n1p15 vfat      124M   12M  113M  10% /boot/efi/dev/nvme0n2    ext4       98G   24K   98G   1% /mnt/disks/data
    $sudo lsblkNAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTnvme0n1      259:0    0   20G  0 disk├─nvme0n1p1  259:5    0  9.9G  0 part /├─nvme0n1p14 259:6    0    3M  0 part└─nvme0n1p15 259:7    0  124M  0 part /boot/efinvme0n2      259:4    0  100G  0 disk /mnt/disks/data

    This example includes the following disks:

    • Boot disk: The/dev/nvme0n1p1 partition is on a boot disk thathas been resized to 20 GB. The partition table and the file systemprovide only 9.9 GB to the operating system.
    • Non-boot data disk: The/dev/nvme0n2 non-boot data disk has nopartition table, but the file system on that disk provides 100 GBto the operating system. The mount directory for this disk is/mnt/disks/data.

    Make note of theType column in thedf command output, whichindicates if your disk uses anext4 orxfs file system.

  4. Verify the partition type:

    sudo parted -l

    The first time you run this command after resizing a disk, you might seea message similar to the following:

    Warning: Not all of the space available to /dev/nvme0n1 appears to beused, you can fix the GPT to use all of the space (an extra 20971520blocks) or continue with the current setting?Fix/Ignore?

    If you enterFix, the OS will automatically repartition the disk tomake the additional space available to the OS. Skip ahead to the laststep if you don't have any additional disks to modify.

  5. If you choose not to use the automatic fix option, or it isn't available,view the information for the disk you want to repartition:

    sudo parted -l /dev/DEVICE_NAME

    Look for field:Partition Table, if the value ismsdos then thedisk has an MBR partition type. This means the maximum size of such diskwould be 2 TB.

  6. For a boot disk, resize the root partition and file system on the disk.This example assumes the VM image does not support automatic rootpartitioning and file system resizing.

    1. Resize the root partition by usingparted. For example, thefollowing commands expand partition 1 of the deviceto the maximum possible size:

      1. Openparted on the device:

        sudo parted /dev/DEVICE_NAME
      2. At the prompt, enter:

        (parted)resizepart
      3. At thePartition number? prompt, enter:

        1
      4. At theWarning: Partition /dev/DEVICE_NAMEp1 is beingused. Are you sure you want to continue? prompt, enter:

        Yes
      5. At theEnd? prompt, enter

        100%
      6. At the(parted) prompt, enter:

        (parted)quit
    2. View the new partition table usingparted -l.

      sudo parted -l /dev/DEVICE_NAMEModel: nvme_card-pd (nvme)Disk /dev/DEVICE_NAME: 21.5GBSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags:Number  Start   End     Size    File system  Name  Flags14      1049kB  4194kB  3146kB                     bios_grub15      4194kB  134MB   130MB   fat16              boot, esp1       134MB   21.5GB  21.3GB  ext4
    3. Extend the file system:

      • If you are usingext4, use theresize2fs command:

        sudo resize2fs /dev/DEVICE_NAME
      • If you are usingxfs, use thexfs_growfs command:

        sudo xfs_growfs -d /
      • If you are usingbtrfs,use thebtrfs command:

        sudo btrfs filesystem resize max /
  7. For a non-boot data disk, resize the file system on the disk.

    • If you are usingext4, use theresize2fs command to extend thefile system:

      sudo resize2fs /dev/DATA_DEVICE_NAME

      ReplaceDATA_DEVICE_NAME with the device name forthe data disk. In this example, the device name is/dev/nvme0n2.

    • If you are usingxfs, use thexfs_growfs command to extend thefile system:

      sudo xfs_growfsMOUNT_DIR
    • If you are usingbtrfs,use thebtrfs command to extend the file system:

      sudo btrfs filesystem resize maxMOUNT_DIR

      ReplaceMOUNT_DIR with the mount point of the device. Youcan find the mount point listed in theMOUNTPOINT column in theoutput of thelsblk command.

  8. Use thedf command to verify that the file system is extended. Forexample:

    df -h /dev/DATA_DEVICE_NAMEFilesystem       Size  Used  Avail    Use%     Mounted on/dev/DATA_DEVICE_NAME   118G  70M   118G     1%MOUNT_DIR

Windows VMs

Use theWindows Disk Management utility to resize partitions on a Windows instance.

  1. In the Google Cloud console, go to theVM instances page.

    Go to VM instances

  2. Next to the instance that has the resized disk, click theRDP button.The browser opens an RDP connection to the instance.

  3. Right-click the Windows Start button and selectDisk Management toopen the Disk Management tool.

    Selecting the Windows Disk Manager tool from the right-click menu on the Windows Start button.

  4. Show the disks partition type by running in Powershell:

    Get-Disk
    under Partition Style column, if the value isMBR then thedisk has an MBR partition type. This means themaximum size of such a disk would be 2 TB.

  5. Refresh the Disk Management tool so that it recognizes the additionalspace on your zonal persistent disk. At the top of the Disk Managementwindow, clickAction and selectRefresh.

    Clicking the Action menu and selecting Refresh to update the zonal persistent disk information in the Disk Management tool.

  6. On the disk that you resized, right-click the formatted partition andselectExtend Volume.

    Right-clicking the formatted portion of the disk and selecting the Extend Volume option.

  7. Follow the instructions in theExtend Volume Wizard to extend yourexisting partition to include the extra disk space. If the existingpartition is formatted in NTFS, the maximum partition size islimited byits cluster size settings.

  8. After you complete the wizard and the volume finishes formatting, checktheStatus column on the list of attached disks to ensure that the newdisk has aHealthy status.

    Viewing the list of disks that are recognized by Windows, verify that the instance is Online with a Healthy status.

You don't need to restart your VM after you complete this process. Youcan now use the added disk space to store data.

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-07-11 UTC.