搜索

4.11. OADP 1.3 Data Mover

download PDF

4.11.1. 关于 OADP 1.3 Data Mover

OADP 1.3 包含一个内置的 Data Mover,您可以使用它将 Container Storage Interface (CSI) 卷快照移到远程对象存储。如果发生故障、意外删除或损坏,内置的 Data Mover 可让您从远程对象存储中恢复有状态的应用程序。它使用 Kopia 作为上传程序机制来读取快照数据并写入统一存储库。

OADP 支持以下 CSI 快照:

  • Red Hat OpenShift Data Foundation
  • 使用支持 Kubernetes 卷快照 API 的 Container Storage Interface(CSI)驱动程序的任何其他云存储供应商
重要

OADP 内置 Data Mover(在 OADP 1.3 中作为技术预览引进)现在完全支持容器化和虚拟机工作负载。

4.11.1.1. 启用内置 Data Mover

要启用内置 Data Mover,您必须在 DataProtectionApplication 自定义资源 (CR) 中包含 CSI 插件并启用节点代理。节点代理是一个 Kubernetes daemonset,用于托管数据移动模块。这包括 Data Mover 控制器、上传程序和存储库。

DataProtectionApplication 清单示例

apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
  name: dpa-sample
spec:
  configuration:
    nodeAgent:
      enable: true 1
      uploaderType: kopia 2
    velero:
      defaultPlugins:
      - openshift
      - aws
      - csi 3
      defaultSnapshotMoveData: true
      defaultVolumesToFSBackup: 4
      featureFlags:
      - EnableCSI
# ...

1
启用节点代理的标记。
2
上传程序的类型。可能的值为 restickopia。内置 Data Mover 使用 Kopia 作为默认的上传程序机制,无论 uploaderType 字段的值是什么。
3
CSI 插件包含在默认插件列表中。
4
在 OADP 1.3.1 及更高版本中,如果您只对选择不使用 fs-backup 的卷使用 Data Mover,则设置为 true。如果卷默认使用 Data Mover,则设置为 false

4.11.1.2. 内置数据管理控制器和自定义资源定义 (CRD)

内置的 Data Mover 功能引入了三个新的 API 对象,被定义为 CRD,用于管理备份和恢复:

  • DataDownload: 代表卷快照的数据下载。CSI 插件为每个要恢复的卷创建一个 DataDownload 对象。DataDownload CR 包含有关目标卷的信息、指定的 Data Mover、当前数据下载的进度、指定的备份存储库以及进程完成后当前数据下载的结果。
  • DataUpload :代表卷快照的数据上传。CSI 插件为每个 CSI 快照创建一个 DataUpload 对象。DataUpload CR 包含有关指定快照的信息、指定的 Data Mover、指定的备份存储库、当前数据上传的进度,以及进程完成后当前数据上传的结果。
  • BackupRepository: 代表和管理备份存储库的生命周期。当请求第一个 CSI 快照备份或恢复命名空间时,OADP 会为每个命名空间创建一个备份存储库。

4.11.2. 备份和恢复 CSI 快照数据移动

您可以使用 OADP 1.3 Data Mover 备份和恢复持久性卷。

4.11.2.1. 使用 CSI 快照备份持久性卷

您可以使用 OADP Data Mover 将 Container Storage Interface (CSI) 卷快照备份到远程对象存储。

先决条件

  • 您可以使用 cluster-admin 角色访问集群。
  • 已安装 OADP Operator。
  • 您已在 DataProtectionApplication 自定义资源(CR) 中包含了 CSI 插件并启用了节点代理。
  • 您有一个应用程序,其持久性卷在单独的命名空间中运行。
  • 您已将 metadata.labels.velero.io/csi-volumesnapshot-class: "true" 键值对添加到 VolumeSnapshotClass CR。

流程

  1. Backup 对象创建一个 YAML 文件,如下例所示:

    Backup CR 示例

    kind: Backup
    apiVersion: velero.io/v1
    metadata:
      name: backup
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: 1
      includedNamespaces:
      - mysql-persistent
      itemOperationTimeout: 4h0m0s
      snapshotMoveData: true 2
      storageLocation: default
      ttl: 720h0m0s
      volumeSnapshotLocations:
      - dpa-sample-1
    # ...

    1
    如果您只对选择不使用 fs-backup 的卷使用 Data Mover,则设置为 true。如果卷默认使用 Data Mover,则设置为 false
    2
    设置为 true 以启用将 CSI 快照移到远程对象存储。
  2. 应用清单:

    $ oc create -f backup.yaml

    在快照创建完成后会创建一个 DataUpload CR。

验证

  • 通过监控 DataUpload CR 的 status.phase 字段来验证快照数据是否已成功传送到远程对象存储。可能的值为 In ProgressCompletedFailedCanceled。对象存储在 DataProtectionApplication CR 的 backupLocations 小节中配置。

    • 运行以下命令获取所有 DataUpload 对象的列表:

      $ oc get datauploads -A

      输出示例

      NAMESPACE       NAME                  STATUS      STARTED   BYTES DONE   TOTAL BYTES   STORAGE LOCATION   AGE     NODE
      openshift-adp   backup-test-1-sw76b   Completed   9m47s     108104082    108104082     dpa-sample-1       9m47s   ip-10-0-150-57.us-west-2.compute.internal
      openshift-adp   mongo-block-7dtpf     Completed   14m       1073741824   1073741824    dpa-sample-1       14m     ip-10-0-150-57.us-west-2.compute.internal

    • 运行以下命令,检查特定 DataUpload 对象的 status.phase 字段的值:

      $ oc get datauploads <dataupload_name> -o yaml

      输出示例

      apiVersion: velero.io/v2alpha1
      kind: DataUpload
      metadata:
        name: backup-test-1-sw76b
        namespace: openshift-adp
      spec:
        backupStorageLocation: dpa-sample-1
        csiSnapshot:
          snapshotClass: ""
          storageClass: gp3-csi
          volumeSnapshot: velero-mysql-fq8sl
        operationTimeout: 10m0s
        snapshotType: CSI
        sourceNamespace: mysql-persistent
        sourcePVC: mysql
      status:
        completionTimestamp: "2023-11-02T16:57:02Z"
        node: ip-10-0-150-57.us-west-2.compute.internal
        path: /host_pods/15116bac-cc01-4d9b-8ee7-609c3bef6bde/volumes/kubernetes.io~csi/pvc-eead8167-556b-461a-b3ec-441749e291c4/mount
        phase: Completed 1
        progress:
          bytesDone: 108104082
          totalBytes: 108104082
        snapshotID: 8da1c5febf25225f4577ada2aeb9f899
        startTimestamp: "2023-11-02T16:56:22Z"

      1
      代表快照数据成功传输到远程对象存储。

4.11.2.2. 恢复 CSI 卷快照

您可以通过创建一个 Restore CR 来恢复卷快照。

注意

您不能使用 OAPD 1.3 内置数据 Mover 从 OADP 1.2 恢复 Volsync 备份。在升级到 OADP 1.3 之前,建议使用 Restic 对所有工作负载进行文件系统备份。

先决条件

  • 您可以使用 cluster-admin 角色访问集群。
  • 您有一个 OADP Backup CR,可从中恢复数据。

流程

  1. Restore CR 创建 YAML 文件,如下例所示:

    Restore CR 示例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: restore
      namespace: openshift-adp
    spec:
      backupName: <backup>
    # ...

  2. 应用清单:

    $ oc create -f restore.yaml

    恢复启动时会创建一个 DataDownload CR。

验证

  • 您可以通过检查 DataDownload CR 的 status.phase 字段来监控恢复过程的状态。可能的值为 In ProgressCompletedFailedCanceled

    • 要获取所有 DataDownload 对象的列表,请运行以下命令:

      $ oc get datadownloads -A

      输出示例

      NAMESPACE       NAME                   STATUS      STARTED   BYTES DONE   TOTAL BYTES   STORAGE LOCATION   AGE     NODE
      openshift-adp   restore-test-1-sk7lg   Completed   7m11s     108104082    108104082     dpa-sample-1       7m11s   ip-10-0-150-57.us-west-2.compute.internal

    • 输入以下命令检查特定 DataDownload 对象的 status.phase 字段的值:

      $ oc get datadownloads <datadownload_name> -o yaml

      输出示例

      apiVersion: velero.io/v2alpha1
      kind: DataDownload
      metadata:
        name: restore-test-1-sk7lg
        namespace: openshift-adp
      spec:
        backupStorageLocation: dpa-sample-1
        operationTimeout: 10m0s
        snapshotID: 8da1c5febf25225f4577ada2aeb9f899
        sourceNamespace: mysql-persistent
        targetVolume:
          namespace: mysql-persistent
          pv: ""
          pvc: mysql
      status:
        completionTimestamp: "2023-11-02T17:01:24Z"
        node: ip-10-0-150-57.us-west-2.compute.internal
        phase: Completed 1
        progress:
          bytesDone: 108104082
          totalBytes: 108104082
        startTimestamp: "2023-11-02T17:00:52Z"

      1
      表示 CSI 快照数据已被成功恢复。

4.11.2.3. 删除 OADP 1.3 的策略

删除策略决定了从系统中删除数据的规则,指定根据保留周期、数据敏感度和合规要求等因素如何进行删除。它有效地管理数据删除,同时满足法规并保留宝贵的信息。

4.11.2.3.1. 删除 OADP 1.3 的策略指南

查看 OADP 1.3 的以下删除策略指南:

  • 在 OADP 1.3.x 中,当使用任何类型的备份和恢复方法时,您可以在 VolumeSnapshotClass 自定义资源(CR)中将 deletionPolicy 字段设置为 RetainDelete
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.