]> git.ipfire.org Git - thirdparty/mdadm.git/blame - ChangeLog
mdadm/clustermd_tests: add test case to test grow_resize cluster-raid10
[thirdparty/mdadm.git] / ChangeLog
CommitLineData
6e92d480
N
1Please see git logs for detailed change log.
2This file just contains highlight.
3
6f02172d
N
4Changes Prior to release 3.3
5- Some array reshapes can proceed without needing backup file.
6 This is done by changing the 'data_offset' so we never need to write
7 any data back over where it was before. If there is no "head space"
8 or "tail space" to allow data_offset to change, the old mechanism
9 with a backup file can still be used.
10- RAID10 arrays can be reshaped to change the number of devices,
11 change the chunk size, or change the layout between 'near'
12 and 'offset'.
13 This will always change data_offset, and will fail if there is no
14 room for data_offset to be moved.
15- "--assemble --update=metadata" can convert a 0.90 array to a 1.0 array.
16- bad-block-logs are supported (but not heavily tested yet)
17- "--assemble --update=revert-reshape" can be used to undo a reshape
18 that has just been started but isn't really wanted. This is very
19 new and while it passes basic tests it cannot be guaranteed.
20- improved locking between --incremental and --assemble
21- uses systemd to run "mdmon" if systemd is configured to do that.
22- kernel names of md devices can be non-numeric. e.g. "md_home" rather than
23 "md0". This will probably confuse lots of other tools, so you need to
24 echo CREATE names=yes >> /etc/mdadm.conf
25 or the feature will not be used. (you also need a reasonably new kernel).
26- "--stop" can be given a kernel name instead of a device name. i.e
27 mdadm --stop md4
28 will work even if /dev/md4 doesn't exist.
29- "--detail --export" has some information about the devices in the array
30- --dump and --restore can be used to backup and restore the metadata on an
31 array.
32- Hot-replace is supported with
33 mdadm /dev/mdX --replace /dev/foo
34 and
35 mdadm /dev/mdX --replace /dev/foo --with /dev/bar
36- Config file can be a directory in which case all "*.conf" files are
37 read in lexical order.
38 Default is to read /etc/mdadm.conf and then /etc/mdadm.conf.d
39 Thus
40 echo CREATE name=yes > /etc/mdadm.conf.d/names.conf
41 will also enable the use of named md devices.
42
43- Lots of improvements to DDF support including adding support for
44 RAID10 (thanks Martin Wilck).
45
46Changes Prior to release 3.2.6
47 - There are no real stand-out fixes, just lots of little bits and pieces.
48
49Changes Prior to release 3.2.5
50 - This release primarily fixes a serious regression in 3.2.4.
51 This regression does *not* cause any risk to data. It simply
52 means that adding a device with "--add" would sometime fail
53 when it should not.
54
55 - The fix also includes a couple of minor fixes such as making
56 the "--layout=preserve" option to "--grow" work again.
57
58
59Changes Prior to release 3.2.4
60"--oneline" log of changes is below. Some notable ones are:
61
62 - --offroot argument to improve interactions between mdmon and initrd
63 - --prefer argument to select which /dev names to display in some
64 circumstances.
65 - relax restructions on when "--add" will be allowed
66 - Fix bug with adding write-intent-bitmap to active array
67 - Now defaults to "/run/mdadm" for storing run-time files.
68
69Changes Prior to release 3.2.3
70 - The largest single area of change is support for reshape of Intel
71 IMSM arrays (OnLine Capacity Explansion and Level Migration).
72 - Among other fixes, this now has a better chance of surviving if a
73 device fails during reshape.
74
75Changes Prior to release 3.2.2
76 - reshaping IMSM (Intel metadata) arrays is no longer 'experimental',
77 it should work properly and be largely compatible with IMSM drivers in
78 other platforms.
79 - --assume-clean can be used with --grow --size to avoid resyncing the
80 new part of the array. This is only support with very new kernels.
81 - RAID0 arrays can have chunksize which is not a power of 2. This has been
82 supported in the kernel for a while but is only now supprted by
83 mdadm.
84
85 - A new tool 'raid6check' is available which can check a RAID6 array,
86 or part of it, and report which device is most inconsistent with the
87 others if any stripe is inconsistent. This is still under development
88 and does not have a man page yet. If anyone tries it out and has any
89 questions or experience to report, they would be most welcome on
90 linux-raid@vger.kernel.org.
91
92Changes Prior to release 3.2.1
93 - policy framework
94 Policy can be expressed for moving spare devices between arrays, and
95 for how to handle hot-plugged devices. This policy can be different
96 for devices plugged in to different controllers etc.
97 This, for example, allows a configuration where when a device is plugged
98 in it is immediately included in an md array as a hot spare and
99 possibly starts recovery immediately if an array is degraded.
100
101 - some understanding of mbr and gpt paritition tables
102 This is primarly to support the new hot-plug support. If a
103 device is plugged in and policy suggests it should have a partition table,
104 the partition table will be copied from a suitably similar device, and
105 then the partitions will hot-plug and can then be added to md arrays.
106
107 - "--incremental --remove" can remember where a device was removed from
108 so if a device gets plugged back in the same place, special policy applies
109 to it, allowing it to be included in an array even if a general hotplug
110 will not be included.
111
112 - enhanced reshape options, including growing a RAID0 by converting to RAID4,
113 restriping, and converting back. Also convertions between RAID0 and
114 RAID10 and between RAID1 and RAID10 are possible (with a suitably recent
115 kernel).
116
117 - spare migration for IMSM arrays.
118 Spare migration can now work across 'containers' using non-native metadata
119 and specifically Intel's IMSM arrays support spare migrations.
120
121 - OLCE and level migration for Intel IMSM arrays.
122 OnLine Capacity Expansion and level migration (e.g. RAID0 -> RAID5) is
123 supported for Intel Matrix Storage Manager arrays.
124 This support is currently 'experimental' for technical reasons. It can
125 be enabled with "export MDADM_EXPERIMENTAL=1"
126
127 - avoid including wayward devices
128 If you split a RAID1, mount the two halves as two separate degraded RAID1s,
129 and then later bring the two back together, it is possible that the md
130 metadata won't properly show that one must over-ride the other.
131 mdadm now does extra checking to detect this possibilty and avoid
132 potentially corrupting data.
133
134 - remove any possible confusion between similar options.
135 e.g. --brief and --bitmap were mapped to 'b' and mdadm wouldn't
136 notice if one was used where the other was expected.
137
138 - allow K,M,G suffixes on chunk sizes
139
140Changes Prior to release 3.2
141 - By far the most significant change in this release related to the
142 management of reshaping arrays. This code has been substantially
143 re-written so that it can work with 'externally managed metadata' -
144 Intel's IMSM in particular. We now support level migration and
145 OnLine Capacity Expansion on these arrays.
146 - Policy framework.
147 Various policy statements can be made in the mdadm.conf to guide
148 the behaviour of mdadm, particular with regards to how new devices
149 are treated by "mdadm -I".
150 Depending on the 'action' associated with a device (identified by
151 its 'path') such need devices can be automatically re-added to and
152 existing array that they previously fell out off, or automatically
153 added as a spare if they appear to contain no data.
154
155 - mdadm now has a limited understanding of partition tables. This
156 allows the policy framework to make decisions about partitioned
157 devices as well.
158
159 - --incremental --remove can be told what --path the device was on,
160 and this info will be recorded so that another device appearing at
161 the same physical location can be preferentially added to the same
162 array (provides the spare-same-slot action policy applied to the
163 path).
164
165 - A new flags "--invalid-backup" flag is available in --assemble
166 mode. This can be used to re-assemble an array which was stopping
167 in the middle of a reshape, and for which the 'backup file' is no
168 longer available or is corrupted. The array may have some
169 corruption in it at the point where reshape was up to, but at least
170 the rest of the array will become available.
171
172
173 - Various internal restructuring - more is needed.
174
175Changes Prior to release 3.1.5
176 - Fixes for v1.x metadata on big-endian machines.
177 - man page improvements
178 - Improve '--detail --export' when run on partitions of an md array.
179 - Fix regression with removing 'failed' or 'detached' devices.
180 - Fixes for "--assemble --force" in various unusual cases.
181 - Allow '-Y' to mean --export. This was documented but not implemented.
182 - Various fixed for handling 'ddf' metadata. This is now more reliable
183 but could benefit from more interoperability testing.
184 - Correctly list subarrays of a container in "--detail" output.
185 - Improve checks on whether the requested number of devices is supported
186 by the metadata - both for --create and --grow.
187 - Don't remove partitions from a device that is being included in an
188 array until we are fully committed to including it.
189 - Allow "--assemble --update=no-bitmap" so an array with a corrupt
190 bitmap can still be assembled.
191 - Don't allow --add to succeed if it looks like a "--re-add" is probably
192 wanted, but cannot succeed. This avoids inadvertently turning
193 devices into spares when an array is failed.
194
972ee725
N
195Changes Prior to release 3.1.4
196 Two fixes related to configs that aren't using udev:
197 - Don't remove md devices which 'standard' names on --stop
198 - Allow dev_open to work on read-only /dev
199 And fixed regressions:
200 - Allow --incremental to add spares to an array
201 - Accept --no-degraded as a deprecated option rather than
202 throwing an error
6f02172d 203 - Return correct success status when --incrmental assembling
972ee725
N
204 a container which does not yet have enough devices.
205 - Don't link mdadm with pthreads, only mdmon needs it.
206 - Fix compiler warning due to bad use of snprintf
207
850a3178
N
208Changes Prior to release 3.1.3
209 - mapfile now lives in a fixed location which default to
210 /dev/.mdadm/map but can be changed at compile time. This
211 location is choses and most distros provide it during early
212 boot and preserve it through. As long a /dev exists and is
213 writable, /dev/.mdadm will be created.
214 Other files file communication with mdmon live here too.
215 This fixes a bug reported by Debian and Gentoo users where
216 udev would spin in early-boot.
217 - IMSM and DDF metadata will not be recognised on partitions
218 as they should only be used on whole-disks.
219 - Various overflows causes by 2G drives have been addressed.
220 - A subarray of an IMSM contain can now be killed with
221 --kill-subarray. Also subarrays can be renamed with
222 --update-subarray
223 - -If (or --incremental --fail) can be used from udev to
224 fail and remove from all arrays a device which has been
225 unplugged from the system. i.e. hot-unplug-support.
226 - "mdadm /dev/mdX --re-add missing" will look for any device
227 that looks like it should be a member of /dev/mdX but isn't
228 and will automatically --re-add it
229 - Now compile with -Wextra to get extra warnings.
230 - Lots of minor bug fixes, documentation improvements, etcc
231
232Changes Prior to release 3.1.2
233 - The default metadata has change again (sorry about that).
234 It is now v1.2 and will hopefully stay that way. It turned
6f02172d 235 out there with boot-block issues with v1.1 which make it
850a3178
N
236 unsuitable for a default, though in many cases it is still
237 suitable to use.
238 - Stopping a container is not permitted when members are still
239 active
240 - Add 'homehost' to the valid words for the "AUTO" config file
241 line. When followed by "-all", this causes mdadm to
242 auto-assemble any array belonging to this host, but not
243 auto-assemble anything else.
244 - Fix some bugs with "--grow --chunksize=" for changing chunksize.
245 - VAR_RUN can be easily changed at compile time just like ALT_RUN.
246 This gives distros more flexability in how to manage the
247 pid and sock files that mdmon needs.
248 - Various mdmon fixes
249 - Alway make bitmap 4K-aligned if at all possible.
250 - If mdadm.conf lists arrays which have inter-dependencies,
251 the previously had to be listed in the "right" order. Now
252 any order should work.
253 - Fix --force assembly of v1.x arrays which are in the process
254 of recovering.
255 - Add section on 'scrubbing' to 'md' man page.
256 - Various command-line-option parsing improvements.
257 - ... and lots of other bug fixes.
6f02172d 258
40bc78f5
N
259Changes Prior to release 3.1.1
260 - Multiple fixes for new --grow levels including fixes for
261 serious data corruption problems.
262 - Change default metadata to v1.1
263 - Change default chunk size to 512K
264 - Change default bitmap chunk size to 64Meg
265 - When --re-add is used, don't fall back to
266 --add if --re-add fails as this can destroy data.
267
7f0066ba
N
268Changes Prior to release 3.1
269 - Support --grow to change the layout of RAID4/5/6
270 - Support --grow to change the chunksize of raid 4/5/6
271 - Support --grow to change level from RAID1 -> RAID5 -> RAID6 and
272 back.
273 - Support --grow to reduce the number of devices in RAID4/5/6.
6f02172d 274 - Support restart of these grow options which assembling an array
7f0066ba
N
275 which is partially grown.
276 - Assorted tests of this code, and of different RAID6 layouts.
6f02172d 277
d28c1a73
N
278Changes Prior to release 3.0.3
279 - Improvements for creating arrays giving just a name, like 'foo',
280 rather than the full '/dev/md/foo'.
281 - Improvements for assembling member arrays of containers.
282 - Improvements to test suite
283 - Add option to change increment for RebuildNN messages reported
284 by "mdadm --monitor"
285 - Improvements to mdmon 'hand-over' from initrd to final root.
286 - Handle merging of devices that have left an IMSM array and are
287 being re-incorporated.
288 - Add missing space in "--detail --brief" output.
6f02172d 289
58ad57f6
N
290Changes Prior to release 3.0.2
291 - Fix crash when hosthost is not set, as often happens in
292 early boot.
293
d8419fe9
N
294Changes Prior to release 3.0.1
295 - Fix various segfaults
296 - Fixed for --examine with containers
297 - Lots of other little fixes.
6f02172d 298
d8419fe9 299Changes Prior to release 3.0
6e92d480
N
300 - Support for externally managed metadata, specifically DDF and IMSM.
301 - Depend on udev to create entries in /dev, rather than creating them
302 ourselves.
303 - remove --auto-update-home-hosts
304 - new config file line "auto"
305 - new "<ignore>" and "any" options for "homehost"
306 - numerous bug fixes and minor enhancements.