Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 May 1996 11:46:48 -0500 (CDT)
From:      Bob Willcox <bob@luke.pmr.com>
To:        jgreco@brasil.moneng.mei.com (Joe Greco)
Cc:        jgreco@brasil.moneng.mei.com, joerg_wunsch@uriah.heep.sax.de, kelly@fsl.noaa.gov, taob@io.org, freebsd-chat@freebsd.org, asami@cs.berkeley.edu
Subject:   Re: 3 terabytes on one server? (was Re: more than 32 scsi disks on a single machine ?)
Message-ID:  <199605201646.LAA14432@luke.pmr.com>
In-Reply-To: <199605201615.LAA19554@brasil.moneng.mei.com> from Joe Greco at "May 20, 96 11:15:31 am"

next in thread | previous in thread | raw e-mail | index | archive | help
Joe Greco wrote:
> > > Now admittedly FreeBSD's fsck is a lot faster :-), but if this really is a
> > > limitation, it is too bad..  maybe I will go look at it :-)
> > 
> > I believe you don't understand the way FreeBSD actually handles
> > this.  (Heck, maybe I don't either, but this is what I actually
> > observe happenning.) 
> 
> Hi,
> 
> You missed the subtle point, that behaviour is all well and fine, but some
> of us are smarter than fsck and would like to specify the passes explicitly.

True, but I like not having to think about this.  I believe the current
behavior of fsck makes that possible.

> 
> I certainly agree that fsck checks filesystems in parallel, it just isn't
> guaranteed to do it "optimally".

I don't really know what optimum would be here.  I do feel that a
per-disk process that sequentially fsck's all of the file systems
on its disk (and runs in parallel with the other per-disk processes
fsck'ing their disk's file systems) is pretty close to optimum.

> 
> Consider the case:  you have two non-root disks both with multiple
> partitions.  (hypothetical)
> 
> sd1e	40MB lots of files
> sd1f	200MB a few big files
> sd2e	200MB a few big files
> sd2f	200MB lots of files
> 
> I don't know what FreeBSD's behaviour would be.  Hopefully it would not try
> to fsck multiple fs's on the same disk concurrently, but maybe it would!

If all of these disks pass number were set to 2, there would be two processes
running fsck (for these four filesystems), one process would fsck sd1e followed
by sd1f.  The other process would fsck sd2e followed by sd2f.

> 
> However, an intelligent admin might set up
> 
> sd1f pass 2
> sd2e pass 2
> sd1e pass 3
> sd2f pass 3
> 
> to minimize the amount of time "wasted" waiting.

I believe you are interpreting the word "pass" (for FreeBSD anyway)
too literally.  My interpretation is that filesystems specified as
pass 1 are fsck'd sequentially first, followed by pass 2 filesystems
fsck'd in parallel.  As pointed out above, these pass 2 fsck's are
done in what I believe to be a pretty optimum way.

> 
> This still isn't totally optimal.  The best way to do it might be to fork
> off a per-disk process and have it sequentially iterate (asynchronously from
> any other "passes" on other disks) through filesystems on that one disk.
> 
> Or maybe that's what it already does?  :-)

I believe that that is *precisely* what it does, unless I misunderstand
what you are suggesting.  Certainly that's how I have seen it
described (was years ago that I actually saw the description, and
I don't remember where :-() and the exact behavior that I observe
on MY system.


-- 
Bob Willcox
bob@luke.pmr.com
Austin, TX



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