Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Oct 2010 14:43:09 -0700
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Scott Charron <shewless@unleashed-web.org>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: consistent file system inconsistencies (tried replacing drive)
Message-ID:  <20101015214309.GA19087@icarus.home.lan>
In-Reply-To: <AANLkTi=jcf7vAAc6yPurpjrLP9tVxVtOkdrV7ZSdc7HM@mail.gmail.com>
References:  <AANLkTi=RMKLpVzv48Pu1Wk=afCL0NU-v-D0p2_A5JdNe@mail.gmail.com> <201010151932.o9FJWXb3066388@lurza.secnetix.de> <AANLkTi=jcf7vAAc6yPurpjrLP9tVxVtOkdrV7ZSdc7HM@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Oct 15, 2010 at 05:19:22PM -0400, Scott Charron wrote:
> >  > Also I was under the impression soft-updates would actually require
> >  > a little more disk access time and thus make the problem slightly
> >  > worse.
> >
> > No, soft-updates doesn't require more disk access time in
> > general.  It caches and re-orders meta data updates, so it
> > can even save disk access time.  But the important thing
> > is that soft-updates re-orders the meta data updates in a
> > way that guarantees that it is in a consistent state at
> > any time (provided that the disk's firware cooperates
> > correctly).  This means that there won't be _unexpected_
> > inconsistencies after a crash, and fsck will be able to
> > run without user-intervention.  (NB:  If you want to avoid
> > fsck completely, you will have to use journalling, or go
> > to a ZFS-only system without any UFS file systems.)
> 
> Maybe I should just go to ZFS... it's fully supported now even for
> root right? Will that be more robust against power outages??

IMHO, no.  Some would argue that a ZFS mirror or raidz pool would be
sufficient, and I disagree.  People need to remember the situation:
*power is being completely lost to the entire system abruptly*.  Not
just one device (e.g. yanking a disk off the bus without warning), but
literally everything.

A ZFS mirror would require 2 or more disks (or devices; that could mean
slice or partition), while ZFS raidz would require 3 or more.  A single
disk or device using ZFS gets you the ability to detect when there's
read/write errors, but no way to fix them.

I don't think it matters anyway because......

> > If you still get unexpected inconsistencies even though
> > you use soft-updates everywhere, then something else must
> > be wrong.  Maybe your hard disk doesn't play along nicely.
> > The usual recommendation is to disable the write-cache
> > on hard disks.  This will make your system slower, though.
> 
> Remember I'm using a USB stick here :)

Which makes this entire thread even more crazy.

The only thing I think that might help you "more" (but again, absolutely
no guarantee of filesystem integrity) would be to mount all of your
filesystems with the "sync" option.  Please see mount(8).

Be aware this will make I/O very, very, very slow.  It will induce a
flush-to-disk on every single write operation as I understand it.

You should really just solve the actual problem of power being lost
abruptly.

> > If you see filesystem problems on your non-root filesystem as well, e.g.
> > ones with SU (soft-updates) applied, I would recommend setting
> > background_fsck="no" in your /etc/rc.conf.  There are some old threads
> > documenting how background filesystem checks don't always fix all
> > problems before the system starts actually using the filesystem.  There
> > were reports of people finding that manual fsck would detect issues that
> > background fsck wouldn't fix.  YMMV.
> 
> Is this recommended? Should I schedule regular manual fscks?

The thread is long, and you should take some time to read it in full
(please do not skim it, and please read what Kirk wrote).  The original
thread ("panic: handle_written_inodeblock: bad size") thread gets split
off into a sub-thread ("background fsck considered harmful?").  This is
the best I can find on short notice:

http://lists.freebsd.org/pipermail/freebsd-stable/2010-July/thread.html#57849
http://lists.freebsd.org/pipermail/freebsd-stable/2010-July/thread.html#57876
http://lists.freebsd.org/pipermail/freebsd-fs/2010-July/thread.html#8927

It's recommended (by myself and some others) because it's been proven
background fsck doesn't always repair errors.  Some feel the opinion is
too harsh, and that's a legitimate opinion.  The "solution" is to "use
journalled soft-updates when they become available in FreeBSD 9.0".

But again, I'll take a moment to recommend that you solve the power loss
problem altogether by investing in a UPS.  Sudden power loss is going to
blow/fry your hardware eventually (especially if you experience
repetitive brown outs like we do here -- literally "flickering power"
outages where power is rapidly being toggled on/off at 0.5s intervals
over the course of 15-20 seconds.  I *have* had consumer home appliances
die permanently because of this.  Let's hear it for Silicon Valley power
grids...)

-- 
| Jeremy Chadwick                                   jdc@parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101015214309.GA19087>