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 has disappeared from Prometheus target discovery.

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)已满或接近满相关的警报。

影响

诊断

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

缓解方案

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

7.3.2. CephClusterErrorState

含义

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

影响

Critical

诊断

Pod 状态:Pending
  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 状态: 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

含义

存储集群利用率已超过 85%,现在将变为只读。释放一些空间或立即扩展存储集群。

影响

Critical

诊断

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

缓解方案

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

7.3.5. CephClusterWarningState

含义

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

影响

诊断

Pod 状态:Pending
  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 状态: 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

含义

数据恢复速度较慢。检查所有对象存储设备(OSD)是否已启动并运行。

影响

诊断

Pod 状态:Pending
  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 状态: 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 相关的操作会较慢。

影响

诊断

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 服务器。

影响

诊断

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

缓解方案

您需要垂直或 CPU 的水平扩展。如需更多信息,请参阅警报的 Description 和 Runbook 部分。

使用以下命令为 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 存储类相关),并应尽快修复。

影响

诊断

Pod 状态:Pending
  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 状态: 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)创建和删除请求。

影响

诊断

  • 验证 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 状态:Pending
  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 状态: 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 管理器消失的原因,并在需要时重新启动。

影响

诊断

Pod 状态:Pending
  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 状态: 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 集群中,有一组冗余的 monitor pod,用于存储有关存储集群的重要信息。定期监控 pod 同步,以获取有关存储集群的信息。第一个监控 pod 获取最新更新的信息成为领导信息,其他监控容器集将在询问领导后启动其同步过程。在一个或多个 monitor pod 中网络连接或其他类型问题会造成不必要的变化。这种情形可能会对存储集群性能造成负面影响。

影响

Medium

重要

检查是否有网络问题。如果存在网络问题,则需要在进行以下任何故障排除步骤前升级到 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 状态:Pending
  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 状态: 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 上线并运行仲裁,以及运行存储操作。如果仲裁丢失,对数据的访问将面临风险。

影响

诊断

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

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

Pod 状态:Pending
  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 状态: 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 集群中,有一组冗余的 monitor pod,用于存储有关存储集群的重要信息。定期监控 pod 同步,以获取有关存储集群的信息。第一个监控 pod 获取最新更新的信息成为领导信息,其他监控容器集将在询问领导后启动其同步过程。在一个或多个 monitor pod 中网络连接或其他类型问题会造成不必要的变化。这种情形可能会对存储集群性能造成负面影响。

影响

重要

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

诊断

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

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

Pod 状态:Pending
  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 状态: 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

含义

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

影响

Medium

诊断

检查 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

    状态条件类型是 CatalogSourcesUnhealthy,InstallPlanMissing,InstallPlanPending, 和 InstallPlanFailed。每种类型的状态应当是 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

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

  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"正在进行中,请等待 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 旨在处理节点故障,但建议解决这个问题,以最大程度降低另一个节点停机并影响存储功能的风险。

影响

Medium

诊断

  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)的可以空间几乎已用完。立即扩展集群。

影响

诊断

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

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

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

您必须首先评估扩展的功能。对于添加的每个 1TB 存储,集群需要有 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)是否已启动并运行。

影响

Medium

诊断

Pod 状态:Pending
  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 状态: 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 分钟内恢复时,会引发此警报。

影响

诊断

确定失败的节点
  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 状态,以查找原因。

影响

诊断

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

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

Pod 状态:Pending
  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 状态: 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%。

影响

缓解方案

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

7.3.22. CephOSDSlowOps

含义

请求速度较慢的 OSD 是每个无法在 osd_op_complaint_time 参数定义的时间内队列中每秒 I/O 操作(IOPS)服务的 OSD。默认情况下,此参数被设置为 30 秒。

影响

Medium

诊断

有关使用 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
    注意

    OSD 的数量在容器集名称中看到。例如,在 rook-ceph-osd-0-5d86d4d8d4-zlqkx 中,<0> 是 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

含义

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

影响

Medium

诊断

检查 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

    状态条件类型是 CatalogSourcesUnhealthy,InstallPlanMissing,InstallPlanPending, 和 InstallPlanFailed。每种类型的状态应当是 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

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

  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"正在进行中,请等待 5 分钟,并且此警报应自行解决。如果您等待或看到不同的错误状态条件,请继续故障排除。

7.3.24. CephPGRepairTakingTooLong

含义

自我修复操作用时过长。

影响

诊断

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

7.3.25. CephPoolQuotaBytesCriticallyExhausted

含义

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

影响

缓解方案

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

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

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

7.3.26. CephPoolQuotaBytesNearExhaustion

含义

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

影响

缓解方案

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

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

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

7.3.27. OSDCPULoadHigh

含义

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

影响

诊断

  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)接近其完整容量,如果未及时处理,可能会导致数据丢失。

影响

缓解方案

扩展 PVC 大小以增加容量。

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

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

7.3.29. PersistentVolumeUsageNearFull

含义

持久性卷声明(PVC)接近其完整容量,如果未及时处理,可能会导致数据丢失。

影响

缓解方案

扩展 PVC 大小以增加容量。

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

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat