ceph osd磁盘空间不一致,导致大磁盘空间使用率极低,如何解决?
ceph集群初始时有9个osd,其中六个0.5T,三个0.9T,使用70%后扩容加入六个osd,都是3.6T,调整过pg及pgp,集群恢复之后,新的数据并不多往大磁盘的osd写,导致前面使用率已经很高的osd很快又濒临写满,导致整个集群空间利用率很低,通过批量调节reweight后,数据并没有明显往后几个大osd迁移,只是在前几个小osd来回迁移,并且pg会出现大量misplaced状态,请问如何提高后加入的大osd的空间使用率?多谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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结束后即平衡。
注:此操作会导致数据迁移,线上环境谨慎操作