|
|
通过rados bench写入1 s' B1 Y- l6 m& K2 x) ^
* o" [) B9 m+ R! K* o' ?
rados -p rbd bench 5 write1 W3 `" {# t3 g! q) z" W: `, z
刚开始写入的时候没问题,但是写入了以后不久就会出现一只是0的情况,可以判断在写入某些对象的时候出现了异常% `3 u1 z0 p$ M7 w8 A3 \
- _8 y) E* K" i1 M/ w本地生成一些文件
) W0 P) k5 @/ @1 S: P
3 n4 a" V \' ]! z& F0 }. Fseq 0 30|xargs -i dd if=/dev/zero of=benchmarkzp{} bs=4M count=2* B$ Q% m; y5 ^5 e$ d& A7 S7 A
通过rados put 命令把对象put进去
/ \ K _# W# z) P$ N
" p* J9 ]( x& U% U6 Sfor a in `ls ./`;do time rados -p rbd put $a $a;echo $a;ceph osd map rbd $a;done
4 M; |# M3 X! F8 z得到的结果里面会有部分是好的,部分是非常长的时间,对结果进行过滤,分为bad 和good. X( E, l$ N2 B3 J& D7 g5 k, k) D
* n8 K& T# Q/ T& @2 m, o
开始怀疑会不会是固定的盘符出了问题,首先把磁盘组合分出来,完全没问题的磁盘全部排除,结果最后都排除完了,所以磁盘本省是没问题的 d i3 E0 C6 O3 r- \
% ?1 b2 j( t; R! W5 H" D) D! b( r
上面的编号是写入对象所在的pg对应的osd所在的主机,严格按照顺序写入,第一个主机为发送数据方,第二个和第三个为接收数据方,并且使用了cluster network, W4 R' O4 {8 N1 {& E7 N5 g; |
7 F' |2 S8 E' o- j' M9 R) j
通过上面的结果发现了从3往2进行发送副本数据的时候出现了问题,然后去主机上排查网络
+ }3 y* v+ ? @" b( m" B- D; O& f4 v$ c, w* k. Y! P, A; K
在主机2上面做iperf -s
% D9 q! m5 }$ n A在主机3上面做iperf -c host2然后就发现了网络异常了
& E% m8 F6 v. @! S/ M* K& z6 i3 y; N% M, |7 N& G, Q: T
最终还是定位在了网络上面
4 X# Y4 ]3 p/ L7 W" q) u" V- M, N8 j
已经在好几个环境上面发现没装可以监控实时网络流量dstat工具或者ifstat的动态监控,做操作的时候监控下网络,可以发现一些异常 |
|