cephfs中告警盘点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cephfs中告警盘点相关的知识,希望对你有一定的参考价值。
参考技术A 总结下cephfs中由mds产生的告警信息。Behind on trimming...
字面翻译落后于日志裁剪(trim)。mds的日志机制:mds以日志方式先保存元数据,元数据保存在每条操作的事件(event)中,事件(通常是1024个)组成segment。当segment到达一定数量时(mds_log_max_segments默认32)对日志进行裁剪,即将部分日志关联的元数据写回。出现该条告警实际上表明回写速度慢或者遇到了bug,单纯地将配置提高并不是最理想的办法。
Client name failing to respond to capability release
客户端没有及时响应释放cap的请求。在cephfs中客户端需要向mds获得响应的操作能力,称为cap。获得cap则有相关的操作能力。如果其他客户端需要操作时,mds会要求当前客户端释放cap。如果客户端出现bug或者没有响应,则mds会在60秒(session_timeout 设置)会出现该告警。
Client name failing to respond to cache pressure
客户端没有及时相应(mds的)缓存压力。元数据缓存一部分元数据信息,同时mds会在自身内存中缓存同样的信息。如果其缓存的元数据超过了最大inode缓存量或者最大内存用量,mds会要求客户端释放一定数量的缓存。如果在规定时间内即60s(mds_recall_warning_decay_rate的值)没有释放32k(默认设置在mds_recall_warning_threshold中,随后会减少)则产生告警 。产生告警的原因可能是客户端存在bug或者无法及时响应。
Client name failing to advance its oldest client/flush tid
客户端没有更新其最久客户端tid值。tid是指客户端和mds直接通信的task id。每次客户端完成任务后更新该task id,告知mds mds可以不用管该id之前的任务了。mds即可释放相关的占用资源。否则,资源不会被主动释放。当mds端自行记录的任务完成数超过100K(max_completed_requests设置)时,客户端并没有更新id,则产生相应的告警。
出现该告警可能代表客户端存在bug。也遇到过mds因为锁问题部分请求卡住,重启mds 锁状态正常后可以恢复。
MDS in read-only mode
字面翻译mds进入只读模式。只读模式意味着在客户端上创建文件等操作元数据的行为将不被允许。进入只读的原因可能是向元数据池写入时发生错误,或者通过命令强制mds进入只读模式。
N slow requests are blocked
字面翻译多个慢请求在阻塞状态。出现该条告警意味着客户端的消息没有处理完成,超过了mds_op_complaint_time所规定的时间(默认30s)。可能出现的原因是mds运行缓慢,或者向rados写入日志未确认(底层pg或者osd出现问题),或者是mds存在的bug。此时,通过ops命令查看当前正在执行的操作,可进一步分析出现阻塞请求的原因。
Too many inodes in cache
字面翻译在mds的缓存中缓存了太多inode。mds的缓存指两个方面:inode数量和内存占用量。inode默认值mds_cache_size为100K,mds_cache_memory_limit为1G。到达一个告警的阈值后产生告警,一般为50%(mds_health_cache_threshold)。通过调整参数可以避免告警的出现,但是这只是治标的办法,治本的办法需要跟踪业务,了解资源占用的具体原因,是否只是通过调整参数可以解决。
使用cephfs
前提要有一套搭建好的ceph集群
1.在ceph管理节点执行
ceph-deploy mds create node1 node2 node3 #node1 node2 node3一般会选择mgr和mon所在的节点
2.在ceph节点中创建pool
ceph osd create cephfs_data 128 #存储数据的,128是pg数目,具体有计算公式,如果集群少于15个osd的话,可以先设置为128,等待以后osd数量增加进行修改
ceph osd create cephfs_metadata 128 #存储元数据的
3.创建cephfs
ceph fs new cephfs cephfs_data cephfs_metadata
ceph fs ls #查看刚才创建的cephfs
4.挂载cephfs(通过cephfs挂载)
mkdir /cephfs
mount -t ceph node1,node2,node3:6789:/ /cephfs -o name=admin,secret=AQAgo0RafhJ5FxAA1ZAtgFyQuU6aKupiNcn9aQ== #将node1,2,3替换为节点ip,secret密钥在下图的位置
以上是关于cephfs中告警盘点的主要内容,如果未能解决你的问题,请参考以下文章
rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警) #yyds干货盘点#