On Thu, Dec 03, 2009 at 03:57:28AM -0800, Per Baatrup wrote: > I would like to to concatenate N files into one big file taking > advantage of ZFS copy-on-write semantics so that the file > concatenation is done without actually copying any (large amount of) > file content. > cat f1 f2 f3 f4 f5 > f15 > Is this already possible when source and target are on the same ZFS > filesystem? > > Am looking into the ZFS source code to understand if there are > sufficient (private) interfaces to make a simple "zcat -o f15 f1 f2 > f3 f4 f5" userland application in C code. Does anybody have advice on > this?
There have been plenty of answers already. Quite aside from dedup, the fact that all blocks in a file must have the same uncompressed size means that if any of f2..f5 have different block sizes from f1, or any of f1..f5's last blocks are partial then ZFS could not perform this concatenation as efficiently as you wish. In other words: dedup _is_ what you're looking for... ...but also ZFS most likely could not do any better with any other, more specific non-dedup solution. Nico -- _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss