]>
Commit | Line | Data |
---|---|---|
cd29a5c8 | 1 | |
9a9dab36 NB |
2 | Changes Prior to 0.7 release |
3 | ||
4 | - Fix makefile to install binary at /sbin and not /sbin/sbin | |
5 | Also install man page. | |
6 | - Add --zero-superblock based on --destroywithextremeprejudice | |
7 | from Dale Stephenson <steph@snapserver.com> | |
8 | - change name to mdadm. It is palandromic, and much nicer to pronouce. | |
9 | ||
cd29a5c8 NB |
10 | Changes Prior to 0.6 release |
11 | ||
9a9dab36 | 12 | - Remove the limit on the number of device names that can be |
cd29a5c8 NB |
13 | given on the command line. |
14 | - Fix bug in --assemble --force where it would only update a | |
15 | single superblock. | |
16 | - Fix bogus printing of big numbers not being block devices | |
17 | when given names of devices that don't exist. | |
18 | - When --assemble --force, consider superblocks with an event | |
19 | count that is 1 behind as out-of-date. Normally they are | |
20 | considered up-to-date (as the kernel assumes this too). | |
21 | - When marking drives as not-failed in the superblock, | |
22 | we also mark them as ACTIVE and SYNC. | |
23 | - Don't start arrays for which not all drives are available unless: | |
24 | --scan which implies that all drives were found automatically | |
25 | --run which means the user knows what they want | |
26 | --force which means that we are fixing something broken | |
27 | - Make sure all device numbers passed as 3rd arg of ioctl | |
28 | are passed as unsigned lock, so that it works on SPARC | |
29 | - If HOT_ADD_DISK failes for -a, then only try ADD_NEW_DISK | |
30 | if we cannot read from the array, i.e. if the array is | |
31 | not started yet. | |
32 | - man page update | |
33 | - Taught Examine to handle --scan. It examines all devices listed | |
34 | on DEVICE lines in the config file. | |
35 | - Added --brief (-b) flag for Examine and Detail to print out | |
36 | and mdctl.conf compatible description with uuid=, level=, | |
37 | disks= and - for Examine - devices= | |
38 | --examine --brief collects all devices the make the one array and | |
39 | list them as one entry. | |
40 | - Added level= and disks= options to ARRAY lines in config files | |
41 | so --brief output could be used as-is. | |
42 | - Make parity style ({left,right}-{,a}symmetric) consistantly use -, | |
43 | never _. | |
44 | - Add "Array Size" to --detail output | |
45 | - Change "Size" to "Device Size" and exclude from Detail of arrays | |
46 | that do not have a consistent device size. | |
47 | - Add Human readable MiB or GiB value on size lines of Detail and Examine | |
48 | - --assemble --scan doesn't complain about active drives | |
49 | - require number of spares given in -x to be listed. | |
50 | - Made --build actually work. | |
51 | Changes Prior to 0.5 release | |
52 | ||
53 | --assemble: | |
54 | spare drives are handled properly. | |
55 | ||
56 | --force can be used to recover from 2-drive failures on RAID5 | |
57 | If you belive that /dev/hda1 /dev/hdb1 /dev/hdc1 /dev/hdd1 should | |
58 | make a raid5 array, but it has experienced multiple failures and | |
59 | wont start, then | |
60 | ||
61 | mdctl --assemble --force /dev/md0 /dev/hd[abcd]1 | |
62 | ||
63 | Should update the superblock on the newest failed drive and | |
64 | restart the array in degraded mode. You should then remove the | |
65 | remaining failed drive and re-add it (if you are happy that it | |
66 | might work). | |
67 | ||
68 | Ofcourse whenever you have a 2-drive failure, you have a risk | |
69 | of corruption in data that hasn't be changed for a long time. So | |
70 | this doesn't give you your array back all nice and happy, but it | |
71 | does allow you to recover data that might not be corrupt. | |
72 | ||
73 | More flexibility in identifying a RAID array in the mdctl.conf | |
74 | e.g. | |
75 | array /dev/md4 super-minor=4 | |
76 | ||
77 | assembles /dev/md4 from all devices found that have a raid | |
78 | superblock that says the minor number of the array is 4. | |
79 | If the blocks with the right minor number do not all have the | |
80 | same UUID, an error is flags and no assembly happens. | |
81 | ||
82 | array /dev/md3 devices=/dev/hd[abc]2 | |
83 | ||
84 | Assembles /dev/md3 drom /dev/hda2 /dev/hdb2 and/dev/hdc2. All | |
85 | devices must exist and have raid superblock with the same uuid. | |
86 | ||
87 | If two identity specifiers are used, only devices that match all | |
88 | of them are considered, so | |
89 | ||
90 | array /dev/md2 devices=/dev/hd?2 super-minor=2 | |
91 | ||
92 | will assemble /dev/md2 using all /dev/hd?2 devices which have a | |
93 | raid superblock with minor number 2. | |
94 | ||
95 | --create: | |
96 | When listing devices for --create, the word "missing" can be | |
97 | used to indicate that the respective slot does not have a | |
98 | working drive currently. This is similar to the "failed-disk" | |
99 | directive in mkraid/raidtab. | |
100 | e.g. | |
101 | mdctl --create --level=5 -raid-disks=4 --spare-disks=2 | |
102 | /dev/md0 /dev/sda /dev/sdb missing /dev/sdc /dev/sdd /dev/sde | |
103 | ||
104 | will create a raid5 array with the third slot empty, and two | |
105 | spares. | |
106 | ||
107 | By default, raid5 arrays are created with the last slot empty | |
108 | and drive listed for the last slot added as a spare. If a | |
109 | "missing" slot is given, or if --force is given, then --create | |
110 | does exactly what you ask and doesn't try to be clever. | |
111 | ||
112 | ||
113 | --follow / --monitor: | |
114 | ||
115 | This is a new mode. I couldn't stop my self from picking a name | |
116 | starting with F (as current modes start A,B,C,D,E) but I | |
117 | relented and provided an alternate name that is somewhat more | |
118 | meaningful. | |
119 | ||
120 | In this mode, mdctl does not exit, but runs continuously and | |
121 | periodically polls all the md devices to see if they have had | |
122 | any interested state change. | |
123 | The changes that it currently notices are: | |
124 | Fail - an active disc fails | |
125 | FailSpare - a spare, that was presumably being build, fails | |
126 | ActiveSpare - a spare becomes active, presumably after a rebuild. | |
127 | ||
128 | Options: | |
129 | --mail mailaddress - send Email on any Fail* event | |
130 | --program program - run the program on any event. | |
131 | Args are: eventname mddevice subdevice(if-known) | |
132 | --delay seconds - change from the default 60second pause | |
133 | between polls. | |
134 | ||
135 | I plan to add functionality to this mode to allow sharing of | |
136 | spare drives. If an array is marks "spare-group=fred", and it | |
137 | has a failed drive and no spares, and if some other array is | |
138 | also "spare-group=fred" and it has no failed drives, but does | |
139 | have a spare drive that is big enough, the spare will be moved | |
140 | to the first array. | |
141 | ||
142 | I also have the idea of adding a --grow mode which will re-organise | |
143 | the data on an N disk raid0/4/5 array to be on an N+M disk array. | |
144 | I have no concrete plans for this though. | |
145 | ||
146 | I got rid of the "v" in the archive file name, and include the | |
147 | version number in the directory created by the archive. | |
148 | ||
149 | There is now a man page and mdctl.spec (for rpm) thanks to | |
150 | Danilo Godec <danci@agenda.si>. | |
151 | ||
152 | Ofcourse, the man page is now out of date and despite being based on | |
153 | the --help output, is not wholy correct. After I get --follow | |
154 | working properly, I plan to revise the various documentation and/or | |
155 | the code to make sure the two match. | |
156 |