离线备份的先决条件任务

重要提示:4.8IBM Cloud Pak® for Data 版本将于2025年7月31日达到支持终止(EOS)。 有关更多信息,请参阅 4.X 版本 IBM Cloud Pak for Data 的服务终止公告

升级至 IBM Software Hub 版本 5.1 ,在 4.8 版本达到支持 IBM Cloud Pak for Data 终止前完成升级。 有关更多信息,请参阅IBM Cloud Pak for Data 版本 4.8 升级到 IBM 的说明: Software Hub 版本 5.1。

在创建. IBM Cloud Pak for Data的离线备份之前,请先完成各项必要准备工作。 某些任务是服务专属的,仅需在安装相应服务时执行。

最佳实践: 若已设置环境变量,可直接按任务中命令的原样执行。 有关说明,请参阅设置安装环境变量

在执行这些任务中的命令之前,请确保已设置环境变量。

设置客户端工作站

设置一台客户端工作站,用于安装所需软件、准备集群环境以及创建备份。 请确保已安装以下客户端。
  • Red Hat® OpenShift® 命令行界面 (oc)
  • Cloud Pak for Data 命令行界面 (cpd-cli)
    注意: 请安装与您当前使用的版本 Cloud Pak for Data 相对应的版本 cpd-cli

有关更多信息,请阅设置客户端工作站。

在源集群上安装所需软件

安装并配置备份与还原 Cloud Pak for DataOADP 实用程序

注:
  • 请确保您安装的操作符 OADP 版本与您使用的版本 Cloud Pak for Data 兼容。 要检查已安装的 OADP 版本,请运行以下命令:
    oc get csv -A | grep "OADP Operator"
  • 安装备份和还原组件时,请确保在创建实例 spec.configuration.velero.defaultPluginsDataProtectionApplication (Velero) 时指定默认 csi 插件。

删除与 ConfigMapsMongoDB相关的

4.8.5 若您已升级至 Cloud Pak for Data 版本 4.8.5 或更高版本,某些与 相关的备份和还原 ConfigMapsMongoDB 可能仍保留在 操作 Cloud Pak for Data 项目(命名空间)中,必须予以移除。 请通过执行以下命令确保这些 ConfigMaps 不存在于操作数项目中:
oc delete cm zen-cs-aux-br-cm
oc delete cm zen-cs-aux-ckpt-cm
oc delete cm zen-cs-aux-qu-cm
oc delete cm zen-cs2-aux-ckpt-cm

清理 MongoDB 资源

若您已将系统从 4.8.0Cloud Pak for Data - 4.8.4 升级至 4.8.5 - 4.8.7 ,则必须在创建备份前清除残留 MongoDB 资源。 请执行以下步骤:

  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 编辑自定义 authentication.operator.ibm.com 资源:
    oc edit authentication.operator.ibm.com -n ${PROJECT_CPD_INST_OPERANDS}
  3. 将注释 authentication.operator.ibm.com/retain-migration-artifacts 更改为 false

更新许可证 EDB Postgres 提供商映像引用

4.8.0 - 4.8.5 由于许可证 EDB Postgres 密钥已于2024年10月1日过期,请通过运行以下任一命令更新 ConfigMapcloud-native-postgresql-image-list 中的许可证提供商映像引用:
该集群可连接到互联网
postgresImage=$(oc get cm cloud-native-postgresql-image-list -n ${PROJECT_CPD_INST_OPERATORS} -o jsonpath='{.data.edb-postgres-license-provider-image}')
newPostgresImage=$(echo $postgresImage | sed -e 's/c9660f09a003178b13830fc260519c8d2e054ee8312e3cd1273d88d8d1acb759/c1670e7dd93c1e65a6659ece644e44aa5c2150809ac1089e2fd6be37dceae4ce/')
eval $(echo "oc patch cm cloud-native-postgresql-image-list -n ${PROJECT_CPD_INST_OPERATORS} --type merge -p '{\"data\": {\"edb-postgres-license-provider-image\": \"${newPostgresImage}\"}}'")
oc label cm cloud-native-postgresql-image-list -n ${PROJECT_CPD_INST_OPERATORS} app=cpd-operators-backup
该集群从私有容器注册表中拉取镜像
postgresImage=$(oc get cm cloud-native-postgresql-image-list -n ${PROJECT_CPD_INST_OPERATORS} -o jsonpath='{.data.edb-postgres-license-provider-image}')
newPostgresImage=$(echo $postgresImage | sed -e "s/cp.icr.io\/cp\/cpd/${PRIVATE_REGISTRY}/")
eval $(echo "oc patch cm cloud-native-postgresql-image-list -n ${PROJECT_CPD_INST_OPERATORS} --type merge -p '{\"data\": {\"edb-postgres-license-provider-image\": \"${newPostgresImage}\"}}'")
oc label cm cloud-native-postgresql-image-list -n ${PROJECT_CPD_INST_OPERATORS} app=cpd-operators-backup

