Change default metadata from 0.90 to 1.1

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>
This commit is contained in:
NeilBrown 2009-11-17 13:15:32 +11:00
parent 5f175898de
commit 7d5c3964cc
35 changed files with 156 additions and 147 deletions

View File

@ -311,7 +311,7 @@ says to get a list of array devices from
.TP
.BR \-e ", " \-\-metadata=
Declare the style of RAID metadata (superblock) to be used. The
default is 0.90 for
default is 1.1 for
.BR \-\-create ,
and to guess for other operations.
The default can be overridden by setting the
@ -323,15 +323,16 @@ keyword in
Options are:
.RS
.IP "0, 0.90, default"
.IP "0, 0.90"
Use the original 0.90 format superblock. This format limits arrays to
28 component devices and limits component devices of levels 1 and
greater to 2 terabytes.
.IP "1, 1.0, 1.1, 1.2"
.IP "1, 1.0, 1.1, 1.2 default"
Use the new version-1 format superblock. This has few restrictions.
The different sub-versions store the superblock at different locations
on the device, either at the end (for 1.0), at the start (for 1.1) or
4K from the start (for 1.2).
4K from the start (for 1.2). '1' is equivalent to '1.0', 'default' is
equivalent to '1.1'.
.IP ddf
Use the "Industry Standard" DDF (Disk Data Format) format defined by
SNIA.

View File

@ -921,9 +921,7 @@ static struct supertype *match_metadata_desc0(char *arg)
while (arg[0] == '0' && arg[1] == '0')
arg++;
if (strcmp(arg, "0") == 0 ||
strcmp(arg, "0.90") == 0 ||
strcmp(arg, "default") == 0 ||
strcmp(arg, "") == 0 /* no metadata */
strcmp(arg, "0.90") == 0
)
return st;

View File

@ -1351,7 +1351,10 @@ static struct supertype *match_metadata_desc1(char *arg)
return st;
}
if (strcmp(arg, "1.1") == 0 ||
strcmp(arg, "1.01") == 0) {
strcmp(arg, "1.01") == 0 ||
strcmp(arg, "default") == 0 ||
strcmp(arg, "") == 0 /* no metadata */
) {
st->minor_version = 1;
return st;
}

2
test
View File

@ -34,6 +34,8 @@ mdsize0=19904
mdsize00=19840
# super1.0 round down to multiple of 2, subtract 8
mdsize1=19992
# super1.1 for linear: round to multiple of 2, subtract 4
mdsize1_l=19996
# subtract another 4 for bitmaps
mdsize1b=19988
mdsize11=19992

View File

@ -3,11 +3,17 @@
mdadm -CR $md0 -l linear -n3 $dev0 $dev1 $dev2
check linear
testdev $md0 3 $mdsize0 1
testdev $md0 3 $mdsize1_l 1
mdadm -S $md0
# now with version-1 superblock
mdadm -CR $md0 -e1 --level=linear -n4 $dev0 $dev1 $dev2 $dev3
# now with version-0.90 superblock
mdadm -CR $md0 -e0.90 --level=linear -n4 $dev0 $dev1 $dev2 $dev3
check linear
testdev $md0 4 $mdsize0 1
mdadm -S $md0
# now with version-1.0 superblock
mdadm -CR $md0 -e1.0 --level=linear -n4 $dev0 $dev1 $dev2 $dev3
check linear
testdev $md0 4 $mdsize1 1
mdadm -S $md0

View File

@ -4,21 +4,21 @@
mdadm -CR $md1 -l multipath -n2 $path0 $path1
testdev $md1 1 $mdsize0 1
testdev $md1 1 $mdsize1 1
mdadm $md1 -f $path0
rotest $md1
testdev $md1 1 $mdsize0 1
testdev $md1 1 $mdsize1 1
mdadm $md1 -r $path0
mdadm $md1 -a $path0
rotest $md1
testdev $md1 1 $mdsize0 1
testdev $md1 1 $mdsize1 1
mdadm $md1 -f $path1
mdadm $md1 -r $path1
rotest $md1
testdev $md1 1 $mdsize0 1
testdev $md1 1 $mdsize1 1
mdadm -S $md1

