]>
Commit | Line | Data |
---|---|---|
08b0ef8e MW |
1 | # sanity check array creation |
2 | ||
3 | ddf_check_hold() { | |
4 | if mdadm --remove $1 $2; then | |
5 | echo "$2 removal from $1 should have been blocked" >&2 | |
6 | cat /proc/mdstat >&2 | |
7 | mdadm -E $2 | |
8 | exit 1 | |
9 | fi | |
10 | } | |
11 | ||
12 | ddf_check_removal() { | |
13 | if ! mdadm --remove $1 $2 ; then | |
14 | echo "$2 removal from $1 should have succeeded" >&2 | |
15 | cat /proc/mdstat >&2 | |
16 | mdadm -E $2 | |
17 | exit 1 | |
18 | fi | |
19 | } | |
20 | ||
21 | . tests/env-ddf-template | |
22 | ||
23 | num_disks=2 | |
24 | mdadm -CR $container -e ddf -n $num_disks $dev8 $dev9 | |
25 | ddf_check container $num_disks | |
26 | ||
27 | # RAID0 + RAID1 | |
28 | size=9000 | |
29 | level=0 | |
30 | chunk=64 | |
31 | offset=0 | |
32 | layout=0 | |
33 | mdadm -CR $member0 $dev8 $dev9 -n $num_disks -l $level -z $size -c $chunk | |
34 | ddf_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk $layout | |
35 | testdev $member0 $num_disks $size $chunk | |
36 | ||
37 | offset=$(((size & ~(chunk - 1)))) | |
38 | size=4000 | |
39 | level=1 | |
40 | chunk=0 | |
41 | mdadm -CR $member1 $dev8 $dev9 -n $num_disks -l $level -z $size | |
42 | ddf_check member $member1 $num_disks $level $size $size $offset $chunk $layout | |
43 | testdev $member1 1 $size 1 | |
44 | check wait | |
45 | ||
46 | mdadm -Ss | |
47 | ||
48 | # RAID10 + RAID5 | |
49 | num_disks=4 | |
50 | mdadm -CR $container -e ddf -n $num_disks $dev8 $dev9 $dev10 $dev11 | |
51 | ddf_check container $num_disks | |
52 | ||
53 | size=9000 | |
54 | level=10 | |
55 | chunk=64 | |
56 | offset=0 | |
57 | layout=2 | |
58 | mdadm -CR $member0 $dev8 $dev9 $dev10 $dev11 -n $num_disks -l $level -z $size -c $chunk | |
59 | ddf_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk $layout | |
60 | testdev $member0 $((num_disks-2)) $size $chunk | |
61 | ||
62 | offset=$(((size & ~(chunk - 1)))) | |
63 | size=4000 | |
64 | level=5 | |
65 | mdadm -CR $member1 $dev8 $dev9 $dev10 $dev11 -n $num_disks -l $level -z $size -c $chunk | |
66 | ddf_check member $member1 $num_disks $level $size $((size*3)) $offset $chunk $layout | |
67 | testdev $member1 $((num_disks-1)) $size $chunk | |
68 | check wait | |
69 | ||
70 | # FAIL / REBUILD | |
71 | ddf_check_hold $container $dev8 | |
72 | mdadm --fail $member0 $dev8 | |
3c899cab | 73 | mdadm --wait-clean --scan || true |
08b0ef8e MW |
74 | ddf_check_removal $container $dev8 |
75 | mdadm --add $container $dev12 | |
76 | check wait | |
77 | ddf_check_hold $container $dev12 |