|
|
通过rados bench写入
2 i9 W$ i' B" N( u! J/ Q* Z5 Q( F/ F' I2 y8 _
rados -p rbd bench 5 write
1 W/ L8 H7 e9 H% s$ E3 W. k! P* e刚开始写入的时候没问题,但是写入了以后不久就会出现一只是0的情况,可以判断在写入某些对象的时候出现了异常
# {9 @9 g; W' V% |: z
6 [$ s8 o2 F; [/ A本地生成一些文件2 v* N# |- x A. J
9 q" C& J9 S4 l h' u
seq 0 30|xargs -i dd if=/dev/zero of=benchmarkzp{} bs=4M count=2
- ?% n. o0 _; G6 x0 S通过rados put 命令把对象put进去
2 B# d5 ?( P! x! q3 p/ l# ]2 r4 I+ J4 p. E0 V
for a in `ls ./`;do time rados -p rbd put $a $a;echo $a;ceph osd map rbd $a;done8 |& w! o8 \! e. C5 y5 M* v. |. K
得到的结果里面会有部分是好的,部分是非常长的时间,对结果进行过滤,分为bad 和good- s* Q& m9 U$ U, d+ ~ k7 c
7 F5 c# T6 ^0 _3 d! e9 V
开始怀疑会不会是固定的盘符出了问题,首先把磁盘组合分出来,完全没问题的磁盘全部排除,结果最后都排除完了,所以磁盘本省是没问题的
g; p! ], D4 V/ `% H4 Y7 [; c' h' O% x* r0 f. r2 P
上面的编号是写入对象所在的pg对应的osd所在的主机,严格按照顺序写入,第一个主机为发送数据方,第二个和第三个为接收数据方,并且使用了cluster network
6 l) D8 g/ c9 j+ v$ _! h* U1 ]/ ?9 B7 M$ R
通过上面的结果发现了从3往2进行发送副本数据的时候出现了问题,然后去主机上排查网络
* z" z# R' N0 L! M) D3 v2 F
, l$ X- l! z) m* w5 ~" v在主机2上面做iperf -s
# v* M7 W; O& K7 k3 D1 P2 X在主机3上面做iperf -c host2然后就发现了网络异常了
7 v' b) T( |- o! d, Z
$ @) u, x3 t6 x3 ]% c; D最终还是定位在了网络上面
# M* X: V/ G1 |7 U* G$ S; q" A+ X5 t2 c% x9 A" T5 N- O9 \
已经在好几个环境上面发现没装可以监控实时网络流量dstat工具或者ifstat的动态监控,做操作的时候监控下网络,可以发现一些异常 |
|