mdadm-1.6.0
[thirdparty/mdadm.git] / TODO
CommitLineData
dd0781e5
NB
12004-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----------------------------------------------------------------------------
aa88f531
NB
13* mdadm --monitor to monitor failed multipath paths and re-instate them.
14
56eedc1a
NB
15* Maybe make "--help" fit in 80x24 and have a --long-help with more info. DONE
16
17
d013a55e
NB
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
5787fa49
NB
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 !
34It should be more sensible. DONE
35
36Example:
37
38from Raimund Sacherer <raimund.sacherer@ngit.at>
39
40mke2fs -m0 -q /dev/ram1 300
41mount -n -t ext2 /dev/ram1 /tmp
42echo DEVICE /dev/[sh]* >> /tmp/mdadm.conf
43mdadm -Esb /dev/[sh]* 2>/dev/null >> /tmp/mdadm.conf
44mdadm -ARsc /tmp/mdadm.conf
45umount /tmp
64c4757e 46
cd29a5c8 47
e0d19036 48?? Allow -S /dev/md? - current complains subsequent not a/d/r - DONE
cd29a5c8 49
56eb10c0
NB
50* new "Query" mode to subsume --detail and --examine.
51 --query or -Q, takes a device and tells if it is an MD device,
e0d19036
NB
52 and also tells in a raid superblock is found.
53 DONE
56eb10c0 54
e0d19036 55* write mdstat.c to parse /proc/mdstat file
cd29a5c8 56 Build list of arrays: name, rebuild-percent
e0d19036 57 DONE
cd29a5c8 58
e0d19036
NB
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,
cd29a5c8
NB
63 but assume --brief. --verbose can override
64 check each subdevice to see if it is in conf_get_devs.
65 Warn if not.
e0d19036 66 DONE, but don't warn yet...
cd29a5c8
NB
67
68* Support multipath ... maybe...
e0d19036 69 maybe DONE
cd29a5c8
NB
70
71* --follow to syslog
72
2d465520 73* --follow to move spares around DONE
cd29a5c8 74
2d465520 75* --follow to notice other events: DONE
cd29a5c8
NB
76 rebuild started
77 spare activated
78 spare removed
79 spare added
80
81------------------------------------
9a9dab36 82- --examine --scan scans all drives and build an mdadm.conf file DONE
cd29a5c8 83
82b27616
NB
84- check superblock checksum in examine DONE
85- report "chunk" or "rounding" depending on raid level DONE
682c7051
NB
86- report "linear" instead of "-1" for raid level DONE
87- decode ayout depending on raid level DONE
cd29a5c8 88- --verbose and --force flags. DONE
682c7051 89
82b27616 90- set md_minor, *_disks for Create - DONE
682c7051
NB
91- for create raid5, how to choose between
92 all working, but not insync
cd29a5c8
NB
93 one missing, one spare, insync DONE (--force)
94- and for raid1 - some failed drives... (missing)
52826846 95
82b27616
NB
96- when RUN_ARRAY, make sure *_disks counts are right
97
98- get --detail to extract extra stuff from superblock,
99 like uuid DONE
cd29a5c8 100- --detail --brief to give a config file line DONE
82b27616
NB
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.
0db17fcb
NB
106
107
9a9dab36 108- mdadm -S /dev/md0 /dev/md1 gives internal error FIXED
52826846 109
56eedc1a 110- mdadm --detail --scan print summary of what it can find? DONE
52826846
NB
111
112
113---------
114Assemble doesn't add spares. - DONE
115Create to allow "missing" name for devices.
116Create to accept "--force" for do exactly what is requested
117- get Assemble to upgrade devices if force flag.
118ARRAY lines in config file to have super_minor=n
119ARRAY 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
126allow /dev/mdX as first argument before any options
127Possible --dry-run option for create and assemble--force
128
129Assemble to check that all devices mentioned in superblock
130 are present.
131
132New 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
cd29a5c8 159 spare added