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>