第 6 章 灾难恢复故障排除


6.1. 对 Metro-DR 进行故障排除

6.1.1. 在故障切换后,有状态集应用程序会卡住

问题

在重新定位到首选集群时,DRPlacementControl 会一直报告 PROGRESSION 为 "MovingToSecondary"。

在以前的版本中,在 Kubernetes v1.23 之前,Kubernetes control plane 不会清理为 StatefulSets 创建的 PVC。此活动由集群管理员或管理 StatefulSets 的软件操作员保留。因此,当 Pod 被删除时,StatefulSet 的 PVC 会保持不变。这可防止 Ramen 将应用程序重新定位到首选集群。

解决方案
  1. 如果工作负载使用 StatefulSets,且重新定位会卡住 PROGRESSION 为 "MovingToSecondary",则运行:

    $ oc get pvc -n <namespace>
  2. 对于属于该 StatefulSet 的命名空间的每个绑定的 PVC,请运行

    $ oc delete pvc <pvcname> -n namespace

    删除所有 PVC 后,卷组复制组 (VRG) 过渡到 secondary,然后会被删除。

  3. 运行以下命令

    $ oc get drpc -n <namespace> -o wide

    几分钟后,PROGRESSION 报告 "Completed" 并完成重新定位。

结果
工作负载重新定位到首选集群

BZ reference: [2118270]

6.1.2. DR 策略可保护同一命名空间中的所有应用程序

问题
虽然只有单个应用程序被选择供 DR 策略使用,但同一命名空间中的所有应用程序都会受到保护。这会导致 PVC,与多个工作负载的 DRPlacementControl spec.pvcSelector 匹配;或者,如果所有工作负载中没有选择器,复制管理可能会多次管理每个 PVC,并根据单独的 DRPlacementControl 操作造成数据崩溃或无效操作。
解决方案
标签 PVC 属于唯一工作负载,并使用所选标签作为 DRPlacementControl spec.pvcSelector,以忽略哪个 DRPlacementControl 保护和管理命名空间中的哪些 PVC 子集。无法使用用户界面为 DRPlacementControl 指定 spec.pvcSelector 字段,因此必须使用命令行删除并创建此类应用程序的 DRPlacementControl。

BZ 参考: [2111163]

6.1.3. 在应用程序故障时处于 Relocating 状态

问题
这个问题可能会在执行故障转移和应用程序的故障后发生(所有节点或集群)。当执行故障恢复应用程序时,会停留在 Relocating 状态,并显示 Waiting for PV restore to complete。
解决方案
使用 S3 客户端或等同从 s3 存储清理重复的 PV 对象。仅保持接近故障转移或重新定位时间的时间戳的那一个。

BZ 参考: [2120201]

6.1.4. 无法使用 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 应用程序:

  1. 使用应用程序命名空间创建一个新项目。(例如: busybox-application
  2. 找到要部署应用的受管集群的标签(例如: drcluster1-jul-6
  3. 使用上一步中创建的受管集群标签在 application-namespace 上创建 PlacementRule CR:

    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      labels:
        app: busybox-application
      name: busybox-application-placementrule-1
      namespace: busybox-application
    spec:
      clusterSelector:
        matchLabels:
          name: drcluster1-jul-6
  4. 在使用 Subscription 应用程序页面中的 RHACM 控制台创建应用程序时,请选择此新的 PlacementRule
  5. 从 YAML 编辑器删除 PlacementRule,以便可以重新使用所选编辑器。

BZ 参考: [2216190]

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.