seaweedfs实践

  1. 测试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

查看卷服务器中文件

seaweedfs实践_第1张图片
屏幕快照 2016-04-26 下午3.10.31.png

此时,把起在8091端口的volume server的进程kill掉,
访问刚刚上传的文件

curl -v -L http://10.0.40.58:9333/4,01e0ca3c4d

发现在5秒内,会有访问失败的过程
成功


seaweedfs实践_第2张图片
屏幕快照 2016-04-26 下午3.21.36.png

失败

seaweedfs实践_第3张图片
屏幕快照 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要求的卷

你可能感兴趣的:(seaweedfs实践)