On 09/09/2010 05:35 AM, Christoph Hellwig wrote:
On Wed, Sep 08, 2010 at 03:28:50PM -0500, Anthony Liguori wrote:
That's a good point. Is there a reasonable way to do this cooperatively
with the underlying filesystem?
The only thing we can do easily is to try to use as large as possible
extents in the allocation. Once we're at a cuple Megabytes the
fragmentation doesn't matter too much.
That only works if the initial write writes the entire extent
(zero-filling a shorter write). But that both slows down that write,
and quickly grows the image to its full logical size.
The other thing we can do is defragment the logical image, then
defragment the underlying file (if the filesystem supports it, issue the
appropriate ioctl, otherwise defragment to a new file which you write
linearly).
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.