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.
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
12
----------------------------------------------------------------------------
13
* mdadm --monitor to monitor failed multipath paths and re-instate them.
15
* Maybe make "--help" fit in 80x24 and have a --long-help with more info. DONE
18
* maybe "missing" instead of <bold>missing</> in doco DONE
19
* possibly wait for resync to start, or even finish while assembling.- NO
21
* -Db should have a devices= entry if possible. - DONE
22
* when assembling multipath arrays, ignore any error indicators. - DONE
23
* rationalise --monitor usage:
25
doesn't do as expected. DONE
27
* --assemble could have a --update option. - DONE
28
following word can be:
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
38
from Raimund Sacherer <raimund.sacherer@ngit.at>
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
48
?? Allow -S /dev/md? - current complains subsequent not a/d/r - DONE
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.
55
* write mdstat.c to parse /proc/mdstat file
56
Build list of arrays: name, rebuild-percent
59
* parse /proc/partitions and map major/minor into /dev/* names,
60
and use that for default DEVICE list ????
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.
66
DONE, but don't warn yet...
68
* Support multipath ... maybe...
73
* --follow to move spares around DONE
75
* --follow to notice other events: DONE
81
------------------------------------
82
- --examine --scan scans all drives and build an mdadm.conf file DONE
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
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)
96
- when RUN_ARRAY, make sure *_disks counts are right
98
- get --detail to extract extra stuff from superblock,
100
- --detail --brief to give a config file line DONE
101
- parse config file. DONE
104
- when --assemble --scan, if an underlying device is an md device,
105
then try to assemble that device first.
108
- mdadm -S /dev/md0 /dev/md1 gives internal error FIXED
110
- mdadm --detail --scan print summary of what it can find? DONE
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
121
If UUID given, insist on that
122
If not, but super_minor given, require all found with that minor
124
If only device given, all valid supers on those devices must have
126
allow /dev/mdX as first argument before any options
127
Possible --dry-run option for create and assemble--force
129
Assemble to check that all devices mentioned in superblock
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.
138
An Array line can have a spare-group= field that indicates that
139
the array shares spares with other arrays with the same
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.
149
--alert-handler program
151
Will also extract information from /proc/mdstat if present,
152
and consider 20% marks in rebuild as events.
155
drive fails - causes mail to be sent