One of the features of BTRFS is the ability to mount the <ROOT_FS>, usually to /mnt, and then navigate through any snapshots stored under /mnt/snapshots using Dolphin or mc, and copy any file found inside that snapshot to any subdirectory in your running system. BTRFS snapshots are truly independent. I can delete any snapshot regardless of when it was created or if any were created before or after it. I can also rollback to any snapshot without affecting the other snapshots, aside from the normal CoW operations.
One can browse a ZFS snapshot and pull files from it, even though it is read only, although one doesn't have to mount it because it is part of the running system. Rolling back to a specific snapshot destroys any snapshots made before it. A clone created from a snapshot is rw. If one wants to destroy a snapshot they must first destroy any clones made from that snapshot. Using the "-r" flag will do that automatically.
ZFS Virtual Devices (ZFS VDEVs)
A VDEV is a meta-device that can represent one or more devices. ZFS supports 7 different types of VDEV:
VDEVS are dynamically striped by ZFS. A device can be added to a VDEV, but cannot be removed from it.
A VDEV is a meta-device that can represent one or more devices. ZFS supports 7 different types of VDEV:
- File - a pre-allocated file
- Physical Drive (HDD, SDD, PCIe NVME, etc)
- Mirror - a standard RAID1 mirror
- ZFS software raidz1, raidz2, raidz3 'distributed' parity based RAID
- Hot Spare - hot spare for ZFS software raid.
- Cache - a device for level 2 adaptive read cache (ZFS L2ARC)
- Log - ZFS Intent Log (ZFS ZIL)
VDEVS are dynamically striped by ZFS. A device can be added to a VDEV, but cannot be removed from it.
zfs set secondarycache=metadata pool
where secondarycache is a property, metadata is a value, and pool is the pool the property is being applied to. Create cache in pool and it will minimize SSD or USB unlevel wearing. Just use
zpool add -f pool cache /dev/disk/by-id/usb1id /dev/disk/by-id/usb2id /dev/disk/by-id/usb3id ... /dev/disk/by-id/usbnid
BTRFS does not have virtual devices nor "secondarycache" settings. It wouldn't be a good idea to install it on a group of USB sticks in order to test out various RAID configurations, unless you don't mind if they get worn out quickly.
At this point I began re-evaluating my plan to explore ZFS. Most of its vaunted reliability is lost when used on a typical single drive laptop or desktop with 16GB or less of non ECC memory. On a single drive it will detect errors but not correct them. You'll need to run scrub to do that. Run it with 4 or 8 Gb of memory and the adaptive read cache isn't as quick, and it leaves less of memory for your applications to run in. 16, or better yet, 64 Gb of ECC memory is best to use in order to make ZFS fast and still allow enough memory for your applications to run fast as well. 64Gb of good ECC memory is selling for around $200 at Amazon.
Snapshotting and rollbacks are quicker in ZFS, but even doing it manually I take less than a minute to snapshot, less than 2 minutes to do an incremental backup to my 2nd SSD or my spinner, and rollbacks aren't much slower. Plus, my snapshots are outside of @ and @home. To lose them my HD would have to have a hardware failure. Even ZFS can't prevent that on non-commercial systems.
All in all, IMO, BTRFS is the best filesystem to use on my laptop, even though I have an Nvidia GPU and an i7 CPU with 16GB of RAM and three storage devices. One is a Toshiba spinner on its last legs. The other two are Samsung 860 EVO 500Gb SSD's. Their statistics are:
Power on time 282 days 20 hours 90 days 4 hours
Est Time Remaining > 1000 days > 1000 days
Lifetime Writes 10.54 TB 435.71 GB
I'm averaging about 12 hours a day on this laptop, usually between 12 noon and 12 midnight. BTRFS has been gentle to my SSDs. I think I'll keep it that way.
Signing off of my ZFS experiment, which as triggered by UbuntuDDE. UDDE is interesting but nowhere near Kubuntu in power and ease of use. Running UDDE on ZFS would offer nothing new but a pretty hummingbird wallpaper, which I'll probably download and use.


Leave a comment: