本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《python运维脚本》: python运维脚本实践
《shell》:shell学习
《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战
《k8》暂未更新
《docker学习》暂未更新
《ceph学习》ceph日常问题解决分享
《日志收集》ELK+各种中间件
《运维日常》运维日常
《linux》运维面试100问
对于ceph集群 slow req 问题剖析
产生这个报错“30 slow requests are blocked > 32 sec. Implicated osds 186”的原因很多,需要一一分析:
1.硬件问题:dmest -T / smartctl -a 以及查看osd日志排查
2.网络问题:自己排查自己机器环境中的网络是否不稳定
一般使用iperf 或者 长ping 以及 http 响应时间 使用time
3.时间同步ntp也要检查
4.上面问题都排除外,大概率是shard分配不合理导致osd压力过大
这里推荐大一些,大佬推荐最好是素数(1297)具体分片数量多大,自己可以根据压测来调优。
这里分享一下作者遇到的第四种情况:
health: HEALTH_WARN
4 large omap objects
120 slow requests are blocked > 32 sec. Implicated osds 3
当出现这个slow req时,我一一排查前面3种情况,都排除之后开始去看其他问题:
先查看目前bucket的情况:
radosgw-admin bucket stats --bucket <your_bucket_name>
发现分片就一个,所以压力全积压到一个分片,osd压力也大
再看看zone的bucket_index_max_shards参数情况:
adosgw-admin zonegroup get <your_zone_group_name>
bucket_index_max_shards:0
我这里新建集群使用默认0,就是一个分片,那对上了
那接下来如何去修改呢?
有两种情况:
1 修改ceph.conf 在rgw添加rgw_override_bucket_index_max_shards参数,之后重启rgw服务
这个方法需要重启rgw服务,这是生产无法接受的,我们另寻办法
2.使用zone的修改:
radosgw-admin zonegroup get > zonegroup.json 修改完后重新导入,后面新创建bucket就会按新的分片规则 sudo radosgw-admin zonegroup set < zonegroup.jsonsudo radosgw-admin period update --commit
这里补充一下,那之前的bucket还要用怎么办:
只能手动reshard:
radosgw-admin bucket reshard --bucket=<bucket-name> --num-shards=<new-shard-count>