meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
linux:fs:btrfs_vs_zfs [2015/03/25 21:17] niziak |
linux:fs:btrfs_vs_zfs [2016/04/21 13:49] (current) niziak [Features] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ^ Feature ^ ZFS ^ BTRFS ^ remarks ^ | + | ====== BTRFS vs ZFS ====== |
- | ^ License | CDDL | GPL | | | + | |
- | ^ Copy-on-write | Yes | Yes | | | + | My target is to: |
- | ^ Checksums | Yes | Yes | ZFS: 256bit fletcher2 or SHA256; BTRFS: CRC32c| | + | * 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. |
- | ^ Encryption | No | No | workaround with encryption of underlying devices | | + | |
- | ^ Online defragmentation | | Yes | | | + | * 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. Also is performed by external tool and it is not consuming RAM all the time, like dedup tables in ZFS. |
- | ^ Online growing / shrinking | | Yes | | | + | |
- | ^ Online block dev add/rem | Yes(-) | Yes | ZFS: only mirrored devices can be removed | | + | * deduplicate mp3 files grouped in folders |
- | ^ Online deduplication | block | No | btrfs: planned, external tool available | | + | |
+ | With single disc setup, there is no big difference between features provided by both filesystems. | ||
+ | |||
+ | Things to consider: | ||
+ | * BTRFS is integrated by default, ZFS-fuse is old, ZFS native is provided as DKMS but can cause problem if kernel will be upgraded | ||
+ | * BTRFS lacks of data redundancy (ZFS copies=2), but I can live without it because I have external backup. | ||
+ | * BTRFS deduplication looks better (no constant RAM consumption) | ||
+ | * ZFS offers better tooling | ||
+ | * BTRFS support attributes (like +c = compress) | ||
+ | * user quota ??? | ||
+ | |||
+ | |||
+ | ===== Features ===== | ||
+ | |||
+ | ^ 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 | | ^ Online compression | Yes | LZO / ZLIB | similar compression level | | ||
- | ^ Subvolumes | Yes | Yes | | | + | ^ Subvolumes | Yes | Yes | | |
- | ^ Subvolumes inside subvol. | Yes | Yes | | | + | ^ Subvolumes inside subvol. | Yes | Yes | | |
- | ^ Limit subvolume size | Yes | Yes | ZFS: quota, BTRFS: quatagroup | | + | ^ Limit subvolume size | Yes | Yes | ZFS: quota, BTRFS: quatagroup | |
- | ^ Linux root filesystem | ? | Yes | | | + | ^ Linux root filesystem | ? | Yes | | |
- | ^ Striping | | | | | + | ^ Striping | | | | |
- | ^ Mirroring | | | | | + | ^ Mirroring | | | | |
- | ^ Redundancy on single disc | yes | No | ZFS: copies=n param | | + | ^ Redundancy on single disc | Yes | metadata| ZFS: copies=n param | |
- | ^ Online scrubbing | Yes | Yes | scrub - scan and check data integrity | | + | ^ Online scrubbing | Yes | Yes | scrub - scan and check data integrity | |
- | ^ In place ext2/3/4 conversion | No | Yes | BTRFS: with rollback possible! | | + | ^ In place ext2/3/4 conversion | No | <del>Yes</del> | BTRFS: with rollback possible! DO NOT USE, it is not well tested and causes errors! | |
^ maturity | Yes | Linux 3.10 | | | ^ maturity | Yes | Linux 3.10 | | | ||
- | ^ GRUB loader support | | Grub2 | | | + | ^ GRUB loader support | | Grub2 | | |
+ | ^ Snapshots | Yes | Yes | | | ||
+ | ^ Performance | fuse | kernel | fuse is anymore bottleneck with moder kernels | | ||
+ | |||
+ | ^FS Overhead ^^^ | ||
+ | ^ EXT4 ^ BTRFS ^ ZFS ^ | ||
+ | | 270 371 | 269 540 | | | ||
Line 39: | Line 67: | ||
* SSD upport (trim/discard) | * SSD upport (trim/discard) | ||
- | ZFS: | + | ===== ZFS ===== |
- | * (-) compression on/off per subvolume | + | * (-) compression on/off per subvolume - no support for +c attribute |
* (+) All features are controlled by subvolumes (datasets) attributes (compression, deduplication) | * (+) All features are controlled by subvolumes (datasets) attributes (compression, deduplication) | ||
* (-) CDDL license is not compatible with Linux kernel. Cannot be distributed as derived work. | * (-) CDDL license is not compatible with Linux kernel. Cannot be distributed as derived work. | ||
Line 46: | Line 74: | ||
* (-) Deduplication on block level, cannot find shifted blocks. | * (-) Deduplication on block level, cannot find shifted blocks. | ||
- | BTRFS: | + | ===== BTRFS ===== |
* (+) compression on during mount, but also using attribs | * (+) 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. | + | * (?) 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 | * (-) All features controlled by mount options | ||
* (+) Every block device can be removed, data are automatically copied (balanced) to free space on other devices | * (+) Every block device can be removed, data are automatically copied (balanced) to free space on other devices |