注意

本文档适用于 Ceph 开发版本。

CephFS健康消息

集群健康检查

Ceph监控守护进程将对文件系统映射结构(以及包含的MDS映射)的某些状态生成健康消息。

消息:mds等级(s)等级已失败

消息:mds等级(s)等级已损坏

消息:mds集群已降级active state (e.g. ranks currently in replay state).

消息:mdsnames响应迟缓mds_beacon_grace (default 15s), while they are supposed to send beacon messages every mds_beacon_interval (default 4s). The daemons may have crashed. The Ceph monitor will automatically replace laggy daemons with standbys if any are available.

消息:备用守护进程不足ceph fs set <fs> standby_count_wanted <count>. Use zero for count to disable.

守护进程报告的健康检查

MDS守护进程可以识别各种不希望的条件,并在输出中向操作员指示这些条件。ceph statusMDS_.

ceph health detail shows the details of the conditions. Following is a typical health report from a cluster experiencing MDS related performance issues:

$ ceph health detail
HEALTH_WARN 1 MDSs report slow metadata IOs; 1 MDSs report slow requests
MDS_SLOW_METADATA_IO 1 MDSs report slow metadata IOs
   mds.fs-01(mds.0): 3 slow metadata IOs are blocked > 30 secs, oldest blocked for 51123 secs
MDS_SLOW_REQUEST 1 MDSs report slow requests
   mds.fs-01(mds.0): 5 slow requests are blocked > 30 secs

例如,b7909b:是表示请求完成时间过长的条件的唯一代码。并且以下描述显示了其严重性和正在服务这些慢请求的MDS守护进程。MDS_SLOW_REQUEST is the unique code representing the condition where requests are taking long time to complete. And the following description shows its severity and the MDS daemons which are serving these slow requests.

本页列出了MDS守护进程引发的健康检查。对于来自其他守护进程的检查,请参阅4c2a8f:消息1c165a: “Behind on trimming…”健康检查.

MDS_TRIM

消息

“Behind on trimming…”

描述

CephFS维护一个元数据日记,该日记分为8cb372:日志段9e6da1:。日记的长度(以段的数量表示)由设置9cbe44:控制,当段的数量超过该设置时,MDS开始写回元数据,以便它可以删除(修剪)最旧的段。如果此写回过程发生得太慢,或者软件错误阻止了修剪,则可能会出现此健康消息。此消息出现的阈值由配置选项7ed2a2:控制,默认值为2.0。log segments. The length of journal (in number of segments) is controlled by the setting mds_log_max_segments, and when the number of segments exceeds that setting the MDS starts writing back metadata so that it can remove (trim) the oldest segments. If this writeback is happening too slowly, or a software bug is preventing trimming, then this health message may appear. The threshold for this message to appear is controlled by the config option mds_log_warn_factor, the default is 2.0.

MDS_HEALTH_CLIENT_LATE_RELEASE, MDS_HEALTH_CLIENT_LATE_RELEASE_MANY

消息

“客户端b718ad:IDf5ef1e:响应迟缓;由于某些OSD(s)响应迟缓,因此不会驱逐”name failing to respond to capability release”

描述

CephFS客户端由MDS发出f7b110:能力527a34:,这些能力类似于锁。例如,当另一个客户端需要访问时,MDS将要求客户端释放它们的能力。如果客户端无响应或存在错误,它可能无法及时这样做,或者根本无法这样做。如果客户端在3a236a:时间内(默认60秒)未能遵守,则会出现此消息。capabilities by the MDS, which are like locks. Sometimes, for example when another client needs access, the MDS will request clients release their capabilities. If the client is unresponsive or buggy, it might fail to do so promptly or fail to do so at all. This message appears if a client has taken longer than session_timeout (default 60s) to comply.

MDS_CLIENT_RECALL, MDS_HEALTH_CLIENT_RECALL_MANY

消息

“客户端b718ad:IDf5ef1e:响应迟缓;由于某些OSD(s)响应迟缓,因此不会驱逐”name failing to respond to cache pressure”

描述

客户端维护一个元数据缓存。客户端缓存中的项目(例如inode)也在MDS缓存中固定,因此当MDS需要缩小其缓存(以保持在6baebb:范围内)时,它会向客户端发送消息以缩小它们的缓存。如果客户端无响应或存在错误,这可能阻止MDS正确保持在它的缓存限制内,并且它最终可能会耗尽内存并崩溃。如果客户端在过去4edc23:秒内未能释放超过37f96c:能力(半衰期为d475ca:),则会出现此消息。mds_cache_memory_limit), it sends messages to clients to shrink their caches too. If the client is unresponsive or buggy, this can prevent the MDS from properly staying within its cache limits and it may eventually run out of memory and crash. This message appears if a client has failed to release more than mds_recall_warning_threshold capabilities (decaying with a half-life of mds_recall_max_decay_rate) within the last mds_recall_warning_decay_rate second.

MDS_CLIENT_OLDEST_TID, MDS_CLIENT_OLDEST_TID_MANY

消息

“客户端b718ad:IDf5ef1e:响应迟缓;由于某些OSD(s)响应迟缓,因此不会驱逐”name failing to advance its oldest client/flush tid”

描述

