0b50d3359a
In this test we stop and restart an array that is being recovered, and we do that several times. Sometimes it completes the recovery before we expect and test results are wrong. So slow it down a bit more. Signed-off-by: NeilBrown <neilb@suse.de>
127 lines
2.2 KiB
Plaintext
127 lines
2.2 KiB
Plaintext
|
|
# 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 1000 > /proc/sys/dev/raid/speed_limit_max
|
|
|
|
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
|