s34. ZFS fragmentation

One of the few weak spots of the ZFS is fragmentation.

In order to know fragmentation level, do:

sudo zpool list

You need to keep free space in your pool, as it is indispensable, mainly for copy-on-write actions and snapshots.

Performance declines at about 80% utilisation. So, try to keep pools always below 80%.

When you hit 85% used, performance will degrade dramatically. In any case, never go above 90%.

Currently, the only way to defragment is to:

  • copy everything off to a different pool (ZFS send)
  • destroy the fragmented pool,
  • recreate the pool
  • copy everything back (ZFS receive)