-Changes Prior to 1.4.0 release
- - Document fact that creating a raid5 array really creates a
- degraded array with a spare.
- - Add "spares=" tag to config file and generate it wit --detail and
- --examine
- - Add "SparesMissing" event when --monitor first sees an array and
- it doesn't have the enough spare devices.
- - Add --update=summaries for --assemble to update summary
- information in superblock, and correct other inconsistancies in
- the superblock.
- - Add --test option to --detail to set a meaningful exit status.
-
-Changes Prior to 1.3.0 release
- - Make 'size' and unsigned long in Create to allow creation of
- larger arrays.
- - Explicitly flag spare devices as 'spare' in --detail and --examine
- output. Previously they simply had no flags lists.
- - Make MailCmd (for monitor) configurable in Makefile, and default
- to "/usr/sbin/sendmail -t". Also split out the warning related
- flags into CWFLAGS for easier build configurability.
- - Minor bugfix in Manage code.
- - --monitor now notices and reports degraded arrays at startup using
- "DegradedArray" event, and also has a --oneshot option to only
- report DegradedArrays, and then exit.
- - Small man-page clarification w.r.t. raid levels and raid4 in
- particular.
- - Disallow creation of arrays with only one device as this is
- probably a mistake. --force will override this check.
- - Correct some misleading documentation in the "mdadm --create --help"
- message.
- - Ignore chunksize if raid1 or multipath.
- - Explicit statement in man page that raid-disks cannot be changed
- after array is created.
- - Improve message when attempting to start an array with
- insufficient devices. Instead of required the array to be full,
- we only require it has as many active devices as last time.
-
-Changes Prior to 1.2.0 release
- - Fix bug where --daemonise required an argument.
- - In --assemble --verbose, print appropriate message if device is
- not in devices= list
- - Updated mdadm.conf.5 to reflect fact that device= takes wildcards
- - Typos: componenet -> component
- - Reduce size of "--help" message put excess into "--help-options"
- - Fix bug introduced when MD_SB_DISKS dependancy removed, and which
- caused spares not be assembled properly.
- - Print appropriate message if --monitor --scan decides not to
- monitor anything.
-Changes Prior to 1.1.0 release
- - add --deamonise flag for --monitor - forks and prints pid to stdout
- - Fix bug so we REALLY clear dirty flag with -Af
- - -Db now prints a 'devices=' word for each array.
- - "mdadm -A /dev/md0" will get info from configfile, even without scan
- - When assembling multipath arrays, ignore devices which are flagged
- as having errors.
- - take --super-minor=dev to mean "use the minor number of the mddev
- being assembled.
- - take --config=none to mean "completely ignore config file"
- - Make --monitor require --scan or a device list.
-Changes Prior to 1.0.9 release
- - Documentation updates including kernel parameters documented
- in md.4
- - --assemble --force for raid4/5 will mark clean, needed for 2.5
- - --detail prints out the events counter as well
- - flush device before reading superblock to be sure to get
- current data
- - added mdadm.static target to makefile for static linking
- - --monitor was ignoring /dev/md0 due to off-by-one error
- - Fix assorted typos
- - Fix printing of Gibibytes - calc was wrong.
- - Fix printing of Array Size in --detail when very big.
- - --monitor no longer tries to work for raid0 or linear as these
- have nothing to be monitored.
- - The word 'partitions' on a DEVICE line will cause all partitions
- listed in /proc/partitions to be considered
- - If the config file is called 'partitions' then it will be treated
- as though it contained exactly 'device partitions' so e.g.
- mdadm -Ebsc partitions
- will find all raid partitions easily.
- - successfully assemble multipath devices by ignoring raid_disk
- value from superblock (it is always the same).
- - --assemble not tied to MD_SB_DISKS limit quite so much
- - Support compiling with tcc
- - Support compiling with uclibc - just skip scan of /dev
- - Add --update= option for Assemble mode. Either sparc2.2
- or super-minor updates are possible. See mdadm.8
-
-Changes Prior to 1.0.1 release
- - Round off MB/GiB etc values instead of round down.
- - Add --sparc2.2 option to examine to shift superblock around
- and --sparc2.2update to rewrite the superblock
- - Fix assorted typos in online help
-
-Changes Prior to 1.0.0 release
- - Allow --config with Misc mode (for --examine --scan)
- - Add $(CXFLAGS) to end of CFLAGS in makefile
- - When making an N disk raid5 array, the Nth drive
- is moved to the end of the array as a spare rather than
- being shifted up one place. This means that when the
- kernel builds onto the last spare and inserts it,
- the devices will be in the expected order.
- - Man page improvements
-Changes Prior to 0.8.2 release
- - Correct spelling of persist[ae]nce/persist[ae]nt.
- - Change "disk" to "device" in options and config file
- - convert array size to "long long" *before* shift-left in -D and -Q
-
-Changes Prior to 0.8.1 release
- - Add "INSTALL" file.
- - Fix some "i" variables that were not being set properly
- - Initialise minsize and maxsize so that compilers don't complain.
- - Tidy up Makefile and mdadm.spec installations
- - Add "multipath" to documentation of valid levels
-
-Changes Prior to 0.8 release
- - Fix another bug in Assemble.c due to confusing 'i' with 'j'
- - Minimal, untested, support for multipath
- - re-write of argument parsing to have more coherent modes,
- - add --query,-Q option
- - Update mdadm.8 to reflect arg processing change and --query
- - Change "long" to "unsigned long" for device sizes
- - Handle "mailaddr" and "program" lines in config file for follow/scan mode.
- - --follow --scan will exit if no program or mail found
- - Add MAILADDR and PROGRAM to mdadm.conf-example
- - Spell check man pages
- - consistently use "component devices" instead of "subdevices"
- - Make -Wall -Werror really work and fix lots of errors.
- - --detail and --stop can have --scan which chooses devices from /proc/mdstat
- - --monitor detects 20% changes in resync, failed spares,
- disappearing arrays,
- - --monitor --scan will automatically add any devices found in /proc/mdstat
- - --monitor will move spares between arrays with same spare-group if necessary
- - Documentation for Monitor Mode
- - --query notes if the array containing the given device is active or not
- - Finished md.4 man page.
-
-Changes Prior to 0.7.2 release
- - mdadm.spec updates and ifdef BLKGETSIZE64 from Luca Berra -- bluca@comedia.it
- - more mdadm.spec updates from Gregory Leblanc <gleblanc@linuxweasel.com>
- - make directory for mdadm.conf configurable in Makefile
- - Finished mdadm.conf.5. Removed details of conf file from
- mdadm.8 leaving a reference to mdadm.conf.5.
- - Fix bug in Assemble.c, thanks to Junaid Rizvi <domdev@sat.net.pk>
- - Get --assemble --force to make sure old major/minor numbers are
- consistant, as md.c worries about this :-(
-
-
-Changes Prior to 0.7.1 release
- - update mdadm.spec
- - use BLKGETSIZE64 if available for array size
- - give human readable as GiB/MiB and GB and MB, with 2 decimal point precision
- - Only warn about size variation for raid1/4/5.
- - Started md.4 man page
- - Started mdadm.conf.5 man page
-
-Changes Prior to 0.7 release
-
- - Fix makefile to install binary at /sbin and not /sbin/sbin
- Also install man page.
- - Add --zero-superblock based on --destroywithextremeprejudice
- from Dale Stephenson <steph@snapserver.com>
- - change name to mdadm. It is palandromic, and much nicer to pronouce.
-
-Changes Prior to 0.6 release
-
- - Remove the limit on the number of device names that can be
- given on the command line.
- - Fix bug in --assemble --force where it would only update a
- single superblock.
- - Fix bogus printing of big numbers not being block devices
- when given names of devices that don't exist.
- - When --assemble --force, consider superblocks with an event
- count that is 1 behind as out-of-date. Normally they are
- considered up-to-date (as the kernel assumes this too).
- - When marking drives as not-failed in the superblock,
- we also mark them as ACTIVE and SYNC.
- - Don't start arrays for which not all drives are available unless:
- --scan which implies that all drives were found automatically
- --run which means the user knows what they want
- --force which means that we are fixing something broken
- - Make sure all device numbers passed as 3rd arg of ioctl
- are passed as unsigned lock, so that it works on SPARC
- - If HOT_ADD_DISK failes for -a, then only try ADD_NEW_DISK
- if we cannot read from the array, i.e. if the array is
- not started yet.
- - man page update
- - Taught Examine to handle --scan. It examines all devices listed
- on DEVICE lines in the config file.
- - Added --brief (-b) flag for Examine and Detail to print out
- and mdctl.conf compatible description with uuid=, level=,
- disks= and - for Examine - devices=
- --examine --brief collects all devices the make the one array and
- list them as one entry.
- - Added level= and disks= options to ARRAY lines in config files
- so --brief output could be used as-is.
- - Make parity style ({left,right}-{,a}symmetric) consistantly use -,
- never _.
- - Add "Array Size" to --detail output
- - Change "Size" to "Device Size" and exclude from Detail of arrays
- that do not have a consistent device size.
- - Add Human readable MiB or GiB value on size lines of Detail and Examine
- - --assemble --scan doesn't complain about active drives
- - require number of spares given in -x to be listed.
- - Made --build actually work.
-Changes Prior to 0.5 release
-
- --assemble:
- spare drives are handled properly.
-
- --force can be used to recover from 2-drive failures on RAID5
- If you belive that /dev/hda1 /dev/hdb1 /dev/hdc1 /dev/hdd1 should
- make a raid5 array, but it has experienced multiple failures and
- wont start, then
-
- mdctl --assemble --force /dev/md0 /dev/hd[abcd]1
-
- Should update the superblock on the newest failed drive and
- restart the array in degraded mode. You should then remove the
- remaining failed drive and re-add it (if you are happy that it
- might work).
-
- Ofcourse whenever you have a 2-drive failure, you have a risk
- of corruption in data that hasn't be changed for a long time. So
- this doesn't give you your array back all nice and happy, but it
- does allow you to recover data that might not be corrupt.
-
- More flexibility in identifying a RAID array in the mdctl.conf
- e.g.
- array /dev/md4 super-minor=4
-
- assembles /dev/md4 from all devices found that have a raid
- superblock that says the minor number of the array is 4.
- If the blocks with the right minor number do not all have the
- same UUID, an error is flags and no assembly happens.
-
- array /dev/md3 devices=/dev/hd[abc]2
-
- Assembles /dev/md3 drom /dev/hda2 /dev/hdb2 and/dev/hdc2. All
- devices must exist and have raid superblock with the same uuid.
-
- If two identity specifiers are used, only devices that match all
- of them are considered, so
-
- array /dev/md2 devices=/dev/hd?2 super-minor=2
-
- will assemble /dev/md2 using all /dev/hd?2 devices which have a
- raid superblock with minor number 2.
-
- --create:
- When listing devices for --create, the word "missing" can be
- used to indicate that the respective slot does not have a
- working drive currently. This is similar to the "failed-disk"
- directive in mkraid/raidtab.
- e.g.
- mdctl --create --level=5 -raid-disks=4 --spare-disks=2
- /dev/md0 /dev/sda /dev/sdb missing /dev/sdc /dev/sdd /dev/sde
-
- will create a raid5 array with the third slot empty, and two
- spares.
-
- By default, raid5 arrays are created with the last slot empty
- and drive listed for the last slot added as a spare. If a
- "missing" slot is given, or if --force is given, then --create
- does exactly what you ask and doesn't try to be clever.
-
-
- --follow / --monitor:
-
- This is a new mode. I couldn't stop my self from picking a name
- starting with F (as current modes start A,B,C,D,E) but I
- relented and provided an alternate name that is somewhat more
- meaningful.
-
- In this mode, mdctl does not exit, but runs continuously and
- periodically polls all the md devices to see if they have had
- any interested state change.
- The changes that it currently notices are:
- Fail - an active disc fails
- FailSpare - a spare, that was presumably being build, fails
- ActiveSpare - a spare becomes active, presumably after a rebuild.
-
- Options:
- --mail mailaddress - send Email on any Fail* event
- --program program - run the program on any event.
- Args are: eventname mddevice subdevice(if-known)
- --delay seconds - change from the default 60second pause
- between polls.
-
- I plan to add functionality to this mode to allow sharing of
- spare drives. If an array is marks "spare-group=fred", and it
- has a failed drive and no spares, and if some other array is
- also "spare-group=fred" and it has no failed drives, but does
- have a spare drive that is big enough, the spare will be moved
- to the first array.
-
- I also have the idea of adding a --grow mode which will re-organise
- the data on an N disk raid0/4/5 array to be on an N+M disk array.
- I have no concrete plans for this though.
-
- I got rid of the "v" in the archive file name, and include the
- version number in the directory created by the archive.
-
- There is now a man page and mdctl.spec (for rpm) thanks to
- Danilo Godec <danci@agenda.si>.
-
- Ofcourse, the man page is now out of date and despite being based on
- the --help output, is not wholy correct. After I get --follow
- working properly, I plan to revise the various documentation and/or
- the code to make sure the two match.
-
+Please see git logs for detailed change log.
+This file just contains highlight.
+
+Changes Prior to release 3.1.1
+ - Multiple fixes for new --grow levels including fixes for
+ serious data corruption problems.
+ - Change default metadata to v1.1
+ - Change default chunk size to 512K
+ - Change default bitmap chunk size to 64Meg
+ - When --re-add is used, don't fall back to
+ --add if --re-add fails as this can destroy data.
+
+Changes Prior to release 3.1
+ - Support --grow to change the layout of RAID4/5/6
+ - Support --grow to change the chunksize of raid 4/5/6
+ - Support --grow to change level from RAID1 -> RAID5 -> RAID6 and
+ back.
+ - Support --grow to reduce the number of devices in RAID4/5/6.
+ - Support restart of these grow options which assembling an array
+ which is partially grown.
+ - Assorted tests of this code, and of different RAID6 layouts.
+
+Changes Prior to release 3.0.3
+ - Improvements for creating arrays giving just a name, like 'foo',
+ rather than the full '/dev/md/foo'.
+ - Improvements for assembling member arrays of containers.
+ - Improvements to test suite
+ - Add option to change increment for RebuildNN messages reported
+ by "mdadm --monitor"
+ - Improvements to mdmon 'hand-over' from initrd to final root.
+ - Handle merging of devices that have left an IMSM array and are
+ being re-incorporated.
+ - Add missing space in "--detail --brief" output.
+
+Changes Prior to release 3.0.2
+ - Fix crash when hosthost is not set, as often happens in
+ early boot.
+
+Changes Prior to release 3.0.1
+ - Fix various segfaults
+ - Fixed for --examine with containers
+ - Lots of other little fixes.
+
+Changes Prior to release 3.0
+ - Support for externally managed metadata, specifically DDF and IMSM.
+ - Depend on udev to create entries in /dev, rather than creating them
+ ourselves.
+ - remove --auto-update-home-hosts
+ - new config file line "auto"
+ - new "<ignore>" and "any" options for "homehost"
+ - numerous bug fixes and minor enhancements.