]>
Commit | Line | Data |
---|---|---|
1 | 2004-june-02 | |
2 | * Don't print 'errors' flag, it is meaningless. DONE | |
3 | * Handle new superblock format | |
4 | * create device file on demand, particularly partitionable devices. DONE | |
5 | BUT figure a way to create the partition devices. | |
6 | auto=partN | |
7 | * Use Event: interface to listen for events. DONE, untested | |
8 | * Make sure mdadm -As can assemble multi-level RAIDs ok. | |
9 | * --build to build raid1 or multipath arrays | |
10 | clean or not ??? | |
11 | ||
12 | ---------------------------------------------------------------------------- | |
13 | * mdadm --monitor to monitor failed multipath paths and re-instate them. | |
14 | ||
15 | * Maybe make "--help" fit in 80x24 and have a --long-help with more info. DONE | |
16 | ||
17 | ||
18 | * maybe "missing" instead of <bold>missing</> in doco DONE | |
19 | * possibly wait for resync to start, or even finish while assembling.- NO | |
20 | ||
21 | * -Db should have a devices= entry if possible. - DONE | |
22 | * when assembling multipath arrays, ignore any error indicators. - DONE | |
23 | * rationalise --monitor usage: | |
24 | mdadm --monitor | |
25 | doesn't do as expected. DONE | |
26 | ||
27 | * --assemble could have a --update option. - DONE | |
28 | following word can be: | |
29 | sparc2.2 | |
30 | super-minor | |
31 | ||
32 | * mdadm /dev/md11, where md11 is raid0 can segfault, particularly when looking in the | |
33 | [UU_UUU] string ... which doesn't exist ! | |
34 | It should be more sensible. DONE | |
35 | ||
36 | Example: | |
37 | ||
38 | from Raimund Sacherer <raimund.sacherer@ngit.at> | |
39 | ||
40 | mke2fs -m0 -q /dev/ram1 300 | |
41 | mount -n -t ext2 /dev/ram1 /tmp | |
42 | echo DEVICE /dev/[sh]* >> /tmp/mdadm.conf | |
43 | mdadm -Esb /dev/[sh]* 2>/dev/null >> /tmp/mdadm.conf | |
44 | mdadm -ARsc /tmp/mdadm.conf | |
45 | umount /tmp | |
46 | ||
47 | ||
48 | ?? Allow -S /dev/md? - current complains subsequent not a/d/r - DONE | |
49 | ||
50 | * new "Query" mode to subsume --detail and --examine. | |
51 | --query or -Q, takes a device and tells if it is an MD device, | |
52 | and also tells in a raid superblock is found. | |
53 | DONE | |
54 | ||
55 | * write mdstat.c to parse /proc/mdstat file | |
56 | Build list of arrays: name, rebuild-percent | |
57 | DONE | |
58 | ||
59 | * parse /proc/partitions and map major/minor into /dev/* names, | |
60 | and use that for default DEVICE list ???? | |
61 | ||
62 | * --detail --scan to read /proc/mdstat, and then iterate over these, | |
63 | but assume --brief. --verbose can override | |
64 | check each subdevice to see if it is in conf_get_devs. | |
65 | Warn if not. | |
66 | DONE, but don't warn yet... | |
67 | ||
68 | * Support multipath ... maybe... | |
69 | maybe DONE | |
70 | ||
71 | * --follow to syslog | |
72 | ||
73 | * --follow to move spares around DONE | |
74 | ||
75 | * --follow to notice other events: DONE | |
76 | rebuild started | |
77 | spare activated | |
78 | spare removed | |
79 | spare added | |
80 | ||
81 | ------------------------------------ | |
82 | - --examine --scan scans all drives and build an mdadm.conf file DONE | |
83 | ||
84 | - check superblock checksum in examine DONE | |
85 | - report "chunk" or "rounding" depending on raid level DONE | |
86 | - report "linear" instead of "-1" for raid level DONE | |
87 | - decode ayout depending on raid level DONE | |
88 | - --verbose and --force flags. DONE | |
89 | ||
90 | - set md_minor, *_disks for Create - DONE | |
91 | - for create raid5, how to choose between | |
92 | all working, but not insync | |
93 | one missing, one spare, insync DONE (--force) | |
94 | - and for raid1 - some failed drives... (missing) | |
95 | ||
96 | - when RUN_ARRAY, make sure *_disks counts are right | |
97 | ||
98 | - get --detail to extract extra stuff from superblock, | |
99 | like uuid DONE | |
100 | - --detail --brief to give a config file line DONE | |
101 | - parse config file. DONE | |
102 | - test... | |
103 | ||
104 | - when --assemble --scan, if an underlying device is an md device, | |
105 | then try to assemble that device first. | |
106 | ||
107 | ||
108 | - mdadm -S /dev/md0 /dev/md1 gives internal error FIXED | |
109 | ||
110 | - mdadm --detail --scan print summary of what it can find? DONE | |
111 | ||
112 | ||
113 | --------- | |
114 | Assemble doesn't add spares. - DONE | |
115 | Create to allow "missing" name for devices. | |
116 | Create to accept "--force" for do exactly what is requested | |
117 | - get Assemble to upgrade devices if force flag. | |
118 | ARRAY lines in config file to have super_minor=n | |
119 | ARRAY lines in config file to have device=pattern, and only accept | |
120 | those devices | |
121 | If UUID given, insist on that | |
122 | If not, but super_minor given, require all found with that minor | |
123 | to have same uuid | |
124 | If only device given, all valid supers on those devices must have | |
125 | same uuid | |
126 | allow /dev/mdX as first argument before any options | |
127 | Possible --dry-run option for create and assemble--force | |
128 | ||
129 | Assemble to check that all devices mentioned in superblock | |
130 | are present. | |
131 | ||
132 | New mode: --Monitor (or --Follow) | |
133 | Periodically check status of all arrays (listed in config file). | |
134 | Log every event and apparent cause - or differences | |
135 | Email and alert - or run a program - for important events | |
136 | Move spares around if necessary. | |
137 | ||
138 | An Array line can have a spare-group= field that indicates that | |
139 | the array shares spares with other arrays with the same | |
140 | spare-group name. | |
141 | If an array has a failed and no spares, then check all other | |
142 | arrays in the spare group. If one has no failures and a spare, | |
143 | then consider that spare. | |
144 | Choose the smallest considered spare that is large enough. | |
145 | If there is one, then hot-remove it from it's home, and | |
146 | hot-add it to the array in question. | |
147 | ||
148 | --mail-to address | |
149 | --alert-handler program | |
150 | ||
151 | Will also extract information from /proc/mdstat if present, | |
152 | and consider 20% marks in rebuild as events. | |
153 | ||
154 | Events are: | |
155 | drive fails - causes mail to be sent | |
156 | rebuild started | |
157 | spare activated | |
158 | spare removed | |
159 | spare added |