../

TrueNAS and pfSense -- the value in FreeBSD

TrueNAS, popular turnkey solution for network-attached storage, has announced their last release of "CORE". They will soon deprecate the CORE base entirely and put resources into SCALE.

TrueNAS offers network shares, scheduled tasks, resource monitoring, basic VM management, proper support for robust file systems like ZFS, and a lot of other widely used technologies. This makes it a really appealing option for home labbers, small to medium-sized businesses, and even huge companies. TrueNAS started out as FreeNAS, a FreeBSD-based system known for its rock-solid stability and consistency. It did exact what you wanted it to, and could be neglected and ignored like any old appliance. Updates are boring and infrequent, feature creep and complexity are kept on the down-low. FreeBSD's first-class ZFS support helped get its foot in the door as well.

Eventually, the allure of modern Linux technology became too strong. Linux has become the dominant operating system in a lot of spaces like cloud, and a big aspect of this shift is related to the rise of containerization as a technology.

Docker: the beginning of the end

I like Docker. I use it at home and sometimes at work. I'm not opposed to containers, but they have undeniably shifted the way we approach modern servers and computing.

Containers

Containers generally work by stuffing needed libraries and dependencies into a simple, isolated program. This, ideally, prevents a lot of the issues with running software straight on bare metal -- there's no need to worry whether or not you have Python 3.11 or 3.12 installed because your container bundles 3.9 and is unaffected by your host system. There are tons of implementations of this technology, but the one which really caught on towards the beginning of the 2010s was Docker.

Simplified diagram.

Docker used all the same tech as before -- the isolation offered by the Linux kernel, the software-based networking used across a ton of software already, and iptables rules for firewalling -- but it packaged it all up in a nice and neat bow. This makes it an incredibly appealing tool for businesses of all size to get into the container craze. No longer would they chase down libraries and repositories for their Linux distro -- it would all be stuffed into its own "image" that can have its own Docker containers.

Docker was powerful, but limitations at extreme scale (think Google, Amazon) presented challenges. A more powerful tool designed to orchestrate containers and handle clustering, scaling, deployment, etc. needed to be brought into the picture.

Kubernetes

Kubernetes is an incredibly widely used container orchestration technology. Unlike Docker, which kind of works best at a smaller scale and as such is made of a few interconnected pieces, Kubernetes has a lot of varying tools that can be interchanged. Complex software-defined networking and BGP functionality, load balancers, reverse proxies, whatever. It's found a comfortable home in a lot of large businesses and companies like Amazon, Google, and Microsoft make a fortune off "managed" Kubernetes, which relegates some of its features to the cloud.

K8s vs. Docker.

Kubernetes caught the eye of the FreeNAS/TrueNAS team, and seeing the new wave of containerization, they latched onto a new operating system: TrueNAS SCALE. SCALE is Linux-based, and has all the bells and whistles that come with a Linux-based operating system. Clustered storage solutions and turnkey homelab media servers are the target audience here. Strangely enough, Kubernetes was introduced as part of SCALE's design.

The issue with Linux-isms and churn

I love Linux, but one thing it is not is consistent. Things move around and change. "Linux" doesn't even mean anything! Linux is technically a kernel, but you need more than just a kernel to use an operating system. Most systems use GNU software (hence, GNU/Linux) but NOT ALWAYS! Some systems use their own set of coreutils and libraries, like Alpine Linux. Linux systems have wildly varying technology stacks, and that's the beauty and curse of the platform. I've tried TrueNAS SCALE and it's just not quite as reliable, consistent, or stable. A lot of the features are quite half-baked.

Linux diversity.

I don't want this on my NAS. I use it for sharing files, backing them up, and managing my big storage arrays! It's a similar feeling to seeing smart fridges and other appliances -- I want them to be DUMB!

pfSense and OPNSense

FreeBSD finds itself popular in the hobbyist router space. the pf firewall stack FreeBSD offers is incredibly pleasant to work with. It's always lagged behind in terms of hardware support compared to Linux, but if you can find the right hardware you'll get great throughput and consistency.

FreeBSD is dumb

This, again is a double-edged sword. FreeBSD is boring and resistant to new technology in comparison. It's got the same boring init system you remember from the 90s. It's got the same file system (ZFS) with the same limitations and benefits, the same networking stack. It's dull and uninteresting -- it's dumb.

Linux isn't this bad yet

This is WHY it's such a good option for a lot of these appliance-like systems. Ideally, you shouldn't be touching your router or NAS all that much. So why are we cramming extra stuff on top that just creates more complexity and more headaches? Sometimes it's fine if a computer does a very simple, straightforward, transparent task. Keep it simple, stupid!

Those of you that really closely follow my blog will notice I'm not really a fan of permissive licenses like the ones the BSDs use. I still am not, but I understand the value of very accessible and easy to adopt open source tech. The robustness is something I'm a fan of.

/foss/ /networking/ /bsd/ /freebsd/ /linux/ /tech/