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

Reply via email to