手动调整
1、首先查看集群的空间利用率统计
ceph osd df tree
2、找到空间利用率较高的OSD,然后逐个进行调整
ceph osd reweight {osd_numeric_id} {reweight}
上述命令中各个参数含义如下:
osd_numeric_id:OSD对应的数字ID
reweight:待设置的OSD的reweight。reweight取值越小,将使更多的数据从对应的OSD迁出。
批量调整
目前有两种模式进行批量调整:
1、按照OSD当前空间利用率(reweight-by-utilization);
2、按照PG在OSD之间的分布(reweight-by-pg);
为防止影响前端业务,可以先测试执行下面命令后,将会触发PG迁移数量的相关统计(以下都以reweight-by-utilization相关命令为例进行说明),以方便规划进行调整的时机:
ceph osd test-reweight-by-utilization {overload} {max_change} {max_osds} {–no-increasing}
overload:当且仅当OSD的空间利用率大于等于集群平均空间利用率的overload/100时,调整其reweight
max_change:每次调整reweight的最大幅度,即调整上限。实际每个OSD调整幅度取决于自身空间利用率与集群平均空间利用率的偏离程度—偏离越多,则调整幅度越大,反之则调整幅度越小
max_osds:每次至多调整的OSD数目
–no-increasing:如果携带,则从不将reweight进行上调(上调指将当前underload的OSD权重调大,让其分担更多的PG);如果不携带,至多将OSD的reweight调整至1