您可以使用 IBM Storage Fusion将 Cloud Pak for Data 实例的联机备份复原到同一集群。
准备工作
如果计划复原 scheduling service的备份,那么必须首先将其卸载。 有关详细信息,请参阅 卸载调度服务。
关于本任务
无法将备份复原到 Cloud Pak for Data 实例的其他项目。
在复原 Cloud Pak for Data 实例 (租户) 之前,必须删除 Cloud Pak for Data 实例项目 (名称空间)。
最佳实践: 如果您设置了环境变量,那么可以在此任务中以完全相同的方式运行命令。 有关指示信息,请参阅
设置安装环境变量。
在运行此任务中的命令之前,请确保确定环境变量的来源。
过程
删除 Cloud Pak for Data 资源和项目
- 以实例管理员身份登录到 Red Hat®
OpenShift® Container Platform 。
${OC_LOGIN}
请记住: OC_LOGIN 是 oc login 命令的别名。
- 删除非名称空间资源。
- 从处于
Released 状态的 Cloud Pak for Data 实例获取 PersistentVolumes (PV) 的列表:
oc get pv --no-headers | grep "Released.*${PROJECT_CPD_INST_OPERANDS}/.*" | awk '{print $1}'
- 删除这些 PV:
oc get pv --no-headers | grep "Released.*${PROJECT_CPD_INST_OPERANDS}/.*" | awk '{print $1}' | xargs oc delete pv
- 删除过时的安全上下文约束(SCC):
oc get scc | grep ${PROJECT_CPD_INST_OPERANDS} | awk '{print $1}' | xargs oc delete scc
- 找到并除去可能阻止删除 Cloud Pak for Data 实例操作数项目的终止程序,然后删除操作数项目:
oc project ${PROJECT_CPD_INST_OPERANDS}
while read -r resource_type
do
echo "${resource_type}"
while read -r resource
do
if [ -z "${resource}" ]; then
continue
fi
kubectl delete "${resource}" -n "${PROJECT_CPD_INST_OPERANDS}" --timeout=10s \
|| kubectl patch "${resource}" -n "${PROJECT_CPD_INST_OPERANDS}" \
--type=merge \
--patch '{"metadata":{"finalizers":[]}}'
done <<< "$(kubectl get "${resource_type}" -n "${PROJECT_CPD_INST_OPERANDS}" -o name | sort)"
done <<< "$(kubectl api-resources --namespaced=true -o name | grep ibm.com | sort)"
oc delete project ${PROJECT_CPD_INST_OPERANDS}
- 除去所有终结器时,请检查是否已删除 Cloud Pak for Data 实例操作数项目:
oc get project ${PROJECT_CPD_INST_OPERANDS} -o yaml
如果删除了该项目,那么该命令将返回以下消息:
Error from server (NotFound): namespaces "${PROJECT_CPD_INST_OPERANDS}" not found
- 如果某些服务已安装在系留项目中,请对每个系留项目重复步骤 1 和 2。
在这些命令中,将 PROJECT_CPD_INST_OPERANDS 环境变量替换为 PROJECT_CPD_INSTANCE_TETHERED。
提示: 如果设置
PROJECT_CPD_INSTANCE_TETHERED_LIST 环境变量,请将绑定项目列表打印到终端:
echo $PROJECT_CPD_INSTANCE_TETHERED_LIST
在重新运行命令之前,请使用此信息来设置 PROJECT_CPD_INSTANCE_TETHERED 环境变量。
- 删除 Cloud Pak for Data 实例操作程序项目:
oc project ${PROJECT_CPD_INST_OPERATORS}
while read -r resource_type
do
echo "${resource_type}"
while read -r resource
do
if [ -z "${resource}" ]; then
continue
fi
kubectl delete "${resource}" -n "${PROJECT_CPD_INST_OPERATORS}" --timeout=10s \
|| kubectl patch "${resource}" -n "${PROJECT_CPD_INST_OPERATORS}" \
--type=merge \
--patch '{"metadata":{"finalizers":[]}}'
done <<< "$(kubectl get "${resource_type}" -n "${PROJECT_CPD_INST_OPERATORS}" -o name | sort)"
done <<< "$(kubectl api-resources --namespaced=true -o name | grep ibm.com | sort)"
oc delete project ${PROJECT_CPD_INST_OPERATORS}
- 删除 Cloud Pak for Data 实例的webhook配置。
注意 :仅当删除 Cloud Pak for Data 实例操作员项目的上一步操作完成后,才能执行此步骤。
oc get validatingwebhookconfiguration ibm-common-service-validating-webhook-${PROJECT_CPD_INST_OPERATORS}
oc delete validatingwebhookconfiguration ibm-common-service-validating-webhook-${PROJECT_CPD_INST_OPERATORS}
- 删除过时的网络链接:
oc get validatingwebhookconfigurations -l olm.owner.namespace=${PROJECT_CPD_INST_OPERATORS}
oc delete validatingwebhookconfigurations -l olm.owner.namespace=${PROJECT_CPD_INST_OPERATORS}
恢复Cloud Pak for Data应用程序
- 在主数据中心集群上的 IBM Storage Fusion 中,展开 备份和复原 ,然后单击 备份应用程序。
- 可选: 如果已安装,请选择
${PROJECT_SCHEDULING_SERVICE} 应用程序,点击
,然后点击 “恢复” 进行还原
提示: 如果您未迂到任何服务问题,那么无需将 scheduling service 复原到同一集群。
如果不想恢复 "scheduling service,请转到步骤 13。
- 在 " 复原 " 页面中,选择 复原当前集群中的应用程序。 然后单击 下一步。
- 在下一个复原页面中,选择要复原的备份,然后单击 下一步。
- 在下一个复原页面中,请勿更改任何缺省选项,然后单击 复原。
注: 请确保选中 包括缺少的 etcd 资源 复选框。
- 在 " 确认复原 " 对话框中,单击 复原。
- 重复这些步骤以复原 Cloud Pak for Data 实例 (租户) 应用程序 (
${PROJECT_CPD_INST_OPERATORS})。
复原 ${PROJECT_CPD_INST_OPERATORS} 应用程序时,将同时复原 Cloud Pak for Data 实例项目 (${PROJECT_CPD_INST_OPERANDS})。
注: 如果将源集群中的
Cloud Pak for Data 操作程序安装计划设置为手动核准策略 (
installPlanApproval: Manual) ,那么在复原操作程序时必须核准安装计划。 否则,复原过程将不会继续。 有关操作程序安装计划的更多信息,请参阅
安装计划。
- 要监控还原任务,请前往 ,并点击还原选项卡。
- 选择一个作业以查看将复原的资源的清单以及复原流的进度。
下一步操作
当复原作业完成时,将复原所有资源。 但是,
Cloud Pak for Data 平台和服务可能需要更多时间来协调和启动服务,然后才能开始使用这些服务。 在
Cloud Pak for Data中,检查所有服务实例是否已复原且处于良好状态。
- 将
cpd-cli 登录到 Red Hat
OpenShift Container Platform 集群:
请记住: CPDM_OC_LOGIN 是 cpd-cli
manage
login-to-ocp 命令的别名。
- 获取所有服务的状态。
cpd-cli manage get-cr-status \
--cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS}
- 验证所有服务是否都显示
Completed。
如果 Cloud Pak for Data 部署具有连接到外部数据库的服务,并且您遵循建议 在备份 Cloud Pak for Data的同时备份数据库,请复原与 Cloud Pak for Data 备份相同的数据库备份。