7.3. 解决集群警报


Red Hat Ceph Storage 集群可以引发的一组有限健康警报,显示在 OpenShift Data Foundation 用户界面中。它们定义为具有唯一标识符的健康警报。标识符是一个伪可读字符串,旨在使工具能够了解健康检查,并以反应其含义的方式呈现它们。点健康警报以了解更多信息和故障排除。

Expand
表 7.1. 集群健康警报的类型
健康警报概述

CephClusterCriticallyFull

存储集群利用率已超过 80%。

CephClusterErrorState

存储集群处于错误状态的时间超过 10 分钟。

CephClusterNearFull

存储集群接近满容量。需要删除数据或集群扩展。

CephClusterReadOnly

存储集群现在是只读的,需要立即删除数据或集群扩展。

CephClusterWarningState

存储集群处于警告状态超过 10 分钟。

CephDataRecoveryTakingTooLong

Data recovery has been active for too long.

CephMdsCacheUsageHigh

MDS 守护进程的 Ceph 元数据服务(MDS)缓存使用情况已超过 mds_cache_memory_limit 的 95%。

CephMdsCpuUsageHigh

MDS 守护进程的 Ceph MDS CPU 使用量超过阈值以达到适当的性能。

CephMdsMissingReplicas

存储元数据服务不可用所需的最小副本。可能会影响存储集群的工作。

CephMgrIsAbsent

Ceph Manager 已从 Prometheus 目标发现中消失。

CephMgrIsMissingReplicas

Ceph 管理器缺少副本。这会破坏健康状态报告,并将导致 ceph status 命令报告的一些信息缺失或过时。此外,Ceph 管理器负责一个管理器框架,旨在扩展 Ceph 的现有功能。

CephMonHighNumberOfLeaderChanges

Ceph 监控领导正在改变异常次数。

CephMonQuorumAtRisk

Storage cluster quorum is low.

CephMonQuorumLost

监控存储集群中的 pod 数量不够。

CephMonVersionMismatch

运行不同版本的 Ceph Mon 组件。

CephNodeDown

存储节点关闭。立即检查节点。该警报应包含节点名称。

CephOSDCriticallyFull

后端对象存储设备(OSD)的利用率已超过 80%。立即释放一些空间或扩展存储集群或联系支持。

CephOSDDiskNotResponding

磁盘设备在其中一个主机上没有响应。

CephOSDDiskUnavailable

其中一个主机上无法访问磁盘设备。

CephOSDFlapping

Ceph 存储 OSD 阻塞.

CephOSDNearFull

其中一个 OSD 存储设备接近满。

CephOSDSlowOps

OSD 请求用时过长才能处理。

CephOSDVersionMismatch

运行不同版本的 Ceph OSD 组件。

CephPGRepairTakingTooLong

自我修复操作用时过长。

CephPoolQuotaBytesCriticallyExhausted

存储池配额使用量已超过 90%。

CephPoolQuotaBytesNearExhaustion

存储池配额使用量已超过 70%。

OSDCPULoadHigh

特定 pod 上的 OSD 容器中的 CPU 使用量超过 80%,可能会影响 OSD 的性能。

PersistentVolumeUsageCritical

持久性卷声明用量超过其容量的 85%。

PersistentVolumeUsageNearFull

持久性卷声明用量超过 75% 的容量。

7.3.1. CephClusterCriticallyFull

含义

存储集群利用率已超过 80%,并将在 85% 时变得只读。当利用率超过 85% 后,Ceph 集群将变为只读。立即释放一些空间或立即扩展存储集群。在此警报之前,通常会看到与 Object Storage Device (OSD)已满或接近满相关的警报。

影响

high

诊断

扩展存储
根据集群的类型,您需要添加存储设备、节点或两者。如需更多信息,请参阅扩展存储指南

缓解方案

删除信息
如果无法扩展集群,则需要删除信息以释放一些空间。

7.3.2. CephClusterErrorState

含义

此警报反映了存储集群在不可接受的时间内处于 ERROR 状态,这会导致存储可用性。检查在此之前触发的其他警报,并首先对这些警报进行故障排除。

影响

critical

诊断

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    $ oc get pod | grep rook-ceph
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a rook-ceph that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要
    • 如果分配了节点,请检查节点上的 kubelet。
    • 如果正在运行的 pod 的基本健康状况,验证节点上的节点关联性和资源可用性,请运行 Ceph 工具来获取存储组件的状态。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:

    $ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
    Copy to Clipboard Toggle word wrap

7.3.3. CephClusterNearFull

含义

存储集群利用率已超过 75%,并将在 85% 时变得只读。释放一些空间或扩展存储集群。

影响

critical

诊断

扩展存储
根据集群的类型,您需要添加存储设备、节点或两者。如需更多信息,请参阅扩展存储指南

缓解方案

删除信息
如果无法扩展集群,则需要删除信息以释放一些空间。

7.3.4. CephClusterReadOnly

含义

Storage cluster utilization has crossed 85%,现在将变为只读。立即释放一些空间或立即扩展存储集群。

影响

critical

诊断

扩展存储
根据集群的类型,您需要添加存储设备、节点或两者。如需更多信息,请参阅扩展存储指南

缓解方案

删除信息
如果无法扩展集群,则需要删除信息以释放一些空间。

7.3.5. CephClusterWarningState

含义

此警报反映了存储集群在不可接受的时间处于警告状态。虽然存储操作将继续在这个状态下工作,但建议修复错误,以便集群不会处于错误状态。检查此之前可能触发的其他警报,并首先对这些警报进行故障排除。

影响

high

诊断

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep {ceph-component}
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要

    如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.6. CephDataRecoveryTakingTooLong

含义

Data recovery is slow。检查所有对象存储设备(OSD)是否已启动并在运行。

影响

high

诊断

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep rook-ceph-osd
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要

    如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.7. CephMdsCacheUsageHigh

含义

当存储元数据服务(MDS)无法将其缓存使用量保留在 mds_health_cache_threshold 指定的目标阈值下,或由 mds_cache_memory_limit 设置的 150% 的缓存限制,MDS 将健康警报发送到 monitor,表示缓存太大。因此,与 MDS 相关的操作会较慢。

影响

high

诊断

MDS 会尝试在其缓存中修剪未使用的元数据并调用客户端缓存中缓存的项目,以保留 mds_cache_memory_limit 的保留。由于多个客户端通过处理文件,因此 MDS 可能会超出这个限制,因为客户端重新调用了这个限制。

缓解方案

确保为 MDS 缓存置备了足够的内存。MDS pod 的内存资源需要在 ocs-storageCluster 中更新,以增加 mds_cache_memory_limit。运行以下命令来设置 MDS pod 的内存,如 16GB:

$ oc patch -n openshift-storage storagecluster ocs-storagecluster \
    --type merge \
    --patch '{"spec": {"resources": {"mds": {"limits": {"memory": "16Gi"},"requests": {"memory": "16Gi"}}}}}'
Copy to Clipboard Toggle word wrap

OpenShift Data Foundation 自动将 mds_cache_memory_limit 设置为 MDS pod 内存限值的一半。如果使用上一命令将内存设置为 8GB,则 operator 会将 MDS 缓存内存限值设置为 4GB。

7.3.8. CephMdsCpuUsageHigh

含义

存储元数据服务(MDS)提供文件系统元数据。MDS 对于任何文件创建、重命名、删除和更新操作至关重要。默认情况下,MDS 被分配两个或三个 CPU。只要没有太多元数据操作,这就不会造成问题。当元数据操作负载增加足以触发此警报时,这意味着默认的 CPU 分配无法与负载一起正常工作。您需要提高 CPU 分配或运行多个活跃 MDS 服务器。

影响

high

诊断

Workloads Pods。选择对应的 MDS pod,再点 Metrics 选项卡。您将看到已分配和使用的 CPU。默认情况下,如果使用的 CPU 为 67% 的 CPU 为 6 小时,则会触发警报。如果是这种情况,请按照缓解方案部分中的步骤操作。

缓解方案

您需要增加分配的 CPU 或运行多个活跃 MDS。

使用以下命令为 MDS 设置分配的 CPU 数量,例如 8:

oc patch -n openshift-storage storagecluster ocs-storagecluster \
    --type merge \
    --patch '{"spec": {"resources": {"mds": {"limits": {"cpu": "8"},
    "requests": {"cpu": "8"}}}}}'
Copy to Clipboard Toggle word wrap

要运行多个活跃 MDS 服务器,请使用以下命令:

oc patch -n openshift-storage storagecluster ocs-storagecluster\
    --type merge \
    --patch '{"spec": {"managedResources": {"cephFilesystems":{"activeMetadataServers": 2}}}}'
