The reason that ZFS has such trouble with this notion is that a lot of its internal architecture depends on &quot;block pointers&quot; (offsets of data into a given vdev) being immutable - this is, among other things, why CoW snapshots are so cheap. And attempting to rewrite all of these without having any gaps in consistent on-disk state is...challenging, to say the least.<p>Sun apparently had internally done most(?) of the work on BP rewrite (as it&#x27;s referred to), but performance sucked rather badly, and the work has not been shipped by Sun&#x2F;Oracle, let alone anything that came out before the F&#x2F;OSS code sharing ceased. [1]<p>(Performance sucked, in particular, for similar reasons to why dedup performance has such a high penalty on ZFS - they end up storing a lookup table that gets hit for every block that gets written after you turn on dedup, and so if that table stops fitting in RAM, it&#x27;s a bad time - let alone the issue of making sure the disk backing the DDT storage is sufficiently performant...)<p>[1] - <a href="http:&#x2F;&#x2F;www.listbox.com&#x2F;member&#x2F;archive&#x2F;182180&#x2F;2012&#x2F;01&#x2F;sort&#x2F;thread&#x2F;page&#x2F;2&#x2F;entry&#x2F;0:81&#x2F;20120109175552:13206E3A-3B15-11E1-A2B7-FB6559D63601&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.listbox.com&#x2F;member&#x2F;archive&#x2F;182180&#x2F;2012&#x2F;01&#x2F;sort&#x2F;th...</a>