I have read many controversal statements about ZFS on low memory systems on the internet, but most of the use cases was for performant data storage.
I want to use ZFS not for performance reasons, but because it supports transparent compression and deduplication (the latter may be optional) and still seems to be more mature than BTRFS. I don't want to use any RAID configuration.
I want to use it on a laptop computer, for root and home file system, and storage space and data safety (recoverability after power loss or other random inconsistencies, very low risk of corruption due to low RAM, etc.) is more important than disk performance. I want comparable safety as ext2/3/4 give.
I would like to use ext4 ontop of a ZVOL.
So, the questions are:
- Can ZFS be configured to work reliably with "low RAM" if IO performance/ caching is not of concern, and no RAID funtionality is wanted?
- How does the RAM needed change if I do not use ZFS as a filesystem itself, but just use ZVOLs where I put another filesystem ontop?
- How does RAM needed change with deduplication turned on? If deduplication is turned on and RAM starts to get low, is it still safe -- can ZFS just suspend deduplication and use less RAM?
- Is it possible to deactivate automatic deduplication, but run it from time to time manually?
- Can ext4 ontop of a ZVOL reliably store my data even on low RAM situations, and if inconsistencies happen, success chances for repairs are high (as it is with ext2/3/4)? Does ext4 ontop of a ZVOL increase rubustness because it adds ext4's robustness, or is data as robust as the underlying ZVOL is?
- 8 GiB RAM (shared with graphics card), but most (at least 7 GiB) of it should be available for user space software,
- about 700 GiB SSD storage to use for the ZFS,
- maybe on another system 128 GiB of eMMC to use for ZFS.
Current disk usage (
du -shof the bigger directories at
/) (/ is ext4, /var mounted ontop is reiserfs) (want to move that to a storage with transparent compression):
74M /etc 342G /home 5.0G /opt 1.5G /root 261M /tmp 35G /usr 30G /var
OR, just use BTRFS (have read that severe/ hard to recover data loss can occur due to "bugs", but that is all controversial ...)?