附录 B. Ceph 集群的健康消息


Red Hat Ceph Storage 集群可以引发的健康信息是有限的。它们定义为具有唯一标识符的健康检查。标识符是一个制表伪可读字符串,旨在使工具能够理解健康检查,并以反应其含义的方式呈现它们。

Expand
表 B.1. Monitor
健康代码描述

DAEMON_OLD_VERSION

如果旧版本的 Ceph 在任何守护进程上运行,则警告。如果检测到多个版本,它将生成一个健康错误。

MON_DOWN

一个或多个 Ceph 监控守护进程当前为 down。

MON_CLOCK_SKEW

运行 ceph-mon 守护进程的节点上时钟不够好地同步。使用 ntpdchrony 同步时钟来解决该问题。

MON_MSGR2_NOT_ENABLED

ms_bind_msgr2 选项被启用,但一个或多个 Ceph Monitor 没有配置为绑定到集群的 monmap 中的 v2 端口。运行 ceph mon enable-msgr2 命令解决这个问题。

MON_DISK_LOW

一个或多个 Ceph 监控器在磁盘空间上较低。

MON_DISK_CRIT

一个或多个 Ceph 监控器在磁盘空间上至关重要。

MON_DISK_BIG

一个或多个 Ceph 监控器的数据库大小非常大。

AUTH_INSECURE_GLOBAL_ID_RECLAIM

一个或多个客户端或守护进程连接到存储集群,在重新连接到 Ceph monitor 时,这些集群不会安全地回收其 global_id

AUTH_INSECURE_GLOBAL_ID_RECLAIM_ALLOWED

Ceph 目前配置为允许客户端使用不安全的进程重新连接到监控器,以回收其之前的 global_id,因为设置 auth_allow_insecure_global_id_reclaim 已设置为 true

Expand
表 B.2. Manager(管理者)
健康代码描述

MGR_DOWN

所有 Ceph Manager 守护进程当前都处于停机状态。

MGR_MODULE_DEPENDENCY

启用的 Ceph Manager 模块失败其依赖项检查。

MGR_MODULE_ERROR

Ceph Manager 模块会出现意外错误。通常,这意味着从模块的服务函数中引发未处理的异常。

Expand
表 B.3. OSD
健康代码描述

OSD_DOWN

一个或多个 OSD 已标记为 down。

OSD_CRUSH_TYPE_DOWN

特定 CRUSH 子树中的所有 OSD 都标记为 down,如主机上的所有 OSD。例如,OSD_HOST_DOWN 和 OSD_ROOT_DOWN

OSD_ORPHAN

OSD 在 CRUSH map 层次结构中引用,但不存在。运行 ceph osd crush rm osd._OSD_ID 命令来移除 OSD。

OSD_OUT_OF_ORDER_FULL

nearfull, backfillfull, full, 或, failsafefull 的利用阈值不是升序。通过运行 ceph osd set-nearfull-ratio RATIO, ceph osd set-backfillfull-ratio RATIO, 和 ceph osd set-full-ratio RATIO 来调整阈值

OSD_FULL

一个或多个 OSD 已超过完整阈值,导致存储集群无法提供写入服务。通过一个小的 ceph osd set-full-ratio RATIO 来增加完全阈值以恢复写入可用性。

OSD_BACKFILLFULL

一个或多个 OSD 已超过 backfillfull 阈值,这将防止数据重新平衡到这个设备。

OSD_NEARFULL

一个或多个 OSD 已超过 nearfull 阈值。

OSDMAP_FLAGS

设置了一个或多个感兴趣的存储集群标志。这些标志包括 full,pauserd,pausewr,noup,nodown,noin,noout,nobackfill,norecover,norebalance,noscrub,nodeep_scrub, 和 notieragent。除了 full,标记可以通过 ceph osd set FLAGceph osd unset FLAG 命令进行清除。

OSD_FLAGS

一个或多个 OSD 或 CRUSH 设置了所需的标记。这些标志包括 noupnodownnoinnoout

OLD_CRUSH_TUNABLES

CRUSH map 使用非常旧的设置,应更新。

OLD_CRUSH_STRAW_CALC_VERSION

