Re: Experiences with BTRFS -- is it mature enough for enterprise use?
On 01/02/18 02:29, email@example.com wrote:
On Mon, Jan 01, 2018 at 06:01:20PM -0800, David Christensen wrote:
On 12/31/17 14:45, Sven Hartge wrote:
David Christensen <firstname.lastname@example.org> wrote:
$ man 4 md
SCRUBBING AND MISMATCHES
If check was used, then no action is taken to handle the mismatch, it
is simply recorded. If repair was used, then a mismatch will be
repaired in the same way that resync repairs arrays. For RAID5/RAID6
new parity blocks are written. For RAID1/RAID10, all but one block are
overwritten with the content of that one block.
I wonder how md picks "that one block"?
Only if one drives reports an error. Then data from the good block is
used to overwrite the bad block, hoping the drive remaps the sector and
everything is fine again.
If both devices report no error but differing data has been read,
MD-RAID1 can't know which block is good.
MD-RAID5/6 could calculate all parity combinations and use the data a
majority agrees upon. (I don't know if it does it, though).
I tried looking at the Kernel RAID code, but I must admit: it is all
Esperanto to me, the code is far too low level for me to understand.
That's why "programming systems product"  includes architectural,
functional, design, construction, etc., documentation.
FreeBSD is better is this regard .
Look for documentation in the right shelf. Hint: it's called
Documentation (there are books in there, not nuts and bolts).
As an example: I'm on 4.9.0 (plus some assorted Debian-specific
patches). If I don't want to download the whole kaboodle (although
that would be a good idea), I might be tempted to use the nice
gitweb interface at git.kernel.org:
The "tree" view (provided above for your convenience, but you
mith be able to click your way through), you might perhaps find
docs in or around Documentation/md.txt.
Yes, I saw that when STFW. It starts with:
Boot time assembly of RAID arrays
You can boot with your md device with the following kernel command
for old raid arrays without persistent superblocks:
md=<md device no.>,<raid level>,<chunk size factor>,<fault
That is the crumb under the elephants little toe on its front left foot.
I am looking for a narrative that starts with "We are talking about an
creature called an 'Elephant'. This is what the whole animal looks
like" (and presents a picture). It should proceed to divide and expand
that narrative, paying attention to conceptual dependencies, with
increasing detail (more pictures and diagrams), down to file structures,
data structures, and algorithms -- e.g. explains the "what" in proper
English using computer science terms. And, most importantly: it must
also explain the "why" at every level.
Reading source only helps if you have a rough idea on what's going
"Show me your algorithms, and I will be confused. Show me your data
structures, and your algorithms will be obvious."
-- Edsger W. Dijkstra (?) (I can't can't a find citation)