×

以下是使用 OADP 和 ODF 备份应用程序的用例。

使用 OADP 和 ODF 备份应用程序

在此用例中,您使用 OADP 备份应用程序并将备份存储在 Red Hat OpenShift 数据基金会 (ODF) 提供的对象存储中。

  • 您创建对象存储桶声明 (OBC) 以配置备份存储位置。您使用 ODF 配置与 Amazon S3 兼容的对象存储桶。ODF 提供多云对象网关 (NooBaa MCG) 和 Ceph 对象网关(也称为 RADOS 网关 (RGW))对象存储服务。在此用例中,您使用 NooBaa MCG 作为备份存储位置。

  • 您使用 `aws` 提供程序插件将 NooBaa MCG 服务与 OADP 配合使用。

  • 您使用备份存储位置 (BSL) 配置数据保护应用程序 (DPA)。

  • 您创建一个备份自定义资源 (CR) 并指定要备份的应用程序命名空间。

  • 您创建并验证备份。

先决条件
  • 您已安装 OADP 运算符。

  • 您已安装 ODF 运算符。

  • 您有一个在单独命名空间中运行数据库的应用程序。

步骤
  1. 创建 OBC 清单文件以请求 NooBaa MCG 存储桶,如下例所示

    OBC 示例
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: test-obc (1)
      namespace: openshift-adp
    spec:
      storageClassName: openshift-storage.noobaa.io
      generateBucketName: test-backup-bucket (2)
    1 对象存储桶声明的名称。
    2 存储桶的名称。
  2. 运行以下命令创建 OBC

    $ oc create -f <obc_file_name> (1)
    1 指定对象存储桶声明清单的文件名。
  3. 创建 OBC 时,ODF 会创建一个与对象存储桶声明同名的 `secret` 和 `config map`。`secret` 包含存储桶凭据,`config map` 包含访问存储桶的信息。要从生成的 config map 获取存储桶名称和存储桶主机,请运行以下命令

    $ oc extract --to=- cm/test-obc (1)
    1 test-obc 是 OBC 的名称。
    示例输出
    # BUCKET_NAME
    backup-c20...41fd
    # BUCKET_PORT
    443
    # BUCKET_REGION
    
    # BUCKET_SUBREGION
    
    # BUCKET_HOST
    s3.openshift-storage.svc
  4. 要从生成的 `secret` 获取存储桶凭据,请运行以下命令

    $ oc extract --to=- secret/test-obc
    示例输出
    # AWS_ACCESS_KEY_ID
    ebYR....xLNMc
    # AWS_SECRET_ACCESS_KEY
    YXf...+NaCkdyC3QPym
  5. 通过运行以下命令从 `openshift-storage` 命名空间中的 s3 路由获取 S3 端点的公共 URL

    $ oc get route s3 -n openshift-storage
  6. 使用对象存储桶凭据创建一个 `cloud-credentials` 文件,如下面的命令所示

    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
  7. 使用 `cloud-credentials` 文件内容创建 `cloud-credentials` 密钥,如下面的命令所示

    $ oc create secret generic \
      cloud-credentials \
      -n openshift-adp \
      --from-file cloud=cloud-credentials
  8. 配置数据保护应用程序 (DPA),如下例所示

    DPA 示例
    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: oadp-backup
      namespace: openshift-adp
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
            - aws
            - openshift
            - csi
          defaultSnapshotMoveData: true (1)
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: noobaa
              s3Url: https://s3.openshift-storage.svc (2)
              s3ForcePathStyle: "true"
              insecureSkipTLSVerify: "true"
            provider: aws
            default: true
            credential:
              key: cloud
              name:  cloud-credentials
            objectStorage:
              bucket: <bucket_name> (3)
              prefix: oadp
    1 设置为 true 以使用 OADP 数据移动器来启用将容器存储接口 (CSI) 快照移动到远程对象存储。
    2 这是 ODF 存储的 S3 URL。
    3 指定存储桶名称。
  9. 运行以下命令创建 DPA

    $ oc apply -f <dpa_filename>
  10. 通过运行以下命令验证 DPA 是否已成功创建。在示例输出中,您可以看到 `status` 对象的 `type` 字段设置为 `Reconciled`。这意味着 DPA 已成功创建。

    $ oc get dpa -o yaml
    示例输出
    apiVersion: v1
    items:
    - apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        namespace: openshift-adp
        #...#
      spec:
        backupLocations:
        - velero:
            config:
              #...#
      status:
        conditions:
        - lastTransitionTime: "20....9:54:02Z"
          message: Reconcile complete
          reason: Complete
          status: "True"
          type: Reconciled
    kind: List
    metadata:
      resourceVersion: ""
  11. 通过运行以下命令验证备份存储位置 (BSL) 是否可用

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    示例输出
    NAME           PHASE       LAST VALIDATED   AGE   DEFAULT
    dpa-sample-1   Available   3s               15s   true
  12. 配置备份 CR,如下例所示

    备份 CR 示例
    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: test-backup
      namespace: openshift-adp
    spec:
      includedNamespaces:
      - <application_namespace> (1)
    1 指定要备份的应用程序的命名空间。
  13. 运行以下命令创建备份 CR

    $ oc apply -f <backup_cr_filename>
验证
  • 通过运行以下命令验证备份对象是否处于 `Completed` 阶段。有关更多详细信息,请参阅示例输出。

    $ oc describe backup test-backup -n openshift-adp
    示例输出
    Name:         test-backup
    Namespace:    openshift-adp
    # ....#
    Status:
      Backup Item Operations Attempted:  1
      Backup Item Operations Completed:  1
      Completion Timestamp:              2024-09-25T10:17:01Z
      Expiration:                        2024-10-25T10:16:31Z
      Format Version:                    1.1.0
      Hook Status:
      Phase:  Completed
      Progress:
        Items Backed Up:  34
        Total Items:      34
      Start Timestamp:    2024-09-25T10:16:31Z
      Version:            1
    Events:               <none>