On Tue, Apr 22, 2014 at 11:42:09AM -0600, Chris Murphy wrote: > > On Apr 21, 2014, at 3:09 PM, Duncan <1i5t5.duncan@cox.net> wrote: > > > Adam Brenner posted on Sun, 20 Apr 2014 21:56:10 -0700 as excerpted: > > > >> So ... BTRFS at this point in time, does not actually "stripe" the data > >> across N number of devices/blocks for aggregated performance increase > >> (both read and write)? > > > > What Chris says is correct, but just in case it's unclear as written, let > > me try a reworded version, perhaps addressing a few uncaught details in > > the process. > > Another likely problem is terminology. It's 2014 and still we don't have consistency in basic RAID terminology. We're functionally in the 19th century uncoordinated disagreement of weights and measures, except maybe worse because we sometimes have multiple words that mean the same thing; as if there were multiple words for the term gram or meter. It's just nonsensical and selfish that this continues to persist across various file system projects. > > It's not immediately obvious to the btrfs newcomer that the md raid chunk isn't the same thing as the btrfs chunk, for example. > > And strip, chunk, stripe unit, and stripe size get used interchangeably to mean the same thing, while just as often stripe size means something different. The best definition I've found so far is IBM's stripe unit definition: "granularity at which data is stored on one drive of the array before subsequent data is stored on the next drive of the array" which is in bytes. So that's the smallest raid unit we find on a drive, therefore it is a base unit in RAID, and yet we have no agreement on what word to use. > > And it's not really like the storage industry trade association, SNIA, who published a dictionary of terms in 2013, really helps in this area. I'll argue they make it worse because they deprecate the term chunk, in favor of the terms strip and stripe element. NO kidding, two terms mean the same thing. Yet strip and stripe are NOT the same thing. > > strip = stripe element > stripe = set of strips > strip size = stripe depth > stripe size = strip size * extents not including parity extents > > Also the units are in blocks (sectors, not fs blocks and not bytes). The terms stripe unit, stripe width, and stride aren't found in the SNIA dictionary at all although they are found as terms in other file system projects. > > So no matter how we look at it, everyone else is doing it wrong. Also not helped by btrfs's co-option of the term "RAID-1" to mean something that's not traditional RAID-1, and (internally) "stripe" and "chunk" to mean things that don't match (I think) any of the definitions above... Hugo. -- === Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk === PGP key: 65E74AC0 from wwwkeys.eu.pgp.net or http://www.carfax.org.uk --- A clear conscience. Where did you get this taste --- for luxuries, Bernard?