Subject: Re: 2.0 and >2T filesystems
From: David Laight <firstname.lastname@example.org>
Date: 11/24/2005 19:53:43
On Thu, Nov 24, 2005 at 06:12:28AM -0500, der Mouse wrote:
> > Correct, ffsv1 should supports filesystems with > 2^32 sectors
> > provided the number of fragments is below 2^32 (or maybe 2^31).
> Then there exists at least one bug. :-) "My" filesystem has 4K frags,
> which means its limit should be 16T (or maybe 8T). It was well under
> 3T, and yet it had issues. (FFSv1 works fine with sub-2T filesystems,
> as far as I can tell, after applying the patch mycroft created back
> when I reported the issues to the list.)
> My first guess would be that the problem lies with code like
> "fsbtodb(di->di_db[x])" which, because fsbtodb is a macro and thus does
> not have the argument-promotion semantics of the function it looks
> like, needs to be something more like
> "fsbtodb((u_int64_t)di->di_db[x])" to make it 32-bit-clean.
(daddr_t) might be more correct - but that doesn't look good...
> I'm doing more tests. But they're slow - slinging multiple terabytes
> around is - so it'll be a while before I have any results.
Since the issue is accessing sectors above 4T, maybe this can be done
by creating a filesystem with a small number of inodes, and filling it
with small files. IIRC the data blocks are preferentially allocated
from the 'cylinder group' that contains the inode.
David Laight: email@example.com