Skip to main content
  1. Posts/

Budget NAS

··8 mins
AI Prompt: cartoon style, pile of PC hard drives piled haphazardly on a desk next to an empty NAS.

There are several factors that have led me to this project. I’m planning to remove my Ring doorbell and camera and replace them with ‘offline’ IP cameras. I’m considering using Frigate for them, but that’s a separate project altogether 😉. I’ve also been really wanting to play with ZFS, and there’s no better time than now to dive into it by setting up a NAS! I’ve also been fairly haphazard about backing up data on my home server and desktop. Having an on-premises backup destination for them would be great.

Knowing that I wanted to base my NAS on ZFS, something like a Synology or QNAP was off the table…… and what’s the fun in those anyway? Side note that I have used Synology appliances in the past and they work great. I also wanted to keep this project cheap since the NAS would only store IP camera footage and backups. With these two main parameters in mind, I started exploring my options.

Choosing Parts #

After all the googling, reading reddit posts, and browsing random forums, I decided to go with a build similar to the one described here. Specifically, I was intrigued by the N100-based NAS motherboard. The motherboard includes an Intel N100 CPU, 6 SATA ports, and (2) 2.5 Gb and (1) 10 Gb Ethernet ports for around $140. Seemed like an epic deal. I wasn’t familiar with the random JONSBO case he used, but after comparing budget options, it seemed like a great choice.