添加 Identity Management Service 资源

4.8.0 - 4.8.4 若您已升级至 Cloud Pak for Data 4.8.0 - 4.8.4 并随后与 集成,请 Identity Management Service在创建备份前运行 备份与还原 Identity Management Service 脚本。 有关更多信息,请参阅 《还原后 Identity Management Service 数据丢失》

估算为备份分配多少存储空间

技术预览通过以下步骤估算您需要为备份分配的存储空间。

注意: 在运行该命令之前,必须 cpdbr-agent 先安装。 有关更多信息,请参阅《 安装 cpdbr-agent》。
  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 导出以下环境变量。
    export CPDBR_ENABLE_FEATURES=volume-util
  3. 运行以下命令。
    cpd-cli oadp du-pv

有关此命令的更多信息,请参阅 oadp du-pv

确保将 management-ingress-ibmcloud-cluster-infoConfigMap 包含在备份中

4.8.5 本节仅适用于 Cloud Pak for Data 4.8.5

如果启用了身份和访问管理(IAM),则备份中需要包含 management-ingress-ibmcloud-cluster-infoConfigMap 文件才能成功恢复。 请执行以下步骤:

  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 检查IAM是否已启用:
    oc get zenservices  lite-cr -o jsonpath='{.spec.iamIntegration}{"\n"}' -n ${PROJECT_CPD_INST_OPERANDS}
  3. 如果启用了身份和访问管理(IAM),请应用以下补丁以确保 ConfigMapmanagement-ingress-ibmcloud-cluster-info 不被排除在备份之外:
    oc apply -n ${PROJECT_CPD_INST_OPERANDS} -f - << EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cpdbr-management-ingress-exclude-fix-br
      labels:
        cpdfwk.aux-kind: br
        cpdfwk.component: cpdbr-patch
        cpdfwk.module: cpdbr-management-ingress-exclude-fix
        cpdfwk.name: cpdbr-management-ingress-exclude-fix-br-cm
        cpdfwk.managed-by: ibm-cpd-sre
        cpdfwk.vendor: ibm
        cpdfwk.version: 1.0.0
    data:
      aux-meta: |
        name: cpdbr-management-ingress-exclude-fix-br
        description: |
          This configmap defines offline backup prehooks to prevent cases where Bedrock's management-ingress-ibmcloud-cluster-info
          configmap gets unexpectedly excluded when ibmcloud-cluster-info is excluded during cs-postgres configmap prehooks.
          This is a temporary workaround until a complete fix is implemented.
        version: 1.0.0
        component: cpdbr-patch
        aux-kind: br
        priority-order: 99999 # This should happen at the end of backup prehooks
      backup-meta: |
        pre-hooks:
          exec-rules:
          # Remove lingering velero exclude label from offline prehooks
          - resource-kind: configmap
            name: management-ingress-ibmcloud-cluster-info
            actions:
              - builtins:
                  name: cpdbr.cpd.ibm.com/label-resources
                  params:
                    action: remove
                    key: velero.io/exclude-from-backup
                    value: "true"
                  timeout: 360s
          # Remove lingering ignore-on-nd-backup exclude label from online checkpoint operation
          - resource-kind: configmap
            name: management-ingress-ibmcloud-cluster-info
            actions:
              - builtins:
                  name: cpdbr.cpd.ibm.com/label-resources
                  params:
                    action: remove
                    key: icpdsupport/ignore-on-nd-backup
                    value: "true"
                  timeout: 360s
        post-hooks:
          exec-rules: 
          - resource-kind: # do nothing for posthooks
    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cpdbr-management-ingress-exclude-fix-ckpt
      labels:
        cpdfwk.aux-kind: checkpoint
        cpdfwk.component: cpdbr-patch
        cpdfwk.module: cpdbr-management-ingress-exclude-fix
        cpdfwk.name: cpdbr-management-ingress-exclude-fix-ckpt-cm
        cpdfwk.managed-by: ibm-cpd-sre
        cpdfwk.vendor: ibm
        cpdfwk.version: 1.0.0
    data:
      aux-meta: |
        name: cpdbr-management-ingress-exclude-fix-ckpt
        description: |
          This configmap defines online backup prehooks to prevent cases where Bedrock's management-ingress-ibmcloud-cluster-info
          configmap gets unexpectedly excluded when ibmcloud-cluster-info is excluded during cs-postgres configmap checkpoint operation.
          This is a temporary workaround until a complete fix is implemented.
        version: 1.0.0
        component: cpdbr-patch
        aux-kind: ckpt
        priority-order: 99999 # This should happen at the end of backup prehooks
      backup-meta: |
        pre-hooks:
          exec-rules:
          # Remove lingering velero exclude label from offline prehooks
          - resource-kind: configmap
            name: management-ingress-ibmcloud-cluster-info
            actions:
              - builtins:
                  name: cpdbr.cpd.ibm.com/label-resources
                  params:
                    action: remove
                    key: velero.io/exclude-from-backup
                    value: "true"
                  timeout: 360s
          # Remove lingering ignore-on-nd-backup exclude label from online checkpoint operation
          - resource-kind: configmap
            name: management-ingress-ibmcloud-cluster-info
            actions:
              - builtins:
                  name: cpdbr.cpd.ibm.com/label-resources
                  params:
                    action: remove
                    key: icpdsupport/ignore-on-nd-backup
                    value: "true"
                  timeout: 360s
        post-hooks:
          exec-rules: 
          - resource-kind: # do nothing for posthooks
      checkpoint-meta: |
        exec-hooks:
          exec-rules: 
          - resource-kind: # do nothing for checkpoint
    EOF

