]>
Commit | Line | Data |
---|---|---|
48238302 N |
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 |