From: "Martin K. Petersen" <martin.petersen@oracle.com>
To: linasvepstas@gmail.com
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>,
"Alan Cox" <alan@lxorguk.ukuu.org.uk>,
"John Stoffel" <john@stoffel.org>,
"Alistair John Strachan" <alistair@devzero.co.uk>,
linux-kernel@vger.kernel.org
Subject: Re: amd64 sata_nv (massive) memory corruption
Date: Thu, 07 Aug 2008 12:42:20 -0400 [thread overview]
Message-ID: <yq17iasg4k3.fsf@sermon.lab.mkp.net> (raw)
In-Reply-To: <3ae3aa420808062132x52860092p9dee56705ba99a3@mail.gmail.com> (Linas Vepstas's message of "Wed\, 6 Aug 2008 23\:32\:06 -0500")
>>>>> "Linas" == Linas Vepstas <linasvepstas@gmail.com> writes:
Linas> My problem is that the corruption I see is "silent": so
Linas> redundancy is useless, as I cannot distinguish good blocks from
Linas> bad. I'm running RAID, one of the two disks returns bad data.
Linas> Without checksums, I can't tell which version of a block is the
Linas> good one.
But btrfs can.
Linas> There is also in interesting possibility that offers a middle
Linas> ground between raw performance and safety: instead of verifying
Linas> checksums on *every* read access, it could be enough to verify
Linas> only every so often -- say, only one out of every 10 reads, or
Linas> maybe triggered by a cron job in the middle of the night: turn
Linas> on verification, touch a bunch of files for an hour or two,
Linas> turn off verification before 6AM.
All evidence suggests that scrubbing is a good way to keep your data
healthy.
A common corruption scenario a few years ago was bleed to adjacent
tracks due to a frequently written hot spot on disk. Scrubbing in
RAID arrays helped fix that. Modern drives actually maintain an
internal list of hot spots and will automatically schedule refreshes
of adjacent blocks to prevent bleed.
But there are obviously other corruption scenarios that scrubbing can
help alleviate -- including genuine bit rot on the platter.
Linas> Yes, well, my HBA is soldered onto my MB, and I'm buying $80
Linas> hard drives one at a time at Frye's electronics, so it could be
Linas> 5-10 years before DIX/DIF trickles down to consumer-grade
Linas> electronics. And I don't want to wait 5-10 years ...
I doubt it's going to take *that* long.
Corruption of in-flight data has been a problem for years. And it is
a problem that RAID and FS checksums can't fix.
Oracle has been providing customers with in-flight integrity
protection on high-end arrays for many years using a proprietary
technology called HARD. Array vendors license it from us and HARD is
mandatory in a lot of business and government deployments.
DIF/DIX is our attempt to make integrity protection available on mid-
to low-range equipment. We decided to embrace and extend an existing,
open standard and are working with standards bodies to nudge them in
the right direction in terms of new features. It has taken about two
years from conception to product in a highly conservative, slow-moving
industry.
As as I mentioned earlier, T13 is working on EPP which is essentially
DIF for SATA. The protection format is the same which means we can
prepare one type of integrity information regardless of whether the
target drive is SCSI or SATA.
Once External Path Protection is ratified I'm expecting drives to
appear fairly quickly. The turnaround time should be short as SATA
drive generations don't last nearly as long as SCSI.
Linas> Thus, a "tactical" solution seems to be pure-software
Linas> check-summing in a kernel device-mapper module, performance be
Linas> damned.
What I don't understand is why you are so focused on fixing this at
the RAID level. I think your time would be better spent contributing
to btrfs which gives you checksums and redundancy on consumer grade
hardware today. It's is only a few months away from GA. So why not
implement scrubbing in btrfs instead of spending time on a kludgy
device mapper module with crappy performance?
--
Martin K. Petersen Oracle Linux Engineering
next prev parent reply other threads:[~2008-08-07 16:47 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-01 17:30 Linas Vepstas
2008-08-01 20:51 ` John Stoffel
2008-08-02 3:06 ` Linas Vepstas
2008-08-01 22:19 ` Alistair John Strachan
2008-08-02 2:51 ` Linas Vepstas
2008-08-02 20:09 ` John Stoffel
2008-08-02 22:01 ` Linas Vepstas
2008-08-03 2:41 ` John Stoffel
2008-08-03 22:23 ` Linas Vepstas
2008-08-03 22:16 ` Alan Cox
2008-08-05 17:02 ` Linas Vepstas
2008-08-05 17:21 ` Alan Cox
2008-08-06 21:33 ` Linas Vepstas
2008-08-07 2:59 ` Martin K. Petersen
2008-08-07 4:32 ` Linas Vepstas
2008-08-07 16:42 ` Martin K. Petersen [this message]
2008-08-07 17:23 ` Linas Vepstas
2008-08-07 18:53 ` John Stoffel
2008-08-07 7:45 ` Pavel Machek
2008-08-02 21:55 ` Roger Heflin
[not found] <fa.qB5d+HsAJ6G05jNoeU8Q9GV6Dow@ifi.uio.no>
[not found] ` <fa.fxlDAHxOnGgcBiOH/EOauE67ZPc@ifi.uio.no>
[not found] ` <fa.1WYUmN6FHR5yW+sXoYRFN22Y8S8@ifi.uio.no>
[not found] ` <fa.LAUkvEUlYiF69V/F8F3wigxqH9w@ifi.uio.no>
[not found] ` <fa.mXeFXYNkfZfUYPQcGwzok0IOIfY@ifi.uio.no>
[not found] ` <fa.KjbvCGbUr2JeQTcwA1/sFGIIMik@ifi.uio.no>
2008-08-04 3:22 ` Robert Hancock
2008-08-05 5:29 ` Linas Vepstas
2008-08-05 6:36 ` Robert Hancock
2008-08-05 12:29 ` Alan Cox
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=yq17iasg4k3.fsf@sermon.lab.mkp.net \
--to=martin.petersen@oracle.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=alistair@devzero.co.uk \
--cc=john@stoffel.org \
--cc=linasvepstas@gmail.com \
--cc=linux-kernel@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
Powered by JetHome