检查已安装服务的状态

确保所有已安装服务的状态均为已完成。 执行以下步骤。

  1. 登录 cpd-cli 到集群 Red Hat OpenShift Container Platform
    ${CPDM_OC_LOGIN}
    请记住: CPDM_OC_LOGIN 是一个别名,代表 命令 cpd-cli manage login-to-ocp
  2. 运行以下命令以获取所有服务的状态。
    cpd-cli manage get-cr-status \
    --cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS}

单独备份不支持离线备份的服务

对于不支持离线备份的服务,请在备份 Cloud Pak for Data 实例之前,使用其专属的备份流程分别备份这些服务。 有关不支持在线备份的服务的更多信息,请参阅支持备份和还原的服务

准备 Analytics Engine powered by Apache Spark

Spark 主从运行时部署的Pod是临时Pod,在作业 Spark 完成时会自动删除。 您可以等待作业完成并清理 pod,或者运行以下命令删除运行时部署:
oc get deploy -n ${PROJECT_CPD_INST_OPERANDS} | grep 'spark-master\|spark-worker' | awk '{print $1}' | xargs oc delete deploy -n ${PROJECT_CPD_INST_OPERANDS}

准备 Data Refinery

为避免任何不必要的数据丢失,建议您停止所有 Data Refinery 运行时和作业。 请执行以下步骤:
  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 要停止所有正在运行的 Data Refinery 运行时和作业,请执行以下命令:
    oc delete $(oc get deployment -l type=shaper -o name)
    oc delete $(oc get svc -l type=shaper -o name)
    oc delete $(oc get job -l type=shaper -o name)
    oc delete $(oc get secrets -l type=shaper -o name)
    oc delete $(oc get cronjobs -l type=shaper -o name)
    oc scale -\-replicas=0 deploy wdp-shaper wdp-dataprep

