Re: DDF / RAID10 patch series for mdadm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri,  1 Mar 2013 23:28:21 +0100 mwilck@xxxxxxxx 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: signature.asc
Description: PGP signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux