目录
集群恢复过程中出现部分 pg backfill_toofull
查看集群最近10分钟op list以及每个op经历的事件列表
查看近期集群中node有没有发生重启以及存储节点负载情况
onnode all uptime
系统当前时间 17:59:03
up 389 days, 19:23 从上次启动开始系统运行的时间
2 users 注意这里实际是连接数量
load average: 7.60, 6.72, 6.12 这是重头戏,分别描述了1分钟5分钟15分钟内系统平均负载
根据经验值通常只需查看最后一个参数 [15分钟内的平均负载],这里的平均负载值是相对于单个物理节点
上cpu总核数 【cpu cores = cpu个数 * 单颗cpu核数】,如果cpu开启了超线程那总核数翻倍
1. 当前系统负荷持续大于0.7 【load average 数值 / cpu总核数】, 需要开始重视, 并排除问题所在
2. 当系统负荷持续大于1.0, 必须开始寻找并解决问题, 否则存储节点有故障风险, 此时已经是超负荷运行
3. 当系统负荷达到5.0, 节点可能已经故障了
CPU核数查看
查看节点物理cpu个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查看节点每个cpu核数
cat /proc/cpuinfo| grep "cpu cores"| uniq
查看节点cpu总核数
cat /proc/cpuinfo| grep "processor"| wc -l / grep "model name" /proc/cpuinfo | wc -l
调整ceph集群数据恢复速度
ceph tell osd.* injectargs "--osd_max_backfills 5 --osd_recovery_max_active 5"
这两个参数根据具体的使用场景进行动态调整,【1,1】是业务优先,如果想要加快recovery速度, 可是当将参数调大一点,至于调多大要根据集群硬件配置来决定,也可通过atop、iostat等工具来查看磁盘的压力,参数太大可造成业务卡顿或者OSD crash
注意:多个参数间没有逗号
ceph相关模块常用端口
ceph mon 6789
ceph mds 6800
ceph osd 6800 ~ 7300
ISCSI 3260
ntp 123
nfs 2049
获取cephfs目录的使用情况
对于一个cephfs share folder下有几十万个文件,执行du, ls等命令估计要到花儿谢了, 这里用getfattr
命令来获取文件系统给出的扩展属性,很轻松就可以得到NAS目录的一些信息
getfattr -d -m ceph.dir.* /vol/admtestnfs/
或者
getfattr -d -m ceph.dir.* .
* 顶层目录nas(/vol/admtestnfs)下共有20个目录加文件
* 递归来看,共有111个子目录
* 顶层目录下共有10个文件
* 递归来看,该目录下文件的总数为20010
* 递归统计,该目录消耗的总空间为2014943641668字节 【1KiB = 1024字节】
集群恢复过程中出现部分 pg backfill_toofull
出现 PG backfill_toofull 的告警说明副本所在OSD的空间不足backfillfull, Backfill流程当前被挂起
通过修改副本所在OSD的 osd_backfill_full_ratio参数使PG继续backfill
ceph tell osd.* injectargs "--osd_backfill_full_ratio 0.9" [*改为指定OSD的id即可]
有时可能只改某个OSD, PG状态还是backfill_toofull, 直接修改所有OSD的参数就好,backfill完成后将参数调整为原来的值就好
可以看到之前PG backfill_toofull告警小时
查看集群最近10分钟op list以及每个op经历的事件列表
* 查看近 10 minutes 延时最大的op list
ceph daemon osd.<id> dump_historic_ops
* 查看近 10 minutis 正在执行的op list
ceph daemon osd.<id> dump_ops_in_flight
未完待续。。。