使用快照设置来设置默认存储位置


当您创建快照时,Google Cloud 会使用预定义的配置选项的默认值,除非您明确提供不同的值。快照设置是项目级的集中式配置参数,可让您自定义 Google Cloud 存储快照的默认位置。通过使用快照设置来定义自己的自定义默认值,则无需在每个快照创建期间手动指定位置。

本文档介绍了快照设置以及如何使用这些设置来自定义项目快照的默认存储位置。

准备工作

  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

限制

  • 您只能使用 gcloud CLI 或 REST 查看和更新快照设置。
  • 您无法自定义即时快照的默认存储位置。您只能对标准快照和归档快照执行此操作。
  • 修改项目的快照设置中的位置政策只会影响在进行该修改后创建的快照。更新项目的快照设置不会更改任何现有快照的位置。
  • 如果您在快照创建期间手动指定位置,则 Google Cloud 将覆盖快照设置,并在新指定的位置中创建快照。但是,快照设置中的存储位置政策将保持不变。

快照设置的工作原理

项目快照设置的存储位置政策定义了 Google Cloud 自动存储该项目快照的位置。在您更新快照设置并配置新的默认值之前,Google Cloud 会保留此存储位置政策的预定义值。在您更新快照设置并设置新的默认存储位置后,Google Cloud 会使用此位置存储在该项目中创建的每个新快照。

您可以任意更新快照设置以修改存储位置政策。但是,修改项目的快照设置只会影响进行该修改后创建的快照的位置。更新项目的快照设置时,不会更改任何现有快照的位置。

如需确保 Google Cloud 使用快照设置定义的存储位置,请不要在快照创建期间手动指定位置。如果您在快照创建期间手动指定位置,则 Google Cloud 将替换快照设置,并在新指定的位置创建快照。但是,快照设置中的存储位置政策将保持不变。

您可以使用快照设置来自定义标准快照和归档快照的默认存储位置。您无法自定义即时快照的默认存储位置。

存储位置选项

在配置项目的快照设置并指定新的默认存储位置时,您可以选择特定区域或使用基于磁盘的位置设置。更具体地说,您可以为存储位置政策选择以下位置选项之一:

  • 最靠近来源磁盘的多区域
  • 与来源磁盘相同的本地区域
  • 您选择的特定区域

Google Cloud 预定义存储位置政策

在您首次更新快照设置之前,Google Cloud 会保留存储位置政策的预定义值。在您通过更新项目的快照设置来配置自己的默认存储位置之前,此预定义的政策会为快照提供默认存储位置。预定义的存储位置政策设置为地理位置最靠近来源磁盘位置的多区域

  • 如果来源磁盘位于多区域中的某一位置,则您的快照设置存储位置政策会设置为该多区域。例如,如果磁盘位于 us-central1 等位置,则默认存储位置为多区域 us
  • 对于多区域以外的位置,默认存储位置是该区域外地理位置最近的多区域。对于 australia-southeast1 等位置,默认位置会变为 asia 多区域。

价格影响

您无需支付任何额外费用即可为项目使用快照设置。但是,使用快照设置指定的位置值会影响其他操作,从而可能影响这些操作费用。

使用快照设置设定项目的默认存储位置

您可以使用 REST 和 gcloud CLI 更新项目的快照设置并设置新的默认存储位置。

如果您未在快照设置中设置存储位置政策,则系统将使用 Google Cloud 预定义存储位置政策创建快照。

gcloud

如需为项目添加快照设置或更新现有快照设置,请使用 gcloud compute snapshot-settings update 命令

  gcloud compute snapshot-settings update \
      --project=PROJECT_ID \
      --storage-location-policy=STORAGE_LOCATION \
      --storage-location-names=REGION_NAME