View File

@ -3,13 +3,13 @@
mdadm -CR $md0 -l raid0 -n3 $dev0 $dev1 $dev2
check raid0
testdev $md0 3 $mdsize0 512
testdev $md0 3 $mdsize1_l 512
mdadm -S $md0
# now with version-1 superblock
mdadm -CR $md0 -e1 -l0 -n4 $dev0 $dev1 $dev2 $dev3
# now with version-0.90 superblock
mdadm -CR $md0 -e0.90 -l0 -n4 $dev0 $dev1 $dev2 $dev3
check raid0
testdev $md0 4 $mdsize1 512
testdev $md0 4 $mdsize0 512
mdadm -S $md0
# now with no superblock
@ -22,13 +22,13 @@ mdadm -S $md0
# now same again with different chunk size
for chunk in 4 32 256
do
mdadm -CR $md0 -l raid0 --chunk $chunk -n3 $dev0 $dev1 $dev2
mdadm -CR $md0 -e0.90 -l raid0 --chunk $chunk -n3 $dev0 $dev1 $dev2
check raid0
testdev $md0 3 $mdsize0 $chunk
mdadm -S $md0
# now with version-1 superblock
mdadm -CR $md0 -e1 -l0 -c $chunk -n4 $dev0 $dev1 $dev2 $dev3
mdadm -CR $md0 -e1.0 -l0 -c $chunk -n4 $dev0 $dev1 $dev2 $dev3
check raid0
testdev $md0 4 $mdsize1 $chunk
mdadm -S $md0

View File

@ -6,14 +6,14 @@
mdadm -CR $md0 -l 1 -n2 $dev0 $dev1
check resync
check raid1
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
mdadm -S $md0
# now with version-1 superblock, spare
mdadm -CR $md0 -e1 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2
# now with version-0.90 superblock, spare
mdadm -CR $md0 -e0.90 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2
check recovery
check raid1
testdev $md0 1 $mdsize1b 1
testdev $md0 1 $mdsize0 1
mdadm -S $md0
# now with no superblock

View File

@ -13,6 +13,6 @@ do
esac
mdadm --create --run --level=raid10 --layout $lo --raid-disks 6 -x 1 $md0 $devs
check resync ; check raid10
testdev $md0 $m $mdsize0 $[512*cm]
testdev $md0 $m $mdsize1 $[512*cm]
mdadm -S $md0
done

View File

@ -3,7 +3,7 @@
mdadm -CfR $md0 -l 4 -n3 $dev0 $dev1 $dev2
check resync ; check raid[45]
testdev $md0 2 $mdsize0 512
testdev $md0 2 $mdsize1 512
mdadm -S $md0
# now with version-1 superblock

View File

@ -1,7 +1,7 @@
# create a simple raid5 set
mdadm -CfR $md0 -l 5 -n3 $dev0 $dev1 $dev2
mdadm -CfR $md0 -e 0.90 -l 5 -n3 $dev0 $dev1 $dev2
check resync
testdev $md0 2 $mdsize0 512
mdadm -S $md0
@ -19,7 +19,7 @@ do
mdadm -CfR $md0 -l 5 -p $lo -n3 $dev0 $dev1 $dev2
check resync ; check raid5
testdev $md0 2 $mdsize0 512
testdev $md0 2 $mdsize1 512
mdadm -S $md0
# now with version-1 superblock

View File

@ -1,7 +1,7 @@
# create a simple raid6 set
mdadm -CfR $md0 -l 6 -n4 $dev0 $dev1 $dev2 $dev3
mdadm -CfR $md0 -e0.90 -l 6 -n4 $dev0 $dev1 $dev2 $dev3
check resync ; check raid6
testdev $md0 2 $mdsize0 512
mdadm -S $md0

View File

@ -6,8 +6,8 @@ do
case $e in
0.90 ) sz=$mdsize0 ;;
1 ) sz=$mdsize1 ;;
1.1 ) sz=$mdsize11 ;;
1.2 ) sz=$mdsize12 ;;
1.1 ) sz=$mdsize1_l ;;
1.2 ) sz=$mdsize11 ;;
esac
mdadm -CRf $md0 --level linear -e $e --raid-disks=1 $dev1
testdev $md0 1 $sz 1

