定位一个网络问题引起的ceph异常
前言
有一个ceph环境出现了异常,状态就是恢复异常的慢,但是所有数据又都在走,只是非常的慢,本篇将记录探测出问题的过程,以便以后处理类似的问题有个思路
处理过程
问题的现象是恢复的很慢,但是除此以外并没有其它的异常,通过iostat监控磁盘,也没有出现异常的100%的情况,暂时排除了是osd底层慢的问题
检测整体写入的速度
通过rados bench写入
rados -p rbd bench 5 write
刚开始写入的时候没问题,但是写入了以后不久就会出现一只是0的情况,可以判断在写入某些对象的时候出现了异常
本地生成一些文件
seq 0 30|xargs -i dd if=/dev/zero of=benchmarkzp{} bs=4M count=2
通过rados put 命令把对象put进去
for a in `ls ./`;do time rados -p rbd put $a $a;echo $a;ceph osd map rbd $a;done
得到的结果里面会有部分是好的,部分是非常长的时间,对结果进行过滤,分为bad 和good
开始怀疑会不会是固定的盘符出了问题,首先把磁盘组合分出来,完全没问题的磁盘全部排除,结果最后都排除完了,所以磁盘本省是没问题的
根据pg的osd组合进行主机分类
1 2 4 ok
3 1 2 bad
2 4 1 ok
3 1 2 bad
3 4 2 bad
……
上面的编号是写入对象所在的pg对应的osd所在的主机,严格按照顺序写入,第一个主机为发送数据方,第二个和第三个为接收数据方,并且使用了cluster network
通过上面的结果发现了从3往2进行发送副本数据的时候出现了问题,然后去主机上排查网络
在主机2上面做iperf -s
在主机3上面做iperf -c host2然后就发现了网络异常了
最终还是定位在了网络上面
已经在好几个环境上面发现没装可以监控实时网络流量dstat工具或者ifstat的动态监控,做操作的时候监控下网络,可以发现一些异常
总结
这个环境在最开始的时候就怀疑是网络可能有问题,但是没有去进行全部服务器的网络的检测,这个在出现一些奇奇怪怪的异常的时候,还是可能出现在网络上面,特别是这种坏掉又不是完全坏掉,只是掉速的情况,通过集群的一些内部告警还没法完全体现出来,而主机很多的时候,又没有多少人愿意一个个的去检测,就容易出现这种疏漏了
在做一个ceph的管理平台的时候,对整个集群做全员对等网络带宽测试还是很有必要的,如果有一天我来设计管理平台,一定会加入这个功能进去
变更记录
Why | Who | When |
---|---|---|
创建 | 武汉-运维-磨渣 | 2018-01-16 |
最新文章
- JavaScript系列文章:详解正则表达式之二
- MVC JS中非表单元素路由传值
- libpng安装与配置(Win7+VS2010)
- Android 开发错误信息001
- javaweb学习总结(二十九)——EL表达式
- Entity Framework学习笔记(一)
- ASP.NET MVC ActionResult的实现
- CSS3 基本知识
- Java 安装配置
- [Android学习笔记]View的draw过程学习
- 为什么用IP无法访问网站,域名可以访问?
- python enumerate 枚举函数用法
- C/C++的mem函数和strcpy函数的区别和应用
- Use Wait &; Notify to Implement Two Threads Run Alternatively
- 001_angular4.0框架学习
- [转] js中的钩子机制(hook)
- Rabbitmq(5) 路由模式
- idea使用actiBPM插件中文乱码
- nginx 环境下http和https(ssl)共存的方法
- OC 点语法和变量作用域
热门文章
- python xlrd读取Excel文件
- idea创建servlet工程初体验
- 解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry'
- selenium基础--环境搭建
- sql中的Bulk 导入txt文本
- Linux终端 terminal
- Luogu-2480 古代猪文
- Ngnix01
- Spring Boot注解与资源文件配置
- IPEX-1代/3代/4代/5代,PCB天线底座,公头,样式及封装尺寸图