On Fri, 4 Dec 2009, Jeffry Molanus wrote:
Actually, I asked about this a while ago only called it file-level cloning.
Consider you have 100VM's and you want to clone just one?
BTRFS added a specialized IOCTL() call to make the FS aware that it
has to clone this obviously saves copy time and dedup time.
The best thing that I see in Solaris for efficiently
copying/concatenating files are the functions sendfile() and
sendfilev() in libsendfile. Unfortunately, these are not portable
interfaces and the amount of data which can be copied in one call is
limited by the maximum value supported by the size_t type. A 64-bit
program should be able to request "sending" the content of a large
file into another large file in one call, but a 32-bit program would
need to use multiple calls.
If Solaris sendfile is similar to the sendfile in other OSs, the data
copy is done in kernel space (with potentially zero-copy for the read)
but the data still needs to be copied from/to the filesystem.
Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss