Filecoin存储之ceph系统的优化记录

在Filecoin存储中使用Ceph文件系统时,随着算力增长问题频发,如HEALTH_WARN提示、MDS降级等。通过深入分析,发现问题是由于磁盘IO负载过重,由频繁的deep_scrub导致。解决方案包括:调整deep_scrub时间为低算力时段,并设置MDS主备自动切换。实施这些措施后,成功避免了算力下降,确保了系统稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Filecoin存储有的用的是昂贵的商业存储,有的用的是简单的nfs,我们公司用的是ceph文件系统。
各项技术的优劣在此不做评价,根据自己的实际情况来选择,不差钱又有技术能力那当然最好了。

本人在实践当中,发现ceph问题多多,算力低于1PiB的时候,问题一般暴露不出来,算力达到1.8PiB以后,时不时各种坑,执行ceph -s 出现各种头疼的HEALTH_WARN提示,让人防不胜防,不厌其烦,MDS也是各种问题,经常1 filesystem is degraded,然后就fil就掉算力,浏览器出现恐怖的红色的xxx faults。

出现问题要解决,可是错误提示都是冗长的英文,百度是搜不到的,google也很难匹配,偶尔有几个结果,还可能因为ceph版本不同,别人的解决方案不适合你,很让人纠结。filecoin生产环境下,ceph又不能让你随意测试,这就一个头两个大了。

见得多了,后来就慢慢摸出一点门道,ceph出现问题的根本原因是磁盘IO负载太重,而磁盘IO负载太重是因为ceph经常不定时执行deep_scrub,不停扫描磁盘。磁盘负载重,导致lotus 的window post不能及时完成,{"batch": 0, "elapsed": 187.471899623, "skip": 0, "err": null} ,就是这个elapsed这个参数太大,然后就掉算力了。

问题的原因,现象都知道了,现在就是要解决问题了,直接上代码。
措施1、在ceph的mon上执行
ceph tell osd.* injectargs "--osd-scrub-begin-hour 18"
ceph tell osd.* injectargs "--osd-scrub-end-hour 6"
让deep_scrub时间控制在18点-凌晨6点,这个时间点因为算力小,不执行window post。

措施2、修改mon上的ceph.conf文件
[mds.ceph4]
mds_standby_for_name = ceph6
mds_standby_replay = true

[mds.ceph5]
#mds_standby_for_fscid = mycephfs
mds_standby_for_name = ceph7
mds_standby_replay = true

ceph-deploy --overwrite-conf config push ceph4
ceph-deploy --overwrite-conf config push ceph5
ceph-deploy --overwrite-conf config push ceph6
ceph-deploy --overwrite-conf config push ceph7
注:4567为4个MDS,67为分别为45的热备,45任何一个出现问题,自动启用6或7.

 

当然还有一些更细化的调整,不再赘述。
主要是上面的两步,这样世界一下就清净了,不掉算力了,再也不用担心天天被老板怼了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值