On Mon, 2010-05-24 at 22:19 -0500, Eric Sandeen wrote:
> Nathan Scott wrote:
> > ----- "Jeff Zheng" <Jeff.Zheng@xxxxxxxxxx> wrote:
> >> Hi,
> >> We are trying to control where the files are being allocated on the
> >> disks, and we tried xfs preallocation. What we found is that each time
> >> the file being reopened the location of the pre-allocated space could
> >> change (not all the time). Is there a way to do persistent
> >> preallocation in xfs, like the same file will always be on the same
> >> location on the disk given that the requested size doesn’t change?
> > Sounds like you are truncating the file (on open?), and hence discarding
> > the preallocation. XFS preallocation is persistent already, so I think
> > something you are doing must be discarding those preallocated extents.
> > Could you post a test program, or sequence of xfs_io commands, that would
> > demonstrate the problem?
> > cheers.
> ... maybe you mean that truncating / pre-allocating the same space repeatedly
> on the same filename ends up with blocks mapped in different locations...?
> That's entirely expected... nothing about the preallocation interface lets
> you "control *where* files are being allocated" as you said above...
Way back when I wrote some code to do just this, but I've never had the
time to wrap it all up. The basic idea is to add another argument to
preallocate, as a hint where to try first. The allocator then uses the
'extend file' path, with the hint taking the place of the current eof.
for my original patches. I'd still like to have these pushed through -
what would it take?
Roger Willcocks <roger@xxxxxxxxxxxxxxxx>