]> git.ipfire.org Git - thirdparty/mdadm.git/blob - tests/01replace
mdadm: improve the dlm locking mechanism for clustered raid
[thirdparty/mdadm.git] / tests / 01replace
1 set -x -e
2
3 ## test --replace for raid5 raid6 raid1 and raid10
4 #1/ after replace, can remove replaced device
5 #2/ after --replace-with cannot remove the 'with' device
6 #3/ preserve integrity with concurrent failure
7
8 for level in 1 5 6 10
9 do
10 dd if=/dev/zero of=$dev4 bs=1M || true
11 dd if=/dev/zero of=$dev5 bs=1M || true
12 mdadm -CR $md0 -l $level -n4 -x2 $devlist5
13 dd if=/dev/urandom of=$md0 bs=1M || true
14 sum=`sha1sum < $md0`
15 check wait
16 mdadm $md0 --replace $dev1
17 check wait
18 mdadm $md0 --remove $dev1
19 mdadm $md0 --remove $dev5 && exit 1
20 mdadm -S $md0
21 dd if=/dev/zero of=$dev4 bs=1M || true
22 dd if=/dev/zero of=$dev5 bs=1M || true
23 mdadm -CR $md0 -l $level -n4 -x2 $devlist5
24 check wait
25 sum1=`sha1sum < $md0`
26 [ "$sum" == "$sum1" ]
27
28 mdadm $md0 --replace $dev1 --with $dev4
29 check wait
30 mdadm $md0 --remove $dev1
31 mdadm $md0 --remove $dev5
32 mdadm $md0 --remove $dev4 && exit 1
33
34 mdadm $md0 --add $dev1 $dev5
35 mdadm $md0 --replace $dev0
36 sleep 1
37 mdadm $md0 --fail $dev2
38 check wait
39 sum2=`sha1sum < $md0`
40 [ "$sum" == "$sum2" ]
41
42 mdadm $md0 --remove $dev0 $dev2
43 mdadm $md0 --add $dev0 $dev2
44 mdadm $md0 --replace $dev3
45 sleep 1
46 mdadm $md0 --fail $dev0 $dev2
47 check wait
48 sum3=`sha1sum < $md0`
49 [ "$sum" == "$sum3" ]
50
51 mdadm -S $md0
52 done