1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#!/bin/bash
# Test recovery after many nodes failed at the same time
. ./common
for i in `seq 0 7`; do
_start_sheep $i
done
_wait_for_sheep 8
_cluster_format
$DOG vdi create test 100M
# create 25 objects
for i in `seq 0 24`; do
echo $i | $DOG vdi write test $((i * 4 * 1024 * 1024)) 512
done
$DOG vdi read test | md5sum
# kill 7 nodes without waiting to finish recovery
for i in 7 6 5; do
_kill_sheep $i
done
# this is necessary to avoid network partition detection
nr=5
for i in 4 3 2 1; do
_wait_for_sheep $nr $i
_kill_sheep $i
nr=$(($nr - 1))
done
# make sheep 0 master to avoid master transfer
_wait_for_sheep 1
_kill_sheep 0
sleep 1
# start master first
_start_sheep 0
_wait_for_sheep 1
for i in `seq 1 7`; do
_start_sheep $i
done
_wait_for_sheep_recovery 0
ls $STORE/*/obj/807c2b2500000000 | _filter_store | sort
for i in `seq 0 24`; do
ls $STORE/*/obj/007c2b25000000`printf "%02x" $i` | _filter_store | sort
done
ls $STORE/*/obj/.stale | _filter_store | sort
$DOG vdi read test | md5sum
|