- 第一部分:常用操作
- 第一部分:常用操作 - 1. 操作集群
- 第一部分:常用操作 - 2. 监控集群
- 第一部分:常用操作 - 3. 监控 OSD
- 第一部分:常用操作 - 4. 监控 PG
- 第一部分:常用操作 - 5. 用户管理
- 第一部分:常用操作 - 6. 增加/删除 Monitor
- 第一部分:常用操作 - 7. 增加/删除 OSD
- 第一部分:常用操作 - 8. 操作 Pool
- 第一部分:常用操作 - 9. 管理 Crushmap
- 第一部分:常用操作 - 10. 修改 MON IP
- 第一部分:常用操作 - 11. 修改集群配置
- 第一部分:常用操作 - 12. 日志和调试
- 第二部分:故障处理
- 第二部分:故障处理 - 1. 常见 MON 故障处理
- 第二部分:故障处理 - 2. 常见 OSD 故障处理
- 第二部分:故障处理 - 3. 常见 PG 故障处理
- 第二部分:故障处理 - 4. 全局 Ceph 节点宕机处理
- 第二部分:故障处理 - 5. 单个 Ceph 节点宕机处理
- 第三部分:Ceph 进阶
- 第三部分:Ceph 进阶 - 1. PG 和 PGP 的区别
- 第三部分:Ceph 进阶 - 2. Monitor 的备份和恢复
- 第三部分:Ceph 进阶 - 3. 修改 Cinder/Glance 进程的最大可用 FD
- 第三部分:Ceph 进阶 - 4. 更换 OSD Journal
- 第三部分:Ceph 进阶 - 5. 清空 OSD 的分区表后如何恢复
- 第三部分:Ceph 进阶 - 6. PG 卡在 active + remapped 状态
- 第三部分:Ceph 进阶 - 7. 查看 RBD 镜像的位置
- 第三部分:Ceph 进阶 - 8. 查看 RBD 镜像的实际大小
- 第三部分:Ceph 进阶 - 9. 统计 OSD 上 PG 的数量
- 第三部分:Ceph 进阶 - 10. 查看使用 RBD 镜像的客户端
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第三部分:Ceph 进阶 - 6. PG 卡在 active + remapped 状态
问题现象
有时,我们的 Ceph 集群可能会出现 PG 长时间卡在 active + remapped
的状态。
root@ceph1:~# ceph -s
cluster 5ccdcb2d-961d-4dcb-a9ed-e8034c56cf71
health HEALTH_WARN 88 pgs stuck unclean
monmap e2: 1 mons at {ceph1=192.168.56.102:6789/0}, election epoch 1, quorum 0 ceph1
osdmap e71: 4 osds: 4 up, 3 in
pgmap v442: 256 pgs, 4 pools, 285 MB data, 8 objects
690 MB used, 14636 MB / 15326 MB avail
88 active+remapped
168 active+clean
产生问题的原因
出现这种情况,一般是做了 osd 的 reweight
操作引起的,这是因为一般在做 reweight
的操作的时候,根据算法,这个上面的 pg 是会尽量分布在这个主机上的,而 crush reweight
不变的情况下,去修改 osd 的 reweight
的时候,可能算法上会出现无法映射的问题。
如何解决
1、直接做 ceph osd crush reweigh
的调整即可避免这个问题,这个 straw 算法里面还是有点小问题的,在调整某个因子的时候会引起整个因子的变动。
2、从 FIREFLY (CRUSH_TUNABLES3) 开始 CRUSH 里面增加了一个参数:
chooseleaf_vary_r
是否递归的进行 chooseleaf 尝试,如果非 0 ,就递归的进行,这个基于 parent 已经做了多少次尝试。默认值是 0 ,但是常常找不到合适的 mapping 。在计算成本和正确性上来看最优值是 1 。对于已经有大量数据的集群来说,从 0 调整为 1 将会有大量数值的迁移,调整为 4 或者 5 的话,将会找到一个更有效的映射,可以减少数据的移动。
查看当前的值:
root@ceph1:~# ceph osd crush show-tunables |grep chooseleaf_vary_r
"chooseleaf_vary_r": 0,
修改 chooseleaf_vary_r
的值。
Hammer 版本下这个参数默认为:
tunable chooseleaf_vary_r 0
修改 Crush Map 的方法请参考本手册第一部分 9. 管理 Crushmap 。
或者,直接修改 crush tunables
的值为 optimal
。
ceph osd crush tunables optimal
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论