准备 Db2®

Db2U 集群添加标签,并启用后停止Q复制,以确保备份能够成功完成。 请执行以下步骤:

  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 检索部署中 Db2UCloud Pak for Data 集群的名称:
    oc get db2ucluster -A -ojsonpath='{.items[?(@.spec.environment.dbType=="db2oltp")].metadata.name}'
  3. 对于每个 Db2U 簇,执行以下子步骤:
    1. 导出 Db2U 集群名称:
      export DB2UCLUSTER=<db2ucluster_name>
    2. 标记簇:
      oc label db2ucluster ${DB2UCLUSTER} db2u/cpdbr=db2u --overwrite
    3. 验证 Db2U 集群是否已包含新标签:
      oc get db2ucluster ${DB2UCLUSTER} --show-labels
  4. 对于每个 Db2U 集群,要停止 Q 复制,请执行以下步骤。
    1. 获取Q复制集的Pod名称:
      oc get po -n ${PROJECT_CPD_INST_OPERANDS} | grep ${DB2UCLUSTER} | grep qrep
    2. 执行进入Q复制集群的Pod:
      oc exec -it <qrep-pod-name> bash -n ${PROJECT_CPD_INST_OPERANDS}
    3. 以用户 dsadmin 身份登录:
      su - dsadm
    4. 停止Q复制监控进程:
      >nohup $BLUDR_HOME/scripts/bin/bludr-monitor-qrep-components-wrapper-utils.sh stop > /dev/null &
    5. 停止Q复制:
      $BLUDR_HOME/scripts/bin/bludr-stop.sh
      当脚本运行完毕后,将显示以下消息:
      Stopping bludr replication instance ...
      Stopping replication ...
      REPLICATION ENDED SAFELY
      Stopping BLUDR WLP server...
      Stopping replication REST server instance ...
      SERVER STATUS: INACTIVE

准备 Db2 Warehouse

Db2U 集群添加标签,并启用后停止Q复制,以确保备份能够成功完成。 请执行以下步骤:

  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 检索部署中 Db2UCloud Pak for Data 集群的名称:
    oc get db2ucluster -A -ojsonpath='{.items[?(@.spec.environment.dbType=="db2oltp")].metadata.name}'
  3. 对于每个 Db2U 簇,执行以下子步骤:
    1. 导出 Db2U 集群名称:
      export DB2UCLUSTER=<db2ucluster_name>
    2. 标记簇:
      oc label db2ucluster ${DB2UCLUSTER} db2u/cpdbr=db2u --overwrite
    3. 验证 Db2U 集群是否已包含新标签:
      oc get db2ucluster ${DB2UCLUSTER} --show-labels
  4. 对于每个 Db2U 集群,要停止 Q 复制,请执行以下步骤。
    1. 获取Q复制集的Pod名称:
      oc get po -n ${PROJECT_CPD_INST_OPERANDS} | grep ${DB2UCLUSTER} | grep qrep
    2. 执行进入Q复制集群的Pod:
      oc exec -it <qrep-pod-name> bash -n ${PROJECT_CPD_INST_OPERANDS}
    3. 以用户 dsadmin 身份登录:
      su - dsadm
    4. 停止Q复制监控进程:
      >nohup $BLUDR_HOME/scripts/bin/bludr-monitor-qrep-components-wrapper-utils.sh stop > /dev/null &
    5. 停止Q复制:
      $BLUDR_HOME/scripts/bin/bludr-stop.sh
      当脚本运行完毕后,将显示以下消息:
      Stopping bludr replication instance ...
      Stopping replication ...
      REPLICATION ENDED SAFELY
      Stopping BLUDR WLP server...
      Stopping replication REST server instance ...
      SERVER STATUS: INACTIVE

