November 30, 2019

ZFS NAS Attempt #2

Ditching FreeNAS

I decided to abandon using FreeNAS.

The main reason is that I want to use Sanoid to create and manage ZFS snapshots. So it seems the most reasonable way to do this is to run Sanoid in a jail. The dealbreaker came when I tried to pass all the datasets to the jail. It did not work. I could not access all my datasets from the jail. And, I did this a while ago, so I don’t remember the exact problems, but I spent a tremendous amount of effort on getting this working, and I was not able to. I also found no information on the Internet on what the problem could have been. I mean I found nothing. My biggest hunch I found was that the issue was caused by an 88-character limitation on the path to the dataset. If that is the problem, I think that’s a dumb limitation. Why have a limitation at all, and if there has to be one, why not make it something huge, like a million characters or something? Whatever the reason, I think it’s dumb.

A minor girpe I have with FreeNAS is the direction the projet is going. FreeNAS includes a feature to be able to run VMs. From what I have read, this is complex and causes a lot of issues, because creating a hypervisor is not simple. It seems like FreeNAS is trying to create an “all-in-one” product like Unraid, where you have one server that manages the storage, and can run various applications in jails and in VMs. IMO, that’s not what I want in a storage applicance. I just want storage. If I wanted a hyperivsor, I’d get an actual hypervisor. I like the ability of having jails (a default FreeBSD feature) to be able to run a few programs/scripts, but I don’t think major programs and infrastructure should be running on my storage. And the bigger issue is that FreeNAS devs are spending time developing a hypervisor, which has been the source of a lot of issues. I wish they would just focus on ZFS storage. Again, minor gripe.

Last, I want to say that I don’t dislike FreeNAS at all, I still think it’s great. It just doesn’t do what I want.

My Revised Storage Needs

With the creating of my Proxmox server, this box is now purely backup storage. I have no need for any type of performance. I just need ZFS storage, and a way to access that storage on my network. I also don’t have any particular capacity goal. As long as it can hold around 4 TB, it can work.

Hardware Changes

First, I took out the OCZ Vertex (1) and replaced it with some 128 GB OEM Samsung (PM851?) SSD. I made the swap because the Vertex is super old, and I the Samsung SSD was just sitting around.

Next, I took out the Xeon 1221 v1 CPU and replaced it with the stock Pentium G1610T. Again, no need for performnace, the stock CPU will draw less power.

I will also re-use the 3 TB Dell-branded Seagate Constallation ES.2 hard drive. I have five total, I will use four in the box, and the fifth will be a cold spare.

Software

My only requirements were to be able to run ZFs, be accessible over the network, and run Sanoid. I setteled on Debian, because it can easily do all that.

I installed Debian on the SSD, installed ZFS, and installed and configured Sanoid.

I am much happier with this sofware setup. No need for the complex system that is FreeNAS, this is so much simpler, and does what I want.

Native ZFS Encryption

Since ZFS 0.8, ZFS now has native encryption capabilites. So no need to depend on FreeNAS’s (FreeBSD’s?) GELI encryption, and no need to stack ZFS partition on top of LUKS devices. Now, you can create your ZFS pool, and then create datasets that are encrypted.