New ZFS NAS

2022-10-04

Over ten years ago, I built a FreeNAS server, now known as TrueNAS, on an HP ProLiant N40L microserver. I am still using that original HP ProLiant N40L, but I recently decided on building a new NAS with ZFS using a Raspberry Pi and an attached Non-RAID enclosure.

I can only sing praises about the N40L; it has been running nearly nonstop for the past 11 years. During this time, I have had four hard drives fail, all were the original Western Digital Green 2TB drives that I started with except for one, and all were spaced out over several years. Each time a device failed, I replaced it with a Western Digital 3TB Red NAS drive. One of the original 2TB Green drives is still working and is attached to my Mac mini; I use it for Time Machine backups for all the Macs in the household. As I was writing this, one of the Western Digital Red drives failed, the date on the drive is October of 2013, so it appears to be the first one I bought to replace the first disk failure. The operating system, now TrueNAS, has been upgraded, which must be a few dozen times from the original install, and is still operating on the original SanDisk thumb drive I started with. This is the creation date of my zpool.

spartan creation Fri Feb 24 20:39 2012

I had wanted to get a new server close to what I currently have with the N40L, but the prices made me consider building something much cheaper. I decided that my Raspberry Pi 4 with 8GB of memory might be fun to try, mainly since I have found that others have successfully done the same. My Raspberry Pi was only running Pi-Hole, which barely took resources. So, the only real investment is the drives, and if I do not like how ZFS performs on the Raspberry Pi, I can continue shopping around for an N40L replacement. If I like the performance, I could retire my N40L and save a little money on electricity.

I thought about just importing the zpool over to the Raspberry Pi. Still, there have been changes since I created the original zpool with compression, and I thought I might benefit from migrating my data to the new, freshly made pool with the latest OpenZFS. I also wanted to try larger disks in a raidz2 pool, and I might keep the old N40L around on a limited basis for a while, at least until I am content that the Raspberry Pi can handle this new task.

I have been experimenting with ZFS for a long time since Sun announced the filesystem, and I listened to the creators talk about it on an Open Source podcast back in the aughts. I initially used it on OpenSolaris and then via OpenZFS on a Mac mini with an array of attached USB drives. For those wondering, Sun is no more; Oracle acquired them in 2009. My Mac mini experiment worked great, even though many people scoffed at USB-attached storage at the time, and they still do. I never had a ZFS problem with USB, sure, it was a little slower, but I still had all the benefits of ZFS. From that build, I moved to the N40L in 2012, and I have been there ever since.

With this project, it was not my original intent to minimize, simplify and merge, but that is what I have done. In the last couple of years, I have essentially turned off two servers in my home and have all my computing running from a Mac Mini and a Raspberry Pi.