Copy an instant snapshot to a different location


In certain scenarios, you might want to copy an instant snapshot to a different zone or region from its source disk. Possible occasions include:

  • 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.

You can't perform these tasks with an instant snapshot. Instead, 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, 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 as follows.

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. 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

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

  1. Find the instant snapshot:

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

      Go to Snapshots

    2. Click the Instant snapshots tab.

    3. In the Name column, note the name of the snapshot you want to restore.

  2. Click Create snapshot.

  3. In the Name field, enter a unique name to identify the snapshot.

  4. Optional. Add more details about the snapshot in the Description field.

  5. Under Snapshot source type, choose Instant snapshot.

  6. In the Source instant snapshot list, select the instant snapshot you want to use.

  7. For Type, choose either Snapshot or Archive snapshot.

  8. 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:

    1. 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.
    2. 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.

  9. If the instant snapshot is CSEK-encrypted, provide the encryption key:

    1. In the Decryption section, enter the encryption key in the Encryption key field.
    2. If the key is wrapped with the public RSA key, select Wrapped key.
  10. Click Create to create the snapshot.

gcloud

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

Create a standard snapshot from a zonal or regional instant snapshot with the gcloud beta 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 beta 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, either STANDARD or ARCHIVE. 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 beta 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, either STANDARD or ARCHIVE. 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 beta 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, either STANDARD or ARCHIVE. 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 beta 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, either STANDARD or ARCHIVE. 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 the snapshots.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/beta/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, either STANDARD or ARCHIVE.
  • 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.
  • Create a standard or archive snapshot from a regional instant snapshot:

      POST https://compute.googleapis.com/compute/beta/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, either STANDARD or ARCHIVE.
    • 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