7.3. 解决集群警报
Red Hat Ceph Storage 集群可以引发的一组有限健康警报,显示在 OpenShift Data Foundation 用户界面中。它们定义为具有唯一标识符的健康警报。标识符是一个制表伪可读字符串,旨在使工具能够理解健康检查,并以反应其含义的方式呈现它们。点健康警报以了解更多信息和故障排除。
健康警报 | 概述 |
---|---|
存储集群利用率已超过 80%。 | |
存储集群处于错误状态的时间已超过 10 分钟。 | |
存储集群接近满容量。需要删除数据或集群扩展。 | |
存储集群现在是只读的,需要立即删除数据或集群扩展。 | |
存储集群处于警告状态超过 10 分钟。 | |
Data recovery has been active for too long. | |
MDS 守护进程的 Ceph 元数据服务(MDS)缓存使用情况已超过 | |
MDS 守护进程的 Ceph MDS CPU 使用量超过阈值以达到适当的性能。 | |
存储元数据服务不可用所需的最小副本。可能会影响存储集群的工作。 | |
Ceph Manager has disappeared from Prometheus target discovery. | |
Ceph 管理器缺少副本。这会破坏健康状态报告,并将导致 | |
Ceph 监控领导正在改变异常次数。 | |
Storage cluster quorum is low. | |
存储集群中的监控 pod 数量不够。 | |
运行 Ceph Mon 组件的不同版本。 | |
存储节点停机。立即检查节点。该警报应包含节点名称。 | |
后端对象存储设备(OSD)的利用率已超过 80%。立即释放一些空间或扩展存储集群或联系支持。 | |
磁盘设备没有在其中一个主机上响应。 | |
一个主机上无法访问磁盘设备。 | |
Ceph 存储 OSD 阻塞。 | |
其中一个 OSD 存储设备接近满。 | |
OSD 请求需要很长时间才能进行处理。 | |
运行 Ceph OSD 组件的不同版本。 | |
自我修复操作用时过长。 | |
存储池配额使用量已超过 90%。 | |
存储池配额使用量已超过 70%。 | |
特定 pod 上的 OSD 容器中的 CPU 使用量超过 80%,可能会影响 OSD 的性能。 | |
持久性卷声明使用量已超过 85% 的容量。 | |
持久性卷声明使用量已超过 75% 的容量。 |
7.3.1. CephClusterCriticallyFull 复制链接链接已复制到粘贴板!
含义 | 存储集群利用率已超过 80%,并将在 85% 时变得只读。超过 85% 的利用率后,您的 Ceph 集群将变得只读。释放一些空间或立即扩展存储集群。在此警报之前,通常会看到与 Object Storage Device (OSD)已满或接近满相关的警报。 |
影响 | 高 |
诊断
- 扩展存储
- 根据集群的类型,您需要添加存储设备、节点或两者。如需更多信息,请参阅扩展存储指南。
缓解方案
- 删除信息
- 如果无法扩展集群,则需要删除信息以释放一些空间。
7.3.2. CephClusterErrorState 复制链接链接已复制到粘贴板!
含义 |
此警报反映了存储集群在不可接受的时间内处于 |
影响 | Critical |
诊断
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph
$ oc get pod | grep rook-ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a rook-ceph that is in the pending state, not running or not ready
# Examine the output for a rook-ceph that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要- 如果分配了节点,请检查节点上的 kubelet。
- 如果正在运行的 pod 的基本健康状况,则验证节点上的节点关联性和资源可用性,请运行 Ceph 工具来获取存储组件的状态。
缓解方案
- 调试日志信息
此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.3. CephClusterNearFull 复制链接链接已复制到粘贴板!
含义 | 存储集群利用率已超过 75%,并将在 85% 时变得只读。释放一些空间或扩展存储集群。 |
影响 | Critical |
诊断
- 扩展存储
- 根据集群的类型,您需要添加存储设备、节点或两者。如需更多信息,请参阅扩展存储指南。
缓解方案
- 删除信息
- 如果无法扩展集群,则需要删除信息来释放一些空间。
7.3.4. CephClusterReadOnly 复制链接链接已复制到粘贴板!
含义 | 存储集群利用率已超过 85%,现在将变为只读。释放一些空间或立即扩展存储集群。 |
影响 | Critical |
诊断
- 扩展存储
- 根据集群的类型,您需要添加存储设备、节点或两者。如需更多信息,请参阅扩展存储指南。
缓解方案
- 删除信息
- 如果无法扩展集群,则需要删除信息来释放一些空间。
7.3.5. CephClusterWarningState 复制链接链接已复制到粘贴板!
含义 | 此警报反映了存储集群在不可接受的时间处于警告状态。虽然存储操作将继续在这个状态下工作,但建议修复错误,以便集群不会处于错误状态。检查之前可能触发的其他警报,并首先对这些警报进行故障排除。 |
影响 | 高 |
诊断
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep {ceph-component}
oc get pod | grep {ceph-component}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.6. CephDataRecoveryTakingTooLong 复制链接链接已复制到粘贴板!
含义 | 数据恢复速度较慢。检查所有对象存储设备(OSD)是否已启动并运行。 |
影响 | 高 |
诊断
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph-osd
oc get pod | grep rook-ceph-osd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.7. CephMdsCacheUsageHigh 复制链接链接已复制到粘贴板!
含义 |
当存储元数据服务(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"}}}}}'
$ oc patch -n openshift-storage storagecluster ocs-storagecluster \
--type merge \
--patch '{"spec": {"resources": {"mds": {"limits": {"memory": "16Gi"},"requests": {"memory": "16Gi"}}}}}'
OpenShift Data Foundation 自动将 mds_cache_memory_limit
设置为 MDS pod 内存限值的一半。如果使用上一命令将内存设置为 8GB,则 operator 会将 MDS 缓存内存限值设置为 4GB。
7.3.8. CephMdsCpuUsageHigh 复制链接链接已复制到粘贴板!
含义 | 存储元数据服务(MDS)提供文件系统元数据。MDS 对于任何文件创建、重命名、删除和更新操作至关重要。默认情况下,MDS 被分配两个或三个 CPU。只要没有太多元数据操作,这就不会造成问题。当元数据操作负载增加足以触发此警报时,这意味着默认的 CPU 分配无法与负载一起正常工作。您需要提高 CPU 分配。 |
影响 | 高 |
诊断
点击 Workloads
缓解方案
您需要增加分配的 CPU。
使用以下命令为 MDS 设置分配的 CPU 数量,例如 8
:
oc patch -n openshift-storage storagecluster ocs-storagecluster \ --type merge \ --patch '{"spec": {"resources": {"mds": {"limits": {"cpu": "8"},
$ oc patch -n openshift-storage storagecluster ocs-storagecluster \
--type merge \
--patch '{"spec": {"resources": {"mds": {"limits": {"cpu": "8"},
"requests": {"cpu": "8"}}}}}'
7.3.9. CephMdsMissingReplicas 复制链接链接已复制到粘贴板!
含义 | 存储元数据服务(MDS)的最低副本不可用。MDS 负责填充元数据。MDS 服务的降级可能会影响存储集群的工作方式(与 CephFS 存储类相关),并应尽快修复。 |
影响 | 高 |
诊断
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph-mds
oc get pod | grep rook-ceph-mds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.10. CephMgrIsAbsent 复制链接链接已复制到粘贴板!
含义 | 没有 Ceph 管理器运行集群的监控。创建和删除请求应尽快解决持久性卷声明(PVC)创建和删除请求。 |
影响 | 高 |
诊断
验证
rook-ceph-mgr
pod 失败,并在需要时重启。如果 Ceph mgr pod 重启失败,请遵循常规 pod 故障排除来解决这个问题。验证 Ceph mgr pod 失败:
oc get pods | grep mgr
$ oc get pods | grep mgr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 描述 Ceph mgr pod 以获取更多详细信息:
oc describe pods/<pod_name>
$ oc describe pods/<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
-
指定上一步中的
rook-ceph-mgr
pod 名称。
分析与资源问题相关的错误。
删除 pod,并等待 pod 重启:
oc get pods | grep mgr
$ oc get pods | grep mgr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
按照以下步骤进行常规 pod 故障排除:
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph-mgr
oc get pod | grep rook-ceph-mgr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.11. CephMgrIsMissingReplicas 复制链接链接已复制到粘贴板!
含义 | 要解决此警报,您需要确定 Ceph 管理器消失的原因,并在需要时重新启动。 |
影响 | 高 |
诊断
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph-mgr
oc get pod | grep rook-ceph-mgr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.12. CephMonHighNumberOfLeaderChanges 复制链接链接已复制到粘贴板!
含义 | 在 Ceph 集群中,有一组冗余的 monitor pod,用于存储有关存储集群的重要信息。定期监控 pod 同步,以获取有关存储集群的信息。第一个监控 pod 获取最新更新的信息成为领导信息,其他监控容器集将在询问领导后启动其同步过程。在一个或多个 monitor pod 中网络连接或其他类型问题会造成不必要的变化。这种情形可能会对存储集群性能造成负面影响。 |
影响 | Medium |
检查是否有网络问题。如果存在网络问题,则需要在进行以下任何故障排除步骤前升级到 OpenShift Data Foundation 团队。
诊断
输出受影响监控 pod 的日志,以收集有关此问题的更多信息:
oc logs <rook-ceph-mon-X-yyyy> -n openshift-storage
$ oc logs <rook-ceph-mon-X-yyyy> -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <rook-ceph-mon-X-yyyy>
- 指定受影响的 monitor pod 的名称。
- 或者,使用 Openshift Web 控制台打开受影响的监控 pod 的日志。有关可能原因的更多信息,会在日志中反映。
执行常规 pod 故障排除步骤:
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep {ceph-component}
oc get pod | grep {ceph-component}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Pod 状态: NOT pending, running, but not ready
- 检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - pod 状态: NOT pending, but NOT running
- 检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.13. CephMonQuorumAtRisk 复制链接链接已复制到粘贴板!
含义 | 多个 MON 协同工作以提供冗余性。每个 MON 都会保留元数据的副本。集群使用 3 MON 部署,并且需要 2 个或更多 MON 上线并运行仲裁,以及运行存储操作。如果仲裁丢失,对数据的访问将面临风险。 |
影响 | 高 |
诊断
恢复 Ceph MON Quorum。如需更多信息,请参阅故障排除指南中的 在 OpenShift Data Foundation 中恢复 ceph-monitor 仲裁。https://access.redhat.com/documentation/zh-cn/red_hat_openshift_data_foundation/4.16/html-single/troubleshooting_openshift_data_foundation/index#restoring-ceph-monitor-quorum-in-openshift-data-foundation_rhodf如果恢复 Ceph MON Quorum 失败,请遵循常规 pod 故障排除来解决这个问题。
对常规 pod 故障排除执行以下操作:
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph-mon
oc get pod | grep rook-ceph-mon
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
- 检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - pod 状态: NOT pending, but NOT running
- 检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.14. CephMonQuorumLost 复制链接链接已复制到粘贴板!
含义 | 在 Ceph 集群中,有一组冗余的 monitor pod,用于存储有关存储集群的重要信息。定期监控 pod 同步,以获取有关存储集群的信息。第一个监控 pod 获取最新更新的信息成为领导信息,其他监控容器集将在询问领导后启动其同步过程。在一个或多个 monitor pod 中网络连接或其他类型问题会造成不必要的变化。这种情形可能会对存储集群性能造成负面影响。 |
影响 | 高 |
检查是否有网络问题。如果存在网络问题,则需要在进行以下任何故障排除步骤前升级到 OpenShift Data Foundation 团队。
诊断
恢复 Ceph MON Quorum。如需更多信息,请参阅故障排除指南中的 在 OpenShift Data Foundation 中恢复 ceph-monitor 仲裁。https://access.redhat.com/documentation/zh-cn/red_hat_openshift_data_foundation/4.16/html-single/troubleshooting_openshift_data_foundation/index#restoring-ceph-monitor-quorum-in-openshift-data-foundation_rhodf如果恢复 Ceph MON Quorum 失败,请遵循常规 pod 故障排除来解决这个问题。
或者,执行常规 pod 故障排除:
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep {ceph-component}
oc get pod | grep {ceph-component}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a {ceph-component} that is in the pending state, not running or not ready
# Examine the output for a {ceph-component} that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
- 检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - pod 状态: NOT pending, but NOT running
- 检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果分配了节点,请检查节点上的 kubelet。
缓解方案
- 调试日志信息
- 此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.15. CephMonVersionMismatch 复制链接链接已复制到粘贴板!
含义 | 通常,这个警报会在升级过程中触发,这需要很长时间。 |
影响 | Medium |
诊断
检查 ocs-operator
订阅状态和 Operator pod 健康状况,以检查 Operator 升级是否正在进行。
检查
ocs-operator
订阅健康状况。oc get sub $(oc get pods -n openshift-storage | grep -v ocs-operator) -n openshift-storage -o json | jq .status.conditions
$ oc get sub $(oc get pods -n openshift-storage | grep -v ocs-operator) -n openshift-storage -o json | jq .status.conditions
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 状态条件类型是
CatalogSourcesUnhealthy
,InstallPlanMissing
,InstallPlanPending
, 和InstallPlanFailed
。每种类型的状态应当是False
。输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例输出显示
CatalogSourcesUnHealthly
类型的False
状态,这意味着目录源处于健康状态。检查 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
$ 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 Copied! Toggle word wrap Toggle overflow 如果您确定"ocs-operator"正在进行中,请等待 5 分钟,并且此警报应自行解决。如果您等待或看到不同的错误状态条件,请继续故障排除。
缓解方案
- 调试日志信息
此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.16. CephNodeDown 复制链接链接已复制到粘贴板!
含义 | 运行 Ceph pod 的节点已停机。虽然存储操作将继续工作,因为 Ceph 旨在处理节点故障,但建议解决这个问题,以最大程度降低另一个节点停机并影响存储功能的风险。 |
影响 | Medium |
诊断
列出运行和失败的所有 pod:
oc -n openshift-storage get pods
oc -n openshift-storage get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保您满足 OpenShift Data Foundation 资源要求,以便将对象存储设备(OSD) pod 调度到新节点上。这可能需要几分钟时间,因为 Ceph 集群恢复故障的数据,但现在恢复 OSD。要监视此恢复,请确保 OSD pod 正确放置到新的 worker 节点上。
检查之前失败的 OSD pod 是否现在是否正在运行:
oc -n openshift-storage get pods
oc -n openshift-storage get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果之前出现故障的 OSD pod 没有调度,请使用
describe
命令并检查事件,因为 pod 无法重新调度的原因。描述故障 OSD pod 的事件:
oc -n openshift-storage get pods | grep osd
oc -n openshift-storage get pods | grep osd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查找一个或多个失败的 OSD pod:
oc -n openshift-storage describe pods/<osd_podname_ from_the_ previous step>
oc -n openshift-storage describe pods/<osd_podname_ from_the_ previous step>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 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
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 Copied! Toggle word wrap Toggle overflow 在 rsh 命令提示符中运行以下命令,并在 io 部分监视 "recovery":
ceph status
ceph status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确定是否有失败的节点。
获取 worker 节点列表,并检查节点状态:
oc get nodes --selector='node-role.kubernetes.io/worker','!node-role.kubernetes.io/infra'
oc get nodes --selector='node-role.kubernetes.io/worker','!node-role.kubernetes.io/infra'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 描述处于
NotReady
状态的节点以获取有关故障的更多信息:oc describe node <node_name>
oc describe node <node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
缓解方案
- 调试日志信息
此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.18. CephOSDDiskNotResponding 复制链接链接已复制到粘贴板!
含义 | 磁盘设备没有响应。检查所有对象存储设备(OSD)是否已启动并运行。 |
影响 | Medium |
诊断
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph
$ oc get pod | grep rook-ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a rook-ceph that is in the pending state, not running or not ready
# Examine the output for a rook-ceph that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要- 如果分配了节点,请检查节点上的 kubelet。
- 如果正在运行的 pod 的基本健康状况,则验证节点上的节点关联性和资源可用性,请运行 Ceph 工具来获取存储组件的状态。
缓解方案
- 调试日志信息
此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.20. CephOSDFlapping 复制链接链接已复制到粘贴板!
含义 | 在最后 5 分钟内,存储守护进程已重启 5 次。检查 pod 事件或 Ceph 状态,以查找原因。 |
影响 | 高 |
诊断
按照 Red Hat Ceph Storage 故障排除指南中的 Flapping OSD 部分中的步骤进行操作。
或者,按照常规 pod 故障排除的步骤进行操作:
- Pod 状态:Pending
检查资源问题、待处理持久性卷声明(PVC)、节点分配和 kubelet 问题:
oc project openshift-storage
$ oc project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod | grep rook-ceph
$ oc get pod | grep rook-ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
MYPOD
设置为标识为问题 pod 的 pod 的变量:Examine the output for a rook-ceph that is in the pending state, not running or not ready
# Examine the output for a rook-ceph that is in the pending state, not running or not ready MYPOD=<pod_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pod_name>
- 指定被认为是有问题的 pod 的 pod 的名称。
查找资源限制或待处理的 PVC。否则,检查节点分配:
oc get pod/${MYPOD} -o wide
$ oc get pod/${MYPOD} -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Pod 状态: NOT pending, running, but not ready
检查就绪度探测:
oc describe pod/${MYPOD}
$ oc describe pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- pod 状态: NOT pending, but NOT running
检查应用程序或镜像问题:
oc logs pod/${MYPOD}
$ oc logs pod/${MYPOD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要- 如果分配了节点,请检查节点上的 kubelet。
- 如果正在运行的 pod 的基本健康状况,则验证节点上的节点关联性和资源可用性,请运行 Ceph 工具来获取存储组件的状态。
缓解方案
- 调试日志信息
此步骤是可选的。运行以下命令来收集 Ceph 集群的调试信息:
oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
$ oc adm must-gather --image=registry.redhat.io/odf4/odf-must-gather-rhel9:v4.16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.21. CephOSDNearFull 复制链接链接已复制到粘贴板!
含义 | 后端存储设备对象存储设备(OSD)的利用率在主机上已超过 75%。 |
影响 | 高 |
缓解方案
释放集群中的一些空间、扩展存储集群或联系红帽支持。如需有关扩展存储的更多信息,请参阅扩展存储指南。
7.3.22. CephOSDSlowOps 复制链接链接已复制到粘贴板!
含义 |
请求速度较慢的 OSD 是每个无法在 |
影响 | Medium |
诊断
有关使用 Openshift 控制台获取有关较慢请求的更多信息。
访问 OSD pod 终端,并运行以下命令:
ceph daemon osd.<id> ops
$ ceph daemon osd.<id> ops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph daemon osd.<id> dump_historic_ops
$ ceph daemon osd.<id> dump_historic_ops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意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 升级是否正在进行。
检查
ocs-operator
订阅健康状况。oc get sub $(oc get pods -n openshift-storage | grep -v ocs-operator) -n openshift-storage -o json | jq .status.conditions
$ oc get sub $(oc get pods -n openshift-storage | grep -v ocs-operator) -n openshift-storage -o json | jq .status.conditions
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 状态条件类型是
CatalogSourcesUnhealthy
,InstallPlanMissing
,InstallPlanPending
, 和InstallPlanFailed
。每种类型的状态应当是False
。输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例输出显示
CatalogSourcesUnHealthly
类型的False
状态,这意味着目录源处于健康状态。检查 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
$ 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 Copied! Toggle word wrap Toggle overflow 如果您确定"ocs-operator"正在进行中,请等待 5 分钟,并且此警报应自行解决。如果您等待或看到不同的错误状态条件,请继续故障排除。
7.3.24. CephPGRepairTakingTooLong 复制链接链接已复制到粘贴板!
含义 | 自我修复操作用时过长。 |
影响 | 高 |
诊断
检查放置组(PG)是否不一致,并修复它们。有关更多信息,请参阅红帽知识库解决方案 Handle Inconsistent Placement Groups in Ceph。
7.3.25. CephPoolQuotaBytesCriticallyExhausted 复制链接链接已复制到粘贴板!
含义 |
已达到一个或多个池,或者非常接近到达其配额。触发此错误条件的阈值由 |
影响 | 高 |
缓解方案
调整池配额。运行以下命令以完全删除或调整池配额:
ceph osd pool set-quota <pool> max_bytes <bytes>
ceph osd pool set-quota <pool> max_bytes <bytes>
ceph osd pool set-quota <pool> max_objects <objects>
ceph osd pool set-quota <pool> max_objects <objects>
将配额值设置为 0
将禁用配额。
7.3.26. CephPoolQuotaBytesNearExhaustion 复制链接链接已复制到粘贴板!
含义 |
一个或多个池正在接近配置的全度阈值。触发此警告条件的一个阈值是 |
影响 | 高 |
缓解方案
调整池配额。运行以下命令以完全删除或调整池配额:
ceph osd pool set-quota <pool> max_bytes <bytes>
ceph osd pool set-quota <pool> max_bytes <bytes>
ceph osd pool set-quota <pool> max_objects <objects>
ceph osd pool set-quota <pool> max_objects <objects>
将配额值设置为 0
将禁用配额。
7.3.27. OSDCPULoadHigh 复制链接链接已复制到粘贴板!
含义 | OSD 是 Ceph 存储中的一个关键组件,负责管理数据放置和恢复。OSD 容器中的高 CPU 使用量建议增加处理需求,这可能会降低存储性能。 |
影响 | 高 |
诊断
- 导航到 Kubernetes 仪表板或等同功能。
- 访问 Workloads 部分,再选择与 OSD 警报关联的相关 pod。
- 单击 Metrics 选项卡,以查看 OSD 容器的 CPU 指标。
- 验证 CPU 用量在一段时间内超过 80%(如警报配置中指定的情况)。
缓解方案
如果 OSD CPU 使用量始终高,请考虑执行以下步骤:
- 评估整个存储集群性能,并确定 OSD 为高 CPU 使用量做出贡献。
- 通过在现有节点上添加更多新存储设备或使用新存储设备添加新节点来增加集群中的 OSD 数量。如需帮助分发负载并提高整体系统性能的说明,请参阅扩展存储指南。
7.3.28. PersistentVolumeUsageCritical 复制链接链接已复制到粘贴板!
含义 | 持久性卷声明(PVC)接近其完整容量,如果未及时处理,可能会导致数据丢失。 |
影响 | 高 |
缓解方案
扩展 PVC 大小以增加容量。
- 登录 OpenShift Web 控制台。
-
点 Storage
PersistentVolumeClaim。 -
从 Project 下拉列表中选择
openshift-storage
。 -
在您要扩展的 PVC 中,点 Action menu (⋮)
Expand PVC。 - 将总大小更新为所需的大小。
- 点 Expand。
或者,您可以删除可能会占用空间的不必要的数据。
7.3.29. PersistentVolumeUsageNearFull 复制链接链接已复制到粘贴板!
含义 | 持久性卷声明(PVC)接近其完整容量,如果未及时处理,可能会导致数据丢失。 |
影响 | 高 |
缓解方案
扩展 PVC 大小以增加容量。
- 登录 OpenShift Web 控制台。
-
点 Storage
PersistentVolumeClaim。 -
从 Project 下拉列表中选择
openshift-storage
。 -
在您要扩展的 PVC 中,点 Action menu (⋮)
Expand PVC。 - 将总大小更新为所需的大小。
- 点 Expand。
或者,您可以删除可能会占用空间的不必要的数据。