View File

@ -2,7 +2,7 @@
# create a small raid1 array, make it larger. Then make it smaller
mdadm -CR $md0 --level raid1 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
mdadm -CR $md0 -e 0.90 --level raid1 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
check wait
check state UUU
testdev $md0 1 $[size/2] 1

View File

@ -2,7 +2,7 @@
# create a small raid5 array, make it larger. Then make it smaller
mdadm -CR $md0 --level raid5 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
mdadm -CR $md0 -e0.90 --level raid5 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
check wait
check state UUU
testdev $md0 2 $[size/2] 32

View File

@ -2,7 +2,7 @@
# create a small raid6 array, make it larger. Then make it smaller
mdadm -CR $md0 --level raid6 --chunk=32 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
mdadm -CR $md0 -e 0.90 --level raid6 --chunk=32 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
check wait
check state UUUU
testdev $md0 2 $[size/2] 32

View File

@ -6,7 +6,7 @@
mdadm -CR $md2 -l0 -n3 $dev0 $dev1 $dev2
check raid0
tst="testdev $md2 3 $mdsize0 512"
tst="testdev $md2 3 $mdsize1 512"
$tst
uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
mdadm -S $md2
@ -19,7 +19,72 @@ mdadm -A $md2 -u $uuid $devlist
$tst
mdadm -S $md2
mdadm --assemble $md2 --super-minor=2 $devlist
mdadm --assemble $md2 --name=2 $devlist
$tst
mdadm -S $md2
conf=$targetdir/mdadm.conf
{
echo DEVICE $devlist
echo array $md2 UUID=$uuid
} > $conf
mdadm -As -c $conf $md2
$tst
mdadm -S $md2
{
echo DEVICE $devlist
echo array $md2 name=2
} > $conf
mdadm -As -c $conf $md2
$tst
mdadm -S $md2
{
echo DEVICE $devlist
echo array $md2 devices=$dev0,$dev1,$dev2
} > $conf
mdadm -As -c $conf $md2
$tst
echo "DEVICE $devlist" > $conf
mdadm -Db $md2 >> $conf
mdadm -S $md2
mdadm --assemble --scan --config=$conf $md2
$tst
mdadm -S $md2
echo " metadata=0.90 devices=$dev0,$dev1,$dev2" >> $conf
mdadm --assemble --scan --config=$conf $md2
$tst
mdadm -S $md2
### Now for version 0...
mdadm --zero-superblock $dev0 $dev1 $dev2
mdadm -CR $md2 -l0 --metadata=0.90 -n3 $dev0 $dev1 $dev2
check raid0
tst="testdev $md2 3 $mdsize0 512"
$tst
uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
mdadm -S $md2
mdadm -A $md2 $dev0 $dev1 $dev2
$tst
mdadm -S $md2
mdadm -A $md2 -u $uuid $devlist
$tst
mdadm -S $md2
mdadm --assemble $md2 --super-minor=2 $devlist #
$tst
mdadm -S $md2
@ -43,72 +108,6 @@ $tst
mdadm -S $md2
{
echo DEVICE $devlist
echo array $md2 devices=$dev0,$dev1,$dev2
} > $conf
mdadm -As -c $conf $md2
$tst
echo "DEVICE $devlist" > $conf
mdadm -Db $md2 >> $conf
mdadm -S $md2
mdadm --assemble --scan --config=$conf $md2
$tst
mdadm -S $md2
echo " metadata=0.90 devices=$dev0,$dev1,$dev2" >> $conf
mdadm --assemble --scan --config=$conf $md2
$tst
mdadm -S $md2
### Now for version 1...
mdadm --zero-superblock $dev0 $dev1 $dev2
mdadm -CR $md2 -l0 --metadata=1.0 -n3 $dev0 $dev1 $dev2
check raid0
tst="testdev $md2 3 $mdsize1 512"
$tst
uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
mdadm -S $md2
mdadm -A $md2 $dev0 $dev1 $dev2
$tst
mdadm -S $md2
mdadm -A $md2 -u $uuid $devlist
$tst
mdadm -S $md2
# version 1 has no super-minor
# mdadm --assemble $md2 --super-minor=2 $devlist #
# $tst
# mdadm -S $md2
conf=$targetdir/mdadm.conf
{
echo DEVICE $devlist
echo array $md2 UUID=$uuid
} > $conf
mdadm -As -c $conf $md2
$tst
mdadm -S $md2
#{
# echo DEVICE $devlist
# echo array $md2 super-minor=2
#} > $conf
#
#mdadm -As -c $conf $md2
#$tst
#mdadm -S $md2
{
echo DEVICE $devlist
echo array $md2 devices=$dev0,$dev1,$dev2

View File

@ -2,7 +2,7 @@
# create a raid5 array and assemble it in various ways,
# including with missing devices.
mdadm -CR $md1 -l5 -n3 $dev0 $dev1 $dev2
mdadm -CR -e 0.90 $md1 -l5 -n3 $dev0 $dev1 $dev2
tst="check raid5 ;testdev $md1 2 $mdsize0 512 ; mdadm -S $md1"
uuid=`mdadm -Db $md1 | sed 's/.*UUID=//'`
check wait

View File

@ -1,6 +1,6 @@
# create a raid0, re-assemble with a different super-minor
mdadm -CR $md0 -l0 -n3 $dev0 $dev1 $dev2
mdadm -CR -e 0.90 $md0 -l0 -n3 $dev0 $dev1 $dev2
testdev $md0 3 $mdsize0 512
minor1=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
mdadm -S /dev/md0

View File

@ -6,11 +6,11 @@ bmf=$targetdir/bitmap
rm -f $bmf
mdadm --create --run $md0 --level=1 -n2 --delay=1 --bitmap $bmf $dev1 $dev2
check wait
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
mdadm -S $md0
mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 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'`
@ -20,7 +20,7 @@ then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
exit 1
fi
mdadm $md0 -f $dev1
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
sleep 4
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty3 -lt 400 ]

View File

@ -4,7 +4,7 @@
#
mdadm --create --run $md0 -l 1 -n 2 $dev1 $dev2
check wait
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
bmf=$targetdir/bm
rm -f $bmf
@ -14,7 +14,7 @@ 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'`
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
sleep 4
dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`

View File

@ -4,7 +4,7 @@
#
mdadm --create --run $md0 -l 1 -n 2 $dev1 $dev2
check wait
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
#mdadm -E $dev1
mdadm --grow $md0 --bitmap=internal --delay=1 || { mdadm -X $dev2 ; exit 1; }
@ -12,7 +12,7 @@ dirty1=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
sleep 4
dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
sleep 4
dirty4=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`

View File

@ -2,7 +2,7 @@
#
# create a raid1 with an internal bitmap
#
mdadm --create --run $md0 --level=1 -n2 --delay=1 --bitmap internal $dev1 $dev2
mdadm --create -e0.90 --run $md0 --level=1 -n2 --delay=1 --bitmap internal $dev1 $dev2
check wait
testdev $md0 1 $mdsize0 1
mdadm -S $md0

View File

@ -6,7 +6,7 @@
#
bmf=$targetdir/bitmap
rm -f $bmf
mdadm --create --run $md0 --level=1 -n3 --delay=1 --bitmap $bmf $dev1 $dev2 $dev3
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

View File

@ -8,7 +8,7 @@
mdadm -CR $md0 -l1 -n2 -binternal -d1 $dev1 $dev2
check resync
check wait
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
sleep 4
mdadm $md0 -f $dev2
@ -21,10 +21,10 @@ check nosync
mdadm $md0 -f $dev2
sleep 1
mdadm $md0 -r $dev2
testdev $md0 1 $mdsize0 1
testdev $md0 1 $mdsize1 1
mdadm $md0 -a $dev2
check wait
cmp --bytes=$[$mdsize0*1024] $dev1 $dev2
cmp --ignore-initial=$[16*512] --bytes=$[$mdsize0*1024] $dev1 $dev2
mdadm $md0 -f $dev2; sleep 1
mdadm $md0 -r $dev2
@ -32,5 +32,5 @@ if dd if=/dev/zero of=$md0 ; then : ; fi
mdadm $md0 -a $dev2
check recovery
check wait
cmp --bytes=$[$mdsize0*1024] $dev1 $dev2
cmp --ignore-initial=$[16*512] --bytes=$[$mdsize0*1024] $dev1 $dev2
mdadm -S $md0

