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