From b9d77223eb68a211410131b5b0895c547a6d5734 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Tue, 10 Mar 2009 16:59:57 +1100 Subject: [PATCH] Release mdadm-3.0-devel3 --- ANNOUNCE-3.0-devel3 | 113 ++++++++++++++++++++++++++++++++++++++++++++ ReadMe.c | 2 +- inventory | 10 ++++ makedist | 7 ++- mdadm.8 | 2 +- mdadm.spec | 2 +- mdassemble.8 | 2 +- mdmon.8 | 2 +- super-intel.c | 2 +- 9 files changed, 135 insertions(+), 7 deletions(-) create mode 100644 ANNOUNCE-3.0-devel3 diff --git a/ANNOUNCE-3.0-devel3 b/ANNOUNCE-3.0-devel3 new file mode 100644 index 00000000..078be07b --- /dev/null +++ b/ANNOUNCE-3.0-devel3 @@ -0,0 +1,113 @@ +Subject: ANNOUNCE: mdadm 3.0-devel3 - A tool for managing Soft RAID under Linux + +I am pleased to announce the availability of + mdadm version 3.0-devel3 + +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 should be used with +caution, though it is believed to be close to release-candidate stage. + +There have been numerous improvements and additions since -devel2. +I think we are close to a release of 3.0. + +I need to add lots of tests to the test suite to test the new +functionality. And I need to review the man pages. + +After that I will release -rc1 followed by -final. + + +The following is the same introduction to 3.x as appeared in +previous announcements. + + +Any testing and feedback will be greatly appreciated. + +NeilBrown 10th March 2009 + + +===================================================== + +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. + +Also the approach to device names has changed significantly. + +If udev is installed on the system, mdadm will not create any devices +in /dev. Rather it allows udev to manage those devices. For this to work +as expected, the included udev rules file should be installed. + +If udev is not install, mdadm will still create devices and symlinks +as required, and will also remove them when the array is stopped. + +mdadm now requires all devices which do not have a standard name (mdX +or md_dX) to live in the directory /dev/md/. Names in this directory +will always be created as symlinks back to the standard name in /dev. + +The man pages contain some information about the new externally managed +metadata. However see below for a more condensed overview. + +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] + +To 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. diff --git a/ReadMe.c b/ReadMe.c index dd53c48f..d0d762e3 100644 --- a/ReadMe.c +++ b/ReadMe.c @@ -24,7 +24,7 @@ #include "mdadm.h" -char Version[] = Name " - v3.0-devel2 - 5th November 2008\n"; +char Version[] = Name " - v3.0-devel3 - 10th March 2009\n"; /* * File: ReadMe.c diff --git a/inventory b/inventory index f52ec025..0c4a597b 100755 --- a/inventory +++ b/inventory @@ -26,6 +26,7 @@ ANNOUNCE-2.6.8 ANNOUNCE-2.6.9 ANNOUNCE-3.0-devel1 ANNOUNCE-3.0-devel2 +ANNOUNCE-3.0-devel3 Assemble.c bitmap.c bitmap.h @@ -66,6 +67,7 @@ mdadm.h mdadm.spec mdassemble.8 mdassemble.c +mdmon.8 mdmon.c mdmon.h mdopen.c @@ -79,6 +81,10 @@ monitor.c Monitor.c msg.c msg.h +platform-intel.c +platform-intel.h +probe_roms.c +probe_roms.h pwgr.c Query.c raid5extend.c @@ -139,7 +145,11 @@ tests/07autoassemble tests/07autodetect tests/07reshape5intr tests/07testreshape5 +tests/08imsm-overlap +tests/09imsm-create-fail-rebuild tests/check +tests/env-08imsm-overlap +tests/env-09imsm-create-fail-rebuild tests/testdev tests/ToTest TODO diff --git a/makedist b/makedist index 7adbd7f2..03ec5fc9 100755 --- a/makedist +++ b/makedist @@ -16,7 +16,12 @@ set `grep '^char Version' ReadMe.c ` version=`echo $7 | sed 's/v//'` grep "^.TH MDADM 8 .. v$version" mdadm.8 > /dev/null 2>&1 || { - echo mdadm.8 does not mention verion $version. + echo mdadm.8 does not mention version $version. + exit 1 + } +grep "^.TH MDMON 8 .. v$version" mdmon.8 > /dev/null 2>&1 || + { + echo mdmon.8 does not mention version $version. exit 1 } rpmv=`echo $version | tr - _` diff --git a/mdadm.8 b/mdadm.8 index 1b9071f8..064d70a0 100644 --- a/mdadm.8 +++ b/mdadm.8 @@ -5,7 +5,7 @@ .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" See file COPYING in distribution for details. -.TH MDADM 8 "" v3.0-devel2 +.TH MDADM 8 "" v3.0-devel3 .SH NAME mdadm \- manage MD devices .I aka diff --git a/mdadm.spec b/mdadm.spec index c290b4e3..ea5875cf 100644 --- a/mdadm.spec +++ b/mdadm.spec @@ -1,6 +1,6 @@ Summary: mdadm is used for controlling Linux md devices (aka RAID arrays) Name: mdadm -Version: 3.0_devel2 +Version: 3.0_devel3 Release: 1 Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tgz URL: http://neil.brown.name/blog/mdadm diff --git a/mdassemble.8 b/mdassemble.8 index a0d07bb6..adae918f 100644 --- a/mdassemble.8 +++ b/mdassemble.8 @@ -1,5 +1,5 @@ .\" -*- nroff -*- -.TH MDASSEMBLE 8 "" v3.0-devel2 +.TH MDASSEMBLE 8 "" v3.0-devel3 .SH NAME mdassemble \- assemble MD devices .I aka diff --git a/mdmon.8 b/mdmon.8 index 2cdf145d..62d9f2ac 100644 --- a/mdmon.8 +++ b/mdmon.8 @@ -1,5 +1,5 @@ .\" See file COPYING in distribution for details. -.TH MDMON 8 "" v3.0-devel2 +.TH MDMON 8 "" v3.0-devel3 .SH NAME mdmon \- monitor MD external metadata arrays diff --git a/super-intel.c b/super-intel.c index 9c4f0eb5..b47371ee 100644 --- a/super-intel.c +++ b/super-intel.c @@ -2830,7 +2830,7 @@ static unsigned long long merge_extents(struct intel_super *super, int sum_exten int i, j; int start_extent; unsigned long long pos; - unsigned long long start; + unsigned long long start = 0; unsigned long long maxsize; unsigned long reserve; -- 2.39.2