CRUSH 映射使用旧的、非最佳方法计算 straw bucket 的中间权重值。

CACHE_POOL_NO_HIT_SET

一个或多个缓存池没有配置为跟踪利用率,这会阻止分层代理识别冷对象以清空并从缓存中驱除。使用 ceph osd pool set_POOL_NAME_ hit_set_type TYPE, ceph osd pool set POOL_NAME hit_set_period PERIOD_IN_SECONDS, ceph osd pool set POOL_NAME hit_set_count NUMBER_OF_HIT_SETS, 和 ceph osd pool set POOL_NAME hit_set_fpp TARGET_FALSE_POSITIVE_RATE 命令配置缓存池中的击中集。

OSD_NO_SORTBITWISE

未设置排序 标记。使用 ceph osd set sortbitwise 命令设置标志。

POOL_FULL

一个或多个池已达到其配额,不再允许写入。使用 ceph osd pool set-quota POOL_NAME max_objects NUMBER_OF_OBJECTSceph osd pool set-quota POOL_NAME max_bytes BYTES 增加池配额,或删除一些现有的数据来减少利用率。

BLUEFS_SPILLOVER

使用 BlueStore 后端的一个或多个 OSD 被分配 db 分区,但空间已填满,因此元数据已"中断"到正常较慢的设备。使用 ceph config set osd bluestore_warn_on_bluefs_spillover false 命令禁用它。

BLUEFS_AVAILABLE_SPACE

此输出提供了三个值,即 BDEV_DB freeBDEV_SLOW freeavailable_from_bluestore

BLUEFS_LOW_SPACE

如果 BlueStore 文件系统(BlueFS)在可用的空闲空间上运行较低,且有些 available_from_bluestore 可能会考虑减少 BlueFS 分配单元大小。

BLUESTORE_FRAGMENTATION

因为 BlueStore 在底层存储上工作可释放空间。这是正常现象,但过度的碎片将导致减慢。使用 BLUESTORE_WARN_ON_FREE_FRAGMENTATIONBLUESTORE_FRAGMENTATION_CHECK_PERIOD 参数来控制和配置 BLUESTORE_FRAGMENTATION 健康警告。BLUESTORE_WARN_ON_FREE_FRAGMENTATION 的默认值为 0.8。对于 'BLUESTORE_FRAGMENTATION_CHECK_PERIOD'is 3600 毫秒。

BLUESTORE_LEGACY_STATFS

BlueStore 根据每个池粒度跟踪其内部使用量统计信息,一个或多个 OSD 有 BlueStore 卷。使用 ceph config set global bluestore_warn_on_legacy_statfs false 命令禁用警告。

BLUESTORE_NO_PER_POOL_OMAP

BlueStore 按池跟踪 omap 空间利用率。使用 ceph config set global bluestore_warn_on_no_per_pool_omap false 命令禁用警告。

BLUESTORE_NO_PER_PG_OMAP

BlueStore 跟踪 PG 的 omap 空间利用率。使用 ceph config set global bluestore_warn_on_no_per_pg_omap false 命令禁用警告。

BLUESTORE_DISK_SIZE_MISMATCH

使用 BlueStore 的一个或多个 OSD 在物理设备的大小和元数据跟踪其大小之间存在内部不一致。

