集群osd full错误处理


title: 集群osd full错误处理

一、前言

之前也处理过集群出现osd full时的问题,但是没有整理出来,今天又处理了这种问题,所以就整理记录下来。

二、环境准备

首先准备一个正常的集群。

[root@ceph01 ~]# ceph -s
    cluster caf6dbda-86e7-4c4c-b8f7-a9a12d0a39b0
     health HEALTH_OK
     monmap e5: 1 mons at {ceph01=192.168.10.20:6789/0}
            election epoch 15, quorum 0 ceph01
      fsmap e12: 1/1/1 up {0=ceph01=up:active}
     osdmap e262: 6 osds: 6 up, 6 in
            flags sortbitwise,require_jewel_osds
      pgmap v57886: 344 pgs, 14 pools, 11636 MB data, 3115 objects
            23548 MB used, 68545 MB / 92093 MB avail
                 344 active+clean

三、开始实验

为了方便测试,首先将集群的nearfull和full设置低一些,这样就可以少写入点测试数据,使集群快速的能达到full的状态。

[root@ceph01 ~]# ceph pg set_nearfull_ratio 0.2
[root@ceph01 ~]# ceph pg set_full_ratio 0.3

这里将osd的nearfull设置为0.2,full设置为0.3。开始往集群写入测试数据

[root@ceph01 ~]# bench -p rbd 1000 write --no-cleanup

写入过程中,另开一个窗口,观察集群状态

[root@ceph01 ~]# ceph -s
    cluster caf6dbda-86e7-4c4c-b8f7-a9a12d0a39b0
         health HEALTH_WARN
                1 near full osd(s)
         monmap e5: 1 mons at {ceph01=192.168.10.20:6789/0}
                election epoch 15, quorum 0 ceph01
          fsmap e12: 1/1/1 up {0=ceph01=up:active}
         osdmap e227: 6 osds: 6 up, 6 in
                flags nearfull,sortbitwise,require_jewel_osds
          pgmap v56958: 344 pgs, 14 pools, 7332 MB data, 2039 objects
                15512 MB used, 76581 MB / 92093 MB avail
                     344 active+clean
      client io 42989 kB/s wr, 0 op/s rd, 10 op/s wr

可以看到,写入一段时间之后,集群出现near full告警,但是客户端可以继续写入,继续观察集群状态

[root@ceph01 ~]# ceph -s
    cluster caf6dbda-86e7-4c4c-b8f7-a9a12d0a39b0
     health HEALTH_ERR
            6 full osd(s)
            full flag(s) set
     monmap e5: 1 mons at {ceph01=192.168.10.20:6789/0}
            election epoch 15, quorum 0 ceph01
      fsmap e12: 1/1/1 up {0=ceph01=up:active}
     osdmap e225: 6 osds: 6 up, 6 in
            flags full,sortbitwise,require_jewel_osds
      pgmap v56765: 344 pgs, 14 pools, 21672 MB data, 5626 objects
            43616 MB used, 48477 MB / 92093 MB avail
                 344 active+clean

可以看到集群状态变成err了,提示6 full osd(s),此时rados bench写入被挂起

2018-07-27 14:15:29.408205 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acae1900 tid 0
2018-07-27 14:15:29.468281 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acb084a0 tid 0
  309      16      2056      2040   25.3392         3     6.43313     2.48428
2018-07-27 14:15:29.945256 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acaf3880 tid 0
2018-07-27 14:15:29.946301 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acaf20a0 tid 0
2018-07-27 14:15:29.946332 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acaefa30 tid 0
2018-07-27 14:15:30.033664 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acaea8e0 tid 0
2018-07-27 14:15:30.037818 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acaf0620 tid 0
  310      16      2061      2045   25.3226        20     6.73312     2.49643
2018-07-27 14:15:31.248976 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acb00240 tid 0
2018-07-27 14:15:31.396116 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acae6410 tid 0
  311      16      2063      2047   25.2691         8     8.38232     2.50219
2018-07-27 14:15:31.718398 7f257d824a40  0 client.78915.objecter  FULL, paused modify 0x55a5acaf14b0 tid 0
  312      16      2064      2048   25.2036         4     9.97337     2.50583

我们来看下详细的错误信息

[root@ceph01 ~]# ceph health detail
HEALTH_ERR 1 full osd(s); 5 near full osd(s); full flag(s) set
osd.2 is full at 30%
osd.0 is near full at 23%
osd.1 is near full at 22%
osd.3 is near full at 21%
osd.4 is near full at 25%
osd.5 is near full at 28%
full flag(s) set

可以看到osd.2的使用量达到了30%(我们设置的full ratio就是0.3),此时集群状态err,客户端不能读写了。

使用rados rm来删除对象也不行,会报错

[root@ceph01 ~]# rados -p rbd rm benchmark_data_ceph01_112826_object350
2018-07-27 14:20:07.302692 7f6fb3e3aa40  0 client.79057.objecter  FULL, paused modify 0x5621bfa279d0 tid 0

这里可以理解为,集群出现full告警之后,客户端不能读写集群数据了。

三、总结

集群某个osd盘使用量达到集群的full ratio时集群将不可读写。

osd盘满大概可以分为两种情况:

  1. 由于pg规划的不合理,导致一两个osd盘满了,其他osd空间还很富余;

    这种情况可以通过调整盘满的osd的权重,ceph osd reweight OSDID xxx
    然后等待数据迁移完成之后,增加合理pg数,最后等待数据均衡

  1. 整体osd盘都快满了;

    这种情况通过增加osd来解决,获取删除一些数据之后,再扩容。
    想办法让集群恢复到可读写状态,然后来删除一些数据,从而释放集群空间。恢复的方式:
    - 调高full ratio:$ ceph pg set_nearfull_ratio 0.85$ ceph pg set_full_ratio 0.95
    - 通过tune2fs命令释放磁盘空间:$ tune2fs -m 1 /dev/sdc1
    - 删除数据目录无用文件

也可以预先在osd的数据目录下放置一个20G左右的文件,如果万一出现osd盘满的情况,通过rm这个文件来释放空间。为了防止出现集群被写满,要有完善的集群监控机制,在集群快写满时,能及时地处理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,135评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,317评论 3 397
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,596评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,481评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,492评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,153评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,737评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,657评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,193评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,276评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,420评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,093评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,783评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,262评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,787评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,427评论 2 359

推荐阅读更多精彩内容