From: NeilBrown <neilb@suse.de>
To: mwilck@arcor.de
Cc: linux-raid@vger.kernel.org
Subject: Re: DDF / RAID10 patch series for mdadm
Date: Mon, 4 Mar 2013 16:22:54 +1100 [thread overview]
Message-ID: <20130304162254.3ce38218@notabene.brown> (raw)
In-Reply-To: <1362176913-6804-1-git-send-email-mwilck@arcor.de>
[-- Attachment #1: Type: text/plain, Size: 4379 bytes --]
On Fri, 1 Mar 2013 23:28:21 +0100 mwilck@arcor.de wrote:
> Hello Neil, hello everybody,
>
> I am working on improved DDF support in mdadm. I would be grateful
> for a review on this patch series. The main new feature is support for
> RAID 10 in DDF, such that md is able to interoperate with an LSI
> Megaraid Software RAID driver on a RAID10 array.
>
> The DDF/RAID10 support is not feature complete, but usable. Both
> assembly and incremental assembly work as expected. I verified that
> the 2+2 layout maps cleanly to that used by the LSI SW RAID stack. Meta
> data are saved cleanly and interpreted correctly by the LSI stack.
> What is yet missing is code to handle disk failures and additions.
> I would appreciate some guidance in that area, in particular how to test it.
>
> In the DDF Spec, RAID10 is a special case of the broad "secondary RAID
> level" concept. The intersection between DDF RAID 10 and md RAID 10 is
> tiny - just the "near" layout with an even number of disks. Fortunately this
> is also the only type of "secondary RAID" supported by my LSI stack,
> and generally the most common multilevel RAID, AFAICT.
>
> The DDF 2nd level RAID concept would be matched more closely by a
> different approach where md only creates the BVDs and the secondary
> RAID is implemented with the device mapper on top of it. But I opted
> for the direct mapping of DDF RAID10 to md RAID10 for several reasons:
> 1) dm wouldn't handle the generic "striped" and "spanned" secondary
> levels out-of-the box, either. 2) I wanted to take full benefit of the
> advanced features and performance of md RAID10 (it actually performed
> better than the LSI stack in a few simple benchmarks). 3) It is
> simpler to handle this way. 4) This is non-exclusive, code could still
> be added later to use dm for more "exotic" secondary DDF RAID levels.
>
> The series stars out with 3 patches I already submitted a while
> ago. They fix interoperability related to meta data handling, in particular
> DDF header locations and Sequential numbers. They are unrelated to RAID10.
>
> Patch 4..9 introduce support for DDF RAID 10. The current mdadm
> implementation of DDF ignores secondary level completely and stores
> only the BVD information in the super block, one BVD for every DDF
> "Virtual disk configuration record". I had to add an additional data
> structure to hold information about the "other BVDs" belonging to a
> second level RAID set. The most intersting stuff happens in
> container_content_ddf, which translates the DDF RAID 10 setup into md
> structures.
>
> Patch 10 adds some missing sanity checks in compare_super_ddf. Patch 11
> extends compare_super_ddf() such that information from the new disk that
> is missing in the current superblock is added. This fixes a problem where
> mdmon would save updated meta data only on those disks that were present
> while mdadm was started, not on disks added later.
>
> Finally, patch 12 is a small improvement to Detail() that results in
> better output of mdadm -D for complex DDF setups.
>
> Regards
> Martin
>
> Martin Wilck (12):
> DDF: cleanly save the secondary DDF structure
> DDF: use existing locations for primary and secondary DDF structure
> DDF: increase seq number when writing meta data
> DDF: added other_bvd to struct vcl
> DDF: load_ddf_local: store VD conf for other BVDs
> DDF: container_content_ddf: change array disk search loop
> DDF: container_content_ddf: check for secondary RAID
> DDF: container_content_ddf: handle RAID layout for RAID10
> DDF: __write_init_super_ddf: use correct VD conf
> DDF: add sanity checks in compare_super_ddf
> DDF: compare_super_ddf: merge local info of other superblock
> Detail.c: call load_container for container subarrays
>
> Detail.c | 10 +-
> super-ddf.c | 556 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
> 2 files changed, 484 insertions(+), 82 deletions(-)
>
Wow! Thanks for these! Happy to see DDF getting some attention.
I've applied all the patches (with a few minor cosmetic changes). I haven't
studied them all very closely, but I what I did examine looked good.
If you could add some tests to the 'tests' directory to make sure that
ddf/raid10 keeps working that would be great.
Thanks,
NeilBrown
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2013-03-04 5:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-01 22:28 DDF / RAID10 patch series for mdadm mwilck
2013-03-01 22:28 ` [PATCH 01/12] DDF: cleanly save the secondary DDF structure mwilck
2013-03-01 22:28 ` [PATCH 02/12] DDF: use existing locations for primary and " mwilck
2013-03-01 22:28 ` [PATCH 03/12] DDF: increase seq number when writing meta data mwilck
2013-03-01 22:28 ` [PATCH 04/12] DDF: added other_bvd to struct vcl mwilck
2013-03-01 22:28 ` [PATCH 05/12] DDF: load_ddf_local: store VD conf for other BVDs mwilck
2013-03-01 22:28 ` [PATCH 06/12] DDF: container_content_ddf: change array disk search loop mwilck
2013-03-01 22:28 ` [PATCH 07/12] DDF: container_content_ddf: check for secondary RAID mwilck
2013-03-01 22:28 ` [PATCH 08/12] DDF: container_content_ddf: handle RAID layout for RAID10 mwilck
2013-03-01 22:28 ` [PATCH 09/12] DDF: __write_init_super_ddf: use correct VD conf mwilck
2013-03-01 22:28 ` [PATCH 10/12] DDF: add sanity checks in compare_super_ddf mwilck
2013-03-01 22:28 ` [PATCH 11/12] DDF: compare_super_ddf: merge local info of other superblock mwilck
2013-03-01 22:28 ` [PATCH 12/12] Detail.c: call load_container for container subarrays mwilck
2013-03-02 7:47 ` Paul Menzel
2013-03-04 5:22 ` NeilBrown [this message]
2013-03-06 18:26 ` DDF / RAID10 patch series for mdadm Martin Wilck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130304162254.3ce38218@notabene.brown \
--to=neilb@suse.de \
--cc=linux-raid@vger.kernel.org \
--cc=mwilck@arcor.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).