From: Joachim Otahal <Jou@gmx.net>
To: linux-raid@vger.kernel.org
Subject: md devices: Suggestion for in place time and checksum within the RAID
Date: Sun, 14 Mar 2010 00:00:37 +0100 [thread overview]
Message-ID: <4B9C1915.9080009@gmx.net> (raw)
Current Situation in RAID:
If a drive fails silently and is giving out wrong data instead of read
errors there is no way to detect that corruption (no fun, I had that a
few times already).
Even in RAID1 with three drives there is no "two over three" voting
mechanism.
A workaround for that problem would be:
Adding one sector to each chunk to store the time (in nanoseconds
resolution) + CRC or ECC value of the whole stripe, making it possible
to see and handle such errors below the filesystem level.
Time in nanoseconds only to differ between those many writes that
actually happen, it does not really matter how precise the time actually
is, just every stripe update should have a different time value from the
previous update.
It would be an easy way to know which chunks are actually the latest (or
which contain correct data in case one out of three+ chunks has a wrong
time upon reading). A random uniqe ID or counter could also do the job
of the time value if anyone prefers, but I doubt since the collision
possibility would be higher.
The use of CRC or ECC or whatever hash should be obvious, their
existence would make it easy to detect drive degration, even in a RAID0
or LINEAR.
Bad side: Adding this might break the on the fly raid expansion
capabilities. A workaround might be using 8K(+ one sector) chunks by
default upon creation or the need to specify the chunk size on creation
(like 8k+1 sector) if future expansion capabilities are actually wanted
with RAID0/4/5/6, but that is a different issue anyway.
Question:
Will RAID4/5/6 in the future use the parity upon read too? Currently it
would not detect wrong data reads from the parity chunk, resulting in a
disaster when it is actually needed.
Do those plans already exist and my post was completely useless?
Sorry that I cannot give patches, my last kernel patch + compile was
2.2.26, since then I never compiled a kernel.
Joachim Otahal
next reply other threads:[~2010-03-13 23:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-13 23:00 Joachim Otahal [this message]
2010-03-14 0:04 ` md devices: Suggestion for in place time and checksum within the RAID Bill Davidsen
2010-03-14 1:25 ` Joachim Otahal
2010-03-14 10:20 ` Keld Simonsen
2010-03-14 11:58 ` Joachim Otahal
2010-03-14 13:03 ` Keld Simonsen
2010-03-14 14:00 ` Joachim Otahal
2010-03-15 21:28 ` Joachim Otahal
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=4B9C1915.9080009@gmx.net \
--to=jou@gmx.net \
--cc=linux-raid@vger.kernel.org \
/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).