设为首页 收藏本站
查看: 1049|回复: 0

[经验分享] ceph osd full/nearfull

[复制链接]

尚未签到

发表于 2019-2-1 14:41:13 | 显示全部楼层 |阅读模式
  ceph集群出现full osd后,会禁止写入和删除操作,出现这种情况,应该如何解决呢?
可以先通过调高集群full ratio限制比例,或者修改osd权重,来解除写锁,然后再进行数据删除等操作。
具备扩容条件,可以通过扩容解决。
但是要注意,扩容和调整osd权重,会出现数据平衡状况,影响集群读写速率(正在移动的数据,也会进行写锁)。如果是生产环境,请注意操作时点,保证集群可用性。

  

  nearfull是即将到达full状态的一个提醒,在此状态时,应该及时安排集群扩容等处理。

  nearfull和full ratio在部署集群时,可以按需进行设定。

  

  1、容量不够,扩容来凑
  1) scale-up
  通过向集群现有服务器添加磁盘实现。

  2) scale-out

  通过向集群添加服务器节点实现

  ceph集群扩容参见《ceph集群扩容》后续补充

  

  2、删除无用数据,释放空间

  为防止数据丢失,ceph在osd磁盘数据量达到一定比例后,会将osd标记为full状体,并禁止客户端进行数据写操作,包括数据的删除操作。也就是说,我们不能直接通过删除无用数据,释放空间。

  那么存储集群中有很多历史的无用数据,占用了很多空间,又不能释放,该怎么办?

  

  解决:调整ceph集群的限制比例,消除写锁,然后再进行删除。
# 查看集群osd详细状态
$ ceph health detail
HEALTH_ERR 1 full osd(s); 3 near full osd(s); full flag(s) set
osd.19 is full at 80%
osd.6 is near full at 75%
osd.7 is near full at 76%
osd.15 is near full at 71%
full flag(s) set
# 修改osd最大可写容量比例
## 修改前为80%,修改后为85%
$ ceph tell osd.* injectargs '--mon-osd-full-ratio 85'
$ ceph tell osd.* injectargs '--mon-osd-full-ratio 0.85'
$ ceph pg set_full_ratio 0.85
# 此时再查看集群状态,已经恢复。删除无用的数据
# 例子:rbd rm volumes/volume-fb2eb4e8-9871-4048-b7fa-d6494be06b44  3、调整osd权重
  通常osd full发生时,并不是全部osd都达到full的比例。此时可以调整full的osd的存储比重,从而降低该osd存储数据的比例,实现数据的自动平衡(按设定的比例,移动部分数据到其他的osd)。

  默认安装时,ceph集群会按磁盘容量自动设置osd比重,范围0~1。
# 查看集群osd的比重
$ ceph osd tree
ID WEIGHT   TYPE NAME              UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 18.43690 root default                                             
-2  2.63699     host controller-3                                    
0  0.87900         osd.0               up  1.00000          1.00000
2  0.87900         osd.2               up  1.00000          1.00000
3  0.87900         osd.3               up  1.00000          1.00000
-3  2.63699     host controller-1                                    
1  0.87900         osd.1               up  1.00000          1.00000
4  0.87900         osd.4               up  1.00000          1.00000
15  0.87900         osd.15              up  1.00000          1.00000
# 例:调整osd15的比重为0.7
$ ceph osd crush reweight osd.15 0.7
# 查看集群osd的比重
$ ceph osd tree
ID WEIGHT   TYPE NAME              UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 18.43690 root default                                             
-2  2.63699     host controller-3                                    
0  0.87900         osd.0               up  1.00000          1.00000
2  0.87900         osd.2               up  1.00000          1.00000
3  0.87900         osd.3               up  1.00000          1.00000
-3  2.63699     host controller-1                                    
1  0.87900         osd.1               up  1.00000          1.00000
4  0.87900         osd.4               up  1.00000          1.00000
15  0.87900         osd.15              up  1.00000          1.00000
# 例:调整osd15的比重为0.7
$ ceph osd crush reweight osd.15 0.7  调整后集群会根据比重,自动移动数据进行平衡。调整的比重可以通过计算得出,也可以逐步降低比重,查看集群状况再进行调整。

  直到full的osd状态改变为nearfull,集群可以进行写操作。

  

  ceph osd crush reweight   和 ceph osd reweight  的区别:
"ceph osd crush reweight" sets the CRUSH weight of the OSD. This
weight is an arbitrary value (generally the size of the disk in TB or
something) and controls how much data the system tries to allocate to
the OSD.
"ceph osd reweight" sets an override weight on the OSD. This value is
in the range 0 to 1, and forces CRUSH to re-place (1-weight) of the
data that would otherwise live on this drive. It does *not* change the
weights assigned to the buckets above the OSD, and is a corrective
measure in case the normal CRUSH distribution isn't working out quite
right. (For instance, if one of your OSDs is at 90% and the others are
at 50%, you could reduce this weight to try and compensate for it.)  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670556-1-1.html 上篇帖子: CentOS 7.5安装部署Jewel版本Ceph集群 下篇帖子: CEPH RBD常用命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表