# Check integrity of raid6 in degraded modes # Create a 5 disk raid6, dump some data to it, then # sha1sum it with different pairs of devices failed if [ "$INTEGRITY" != "yes" ]; then echo -ne 'skipping... ' exit 0 fi layouts='ls rs la ra' lv=`uname -r` if expr $lv '>=' 2.6.30 > /dev/null then layouts="$layouts parity-first ddf-zero-restart ddf-N-restart ddf-N-continue \ left-asymmetric-6 right-asymmetric-6 left-symmetric-6 right-symmetric-6 parity-first-6" fi for layout in $layouts do mdadm -CR $md0 -l6 --layout $layout -n5 $dev0 $dev1 $dev2 $dev3 $dev4 check wait tar cf - /etc > $md0 sum=`sha1sum $md0` totest= for second in $dev0 $dev1 $dev2 $dev3 $dev4 do mdadm $md0 -f $second mdadm $md0 -r $second blockdev --flushbufs $md0 sum1=`sha1sum $md0` if [ "$sum" != "$sum1" ] then echo $sum does not match $sum1 with $second missing exit 1 fi for first in $totest do mdadm $md0 -f $first mdadm $md0 -r $first blockdev --flushbufs $md0 sum1=`sha1sum $md0` if [ "$sum" != "$sum1" ] then echo $sum does not match $sum1 with $first and $second missing exit 1 fi mdadm $md0 -a $first check wait done mdadm $md0 -a $second check wait totest="$totest $second" done mdadm -S $md0 done