testreshape5 - add tests for RAID6

.. to make sure our raid6 calculations are working.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2009-10-12 16:55:05 +11:00
parent ca4f89a3b7
commit 249887eb76
1 changed files with 12 additions and 5 deletions

View File

@ -5,35 +5,42 @@
# shaped md arrays.
set -x
layouts=(la ra ls rs)
for level in 5 6
do
for chunk in 4 8 16 32 64 128
do
devs="$dev1"
for disks in 2 3 4 5 6
do
eval devs=\"$devs \$dev$disks\"
if [ " $level $disks" = " 6 3" -o " $level $disks" = " 6 2" ]
then continue
fi
for nlayout in 0 1 2 3
do
layout=${layouts[$nlayout]}
size=$[chunk*(disks-1)*disks]
size=$[chunk*(disks-(level-4))*disks]
# 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] 5 $nlayout 0 $[size*1024] $devs
mdadm -CR $md0 -amd -l5 -n$disks --assume-clean -c $chunk -p $layout $devs
$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
cmp -s -n $[size*1024] $md0 /tmp/RandFile || { echo cmp failed ; exit 2; }
# FIXME check parity
# test save
dd if=/dev/urandom of=$md0 bs=1024 count=$size
blockdev --flushbufs $md0 $devs
blockdev --flushbufs $md0 $devs; sync
> /tmp/NewRand
$dir/test_stripe save /tmp/NewRand $disks $[chunk*1024] 5 $nlayout 0 $[size*1024] $devs
$dir/test_stripe save /tmp/NewRand $disks $[chunk*1024] $level $nlayout 0 $[size*1024] $devs
cmp -s -n $[size*1024] $md0 /tmp/NewRand || { echo cmp failed ; exit 2; }
mdadm -S $md0
udevadm settle
done
done
done
done
exit 0