mdadm/tests/10ddf-create
NeilBrown 5f175898de Increase default chunk size to 512K
This seems more appropriate for current (and recent) model drives than
64K.
64K is still the default for '--build' as changing that could corrupt
data.
64K is also the default rounding for 'linear' on kernels older than
2.6.16.

Signed-off-by: NeilBrown <neilb@suse.de>
2009-11-17 13:08:55 +11:00

77 lines
1.9 KiB
Plaintext

#
# Test basic DDF functionality.
#
# Create a container with 5 drives
# create a small raid0 across them all, then a 2disk raid1
# and a 3disk raid5 using the remaining space
#
# add some data, tear down the array, reassemble
# and make sure it is still there.
mdadm -CR /dev/md/ddf0 -e ddf -n 5 $dev8 $dev9 $dev10 $dev11 $dev12
mdadm -CR r0 -l0 -n5 /dev/md/ddf0 -z 5000
mdadm -CR r1 -l1 -n2 /dev/md/ddf0
mdadm -CR r5 -l5 -n3 /dev/md/ddf0
testdev /dev/md/r0 5 5000 512
# r0 will use 4608 due to chunk size, so that leaves 28160 for the rest
testdev /dev/md/r1 1 28160 1
testdev /dev/md/r5 2 28160 512
dd if=/dev/sda of=/dev/md/r0 || true
dd if=/dev/sda of=/dev/md/r1 || true
dd if=/dev/sda of=/dev/md/r5 || true
s0=`sha1sum /dev/md/r0`
s1=`sha1sum /dev/md/r1`
s5=`sha1sum /dev/md/r5`
mdadm -Ss
mdadm -A /dev/md/ddf0 $dev8 $dev9 $dev10 $dev11 $dev12
mdadm -I /dev/md/ddf0
s0a=`sha1sum /dev/md/r0`
s1a=`sha1sum /dev/md/r1`
s5a=`sha1sum /dev/md/r5`
if [ "$s0" != "$s0a" ]; then
echo r0 did not match ; exit 1;
fi
if [ "$s1" != "$s1a" ]; then
echo r1 did not match ; exit 1;
fi
if [ "$s5" != "$s5a" ]; then
echo r5 did not match ; exit 1;
fi
# failure status just means it has completed already, so ignore it.
mdadm --wait /dev/md/r1 || true
mdadm --wait /dev/md/r5 || true
mdadm -Dbs > /var/tmp/mdadm.conf
mdadm -Ss
# Now try to assemble using mdadm.conf
mdadm -Asc /var/tmp/mdadm.conf
check nosync # This failed once. The raid5 was resyncing.
mdadm -Dbs | sort > /tmp/mdadm.conf
sort /var/tmp/mdadm.conf | diff /tmp/mdadm.conf -
mdadm -Ss
# and now assemble fully incrementally.
for i in $dev8 $dev9 $dev10 $dev11 $dev12
do
#./mdadm -I $i -vv 2>&1 | wc -l > /tmp/cnt
./mdadm -I $i 2> /tmp/thing
wc -l < /tmp/thing > /tmp/cnt
# should find container and 2 devices, so 3 lines.
[ `cat /tmp/cnt` -eq 3 ]
done
check nosync
mdadm -Dbs | sort > /tmp/mdadm.conf
sort /var/tmp/mdadm.conf | diff /tmp/mdadm.conf -
mdadm -Ss
rm /tmp/mdadm.conf /var/tmp/mdadm.conf