CephFS客户端-MDS协议使用一个称为5f8c37:最旧的tidb97b1b:的字段来告知MDS哪些客户端请求已完全完成,因此MDS可能因此会忘记这些请求。如果存在错误的客户端未能推进此字段,则MDS可能无法正确清理客户端请求使用的资源。如果客户端似乎在MDS方面有超过00be50:(默认100000)个请求已完成,但尚未在其5f8c37:最旧的tida6da10:值中记录,则会出现此消息。MDS用于修剪完成的客户端请求(或刷新)的最后tid作为616688:会话ls3116c1:(或b8318d:客户端ls976599:)命令的一部分作为调试辅助工具。oldest tid to inform the MDS of which client requests are fully complete and may therefore be forgotten about by the MDS. If a buggy client is failing to advance this field, then the MDS may be prevented from properly cleaning up resources used by client requests. This message appears if a client appears to have more than max_completed_requests (default 100000) requests that are complete on the MDS side but haven’t yet been accounted for in the client’s oldest tid value. The last tid used by the MDS to trim completed client requests (or flush) is included as part of session ls (or client ls) command as a debug aid.

MDS_DAMAGE

消息

“检测到元数据损坏”

描述

在从元数据池读取时遇到了损坏或缺失的元数据。此消息表示损坏已经足够隔离,以便MDS可以继续运行,尽管对损坏子树的客户端访问将返回IO错误。使用39d587:管理员套接字命令获取更多关于损坏的详细信息。一旦遇到任何损坏,就会出现此消息。damage ls admin socket command to get more detail on the damage. This message appears as soon as any damage is encountered.

MDS_HEALTH_READ_ONLY

消息

“MDS处于只读模式”

描述

MDS已进入只读模式,并将向尝试修改任何元数据的客户端操作返回EROFS错误代码。如果MDS在向元数据池写入时遇到写入错误,或者管理员使用9133e9:force_readonly700949:管理员套接字命令强制执行,MDS将进入只读模式。force_readonly admin socket command.

MDS_SLOW_REQUEST

消息

N慢请求被阻塞”

描述

一个或多个客户端请求未能及时完成,表明MDS运行非常慢,或者RADOS集群未能及时确认日记写入,或者存在错误。使用2ee979:管理员套接字命令列出未完成的元数据操作。如果任何客户端请求持续超过1eae28:时间(默认30秒),则会出现此消息。ops admin socket command to list outstanding metadata operations. This message appears if any client requests have taken longer than mds_op_complaint_time (default 30s).

MDS_CACHE_OVERSIZED

消息

“缓存中inode过多”

描述

MDS未能成功缩小其缓存以符合管理员设置的限制。如果MDS缓存变得太大,守护进程可能会耗尽可用内存并崩溃。默认情况下,如果实际缓存大小(在内存中)至少比9fc9b4:大50%(默认4GB),则会出现此消息。修改199d8b:以设置警告比率。mds_cache_memory_limit (default 4GB). Modify mds_health_cache_threshold to set the warning ratio.

FS_WITH_FAILED_MDS

消息

“一些MDS等级没有备用替换”

描述

通常,失败的MDS等级将被备用MDS替换。这种情况是暂时的,并不被认为是关键的。但是,如果没有备用MDS可用于替换活动的MDS等级,则生成此健康警告。

MDS_INSUFFICIENT_STANDBY

消息

“可用的备用(-重放)MDS守护进程数量不足于配置”

描述

最小数量的备用(-重放)MDS守护进程可以通过设置71e399:配置变量来配置。当配置的值与可用的备用(-重放)MDS守护进程数量不匹配时,会生成此健康警告。standby_count_wanted configuration variable. This health warning is generated when the configured value mismatches the number of standby(-replay) MDS daemons available.

FS_DEGRADED

消息

“一些MDS等级已被标记为失败或损坏”

描述

当一个或多个MDS等级由于不可恢复的错误而处于失败或损坏状态时。当(一个或多个)等级离线时,文件系统可能部分或完全不可用。

MDS_UP_LESS_THAN_MAX

消息

“活动等级的数量少于配置的最大MDS数量”

描述

最大MDS等级数量可以通过设置b56e80:配置变量来配置。当MDS等级的数量低于此配置值时,会生成此健康警告。max_mds configuration variable. This health warning is generated when the number of MDS ranks falls below this configured value.

MDS_ALL_DOWN

消息

“没有可用的MDS等级(文件系统离线)”

描述

所有MDS等级都不可用,导致文件系统完全离线。

MDS_CLIENTS_LAGGY

消息

“客户端b718ad:IDf5ef1e:响应迟缓;由于某些OSD(s)响应迟缓,因此不会驱逐”ID is laggy; not evicted because some OSD(s) is/are laggy”

描述

如果OSD(s)响应迟缓(由于某些条件如网络中断等),则可能会使客户端响应迟缓(会话可能会空闲或无法刷新脏数据以撤销能力)。如果7c7bf3:设置为true(默认true),则不会发生客户端驱逐,因此将生成此健康警告。defer_client_eviction_on_laggy_osds is set to true (default true), client eviction will not take place and thus this health warning will be generated.

MDS_CLIENTS_BROKEN_ROOTSQUASH

消息

“X个客户端(s)具有损坏的root_squash实现(MDS_CLIENTS_BROKEN_ROOTSQUASH)”

描述

在root_squash中发现了一个错误,这可能会导致被限制使用root_squash能力的客户端所做的更改丢失。修复需要更改协议,并且需要客户端升级。

这是一个因为一致性和数据丢失的危险而导致的HEALTH_ERR警告。建议要么升级您的客户端,要么在过渡期间停止使用root_squash,或者在需要时抑制警告。

要驱逐并永久阻止损坏的客户端连接到集群,请设置f67169:位。required_client_feature bit client_mds_auth_caps.

MDS_ESTIMATED_REPLAY_TIME

消息

“HEALTH_WARN Replay: x%完成。预计剩余时间783e8e:秒3f9f89:”当MDS日记重放时间超过30秒时,此消息表示完成时间的估计。x seconds

描述

When an MDS journal replay takes more than 30 seconds, this message indicates the estimated time to completion.

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.