|
|
通过rados bench写入$ \7 t8 ?/ l) A! N; U4 H; S
8 b* A, ?, I/ Erados -p rbd bench 5 write6 F! X$ m8 u/ O) P
刚开始写入的时候没问题,但是写入了以后不久就会出现一只是0的情况,可以判断在写入某些对象的时候出现了异常2 O8 B' Y+ m# _* g; {. ]
' b E" K: j9 b& H6 C3 z' a本地生成一些文件8 F h) |3 B. C
G1 T$ ]" a5 [5 J2 I1 l4 T
seq 0 30|xargs -i dd if=/dev/zero of=benchmarkzp{} bs=4M count=2
9 V& e% g8 Z9 ~. V5 d* j% W5 V: P通过rados put 命令把对象put进去
# }. L0 K3 t+ V: v
1 u3 K( k7 L: _for a in `ls ./`;do time rados -p rbd put $a $a;echo $a;ceph osd map rbd $a;done; A; ^- [- U0 P- G2 h
得到的结果里面会有部分是好的,部分是非常长的时间,对结果进行过滤,分为bad 和good9 ?2 D) L& u5 L! f) H4 |
& Q* l X6 u2 [% l开始怀疑会不会是固定的盘符出了问题,首先把磁盘组合分出来,完全没问题的磁盘全部排除,结果最后都排除完了,所以磁盘本省是没问题的
! `. a- D: W3 P; a p( g% h
( W& V2 a( f. s- S6 j% k上面的编号是写入对象所在的pg对应的osd所在的主机,严格按照顺序写入,第一个主机为发送数据方,第二个和第三个为接收数据方,并且使用了cluster network
, r4 Z, [5 K+ L
& ]' y+ W2 r, o$ l1 Z$ H S& ^. ~8 Z9 z通过上面的结果发现了从3往2进行发送副本数据的时候出现了问题,然后去主机上排查网络
$ U0 I. D; W9 Q, l! x! c! ?1 ]
在主机2上面做iperf -s
, s0 f6 k/ j. I1 A在主机3上面做iperf -c host2然后就发现了网络异常了
( ^' m/ E& s& O, g8 S+ T% ^6 d. @- z" i$ p5 k8 q2 ^" ~
最终还是定位在了网络上面: x6 k; m% a; {' p ^
7 q8 _( _/ c) E" W. k
已经在好几个环境上面发现没装可以监控实时网络流量dstat工具或者ifstat的动态监控,做操作的时候监控下网络,可以发现一些异常 |
|