Subject: ANNOUNCE: mdadm 3.0-devel1 - A tool for managing Soft RAID under Linux I am pleased to announce the availability of mdadm version 3.0-devel1 It is available at the usual places: countrycode=xx. http://www.${countrycode}kernel.org/pub/linux/utils/raid/mdadm/ and via git at git://neil.brown.name/mdadm http://neil.brown.name/git?p=mdadm Note that this is a "devel" release. It is not intended for production use yet, but rather for testing and ongoing development. The significant change which justifies the new major version number is that mdadm can now handle metadata updates entirely in userspace. This allows mdadm to support metadata formats that the kernel knows nothing about. Currently two such metadata formats are supported: - DDF - The SNIA standard format - Intel Matrix - The metadata used by recent Intel ICH controlers. The manual pages have not yet been updated, but here is a brief outline. Externally managed metadata introduces the concept of a 'container'. A container is a collection of (normally) physical devices which have a common set of metadata. A container is assembled as an md array, but is left 'inactive'. A container can contain one or more data arrays. These are composed from slices (partitions?) of various devices in the container. For example, a 5 devices DDF set can container a RAID1 using the first half of two devices, a RAID0 using the first half of the remain 3 devices, and a RAID5 over thte second half of all 5 devices. A container can be created with mdadm --create /dev/md0 -e ddf -n5 /dev/sd[abcde] or "-e imsm" to use the Intel Matrix Storage Manager. An array can be created within a container either by giving the container name and the only member: mdadm -C /dev/md1 --level raid1 -n 2 /dev/md0 or by listing the component devices mdadm -C /dev/md2 --level raid0 -n 3 /dev/sd[cde] The assemble a container, it is easiest just to pass each device in turn to mdadm -I for i in /dev/sd[abcde] do mdadm -I $i done This will assemble the container and the components. Alternately the container can be assembled explicitly mdadm -A /dev/md0 /dev/sd[abcde] Then the components can all be assembled with mdadm -I /dev/md0 For each container, mdadm will start a program called "mdmon" which will monitor the array and effect any metadata updates needed. The array is initially assembled readonly. It is up to "mdmon" to mark the metadata as 'dirty' and which the array to 'read-write'. The version 0.90 and 1.x metadata formats supported by previous versions for mdadm are still supported and the kernel still performs the same updates it use to. The new 'mdmon' approach is only used for newly introduced metadata types. Any testing and feedback will be greatly appreciated. NeilBrown 18th September 2008