前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ceph osd full故障 原

ceph osd full故障 原

作者头像
domain0
发布2018-08-02 12:01:03
1.5K0
发布2018-08-02 12:01:03
举报
文章被收录于专栏:运维一切

资料(传送门)[http://bbs.ceph.org.cn/question/363]

故障之后的现象

代码语言:javascript
复制
[root@ceph-osd-1 ~]# ceph -s  
    cluster 8ade9410-0ad8-4dbb-bd56-e1bf2f947009  
     health HEALTH_ERR 
            1 full osd(s) 
            2 near full osd(s)  
     monmap e1: 1 mons at {ceph-osd-1=10.10.200.163:6789/0}, election epoch 1, quorum 0 ceph-osd-1  
     osdmap e1514: 11 osds: 11 up, 11 in  
            flags full  
      pgmap v177918: 1628 pgs, 6 pools, 2548 GB data, 632 kobjects  
            7708 GB used, 4196 GB / 11905 GB avail  
                1625 active+clean  
                   3 active+clean+scrubbing+deep  
[root@ceph-osd-1 ~]# ceph health  
HEALTH_ERR 1 full osd(s); 2 near full osd(s)  

可以看到其中一个osd磁盘已经写满,另外还有两个osd已经接近爆满。 查看详细的健康情况

代码语言:javascript
复制
[root@ceph-osd-1 ~]# ceph health detail
...
recovery 7482/129081 objects degraded (5.796%)
osd.0 is full at 95%
osd.2 is near full at 93%
osd.1 is near full at 93%

这里能看到具体是哪个磁盘接近饱和。

扩容解决 安装好ceph,配置好验证之后,进行新的osd的安装

代码语言:javascript
复制
[root@ceph-osd-1 ~]# ceph-deploy osd prepare 192.168.1.1:/osd3  
[root@ceph-osd-1 ~]# ceph-deploy osd activate 192.168.1.1:/osd3  

详细的增加osd的步骤可以参考这里:[传送门] 增加之后需要确认你的新osd是否在故障的数据区域 #更改数据区域 查看数据区域

代码语言:javascript
复制
[root@ceph-osd-1 ~]# ceph osd tree
-21 6.00000 root ssd                                              
-11 3.00000     datacenter guangdong                                   
 -2 2.85999         host f207                                     
  1 0.25999             osd.1        up  1.00000          1.00000 
  2 0.25999             osd.2        up  1.00000          1.00000 
  3 0.25999             osd.3        up  1.00000          1.00000 
  4 0.25999             osd.4        up  1.00000          1.00000 
  5 0.25999             osd.5        up  1.00000          1.00000 
  6 0.25999             osd.6        up  1.00000          1.00000 
  7 0.25999             osd.7        up  1.00000          1.00000 
  8 0.25999             osd.8        up  1.00000          1.00000 
  9 0.25999             osd.9        up  1.00000          1.00000 
 -3 2.85999         host f208                                     
 11 0.25999             osd.11       up  1.00000          1.00000 
 12 0.25999             osd.12       up  1.00000          1.00000 
 13 0.25999             osd.13       up  1.00000          1.00000 
 14 0.25999             osd.14       up  1.00000          1.00000 
 15 0.25999             osd.15       up  1.00000          1.00000 
 16 0.25999             osd.16       up  1.00000          1.00000 
 17 0.25999             osd.17       up  1.00000          1.00000 
 18 0.25999             osd.18       up  1.00000          1.00000 
 19 0.25999             osd.19       up  1.00000          1.00000 
 -4 2.85999         host f209                                     
 22 0.25999             osd.22       up  1.00000          1.00000 
 23 0.25999             osd.23       up  1.00000          1.00000 
 24 0.25999             osd.24       up  1.00000          1.00000 
 25 0.25999             osd.25       up  1.00000          1.00000 
 26 0.25999             osd.26       up  1.00000          1.00000 
 27 0.25999             osd.27       up  1.00000          1.00000 
 28 0.25999             osd.28       up  1.00000          1.00000 
 29 0.25999             osd.29       up  1.00000          1.00000 
 30 0.25999             osd.30       up  1.00000          1.00000 
 -5 2.85999         host f214                                     
 74 1.81000             osd.74       up  1.00000          1.00000 
 75 1.81000             osd.75       up  1.00000          1.00000 
 76 1.81000             osd.76       up  1.00000          1.00000 
 77 1.81000             osd.77       up  1.00000          1.00000 
 78 1.81000             osd.78       up  1.00000          1.00000 
 79 1.81000             osd.79       up  1.00000          1.00000 
 80 1.81000             osd.80       up  1.00000          1.00000 
 81 1.81000             osd.81       up  1.00000          1.00000 
 82 1.81000             osd.82       up  1.00000          1.00000 
 83 1.81000             osd.83       up  1.00000          1.00000 

这里能看到datacenter guangdong,可以在广东部署的数据区域情况 ####导出osd数据区域划分文件:

代码语言:javascript
复制
[root@ceph-osd-1 ~]# ceph osd getcrushmap -o crush.dump

转意文件,变成人工可读的

代码语言:javascript
复制
[root@ceph-osd-1 ~]# crushtool -d crush.dump -o crush.map

修改crush.map

代码语言:javascript
复制
...
#调整host所属的数据中心
#item这里修改,加上新加的host,注意host的磁盘权重和磁盘数量,移动item的话新的加完一定把老的删除了,尽量不要让一个机器同属于不同的数据中心
datacenter guangdong{
        id -11          # do not change unnecessarily
        # weight 11.440
        alg straw
        hash 0  # rjenkins1
        item f207 weight 2.860
        item f208 weight 2.860
        item f209 weight 2.860
        item f214 weight 2.860
}
...
#跳转pool的副本集数量和数据区域划分
rule svnrbd {
        ruleset 1
        type replicated
        min_size 2
        max_size 8
        step take guangdong
        step chooseleaf firstn 2 type host
        step emit
        step take beijing
        step chooseleaf firstn -2 type host
        step emit
}
...

map文件压缩并导入

代码语言:javascript
复制
[root@ceph-osd-1 ~]# crushtool -c crush.map -o crush.tmp
[root@ceph-osd-1 ~]# ceph osd setcrushmap -i crush.tmp

完成之后ceph就开始自行进行数据同步了。 过一段时间就恢复了。

故障影响 故障会导致rbd写入直接报错,严重的可以影响同一数据区域下的所有的pool 对rdb操作之后报错如下

代码语言:javascript
复制
[root@p215 /var/log]# rbd lock rm data/f2 p215 client.114319 
2016-06-05 16:28:58.275592 7f896b784880  0 client.132880.objecter  FULL, paused modify 0x2c3e230 tid 2

受影响的文件操作会导致程序处于无限等待的状态,并且进程不可中断,不可响应中断信号。

将磁盘使用率调高的办法

代码语言:javascript
复制
ceph tell mon.* injectargs --mon_osd_nearfull_ratio 0.9
ceph tell mon.* injectargs --mon_osd_full_ratio 0.95
ceph pg set_full_ratio 0.98
ceph daemon  mon.0 config show|grep ratio
#osd的同理

追加一个自动平衡调节磁盘权重参数的命令

代码语言:javascript
复制
ceph osd reweight-by-utilization

后续需要分析:导致这个问题的原因是什么?怎么合理划分数据区域?怎么计算可用容量?

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/06/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 故障之后的现象
  • 扩容解决 安装好ceph,配置好验证之后,进行新的osd的安装
    • 转意文件,变成人工可读的
      • 修改crush.map
        • map文件压缩并导入
        • 故障影响 故障会导致rbd写入直接报错,严重的可以影响同一数据区域下的所有的pool 对rdb操作之后报错如下
          • 将磁盘使用率调高的办法
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档