]> git.ipfire.org Git - thirdparty/mdadm.git/blob - TODO
remove ANNOUNCE-2.0-devel-?
[thirdparty/mdadm.git] / TODO
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