7d5c3964cc
1.1 is more flexible in a number of ways and is safer. 0.90 is still fully supported. 1.0 should possibly be used for RAID1 arrays that you want to boot off, depending on your boot loader. Signed-off-by: NeilBrown <neilb@suse.de>
54 lines
1.3 KiB
Plaintext
54 lines
1.3 KiB
Plaintext
|
|
#
|
|
# create a raid1 with 3 devices and a bitmap file
|
|
# make sure resync does right thing.
|
|
#
|
|
#
|
|
bmf=$targetdir/bitmap
|
|
rm -f $bmf
|
|
mdadm --create -e0.90 --run $md0 --level=1 -n3 --delay=1 --bitmap $bmf $dev1 $dev2 $dev3
|
|
check wait
|
|
testdev $md0 1 $mdsize0 1
|
|
mdadm -S $md0
|
|
|
|
mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2 $dev3
|
|
testdev $md0 1 $mdsize0 1
|
|
dirty1=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
|
|
sleep 4
|
|
dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
|
|
|
|
if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
|
|
then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
|
|
exit 1
|
|
fi
|
|
mdadm $md0 -f $dev2
|
|
testdev $md0 1 $mdsize0 1
|
|
sleep 4
|
|
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
|
|
if [ $dirty3 -lt 400 ]
|
|
then
|
|
echo >&2 "ERROR dirty count $dirty3 is too small"
|
|
exit 2
|
|
fi
|
|
|
|
mdadm -S $md0
|
|
|
|
mdadm --assemble -R $md0 --bitmap=$bmf $dev1 $dev3
|
|
check nosync
|
|
mdadm --zero-superblock $dev2
|
|
mdadm $md0 --add $dev2
|
|
check recovery
|
|
|
|
dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
|
|
check wait
|
|
sleep 4
|
|
dirty5=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
|
|
|
|
if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
|
|
then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
|
|
exit 1
|
|
fi
|
|
|
|
mdadm -S $md0
|
|
exit 0
|