Replacing Win Server 2016 with Nethserver?

Should be.

Correct.

Oh, heavens, no. btrfs is broken by design, and parity RAID especially so.

ZFS probably wouldn’t be the simplest to implement, but it’s well-documented. You’d first need to install ZFS itself (can’t link to instructions here because stupid network filtering at work blocks the zfsonlinux.org site, but my other thread links to the CentOS page there). Once it’s installed, creating the pool is simply:

zpool create -m /path/to/mountpoint tank raidz1 sda sdb sdc

Breaking it down, this command creates a ZFS pool, passing the mountpoint option (so your pool will be mounted there, no need to mess with fstab), with the name of “tank” (apparently the ZFS developers, or documentation engineers, watched The Matrix a little too much, though you can use any name you like). The pool is set to RAIDZ1 or single-parity RAID (comparable to RAID5), and consists of sda, sdb, and sdc. That will run for a few seconds, create and mount your pool, and you’ll be in business.

Now, the FreeNAS folks (who tend to be rather fanatical about protecting their data) would want to point out a few things:

  • They really don’t like RAIDZ1 for disks larger than about 1 TB. Statistically, there’s a high chance of a data error during a pool rebuild, which could result in data corruption. This issue is not at all unique to ZFS; it’s common to any single-parity RAID. ZFS is better-protected than most filesystems, because all data and metadata are checksummed, and all metadata has at least two (and as many as six) copies. Nonetheless, with disk capacities and error rates as they are, the risk is there.
  • To confirm data integrity, and clean up any silent data corruption, you’d want to scrub your pool periodically (every couple of weeks or so). Set up a cron job to run zpool scrub tank to do that.
  • You’d want to set up regular SMART tests and SMART monitoring for your disks; that would be in /etc/smartd.conf.
2 Likes