summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-04-14 10:19:05 +1000
committerNeilBrown <neilb@suse.de>2009-04-14 10:19:05 +1000
commit8ab2924c65bddce2b110275350ac519f9b0b5964 (patch)
treea7521f0bfe5a5c2590bb327dda51ee551101fb7a /tests
parent6161a7a0161a1d40afa704f3d62deef313c3cce5 (diff)
downloadmdadm-8ab2924c65bddce2b110275350ac519f9b0b5964.tar.gz
mdadm-8ab2924c65bddce2b110275350ac519f9b0b5964.tar.xz
mdadm-8ab2924c65bddce2b110275350ac519f9b0b5964.zip
tests: add some simple data integrity tests for raid5/raid6
Make sure the data is preserved even when the array is degraded. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'tests')
-rw-r--r--tests/01r5integ29
-rw-r--r--tests/01raid6integ53
2 files changed, 82 insertions, 0 deletions
diff --git a/tests/01r5integ b/tests/01r5integ
new file mode 100644
index 0000000..714a57f
--- /dev/null
+++ b/tests/01r5integ
@@ -0,0 +1,29 @@
+
+# Check integrity of raid5 in degraded mode
+# Create a 4 disk raid5, create a filesystem and
+# sh1sum it with each device failed
+
+for layout in ls rs la ra
+do
+ mdadm -CR $md0 -l5 --layout $layout -n4 $dev0 $dev1 $dev2 $dev3
+ check wait
+ tar cf - /etc > $md0
+ sum=`sha1sum $md0`
+
+ for i in $dev0 $dev1 $dev2 $dev3
+ do
+ mdadm $md0 -f $i
+ mdadm $md0 -r $i
+ blockdev --flushbufs $md0
+ sum1=`sha1sum $md0`
+ if [ $sum != $sum1 ]
+ then
+ echo $sum does not matc $sum1 with $i missing
+ exit 1
+ fi
+ mdadm $md0 -a $i
+ check wait
+ done
+ mdadm -S $md0
+done
+
diff --git a/tests/01raid6integ b/tests/01raid6integ
new file mode 100644
index 0000000..ed7cec5
--- /dev/null
+++ b/tests/01raid6integ
@@ -0,0 +1,53 @@
+
+# Check integrity of raid6 in degraded modes
+# Create a 5 disk raid6, dump some data to it, then
+# sh1sum it with different pairs of devices failed
+
+layouts='ls rs la ra'
+lv=`uname -r`
+if expr $lv '>=' 2.6.30 > /dev/null
+then
+ layouts="$layouts parity-first dd-zero-restart ddf-N-restart ddf-N-continue \
+ left-asymmetric-6 right-asymmetric-6 left-symmetric-6 right-symmetric-6 parity-first-6"
+fi
+echo $layouts
+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 matc $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 matc $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
+