创建 Cloud Pak for Data 4.8.0的脱机备份-4.8.4

重要信息: IBM Cloud Pak® for Data 4.8 版本将于 2025 年 7 月 31 日结束支持 (EOS)。 欲了解更多信息,请参阅 IBM Cloud Pak for Data 版本 4.X 的停止服务公告

IBM Cloud Pak for Data 4.8 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 有关更多信息,请参阅IBM Cloud Pak for Data 版本 4.8 升级到 IBM Software Hub 版本 5.1

您可以使用 Cloud Pak for Data OpenShift® APIs for Data Protection (OADP) 备份和复原实用程序来创建 Cloud Pak for Data 4.8.0-4.8.4 实例的脱机备份。

开始之前

要创建 Restic 备份,如果 Cloud Pak for Data 安装在 NFS上,那么必须使用 no_root_squash配置 NFS 存储器。

关于本任务

此任务所需的许可权
如果要以 Kubernetes 方式运行实用程序,请以具有集群管理员权限的用户身份登录。

如果在 REST 模式下运行实用程序,请确保 REST 客户端已配置 ,以便 Cloud Pak for Data 管理员可以运行备份和检查点命令。

备份在 Cloud Pak for Data 实例 (租户) 级别执行。

运行备份命令时,某些 pod 仍处于 Running 状态。 这些正在运行的 pod 不会影响备份过程,您无需手动将其关闭。

4.8.0 如果安装了 Watson Machine Learning Accelerator ,那么每次创建备份时都必须排除此服务。 有关详细信息,请参阅无法备份 Watson Machine Learning Accelerator

注: 用于存储备份的存储器提供者可能会限制每个卷可获取的快照数。 有关更多信息,请参阅存储器提供者文档。

有关 OADP 备份和复原实用程序的更多信息 (包括可运行的命令列表) ,请参阅 cpd-cli oadp 参考文档

最佳实践: 如果您设置了环境变量,那么可以在此任务中以完全相同的方式运行命令。 有关指示信息,请参阅 设置安装环境变量

在运行此任务中的命令之前,请确保确定环境变量的来源。

过程

  1. 如果在 Kubernetes 模式下运行备份和还原实用程序,请以群集管理员身份登录 Red Hat® OpenShift Container Platform
    ${OC_LOGIN}
    请记住: OC_LOGINoc login 命令的别名。
  2. 确保备份中包含预期的 "EDB Postgres复制 PVC:
    oc label pvc,pods -l k8s.enterprisedb.io/cluster,velero.io/exclude-from-backup=true velero.io/exclude-from-backup- -n ${PROJECT_CPD_INST_OPERANDS}
  3. 检查每个 EDB Postgres 集群的主实例是否与其副本同步。
    1. 运行以下命令:
      cpd-cli oadp backup precheck \
      --tenant-operator-namespace=${PROJECT_CPD_INST_OPERATORS} \
      --verbose
    2. 如果命令输出显示主实例与副本不同步,请删除副本及其关联的 PVC。

    有关该命令的更多信息,请参阅 oadp backup precheck

  4. 如果未设置安装环境变量,请为您正在使用的 Cloud Pak for Data 版本设置环境变量:
    export VERSION=<Cloud Pak for Data_version>
  5. 生成 cpd-operators ConfigMap。

    此 ConfigMap 捕获复原操作程序时所需的 Kubernetes 对象。

    ./cpd-operators.sh backup \
    --foundation-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --operators-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --backup-iam-data
    注意: IBM Cloud Pak foundational services 操作符与 Cloud Pak for Data 操作符安装在同一命名空间。
  6. 创建 Cloud Pak for Data 操作程序和 EDB Postgres 集群资源的备份,并提供备份的名称。

    --tenant-operator-namespace 参数指定实例 (租户) 操作程序项目,并且将隐式包含其他实例项目 (控制平面和任何绑定项目)。 如果要仅备份特定项目,请改为使用 --include-namespaces 参数,并指定要备份的项目列表。

    注: --tenant-operator-namespace--include-namespaces 参数互斥。

    集群从 IBM 授权注册表中提取映像
    限制: 仅当集群可以连接到因特网时,此选项才可用。
    4.8.0-4.8.3:
    cpd-cli oadp backup create <backup-name1> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --include-resources='namespaces,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,configmaps,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io' \
    --skip-hooks \
    --image-prefix=registry.redhat.io/ubi8 \
    --log-level=debug \
    --verbose
    4.8.4或更高版本
    cpd-cli oadp backup create <backup-name1> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --include-resources='namespaces,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,configmaps,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io' \
    --skip-hooks \
    --image-prefix=registry.redhat.io/ubi9 \
    --log-level=debug \
    --verbose

    集群从专用容器注册表中拉取映像
    限制: 仅当管理员将备份和复原映像移动到专用容器注册表时,此选项才可用。 有关详情,请参阅将 cpd-cli 的映像移动到私有容器注册表
    4.8.0-4.8.3:
    cpd-cli oadp backup create <backup-name1> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --include-resources='namespaces,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,configmaps,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io' \
    --skip-hooks \
    --image-prefix=${PRIVATE_REGISTRY_LOCATION}/ubi8 \
    --log-level=debug \
    --verbose
    4.8.4或更高版本
    cpd-cli oadp backup create <backup-name1> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --include-resources='namespaces,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,configmaps,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io' \
    --skip-hooks \
    --image-prefix=${PRIVATE_REGISTRY_LOCATION}/ubi9 \
    --log-level=debug \
    --verbose

  7. 创建 Kubernetes 资源和卷数据 (不包括 EDB Postgres 集群) 的备份,并提供备份的名称。
    注:
    • 以下命令将创建重新扫描备份。 如果要改为创建 CSI 快照,请删除 --default-volumes-to-restic \ 并将 --snapshot-volumes 设置为 true。 要创建 CSI 快照,必须创建有效的卷快照类。 有关详细信息,请参阅创建卷快照类
    • 选项 --vol-mnt-pod-mem-request --vol-mnt-pod-mem-limit 仅适用于重新创建备份。

    集群从 IBM 授权注册表中提取映像
    限制: 仅当集群可以连接到因特网时,此选项才可用。
    4.8.0-4.8.3:
    cpd-cli oadp backup create <backup-name2> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --exclude-tenant-operator-namespace=true \
    --exclude-resources='event,event.events.k8s.io,imagetags.openshift.io,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,catalogsources.operators.coreos.com,subscriptions.operators.coreos.com,clusterserviceversions.operators.coreos.com,installplans.operators.coreos.com,operandconfig,operandregistry,operandrequest,clients.oidc.security.ibm.com,authentication.operator.ibm.com,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io,certificaterequests.cert-manager.io,orders.acme.cert-manager.io,challenges.acme.cert-manager.io' \
    --default-volumes-to-restic \
    --snapshot-volumes=false \
    --cleanup-completed-resources \
    --vol-mnt-pod-mem-request=1Gi \
    --vol-mnt-pod-mem-limit=4Gi \
    --image-prefix=registry.redhat.io/ubi8 \
    --log-level=debug \
    --verbose
    4.8.4或更高版本
    cpd-cli oadp backup create <backup-name2> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --exclude-tenant-operator-namespace=true \
    --exclude-resources='event,event.events.k8s.io,imagetags.openshift.io,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,catalogsources.operators.coreos.com,subscriptions.operators.coreos.com,clusterserviceversions.operators.coreos.com,installplans.operators.coreos.com,operandconfig,operandregistry,operandrequest,clients.oidc.security.ibm.com,authentication.operator.ibm.com,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io,certificaterequests.cert-manager.io,orders.acme.cert-manager.io,challenges.acme.cert-manager.io' \
    --default-volumes-to-restic \
    --snapshot-volumes=false \
    --cleanup-completed-resources \
    --vol-mnt-pod-mem-request=1Gi \
    --vol-mnt-pod-mem-limit=4Gi \
    --image-prefix=registry.redhat.io/ubi9 \
    --log-level=debug \
    --verbose

    集群从专用容器注册表中拉取映像
    限制: 仅当管理员将备份和复原映像移动到专用容器注册表时,此选项才可用。 有关详情,请参阅将 cpd-cli 的映像移动到私有容器注册表
    4.8.0-4.8.3:
    cpd-cli oadp backup create <backup-name2> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --exclude-tenant-operator-namespace=true \
    --exclude-resources='event,event.events.k8s.io,imagetags.openshift.io,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,catalogsources.operators.coreos.com,subscriptions.operators.coreos.com,clusterserviceversions.operators.coreos.com,installplans.operators.coreos.com,operandconfig,operandregistry,operandrequest,clients.oidc.security.ibm.com,authentication.operator.ibm.com,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io,certificaterequests.cert-manager.io,orders.acme.cert-manager.io,challenges.acme.cert-manager.io' \
    --default-volumes-to-restic \
    --snapshot-volumes=false \
    --cleanup-completed-resources \
    --vol-mnt-pod-mem-request=1Gi \
    --vol-mnt-pod-mem-limit=4Gi \
    --image-prefix=${PRIVATE_REGISTRY_LOCATION}/ubi8 \
    --log-level=debug \
    --verbose
    4.8.4或更高版本
    cpd-cli oadp backup create <backup-name2> \
    --tenant-operator-namespace ${PROJECT_CPD_INST_OPERATORS} \
    --exclude-tenant-operator-namespace=true \
    --exclude-resources='event,event.events.k8s.io,imagetags.openshift.io,operatorgroups,roles,rolebindings,serviceaccounts,customresourcedefinitions.apiextensions.k8s.io,securitycontextconstraints.security.openshift.io,catalogsources.operators.coreos.com,subscriptions.operators.coreos.com,clusterserviceversions.operators.coreos.com,installplans.operators.coreos.com,operandconfig,operandregistry,operandrequest,clients.oidc.security.ibm.com,authentication.operator.ibm.com,namespacescopes,commonservices,clusters.postgresql.k8s.enterprisedb.io,certificaterequests.cert-manager.io,orders.acme.cert-manager.io,challenges.acme.cert-manager.io' \
    --default-volumes-to-restic \
    --snapshot-volumes=false \
    --cleanup-completed-resources \
    --vol-mnt-pod-mem-request=1Gi \
    --vol-mnt-pod-mem-limit=4Gi \
    --image-prefix=${PRIVATE_REGISTRY_LOCATION}/ubi9 \
    --log-level=debug \
    --verbose

  8. 检查备份的状态:
    cpd-cli oadp backup status <backup-name> \
    --details

    在输出中,检查 Phase 是否为 Completed,以及 Resource List 是否包含每个 PVC 的 VolumeSnapshot 。

    如果指定了创建重新扫描备份,那么输出末尾将显示已完成的重新扫描备份的列表。 例如:
    Restic Backups:
    
    Completed:
    
    cpd-instance/cpdbr-vol-mnt: export-zen-minio-0-vol, export-zen-minio-1-vol, export-zen-minio-2-vol, ibm-zen-cs-mongo-backup-vol, ibm-zen-objectstore-backup-pvc-vol
    
    cpd-instance/zen-metastore-edb-2: pgdata 
  9. 要查看现有备份的列表,请运行以下命令:
    cpd-cli oadp backup list
  10. 要查看备份日志,请运行以下命令:
    cpd-cli oadp backup logs <backup-name>
  11. 要删除备份以进行清除,请运行以下命令:
    cpd-cli oadp backup delete <backup-name>

下一步操作

如果备份失败,那么必须将 Cloud Pak for Data 返回到良好状态,然后才能重试备份。 运行以下命令:
cpd-cli oadp backup posthooks --hook-kind=br --tenant-operator-namespace=${PROJECT_CPD_INST_OPERATORS}

如果您有连接到外部数据库的服务 (例如,用于商业智能 (BI) 报告) ,那么建议您也备份数据库。 如果稍后复原 Cloud Pak for Data 备份,那么备份外部数据库将确保数据一致性。 例如,您需要复原较旧的 Cloud Pak for Data 备份,而不是最新的备份。 外部数据库与最新的 Cloud Pak for Data 备份同步,因此它具有不在要复原的备份中的数据。 要保持数据一致性,您需要复原与 Cloud Pak for Data 备份同时进行的外部数据库备份。