gcloud alpha compute disks create Stay organized with collections Save and categorize content based on your preferences.
- NAME
- gcloud alpha compute disks create - create Compute Engine persistent disks
- SYNOPSIS
gcloud alpha compute disks createDISK_NAME[DISK_NAME…][--access-mode=ACCESS_MODE][--architecture=ARCHITECTURE][--confidential-compute][--csek-key-file=FILE][--description=DESCRIPTION][--erase-windows-vss-signature][--guest-os-features=[GUEST_OS_FEATURE,…]][--interface=INTERFACE][--labels=[KEY=VALUE,…]][--licenses=[LICENSE,…]][--multi-writer][--physical-block-size=PHYSICAL_BLOCK_SIZE; default="4096"][--primary-disk-project=PRIMARY_DISK_PROJECT][--provisioned-iops=PROVISIONED_IOPS][--provisioned-throughput=PROVISIONED_THROUGHPUT][--replica-zones=ZONE,ZONE][--no-require-csek-key-create][--resource-policies=[RESOURCE_POLICY,…]][--size=SIZE][--source-instant-snapshot-project=SOURCE_INSTANT_SNAPSHOT_PROJECT][--storage-pool=STORAGE_POOL][--type=TYPE][--user-licenses=[LICENSE,…]][--global-source-snapshot|--source-snapshot-region=SOURCE_SNAPSHOT_REGION][--image-family-scope=IMAGE_FAMILY_SCOPE--image-project=IMAGE_PROJECT--image=IMAGE|--image-family=IMAGE_FAMILY|--primary-disk=PRIMARY_DISK|--source-disk=SOURCE_DISK|--source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT|--source-snapshot=SOURCE_SNAPSHOT][--kms-key=KMS_KEY:--kms-keyring=KMS_KEYRING--kms-location=KMS_LOCATION--kms-project=KMS_PROJECT][--primary-disk-region=PRIMARY_DISK_REGION|--primary-disk-zone=PRIMARY_DISK_ZONE][--region=REGION|--zone=ZONE][--source-disk-region=SOURCE_DISK_REGION|--source-disk-zone=SOURCE_DISK_ZONE][GCLOUD_WIDE_FLAG …]
- DESCRIPTION
(ALPHA)gcloud alpha compute disks createcreates oneor more Compute Engine persistent disks. When creating virtual machineinstances, disks can be attached to the instances through thegcloud compute instancescreatecommand. Disks can also be attached to instances that arealready running usinggcloud computeinstances attach-disk.Disks are zonal resources, so they reside in a particular zone for their entirelifetime. The contents of a disk can be moved to a different zone bysnapshotting the disk (using
gcloud compute diskssnapshot) and creating a new disk using--source-snapshotin the desired zone. The contents of a disk canalso be moved across project or zone by creating an image (usinggcloud compute imagescreate) and creating a new disk using--imagein thedesired project and/or zone.For a comprehensive guide, including details on minimum and maximum disk size,refer to:https://cloud.google.com/compute/docs/disks
- EXAMPLES
- When creating disks, be sure to include the
--zoneoption. Tocreate disks 'my-disk-1' and 'my-disk-2' in zone us-east1-a:gcloudalphacomputediskscreatemy-disk-1my-disk-2--zone=us-east1-a - POSITIONAL ARGUMENTS
DISK_NAME[DISK_NAME…]- Names of the disks to create. For details on the naming convention for thisresource, refer to:https://cloud.google.com/compute/docs/naming-resources
- FLAGS
--access-mode=ACCESS_MODE- Specifies how VMs attached to the disk can access the data on the disk. To grantread-only access to multiple VMs attached to the disk, set access-mode toREAD_ONLY_MANY. To grant read-write access to only one VM attached to the disk,use READ_WRITE_SINGLE. READ_WRITE_SINGLE is used if omitted.
ACCESS_MODEmust be one of:READ_ONLY_MANY,READ_WRITE_MANY,READ_WRITE_SINGLE. --architecture=ARCHITECTURE- Specifies the architecture or processor type that this disk can support. Foravailable processor types on Compute Engine, seehttps://cloud.google.com/compute/docs/cpu-platforms.
ARCHITECTUREmust be one of:ARM64,X86_64. --confidential-compute- Creates the disk with confidential compute mode enabled. Encryption with a CloudKMS key is required to enable this option.
--csek-key-file=FILE- Path to a Customer-Supplied Encryption Key (CSEK) key file that maps ComputeEngine resources to user managed keys to be used when creating, mounting, ortaking snapshots of disks.
If you pass
-as value of the flag, the CSEK is read from stdin.Seehttps://cloud.google.com/compute/docs/disks/customer-supplied-encryptionfor more details. --description=DESCRIPTION- An optional, textual description for the disks being created.
--erase-windows-vss-signature- Specifies whether the disk restored from a source snapshot should erase Windowsspecific VSS signature. Seehttps://cloud.google.com/sdk/gcloud/reference/compute/disks/snapshot#--guest-flush
--guest-os-features=[GUEST_OS_FEATURE,…]- Enables one or more features for VM instances that use the image for their bootdisks. See the descriptions of supported features at:https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features.
GUEST_OS_FEATUREmust be one of:BARE_METAL_LINUX_COMPATIBLE,GVNIC,IDPF,MULTI_IP_SUBNET,SEV_CAPABLE,SEV_LIVE_MIGRATABLE,SEV_LIVE_MIGRATABLE_V2,SEV_SNP_CAPABLE,SNP_SVSM_CAPABLE,TDX_CAPABLE,UEFI_COMPATIBLE,VIRTIO_SCSI_MULTIQUEUE,WINDOWS. --interface=INTERFACE- Specifies the disk interface to use for attaching this disk. Valid values are
SCSIandNVME. The default isSCSI. --labels=[KEY=VALUE,…]- List of label KEY=VALUE pairs to add.
Keys must start with a lowercase character and contain only hyphens(
-), underscores (_), lowercase characters, andnumbers. Values must contain only hyphens (-), underscores(_), lowercase characters, and numbers. --licenses=[LICENSE,…]- A list of URIs to license resources. The provided licenses will be added ontothe created disks to indicate the licensing and billing policies.
--multi-writer- Create the disk in multi-writer mode so that it can be attached with read-writeaccess to two VMs. The multi-writer feature requires specialized filesystems,among other restrictions. For more information, seehttps://cloud.google.com/compute/docs/disks/sharing-disks-between-vms.
--physical-block-size=PHYSICAL_BLOCK_SIZE; default="4096"- Physical block size of the persistent disk in bytes. Valid values are4096(default) and 16384.
PHYSICAL_BLOCK_SIZEmust be oneof:4096,16384. --primary-disk-project=PRIMARY_DISK_PROJECT- Project of the primary disk for asynchronous replication.
--provisioned-iops=PROVISIONED_IOPS- Provisioned IOPS of disk to create. Only for use with disks of type pd-extremeand hyperdisk-extreme.
--provisioned-throughput=PROVISIONED_THROUGHPUT- Provisioned throughput of disk to create. The throughput unit is MB per sec.Only for use with disks of type hyperdisk-throughput.
--replica-zones=ZONE,ZONE- A comma-separated list of exactly 2 zones that a regional disk will bereplicated to. Required when creating regional disk. The zones must be in thesame region as specified in the
--regionflag. See available zoneswithgcloud computezones list. --require-csek-key-create- Refuse to create resources not protected by a user managed key in the key filewhen --csek-key-file is given. This behavior is enabled by default to preventincorrect gcloud invocations from accidentally creating resources with no usermanaged key. Disabling the check allows creation of some resources without amatching Customer-Supplied Encryption Key in the supplied --csek-key-file. Seehttps://cloud.google.com/compute/docs/disks/customer-supplied-encryptionfor more details. Enabled by default, use
--no-require-csek-key-createto disable. --resource-policies=[RESOURCE_POLICY,…]- A list of resource policy names to be added to the disk. The policies must existin the same region as the disk.
--size=SIZE- Size of the disks. The value must be a whole number followed by a size unit of
for gigabyte, orGBfor terabyte. If no size unit isspecified, GB is assumed. For example,TBwill produce 10 gigabyte disks. Disk size must be a multiple of 1 GB. If disksize is not specified, the default size of 500GB for pd-standard disks, 100GBfor pd-balanced disks, 100GB for pd-ssd disks, and 1000GB for pd-extreme will beused. For details about disk size limits, refer to:https://cloud.google.com/compute/docs/disks10GB --source-instant-snapshot-project=SOURCE_INSTANT_SNAPSHOT_PROJECT- The project containing the instant snapshot used to create the disks.
--storage-pool=STORAGE_POOL- Specifies the URI of the storage pool in which the disk is created.
--type=TYPE- Specifies the type of disk to create. To get a list of available disk types, run
gcloud computedisk-types list. The default disk type is pd-standard. --user-licenses=[LICENSE,…]- List of URIs to license resources. User-provided licenses can be edited afterdisk is created.
- At most one of these can be specified:
--global-source-snapshot- If set, the snapshot is global.
--source-snapshot-region=SOURCE_SNAPSHOT_REGION- Region of the snapshot to operate on. Overrides the default
compute/regionproperty value for this command invocation.
--image-family-scope=IMAGE_FAMILY_SCOPE- Sets the scope for the
--image-familyflag. By default, whenspecifying an image family in a public image project, the zonal image familyscope is used. All other projects default to the global image. Use this flag tooverride this behavior.IMAGE_FAMILY_SCOPEmust be oneof:zonal,global. --image-project=IMAGE_PROJECT- The Google Cloud project against which all image and image family referenceswill be resolved. It is best practice to define image-project. A full list ofavailable projects can be generated by running
gcloud projects list.- If specifying one of our public images, image-project must be provided.
- If there are several of the same image-family value in multiple projects,image-project must be specified to clarify the image to be used.
- If not specified and either image or image-family is provided, the currentdefault project is used.
- At most one of these can be specified:
--image=IMAGE- An image to apply to the disks being created. When using this option, the sizeof the disks must be at least as large as the image size. Use
to adjust the size of the disks.--sizeThis flag is mutually exclusive with
and--source-snapshot.--image-family --image-family=IMAGE_FAMILY- The image family for the operating system that the boot disk will be initializedwith. Compute Engine offers multiple Linux distributions, some of which areavailable as both regular and Shielded VM images. When a family is specifiedinstead of an image, the latest non-deprecated image associated with that familyis used. It is best practice to use --image-family when the latest version of animage is needed.
--primary-disk=PRIMARY_DISK- Primary disk for asynchronous replication. This flag is required when creating asecondary disk.
--source-disk=SOURCE_DISK- Source disk used to create the disk(s). It is safe to delete a source disk aftera disk has been created from the source disk. To get a list of disks in yourcurrent project, run
gcloud compute diskslist. This flag is mutually exclusive with--imageand--source-snapshot.When using this option, the size of the disks must be at least as large as thesource disk size. Use
--sizeto adjust the size of the disks.The source disk must be in the same zone/region as the disk to be created.
--source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT- Name of the source instant snapshot used to create the disks.
--source-snapshot=SOURCE_SNAPSHOT- Source snapshot used to create the disks. It is safe to delete a snapshot aftera disk has been created from the snapshot. In such cases, the disks will nolonger reference the deleted snapshot. To get a list of snapshots in yourcurrent project, run
gcloud compute snapshotslist. A snapshot from an existing disk can be created using thegcloud computedisks snapshotcommand. This flag is mutually exclusive with--image.When using this option, the size of the disks must be at least as large as thesnapshot size. Use
--sizeto adjust the size of the disks.
- Key resource - The Cloud KMS (Key Management Service) cryptokey that will beused to protect the disk. The 'Compute Engine Service Agent' service accountmust hold permission 'Cloud KMS CryptoKey Encrypter/Decrypter'. The arguments inthis group can be used to specify the attributes of this resource.
--kms-key=KMS_KEY- ID of the key or fully qualified identifier for the key.
To set the
kms-keyattribute:- provide the argument
--kms-keyon the command line.
This flag argument must be specified if any of the other arguments in this groupare specified.
- provide the argument
--kms-keyring=KMS_KEYRING- The KMS keyring of the key.
To set the
kms-keyringattribute:- provide the argument
--kms-keyon the command line with a fullyspecified name; - provide the argument
--kms-keyringon the command line.
- provide the argument
--kms-location=KMS_LOCATION- The Google Cloud location for the key.
To set the
kms-locationattribute:- provide the argument
--kms-keyon the command line with a fullyspecified name; - provide the argument
--kms-locationon the command line; - provide the argument
--regionon the command line.
- provide the argument
--kms-project=KMS_PROJECT- The Google Cloud project for the key.
To set the
kms-projectattribute:- provide the argument
--kms-keyon the command line with a fullyspecified name; - provide the argument
--kms-projecton the command line; - set the property
core/project.
- provide the argument
- At most one of these can be specified:
--primary-disk-region=PRIMARY_DISK_REGION- Region of the primary disk for asynchronous replication. The primary andsecondary disks must not be in the same region. Overrides the default
compute/regionproperty value for this command invocation. --primary-disk-zone=PRIMARY_DISK_ZONE- Zone of the primary disk for asynchronous replication. The primary and secondarydisks must not be in the same region. Overrides the default
compute/zoneproperty value for this command invocation.
- At most one of these can be specified:
--region=REGION- Region of the disks to create. If not specified, you might be prompted to selecta region (interactive mode only).
To avoid prompting when this flag is omitted, you can set the
property:compute/regiongcloudconfigsetcompute/regionREGIONA list of regions can be fetched by running:
gcloudcomputeregionslistTo unset the property, run:
gcloudconfigunsetcompute/regionAlternatively, the region can be stored in the environment variable
.CLOUDSDK_COMPUTE_REGION --zone=ZONE- Zone of the disks to create. If not specified and the
property isn't set, you mightbe prompted to select a zone (interactive mode only).compute/zoneTo avoid prompting when this flag is omitted, you can set the
property:compute/zonegcloudconfigsetcompute/zoneZONEA list of zones can be fetched by running:
gcloudcomputezoneslistTo unset the property, run:
gcloudconfigunsetcompute/zoneAlternatively, the zone can be stored in the environment variable
.CLOUDSDK_COMPUTE_ZONE
- At most one of these can be specified:
--source-disk-region=SOURCE_DISK_REGION- Region of the source disk. This argument is not required if the target disk isin the same region as the source disk. Overrides the default
compute/regionproperty value for this command invocation. --source-disk-zone=SOURCE_DISK_ZONE- Zone of the source disk. This argument is not required if the target disk is inthe same zone as the source disk. Overrides the default
compute/zoneproperty value for this command invocation.
- GCLOUD WIDE FLAGS
- These flags are available to all commands:
--access-token-file,--account,--billing-project,--configuration,--flags-file,--flatten,--format,--help,--impersonate-service-account,--log-http,--project,--quiet,--trace-token,--user-output-enabled,--verbosity.Run
$gcloud helpfor details. - NOTES
- This command is currently in alpha and might change without notice. If thiscommand fails with API permission errors despite specifying the correct project,you might be trying to access an API with an invitation-only early accessallowlist. These variants are also available:
gcloudcomputediskscreategcloudbetacomputediskscreate
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-09-09 UTC.