Re: zfs send recv without uncompressing data stream
Jim Klimov <jimklimov <at> cos.ru>
2012-01-24 18:37:58 GMT
2012-01-24 19:52, Jim Klimov wrote:
> 2012-01-24 13:05, Mickaël CANÉVET wrote:
>> Unless I misunderstood something, zfs send of a volume that has
>> compression activated, uncompress it. So if I do a zfs send|zfs receive
>> from a compressed volume to a compressed volume, my data are
>> uncompressed and compressed again. Right ?
>> Is there a more effective way to do it (without decompression and
>> recompression) ?
> Rationale being that the two systems
> might demand different compression (i.e. "lzjb" or "none"
> on the original system and "gzip-9" on the backup one).
One more rationale - compatibility, including future-proof
somewhat (the zfs-send format explicitly does not guarantee
that it won't change incompatibly). I mean stransfer of data
between systems that do not implement the same set of
compression algoritms in ZFS.
Say, as a developer I find a way to use bzip2 or 7zip to
compress my local system's blocks (just like gzip appeared
recently, after there were only lzjb and none). If I zfs-send
the compressed blocks as they are, another system won't be
able to interpret them unless it supports the same algorithm
and format. And since zfs-send can be used via files (i.e.
distribution media with flar-like archives), there is no
way of dialog between zfs-sender and zfs-recipient to agree
on a common format, beside using a fixed predefined one -
Using external programs to wrap that in the Unix way gets
out of ZFS's scope and can be arranged by other software
on the OSes.