- 测试weedfs的故障恢复时间
测试,简便起见
#!/bin/bash
set -ex
#ps -ef | grep weed | grep -v grep| kill -9 `awk '{print $2}'`
mkdir mdir t_v1 t_v2 t_v3 v_mdir
nohup ./weed master -mdir=./mdir -port=9333 -defaultReplication="001" >>./mdir/server_sfs.log &
nohup ./weed volume -dir=./t_v1 -max=1000 -mserver=10.0.40.58:9333 -port=8091 -ip=10.0.40.58 >>./v_mdir/v1_sfs.log &
nohup ./weed volume -dir=./t_v2 -max=1000 -mserver=10.0.40.58:9333 -port=8092 -ip=10.0.40.58 >>./v_mdir/v2_sfs.log &
nohup ./weed volume -dir=./t_v3 -max=1000 -mserver=10.0.40.58:9333 -port=8093 -ip=10.0.40.58 >>./v_mdir/v3_sfs.log &
上传文件
curl -F @file=./hello1.txt http://10.0.40.58:9333/submit?collection=test_crash
查看卷服务器中文件
屏幕快照 2016-04-26 下午3.10.31.png此时,把起在8091端口的volume server的进程kill掉,
访问刚刚上传的文件
curl -v -L http://10.0.40.58:9333/4,01e0ca3c4d
发现在5秒内,会有访问失败的过程
成功
屏幕快照 2016-04-26 下午3.21.36.png
失败
屏幕快照 2016-04-26 下午3.24.30.png这是因为默认master服务器与volume服务器之间的heartbeat时间是5s,过了5s后,server已经探知到volume server crash了,所以不再返回该volume服务器的地址。
测试是否对上传的影响,重新启动停掉的volume服务器
发现0.69版本的一个bug
当我通过 curl -F file=@xxx http://xxx/submit?collection=xx_xx 指定collection的时候,重启volume服务,发现master已经不能识别原先存储的卷,重新向这个collection中存文件就会报错。
{"error":"Failed to write to local disk (Unsupported Version! (0))"}
,我测试卷服务器对“_”的识别不够。
5秒钟就会探听到卷服务器不可以用,因此只会分配可用的卷服务器的能够满足replication要求的卷
网友评论