]> git.ipfire.org Git - thirdparty/mdadm.git/blob - tests/09imsm-create-fail-rebuild
Fix test for imsm prodigal member scenario
[thirdparty/mdadm.git] / tests / 09imsm-create-fail-rebuild
1 # sanity check array creation
2
3 # IMSM rounds to multiples of one mebibyte - 1024K
4 DEV_ROUND_K=1024
5
6 num_disks=2
7 mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1
8 imsm_check container $num_disks
9
10 # RAID0 + RAID1
11 size=10000
12 level=0
13 chunk=64
14 offset=0
15 mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size -c $chunk
16 imsm_check member $member0 $num_disks $level $size $offset $chunk
17 testdev $member0 $num_disks $size $chunk
18
19 offset=$(((size & ~(chunk - 1)) + 2048))
20 size=5000
21 level=1
22 chunk=0
23 mdadm -CR $member1 $dev0 $dev1 -n $num_disks -l $level -z $size
24 imsm_check member $member1 $num_disks $level $size $offset $chunk
25 testdev $member1 1 $size 1
26 check wait
27
28 mdadm -Ss
29
30 # RAID10 + RAID5
31 num_disks=4
32 mdadm -CR $container -e imsm -n $num_disks $dev0 $dev1 $dev2 $dev3
33 imsm_check container $num_disks
34
35 size=10000
36 level=10
37 chunk=64
38 offset=0
39 mdadm -CR $member0 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
40 imsm_check member $member0 $num_disks $level $size $offset $chunk
41 testdev $member0 $((num_disks-2)) $size $chunk
42
43 offset=$(((size & ~(chunk - 1)) + 2048))
44 size=5000
45 level=5
46 mdadm -CR $member1 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
47 imsm_check member $member1 $num_disks $level $size $offset $chunk
48 testdev $member1 $((num_disks-1)) $size $chunk
49 check wait
50
51 # FAIL / REBUILD
52 imsm_check_hold $container $dev0
53 mdadm --fail $member0 $dev0
54 mdadm --wait-clean --scan
55 imsm_check_removal $container $dev0
56 mdadm --add $container $dev4
57 check wait
58 imsm_check_hold $container $dev4
59