管理实例复制

本指南介绍了如何配置实例复制,以将源实例与备用副本配对。您可以在以下情况下使用实例复制:

  • 保护实例免受中断影响:维护一个持续更新的跨区域故障切换实例,以实现灾难恢复。
  • 迁移数据:提升备用副本,以尽可能缩短停机时间,将实例永久迁移到新位置。
  • 运行操作测试:暂停复制以临时装载副本,并运行隔离的灾难恢复演练或测试工作负载,而不会影响主实例。

准备工作

创建 Filestore 实例以用作副本的源实例。

启用 API

启用 Filestore API。

启用 API 所需的角色

如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色

启用 API

所需的角色

如需获得配置实例复制和监控副本所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

如果您要创建跨项目副本,则必须在源项目和副本项目中都拥有 Cloud Filestore 编辑者 (roles/file.editor) 角色。此角色包含 file.instances.create 权限,这是在源项目中创建跨项目副本所需的权限。

创建实例副本

您无法使用 Google Cloud 控制台创建跨项目副本。请改用 gcloud CLI 或 REST API。

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Filestore 实例页面。

    转到实例

  2. 点击要复制的实例的实例 ID

  3. 在实例详情页面中,点击复制标签页。

  4. 点击创建副本

  5. 验证源实例详细信息,查看支持的恢复点目标,然后点击下一步

  6. 创建实例。如需了解详情,请参阅创建实例。请考虑以下事项:

    • 指定的容量必须大于或等于源实例容量。
    • 源实例和副本的服务层级Filestore 协议必须相同。
    • 为了获得可靠的灾难恢复解决方案,我们建议您为副本选择其他区域,而不仅仅是其他可用区。
  7. 点击下一步

  8. 查看详细信息,然后点击下一步

  9. 点击创建

  10. 等待操作完成。该过程完成后,副本会显示在复制页面上源实例下方。点击副本的实例 ID 以查看其详细信息。

gcloud

  1. 如需创建副本实例,请运行 filestore instances create 命令。

    gcloud filestore instances create INSTANCE_ID \
      --source-instance=projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/instances/SOURCE_INSTANCE_ID \
      --project=REPLICA_PROJECT_ID \
      --location=LOCATION \
      --network=name="NETWORK" \
      --tier=TIER \
      --file-share=name="FILE_SHARE_NAME",capacity=FILE_SHARE_SIZE \
    

替换以下内容:

  • INSTANCE_ID 替换为您要创建的副本实例的名称。例如 sample-replica
  • SOURCE_PROJECT_ID 替换为源实例所在 Google Cloud 项目的项目 ID。
  • SOURCE_LOCATION 替换为源实例所在的位置。
  • SOURCE_INSTANCE_ID 替换为您要为其创建副本的源实例的名称。例如 sample-instance
  • REPLICA_PROJECT_ID 替换为 Google Cloud 项目(您希望副本实例位于该项目中)的项目 ID。
  • LOCATION 替换为您希望副本实例所在的位置,例如 us-central1-a。如果源位于可用区级服务层级,则必须为副本指定区域和可用区。
  • NETWORK 替换为您要使用的网络的名称,例如 default
  • TIER 替换为您需要的服务层级,例如 ZONAL。层级和容量范围必须与源实例一致。
  • FILE_SHARE_NAME 替换为您为从实例提供的 NFS 文件共享所指定的名称,例如 vol1
  • FILE_SHARE_SIZE 替换为文件共享所需的大小,例如 1.25TiB

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 如需创建实例副本,请使用以下请求:

    curl -s \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Content-Type: application/json" \
      --request POST \
      -d '{"tier": "TIER",
          "networks": { "network": "NETWORK" },
          "file_shares": {"name": "SHARE_NAME","capacity_gb": "CAPACITY"},
          "replication": {"replicas":[{"peer_instance": "projects/SOURCE_PROJECT_ID/locations/ACTIVE_LOCATION/instances/ACTIVE_NAME"}], "role":"standby"},
          "description": "DESCRIPTION" }' \
      "https://file.googleapis.com/v1/projects/REPLICA_PROJECT_ID/locations/REPLICA_LOCATION/instances?instanceId=REPLICA_INSTANCE_NAME"
    

    替换以下内容:

    • TIER 是您要用于副本的服务层级的名称。例如 REGIONAL
    • NETWORK 是您要用于副本的网络名称。例如 default。您必须使用与来源相同的网络。
    • SHARE_NAME 是文件共享的名称。例如 vol1
    • CAPACITY 是您要为副本分配的大小(以 GiB 为单位)。例如 1024。容量必须大于或等于源实例的容量。
    • REPLICA_PROJECT_ID 是您希望副本所在的项目的名称。例如 sample-project
    • SOURCE_PROJECT_ID 是源实例所在项目的名称。
    • ACTIVE_LOCATION 是来源所在的位置。例如 us-east1
    • ACTIVE_NAME 是要复制的实例的名称。例如 sample-instance
    • DESCRIPTION 是您要创建的副本实例的说明。例如 A sample replica
    • REPLICA_LOCATION 是您希望副本所在的地理位置。例如 us-central1
    • REPLICA_INSTANCE_NAME 是要创建的副本实例的名称。例如 sample-replica

查看复制状态

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Filestore 复制页面。

前往“复制”

  1. 点击副本的实例 ID 以查看其详细信息。

gcloud

  1. 如需查看有关特定实例的信息,请运行 instances describe 命令:

    gcloud filestore instances describe <var>INSTANCE_ID</var> \
       --project=<var>PROJECT_ID</var> \
      --location=<var>LOCATION</var> \
    

替换以下内容:

  • INSTANCE_ID 替换为您要查看的 Filestore 实例的实例 ID,例如 genomics-instance
  • PROJECT_ID 替换为包含 Filestore 实例的 Google Cloud 项目的项目 ID。
  • LOCATION 替换为实例所在的位置,例如 us-east1-b

    instances describe 命令的响应类似于以下任一示例。

    此响应示例显示了已启用实例复制的源实例。请注意,指定的角色为 ACTIVE

    createTime: '2024-06-17T22:17:26.475900265Z'
    fileShares:
    - capacityGb: '1024'
      name: vol1
    name: projects/genomics-project/locations/us-east1-b/instances/genomics-instance-source
    networks:
    - connectMode: DIRECT_PEERING
      ipAddresses:
      - 172.27.220.2
      modes:
      - MODE_IPV4
      network: default
      reservedIpRange: 172.27.220.0/26
    replication:
      replicas:
      - peerInstance: projects/genomics-project/locations/us-central1-a/instances/genomics-instance-replica
        state: READY
      role: ACTIVE
    state: READY
    tier: ZONAL
    

    此响应示例显示了一个已升级为常规实例的副本实例。请注意,由于复制功能尚未启用,因此未指定复制:

    createTime: '2024-06-20T17:11:56.048062134Z'
    fileShares:
    - capacityGb: '1024'
      name: vol1
    name: projects/genomics-project/locations/us-west2-a/instances/genomics-instance-replica
    networks:
    - connectMode: DIRECT_PEERING
      ipAddresses:
      - 10.155.90.194
      network: default
      reservedIpRange: 10.155.90.192/26
    satisfiesPzi: true
    state: READY
    tier: ZONAL
    

    此响应示例显示了与有效实例配对的副本。复制角色为 STANDBY

    createTime: '2024-06-21T04:15:21.721579074Z'
    fileShares:
    - capacityGb: '1280'
      name: vol1
    name: projects/genomics-project/locations/us-west1-a/instances/genomics-replica
    networks:
    - connectMode: DIRECT_PEERING
      ipAddresses:
      - 10.153.44.194
      network: default
      reservedIpRange: 10.153.44.192/26
    replication:
      replicas:
      - peerInstance: projects/genomics-project/locations/us-west2-a/instances/genomics-instance
        state: READY
      role: STANDBY
    satisfiesPzi: true
    state: READY
    tier: ZONAL
    

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 如需查看副本状态,请使用以下请求:

        curl -s \
        --header "Authorization: Bearer $(gcloud auth print-access-token)" \
        --header "Content-Type: application/json" \
        --request GET \
        "https://file.googleapis.com/v1/projects/<var>PROJECT</var>/locations/<var>LOCATION</var>/instances/<var>INSTANCE_NAME</var>"
    

    替换以下内容:

    • PROJECT 是您的实例所在项目的名称。例如 sample-project
    • LOCATION 是实例所在的地区。例如 us-west1-a
    • INSTANCE_NAME 是您要查看的实例的名称。例如 sample-instance

列出项目中的所有副本

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Filestore 复制页面。

    前往“复制”

该表列出了源实例及其副本。点击副本的实例 ID 以查看其详细信息。

gcloud

  1. 如需查看项目中的所有实例,请运行 instances list 命令:

    gcloud filestore instances list
      --project=PROJECT_ID \
    

    PROJECT_ID 替换为您要查看的项目的项目 ID。

    响应会返回实例和副本的列表,如下所示:

    INSTANCE_NAME                       LOCATION     TIER      CAPACITY_GB  FILE_SHARE_NAME  IP_ADDRESS     STATE  CREATE_TIME
    genomics-source-1                   us-east1-b   ZONAL     1024         vol1             172.27.220.2   READY  2024-06-17T22:17:26
    genomics-source-1-replica           us-west1-a   ZONAL     1024         vol1             10.142.57.194  READY  2024-06-17T23:47:19
    

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 如需列出特定项目中的副本,请使用以下请求:

    curl -s \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Content-Type: application/json" \
      --request GET \
      "https://file.googleapis.com/v1/projects/PROJECT/locations/LOCATION/instances"

    替换以下内容:

    • PROJECT 是您的实例所在项目的名称。例如 sample-project
    • LOCATION 是您要搜索的位置。 如需搜索项目内任何位置的所有实例,请使用 list 端点。

