5.2. 对 Regional-DR 进行故障排除
5.2.1. 为某些镜像停止 RBD 镜像调度 复制链接链接已复制到粘贴板!
- 问题
对于某些镜像,需要一些常见原因来进行 RBD 镜像调度停止。
在为镜像标记应用程序后,出于某种原因(如果不复制),请使用 toolbox pod 并运行它,以查看哪些镜像调度已停止。
rbd snap ls <poolname/imagename> –all
$ rbd snap ls <poolname/imagename> –allCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 解决方案
- 在主集群中重启 manager 守护进程
- 在主集群中禁用并立即重新启用受影响镜像的 mirroring
5.2.2. rbd-mirror 守护进程健康状态 复制链接链接已复制到粘贴板!
- 问题
当 mirror 服务
::get_mirror_service_status调用Cephmonitor 来获取rbd-mirror的服务状态,会有多种情况会报告 WARNING。在网络连接网络连接后,
rbd-mirror守护进程健康状态在警告状态,同时两个受管集群间的连接都正常。- 解决方案
在 toolbox 中运行以下命令并查找
leader:falserbd mirror pool status --verbose ocs-storagecluster-cephblockpool | grep 'leader:'
rbd mirror pool status --verbose ocs-storagecluster-cephblockpool | grep 'leader:'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您在输出中看到以下内容:
leader: false这表示存在守护进程启动问题,最有可能的根本原因是由于问题可靠地连接到 secondary 集群。
临时解决方案:通过删除 pod 并验证它已重新调度到另一节点上,将
rbd-mirrorpod 移到另一个节点。leader: true或没有输出
BZ 参考: [2118627]
5.2.3. 在故障切换后,有状态集应用程序会卡住 复制链接链接已复制到粘贴板!
- 问题
在重新定位到首选集群时,DRPlacementControl 会一直报告 PROGRESSION 为 "MovingToSecondary"。
在以前的版本中,在 Kubernetes v1.23 之前,Kubernetes control plane 不会清理为 StatefulSets 创建的 PVC。此活动由集群管理员或管理 StatefulSets 的软件操作员保留。因此,当 Pod 被删除时,StatefulSet 的 PVC 会保持不变。这可防止 Ramen 将应用程序重新定位到首选集群。
- 解决方案
如果工作负载使用 StatefulSets,且重新定位会卡住 PROGRESSION 为 "MovingToSecondary",则运行:
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于属于该 StatefulSet 的命名空间的每个绑定的 PVC,请运行
oc delete pvc <pvcname> -n namespace
$ oc delete pvc <pvcname> -n namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除所有 PVC 后,卷组复制组 (VRG) 过渡到 secondary,然后会被删除。
运行以下命令
oc get drpc -n <namespace> -o wide
$ oc get drpc -n <namespace> -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 几分钟后,PROGRESSION 报告 "Completed" 并完成重新定位。
- 结果
- 工作负载重新定位到首选集群
BZ reference: [2118270]
5.2.4. 故障转移后应用程序没有运行 复制链接链接已复制到粘贴板!
- 问题
-
在应用程序失败时,工作负载 pod 无法访问运行状态,并带有错误
MountVolume.MountDevice failed for volume <PV name> : rpc error: code = Internal desc = fail to check rbd image status: (cannot map image <image description> it is not primary)
在工作负载失败的集群中执行这些步骤。
- 解决方案
将 RBD 镜像守护进程部署缩减为
0,直到应用 pod 可以从上述错误中恢复。oc scale deployment rook-ceph-rbd-mirror-a -n openshift-storage --replicas=0
$ oc scale deployment rook-ceph-rbd-mirror-a -n openshift-storage --replicas=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在恢复后,将 RBD 镜像守护进程部署重新调度到
1。oc scale deployment rook-ceph-rbd-mirror-a -n openshift-storage --replicas=1
$ oc scale deployment rook-ceph-rbd-mirror-a -n openshift-storage --replicas=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
BZ 参考: [2134936]
5.2.5. volsync-rsync-src pod 处于错误状态 复制链接链接已复制到粘贴板!
- 问题
volsync-rsync-srcpod 处于错误状态,因为它们无法连接到volsync-rsync-dst。VolSync源 pod 日志可能会在与日志片断类似的延长持续时间内显示持久性错误消息。运行以下命令来检查日志。
oc logs volsync-rsync-src-<app pvc name>-<suffix>
$ oc logs volsync-rsync-src-<app pvc name>-<suffix>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
VolSync rsync container version: ACM-0.6.0-ce9a280 Syncing data to volsync-rsync-dst-busybox-pvc-9.busybox-workloads-1.svc.clusterset.local:22 Syncronization failed. Retrying in 2 seconds. Retry 1/5. rsync: connection unexpectedly closed (7 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.3]
VolSync rsync container version: ACM-0.6.0-ce9a280 Syncing data to volsync-rsync-dst-busybox-pvc-9.busybox-workloads-1.svc.clusterset.local:22 Syncronization failed. Retrying in 2 seconds. Retry 1/5. rsync: connection unexpectedly closed (7 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.3]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 解决方案
您可以按照以下步骤重新配置最大传输单元 (MTU) 大小来解决这个问题:
注解具有 submariner 网关标签的节点。
oc annotate node -l submariner.io/gateway submariner.io/tcp-clamp-mss=1340 --overwrite
$ oc annotate node -l submariner.io/gateway submariner.io/tcp-clamp-mss=1340 --overwriteCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
node/compute-0 annotated node/compute-2 annotated
node/compute-0 annotated node/compute-2 annotatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 submariner 路由代理 pod。
oc delete pods -n submariner-operator -l app=submariner-routeagent
$ oc delete pods -n submariner-operator -l app=submariner-routeagentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
vol-sync-src pod中是否存在任何错误。oc logs volsync-rsync-src-dd-io-pvc-3-nwn8h
$ oc logs volsync-rsync-src-dd-io-pvc-3-nwn8hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
VolSync rsync container version: ACM-0.6.0-ce9a280 Syncing data to volsync-rsync-dst-dd-io-pvc-3.busybox-workloads-8.svc.clusterset.local:22 … .d..tp..... ./ <f+++++++++ 07-12-2022_13-03-04-dd-io-3-5d6b4b84df-v9bhc
VolSync rsync container version: ACM-0.6.0-ce9a280 Syncing data to volsync-rsync-dst-dd-io-pvc-3.busybox-workloads-8.svc.clusterset.local:22 … .d..tp..... ./ <f+++++++++ 07-12-2022_13-03-04-dd-io-3-5d6b4b84df-v9bhcCopy to Clipboard Copied! Toggle word wrap Toggle overflow
BZ 参考: [2136864]
5.2.6. volsync-rsync-src pod 处于错误状态,因为它无法解析目标主机名 复制链接链接已复制到粘贴板!
- 问题
VolSync源 pod 无法解析 VolSync 目标 pod 的主机名。VolSync Pod 的日志在延长时间内显示错误消息,类似于以下日志片断。oc logs -n busybox-workloads-3-2 volsync-rsync-src-dd-io-pvc-1-p25rz
$ oc logs -n busybox-workloads-3-2 volsync-rsync-src-dd-io-pvc-1-p25rzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
VolSync rsync container version: ACM-0.6.0-ce9a280 Syncing data to volsync-rsync-dst-dd-io-pvc-1.busybox-workloads-3-2.svc.clusterset.local:22 ... ssh: Could not resolve hostname volsync-rsync-dst-dd-io-pvc-1.busybox-workloads-3-2.svc.clusterset.local: Name or service not known
VolSync rsync container version: ACM-0.6.0-ce9a280 Syncing data to volsync-rsync-dst-dd-io-pvc-1.busybox-workloads-3-2.svc.clusterset.local:22 ... ssh: Could not resolve hostname volsync-rsync-dst-dd-io-pvc-1.busybox-workloads-3-2.svc.clusterset.local: Name or service not knownCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 解决方案
在这两个节点上,重启
submariner-lighthouse-agent。oc delete pod -l app=submariner-lighthouse-agent -n submariner-operator
$ oc delete pod -l app=submariner-lighthouse-agent -n submariner-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.7. 无法使用 RHACM 2.8 将 DRPolicy 应用到订阅工作负载 复制链接链接已复制到粘贴板!
- 问题
-
Red Hat Advanced Cluster Management (RHACM) 2.8 控制台已弃用
PlacementRule类型,并移到 Subscription 应用程序的放置类型。因此,当用户使用 RHACM 2.8 控制台创建 Subscription 应用程序时,只会使用 Placement 创建应用程序。由于 OpenShift Data Foundation 4.12 灾难恢复用户界面和 Ramen 操作器不支持订阅应用程序的放置,所以灾难恢复用户界面无法检测应用程序并显示分配策略的详情。 - 解决方案
由于 RHACM 2.8 控制台仍能够检测
PlacementRule(使用命令行界面(CLI)创建的 PlacementRule),请执行以下步骤,以使用PlacementRule在 RHACM 2.8 中创建 Subscription 应用程序:-
使用应用程序命名空间创建一个新项目。(例如:
busybox-application) -
找到要部署应用的受管集群的标签(例如:
drcluster1-jul-6) 使用上一步中创建的受管集群标签在
application-namespace上创建PlacementRuleCR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在使用 Subscription 应用程序页面中的 RHACM 控制台创建应用程序时,请选择此新的
PlacementRule。 -
从 YAML 编辑器删除
PlacementRule,以便可以重新使用所选编辑器。
-
使用应用程序命名空间创建一个新项目。(例如:
BZ 参考: [2216190]