I'd like to limit server disk fragmentation when multiple clients upload to an FTP server simultaneously.
Is there a way to tell FTP server to preallocate disk space for a big block of an incoming file, and to keep incrementing in big blocks?
Alternatively, is there a way to tell the FTP server to preallocate entire file's worth, and write out incoming FTP packets in a more sequential pattern.
Defragmenting files after fransfer is not acceptable: it will take too long to defragment.
I am using IIS 6.0, but other FTP server products would be a welcome replacement.
The FTP protocol does not include size information in the STOR command:
http://www.ietf.org/rfc/rfc959.txt
So I doubt you'd find any pure FTP clients that would do this. You might find some vendor that has implemented a proprietary extension, but that would require both the client and server to support them. You say "clients", so if that includes both internal and external clients you might have problems forcing them to use different software.
A quick glance at the SFTP draft doesn't indicate that the write file message includes a file size either.
The SCP protocol does include a size parameter in its file copy command, and there are Windows GUI clients that support SCP (rather than SFTP), but you'd have to check if the server pre-allocates using the size parameter. On the upside, the code is available, so you could build your own Windows SSH/SCP daemon that pre-allocates. But this is somewhat overkill for the problem you describe.