ceph osd磁盘空间不一致,导致大磁盘空间使用率极低,如何解决?

新手上路,请多包涵

ceph集群初始时有9个osd,其中六个0.5T,三个0.9T,使用70%后扩容加入六个osd,都是3.6T,调整过pg及pgp,集群恢复之后,新的数据并不多往大磁盘的osd写,导致前面使用率已经很高的osd很快又濒临写满,导致整个集群空间利用率很低,通过批量调节reweight后,数据并没有明显往后几个大osd迁移,只是在前几个小osd来回迁移,并且pg会出现大量misplaced状态,请问如何提高后加入的大osd的空间使用率?多谢!


阅读 6.7k
1 个回答

我当前页也遇到了此问题,查阅资料后发现和 CRUSH ruleset 的配置有关,ceph osd crush rule dump 发现type 为 “host”,将 CRUSH ruleset 的 type 由 “host” 修改为 “osd”,使得 CRUSH 为 PG 选择 OSD 时不再局限于不同的 host。
ceph osd getcrushmap -o crushmap_compiled_file
crushtool -d crushmap_compiled_file -o crushmap_decompiled_file
编辑 crushmap_decompiled_file rule replicated_ruleset { }中的type 由 “host” 修改为 “osd”
crushtool -c crushmap_decompiled_file -o newcrushmap
ceph osd setcrushmap -i newcrushmap
recovery结束后即平衡。
注:此操作会导致数据迁移,线上环境谨慎操作

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进