Even if you're well versed on these topics, I'd still suggest trying it out on a VM, or at least reading through their guides. Seeing the approach taken by someone else might help you refine your own setup.
Unfortunately, the last few months haven't been great for FreeNAS. They had a horribly botched release. It was killed off fairly quickly, but a few people got burned over it. The good news is that they changed their mind on their expected breaking changes. Initially they intended to kill off jails in favor of docker, which made it a painful upgrade process for some existing users. From an outsider's perspective, it looked rush. Even though I'm happy with my setup, it made me a little more weary about quickly adopting major upstream changes.
Go with FreeNAS 11.
I would build the NAS using plain old FreeBSD and I would indeed use 11.1.
If it were a week ago, I would have advised 10.3 as, historically, x.0 releases of FreeBSD have been ill-advised.
If you are comfortable on the command line I see no reason to use FreeNAS/TrueNAS.
This is how I run my home fileserver. It is also how I/we run all of rsync.net - ZFS filesystems on top of plain old FreeBSD.
I don't believe I'm in such a unique position of having run both FreeNAS and FreeBSD on the same hardware (with the same zpool) so I expect others to chime in.
FreeNAS has been better from a performance perspective than FreeBSD raw was- why? Probably because I didn't do the right thing for good performance on FreeBSD. But that's my point here.. why spend ages configuring things to get the same performance you'd get OOTB with FreeNAS? You also get a webUI for "free" and plugins to run things like transmission and plex.
I don't advise using raw FreeBSD for home use, power users can still have all the CLI access on FreeNAS too, but may not want the "bloat" of a webUI.
If you go with plain FreeBSD, yes...go with 11.1. No point using the 10.x branch unless you have some specific reason to (eg. some specific legacy support requirements or something).
I use Arch Linux on my desktop but I would switch to FreeBSD in a heartbeat if it addressed the desktop-related issues I had last time I tried it. It would be especially amazing if they fixed all the sleep and power management stuff so it could be used on a laptop with good battery life.
If you're using FreeBSD on your main computer, you need some kind of a Desktop Environment, if you don't want to stick with KDE4, you install GNOME. However, GNOME is ported from Linux and although most of the time it works without problems, there is a speed compromise (again only based on my experience).
Upsides of FreeBSD:
• The Package Repository is great, most apps such as firefox, emacs, IDE's are maintained at their latest versions.
• The system works solid, no crashes
• FreeBSD feels more like Unix, and if you're interested in the low level stuff you can learn more quickly. The source code is clean, the implementations are not complicated.
• Drivers are scarcer than Linux, but if there is a driver, it works flawlessly.
The points I'm neutral about:
• Behyve and ZFS are all great technologies, however they were a bit complex for my test. I couldn't manage to setup a Linux server with X11 forwarding. As for ZFS, I used FreeBSD on my laptop with a 256G SSD drive, so I did not see much benefit of ZFS. However, I was aware that if I had used VMs, ZFS would offer much better IO performance.
As for sleep and power management issues:
• Power management on FreeBSD is good, not great like Linux and you don't have powertop and tlp available. But it's good. You can expect upto 70-80% of the battery life you get in Linux. (You don't even have to tinker with C-States and all, just powerd or powerdxx works great out of the box.)
As for sleep issues, mostly on FreeBSD the closing the lid or pressing the power button won't be recognized as a sleep trigger. But on most laptops 'acpiconf -s3' puts your laptop to sleep.
Closing the lid is a non-issue, see sysctl hw.acpi.lid_switch_state.
A more serious problem is that some Thinkpads just don't wake up https://github.com/FreeBSDDesktop/freebsd-base-graphics/issu... :(
This was already mentioned here but what's up with people thinking that ZFS is only for large storage arrays? You don't need anything more than a small SSD to get the benefits of snapshots, compression, and general ZFS reliability (copy on write — no data corruption ever, except for like hardware bugs). Boot Environments is an especially great snapshot-based feature.
Also how is bhyve complex? It's the simplest hypervisor ever.
Bhyve seemed complex to me, because I was accustomed to Virtualbox and VMware. I tried to boot up ubuntu server with behyve and finding the kernel images, loading them, typing the boot commands were a hassle. Maybe if I had some prior experience with hypervisors, I could better understand behyve.
As for ZFS, I always had extra space in my SSD, so compression was of little use to me. My FreeBSD system only used 30-40 GB of space (including downloads). I had 8 Gigabytes of RAM, but FreeBSD only needed 1.4 GB, even whilst browsing.
I haven't used the snapshot feature, although I imagine it's powerful. I also haven't made use of FreeBSD jails, which are, according to what I read, far better than chroot.
the bhyve command shipping with FreeBSD is a bit lower level, sure. There are more user-friendly front-ends like https://github.com/pr1ntf/iohyve and http://chyves.org
Some might say "most primitive ever".
You might want to look into these and other benefits I think it's worth it even on single disk setups.
Plus, you can always switch between plain and FreeNAS installation.
They are both great options and FreeNAS already gives you a lot of flexibility.
It's a bit like with a router. Do you use something along the lines OpenWRT and mainly log in to the command line, not because you have to, but because you can then you might want to go with FreeBSD and ZFS.
However, if you don't know if it is flexible enough and fits: Go with FreeNAS and fall back to FreeBSD. I think that's the best option for most people.
I would recommend HardenedBSD 12-CURRENT but maybe that's just me :D
>HardenedBSD is one of the bigger jokes in the BSD community. [...]
ZFS on FreeBSD has been flawless for me. ZFS on Ubuntu is functional but limited, and I've experienced some odd glitches.
A few months back, I booted my Ubuntu 16.10 workstation. No ZFS datasets were mounted at boot. Regular "zfs mount" and "mount" failed. Could not get the datasets to mount at all, even though the pool was active and the datasets were visible. Solution: changing the mountpoint worked for some reason. Still no idea what triggered this or why the fix worked. Either way, it broke the system's normal functioning through no intervention of my own.
I've also had the zfs and zpool commands get stuck in "D" state indefinitely because something internal had blocked everything. Mounted filesystems continued to work, but no admin commands would work. Triggered by running some trivial admin function. After a few days I had to hard reset the system to regain control. This looks like a locking bug.
I've also had poor behaviour when a disc glitched and I got an oops rather than ZFS coping with the short outage. IIRC I got the same "D" state issue as above.
I never encountered any such problems with FreeBSD, and I've run it on both platforms for years. ZFS on Linux is functional, and I use it daily, but the FreeBSD implementation is better.
I think its worth noting that 16.04 is is 16 months out of date on zfs releases and even 16.10 is 10 months out of date.
In a version of software in development the most current stable release potentially has a lot of bug fixes that ubuntu users are missing out on.
1) There is a clear separation between the base system and the extra software. On a typical Linux distribution, everything gets installed into /usr, /etc, /var, etc. On FreeBSD things that aren't part of the base system go into /usr/local.
2) The base system is designed as a whole cohesive system. The kernel and userland are kept in sync through the update process.
3) The documentation is fantastic.
It would be unfair to Linux if I didn't mention some downsides though:
1) Upgrades are more painful than Linux, and more painful than they need to be. On my OpenSUSE boxes, an upgrade is literally "sudo zypper dup; shutdown -r now". On FreeBSD, the same task requires multiple reboots[0]. Then you need to update any extra software as a separate step.
If you have a custom kernel (because you needed IPSEC and/or NAT-T), it's even more painful.
2) The base system is fairly sparse. You want to use bash? That's an extra package. Want sudo instead of su? That's an extra package. Don't get me wrong, the base system is very usable, but it does lack a lot of things that Linux users take for granted.
[0] https://www.freebsd.org/doc/handbook/updating-upgrading-free...
On TrueOS out of the box everything is ZFS, even the root volume, and that has been the case for a while, now. The operating system is in a single ZFS dataset (with things like /usr/ports, /usr/jails, /var/mail, /var/log, /usr/obj, and /usr/home split off into their own datasets). This is used to provide "boot environments".
System upgrade goes like this: The upgrade script makes a clone of the current operating system dataset, mounts it, and runs freebsd-upgrade on it chrooted at the mount point. This results in a new boot environment with the upgraded operating system ready to be rebooted into. ZFS copy-on-write means that an upgrade does not consume twice the disc space; and the separate dataset means that one retains an untouched current boot environment throughout the process.
I assume that using version 11.1 is the way to go? No point in using the 10.x branch?