> > Shrinking the vdevs requires moving data.  Once you move data, you've
> > got to either invalidate the snapshots or update them.  I think that
> > will be one of the more difficult parts.
> 
> Updating snapshots would be non-trivial, but doable. Perhaps some sort
> of reverse mapping or brute force search to relate snapshots to
> blocks.

Today, accounting for blocks used by snapshots is done at least
partially by the internal generation number.  If you modify a snapshot,
you're going to have to modify a lot of if (because of the checksums,
you'll end up having to write all the way up to the root).  You'll then
have to either lie about the generation number or the existing algorithm
will break.  Faking the old generation number seems hard, especially
since rewriting the snapshot won't be atomic unless you have both the
old and new points on disk at the same time.

-- 
Darren Dunham                                           [EMAIL PROTECTED]
Senior Technical Consultant         TAOS            http://www.taos.com/
Got some Dr Pepper?                           San Francisco, CA bay area
         < This line left intentionally blank to confuse you. >
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to