This document discusses how to perform certain tasks on a disk. To perform any of the following tasks, you must create a new disk. You can't make the following changes to a disk.
Follow these steps to perform any of the previously mentioned tasks:
To place the new Hyperdisk volumes in a Hyperdisk Storage Pool or Hyperdisk Exapool, review the Limitations for creating disks in a Hyperdisk pool.
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:
gcloud initIf you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI.
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
To get the permissions that you need to change the disk type, ask your administrator to grant you the following IAM roles on the project:
roles/compute.instanceAdmin.v1)roles/iam.serviceAccountUser)
For more information about granting roles, see Manage access to projects, folders, and organizations.
These predefined roles contain the permissions required to change the disk type. To see the exact permissions that are required, expand the Required permissions section:
The following permissions are required to change the disk type:
compute.snapshots.create
on the projectcompute.disks.createSnapshot
on the diskcompute.disks.create
on the project
compute.storagePools.use
on the projectcompute.disks.create
on the projectcompute.instances.attachDisk
on the VMcompute.disks.use
on the volume that you want to attach to the VMcompute.disks.delete
on the project
You might also be able to get these permissions with custom roles or other predefined roles.
To migrate a Persistent Disk volume to Hyperdisk, recreate a disk in or out of a pool, or move a disk to a different region or zone, you create a snapshot of the disk, and then use the snapshot when creating a new disk.
Prepare for creating a disk snapshot:
Important: If you pause your applications before
creating a snapshot, resume your workloads only after the snapshot resource
reaches the UPLOADING status.
For more information, see the table in Manually creating application consistent snapshots.
Create a snapshot of your existing disk.
Go to the Disks page.
Go to DisksUnder Disk Type, select Hyperdisk Extreme, Hyperdisk Throughput, or Hyperdisk Balanced.
Optional: To use a pool, you must select either Hyperdisk Balanced or Hyperdisk Throughput.
Optional: Change the defaults, if you are changing the disk type:
Optional: To create the new disk in a pool:
Choose the name of the pool to create the disk in.
Only pools that exist in the selected zone appear in the list.
Prepare for creating a disk snapshot:
Important: If you pause your applications before
creating a snapshot, resume your workloads only after the snapshot resource
reaches the UPLOADING status.
For more information, see the table in Manually creating application consistent snapshots.
Create a snapshot of your existing disk.
Use the
disks create command
to create a Hyperdisk volume from your snapshot.
gcloud compute disks create DISK_NAME \ --zone=ZONE \ --storage-pool=STORAGE_POOL_NAME \ --size=SIZE \ --source-snapshot=SNAPSHOT_NAME \ --type=DISK_TYPE \ --provisioned-iops=PROVISIONED_IOPS \ --provisioned-throughput=PROVISIONED_THROUGHPUT
Replace the following:
us-central1-a.hyperdisk-balanced or hyperdisk-throughput.After you create the disk, you can attach the disk to any running or stopped compute instance.
Construct a POST request to create a zonal Hyperdisk
by using the disks.insert method.
Include the name, sizeGb, type, and sourceSnapshot properties.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
{
"name": "DISK_NAME",
"sizeGb": "DISK_SIZE",
"type": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE",
"sourceSnapshot": "SNAPSHOT_NAME",
"provisionedIops": "IOPS_LIMIT",
"provisionedThroughput": "THROUGHPUT_LIMIT",
"accessMode": "DISK_ACCESS_MODE"
}
Replace the following:
PROJECT_ID: your project IDZONE: the zone where your compute instance
and new disk are locatedDISK_NAME: the name of the new diskDISK_SIZE: Optional: The size of the new
disk. The value must be a whole number followed by a size unit of GB
for gibibytes or TB for tebibytes.DISK_TYPE: the type of disk. To create a
Hyperdisk volume, use one of the following values:
hyperdisk-balanced, hyperdisk-extreme,
hyperdisk-ml, or
hyperdisk-throughput.IOPS_LIMIT: Optional: For
Hyperdisk Balanced and Hyperdisk Extreme, this is the number of I/O
operations per second that the disk can handle.THROUGHPUT_LIMIT: Optional: For Hyperdisk Balanced,
Hyperdisk ML, or Hyperdisk Throughput volumes, this is an integer that represents the
throughput, measured in MiB per second, that the disk can handle.DISK_ACCESS_MODE: how compute instances can
access the data on the disk. Supported values are:
READ_WRITE_SINGLE, for read-write access from one instance.
This is the default value.READ_WRITE_MANY, for read-write access from multiple instances.READ_ONLY_MANY, for read-only access from multiple instances.You can set the access mode for the following disk types:
Optional: Use the
compute.disks.get method to see a description of your
disk.
After you create the disk, you can attach the disk to any running or stopped compute instance.
How you change a zonal Hyperdisk to a Hyperdisk Balanced High Availability disk depends on the zonal disk's type:
If the zonal disk is a boot disk or a Hyperdisk ML or Hyperdisk Throughput disk, create a Hyperdisk Balanced High Availability volume from the snapshot of the zonal disk, as described in this section.
If the zonal disk is a Hyperdisk Balanced or Hyperdisk Extreme disk and is not a boot disk, create a Hyperdisk Balanced High Availability volume by cloning the source disk.
Prepare for creating a disk snapshot:
Important: If you pause your applications before
creating a snapshot, resume your workloads only after the snapshot resource
reaches the UPLOADING status.
For more information, see the table in Manually creating application consistent snapshots.
Create a snapshot of your existing disk.
Go to the Disks page.
Go to DisksSpecify the primary zone for the disk in the Region and Zone fields.
The disk must be in the same region as the compute instance that you plan to attach it to.
Under Disk Type, select Hyperdisk Balanced High Availability.
If you don't see the Hyperdisk Balanced High Availability disk type in the list, you might have to choose a region that offers Hyperdisk Balanced High Availability disks.
Optional: Change the default Provisioned IOPS and Provisioned throughput values for the new disk:
Prepare for creating a disk snapshot:
Important: If you pause your applications before
creating a snapshot, resume your workloads only after the snapshot resource
reaches the UPLOADING status.
For more information, see the table in Manually creating application consistent snapshots.
Create a snapshot of your existing disk.
Use the
disks create command
to create a Hyperdisk Balanced High Availability disk from your snapshot.
gcloud compute disks create DISK_NAME \ --size=SIZE \ --type=hyperdisk-balanced-high-availability \ --source-snapshot=SNAPSHOT_NAME \ --provisioned-iops=PROVISIONED_IOPS \ --provisioned-throughput=PROVISIONED_THROUGHPUT \ --region=REGION \ --replica-zones=ZONE1,ZONE2
Replace the following:
DISK_NAME: a unique name for the disk.SIZE: Optional: the provisioned capacity of the
new disk. The size must be greater or equal to the size of the source
disk. The value must be a whole number followed by a size unit of GB for
gibibyte,
or TB for tebibyte.SNAPSHOT_NAME: The name of the snapshot that
you created from the original disk.PROVISIONED_IOPS: Optional: the IOPS to
provision for the disk.PROVISIONED_THROUGHPUT: Optional: the
throughput in megabyte (MB) per second to provision for the disk.REGION: the region for the regional disk
to reside in, for example: europe-west1ZONE1,ZONE2: the
zones within the region where the two disk replicas are located,
for example: europe-west1-b,europe-west1-cTo create a Hyperdisk Balanced High Availability volume, you can use the
google_compute_region_disk resource, as shown in the following example, but change the disk
type from pd-ssd to hyperdisk-balanced-high-availability.
To learn how to apply or remove a Terraform configuration, see Basic Terraform commands.
To create a Hyperdisk Balanced High Availability volume, construct a POST request to the
compute.regionDisks.insert method.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks
{
"name": "DISK_NAME",
"sourceSnapshot": "SNAPSHOT_NAME",
"region": "projects/PROJECT_ID/regions/REGION",
"replicaZones": [
"projects/PROJECT_ID/zones/ZONE1",
"projects/PROJECT_ID/zones/ZONE2"
],
"sizeGb": "DISK_SIZE",
"type": "projects/PROJECT_ID/regions/REGION/diskTypes/hyperdisk-balanced-high-availability"
}
Replace the following:
PROJECT_ID: your project IDREGION: the region for the regional disk
to reside in, for example: europe-west1DISK_NAME: the name of the new diskSNAPSHOT_NAME: The name of the snapshot that
you created from the original disk.ZONE1,ZONE2: the
zones where replicas of the new disk should be located,
for example: europe-west1-b,europe-west1-cDISK_SIZE: the size, in GiB, of the new diskAfter you create the disk, you must attach the disk or attach the regional disk to your compute instance before you can use it.
Because the new disk you created isn't a blank disk, after attaching the disk to an instance, you only need to mount the disk to make it available the operating system.
For information on how to mount the disk, refer to the following:
After verifying the new disk, you can:
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-07-17 UTC.