]>
Commit | Line | Data |
---|---|---|
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. | |
10 | ||
11 | mdadm -CR /dev/md/ddf0 -e ddf -n 5 $dev8 $dev9 $dev10 $dev11 $dev12 | |
12 | mdadm -CR r0 -l0 -n5 /dev/md/ddf0 -z 5000 | |
13 | mdadm -CR r1 -l1 -n2 /dev/md/ddf0 | |
14 | mdadm -CR r5 -l5 -n3 /dev/md/ddf0 | |
15 | testdev /dev/md/r0 5 5000 64 | |
16 | # r0 will use 4992 due to chunk size, so that leave 27776 for the rest | |
17 | testdev /dev/md/r1 1 27776 1 | |
18 | testdev /dev/md/r5 2 27776 64 | |
19 | dd if=/dev/sda of=/dev/md/r0 || true | |
20 | dd if=/dev/sda of=/dev/md/r1 || true | |
21 | dd if=/dev/sda of=/dev/md/r5 || true | |
22 | ||
23 | s0=`sha1sum /dev/md/r0` | |
24 | s1=`sha1sum /dev/md/r1` | |
25 | s5=`sha1sum /dev/md/r5` | |
26 | ||
27 | ||
28 | mdadm -Ss | |
29 | mdadm -A /dev/md/ddf0 $dev8 $dev9 $dev10 $dev11 $dev12 | |
30 | mdadm -I /dev/md/ddf0 | |
31 | ||
32 | s0a=`sha1sum /dev/md/r0` | |
33 | s1a=`sha1sum /dev/md/r1` | |
34 | s5a=`sha1sum /dev/md/r5` | |
35 | ||
36 | if [ "$s0" != "$s0a" ]; then | |
37 | echo r0 did not match ; exit 1; | |
38 | fi | |
39 | if [ "$s1" != "$s1a" ]; then | |
40 | echo r1 did not match ; exit 1; | |
41 | fi | |
42 | if [ "$s5" != "$s5a" ]; then | |
43 | echo r5 did not match ; exit 1; | |
44 | fi | |
45 | ||
46 | # failure status just means it has completed already, so ignore it. | |
47 | mdadm --wait /dev/md/r1 || true | |
48 | mdadm --wait /dev/md/r5 || true | |
49 | ||
50 | mdadm -Dbs > /var/tmp/mdadm.conf | |
51 | ||
52 | mdadm -Ss | |
53 | ||
54 | # Now try to assemble using mdadm.conf | |
55 | mdadm -Asc /var/tmp/mdadm.conf | |
56 | check nosync # This failed once. The raid5 was resyncing. | |
57 | ||
58 | mdadm -Dbs > /tmp/mdadm.conf | |
59 | diff /tmp/mdadm.conf /var/tmp/mdadm.conf | |
60 | mdadm -Ss | |
61 | ||
62 | # and now assemble fully incrementally. | |
63 | for i in $dev8 $dev9 $dev10 $dev11 $dev12 | |
64 | do | |
65 | #./mdadm -I $i -vv 2>&1 | wc -l > /tmp/cnt | |
66 | ./mdadm -I $i 2> /tmp/thing | |
67 | wc -l < /tmp/thing > /tmp/cnt | |
68 | # should find container and 2 devices, so 3 lines. | |
69 | [ `cat /tmp/cnt` -eq 3 ] | |
70 | done | |
71 | check nosync | |
72 | ||
73 | mdadm -Dbs > /tmp/mdadm.conf | |
74 | diff /tmp/mdadm.conf /var/tmp/mdadm.conf | |
75 | mdadm -Ss | |
76 | rm /tmp/mdadm.conf /var/tmp/mdadm.conf |