View File

@ -6,11 +6,11 @@ bmf=$targetdir/bitmap
rm -f $bmf
mdadm --create --run $md0 --level=5 -n3 --delay=1 --bitmap $bmf $dev1 $dev2 $dev3
check wait
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
mdadm -S $md0
mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2 $dev3
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
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'`
@ -20,7 +20,7 @@ then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
exit 1
fi
mdadm $md0 -f $dev1
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
sleep 4
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty3 -lt 400 ]

View File

@ -4,11 +4,11 @@
#
mdadm --create --run $md0 --level=5 -n3 --delay=1 --bitmap internal $dev1 $dev2 $dev3
check wait
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
mdadm -S $md0
mdadm --assemble $md0 $dev1 $dev2 $dev3
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
dirty1=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
sleep 4
dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
@ -18,7 +18,7 @@ then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
exit 1
fi
mdadm $md0 -f $dev1
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
sleep 4
dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty3 -lt 400 ]

View File

@ -6,11 +6,11 @@ bmf=$targetdir/bitmap
rm -f $bmf
mdadm --create --run $md0 --level=6 -n4 --delay=1 --bitmap $bmf $dev1 $dev2 $dev3 $dev4
check wait
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
mdadm -S $md0
mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2 $dev3 $dev4
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
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'`
@ -20,7 +20,7 @@ then echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
exit 1
fi
mdadm $md0 -f $dev3
testdev $md0 2 $mdsize0 1
testdev $md0 2 $mdsize1 512
sleep 4
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty3 -lt 400 ]

View File

@ -1,7 +1,7 @@
# make a raid5 array, byte swap the superblocks, then assemble...
mdadm -CR $md0 -l5 -n4 $dev0 $dev1 $dev2 $dev3
mdadm -CR $md0 -e 0.90 -l5 -n4 $dev0 $dev1 $dev2 $dev3
sleep 4
mdadm -S $md0

View File

@ -2,13 +2,13 @@
# create a raid1 array with a wrmostly device
mdadm -CR $md0 -l1 -n3 $dev0 $dev1 --write-mostly $dev2
testdev $md0 1 $mdsize0 64
testdev $md0 1 $mdsize1 1
# unfortunately, we cannot measure if any read requests are going to $dev2
mdadm -S $md0
mdadm -CR $md0 -l1 -n3 --write-behind --bitmap=internal $dev0 $dev1 --write-mostly $dev2
testdev $md0 1 $mdsize0 64
testdev $md0 1 $mdsize1 1
mdadm -S $md0

View File

@ -8,9 +8,9 @@ mdadm -CR $md0 -l0 -n2 $md1 $md2 --homehost=testing
mdadm -Ss
mdadm -As -c /dev/null --homehost=testing -vvv
testdev $md1 1 $mdsize0 64
testdev $md2 1 $mdsize0 64
testdev $md0 2 $mdsize00 512
testdev $md1 1 $mdsize1 1
testdev $md2 1 $mdsize1 1
testdev $md0 2 $mdsize11 512
mdadm -Ss
mdadm --zero-superblock $dev0 $dev1 $dev2 $dev3
@ -19,6 +19,6 @@ mdadm -CR $md1 -l1 -n2 $dev0 $dev1 --homehost=testing
mdadm -CR $md0 -l0 -n2 $md1 $dev2 --homehost=testing
mdadm -Ss
mdadm -As -c /dev/null --homehost=testing -vvv
testdev $md1 1 $mdsize0 64
testdev $md0 1 $[mdsize0+mdsize00] 512
testdev $md1 1 $mdsize1 1
testdev $md0 1 $[mdsize1+mdsize11] 512
mdadm -Ss