Copy to Clipboard Toggle word wrap

请确定您有足够的 CPU 为 MDS 置备,具体取决于负载。

重要

始终通过 1 增加 activeMetadataServers。只有在您有多个 PV 时,activeMetadataServers 的扩展才可以正常工作。如果只有一个 PV 导致 CPU 负载,请查看增加 CPU 资源,如上所述。

7.3.9. CephMdsMissingReplicas

含义

存储元数据服务(MDS)的最低要求副本不可用。MDS 负责归档元数据。MDS 服务降级可能会影响存储集群的工作方式(与 CephFS 存储类相关),应尽快修复。

影响

high

诊断

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep rook-ceph-mds
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要

    如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.10. CephMgrIsAbsent

含义

没有 Ceph 管理器运行集群的监控。持久性卷声明(PVC)创建和删除请求应尽快解决。

影响

high

诊断

  • 验证 rook-ceph-mgr pod 失败,并根据需要重启。如果 Ceph mgr pod 重启失败,请按照常规 pod 故障排除来解决这个问题。

    • 验证 Ceph mgr pod 是否失败:

      $ oc get pods | grep mgr
      Copy to Clipboard Toggle word wrap
    • 描述 Ceph mgr pod 以了解更多详细信息:

      $ oc describe pods/<pod_name>
      Copy to Clipboard Toggle word wrap
      <pod_name>
      指定上一步中的 rook-ceph-mgr pod 名称。

      分析与资源问题相关的错误。

    • 删除 pod,并等待 pod 重启:

      $ oc get pods | grep mgr
      Copy to Clipboard Toggle word wrap

按照以下步骤进行一般 pod 故障排除:

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep rook-ceph-mgr
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要

    如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.11. CephMgrIsMissingReplicas

含义

要解决此警报,您需要确定 Ceph 管理器消失的原因,并在需要时重启。

影响

high

诊断

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep rook-ceph-mgr
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要

    如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.12. CephMonHighNumberOfLeaderChanges

含义

在 Ceph 集群中,有一组冗余监控 pod,它们存储了关于存储集群的重要信息。定期监控 pod 同步,以获取有关存储集群的信息。第一个监控 pod,以获取最新信息成为领导信息,其他监控 pod 将在请求领导后启动其同步过程。在一个或多个 monitor pod 中网络连接或其他类型的问题会造成领导异常更改。这种情况可能会对存储集群性能造成负面影响。

影响

重要

检查是否存在网络问题。如果存在网络问题,则需要升级到 OpenShift Data Foundation 团队,然后才能进行以下故障排除步骤。

诊断

  1. 输出受影响监控 pod 的日志,以收集有关此问题的更多信息:

    $ oc logs <rook-ceph-mon-X-yyyy> -n openshift-storage
    Copy to Clipboard Toggle word wrap
    <rook-ceph-mon-X-yyyy>
    指定受影响的 monitor pod 的名称。
  2. 或者,使用 Openshift Web 控制台打开受影响监控 pod 的日志。有关可能原因的更多信息会在日志中反映。
  3. 执行常规 pod 故障排除步骤:

    Pod 状态:待处理
  4. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep {ceph-component}
    Copy to Clipboard Toggle word wrap
  5. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  6. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
    Pod 状态:Not pending, running, but not ready
    • 检查就绪度探测:
    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    Pod status: NOT pending, but not running
    • 检查应用程序或镜像问题:
    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要

    如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.13. CephMonQuorumAtRisk

含义

多个 MON 协同工作,以提供冗余。每个 MON 都保留元数据的副本。集群使用 3 个 MON 部署,需要启动并运行 2 个或更多 MON,以便运行存储操作。如果丢失仲裁,对数据的访问会面临风险。

影响

high

诊断

恢复 Ceph MON 仲裁。如需更多信息,请参阅故障排除指南中的 在 OpenShift Data Foundation 中恢复 ceph-monitor 仲裁https://docs.redhat.com/en/documentation/red_hat_openshift_data_foundation/4.17/html-single/troubleshooting_openshift_data_foundation/index#restoring-ceph-monitor-quorum-in-openshift-data-foundation_rhodf如果 Ceph MON Quorum 恢复失败,请按照一般的 pod 故障排除来解决这个问题。

