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

[经验分享] Ceph mon节点故障处理案例分解

[复制链接]

尚未签到

发表于 2019-2-2 07:41:21 | 显示全部楼层 |阅读模式
Ceph monitor故障恢复
查看ceph健康状态
  [root@bgw-os-node151 ~]# ceph health
  HEALTH_OK
  [root@bgw-os-node151 ~]# ceph health detail
  HEALTH_OK
  [root@bgw-os-node151 ~]# ceph mon stat
  e2: 3 mons at{bgw-os-node151=10.240.216.151:6789/0,bgw-os-node152=10.240.216.152:6789/0,bgw-os-node153=10.240.216.153:6789/0},election epoch 12, quorum 0,1,2 bgw-os-node151,bgw-os-node152,bgw-os-node153
故障一:Ceph mon进程异常退出且系统运行正常
故障错误信息
  [root@bgw-os-node151 ~]# ceph health detail
  HEALTH_WARN 1 mons down, quorum 0,1bgw-os-node151,bgw-os-node152
  mon.bgw-os-node153 (rank 2) addr10.240.216.153:6789/0 is down (out of quorum)
解决办法
  这类故障重启相应的mon进程即可恢复
  [root@bgw-os-node153 ceph]# service ceph -c/etc/ceph/ceph.conf start mon.bgw-os-node153
  === mon.bgw-os-node153 ===
  Starting Ceph mon.bgw-os-node153 onbgw-os-node153...
  Starting ceph-create-keys onbgw-os-node153...
  [root@bgw-os-node153 ceph]# ps aux |grepmon
  dbus     2215  0.0  0.0 21588  2448 ?        Ss  May08   0:00 dbus-daemon --system
  root    18516  0.1  0.0 151508 15612 pts/0    Sl  14:57   0:00 /usr/bin/ceph-mon -ibgw-os-node153 --pid-file /var/run/ceph/mon.bgw-os-node153.pid -c/etc/ceph/ceph.conf --cluster ceph
  root    18544  0.0  0.0 103308 2092 pts/0    S+   14:57  0:00 grep mon
  [root@bgw-os-node153 ceph]# ceph healthdetail
  HEALTH_OK
故障二:Ceph集群中有超过半数的mon进程挂掉
  一般来说,在实际运行中,ceph monitor的个数是2n+1(n>=0)个,在线上至少3个,只要正常的节点数>=n+1,ceph的paxos算法能保证系统的正常运行。所以,对于3个节点,同时只能挂掉一个。一般来说,同时挂掉2个节点的概率比较小,但是万一挂掉2个了呢?
  如果ceph的monitor节点超过半数挂掉,paxos算法就无法正常进行仲裁(quorum),此时,ceph集群会阻塞对集群的操作,直到超过半数的monitor节点恢复。http://ceph.com/docs/argonaut/ops/manage/failures/mon/

  1)情况一:挂掉的2个节点至少有一个可以恢复,也就是monitor的元数据还是ok的,那么只需要重启ceph mon进程即可(同上)。建议:monitor最好运行在raid的机器上,这样即使机器出故障,恢复也比较容易。
  2)情况二:挂掉的2个节点的元数据都被损坏了,这应该怎么恢复呢?
  首先看看故障前的仲裁状态信息:
  [root@bgw-os-node151 ~]# ceph--cluster=cluster1 --admin-daemon /var/run/ceph/ceph-mon.bgw-os-node151.asokquorum_status

  再来看看故障后的仲裁状态信息:
  [root@bgw-os-node153 ceph]# service ceph -c/etc/ceph/ceph.conf stop mon.bgw-os-node153
  === mon.bgw-os-node153 ===
  Stopping Ceph mon.bgw-os-node153 onbgw-os-node153...kill 18516...done
  [root@bgw-os-node153 ceph]# ps aux | grepmon
  dbus     2215  0.0  0.0 21588  2448 ?        Ss  May08   0:00 dbus-daemon --system
  root    18903  0.0  0.0 103308 2040 pts/0    S+   15:42  0:00 grep mon
  [root@bgw-os-node152 ~]# service ceph -c/etc/ceph/ceph.conf stop mon.bgw-os-node152
  === mon.bgw-os-node152 ===
  Stopping Ceph mon.bgw-os-node152 onbgw-os-node152...kill 23144...done
  [root@bgw-os-node152 ~]# ps aux | grep mon
  dbus     2968  0.0  0.0  21588  2408 ?       Ss   May08   0:00 dbus-daemon --system
  root    13180  0.0  0.0 103308 2096 pts/0    S+   15:42  0:00 grep mon
  [root@bgw-os-node151 ~]# ceph--cluster=cluster1 --admin-daemon /var/run/ceph/ceph-mon.bgw-os-node151.asokconfig show
  [root@bgw-os-node151 ~]# ceph--cluster=cluster1 --admin-daemon /var/run/ceph/ceph-mon.bgw-os-node151.asokquorum_status

  此时通过网络访问ceph的所有操作都会被阻塞,但是在monitor本地的socket还是可以通信的。
  [root@bgw-os-node152 ~]# telnet10.240.216.151 6789
  Trying 10.240.216.151...
  Connected to 10.240.216.151.
  Escape character is '^]'.
  ceph v027
  telnet> quit         > 10.240.216.153:6789/0 pipe(0x7fc500000c00sd=4 :0 s=1 pgs=0 cs=0 l=1 c=0x7fc500000e70).fault
  导出monmap报错了!!!呜呜~~~ 肿么办???
  这里很重要,由于不能通过socket将monmap导出,所以需要借助monmaptool来完成
  [root@bgw-os-node151 ~]# monmaptool --help
  usage: [--print] [--create [--clobber][--fsiduuid]] [--generate] [--set-initial-members] [--add name 1.2.3.4:567] [--rmname]
  首先在bgw-os-node152上手动生成monmap
  [root@bgw-os-node152 ~]# monmaptool--create --clobber --fsid 00000000-0000-0000-0000-000000000001 --addbgw-os-node151 10.240.216.151:6789 --add bgw-os-node152 10.240.216.152:6789 monmap
  monmaptool: monmap file monmap
  monmaptool: set fsid to00000000-0000-0000-0000-000000000001
  monmaptool: writing epoch 0 to monmap (2monitors)
  然后将正常的monitor节点上的mon key拷贝过来:
  [root@bgw-os-node151 ~]# cat/var/lib/ceph/mon/ceph-bgw-os-node151/keyring
  [mon.]
  key = AQCMc01V0JvDDBAAbNpMnCTznrypm7d3qO2eyw==
  caps mon = "allow *"
  [root@bgw-os-node152 ~]# vim /tmp/keyring         #添加
  [mon.]
  key = AQCMc01V0JvDDBAAbNpMnCTznrypm7d3qO2eyw==
  caps mon = "allow *"
  然后初始化新的mon节点:
  [root@bgw-os-node152 ~]#  ceph-mon --cluster cluster1 -i bgw-os-node152--mkfs --monmap /root/monmap --keyring /tmp/keyring -c /etc/ceph/ceph.conf
  ceph-mon: set fsid to00000000-0000-0000-0000-000000000001
  ceph-mon: created monfs at/var/lib/ceph/mon/cluster1-bgw-os-node152 for mon.bgw-os-node152
  最后启动故障节点:
  [root@bgw-os-node152 ~]# ceph-mon --clustercluster1 -i bgw-os-node152 --public-addr 10.240.216.152:6789 -c /etc/ceph/ceph.conf
  [root@bgw-os-node152 ~]# ps aux | grep mon
  dbus     2968  0.0  0.0 21588  2408 ?        Ss  May08   0:00 dbus-daemon --system
  root    14717  1.0  0.0 165792 30768 pts/0    Sl  16:33   0:00 ceph-mon --clustercluster1 -i bgw-os-node152 --public-addr 10.240.216.152:6789 -c/etc/ceph/ceph.conf
  root    14732  0.0  0.0 103308 2092 pts/0    S+   16:33  0:00 grep mon
  [root@bgw-os-node152 ~]# ceph status
  cluster 00000000-0000-0000-0000-000000000001
  health HEALTH_WARN 1 mons down, quorum 0,1 bgw-os-node151,bgw-os-node152
  monmap e2: 3 mons at{bgw-os-node151=10.240.216.151:6789/0,bgw-os-node152=10.240.216.152:6789/0,bgw-os-node153=10.240.216.153:6789/0},election epoch 22, quorum 0,1 bgw-os-node151,bgw-os-node152
  mdsmap e14: 1/1/1 up {0=bgw-os-node153=up:active}, 1 up:standby
  osdmap e98: 12 osds: 12 up, 12 in
  pgmap v12319: 384 pgs, 6 pools, 417 MB data, 81 objects
  13575 MB used, 3337 GB / 3350 GB avail
  384 active+clean

  数据正常:)
  添加第三个节点:
  [root@bgw-os-node153 ~]# monmaptool--create --clobber --fsid 00000000-0000-0000-0000-000000000001 --addbgw-os-node151 10.240.216.151:6789 --add bgw-os-node152 10.240.216.152:6789--add bgw-os-node153 10.240.216.153:6789 monmap
  monmaptool: monmap file monmap
  monmaptool: set fsid to00000000-0000-0000-0000-000000000001
  monmaptool: writing epoch 0 to monmap (3monitors)
  [root@bgw-os-node153 ~]# vim /tmp/keyring
  [mon.]
  key = AQCMc01V0JvDDBAAbNpMnCTznrypm7d3qO2eyw==
  caps mon = "allow *"
  [root@bgw-os-node153 ~]# ceph-mon --clustercluster1 -i bgw-os-node153 --mkfs --monmap /root/monmap --keyring /tmp/keyring-c /etc/ceph/ceph.conf
  ceph-mon: set fsid to00000000-0000-0000-0000-000000000001
  ceph-mon: created monfs at/var/lib/ceph/mon/cluster1-bgw-os-node153 for mon.bgw-os-node153
  [root@bgw-os-node153 ~]# ceph-mon --clustercluster1 -i bgw-os-node153 --public-addr 10.240.216.153:6789 -c/etc/ceph/ceph.conf
  [root@bgw-os-node153 ~]# ps aux | grep mon
  dbus     2215  0.0  0.0 21588  2448 ?        Ss  May08   0:00 dbus-daemon --system
  root    22023  1.7  0.1 166580 34096 pts/0    Sl  17:26   0:00 ceph-mon --clustercluster1 -i bgw-os-node153 --public-addr 10.240.216.153:6789 -c/etc/ceph/ceph.conf
  root    22040  0.0  0.0 103308 2032 pts/0    S+   17:26  0:00 grep mon
  [root@bgw-os-node153 ~]# ceph status
  cluster 00000000-0000-0000-0000-000000000001
  health HEALTH_OK
  monmap e2: 3 mons at{bgw-os-node151=10.240.216.151:6789/0,bgw-os-node152=10.240.216.152:6789/0,bgw-os-node153=10.240.216.153:6789/0},election epoch 24, quorum 0,1,2 bgw-os-node151,bgw-os-node152,bgw-os-node153
  mdsmap e14: 1/1/1 up {0=bgw-os-node153=up:active}, 1 up:standby
  osdmap e98: 12 osds: 12 up, 12 in
  pgmap v12319: 384 pgs, 6 pools, 417 MB data, 81 objects
  13575 MB used, 3337 GB / 3350 GB avail
  384 active+clean

  到此添加mon节点就完成啦!
  





运维网声明 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-670640-1-1.html 上篇帖子: Proxmox 下篇帖子: 使用ceph-deploy安装Ceph 12.x(序言)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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