Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Oct 2006 12:07:20 +0800
From:      LI Xin <delphij@delphij.net>
To:        pav@FreeBSD.ORG
Cc:        freebsd-rc@FreeBSD.ORG
Subject:   Re: fsck talk
Message-ID:  <453EE2F8.7030702@delphij.net>
In-Reply-To: <1161281431.56486.13.camel@ikaros.oook.cz>
References:  <1161281431.56486.13.camel@ikaros.oook.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig6105699395174A35F93B38CE
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Pav Lucistnik wrote:
> I was poking around /etc/rc.d/fsck today, and I figured out a few
> interesting things.
>=20
> Think three large partitions, for example:
> /dev/aacd0s1e   /a
> /dev/aacd1s1e   /b
> /dev/aacd2s1e   /c
>=20
> Now, disable background fsck and enable -y flag in rc.conf:
> background_fsck=3D"NO"
> fsck_y_enable=3D"YES"
>=20
> Now imagine a power failure. On reboot, fsck -p manages to mark /a
> and /b clean, but fails on /c.
>=20
> Next, fsck -y is executed, which goes over /a again, then over /b and
> then finally over /c.
>=20
> Two problems here:
>=20
> 1) fsck -y does not skip filesystems already cleaned in preen run,
> because fsck_ffs only skips clean filesystems in preen mode.
>=20
> 2) fsck -y runs forever, because fsck does execute the jobs in parallel=

> only in preen mode.
>=20
> Proposed solutions to problem 1:
>=20
> - change the behaviour of fsck_ffs when executed on clean filesystem,
>   like this:
>=20
>     fsck -y /a
>=20
>   to skip it with message 'already clean'.  There is a -f flag for
>   people who really want to do a fsck.
> - add a new flag to fsck_ffs that will skip clean filesystems in
>   non-preen mode

I think it is reasonable not to check clean file system, since -f means
"force", by not specifying the option, it's supposed that clean file
systems are not being checked, so I vote for the first proposed solution.=


> Plus
>=20
> - when user sets fsck_y_enable, we can just skip the preen run entirely=
,
>   under the condition that one of the above was implemented. That's
>   another speedup.
>=20
> Proposed solutions to problem 2:
>=20
> - change fsck to parallelize jobs in non-preen mode by default
> - add a flag to fsck to parallelize jobs in non-preen mode

For very large volumes it can be very nasty to do parallelized check,
because one volume can cost a lot of memory, which can in turn cause
fsck to fail.  Of course, I think a flag to parallelize the check would
be a nice feature and users can optionally enable it through a rc.conf kn=
ob.

Cheers,
--=20
Xin LI <delphij@delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!


--------------enig6105699395174A35F93B38CE
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFPuL4OfuToMruuMARA6z8AJ4yFnmFXUhxTw3qgJjycr2xohHb8ACgjYRR
DQ2cTdnxJBiqC1Gi1NqeSc0=
=J4VS
-----END PGP SIGNATURE-----

--------------enig6105699395174A35F93B38CE--



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