对常规 pod 故障排除执行以下操作:

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep rook-ceph-mon
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:
$ oc describe pod/${MYPOD}
Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:
$ oc logs pod/${MYPOD}
Copy to Clipboard Toggle word wrap
重要

如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.14. CephMonQuorumLost

含义

在 Ceph 集群中,有一组冗余监控 pod,它们存储了关于存储集群的重要信息。定期监控 pod 同步,以获取有关存储集群的信息。第一个监控 pod,以获取最新信息成为领导信息,其他监控 pod 将在请求领导后启动其同步过程。在一个或多个 monitor pod 中网络连接或其他类型的问题会造成领导异常更改。这种情况可能会对存储集群性能造成负面影响。

影响

high

重要

检查是否存在网络问题。如果存在网络问题,则需要升级到 OpenShift Data Foundation 团队,然后才能进行以下故障排除步骤。

诊断

恢复 Ceph MON 仲裁。如需更多信息,请参阅故障排除指南中的 在 OpenShift Data Foundation 中恢复 ceph-monitor 仲裁https://docs.redhat.com/en/documentation/red_hat_openshift_data_foundation/4.17/html-single/troubleshooting_openshift_data_foundation/index#restoring-ceph-monitor-quorum-in-openshift-data-foundation_rhodf如果 Ceph MON Quorum 恢复失败,请按照一般的 pod 故障排除来解决这个问题。

或者,执行常规 pod 故障排除:

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    oc get pod | grep {ceph-component}
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a {ceph-component}  that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:
$ oc describe pod/${MYPOD}
Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:
$ oc logs pod/${MYPOD}
Copy to Clipboard Toggle word wrap
重要

如果分配了节点,请检查节点上的 kubelet。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
Copy to Clipboard Toggle word wrap

7.3.15. CephMonVersionMismatch

含义

通常,这个警报会在升级过程中触发,这需要很长时间。

影响

诊断

检查 ocs-operator 订阅状态和 Operator pod 健康状况,以检查 Operator 升级是否正在进行。

  1. 检查 ocs-operator 订阅健康状况。

    $ oc get sub $(oc get pods -n openshift-storage | grep -v ocs-operator) -n openshift-storage -o json | jq .status.conditions
    Copy to Clipboard Toggle word wrap

    状态条件类型是 CatalogSourcesUnhealthyInstallPlanMissingInstallPlanPendingInstallPlanFailed。每种类型的状态应当是 False

    输出示例:

    [
      {
        "lastTransitionTime": "2021-01-26T19:21:37Z",
        "message": "all available catalogsources are healthy",
        "reason": "AllCatalogSourcesHealthy",
        "status": "False",
        "type": "CatalogSourcesUnhealthy"
      }
    ]
    Copy to Clipboard Toggle word wrap

    示例输出显示类型为 CatalogSourcesUnHealthlyFalse 状态,这意味着目录源处于健康状态。

  2. 检查 OCS operator pod 状态,以查看是否有 OCS operator 升级正在进行。

    $ oc get pod -n openshift-storage | grep ocs-operator OCSOP=$(oc get pod -n openshift-storage -o custom-columns=POD:.metadata.name --no-headers | grep ocs-operator) echo $OCSOP oc get pod/${OCSOP} -n openshift-storage oc describe pod/${OCSOP} -n openshift-storage
    Copy to Clipboard Toggle word wrap

    如果您确定 'ocs-operator' 处于 progress 状态,请等待 5 分钟,此警报应该解析自己。如果您等待或看到不同的错误状态条件,请继续故障排除。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:

    $ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
    Copy to Clipboard Toggle word wrap

7.3.16. CephNodeDown

含义

运行 Ceph pod 的节点已停机。虽然存储操作将继续,因为 Ceph 旨在处理节点故障,但建议解决这个问题,以最大程度降低另一个节点停机并影响存储功能的风险。

影响

