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:
parent
5f175898de
commit
7d5c3964cc
9
mdadm.8
9
mdadm.8
|
@ -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.
|
||||
|
|
4
super0.c
4
super0.c
|
@ -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;
|
||||
|
||||
|
|
5
super1.c
5
super1.c
|
@ -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
2
test
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
135
tests/03r0assem
135
tests/03r0assem
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ]
|
||||
|
|
|
@ -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'`
|
||||
|
|
|
@ -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'`
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ]
|
||||
|
|
|
@ -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 ]
|
||||
|
|
|
@ -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 ]
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue