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