替换以下内容:

  • PROJECT_ID:项目的 ID。
  • STORAGE_LOCATION:项目的快照存储位置政策。可以是以下值之一:

    • nearest-multi-region:将位置政策指定为最靠近磁盘所在位置的 Cloud Storage 多区域
    • local-region:将位置政策指定为与磁盘所在位置相同的 Cloud Storage 区域
    • specific-locations:将位置政策指定为您选择的自定义 Cloud Storage 区域位置。如果您指定此选项,还必须使用 --storage-location-names 标志指定所需的位置。
  • REGION_NAME(可选):如果您包含值为 specific-locations--storage-location-policy 标志,则必须指定 Cloud Storage 区域。您只能指定一个地区,并且不能是 Cloud Storage 多区域。将此值设置为您要指定为存储位置政策的区域的名称。

使用快照设置设定存储位置政策的示例

请考虑 us-central1 区域中的示例项目 my-project

  • 如需将项目快照设置的存储位置政策配置为最靠近磁盘的 Cloud Storage 多区域,请运行以下命令:
  gcloud compute snapshot-settings update \
      --project=my-project \
      --storage-location-policy=nearest-multi-region
  • 如需将项目快照设置的存储位置政策配置为与磁盘相同的 Cloud Storage 区域,请运行以下命令:
  gcloud compute snapshot-settings update \
      --project=my-project \
      --storage-location-policy=local-region
  • 如需将项目快照设置的存储位置政策配置为您选择的特定位置(如 us-central1),请使用 --storage-location-names 标志并运行以下命令:
  gcloud compute snapshot-settings update \
      --project=my-project \
      --storage-location-policy=specific-locations \
      --storage-location-names=us-central1

REST

如需为项目添加快照设置或更新现有快照设置,请向 snapshotSettings.update 方法发出 PATCH 请求:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

  {
    "storageLocation": {
      "policy": "STORAGE_LOCATION",
      "locations": {
            "REGION_NAME": { "name": "REGION_NAME" }
      }
    }
  }

请替换以下内容:

  • PROJECT_ID:项目的 ID。
  • STORAGE_LOCATION:项目的快照存储位置政策。可以是以下值之一:

    • NEAREST_MULTI_REGION:将位置政策指定为最靠近磁盘所在位置的 Cloud Storage 多区域
    • LOCAL_REGION:将位置政策指定为与磁盘所在位置相同的 Cloud Storage 区域
    • SPECIFIC_LOCATIONS:将位置政策指定为您选择的自定义 Cloud Storage 区域位置。如果您指定此选项,还必须在请求中使用 locations 参数来指定所需的位置。
  • REGION_NAME(可选):如果您包含值为 SPECIFIC_LOCATIONSpolicy 参数,则必须指定 Cloud Storage 区域。您只能指定一个地区,并且不能是 Cloud Storage 多区域。将此值设置为您要指定为存储位置政策的区域的名称。

使用快照设置设定存储位置政策的示例

请考虑 us-central1 区域中的示例项目 my-project

  • 如需将项目快照设置的存储位置政策配置为最靠近磁盘的 Cloud Storage 多区域,请发出以下 PATCH 请求:
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

    {
      "storageLocation": {
        "policy": "NEAREST_MULTI_REGION"
      }
    }
  • 如需将项目快照设置的存储位置政策配置为与磁盘相同的 Cloud Storage 区域,请发出以下 PATCH 请求:
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

    {
      "storageLocation": {
        "policy": "LOCAL_REGION"
      }
    }
  • 如需将项目快照设置的存储位置政策配置为特定位置(如 us-central1),请发出以下 PATCH 请求:
    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

    {
      "storageLocation": {
        "policy": "SPECIFIC_LOCATIONS",
        "locations": {
          "us-central1": { "name": "us-central1"}
        }
      }
    }

查看项目的快照设置定义的默认存储位置

您可以使用 Compute Engine API 和 gcloud CLI 查看项目的快照设置。

gcloud

如需查看项目的快照设置,请使用 gcloud compute snapshot-settings describe 命令

  gcloud compute snapshot-settings describe \
      --project=PROJECT_ID

PROJECT_ID 替换为相应项目的 ID。

REST

如需查看项目的快照设置,请向 snapshotSettings.get 方法发出 GET 请求:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshotSettings

PROJECT_ID 替换为相应项目的 ID。

后续步骤