Skip Navigation
7 comments
  • Block cloning is big news. It was one of the big advantages that BTRFS had over ZFS. Now you can insta-copy files on the same filesystem, and they can share blocks with each other without being a mirrored hardlink.

    The ZSTD early abort feature is also really cool if you're using ZSTD levels above 3. Before level 4 this system doesn't kick in IIRC. From 4 and on, it will first try to compress the block with LZ4, and if the compression ratio with LZ4 doesn't suck it will then attempt to compress with your chosen ZSTD level. This will give a massive performance boost to uncompressable blocks.

    • Now you can insta-copy files on the same filesystem, and they can share blocks with each other without being a mirrored hardlink.

      Could you elaborate on this a bit? To my understanding hard links already are the same file, it is only the inode that's different.

      • Reflinks with BTRFS and ZFS start off with behavior similar to hardlinks, but when you modify one of the files it doesn't change the other one. Hard links share the same inode and edits to one file must affect the other.

        Example:

        • File A: 10GB

        • File B: Reflink'd to File A

        • 10GB total space used, 10GB shared between A and B.

        • Modify 1GB of File A

        • 1GB of new blocks created, 11GB total now used. 9 GB still shared between A and B.

  • Overlay2 support is really nice. I had to use the ZFS driver for it and boy does it pollute your zfs list output.

    Also pretty excited about the user properties, it's gonna make initramfs mounting a lot easier over the somewhat buggy parsing of the output of zfs list. Same for encrypted home directories, now I can set a custom user property on them to easily enumerate what my PAM script is supposed to mount/unmount with the user password instead of hardcoded paths.

You've viewed 7 comments.