暂停复制

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Filestore 实例页面。

    转到实例

  2. 点击要暂停的副本的实例 ID

  3. 说明部分,点击复制标签页。

  4. 有效实例详情部分中,点击暂停复制

  5. 请先阅读提醒,然后点击暂停复制进行确认。

复制状态会更改为 Pausing。操作完成后,复制状态会变为已暂停

gcloud

如需暂停副本,请运行 gcloud filestore instances pause-replica 命令。

  gcloud filestore instances pause-replica INSTANCE_ID \
      --project=PROJECT_ID \
      --location=LOCATION \

替换以下内容:

  • INSTANCE_ID 替换为您要暂停的 Filestore 实例的 ID,例如 my-replica
  • PROJECT_ID 替换为包含 Filestore 实例的 Google Cloud 项目的项目 ID。
  • LOCATION 替换为副本所在的位置,例如 us-central1

成功完成后,系统会返回以下响应或类似响应:

createTime: '2025-12-22T14:03:33.727531128Z'
customPerformanceSupported: true
description: Replica of active, us-east1-b
fileShares:
- capacityGb: '1024'
  name: share
name: projects/genomics-project/locations/us-west2-a/instances/my-replica
networks:
- connectMode: DIRECT_PEERING
  ipAddresses:
  - 10.229.150.130
  modes:
  - MODE_IPV4
  network: default
  reservedIpRange: 10.229.150.128/26
performanceLimits:
  maxIops: '12000'
  maxReadIops: '12000'
  maxReadThroughputBps: '125829120'
  maxWriteIops: '4000'
  maxWriteThroughputBps: '104857600'
protocol: NFS_V3
replication:
  replicas:
  - peerInstance: projects/genomics-project/locations/us-east1-b/instances/my-source
    state: PAUSED
    stateUpdateTime: '2025-12-22T14:24:27.558413891Z'
  role: STANDBY
state: READY
tier: REGIONAL

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 如需暂停副本,请使用以下请求:

    curl -s \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Content-Type: application/json" \
      --request POST \
      -d '{}' \
      "https://file.googleapis.com/v1/projects/PROJECT/locations/LOCATION/instances/REPLICA_NAME:pauseReplica"

    替换以下内容:

    • PROJECT 是副本所在项目的名称,例如 sample-project
    • LOCATION 是副本所在的位置。例如 us-west1-a
    • REPLICA_NAME 是要暂停的实例的名称。例如 sample-replica

继续复制

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Filestore 实例页面。

    转到实例

  2. 点击要使用的副本的实例 ID。

  3. 说明部分,点击复制标签页。

  4. 有效实例详情部分中,点击恢复复制

  5. 请先阅读警告,然后在提供的字段中输入 resume 以进行确认。

复制状态会更改为正在恢复。操作完成后,复制状态会变为就绪

gcloud

您可以通过运行 gcloud filestore instances resume-replica 命令来恢复副本实例。

  gcloud filestore instances resume-replica INSTANCE_ID \
      --project=PROJECT_ID \
      --location=LOCATION \

替换以下内容:

  • INSTANCE_ID 替换为您要恢复的 Filestore 副本实例的 ID,例如 my-replica
  • PROJECT_ID 替换为包含 Filestore 副本实例的 Google Cloud 项目的项目 ID。
  • LOCATION 替换为副本所在的位置,例如 us-central1

成功完成后,系统会返回以下响应或类似响应:

  createTime: '2025-12-22T14:03:33.727531128Z'
  customPerformanceSupported: true
  description: Replica of active, us-central1
  fileShares:
  - capacityGb: '1024'
    name: share
  name: projects/genomics-project/locations/us-central1/instances/my-replica
  networks:
  - connectMode: DIRECT_PEERING
    ipAddresses:
    - 10.229.150.130
    modes:
    - MODE_IPV4
    network: default
    reservedIpRange: 10.229.150.128/26
  performanceLimits:
    maxIops: '12000'
    maxReadIops: '12000'
    maxReadThroughputBps: '125829120'
    maxWriteIops: '4000'
    maxWriteThroughputBps: '104857600'
  protocol: NFS_V3
  replication:
    replicas:
    - peerInstance: projects/genomics-project/locations/us-central1/instances/my-source
      state: READY
      stateUpdateTime: '2025-12-22T14:24:27.558413891Z'
    role: STANDBY
  state: READY
  tier: REGIONAL

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 如需恢复复制,请使用以下请求:
curl -s \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Content-Type: application/json" \
      --request POST \
      -d '{}' \
      "https://file.googleapis.com/v1/projects/PROJECT/locations/LOCATION/instances/REPLICA_NAME:resumeReplica"

