定义卷数据恢复行为


本页面简要介绍了卷数据恢复政策。另外还介绍了如何配置卷数据恢复政策绑定和覆盖。

概览

卷数据恢复政策定义了使用备份恢复卷数据的方式。您可以在恢复方案级别对其进行配置。它具有以下政策选项:

  • 预配新卷并使用备份恢复卷数据:新的永久性卷 (PV) 需使用备份中的相应卷备份数据进行恢复。
  • 重复使用包含您的数据的现有卷:PV 使用备份中原始 PV 的卷句柄进行预先预配。
  • 不恢复卷数据:PV 不会恢复。Backup for GKE 只会恢复所选的永久性卷声明 (PVC),并要求相应的存储驱动程序动态预配空白 PV 或将其绑定到带外创建的预配 PV。

如需了解如何创建具有卷数据恢复政策的恢复方案的说明,请参阅创建恢复方案

除了默认卷数据恢复政策之外,您可能因为一些原因还需要定义自定义卷恢复行为,具体如下:

  • 需要在包含不同卷类型(这些卷具有不同级别的数据备份支持)的存储环境中恢复工作负载。例如,您的工作负载可能包含 NFS 卷和 Persistent Disk 卷。
  • 需要对特定卷应用不同的恢复过程。

Backup for GKE 提供了两种机制来定义自定义卷恢复行为:

  • 针对具体卷类型的绑定,您可以将其定义为恢复方案的一部分。
  • 针对具体卷的覆盖,您可以在恢复过程中对此进行定义。

卷数据恢复政策选择过程

在恢复过程中,Backup for GKE 会使用以下序列为每个 PersistentVolumeClaim (PVC) 选择适当的卷恢复政策:

  1. 在应用任何转换规则之前,要恢复的每个 PVC 都会经历选择过程,并应用第一个范围内政策。
  2. 如果 PVC 未绑定到备份的 PersistentVolume (PV),则系统只会恢复 PVC 配置。这不包括任何数据。
  3. 如果卷数据恢复政策覆盖中包含 PVC,则覆盖政策优先。
  4. 如果卷数据恢复政策绑定中包含 PVC 的卷类型,则系统会应用绑定政策。
  5. 如果前面的条件均不匹配,则 PVC 会使用默认的卷数据恢复政策。

卷数据恢复政策绑定

通过卷数据恢复政策绑定,您可以使用特定卷类型的政策恢复卷数据。此政策优先于默认卷恢复政策。只有 Compute Engine 永久性磁盘支持卷数据恢复政策绑定。

gcloud

向现有恢复方案添加卷数据恢复政策绑定:

  gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
      --project=PROJECT_ID \
      --location=LOCATION \
      --volume-data-restore-policy-bindings=[VOLUME_TYPE=POLICY,...]

请替换以下内容:

  • RESTORE_PLAN:您要更新的恢复方案的名称。
  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • LOCATION:资源的计算区域,例如 us-central1
  • VOLUME_TYPE=POLICY:将受支持的卷类型绑定到卷数据恢复政策。例如,gce-persistent-disk=restore-volume-data-from-backup 会创建一个绑定,以通过使用备份恢复卷数据政策来恢复 Persistent Disk 卷。

控制台

使用以下说明在 Google Cloud 控制台中向现有恢复方案添加绑定:

  1. 在 Google Cloud 控制台中,转到 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 在导航菜单中,点击 Backup for GKE

  3. 点击恢复方案标签页。

  4. 点击恢复方案名称。

  5. 点击详情标签页。

  6. 恢复配置部分中,点击范围旁边的修改

  7. 为特定卷类型定义政策覆盖机制部分中,点击 GCE Persistent Disk 复选框。

  8. 卷数据恢复政策列表中,选择要为 Compute Engine Persistent Disk 使用的恢复政策类型。

  9. 点击保存更改

卷数据恢复政策覆盖

卷数据恢复政策覆盖定义了如何恢复特定卷。卷按其 PVC 命名空间和 PVC 名称进行选择。您可以在单次覆盖中包含多个卷。

与绑定不同,覆盖不会强制执行唯一范围。这意味着,在卷恢复期间,系统会使用与卷命名空间和名称匹配的最新覆盖中的政策。

替换示例

以下示例会覆盖 ns-1/test-pvcns-1/test-pvc-2,以使用重复使用包含您的数据的现有卷政策,并覆盖 ns-2/test-pvc-3,以使用不恢复卷数据政策。

    volumeDataRestorePolicyOverrides:
    - policy: REUSE_VOLUME_HANDLE_FROM_BACKUP
      selectedPvcs:
        namespacedNames:
        - namespace: ns-1
            name: test-pvc
        - namespace: ns-1
            name: test-pvc-2
    - policy: NO_VOLUME_DATA_RESTORATION
      selectedPvcs:
        namespacedNames:
        - namespace: ns-2
            name: test-pvc-3

gcloud

创建具有覆盖机制的恢复:

gcloud beta container backup-restore restores create RESTORE \
    --project=PROJECT_ID \
    --location=LOCATION \
    --restore-plan=RESTORE_PLAN \
    --backup=BACKUP \
    --volume-data-restore-policy-overrides-file=OVERRIDES_FILE

请替换以下内容:

  • RESTORE:您要创建的恢复的名称。
  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • LOCATION:父级恢复方案的计算区域
  • RESTORE_PLAN:派生此恢复的父级恢复方案的名称。
  • BACKUP:要恢复的备份。
  • OVERRIDES_FILE:用于定义架构中的覆盖的 YAML 文件的路径(如示例中所示)。

控制台

如需创建卷数据恢复政策覆盖,您需要提供 PVC 名称、PVC 命名空间和恢复政策。

请按照以下说明在 Google Cloud 控制台中创建具有覆盖机制的恢复:

  1. 在 Google Cloud 控制台中,转到 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 在导航菜单中,点击 Backup for GKE

  3. 点击备份标签页。

  4. 在备份列表中,找到要恢复的备份,然后点击设置恢复操作

  5. 从适用于此备份的方案列表中选择一个恢复方案。

  6. 为恢复操作命名部分,为恢复操作输入名称和(可选)说明。

  7. 覆盖卷数据恢复政策部分,点击添加政策,然后针对每次覆盖完成以下操作:

    1. PVC 名称中,输入 PVC 的名称。
    2. 命名空间中,输入 PVC 的命名空间。
    3. 卷恢复政策列表中,选择如何恢复该 PVC 的卷数据。
  8. 点击恢复

后续步骤