At least on ZFS, the whole reason &quot;defrag&quot; is impractical is that a bunch of places in the FS structure assume the logical address of a block is immutable for the lifetime of the block, which makes a number of properties really easy and inexpensive, but also means that your life is suffering if you want to try to modify that particular constraint.<p>If you&#x27;d like to see some information on a feature that&#x27;s been added while working around that particular constraint (or, rather, mitigating the impact of it), check out [1].<p>[1] - <a href="http:&#x2F;&#x2F;open-zfs.org&#x2F;w&#x2F;images&#x2F;b&#x2F;b4&#x2F;Device_Removal-Alex_Reece_%26_Matt_Ahrens.pdf" rel="nofollow">http:&#x2F;&#x2F;open-zfs.org&#x2F;w&#x2F;images&#x2F;b&#x2F;b4&#x2F;Device_Removal-Alex_Reece_...</a>