How does LSI MegaRAID actually lay out RAID10 sets?

5,064

LSI claim that their approach to RAID 10 differs from the standard definition because they follow the SNIA specification.

With MegaRAID RAID 1 can consist of from two drives (the more traditional definition) to up to sixteen drives. MegaRAID RAID 1 must be an even number of drives. With MegaRAID 1, if more than two drives are in the Virtual Drive (VD), then the VD consists of striped mirrored pairs. In other words, what traditionally would be considered RAID 10 (striped mirror pairs) is reported by MegaRAID as RAID 1.

With MegaRAID RAID 10, instead of the traditional method of having striped mirrored pairs, MegaRAID uses SNIA PRL=11, RLQ=0 For example, while a traditional eight drive RAID 10 would consist of eight mirrored pairs striped together, MegaRAID 'RAID 10' is actually four drives in a traditional RAID 10 span (two mirrored pairs striped) in a span striped with another four drives of striped mirrored pairs. Up to eight of these spans are supported.

Which means that if you want RAID10, choose what LSI labels RAID1. What LSI labels as RAID10 is what might be better referred to as RAID100 or RAID 1+0+0.

Share:
5,064

Related videos on Youtube

wfaulk
Author by

wfaulk

Unix admin since '96 Network admin since '97 Jack-of-All-Trades since '91 Computers I've owned over the years: TI 99/4A Apple //c homebuilt PC-compatible 8088 Gateway 2000 486SX-25 homebuilt Pentium II Sun SparcStation 1+ Sun Enterprise 2 WinBook XL2 Apple Power Macintosh G3 Minitower IBM Netfinity 3000 homebuilt Intel Pentium → AMD K6-2 Sun Ultra 80 SGI Octane SGI O2 Apple iBook G3 (Graphite) Sony Vaio PCG-Z1WA laptop Apple Mac Mini G4 Apple MacBook Pro 17 Apple Mac Mini Intel Dell Poweredge T610

Updated on September 18, 2022

Comments

  • wfaulk
    wfaulk almost 2 years

    I'm trying to set up a RAID10 set on an LSI MegaRAID controller. It is unclear to me how the RAID controller will actually lay out the RAID set on the physical drives.

    Part of the problem is that MegaRAID seems to use terms very inconsistently; the same idea often has multiple terms, and it seems as if sometimes they use the same term to refer to multiple ideas. I'm going to try to use the terms that the MegaCli command seems to use most frequently.

    MegaRAID requires that there be two to eight arrays within a RAID10 set. Each array must contain physical drives in multiples of two. Each array in the RAID10 set must have the same number of physical drives.

    Is each array a RAID10 set, and then the arrays are joined together? If so, does the fact that the arrays have to be the same size imply that the arrays are being striped? If so, given that each array is striped, and then there's an additional layer of striping on top of that, should I be concerned about that redundancy in regards to performance? (Or would it be a good thing?)

    If each array is a RAID10 set, though, why does MegaRAID require that you have at least two of them?

    If each array is not a RAID10 set, why does it require that arrays have physical drives in multiples of two?

    In the documentation, it refers to arrays as spans, which it elsewhere defines like this:

    Disk spanning allows multiple drives to function like one big drive. Spanning overcomes lack of disk space and simplifies storage management by combining existing resources or adding relatively inexpensive resources. For example, four 20 GB drives can be combined to appear to the operating system as a single 80 GB drive. Spanning alone does not provide reliability or performance enhancements. Spanned virtual drives must have the same stripe size and must be contiguous.

    Which, to me, implies concatenation, or, at best, striping. Let's be generous and call it RAID0.

    So if I have to define two arrays, and arrays are spans, and spans are RAID0, then I'm defining two RAID0 sets. And if I have to define two of them, it'd make sense that it's mirroring those. But that would be a RAID1 of two RAID0s, or RAID0+1, which is bad.

    I'd expect, then, that if I defined three arrays, that would be creating a three-way mirror of RAID0 sets, but if I actually do that, the logical drive still has half the capacity of all the drives in total, not a third. So that conclusion doesn't make sense, either.

    The problem is that I have 18 drives I want in a RAID10 set. In every other RAID system I've used, I'd just create 9 two-drive mirrors and then stripe them, but I can't do that with MegaRAID. Because there have to be between two and eight arrays, and each array must have an even number of drives, the only config I can come up with that works is three arrays of six drives each, but I just feel strange doing that without having a better notion of how those disks are actually going to be laid out.

    Am I overthinking this? Should I just let MegaRAID do its thing and just hope that the drives are laid out optimally?

  • wfaulk
    wfaulk over 9 years
    I don't know what to say other than that this answer doesn't match the evidence. It is not required that there be only two drives in an "array". I can put more in.
  • wfaulk
    wfaulk over 9 years
    As always, ewwhite, you rock.
  • wfaulk
    wfaulk over 9 years
    It's interesting to note that the SNIA specification for what LSI calls RAID10 is referred to by SNIA as "RAID-1E Integrated Adjacent Stripe Mirroring", SNIA's definition of RAID1 is the usual definition of simple unstriped mirroring, and SNIA has nothing called "RAID10". (What is normally called RAID10 is implemented by SNIA as a "secondary RAID level".)
  • etagenklo
    etagenklo over 9 years
    Ok, then LSI's documentation seems to be wrong (or it's for a different MegaRaid version. hwraid.le-vert.net/raw-attachment/wiki/LSIMegaRAIDSAS/…
  • wfaulk
    wfaulk over 9 years
    I think both of those things are true. The version you linked to is 7 years old, and the current documentation is also either incomplete, unclear, or inaccurate, based on the link ewwhite provided in his answer.