BLUESTORE_NO_COMPRESSION `

一个或多个 OSD 无法加载 BlueStore 压缩插件。这可能是由安装中断造成的,其中 ceph-osd 二进制文件与压缩插件不匹配,或者是最近没有包括 ceph-osd 守护进程重启的升级。

BLUESTORE_SPURIOUS_READ_ERRORS

使用 BlueStore 的一个或多个 OSD 在主设备上检测到错误的读错误。BlueStore 已通过重试磁盘读取从这些错误中恢复。

Expand
表 B.4. 设备健康状况
健康代码描述

DEVICE_HEALTH

应该很快失败一个或多个设备,其中警告阈值由 mgr/devicehealth/warn_threshold 配置选项控制。将设备标记为 out,以迁移数据并替换硬件。

DEVICE_HEALTH_IN_USE

应该很快失败一个或多个设备,并根据 mgr/devicehealth/mark_out_threshold 标记存储集群的"out",但它仍然参与一个 PG。

DEVICE_HEALTH_TOOMANY

应该很快失败太多设备,并且启用了 mgr/devicehealth/self_heal 行为,以便标记所有静默设备将超过集群 mon_osd_min_in_ratio 比率,阻止太多的 OSD 被自动标记为 out

Expand
表 B.5. 池和放置组
健康代码描述

PG_AVAILABILITY

数据可用性会降低,这意味着存储集群无法为集群中的某些数据提供潜在的读写请求。

PG_DEGRADED

一些数据的数据冗余会降低,这意味着存储集群没有复制池或纠删代码片段所需的副本数。

PG_RECOVERY_FULL

由于存储集群中缺少可用空间,数据冗余可能会减少或面临风险,特别是一个或多个 PG 设置了 recovery_toofull 标志,这意味着集群无法迁移或恢复数据,因为一个或多个 OSD 超过 full 阈值。

PG_BACKFILL_FULL

由于存储集群中缺少可用空间,数据冗余可能会减少或面临风险,特别是一个或多个 PG 设置了 backfill_toofull 标志,这意味着集群无法迁移或恢复数据,因为一个或多个 OSD 超过 full 阈值。

PG_DAMAGED

数据清理在存储集群中发现了一些数据一致性问题,特别是一个或多个 PG 设置了不一致或 snaptrim_error 标志,表明之前的清理操作发现问题,或者设置了 repair 标志,这意味着当前正在进行此类不一致的修复。

OSD_SCRUB_ERRORS

最近的 OSD 清理存在未发生不一致的情况。

OSD_TOO_MANY_REPAIRS

当出现读取错误并存在另一个副本时,可使用它立即修复错误,以便客户端可以获取对象数据。

LARGE_OMAP_OBJECTS

一个或多个池包括大量 omap 对象,由 osd_deep_scrub_large_omap_object_key_thresholdosd_deep_scrub_large_omap_object_value_sum_threshold 决定,或由这两者同时决定。使用 ceph config set osd osd_deep_scrub_large_omap_object_key_threshold KEYSceph config set osd osd_deep_scrub_large_omap_object_value_sum_threshold BYTES命令调整阈值

CACHE_POOL_NEAR_FULL

缓存层池几乎已满。使用 ceph osd pool set CACHE_POOL_NAME target_max_bytes BYTESceph osd pool set CACHE_POOL_NAME target_max_bytes BYTES命令调整缓存池 目标大小。

TOO_FEW_PGS

存储集群中使用的 PG 数量低于每个 OSD 的 mon_pg_warn_min_per_osd PG 的可配置阈值。

POOL_PG_NUM_NOT_POWER_OF_TWO

一个或多个池带有值不是二的指数的 pg_num 值。使用 ceph config set global mon_warn_on_pool_pg_num_not_power_of_two false 命令禁用警告。

POOL_TOO_FEW_PGS

一个或多个池可能具有更多 PG,具体取决于池中当前存储的数据量。您可以使用 ceph osd pool set POOL_NAME pg_autoscale_mode off 命令禁用 PG 的自动扩展,使用 ceph osd pool set POOL_NAME pg_autoscale_mode on 命令自动调整 PG 数量,或使用 ceph osd pool set POOL_NAME pg_num _NEW_PG_NUMBER 命令手动设置 PG 数量。

TOO_MANY_PGS

存储集群中使用的 PG 数量高于每个 OSD 的可配置阈值 mon_max_pg_per_osd PG。通过添加更多硬件增加集群中的 OSD 数量。

POOL_TOO_MANY_PGS

一个或多个池可能具有更多 PG,具体取决于池中当前存储的数据量。您可以使用 ceph osd pool set POOL_NAME pg_autoscale_mode off 命令禁用 PG 的自动扩展,使用 ceph osd pool set POOL_NAME pg_autoscale_mode on 命令自动调整 PG 数量,或使用 ceph osd pool set POOL_NAME pg_num _NEW_PG_NUMBER 命令手动设置 PG 数量。

POOL_TARGET_SIZE_BYTES_OVERCOMMITTED

一个或多个池将 target_size_bytes 属性设置为估算池的预期大小,但值会超过可用存储总量。使用 ceph osd pool set POOL_NAME target_size_bytes 0 命令将池的值设置为零。

POOL_HAS_TARGET_SIZE_BYTES_AND_RATIO

一个或多个池同时设置了 target_size_bytestarget_size_ratio,以估算池的预期大小。使用 ceph osd pool set POOL_NAME target_size_bytes 0 命令将池的值设置为零。

TOO_FEW_OSDS

存储集群中的 OSD 数量低于 o'sd_pool_default_size 的可配置阈值。

SMALLER_PGP_NUM

一个或多个池带有值小于 pg_numpgp_num 值。这通常表示 PG 计数已增加,且不会增加放置行为。通过设置 pgp_num 匹配 pg_num with ceph osd pool set POOL_NAME pgp_num PG_NUM_VALUE 来解决这个问题。

MANY_OBJECTS_PER_PG

一个或多个池每个 PG 的平均对象数量显著大于整个存储集群平均值。具体阈值由 mon_pg_warn_max_object_skew 配置值控制。

POOL_APP_NOT_ENABLED

存在一个池,其中包含一个或多个对象,但尚未标记供特定应用使用。通过标记具有 rbd pool init POOL_NAME 命令的应用程序要使用的池来解决这个问题。

POOL_FULL

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

POOL_NEAR_FULL

一个或多个池正在接近配置的全度阈值。使用 ceph osd pool set-quota POOL_NAME max_objects NUMBER_OF_OBJECTSceph osd pool set-quota POOL_NAME max_bytes BYTES命令调整 池配额。

OBJECT_MISPLACED

存储群集中的一个或多个对象不存储在存储器集群希望它存储的节点上。这表明,由于最近一些存储集群更改,数据迁移尚未完成。

OBJECT_UNFOUND

存储集群中无法找到一个或多个对象,特别是 OSD 知道对象应存在新的或更新的副本,但当前在线的 OSD 上尚未找到该对象版本的副本。

SLOW_OPS

一个或多个 OSD 或 monitor 的请求需要很长时间进行处理。这可能代表了极端负载、存储设备缓慢或软件漏洞。

PG_NOT_SCRUBBED

最近没有清理一个或多个 PG。PG 通常会在全局范围内由 osd_scrub_max_interval 指定的每个配置间隔内清理。使用 ceph pg scrub PG_ID 命令启动刮除。

PG_NOT_DEEP_SCRUBBED

一个或多个 PG 最近没有深度清理。使用 ceph pg deep-scrub PG_ID命令启动 清理。PG 通常每 osd_deep_scrub_interval 秒清理,当 mon_warn_pg_not_deep_scrubbed_ratio 间隔百分比没有清理时,这个警告会触发。

PG_SLOW_SNAP_TRIMMING

一个或多个 PG 的快照修剪队列已超过配置的警告阈值。这表明最近删除了大量的快照,或者 OSD 无法足够快速地修剪快照,以跟上新快照删除的速度。

Expand
表 B.6. 其它
健康代码描述

RECENT_CRASH

一个或多个 Ceph 守护进程最近崩溃,并且管理员还没有确认崩溃。

TELEMETRY_CHANGED

遥测已经启用,但遥测报告的内容从那时起发生了变化,因此将不会发送遥测报告。

AUTH_BAD_CAPS

一个或多个身份验证用户具有不能被监控器解析的功能。使用 ceph auth ENTITY_NAME DAEMON_TYPE CAPS 命令更新用户的能力。

OSD_NO_DOWN_OUT_INTERVAL

mon_osd_down_out_interval 选项设为零,这意味着系统在 OSD 失败后不会自动执行任何修复或修复操作。使用 ceph config global mon mon_warn_on_osd_down_out_interval_zero false 命令静默间隔。

DASHBOARD_DEBUG

启用 Dashboard 调试模式。这意味着,如果在处理 REST API 请求时出现错误,HTTP 错误响应包含 Python 回溯。使用 ceph dashboard debug disable 命令禁用调试模式。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat