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