诊断

  1. 列出运行和失败的所有 pod:

    oc -n openshift-storage get pods
    Copy to Clipboard Toggle word wrap
    重要

    确保您满足 OpenShift Data Foundation 资源要求,以便对象存储设备(OSD) pod 调度到新节点上。这可能需要几分钟时间,因为 Ceph 集群恢复失败的数据,但现在恢复 OSD。要观察此恢复操作,请确保 OSD pod 被正确放置到新的 worker 节点上。

  2. 检查之前失败的 OSD pod 现在是否正在运行:

    oc -n openshift-storage get pods
    Copy to Clipboard Toggle word wrap

    如果之前没有调度 OSD pod 失败,请使用 describe 命令并检查事件,因为 pod 没有重新调度。

  3. 描述故障 OSD pod 的事件:

    oc -n openshift-storage get pods | grep osd
    Copy to Clipboard Toggle word wrap
  4. 查找一个或多个故障 OSD pod:

    oc -n openshift-storage describe pods/<osd_podname_ from_the_ previous step>
    Copy to Clipboard Toggle word wrap

    在 events 部分中,查找失败的原因,如资源不会被满足。

    另外,您可以使用 rook-ceph-toolbox 来监视恢复。此步骤是可选的,但对大型 Ceph 集群非常有用。要访问 toolbox,请运行以下命令:

    TOOLS_POD=$(oc get pods -n openshift-storage -l app=rook-ceph-tools -o name)
    oc rsh -n openshift-storage $TOOLS_POD
    Copy to Clipboard Toggle word wrap

    在 rsh 命令提示符中运行以下命令,并在 io 部分下监视 "recovery":

    ceph status
    Copy to Clipboard Toggle word wrap
  5. 确定是否有失败的节点。

    1. 获取 worker 节点列表,并检查节点状态:

      oc get nodes --selector='node-role.kubernetes.io/worker','!node-role.kubernetes.io/infra'
      Copy to Clipboard Toggle word wrap
    2. 描述处于 NotReady 状态的节点,以获取有关故障的更多信息:

      oc describe node <node_name>
      Copy to Clipboard Toggle word wrap

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:

    $ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
    Copy to Clipboard Toggle word wrap

7.3.17. CephOSDCriticallyFull

含义

一个对象存储设备(OSD)非常满。立即扩展集群。

影响

high

诊断

删除数据以释放存储空间
您可以删除数据,集群将通过自我修复进程解析警报。
重要

这只适用于接近或满的 OpenShift Data Foundation 集群,但不适用于只读模式。只读模式可防止任何包括删除数据的更改,即删除持久性卷声明(PVC)、持久性卷(PV)或两者。

扩展存储容量
当前存储大小小于 1 TB

您必须首先评估扩展能力。对于每个添加 1 TB 的存储,集群需要有 3 个节点,每个节点至少有 2 个 vCPU 和 8 GiB 内存。

您可以通过附加组件将存储容量增加到 4 TB,集群将通过自我修复过程解析警报。如果没有满足最小 vCPU 和内存资源要求,则需要在集群中添加 3 个额外的 worker 节点。

缓解方案

  • 如果您的当前存储大小等于 4 TB,请联系红帽支持。
  • 可选: 运行以下命令为 Ceph 集群收集调试信息:

    $ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
    Copy to Clipboard Toggle word wrap

7.3.18. CephOSDDiskNotResponding

含义

磁盘设备没有响应。检查所有对象存储设备(OSD)是否已启动并在运行。

影响

诊断

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    $ oc get pod | grep rook-ceph
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a rook-ceph that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要
    • 如果分配了节点,请检查节点上的 kubelet。
    • 如果正在运行的 pod 的基本健康状况,验证节点上的节点关联性和资源可用性,请运行 Ceph 工具来获取存储组件的状态。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:

    $ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
    Copy to Clipboard Toggle word wrap

7.3.19. CephOSDDiskUnavailable

含义

在其中一个主机上无法访问磁盘设备,其对应的对象存储设备(OSD)由 Ceph 集群标记为 out。当 Ceph 节点无法在 10 分钟内恢复时,会引发此警报。

影响

high

诊断

确定失败的节点
  1. 获取 worker 节点列表,并检查节点状态:
oc get nodes --selector='node-role.kubernetes.io/worker','!node-role.kubernetes.io/infra'
Copy to Clipboard Toggle word wrap
  1. 描述处于 NotReady 状态的节点,以便在失败时获取更多信息:

    oc describe node <node_name>
    Copy to Clipboard Toggle word wrap

7.3.20. CephOSDFlapping

含义

存储守护进程在最后 5 分钟内重启 5 次。检查 pod 事件或 Ceph 状态以查找原因。

影响

high

诊断

按照 Red Hat Ceph Storage 故障排除指南中的 Flapping OSD 部分中的步骤进行操作。

或者,按照常规 pod 故障排除的步骤进行操作:

Pod 状态:待处理
  1. 检查资源问题、待处理的 PVC、节点分配和 kubelet 问题:

    $ oc project openshift-storage
    Copy to Clipboard Toggle word wrap
    $ oc get pod | grep rook-ceph
    Copy to Clipboard Toggle word wrap
  2. MYPOD 设置为 pod 的 变量,该变量被识别为问题 pod:

    # Examine the output for a rook-ceph that is in the pending state, not running or not ready
    MYPOD=<pod_name>
    Copy to Clipboard Toggle word wrap
    <pod_name>
    指定识别为问题 pod 的 pod 的名称。
  3. 查找资源限制或待处理的 PVC。否则,检查节点分配:

    $ oc get pod/${MYPOD} -o wide
    Copy to Clipboard Toggle word wrap
Pod 状态:Not pending, running, but not ready
  • 检查就绪度探测:

    $ oc describe pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
Pod status: NOT pending, but not running
  • 检查应用程序或镜像问题:

    $ oc logs pod/${MYPOD}
    Copy to Clipboard Toggle word wrap
    重要
    • 如果分配了节点,请检查节点上的 kubelet。
    • 如果正在运行的 pod 的基本健康状况,验证节点上的节点关联性和资源可用性,请运行 Ceph 工具来获取存储组件的状态。

缓解方案

调试日志信息
  • 此步骤是可选的。运行以下命令为 Ceph 集群收集调试信息:

    $ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.15
    Copy to Clipboard Toggle word wrap

7.3.21. CephOSDNearFull

含义

在主机上,后端存储设备对象存储设备(OSD)的利用率已超过 75%。

影响

high

缓解方案

在集群中释放一些空间,扩展存储集群,或联系红帽支持。如需有关扩展存储的更多信息,请参阅扩展存储指南

7.3.22. CephOSDSlowOps

含义

请求较慢的对象存储设备(OSD)是,每个 OSD 无法在 osd_op_complaint_time 参数定义的时间内每秒服务 I/O 操作数(IOPS)。默认情况下,此参数设置为 30 秒。

影响

诊断

如需有关较慢请求的更多信息,可以使用 Openshift 控制台获得。

  1. 访问 OSD pod 终端,并运行以下命令:

    $ ceph daemon osd.<id> ops
    Copy to Clipboard Toggle word wrap
    $ ceph daemon osd.<id> dump_historic_ops
    Copy to Clipboard Toggle word wrap
    注意

    pod 名称中看到 OSD 的数量。例如,在 rook-ceph-osd-0-5d86d4d8d4-zlqkx 中,&lt;0&gt; 是 OSD。

缓解方案

OSD 请求缓慢的主要原因是:

  • 底层硬件或基础架构的问题,如磁盘驱动器、主机、机架或网络交换机。使用 Openshift 监控控制台查找集群资源的警报或错误。这可让您了解 OSD 中缓慢操作的根本原因。
  • 与网络相关的问题。这些问题通常与 flapping OSD 连接。请参阅 Red Hat Ceph Storage Troubleshooting Guide 中的 Flapping OSDs 部分
  • 如果是网络问题,请升级到 OpenShift Data Foundation 团队
  • 系统负载。使用 Openshift 控制台查看 OSD pod 的指标和运行 OSD 的节点。添加或分配更多资源可以是可能的解决方案。

7.3.23. CephOSDVersionMismatch

含义

通常,这个警报会在升级过程中触发,这需要很长时间。

影响

诊断

检查 ocs-operator 订阅状态和 Operator pod 健康状况,以检查 Operator 升级是否正在进行。

  1. 检查 ocs-operator 订阅健康状况。

    $ oc get sub $(oc get pods -n openshift-storage | grep -v ocs-operator) -n openshift-storage -o json | jq .status.conditions
    Copy to Clipboard Toggle word wrap

    状态条件类型是 CatalogSourcesUnhealthyInstallPlanMissingInstallPlanPendingInstallPlanFailed。每种类型的状态应当是 False

    输出示例:

    [
      {
        "lastTransitionTime": "2021-01-26T19:21:37Z",
        "message": "all available catalogsources are healthy",
        "reason": "AllCatalogSourcesHealthy",
        "status": "False",
        "type": "CatalogSourcesUnhealthy"
      }
    ]
    Copy to Clipboard Toggle word wrap

    示例输出显示类型为 CatalogSourcesUnHealthlyFalse 状态,这意味着目录源处于健康状态。

  2. 检查 OCS operator pod 状态,以查看是否有 OCS operator 升级正在进行。

    $ oc get pod -n openshift-storage | grep ocs-operator OCSOP=$(oc get pod -n openshift-storage -o custom-columns=POD:.metadata.name --no-headers | grep ocs-operator) echo $OCSOP oc get pod/${OCSOP} -n openshift-storage oc describe pod/${OCSOP} -n openshift-storage
    Copy to Clipboard Toggle word wrap

    如果您确定 'ocs-operator' 处于 progress 状态,请等待 5 分钟,此警报应该解析自己。如果您等待或看到不同的错误状态条件,请继续故障排除。

