Erik Trimble wrote:
Lori Alt wrote:
On 09/15/09 06:27, Luca Morettoni wrote:
On 09/15/09 02:07 PM, Mark J Musante wrote:
    zfs create -o version=N pool/filesystem

is possible to implement into a future version of ZFS a "released" send command, like:

# zfs send -r2 <snap> ...

to send a specific release (version 2 in the example) of the metadata?

I just created a RFE for this problem in general: 6882134. I'm not sure the above suggestion is the best way to solve the problem, but we do need some kind of support for inter-version send stream readability.

Lori


I haven't see this specific problem, but it occurs to me thus:

For the reverse of the original problem, where (say) I back up a 'zfs send' stream to tape, then later on, after upgrading my system, I want to get that stream back.

Does 'zfs receive' support reading a version X stream and dumping it into a version X+N zfs filesystem?

If not, frankly, that's a higher priority than the reverse.



I'm afraid that my answers yesterday, and the RFE I filed, have just confused matters. I've learned some more about send stream inter-version compatibility and found that the problem is not as difficult as I thought:

There are two aspects to the stream versioning issue: the version of the objects stored in the stream and the version of the stream format itself. I was thinking that the object versioning was the harder problem, but I discussed this with Matt Ahrens and he pointed out that the existing zfs upgrade capability already copes with reading versions of data object formats that are earlier than the version of the pool into which the objects are being read. So as long as you're doing a receive into a pool that has the same or greater version than the one that was used to generate the send stream, the objects should be interpreted correctly.

The second version issue, which is the stream format, is where we haven't necessarily promised compatibility in the past, but so far, the stream format has not changed. Changes are coming however for dedup. We're looking at making those changes in such a way that earlier stream formats will still be receivable into future releases. So we're considering a refinement of the current policy of not guaranteeing future readability of streams generated by earlier version of ZFS. The time may have come where we know enough about how send streams fit into overall ZFS versioning that we can make them more useful by making a stronger assurance about future readability. So stay tuned.

As for being able to read streams of a later format on an earlier version of ZFS, I don't think that will ever be supported. In that case, we really would have to somehow convert the format of the objects stored within the send stream and we have no plans to implement anything like that. As for being able to selectively receive only parts of a send stream, that's another subject, unrelated to versioning. As someone else pointed out on this thread, that's one way in which zfs send/recv is really not a 'backup' tool in the usual sense. If you need that kind of functionality, zfs send/recv will not provide it for you. At some point, we could perhaps implement a way to select the datasets from within a send stream to receive, but given the way that objects are recorded in send streams, it would be very difficult to restore individual files.

Lori
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to