meta data for this page
  •  

This is an old revision of the document!


My target is to:

  • protect private files (Photos, documents) (of course I have scheduled backups to external device). On ZFS I can create subvolume with copies=2. On BTRFS with single disc it is not possible.
  • reduce e-mail disc space usage (compression, deduplication). On both I can enable compression with similar results. Deduplication works better on BTRFS, because I can specify small block size 4kB.
  • deduplicate mp3 files grouped in folders
Feature ZFS BTRFS remarks
License CDDL GPL
Copy-on-write Yes Yes
Checksums Yes Yes ZFS: 256bit fletcher2 or SHA256; BTRFS: CRC32c
Encryption No No workaround with encryption of underlying devices
Online defragmentation Yes
Online growing / shrinking Yes
Online block dev add/rem Yes(-) Yes ZFS: only mirrored devices can be removed
Online deduplication block No btrfs: planned, external tool available
Online compression Yes LZO / ZLIB similar compression level
Subvolumes Yes Yes
Subvolumes inside subvol. Yes Yes
Limit subvolume size Yes Yes ZFS: quota, BTRFS: quatagroup
Linux root filesystem ? Yes
Striping
Mirroring
Redundancy on single disc Yes metadata ZFS: copies=n param
Online scrubbing Yes Yes scrub - scan and check data integrity
In place ext2/3/4 conversion No Yes BTRFS: with rollback possible!
maturity Yes Linux 3.10
GRUB loader support Grub2
Snapshots Yes Yes
Performance fuse kernel fuse is anymore bottleneck with moder kernels

http://richardhartmann.de/blog/posts/2012/02/RAID-sucks/

http://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

Check and compare:

  • single file compression (btrfs: chattr +c …)
  • online convert from RAID0 to RAID1
  • direct mounting subvolumes (btrfs: by subvol path or subvol ID)
  • file snapshot (btrfs: cp –reflink /mnt/sv1/test1 /mnt/sv1/test3)
  • ZFS: online defrag (BTRFS: mount -o autodefrag)
  • btrfs: convert from ext4 (btrfs-convert /dev/sdb1) and rollback
  • btrfs as root
  • Locate modified files from last snapshot (btrfs subvolume find-new)
  • SSD upport (trim/discard)

ZFS:

  • (-) compression on/off per subvolume
  • (+) All features are controlled by subvolumes (datasets) attributes (compression, deduplication)
  • (-) CDDL license is not compatible with Linux kernel. Cannot be distributed as derived work.
  • (-) Only mirrored block devices can be removed. Non-redundant and raidz devices cannot be removed from a pool.
  • (-) Deduplication on block level, cannot find shifted blocks.

BTRFS:

  • (+) compression on during mount, but also using attribs
  • (-) deduplication not implemented. External tool available: [[https://github.com/markfasheh/duperemove]duperemove]. External tool can be also a benefit. To reduce CPU and memory you can start deduplication process when you want, and only on selected files/dirs.
  • (-) All features controlled by mount options
  • (+) Every block device can be removed, data are automatically copied (balanced) to free space on other devices
  • (+) Metadata are automatically duplicated between block devices, data are striped