2012-01-16 23:14, Matthew Ahrens пишет:
On Thu, Jan 12, 2012 at 5:00 PM, Jim Klimov <jimkli...@cos.ru
<mailto:jimkli...@cos.ru>> wrote:

    While reading about zfs on-disk formats, I wondered once again
    why is it not possible to create a snapshot on existing data,
    not of the current TXG but of some older point-in-time?

It is not possible because the older data may no longer exist on-disk.
  For example, you want to take a snapshot from 10 txg's ago.  But since
then we have created a new file, which modified the containing
directory.  So we freed the directory block from 10 txg's ago.  That
freed block is then a candidate for reallocation.

Existence of old uberblocks in the ring buffer does not indicate that
the data they reference is still valid.  This is the reason that "zpool
import -F" does not always work.

Hmmm... the way I got it (but again have no prooflinks handy)
was that ZFS "recently" got a deferred-reuse feature to just
guarantee those rollbacks, basically. I am not sure which
builds or distros that might be included in.

If you authoritatively say it's not there (or not in illumos),
I'm going to trust you ;)

What about injecting snapshots into static data - before at
least one existing snapshot? Is that possible? I do get your
point about missing older directory data and possible invalidity
of the snapshot as a ZPL dataset (and probably a bad basis for
a writeable clone)... but let's call them checkpoints then, and
limit use for zfs send and fencing of erred ranges ;)

Is that technically possible or logically reasonable?

zfs-discuss mailing list

Reply via email to