准备 SPSS Modeler

在备份服务 SPSS® Modeler 之前,请停止所有正在运行的运行时和作业。 请执行以下步骤:
  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 要停止所有正在运行的 SPSS Modeler 运行时和作业,请执行以下命令:
    oc delete rta -l type=service,job -l component=spss-modeler
  3. 要检查是否还有任何 SPSS Modeler 运行时会话仍在运行,请执行以下命令:
    oc get pod -l type=spss-modeler

    当没有运行中的Pod时,此命令不会产生任何输出。

准备 Watson Discovery

在备份安装了该 Watson Discovery 服务的集群之前,请通过运行备份 Watson Discovery 脚本单独备份 Watson Discovery 数据。 有关更多信息,请参阅 《数据备份与恢复 》。

准备 Watson Machine Learning

在备份服务 Watson Machine Learning 之前,请禁用计划任务,并取消或等待现有启动/运行中的任务完成。

  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 运行以下命令。

    <timeout_in_seconds> 替换为任务终止前允许其完成的超时时间。

    oc -n ${PROJECT_CPD_INST_OPERANDS} get pods -l app=wml-deployment-manager -o name | xargs -I{} oc -n <service_namespace> exec {} -- bash -c "/opt/ibm/wml-online-scoring/runtime-manager/bin/startQuiesce.sh <timeout_in_seconds>"

准备 Watson Machine Learning Accelerator

在备份 Watson Machine Learning Accelerator 服务之前,请执行以下步骤:
  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 停止所有正在运行的作业:
    oc delete $(oc get pj -l release=wmla -o name)
  3. 停止所有已部署的模型。

    有关详细信息,请参阅停止推理服务

  4. 若您是从 4.6IBM Cloud Pak for Data 版本升级而来,且正在使用 IBM® Storage FusionPortworx 或 Red Hat OpenShift 数据基础存储,请从持久卷(PV)中删除conda内容。
    1. 获取 conda pod 名称:
      oc get po |grep wmla-conda
    2. wmla-conda pod 中删除 conda PV 数据:
      oc exec -it wmla-conda-pod-name bash
      bash-4.4$ rm -rfv /opt/conda/*
    3. 从 wmla-conda pod 中删除 conda_synced 文件:
      oc exec -it wmla-conda-pod-name bash
      bash-4.4$ rm -rf /var/shareDir/dli/work/conda_synced

准备 watsonx.ai

如果 watsonx.ai 已安装,请手动缩减以下部署,并在配置 cpd-watsonxai-maint-aux-br-cm 映射中增加超时值。

  1. Red Hat OpenShift Container Platform 集群管理员身份登录。
    ${OC_LOGIN}
    请记住: OC_LOGIN 是一个别名,代表 命令 oc login
  2. 运行以下命令:
    oc scale deploy caikit-runtime-stack-operator -n ${PROJECT_CPD_INST_OPERATORS} --replicas=0
  3. 4.8.24.8.1 若您使用的是 Cloud Pak for Data4.8.14.8.2 ,请执行以下命令:
    oc scale deploy fmaas-caikit-inf-prompt-tunes -n ${PROJECT_CPD_INST_OPERANDS} --replicas=0
    oc scale deploy bamdev-cais -n ${PROJECT_CPD_INST_OPERANDS} --replicas=0
  4. 在配置 cpd-watsonxai-maint-aux-br-cm 映射中增加超时值:
    1. 编辑该 ConfigMap:
      oc edit cm cpd-watsonxai-maint-aux-br-cm -n ${PROJECT_CPD_INST_OPERANDS}
    2. backup-meta-pre-hooks-builtins-timeout 的值从 1800 更改为 3600
    3. backup-meta-post-hooks-builtins-timeout 的值从 1800 更改为 3600
    4. restore-meta-pre-hooks-builtins-timeout 的值从 1800 更改为 3600