替换以下内容:

  • PROJECT 是副本所在项目的名称。例如 sample-project
  • LOCATION 是副本所在的地理位置。例如 us-west1-a
  • REPLICA_NAME 是要恢复的实例的名称。例如 sample-replica

中断复制并提升副本

中断活跃实例和备用实例之间的复制会将副本提升为常规实例。此操作不可撤销。

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 Filestore 实例页面。

    转到实例

  2. 点击要使用的副本的实例 ID。

  3. 点击中断复制

  4. 输入副本的实例 ID,然后点击中断复制

  5. 等待操作完成。

gcloud

如需提升副本实例,请运行 gcloud filestore instances promote-replica 命令。

  gcloud filestore instances promote-replica INSTANCE_ID 
--project=PROJECT_ID
--location=LOCATION

替换以下内容:

  • INSTANCE_ID 替换为您要升级的 Filestore 实例的 ID,例如 my-replica
  • PROJECT_ID 替换为包含 Filestore 实例的 Google Cloud 项目的项目 ID。
  • LOCATION 替换为副本所在的位置,例如 us-central1

成功完成后,系统会返回以下响应或类似响应:

capacityGb: '1024'
capacityStepSizeGb: '256'
createTime: '2024-06-20T17:11:56.048062134Z'
fileShares:
- capacityGb: '1024'
  name: vol1
maxCapacityGb: '9984'
maxShareCount: '1'
name: projects/genomics-project/locations/us-west2-a/instances/my-replica
networks:
- connectMode: DIRECT_PEERING
  ipAddresses:
  - 10.155.90.194
  network: default
  reservedIpRange: 10.155.90.192/26
protocol: NFS_V3
replication:
  replicas:
  - lastActiveSyncTime: '2024-06-21T00:13:23Z'
    peerInstance: projects/genomics-project/locations/us-east1-b/instances/my-source
  role: STANDBY
satisfiesPzi: true
state: PROMOTING
tier: ZONAL

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 如需提升副本,请使用以下请求:

    curl -s \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Content-Type: application/json" \
      --request POST \
      -d '{}' \
      "https://file.googleapis.com/v1/projects/PROJECT/locations/LOCATION/instances/REPLICA_NAME:promoteReplica"

    替换以下内容:

    • PROJECT 是副本所在项目的名称。例如 sample-project
    • LOCATION 是副本所在的位置。例如 us-west1-a
    • REPLICA_NAME 是要提升的实例的名称。例如 sample-replica

删除副本实例

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往“Filestore 实例”页面。

    转到实例

    副本列在关联的源实例下。如果您没有看到副本,请参阅此任务的 gcloud 命令。

  2. 点击要删除的实例的 ID。

  3. 点击删除

gcloud

  1. 如需查看所有实例(包括副本)的列表,请运行 instances list 命令:

    gcloud filestore instances list
      --project=PROJECT_ID \
    

    PROJECT_ID 替换为您要查看的项目的项目 ID。

  2. 复制要删除的实例的详细信息。

  3. 如需删除副本实例,请运行 filestore instances delete 命令。

    gcloud filestore instances delete INSTANCE_ID \
      --location=LOCATION \
    

替换以下内容:

  • INSTANCE_ID 替换为您要删除的 Filestore 实例的 ID,例如 my-replica
  • LOCATION 替换为副本所在的位置,例如 us-central1-a

REST API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 如需删除副本实例,请使用以下请求:

    curl -s \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Content-Type: application/json" \
      --request DELETE \
      "https://file.googleapis.com/v1/projects/PROJECT/locations/LOCATION/instances/INSTANCE_NAME"

    替换以下内容:

    • PROJECT 是您的实例所在项目的名称。例如 sample-project
    • LOCATION 是实例所在的地区。例如 us-west1-a
    • INSTANCE_NAME 是要删除的实例的名称。例如 sample-instance

监控实例复制

Google Cloud 控制台

如需在 Cloud Monitoring 信息中心内查看 Filestore 实例复制指标,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Metrics Explorer 页面:

    进入 Metrics Explorer

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击选择指标可展开部分。

  3. 按资源或指标名称过滤字段中,输入 filestore,然后选择 Filestore 实例可展开部分。

  4. 选择可展开的实例部分,然后点击 RPO

  5. 系统会显示 RPO 指标 times_since_last_replication。此指标会在复制数据的初始同步完成后几分钟内提供。

后续步骤