For the case, physical space to put it wasn’t an issue, so I opted for the larger JONSBO N3. I watched several YouTube videos of other builds using this case and there appeared to be two main challenges/feedback. First, if you’re planning to use SSDs (non-3.5" drives), they hang rather awkwardly in the top part of the case. Second, many SFX power supplies don’t have Molex and SATA power cables long enough to reach the SATA backplane on the lower portion of the case. As a result, I spent a lot of time researching a power supply that I felt confident would work.

To give some headroom for running Docker containers or VMs via KVM, I wanted to use at least 16 GB of RAM. I really didn’t care about the “boot” NVMe, there won’t be much on it that would be lost if it died,so I decided to go with something cheap.

Hard Drives #

I honestly wasn’t sure how many drives or what capacity to use for this build. I knew I was going to use spinning rust drives and not flash storage. I have about 2–3 TB of existing data that I wanted to consolidate onto the NAS and implement a unified backup strategy. As mentioned, this data is currently backed up in a haphazard way. Additionally, I need to account for the backups of my Proxmox Server and Desktop. I also want at least a few days’ retention for the new IP camera footage. Adding that all up I estimate I need about 4–5 TB right now, with plenty of headroom for future projects over the next several years.

Looking at $/TB on driveprices.com - 8, 10, and 12 TB drives seemed like the best value. However, most new 8 TB drives I saw were SMR (Shingled Magnetic Recording), which wouldn’t work in a ZFS pool. Many of the drives listed on Amazon appeared to be sketchy refurbished drives. I have never bought used drives of any time before, and continued to wade through all the driveprices links to find new drives. While exploring options on Amazon and Newegg,I did see some less sketchy refurbished drives. Going down that rabbit hole a bit I it seemed goHardDrive and Server Part Deals were reputable sources for used drives.

Upon further research, goHardDrive’s eBay offered the best value if I wanted to go with refurbished options. Seagate Factory Re-certified IronWolf 12 TB drives were available on GHD’s eBay page for $100+ cheaper than new. At this point, I’m starting to get interested in refurbished drives 😉. After all, the NAS will mainly just have backups and IP camera footage. Trying to get more comfortable with used drives I look at warrenties, eBay provides a 1-year warranty on these drives, and GHD allegedly offers a 5-year warranty. OK, feeling a bit more comfortable. More research… and the deal seemed too good to pass up, so I ordered 4 of them.

Testing the Drives #

When the factory Re-certified IronWolf drives arrived, they were nicely packed in sealed anti-static bags. Reading a few reviews about drives arriving Dead on Arrival (DOA), I wanted to thoroughly test them before use. However, it was reassuring to know that GHD’s return process appears to be straightforward.

Box with packaged drives.
goHardDrives package with the 4 drives
Seagate Factory Re-certified drive.
Seagate Factory Recertified drive

What’s the best way to test a drive? SpinRite of course! Well, maybe not ‘of course,’ but I’ve listened to the Security Now podcast for close to 20 years and bought a copy of Steve Gibson’s SpinRite over that time. I dug out my old trusty 6th-generation Intel Core i5 rig and began connecting the IronWolf drives and running SpinRite. I ran each drive on Level 3, reading and writing every sector on the drives. This took over 30 hours per a drive to complete.

Spinrite Running
Spinrite on Level 3

All 4 drives looked great! Zero bad sectors, and all the SMART data was clean.

Building it #

Overall putting everything together was pretty easy.

  • It was a bit weird to figure out which way I wanted to mount the power supply in the case.
  • The motherboard had no manual, and the labels printed on the motherboard were really small.
  • The case has Audio, USB 3.0, and USB-C ports on the front, but the motherboard has no headers for them. However, there is USB 3.0 and a USB-C ports on the motherboard, so that’s not a big deal.
  • Trying to do cable management was a bit weird with two levels of the case.

Empy Case
Empy Case

Mounted Motherboard
Mounted Motherboard

Drive Backplane
Drive Backplane

Drive Bay
Drive Bay

All Done
All Done!

Networking #

The fact the Topton N18 motherboard had 2.5 and 10 Gb NICs was a reason I went with it, but my home network only has a Gigabit switch. However, I’d love to take advantage of those ports in the future. To start with will be just using a boring 1 Gb uplink 🤷‍♂️

RAIDZ Decision #

Since I’m going to use ZFS, I needed to decide on the RAIDZ level to use. It was a decision between RAIDZ1 (which is equivalent to RAID 5) or RAIDZ2 (which is equivalent to RAID 6). I had kind of bought the four drives with RAIDZ2 in mind, since they’re used drives, and that would add some insurance against multiple drives failing. However, as I was running the numbers, it became too hard to justify losing two drives’ worth of capacity. In the end, I decided on RAIDZ1 - YOLO.

Software #

I still needed to choose which OS to load on the NAS. In my mind, my choices were either rolling my own thing with a Linux distro, TrueNAS Scale, or Unraid. It was tempting to go with Arch or Ubuntu (yes, they are totally different beasts, but I’m fairly comfortable with both), do all the ZFS stuff via command line, and share out the datasets over NFS. However, since I’m still a ZFS newbie, something with a UI and some guardrails around it made more sense.

That left me with TrueNAS Scale vs Unraid. I’ve wanted to play with Unraid for a long time, but considering the cost of a license and the fact that ZFS is at the heart of TrueNAS Scale, I decided to use TrueNAS Scale.

The “End” Result #

I installed TrueNAS Scale and configured a RAIDZ1 pool. Came out to 31.53 TB of usable space.

I’m still tinkering with the NAS before putting it into production. In general, I’m happy with what it looks like and how the end result will be.

  • I’m still trying to figure out which datasets I think I’ll want. Setting up what I want now should save time having to move things around in the future.
  • I’m messing around with snapshots on the datasets. This is a killer feature of ZFS. In the future, I would love to be able to send snapshots offsite.
  • I need to set up a VM with Proxmox Backup Server . I love this setup of being able to run the Backup Server right on the NAS for the single Proxmox Host I have here.

'poolz' pool
‘poolz’ pool

Datasets
A few Datasets

Parts List #

Part Cost Date Purchased Link
JONSBO N3 8 Bay Case $135.23 1/8/25 AliExpress
Topton N18 Motherboard $139.09 1/8/25 AliExpress
1m 6 Port SATA Cable $7.34 1/8/25 AliExpress
Lian Li 750w SFX Power Supply $139.00 2/8/25 Amazon
Silicon Power 512GB NVMe $29.97 2/8/25 Amazon
CORSAIR 16GB SODIMM $44.99 2/8/25 Amazon
Recertified Seagate IronWolf 12TB Drive $134.99 2/8/25 eBay
Recertified Seagate IronWolf 12TB Drive $134.99 2/8/25 eBay
Recertified Seagate IronWolf 12TB Drive $134.99 2/8/25 eBay
Recertified Seagate IronWolf 12TB Drive $134.99 2/8/25 eBay
$1,035.58

A NAS with 31 TB usable for a bit over $1K, not too shabby!