View File

@ -12,15 +12,15 @@ then
fi
mdadm -CR $mdp0 -l0 -f -n1 $dev0
mdadm -CR $mdp1 -l0 -f -n1 $dev1
mdadm -CR -e 0 $mdp0 -l0 -f -n1 $dev0
mdadm -CR -e 0 $mdp1 -l0 -f -n1 $dev1
sfdisk $mdp0 >&2 << END
,,FD
END
sfdisk $mdp1 >&2 << END
,,FD
END
mdadm -CR $md0 -l1 -n2 ${mdp0}p1 ${mdp1}p1
mdadm -CR -e 0 $md0 -l1 -n2 ${mdp0}p1 ${mdp1}p1
check resync
check raid1
check wait

View File

@ -10,7 +10,7 @@ export MDADM_GROW_VERIFY=1
dotest() {
sleep 0.5
check wait
testdev $md0 $1 $mdsize0 64 nd
testdev $md0 $1 $mdsize1 64 nd
blockdev --flushbufs $md0
cmp -s -n $[textK*1024] $md0 /tmp/RandFile || { echo cmp failed; exit 2; }
# write something new - shift chars 4 space
@ -42,8 +42,8 @@ checkgeo() {
bu=/tmp/md-test-backup
rm -f $bu
mdadm -CR $md0 -l1 -n2 -x1 $dev0 $dev1 $dev2
testdev $md0 1 $mdsize0 64
mdadm -CR $md0 -l1 -n2 -x1 $dev0 $dev1 $dev2 -z 19968
testdev $md0 1 $mdsize1 64
dd if=/tmp/RandFile of=$md0
dotest 1
@ -57,14 +57,14 @@ dotest 3
mdadm -G $md0 -l6 --backup-file $bu
dotest 3
mdadm -G /dev/md0 --array-size $[mdsize0*2]
mdadm -G /dev/md0 --array-size 39936
mdadm -G $md0 -n4 --backup-file $bu
dotest 2
mdadm -G $md0 -l5 --backup-file $bu
dotest 2
mdadm -G /dev/md0 --array-size $mdsize0
mdadm -G /dev/md0 --array-size 19968
mdadm -G $md0 -n2 --backup-file $bu
dotest 1
@ -79,7 +79,7 @@ dotest 3
mdadm $md0 --fail $dev0
mdadm -G /dev/md0 --array-size $[mdsize0*2]
mdadm -G /dev/md0 --array-size 39936
mdadm -G $md0 -n4 --backup-file $bu
dotest 2
mdadm $md0 --fail $dev4
@ -98,7 +98,7 @@ dotest 2
mdadm -G $md0 -l5 --backup-file $bu
dotest 2
mdadm -G /dev/md0 --array-size $mdsize0
mdadm -G /dev/md0 --array-size 19968
mdadm -G $md0 -n2 --backup-file $bu
dotest 1
mdadm $md0 --fail $dev2

View File

@ -12,7 +12,7 @@ export MDADM_GROW_VERITY=1
dotest() {
sleep 0.5
check wait
testdev $md0 $1 $mdsize0 512 nd
testdev $md0 $1 $mdsize1 512 nd
blockdev --flushbufs $md0
cmp -s -n $[textK*1024] $md0 /tmp/RandFile || { echo cmp failed; exit 2; }
# write something new - shift chars 4 space

View File

@ -25,7 +25,7 @@ do
# test restore: make a raid5 from a file, then do a compare
dd if=/dev/urandom of=/tmp/RandFile bs=1024 count=$size
$dir/test_stripe restore /tmp/RandFile $disks $[chunk*1024] $level $nlayout 0 $[size*1024] $devs
mdadm -CR $md0 -amd -l$level -n$disks --assume-clean -c $chunk -p $layout $devs
mdadm -CR -e 1.0 $md0 -amd -l$level -n$disks --assume-clean -c $chunk -p $layout $devs
cmp -s -n $[size*1024] $md0 /tmp/RandFile || { echo cmp failed ; exit 2; }
# FIXME check parity