7.3.24. CephPGRepairTakingTooLong

含义

自我修复操作用时过长。

影响

high

诊断

检查放置组(PG)不一致,并修复它们。有关更多信息,请参阅 Ceph 中的红帽知识库解决方案 Handle Inconsistent Placement Groups

7.3.25. CephPoolQuotaBytesCriticallyExhausted

含义

已达到一个或多个池,或者接近其配额。触发此错误条件的阈值由 mon_pool_quota_crit_threshold 配置选项控制。

影响

high

缓解方案

调整池配额。运行以下命令以完全删除或调整池配额:

ceph osd pool set-quota <pool> max_bytes <bytes>
Copy to Clipboard Toggle word wrap
ceph osd pool set-quota <pool> max_objects <objects>
Copy to Clipboard Toggle word wrap

将 quota 值设置为 0 将禁用配额。

7.3.26. CephPoolQuotaBytesNearExhaustion

含义

一个或多个池正在接近配置的全度阈值。触发此警告条件的一个阈值是 mon_pool_quota_warn_threshold 配置选项。

影响

high

缓解方案

调整池配额。运行以下命令以完全删除或调整池配额:

ceph osd pool set-quota <pool> max_bytes <bytes>
Copy to Clipboard Toggle word wrap
ceph osd pool set-quota <pool> max_objects <objects>
Copy to Clipboard Toggle word wrap

将 quota 值设置为 0 将禁用配额。

7.3.27. OSDCPULoadHigh

含义

OSD 是 Ceph 存储中的一个关键组件,负责管理数据放置和恢复。OSD 容器中的高 CPU 使用量建议增加处理需求,这可能会降低存储性能。

影响

high

诊断

  1. 导航到 Kubernetes 仪表板或等同功能。
  2. 访问 Workloads 部分,再选择与 OSD 警报关联的相关 pod。
  3. 单击 Metrics 选项卡,以查看 OSD 容器的 CPU 指标。
  4. 验证 CPU 用量在一段时间内超过 80%(如警报配置中指定的情况)。

缓解方案

如果 OSD CPU 使用量始终高,请考虑执行以下步骤:

  1. 评估整个存储集群性能,并确定 OSD 为高 CPU 使用量做出贡献。
  2. 通过在现有节点上添加更多新存储设备或使用新存储设备添加新节点来增加集群中的 OSD 数量。查看 扩展存储4 以获得帮助分发负载并提高整体系统性能的说明。

7.3.28. PersistentVolumeUsageCritical

含义

持久性卷声明(PVC)接近其全部容量,如果未及时参加,则可能会导致数据丢失。

影响

high

缓解方案

扩展 PVC 大小以增加容量。

  1. 登录 OpenShift Web 控制台。
  2. Storage PersistentVolumeClaim
  3. Project 下拉列表中选择 openshift-storage
  4. 在您要展开的 PVC 中,点击 Action 菜单(&&) Expand PVC
  5. 总大小 更新为所需的大小。
  6. 单击 Expand

或者,您可以删除可能会占用空间的不必要的数据。

7.3.29. PersistentVolumeUsageNearFull

含义

持久性卷声明(PVC)接近其全部容量,如果未及时参加,则可能会导致数据丢失。

影响

high

缓解方案

扩展 PVC 大小以增加容量。

  1. 登录 OpenShift Web 控制台。
  2. Storage PersistentVolumeClaim
  3. Project 下拉列表中选择 openshift-storage
  4. 在您要展开的 PVC 中,点击 Action 菜单(&&) Expand PVC
  5. 总大小 更新为所需的大小。
  6. 单击 Expand

或者,您可以删除可能会占用空间的不必要的数据。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat