From: Gordon Henderson <gordon@drogon.net>
To: linux-raid@vger.kernel.org
Subject: Re: filesystem-level tool to validate array
Date: Mon, 30 May 2011 09:20:20 +0100 (BST) [thread overview]
Message-ID: <alpine.DEB.2.00.1105300857540.25119@unicorn.drogon.net> (raw)
In-Reply-To: <BANLkTi=9mp0v4kn+3ZZP7CtBxE88Ox3_rA@mail.gmail.com>
On Sun, 29 May 2011, Michael Stumpf wrote:
> I'm looking for a filesystem-level tool to perform something similar
> to what badblocks does at the drive level. I can certainly write it
> on my own (I'd build it as a Perl or Python script), but if someone's
> already invented this..
>
> (The intended purpose is to validate that there are no quirks/bugs in
> the overall fs.)
If you can take the partition offline, then fsck -fC might work, although
it'll depend on the fileysstem type... And fsck doesn't actually read the
file blocks (that I'm aware of)
For something crude, you can use find to descend a heirarchy then copy the
file, or maybe even something like
cd /top-level/dir/
fgrep -r "wumpus" .
that'll perform a read of every file - well, mostly as some might be in
the filesystem cache.
But if you want to make sure every file block belongs to a file, and the
structure (directory) integrity is there, then fsck is probably the best
bet...
Another way might be to recursively compute md5 checksums for all files -
then do it again and compare.. (at a later date?)
You might want to look at something like tripwire to automate this though.
(Obviously won't work if you get the same error at the same place every
time though!)
One of the burn-in tools I have is a script that writes a file of random
numbers - md5's it. Then copies this file to n+1, then copies n+1 to n+2,
then n+2 to n+3 and so on, then md5's the final file. The file-sizes are
typically double RAM size to negate the effects of cache (same idea as
bonnie)... However if there's a failure, then it's it's not clear where
the issue is - memory, PCI bus, SATA cable, disk platter?
Of-course in a RAID array, looking at it from the fileysstem level (or
even the block level) isn't going to read all platters of all disks - you
need to use the /sys/block/mdX/md/sync_action mechanism.
Gordon
prev parent reply other threads:[~2011-05-30 8:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-29 20:17 filesystem-level tool to validate array Michael Stumpf
2011-05-30 7:13 ` Nikolay Kichukov
2011-05-30 7:28 ` Bernd Schubert
2011-05-30 8:20 ` Gordon Henderson [this message]
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=alpine.DEB.2.00.1105300857540.25119@unicorn.drogon.net \
--to=gordon@drogon.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