In certain scenarios, you might want to copy an instant snapshot to a different zone or region from its source disk. Possible occasions include:
- Preserving the data on an instant snapshot before you delete the source disk, since deleting the disk deletes its instant snapshots.
- Protecting the instant snapshot from a zonal or regional outage by storing it in a different location.
- Moving an instant snapshot with data from an event or project milestone to long-term storage.
- Using an instant snapshot in one location to create a new disk in another location.
In these scenarios, you must create a standard or archive snapshot from the instant snapshot, and use that newly created snapshot.
This page explains how to create a standard or archive snapshot from an instant snapshot.
Before you begin
-
If you haven't already, then set up authentication.
Authentication is
the process by which your identity is verified for access to Google Cloud services and APIs.
To run code or samples from a local development environment, you can authenticate to
Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
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, then initialize it by running the following command:
gcloud init
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
Required roles and permissions
To get the permissions that you need to create a standard snapshot from an instant snapshot, ask your administrator to grant you the following IAM roles on the project:
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) -
To connect to a VM that can run as a service account:
Service Account User (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 create a standard snapshot from an instant snapshot. To see the exact permissions that are required, expand the Required permissions section:
Required permissions
The following permissions are required to create a standard snapshot from an instant snapshot:
-
To create a standard snapshot:
-
compute.snapshots.create
on the destination project for the new standard snapshot -
compute.instantSnapshots.useReadOnly
on the source instant snapshot
-
You might also be able to get these permissions with custom roles or other predefined roles.
Restrictions
If an instant snapshot's source disk is encrypted with a customer-supplied encryption key (CSEK), the instant snapshot is also encrypted with the same key.
Therefore, to create a standard snapshot from a CSEK-encrypted instant snapshot, you must provide the key you used to encrypt the source disk.
Create a standard or archive snapshot from an instant snapshot
You can create a standard or archive snapshot from an instant snapshot by using the gcloud CLI, Google Cloud console, or REST.
Console
Find the instant snapshot:
In the Google Cloud console, go to the Snapshots page.
Click the Instant snapshots tab.
In the Name column, note the name of the snapshot you want to restore.
Click Create snapshot.
In the Name field, enter a unique name to identify the snapshot.
Optional. Add more details about the snapshot in the Description field.
Under Snapshot source type, choose Instant snapshot.
In the Source instant snapshot list, select the instant snapshot you want to use.
For Type, choose either Snapshot or Archive snapshot.
In the Location section, choose your snapshot storage location. The predefined or customized default location defined in your snapshot settings is automatically selected. Optionally, you can override the snapshot settings and store your snapshots in a custom storage location by doing the following:
Choose the type of storage location that you want for your snapshot.
- Choose Multi-regional for higher availability at a higher cost.
- Choose Regional snapshots for more control over the physical location of your data at a lower cost.
In the Select location field, select the specific region or multi-region that you want to use. To use the region or multi-region that is closest to your source disk, select Based on disk's location.
If the instant snapshot is CSEK-encrypted, provide the encryption key:
- In the Decryption section, enter the encryption key in the Encryption key field.
- If the key is wrapped with the public RSA key, select Wrapped key.
Click Create to create the snapshot.
gcloud
Create a standard snapshot from a zonal or regional instant snapshot with
the gcloud compute snapshots create
command.
You use different flags depending on whether the instant snapshot is of a zonal or regional disk.
Zonal instant snapshot
Create your standard or archive snapshot from a zonal instant snapshot using the storage location policy defined by your snapshot settings or using an alternative storage location of your choice. For more information, see Choose your snapshot storage location.
- To create a standard or archive snapshot in the predefined or customized default location configured in your snapshot settings, use the following command:
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \ --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \ --source-instant-snapshot-zone=SOURCE_ZONE \ --snapshot-type=SNAPSHOT_TYPE
Replace the following with the corresponding values:
NEW_STANDARD_SNAPSHOT_NAME
: a unique name for the new standard snapshot.SRC_INSTANT_SNAPSHOT_NAME
: the name of the source instant snapshot.SOURCE_ZONE
: the zone where the instant snapshot is located.SNAPSHOT_TYPE
: the type of snapshot to create, eitherSTANDARD
orARCHIVE
. If this flag is omitted, a standard snapshot is created.To override the snapshot settings and create a standard or archive snapshot in a custom storage location, include the
--storage-location
flag to indicate where to store your snapshot:
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \ --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \ --source-instant-snapshot-zone=SOURCE_ZONE \ --storage-location=STORAGE_LOCATION \ --snapshot-type=SNAPSHOT_TYPE
Replace the following with the corresponding values:
NEW_STANDARD_SNAPSHOT_NAME
: a unique name for the new snapshot.SRC_INSTANT_SNAPSHOT_NAME
: the name of the source instant snapshot.SOURCE_ZONE
: the zone where the instant snapshot is located.STORAGE_LOCATION
: For custom storage locations, this is the Cloud Storage multi-region or the Cloud Storage region where you want to store your snapshot. You can specify only one storage location.Use the
--storage-location
flag only when you want to override the predefined or customized default storage location configured in your snapshot settings.SNAPSHOT_TYPE
: the type of snapshot to create, eitherSTANDARD
orARCHIVE
. If this flag is omitted, a standard snapshot is created.
Regional instant snapshot
Create your standard or archive snapshot from a regional instant snapshot using the storage location policy defined by your snapshot settings or using an alternative storage location of your choice. For more information, see Choose your snapshot storage location.
- To create a standard or archive snapshot in the predefined or customized default location configured in your snapshot settings, use the following command:
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \ --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \ --source-instant-snapshot-region=SOURCE_REGION \ --snapshot-type=SNAPSHOT_TYPE
Replace the following with the corresponding values:
NEW_STANDARD_SNAPSHOT_NAME
: a unique name for the new standard snapshot.SRC_INSTANT_SNAPSHOT_NAME
: the name of the source instant snapshot.SOURCE_REGION
: the region where the instant snapshot is located.SNAPSHOT_TYPE
: the type of snapshot to create, eitherSTANDARD
orARCHIVE
. If this flag is omitted, a standard snapshot is created.To override the snapshot settings and create a standard or archive snapshot in a custom storage location, include the
--storage-location
flag to indicate where to store your snapshot:
gcloud compute snapshots create NEW_STANDARD_SNAPSHOT_NAME \ --source-instant-snapshot=SRC_INSTANT_SNAPSHOT_NAME \ --source-instant-snapshot-region=SOURCE_REGION \ --storage-location=STORAGE_LOCATION \ --snapshot-type=SNAPSHOT_TYPE
Replace the following with the corresponding values:
NEW_STANDARD_SNAPSHOT_NAME
: a unique name for the new snapshot.SRC_INSTANT_SNAPSHOT_NAME
: the name of the source instant snapshot.SOURCE_REGION
: the region where the instant snapshot is located.STORAGE_LOCATION
: For custom storage locations, this is the Cloud Storage multi-region or the Cloud Storage region where you want to store your snapshot. You can specify only one storage location.Use the
--storage-location
flag only when you want to override the predefined or customized default storage location configured in your snapshot settings.SNAPSHOT_TYPE
: the type of snapshot to create, eitherSTANDARD
orARCHIVE
. If this flag is omitted, a standard snapshot is created.
REST
To create a standard snapshot from a zonal or regional instant snapshot,
make a POST
request to the snapshots.insert
method.
The API request properties depend on whether the instant snapshot is of a zonal or regional disk.
Zonal instant snapshot
Create your standard or archive snapshot from a zonal instant snapshot using the storage location policy defined by your snapshot settings or using an alternative storage location of your choice. For more information, see Choose your snapshot storage location.
To create a standard or archive snapshot in the predefined or customized default location configured in your snapshot settings, make a
POST
request to thesnapshots.insert
method.To override the snapshot settings and create the snapshot in a custom storage location, include the
storageLocations
property in your request.
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT/global/snapshots { "name": "NEW_STANDARD_SNAPSHOT_NAME", "snapshotType": "NEW_SNAPSHOT_TYPE", "sourceInstantSnapshot": "projects/SOURCE_PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME", "sourceInstantSnapshotEncryptionKey": "SOURCE_ENCRYPTION_KEY" }
Replace the following with the corresponding values:
DESTINATION_PROJECT
: the project in which to create the new snapshot.NEW_STANDARD_SNAPSHOT_NAME
: a unique name for the new snapshot.NEW_SNAPSHOT_TYPE
: the type of snapshot to create, eitherSTANDARD
orARCHIVE
.SOURCE_PROJECT
: the project containing the source instant snapshot.SOURCE_ZONE
: the zone where the instant snapshot is located.SOURCE_INSTANT_SNAPSHOT_NAME
: the name of the source instant snapshot.SOURCE_ENCRYPTION_KEY
: if the instant snapshot is encrypted with a customer-supplied key or customer-managed key, replace this value with the key information. Otherwise, you can omit this property.STORAGE_LOCATION
: Optional. The Cloud Storage multi-region or the Cloud Storage region where you want to store your snapshot. You can specify only one storage location.
Use the storageLocations
parameter only when you want to override
the predefined or customized default storage location configured in
your snapshot settings.
Regional instant snapshot
Create your regional standard or archive snapshot from a regional instant snapshot using the storage location policy defined by your snapshot settings or using an alternative storage location of your choice. For more information, see Choose your snapshot storage location.
To create a standard or archive snapshot volume in the predefined or
customized default location configured in your snapshot settings, make a
POST
request to the
snapshots.insert
method.
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT/global/snapshots { "name": "NEW_STANDARD_SNAPSHOT_NAME", "snapshotType": "NEW_SNAPSHOT_TYPE", "sourceInstantSnapshot": "projects/SOURCE_PROJECT/regions/SOURCE_REGION/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME", "sourceInstantSnapshotEncryptionKey": "SOURCE_ENCRYPTION_KEY" }
Replace the following with the corresponding values:
DESTINATION_PROJECT
: the project in which to create the new snapshot.NEW_STANDARD_SNAPSHOT_NAME
: a unique name for the new snapshot.NEW_SNAPSHOT_TYPE
: the type of snapshot to create, eitherSTANDARD
orARCHIVE
.SOURCE_PROJECT
: the project containing the source instant snapshot.SOURCE_REGION
: the region where the instant snapshot is located.SOURCE_INSTANT_SNAPSHOT_NAME
: the name of the source instant snapshot.SOURCE_ENCRYPTION_KEY
: if the instant snapshot is encrypted with a customer-supplied key or customer-managed key, replace this value with the key information. Otherwise you can omit this property.
API request response
If the POST
request is successful, the response body will be an object
that you can poll to get the status of the snapshot's creation. See
Handling API responses
for more information.
What's next
- Learn how to share a standard snapshot across projects.
- Learn how to create a VM from the standard snapshot.
- Get help troubleshooting errors creating standard snapshots and errors creating instant snapshots.