meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:fs:btrfs_vs_zfs [2015/03/25 22:45]
niziak
linux:fs:btrfs_vs_zfs [2016/04/21 13:49] (current)
niziak [Features]
Line 1: Line 1:
 +====== BTRFS vs ZFS ======
 +
 My target is to: 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.   * 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.
Line 9: Line 11:
  
 Things to consider: 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 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 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) +  * BTRFS deduplication looks better (no constant RAM consumption) 
- * ZFS offers better tooling  +  * ZFS offers better tooling  
- * BTRFS support attributes (like +c = compress) +  * BTRFS support attributes (like +c = compress) 
- * user quota ???+  * user quota ???
  
    
 +===== Features =====
  
 ^ Feature ​                      ^ ZFS    ^ BTRFS  ^ remarks ^ ^ Feature ​                      ^ ZFS    ^ BTRFS  ^ remarks ^
Line 36: Line 39:
 ^ Redundancy on single disc     | Yes    | metadata| 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    |  | ^ Snapshots ​                    | Yes    | Yes    |  |
 ^ Performance ​                  | fuse   | kernel | fuse is anymore bottleneck with moder kernels | ^ Performance ​                  | fuse   | kernel | fuse is anymore bottleneck with moder kernels |
 +
 +^FS Overhead ​ ^^^
 +^    EXT4     ​^ ​    ​BTRFS ​    ​^ ​   ZFS    ^
 +|   270 371   ​| ​   269 540    |           |
  
  
Line 60: 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 67: 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