]> git.ipfire.org Git - thirdparty/mdadm.git/blame - tests/10ddf-create
tests/10ddf-create: add RAID 10 array
[thirdparty/mdadm.git] / tests / 10ddf-create
CommitLineData
78e3d2a3
N
1#
2# Test basic DDF functionality.
3#
4# Create a container with 5 drives
5# create a small raid0 across them all, then a 2disk raid1
6# and a 3disk raid5 using the remaining space
7#
8# add some data, tear down the array, reassemble
9# and make sure it is still there.
4c821454 10set -e
78e3d2a3
N
11
12mdadm -CR /dev/md/ddf0 -e ddf -n 5 $dev8 $dev9 $dev10 $dev11 $dev12
13mdadm -CR r0 -l0 -n5 /dev/md/ddf0 -z 5000
97c9c100
N
14if mdadm -CR r0 -l1 -n2 /dev/md/ddf0 -z 5000
15then echo >&2 create with same name should fail ; exit 1
16fi
cf43d473 17mdadm -CR r10 -l10 -n4 -pn2 /dev/md/ddf0 -z 5000
78e3d2a3
N
18mdadm -CR r1 -l1 -n2 /dev/md/ddf0
19mdadm -CR r5 -l5 -n3 /dev/md/ddf0
5f175898 20testdev /dev/md/r0 5 5000 512
cf43d473 21testdev /dev/md/r10 2 5000 512
22# r0/r10 will use 4608 due to chunk size, so that leaves 23552 for the rest
23testdev /dev/md/r1 1 23552 64
24testdev /dev/md/r5 2 23552 512
78e3d2a3 25dd if=/dev/sda of=/dev/md/r0 || true
cf43d473 26dd if=/dev/sda of=/dev/md/r10 || true
78e3d2a3
N
27dd if=/dev/sda of=/dev/md/r1 || true
28dd if=/dev/sda of=/dev/md/r5 || true
29
30s0=`sha1sum /dev/md/r0`
cf43d473 31s10=`sha1sum /dev/md/r10`
78e3d2a3
N
32s1=`sha1sum /dev/md/r1`
33s5=`sha1sum /dev/md/r5`
34
35
36mdadm -Ss
37mdadm -A /dev/md/ddf0 $dev8 $dev9 $dev10 $dev11 $dev12
38mdadm -I /dev/md/ddf0
39
af538d59 40udevadm settle
78e3d2a3 41s0a=`sha1sum /dev/md/r0`
cf43d473 42s10a=`sha1sum /dev/md/r10`
78e3d2a3
N
43s1a=`sha1sum /dev/md/r1`
44s5a=`sha1sum /dev/md/r5`
45
46if [ "$s0" != "$s0a" ]; then
47 echo r0 did not match ; exit 1;
48fi
cf43d473 49if [ "$s10" != "$s10a" ]; then
50 echo r10 did not match ; exit 1;
51fi
78e3d2a3
N
52if [ "$s1" != "$s1a" ]; then
53 echo r1 did not match ; exit 1;
54fi
55if [ "$s5" != "$s5a" ]; then
56 echo r5 did not match ; exit 1;
57fi
58
59# failure status just means it has completed already, so ignore it.
60mdadm --wait /dev/md/r1 || true
cf43d473 61mdadm --wait /dev/md/r10 || true
78e3d2a3
N
62mdadm --wait /dev/md/r5 || true
63
64mdadm -Dbs > /var/tmp/mdadm.conf
65
66mdadm -Ss
67
68# Now try to assemble using mdadm.conf
69mdadm -Asc /var/tmp/mdadm.conf
70check nosync # This failed once. The raid5 was resyncing.
4ccc2562 71udevadm settle
00eb5716
N
72mdadm -Dbs | sort > /tmp/mdadm.conf
73sort /var/tmp/mdadm.conf | diff /tmp/mdadm.conf -
78e3d2a3
N
74mdadm -Ss
75
76# and now assemble fully incrementally.
77for i in $dev8 $dev9 $dev10 $dev11 $dev12
78do
a6592497 79 mdadm -I $i -c /var/tmp/mdadm.conf
78e3d2a3
N
80done
81check nosync
4ccc2562 82udevadm settle
00eb5716
N
83mdadm -Dbs | sort > /tmp/mdadm.conf
84sort /var/tmp/mdadm.conf | diff /tmp/mdadm.conf -
78e3d2a3
N
85mdadm -Ss
86rm /tmp/mdadm.conf /var/tmp/mdadm.conf