summaryrefslogtreecommitdiffstats
path: root/tests/03r5assemV1
blob: bca0c583724b6b604b8e50ef63b55bd19562f621 (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# create a v-1 raid5 array and assemble in various ways

mdadm -CR -e1 --name one $md1 -l5 -n3 -x2 $dev0 $dev1 $dev2 $dev3 $dev4
tst="check raid5 ;testdev $md1 2 $mdsize1 512 ; mdadm -S $md1"
uuid=`mdadm -Db $md1 | sed 's/.*UUID=//'`
check wait

eval $tst

mdadm -A $md1 $dev0 $dev1 $dev2
mdadm $md1 --add $dev3 $dev4
check spares 2
eval $tst

mdadm -A $md1 -u $uuid $devlist
check spares 2
eval $tst

mdadm -A $md1 --name one $devlist
check spares 2
eval $tst


conf=$targetdir/mdadm.conf
{
  echo DEVICE $devlist
  echo array $md1 UUID=$uuid
} > $conf

mdadm -As -c $conf $md1
eval $tst

{
  echo DEVICE $devlist
  echo array $md1 name=one
} > $conf

mdadm -As -c $conf
eval $tst

{
  echo DEVICE $devlist
  echo array $md1 devices=$dev0,$dev1,$dev2,$dev3,$dev4
} > $conf

mdadm -As -c $conf

echo "DEVICE $devlist" > $conf
mdadm -Db $md1 >> $conf
eval $tst
mdadm --assemble --scan --config=$conf $md1
eval $tst
echo PING >&2

echo "  metadata=1.0 devices=$dev0,$dev1,$dev2,$dev3,$dev4" >> $conf
mdadm --assemble --scan --config=$conf $md1
eval $tst

### Now with a missing device
# We don't want the recovery to complete while we are
# messing about here.
echo 100 > /proc/sys/dev/raid/speed_limit_max
echo 100 > /proc/sys/dev/raid/speed_limit_min

mdadm -AR $md1 $dev0 $dev2 $dev3 $dev4 #
check state U_U
check spares 1
eval $tst

mdadm -A $md1 -u $uuid $devlist
check state U_U
eval $tst

mdadm -A $md1 --name=one $devlist
check state U_U
check spares 1
eval $tst


conf=$targetdir/mdadm.conf
{
  echo DEVICE $devlist
  echo array $md1 UUID=$uuid
} > $conf

mdadm -As -c $conf $md1
check state U_U
eval $tst

{
  echo DEVICE $devlist
  echo array $md1 name=one
} > $conf

mdadm -As -c $conf
check state U_U
eval $tst

{
  echo DEVICE $devlist
  echo array $md1 devices=$dev0,$dev1,$dev2
} > $conf

mdadm -As -c $conf

echo "DEVICE $devlist" > $conf
mdadm -Db $md1 >> $conf
check state U_U
eval $tst

mdadm --assemble --scan --config=$conf $md1
check state U_U
eval $tst

echo "  metadata=1.0 devices=$dev0,$dev1,$dev2" >> $conf
mdadm --assemble --scan --config=$conf $md1
check state U_U
eval $tst

# And now assemble with -I
mdadm -Ss
mdadm -I -c $conf $dev0
mdadm -I -c $conf $dev1
mdadm -I -c $conf $dev2
eval $tst
echo 2000 > /proc/sys/dev/raid/speed_limit_max
echo 1000 > /proc/sys/dev/raid/speed_limit_min