前言

碰到一个cepher问了一个问题:

为什么我的OSD关闭到最后有92个OSD无法关闭,总共的OSD有300个左右

想起来在很久以前帮人处理过一次问题,当时环境是遇上了一个BUG,需要升级到新版本进行解决,然后当时我来做操作,升级以后,发现osd无法启动,进程在,状态无法更新,当时又回滚回去,就可以了,当时好像是K版本升级到J版本,想起来之前看过这个版本里面有数据结构的变化,需要把osd全部停掉以后才能升级,然后就stop掉所有osd,当时发现有的osd还是无法stop,然后就手动去标记了,然后顺利升级

今天这个现象应该跟当时是一个问题,然后搜索了一番参数以后,最后定位在确实是参数进行了控制

实践

我的一个8个osd的单机环境,对所有OSD进行stop以后就是这个状态,还有2个状态无法改变

[root@lab8106 ~]# ceph -s
cluster 49ee8a7f-fb7c-4239-a4b7-acf0bc37430d
health HEALTH_ERR
295 pgs are stuck inactive for more than 300 seconds
295 pgs stale
295 pgs stuck stale
too many PGs per OSD (400 > max 300)
monmap e1: 1 mons at {lab8106=192.168.8.106:6789/0}
election epoch 3, quorum 0 lab8106
osdmap e77: 8 osds: 2 up, 2 in; 178 remapped pgs
flags sortbitwise,require_jewel_osds
pgmap v296: 400 pgs, 1 pools, 0 bytes data, 0 objects
76440 kB used, 548 GB / 548 GB avail
295 stale+active+clean
105 active+clean

看下这组参数:

mon_osd_min_up_ratio = 0.3
mon_osd_min_in_ratio = 0.3

我们修改成0 后再测试

mon_osd_min_up_ratio = 0
mon_osd_min_in_ratio = 0

停止进程

systemctl stop ceph-osd.target

查看状态

[root@lab8106 ~]# ceph -s
cluster 49ee8a7f-fb7c-4239-a4b7-acf0bc37430d
health HEALTH_ERR
48 pgs are stuck inactive for more than 300 seconds
85 pgs degraded
15 pgs peering
400 pgs stale
48 pgs stuck inactive
48 pgs stuck unclean
85 pgs undersized
8/8 in osds are down
monmap e1: 1 mons at {lab8106=192.168.8.106:6789/0}
election epoch 4, quorum 0 lab8106
osdmap e86: 8 osds: 0 up, 8 in
flags sortbitwise,require_jewel_osds
pgmap v310: 400 pgs, 1 pools, 0 bytes data, 0 objects
286 MB used, 2193 GB / 2194 GB avail
300 stale+active+clean
85 stale+undersized+degraded+peered
15 stale+peering

可以看到状态已经可以正常全部关闭了

分析

这里不清楚官方做这个的理由,个人推断是这样的,默认的副本为3,那么在集群有三分之二的OSD都挂掉了以后,再出现OSD挂掉的情况下,这个集群其实就是一个废掉的状态的集群,而这个时候,还去触发down和out,对于环境来说已经是无效的操作了,触发的迁移也属于无效的迁移了,这个时候保持一个最终的可用的osdmap状态,对于整个环境的恢复也有一个基准点

在Luminous版本中已经把这个参数改成

mon_osd min_up_ratio = 0.3


mon_osd_min_in_ratio = 0.75

来降低其他异常情况引起的down,来避免过量的迁移

总结

本篇就是一个参数的实践

变更记录

Why Who When
创建 武汉-运维-磨渣 2017-08-21

为什么关不掉所有的OSD的更多相关文章

  1. 关不掉.vbs

    创建: 1.在桌面新建一个 关不掉.txt 文本文档 2.打开输入一下内容 do msgbox"信不信你关不掉我" msgbox"哈哈,你相信了吧" msgbo ...

  2. 关不掉的小姐姐程序python tkinter实现 学习---打包教程

    首先,我们先准备两个.py文件,还要图片文件         代码//是我自己手写的,copy时记得删掉,不然有可能错误,比如中英文啥的    当然 一些语法的无问题就百度,都能给你答案 第一个.py ...

  3. 用 Python 制作关不掉的端午安康弹窗

    端午节又称端阳节.龙舟节.重午节.龙节.正阳节.天中节等,端午节源自天象崇拜,由上古时代祭龙演变而来,因传说战国时期的楚国诗人屈原在五月五日跳汨罗江自尽,后来人们亦将端午节作为纪念屈原的节日,在端午节 ...

  4. sql-lib闯关1-10关

    闯关之前我们需要搭建所需环境SQLi-Labs SQLi-Labs是一个专业的SQL注入练习平台,该平台包含了以下在测试场景中常见的注入类型: 1.报错注入(联合查询) ​     1)字符型 ​   ...

  5. 关于我用python表白成功这件事【表白成功】

    520,并非情人所属, 我们可以表白万物, 不管什么时候, 这都是一个特别的日子, 今天,我要表白所有, 心里有我的人! 在这个充满幸福的日子里, 我要把最美好的祝福, 送给心里有我的每一个人: 祝愿 ...

  6. 工作中遇到的一个多线程下导致RCW无法释放的问题

    最近有个同事在调用一个类库中的方法时遇到了一个问题,异常信息如下: 尝试释放正在使用的RCW,活动线程或其他线程上正在使用该 RCW,释放正在使用的 RCW 的尝试会导致损坏或数据丢失. 该方法中对w ...

  7. 关闭firefox的plugincheck

    每次打开firefox都弹出这个SB页面: https://www.mozilla.org/en-US/plugincheck/ 关不掉, 很是烦人. 经过地番google,找到了答案: about: ...

  8. Windows下将nginx安装为服务运行

    今天看到nginx这个小服务器软件正式版更新到了1.4.2,想玩下它.这个服务器软件虽小,但功能强大,是开源软件,有着良好的性能,被很多个人.企业,甚至大型企业所使用! 由于是在Windows下,所以 ...

  9. 用代码控制鼠标键盘(C#语言)

    前些时间想做一个鼠标点击器,用到了这些知识. 下面整理记录一下. ps.感谢各位大神 下面直接上代码 1.鼠标的控制 class MouseMove { #region MouseEvent [Sys ...

随机推荐

  1. 【编程学习笔记】如何组织构建多文件 C 语言程序!编程也有~

    优秀 Unix 程序哲学 首先,你要知道这个 C 程序是一个 Unix 命令行工具.这意味着它运行在(或者可被移植到)那些提供 Unix C 运行环境的操作系统中.当贝尔实验室发明 Unix 后,它从 ...

  2. elasticsearch-安装-centos7- es7.5 搭建

        centos6 搭建 参考 https://www.cnblogs.com/php-linux/p/8758788.html   搭建linux虚拟机  https://www.cnblogs ...

  3. php-ffmpeg 操作视频/音频文件

    php-ffmpeg 是一个php操作视频/音频文件的类库. GitHub地址:https://github.com/PHP-FFMpeg/PHP-FFMpeg/ 使用composer快速安装:com ...

  4. Linux+Nginx/Apache下的PHP exec函数执行Linux命令

    1.php.ini配置文件 打开PHP的配置文件,里面有一行 disable_function 的值,此处记录了禁止运行的函数,在里面将exec和shell_exec.system等函数删除. 2.权 ...

  5. BGP - 不同 AS 间运行的协议

    在之前介绍的网络场景中,ERGRP,OPSF,RIP 等都是运行在单独一个 AS(自治系统之间).这些协议统称为 IGP - 内部网关协议 ,目的主要是为自治系统内发现邻居和计算路由,从而找到合适的路 ...

  6. docker安装部署neo4j

    docker部署neo4j 环境:ubuntu16.04LTS docker安装 详见:菜鸟教程(docker安装) docker国内镜像源配置 第一步,进入阿里云,登陆后点击左侧的镜像加速,生成自己 ...

  7. fish_redux使用详解---看完就会用!

    说句心里话,这篇文章,来来回回修改了很多次,如果认真看完这篇文章,还不会写fish_redux,请在评论里喷我. 前言 来学学难搞的fish_redux框架吧,这个框架,官方的文档真是一言难尽,比fl ...

  8. Java安全之Commons Collections2分析

    Java安全之Commons Collections2分析 首发:Java安全之Commons Collections2分析 0x00 前言 前面分析了CC1的利用链,但是发现在CC1的利用链中是有版 ...

  9. 3. Distributional Reinforcement Learning with Quantile Regression

    C51算法理论上用Wasserstein度量衡量两个累积分布函数间的距离证明了价值分布的可行性,但在实际算法中用KL散度对离散支持的概率进行拟合,不能作用于累积分布函数,不能保证Bellman更新收敛 ...

  10. eclipse快捷键(Mac版)整理

    eclipse快捷键(Mac版)整理 前言: 最近在学习JDBC,老师用的是eclipse,对于习惯了IDEA的我来说,没有了快捷键,效率明显下降. 我认为,开发工具的熟练使用,也是程序员必备的一项技 ...